[
  {
    "path": ".gitattributes",
    "content": "*.h linguist-language=Swift\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "content": "# These are supported funding model platforms\n\ngithub: Ji4n1ng\n#patreon: # Replace with a single Patreon username\n#open_collective: # Replace with a single Open Collective username\n#ko_fi: # Replace with a single Ko-fi username\n#tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel\n#community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry\n#liberapay: # Replace with a single Liberapay username\n#issuehunt: # Replace with a single IssueHunt username\n#otechie: # Replace with a single Otechie username\n#lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry\n#custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report_issue_template.md",
    "content": "---\nname: 'Bug report'\nlabels: bug\nabout: 'Report a bug'\n---\n\n## What is the issue?\n\n## How does one reproduce the issue?\n\n## Screenshots\n\n## Debug information (Logs, OS, Hardware, Version, etc.)\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request_issue_template.md",
    "content": "---\nname: 'Feature request'\nlabels: enhancement\nabout: 'Request a new feature'\n---\n\n## Summarize this feature\n\n## Why should this feature be included?\n\n## Additional information\n"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "content": "## Summary of this pull request\n\n## Does this solve an existing issue? If so, add a link to it\n\n## Steps to test this feature\n\n## Screenshots\n\n## Additional info\n"
  },
  {
    "path": ".gitignore",
    "content": "\n# Created by https://www.gitignore.io/api/macos,xcode,swift\n# Edit at https://www.gitignore.io/?templates=macos,xcode,swift\n\n### macOS ###\n# General\n.DS_Store\n.AppleDouble\n.LSOverride\n\n# Icon must end with two \\r\nIcon\r\n\n# Thumbnails\n._*\n\n# Files that might appear in the root of a volume\n.DocumentRevisions-V100\n.fseventsd\n.Spotlight-V100\n.TemporaryItems\n.Trashes\n.VolumeIcon.icns\n.com.apple.timemachine.donotpresent\n\n# Directories potentially created on remote AFP share\n.AppleDB\n.AppleDesktop\nNetwork Trash Folder\nTemporary Items\n.apdisk\n\n### Swift ###\n# Xcode\n#\n# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore\n\n## Build generated\nbuild/\nDerivedData/\n\n## Various settings\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2v3\n!default.mode2v3\n*.perspectivev3\n!default.perspectivev3\nxcuserdata/\n\n## Other\n*.moved-aside\n*.xccheckout\n*.xcscmblueprint\n\n## Obj-C/Swift specific\n*.hmap\n*.ipa\n*.dSYM.zip\n*.dSYM\n\n## Playgrounds\ntimeline.xctimeline\nplayground.xcworkspace\n\n# Swift Package Manager\n# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.\n# Packages/\n# Package.pins\n# Package.resolved\n.build/\n\n# CocoaPods\n# We recommend against adding the Pods directory to your .gitignore. However\n# you should judge for yourself, the pros and cons are mentioned at:\n# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control\nPods/\n# Add this line if you want to avoid checking in source code from the Xcode workspace\n*.xcworkspace\n\n# Carthage\n# Add this line if you want to avoid checking in source code from Carthage dependencies.\n# Carthage/Checkouts\n\nCarthage/Build\n\n# fastlane\n# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the\n# screenshots whenever they are needed.\n# For more information about the recommended setup visit:\n# https://docs.fastlane.tools/best-practices/source-control/#source-control\n\nfastlane/report.xml\nfastlane/Preview.html\nfastlane/screenshots/**/*.png\nfastlane/test_output\n\n# Code Injection\n# After new code Injection tools there's a generated folder /iOSInjectionProject\n# https://github.com/johnno1962/injectionforxcode\n\niOSInjectionProject/\n\n### Xcode ###\n# Xcode\n# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore\n\n## User settings\n\n## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)\n\n## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)\n\n### Xcode Patch ###\n*.xcodeproj/*\n!*.xcodeproj/project.pbxproj\n!*.xcodeproj/xcshareddata/\n!*.xcworkspace/contents.xcworkspacedata\n/*.gcno\n**/xcshareddata/WorkspaceSettings.xcsettings\n\n# End of https://www.gitignore.io/api/macos,xcode,swift\nn\n"
  },
  {
    "path": ".travis.yml",
    "content": "language: objective-c\nmatrix:\n  include:\n    - osx_image: xcode11\nbranches:\n  only:\n    - master\n    #- develop\nenv:\n  global:\n    - LC_CTYPE=en_US.UTF-8\nbefore_install:\n  - gem install cocoapods # Since Travis is not always on latest version\n  - gem install xcpretty -N\n  - pod install\nscript:\n  - set -o pipefail\n  - xcodebuild clean build -workspace OpenInTerminal.xcworkspace -scheme OpenInTerminal -sdk macosx -configuration Release CODE_SIGN_IDENTITY=\"\" CODE_SIGN_REQUIRED=NO | xcpretty -c"
  },
  {
    "path": "LICENSE",
    "content": "The MIT License\n\nCopyright (c) 2019 Jianing Wang\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "OpenInEditor-Lite/OpenInEditor-Lite/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"icon_editor_light_16.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\",\n      \"size\" : \"16x16\"\n    },\n    {\n      \"filename\" : \"icon_editor_light_16@2x.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\",\n      \"size\" : \"16x16\"\n    },\n    {\n      \"filename\" : \"icon_editor_light_32.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\",\n      \"size\" : \"32x32\"\n    },\n    {\n      \"filename\" : \"icon_editor_light_32@2x.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\",\n      \"size\" : \"32x32\"\n    },\n    {\n      \"filename\" : \"icon_editor_light_128.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\",\n      \"size\" : \"128x128\"\n    },\n    {\n      \"filename\" : \"icon_editor_light_128@2x.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\",\n      \"size\" : \"128x128\"\n    },\n    {\n      \"filename\" : \"icon_editor_light_256.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\",\n      \"size\" : \"256x256\"\n    },\n    {\n      \"filename\" : \"icon_editor_light _256@2x.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\",\n      \"size\" : \"256x256\"\n    },\n    {\n      \"filename\" : \"icon_editor_light_512.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\",\n      \"size\" : \"512x512\"\n    },\n    {\n      \"filename\" : \"icon_editor_light_512@2x.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\",\n      \"size\" : \"512x512\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInEditor-Lite/OpenInEditor-Lite/Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "OpenInEditor-Lite/OpenInEditor-Lite/Error.swift",
    "content": "//\n//  Error.swift\n//  OpenInEditor-Lite\n//\n//  Created by Jianing Wang on 2019/6/25.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\nimport Foundation\n\nenum OITLError: Error {\n    \n    case cannotGetEditor\n    \n}\n\nextension OITLError : CustomStringConvertible {\n    \n    var description: String {\n        \n        switch self {\n            \n        case .cannotGetEditor:\n            return \"There is no default editor. And user did not pick a editor.\"\n        }\n    }\n}\n"
  },
  {
    "path": "OpenInEditor-Lite/OpenInEditor-Lite/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>$(DEVELOPMENT_LANGUAGE)</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIconFile</key>\n\t<string></string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>$(MARKETING_VERSION)</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSApplicationCategoryType</key>\n\t<string>public.app-category.utilities</string>\n\t<key>LSMinimumSystemVersion</key>\n\t<string>$(MACOSX_DEPLOYMENT_TARGET)</string>\n\t<key>LSUIElement</key>\n\t<true/>\n\t<key>NSAppleEventsUsageDescription</key>\n\t<string>Please give permissions to access your Finder &amp; Terminal</string>\n\t<key>NSHumanReadableCopyright</key>\n\t<string>Copyright © 2019 Jianing Wang. All rights reserved.</string>\n\t<key>NSPrincipalClass</key>\n\t<string>NSApplication</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "OpenInEditor-Lite/OpenInEditor-Lite/OpenInEditor-Lite.entitlements",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>com.apple.security.automation.apple-events</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "OpenInEditor-Lite/OpenInEditor-Lite/OpenInEditor_Lite.entitlements",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>com.apple.security.temporary-exception.apple-events</key>\n\t<array>\n\t\t<string>com.apple.systemevents</string>\n\t\t<string>com.apple.Terminal</string>\n\t\t<string>com.apple.Finder</string>\n\t\t<string>com.googlecode.iterm2</string>\n\t\t<string>co.zeit.hyper</string>\n\t\t<string>io.alacritty</string>\n\t\t<string>com.github.wez.wezterm</string>\n\t\t<string>org.tabby</string>\n\t\t<string>com.microsoft.VSCode</string>\n\t\t<string>com.github.atom</string>\n\t\t<string>com.sublimetext.3</string>\n\t\t<string>com.barebones.bbedit</string>\n\t\t<string>com.microsoft.VSCodeInsiders</string>\n\t\t<string>com.macromates.TextMate</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "OpenInEditor-Lite/OpenInEditor-Lite/de.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  OpenInEditor-Lite\n\n  Created by Jianing Wang on 2019/6/25.\n  Copyright © 2019 Jianing Wang. All rights reserved.\n*/\n\n\"general.ok\" = \"Okay\";\n\"general.cancel\" = \"Abbrechen\";\n\"general.yes\" = \"Ja\";\n\n\"alert.pick_editor_title\" = \"Öffnen mit?\";\n\"alert.pick_editor_description\" = \"Bitte wählen Sie eines der folgenden Editoren als Standard zum Öffnen.\";\n"
  },
  {
    "path": "OpenInEditor-Lite/OpenInEditor-Lite/en.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  OpenInEditor-Lite\n\n  Created by Jianing Wang on 2019/6/25.\n  Copyright © 2019 Jianing Wang. All rights reserved.\n*/\n\n\"general.ok\" = \"OK\";\n\"general.cancel\" = \"Cancel\";\n\"general.yes\" = \"Yes\";\n\n\"alert.pick_editor_title\" = \"Open In?\";\n\"alert.pick_editor_description\" = \"Please select one of the following editors as the default editor to open.\";\n"
  },
  {
    "path": "OpenInEditor-Lite/OpenInEditor-Lite/es.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  OpenInEditor-Lite\n\n  Created by Jianing Wang on 2019/6/25.\n  Copyright © 2019 Jianing Wang. All rights reserved.\n*/\n\n\"general.ok\" = \"OK\";\n\"general.cancel\" = \"Cancelar\";\n\"general.yes\" = \"Sí\";\n\n\"alert.pick_editor_title\" = \"Abrir en?\";\n\"alert.pick_editor_description\" = \"Seleccione uno de los siguientes editores como editor predeterminado.\";\n"
  },
  {
    "path": "OpenInEditor-Lite/OpenInEditor-Lite/fr.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  OpenInEditor-Lite\n\n  Created by Jianing Wang on 2019/6/25.\n  Copyright © 2019 Jianing Wang. All rights reserved.\n*/\n\n\"general.ok\" = \"OK\";\n\"general.cancel\" = \"Annuler\";\n\"general.yes\" = \"Oui\";\n\n\"alert.pick_editor_title\" = \"Ouvrir avec?\";\n\"alert.pick_editor_description\" = \"Veuillez sélectionner l’un de ses éditeurs ci-dessous pour être utilisé comme éditeur par défaut.\";\n"
  },
  {
    "path": "OpenInEditor-Lite/OpenInEditor-Lite/it.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  OpenInEditor-Lite\n\n  Created by arendruni on 2020/4/9.\n  Copyright © 2020 arendruni. All rights reserved.\n*/\n\n\"general.ok\" = \"OK\";\n\"general.cancel\" = \"Annulla\";\n\"general.yes\" = \"Sì\";\n\n\"alert.pick_editor_title\" = \"Apri con?\";\n\"alert.pick_editor_description\" = \"Seleziona uno dei seguenti editor per impostarlo come editor di default.\";\n"
  },
  {
    "path": "OpenInEditor-Lite/OpenInEditor-Lite/ko.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  OpenInEditor-Lite\n\n  Created by Fernando on 2019/11/23.\n  Copyright © 2019 Fernando. All rights reserved.\n*/\n\n\"general.ok\" = \"확인\";\n\"general.cancel\" = \"닫기\";\n\"general.yes\" = \"네\";\n\n\"alert.pick_editor_title\" = \"여시겠습니까?\";\n\"alert.pick_editor_description\" = \"다음 리스트에서 기본이 될 에디터 프로그램을 선택해주세요.\";\n"
  },
  {
    "path": "OpenInEditor-Lite/OpenInEditor-Lite/main.swift",
    "content": "//\n//  main.swift\n//  OpenInEditor-Lite\n//\n//  Created by Jianing Wang on 2019/6/25.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\nimport Foundation\nimport OpenInTerminalCore\n\ndo {\n    \n    if let editorName = DefaultsManager.shared.liteDefaultEditor {\n        let editor = App(name: editorName, type: .editor)\n        try editor.openOutsideSandbox()\n    } else {\n        guard let selectedEditor = AppManager.shared.pickEditorAlert() else {\n            throw OITLError.cannotGetEditor\n        }\n        DefaultsManager.shared.liteDefaultEditor = selectedEditor.name\n        try selectedEditor.openOutsideSandbox()\n    }\n    \n} catch {\n    logw(error.localizedDescription)\n}\n"
  },
  {
    "path": "OpenInEditor-Lite/OpenInEditor-Lite/ru.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  OpenInEditor-Lite\n\n  Created by Jianing Wang on 2019/6/25.\n  Copyright © 2019 Jianing Wang. All rights reserved.\n*/\n\n\"general.ok\" = \"OK\";\n\"general.cancel\" = \"Отменить\";\n\"general.yes\" = \"Да\";\n\n\"alert.pick_terminal_title\" = \"Открыть в?\";\n\"alert.pick_terminal_description\" = \"Пожалуйста, выберите один из доступных редакторе для установки по-умолчанию.\";\n"
  },
  {
    "path": "OpenInEditor-Lite/OpenInEditor-Lite/tr.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  OpenInEditor-Lite\n\n  Created by Jianing Wang on 2019/6/25.\n  Copyright © 2019 Jianing Wang. All rights reserved.\n*/\n\n\"general.ok\" = \"Tamam\";\n\"general.cancel\" = \"İptal\";\n\"general.yes\" = \"Evet\";\n\n\"alert.pick_editor_title\" = \"Şununla Aç?\";\n\"alert.pick_editor_description\" = \"Lütfen gösterilen düzenleyicilerden birini varsayılan düzenleyici olarak seçin.\";\n"
  },
  {
    "path": "OpenInEditor-Lite/OpenInEditor-Lite/zh-Hans.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  OpenInEditor-Lite\n\n  Created by Jianing Wang on 2019/6/25.\n  Copyright © 2019 Jianing Wang. All rights reserved.\n*/\n\n\"general.ok\" = \"好\";\n\"general.cancel\" = \"取消\";\n\"general.yes\" = \"是的\";\n\n\"alert.pick_editor_title\" = \"打开?\";\n\"alert.pick_editor_description\" = \"请在下面的编辑器中选择一个作为默认编辑器。\";\n"
  },
  {
    "path": "OpenInEditor-Lite/OpenInEditor-Lite.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 50;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t95A0744D22C2083E00A42BC8 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 95A0744C22C2083E00A42BC8 /* Assets.xcassets */; };\n\t\t95A0745922C2140700A42BC8 /* OpenInTerminalCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95A0745822C2140700A42BC8 /* OpenInTerminalCore.framework */; };\n\t\t95A0745A22C2140700A42BC8 /* OpenInTerminalCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 95A0745822C2140700A42BC8 /* OpenInTerminalCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };\n\t\t95A0745D22C2141700A42BC8 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A0745C22C2141700A42BC8 /* main.swift */; };\n\t\t95A0745F22C2155800A42BC8 /* Error.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A0745E22C2155800A42BC8 /* Error.swift */; };\n\t\t95A0746222C217E800A42BC8 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 95A0746422C217E800A42BC8 /* Localizable.strings */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXCopyFilesBuildPhase section */\n\t\t95A0745B22C2140800A42BC8 /* Embed Frameworks */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = \"\";\n\t\t\tdstSubfolderSpec = 10;\n\t\t\tfiles = (\n\t\t\t\t95A0745A22C2140700A42BC8 /* OpenInTerminalCore.framework in Embed Frameworks */,\n\t\t\t);\n\t\t\tname = \"Embed Frameworks\";\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXCopyFilesBuildPhase section */\n\n/* Begin PBXFileReference section */\n\t\t2594E99827EF396F00AF84D5 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t82AE667823896C4E00F4DB4D /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t9561BB4324C1F3ED001DE0A9 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t9595D2A223BAD7EE006CBB36 /* OpenInEditor-Lite.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = \"OpenInEditor-Lite.entitlements\"; sourceTree = \"<group>\"; };\n\t\t95A0744722C2083E00A42BC8 /* OpenInEditor-Lite.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = \"OpenInEditor-Lite.app\"; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t95A0744C22C2083E00A42BC8 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\t95A0745122C2083E00A42BC8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\t95A0745222C2083E00A42BC8 /* OpenInEditor_Lite.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = OpenInEditor_Lite.entitlements; sourceTree = \"<group>\"; };\n\t\t95A0745822C2140700A42BC8 /* OpenInTerminalCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = OpenInTerminalCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t95A0745C22C2141700A42BC8 /* main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = \"<group>\"; };\n\t\t95A0745E22C2155800A42BC8 /* Error.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Error.swift; sourceTree = \"<group>\"; };\n\t\t95A0746322C217E800A42BC8 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t95A0746522C217EC00A42BC8 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"zh-Hans\"; path = \"zh-Hans.lproj/Localizable.strings\"; sourceTree = \"<group>\"; };\n\t\t95A0746622C217EF00A42BC8 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t95B0614027AFAD1E009C2B4E /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t95DD629D243B4694003550B3 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tC3135D9E243F4CFA003323CF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t95A0744422C2083E00A42BC8 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t95A0745922C2140700A42BC8 /* OpenInTerminalCore.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t95A0743E22C2083E00A42BC8 = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t95A0745822C2140700A42BC8 /* OpenInTerminalCore.framework */,\n\t\t\t\t95A0744922C2083E00A42BC8 /* OpenInEditor-Lite */,\n\t\t\t\t95A0744822C2083E00A42BC8 /* Products */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t95A0744822C2083E00A42BC8 /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t95A0744722C2083E00A42BC8 /* OpenInEditor-Lite.app */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t95A0744922C2083E00A42BC8 /* OpenInEditor-Lite */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t9595D2A223BAD7EE006CBB36 /* OpenInEditor-Lite.entitlements */,\n\t\t\t\t95A0745C22C2141700A42BC8 /* main.swift */,\n\t\t\t\t95A0745E22C2155800A42BC8 /* Error.swift */,\n\t\t\t\t95A0744C22C2083E00A42BC8 /* Assets.xcassets */,\n\t\t\t\t95A0745122C2083E00A42BC8 /* Info.plist */,\n\t\t\t\t95A0745222C2083E00A42BC8 /* OpenInEditor_Lite.entitlements */,\n\t\t\t\t95A0746422C217E800A42BC8 /* Localizable.strings */,\n\t\t\t);\n\t\t\tpath = \"OpenInEditor-Lite\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\t95A0744622C2083E00A42BC8 /* OpenInEditor-Lite */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 95A0745522C2083E00A42BC8 /* Build configuration list for PBXNativeTarget \"OpenInEditor-Lite\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t95A0744322C2083E00A42BC8 /* Sources */,\n\t\t\t\t95A0744422C2083E00A42BC8 /* Frameworks */,\n\t\t\t\t95A0744522C2083E00A42BC8 /* Resources */,\n\t\t\t\t95A0745B22C2140800A42BC8 /* Embed Frameworks */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = \"OpenInEditor-Lite\";\n\t\t\tproductName = \"OpenInEditor-Lite\";\n\t\t\tproductReference = 95A0744722C2083E00A42BC8 /* OpenInEditor-Lite.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\t95A0743F22C2083E00A42BC8 /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastSwiftUpdateCheck = 1020;\n\t\t\t\tLastUpgradeCheck = 1330;\n\t\t\t\tORGANIZATIONNAME = \"Jianing Wang\";\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\t95A0744622C2083E00A42BC8 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 10.2.1;\n\t\t\t\t\t\tSystemCapabilities = {\n\t\t\t\t\t\t\tcom.apple.Sandbox = {\n\t\t\t\t\t\t\t\tenabled = 0;\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t};\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = 95A0744222C2083E00A42BC8 /* Build configuration list for PBXProject \"OpenInEditor-Lite\" */;\n\t\t\tcompatibilityVersion = \"Xcode 9.3\";\n\t\t\tdevelopmentRegion = en;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t\tBase,\n\t\t\t\t\"zh-Hans\",\n\t\t\t\tfr,\n\t\t\t\tko,\n\t\t\t\tru,\n\t\t\t\tit,\n\t\t\t\tes,\n\t\t\t\ttr,\n\t\t\t\tde,\n\t\t\t);\n\t\t\tmainGroup = 95A0743E22C2083E00A42BC8;\n\t\t\tproductRefGroup = 95A0744822C2083E00A42BC8 /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t95A0744622C2083E00A42BC8 /* OpenInEditor-Lite */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t95A0744522C2083E00A42BC8 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t95A0744D22C2083E00A42BC8 /* Assets.xcassets in Resources */,\n\t\t\t\t95A0746222C217E800A42BC8 /* Localizable.strings in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t95A0744322C2083E00A42BC8 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t95A0745F22C2155800A42BC8 /* Error.swift in Sources */,\n\t\t\t\t95A0745D22C2141700A42BC8 /* main.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXVariantGroup section */\n\t\t95A0746422C217E800A42BC8 /* Localizable.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t95A0746322C217E800A42BC8 /* en */,\n\t\t\t\t95A0746522C217EC00A42BC8 /* zh-Hans */,\n\t\t\t\t95A0746622C217EF00A42BC8 /* fr */,\n\t\t\t\t82AE667823896C4E00F4DB4D /* ko */,\n\t\t\t\t95DD629D243B4694003550B3 /* ru */,\n\t\t\t\tC3135D9E243F4CFA003323CF /* it */,\n\t\t\t\t9561BB4324C1F3ED001DE0A9 /* es */,\n\t\t\t\t95B0614027AFAD1E009C2B4E /* tr */,\n\t\t\t\t2594E99827EF396F00AF84D5 /* de */,\n\t\t\t);\n\t\t\tname = Localizable.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\t95A0745322C2083E00A42BC8 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"Mac Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.14;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t95A0745422C2083E00A42BC8 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"Mac Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.14;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t95A0745622C2083E00A42BC8 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCODE_SIGN_ENTITLEMENTS = \"OpenInEditor-Lite/OpenInEditor-Lite.entitlements\";\n\t\t\t\tCODE_SIGN_IDENTITY = \"Apple Development\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDEVELOPMENT_TEAM = Q33U8R4U57;\n\t\t\t\tENABLE_HARDENED_RUNTIME = YES;\n\t\t\t\tINFOPLIST_FILE = \"OpenInEditor-Lite/Info.plist\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/../Frameworks\",\n\t\t\t\t);\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.13;\n\t\t\t\tMARKETING_VERSION = 1.2.7;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"wang.jianing.app.OpenInEditor-Lite\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t95A0745722C2083E00A42BC8 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCODE_SIGN_ENTITLEMENTS = \"OpenInEditor-Lite/OpenInEditor-Lite.entitlements\";\n\t\t\t\tCODE_SIGN_IDENTITY = \"Apple Development\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDEVELOPMENT_TEAM = Q33U8R4U57;\n\t\t\t\tENABLE_HARDENED_RUNTIME = YES;\n\t\t\t\tINFOPLIST_FILE = \"OpenInEditor-Lite/Info.plist\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/../Frameworks\",\n\t\t\t\t);\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.13;\n\t\t\t\tMARKETING_VERSION = 1.2.7;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"wang.jianing.app.OpenInEditor-Lite\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t95A0744222C2083E00A42BC8 /* Build configuration list for PBXProject \"OpenInEditor-Lite\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t95A0745322C2083E00A42BC8 /* Debug */,\n\t\t\t\t95A0745422C2083E00A42BC8 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t95A0745522C2083E00A42BC8 /* Build configuration list for PBXNativeTarget \"OpenInEditor-Lite\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t95A0745622C2083E00A42BC8 /* Debug */,\n\t\t\t\t95A0745722C2083E00A42BC8 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = 95A0743F22C2083E00A42BC8 /* Project object */;\n}\n"
  },
  {
    "path": "OpenInEditor-Lite/OpenInEditor-Lite.xcodeproj/xcshareddata/xcschemes/OpenInEditor-Lite.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1330\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"95A0744622C2083E00A42BC8\"\n               BuildableName = \"OpenInEditor-Lite.app\"\n               BlueprintName = \"OpenInEditor-Lite\"\n               ReferencedContainer = \"container:OpenInEditor-Lite.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <Testables>\n      </Testables>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"95A0744622C2083E00A42BC8\"\n            BuildableName = \"OpenInEditor-Lite.app\"\n            BlueprintName = \"OpenInEditor-Lite\"\n            ReferencedContainer = \"container:OpenInEditor-Lite.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"95A0744622C2083E00A42BC8\"\n            BuildableName = \"OpenInEditor-Lite.app\"\n            BlueprintName = \"OpenInEditor-Lite\"\n            ReferencedContainer = \"container:OpenInEditor-Lite.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "OpenInTerminal/AppDelegate.swift",
    "content": "//\n//  AppDelegate.swift\n//  OpenInTerminal\n//\n//  Created by Cameron Ingham on 4/17/19.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\nimport Cocoa\nimport OpenInTerminalCore\nimport ShortcutRecorder\n\n@NSApplicationMain\nclass AppDelegate: NSObject, NSApplicationDelegate {\n    \n    // MARK: - Properties\n    \n    let statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)\n    \n    @IBOutlet weak var statusBarMenu: NSMenu!\n    \n    // MARK: - Lifecycle\n    \n    func applicationDidFinishLaunching(_ notification: Notification) {\n        DefaultsManager.shared.firstSetup()\n        addObserver()\n        terminateOpenInTerminalHelper()\n        setStatusItemIcon()\n        setStatusItemVisible()\n        setStatusToggle()\n        \n        logw(\"\")\n        logw(\"App launched\")\n        logw(\"macOS \\(ProcessInfo().operatingSystemVersionString)\")\n        logw(\"OpenInTerminal Version \\(Bundle.main.infoDictionary?[\"CFBundleShortVersionString\"] as? String ?? \"\")\")\n        \n        // bind global shortcuts\n        bindShortcuts()\n        \n        do {\n            // check scripts and install them if needed\n            try checkScripts()\n        } catch {\n            logw(error.localizedDescription)\n        }\n    }\n    \n    func applicationWillTerminate(_ notification: Notification) {\n        NSStatusBar.system.removeStatusItem(statusItem)\n        \n        removeObserver()\n        logw(\"App terminated\")\n    }\n    \n    func applicationShouldHandleReopen(_ sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool {\n        if !flag {\n            showPreferencesWindow()\n        }\n        return true\n    }\n    \n}\n\nextension AppDelegate {\n    \n    // MARK: - Status Bar Item\n    \n    func setStatusItemIcon() {\n        let icon = NSImage(assetIdentifier: .StatusBarIcon)\n        icon.isTemplate = true // Support Dark Mode\n        DispatchQueue.main.async {\n            self.statusItem.button?.image = icon\n        }\n    }\n    \n    func setStatusItemVisible() {\n        let isHideStatusItem = DefaultsManager.shared.isHideStatusItem\n        statusItem.isVisible = !isHideStatusItem\n    }\n    \n    func setStatusToggle() {\n        let isQuickToogle = DefaultsManager.shared.isQuickToggle\n        if isQuickToogle {\n            statusItem.menu = nil\n            if let button = statusItem.button {\n                button.action = #selector(statusBarButtonClicked)\n                button.sendAction(on: [.leftMouseUp, .leftMouseDown,\n                                       .rightMouseUp, .rightMouseDown])\n            }\n        } else {\n            statusItem.menu = statusBarMenu\n        }\n    }\n    \n    @objc func statusBarButtonClicked(sender: NSStatusBarButton) {\n        let event = NSApp.currentEvent!\n        if event.type == .rightMouseDown || event.type == .rightMouseUp\n            || event.modifierFlags.contains(.control)\n        {\n            statusItem.menu = statusBarMenu\n            statusItem.button?.performClick(self)\n            statusItem.menu = nil\n        } else if event.type == .leftMouseUp {\n            if let quickToggleType = DefaultsManager.shared.quickToggleType {\n                switch quickToggleType {\n                case .openWithDefaultTerminal:\n                    openDefaultTerminal()\n                case .openWithDefaultEditor:\n                    openDefaultEditor()\n                case .copyPathToClipboard:\n                    copyPathToClipboard()\n                }\n            }\n        }\n    }\n    \n    func terminateOpenInTerminalHelper() {\n        let isRunning = NSWorkspace.shared.runningApplications.contains {\n            $0.bundleIdentifier == Constants.Id.LauncherApp\n        }\n        \n        if isRunning {\n            LaunchNotifier.postNotification(.terminateApp, object: Bundle.main.bundleIdentifier!)\n        }\n    }\n    \n    func showPreferencesWindow() {\n        NSApp.setActivationPolicy(.regular) // show icon in Dock\n        let preferencesWindowController: PreferencesWindowController = {\n            let storyboard = NSStoryboard(storyboardIdentifier: .Preferences)\n            let windowController = storyboard.instantiateInitialController() as? PreferencesWindowController ?? PreferencesWindowController()\n            return windowController\n        }()\n        preferencesWindowController.window?.delegate = self\n        NSApp.activate(ignoringOtherApps: true)\n        preferencesWindowController.showWindow(self)\n        preferencesWindowController.window?.makeKeyAndOrderFront(self)\n    }\n    \n    // MARK: - Notification\n    \n    func addObserver() {\n        OpenNotifier.addObserver(observer: self,\n                                 selector: #selector(openDefaultTerminal),\n                                 notification: .openDefaultTerminal)\n        OpenNotifier.addObserver(observer: self,\n                                 selector: #selector(openDefaultEditor),\n                                 notification: .openDefaultEditor)\n        OpenNotifier.addObserver(observer: self,\n                                 selector: #selector(copyPathToClipboard),\n                                 notification: .copyPathToClipboard)\n    }\n    \n    func removeObserver() {\n        OpenNotifier.removeObserver(observer: self, notification: .openDefaultTerminal)\n        OpenNotifier.removeObserver(observer: self, notification: .openDefaultEditor)\n        OpenNotifier.removeObserver(observer: self, notification: .copyPathToClipboard)\n    }\n    \n    // MARK: Notification Actions\n    \n    @objc func openDefaultTerminal() {\n        var defaultTerminal: App\n        if let terminal = DefaultsManager.shared.defaultTerminal {\n            defaultTerminal = terminal\n        } else {\n            // if there is no defualt terminal, then pick one\n            guard let selectedTerminal = AppManager.shared.pickTerminalAlert() else {\n                return\n            }\n            DefaultsManager.shared.defaultTerminal = selectedTerminal\n            defaultTerminal = selectedTerminal\n        }\n        do {\n            try defaultTerminal.openOutsideSandbox()\n        } catch {\n            logw(\"\\(error)\")\n        }\n    }\n    \n    @objc func openDefaultEditor() {\n        var defaultEditor: App\n        if let editor = DefaultsManager.shared.defaultEditor {\n            defaultEditor = editor\n        } else {\n            // if there is no defualt editor, then pick one\n            guard let selectedEditor = AppManager.shared.pickEditorAlert() else {\n                return\n            }\n            DefaultsManager.shared.defaultEditor = selectedEditor\n            defaultEditor = selectedEditor\n        }\n        do {\n            try defaultEditor.openOutsideSandbox()\n        } catch {\n            logw(\"\\(error)\")\n        }\n    }\n    \n    @objc func copyPathToClipboard() {\n        do {\n            var urls = try FinderManager.shared.getFullUrlsToFrontFinderWindowOrSelectedFile()\n            if urls.count == 0 {\n                // No Finder window and no file selected.\n                let homePath = NSHomeDirectory()\n                guard let homeUrl = URL(string: homePath) else { return }\n                urls.append(homeUrl.appendingPathComponent(\"Desktop\"))\n            }\n            let paths = urls.map { $0.path }\n            let pathString = paths.joined(separator: \"\\n\")\n            // Set string\n            NSPasteboard.general.clearContents()\n            NSPasteboard.general.setString(pathString, forType: .string)\n        } catch {\n            logw(error.localizedDescription)\n        }\n    }\n    \n//    func writeimage() {\n//        SupportedApps.allCases.forEach {\n//            let path = \"/Applications/\\($0.name).app\"\n//            guard FileManager.default.fileExists(atPath: path) else { return }\n//\n//            let desktopURL = FileManager.default.urls(for: .desktopDirectory, in: .userDomainMask).first!\n//            let destinationURL = desktopURL.appendingPathComponent(\"\\($0.name).png\")\n//            let icon = AppManager.getApplicationIcon(from: path)\n//\n//            guard let tiffRepresentation = icon.tiffRepresentation,\n//                  let bitmapImage = NSBitmapImageRep(data: tiffRepresentation) else { return }\n//            let pngData = bitmapImage.representation(using: .png, properties: [:])\n//            do {\n//                try pngData?.write(to: destinationURL, options: .atomic)\n//            } catch {\n//                print(\"\\($0.name)\")\n//                print(error)\n//            }\n//        }\n//    }\n}\n\nextension AppDelegate {\n    \n    // MARK: - Global Shortcuts\n    \n    func bindShortcuts() {\n        let oitAction = ShortcutAction(keyPath: Constants.Key.defaultTerminalShortcut, of: Defaults) { _ in\n            let appDelegate = NSApplication.shared.delegate as! AppDelegate\n            appDelegate.openDefaultTerminal()\n            return true\n        }\n        GlobalShortcutMonitor.shared.addAction(oitAction, forKeyEvent: .down)\n        \n        let oieAction = ShortcutAction(keyPath: Constants.Key.defaultEditorShortcut, of: Defaults) { _ in\n            let appDelegate = NSApplication.shared.delegate as! AppDelegate\n            appDelegate.openDefaultEditor()\n            return true\n        }\n        GlobalShortcutMonitor.shared.addAction(oieAction, forKeyEvent: .down)\n        \n        let copyPathAction = ShortcutAction(keyPath: Constants.Key.copyPathShortcut, of: Defaults) { _ in\n            let appDelegate = NSApplication.shared.delegate as! AppDelegate\n            appDelegate.copyPathToClipboard()\n            return true\n        }\n        GlobalShortcutMonitor.shared.addAction(copyPathAction, forKeyEvent: .down)\n    }\n}\n\nextension AppDelegate: NSWindowDelegate {\n    \n    func windowWillClose(_ notification: Notification) {\n        NSApp.setActivationPolicy(.accessory) // hide icon in Dock\n    }\n}\n"
  },
  {
    "path": "OpenInTerminal/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"AppIcon-16.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\",\n      \"size\" : \"16x16\"\n    },\n    {\n      \"filename\" : \"AppIcon-16@2x.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\",\n      \"size\" : \"16x16\"\n    },\n    {\n      \"filename\" : \"AppIcon-32.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\",\n      \"size\" : \"32x32\"\n    },\n    {\n      \"filename\" : \"AppIcon-32@2x.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\",\n      \"size\" : \"32x32\"\n    },\n    {\n      \"filename\" : \"AppIcon-128.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\",\n      \"size\" : \"128x128\"\n    },\n    {\n      \"filename\" : \"AppIcon-128@2x.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\",\n      \"size\" : \"128x128\"\n    },\n    {\n      \"filename\" : \"AppIcon-256.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\",\n      \"size\" : \"256x256\"\n    },\n    {\n      \"filename\" : \"AppIcon-256@2x.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\",\n      \"size\" : \"256x256\"\n    },\n    {\n      \"filename\" : \"AppIcon-512.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\",\n      \"size\" : \"512x512\"\n    },\n    {\n      \"filename\" : \"AppIcon-512@2x.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\",\n      \"size\" : \"512x512\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Assets.xcassets/StatusBarIcon.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"status_bar_icon.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"filename\" : \"status_bar_icon@2x.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"filename\" : \"status_bar_icon@3x.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Assets.xcassets/ToolbarCustomize.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"ToolbarCustomize.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "OpenInTerminal/Assets.xcassets/logo.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"AppIcon-256.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Constants.swift",
    "content": "//\n//  Config.swift\n//  OpenInTerminal\n//\n//  Created by Jianing Wang on 2019/4/20.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\nimport Cocoa\nimport Foundation\nimport OpenInTerminalCore\n\nstruct Constants {\n    \n    struct Id {\n        static let LauncherApp = \"wang.jianing.app.OpenInTerminalHelper\"\n        static let FinderExtension = \"wang.jianing.app.OpenInTerminal.OpenInTerminalFinderExtension\"\n        static let CustomAppCell = NSUserInterfaceItemIdentifier(rawValue: \"customAppCell\")\n        static let CustomMenuCell = NSUserInterfaceItemIdentifier(rawValue: \"customMenuCell\")\n        static let CustomInputViewController = \"CustomInputViewController\"\n    }\n    \n    static let none = \"None\"\n    \n    struct Key {\n        static let defaultTerminalShortcut = \"OIT_DefaultTerminalShortcut\"\n        static let defaultEditorShortcut = \"OIT_DefaultEditorShortcut\"\n        static let copyPathShortcut = \"OIT_CopyPathShortcut\"\n    }\n    \n    static let PreferencesStoryboard = NSStoryboard(name: \"Preferences\", bundle: nil)\n}\n\nextension NSImage {\n    \n    enum AssetIdentifier: String {\n        case StatusBarIcon\n    }\n    \n    convenience init(assetIdentifier: AssetIdentifier) {\n        self.init(named: assetIdentifier.rawValue)!\n    }\n}\n\nextension NSStoryboard {\n    \n    enum StoryboardIdentifier: String {\n        case Preferences\n    }\n    \n    convenience init(storyboardIdentifier: StoryboardIdentifier) {\n        self.init(name: storyboardIdentifier.rawValue, bundle: nil)\n    }\n}\n"
  },
  {
    "path": "OpenInTerminal/Error.swift",
    "content": "//\n//  Error.swift\n//  OpenInTerminal\n//\n//  Created by Jianing Wang on 2019/10/15.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\nimport Foundation\n\nenum OITMError: Error {\n    \n    case cannotAccessPath(_ path: String)\n    \n}\n\nextension OITMError : CustomStringConvertible {\n    \n    var description: String {\n        switch self {\n        case .cannotAccessPath(let path):\n            return \"Cannot access path: \\(path)\"\n        }\n    }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/Alacritty.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"Alacritty.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/Android Studio.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"Android Studio.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/AppCode.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"AppCode.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/Atom.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"Atom.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/BBEdit.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"BBEdit.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/CLion.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"CLion.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/CotEditor.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"CotEditor.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/Cursor.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"Cursor.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/Fleet.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"Fleet.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/Fork.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"Fork.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/Ghostty.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"Ghostty.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/GitHub Desktop.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"GitHub Desktop.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/GoLand.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"GoLand.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/IntelliJ IDEA.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"IntelliJ IDEA.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/MacVim.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"MacVim.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/Nova.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"Nova.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/PhpStorm.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"PhpStorm.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/PyCharm.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"PyCharm.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/RubyMine.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"RubyMine.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/Sublime Text.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"Sublime Text.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/Tabby.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"tabby.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/Terminal.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"Terminal.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/TextEdit.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"TextEdit.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/TextMate.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"TextMate.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/Typora.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"Typora.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/VSCodium.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"VSCodium.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/Visual Studio Code - Insiders.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"Visual Studio Code - Insiders.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/Visual Studio Code.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"Visual Studio Code.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/Warp.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"Warp.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/WebStorm.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"WebStorm.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/WezTerm.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"wezterm.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/Xcode.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"Xcode.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/Zed.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"Zed.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/context_menu_icon_color_editor.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"context_menu_icon_color_editor.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"filename\" : \"context_menu_icon_color_editor@2x.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"filename\" : \"context_menu_icon_color_editor@3x.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/context_menu_icon_color_path.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"context_menu_icon_color_path.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"filename\" : \"context_menu_icon_color_path@2x.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"filename\" : \"context_menu_icon_color_path@3x.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/context_menu_icon_color_terminal.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"context_menu_icon_color_terminal.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"filename\" : \"context_menu_icon_color_terminal@2x.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"filename\" : \"context_menu_icon_color_terminal@3x.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/context_menu_icon_editor.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"context_menu_icon_editor-1.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"light\"\n        }\n      ],\n      \"filename\" : \"context_menu_icon_editor.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"dark\"\n        }\n      ],\n      \"filename\" : \"context_menu_icon_editor_light.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"filename\" : \"context_menu_icon_editor@2x-1.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"light\"\n        }\n      ],\n      \"filename\" : \"context_menu_icon_editor@2x.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"dark\"\n        }\n      ],\n      \"filename\" : \"context_menu_icon_editor_light@2x.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"filename\" : \"context_menu_icon_editor@3x.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"light\"\n        }\n      ],\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"dark\"\n        }\n      ],\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/context_menu_icon_path.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"context_menu_icon_path-1.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"light\"\n        }\n      ],\n      \"filename\" : \"context_menu_icon_path.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"dark\"\n        }\n      ],\n      \"filename\" : \"context_menu_icon_path_light.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"filename\" : \"context_menu_icon_path@2x-1.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"light\"\n        }\n      ],\n      \"filename\" : \"context_menu_icon_path@2x.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"dark\"\n        }\n      ],\n      \"filename\" : \"context_menu_icon_path_light@2x.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"filename\" : \"context_menu_icon_path@3x.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"light\"\n        }\n      ],\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"dark\"\n        }\n      ],\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/context_menu_icon_terminal.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"context_menu_icon_terminal-1.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"light\"\n        }\n      ],\n      \"filename\" : \"context_menu_icon_terminal.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"dark\"\n        }\n      ],\n      \"filename\" : \"context_menu_icon_terminal_light.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"filename\" : \"context_menu_icon_terminal@2x-1.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"light\"\n        }\n      ],\n      \"filename\" : \"context_menu_icon_terminal@2x.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"dark\"\n        }\n      ],\n      \"filename\" : \"context_menu_icon_terminal_light@2x.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"filename\" : \"context_menu_icon_terminal@3x.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"light\"\n        }\n      ],\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"dark\"\n        }\n      ],\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/hyper.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"hyper.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/iTerm.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"iTerm.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/kitty.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"kitty.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Icons.xcassets/neovim.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"neovim.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>$(DEVELOPMENT_LANGUAGE)</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>$(MARKETING_VERSION)</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSApplicationCategoryType</key>\n\t<string>public.app-category.utilities</string>\n\t<key>LSMinimumSystemVersion</key>\n\t<string>$(MACOSX_DEPLOYMENT_TARGET)</string>\n\t<key>LSUIElement</key>\n\t<string>YES</string>\n\t<key>NSAppleEventsUsageDescription</key>\n\t<string>Please give permissions to access your Finder &amp; Terminal</string>\n\t<key>NSExtension</key>\n\t<dict>\n\t\t<key>NSExtensionAttributes</key>\n\t\t<dict/>\n\t\t<key>NSExtensionPointIdentifier</key>\n\t\t<string>com.apple.FinderSync</string>\n\t\t<key>NSExtensionPrincipalClass</key>\n\t\t<string>$(PRODUCT_MODULE_NAME).FinderSync</string>\n\t</dict>\n\t<key>NSHumanReadableCopyright</key>\n\t<string>Copyright © 2019 Jianing Wang. All rights reserved.</string>\n\t<key>NSMainNibFile</key>\n\t<string>MainMenu</string>\n\t<key>NSPrincipalClass</key>\n\t<string>NSApplication</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "OpenInTerminal/MainMenu.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.Cocoa.XIB\" version=\"3.0\" toolsVersion=\"23504\" targetRuntime=\"MacOSX.Cocoa\" propertyAccessControl=\"none\" useAutolayout=\"YES\" customObjectInstantitationMethod=\"direct\">\n    <dependencies>\n        <deployment identifier=\"macosx\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.CocoaPlugin\" version=\"23504\"/>\n    </dependencies>\n    <objects>\n        <customObject id=\"-2\" userLabel=\"File's Owner\" customClass=\"NSApplication\">\n            <connections>\n                <outlet property=\"delegate\" destination=\"c7U-hO-KhD\" id=\"6aq-AV-TWP\"/>\n            </connections>\n        </customObject>\n        <customObject id=\"-1\" userLabel=\"First Responder\" customClass=\"FirstResponder\"/>\n        <customObject id=\"-3\" userLabel=\"Application\" customClass=\"NSObject\"/>\n        <customObject id=\"YLy-65-1bz\" customClass=\"NSFontManager\"/>\n        <customObject id=\"xFr-z9-DsJ\" customClass=\"StatusMenuController\" customModule=\"OpenInTerminal\" customModuleProvider=\"target\">\n            <connections>\n                <outlet property=\"copyPathMenuItem\" destination=\"qAr-jJ-wpJ\" id=\"c6N-Ea-YRn\"/>\n                <outlet property=\"defaultEditorMenuItem\" destination=\"Zth-1M-1Lo\" id=\"bw4-82-Mty\"/>\n                <outlet property=\"defaultTerminalMenuItem\" destination=\"bMb-Lp-IHe\" id=\"bew-Bk-lA6\"/>\n                <outlet property=\"preferencesMenuItem\" destination=\"UPk-SM-iWa\" id=\"ca5-kt-bXJ\"/>\n                <outlet property=\"quitMenuItem\" destination=\"h2a-ug-O2T\" id=\"hvL-68-064\"/>\n                <outlet property=\"statusMenu\" destination=\"Hp5-zS-8KF\" id=\"0Nh-0E-UKl\"/>\n            </connections>\n        </customObject>\n        <customObject id=\"c7U-hO-KhD\" userLabel=\"Delegate\" customClass=\"AppDelegate\" customModule=\"OpenInTerminal\" customModuleProvider=\"target\">\n            <connections>\n                <outlet property=\"statusBarMenu\" destination=\"Hp5-zS-8KF\" id=\"Fp9-eh-hpZ\"/>\n            </connections>\n        </customObject>\n        <menu id=\"Hp5-zS-8KF\">\n            <items>\n                <menuItem title=\"Open in Terminal\" id=\"bMb-Lp-IHe\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <connections>\n                        <action selector=\"openDefaultTerminal:\" target=\"xFr-z9-DsJ\" id=\"AiG-rU-N3Y\"/>\n                    </connections>\n                </menuItem>\n                <menuItem title=\"Open in Editor\" id=\"Zth-1M-1Lo\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <connections>\n                        <action selector=\"openDefaultEditor:\" target=\"xFr-z9-DsJ\" id=\"McZ-8S-4C0\"/>\n                    </connections>\n                </menuItem>\n                <menuItem title=\"Copy path to Clipboard\" id=\"qAr-jJ-wpJ\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <connections>\n                        <action selector=\"copyPathToClipboard:\" target=\"xFr-z9-DsJ\" id=\"g3F-O4-Ydf\"/>\n                    </connections>\n                </menuItem>\n                <menuItem isSeparatorItem=\"YES\" id=\"s0I-d5-G8a\"/>\n                <menuItem title=\"Preferences...\" id=\"UPk-SM-iWa\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <connections>\n                        <action selector=\"showPreferences:\" target=\"xFr-z9-DsJ\" id=\"ePD-XV-Rfn\"/>\n                    </connections>\n                </menuItem>\n                <menuItem title=\"Quit\" id=\"h2a-ug-O2T\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <connections>\n                        <action selector=\"quit:\" target=\"xFr-z9-DsJ\" id=\"fn6-gp-8xq\"/>\n                    </connections>\n                </menuItem>\n            </items>\n            <point key=\"canvasLocation\" x=\"-698\" y=\"-192\"/>\n        </menu>\n    </objects>\n</document>\n"
  },
  {
    "path": "OpenInTerminal/Notifier/LaunchNotifier.swift",
    "content": "//\n//  LaunchNotifier.swift\n//  OpenInTerminal\n//\n//  Created by Jianing Wang on 2019/4/27.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\nimport Foundation\n\npublic class LaunchNotifier: Notifier {\n    \n    public enum Notification: String {\n        case terminateApp\n    }\n    \n}\n"
  },
  {
    "path": "OpenInTerminal/Notifier/Notifier.swift",
    "content": "//\n//  Notifier.swift\n//  OpenInTerminal\n//\n//  Created by Jianing Wang on 2019/4/19.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\nimport Foundation\n\npublic protocol Notifier {\n    associatedtype Notification: RawRepresentable\n}\n\npublic extension Notifier where Notification.RawValue == String {\n    \n    // MARK: - Static Computed Variables\n    \n    private static func nameFor(notification: Notification) -> String {\n        return \"\\(self).\\(notification.rawValue)\"\n    }\n    \n    \n    // MARK: - Instance Methods\n    \n    // Post\n    \n    func postNotification(notification: Notification, object: String? = nil) {\n        Self.postNotification(notification, object: object)\n    }\n    \n    func postNotification(notification: Notification, object: String? = nil, userInfo: [String : AnyObject]? = nil) {\n        Self.postNotification(notification, object: object, userInfo: userInfo)\n    }\n    \n    \n    // MARK: - Static Function\n    \n    // Post\n    \n    static func postNotification(_ notification: Notification, object: String? = nil, userInfo: [AnyHashable : Any]? = nil) {\n        let name = nameFor(notification: notification)\n        \n        DistributedNotificationCenter.default()\n            .postNotificationName(NSNotification.Name(rawValue: name), object: object, userInfo: userInfo, deliverImmediately: true)\n    }\n    \n    // Add\n    \n    static func addObserver(observer: AnyObject, selector: Selector, notification: Notification, object: String? = nil) {\n        let name = nameFor(notification: notification)\n        \n        DistributedNotificationCenter.default()\n            .addObserver(observer, selector: selector, name: NSNotification.Name(rawValue: name), object: object)\n    }\n    \n    // Remove\n    \n    static func removeObserver(observer: AnyObject, notification: Notification, object: String? = nil) {\n        let name = nameFor(notification: notification)\n        \n        DistributedNotificationCenter.default()\n            .removeObserver(observer, name: NSNotification.Name(rawValue: name), object: object)\n    }\n}\n"
  },
  {
    "path": "OpenInTerminal/Notifier/OpenNotifier.swift",
    "content": "//\n//  OpenManager.swift\n//  OpenInTerminal\n//\n//  Created by Jianing Wang on 2019/4/19.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\nimport Foundation\n\npublic class OpenNotifier: Notifier {\n\n    public enum Notification: String {\n        case openDefaultTerminal\n        case openDefaultEditor\n        case copyPathToClipboard\n    }\n    \n}\n"
  },
  {
    "path": "OpenInTerminal/OpenInTerminal.entitlements",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>com.apple.security.application-groups</key>\n\t<array>\n\t\t<string>group.wang.jianing.app.OpenInTerminal</string>\n\t</array>\n\t<key>com.apple.security.automation.apple-events</key>\n\t<true/>\n\t<key>com.apple.security.temporary-exception.apple-events</key>\n\t<array>\n\t\t<string>com.apple.systemevents</string>\n\t\t<string>com.apple.Terminal</string>\n\t\t<string>com.apple.Finder</string>\n\t\t<string>com.googlecode.iterm2</string>\n\t\t<string>co.zeit.hyper</string>\n\t\t<string>io.alacritty</string>\n\t\t<string>com.github.wez.wezterm</string>\n\t\t<string>org.tabby</string>\n\t\t<string>com.microsoft.VSCode</string>\n\t\t<string>com.github.atom</string>\n\t\t<string>com.sublimetext.3</string>\n\t\t<string>com.barebones.bbedit</string>\n\t\t<string>com.microsoft.VSCodeInsiders</string>\n\t\t<string>com.macromates.TextMate</string>\n\t\t<string>net.kovidgoyal.kitty</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "OpenInTerminal/PreferencesWindow/AboutPreferencesViewController.swift",
    "content": "//\n//  AboutPreferencesViewController.swift\n//  OpenInTerminal\n//\n//  Created by Jianing Wang on 2019/5/1.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\nimport Cocoa\n\nclass AboutPreferencesViewController: PreferencesViewController {\n\n    @IBOutlet weak var versionLabel: NSTextField!\n    \n    override func viewDidLoad() {\n        super.viewDidLoad()\n        \n        let versionObject = Bundle.main.infoDictionary?[\"CFBundleShortVersionString\"]\n        versionLabel.stringValue = versionObject as? String ?? \"\"\n    }\n    \n    @IBAction func githubButtonClicked(_ sender: NSButton) {\n        guard let url = URL(string: \"https://github.com/Ji4n1ng/OpenInTerminal\") else { return }\n        NSWorkspace.shared.open(url)\n    }\n    \n    @IBAction func contactButtonClicked(_ sender: NSButton) {\n        guard let url = URL(string: \"mailto:contact@jianing.wang?subject=OpenInTerminal%20Feedback\") else { return }\n        NSWorkspace.shared.open(url)\n    }\n    \n    @IBAction func twitterButtonClicked(_ sender: NSButton) {\n        guard let url = URL(string: \"https://twitter.com/Ji4n1ng\") else { return }\n        NSWorkspace.shared.open(url)\n    }\n    \n    @IBAction func githubSponsorsButtonClicked(_ sender: NSButton) {\n        guard let url = URL(string: \"https://github.com/sponsors/Ji4n1ng\") else { return }\n        NSWorkspace.shared.open(url)\n    }\n    \n    @IBAction func paypalButtonClicked(_ sender: NSButton) {\n        guard let url = URL(string: \"https://paypal.me/ji4ning\") else { return }\n        NSWorkspace.shared.open(url)\n    }\n    \n    @IBAction func alipayButtonClicked(_ sender: NSButton) {\n        guard let url = URL(string: \"https://github.com/Ji4n1ng/OpenInTerminal/blob/master/Resources/Support-Alipay.jpg\") else { return }\n        NSWorkspace.shared.open(url)\n    }\n    \n    @IBAction func weChatPayButtonClicked(_ sender: NSButton) {\n        guard let url = URL(string: \"https://github.com/Ji4n1ng/OpenInTerminal/blob/master/Resources/Support-WeChatPay.jpg\") else { return }\n        NSWorkspace.shared.open(url)\n    }\n    \n    @IBAction func camji55ButtonClicked(_ sender: NSButton) {\n        guard let url = URL(string: \"https://github.com/Camji55\") else { return }\n        NSWorkspace.shared.open(url)   \n    }\n}\n\nclass LinkButton: NSButton {\n    required init?(coder: NSCoder) {\n        super.init(coder: coder)\n    }\n    \n    override func resetCursorRects() {\n        addCursorRect(self.bounds, cursor: .pointingHand)\n    }\n}\n"
  },
  {
    "path": "OpenInTerminal/PreferencesWindow/AdvancedPreferencesViewController.swift",
    "content": "//\n//  AdvancedPreferencesViewController.swift\n//  OpenInTerminal\n//\n//  Created by Jianing Wang on 2019/5/5.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\nimport Cocoa\nimport OpenInTerminalCore\nimport ServiceManagement\nimport ShortcutRecorder\n\nclass AdvancedPreferencesViewController: PreferencesViewController {\n    \n    @IBOutlet weak var defaultTerminalShortcut: RecorderControl!\n    @IBOutlet weak var defaultEditorShortcut: RecorderControl!\n    @IBOutlet weak var copyPathShortcut: RecorderControl!\n    @IBOutlet weak var resetPreferencesButton: NSButton!\n    \n    // MARK: Lifecycle\n    \n    override func viewDidLoad() {\n        super.viewDidLoad()\n        \n        defaultTerminalShortcut.bind(.value, to: Defaults, withKeyPath: Constants.Key.defaultTerminalShortcut)\n        defaultEditorShortcut.bind(.value, to: Defaults, withKeyPath: Constants.Key.defaultEditorShortcut)\n        copyPathShortcut.bind(.value, to: Defaults, withKeyPath: Constants.Key.copyPathShortcut)\n    }\n    \n    \n    // MARK: Button Actions\n    \n    @IBAction func resetPreferencesButtonClicked(_ sender: NSButton) {\n        let alert = NSAlert()\n        \n        alert.messageText = NSLocalizedString(\"alert.reset_preferences_title\", comment: \"Reset User Preferences?\")\n        alert.informativeText = NSLocalizedString(\"alert.reset_preferences_description\", comment: \"⚠️ Note that this will reset all user preferences\")\n        \n        // Add button and avoid the focus ring\n        let cancelString = NSLocalizedString(\"general.cancel\", comment: \"Cancel\")\n        alert.addButton(withTitle: cancelString).refusesFirstResponder = true\n        \n        let yesString = NSLocalizedString(\"general.yes\", comment: \"Yes\")\n        alert.addButton(withTitle: yesString).refusesFirstResponder = true\n        \n        let modalResult = alert.runModal()\n        \n        switch modalResult {\n        case .alertFirstButtonReturn:\n            print(\"Cancel Resetting User Preferences\")\n        case .alertSecondButtonReturn:\n            logw(\"Reset User Preferences\")\n            SMLoginItemSetEnabled(Constants.Id.LauncherApp as CFString, false)\n            DefaultsManager.shared.removeAllUserDefaults()\n            DefaultsManager.shared.firstSetup()\n            let appDelegate = NSApplication.shared.delegate as! AppDelegate\n            appDelegate.setStatusToggle()\n        default:\n            print(\"Cancel Resetting User Preferences\")\n        }\n    }\n    \n    @IBAction func quitButtonClicked(_ sender: NSButton) {\n        LaunchNotifier.postNotification(.terminateApp, object: Bundle.main.bundleIdentifier!)\n        NSApp.terminate(self)\n    }\n    \n}\n"
  },
  {
    "path": "OpenInTerminal/PreferencesWindow/Base.lproj/Preferences.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"23504\" targetRuntime=\"MacOSX.Cocoa\" propertyAccessControl=\"none\" useAutolayout=\"YES\" initialViewController=\"oOf-8k-ODW\">\n    <dependencies>\n        <deployment version=\"101304\" identifier=\"macosx\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.CocoaPlugin\" version=\"23504\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--Window Controller-->\n        <scene sceneID=\"HW7-s8-hqp\">\n            <objects>\n                <customObject id=\"ov8-72-M4k\" userLabel=\"First Responder\" customClass=\"NSResponder\" sceneMemberID=\"firstResponder\"/>\n                <windowController id=\"oOf-8k-ODW\" customClass=\"PreferencesWindowController\" customModule=\"OpenInTerminal\" customModuleProvider=\"target\" sceneMemberID=\"viewController\">\n                    <window key=\"window\" title=\"Preferences\" autorecalculatesKeyViewLoop=\"NO\" releasedWhenClosed=\"NO\" visibleAtLaunch=\"NO\" frameAutosaveName=\"\" animationBehavior=\"default\" id=\"5f3-UK-Rft\">\n                        <windowStyleMask key=\"styleMask\" titled=\"YES\" closable=\"YES\" miniaturizable=\"YES\"/>\n                        <windowPositionMask key=\"initialPositionMask\" leftStrut=\"YES\" rightStrut=\"YES\" topStrut=\"YES\" bottomStrut=\"YES\"/>\n                        <rect key=\"contentRect\" x=\"425\" y=\"461\" width=\"350\" height=\"270\"/>\n                        <rect key=\"screenRect\" x=\"0.0\" y=\"0.0\" width=\"2560\" height=\"1417\"/>\n                        <connections>\n                            <outlet property=\"delegate\" destination=\"oOf-8k-ODW\" id=\"NBT-Aq-4Qd\"/>\n                        </connections>\n                    </window>\n                    <connections>\n                        <segue destination=\"yBJ-jB-chi\" kind=\"relationship\" relationship=\"window.shadowedContentViewController\" id=\"EQ5-V4-wnd\"/>\n                    </connections>\n                </windowController>\n            </objects>\n            <point key=\"canvasLocation\" x=\"-730\" y=\"449\"/>\n        </scene>\n        <!--Tab View Controller-->\n        <scene sceneID=\"gky-gQ-lB6\">\n            <objects>\n                <tabViewController selectedTabViewItemIndex=\"0\" tabStyle=\"toolbar\" id=\"yBJ-jB-chi\" sceneMemberID=\"viewController\">\n                    <tabViewItems>\n                        <tabViewItem identifier=\"\" image=\"NSPreferencesGeneral\" id=\"87n-1W-bcb\"/>\n                        <tabViewItem image=\"ToolbarCustomize\" id=\"nuJ-iU-x7x\"/>\n                        <tabViewItem image=\"NSAdvanced\" id=\"gmA-Me-2UL\"/>\n                        <tabViewItem image=\"logo\" id=\"F6w-SR-MIp\"/>\n                    </tabViewItems>\n                    <viewControllerTransitionOptions key=\"transitionOptions\" allowUserInteraction=\"YES\"/>\n                    <tabView key=\"tabView\" type=\"noTabsNoBorder\" id=\"L0t-Of-tQY\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"400\" height=\"300\"/>\n                        <autoresizingMask key=\"autoresizingMask\"/>\n                        <font key=\"font\" metaFont=\"system\"/>\n                        <connections>\n                            <outlet property=\"delegate\" destination=\"yBJ-jB-chi\" id=\"yO6-lB-wYs\"/>\n                        </connections>\n                    </tabView>\n                    <connections>\n                        <outlet property=\"tabView\" destination=\"L0t-Of-tQY\" id=\"PaA-k2-tlX\"/>\n                        <segue destination=\"Gn1-zC-bzB\" kind=\"relationship\" relationship=\"tabItems\" id=\"kJo-Dr-36g\"/>\n                        <segue destination=\"s5W-qL-1Xs\" kind=\"relationship\" relationship=\"tabItems\" id=\"VpS-dg-hMc\"/>\n                        <segue destination=\"H3q-JS-Bu4\" kind=\"relationship\" relationship=\"tabItems\" id=\"rqi-WK-zvU\"/>\n                        <segue destination=\"k6X-N1-mVu\" kind=\"relationship\" relationship=\"tabItems\" id=\"1b4-g9-rGj\"/>\n                    </connections>\n                </tabViewController>\n                <customObject id=\"VVe-AG-gU7\" userLabel=\"First Responder\" customClass=\"NSResponder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"-37\" y=\"441\"/>\n        </scene>\n        <!--General-->\n        <scene sceneID=\"lyQ-BP-dP2\">\n            <objects>\n                <viewController title=\"General\" id=\"Gn1-zC-bzB\" customClass=\"GeneralPreferencesViewController\" customModule=\"OpenInTerminal\" customModuleProvider=\"target\" sceneMemberID=\"viewController\">\n                    <view key=\"view\" focusRingType=\"none\" id=\"T7Z-PU-Qyb\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"382\" height=\"356\"/>\n                        <autoresizingMask key=\"autoresizingMask\"/>\n                        <subviews>\n                            <stackView distribution=\"fill\" orientation=\"vertical\" alignment=\"leading\" horizontalStackHuggingPriority=\"249.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"mA5-EO-f9U\">\n                                <rect key=\"frame\" x=\"20\" y=\"140\" width=\"342\" height=\"196\"/>\n                                <subviews>\n                                    <button verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"Sat-kH-K8O\">\n                                        <rect key=\"frame\" x=\"-2\" y=\"179\" width=\"220\" height=\"18\"/>\n                                        <buttonCell key=\"cell\" type=\"check\" title=\"Launch OpenInTerminal at Login\" bezelStyle=\"regularSquare\" imagePosition=\"left\" state=\"on\" inset=\"2\" id=\"ZbK-xW-anT\">\n                                            <behavior key=\"behavior\" changeContents=\"YES\" doesNotDimImage=\"YES\" lightByContents=\"YES\"/>\n                                            <font key=\"font\" metaFont=\"system\"/>\n                                        </buttonCell>\n                                        <connections>\n                                            <action selector=\"launchButtonClicked:\" target=\"Gn1-zC-bzB\" id=\"e8e-Xt-vgc\"/>\n                                        </connections>\n                                    </button>\n                                    <textField focusRingType=\"none\" verticalHuggingPriority=\"750\" horizontalCompressionResistancePriority=\"250\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"ct1-0Y-gVn\">\n                                        <rect key=\"frame\" x=\"18\" y=\"158\" width=\"262\" height=\"14\"/>\n                                        <textFieldCell key=\"cell\" selectable=\"YES\" title=\"OpenInTerminal will automatically launch at login.\" id=\"ngT-lX-vFA\">\n                                            <font key=\"font\" metaFont=\"menu\" size=\"11\"/>\n                                            <color key=\"textColor\" name=\"secondaryLabelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                        </textFieldCell>\n                                    </textField>\n                                    <button horizontalHuggingPriority=\"1000\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"VGA-Ho-z5c\">\n                                        <rect key=\"frame\" x=\"-2\" y=\"133\" width=\"106\" height=\"18\"/>\n                                        <buttonCell key=\"cell\" type=\"check\" title=\"Quick Toggle\" bezelStyle=\"regularSquare\" imagePosition=\"left\" state=\"on\" inset=\"2\" id=\"gy9-lb-m8d\">\n                                            <behavior key=\"behavior\" changeContents=\"YES\" doesNotDimImage=\"YES\" lightByContents=\"YES\"/>\n                                            <font key=\"font\" metaFont=\"system\"/>\n                                        </buttonCell>\n                                        <connections>\n                                            <action selector=\"quickToggleButtonClicked:\" target=\"Gn1-zC-bzB\" id=\"fef-kU-b94\"/>\n                                        </connections>\n                                    </button>\n                                    <popUpButton verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"Kdm-9l-2u4\">\n                                        <rect key=\"frame\" x=\"17\" y=\"102\" width=\"329\" height=\"25\"/>\n                                        <popUpButtonCell key=\"cell\" type=\"push\" bezelStyle=\"rounded\" alignment=\"left\" lineBreakMode=\"truncatingTail\" borderStyle=\"borderAndBezel\" imageScaling=\"proportionallyDown\" inset=\"2\" id=\"Bct-qW-a6h\">\n                                            <behavior key=\"behavior\" lightByBackground=\"YES\" lightByGray=\"YES\"/>\n                                            <font key=\"font\" metaFont=\"message\"/>\n                                            <menu key=\"menu\" id=\"5wI-2k-ZrL\"/>\n                                        </popUpButtonCell>\n                                    </popUpButton>\n                                    <textField focusRingType=\"none\" verticalHuggingPriority=\"750\" horizontalCompressionResistancePriority=\"250\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"ybg-LK-qWi\">\n                                        <rect key=\"frame\" x=\"18\" y=\"70\" width=\"326\" height=\"28\"/>\n                                        <textFieldCell key=\"cell\" title=\"If enabled, click the Menu Bar icon to toggle the action you choose. Right click to open the menu.\" id=\"592-4p-Ybh\">\n                                            <font key=\"font\" metaFont=\"menu\" size=\"11\"/>\n                                            <color key=\"textColor\" name=\"secondaryLabelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                        </textFieldCell>\n                                    </textField>\n                                    <button horizontalHuggingPriority=\"1000\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"r3V-mR-QUG\">\n                                        <rect key=\"frame\" x=\"-2\" y=\"45\" width=\"150\" height=\"18\"/>\n                                        <buttonCell key=\"cell\" type=\"check\" title=\"Hide Status Bar Icon\" bezelStyle=\"regularSquare\" imagePosition=\"left\" state=\"on\" inset=\"2\" id=\"BUH-CU-WBW\">\n                                            <behavior key=\"behavior\" changeContents=\"YES\" doesNotDimImage=\"YES\" lightByContents=\"YES\"/>\n                                            <font key=\"font\" metaFont=\"system\"/>\n                                        </buttonCell>\n                                        <connections>\n                                            <action selector=\"hideStatusItemButtonTapped:\" target=\"Gn1-zC-bzB\" id=\"AHM-dd-Yts\"/>\n                                        </connections>\n                                    </button>\n                                    <textField focusRingType=\"none\" verticalHuggingPriority=\"750\" horizontalCompressionResistancePriority=\"250\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"6Fo-aC-2Mp\">\n                                        <rect key=\"frame\" x=\"18\" y=\"24\" width=\"273\" height=\"14\"/>\n                                        <textFieldCell key=\"cell\" title=\"You need to reopen the app to display Preferences.\" id=\"Upf-HU-iaN\">\n                                            <font key=\"font\" metaFont=\"menu\" size=\"11\"/>\n                                            <color key=\"textColor\" name=\"secondaryLabelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                        </textFieldCell>\n                                    </textField>\n                                    <button horizontalHuggingPriority=\"1000\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"ahb-Ye-oiL\">\n                                        <rect key=\"frame\" x=\"-2\" y=\"-1\" width=\"180\" height=\"18\"/>\n                                        <buttonCell key=\"cell\" type=\"check\" title=\"Hide Context Menu Items\" bezelStyle=\"regularSquare\" imagePosition=\"left\" state=\"on\" inset=\"2\" id=\"sG4-nK-ghj\">\n                                            <behavior key=\"behavior\" changeContents=\"YES\" doesNotDimImage=\"YES\" lightByContents=\"YES\"/>\n                                            <font key=\"font\" metaFont=\"system\"/>\n                                        </buttonCell>\n                                        <connections>\n                                            <action selector=\"hideContextMenuItemsButtonTapped:\" target=\"Gn1-zC-bzB\" id=\"dK0-f3-OU3\"/>\n                                        </connections>\n                                    </button>\n                                </subviews>\n                                <constraints>\n                                    <constraint firstItem=\"ct1-0Y-gVn\" firstAttribute=\"leading\" secondItem=\"mA5-EO-f9U\" secondAttribute=\"leading\" constant=\"20\" id=\"662-zn-0gM\"/>\n                                    <constraint firstItem=\"6Fo-aC-2Mp\" firstAttribute=\"leading\" secondItem=\"mA5-EO-f9U\" secondAttribute=\"leading\" constant=\"20\" id=\"8uS-S9-Jls\"/>\n                                    <constraint firstAttribute=\"trailing\" secondItem=\"Kdm-9l-2u4\" secondAttribute=\"trailing\" id=\"ZCx-ja-8mJ\"/>\n                                    <constraint firstItem=\"Kdm-9l-2u4\" firstAttribute=\"leading\" secondItem=\"mA5-EO-f9U\" secondAttribute=\"leading\" constant=\"20\" id=\"cZR-9S-S5P\"/>\n                                    <constraint firstItem=\"ybg-LK-qWi\" firstAttribute=\"leading\" secondItem=\"mA5-EO-f9U\" secondAttribute=\"leading\" constant=\"20\" id=\"tX6-7b-1oR\"/>\n                                </constraints>\n                                <visibilityPriorities>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                </visibilityPriorities>\n                                <customSpacing>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                </customSpacing>\n                            </stackView>\n                            <box titlePosition=\"noTitle\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"siD-hz-NIk\">\n                                <rect key=\"frame\" x=\"20\" y=\"16\" width=\"342\" height=\"106\"/>\n                                <view key=\"contentView\" id=\"JZS-d4-7Et\">\n                                    <rect key=\"frame\" x=\"4\" y=\"5\" width=\"334\" height=\"98\"/>\n                                    <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                                    <subviews>\n                                        <textField focusRingType=\"none\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"Mkc-zC-sfG\">\n                                            <rect key=\"frame\" x=\"40\" y=\"61\" width=\"107\" height=\"16\"/>\n                                            <textFieldCell key=\"cell\" lineBreakMode=\"clipping\" alignment=\"right\" title=\"Default Terminal:\" id=\"aRo-sy-WpK\">\n                                                <font key=\"font\" usesAppearanceFont=\"YES\"/>\n                                                <color key=\"textColor\" name=\"labelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            </textFieldCell>\n                                        </textField>\n                                        <textField focusRingType=\"none\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"0O8-UX-yZT\">\n                                            <rect key=\"frame\" x=\"27\" y=\"20\" width=\"120\" height=\"16\"/>\n                                            <textFieldCell key=\"cell\" lineBreakMode=\"clipping\" alignment=\"right\" title=\"Default Text Editor:\" id=\"Xfc-rf-FkX\">\n                                                <font key=\"font\" usesAppearanceFont=\"YES\"/>\n                                                <color key=\"textColor\" name=\"labelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            </textFieldCell>\n                                        </textField>\n                                        <popUpButton verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"AaU-k8-Gb7\">\n                                            <rect key=\"frame\" x=\"160\" y=\"55\" width=\"158\" height=\"25\"/>\n                                            <popUpButtonCell key=\"cell\" type=\"push\" bezelStyle=\"rounded\" alignment=\"left\" lineBreakMode=\"truncatingTail\" borderStyle=\"borderAndBezel\" imageScaling=\"proportionallyDown\" inset=\"2\" id=\"vl7-Er-jal\">\n                                                <behavior key=\"behavior\" lightByBackground=\"YES\" lightByGray=\"YES\"/>\n                                                <font key=\"font\" metaFont=\"message\"/>\n                                                <menu key=\"menu\" id=\"hTS-Lg-LKV\"/>\n                                            </popUpButtonCell>\n                                            <connections>\n                                                <action selector=\"defaultTerminalButtonClicked:\" target=\"Gn1-zC-bzB\" id=\"KuC-2Y-YvG\"/>\n                                            </connections>\n                                        </popUpButton>\n                                        <popUpButton verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"R8D-f0-J22\">\n                                            <rect key=\"frame\" x=\"160\" y=\"13\" width=\"158\" height=\"25\"/>\n                                            <popUpButtonCell key=\"cell\" type=\"push\" bezelStyle=\"rounded\" alignment=\"left\" lineBreakMode=\"truncatingTail\" borderStyle=\"borderAndBezel\" imageScaling=\"proportionallyDown\" inset=\"2\" id=\"sHo-F2-jzK\">\n                                                <behavior key=\"behavior\" lightByBackground=\"YES\" lightByGray=\"YES\"/>\n                                                <font key=\"font\" metaFont=\"message\"/>\n                                                <menu key=\"menu\" id=\"9Kd-Lm-gKf\"/>\n                                            </popUpButtonCell>\n                                            <constraints>\n                                                <constraint firstAttribute=\"width\" relation=\"greaterThanOrEqual\" constant=\"151\" id=\"frh-4C-o9Z\"/>\n                                            </constraints>\n                                            <connections>\n                                                <action selector=\"defaultEditorButtonClicked:\" target=\"Gn1-zC-bzB\" id=\"FGq-Du-JmR\"/>\n                                            </connections>\n                                        </popUpButton>\n                                    </subviews>\n                                    <constraints>\n                                        <constraint firstItem=\"AaU-k8-Gb7\" firstAttribute=\"width\" relation=\"greaterThanOrEqual\" secondItem=\"R8D-f0-J22\" secondAttribute=\"width\" id=\"03y-qV-z2A\"/>\n                                        <constraint firstAttribute=\"trailing\" secondItem=\"AaU-k8-Gb7\" secondAttribute=\"trailing\" constant=\"20\" id=\"4Ta-hP-Jfs\"/>\n                                        <constraint firstAttribute=\"bottom\" secondItem=\"R8D-f0-J22\" secondAttribute=\"bottom\" constant=\"17\" id=\"MKz-9b-cJa\"/>\n                                        <constraint firstItem=\"0O8-UX-yZT\" firstAttribute=\"top\" secondItem=\"Mkc-zC-sfG\" secondAttribute=\"bottom\" constant=\"25\" id=\"Nam-5l-lnw\"/>\n                                        <constraint firstItem=\"R8D-f0-J22\" firstAttribute=\"leading\" secondItem=\"0O8-UX-yZT\" secondAttribute=\"trailing\" constant=\"18\" id=\"OIZ-DU-GT2\"/>\n                                        <constraint firstItem=\"Mkc-zC-sfG\" firstAttribute=\"leading\" secondItem=\"JZS-d4-7Et\" secondAttribute=\"leading\" constant=\"42\" id=\"PAf-H7-e9s\"/>\n                                        <constraint firstAttribute=\"trailing\" secondItem=\"R8D-f0-J22\" secondAttribute=\"trailing\" constant=\"20\" id=\"PKj-Tn-BmO\"/>\n                                        <constraint firstItem=\"Mkc-zC-sfG\" firstAttribute=\"top\" secondItem=\"JZS-d4-7Et\" secondAttribute=\"top\" constant=\"21\" id=\"Snn-pq-Jsx\"/>\n                                        <constraint firstItem=\"0O8-UX-yZT\" firstAttribute=\"leading\" secondItem=\"JZS-d4-7Et\" secondAttribute=\"leading\" constant=\"29\" id=\"kgA-RI-dDU\"/>\n                                        <constraint firstItem=\"R8D-f0-J22\" firstAttribute=\"top\" secondItem=\"AaU-k8-Gb7\" secondAttribute=\"bottom\" constant=\"22\" id=\"n9y-4Q-TEc\"/>\n                                        <constraint firstAttribute=\"bottom\" secondItem=\"0O8-UX-yZT\" secondAttribute=\"bottom\" constant=\"20\" id=\"rKm-p9-tMC\"/>\n                                        <constraint firstItem=\"AaU-k8-Gb7\" firstAttribute=\"leading\" secondItem=\"Mkc-zC-sfG\" secondAttribute=\"trailing\" constant=\"18\" id=\"yNv-Os-FkI\"/>\n                                    </constraints>\n                                </view>\n                            </box>\n                        </subviews>\n                        <constraints>\n                            <constraint firstAttribute=\"bottom\" secondItem=\"siD-hz-NIk\" secondAttribute=\"bottom\" constant=\"20\" id=\"5aW-FJ-t4i\"/>\n                            <constraint firstItem=\"mA5-EO-f9U\" firstAttribute=\"top\" secondItem=\"T7Z-PU-Qyb\" secondAttribute=\"top\" constant=\"20\" id=\"E81-CE-vQp\"/>\n                            <constraint firstAttribute=\"trailing\" secondItem=\"mA5-EO-f9U\" secondAttribute=\"trailing\" constant=\"20\" id=\"b3h-DF-hEc\"/>\n                            <constraint firstItem=\"mA5-EO-f9U\" firstAttribute=\"leading\" secondItem=\"T7Z-PU-Qyb\" secondAttribute=\"leading\" constant=\"20\" id=\"it4-1i-mzk\"/>\n                            <constraint firstItem=\"siD-hz-NIk\" firstAttribute=\"leading\" secondItem=\"T7Z-PU-Qyb\" secondAttribute=\"leading\" constant=\"23\" id=\"sDM-Za-QeF\"/>\n                            <constraint firstAttribute=\"trailing\" secondItem=\"siD-hz-NIk\" secondAttribute=\"trailing\" constant=\"23\" id=\"skE-Qw-EmW\"/>\n                            <constraint firstItem=\"siD-hz-NIk\" firstAttribute=\"top\" secondItem=\"mA5-EO-f9U\" secondAttribute=\"bottom\" constant=\"20\" id=\"w4h-PB-niL\"/>\n                        </constraints>\n                    </view>\n                    <connections>\n                        <outlet property=\"chooseToggleActionButton\" destination=\"Kdm-9l-2u4\" id=\"FlA-5C-clg\"/>\n                        <outlet property=\"defaultEditorButton\" destination=\"R8D-f0-J22\" id=\"krg-qv-BAe\"/>\n                        <outlet property=\"defaultTerminalButton\" destination=\"AaU-k8-Gb7\" id=\"bmA-od-3vf\"/>\n                        <outlet property=\"hideContextMemuItemsButton\" destination=\"ahb-Ye-oiL\" id=\"pGz-wd-uOe\"/>\n                        <outlet property=\"hideStatusItemButton\" destination=\"r3V-mR-QUG\" id=\"dcb-ua-B4X\"/>\n                        <outlet property=\"launchButton\" destination=\"Sat-kH-K8O\" id=\"ULF-Ao-sZa\"/>\n                        <outlet property=\"quickToggleButton\" destination=\"VGA-Ho-z5c\" id=\"Z2a-fo-5GU\"/>\n                    </connections>\n                </viewController>\n                <customObject id=\"7th-7A-0Xc\" userLabel=\"First Responder\" customClass=\"NSResponder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"-616\" y=\"1117\"/>\n        </scene>\n        <!--Custom-->\n        <scene sceneID=\"75c-0T-1MT\">\n            <objects>\n                <viewController title=\"Custom\" id=\"s5W-qL-1Xs\" customClass=\"CustomPreferencesViewController\" customModule=\"OpenInTerminal\" customModuleProvider=\"target\" sceneMemberID=\"viewController\">\n                    <view key=\"view\" focusRingType=\"none\" id=\"jOR-Px-swx\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"429\" height=\"510\"/>\n                        <autoresizingMask key=\"autoresizingMask\"/>\n                        <subviews>\n                            <stackView distribution=\"fill\" orientation=\"vertical\" alignment=\"leading\" horizontalStackHuggingPriority=\"249.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"pxi-dF-LO8\">\n                                <rect key=\"frame\" x=\"20\" y=\"20\" width=\"389\" height=\"470\"/>\n                                <subviews>\n                                    <stackView distribution=\"fill\" orientation=\"vertical\" alignment=\"leading\" horizontalStackHuggingPriority=\"249.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"YWa-Sl-b4M\">\n                                        <rect key=\"frame\" x=\"0.0\" y=\"432\" width=\"207\" height=\"38\"/>\n                                        <subviews>\n                                            <textField focusRingType=\"none\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"btg-Vx-4Pl\">\n                                                <rect key=\"frame\" x=\"-2\" y=\"22\" width=\"211\" height=\"16\"/>\n                                                <textFieldCell key=\"cell\" lineBreakMode=\"clipping\" title=\"Installed Supported Applications\" id=\"bT7-LU-sov\">\n                                                    <font key=\"font\" metaFont=\"systemSemibold\" size=\"13\"/>\n                                                    <color key=\"textColor\" name=\"labelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                    <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                </textFieldCell>\n                                            </textField>\n                                            <textField focusRingType=\"none\" verticalHuggingPriority=\"750\" horizontalCompressionResistancePriority=\"250\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"7kH-Hl-lwO\">\n                                                <rect key=\"frame\" x=\"18\" y=\"0.0\" width=\"32\" height=\"14\"/>\n                                                <textFieldCell key=\"cell\" title=\"None\" id=\"G69-k2-hgn\">\n                                                    <font key=\"font\" metaFont=\"message\" size=\"11\"/>\n                                                    <color key=\"textColor\" name=\"labelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                    <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                </textFieldCell>\n                                            </textField>\n                                        </subviews>\n                                        <constraints>\n                                            <constraint firstItem=\"7kH-Hl-lwO\" firstAttribute=\"leading\" secondItem=\"YWa-Sl-b4M\" secondAttribute=\"leading\" constant=\"20\" id=\"lf8-DG-xJ4\"/>\n                                        </constraints>\n                                        <visibilityPriorities>\n                                            <integer value=\"1000\"/>\n                                            <integer value=\"1000\"/>\n                                        </visibilityPriorities>\n                                        <customSpacing>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                        </customSpacing>\n                                    </stackView>\n                                    <stackView distribution=\"fill\" orientation=\"vertical\" alignment=\"leading\" horizontalStackHuggingPriority=\"249.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"rUc-r1-QAo\">\n                                        <rect key=\"frame\" x=\"0.0\" y=\"386\" width=\"163\" height=\"38\"/>\n                                        <subviews>\n                                            <textField focusRingType=\"none\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"Mx4-aq-XS9\">\n                                                <rect key=\"frame\" x=\"-2\" y=\"22\" width=\"167\" height=\"16\"/>\n                                                <textFieldCell key=\"cell\" lineBreakMode=\"clipping\" title=\"Not Installed Applications\" id=\"bCi-r8-MrK\">\n                                                    <font key=\"font\" metaFont=\"systemSemibold\" size=\"13\"/>\n                                                    <color key=\"textColor\" name=\"labelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                    <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                </textFieldCell>\n                                            </textField>\n                                            <textField focusRingType=\"none\" verticalHuggingPriority=\"750\" horizontalCompressionResistancePriority=\"250\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"e8s-z7-dmZ\">\n                                                <rect key=\"frame\" x=\"18\" y=\"0.0\" width=\"32\" height=\"14\"/>\n                                                <textFieldCell key=\"cell\" title=\"None\" id=\"Dyx-zg-hYe\">\n                                                    <font key=\"font\" metaFont=\"message\" size=\"11\"/>\n                                                    <color key=\"textColor\" name=\"secondaryLabelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                    <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                </textFieldCell>\n                                            </textField>\n                                        </subviews>\n                                        <constraints>\n                                            <constraint firstItem=\"e8s-z7-dmZ\" firstAttribute=\"leading\" secondItem=\"rUc-r1-QAo\" secondAttribute=\"leading\" constant=\"20\" id=\"3dN-g5-OO0\"/>\n                                        </constraints>\n                                        <visibilityPriorities>\n                                            <integer value=\"1000\"/>\n                                            <integer value=\"1000\"/>\n                                        </visibilityPriorities>\n                                        <customSpacing>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                        </customSpacing>\n                                    </stackView>\n                                    <stackView distribution=\"fill\" orientation=\"vertical\" alignment=\"leading\" horizontalStackHuggingPriority=\"249.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" ambiguous=\"YES\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"a3k-yj-yxK\">\n                                        <rect key=\"frame\" x=\"0.0\" y=\"306\" width=\"197\" height=\"72\"/>\n                                        <subviews>\n                                            <textField focusRingType=\"none\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"750\" ambiguous=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"wVI-dH-WOK\">\n                                                <rect key=\"frame\" x=\"-2\" y=\"56\" width=\"40\" height=\"16\"/>\n                                                <textFieldCell key=\"cell\" lineBreakMode=\"clipping\" title=\"iTerm\" id=\"yIW-2a-15A\">\n                                                    <font key=\"font\" metaFont=\"systemSemibold\" size=\"13\"/>\n                                                    <color key=\"textColor\" name=\"labelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                    <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                </textFieldCell>\n                                            </textField>\n                                            <stackView distribution=\"fill\" orientation=\"horizontal\" alignment=\"top\" spacing=\"40\" horizontalStackHuggingPriority=\"249.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" ambiguous=\"YES\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"04S-wL-cdO\">\n                                                <rect key=\"frame\" x=\"20\" y=\"22\" width=\"159\" height=\"26\"/>\n                                                <subviews>\n                                                    <button verticalHuggingPriority=\"750\" ambiguous=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"2Jp-pe-FCb\">\n                                                        <rect key=\"frame\" x=\"-2\" y=\"9\" width=\"75\" height=\"18\"/>\n                                                        <buttonCell key=\"cell\" type=\"radio\" title=\"Window\" bezelStyle=\"regularSquare\" imagePosition=\"left\" alignment=\"left\" state=\"on\" inset=\"2\" id=\"mTs-8c-pgj\">\n                                                            <behavior key=\"behavior\" changeContents=\"YES\" doesNotDimImage=\"YES\" lightByContents=\"YES\"/>\n                                                            <font key=\"font\" metaFont=\"system\"/>\n                                                        </buttonCell>\n                                                        <connections>\n                                                            <action selector=\"iTermWindowButtonClicked:\" target=\"s5W-qL-1Xs\" id=\"Xei-BB-oHW\"/>\n                                                        </connections>\n                                                    </button>\n                                                    <button verticalHuggingPriority=\"750\" ambiguous=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"Lmz-5e-p2j\">\n                                                        <rect key=\"frame\" x=\"111\" y=\"9\" width=\"48\" height=\"18\"/>\n                                                        <buttonCell key=\"cell\" type=\"radio\" title=\"Tab\" bezelStyle=\"regularSquare\" imagePosition=\"left\" alignment=\"left\" inset=\"2\" id=\"nYS-rF-JCL\">\n                                                            <behavior key=\"behavior\" changeContents=\"YES\" doesNotDimImage=\"YES\" lightByContents=\"YES\"/>\n                                                            <font key=\"font\" metaFont=\"system\"/>\n                                                        </buttonCell>\n                                                        <connections>\n                                                            <action selector=\"iTermTabButtonClicked:\" target=\"s5W-qL-1Xs\" id=\"eEz-5u-OOJ\"/>\n                                                        </connections>\n                                                    </button>\n                                                </subviews>\n                                                <visibilityPriorities>\n                                                    <integer value=\"1000\"/>\n                                                    <integer value=\"1000\"/>\n                                                </visibilityPriorities>\n                                                <customSpacing>\n                                                    <real value=\"3.4028234663852886e+38\"/>\n                                                    <real value=\"3.4028234663852886e+38\"/>\n                                                </customSpacing>\n                                            </stackView>\n                                            <textField focusRingType=\"none\" verticalHuggingPriority=\"750\" horizontalCompressionResistancePriority=\"250\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"dIs-mN-a0t\">\n                                                <rect key=\"frame\" x=\"18\" y=\"0.0\" width=\"181\" height=\"14\"/>\n                                                <textFieldCell key=\"cell\" title=\"Open a new window or a new tab.\" id=\"BrI-hE-Mff\">\n                                                    <font key=\"font\" metaFont=\"message\" size=\"11\"/>\n                                                    <color key=\"textColor\" name=\"secondaryLabelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                    <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                </textFieldCell>\n                                            </textField>\n                                        </subviews>\n                                        <constraints>\n                                            <constraint firstItem=\"dIs-mN-a0t\" firstAttribute=\"leading\" secondItem=\"a3k-yj-yxK\" secondAttribute=\"leading\" constant=\"20\" id=\"0h7-fh-Zzi\"/>\n                                            <constraint firstItem=\"04S-wL-cdO\" firstAttribute=\"leading\" secondItem=\"a3k-yj-yxK\" secondAttribute=\"leading\" constant=\"20\" id=\"o3f-5r-RyI\"/>\n                                        </constraints>\n                                        <visibilityPriorities>\n                                            <integer value=\"1000\"/>\n                                            <integer value=\"1000\"/>\n                                            <integer value=\"1000\"/>\n                                        </visibilityPriorities>\n                                        <customSpacing>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                        </customSpacing>\n                                    </stackView>\n                                    <textField focusRingType=\"none\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"750\" ambiguous=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"h8Y-qc-B2O\">\n                                        <rect key=\"frame\" x=\"-2\" y=\"282\" width=\"145\" height=\"16\"/>\n                                        <textFieldCell key=\"cell\" lineBreakMode=\"clipping\" title=\"Custom Menu Options\" id=\"nWc-SM-Kes\">\n                                            <font key=\"font\" metaFont=\"systemSemibold\" size=\"13\"/>\n                                            <color key=\"textColor\" name=\"labelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                        </textFieldCell>\n                                    </textField>\n                                    <stackView distribution=\"fill\" orientation=\"vertical\" alignment=\"leading\" spacing=\"-1\" horizontalStackHuggingPriority=\"249.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" ambiguous=\"YES\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"5GI-nM-TKa\">\n                                        <rect key=\"frame\" x=\"20\" y=\"120\" width=\"349\" height=\"154\"/>\n                                        <subviews>\n                                            <scrollView ambiguous=\"YES\" autohidesScrollers=\"YES\" horizontalLineScroll=\"19\" horizontalPageScroll=\"10\" verticalLineScroll=\"19\" verticalPageScroll=\"10\" usesPredominantAxisScrolling=\"NO\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"ymk-Rc-U1A\">\n                                                <rect key=\"frame\" x=\"0.0\" y=\"19\" width=\"349\" height=\"135\"/>\n                                                <clipView key=\"contentView\" id=\"pm8-fV-hD7\">\n                                                    <rect key=\"frame\" x=\"1\" y=\"1\" width=\"347\" height=\"133\"/>\n                                                    <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                                                    <subviews>\n                                                        <tableView verticalHuggingPriority=\"750\" allowsExpansionToolTips=\"YES\" columnAutoresizingStyle=\"lastColumnOnly\" alternatingRowBackgroundColors=\"YES\" columnSelection=\"YES\" columnResizing=\"NO\" multipleSelection=\"NO\" autosaveColumns=\"NO\" rowSizeStyle=\"automatic\" viewBased=\"YES\" id=\"zAU-AM-qPB\">\n                                                            <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"347\" height=\"133\"/>\n                                                            <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                                                            <size key=\"intercellSpacing\" width=\"3\" height=\"2\"/>\n                                                            <color key=\"backgroundColor\" name=\"controlBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                            <color key=\"gridColor\" name=\"gridColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                            <tableColumns>\n                                                                <tableColumn width=\"277\" minWidth=\"40\" maxWidth=\"1000\" id=\"gC5-IH-xRm\">\n                                                                    <tableHeaderCell key=\"headerCell\" lineBreakMode=\"truncatingTail\" borderStyle=\"border\">\n                                                                        <color key=\"textColor\" name=\"headerTextColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                                        <color key=\"backgroundColor\" name=\"headerColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                                    </tableHeaderCell>\n                                                                    <textFieldCell key=\"dataCell\" lineBreakMode=\"truncatingTail\" selectable=\"YES\" editable=\"YES\" title=\"Text Cell\" id=\"kAa-36-ubl\">\n                                                                        <font key=\"font\" metaFont=\"system\"/>\n                                                                        <color key=\"textColor\" name=\"controlTextColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                                        <color key=\"backgroundColor\" name=\"controlBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                                    </textFieldCell>\n                                                                    <tableColumnResizingMask key=\"resizingMask\" resizeWithTable=\"YES\" userResizable=\"YES\"/>\n                                                                    <prototypeCellViews>\n                                                                        <tableCellView identifier=\"customMenuCell\" id=\"tqd-6Z-w2A\">\n                                                                            <rect key=\"frame\" x=\"1\" y=\"1\" width=\"286\" height=\"17\"/>\n                                                                            <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                                                                            <subviews>\n                                                                                <textField focusRingType=\"none\" verticalHuggingPriority=\"750\" horizontalCompressionResistancePriority=\"250\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"fek-hL-jVI\">\n                                                                                    <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"286\" height=\"17\"/>\n                                                                                    <constraints>\n                                                                                        <constraint firstAttribute=\"height\" constant=\"17\" id=\"HNz-wX-fSY\"/>\n                                                                                    </constraints>\n                                                                                    <textFieldCell key=\"cell\" lineBreakMode=\"truncatingTail\" sendsActionOnEndEditing=\"YES\" title=\"Table View Cell\" id=\"keg-OV-uLJ\">\n                                                                                        <font key=\"font\" metaFont=\"system\"/>\n                                                                                        <color key=\"textColor\" name=\"controlTextColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                                                        <color key=\"backgroundColor\" name=\"controlColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                                                    </textFieldCell>\n                                                                                </textField>\n                                                                            </subviews>\n                                                                            <constraints>\n                                                                                <constraint firstItem=\"fek-hL-jVI\" firstAttribute=\"centerY\" secondItem=\"tqd-6Z-w2A\" secondAttribute=\"centerY\" id=\"Flr-w8-Tym\"/>\n                                                                                <constraint firstItem=\"fek-hL-jVI\" firstAttribute=\"leading\" secondItem=\"tqd-6Z-w2A\" secondAttribute=\"leading\" constant=\"2\" id=\"sbk-x5-pAP\"/>\n                                                                                <constraint firstItem=\"fek-hL-jVI\" firstAttribute=\"centerX\" secondItem=\"tqd-6Z-w2A\" secondAttribute=\"centerX\" id=\"ulA-Qx-voD\"/>\n                                                                            </constraints>\n                                                                            <connections>\n                                                                                <outlet property=\"textField\" destination=\"fek-hL-jVI\" id=\"N93-9r-gFg\"/>\n                                                                            </connections>\n                                                                        </tableCellView>\n                                                                    </prototypeCellViews>\n                                                                </tableColumn>\n                                                            </tableColumns>\n                                                        </tableView>\n                                                    </subviews>\n                                                </clipView>\n                                                <scroller key=\"horizontalScroller\" hidden=\"YES\" wantsLayer=\"YES\" verticalHuggingPriority=\"750\" horizontal=\"YES\" id=\"f8o-Hv-7Co\">\n                                                    <rect key=\"frame\" x=\"1\" y=\"119\" width=\"223\" height=\"15\"/>\n                                                    <autoresizingMask key=\"autoresizingMask\"/>\n                                                </scroller>\n                                                <scroller key=\"verticalScroller\" hidden=\"YES\" wantsLayer=\"YES\" verticalHuggingPriority=\"750\" horizontal=\"NO\" id=\"LY8-1j-sew\">\n                                                    <rect key=\"frame\" x=\"224\" y=\"17\" width=\"15\" height=\"102\"/>\n                                                    <autoresizingMask key=\"autoresizingMask\"/>\n                                                </scroller>\n                                            </scrollView>\n                                            <stackView distribution=\"fill\" orientation=\"horizontal\" alignment=\"top\" spacing=\"-1\" horizontalStackHuggingPriority=\"249.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" ambiguous=\"YES\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"aac-5a-K7e\">\n                                                <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"39\" height=\"20\"/>\n                                                <subviews>\n                                                    <button verticalHuggingPriority=\"750\" ambiguous=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"krU-9a-aOM\">\n                                                        <rect key=\"frame\" x=\"0.0\" y=\"-1\" width=\"20\" height=\"22\"/>\n                                                        <buttonCell key=\"cell\" type=\"smallSquare\" bezelStyle=\"smallSquare\" image=\"NSAddTemplate\" imagePosition=\"overlaps\" alignment=\"center\" lineBreakMode=\"truncatingTail\" state=\"on\" borderStyle=\"border\" imageScaling=\"proportionallyDown\" inset=\"2\" id=\"UdO-uG-lx3\">\n                                                            <behavior key=\"behavior\" pushIn=\"YES\" lightByBackground=\"YES\" lightByGray=\"YES\"/>\n                                                            <font key=\"font\" metaFont=\"system\"/>\n                                                        </buttonCell>\n                                                        <constraints>\n                                                            <constraint firstAttribute=\"height\" constant=\"20\" id=\"Ng7-fR-hex\"/>\n                                                            <constraint firstAttribute=\"width\" relation=\"greaterThanOrEqual\" constant=\"20\" id=\"oDR-08-4wm\"/>\n                                                        </constraints>\n                                                        <connections>\n                                                            <action selector=\"addMenuOptionButtonClicked:\" target=\"s5W-qL-1Xs\" id=\"Tnq-8R-LKI\"/>\n                                                        </connections>\n                                                    </button>\n                                                    <button verticalHuggingPriority=\"750\" ambiguous=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"Zcu-Kl-9MZ\">\n                                                        <rect key=\"frame\" x=\"19\" y=\"-1\" width=\"20\" height=\"22\"/>\n                                                        <buttonCell key=\"cell\" type=\"smallSquare\" bezelStyle=\"smallSquare\" image=\"NSRemoveTemplate\" imagePosition=\"overlaps\" alignment=\"center\" lineBreakMode=\"truncatingTail\" state=\"on\" borderStyle=\"border\" imageScaling=\"proportionallyDown\" inset=\"2\" id=\"i7k-ZG-pfT\">\n                                                            <behavior key=\"behavior\" pushIn=\"YES\" lightByBackground=\"YES\" lightByGray=\"YES\"/>\n                                                            <font key=\"font\" metaFont=\"system\"/>\n                                                        </buttonCell>\n                                                        <constraints>\n                                                            <constraint firstAttribute=\"height\" constant=\"20\" id=\"OXV-aV-NqZ\"/>\n                                                            <constraint firstAttribute=\"width\" relation=\"greaterThanOrEqual\" constant=\"20\" id=\"WXR-wb-F1Q\"/>\n                                                        </constraints>\n                                                        <connections>\n                                                            <action selector=\"removeMenuOptionButtonClicked:\" target=\"s5W-qL-1Xs\" id=\"bAi-VK-ZcG\"/>\n                                                        </connections>\n                                                    </button>\n                                                </subviews>\n                                                <visibilityPriorities>\n                                                    <integer value=\"1000\"/>\n                                                    <integer value=\"1000\"/>\n                                                </visibilityPriorities>\n                                                <customSpacing>\n                                                    <real value=\"3.4028234663852886e+38\"/>\n                                                    <real value=\"3.4028234663852886e+38\"/>\n                                                </customSpacing>\n                                            </stackView>\n                                        </subviews>\n                                        <constraints>\n                                            <constraint firstAttribute=\"trailing\" secondItem=\"ymk-Rc-U1A\" secondAttribute=\"trailing\" id=\"4F5-6p-q0d\"/>\n                                            <constraint firstItem=\"ymk-Rc-U1A\" firstAttribute=\"leading\" secondItem=\"5GI-nM-TKa\" secondAttribute=\"leading\" id=\"Uwd-l1-iFC\"/>\n                                        </constraints>\n                                        <visibilityPriorities>\n                                            <integer value=\"1000\"/>\n                                            <integer value=\"1000\"/>\n                                        </visibilityPriorities>\n                                        <customSpacing>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                        </customSpacing>\n                                    </stackView>\n                                    <button verticalHuggingPriority=\"750\" ambiguous=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"jia-nD-S9J\">\n                                        <rect key=\"frame\" x=\"18\" y=\"95\" width=\"205\" height=\"18\"/>\n                                        <buttonCell key=\"cell\" type=\"check\" title=\"Apply to Finder Toolbar Menu\" bezelStyle=\"regularSquare\" imagePosition=\"left\" state=\"on\" inset=\"2\" id=\"2we-f7-s2N\">\n                                            <behavior key=\"behavior\" changeContents=\"YES\" doesNotDimImage=\"YES\" lightByContents=\"YES\"/>\n                                            <font key=\"font\" metaFont=\"system\"/>\n                                        </buttonCell>\n                                        <connections>\n                                            <action selector=\"applyToToolbarButtonClicked:\" target=\"s5W-qL-1Xs\" id=\"P7k-7z-2dk\"/>\n                                        </connections>\n                                    </button>\n                                    <button verticalHuggingPriority=\"750\" ambiguous=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"teH-Uy-YOq\" userLabel=\"Apply to Context Memu\">\n                                        <rect key=\"frame\" x=\"18\" y=\"71\" width=\"207\" height=\"18\"/>\n                                        <buttonCell key=\"cell\" type=\"check\" title=\"Apply to Finder Context Menu\" bezelStyle=\"regularSquare\" imagePosition=\"left\" state=\"on\" inset=\"2\" id=\"RhP-R5-Wwt\">\n                                            <behavior key=\"behavior\" changeContents=\"YES\" doesNotDimImage=\"YES\" lightByContents=\"YES\"/>\n                                            <font key=\"font\" metaFont=\"system\"/>\n                                        </buttonCell>\n                                        <connections>\n                                            <action selector=\"applyToContextButtonClicked:\" target=\"s5W-qL-1Xs\" id=\"hiv-kz-pHw\"/>\n                                        </connections>\n                                    </button>\n                                    <stackView distribution=\"fill\" orientation=\"horizontal\" alignment=\"top\" horizontalStackHuggingPriority=\"249.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" ambiguous=\"YES\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"4us-6x-3pQ\">\n                                        <rect key=\"frame\" x=\"20\" y=\"48\" width=\"260\" height=\"16\"/>\n                                        <subviews>\n                                            <textField focusRingType=\"none\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"hH5-GT-YX7\">\n                                                <rect key=\"frame\" x=\"-2\" y=\"0.0\" width=\"67\" height=\"16\"/>\n                                                <textFieldCell key=\"cell\" lineBreakMode=\"clipping\" title=\"Icon Type:\" id=\"CP0-Xv-uYl\">\n                                                    <font key=\"font\" metaFont=\"system\"/>\n                                                    <color key=\"textColor\" name=\"labelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                    <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                </textFieldCell>\n                                            </textField>\n                                            <button verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"B10-NC-B1J\">\n                                                <rect key=\"frame\" x=\"69\" y=\"-1\" width=\"42\" height=\"18\"/>\n                                                <buttonCell key=\"cell\" type=\"radio\" title=\"no\" bezelStyle=\"regularSquare\" imagePosition=\"left\" alignment=\"left\" inset=\"2\" id=\"x6U-9Q-ujh\">\n                                                    <behavior key=\"behavior\" changeContents=\"YES\" doesNotDimImage=\"YES\" lightByContents=\"YES\"/>\n                                                    <font key=\"font\" metaFont=\"system\"/>\n                                                </buttonCell>\n                                                <connections>\n                                                    <action selector=\"noIconButtonClicked:\" target=\"s5W-qL-1Xs\" id=\"PWv-GP-uiE\"/>\n                                                </connections>\n                                            </button>\n                                            <button verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"Lag-Yy-a4i\">\n                                                <rect key=\"frame\" x=\"117\" y=\"-1\" width=\"66\" height=\"18\"/>\n                                                <buttonCell key=\"cell\" type=\"radio\" title=\"simple\" bezelStyle=\"regularSquare\" imagePosition=\"left\" alignment=\"left\" inset=\"2\" id=\"yrq-LZ-XDr\">\n                                                    <behavior key=\"behavior\" changeContents=\"YES\" doesNotDimImage=\"YES\" lightByContents=\"YES\"/>\n                                                    <font key=\"font\" metaFont=\"system\"/>\n                                                </buttonCell>\n                                                <connections>\n                                                    <action selector=\"simpleIconButtonClicked:\" target=\"s5W-qL-1Xs\" id=\"f5N-hS-WxG\"/>\n                                                </connections>\n                                            </button>\n                                            <button verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"qzh-XC-5Ni\">\n                                                <rect key=\"frame\" x=\"189\" y=\"-1\" width=\"71\" height=\"18\"/>\n                                                <buttonCell key=\"cell\" type=\"radio\" title=\"original\" bezelStyle=\"regularSquare\" imagePosition=\"left\" alignment=\"left\" inset=\"2\" id=\"uok-iD-wXY\">\n                                                    <behavior key=\"behavior\" changeContents=\"YES\" doesNotDimImage=\"YES\" lightByContents=\"YES\"/>\n                                                    <font key=\"font\" metaFont=\"system\"/>\n                                                </buttonCell>\n                                                <connections>\n                                                    <action selector=\"originalIconButtonClicked:\" target=\"s5W-qL-1Xs\" id=\"GtB-7O-X8R\"/>\n                                                </connections>\n                                            </button>\n                                        </subviews>\n                                        <visibilityPriorities>\n                                            <integer value=\"1000\"/>\n                                            <integer value=\"1000\"/>\n                                            <integer value=\"1000\"/>\n                                            <integer value=\"1000\"/>\n                                        </visibilityPriorities>\n                                        <customSpacing>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                        </customSpacing>\n                                    </stackView>\n                                    <stackView distribution=\"fill\" orientation=\"vertical\" alignment=\"leading\" horizontalStackHuggingPriority=\"249.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" ambiguous=\"YES\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"zKo-P5-oOk\">\n                                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"148\" height=\"40\"/>\n                                        <subviews>\n                                            <textField focusRingType=\"none\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"750\" ambiguous=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"UJr-Lw-s6i\">\n                                                <rect key=\"frame\" x=\"-2\" y=\"24\" width=\"147\" height=\"16\"/>\n                                                <textFieldCell key=\"cell\" lineBreakMode=\"clipping\" title=\"Path Escaping Options\" id=\"lRl-dd-P8P\">\n                                                    <font key=\"font\" metaFont=\"systemSemibold\" size=\"13\"/>\n                                                    <color key=\"textColor\" name=\"labelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                    <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                </textFieldCell>\n                                            </textField>\n                                            <stackView distribution=\"fill\" orientation=\"horizontal\" alignment=\"top\" spacing=\"40\" horizontalStackHuggingPriority=\"249.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" ambiguous=\"YES\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"Z4g-0A-uOd\">\n                                                <rect key=\"frame\" x=\"20\" y=\"0.0\" width=\"128\" height=\"16\"/>\n                                                <subviews>\n                                                    <button verticalHuggingPriority=\"750\" ambiguous=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"M2J-AU-iO9\">\n                                                        <rect key=\"frame\" x=\"-2\" y=\"-1\" width=\"44\" height=\"18\"/>\n                                                        <buttonCell key=\"cell\" type=\"radio\" title=\"No\" bezelStyle=\"regularSquare\" imagePosition=\"left\" alignment=\"left\" state=\"on\" inset=\"2\" id=\"OET-MK-jpV\">\n                                                            <behavior key=\"behavior\" changeContents=\"YES\" doesNotDimImage=\"YES\" lightByContents=\"YES\"/>\n                                                            <font key=\"font\" metaFont=\"system\"/>\n                                                        </buttonCell>\n                                                        <connections>\n                                                            <action selector=\"pathNoButtonClicked:\" target=\"s5W-qL-1Xs\" id=\"0p9-VV-Jde\"/>\n                                                        </connections>\n                                                    </button>\n                                                    <button verticalHuggingPriority=\"750\" ambiguous=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"vhd-Cy-Io7\">\n                                                        <rect key=\"frame\" x=\"80\" y=\"-1\" width=\"48\" height=\"18\"/>\n                                                        <buttonCell key=\"cell\" type=\"radio\" title=\"Yes\" bezelStyle=\"regularSquare\" imagePosition=\"left\" alignment=\"left\" inset=\"2\" id=\"eYl-05-W7a\">\n                                                            <behavior key=\"behavior\" changeContents=\"YES\" doesNotDimImage=\"YES\" lightByContents=\"YES\"/>\n                                                            <font key=\"font\" metaFont=\"system\"/>\n                                                        </buttonCell>\n                                                        <connections>\n                                                            <action selector=\"pathYesButtonClicked:\" target=\"s5W-qL-1Xs\" id=\"mOy-50-CcR\"/>\n                                                        </connections>\n                                                    </button>\n                                                </subviews>\n                                                <visibilityPriorities>\n                                                    <integer value=\"1000\"/>\n                                                    <integer value=\"1000\"/>\n                                                </visibilityPriorities>\n                                                <customSpacing>\n                                                    <real value=\"3.4028234663852886e+38\"/>\n                                                    <real value=\"3.4028234663852886e+38\"/>\n                                                </customSpacing>\n                                            </stackView>\n                                        </subviews>\n                                        <constraints>\n                                            <constraint firstItem=\"Z4g-0A-uOd\" firstAttribute=\"leading\" secondItem=\"zKo-P5-oOk\" secondAttribute=\"leading\" constant=\"20\" id=\"yR2-yY-F8i\"/>\n                                        </constraints>\n                                        <visibilityPriorities>\n                                            <integer value=\"1000\"/>\n                                            <integer value=\"1000\"/>\n                                        </visibilityPriorities>\n                                        <customSpacing>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                        </customSpacing>\n                                    </stackView>\n                                </subviews>\n                                <constraints>\n                                    <constraint firstItem=\"4us-6x-3pQ\" firstAttribute=\"leading\" secondItem=\"pxi-dF-LO8\" secondAttribute=\"leading\" constant=\"20\" id=\"CRm-C6-eJK\"/>\n                                    <constraint firstItem=\"5GI-nM-TKa\" firstAttribute=\"leading\" secondItem=\"pxi-dF-LO8\" secondAttribute=\"leading\" constant=\"20\" id=\"Erw-fg-klC\"/>\n                                    <constraint firstItem=\"teH-Uy-YOq\" firstAttribute=\"leading\" secondItem=\"pxi-dF-LO8\" secondAttribute=\"leading\" constant=\"20\" id=\"hcZ-Kv-8Sj\"/>\n                                    <constraint firstAttribute=\"trailing\" secondItem=\"5GI-nM-TKa\" secondAttribute=\"trailing\" constant=\"20\" id=\"kNC-OB-Jgy\"/>\n                                    <constraint firstItem=\"jia-nD-S9J\" firstAttribute=\"leading\" secondItem=\"pxi-dF-LO8\" secondAttribute=\"leading\" constant=\"20\" id=\"wim-XS-cz0\"/>\n                                </constraints>\n                                <visibilityPriorities>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                </visibilityPriorities>\n                                <customSpacing>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                </customSpacing>\n                            </stackView>\n                        </subviews>\n                        <constraints>\n                            <constraint firstAttribute=\"trailing\" secondItem=\"pxi-dF-LO8\" secondAttribute=\"trailing\" constant=\"20\" id=\"QRT-xy-dCb\"/>\n                            <constraint firstAttribute=\"bottom\" secondItem=\"pxi-dF-LO8\" secondAttribute=\"bottom\" constant=\"20\" id=\"Sfp-OB-lgB\"/>\n                            <constraint firstItem=\"pxi-dF-LO8\" firstAttribute=\"top\" secondItem=\"jOR-Px-swx\" secondAttribute=\"top\" constant=\"20\" id=\"bPE-SW-J0S\"/>\n                            <constraint firstItem=\"pxi-dF-LO8\" firstAttribute=\"leading\" secondItem=\"jOR-Px-swx\" secondAttribute=\"leading\" constant=\"20\" id=\"j2y-7X-cS6\"/>\n                        </constraints>\n                    </view>\n                    <connections>\n                        <outlet property=\"addMenuOptionButton\" destination=\"krU-9a-aOM\" id=\"Mha-o5-VDh\"/>\n                        <outlet property=\"applyToContextButton\" destination=\"teH-Uy-YOq\" id=\"W1V-mC-hRa\"/>\n                        <outlet property=\"applyToToolbarButton\" destination=\"jia-nD-S9J\" id=\"Rfo-00-9Ss\"/>\n                        <outlet property=\"customMenuTableView\" destination=\"zAU-AM-qPB\" id=\"TAv-cq-hfF\"/>\n                        <outlet property=\"iTermTabButton\" destination=\"Lmz-5e-p2j\" id=\"Vr0-XJ-pnx\"/>\n                        <outlet property=\"iTermTextField\" destination=\"wVI-dH-WOK\" id=\"oeJ-Rq-h9e\"/>\n                        <outlet property=\"iTermWindowButton\" destination=\"2Jp-pe-FCb\" id=\"weB-Ix-KHl\"/>\n                        <outlet property=\"installedApplicationsTextField\" destination=\"7kH-Hl-lwO\" id=\"cZL-QZ-EcN\"/>\n                        <outlet property=\"noIconButton\" destination=\"B10-NC-B1J\" id=\"2P9-Ma-BMt\"/>\n                        <outlet property=\"notInstalledApplicationsTextField\" destination=\"e8s-z7-dmZ\" id=\"g9m-4p-nHb\"/>\n                        <outlet property=\"originalIconButton\" destination=\"qzh-XC-5Ni\" id=\"dpl-2W-ZJn\"/>\n                        <outlet property=\"pathNoButton\" destination=\"M2J-AU-iO9\" id=\"cCz-pG-pfn\"/>\n                        <outlet property=\"pathYesButton\" destination=\"vhd-Cy-Io7\" id=\"8se-Hp-u2x\"/>\n                        <outlet property=\"simpleIconButton\" destination=\"Lag-Yy-a4i\" id=\"HWS-9U-Hbk\"/>\n                    </connections>\n                </viewController>\n                <customObject id=\"mlw-wX-Yfn\" userLabel=\"First Responder\" customClass=\"NSResponder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"-148.5\" y=\"1091\"/>\n        </scene>\n        <!--Advanced-->\n        <scene sceneID=\"X6j-fK-tNl\">\n            <objects>\n                <viewController title=\"Advanced\" id=\"H3q-JS-Bu4\" customClass=\"AdvancedPreferencesViewController\" customModule=\"OpenInTerminal\" customModuleProvider=\"target\" sceneMemberID=\"viewController\">\n                    <view key=\"view\" id=\"pw0-CT-Gco\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"380\" height=\"263\"/>\n                        <autoresizingMask key=\"autoresizingMask\"/>\n                        <subviews>\n                            <stackView distribution=\"fill\" orientation=\"vertical\" alignment=\"leading\" horizontalStackHuggingPriority=\"249.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"cTF-y0-mpo\">\n                                <rect key=\"frame\" x=\"20\" y=\"20\" width=\"340\" height=\"223\"/>\n                                <subviews>\n                                    <textField focusRingType=\"none\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"9fR-JD-Uqd\">\n                                        <rect key=\"frame\" x=\"-2\" y=\"207\" width=\"67\" height=\"16\"/>\n                                        <textFieldCell key=\"cell\" lineBreakMode=\"clipping\" title=\"Shortcuts\" id=\"FpP-Q9-flS\">\n                                            <font key=\"font\" metaFont=\"systemSemibold\" size=\"13\"/>\n                                            <color key=\"textColor\" name=\"labelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                        </textFieldCell>\n                                    </textField>\n                                    <stackView distribution=\"fill\" orientation=\"horizontal\" alignment=\"top\" horizontalStackHuggingPriority=\"249.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"Blx-CX-ALw\">\n                                        <rect key=\"frame\" x=\"0.0\" y=\"180\" width=\"340\" height=\"19\"/>\n                                        <subviews>\n                                            <textField focusRingType=\"none\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"ZQn-nx-aAX\">\n                                                <rect key=\"frame\" x=\"-2\" y=\"3\" width=\"196\" height=\"16\"/>\n                                                <textFieldCell key=\"cell\" lineBreakMode=\"clipping\" alignment=\"right\" title=\"Open with default Terminal:\" id=\"Mqt-Fp-Ssl\">\n                                                    <font key=\"font\" usesAppearanceFont=\"YES\"/>\n                                                    <color key=\"textColor\" name=\"labelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                    <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                </textFieldCell>\n                                            </textField>\n                                            <customView translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"9ud-I5-Kam\" customClass=\"SRRecorderControl\">\n                                                <rect key=\"frame\" x=\"200\" y=\"0.0\" width=\"140\" height=\"19\"/>\n                                                <constraints>\n                                                    <constraint firstAttribute=\"width\" constant=\"140\" id=\"Nge-TH-6NC\"/>\n                                                    <constraint firstAttribute=\"height\" constant=\"19\" id=\"e9T-gA-by7\"/>\n                                                </constraints>\n                                            </customView>\n                                        </subviews>\n                                        <visibilityPriorities>\n                                            <integer value=\"1000\"/>\n                                            <integer value=\"1000\"/>\n                                        </visibilityPriorities>\n                                        <customSpacing>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                        </customSpacing>\n                                    </stackView>\n                                    <stackView distribution=\"fill\" orientation=\"horizontal\" alignment=\"top\" horizontalStackHuggingPriority=\"249.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"bEn-Ey-rPa\">\n                                        <rect key=\"frame\" x=\"0.0\" y=\"153\" width=\"340\" height=\"19\"/>\n                                        <subviews>\n                                            <textField focusRingType=\"none\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"PV3-X0-nd3\">\n                                                <rect key=\"frame\" x=\"-2\" y=\"3\" width=\"196\" height=\"16\"/>\n                                                <textFieldCell key=\"cell\" lineBreakMode=\"clipping\" alignment=\"right\" title=\"Open with default Editor:\" id=\"bvy-v3-hhf\">\n                                                    <font key=\"font\" usesAppearanceFont=\"YES\"/>\n                                                    <color key=\"textColor\" name=\"labelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                    <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                </textFieldCell>\n                                            </textField>\n                                            <customView translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"TL3-ol-bGi\" customClass=\"SRRecorderControl\">\n                                                <rect key=\"frame\" x=\"200\" y=\"0.0\" width=\"140\" height=\"19\"/>\n                                                <constraints>\n                                                    <constraint firstAttribute=\"width\" constant=\"140\" id=\"7Si-YW-rx9\"/>\n                                                    <constraint firstAttribute=\"height\" constant=\"19\" id=\"hWF-28-jML\"/>\n                                                </constraints>\n                                            </customView>\n                                        </subviews>\n                                        <constraints>\n                                            <constraint firstAttribute=\"bottom\" secondItem=\"TL3-ol-bGi\" secondAttribute=\"bottom\" id=\"3bT-Dc-ra9\"/>\n                                        </constraints>\n                                        <visibilityPriorities>\n                                            <integer value=\"1000\"/>\n                                            <integer value=\"1000\"/>\n                                        </visibilityPriorities>\n                                        <customSpacing>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                        </customSpacing>\n                                    </stackView>\n                                    <stackView distribution=\"fill\" orientation=\"horizontal\" alignment=\"top\" horizontalStackHuggingPriority=\"249.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"jFP-BA-QYL\">\n                                        <rect key=\"frame\" x=\"0.0\" y=\"126\" width=\"340\" height=\"19\"/>\n                                        <subviews>\n                                            <textField focusRingType=\"none\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"2f4-ck-NPM\">\n                                                <rect key=\"frame\" x=\"-2\" y=\"3\" width=\"196\" height=\"16\"/>\n                                                <textFieldCell key=\"cell\" lineBreakMode=\"clipping\" alignment=\"right\" title=\"Copy path in Clipboard:\" id=\"Xd9-iA-emU\">\n                                                    <font key=\"font\" usesAppearanceFont=\"YES\"/>\n                                                    <color key=\"textColor\" name=\"labelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                    <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                </textFieldCell>\n                                            </textField>\n                                            <customView translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"WBc-IR-x3y\" customClass=\"SRRecorderControl\">\n                                                <rect key=\"frame\" x=\"200\" y=\"0.0\" width=\"140\" height=\"19\"/>\n                                                <constraints>\n                                                    <constraint firstAttribute=\"width\" constant=\"140\" id=\"CZo-Ks-W7J\"/>\n                                                    <constraint firstAttribute=\"height\" constant=\"19\" id=\"Nov-wR-q8h\"/>\n                                                </constraints>\n                                            </customView>\n                                        </subviews>\n                                        <constraints>\n                                            <constraint firstAttribute=\"bottom\" secondItem=\"WBc-IR-x3y\" secondAttribute=\"bottom\" id=\"wTJ-nE-lKl\"/>\n                                        </constraints>\n                                        <visibilityPriorities>\n                                            <integer value=\"1000\"/>\n                                            <integer value=\"1000\"/>\n                                        </visibilityPriorities>\n                                        <customSpacing>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                        </customSpacing>\n                                    </stackView>\n                                    <textField focusRingType=\"none\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"0uu-e7-m1W\">\n                                        <rect key=\"frame\" x=\"-2\" y=\"102\" width=\"40\" height=\"16\"/>\n                                        <textFieldCell key=\"cell\" lineBreakMode=\"clipping\" title=\"Reset\" id=\"jcs-Ou-OZ2\">\n                                            <font key=\"font\" metaFont=\"systemSemibold\" size=\"13\"/>\n                                            <color key=\"textColor\" name=\"labelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                        </textFieldCell>\n                                    </textField>\n                                    <button verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"qri-L6-ZRL\">\n                                        <rect key=\"frame\" x=\"-1\" y=\"72\" width=\"127\" height=\"23\"/>\n                                        <buttonCell key=\"cell\" type=\"roundTextured\" title=\"Reset preferences\" bezelStyle=\"texturedRounded\" alignment=\"center\" lineBreakMode=\"truncatingTail\" state=\"on\" borderStyle=\"border\" imageScaling=\"proportionallyDown\" inset=\"2\" id=\"jyI-H7-qN3\">\n                                            <behavior key=\"behavior\" pushIn=\"YES\" lightByBackground=\"YES\" lightByGray=\"YES\"/>\n                                            <font key=\"font\" metaFont=\"system\"/>\n                                        </buttonCell>\n                                        <connections>\n                                            <action selector=\"resetPreferencesButtonClicked:\" target=\"H3q-JS-Bu4\" id=\"bEV-WK-RrH\"/>\n                                        </connections>\n                                    </button>\n                                    <textField focusRingType=\"none\" verticalHuggingPriority=\"750\" horizontalCompressionResistancePriority=\"250\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"3HK-ud-hMQ\">\n                                        <rect key=\"frame\" x=\"-2\" y=\"52\" width=\"252\" height=\"14\"/>\n                                        <textFieldCell key=\"cell\" selectable=\"YES\" title=\"⚠️ Note that this will reset all user preferences\" id=\"2Rg-te-FPU\">\n                                            <font key=\"font\" metaFont=\"message\" size=\"11\"/>\n                                            <color key=\"textColor\" name=\"secondaryLabelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                        </textFieldCell>\n                                    </textField>\n                                    <textField focusRingType=\"none\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"REt-4o-a6D\">\n                                        <rect key=\"frame\" x=\"-2\" y=\"28\" width=\"31\" height=\"16\"/>\n                                        <textFieldCell key=\"cell\" lineBreakMode=\"clipping\" title=\"Quit\" id=\"FBK-9S-cZf\">\n                                            <font key=\"font\" metaFont=\"systemSemibold\" size=\"13\"/>\n                                            <color key=\"textColor\" name=\"labelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                        </textFieldCell>\n                                    </textField>\n                                    <button verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"EdD-oU-b1n\">\n                                        <rect key=\"frame\" x=\"-1\" y=\"-2\" width=\"139\" height=\"23\"/>\n                                        <buttonCell key=\"cell\" type=\"roundTextured\" title=\"Quit OpenInTerminal\" bezelStyle=\"texturedRounded\" alignment=\"center\" lineBreakMode=\"truncatingTail\" state=\"on\" borderStyle=\"border\" imageScaling=\"proportionallyDown\" inset=\"2\" id=\"ofD-rA-gib\">\n                                            <behavior key=\"behavior\" pushIn=\"YES\" lightByBackground=\"YES\" lightByGray=\"YES\"/>\n                                            <font key=\"font\" metaFont=\"system\"/>\n                                        </buttonCell>\n                                        <connections>\n                                            <action selector=\"quitButtonClicked:\" target=\"H3q-JS-Bu4\" id=\"Grs-f0-G4d\"/>\n                                        </connections>\n                                    </button>\n                                </subviews>\n                                <constraints>\n                                    <constraint firstItem=\"bEn-Ey-rPa\" firstAttribute=\"width\" secondItem=\"cTF-y0-mpo\" secondAttribute=\"width\" id=\"NeD-er-BKB\"/>\n                                    <constraint firstItem=\"Blx-CX-ALw\" firstAttribute=\"width\" secondItem=\"cTF-y0-mpo\" secondAttribute=\"width\" id=\"ajG-zO-m9g\"/>\n                                    <constraint firstItem=\"jFP-BA-QYL\" firstAttribute=\"width\" secondItem=\"cTF-y0-mpo\" secondAttribute=\"width\" id=\"b5p-C1-FRS\"/>\n                                </constraints>\n                                <visibilityPriorities>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                </visibilityPriorities>\n                                <customSpacing>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                </customSpacing>\n                            </stackView>\n                        </subviews>\n                        <constraints>\n                            <constraint firstAttribute=\"trailing\" secondItem=\"cTF-y0-mpo\" secondAttribute=\"trailing\" constant=\"20\" id=\"66z-SA-rLl\"/>\n                            <constraint firstItem=\"cTF-y0-mpo\" firstAttribute=\"top\" secondItem=\"pw0-CT-Gco\" secondAttribute=\"top\" constant=\"20\" id=\"7LV-eG-3yO\"/>\n                            <constraint firstAttribute=\"bottom\" secondItem=\"cTF-y0-mpo\" secondAttribute=\"bottom\" constant=\"20\" id=\"9AS-iQ-E7g\"/>\n                            <constraint firstItem=\"cTF-y0-mpo\" firstAttribute=\"leading\" secondItem=\"pw0-CT-Gco\" secondAttribute=\"leading\" constant=\"20\" id=\"9zU-5K-5al\"/>\n                        </constraints>\n                    </view>\n                    <connections>\n                        <outlet property=\"copyPathShortcut\" destination=\"WBc-IR-x3y\" id=\"tBb-rV-Cyb\"/>\n                        <outlet property=\"defaultEditorShortcut\" destination=\"TL3-ol-bGi\" id=\"F42-pz-UNZ\"/>\n                        <outlet property=\"defaultTerminalShortcut\" destination=\"9ud-I5-Kam\" id=\"l0e-EE-0qn\"/>\n                        <outlet property=\"resetPreferencesButton\" destination=\"qri-L6-ZRL\" id=\"cHB-aG-Whi\"/>\n                    </connections>\n                </viewController>\n                <customObject id=\"aPm-8i-YIB\" userLabel=\"First Responder\" customClass=\"NSResponder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"319\" y=\"1022.5\"/>\n        </scene>\n        <!--About-->\n        <scene sceneID=\"pky-u0-lts\">\n            <objects>\n                <viewController title=\"About\" id=\"k6X-N1-mVu\" customClass=\"AboutPreferencesViewController\" customModule=\"OpenInTerminal\" customModuleProvider=\"target\" sceneMemberID=\"viewController\">\n                    <view key=\"view\" id=\"rHs-sx-r6F\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"386\" height=\"224\"/>\n                        <autoresizingMask key=\"autoresizingMask\"/>\n                        <subviews>\n                            <stackView distribution=\"fill\" orientation=\"vertical\" alignment=\"leading\" spacing=\"15\" horizontalStackHuggingPriority=\"249.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"4es-k1-K2c\">\n                                <rect key=\"frame\" x=\"20\" y=\"20\" width=\"346\" height=\"184\"/>\n                                <subviews>\n                                    <stackView distribution=\"fill\" orientation=\"horizontal\" alignment=\"top\" spacing=\"12\" horizontalStackHuggingPriority=\"249.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"yY2-Uz-6lI\">\n                                        <rect key=\"frame\" x=\"0.0\" y=\"155\" width=\"197\" height=\"29\"/>\n                                        <subviews>\n                                            <textField focusRingType=\"none\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"PJu-EB-sSS\">\n                                                <rect key=\"frame\" x=\"-2\" y=\"5\" width=\"148\" height=\"24\"/>\n                                                <textFieldCell key=\"cell\" lineBreakMode=\"clipping\" title=\"OpenInTerminal\" id=\"mOB-su-ZM1\">\n                                                    <font key=\"font\" metaFont=\"systemSemibold\" size=\"20\"/>\n                                                    <color key=\"textColor\" name=\"labelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                    <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                </textFieldCell>\n                                            </textField>\n                                            <textField focusRingType=\"none\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"GS4-or-3hj\">\n                                                <rect key=\"frame\" x=\"154\" y=\"5\" width=\"45\" height=\"24\"/>\n                                                <textFieldCell key=\"cell\" lineBreakMode=\"clipping\" title=\"0.1.0\" id=\"Jnf-AX-bIr\">\n                                                    <font key=\"font\" metaFont=\"system\" size=\"20\"/>\n                                                    <color key=\"textColor\" name=\"secondaryLabelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                    <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                </textFieldCell>\n                                            </textField>\n                                        </subviews>\n                                        <visibilityPriorities>\n                                            <integer value=\"1000\"/>\n                                            <integer value=\"1000\"/>\n                                        </visibilityPriorities>\n                                        <customSpacing>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                        </customSpacing>\n                                    </stackView>\n                                    <stackView distribution=\"fill\" orientation=\"horizontal\" alignment=\"top\" horizontalStackHuggingPriority=\"249.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"F5k-92-BmU\">\n                                        <rect key=\"frame\" x=\"0.0\" y=\"124\" width=\"298\" height=\"16\"/>\n                                        <subviews>\n                                            <textField focusRingType=\"none\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"FCw-yO-sfT\">\n                                                <rect key=\"frame\" x=\"-2\" y=\"0.0\" width=\"73\" height=\"16\"/>\n                                                <textFieldCell key=\"cell\" lineBreakMode=\"clipping\" title=\"👨‍💻 GitHub:\" id=\"How-dP-tcX\">\n                                                    <font key=\"font\" usesAppearanceFont=\"YES\"/>\n                                                    <color key=\"textColor\" name=\"labelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                    <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                </textFieldCell>\n                                            </textField>\n                                            <button verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"dIe-6O-Ujs\" customClass=\"LinkButton\" customModule=\"OpenInTerminal\" customModuleProvider=\"target\">\n                                                <rect key=\"frame\" x=\"77\" y=\"0.0\" width=\"221\" height=\"16\"/>\n                                                <buttonCell key=\"cell\" type=\"bevel\" title=\"github.com/Ji4n1ng/OpenInTerminal\" bezelStyle=\"regularSquare\" alignment=\"center\" inset=\"2\" id=\"f2V-P5-pQI\">\n                                                    <behavior key=\"behavior\" pushIn=\"YES\" lightByBackground=\"YES\" lightByGray=\"YES\"/>\n                                                    <font key=\"font\" metaFont=\"system\"/>\n                                                </buttonCell>\n                                                <color key=\"contentTintColor\" name=\"systemBlueColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <connections>\n                                                    <action selector=\"githubButtonClicked:\" target=\"k6X-N1-mVu\" id=\"Mzi-ik-Xj4\"/>\n                                                </connections>\n                                            </button>\n                                        </subviews>\n                                        <constraints>\n                                            <constraint firstAttribute=\"bottom\" secondItem=\"FCw-yO-sfT\" secondAttribute=\"bottom\" id=\"9uS-ez-Vc0\"/>\n                                        </constraints>\n                                        <visibilityPriorities>\n                                            <integer value=\"1000\"/>\n                                            <integer value=\"1000\"/>\n                                        </visibilityPriorities>\n                                        <customSpacing>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                        </customSpacing>\n                                    </stackView>\n                                    <stackView distribution=\"fill\" orientation=\"horizontal\" alignment=\"top\" horizontalStackHuggingPriority=\"249.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"GIc-KW-yw5\">\n                                        <rect key=\"frame\" x=\"0.0\" y=\"93\" width=\"220\" height=\"16\"/>\n                                        <subviews>\n                                            <textField focusRingType=\"none\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"if3-nE-vHb\">\n                                                <rect key=\"frame\" x=\"-2\" y=\"0.0\" width=\"79\" height=\"16\"/>\n                                                <textFieldCell key=\"cell\" lineBreakMode=\"clipping\" title=\"✉️ Contact:\" id=\"Vu4-Wz-Agk\">\n                                                    <font key=\"font\" usesAppearanceFont=\"YES\"/>\n                                                    <color key=\"textColor\" name=\"labelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                    <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                </textFieldCell>\n                                            </textField>\n                                            <button verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"adH-E1-vuZ\" customClass=\"LinkButton\" customModule=\"OpenInTerminal\" customModuleProvider=\"target\">\n                                                <rect key=\"frame\" x=\"83\" y=\"0.0\" width=\"137\" height=\"16\"/>\n                                                <buttonCell key=\"cell\" type=\"bevel\" title=\"contact@jianing.wang\" bezelStyle=\"regularSquare\" alignment=\"center\" inset=\"2\" id=\"IPL-yO-Vkp\">\n                                                    <behavior key=\"behavior\" pushIn=\"YES\" lightByBackground=\"YES\" lightByGray=\"YES\"/>\n                                                    <font key=\"font\" metaFont=\"system\"/>\n                                                </buttonCell>\n                                                <color key=\"contentTintColor\" name=\"systemBlueColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <connections>\n                                                    <action selector=\"contactButtonClicked:\" target=\"k6X-N1-mVu\" id=\"PM2-Zb-G4X\"/>\n                                                </connections>\n                                            </button>\n                                        </subviews>\n                                        <constraints>\n                                            <constraint firstAttribute=\"bottom\" secondItem=\"if3-nE-vHb\" secondAttribute=\"bottom\" id=\"ZgR-Rx-1oi\"/>\n                                        </constraints>\n                                        <visibilityPriorities>\n                                            <integer value=\"1000\"/>\n                                            <integer value=\"1000\"/>\n                                        </visibilityPriorities>\n                                        <customSpacing>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                        </customSpacing>\n                                    </stackView>\n                                    <stackView distribution=\"fill\" orientation=\"horizontal\" alignment=\"top\" horizontalStackHuggingPriority=\"249.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"0TM-Nh-KHG\">\n                                        <rect key=\"frame\" x=\"0.0\" y=\"62\" width=\"140\" height=\"16\"/>\n                                        <subviews>\n                                            <textField focusRingType=\"none\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"nS3-Ad-fSA\">\n                                                <rect key=\"frame\" x=\"-2\" y=\"0.0\" width=\"73\" height=\"16\"/>\n                                                <textFieldCell key=\"cell\" lineBreakMode=\"clipping\" title=\"🐦 Twitter:\" id=\"NZE-zU-6ss\">\n                                                    <font key=\"font\" usesAppearanceFont=\"YES\"/>\n                                                    <color key=\"textColor\" name=\"labelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                    <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                </textFieldCell>\n                                            </textField>\n                                            <button verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"eGl-Wl-oil\" customClass=\"LinkButton\" customModule=\"OpenInTerminal\" customModuleProvider=\"target\">\n                                                <rect key=\"frame\" x=\"77\" y=\"0.0\" width=\"63\" height=\"16\"/>\n                                                <buttonCell key=\"cell\" type=\"bevel\" title=\"@Ji4n1ng\" bezelStyle=\"regularSquare\" alignment=\"center\" inset=\"2\" id=\"tR5-me-DTK\">\n                                                    <behavior key=\"behavior\" pushIn=\"YES\" lightByBackground=\"YES\" lightByGray=\"YES\"/>\n                                                    <font key=\"font\" metaFont=\"system\"/>\n                                                </buttonCell>\n                                                <color key=\"contentTintColor\" name=\"systemBlueColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <connections>\n                                                    <action selector=\"twitterButtonClicked:\" target=\"k6X-N1-mVu\" id=\"chC-xh-WSK\"/>\n                                                </connections>\n                                            </button>\n                                        </subviews>\n                                        <constraints>\n                                            <constraint firstAttribute=\"bottom\" secondItem=\"nS3-Ad-fSA\" secondAttribute=\"bottom\" id=\"ho6-Uc-xLd\"/>\n                                        </constraints>\n                                        <visibilityPriorities>\n                                            <integer value=\"1000\"/>\n                                            <integer value=\"1000\"/>\n                                        </visibilityPriorities>\n                                        <customSpacing>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                        </customSpacing>\n                                    </stackView>\n                                    <stackView distribution=\"fill\" orientation=\"horizontal\" alignment=\"top\" horizontalStackHuggingPriority=\"249.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"rgk-r7-9TN\">\n                                        <rect key=\"frame\" x=\"0.0\" y=\"31\" width=\"346\" height=\"16\"/>\n                                        <subviews>\n                                            <textField focusRingType=\"none\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"1om-sX-E6f\">\n                                                <rect key=\"frame\" x=\"-2\" y=\"0.0\" width=\"74\" height=\"16\"/>\n                                                <textFieldCell key=\"cell\" lineBreakMode=\"clipping\" title=\"💸 Donate:\" id=\"Kua-ZD-31F\">\n                                                    <font key=\"font\" usesAppearanceFont=\"YES\"/>\n                                                    <color key=\"textColor\" name=\"labelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                    <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                </textFieldCell>\n                                            </textField>\n                                            <button verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"zkY-9b-cNt\" customClass=\"LinkButton\" customModule=\"OpenInTerminal\" customModuleProvider=\"target\">\n                                                <rect key=\"frame\" x=\"78\" y=\"0.0\" width=\"107\" height=\"16\"/>\n                                                <buttonCell key=\"cell\" type=\"bevel\" title=\"GitHub Sponsors\" bezelStyle=\"regularSquare\" alignment=\"center\" inset=\"2\" id=\"dC4-C7-fEL\">\n                                                    <behavior key=\"behavior\" pushIn=\"YES\" lightByBackground=\"YES\" lightByGray=\"YES\"/>\n                                                    <font key=\"font\" metaFont=\"system\"/>\n                                                </buttonCell>\n                                                <color key=\"contentTintColor\" name=\"systemBlueColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <connections>\n                                                    <action selector=\"githubSponsorsButtonClicked:\" target=\"k6X-N1-mVu\" id=\"AFY-jU-KAh\"/>\n                                                </connections>\n                                            </button>\n                                            <button verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"nJa-zE-9y5\" customClass=\"LinkButton\" customModule=\"OpenInTerminal\" customModuleProvider=\"target\">\n                                                <rect key=\"frame\" x=\"193\" y=\"0.0\" width=\"44\" height=\"16\"/>\n                                                <buttonCell key=\"cell\" type=\"bevel\" title=\"PayPal\" bezelStyle=\"regularSquare\" alignment=\"center\" inset=\"2\" id=\"k3X-F7-Gpb\">\n                                                    <behavior key=\"behavior\" pushIn=\"YES\" lightByBackground=\"YES\" lightByGray=\"YES\"/>\n                                                    <font key=\"font\" metaFont=\"system\"/>\n                                                </buttonCell>\n                                                <color key=\"contentTintColor\" name=\"systemBlueColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <connections>\n                                                    <action selector=\"paypalButtonClicked:\" target=\"k6X-N1-mVu\" id=\"TXO-2w-bqy\"/>\n                                                </connections>\n                                            </button>\n                                            <button verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"YuZ-SB-JI0\" customClass=\"LinkButton\" customModule=\"OpenInTerminal\" customModuleProvider=\"target\">\n                                                <rect key=\"frame\" x=\"245\" y=\"0.0\" width=\"41\" height=\"16\"/>\n                                                <buttonCell key=\"cell\" type=\"bevel\" title=\"Alipay\" bezelStyle=\"regularSquare\" alignment=\"center\" inset=\"2\" id=\"Sw7-of-ecf\">\n                                                    <behavior key=\"behavior\" pushIn=\"YES\" lightByBackground=\"YES\" lightByGray=\"YES\"/>\n                                                    <font key=\"font\" metaFont=\"system\"/>\n                                                </buttonCell>\n                                                <color key=\"contentTintColor\" name=\"systemBlueColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <connections>\n                                                    <action selector=\"alipayButtonClicked:\" target=\"k6X-N1-mVu\" id=\"cYG-Ep-Gi4\"/>\n                                                </connections>\n                                            </button>\n                                            <button verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"4yg-oj-mt1\" customClass=\"LinkButton\" customModule=\"OpenInTerminal\" customModuleProvider=\"target\">\n                                                <rect key=\"frame\" x=\"294\" y=\"0.0\" width=\"52\" height=\"16\"/>\n                                                <buttonCell key=\"cell\" type=\"bevel\" title=\"WeChat\" bezelStyle=\"regularSquare\" alignment=\"center\" inset=\"2\" id=\"HUx-Wz-JJm\">\n                                                    <behavior key=\"behavior\" pushIn=\"YES\" lightByBackground=\"YES\" lightByGray=\"YES\"/>\n                                                    <font key=\"font\" metaFont=\"system\"/>\n                                                </buttonCell>\n                                                <color key=\"contentTintColor\" name=\"systemBlueColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <connections>\n                                                    <action selector=\"weChatPayButtonClicked:\" target=\"k6X-N1-mVu\" id=\"kCG-ab-xjx\"/>\n                                                </connections>\n                                            </button>\n                                        </subviews>\n                                        <visibilityPriorities>\n                                            <integer value=\"1000\"/>\n                                            <integer value=\"1000\"/>\n                                            <integer value=\"1000\"/>\n                                            <integer value=\"1000\"/>\n                                            <integer value=\"1000\"/>\n                                        </visibilityPriorities>\n                                        <customSpacing>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                        </customSpacing>\n                                    </stackView>\n                                    <stackView distribution=\"fill\" orientation=\"horizontal\" alignment=\"top\" horizontalStackHuggingPriority=\"249.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"ZYf-tO-yw0\">\n                                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"205\" height=\"16\"/>\n                                        <subviews>\n                                            <textField focusRingType=\"none\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"Gm0-nz-Nxn\">\n                                                <rect key=\"frame\" x=\"-2\" y=\"0.0\" width=\"135\" height=\"16\"/>\n                                                <textFieldCell key=\"cell\" lineBreakMode=\"clipping\" title=\"❤️ Special thanks to:\" id=\"0Gy-jf-q6v\">\n                                                    <font key=\"font\" usesAppearanceFont=\"YES\"/>\n                                                    <color key=\"textColor\" name=\"labelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                    <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                </textFieldCell>\n                                            </textField>\n                                            <button verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"gla-nH-5mz\" customClass=\"LinkButton\" customModule=\"OpenInTerminal\" customModuleProvider=\"target\">\n                                                <rect key=\"frame\" x=\"139\" y=\"0.0\" width=\"66\" height=\"16\"/>\n                                                <buttonCell key=\"cell\" type=\"bevel\" title=\"@Camji55\" bezelStyle=\"regularSquare\" alignment=\"center\" inset=\"2\" id=\"IJL-uk-uO5\">\n                                                    <behavior key=\"behavior\" pushIn=\"YES\" lightByBackground=\"YES\" lightByGray=\"YES\"/>\n                                                    <font key=\"font\" metaFont=\"system\"/>\n                                                </buttonCell>\n                                                <color key=\"contentTintColor\" name=\"systemBlueColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <connections>\n                                                    <action selector=\"camji55ButtonClicked:\" target=\"k6X-N1-mVu\" id=\"g95-gI-wiV\"/>\n                                                </connections>\n                                            </button>\n                                        </subviews>\n                                        <constraints>\n                                            <constraint firstAttribute=\"bottom\" secondItem=\"Gm0-nz-Nxn\" secondAttribute=\"bottom\" id=\"jmD-j8-xBc\"/>\n                                        </constraints>\n                                        <visibilityPriorities>\n                                            <integer value=\"1000\"/>\n                                            <integer value=\"1000\"/>\n                                        </visibilityPriorities>\n                                        <customSpacing>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                        </customSpacing>\n                                    </stackView>\n                                </subviews>\n                                <visibilityPriorities>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                </visibilityPriorities>\n                                <customSpacing>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                </customSpacing>\n                            </stackView>\n                        </subviews>\n                        <constraints>\n                            <constraint firstAttribute=\"bottom\" secondItem=\"4es-k1-K2c\" secondAttribute=\"bottom\" constant=\"20\" id=\"Fpp-VV-dWA\"/>\n                            <constraint firstAttribute=\"trailing\" secondItem=\"4es-k1-K2c\" secondAttribute=\"trailing\" constant=\"20\" id=\"Mlj-Mf-OeA\"/>\n                            <constraint firstItem=\"4es-k1-K2c\" firstAttribute=\"leading\" secondItem=\"rHs-sx-r6F\" secondAttribute=\"leading\" constant=\"20\" id=\"RKi-4C-Xkz\"/>\n                            <constraint firstItem=\"4es-k1-K2c\" firstAttribute=\"top\" secondItem=\"rHs-sx-r6F\" secondAttribute=\"top\" constant=\"20\" id=\"Xbo-Am-YIE\"/>\n                        </constraints>\n                    </view>\n                    <connections>\n                        <outlet property=\"versionLabel\" destination=\"GS4-or-3hj\" id=\"pbl-vV-TJD\"/>\n                    </connections>\n                </viewController>\n                <customObject id=\"r1e-Ze-Lr7\" userLabel=\"First Responder\" customClass=\"NSResponder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"799\" y=\"1052\"/>\n        </scene>\n        <!--Custom Input View Controller-->\n        <scene sceneID=\"V8O-1J-2g2\">\n            <objects>\n                <customObject id=\"th2-3m-pTb\" userLabel=\"First Responder\" customClass=\"NSResponder\" sceneMemberID=\"firstResponder\"/>\n                <viewController storyboardIdentifier=\"CustomInputViewController\" id=\"8tO-TU-p61\" customClass=\"CustomInputViewController\" customModule=\"OpenInTerminal\" customModuleProvider=\"target\" sceneMemberID=\"viewController\">\n                    <view key=\"view\" id=\"emV-8m-KuS\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"429\" height=\"192\"/>\n                        <autoresizingMask key=\"autoresizingMask\"/>\n                        <subviews>\n                            <stackView distribution=\"fill\" orientation=\"vertical\" alignment=\"leading\" horizontalStackHuggingPriority=\"249.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"oOB-ny-fsk\">\n                                <rect key=\"frame\" x=\"20\" y=\"20\" width=\"389\" height=\"152\"/>\n                                <subviews>\n                                    <textField focusRingType=\"none\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"KZG-9a-zt2\">\n                                        <rect key=\"frame\" x=\"-2\" y=\"136\" width=\"120\" height=\"16\"/>\n                                        <textFieldCell key=\"cell\" lineBreakMode=\"clipping\" title=\"Application Name:\" id=\"h5X-oY-gqy\">\n                                            <font key=\"font\" metaFont=\"systemSemibold\" size=\"13\"/>\n                                            <color key=\"textColor\" name=\"labelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                        </textFieldCell>\n                                    </textField>\n                                    <textField focusRingType=\"none\" verticalHuggingPriority=\"750\" horizontalCompressionResistancePriority=\"250\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"jZc-0y-CAB\">\n                                        <rect key=\"frame\" x=\"20\" y=\"106\" width=\"369\" height=\"22\"/>\n                                        <textFieldCell key=\"cell\" scrollable=\"YES\" lineBreakMode=\"clipping\" selectable=\"YES\" editable=\"YES\" sendsActionOnEndEditing=\"YES\" borderStyle=\"bezel\" alignment=\"left\" bezelStyle=\"round\" id=\"Njx-OI-Nxd\">\n                                            <font key=\"font\" usesAppearanceFont=\"YES\"/>\n                                            <color key=\"textColor\" name=\"controlTextColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                        </textFieldCell>\n                                    </textField>\n                                    <textField focusRingType=\"none\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"hWZ-s6-YW6\">\n                                        <rect key=\"frame\" x=\"-2\" y=\"82\" width=\"115\" height=\"16\"/>\n                                        <textFieldCell key=\"cell\" lineBreakMode=\"clipping\" alignment=\"right\" title=\"Application Type:\" id=\"UCM-Ds-LYN\">\n                                            <font key=\"font\" metaFont=\"systemSemibold\" size=\"13\"/>\n                                            <color key=\"textColor\" name=\"labelColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                        </textFieldCell>\n                                    </textField>\n                                    <stackView distribution=\"fill\" orientation=\"horizontal\" alignment=\"top\" spacing=\"40\" horizontalStackHuggingPriority=\"249.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"e7i-9d-dhx\">\n                                        <rect key=\"frame\" x=\"20\" y=\"28\" width=\"176\" height=\"46\"/>\n                                        <subviews>\n                                            <button verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"feM-rx-FRK\">\n                                                <rect key=\"frame\" x=\"-2\" y=\"29\" width=\"78\" height=\"18\"/>\n                                                <buttonCell key=\"cell\" type=\"radio\" title=\"Terminal\" bezelStyle=\"regularSquare\" imagePosition=\"left\" alignment=\"left\" inset=\"2\" id=\"M3w-T0-vi7\">\n                                                    <behavior key=\"behavior\" changeContents=\"YES\" doesNotDimImage=\"YES\" lightByContents=\"YES\"/>\n                                                    <font key=\"font\" metaFont=\"system\"/>\n                                                </buttonCell>\n                                                <connections>\n                                                    <action selector=\"terminalTypeButtonClicked:\" target=\"8tO-TU-p61\" id=\"di2-od-jl3\"/>\n                                                </connections>\n                                            </button>\n                                            <button verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"vuC-8Q-Vhn\">\n                                                <rect key=\"frame\" x=\"114\" y=\"29\" width=\"62\" height=\"18\"/>\n                                                <buttonCell key=\"cell\" type=\"radio\" title=\"Editor\" bezelStyle=\"regularSquare\" imagePosition=\"left\" alignment=\"left\" inset=\"2\" id=\"fb4-Xq-he0\">\n                                                    <behavior key=\"behavior\" changeContents=\"YES\" doesNotDimImage=\"YES\" lightByContents=\"YES\"/>\n                                                    <font key=\"font\" metaFont=\"system\"/>\n                                                </buttonCell>\n                                                <connections>\n                                                    <action selector=\"editorTypeButtonClicked:\" target=\"8tO-TU-p61\" id=\"PEy-gl-iMQ\"/>\n                                                </connections>\n                                            </button>\n                                        </subviews>\n                                        <visibilityPriorities>\n                                            <integer value=\"1000\"/>\n                                            <integer value=\"1000\"/>\n                                        </visibilityPriorities>\n                                        <customSpacing>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                        </customSpacing>\n                                    </stackView>\n                                    <stackView distribution=\"fill\" orientation=\"horizontal\" alignment=\"top\" spacing=\"30\" horizontalStackHuggingPriority=\"248.99998474121094\" verticalStackHuggingPriority=\"249.99998474121094\" detachesHiddenViews=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"QUB-CL-Jbu\">\n                                        <rect key=\"frame\" x=\"114\" y=\"0.0\" width=\"161\" height=\"20\"/>\n                                        <subviews>\n                                            <button horizontalHuggingPriority=\"750\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"dvD-wQ-JB8\">\n                                                <rect key=\"frame\" x=\"-7\" y=\"-7\" width=\"76\" height=\"32\"/>\n                                                <buttonCell key=\"cell\" type=\"push\" title=\"Cancel\" bezelStyle=\"rounded\" alignment=\"center\" borderStyle=\"border\" imageScaling=\"proportionallyDown\" inset=\"2\" id=\"Cp7-6g-ngj\">\n                                                    <behavior key=\"behavior\" pushIn=\"YES\" lightByBackground=\"YES\" lightByGray=\"YES\"/>\n                                                    <font key=\"font\" metaFont=\"system\"/>\n                                                    <string key=\"keyEquivalent\" base64-UTF8=\"YES\">\nGw\n</string>\n                                                </buttonCell>\n                                                <connections>\n                                                    <action selector=\"cancelButtonClicked:\" target=\"8tO-TU-p61\" id=\"X7E-vU-uvz\"/>\n                                                </connections>\n                                            </button>\n                                            <button horizontalHuggingPriority=\"750\" verticalHuggingPriority=\"750\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"KzQ-Ps-owF\">\n                                                <rect key=\"frame\" x=\"85\" y=\"-7\" width=\"83\" height=\"32\"/>\n                                                <buttonCell key=\"cell\" type=\"push\" title=\"Confirm\" bezelStyle=\"rounded\" alignment=\"center\" enabled=\"NO\" state=\"on\" borderStyle=\"border\" imageScaling=\"proportionallyDown\" inset=\"2\" id=\"wpb-Gv-KAp\">\n                                                    <behavior key=\"behavior\" lightByBackground=\"YES\" lightByGray=\"YES\" changeBackground=\"YES\" changeGray=\"YES\"/>\n                                                    <font key=\"font\" metaFont=\"system\"/>\n                                                </buttonCell>\n                                                <connections>\n                                                    <action selector=\"confirmButtonClicked:\" target=\"8tO-TU-p61\" id=\"dcc-qq-3fb\"/>\n                                                </connections>\n                                            </button>\n                                        </subviews>\n                                        <constraints>\n                                            <constraint firstAttribute=\"bottom\" secondItem=\"dvD-wQ-JB8\" secondAttribute=\"bottom\" id=\"VDG-WH-TNl\"/>\n                                        </constraints>\n                                        <visibilityPriorities>\n                                            <integer value=\"1000\"/>\n                                            <integer value=\"1000\"/>\n                                        </visibilityPriorities>\n                                        <customSpacing>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                            <real value=\"3.4028234663852886e+38\"/>\n                                        </customSpacing>\n                                    </stackView>\n                                </subviews>\n                                <constraints>\n                                    <constraint firstItem=\"QUB-CL-Jbu\" firstAttribute=\"centerX\" secondItem=\"oOB-ny-fsk\" secondAttribute=\"centerX\" id=\"4TV-8f-eZ8\"/>\n                                    <constraint firstItem=\"e7i-9d-dhx\" firstAttribute=\"leading\" secondItem=\"oOB-ny-fsk\" secondAttribute=\"leading\" constant=\"20\" id=\"F6c-4C-Ey6\"/>\n                                    <constraint firstAttribute=\"trailing\" secondItem=\"jZc-0y-CAB\" secondAttribute=\"trailing\" id=\"T7s-7Y-JWO\"/>\n                                    <constraint firstItem=\"jZc-0y-CAB\" firstAttribute=\"leading\" secondItem=\"oOB-ny-fsk\" secondAttribute=\"leading\" constant=\"20\" id=\"hHE-Iu-i9G\"/>\n                                </constraints>\n                                <visibilityPriorities>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                    <integer value=\"1000\"/>\n                                </visibilityPriorities>\n                                <customSpacing>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                    <real value=\"3.4028234663852886e+38\"/>\n                                </customSpacing>\n                            </stackView>\n                        </subviews>\n                        <constraints>\n                            <constraint firstItem=\"oOB-ny-fsk\" firstAttribute=\"leading\" secondItem=\"emV-8m-KuS\" secondAttribute=\"leading\" constant=\"20\" id=\"3Rw-fo-FIl\"/>\n                            <constraint firstAttribute=\"trailing\" secondItem=\"oOB-ny-fsk\" secondAttribute=\"trailing\" constant=\"20\" id=\"J0K-59-Y7k\"/>\n                            <constraint firstItem=\"oOB-ny-fsk\" firstAttribute=\"top\" secondItem=\"emV-8m-KuS\" secondAttribute=\"top\" constant=\"20\" id=\"iVb-bS-3x4\"/>\n                            <constraint firstAttribute=\"bottom\" secondItem=\"oOB-ny-fsk\" secondAttribute=\"bottom\" constant=\"20\" id=\"vQY-kG-z6F\"/>\n                        </constraints>\n                    </view>\n                    <connections>\n                        <outlet property=\"appNameTextField\" destination=\"jZc-0y-CAB\" id=\"NVB-8w-PDF\"/>\n                        <outlet property=\"cancelButton\" destination=\"dvD-wQ-JB8\" id=\"WFF-Nc-X9a\"/>\n                        <outlet property=\"confirmButton\" destination=\"KzQ-Ps-owF\" id=\"sBt-sy-qr3\"/>\n                        <outlet property=\"editorTypeButton\" destination=\"vuC-8Q-Vhn\" id=\"srC-w1-2OW\"/>\n                        <outlet property=\"terminalTypeButton\" destination=\"feM-rx-FRK\" id=\"lgE-SL-iWm\"/>\n                    </connections>\n                </viewController>\n            </objects>\n            <point key=\"canvasLocation\" x=\"-147\" y=\"1645\"/>\n        </scene>\n    </scenes>\n    <resources>\n        <image name=\"NSAddTemplate\" width=\"18\" height=\"17\"/>\n        <image name=\"NSAdvanced\" width=\"32\" height=\"32\"/>\n        <image name=\"NSPreferencesGeneral\" width=\"32\" height=\"32\"/>\n        <image name=\"NSRemoveTemplate\" width=\"18\" height=\"5\"/>\n        <image name=\"ToolbarCustomize\" width=\"1024\" height=\"1024\"/>\n        <image name=\"logo\" width=\"256\" height=\"256\"/>\n    </resources>\n</document>\n"
  },
  {
    "path": "OpenInTerminal/PreferencesWindow/CustomInputViewController.swift",
    "content": "//\n//  CustomInputViewController.swift\n//  OpenInTerminal\n//\n//  Created by Jianing Wang on 2021/1/14.\n//  Copyright © 2021 Jianing Wang. All rights reserved.\n//\n\nimport Cocoa\nimport OpenInTerminalCore\n\nclass CustomInputViewController: NSViewController {\n    \n    @IBOutlet weak var appNameTextField: NSTextField!\n    @IBOutlet weak var terminalTypeButton: NSButton!\n    @IBOutlet weak var editorTypeButton: NSButton!\n    @IBOutlet weak var cancelButton: NSButton!\n    @IBOutlet weak var confirmButton: NSButton!\n    var appName: String?\n    \n    override func viewDidLoad() {\n        super.viewDidLoad()\n        appNameTextField.delegate = self\n    }\n    \n    override func viewWillAppear() {\n        super.viewWillAppear()\n        terminalTypeButton.state = .off\n        editorTypeButton.state = .off\n        if let name = appName {\n            appNameTextField.stringValue = name\n        }\n        refreshConfirmState()\n    }\n    \n    @IBAction func terminalTypeButtonClicked(_ sender: NSButton) {\n        editorTypeButton.state = .off\n        refreshConfirmState()\n    }\n    \n    @IBAction func editorTypeButtonClicked(_ sender: NSButton) {\n        terminalTypeButton.state = .off\n        refreshConfirmState()\n    }\n    \n    @IBAction func cancelButtonClicked(_ sender: NSButton) {\n        dismiss(nil)\n    }\n    \n    @IBAction func confirmButtonClicked(_ sender: NSButton) {\n        confirmButton.isEnabled = false\n        if let presenting = presentingViewController as? CustomPreferencesViewController {\n            let name = appNameTextField.stringValue\n            let type: AppType = terminalTypeButton.state == .on ? .terminal : .editor\n            let app = App(name: name, type: type)\n            presenting.addCustomApp(app)\n            dismiss(nil)\n        }\n    }\n    \n    func refreshConfirmState() {\n        if appNameTextField.stringValue.count > 0 && (terminalTypeButton.state == .on || editorTypeButton.state == .on) {\n            confirmButton.isEnabled = true\n        } else {\n            confirmButton.isEnabled = false\n        }\n    }\n    \n}\n\nextension CustomInputViewController: NSTextFieldDelegate {\n    \n    func controlTextDidChange(_ obj: Notification) {\n        refreshConfirmState()\n    }\n    \n}\n"
  },
  {
    "path": "OpenInTerminal/PreferencesWindow/CustomPreferencesViewController.swift",
    "content": "//\n//  CustomPreferencesViewController.swift\n//  OpenInTerminal\n//\n//  Created by Jianing Wang on 2019/4/21.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\nimport Cocoa\nimport OpenInTerminalCore\n\nclass CustomPreferencesViewController: PreferencesViewController {\n    \n    // MARK: Properties\n    \n    @IBOutlet weak var installedApplicationsTextField: NSTextField!\n    @IBOutlet weak var notInstalledApplicationsTextField: NSTextField!\n    \n    @IBOutlet weak var iTermTextField: NSTextField!\n    @IBOutlet weak var iTermWindowButton: NSButton!\n    @IBOutlet weak var iTermTabButton: NSButton!\n    \n    @IBOutlet weak var customMenuTableView: NSTableView!\n    @IBOutlet weak var addMenuOptionButton: NSButton!\n    var addOptionMenu: NSMenu = NSMenu()\n    @IBOutlet weak var applyToToolbarButton: NSButton!\n    @IBOutlet weak var applyToContextButton: NSButton!\n    \n    @IBOutlet weak var noIconButton: NSButton!\n    @IBOutlet weak var simpleIconButton: NSButton!\n    @IBOutlet weak var originalIconButton: NSButton!\n    \n    @IBOutlet weak var pathNoButton: NSButton!\n    @IBOutlet weak var pathYesButton: NSButton!\n    \n    private var dragDropType = NSPasteboard.PasteboardType(rawValue: \"private.table-row\")\n    \n    var allInstalledAppNames: Set<String> = Set() {\n        didSet {\n            DispatchQueue.main.async {\n                self.refreshSupportedApps()\n            }\n        }\n    }\n    var installedSupportedAppNames: [String] = []\n        \n    var customMenuOptions = [App]() {\n        didSet {\n            customMenuTableView.reloadData()\n            if customMenuOptions != DefaultsManager.shared.customMenuOptions {\n                DefaultsManager.shared.customMenuOptions = customMenuOptions\n            }\n        }\n    }\n    var runningApps = [App]()\n    \n    // MARK: Lifecycle\n    \n    override func viewDidLoad() {\n        super.viewDidLoad()\n        customMenuTableView.dataSource = self\n        customMenuTableView.delegate = self\n        customMenuTableView.registerForDraggedTypes([dragDropType])\n    }\n    \n    override func viewWillAppear() {\n        super.viewWillAppear()\n        // fetch installed apps\n        DispatchQueue.global(qos: .background).async {\n            self.allInstalledAppNames = FinderManager.shared.getAllInstalledApps()\n        }\n        // get saved custom menu apps\n        if let customMenuOptions = DefaultsManager.shared.customMenuOptions {\n            self.customMenuOptions = customMenuOptions\n        }\n        refreshSupportedApps()\n        refreshCustomButtons()\n        refreshIconTypeOptionState()\n    }\n    \n    override func viewDidAppear() {\n        super.viewDidAppear()\n    }\n    \n    // MARK: Refresh UI\n    \n    func refreshSupportedApps() {\n        // get all installed supported apps\n        installedSupportedAppNames = SupportedApps.allCases.map(\\.name)\n            .filter(allInstalledAppNames.contains)\n            .sortedIgnoreCase()\n        installedApplicationsTextField.stringValue = installedSupportedAppNames.joined(separator: \", \")\n        \n        // get all not installed supported apps\n        let notInstalledSupportedApps = SupportedApps.allCases.map(\\.name)\n            .filter { !installedSupportedAppNames.contains($0) }\n            .sortedIgnoreCase()\n        notInstalledApplicationsTextField.stringValue = notInstalledSupportedApps.joined(separator: \", \")\n        \n        // refresh text field enabled state\n        let terminals: [(SupportedApps, NSTextField)] = [\n            (.iTerm, iTermTextField)\n        ]\n        terminals.forEach { terminal, textField in\n            let isInstalled = installedSupportedAppNames.contains(terminal.name)\n            textField.isEnabled = isInstalled\n            if isInstalled {\n                textField.textColor = .labelColor\n                textField.stringValue = \"\\(terminal.name)\"\n            } else {\n                textField.textColor = .secondaryLabelColor\n                let notInstalledString = NSLocalizedString(\"pref.toolbar.not_installed\", comment: \"Not Installed\")\n                textField.stringValue = \"\\(terminal.name) (\\(notInstalledString))\"\n            }\n        }\n        \n        // refresh button state\n        iTermWindowButton.isEnabled = iTermTextField.isEnabled\n        iTermTabButton.isEnabled = iTermTextField.isEnabled\n        \n        let terminalStates: [(SupportedApps, NSButton, NSButton)] = [\n            (.iTerm, iTermWindowButton, iTermTabButton)\n        ]\n        terminalStates.forEach { terminal, windowButton, tabButton in\n            let _newOption = DefaultsManager.shared.getNewOption(terminal)\n            if let newOption = _newOption {\n                if newOption == .window {\n                    windowButton.state = .on\n                    tabButton.state = .off\n                } else {\n                    windowButton.state = .off\n                    tabButton.state = .on\n                }\n            }\n        }\n    }\n    \n    func refreshCustomButtons() {\n        let isApplyToToolbar = DefaultsManager.shared.isCustomMenuApplyToToolbar\n        applyToToolbarButton.state = isApplyToToolbar ? .on : .off\n\n        let isApplyToContext = DefaultsManager.shared.isCustomMenuApplyToContext\n        applyToContextButton.state = isApplyToContext ? .on : .off\n        \n        let isPathEscaped = DefaultsManager.shared.isPathEscaped\n        if isPathEscaped {\n            pathYesButton.state = .on\n            pathNoButton.state = .off\n        } else {\n            pathYesButton.state = .off\n            pathNoButton.state = .on\n        }\n    }\n    \n    func offIconTypeButtons() {\n        noIconButton.state = .off\n        simpleIconButton.state = .off\n        originalIconButton.state = .off\n    }\n    \n    func refreshIconTypeOptionState() {\n        offIconTypeButtons()\n        let option = DefaultsManager.shared.customMenuIconOption\n        switch option {\n        case .no:\n            noIconButton.state = .on\n        case .simple:\n            simpleIconButton.state = .on\n        case .original:\n            originalIconButton.state = .on\n        }\n    }\n    \n    func refreshAddOptionMenu() {\n        addOptionMenu.removeAllItems()\n        \n        // 1. Installed Supported Apps\n        let installedSupportedMenu = NSMenu()\n        installedSupportedAppNames.forEach {\n            let menuItem = NSMenuItem(title: $0,\n              action: #selector(selectSupportedApp),\n              keyEquivalent: \"\")\n            menuItem.target = self\n            menuItem.image = NSImage(named: $0)\n            menuItem.image?.size = NSSize(width: 14, height: 14)\n            installedSupportedMenu.addItem(menuItem)\n        }\n        let installedSupportedMenuItem = NSMenuItem()\n        installedSupportedMenuItem.title = NSLocalizedString(\"pref.custom.menu.installed_supported\", comment: \"Installed Supported Apps\")\n        addOptionMenu.addItem(installedSupportedMenuItem)\n        addOptionMenu.setSubmenu(installedSupportedMenu, for: installedSupportedMenuItem)\n        \n        // 2. All Supported Apps\n        let supportedMenu = NSMenu()\n        SupportedApps.allCases.forEach {\n            let menuItem = NSMenuItem(title: $0.name,\n                                      action: #selector(selectSupportedApp),\n                                      keyEquivalent: \"\")\n            menuItem.target = self\n            menuItem.image = NSImage(named: $0.name)\n            menuItem.image?.size = NSSize(width: 14, height: 14)\n            supportedMenu.addItem(menuItem)\n        }\n        let supportedMenuItem = NSMenuItem()\n        supportedMenuItem.title = NSLocalizedString(\"pref.custom.menu.all_supported\", comment: \"All Supported Apps\")\n        addOptionMenu.addItem(supportedMenuItem)\n        addOptionMenu.setSubmenu(supportedMenu, for: supportedMenuItem)\n        \n        // 3. Running Applications\n        let runningMenu = NSMenu()\n        let runningApplications = NSWorkspace.shared.runningApplications\n        runningApps.removeAll()\n        for runningApp in runningApplications {\n            guard runningApp.activationPolicy == .regular else { continue }\n            guard let bundleURL = runningApp.bundleURL else { continue }\n            let icon = AppManager.getApplicationIcon(from: bundleURL)\n            let name = AppManager.getApplicationFileName(from: bundleURL.path)\n            let menuItem = NSMenuItem(title: name,\n                                      action: #selector(selectRunningApp),\n                                      keyEquivalent: \"\")\n            menuItem.target = self\n            menuItem.image = icon\n            menuItem.image?.size = NSSize(width: 14, height: 14)\n            runningMenu.addItem(menuItem)\n            let app = App(name: name, type: .terminal)\n            runningApps.append(app)\n        }\n        let runningMenuItem = NSMenuItem()\n        runningMenuItem.title = NSLocalizedString(\"pref.custom.menu.running_apps\", comment: \"Running Apps\")\n        addOptionMenu.addItem(runningMenuItem)\n        addOptionMenu.setSubmenu(runningMenu, for: runningMenuItem)\n        \n        // 4. Manually Select From Finder\n        let manuallySelectTitle = NSLocalizedString(\"pref.custom.menu.manually_select\", comment: \"Manually Select From Finder\")\n        let manuallySelectMenuItem = NSMenuItem(title: manuallySelectTitle,\n                                                action: #selector(selectManuallySelect),\n                                                keyEquivalent: \"\")\n        manuallySelectMenuItem.target = self\n        addOptionMenu.addItem(manuallySelectMenuItem)\n        \n        // 5. Manually Input\n        let manuallyInputTitle = NSLocalizedString(\"pref.custom.menu.manually_input\", comment: \"Manually Input\")\n        let manuallyInputMenuItem = NSMenuItem(title: manuallyInputTitle,\n                                                action: #selector(selectManuallyInput),\n                                                keyEquivalent: \"\")\n        manuallyInputMenuItem.target = self\n        addOptionMenu.addItem(manuallyInputMenuItem)\n        \n    }\n    \n    // MARK: Button Actions\n    \n    @IBAction func iTermWindowButtonClicked(_ sender: NSButton) {\n        iTermTabButton.state = .off\n        DefaultsManager.shared.setNewOption(.iTerm, .window)\n    }\n    \n    @IBAction func iTermTabButtonClicked(_ sender: NSButton) {\n        iTermWindowButton.state = .off\n        DefaultsManager.shared.setNewOption(.iTerm, .tab)\n    }\n    \n    @IBAction func pathNoButtonClicked(_ sender: NSButton) {\n        pathYesButton.state = .off\n        DefaultsManager.shared.isPathEscaped = false\n    }\n    \n    @IBAction func pathYesButtonClicked(_ sender: NSButton) {\n        pathNoButton.state = .off\n        DefaultsManager.shared.isPathEscaped = true\n    }\n    \n    @IBAction func addMenuOptionButtonClicked(_ sender: NSButton) {\n        refreshAddOptionMenu()\n        let point = NSPoint(x: sender.frame.origin.x, y: sender.frame.origin.y - (sender.frame.height / 2))\n        addOptionMenu.popUp(positioning: nil, at: point, in: sender.superview)\n    }\n    \n    @objc func selectSupportedApp(_ sender: NSMenuItem) {\n        let selectedAppName = sender.title\n        SupportedApps.allCases.forEach {\n            if $0.name == selectedAppName {\n                customMenuOptions.append($0.app)\n            }\n        }\n    }\n    \n    @objc func selectRunningApp(_ sender: NSMenuItem) {\n        let selectedAppName = sender.title\n        runningApps.forEach {\n            if $0.name == selectedAppName {\n                showCustomInputViewController($0.name)\n            }\n        }\n    }\n    \n    @objc func selectManuallySelect(_ sender: NSMenuItem) {\n        openFileSelectPanel()\n    }\n    \n    @objc func selectManuallyInput(_ sender: NSMenuItem) {\n        showCustomInputViewController()\n    }\n    \n    func addCustomApp(_ app: App) {\n        customMenuOptions.append(app)\n        // TODO: generate script\n    }\n    \n    @IBAction func removeMenuOptionButtonClicked(_ sender: NSButton) {\n        let row = customMenuTableView.selectedRow\n        guard row >= 0 else { return }\n\n        if let view = customMenuTableView.view(atColumn: 0, row: row, makeIfNecessary: false) as? NSTableCellView {\n            let appName = view.textField?.stringValue ?? \"\"\n            for customApp in customMenuOptions {\n                if customApp.name == appName {\n                    customMenuOptions.remove(element: customApp)\n                }\n            }\n        }\n    }\n    \n    @IBAction func applyToToolbarButtonClicked(_ sender: NSButton) {\n        let isApplyTo = applyToToolbarButton.state == .on\n        DefaultsManager.shared.isCustomMenuApplyToToolbar = isApplyTo\n    }\n    \n    @IBAction func applyToContextButtonClicked(_ sender: NSButton) {\n        let isApplyTo = applyToContextButton.state == .on\n        DefaultsManager.shared.isCustomMenuApplyToContext = isApplyTo\n    }\n    \n    func showCustomInputViewController(_ appName: String = \"\") {\n        guard let customInputViewController = Constants.PreferencesStoryboard.instantiateController(withIdentifier: Constants.Id.CustomInputViewController) as? CustomInputViewController else {\n            return\n        }\n        if appName != \"\" {\n            customInputViewController.appName = appName\n        }\n        self.presentAsSheet(customInputViewController)\n    }\n    \n    @IBAction func noIconButtonClicked(_ sender: NSButton) {\n        offIconTypeButtons()\n        noIconButton.state = .on\n        DefaultsManager.shared.customMenuIconOption = .no\n    }\n    \n    @IBAction func simpleIconButtonClicked(_ sender: NSButton) {\n        offIconTypeButtons()\n        simpleIconButton.state = .on\n        DefaultsManager.shared.customMenuIconOption = .simple\n    }\n    \n    @IBAction func originalIconButtonClicked(_ sender: NSButton) {\n        offIconTypeButtons()\n        originalIconButton.state = .on\n        DefaultsManager.shared.customMenuIconOption = .original\n    }\n}\n\nextension CustomPreferencesViewController: NSTableViewDataSource {\n\n    func numberOfRows(in tableView: NSTableView) -> Int {\n        if tableView == customMenuTableView {\n            return customMenuOptions.count\n        } else {\n            return 0\n        }\n    }\n    \n    func tableView(_ tableView: NSTableView, pasteboardWriterForRow row: Int) -> NSPasteboardWriting? {\n        let item = NSPasteboardItem()\n        item.setString(String(row), forType: self.dragDropType)\n        return item\n    }\n    \n    func tableView(_ tableView: NSTableView, validateDrop info: NSDraggingInfo, proposedRow row: Int, proposedDropOperation dropOperation: NSTableView.DropOperation) -> NSDragOperation {\n        if dropOperation == .above {\n            return .move\n        }\n        return []\n    }\n\n    func tableView(_ tableView: NSTableView, acceptDrop info: NSDraggingInfo, row: Int, dropOperation: NSTableView.DropOperation) -> Bool {\n        var oldIndexes = [Int]()\n        info.enumerateDraggingItems(options: [], for: tableView, classes: [NSPasteboardItem.self], searchOptions: [:]) { dragItem, _, _ in\n            if let str = (dragItem.item as! NSPasteboardItem).string(forType: self.dragDropType), let index = Int(str) {\n                oldIndexes.append(index)\n            }\n        }\n        var oldIndexOffset = 0\n        var newIndexOffset = 0\n        \n        customMenuOptions.move(with: IndexSet(oldIndexes), to: row)\n\n        // For simplicity, the code below uses `tableView.moveRowAtIndex` to move rows around directly.\n        // You may want to move rows in your content array and then call `tableView.reloadData()` instead.\n        tableView.beginUpdates()\n        for oldIndex in oldIndexes {\n            if oldIndex < row {\n                // ⬇️\n                tableView.moveRow(at: oldIndex + oldIndexOffset, to: row - 1)\n                oldIndexOffset -= 1\n            } else {\n                // ⬆️\n                tableView.moveRow(at: oldIndex, to: row + newIndexOffset)\n                newIndexOffset += 1\n            }\n        }\n        tableView.endUpdates()\n\n        return true\n    }\n\n}\n\nextension CustomPreferencesViewController: NSTableViewDelegate {\n    \n    func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {\n        if let cell = tableView.makeView(withIdentifier: Constants.Id.CustomMenuCell, owner: nil) as? NSTableCellView {\n            cell.textField?.stringValue = customMenuOptions[row].name\n            return cell\n        }\n        return nil\n    }\n    \n}\n\nextension CustomPreferencesViewController: NSMenuDelegate {\n\n    func openFileSelectPanel() {\n        let openPanel = NSOpenPanel()\n        openPanel.directoryURL = FileManager.default.urls(for: .applicationDirectory, in: .localDomainMask).first!\n        openPanel.canChooseDirectories = false\n        openPanel.canChooseFiles = true\n        openPanel.allowsMultipleSelection = false\n        openPanel.allowedFileTypes = [\"app\", \"App\", \"APP\"]\n        openPanel.beginSheetModal(for: view.window!, completionHandler: {\n            result in\n            if result == NSApplication.ModalResponse.OK {\n                if let appPath = openPanel.url?.path,\n                   let _ = Bundle(url: openPanel.url!)?.bundleIdentifier {\n                    let name = AppManager.getApplicationFileName(from: appPath)\n                    self.showCustomInputViewController(name)\n                } else {\n                    // 对于没有 bundleId 的应用可能是快捷方式, 给予提示\n                }\n            }\n        })\n    }\n    \n    \n}\n"
  },
  {
    "path": "OpenInTerminal/PreferencesWindow/GeneralPreferencesViewController.swift",
    "content": "//\n//  GeneralPreferencesViewController.swift\n//  OpenInTerminal\n//\n//  Created by Jianing Wang on 2019/4/21.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\nimport Cocoa\nimport OpenInTerminalCore\nimport ServiceManagement\n\nclass GeneralPreferencesViewController: PreferencesViewController {\n\n    // MARK: Properties\n\n    @IBOutlet weak var launchButton: NSButton!\n    @IBOutlet weak var quickToggleButton: NSButton!\n    @IBOutlet weak var chooseToggleActionButton: NSPopUpButton!\n    @IBOutlet weak var hideStatusItemButton: NSButton!\n    @IBOutlet weak var hideContextMemuItemsButton: NSButton!\n    @IBOutlet weak var defaultTerminalButton: NSPopUpButton!\n    @IBOutlet weak var defaultEditorButton: NSPopUpButton!\n    \n    lazy var quickToggleTerminalMenuItem: NSMenuItem = {\n        return NSMenuItem(title: QuickToggleType.openWithDefaultTerminal.name,\n                          action: #selector(quickToggleTerminalClicked),\n                          keyEquivalent: \"\")\n    }()\n    \n    lazy var quickToggleEditorMenuItem: NSMenuItem = {\n        return NSMenuItem(title: QuickToggleType.openWithDefaultEditor.name,\n                          action: #selector(quickToggleEditorClicked),\n                          keyEquivalent: \"\")\n    }()\n    \n    lazy var quickToggleCopyPathMenuItem: NSMenuItem = {\n        return NSMenuItem(title: QuickToggleType.copyPathToClipboard.name,\n                          action: #selector(quickToggleCopyPathClicked),\n                          keyEquivalent: \"\")\n    }()\n    \n    var allInstalledApps: Set<String> = Set()\n    var installedTerminals: [App]?\n    var installedEditors: [App]?\n    \n    // MARK: Lifecycle\n    \n    override func viewDidLoad() {\n        super.viewDidLoad()\n        initQuickToggleAction()\n    }\n    \n    override func viewWillAppear() {\n        super.viewWillAppear()\n        allInstalledApps = FinderManager.shared.getAllInstalledApps()\n        refreshButtonState()\n        refreshDefaultTerminal()\n        refreshDefaultEditor()\n    }\n    \n    override func viewDidAppear() {\n        super.viewDidAppear()\n    }\n    \n    // MARK: Init UI\n    \n    func initQuickToggleAction() {\n        chooseToggleActionButton.removeAllItems()\n        [quickToggleTerminalMenuItem, quickToggleEditorMenuItem,\n         quickToggleCopyPathMenuItem].forEach {\n            $0.target = self\n            chooseToggleActionButton.menu?.addItem($0)\n        }\n    }\n    \n    // MARK: Refresh UI\n    \n    func refreshButtonState() {\n        let isLaunchAtLogin = DefaultsManager.shared.isLaunchAtLogin\n        launchButton.state = isLaunchAtLogin ? .on : .off\n        \n        let isHideStatusItem = DefaultsManager.shared.isHideStatusItem\n        hideStatusItemButton.state = isHideStatusItem ? .on : .off\n        \n        let isHideContextMenuItems = DefaultsManager.shared.isHideContextMenuItems\n        hideContextMemuItemsButton.state = isHideContextMenuItems ? .on : .off\n        \n        let isQuickToggle = DefaultsManager.shared.isQuickToggle\n        quickToggleButton.state = isQuickToggle ? .on : .off\n        chooseToggleActionButton.isEnabled = isQuickToggle\n        \n        if let quickToggleType = DefaultsManager.shared.quickToggleType {\n            switch quickToggleType {\n            case .openWithDefaultTerminal:\n                chooseToggleActionButton.select(quickToggleTerminalMenuItem)\n            case .openWithDefaultEditor:\n                chooseToggleActionButton.select(quickToggleEditorMenuItem)\n            case .copyPathToClipboard:\n                chooseToggleActionButton.select(quickToggleCopyPathMenuItem)\n            }\n        }\n    }\n    \n    func refreshDefaultTerminal() {\n        defaultTerminalButton.removeAllItems()\n        var terminals = SupportedApps.terminals.map { $0.app }\n        // filter\n        terminals = terminals.filter {\n            allInstalledApps.contains($0.name)\n        }\n        // sort\n        terminals.sort {\n            $0.name.localizedCaseInsensitiveCompare($1.name) == ComparisonResult.orderedAscending\n        }\n        terminals.forEach {\n            defaultTerminalButton.addItem(withTitle: $0.name)\n        }\n        installedTerminals = terminals\n//        Constants.allTerminals.forEach { terminal in\n//            var isInstalled = allInstalledApps.contains(terminal.name)\n//            if terminal == .terminal {\n//                isInstalled = true\n//            }\n//            if isInstalled {\n//                defaultTerminalButton.addItem(withTitle: terminal.rawValue)\n//            }\n//        }\n//\n        if let defaultTerminal = DefaultsManager.shared.defaultTerminal {\n            let index = defaultTerminalButton.indexOfItem(withTitle: defaultTerminal.name)\n            defaultTerminalButton.selectItem(at: index)\n        }\n    }\n    \n    func refreshDefaultEditor() {\n        defaultEditorButton.removeAllItems()\n        var editors = SupportedApps.editors.map { $0.app }\n        // filter\n        editors = editors.filter {\n            allInstalledApps.contains($0.name)\n        }\n//        // add custom terminals\n//        let customEditors = DefaultsManager.shared.customApps?.filter { $0.type == .editor }\n//        if let customEditors = customEditors {\n//            editors += customEditors\n//        }\n        // sort\n        editors.sort {\n            $0.name.localizedCaseInsensitiveCompare($1.name) == ComparisonResult.orderedAscending\n        }\n        editors.forEach {\n            defaultEditorButton.addItem(withTitle: $0.name)\n        }\n        installedEditors = editors\n//        Constants.allEditors.forEach { editor in\n//            var isInstalled = allInstalledApps.contains(editor.fullName)\n//            if editor == .textEdit {\n//                isInstalled = true\n//            }\n//            if isInstalled {\n//                defaultEditorButton.addItem(withTitle: editor.rawValue)\n//            }\n//        }\n//\n        if let defaultEditor = DefaultsManager.shared.defaultEditor {\n            let index = defaultEditorButton.indexOfItem(withTitle: defaultEditor.name)\n            defaultEditorButton.selectItem(at: index)\n        }\n    }\n    \n    // MARK: Button Actions\n    \n    @IBAction func launchButtonClicked(_ sender: NSButton) {\n        let isLaunch = launchButton.state == .on\n        DefaultsManager.shared.isLaunchAtLogin = isLaunch\n        SMLoginItemSetEnabled(Constants.Id.LauncherApp as CFString, isLaunch)\n    }\n    \n    @IBAction func hideStatusItemButtonTapped(_ sender: NSButton) {\n        let isHide = hideStatusItemButton.state == .on\n        DefaultsManager.shared.isHideStatusItem = isHide\n\n        let appDelegate = NSApplication.shared.delegate as! AppDelegate\n        appDelegate.setStatusItemVisible()\n    }\n    \n    @IBAction func hideContextMenuItemsButtonTapped(_ sender: NSButton) {\n        let isHide = hideContextMemuItemsButton.state == .on\n        DefaultsManager.shared.isHideContextMenuItems = isHide\n    }\n    \n    @IBAction func quickToggleButtonClicked(_ sender: NSButton) {\n        let isQuickToggle = quickToggleButton.state == .on\n        DefaultsManager.shared.isQuickToggle = isQuickToggle\n        chooseToggleActionButton.isEnabled = isQuickToggle\n\n        let appDelegate = NSApplication.shared.delegate as! AppDelegate\n        appDelegate.setStatusToggle()\n        logw(\"Quick Toggle set to \\(sender.state.rawValue)\")\n    }\n    \n    @IBAction func defaultTerminalButtonClicked(_ sender: NSPopUpButton) {\n        guard let installedTerminals = installedTerminals else { return }\n        \n        let itemTitles = sender.itemTitles\n        let index = sender.indexOfSelectedItem\n        let title = itemTitles[index]\n        installedTerminals.forEach {\n            if $0.name == title {\n                DefaultsManager.shared.defaultTerminal = $0\n            }\n        }\n        \n    }\n    \n    @IBAction func defaultEditorButtonClicked(_ sender: NSPopUpButton) {\n        guard let installedEditors = installedEditors else { return }\n        \n        let itemTitles = sender.itemTitles\n        let index = sender.indexOfSelectedItem\n        let title = itemTitles[index]\n        installedEditors.forEach {\n            if $0.name == title {\n                DefaultsManager.shared.defaultEditor = $0\n            }\n        }\n        \n//        let itemTitles = sender.itemTitles\n//        let index = sender.indexOfSelectedItem\n//        let title = itemTitles[index]\n//\n//        if title == Constants.none {\n//            DefaultsManager.shared.removeDefaultEditor()\n//        }\n//\n//        if let editor = EditorType(rawValue: title) {\n//            DefaultsManager.shared.defaultEditor = editor\n//        }\n    }\n    \n    @objc func quickToggleTerminalClicked(_ sender: NSMenuItem) {\n        DefaultsManager.shared.quickToggleType = .openWithDefaultTerminal\n        chooseToggleActionButton.select(quickToggleTerminalMenuItem)\n    }\n    \n    @objc func quickToggleEditorClicked(_ sender: NSMenuItem) {\n        DefaultsManager.shared.quickToggleType = .openWithDefaultEditor\n        chooseToggleActionButton.select(quickToggleEditorMenuItem)\n    }\n    \n    @objc func quickToggleCopyPathClicked(_ sender: NSMenuItem) {\n        DefaultsManager.shared.quickToggleType = .copyPathToClipboard\n        chooseToggleActionButton.select(quickToggleCopyPathMenuItem)\n    }\n}\n"
  },
  {
    "path": "OpenInTerminal/PreferencesWindow/PreferencesViewController.swift",
    "content": "//\n//  PreferenceViewController.swift\n//  OpenInTerminal\n//\n//  Created by Jianing Wang on 2019/4/20.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\nimport Cocoa\n\nclass PreferencesViewController: NSViewController {\n\n    override func viewDidLoad() {\n        super.viewDidLoad()\n        \n        // Set the size for each views\n        self.preferredContentSize = NSMakeSize(self.view.frame.size.width, self.view.frame.size.height)\n        \n    }\n    \n    override func viewWillAppear() {\n        super.viewWillAppear()\n        \n    }\n    \n    override func viewDidAppear() {\n        super.viewDidAppear()\n        \n        // Update window title with the active TabView title\n//        self.parent?.view.window?.title = self.title!\n    }\n    \n}\n"
  },
  {
    "path": "OpenInTerminal/PreferencesWindow/PreferencesWindowController.swift",
    "content": "//\n//  PreferencesWindowController.swift\n//  OpenInTerminal\n//\n//  Created by Jianing Wang on 2019/4/29.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\nimport Cocoa\n\nclass PreferencesWindowController: NSWindowController {\n\n    override func windowDidLoad() {\n        super.windowDidLoad()\n    }\n    \n}\n"
  },
  {
    "path": "OpenInTerminal/PreferencesWindow/de.lproj/Preferences.strings",
    "content": "\n/* Class = \"NSTextFieldCell\"; title = \"❤️ Special thanks to:\"; ObjectID = \"0Gy-jf-q6v\"; */\n\"0Gy-jf-q6v.title\" = \"❤️ Besonderen Dank an:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"⚠️ Note that this will reset all user preferences\"; ObjectID = \"2Rg-te-FPU\"; */\n\"2Rg-te-FPU.title\" = \"⚠️ Beachten Sie, dass dadurch alle Benutzereinstellungen zurückgesetzt werden.\";\n\n/* Class = \"NSButtonCell\"; title = \"Apply to Finder Toolbar Menu\"; ObjectID = \"2we-f7-s2N\"; */\n\"2we-f7-s2N.title\" = \"Auf das Finder-Symbolleistenmenü anwenden\";\n\n/* Class = \"NSTextFieldCell\"; title = \"If enabled, click the Menu Bar icon to toggle the action you choose. Right click to open the menu.\"; ObjectID = \"592-4p-Ybh\"; */\n\"592-4p-Ybh.title\" = \"Falls aktiviert, klicken Sie auf das Symbol der Menüleiste, um die gewünschte Aktion zu aktivieren. Klicken Sie mit der rechten Maustaste, um das Menü zu öffnen.\";\n\n/* Class = \"NSWindow\"; title = \"Preferences\"; ObjectID = \"5f3-UK-Rft\"; */\n\"5f3-UK-Rft.title\" = \"Einstellungen\";\n\n/* Class = \"NSButtonCell\"; title = \"Hide Status Bar Icon\"; ObjectID = \"BUH-CU-WBW\"; */\n\"BUH-CU-WBW.title\" = \"Statusleistensymbol ausblenden\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open a new window or a new tab.\"; ObjectID = \"BrI-hE-Mff\"; */\n\"BrI-hE-Mff.title\" = \"Öffnen Sie ein neues Fenster oder einen neuen Tab.\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Icon Type:\"; ObjectID = \"CP0-Xv-uYl\"; */\n\"CP0-Xv-uYl.title\" = \"Symboltyp:\";\n\n/* Class = \"NSButtonCell\"; title = \"Cancel\"; ObjectID = \"Cp7-6g-ngj\"; */\n\"Cp7-6g-ngj.title\" = \"Abbrechen\";\n\n/* Class = \"NSTextFieldCell\"; title = \"None\"; ObjectID = \"Dyx-zg-hYe\"; */\n\"Dyx-zg-hYe.title\" = \"Keine\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Quit\"; ObjectID = \"FBK-9S-cZf\"; */\n\"FBK-9S-cZf.title\" = \"Beenden\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Shortcuts\"; ObjectID = \"FpP-Q9-flS\"; */\n\"FpP-Q9-flS.title\" = \"Kurzbefehle\";\n\n/* Class = \"NSTextFieldCell\"; title = \"None\"; ObjectID = \"G69-k2-hgn\"; */\n\"G69-k2-hgn.title\" = \"Keine\";\n\n/* Class = \"NSViewController\"; title = \"General\"; ObjectID = \"Gn1-zC-bzB\"; */\n\"Gn1-zC-bzB.title\" = \"Allgemein\";\n\n/* Class = \"NSViewController\"; title = \"Advanced\"; ObjectID = \"H3q-JS-Bu4\"; */\n\"H3q-JS-Bu4.title\" = \"Erweitert\";\n\n/* Class = \"NSButtonCell\"; title = \"WeChat\"; ObjectID = \"HUx-Wz-JJm\"; */\n\"HUx-Wz-JJm.title\" = \"WeChat\";\n\n/* Class = \"NSTextFieldCell\"; title = \"👨‍💻 GitHub:\"; ObjectID = \"How-dP-tcX\"; */\n\"How-dP-tcX.title\" = \"👨‍💻 GitHub:\";\n\n/* Class = \"NSButtonCell\"; title = \"@Camji55\"; ObjectID = \"IJL-uk-uO5\"; */\n\"IJL-uk-uO5.title\" = \"@Camji55\";\n\n/* Class = \"NSButtonCell\"; title = \"contact@jianing.wang\"; ObjectID = \"IPL-yO-Vkp\"; */\n\"IPL-yO-Vkp.title\" = \"contact@jianing.wang\";\n\n/* Class = \"NSTextFieldCell\"; title = \"0.1.0\"; ObjectID = \"Jnf-AX-bIr\"; */\n\"Jnf-AX-bIr.title\" = \"0.1.0\";\n\n/* Class = \"NSTextFieldCell\"; title = \"💸 Donate:\"; ObjectID = \"Kua-ZD-31F\"; */\n\"Kua-ZD-31F.title\" = \"💸 Spenden:\";\n\n/* Class = \"NSButtonCell\"; title = \"Terminal\"; ObjectID = \"M3w-T0-vi7\"; */\n\"M3w-T0-vi7.title\" = \"Terminal\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open with default Terminal:\"; ObjectID = \"Mqt-Fp-Ssl\"; */\n\"Mqt-Fp-Ssl.title\" = \"Mit Standard-Terminal öffnen:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"🐦 Twitter:\"; ObjectID = \"NZE-zU-6ss\"; */\n\"NZE-zU-6ss.title\" = \"🐦 Twitter:\";\n\n/* Class = \"NSButtonCell\"; title = \"Apply to Finder Context Menu\"; ObjectID = \"RhP-R5-Wwt\"; */\n\"RhP-R5-Wwt.title\" = \"Auf das Finder-Kontextmenü anwenden\";\n\n/* Class = \"NSButtonCell\"; title = \"Alipay\"; ObjectID = \"Sw7-of-ecf\"; */\n\"Sw7-of-ecf.title\" = \"Alipay\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Application Type:\"; ObjectID = \"UCM-Ds-LYN\"; */\n\"UCM-Ds-LYN.title\" = \"Programmtyp:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"You need to reopen the app to display Preferences.\"; ObjectID = \"Upf-HU-iaN\"; */\n\"Upf-HU-iaN.title\" = \"Sie müssen das Programm erneut öffnen, um die Einstellungen anzuzeigen.\";\n\n/* Class = \"NSTextFieldCell\"; title = \"✉️ Contact:\"; ObjectID = \"Vu4-Wz-Agk\"; */\n\"Vu4-Wz-Agk.title\" = \"✉️ Kontakt:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Copy path in Clipboard:\"; ObjectID = \"Xd9-iA-emU\"; */\n\"Xd9-iA-emU.title\" = \"Pfad in die Zwischenablage kopieren:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Default Text Editor:\"; ObjectID = \"Xfc-rf-FkX\"; */\n\"Xfc-rf-FkX.title\" = \"Standard Text-Editor:\";\n\n/* Class = \"NSButtonCell\"; title = \"Launch OpenInTerminal at Login\"; ObjectID = \"ZbK-xW-anT\"; */\n\"ZbK-xW-anT.title\" = \"OpenInTerminal bei der Anmeldung starten\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Default Terminal:\"; ObjectID = \"aRo-sy-WpK\"; */\n\"aRo-sy-WpK.title\" = \"Standard-Terminal:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Not Installed Applications\"; ObjectID = \"bCi-r8-MrK\"; */\n\"bCi-r8-MrK.title\" = \"Nicht installierte Programme\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Installed Supported Applications\"; ObjectID = \"bT7-LU-sov\"; */\n\"bT7-LU-sov.title\" = \"Installierte unterstützte Programme\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open with default Editor:\"; ObjectID = \"bvy-v3-hhf\"; */\n\"bvy-v3-hhf.title\" = \"Mit Standard-Editor öffnen:\";\n\n/* Class = \"NSButtonCell\"; title = \"PayPal\"; ObjectID = \"dC4-C7-fEL\"; */\n\"dC4-C7-fEL.title\" = \"PayPal\";\n\n/* Class = \"NSButtonCell\"; title = \"github.com/Ji4n1ng/OpenInTerminal\"; ObjectID = \"f2V-P5-pQI\"; */\n\"f2V-P5-pQI.title\" = \"github.com/Ji4n1ng/OpenInTerminal\";\n\n/* Class = \"NSButtonCell\"; title = \"Editor\"; ObjectID = \"fb4-Xq-he0\"; */\n\"fb4-Xq-he0.title\" = \"Editor\";\n\n/* Class = \"NSButtonCell\"; title = \"Quick Toggle\"; ObjectID = \"gy9-lb-m8d\"; */\n\"gy9-lb-m8d.title\" = \"Schnellwechsler\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Application Name:\"; ObjectID = \"h5X-oY-gqy\"; */\n\"h5X-oY-gqy.title\" = \"Programmname:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Reset\"; ObjectID = \"jcs-Ou-OZ2\"; */\n\"jcs-Ou-OZ2.title\" = \"Zurücksetzen\";\n\n/* Class = \"NSButtonCell\"; title = \"Reset preferences\"; ObjectID = \"jyI-H7-qN3\"; */\n\"jyI-H7-qN3.title\" = \"Einstellungen zurücksetzen\";\n\n/* Class = \"NSViewController\"; title = \"About\"; ObjectID = \"k6X-N1-mVu\"; */\n\"k6X-N1-mVu.title\" = \"Über\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Text Cell\"; ObjectID = \"kAa-36-ubl\"; */\n\"kAa-36-ubl.title\" = \"Textzelle\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Table View Cell\"; ObjectID = \"keg-OV-uLJ\"; */\n\"keg-OV-uLJ.title\" = \"Table View Zelle\";\n\n/* Class = \"NSTextFieldCell\"; title = \"OpenInTerminal\"; ObjectID = \"mOB-su-ZM1\"; */\n\"mOB-su-ZM1.title\" = \"OpenInTerminal\";\n\n/* Class = \"NSButtonCell\"; title = \"Window\"; ObjectID = \"mTs-8c-pgj\"; */\n\"mTs-8c-pgj.title\" = \"Fenster\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Custom Menu Options\"; ObjectID = \"nWc-SM-Kes\"; */\n\"nWc-SM-Kes.title\" = \"Benutzerdefinierte Menüoptionen\";\n\n/* Class = \"NSButtonCell\"; title = \"Tab\"; ObjectID = \"nYS-rF-JCL\"; */\n\"nYS-rF-JCL.title\" = \"Tab\";\n\n/* Class = \"NSTextFieldCell\"; title = \"OpenInTerminal will automatically launch at login.\"; ObjectID = \"ngT-lX-vFA\"; */\n\"ngT-lX-vFA.title\" = \"OpenInTerminal wird bei der Anmeldung automatisch gestartet.\";\n\n/* Class = \"NSButtonCell\"; title = \"Quit OpenInTerminal\"; ObjectID = \"ofD-rA-gib\"; */\n\"ofD-rA-gib.title\" = \"OpenInTerminal beenden\";\n\n/* Class = \"NSViewController\"; title = \"Custom\"; ObjectID = \"s5W-qL-1Xs\"; */\n\"s5W-qL-1Xs.title\" = \"Benutzerdefiniert\";\n\n/* Class = \"NSButtonCell\"; title = \"Hide Context Menu Items\"; ObjectID = \"sG4-nK-ghj\"; */\n\"sG4-nK-ghj.title\" = \"Kontextmenüeinträge ausblenden\";\n\n/* Class = \"NSButtonCell\"; title = \"@Ji4n1ng\"; ObjectID = \"tR5-me-DTK\"; */\n\"tR5-me-DTK.title\" = \"@Ji4n1ng\";\n\n/* Class = \"NSButtonCell\"; title = \"original\"; ObjectID = \"uok-iD-wXY\"; */\n\"uok-iD-wXY.title\" = \"original\";\n\n/* Class = \"NSButtonCell\"; title = \"Confirm\"; ObjectID = \"wpb-Gv-KAp\"; */\n\"wpb-Gv-KAp.title\" = \"Bestätigen\";\n\n/* Class = \"NSButtonCell\"; title = \"no\"; ObjectID = \"x6U-9Q-ujh\"; */\n\"x6U-9Q-ujh.title\" = \"nein\";\n\n/* Class = \"NSTextFieldCell\"; title = \"iTerm\"; ObjectID = \"yIW-2a-15A\"; */\n\"yIW-2a-15A.title\" = \"iTerm\";\n\n/* Class = \"NSButtonCell\"; title = \"simple\"; ObjectID = \"yrq-LZ-XDr\"; */\n\"yrq-LZ-XDr.title\" = \"einfach\";\n"
  },
  {
    "path": "OpenInTerminal/PreferencesWindow/en.lproj/Preferences.strings",
    "content": "\n/* Class = \"NSTextFieldCell\"; title = \"❤️ Special thanks to:\"; ObjectID = \"0Gy-jf-q6v\"; */\n\"0Gy-jf-q6v.title\" = \"❤️ Special thanks to:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"⚠️ Note that this will reset all user preferences\"; ObjectID = \"2Rg-te-FPU\"; */\n\"2Rg-te-FPU.title\" = \"⚠️ Note that this will reset all user preferences\";\n\n/* Class = \"NSButtonCell\"; title = \"Apply to Finder Toolbar Menu\"; ObjectID = \"2we-f7-s2N\"; */\n\"2we-f7-s2N.title\" = \"Apply to Finder Toolbar Menu\";\n\n/* Class = \"NSTextFieldCell\"; title = \"If enabled, click the Menu Bar icon to toggle the action you choose. Right click to open the menu.\"; ObjectID = \"592-4p-Ybh\"; */\n\"592-4p-Ybh.title\" = \"If enabled, click the Menu Bar icon to toggle the action you choose. Right click to open the menu.\";\n\n/* Class = \"NSWindow\"; title = \"Preferences\"; ObjectID = \"5f3-UK-Rft\"; */\n\"5f3-UK-Rft.title\" = \"Preferences\";\n\n/* Class = \"NSButtonCell\"; title = \"Hide Status Bar Icon\"; ObjectID = \"BUH-CU-WBW\"; */\n\"BUH-CU-WBW.title\" = \"Hide Status Bar Icon\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open a new window or a new tab.\"; ObjectID = \"BrI-hE-Mff\"; */\n\"BrI-hE-Mff.title\" = \"Open a new window or a new tab.\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Icon Type:\"; ObjectID = \"CP0-Xv-uYl\"; */\n\"CP0-Xv-uYl.title\" = \"Icon Type:\";\n\n/* Class = \"NSButtonCell\"; title = \"Cancel\"; ObjectID = \"Cp7-6g-ngj\"; */\n\"Cp7-6g-ngj.title\" = \"Cancel\";\n\n/* Class = \"NSTextFieldCell\"; title = \"None\"; ObjectID = \"Dyx-zg-hYe\"; */\n\"Dyx-zg-hYe.title\" = \"None\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Quit\"; ObjectID = \"FBK-9S-cZf\"; */\n\"FBK-9S-cZf.title\" = \"Quit\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Shortcuts\"; ObjectID = \"FpP-Q9-flS\"; */\n\"FpP-Q9-flS.title\" = \"Shortcuts\";\n\n/* Class = \"NSTextFieldCell\"; title = \"None\"; ObjectID = \"G69-k2-hgn\"; */\n\"G69-k2-hgn.title\" = \"None\";\n\n/* Class = \"NSViewController\"; title = \"General\"; ObjectID = \"Gn1-zC-bzB\"; */\n\"Gn1-zC-bzB.title\" = \"General\";\n\n/* Class = \"NSViewController\"; title = \"Advanced\"; ObjectID = \"H3q-JS-Bu4\"; */\n\"H3q-JS-Bu4.title\" = \"Advanced\";\n\n/* Class = \"NSButtonCell\"; title = \"WeChat\"; ObjectID = \"HUx-Wz-JJm\"; */\n\"HUx-Wz-JJm.title\" = \"WeChat\";\n\n/* Class = \"NSTextFieldCell\"; title = \"👨‍💻 GitHub:\"; ObjectID = \"How-dP-tcX\"; */\n\"How-dP-tcX.title\" = \"👨‍💻 GitHub:\";\n\n/* Class = \"NSButtonCell\"; title = \"@Camji55\"; ObjectID = \"IJL-uk-uO5\"; */\n\"IJL-uk-uO5.title\" = \"@Camji55\";\n\n/* Class = \"NSButtonCell\"; title = \"contact@jianing.wang\"; ObjectID = \"IPL-yO-Vkp\"; */\n\"IPL-yO-Vkp.title\" = \"contact@jianing.wang\";\n\n/* Class = \"NSTextFieldCell\"; title = \"0.1.0\"; ObjectID = \"Jnf-AX-bIr\"; */\n\"Jnf-AX-bIr.title\" = \"0.1.0\";\n\n/* Class = \"NSTextFieldCell\"; title = \"💸 Donate:\"; ObjectID = \"Kua-ZD-31F\"; */\n\"Kua-ZD-31F.title\" = \"💸 Donate:\";\n\n/* Class = \"NSButtonCell\"; title = \"Terminal\"; ObjectID = \"M3w-T0-vi7\"; */\n\"M3w-T0-vi7.title\" = \"Terminal\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open with default Terminal:\"; ObjectID = \"Mqt-Fp-Ssl\"; */\n\"Mqt-Fp-Ssl.title\" = \"Open with default Terminal:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"🐦 Twitter:\"; ObjectID = \"NZE-zU-6ss\"; */\n\"NZE-zU-6ss.title\" = \"🐦 Twitter:\";\n\n/* Class = \"NSButtonCell\"; title = \"Apply to Finder Context Menu\"; ObjectID = \"RhP-R5-Wwt\"; */\n\"RhP-R5-Wwt.title\" = \"Apply to Finder Context Menu\";\n\n/* Class = \"NSButtonCell\"; title = \"Alipay\"; ObjectID = \"Sw7-of-ecf\"; */\n\"Sw7-of-ecf.title\" = \"Alipay\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Application Type:\"; ObjectID = \"UCM-Ds-LYN\"; */\n\"UCM-Ds-LYN.title\" = \"Application Type:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"You need to reopen the app to display Preferences.\"; ObjectID = \"Upf-HU-iaN\"; */\n\"Upf-HU-iaN.title\" = \"You need to reopen the app to display Preferences.\";\n\n/* Class = \"NSTextFieldCell\"; title = \"✉️ Contact:\"; ObjectID = \"Vu4-Wz-Agk\"; */\n\"Vu4-Wz-Agk.title\" = \"✉️ Contact:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Copy path in Clipboard:\"; ObjectID = \"Xd9-iA-emU\"; */\n\"Xd9-iA-emU.title\" = \"Copy path in Clipboard:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Default Text Editor:\"; ObjectID = \"Xfc-rf-FkX\"; */\n\"Xfc-rf-FkX.title\" = \"Default Text Editor:\";\n\n/* Class = \"NSButtonCell\"; title = \"Launch OpenInTerminal at Login\"; ObjectID = \"ZbK-xW-anT\"; */\n\"ZbK-xW-anT.title\" = \"Launch OpenInTerminal at Login\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Default Terminal:\"; ObjectID = \"aRo-sy-WpK\"; */\n\"aRo-sy-WpK.title\" = \"Default Terminal:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Not Installed Applications\"; ObjectID = \"bCi-r8-MrK\"; */\n\"bCi-r8-MrK.title\" = \"Not Installed Applications\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Installed Supported Applications\"; ObjectID = \"bT7-LU-sov\"; */\n\"bT7-LU-sov.title\" = \"Installed Supported Applications\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open with default Editor:\"; ObjectID = \"bvy-v3-hhf\"; */\n\"bvy-v3-hhf.title\" = \"Open with default Editor:\";\n\n/* Class = \"NSButtonCell\"; title = \"GitHub Sponsors\"; ObjectID = \"dC4-C7-fEL\"; */\n\"dC4-C7-fEL.title\" = \"GitHub Sponsors\";\n\n/* Class = \"NSButtonCell\"; title = \"github.com/Ji4n1ng/OpenInTerminal\"; ObjectID = \"f2V-P5-pQI\"; */\n\"f2V-P5-pQI.title\" = \"github.com/Ji4n1ng/OpenInTerminal\";\n\n/* Class = \"NSButtonCell\"; title = \"Editor\"; ObjectID = \"fb4-Xq-he0\"; */\n\"fb4-Xq-he0.title\" = \"Editor\";\n\n/* Class = \"NSButtonCell\"; title = \"Quick Toggle\"; ObjectID = \"gy9-lb-m8d\"; */\n\"gy9-lb-m8d.title\" = \"Quick Toggle\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Application Name:\"; ObjectID = \"h5X-oY-gqy\"; */\n\"h5X-oY-gqy.title\" = \"Application Name:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Reset\"; ObjectID = \"jcs-Ou-OZ2\"; */\n\"jcs-Ou-OZ2.title\" = \"Reset\";\n\n/* Class = \"NSButtonCell\"; title = \"Reset preferences\"; ObjectID = \"jyI-H7-qN3\"; */\n\"jyI-H7-qN3.title\" = \"Reset preferences\";\n\n/* Class = \"NSButtonCell\"; title = \"PayPal\"; ObjectID = \"k3X-F7-Gpb\"; */\n\"k3X-F7-Gpb.title\" = \"PayPal\";\n\n/* Class = \"NSViewController\"; title = \"About\"; ObjectID = \"k6X-N1-mVu\"; */\n\"k6X-N1-mVu.title\" = \"About\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Text Cell\"; ObjectID = \"kAa-36-ubl\"; */\n\"kAa-36-ubl.title\" = \"Text Cell\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Table View Cell\"; ObjectID = \"keg-OV-uLJ\"; */\n\"keg-OV-uLJ.title\" = \"Table View Cell\";\n\n/* Class = \"NSTextFieldCell\"; title = \"OpenInTerminal\"; ObjectID = \"mOB-su-ZM1\"; */\n\"mOB-su-ZM1.title\" = \"OpenInTerminal\";\n\n/* Class = \"NSButtonCell\"; title = \"Window\"; ObjectID = \"mTs-8c-pgj\"; */\n\"mTs-8c-pgj.title\" = \"Window\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Custom Menu Options\"; ObjectID = \"nWc-SM-Kes\"; */\n\"nWc-SM-Kes.title\" = \"Custom Menu Options\";\n\n/* Class = \"NSButtonCell\"; title = \"Tab\"; ObjectID = \"nYS-rF-JCL\"; */\n\"nYS-rF-JCL.title\" = \"Tab\";\n\n/* Class = \"NSTextFieldCell\"; title = \"OpenInTerminal will automatically launch at login.\"; ObjectID = \"ngT-lX-vFA\"; */\n\"ngT-lX-vFA.title\" = \"OpenInTerminal will automatically launch at login.\";\n\n/* Class = \"NSButtonCell\"; title = \"Quit OpenInTerminal\"; ObjectID = \"ofD-rA-gib\"; */\n\"ofD-rA-gib.title\" = \"Quit OpenInTerminal\";\n\n/* Class = \"NSViewController\"; title = \"Custom\"; ObjectID = \"s5W-qL-1Xs\"; */\n\"s5W-qL-1Xs.title\" = \"Custom\";\n\n/* Class = \"NSButtonCell\"; title = \"Hide Context Menu Items\"; ObjectID = \"sG4-nK-ghj\"; */\n\"sG4-nK-ghj.title\" = \"Hide Context Menu Items\";\n\n/* Class = \"NSButtonCell\"; title = \"@Ji4n1ng\"; ObjectID = \"tR5-me-DTK\"; */\n\"tR5-me-DTK.title\" = \"@Ji4n1ng\";\n\n/* Class = \"NSButtonCell\"; title = \"original\"; ObjectID = \"uok-iD-wXY\"; */\n\"uok-iD-wXY.title\" = \"original\";\n\n/* Class = \"NSButtonCell\"; title = \"Confirm\"; ObjectID = \"wpb-Gv-KAp\"; */\n\"wpb-Gv-KAp.title\" = \"Confirm\";\n\n/* Class = \"NSButtonCell\"; title = \"no\"; ObjectID = \"x6U-9Q-ujh\"; */\n\"x6U-9Q-ujh.title\" = \"no\";\n\n/* Class = \"NSTextFieldCell\"; title = \"iTerm\"; ObjectID = \"yIW-2a-15A\"; */\n\"yIW-2a-15A.title\" = \"iTerm\";\n\n/* Class = \"NSButtonCell\"; title = \"simple\"; ObjectID = \"yrq-LZ-XDr\"; */\n\"yrq-LZ-XDr.title\" = \"simple\";\n"
  },
  {
    "path": "OpenInTerminal/PreferencesWindow/es.lproj/Preferences.strings",
    "content": "\n/* Class = \"NSTextFieldCell\"; title = \"❤️ Special thanks to:\"; ObjectID = \"0Gy-jf-q6v\"; */\n\"0Gy-jf-q6v.title\" = \"❤️ Agradecimiento especial a:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"⚠️ Note that this will reset all user preferences\"; ObjectID = \"2Rg-te-FPU\"; */\n\"2Rg-te-FPU.title\" = \"⚠️ Tenga en cuenta que se restablecerán todas las preferencias del usuario\";\n\n/* Class = \"NSButtonCell\"; title = \"Apply to Finder Toolbar Menu\"; ObjectID = \"2we-f7-s2N\"; */\n\"2we-f7-s2N.title\" = \"Aplicar al menú de la barra de herramientas del Finder\";\n\n/* Class = \"NSButtonCell\"; title = \"Tab\"; ObjectID = \"4ss-CQ-brT\"; */\n\"4ss-CQ-brT.title\" = \"Tab\";\n\n/* Class = \"NSTextFieldCell\"; title = \"If enabled, click the Menu Bar icon to toggle the action you choose. Right click to open the menu.\"; ObjectID = \"592-4p-Ybh\"; */\n\"592-4p-Ybh.title\" = \"Si está habilitado, haga clic en el icono de la barra de menú para alternar la acción que elija. Haga clic derecho para abrir el menú.\";\n\n/* Class = \"NSWindow\"; title = \"Preferences\"; ObjectID = \"5f3-UK-Rft\"; */\n\"5f3-UK-Rft.title\" = \"Preferencias\";\n\n/* Class = \"NSButtonCell\"; title = \"Hide Status Bar Icon\"; ObjectID = \"BUH-CU-WBW\"; */\n\"BUH-CU-WBW.title\" = \"Ocultar icono de barra de estado\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open a new window or a new tab.\"; ObjectID = \"BrI-hE-Mff\"; */\n\"BrI-hE-Mff.title\" = \"Abra una nueva ventana o una nueva pestaña.\";\n\n/* Class = \"NSTextFieldCell\"; title = \"None\"; ObjectID = \"Dyx-zg-hYe\"; */\n\"Dyx-zg-hYe.title\" = \"Ninguno\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Shortcuts\"; ObjectID = \"FpP-Q9-flS\"; */\n\"FpP-Q9-flS.title\" = \"Atajos\";\n\n/* Class = \"NSTextFieldCell\"; title = \"None\"; ObjectID = \"G69-k2-hgn\"; */\n\"G69-k2-hgn.title\" = \"Niguno\";\n\n/* Class = \"NSViewController\"; title = \"General\"; ObjectID = \"Gn1-zC-bzB\"; */\n\"Gn1-zC-bzB.title\" = \"General\";\n\n/* Class = \"NSViewController\"; title = \"Advanced\"; ObjectID = \"H3q-JS-Bu4\"; */\n\"H3q-JS-Bu4.title\" = \"Avanzado\";\n\n/* Class = \"NSButtonCell\"; title = \"WeChat\"; ObjectID = \"HUx-Wz-JJm\"; */\n\"HUx-Wz-JJm.title\" = \"WeChat\";\n\n/* Class = \"NSTextFieldCell\"; title = \"👨‍💻 GitHub:\"; ObjectID = \"How-dP-tcX\"; */\n\"How-dP-tcX.title\" = \"👨‍💻 GitHub:\";\n\n/* Class = \"NSButtonCell\"; title = \"@Camji55\"; ObjectID = \"IJL-uk-uO5\"; */\n\"IJL-uk-uO5.title\" = \"@Camji55\";\n\n/* Class = \"NSButtonCell\"; title = \"contact@jianing.wang\"; ObjectID = \"IPL-yO-Vkp\"; */\n\"IPL-yO-Vkp.title\" = \"contact@jianing.wang\";\n\n/* Class = \"NSTextFieldCell\"; title = \"0.1.0\"; ObjectID = \"Jnf-AX-bIr\"; */\n\"Jnf-AX-bIr.title\" = \"0.1.0\";\n\n/* Class = \"NSTextFieldCell\"; title = \"💸 Donate:\"; ObjectID = \"Kua-ZD-31F\"; */\n\"Kua-ZD-31F.title\" = \"💸 Donar:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open with default Terminal:\"; ObjectID = \"Mqt-Fp-Ssl\"; */\n\"Mqt-Fp-Ssl.title\" = \"Abierto con terminal predeterminado:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"🐦 Twitter:\"; ObjectID = \"NZE-zU-6ss\"; */\n\"NZE-zU-6ss.title\" = \"🐦 Twitter:\";\n\n/* Class = \"NSButtonCell\"; title = \"Apply to Finder Context Menu\"; ObjectID = \"RhP-R5-Wwt\"; */\n\"RhP-R5-Wwt.title\" = \"Aplicar al menú contextual del Finder\";\n\n/* Class = \"NSButtonCell\"; title = \"Alipay\"; ObjectID = \"Sw7-of-ecf\"; */\n\"Sw7-of-ecf.title\" = \"Alipay\";\n\n/* Class = \"NSTextFieldCell\"; title = \"You need to reopen the app to display Preferences.\"; ObjectID = \"Upf-HU-iaN\"; */\n\"Upf-HU-iaN.title\" = \"Debes volver a abrir la aplicación para mostrar las preferencias.\";\n\n/* Class = \"NSTextFieldCell\"; title = \"✉️ Contact:\"; ObjectID = \"Vu4-Wz-Agk\"; */\n\"Vu4-Wz-Agk.title\" = \"✉️ Contactar:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Copy path in Clipboard:\"; ObjectID = \"Xd9-iA-emU\"; */\n\"Xd9-iA-emU.title\" = \"Copiar ruta en el Portapapeles:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Default Text Editor:\"; ObjectID = \"Xfc-rf-FkX\"; */\n\"Xfc-rf-FkX.title\" = \"Editor de texto predeterminado:\";\n\n/* Class = \"NSButtonCell\"; title = \"Launch OpenInTerminal at Login\"; ObjectID = \"ZbK-xW-anT\"; */\n\"ZbK-xW-anT.title\" = \"Abrir OpenInTerminal al iniciar sesión\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Default Terminal:\"; ObjectID = \"aRo-sy-WpK\"; */\n\"aRo-sy-WpK.title\" = \"Terminal predeterminado:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Not Installed Applications\"; ObjectID = \"bCi-r8-MrK\"; */\n\"bCi-r8-MrK.title\" = \"Aplicaciones no instaladas\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Installed Supported Applications\"; ObjectID = \"bT7-LU-sov\"; */\n\"bT7-LU-sov.title\" = \"Aplicaciones compatibles instaladas\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open with default Editor:\"; ObjectID = \"bvy-v3-hhf\"; */\n\"bvy-v3-hhf.title\" = \"Abrir con editor predeterminado:\";\n\n/* Class = \"NSButtonCell\"; title = \"PayPal\"; ObjectID = \"dC4-C7-fEL\"; */\n\"dC4-C7-fEL.title\" = \"PayPal\";\n\n/* Class = \"NSButtonCell\"; title = \"github.com/Ji4n1ng/OpenInTerminal\"; ObjectID = \"f2V-P5-pQI\"; */\n\"f2V-P5-pQI.title\" = \"github.com/Ji4n1ng/OpenInTerminal\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Terminal\"; ObjectID = \"fA9-Hd-yjp\"; */\n\"fA9-Hd-yjp.title\" = \"Terminal\";\n\n/* Class = \"NSButtonCell\"; title = \"Quick Toggle\"; ObjectID = \"gy9-lb-m8d\"; */\n\"gy9-lb-m8d.title\" = \"Accion rápida\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Reset\"; ObjectID = \"jcs-Ou-OZ2\"; */\n\"jcs-Ou-OZ2.title\" = \"Reiniciar\";\n\n/* Class = \"NSButtonCell\"; title = \"Reset preferences\"; ObjectID = \"jyI-H7-qN3\"; */\n\"jyI-H7-qN3.title\" = \"Reiniciar preferencias\";\n\n/* Class = \"NSViewController\"; title = \"About\"; ObjectID = \"k6X-N1-mVu\"; */\n\"k6X-N1-mVu.title\" = \"Acerca de\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Text Cell\"; ObjectID = \"kAa-36-ubl\"; */\n\"kAa-36-ubl.title\" = \"Celda de texto\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Table View Cell\"; ObjectID = \"keg-OV-uLJ\"; */\n\"keg-OV-uLJ.title\" = \"Celda de vista de tabla\";\n\n/* Class = \"NSTextFieldCell\"; title = \"OpenInTerminal\"; ObjectID = \"mOB-su-ZM1\"; */\n\"mOB-su-ZM1.title\" = \"OpenInTerminal\";\n\n/* Class = \"NSButtonCell\"; title = \"Window\"; ObjectID = \"mTs-8c-pgj\"; */\n\"mTs-8c-pgj.title\" = \"Ventana\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Custom Menu Options\"; ObjectID = \"nWc-SM-Kes\"; */\n\"nWc-SM-Kes.title\" = \"Opciones de menú personalizado\";\n\n/* Class = \"NSButtonCell\"; title = \"Tab\"; ObjectID = \"nYS-rF-JCL\"; */\n\"nYS-rF-JCL.title\" = \"Tab\";\n\n/* Class = \"NSTextFieldCell\"; title = \"OpenInTerminal will automatically launch at login.\"; ObjectID = \"ngT-lX-vFA\"; */\n\"ngT-lX-vFA.title\" = \"OpenInTerminal se iniciará automáticamente al iniciar sesión.\";\n\n/* Class = \"NSViewController\"; title = \"Custom\"; ObjectID = \"s5W-qL-1Xs\"; */\n\"s5W-qL-1Xs.title\" = \"Personalizado\";\n\n/* Class = \"NSButtonCell\"; title = \"Hide Context Menu Items\"; ObjectID = \"sG4-nK-ghj\"; */\n\"sG4-nK-ghj.title\" = \"Ocultar elementos del menú contextual\";\n\n/* Class = \"NSButtonCell\"; title = \"Window\"; ObjectID = \"sik-wU-ZF2\"; */\n\"sik-wU-ZF2.title\" = \"Ventana\";\n\n/* Class = \"NSButtonCell\"; title = \"@Ji4n1ng\"; ObjectID = \"tR5-me-DTK\"; */\n\"tR5-me-DTK.title\" = \"@Ji4n1ng\";\n\n/* Class = \"NSTextFieldCell\"; title = \"iTerm\"; ObjectID = \"yIW-2a-15A\"; */\n\"yIW-2a-15A.title\" = \"iTerm\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Icon Type:\"; ObjectID = \"CP0-Xv-uYl\"; */\n\"CP0-Xv-uYl.title\" = \"Tipo de icono:\";\n\n/* Class = \"NSButtonCell\"; title = \"Cancel\"; ObjectID = \"Cp7-6g-ngj\"; */\n\"Cp7-6g-ngj.title\" = \"Cancelar\";\n\n/* Class = \"NSButtonCell\"; title = \"Terminal\"; ObjectID = \"M3w-T0-vi7\"; */\n\"M3w-T0-vi7.title\" = \"Terminal\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Application Type:\"; ObjectID = \"UCM-Ds-LYN\"; */\n\"UCM-Ds-LYN.title\" = \"tipo de aplicacion:\";\n\n/* Class = \"NSButtonCell\"; title = \"Editor\"; ObjectID = \"fb4-Xq-he0\"; */\n\"fb4-Xq-he0.title\" = \"Editor\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Application Name:\"; ObjectID = \"h5X-oY-gqy\"; */\n\"h5X-oY-gqy.title\" = \"Nombre de la aplicación:\";\n\n/* Class = \"NSButtonCell\"; title = \"original\"; ObjectID = \"uok-iD-wXY\"; */\n\"uok-iD-wXY.title\" = \"original\";\n\n/* Class = \"NSButtonCell\"; title = \"Confirm\"; ObjectID = \"wpb-Gv-KAp\"; */\n\"wpb-Gv-KAp.title\" = \"Confirmar\";\n\n/* Class = \"NSButtonCell\"; title = \"no\"; ObjectID = \"x6U-9Q-ujh\"; */\n\"x6U-9Q-ujh.title\" = \"no\";\n\n/* Class = \"NSButtonCell\"; title = \"simple\"; ObjectID = \"yrq-LZ-XDr\"; */\n\"yrq-LZ-XDr.title\" = \"simple\";\n"
  },
  {
    "path": "OpenInTerminal/PreferencesWindow/fr.lproj/Preferences.strings",
    "content": "\n/* Class = \"NSTextFieldCell\"; title = \"❤️ Special thanks to:\"; ObjectID = \"0Gy-jf-q6v\"; */\n\"0Gy-jf-q6v.title\" = \"❤️ Spécial remerciement à:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"⚠️ Note that this will reset all user preferences\"; ObjectID = \"2Rg-te-FPU\"; */\n\"2Rg-te-FPU.title\" = \"⚠️ Notez que cela réinitialisera toutes les préférences de l'utilisateur\";\n\n/* Class = \"NSButtonCell\"; title = \"Tab\"; ObjectID = \"4ss-CQ-brT\"; */\n\"4ss-CQ-brT.title\" = \"Onglet\";\n\n/* Class = \"NSTextFieldCell\"; title = \"If enabled, click the Menu Bar icon to toggle the action you choose. Right click to open the menu.\"; ObjectID = \"592-4p-Ybh\"; */\n\"592-4p-Ybh.title\" = \"Si cela est activé, un clique sur l’icône dans la barre des menus exécutera l’action choisie. Un clique droit ouvrira le menu.\";\n\n/* Class = \"NSWindow\"; title = \"Preferences\"; ObjectID = \"5f3-UK-Rft\"; */\n\"5f3-UK-Rft.title\" = \"Préférences\";\n\n/* Class = \"NSButtonCell\"; title = \"Hide Status Bar Icon\"; ObjectID = \"BUH-CU-WBW\"; */\n\"BUH-CU-WBW.title\" = \"Masquer l'icône de la barre d'état\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open a new window or a new tab when opening a path in terminal.\"; ObjectID = \"BrI-hE-Mff\"; */\n\"BrI-hE-Mff.title\" = \"Ouvre une nouvelle fenêtre ou un nouvel onglet à l’ouverture du chemin d’accès dans le terminal.\";\n\n/* Class = \"NSTextFieldCell\"; title = \"None\"; ObjectID = \"Dyx-zg-hYe\"; */\n\"Dyx-zg-hYe.title\" = \"Aucun\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Shortcuts\"; ObjectID = \"FpP-Q9-flS\"; */\n\"FpP-Q9-flS.title\" = \"Raccourcis\";\n\n/* Class = \"NSTextFieldCell\"; title = \"None\"; ObjectID = \"G69-k2-hgn\"; */\n\"G69-k2-hgn.title\" = \"Aucun\";\n\n/* Class = \"NSViewController\"; title = \"General\"; ObjectID = \"Gn1-zC-bzB\"; */\n\"Gn1-zC-bzB.title\" = \"Général\";\n\n/* Class = \"NSViewController\"; title = \"Advanced\"; ObjectID = \"H3q-JS-Bu4\"; */\n\"H3q-JS-Bu4.title\" = \"Avancé\";\n\n/* Class = \"NSButtonCell\"; title = \"WeChat\"; ObjectID = \"HUx-Wz-JJm\"; */\n\"HUx-Wz-JJm.title\" = \"WeChat\";\n\n/* Class = \"NSTextFieldCell\"; title = \"👨‍💻 GitHub:\"; ObjectID = \"How-dP-tcX\"; */\n\"How-dP-tcX.title\" = \"👨‍💻 GitHub:\";\n\n/* Class = \"NSButtonCell\"; title = \"@Camji55\"; ObjectID = \"IJL-uk-uO5\"; */\n\"IJL-uk-uO5.title\" = \"@Camji55\";\n\n/* Class = \"NSButtonCell\"; title = \"contact@jianing.wang\"; ObjectID = \"IPL-yO-Vkp\"; */\n\"IPL-yO-Vkp.title\" = \"contact@jianing.wang\";\n\n/* Class = \"NSTextFieldCell\"; title = \"0.1.0\"; ObjectID = \"Jnf-AX-bIr\"; */\n\"Jnf-AX-bIr.title\" = \"0.1.0\";\n\n/* Class = \"NSTextFieldCell\"; title = \"💸 Donate:\"; ObjectID = \"Kua-ZD-31F\"; */\n\"Kua-ZD-31F.title\" = \"💸 Faire un don:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open with default Terminal:\"; ObjectID = \"Mqt-Fp-Ssl\"; */\n\"Mqt-Fp-Ssl.title\" = \"Ouvrir avec le terminal par défaut:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"🐦 Twitter:\"; ObjectID = \"NZE-zU-6ss\"; */\n\"NZE-zU-6ss.title\" = \"🐦 Twitter:\";\n\n/* Class = \"NSButtonCell\"; title = \"Alipay\"; ObjectID = \"Sw7-of-ecf\"; */\n\"Sw7-of-ecf.title\" = \"Alipay\";\n\n/* Class = \"NSTextFieldCell\"; title = \"You need to reopen the app to display Preferences.\"; ObjectID = \"Upf-HU-iaN\"; */\n\"Upf-HU-iaN.title\" = \"Vous devez rouvrir l'application pour afficher les préférences.\";\n\n/* Class = \"NSTextFieldCell\"; title = \"✉️ Contact:\"; ObjectID = \"Vu4-Wz-Agk\"; */\n\"Vu4-Wz-Agk.title\" = \"✉️ Contact:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Copy path in Clipboard:\"; ObjectID = \"Xd9-iA-emU\"; */\n\"Xd9-iA-emU.title\" = \"Copier le chemin d’accès:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Default Text Editor:\"; ObjectID = \"Xfc-rf-FkX\"; */\n\"Xfc-rf-FkX.title\" = \"Éditeur par défaut:\";\n\n/* Class = \"NSButtonCell\"; title = \"Launch OpenInTerminal at Login\"; ObjectID = \"ZbK-xW-anT\"; */\n\"ZbK-xW-anT.title\" = \"Lancer OpenInTerminal à l’ouverture de la session\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Default Terminal:\"; ObjectID = \"aRo-sy-WpK\"; */\n\"aRo-sy-WpK.title\" = \"Terminal par défaut:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Not Installed Applications\"; ObjectID = \"bCi-r8-MrK\"; */\n\"bCi-r8-MrK.title\" = \"Applications non installées\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Installed Supported Applications\"; ObjectID = \"bT7-LU-sov\"; */\n\"bT7-LU-sov.title\" = \"Applications prises en charge installées\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open with default Editor:\"; ObjectID = \"bvy-v3-hhf\"; */\n\"bvy-v3-hhf.title\" = \"Ouvrir avec l’éditeur par défaut:\";\n\n/* Class = \"NSButtonCell\"; title = \"PayPal\"; ObjectID = \"dC4-C7-fEL\"; */\n\"dC4-C7-fEL.title\" = \"PayPal\";\n\n/* Class = \"NSButtonCell\"; title = \"github.com/Ji4n1ng/OpenInTerminal\"; ObjectID = \"f2V-P5-pQI\"; */\n\"f2V-P5-pQI.title\" = \"github.com/Ji4n1ng/OpenInTerminal\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Terminal\"; ObjectID = \"fA9-Hd-yjp\"; */\n\"fA9-Hd-yjp.title\" = \"Terminal\";\n\n/* Class = \"NSButtonCell\"; title = \"Quick Toggle\"; ObjectID = \"gy9-lb-m8d\"; */\n\"gy9-lb-m8d.title\" = \"Exécution rapide\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Reset\"; ObjectID = \"jcs-Ou-OZ2\"; */\n\"jcs-Ou-OZ2.title\" = \"Réinitialiser\";\n\n/* Class = \"NSButtonCell\"; title = \"Reset preferences\"; ObjectID = \"jyI-H7-qN3\"; */\n\"jyI-H7-qN3.title\" = \"Réinitialiser les préférences\";\n\n/* Class = \"NSViewController\"; title = \"About\"; ObjectID = \"k6X-N1-mVu\"; */\n\"k6X-N1-mVu.title\" = \"À propos\";\n\n/* Class = \"NSTextFieldCell\"; title = \"OpenInTerminal\"; ObjectID = \"mOB-su-ZM1\"; */\n\"mOB-su-ZM1.title\" = \"OpenInTerminal\";\n\n/* Class = \"NSButtonCell\"; title = \"Window\"; ObjectID = \"mTs-8c-pgj\"; */\n\"mTs-8c-pgj.title\" = \"Fenêtre\";\n\n/* Class = \"NSButtonCell\"; title = \"Tab\"; ObjectID = \"nYS-rF-JCL\"; */\n\"nYS-rF-JCL.title\" = \"Onglet\";\n\n/* Class = \"NSTextFieldCell\"; title = \"OpenInTerminal will automatically launch at login.\"; ObjectID = \"ngT-lX-vFA\"; */\n\"ngT-lX-vFA.title\" = \"OpenInTerminal sera automatiquement lancé à l’ouverture de la session.\";\n\n/* Class = \"NSViewController\"; title = \"Toolbar\"; ObjectID = \"s5W-qL-1Xs\"; */\n\"s5W-qL-1Xs.title\" = \"Bar d’outils\";\n\n/* Class = \"NSButtonCell\"; title = \"Hide Context Menu Items\"; ObjectID = \"sG4-nK-ghj\"; */\n\"sG4-nK-ghj.title\" = \"Masquer les éléments du menu contextuel\";\n\n/* Class = \"NSButtonCell\"; title = \"Window\"; ObjectID = \"sik-wU-ZF2\"; */\n\"sik-wU-ZF2.title\" = \"Fenêtre\";\n\n/* Class = \"NSButtonCell\"; title = \"@Ji4n1ng\"; ObjectID = \"tR5-me-DTK\"; */\n\"tR5-me-DTK.title\" = \"@Ji4n1ng\";\n\n/* Class = \"NSTextFieldCell\"; title = \"iTerm\"; ObjectID = \"yIW-2a-15A\"; */\n\"yIW-2a-15A.title\" = \"iTerm\";\n\n/* Class = \"NSButtonCell\"; title = \"Apply to Finder Toolbar Memu\"; ObjectID = \"2we-f7-s2N\"; */\n\"2we-f7-s2N.title\" = \"Appliquer au menu de la barre d'outils du Finder\";\n\n/* Class = \"NSButtonCell\"; title = \"Apply to Finder Context Memu\"; ObjectID = \"RhP-R5-Wwt\"; */\n\"RhP-R5-Wwt.title\" = \"Appliquer au menu contextuel du Finder\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Custom Menu Options\"; ObjectID = \"nWc-SM-Kes\"; */\n\"nWc-SM-Kes.title\" = \"Options de menu personnalisées\";\n"
  },
  {
    "path": "OpenInTerminal/PreferencesWindow/it.lproj/Preferences.strings",
    "content": "\n/* Class = \"NSTextFieldCell\"; title = \"❤️ Special thanks to:\"; ObjectID = \"0Gy-jf-q6v\"; */\n\"0Gy-jf-q6v.title\" = \"❤️ Un ringraziamento speciale a:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"⚠️ Note that this will reset all user preferences\"; ObjectID = \"2Rg-te-FPU\"; */\n\"2Rg-te-FPU.title\" = \"⚠️ Tutte le Preferenze utente saranno ripristinate\";\n\n/* Class = \"NSButtonCell\"; title = \"Apply to Finder Toolbar Menu\"; ObjectID = \"2we-f7-s2N\"; */\n\"2we-f7-s2N.title\" = \"Applica al Menu della Barra Strumenti del Finder\";\n\n/* Class = \"NSButtonCell\"; title = \"Tab\"; ObjectID = \"4ss-CQ-brT\"; */\n\"4ss-CQ-brT.title\" = \"Pannello\";\n\n/* Class = \"NSTextFieldCell\"; title = \"If enabled, click the Menu Bar icon to toggle the action you choose. Right click to open the menu.\"; ObjectID = \"592-4p-Ybh\"; */\n\"592-4p-Ybh.title\" = \"Se selezionata, clicca sull'icona nella barra dei menu per eseguire l'azione rapida. Clicca con il tasto destro per aprire il menu.\";\n\n/* Class = \"NSWindow\"; title = \"Preferences\"; ObjectID = \"5f3-UK-Rft\"; */\n\"5f3-UK-Rft.title\" = \"Preferenze\";\n\n/* Class = \"NSButtonCell\"; title = \"Hide Status Bar Icon\"; ObjectID = \"BUH-CU-WBW\"; */\n\"BUH-CU-WBW.title\" = \"Nascondi l'icona nella Barra dei Menu\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open a new window or a new tab when opening a path in terminal.\"; ObjectID = \"BrI-hE-Mff\"; */\n\"BrI-hE-Mff.title\" = \"Apri una nuova finestra o un nuovo pannello quando apri un percorso nel terminale.\";\n\n/* Class = \"NSTextFieldCell\"; title = \"None\"; ObjectID = \"Dyx-zg-hYe\"; */\n\"Dyx-zg-hYe.title\" = \"Nessuno\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Shortcuts\"; ObjectID = \"FpP-Q9-flS\"; */\n\"FpP-Q9-flS.title\" = \"Scorciatoie\";\n\n/* Class = \"NSTextFieldCell\"; title = \"None\"; ObjectID = \"G69-k2-hgn\"; */\n\"G69-k2-hgn.title\" = \"Nessuno\";\n\n/* Class = \"NSViewController\"; title = \"General\"; ObjectID = \"Gn1-zC-bzB\"; */\n\"Gn1-zC-bzB.title\" = \"Generali\";\n\n/* Class = \"NSViewController\"; title = \"Advanced\"; ObjectID = \"H3q-JS-Bu4\"; */\n\"H3q-JS-Bu4.title\" = \"Avanzate\";\n\n/* Class = \"NSButtonCell\"; title = \"WeChat\"; ObjectID = \"HUx-Wz-JJm\"; */\n\"HUx-Wz-JJm.title\" = \"WeChat\";\n\n/* Class = \"NSTextFieldCell\"; title = \"👨‍💻 GitHub:\"; ObjectID = \"How-dP-tcX\"; */\n\"How-dP-tcX.title\" = \"👨‍💻 GitHub:\";\n\n/* Class = \"NSButtonCell\"; title = \"@Camji55\"; ObjectID = \"IJL-uk-uO5\"; */\n\"IJL-uk-uO5.title\" = \"@Camji55\";\n\n/* Class = \"NSButtonCell\"; title = \"contact@jianing.wang\"; ObjectID = \"IPL-yO-Vkp\"; */\n\"IPL-yO-Vkp.title\" = \"contact@jianing.wang\";\n\n/* Class = \"NSTextFieldCell\"; title = \"0.1.0\"; ObjectID = \"Jnf-AX-bIr\"; */\n\"Jnf-AX-bIr.title\" = \"0.1.0\";\n\n/* Class = \"NSTextFieldCell\"; title = \"💸 Donate:\"; ObjectID = \"Kua-ZD-31F\"; */\n\"Kua-ZD-31F.title\" = \"💸 Dona:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open with default Terminal:\"; ObjectID = \"Mqt-Fp-Ssl\"; */\n\"Mqt-Fp-Ssl.title\" = \"Apri con il Terminale di default:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"🐦 Twitter:\"; ObjectID = \"NZE-zU-6ss\"; */\n\"NZE-zU-6ss.title\" = \"🐦 Twitter:\";\n\n/* Class = \"NSButtonCell\"; title = \"Apply to Finder Context Menu\"; ObjectID = \"RhP-R5-Wwt\"; */\n\"RhP-R5-Wwt.title\" = \"Applica al Menu Contestuale del Finder\";\n\n/* Class = \"NSButtonCell\"; title = \"Alipay\"; ObjectID = \"Sw7-of-ecf\"; */\n\"Sw7-of-ecf.title\" = \"Alipay\";\n\n/* Class = \"NSTextFieldCell\"; title = \"You need to reopen the app to display Preferences.\"; ObjectID = \"Upf-HU-iaN\"; */\n\"Upf-HU-iaN.title\" = \"Riavvia l'applicazione per salvare le nuove Preferenze.\";\n\n/* Class = \"NSTextFieldCell\"; title = \"✉️ Contact:\"; ObjectID = \"Vu4-Wz-Agk\"; */\n\"Vu4-Wz-Agk.title\" = \"✉️ Contattaci:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Copy path in Clipboard:\"; ObjectID = \"Xd9-iA-emU\"; */\n\"Xd9-iA-emU.title\" = \"Copia percorso nella Clipboard:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Default Text Editor:\"; ObjectID = \"Xfc-rf-FkX\"; */\n\"Xfc-rf-FkX.title\" = \"Editor di testo di default:\";\n\n/* Class = \"NSButtonCell\"; title = \"Launch OpenInTerminal at Login\"; ObjectID = \"ZbK-xW-anT\"; */\n\"ZbK-xW-anT.title\" = \"Apri OpenInTerminal al Login\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Default Terminal:\"; ObjectID = \"aRo-sy-WpK\"; */\n\"aRo-sy-WpK.title\" = \"Terminale di default:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Not Installed Applications\"; ObjectID = \"bCi-r8-MrK\"; */\n\"bCi-r8-MrK.title\" = \"Applicazioni Non Installate\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Installed Supported Applications\"; ObjectID = \"bT7-LU-sov\"; */\n\"bT7-LU-sov.title\" = \"Applicazioni Supportate Installate\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open with default Editor:\"; ObjectID = \"bvy-v3-hhf\"; */\n\"bvy-v3-hhf.title\" = \"Apri con l'Editor di default:\";\n\n/* Class = \"NSButtonCell\"; title = \"PayPal\"; ObjectID = \"dC4-C7-fEL\"; */\n\"dC4-C7-fEL.title\" = \"PayPal\";\n\n/* Class = \"NSButtonCell\"; title = \"github.com/Ji4n1ng/OpenInTerminal\"; ObjectID = \"f2V-P5-pQI\"; */\n\"f2V-P5-pQI.title\" = \"github.com/Ji4n1ng/OpenInTerminal\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Terminal\"; ObjectID = \"fA9-Hd-yjp\"; */\n\"fA9-Hd-yjp.title\" = \"Terminale\";\n\n/* Class = \"NSButtonCell\"; title = \"Quick Toggle\"; ObjectID = \"gy9-lb-m8d\"; */\n\"gy9-lb-m8d.title\" = \"Azione rapida\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Reset\"; ObjectID = \"jcs-Ou-OZ2\"; */\n\"jcs-Ou-OZ2.title\" = \"Ripristina\";\n\n/* Class = \"NSButtonCell\"; title = \"Reset preferences\"; ObjectID = \"jyI-H7-qN3\"; */\n\"jyI-H7-qN3.title\" = \"Ripristina le preferenze\";\n\n/* Class = \"NSViewController\"; title = \"About\"; ObjectID = \"k6X-N1-mVu\"; */\n\"k6X-N1-mVu.title\" = \"About\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Text Cell\"; ObjectID = \"kAa-36-ubl\"; */\n\"kAa-36-ubl.title\" = \"Text Cell\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Table View Cell\"; ObjectID = \"keg-OV-uLJ\"; */\n\"keg-OV-uLJ.title\" = \"Table View Cell\";\n\n/* Class = \"NSTextFieldCell\"; title = \"OpenInTerminal\"; ObjectID = \"mOB-su-ZM1\"; */\n\"mOB-su-ZM1.title\" = \"OpenInTerminal\";\n\n/* Class = \"NSButtonCell\"; title = \"Window\"; ObjectID = \"mTs-8c-pgj\"; */\n\"mTs-8c-pgj.title\" = \"Finestra\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Custom Menu Options\"; ObjectID = \"nWc-SM-Kes\"; */\n\"nWc-SM-Kes.title\" = \"Opzioni Personalizzate dei Menu\";\n\n/* Class = \"NSButtonCell\"; title = \"Tab\"; ObjectID = \"nYS-rF-JCL\"; */\n\"nYS-rF-JCL.title\" = \"Pannello\";\n\n/* Class = \"NSTextFieldCell\"; title = \"OpenInTerminal will automatically launch at login.\"; ObjectID = \"ngT-lX-vFA\"; */\n\"ngT-lX-vFA.title\" = \"OpenInTerminal si aprirà automaticamente al login.\";\n\n/* Class = \"NSViewController\"; title = \"Toolbar\"; ObjectID = \"s5W-qL-1Xs\"; */\n\"s5W-qL-1Xs.title\" = \"Barra strumenti\";\n\n/* Class = \"NSButtonCell\"; title = \"Hide Context Menu Items\"; ObjectID = \"sG4-nK-ghj\"; */\n\"sG4-nK-ghj.title\" = \"Nascondi gli Elementi del Menu Contestuale\";\n\n/* Class = \"NSButtonCell\"; title = \"Window\"; ObjectID = \"sik-wU-ZF2\"; */\n\"sik-wU-ZF2.title\" = \"Finestra\";\n\n/* Class = \"NSButtonCell\"; title = \"@Ji4n1ng\"; ObjectID = \"tR5-me-DTK\"; */\n\"tR5-me-DTK.title\" = \"@Ji4n1ng\";\n\n/* Class = \"NSTextFieldCell\"; title = \"iTerm\"; ObjectID = \"yIW-2a-15A\"; */\n\"yIW-2a-15A.title\" = \"iTerm\";\n"
  },
  {
    "path": "OpenInTerminal/PreferencesWindow/ko.lproj/Preferences.strings",
    "content": "\n/* Class = \"NSTextFieldCell\"; title = \"❤️ Special thanks to:\"; ObjectID = \"0Gy-jf-q6v\"; */\n\"0Gy-jf-q6v.title\" = \"❤️ 특별히 감사드립니다:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"⚠️ Note that this will reset all user preferences\"; ObjectID = \"2Rg-te-FPU\"; */\n\"2Rg-te-FPU.title\" = \"⚠️ 모든 사용자 설정이 초기화됩니다\";\n\n/* Class = \"NSButtonCell\"; title = \"Apply to Finder Toolbar Menu\"; ObjectID = \"2we-f7-s2N\"; */\n\"2we-f7-s2N.title\" = \"Finder 툴바 메뉴에 적용하기\";\n\n/* Class = \"NSTextFieldCell\"; title = \"If enabled, click the Menu Bar icon to toggle the action you choose. Right click to open the menu.\"; ObjectID = \"592-4p-Ybh\"; */\n\"592-4p-Ybh.title\" = \"만약 활성화되면 메뉴 바 아이콘을 클릭하여 선택한 작업을 실행할 수 있고, 우클릭하여 메뉴를 열 수 있습니다.\";\n\n/* Class = \"NSWindow\"; title = \"Preferences\"; ObjectID = \"5f3-UK-Rft\"; */\n\"5f3-UK-Rft.title\" = \"설정\";\n\n/* Class = \"NSButtonCell\"; title = \"Hide Status Bar Icon\"; ObjectID = \"BUH-CU-WBW\"; */\n\"BUH-CU-WBW.title\" = \"상태 바 아이콘 가리기\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open a new window or a new tab.\"; ObjectID = \"BrI-hE-Mff\"; */\n\"BrI-hE-Mff.title\" = \"새 창 또는 탭 열기.\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Icon Type:\"; ObjectID = \"CP0-Xv-uYl\"; */\n\"CP0-Xv-uYl.title\" = \"아이콘 타입:\";\n\n/* Class = \"NSButtonCell\"; title = \"Cancel\"; ObjectID = \"Cp7-6g-ngj\"; */\n\"Cp7-6g-ngj.title\" = \"취소\";\n\n/* Class = \"NSTextFieldCell\"; title = \"None\"; ObjectID = \"Dyx-zg-hYe\"; */\n\"Dyx-zg-hYe.title\" = \"없음\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Quit\"; ObjectID = \"FBK-9S-cZf\"; */\n\"FBK-9S-cZf.title\" = \"종료\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Shortcuts\"; ObjectID = \"FpP-Q9-flS\"; */\n\"FpP-Q9-flS.title\" = \"단축키\";\n\n/* Class = \"NSTextFieldCell\"; title = \"None\"; ObjectID = \"G69-k2-hgn\"; */\n\"G69-k2-hgn.title\" = \"없음\";\n\n/* Class = \"NSViewController\"; title = \"General\"; ObjectID = \"Gn1-zC-bzB\"; */\n\"Gn1-zC-bzB.title\" = \"일반\";\n\n/* Class = \"NSViewController\"; title = \"Advanced\"; ObjectID = \"H3q-JS-Bu4\"; */\n\"H3q-JS-Bu4.title\" = \"고급\";\n\n/* Class = \"NSButtonCell\"; title = \"WeChat\"; ObjectID = \"HUx-Wz-JJm\"; */\n\"HUx-Wz-JJm.title\" = \"WeChat\";\n\n/* Class = \"NSTextFieldCell\"; title = \"👨‍💻 GitHub:\"; ObjectID = \"How-dP-tcX\"; */\n\"How-dP-tcX.title\" = \"👨‍💻 GitHub:\";\n\n/* Class = \"NSButtonCell\"; title = \"@Camji55\"; ObjectID = \"IJL-uk-uO5\"; */\n\"IJL-uk-uO5.title\" = \"@Camji55\";\n\n/* Class = \"NSButtonCell\"; title = \"contact@jianing.wang\"; ObjectID = \"IPL-yO-Vkp\"; */\n\"IPL-yO-Vkp.title\" = \"contact@jianing.wang\";\n\n/* Class = \"NSTextFieldCell\"; title = \"0.1.0\"; ObjectID = \"Jnf-AX-bIr\"; */\n\"Jnf-AX-bIr.title\" = \"0.1.0\";\n\n/* Class = \"NSTextFieldCell\"; title = \"💸 Donate:\"; ObjectID = \"Kua-ZD-31F\"; */\n\"Kua-ZD-31F.title\" = \"💸 후원:\";\n\n/* Class = \"NSButtonCell\"; title = \"Terminal\"; ObjectID = \"M3w-T0-vi7\"; */\n\"M3w-T0-vi7.title\" = \"터미널\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open with default Terminal:\"; ObjectID = \"Mqt-Fp-Ssl\"; */\n\"Mqt-Fp-Ssl.title\" = \"기본 터미널로 열기:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"🐦 Twitter:\"; ObjectID = \"NZE-zU-6ss\"; */\n\"NZE-zU-6ss.title\" = \"🐦 Twitter:\";\n\n/* Class = \"NSButtonCell\"; title = \"Apply to Finder Context Menu\"; ObjectID = \"RhP-R5-Wwt\"; */\n\"RhP-R5-Wwt.title\" = \"Finder 우클릭 메뉴에 적용하기\";\n\n/* Class = \"NSButtonCell\"; title = \"Alipay\"; ObjectID = \"Sw7-of-ecf\"; */\n\"Sw7-of-ecf.title\" = \"Alipay\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Application Type:\"; ObjectID = \"UCM-Ds-LYN\"; */\n\"UCM-Ds-LYN.title\" = \"애플리케이션 타입:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"You need to reopen the app to display Preferences.\"; ObjectID = \"Upf-HU-iaN\"; */\n\"Upf-HU-iaN.title\" = \"설정을 표시하려면 앱을 다시 열어야 합니다.\";\n\n/* Class = \"NSTextFieldCell\"; title = \"✉️ Contact:\"; ObjectID = \"Vu4-Wz-Agk\"; */\n\"Vu4-Wz-Agk.title\" = \"✉️ 연락처:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Copy path in Clipboard:\"; ObjectID = \"Xd9-iA-emU\"; */\n\"Xd9-iA-emU.title\" = \"위치를 클립보드에 복사:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Default Text Editor:\"; ObjectID = \"Xfc-rf-FkX\"; */\n\"Xfc-rf-FkX.title\" = \"기본 텍스트 에디터:\";\n\n/* Class = \"NSButtonCell\"; title = \"Launch OpenInTerminal at Login\"; ObjectID = \"ZbK-xW-anT\"; */\n\"ZbK-xW-anT.title\" = \"OpenInTerminal를 로그인 시에 열기\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Default Terminal:\"; ObjectID = \"aRo-sy-WpK\"; */\n\"aRo-sy-WpK.title\" = \"기본 터미널:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Not Installed Applications\"; ObjectID = \"bCi-r8-MrK\"; */\n\"bCi-r8-MrK.title\" = \"설치되지 않은 앱\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Installed Supported Applications\"; ObjectID = \"bT7-LU-sov\"; */\n\"bT7-LU-sov.title\" = \"설치된 지원되는 앱\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open with default Editor:\"; ObjectID = \"bvy-v3-hhf\"; */\n\"bvy-v3-hhf.title\" = \"기본 에디터로 열기:\";\n\n/* Class = \"NSButtonCell\"; title = \"GitHub Sponsors\"; ObjectID = \"dC4-C7-fEL\"; */\n\"dC4-C7-fEL.title\" = \"GitHub 스폰서\";\n\n/* Class = \"NSButtonCell\"; title = \"github.com/Ji4n1ng/OpenInTerminal\"; ObjectID = \"f2V-P5-pQI\"; */\n\"f2V-P5-pQI.title\" = \"github.com/Ji4n1ng/OpenInTerminal\";\n\n/* Class = \"NSButtonCell\"; title = \"Editor\"; ObjectID = \"fb4-Xq-he0\"; */\n\"fb4-Xq-he0.title\" = \"에디터\";\n\n/* Class = \"NSButtonCell\"; title = \"Quick Toggle\"; ObjectID = \"gy9-lb-m8d\"; */\n\"gy9-lb-m8d.title\" = \"빠른 전환\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Application Name:\"; ObjectID = \"h5X-oY-gqy\"; */\n\"h5X-oY-gqy.title\" = \"애플리케이션 이름:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Reset\"; ObjectID = \"jcs-Ou-OZ2\"; */\n\"jcs-Ou-OZ2.title\" = \"초기화\";\n\n/* Class = \"NSButtonCell\"; title = \"Reset preferences\"; ObjectID = \"jyI-H7-qN3\"; */\n\"jyI-H7-qN3.title\" = \"설정 초기화\";\n\n/* Class = \"NSButtonCell\"; title = \"PayPal\"; ObjectID = \"k3X-F7-Gpb\"; */\n\"k3X-F7-Gpb.title\" = \"PayPal\";\n\n/* Class = \"NSViewController\"; title = \"About\"; ObjectID = \"k6X-N1-mVu\"; */\n\"k6X-N1-mVu.title\" = \"정보\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Text Cell\"; ObjectID = \"kAa-36-ubl\"; */\n\"kAa-36-ubl.title\" = \"Text Cell\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Table View Cell\"; ObjectID = \"keg-OV-uLJ\"; */\n\"keg-OV-uLJ.title\" = \"Table View Cell\";\n\n/* Class = \"NSTextFieldCell\"; title = \"OpenInTerminal\"; ObjectID = \"mOB-su-ZM1\"; */\n\"mOB-su-ZM1.title\" = \"OpenInTerminal\";\n\n/* Class = \"NSButtonCell\"; title = \"Window\"; ObjectID = \"mTs-8c-pgj\"; */\n\"mTs-8c-pgj.title\" = \"윈도우\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Custom Menu Options\"; ObjectID = \"nWc-SM-Kes\"; */\n\"nWc-SM-Kes.title\" = \"사용자 지정 메뉴 구성\";\n\n/* Class = \"NSButtonCell\"; title = \"Tab\"; ObjectID = \"nYS-rF-JCL\"; */\n\"nYS-rF-JCL.title\" = \"탭\";\n\n/* Class = \"NSTextFieldCell\"; title = \"OpenInTerminal will automatically launch at login.\"; ObjectID = \"ngT-lX-vFA\"; */\n\"ngT-lX-vFA.title\" = \"OpenInTerminal가 로그인시에 자동으로 실행됩니다.\";\n\n/* Class = \"NSButtonCell\"; title = \"Quit OpenInTerminal\"; ObjectID = \"ofD-rA-gib\"; */\n\"ofD-rA-gib.title\" = \"OpenInTerminal 종료\";\n\n/* Class = \"NSViewController\"; title = \"Custom\"; ObjectID = \"s5W-qL-1Xs\"; */\n\"s5W-qL-1Xs.title\" = \"사용자 지정\";\n\n/* Class = \"NSButtonCell\"; title = \"Hide Context Menu Items\"; ObjectID = \"sG4-nK-ghj\"; */\n\"sG4-nK-ghj.title\" = \"우클릭 메뉴에서 숨기기\";\n\n/* Class = \"NSButtonCell\"; title = \"@Ji4n1ng\"; ObjectID = \"tR5-me-DTK\"; */\n\"tR5-me-DTK.title\" = \"@Ji4n1ng\";\n\n/* Class = \"NSButtonCell\"; title = \"original\"; ObjectID = \"uok-iD-wXY\"; */\n\"uok-iD-wXY.title\" = \"원래대로\";\n\n/* Class = \"NSButtonCell\"; title = \"Confirm\"; ObjectID = \"wpb-Gv-KAp\"; */\n\"wpb-Gv-KAp.title\" = \"확인\";\n\n/* Class = \"NSButtonCell\"; title = \"no\"; ObjectID = \"x6U-9Q-ujh\"; */\n\"x6U-9Q-ujh.title\" = \"없음\";\n\n/* Class = \"NSTextFieldCell\"; title = \"iTerm\"; ObjectID = \"yIW-2a-15A\"; */\n\"yIW-2a-15A.title\" = \"iTerm\";\n\n/* Class = \"NSButtonCell\"; title = \"simple\"; ObjectID = \"yrq-LZ-XDr\"; */\n\"yrq-LZ-XDr.title\" = \"간단하게\";\n"
  },
  {
    "path": "OpenInTerminal/PreferencesWindow/mul.lproj/Preferences.xcstrings",
    "content": "{\n  \"sourceLanguage\" : \"en\",\n  \"strings\" : {\n    \"0Gy-jf-q6v.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"❤️ Special thanks to:\\\"; ObjectID = \\\"0Gy-jf-q6v\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"❤️ Besonderen Dank an:\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"❤️ Special thanks to:\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"❤️ Agradecimiento especial a:\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"❤️ Spécial remerciement à:\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"❤️ Un ringraziamento speciale a:\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"❤️ 특별히 감사드립니다:\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"❤️ Особое спасибо:\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"❤️ Özel olarak teşekkürler:\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"❤️ 特别致谢:\"\n          }\n        }\n      }\n    },\n    \"2Rg-te-FPU.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"⚠️ Note that this will reset all user preferences\\\"; ObjectID = \\\"2Rg-te-FPU\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"⚠️ Beachten Sie, dass dadurch alle Benutzereinstellungen zurückgesetzt werden.\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"⚠️ Note that this will reset all user preferences\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"⚠️ Tenga en cuenta que se restablecerán todas las preferencias del usuario\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"⚠️ Notez que cela réinitialisera toutes les préférences de l'utilisateur\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"⚠️ Tutte le Preferenze utente saranno ripristinate\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"⚠️ 모든 사용자 설정이 초기화됩니다\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"⚠️ Все пользовательские настройки будут сброшены\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"⚠️ Bu bütün kullanıcı tercihlerini sıfırlayacaktır\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"⚠️ 注意这将会重置所有用户偏好设置\"\n          }\n        }\n      }\n    },\n    \"2we-f7-s2N.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"Apply to Finder Toolbar Menu\\\"; ObjectID = \\\"2we-f7-s2N\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Auf das Finder-Symbolleistenmenü anwenden\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Apply to Finder Toolbar Menu\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Aplicar al menú de la barra de herramientas del Finder\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Appliquer au menu de la barre d'outils du Finder\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Applica al Menu della Barra Strumenti del Finder\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Finder 툴바 메뉴에 적용하기\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Применить к меню панели инструментов Finder\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Finder Araç Menüsüne uygula\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"应用到访达工具栏菜单\"\n          }\n        }\n      }\n    },\n    \"5f3-UK-Rft.title\" : {\n      \"comment\" : \"Class = \\\"NSWindow\\\"; title = \\\"Preferences\\\"; ObjectID = \\\"5f3-UK-Rft\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Einstellungen\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Preferences\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Preferencias\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Préférences\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Preferenze\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"설정\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Настройки\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Tercihler\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"偏好设置\"\n          }\n        }\n      }\n    },\n    \"592-4p-Ybh.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"If enabled, click the Menu Bar icon to toggle the action you choose. Right click to open the menu.\\\"; ObjectID = \\\"592-4p-Ybh\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Falls aktiviert, klicken Sie auf das Symbol der Menüleiste, um die gewünschte Aktion zu aktivieren. Klicken Sie mit der rechten Maustaste, um das Menü zu öffnen.\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"If enabled, click the Menu Bar icon to toggle the action you choose. Right click to open the menu.\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Si está habilitado, haga clic en el icono de la barra de menú para alternar la acción que elija. Haga clic derecho para abrir el menú.\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Si cela est activé, un clique sur l’icône dans la barre des menus exécutera l’action choisie. Un clique droit ouvrira le menu.\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Se selezionata, clicca sull'icona nella barra dei menu per eseguire l'azione rapida. Clicca con il tasto destro per aprire il menu.\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"만약 활성화되면 메뉴 바 아이콘을 클릭하여 선택한 작업을 실행할 수 있고, 우클릭하여 메뉴를 열 수 있습니다.\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Если включено, нажмите по иконке в меню, чтобы переключить действие. Правый клик для открытия меню.\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Eğer etkinleştirilirse Menu Çubuğundaki simge üzerinden yapılması istenen aksiyon seçilir. Menüyü açmak için sağ tıklayın\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"启用后，点击系统状态栏图标以快速启动你所选择的操作。辅助点按（右键）以打开菜单。\"\n          }\n        }\n      }\n    },\n    \"aRo-sy-WpK.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"Default Terminal:\\\"; ObjectID = \\\"aRo-sy-WpK\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Standard-Terminal:\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Default Terminal:\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Terminal predeterminado:\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Terminal par défaut:\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Terminale di default:\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"기본 터미널:\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Терминал по-умолчанию:\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Varsayılan Terminal:\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"默认终端:\"\n          }\n        }\n      }\n    },\n    \"bCi-r8-MrK.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"Not Installed Applications\\\"; ObjectID = \\\"bCi-r8-MrK\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Nicht installierte Programme\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Not Installed Applications\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Aplicaciones no instaladas\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Applications non installées\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Applicazioni Non Installate\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"설치되지 않은 앱\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Нет установленных приложений\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Yüklü Olmayan Uygulamalar\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"未安装的应用\"\n          }\n        }\n      }\n    },\n    \"BrI-hE-Mff.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"Open a new window or a new tab.\\\"; ObjectID = \\\"BrI-hE-Mff\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Öffnen Sie ein neues Fenster oder einen neuen Tab.\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Open a new window or a new tab.\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Abra una nueva ventana o una nueva pestaña.\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Ouvre une nouvelle fenêtre ou un nouvel onglet à l’ouverture du chemin d’accès dans le terminal.\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Apri una nuova finestra o un nuovo pannello quando apri un percorso nel terminale.\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"새 창 또는 탭 열기.\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Открыть новое окно или новую вкладку при открытии пути в терминале.\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Yeni bir pencere veya sekme aç.\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"打开一个新的窗口或者标签。\"\n          }\n        }\n      }\n    },\n    \"bT7-LU-sov.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"Installed Supported Applications\\\"; ObjectID = \\\"bT7-LU-sov\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Installierte unterstützte Programme\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Installed Supported Applications\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Aplicaciones compatibles instaladas\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Applications prises en charge installées\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Applicazioni Supportate Installate\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"설치된 지원되는 앱\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Установленные поддерживаемые приложения\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Yüklünmiş Desteklenen Uygulamalar\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"已安装的受支持的应用\"\n          }\n        }\n      }\n    },\n    \"BUH-CU-WBW.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"Hide Status Bar Icon\\\"; ObjectID = \\\"BUH-CU-WBW\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Statusleistensymbol ausblenden\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Hide Status Bar Icon\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Ocultar icono de barra de estado\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Masquer l'icône de la barre d'état\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Nascondi l'icona nella Barra dei Menu\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"상태 바 아이콘 가리기\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Скрыть иконку в строке состояния\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Durum Çubuğu Simgesini Gizle\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"隐藏状态栏图标\"\n          }\n        }\n      }\n    },\n    \"bvy-v3-hhf.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"Open with default Editor:\\\"; ObjectID = \\\"bvy-v3-hhf\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Mit Standard-Editor öffnen:\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Open with default Editor:\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Abrir con editor predeterminado:\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Ouvrir avec l’éditeur par défaut:\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Apri con l'Editor di default:\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"기본 에디터로 열기:\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Открыть в редакторе по-умолчанию:\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Varsayılan düzenleyici ile aç:\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"打开默认编辑器:\"\n          }\n        }\n      }\n    },\n    \"CP0-Xv-uYl.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"Icon Type:\\\"; ObjectID = \\\"CP0-Xv-uYl\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Symboltyp:\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Icon Type:\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Tipo de icono:\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Type d’icône:\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Tipo di icona:\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"아이콘 타입:\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Тип значка:\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Simge Tipi:\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"图标类型:\"\n          }\n        }\n      }\n    },\n    \"Cp7-6g-ngj.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"Cancel\\\"; ObjectID = \\\"Cp7-6g-ngj\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Abbrechen\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Cancel\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Cancelar\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Annuler\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Annulla\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"취소\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Отмена\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"İptal\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"取消\"\n          }\n        }\n      }\n    },\n    \"dC4-C7-fEL.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"GitHub Sponsors\\\"; ObjectID = \\\"dC4-C7-fEL\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"GitHub Sponsors\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"GitHub Sponsors\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"GitHub Sponsors\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"GitHub Sponsors\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"GitHub Sponsors\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"GitHub 스폰서\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"GitHub Sponsors\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"GitHub Sponsors\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"GitHub 赞助\"\n          }\n        }\n      }\n    },\n    \"Dyx-zg-hYe.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"None\\\"; ObjectID = \\\"Dyx-zg-hYe\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Keine\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"None\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Ninguno\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Aucun\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Nessuno\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"없음\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Нет\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Hiçbiri\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"无\"\n          }\n        }\n      }\n    },\n    \"eYl-05-W7a.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"Yes\\\"; ObjectID = \\\"eYl-05-W7a\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"ja\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Yes\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Sí\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Oui\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Sì\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"예\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Да\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Evet\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"是\"\n          }\n        }\n      }\n    },\n    \"f2V-P5-pQI.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"github.com/Ji4n1ng/OpenInTerminal\\\"; ObjectID = \\\"f2V-P5-pQI\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"github.com/Ji4n1ng/OpenInTerminal\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"github.com/Ji4n1ng/OpenInTerminal\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"github.com/Ji4n1ng/OpenInTerminal\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"github.com/Ji4n1ng/OpenInTerminal\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"github.com/Ji4n1ng/OpenInTerminal\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"github.com/Ji4n1ng/OpenInTerminal\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"github.com/Ji4n1ng/OpenInTerminal\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"github.com/Ji4n1ng/OpenInTerminal\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"github.com/Ji4n1ng/OpenInTerminal\"\n          }\n        }\n      }\n    },\n    \"fb4-Xq-he0.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"Editor\\\"; ObjectID = \\\"fb4-Xq-he0\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Editor\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Editor\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Editor\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Éditeur\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Editor\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"에디터\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Редактор\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Düzenleyici\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"编辑器\"\n          }\n        }\n      }\n    },\n    \"FBK-9S-cZf.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"Quit\\\"; ObjectID = \\\"FBK-9S-cZf\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Beenden\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Quit\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Salir\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Quitter\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Esci\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"종료\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Выход\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Çıkış\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"退出\"\n          }\n        }\n      }\n    },\n    \"FpP-Q9-flS.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"Shortcuts\\\"; ObjectID = \\\"FpP-Q9-flS\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Kurzbefehle\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Shortcuts\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Atajos\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Raccourcis\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Scorciatoie\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"단축키\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Ярлыки\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Kısayollar\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"快捷键\"\n          }\n        }\n      }\n    },\n    \"G69-k2-hgn.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"None\\\"; ObjectID = \\\"G69-k2-hgn\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Keine\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"None\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Niguno\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Aucun\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Nessuno\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"없음\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Нет\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Hiçbiri\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"无\"\n          }\n        }\n      }\n    },\n    \"Gn1-zC-bzB.title\" : {\n      \"comment\" : \"Class = \\\"NSViewController\\\"; title = \\\"General\\\"; ObjectID = \\\"Gn1-zC-bzB\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Allgemein\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"General\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"General\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Général\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Generali\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"일반\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Основные\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Genel\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"通用\"\n          }\n        }\n      }\n    },\n    \"gy9-lb-m8d.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"Quick Toggle\\\"; ObjectID = \\\"gy9-lb-m8d\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Schnellwechsler\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Quick Toggle\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Accion rápida\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Exécution rapide\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Azione rapida\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"빠른 전환\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Быстрое переключение\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Hızlı Seçim\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"快速启动\"\n          }\n        }\n      }\n    },\n    \"H3q-JS-Bu4.title\" : {\n      \"comment\" : \"Class = \\\"NSViewController\\\"; title = \\\"Advanced\\\"; ObjectID = \\\"H3q-JS-Bu4\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Erweitert\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Advanced\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Avanzado\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Avancé\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Avanzate\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"고급\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Расширенные\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Gelişmiş\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"高级\"\n          }\n        }\n      }\n    },\n    \"h5X-oY-gqy.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"Application Name:\\\"; ObjectID = \\\"h5X-oY-gqy\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Programmname:\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Application Name:\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Nombre de la aplicación:\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Nom de l’application:\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Nome dell’applicazione:\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"애플리케이션 이름:\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Название приложения:\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Uygulama Adı:\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"应用名称:\"\n          }\n        }\n      }\n    },\n    \"How-dP-tcX.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"👨‍💻 GitHub:\\\"; ObjectID = \\\"How-dP-tcX\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"👨‍💻 GitHub:\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"👨‍💻 GitHub:\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"👨‍💻 GitHub:\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"👨‍💻 GitHub:\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"👨‍💻 GitHub:\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"👨‍💻 GitHub:\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"👨‍💻 GitHub:\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"👨‍💻 GitHub:\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"👨‍💻 GitHub:\"\n          }\n        }\n      }\n    },\n    \"HUx-Wz-JJm.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"WeChat\\\"; ObjectID = \\\"HUx-Wz-JJm\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"WeChat\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"WeChat\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"WeChat\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"WeChat\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"WeChat\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"WeChat\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"WeChat\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"WeChat\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"微信\"\n          }\n        }\n      }\n    },\n    \"IJL-uk-uO5.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"@Camji55\\\"; ObjectID = \\\"IJL-uk-uO5\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"@Camji55\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"@Camji55\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"@Camji55\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"@Camji55\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"@Camji55\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"@Camji55\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"@Camji55\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"@Camji55\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"@Camji55\"\n          }\n        }\n      }\n    },\n    \"IPL-yO-Vkp.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"contact@jianing.wang\\\"; ObjectID = \\\"IPL-yO-Vkp\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"contact@jianing.wang\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"contact@jianing.wang\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"contact@jianing.wang\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"contact@jianing.wang\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"contact@jianing.wang\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"contact@jianing.wang\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"contact@jianing.wang\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"contact@jianing.wang\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"contact@jianing.wang\"\n          }\n        }\n      }\n    },\n    \"jcs-Ou-OZ2.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"Reset\\\"; ObjectID = \\\"jcs-Ou-OZ2\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Zurücksetzen\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Reset\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Reiniciar\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Réinitialiser\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Ripristina\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"초기화\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Сброс\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Sıfırla\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"重置\"\n          }\n        }\n      }\n    },\n    \"Jnf-AX-bIr.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"0.1.0\\\"; ObjectID = \\\"Jnf-AX-bIr\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"0.1.0\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"0.1.0\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"0.1.0\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"0.1.0\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"0.1.0\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"0.1.0\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"0.1.0\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"0.1.0\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"0.1.0\"\n          }\n        }\n      }\n    },\n    \"jyI-H7-qN3.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"Reset preferences\\\"; ObjectID = \\\"jyI-H7-qN3\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Einstellungen zurücksetzen\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Reset preferences\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Reiniciar preferencias\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Réinitialiser les préférences\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Ripristina le preferenze\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"설정 초기화\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Сбросить настройки\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Tercihleri sıfırla\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"重置设置\"\n          }\n        }\n      }\n    },\n    \"k3X-F7-Gpb.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"PayPal\\\"; ObjectID = \\\"k3X-F7-Gpb\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"PayPal\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"PayPal\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"PayPal\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Paypal\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Paypal\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"PayPal\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"PayPal\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"PayPal\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"PayPal\"\n          }\n        }\n      }\n    },\n    \"k6X-N1-mVu.title\" : {\n      \"comment\" : \"Class = \\\"NSViewController\\\"; title = \\\"About\\\"; ObjectID = \\\"k6X-N1-mVu\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Über\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"About\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Acerca de\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"À propos\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"About\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"정보\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"О приложении\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Hakkında\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"关于\"\n          }\n        }\n      }\n    },\n    \"Kua-ZD-31F.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"💸 Donate:\\\"; ObjectID = \\\"Kua-ZD-31F\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"💸 Spenden:\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"💸 Donate:\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"💸 Donar:\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"💸 Faire un don:\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"💸 Dona:\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"💸 후원:\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"💸 Пожертвования:\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"💸 Bağış:\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"💸 支持:\"\n          }\n        }\n      }\n    },\n    \"lRl-dd-P8P.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"Path Escaping Options\\\"; ObjectID = \\\"lRl-dd-P8P\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Pfad-Escape-Optionen\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Path Escaping Options\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Opciones de escape de ruta\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Options d’échappement de chemin\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Opzioni di escape del percorso\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"경로 이스케이프 옵션\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Опции экранирования пути\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Yol Kaçış Seçenekleri\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"路径转义选项\"\n          }\n        }\n      }\n    },\n    \"M3w-T0-vi7.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"Terminal\\\"; ObjectID = \\\"M3w-T0-vi7\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Terminal\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Terminal\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Terminal\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Terminal\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Terminale\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"터미널\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Терминал\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Terminal\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"终端\"\n          }\n        }\n      }\n    },\n    \"mOB-su-ZM1.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"OpenInTerminal\\\"; ObjectID = \\\"mOB-su-ZM1\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"OpenInTerminal\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"OpenInTerminal\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"OpenInTerminal\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"OpenInTerminal\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"OpenInTerminal\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"OpenInTerminal\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"OpenInTerminal\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"OpenInTerminal\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"OpenInTerminal\"\n          }\n        }\n      }\n    },\n    \"Mqt-Fp-Ssl.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"Open with default Terminal:\\\"; ObjectID = \\\"Mqt-Fp-Ssl\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Mit Standard-Terminal öffnen:\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Open with default Terminal:\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Abierto con terminal predeterminado:\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Ouvrir avec le terminal par défaut:\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Apri con il Terminale di default:\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"기본 터미널로 열기:\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Открыть через Терминал по-умолчанию:\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Varsayılan Terminal ile Aç:\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"打开默认终端:\"\n          }\n        }\n      }\n    },\n    \"mTs-8c-pgj.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"Window\\\"; ObjectID = \\\"mTs-8c-pgj\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Fenster\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Window\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Ventana\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Fenêtre\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Finestra\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"윈도우\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Окно\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Pencere\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"窗口\"\n          }\n        }\n      }\n    },\n    \"ngT-lX-vFA.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"OpenInTerminal will automatically launch at login.\\\"; ObjectID = \\\"ngT-lX-vFA\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"OpenInTerminal wird bei der Anmeldung automatisch gestartet.\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"OpenInTerminal will automatically launch at login.\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"OpenInTerminal se iniciará automáticamente al iniciar sesión.\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"OpenInTerminal sera automatiquement lancé à l’ouverture de la session.\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"OpenInTerminal si aprirà automaticamente al login.\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"OpenInTerminal가 로그인시에 자동으로 실행됩니다.\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"OpenInTerminal будет автоматически запускаться при старте системы\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"OpenInTerminal oturum açma sırasında otomatik başlatılacaktır.\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"启用后，OpenInTerminal 将会在登录时自动启动。\"\n          }\n        }\n      }\n    },\n    \"nWc-SM-Kes.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"Custom Menu Options\\\"; ObjectID = \\\"nWc-SM-Kes\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Benutzerdefinierte Menüoptionen\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Custom Menu Options\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Opciones de menú personalizado\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Options de menu personnalisées\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Opzioni Personalizzate dei Menu\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"사용자 지정 메뉴 구성\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Пользовательские параметры меню\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Özel Menü Ayarları\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"自定义菜单选项\"\n          }\n        }\n      }\n    },\n    \"nYS-rF-JCL.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"Tab\\\"; ObjectID = \\\"nYS-rF-JCL\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Tab\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Tab\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Tab\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Onglet\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Pannello\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"탭\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Вкладка\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Sekme\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"标签页\"\n          }\n        }\n      }\n    },\n    \"NZE-zU-6ss.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"🐦 Twitter:\\\"; ObjectID = \\\"NZE-zU-6ss\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"🐦 Twitter:\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"🐦 Twitter:\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"🐦 Twitter:\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"🐦 Twitter:\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"🐦 Twitter:\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"🐦 Twitter:\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"🐦 Twitter:\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"🐦 Twitter:\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"🐦 推特:\"\n          }\n        }\n      }\n    },\n    \"OET-MK-jpV.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"No\\\"; ObjectID = \\\"OET-MK-jpV\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"nein\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"No\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"No\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Non\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"No\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"아니요\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Нет\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Hayır\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"否\"\n          }\n        }\n      }\n    },\n    \"ofD-rA-gib.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"Quit OpenInTerminal\\\"; ObjectID = \\\"ofD-rA-gib\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"OpenInTerminal beenden\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Quit OpenInTerminal\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Salir de OpenInTerminal\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Quit OpenInTerminal\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Esci da OpenInTerminal\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"OpenInTerminal 종료\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Выйти из OpenInTerminal\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"OpenInTerminal'den Çık\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"退出 OpenInTerminal\"\n          }\n        }\n      }\n    },\n    \"RhP-R5-Wwt.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"Apply to Finder Context Menu\\\"; ObjectID = \\\"RhP-R5-Wwt\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Auf das Finder-Kontextmenü anwenden\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Apply to Finder Context Menu\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Aplicar al menú contextual del Finder\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Appliquer au menu contextuel du Finder\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Applica al Menu Contestuale del Finder\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Finder 우클릭 메뉴에 적용하기\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Применить к контекстному меню Finder\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Finder İçerik Menüsüne Uygula\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"应用到访达上下文菜单\"\n          }\n        }\n      }\n    },\n    \"s5W-qL-1Xs.title\" : {\n      \"comment\" : \"Class = \\\"NSViewController\\\"; title = \\\"Custom\\\"; ObjectID = \\\"s5W-qL-1Xs\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Benutzerdefiniert\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Custom\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Personalizado\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Bar d’outils\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Barra strumenti\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"사용자 지정\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Панель инструментов\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Özel\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"自定义\"\n          }\n        }\n      }\n    },\n    \"sG4-nK-ghj.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"Hide Context Menu Items\\\"; ObjectID = \\\"sG4-nK-ghj\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Kontextmenüeinträge ausblenden\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Hide Context Menu Items\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Ocultar elementos del menú contextual\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Masquer les éléments du menu contextuel\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Nascondi gli Elementi del Menu Contestuale\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"우클릭 메뉴에서 숨기기\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Скрыть строки из контекстного меню\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"İçerik Menüsü Ögelerini Sil\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"隐藏上下文菜单项\"\n          }\n        }\n      }\n    },\n    \"Sw7-of-ecf.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"Alipay\\\"; ObjectID = \\\"Sw7-of-ecf\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Alipay\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Alipay\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Alipay\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Alipay\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Alipay\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Alipay\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Alipay\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Alipay\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"支付宝\"\n          }\n        }\n      }\n    },\n    \"tR5-me-DTK.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"@Ji4n1ng\\\"; ObjectID = \\\"tR5-me-DTK\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"@Ji4n1ng\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"@Ji4n1ng\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"@Ji4n1ng\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"@Ji4n1ng\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"@Ji4n1ng\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"@Ji4n1ng\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"@Ji4n1ng\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"@Ji4n1ng\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"@Ji4n1ng\"\n          }\n        }\n      }\n    },\n    \"UCM-Ds-LYN.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"Application Type:\\\"; ObjectID = \\\"UCM-Ds-LYN\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Programmtyp:\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Application Type:\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"tipo de aplicacion:\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Type d’application :\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Tipo di applicazione:\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"애플리케이션 타입:\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Тип приложения:\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Uygulama Tipi:\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"应用类型:\"\n          }\n        }\n      }\n    },\n    \"uok-iD-wXY.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"original\\\"; ObjectID = \\\"uok-iD-wXY\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"original\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"original\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"original\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"original\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"originale\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"원래대로\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"оригинал\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"orijinal\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"原始\"\n          }\n        }\n      }\n    },\n    \"Upf-HU-iaN.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"You need to reopen the app to display Preferences.\\\"; ObjectID = \\\"Upf-HU-iaN\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Sie müssen das Programm erneut öffnen, um die Einstellungen anzuzeigen.\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"You need to reopen the app to display Preferences.\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Debes volver a abrir la aplicación para mostrar las preferencias.\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Vous devez rouvrir l'application pour afficher les préférences.\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Riavvia l'applicazione per salvare le nuove Preferenze.\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"설정을 표시하려면 앱을 다시 열어야 합니다.\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Перезапустите приложения, чтобы отобразить Настройки.\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Tercihleri görüntüleyebilmek için uygulama tekrar açılmalı.\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"你需要重新打开应用来显示偏好设置。\"\n          }\n        }\n      }\n    },\n    \"Vu4-Wz-Agk.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"✉️ Contact:\\\"; ObjectID = \\\"Vu4-Wz-Agk\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"✉️ Kontakt:\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"✉️ Contact:\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"✉️ Contactar:\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"✉️ Contact:\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"✉️ Contattaci:\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"✉️ 연락처:\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"✉️ Связаться:\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"✉️ İletişim:\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"✉️ 联系:\"\n          }\n        }\n      }\n    },\n    \"wpb-Gv-KAp.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"Confirm\\\"; ObjectID = \\\"wpb-Gv-KAp\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Bestätigen\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Confirm\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Confirmar\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Confirmer\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Conferma\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"확인\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Подтвердить\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Onayla\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"确认\"\n          }\n        }\n      }\n    },\n    \"x6U-9Q-ujh.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"no\\\"; ObjectID = \\\"x6U-9Q-ujh\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"nein\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"no\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"no\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"non\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"no\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"없음\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Нет\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"hayır\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"无\"\n          }\n        }\n      }\n    },\n    \"Xd9-iA-emU.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"Copy path in Clipboard:\\\"; ObjectID = \\\"Xd9-iA-emU\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Pfad in die Zwischenablage kopieren:\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Copy path in Clipboard:\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Copiar ruta en el Portapapeles:\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Copier le chemin d’accès:\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Copia percorso nella Clipboard:\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"위치를 클립보드에 복사:\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Скопировать путь в буфер обмена:\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Yolu Clipboard'a kopyala:\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"拷贝路径到粘贴板:\"\n          }\n        }\n      }\n    },\n    \"Xfc-rf-FkX.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"Default Text Editor:\\\"; ObjectID = \\\"Xfc-rf-FkX\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Standard Text-Editor:\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Default Text Editor:\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Editor de texto predeterminado:\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Éditeur par défaut:\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Editor di testo di default:\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"기본 텍스트 에디터:\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Текстовый редактор по-умолчанию:\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Varsayılan Yazı Düzenleyecisi:\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"默认编辑器:\"\n          }\n        }\n      }\n    },\n    \"yIW-2a-15A.title\" : {\n      \"comment\" : \"Class = \\\"NSTextFieldCell\\\"; title = \\\"iTerm\\\"; ObjectID = \\\"yIW-2a-15A\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"iTerm\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"iTerm\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"iTerm\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"iTerm\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"iTerm\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"iTerm\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"iTerm\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"iTerm\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"iTerm\"\n          }\n        }\n      }\n    },\n    \"yrq-LZ-XDr.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"simple\\\"; ObjectID = \\\"yrq-LZ-XDr\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"einfach\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"simple\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"simple\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"simple\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"semplice\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"간단하게\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"простой\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"basit\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"简单\"\n          }\n        }\n      }\n    },\n    \"ZbK-xW-anT.title\" : {\n      \"comment\" : \"Class = \\\"NSButtonCell\\\"; title = \\\"Launch OpenInTerminal at Login\\\"; ObjectID = \\\"ZbK-xW-anT\\\";\",\n      \"extractionState\" : \"extracted_with_value\",\n      \"localizations\" : {\n        \"de\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"OpenInTerminal bei der Anmeldung starten\"\n          }\n        },\n        \"en\" : {\n          \"stringUnit\" : {\n            \"state\" : \"new\",\n            \"value\" : \"Launch OpenInTerminal at Login\"\n          }\n        },\n        \"es\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Abrir OpenInTerminal al iniciar sesión\"\n          }\n        },\n        \"fr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Lancer OpenInTerminal à l’ouverture de la session\"\n          }\n        },\n        \"it\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Apri OpenInTerminal al Login\"\n          }\n        },\n        \"ko\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"OpenInTerminal를 로그인 시에 열기\"\n          }\n        },\n        \"ru\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"Запускать OpenInTerminal автоматически\"\n          }\n        },\n        \"tr\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"OpenInTerminal girişte çalıştır\"\n          }\n        },\n        \"zh-Hans\" : {\n          \"stringUnit\" : {\n            \"state\" : \"translated\",\n            \"value\" : \"开机自动启动\"\n          }\n        }\n      }\n    }\n  },\n  \"version\" : \"1.0\"\n}"
  },
  {
    "path": "OpenInTerminal/PreferencesWindow/ru.lproj/Preferences.strings",
    "content": "\n/* Class = \"NSTextFieldCell\"; title = \"❤️ Special thanks to:\"; ObjectID = \"0Gy-jf-q6v\"; */\n\"0Gy-jf-q6v.title\" = \"❤️ Особое спасибо:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"⚠️ Note that this will reset all user preferences\"; ObjectID = \"2Rg-te-FPU\"; */\n\"2Rg-te-FPU.title\" = \"⚠️ Все пользовательские настройки будут сброшены\";\n\n/* Class = \"NSButtonCell\"; title = \"Tab\"; ObjectID = \"4ss-CQ-brT\"; */\n\"4ss-CQ-brT.title\" = \"Вкладка\";\n\n/* Class = \"NSTextFieldCell\"; title = \"If enabled, click the Menu Bar icon to toggle the action you choose. Right click to open the menu.\"; ObjectID = \"592-4p-Ybh\"; */\n\"592-4p-Ybh.title\" = \"Если включено, нажмите по иконке в меню, чтобы переключить действие. Правый клик для открытия меню.\";\n\n/* Class = \"NSWindow\"; title = \"Preferences\"; ObjectID = \"5f3-UK-Rft\"; */\n\"5f3-UK-Rft.title\" = \"Настройки\";\n\n/* Class = \"NSButtonCell\"; title = \"Hide Status Bar Icon\"; ObjectID = \"BUH-CU-WBW\"; */\n\"BUH-CU-WBW.title\" = \"Скрыть иконку в строке состояния\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open a new window or a new tab when opening a path in terminal.\"; ObjectID = \"BrI-hE-Mff\"; */\n\"BrI-hE-Mff.title\" = \"Открыть новое окно или новую вкладку при открытии пути в терминале.\";\n\n/* Class = \"NSTextFieldCell\"; title = \"None\"; ObjectID = \"Dyx-zg-hYe\"; */\n\"Dyx-zg-hYe.title\" = \"Нет\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Shortcuts\"; ObjectID = \"FpP-Q9-flS\"; */\n\"FpP-Q9-flS.title\" = \"Ярлыки\";\n\n/* Class = \"NSTextFieldCell\"; title = \"None\"; ObjectID = \"G69-k2-hgn\"; */\n\"G69-k2-hgn.title\" = \"Нет\";\n\n/* Class = \"NSViewController\"; title = \"General\"; ObjectID = \"Gn1-zC-bzB\"; */\n\"Gn1-zC-bzB.title\" = \"Основные\";\n\n/* Class = \"NSViewController\"; title = \"Advanced\"; ObjectID = \"H3q-JS-Bu4\"; */\n\"H3q-JS-Bu4.title\" = \"Расширенные\";\n\n/* Class = \"NSButtonCell\"; title = \"WeChat\"; ObjectID = \"HUx-Wz-JJm\"; */\n\"HUx-Wz-JJm.title\" = \"WeChat\";\n\n/* Class = \"NSTextFieldCell\"; title = \"👨‍💻 GitHub:\"; ObjectID = \"How-dP-tcX\"; */\n\"How-dP-tcX.title\" = \"👨‍💻 GitHub:\";\n\n/* Class = \"NSButtonCell\"; title = \"@Camji55\"; ObjectID = \"IJL-uk-uO5\"; */\n\"IJL-uk-uO5.title\" = \"@Camji55\";\n\n/* Class = \"NSButtonCell\"; title = \"contact@jianing.wang\"; ObjectID = \"IPL-yO-Vkp\"; */\n\"IPL-yO-Vkp.title\" = \"contact@jianing.wang\";\n\n/* Class = \"NSTextFieldCell\"; title = \"0.1.0\"; ObjectID = \"Jnf-AX-bIr\"; */\n\"Jnf-AX-bIr.title\" = \"0.1.0\";\n\n/* Class = \"NSTextFieldCell\"; title = \"💸 Donate:\"; ObjectID = \"Kua-ZD-31F\"; */\n\"Kua-ZD-31F.title\" = \"💸 Пожертвования:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open with default Terminal:\"; ObjectID = \"Mqt-Fp-Ssl\"; */\n\"Mqt-Fp-Ssl.title\" = \"Открыть через Терминал по-умолчанию:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"🐦 Twitter:\"; ObjectID = \"NZE-zU-6ss\"; */\n\"NZE-zU-6ss.title\" = \"🐦 Twitter:\";\n\n/* Class = \"NSButtonCell\"; title = \"Alipay\"; ObjectID = \"Sw7-of-ecf\"; */\n\"Sw7-of-ecf.title\" = \"Alipay\";\n\n/* Class = \"NSTextFieldCell\"; title = \"You need to reopen the app to display Preferences.\"; ObjectID = \"Upf-HU-iaN\"; */\n\"Upf-HU-iaN.title\" = \"Перезапустите приложения, чтобы отобразить Настройки.\";\n\n/* Class = \"NSTextFieldCell\"; title = \"✉️ Contact:\"; ObjectID = \"Vu4-Wz-Agk\"; */\n\"Vu4-Wz-Agk.title\" = \"✉️ Связаться:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Copy path in Clipboard:\"; ObjectID = \"Xd9-iA-emU\"; */\n\"Xd9-iA-emU.title\" = \"Скопировать путь в буфер обмена:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Default Text Editor:\"; ObjectID = \"Xfc-rf-FkX\"; */\n\"Xfc-rf-FkX.title\" = \"Текстовый редактор по-умолчанию:\";\n\n/* Class = \"NSButtonCell\"; title = \"Launch OpenInTerminal at Login\"; ObjectID = \"ZbK-xW-anT\"; */\n\"ZbK-xW-anT.title\" = \"Запускать OpenInTerminal автоматически\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Default Terminal:\"; ObjectID = \"aRo-sy-WpK\"; */\n\"aRo-sy-WpK.title\" = \"Терминал по-умолчанию:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Not Installed Applications\"; ObjectID = \"bCi-r8-MrK\"; */\n\"bCi-r8-MrK.title\" = \"Нет установленных приложений\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Installed Supported Applications\"; ObjectID = \"bT7-LU-sov\"; */\n\"bT7-LU-sov.title\" = \"Установленные поддерживаемые приложения\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open with default Editor:\"; ObjectID = \"bvy-v3-hhf\"; */\n\"bvy-v3-hhf.title\" = \"Открыть в редакторе по-умолчанию:\";\n\n/* Class = \"NSButtonCell\"; title = \"PayPal\"; ObjectID = \"dC4-C7-fEL\"; */\n\"dC4-C7-fEL.title\" = \"PayPal\";\n\n/* Class = \"NSButtonCell\"; title = \"github.com/Ji4n1ng/OpenInTerminal\"; ObjectID = \"f2V-P5-pQI\"; */\n\"f2V-P5-pQI.title\" = \"github.com/Ji4n1ng/OpenInTerminal\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Terminal\"; ObjectID = \"fA9-Hd-yjp\"; */\n\"fA9-Hd-yjp.title\" = \"Терминал\";\n\n/* Class = \"NSButtonCell\"; title = \"Quick Toggle\"; ObjectID = \"gy9-lb-m8d\"; */\n\"gy9-lb-m8d.title\" = \"Быстрое переключение\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Reset\"; ObjectID = \"jcs-Ou-OZ2\"; */\n\"jcs-Ou-OZ2.title\" = \"Сброс\";\n\n/* Class = \"NSButtonCell\"; title = \"Reset preferences\"; ObjectID = \"jyI-H7-qN3\"; */\n\"jyI-H7-qN3.title\" = \"Сбросить настройки\";\n\n/* Class = \"NSViewController\"; title = \"About\"; ObjectID = \"k6X-N1-mVu\"; */\n\"k6X-N1-mVu.title\" = \"О приложении\";\n\n/* Class = \"NSTextFieldCell\"; title = \"OpenInTerminal\"; ObjectID = \"mOB-su-ZM1\"; */\n\"mOB-su-ZM1.title\" = \"OpenInTerminal\";\n\n/* Class = \"NSButtonCell\"; title = \"Window\"; ObjectID = \"mTs-8c-pgj\"; */\n\"mTs-8c-pgj.title\" = \"Окно\";\n\n/* Class = \"NSButtonCell\"; title = \"Tab\"; ObjectID = \"nYS-rF-JCL\"; */\n\"nYS-rF-JCL.title\" = \"Вкладка\";\n\n/* Class = \"NSTextFieldCell\"; title = \"OpenInTerminal will automatically launch at login.\"; ObjectID = \"ngT-lX-vFA\"; */\n\"ngT-lX-vFA.title\" = \"OpenInTerminal будет автоматически запускаться при старте системы\";\n\n/* Class = \"NSViewController\"; title = \"Toolbar\"; ObjectID = \"s5W-qL-1Xs\"; */\n\"s5W-qL-1Xs.title\" = \"Панель инструментов\";\n\n/* Class = \"NSButtonCell\"; title = \"Hide Context Menu Items\"; ObjectID = \"sG4-nK-ghj\"; */\n\"sG4-nK-ghj.title\" = \"Скрыть строки из контекстного меню\";\n\n/* Class = \"NSButtonCell\"; title = \"Window\"; ObjectID = \"sik-wU-ZF2\"; */\n\"sik-wU-ZF2.title\" = \"Окно\";\n\n/* Class = \"NSButtonCell\"; title = \"@Ji4n1ng\"; ObjectID = \"tR5-me-DTK\"; */\n\"tR5-me-DTK.title\" = \"@Ji4n1ng\";\n\n/* Class = \"NSTextFieldCell\"; title = \"iTerm\"; ObjectID = \"yIW-2a-15A\"; */\n\"yIW-2a-15A.title\" = \"iTerm\";\n\n/* Class = \"NSButtonCell\"; title = \"Apply to Finder Toolbar Memu\"; ObjectID = \"2we-f7-s2N\"; */\n\"2we-f7-s2N.title\" = \"Применить к меню панели инструментов Finder\";\n\n/* Class = \"NSButtonCell\"; title = \"Apply to Finder Context Memu\"; ObjectID = \"RhP-R5-Wwt\"; */\n\"RhP-R5-Wwt.title\" = \"Применить к контекстному меню Finder\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Custom Menu Options\"; ObjectID = \"nWc-SM-Kes\"; */\n\"nWc-SM-Kes.title\" = \"Пользовательские параметры меню\";\n"
  },
  {
    "path": "OpenInTerminal/PreferencesWindow/tr.lproj/Preferences.strings",
    "content": "\n/* Class = \"NSTextFieldCell\"; title = \"❤️ Special thanks to:\"; ObjectID = \"0Gy-jf-q6v\"; */\n\"0Gy-jf-q6v.title\" = \"❤️ Özel olarak teşekkürler:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"⚠️ Note that this will reset all user preferences\"; ObjectID = \"2Rg-te-FPU\"; */\n\"2Rg-te-FPU.title\" = \"⚠️ Bu bütün kullanıcı tercihlerini sıfırlayacaktır\";\n\n/* Class = \"NSButtonCell\"; title = \"Apply to Finder Toolbar Menu\"; ObjectID = \"2we-f7-s2N\"; */\n\"2we-f7-s2N.title\" = \"Finder Araç Menüsüne uygula\";\n\n/* Class = \"NSTextFieldCell\"; title = \"If enabled, click the Menu Bar icon to toggle the action you choose. Right click to open the menu.\"; ObjectID = \"592-4p-Ybh\"; */\n\"592-4p-Ybh.title\" = \"Eğer etkinleştirilirse Menu Çubuğundaki simge üzerinden yapılması istenen aksiyon seçilir. Menüyü açmak için sağ tıklayın\";\n\n/* Class = \"NSWindow\"; title = \"Preferences\"; ObjectID = \"5f3-UK-Rft\"; */\n\"5f3-UK-Rft.title\" = \"Tercihler\";\n\n/* Class = \"NSButtonCell\"; title = \"Hide Status Bar Icon\"; ObjectID = \"BUH-CU-WBW\"; */\n\"BUH-CU-WBW.title\" = \"Durum Çubuğu Simgesini Gizle\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open a new window or a new tab.\"; ObjectID = \"BrI-hE-Mff\"; */\n\"BrI-hE-Mff.title\" = \"Yeni bir pencere veya sekme aç.\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Icon Type:\"; ObjectID = \"CP0-Xv-uYl\"; */\n\"CP0-Xv-uYl.title\" = \"Simge Tipi:\";\n\n/* Class = \"NSButtonCell\"; title = \"Cancel\"; ObjectID = \"Cp7-6g-ngj\"; */\n\"Cp7-6g-ngj.title\" = \"İptal\";\n\n/* Class = \"NSTextFieldCell\"; title = \"None\"; ObjectID = \"Dyx-zg-hYe\"; */\n\"Dyx-zg-hYe.title\" = \"Hiçbiri\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Quit\"; ObjectID = \"FBK-9S-cZf\"; */\n\"FBK-9S-cZf.title\" = \"Çıkış\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Shortcuts\"; ObjectID = \"FpP-Q9-flS\"; */\n\"FpP-Q9-flS.title\" = \"Kısayollar\";\n\n/* Class = \"NSTextFieldCell\"; title = \"None\"; ObjectID = \"G69-k2-hgn\"; */\n\"G69-k2-hgn.title\" = \"Hiçbiri\";\n\n/* Class = \"NSViewController\"; title = \"General\"; ObjectID = \"Gn1-zC-bzB\"; */\n\"Gn1-zC-bzB.title\" = \"Genel\";\n\n/* Class = \"NSViewController\"; title = \"Advanced\"; ObjectID = \"H3q-JS-Bu4\"; */\n\"H3q-JS-Bu4.title\" = \"Gelişmiş\";\n\n/* Class = \"NSButtonCell\"; title = \"WeChat\"; ObjectID = \"HUx-Wz-JJm\"; */\n\"HUx-Wz-JJm.title\" = \"WeChat\";\n\n/* Class = \"NSTextFieldCell\"; title = \"👨‍💻 GitHub:\"; ObjectID = \"How-dP-tcX\"; */\n\"How-dP-tcX.title\" = \"👨‍💻 GitHub:\";\n\n/* Class = \"NSButtonCell\"; title = \"@Camji55\"; ObjectID = \"IJL-uk-uO5\"; */\n\"IJL-uk-uO5.title\" = \"@Camji55\";\n\n/* Class = \"NSButtonCell\"; title = \"contact@jianing.wang\"; ObjectID = \"IPL-yO-Vkp\"; */\n\"IPL-yO-Vkp.title\" = \"contact@jianing.wang\";\n\n/* Class = \"NSTextFieldCell\"; title = \"0.1.0\"; ObjectID = \"Jnf-AX-bIr\"; */\n\"Jnf-AX-bIr.title\" = \"0.1.0\";\n\n/* Class = \"NSTextFieldCell\"; title = \"💸 Donate:\"; ObjectID = \"Kua-ZD-31F\"; */\n\"Kua-ZD-31F.title\" = \"💸 Bağış:\";\n\n/* Class = \"NSButtonCell\"; title = \"Terminal\"; ObjectID = \"M3w-T0-vi7\"; */\n\"M3w-T0-vi7.title\" = \"Terminal\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open with default Terminal:\"; ObjectID = \"Mqt-Fp-Ssl\"; */\n\"Mqt-Fp-Ssl.title\" = \"Varsayılan Terminal ile Aç:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"🐦 Twitter:\"; ObjectID = \"NZE-zU-6ss\"; */\n\"NZE-zU-6ss.title\" = \"🐦 Twitter:\";\n\n/* Class = \"NSButtonCell\"; title = \"Apply to Finder Context Menu\"; ObjectID = \"RhP-R5-Wwt\"; */\n\"RhP-R5-Wwt.title\" = \"Finder İçerik Menüsüne Uygula\";\n\n/* Class = \"NSButtonCell\"; title = \"Alipay\"; ObjectID = \"Sw7-of-ecf\"; */\n\"Sw7-of-ecf.title\" = \"Alipay\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Application Type:\"; ObjectID = \"UCM-Ds-LYN\"; */\n\"UCM-Ds-LYN.title\" = \"Uygulama Tipi:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"You need to reopen the app to display Preferences.\"; ObjectID = \"Upf-HU-iaN\"; */\n\"Upf-HU-iaN.title\" = \"Tercihleri görüntüleyebilmek için uygulama tekrar açılmalı.\";\n\n/* Class = \"NSTextFieldCell\"; title = \"✉️ Contact:\"; ObjectID = \"Vu4-Wz-Agk\"; */\n\"Vu4-Wz-Agk.title\" = \"✉️ İletişim:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Copy path in Clipboard:\"; ObjectID = \"Xd9-iA-emU\"; */\n\"Xd9-iA-emU.title\" = \"Yolu Clipboard'a kopyala:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Default Text Editor:\"; ObjectID = \"Xfc-rf-FkX\"; */\n\"Xfc-rf-FkX.title\" = \"Varsayılan Yazı Düzenleyecisi:\";\n\n/* Class = \"NSButtonCell\"; title = \"Launch OpenInTerminal at Login\"; ObjectID = \"ZbK-xW-anT\"; */\n\"ZbK-xW-anT.title\" = \"OpenInTerminal girişte çalıştır\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Default Terminal:\"; ObjectID = \"aRo-sy-WpK\"; */\n\"aRo-sy-WpK.title\" = \"Varsayılan Terminal:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Not Installed Applications\"; ObjectID = \"bCi-r8-MrK\"; */\n\"bCi-r8-MrK.title\" = \"Yüklü Olmayan Uygulamalar\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Installed Supported Applications\"; ObjectID = \"bT7-LU-sov\"; */\n\"bT7-LU-sov.title\" = \"Yüklünmiş Desteklenen Uygulamalar\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open with default Editor:\"; ObjectID = \"bvy-v3-hhf\"; */\n\"bvy-v3-hhf.title\" = \"Varsayılan düzenleyici ile aç:\";\n\n/* Class = \"NSButtonCell\"; title = \"PayPal\"; ObjectID = \"dC4-C7-fEL\"; */\n\"dC4-C7-fEL.title\" = \"PayPal\";\n\n/* Class = \"NSButtonCell\"; title = \"github.com/Ji4n1ng/OpenInTerminal\"; ObjectID = \"f2V-P5-pQI\"; */\n\"f2V-P5-pQI.title\" = \"github.com/Ji4n1ng/OpenInTerminal\";\n\n/* Class = \"NSButtonCell\"; title = \"Editor\"; ObjectID = \"fb4-Xq-he0\"; */\n\"fb4-Xq-he0.title\" = \"Düzenleyici\";\n\n/* Class = \"NSButtonCell\"; title = \"Quick Toggle\"; ObjectID = \"gy9-lb-m8d\"; */\n\"gy9-lb-m8d.title\" = \"Hızlı Seçim\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Application Name:\"; ObjectID = \"h5X-oY-gqy\"; */\n\"h5X-oY-gqy.title\" = \"Uygulama Adı:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Reset\"; ObjectID = \"jcs-Ou-OZ2\"; */\n\"jcs-Ou-OZ2.title\" = \"Sıfırla\";\n\n/* Class = \"NSButtonCell\"; title = \"Reset preferences\"; ObjectID = \"jyI-H7-qN3\"; */\n\"jyI-H7-qN3.title\" = \"Tercihleri sıfırla\";\n\n/* Class = \"NSViewController\"; title = \"About\"; ObjectID = \"k6X-N1-mVu\"; */\n\"k6X-N1-mVu.title\" = \"Hakkında\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Text Cell\"; ObjectID = \"kAa-36-ubl\"; */\n\"kAa-36-ubl.title\" = \"Yazı Hücresi\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Table View Cell\"; ObjectID = \"keg-OV-uLJ\"; */\n\"keg-OV-uLJ.title\" = \"Tablo Görünüm Hücresi\";\n\n/* Class = \"NSTextFieldCell\"; title = \"OpenInTerminal\"; ObjectID = \"mOB-su-ZM1\"; */\n\"mOB-su-ZM1.title\" = \"OpenInTerminal\";\n\n/* Class = \"NSButtonCell\"; title = \"Window\"; ObjectID = \"mTs-8c-pgj\"; */\n\"mTs-8c-pgj.title\" = \"Pencere\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Custom Menu Options\"; ObjectID = \"nWc-SM-Kes\"; */\n\"nWc-SM-Kes.title\" = \"Özel Menü Ayarları\";\n\n/* Class = \"NSButtonCell\"; title = \"Tab\"; ObjectID = \"nYS-rF-JCL\"; */\n\"nYS-rF-JCL.title\" = \"Sekme\";\n\n/* Class = \"NSTextFieldCell\"; title = \"OpenInTerminal will automatically launch at login.\"; ObjectID = \"ngT-lX-vFA\"; */\n\"ngT-lX-vFA.title\" = \"OpenInTerminal oturum açma sırasında otomatik başlatılacaktır.\";\n\n/* Class = \"NSButtonCell\"; title = \"Quit OpenInTerminal\"; ObjectID = \"ofD-rA-gib\"; */\n\"ofD-rA-gib.title\" = \"OpenInTerminal'den Çık\";\n\n/* Class = \"NSViewController\"; title = \"Custom\"; ObjectID = \"s5W-qL-1Xs\"; */\n\"s5W-qL-1Xs.title\" = \"Özel\";\n\n/* Class = \"NSButtonCell\"; title = \"Hide Context Menu Items\"; ObjectID = \"sG4-nK-ghj\"; */\n\"sG4-nK-ghj.title\" = \"İçerik Menüsü Ögelerini Sil\";\n\n/* Class = \"NSButtonCell\"; title = \"@Ji4n1ng\"; ObjectID = \"tR5-me-DTK\"; */\n\"tR5-me-DTK.title\" = \"@Ji4n1ng\";\n\n/* Class = \"NSButtonCell\"; title = \"original\"; ObjectID = \"uok-iD-wXY\"; */\n\"uok-iD-wXY.title\" = \"orijinal\";\n\n/* Class = \"NSButtonCell\"; title = \"Confirm\"; ObjectID = \"wpb-Gv-KAp\"; */\n\"wpb-Gv-KAp.title\" = \"Onayla\";\n\n/* Class = \"NSButtonCell\"; title = \"no\"; ObjectID = \"x6U-9Q-ujh\"; */\n\"x6U-9Q-ujh.title\" = \"hayır\";\n\n/* Class = \"NSTextFieldCell\"; title = \"iTerm\"; ObjectID = \"yIW-2a-15A\"; */\n\"yIW-2a-15A.title\" = \"iTerm\";\n\n/* Class = \"NSButtonCell\"; title = \"simple\"; ObjectID = \"yrq-LZ-XDr\"; */\n\"yrq-LZ-XDr.title\" = \"basit\";\n"
  },
  {
    "path": "OpenInTerminal/PreferencesWindow/zh-Hans.lproj/Preferences.strings",
    "content": "\n/* Class = \"NSTextFieldCell\"; title = \"❤️ Special thanks to:\"; ObjectID = \"0Gy-jf-q6v\"; */\n\"0Gy-jf-q6v.title\" = \"❤️ 特别致谢:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"⚠️ Note that this will reset all user preferences\"; ObjectID = \"2Rg-te-FPU\"; */\n\"2Rg-te-FPU.title\" = \"⚠️ 注意这将会重置所有用户偏好设置\";\n\n/* Class = \"NSButtonCell\"; title = \"Tab\"; ObjectID = \"4ss-CQ-brT\"; */\n\"4ss-CQ-brT.title\" = \"标签页\";\n\n/* Class = \"NSTextFieldCell\"; title = \"If enabled, click the Menu Bar icon to toggle the action you choose. Right click to open the menu.\"; ObjectID = \"592-4p-Ybh\"; */\n\"592-4p-Ybh.title\" = \"启用后，点击系统状态栏图标以快速启动你所选择的操作。辅助点按（右键）以打开菜单。\";\n\n/* Class = \"NSWindow\"; title = \"Preferences\"; ObjectID = \"5f3-UK-Rft\"; */\n\"5f3-UK-Rft.title\" = \"偏好设置\";\n\n/* Class = \"NSButtonCell\"; title = \"Hide Status Bar Icon\"; ObjectID = \"BUH-CU-WBW\"; */\n\"BUH-CU-WBW.title\" = \"隐藏状态栏图标\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open a new window or a new tab.\"; ObjectID = \"BrI-hE-Mff\"; */\n\"BrI-hE-Mff.title\" = \"打开一个新的窗口或者标签。\";\n\n/* Class = \"NSTextFieldCell\"; title = \"None\"; ObjectID = \"Dyx-zg-hYe\"; */\n\"Dyx-zg-hYe.title\" = \"无\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Shortcuts\"; ObjectID = \"FpP-Q9-flS\"; */\n\"FpP-Q9-flS.title\" = \"快捷键\";\n\n/* Class = \"NSTextFieldCell\"; title = \"None\"; ObjectID = \"G69-k2-hgn\"; */\n\"G69-k2-hgn.title\" = \"无\";\n\n/* Class = \"NSViewController\"; title = \"General\"; ObjectID = \"Gn1-zC-bzB\"; */\n\"Gn1-zC-bzB.title\" = \"通用\";\n\n/* Class = \"NSViewController\"; title = \"Advanced\"; ObjectID = \"H3q-JS-Bu4\"; */\n\"H3q-JS-Bu4.title\" = \"高级\";\n\n/* Class = \"NSButtonCell\"; title = \"WeChat\"; ObjectID = \"HUx-Wz-JJm\"; */\n\"HUx-Wz-JJm.title\" = \"微信\";\n\n/* Class = \"NSTextFieldCell\"; title = \"👨‍💻 GitHub:\"; ObjectID = \"How-dP-tcX\"; */\n\"How-dP-tcX.title\" = \"👨‍💻 GitHub:\";\n\n/* Class = \"NSButtonCell\"; title = \"@Camji55\"; ObjectID = \"IJL-uk-uO5\"; */\n\"IJL-uk-uO5.title\" = \"@Camji55\";\n\n/* Class = \"NSButtonCell\"; title = \"contact@jianing.wang\"; ObjectID = \"IPL-yO-Vkp\"; */\n\"IPL-yO-Vkp.title\" = \"contact@jianing.wang\";\n\n/* Class = \"NSTextFieldCell\"; title = \"0.1.0\"; ObjectID = \"Jnf-AX-bIr\"; */\n\"Jnf-AX-bIr.title\" = \"0.1.0\";\n\n/* Class = \"NSTextFieldCell\"; title = \"💸 Donate:\"; ObjectID = \"Kua-ZD-31F\"; */\n\"Kua-ZD-31F.title\" = \"💸 支持:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open with default Terminal:\"; ObjectID = \"Mqt-Fp-Ssl\"; */\n\"Mqt-Fp-Ssl.title\" = \"打开默认终端:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"🐦 Twitter:\"; ObjectID = \"NZE-zU-6ss\"; */\n\"NZE-zU-6ss.title\" = \"🐦 推特:\";\n\n/* Class = \"NSButtonCell\"; title = \"Alipay\"; ObjectID = \"Sw7-of-ecf\"; */\n\"Sw7-of-ecf.title\" = \"支付宝\";\n\n/* Class = \"NSTextFieldCell\"; title = \"You need to reopen the app to display Preferences.\"; ObjectID = \"Upf-HU-iaN\"; */\n\"Upf-HU-iaN.title\" = \"你需要重新打开应用来显示偏好设置。\";\n\n/* Class = \"NSTextFieldCell\"; title = \"✉️ Contact:\"; ObjectID = \"Vu4-Wz-Agk\"; */\n\"Vu4-Wz-Agk.title\" = \"✉️ 联系:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Copy path in Clipboard:\"; ObjectID = \"Xd9-iA-emU\"; */\n\"Xd9-iA-emU.title\" = \"拷贝路径到粘贴板:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Default Text Editor:\"; ObjectID = \"Xfc-rf-FkX\"; */\n\"Xfc-rf-FkX.title\" = \"默认编辑器:\";\n\n/* Class = \"NSButtonCell\"; title = \"Launch OpenInTerminal at Login\"; ObjectID = \"ZbK-xW-anT\"; */\n\"ZbK-xW-anT.title\" = \"开机自动启动\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Default Terminal:\"; ObjectID = \"aRo-sy-WpK\"; */\n\"aRo-sy-WpK.title\" = \"默认终端:\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Not Installed Applications\"; ObjectID = \"bCi-r8-MrK\"; */\n\"bCi-r8-MrK.title\" = \"未安装的应用\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Installed Supported Applications\"; ObjectID = \"bT7-LU-sov\"; */\n\"bT7-LU-sov.title\" = \"已安装的受支持的应用\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Open with default Editor:\"; ObjectID = \"bvy-v3-hhf\"; */\n\"bvy-v3-hhf.title\" = \"打开默认编辑器:\";\n\n/* Class = \"NSButtonCell\"; title = \"PayPal\"; ObjectID = \"dC4-C7-fEL\"; */\n\"dC4-C7-fEL.title\" = \"PayPal\";\n\n/* Class = \"NSButtonCell\"; title = \"github.com/Ji4n1ng/OpenInTerminal\"; ObjectID = \"f2V-P5-pQI\"; */\n\"f2V-P5-pQI.title\" = \"github.com/Ji4n1ng/OpenInTerminal\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Terminal\"; ObjectID = \"fA9-Hd-yjp\"; */\n\"fA9-Hd-yjp.title\" = \"Terminal\";\n\n/* Class = \"NSButtonCell\"; title = \"Quick Toggle\"; ObjectID = \"gy9-lb-m8d\"; */\n\"gy9-lb-m8d.title\" = \"快速启动\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Reset\"; ObjectID = \"jcs-Ou-OZ2\"; */\n\"jcs-Ou-OZ2.title\" = \"重置\";\n\n/* Class = \"NSButtonCell\"; title = \"Reset preferences\"; ObjectID = \"jyI-H7-qN3\"; */\n\"jyI-H7-qN3.title\" = \"重置设置\";\n\n/* Class = \"NSViewController\"; title = \"About\"; ObjectID = \"k6X-N1-mVu\"; */\n\"k6X-N1-mVu.title\" = \"关于\";\n\n/* Class = \"NSTextFieldCell\"; title = \"OpenInTerminal\"; ObjectID = \"mOB-su-ZM1\"; */\n\"mOB-su-ZM1.title\" = \"OpenInTerminal\";\n\n/* Class = \"NSButtonCell\"; title = \"Window\"; ObjectID = \"mTs-8c-pgj\"; */\n\"mTs-8c-pgj.title\" = \"窗口\";\n\n/* Class = \"NSButtonCell\"; title = \"Tab\"; ObjectID = \"nYS-rF-JCL\"; */\n\"nYS-rF-JCL.title\" = \"标签页\";\n\n/* Class = \"NSTextFieldCell\"; title = \"OpenInTerminal will automatically launch at login.\"; ObjectID = \"ngT-lX-vFA\"; */\n\"ngT-lX-vFA.title\" = \"启用后，OpenInTerminal 将会在登录时自动启动。\";\n\n/* Class = \"NSViewController\"; title = \"Toolbar\"; ObjectID = \"s5W-qL-1Xs\"; */\n\"s5W-qL-1Xs.title\" = \"自定义\";\n\n/* Class = \"NSButtonCell\"; title = \"Hide Context Menu Items\"; ObjectID = \"sG4-nK-ghj\"; */\n\"sG4-nK-ghj.title\" = \"隐藏上下文菜单项\";\n\n/* Class = \"NSButtonCell\"; title = \"Window\"; ObjectID = \"sik-wU-ZF2\"; */\n\"sik-wU-ZF2.title\" = \"窗口\";\n\n/* Class = \"NSButtonCell\"; title = \"@Ji4n1ng\"; ObjectID = \"tR5-me-DTK\"; */\n\"tR5-me-DTK.title\" = \"@Ji4n1ng\";\n\n/* Class = \"NSTextFieldCell\"; title = \"iTerm\"; ObjectID = \"yIW-2a-15A\"; */\n\"yIW-2a-15A.title\" = \"iTerm\";\n\n/* Class = \"NSButtonCell\"; title = \"Apply to Finder Toolbar Menu\"; ObjectID = \"2we-f7-s2N\"; */\n\"2we-f7-s2N.title\" = \"应用到访达工具栏菜单\";\n\n/* Class = \"NSButtonCell\"; title = \"Apply to Finder Context Menu\"; ObjectID = \"RhP-R5-Wwt\"; */\n\"RhP-R5-Wwt.title\" = \"应用到访达上下文菜单\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Custom Menu Options\"; ObjectID = \"nWc-SM-Kes\"; */\n\"nWc-SM-Kes.title\" = \"自定义菜单选项\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Icon Type:\"; ObjectID = \"CP0-Xv-uYl\"; */\n\"CP0-Xv-uYl.title\" = \"图标类型:\";\n\n/* Class = \"NSButtonCell\"; title = \"Cancel\"; ObjectID = \"Cp7-6g-ngj\"; */\n\"Cp7-6g-ngj.title\" = \"取消\";\n\n/* Class = \"NSButtonCell\"; title = \"Terminal\"; ObjectID = \"M3w-T0-vi7\"; */\n\"M3w-T0-vi7.title\" = \"终端\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Application Type:\"; ObjectID = \"UCM-Ds-LYN\"; */\n\"UCM-Ds-LYN.title\" = \"应用类型:\";\n\n/* Class = \"NSButtonCell\"; title = \"Editor\"; ObjectID = \"fb4-Xq-he0\"; */\n\"fb4-Xq-he0.title\" = \"编辑器\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Application Name:\"; ObjectID = \"h5X-oY-gqy\"; */\n\"h5X-oY-gqy.title\" = \"应用名称:\";\n\n/* Class = \"NSButtonCell\"; title = \"original\"; ObjectID = \"uok-iD-wXY\"; */\n\"uok-iD-wXY.title\" = \"原始\";\n\n/* Class = \"NSButtonCell\"; title = \"Confirm\"; ObjectID = \"wpb-Gv-KAp\"; */\n\"wpb-Gv-KAp.title\" = \"确认\";\n\n/* Class = \"NSButtonCell\"; title = \"no\"; ObjectID = \"x6U-9Q-ujh\"; */\n\"x6U-9Q-ujh.title\" = \"无\";\n\n/* Class = \"NSButtonCell\"; title = \"simple\"; ObjectID = \"yrq-LZ-XDr\"; */\n\"yrq-LZ-XDr.title\" = \"简单\";\n\n/* Class = \"NSTextFieldCell\"; title = \"Quit\"; ObjectID = \"FBK-9S-cZf\"; */\n\"FBK-9S-cZf.title\" = \"退出\";\n\n/* Class = \"NSButtonCell\"; title = \"Quit OpenInTerminal\"; ObjectID = \"ofD-rA-gib\"; */\n\"ofD-rA-gib.title\" = \"退出 OpenInTerminal\";\n\n"
  },
  {
    "path": "OpenInTerminal/ScriptGenerator.swift",
    "content": "//\n//  ScriptGenerator.swift\n//  OpenInTerminal\n//\n//  Created by Jianing Wang on 2019/10/15.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\nimport Foundation\nimport OpenInTerminalCore\n\n/// Install AppleScripts to $HOME/Library/Application Scripts/wang.jianing.app.OpenInTerminalFinderExtension\nfunc checkScripts() throws {\n    guard var scriptFolderPath = try? FileManager.default.url(for: .applicationScriptsDirectory, in: .userDomainMask, appropriateFor: nil, create: true) else {\n        throw OITMError.cannotAccessPath(\"$HOME/Library/Application Scripts/wang.jianing.app.OpenInTerminal\")\n    }\n    scriptFolderPath.deleteLastPathComponent()\n    let finderExScriptPath = scriptFolderPath.appendingPathComponent(Constants.Id.FinderExtension)\n    if !FileManager.default.fileExists(atPath: finderExScriptPath.path) {\n        try FileManager.default.createDirectory(atPath: finderExScriptPath.path,\n                                                withIntermediateDirectories: true,\n                                                attributes: nil)\n    }\n    \n    func writeScriptIfNeeded(at path: URL, with script: String) throws {\n        if FileManager.default.fileExists(atPath: path.path) {\n            // check if the existing file's content is the same as `script`\n            let existingScript = try String(contentsOf: path, encoding: String.Encoding.utf8)\n            if existingScript == script {\n                // don't need to write again\n                return\n            }\n        }\n        try script.write(to: path, atomically: true, encoding: String.Encoding.utf8)\n    }\n    \n    // write general script\n    let generalScriptName = ScriptManager.shared.getGeneralScriptName()\n    let generalScriptPath = finderExScriptPath\n        .appendingPathComponent(generalScriptName)\n        .appendingPathExtension(\"scpt\")\n    let generalScript = ScriptManager.shared.getGeneralScript()\n    try writeScriptIfNeeded(at: generalScriptPath, with: generalScript)\n    \n    // write terminal new tab script\n    let tabScriptName = ScriptManager.shared.getTerminalNewTabScriptName()\n    let tabScriptPath = finderExScriptPath\n        .appendingPathComponent(tabScriptName)\n        .appendingPathExtension(\"scpt\")\n    let tabScript = ScriptManager.shared.getTerminalNewTabAppleScript()\n    try writeScriptIfNeeded(at: tabScriptPath, with: tabScript)\n    \n}\n"
  },
  {
    "path": "OpenInTerminal/StatusMenuController.swift",
    "content": "//\n//  StatusMenuController.swift\n//  OpenInTerminal\n//\n//  Created by Jianing Wang on 2019/4/30.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\nimport Cocoa\nimport OpenInTerminalCore\nimport ShortcutRecorder\n\nclass StatusMenuController: NSObject, NSMenuDelegate {\n    \n    @IBOutlet weak var statusMenu: NSMenu!\n    @IBOutlet weak var defaultTerminalMenuItem: NSMenuItem!\n    @IBOutlet weak var defaultEditorMenuItem: NSMenuItem!\n    @IBOutlet weak var copyPathMenuItem: NSMenuItem!\n    @IBOutlet weak var preferencesMenuItem: NSMenuItem!\n    @IBOutlet weak var quitMenuItem: NSMenuItem!\n    \n    // MARK: Menu life cycle\n    \n    func setMenuItemTitle() {\n        var terminalTitle = \"\"\n        if let terminal = DefaultsManager.shared.defaultTerminal {\n            terminalTitle = NSLocalizedString(\"menu.open_in\", comment: \"Open in \") + terminal.name\n        } else {\n            terminalTitle = NSLocalizedString(\"menu.open_with_default_terminal\",\n                                              comment: \"Open with default Terminal\")\n        }\n        defaultTerminalMenuItem.title = terminalTitle\n        \n        var editorTitle = \"\"\n        if let editor = DefaultsManager.shared.defaultEditor {\n            editorTitle = NSLocalizedString(\"menu.open_in\", comment: \"Open in \") + editor.name\n        } else {\n            editorTitle = NSLocalizedString(\"menu.open_with_default_editor\",\n                                            comment: \"Open with default Editor\")\n        }\n        defaultEditorMenuItem.title = editorTitle\n    }\n    \n    override func awakeFromNib() {\n        Log.logger.directory = \"~/Library/Logs/OpenInTerminal\"\n        #if DEBUG\n        Log.logger.name = \"OpenInTerminal-debug\"\n        #else\n        Log.logger.name = \"OpenInTerminal\"\n        #endif\n        //Edit printToConsole parameter in Edit Scheme > Run > Arguments > Environment Variables\n        Log.logger.printToConsole = ProcessInfo.processInfo.environment[\"print_log\"] == \"true\"\n        \n        statusMenu.delegate = self\n        \n        copyPathMenuItem.title = NSLocalizedString(\"menu.copy_path_to_clipboard\", comment: \"Copy path to Clipboard\")\n        preferencesMenuItem.title = NSLocalizedString(\"menu.preferences\", comment: \"Preferences...\")\n        quitMenuItem.title = NSLocalizedString(\"menu.quit\", comment: \"Quit\")\n    }\n    \n    func menuWillOpen(_ menu: NSMenu) {\n        setMenuItemTitle()\n        let menuItems: [(NSMenuItem, String)] =\n            [(defaultTerminalMenuItem, Constants.Key.defaultTerminalShortcut),\n             (defaultEditorMenuItem, Constants.Key.defaultEditorShortcut),\n             (copyPathMenuItem, Constants.Key.copyPathShortcut)]\n        \n        menuItems.forEach { item, key in\n            assignKeyboardShortcutToMenuItem(item, userDefaultsKey: key)\n        }\n    }\n    \n    func assignKeyboardShortcutToMenuItem(_ menuItem: NSMenuItem, userDefaultsKey key: String) {\n        if let shortcutDict = Defaults.value(forKey: key),\n           let shortcut = Shortcut(dictionary: shortcutDict as! [AnyHashable : Any]) {\n            menuItem.keyEquivalentModifierMask = shortcut.modifierFlags\n            menuItem.keyEquivalent = shortcut.characters ?? \"\"\n        } else {\n            menuItem.keyEquivalentModifierMask = []\n            menuItem.keyEquivalent = \"\"\n        }\n    }\n    \n    // MARK: Menu Item Actions\n    \n    @IBAction func openDefaultTerminal(_ sender: NSMenuItem) {\n        (NSApplication.shared.delegate as? AppDelegate)?.openDefaultTerminal()\n    }\n    \n    @IBAction func openDefaultEditor(_ sender: NSMenuItem) {\n        (NSApplication.shared.delegate as? AppDelegate)?.openDefaultEditor()\n    }\n    \n    @IBAction func copyPathToClipboard(_ sender: NSMenuItem) {\n        (NSApplication.shared.delegate as? AppDelegate)?.copyPathToClipboard()\n    }\n    \n    @IBAction func showPreferences(_ sender: NSMenuItem) {\n        (NSApplication.shared.delegate as? AppDelegate)?.showPreferencesWindow()\n    }\n    \n    @IBAction func quit(_ sender: NSMenuItem) {\n        LaunchNotifier.postNotification(.terminateApp, object: Bundle.main.bundleIdentifier!)\n        NSApp.terminate(self)\n    }\n    \n}\n"
  },
  {
    "path": "OpenInTerminal/de.lproj/Localizable.strings",
    "content": "/*\n  Localizable.strings\n  OpenInTerminal\n\n  Created by Jianing Wang on 2019/4/22.\n  Copyright © 2019 Jianing Wang. All rights reserved.\n*/\n\n\"general.ok\" = \"Okay\";\n\"general.cancel\" = \"Abbrechen\";\n\"general.yes\" = \"Ja\";\n\n\"menu.open_in\" = \"Öffnen mit \";\n\"menu.open_with_default_terminal\" = \"Im Terminal öffnen\";\n\"menu.open_with_default_editor\" = \"Im Editor öffnen\";\n\"menu.copy_path_to_clipboard\" = \"Pfad kopieren\";\n\"menu.new_file\" = \"Neue Datei\";\n\n\"menu.preferences\" = \"Einstellungen...\";\n\"menu.quit\" = \"Beenden\";\n\n\"pref.toolbar.not_installed\" = \"Nicht installiert\";\n\n\"alert.pick_terminal_title\" = \"Öffnen mit?\";\n\"alert.pick_terminal_description\" = \"Bitte wählen Sie eines der folgenden Terminals als Standard zum Öffnen.\";\n\n\"alert.pick_editor_title\" = \"Öffnen mit?\";\n\"alert.pick_editor_description\" = \"Bitte wählen Sie eines der folgenden Editoren als Standard zum Öffnen.\";\n\n\"alert.reset_preferences_title\" = \"Benutzereinstellungen zurücksetzen?\";\n\"alert.reset_preferences_description\" = \"⚠️ Beachten Sie, dass dadurch alle Benutzereinstellungen zurückgesetzt werden\";\n\n\"toolbar.item_name\" = \"Im Terminal öffnen\";\n\"toolbar.item_tooltip\" = \"Aktuellen Ordner im Terminal öffnen.\";\n\n\"pref.custom.menu.installed_supported\" = \"Installierte unterstützte Programme\";\n\"pref.custom.menu.all_supported\" = \"Alle unterstützten Programme\";\n\"pref.custom.menu.running_apps\" = \"Laufende Programme\";\n\"pref.custom.menu.manually_select\" = \"Manuell vom Finder auswählen\";\n\"pref.custom.menu.manually_input\" = \"Manuelle Eingabe\";\n\n\n"
  },
  {
    "path": "OpenInTerminal/en.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  OpenInTerminal\n\n  Created by Jianing Wang on 2019/4/22.\n  Copyright © 2019 Jianing Wang. All rights reserved.\n*/\n\n\"general.ok\" = \"OK\";\n\"general.cancel\" = \"Cancel\";\n\"general.yes\" = \"Yes\";\n\n\"menu.open_in\" = \"Open in \";\n\"menu.open_with_default_terminal\" = \"Open in Terminal\";\n\"menu.open_with_default_editor\" = \"Open in Editor\";\n\"menu.copy_path_to_clipboard\" = \"Copy path\";\n\"menu.new_file\" = \"New file\";\n\n\"menu.preferences\" = \"Preferences...\";\n\"menu.quit\" = \"Quit\";\n\n\"pref.toolbar.not_installed\" = \"Not Installed\";\n\n\"alert.pick_terminal_title\" = \"Open In?\";\n\"alert.pick_terminal_description\" = \"Please select one of the following terminals as the default terminal to open.\";\n\n\"alert.pick_editor_title\" = \"Open In?\";\n\"alert.pick_editor_description\" = \"Please select one of the following editors as the default editor to open.\";\n\n\"alert.reset_preferences_title\" = \"Reset User Preferences?\";\n\"alert.reset_preferences_description\" = \"⚠️ Note that this will reset all user preferences\";\n\n\"toolbar.item_name\" = \"Open in Terminal\";\n\"toolbar.item_tooltip\" = \"Open current directory in Terminal.\";\n\n\"pref.custom.menu.installed_supported\" = \"Installed Supported Apps\";\n\"pref.custom.menu.all_supported\" = \"All Supported Apps\";\n\"pref.custom.menu.running_apps\" = \"Running Apps\";\n\"pref.custom.menu.manually_select\" = \"Manually Select From Finder\";\n\"pref.custom.menu.manually_input\" = \"Manually Input\";\n\n\n"
  },
  {
    "path": "OpenInTerminal/es.lproj/Localizable.strings",
    "content": "/*\n  Localizable.strings\n  OpenInTerminal\n\n  Created by Jianing Wang on 2019/4/22.\n  Copyright © 2019 Jianing Wang. All rights reserved.\n*/\n\n\"general.ok\" = \"OK\";\n\"general.cancel\" = \"Cancelar\";\n\"general.yes\" = \"Sí\";\n\n\"menu.open_in\" = \"Abrir en \";\n\"menu.open_with_default_terminal\" = \"Abrir en Terminal\";\n\"menu.open_with_default_editor\" = \"Abrir en Editor\";\n\"menu.copy_path_to_clipboard\" = \"Copiar ruta\";\n\"menu.new_file\" = \"Nuevo archivo\";\n\n\"menu.preferences\" = \"Preferencias...\";\n\"menu.quit\" = \"Salir\";\n\n\"pref.toolbar.not_installed\" = \"No instalado\";\n\n\"alert.pick_terminal_title\" = \"Abrir en?\";\n\"alert.pick_terminal_description\" = \"Seleccione una de las siguientes terminales como terminal predeterminado.\";\n\n\"alert.pick_editor_title\" = \"Abrir en?\";\n\"alert.pick_editor_description\" = \"Seleccione uno de los siguientes editores como editor predeterminado.\";\n\n\"alert.reset_preferences_title\" = \"Restablecer preferencias de usuario?\";\n\"alert.reset_preferences_description\" = \"⚠️ Esto restablecerá todas las preferencias del usuario\";\n\n\"toolbar.item_name\" = \"Abrir en Terminal\";\n\"toolbar.item_tooltip\" = \"Abrir el directorio actual en la Terminal.\";\n"
  },
  {
    "path": "OpenInTerminal/fr.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  OpenInTerminal\n\n  Created by Jianing Wang on 2019/4/22.\n  Copyright © 2019 Jianing Wang. All rights reserved.\n*/\n\n\"general.ok\" = \"OK\";\n\"general.cancel\" = \"Annuler\";\n\"general.yes\" = \"Oui\";\n\n\"menu.open_in\" = \"Ouvrir dans \";\n\"menu.open_with_default_terminal\" = \"Ouvrir dans le terminal\";\n\"menu.open_with_default_editor\" = \"Ouvrir dans l'éditeur\";\n\"menu.copy_path_to_clipboard\" = \"Copier le chemin d’accès\";\n\"menu.new_file\" = \"Nouveau fichier\";\n\n\"menu.preferences\" = \"Préférences...\";\n\"menu.quit\" = \"Quitter\";\n\n\"pref.toolbar.not_installed\" = \"Pas installé\";\n\n\"alert.pick_terminal_title\" = \"Ouvrir avec?\";\n\"alert.pick_terminal_description\" = \"Veuillez sélectionner l’un de ses terminaux ci-dessous pour être utilisé comme terminal par défaut.\";\n\n\"alert.pick_editor_title\" = \"Ouvrir avec?\";\n\"alert.pick_editor_description\" = \"Veuillez sélectionner l’un de ses éditeurs ci-dessous pour être utilisé comme éditeur par défaut.\";\n\n\"alert.reset_preferences_title\" = \"Réinitialiser les préférences l’utilisateur?\";\n\"alert.reset_preferences_description\" = \"⚠️ Notez que cela réinitialisera toutes les préférences de l'utilisateur\";\n\n\"toolbar.item_name\" = \"Ouvrir dans le terminal\";\n\"toolbar.item_tooltip\" = \"Ouvrir le dossier actuel dans le terminal\";\n"
  },
  {
    "path": "OpenInTerminal/it.lproj/Localizable.strings",
    "content": "/*\n  Localizable.strings\n  OpenInTerminal\n\n  Created by arendruni on 2020/4/8.\n  Copyright © 2020 arendruni. All rights reserved.\n*/\n\n\"general.ok\" = \"OK\";\n\"general.cancel\" = \"Annulla\";\n\"general.yes\" = \"Sì\";\n\n\"menu.open_in\" = \"Apri in \";\n\"menu.open_with_default_terminal\" = \"Apri in Terminale\";\n\"menu.open_with_default_editor\" = \"Apri nell'Editor\";\n\"menu.copy_path_to_clipboard\" = \"Copia percorso\";\n\"menu.new_file\" = \"Nuovo file\";\n\n\"menu.preferences\" = \"Preferenze...\";\n\"menu.quit\" = \"Esci\";\n\n\"pref.toolbar.not_installed\" = \"Non Installato\";\n\n\"alert.pick_terminal_title\" = \"Apri con?\";\n\"alert.pick_terminal_description\" = \"Seleziona uno dei seguenti terminali per impostarlo come terminale default.\";\n\n\"alert.pick_editor_title\" = \"Apri con?\";\n\"alert.pick_editor_description\" = \"Seleziona uno dei seguenti editor per impostarlo come editor di default.\";\n\n\"alert.reset_preferences_title\" = \"Ripristinare le Preferenze utente?\";\n\"alert.reset_preferences_description\" = \"⚠️ Tutte le Preferenze utente saranno ripristinate\";\n\n\"toolbar.item_name\" = \"Apri in Terminale\";\n\"toolbar.item_tooltip\" = \"Apri la cartella corrente in Terminale.\";\n"
  },
  {
    "path": "OpenInTerminal/ko.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  OpenInTerminal\n\n  Created by Jianing Wang on 2019/4/22.\n  Copyright © 2019 Jianing Wang. All rights reserved.\n*/\n\n\"general.ok\" = \"확인\";\n\"general.cancel\" = \"취소\";\n\"general.yes\" = \"승인\";\n\n\"menu.open_in\" = \"다음으로 열기: \";\n\"menu.open_with_default_terminal\" = \"터미널에서 열기\";\n\"menu.open_with_default_editor\" = \"에디터에서 열기\";\n\"menu.copy_path_to_clipboard\" = \"위치 복사하기\";\n\"menu.new_file\" = \"새 파일\";\n\n\"menu.preferences\" = \"설정...\";\n\"menu.quit\" = \"종료\";\n\n\"pref.toolbar.not_installed\" = \"설치되지 않음\";\n\n\"alert.pick_terminal_title\" = \"어디서 열까요?\";\n\"alert.pick_terminal_description\" = \"다음 터미널 중 기본 터미널로 사용할 하나를 선택해주세요.\";\n\n\"alert.pick_editor_title\" = \"어디서 열까요?\";\n\"alert.pick_editor_description\" = \"다음 에디터들 중 기본 에디터로 사용할 하나를 선택해주세요.\";\n\n\"alert.reset_preferences_title\" = \"사용자 설정을 초기화할까요?\";\n\"alert.reset_preferences_description\" = \"⚠️ 모든 사용자 설정이 초기화됩니다.\";\n\n\"toolbar.item_name\" = \"터미널에서 열기\";\n\"toolbar.item_tooltip\" = \"현재 디렉토리를 터미널에서 엽니다.\";\n\n\"pref.custom.menu.installed_supported\" = \"설치된 지원되는 앱\";\n\"pref.custom.menu.all_supported\" = \"모든 지원되는 앱\";\n\"pref.custom.menu.running_apps\" = \"실행중인 앱\";\n\"pref.custom.menu.manually_select\" = \"Finder에서 수동으로 선택\";\n\"pref.custom.menu.manually_input\" = \"수동으로 입력\";\n\n\n"
  },
  {
    "path": "OpenInTerminal/ru.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  OpenInTerminal\n\n  Created by Egor Lazarev on 2020/1/30.\n  Copyright © 2019 Egor Lazarev. All rights reserved.\n*/\n\n\"general.ok\" = \"OK\";\n\"general.cancel\" = \"Отменить\";\n\"general.yes\" = \"Да\";\n\n\"menu.open_in\" = \"Открыть в \";\n\"menu.open_with_default_terminal\" = \"Открыть через Терминал\";\n\"menu.open_with_default_editor\" = \"Открыть в редакторе\";\n\"menu.copy_path_to_clipboard\" = \"Скопировать путь\";\n\"menu.new_file\" = \"Новый файл\";\n\n\"menu.preferences\" = \"Настройки...\";\n\"menu.quit\" = \"Выйти\";\n\n\"pref.toolbar.not_installed\" = \"Не установлено\";\n\n\"alert.pick_terminal_title\" = \"Открыть в?\";\n\"alert.pick_terminal_description\" = \"Пожалуйста, выберите один из доступных терминалов для установки по-умолчанию.\";\n\n\"alert.pick_editor_title\" = \"Открыть в?\";\n\"alert.pick_editor_description\" = \"Пожалуйста, выберите один из доступных редакторов для установки по-умолчанию.\";\n\n\"alert.reset_preferences_title\" = \"Сбросить пользовательские настройки?\";\n\"alert.reset_preferences_description\" = \"⚠️ Все пользовательские настройки будут сброшены\";\n\n\"toolbar.item_name\" = \"Открыть через Терминал\";\n\"toolbar.item_tooltip\" = \"Открыть текущую директорию через Терминал.\";\n"
  },
  {
    "path": "OpenInTerminal/tr.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  OpenInTerminal\n\n  Created by Jianing Wang on 2019/4/22.\n  Copyright © 2019 Jianing Wang. All rights reserved.\n*/\n\n\"general.ok\" = \"Tamam\";\n\"general.cancel\" = \"İptal\";\n\"general.yes\" = \"Evet\";\n\n\"menu.open_in\" = \"Şununla Aç: \";\n\"menu.open_with_default_terminal\" = \"Terminal ile aç\";\n\"menu.open_with_default_editor\" = \"Düzenleyici ile aç\";\n\"menu.copy_path_to_clipboard\" = \"Yolu kopyala\";\n\"menu.new_file\" = \"Yeni dosya\";\n\n\"menu.preferences\" = \"Tercihler...\";\n\"menu.quit\" = \"Çık\";\n\n\"pref.toolbar.not_installed\" = \"Yüklü Değil\";\n\n\"alert.pick_terminal_title\" = \"Şununla Aç?\";\n\"alert.pick_terminal_description\" = \"Lütfen belirtilen terminallerden birini varsayılan olarak ayarlamak için seçin.\";\n\n\"alert.pick_editor_title\" = \"Şununla Aç?\";\n\"alert.pick_editor_description\" = \"Lütfen belirtilen düzenleyicilerden birini varsayılan olarak ayarlamak için seçin.\";\n\n\"alert.reset_preferences_title\" = \"Kullanıcı Tercihlerini Sıfırla?\";\n\"alert.reset_preferences_description\" = \"⚠️  Bu bütün kullanıcı tercihlerini sıfırlayacaktır.\";\n\n\"toolbar.item_name\" = \"Terminal ile aç\";\n\"toolbar.item_tooltip\" = \"Konumu terminal ile aç.\";\n\n\"pref.custom.menu.installed_supported\" = \"Yüklünmiş Desteklenen Uygulamalar\";\n\"pref.custom.menu.all_supported\" = \"Bütün Desteklenen Uygulamalar\";\n\"pref.custom.menu.running_apps\" = \"Çalışan Uygulamalar\";\n\"pref.custom.menu.manually_select\" = \"Elle Finder üzerinden seç\";\n\"pref.custom.menu.manually_input\" = \"Elle Giriş\";\n\n\n"
  },
  {
    "path": "OpenInTerminal/zh-Hans.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  OpenInTerminal\n\n  Created by Jianing Wang on 2019/4/22.\n  Copyright © 2019 Jianing Wang. All rights reserved.\n*/\n\n\"general.ok\" = \"好\";\n\"general.cancel\" = \"取消\";\n\"general.yes\" = \"是的\";\n\n\"menu.open_in\" = \"打开 \";\n\"menu.open_with_default_terminal\" = \"打开终端\";\n\"menu.open_with_default_editor\" = \"打开编辑器\";\n\"menu.copy_path_to_clipboard\" = \"拷贝路径\";\n\"menu.new_file\" = \"新建文件\";\n\n\"menu.preferences\" = \"偏好设置...\";\n\"menu.quit\" = \"退出\";\n\n\"pref.toolbar.not_installed\" = \"未安装\";\n\n\"alert.pick_terminal_title\" = \"打开?\";\n\"alert.pick_terminal_description\" = \"请在下面的终端中选择一个作为默认终端。\";\n\n\"alert.pick_editor_title\" = \"打开?\";\n\"alert.pick_editor_description\" = \"请在下面的编辑器中选择一个作为默认编辑器。\";\n\n\"alert.reset_preferences_title\" = \"重置用户偏好设置?\";\n\"alert.reset_preferences_description\" = \"⚠️ 注意这将会重置所有用户偏好设置\";\n\n\"toolbar.item_name\" = \"Open in Terminal\";\n\"toolbar.item_tooltip\" = \"打开当前路径到终端\";\n\n\"pref.custom.menu.installed_supported\" = \"已安装的受支持的应用\";\n\"pref.custom.menu.all_supported\" = \"所有受支持的应用\";\n\"pref.custom.menu.running_apps\" = \"正在运行的应用\";\n\"pref.custom.menu.manually_select\" = \"从访达中手动选择\";\n\"pref.custom.menu.manually_input\" = \"手动输入\";\n"
  },
  {
    "path": "OpenInTerminal-Lite/OpenInTerminal-Lite/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"icon_terminal_light_16.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\",\n      \"size\" : \"16x16\"\n    },\n    {\n      \"filename\" : \"icon_terminal_light_32.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\",\n      \"size\" : \"16x16\"\n    },\n    {\n      \"filename\" : \"icon_terminal_light_32-1.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\",\n      \"size\" : \"32x32\"\n    },\n    {\n      \"filename\" : \"icon_terminal_light_32@2x.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\",\n      \"size\" : \"32x32\"\n    },\n    {\n      \"filename\" : \"icon_terminal_light_128.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\",\n      \"size\" : \"128x128\"\n    },\n    {\n      \"filename\" : \"icon_terminal_light_128@2x.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\",\n      \"size\" : \"128x128\"\n    },\n    {\n      \"filename\" : \"icon_terminal_light_256.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\",\n      \"size\" : \"256x256\"\n    },\n    {\n      \"filename\" : \"icon_terminal_light_512.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\",\n      \"size\" : \"256x256\"\n    },\n    {\n      \"filename\" : \"icon_terminal_light_512-1.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\",\n      \"size\" : \"512x512\"\n    },\n    {\n      \"filename\" : \"icon_terminal_light_512@2x.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\",\n      \"size\" : \"512x512\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal-Lite/OpenInTerminal-Lite/Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminal-Lite/OpenInTerminal-Lite/Error.swift",
    "content": "//\n//  Error.swift\n//  OpenInTerminal-Lite\n//\n//  Created by Jianing Wang on 2019/4/21.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\nimport Foundation\n\nenum OITLError: Error {\n    \n    case cannotGetTerminal\n    \n}\n\nextension OITLError : CustomStringConvertible {\n    \n    var description: String {\n        \n        switch self {\n            \n        case .cannotGetTerminal:\n            return \"There is no default terminal. And user did not pick a terminal\"\n        }\n    }\n}\n"
  },
  {
    "path": "OpenInTerminal-Lite/OpenInTerminal-Lite/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>$(DEVELOPMENT_LANGUAGE)</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIconFile</key>\n\t<string></string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>$(MARKETING_VERSION)</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSApplicationCategoryType</key>\n\t<string>public.app-category.utilities</string>\n\t<key>LSMinimumSystemVersion</key>\n\t<string>$(MACOSX_DEPLOYMENT_TARGET)</string>\n\t<key>LSUIElement</key>\n\t<true/>\n\t<key>NSAppleEventsUsageDescription</key>\n\t<string>Please give permissions to access your Finder &amp; Terminal</string>\n\t<key>NSHumanReadableCopyright</key>\n\t<string>Copyright © 2019 Jianing Wang. All rights reserved.</string>\n\t<key>NSPrincipalClass</key>\n\t<string>NSApplication</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "OpenInTerminal-Lite/OpenInTerminal-Lite/OpenInTerminal-Lite.entitlements",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>com.apple.security.automation.apple-events</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "OpenInTerminal-Lite/OpenInTerminal-Lite/OpenInTerminal_Lite.entitlements",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>com.apple.security.temporary-exception.apple-events</key>\n\t<array>\n\t\t<string>com.apple.systemevents</string>\n\t\t<string>com.apple.Terminal</string>\n\t\t<string>com.apple.Finder</string>\n\t\t<string>com.googlecode.iterm2</string>\n\t\t<string>co.zeit.hyper</string>\n\t\t<string>io.alacritty</string>\n\t\t<string>com.github.wez.wezterm</string>\n\t\t<string>org.tabby</string>\n\t\t<string>com.microsoft.VSCode</string>\n\t\t<string>com.github.atom</string>\n\t\t<string>com.sublimetext.3</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "OpenInTerminal-Lite/OpenInTerminal-Lite/de.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  OpenInTerminal-Lite\n\n  Created by Jianing Wang on 2019/5/16.\n  Copyright © 2019 Jianing Wang. All rights reserved.\n*/\n\n\"general.ok\" = \"Okay\";\n\"general.cancel\" = \"Abbrechen\";\n\"general.yes\" = \"Ja\";\n\n\"alert.pick_terminal_title\" = \"Öffnen mit?\";\n\"alert.pick_terminal_description\" = \"Bitte wählen Sie eines der folgenden Terminals als Standard zum Öffnen.\";\n"
  },
  {
    "path": "OpenInTerminal-Lite/OpenInTerminal-Lite/en.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  OpenInTerminal-Lite\n\n  Created by Jianing Wang on 2019/5/16.\n  Copyright © 2019 Jianing Wang. All rights reserved.\n*/\n\n\"general.ok\" = \"OK\";\n\"general.cancel\" = \"Cancel\";\n\"general.yes\" = \"Yes\";\n\n\"alert.pick_terminal_title\" = \"Open In?\";\n\"alert.pick_terminal_description\" = \"Please select one of the following terminals as the default terminal to open.\";\n"
  },
  {
    "path": "OpenInTerminal-Lite/OpenInTerminal-Lite/es.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  OpenInTerminal-Lite\n\n  Created by Jianing Wang on 2019/5/16.\n  Copyright © 2019 Jianing Wang. All rights reserved.\n*/\n\n\"general.ok\" = \"OK\";\n\"general.cancel\" = \"Cancelar\";\n\"general.yes\" = \"Sí\";\n\n\"alert.pick_terminal_title\" = \"Abrir en?\";\n\"alert.pick_terminal_description\" = \"Seleccione uno de los siguientes terminales como terminal predeterminado.\";\n"
  },
  {
    "path": "OpenInTerminal-Lite/OpenInTerminal-Lite/fr.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  OpenInTerminal-Lite\n\n  Created by Jianing Wang on 2019/5/16.\n  Copyright © 2019 Jianing Wang. All rights reserved.\n*/\n\n\"general.ok\" = \"OK\";\n\"general.cancel\" = \"Annuler\";\n\"general.yes\" = \"Oui\";\n\n\"alert.pick_terminal_title\" = \"Ouvrir avec?\";\n\"alert.pick_terminal_description\" = \"Veuillez sélectionner l’un de ses terminaux ci-dessous pour être utilisé comme terminal par défaut.\";\n"
  },
  {
    "path": "OpenInTerminal-Lite/OpenInTerminal-Lite/it.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  OpenInTerminal-Lite\n\n  Created by arendruni on 2020/4/9.\n  Copyright © 2020 arendruni. All rights reserved.\n*/\n\n\"general.ok\" = \"OK\";\n\"general.cancel\" = \"Annulla\";\n\"general.yes\" = \"Sì\";\n\n\"alert.pick_terminal_title\" = \"Apri con?\";\n\"alert.pick_terminal_description\" = \"Seleziona uno dei seguenti terminali per impostarlo come terminale default.\";\n"
  },
  {
    "path": "OpenInTerminal-Lite/OpenInTerminal-Lite/ko.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  OpenInTerminal-Lite\n\n  Created by Fernando on 2019/11/23.\n  Copyright © 2019 Fernando. All rights reserved.\n*/\n\n\"general.ok\" = \"확인\";\n\"general.cancel\" = \"닫기\";\n\"general.yes\" = \"네\";\n\n\"alert.pick_terminal_title\" = \"여시겠습니까?\";\n\"alert.pick_terminal_description\" = \"다음 리스트에서 기본이 될 터미널 프로그램을 선택해주세요.\";\n"
  },
  {
    "path": "OpenInTerminal-Lite/OpenInTerminal-Lite/main.swift",
    "content": "//\n//  main.swift\n//  OpenInTerminal-Lite\n//\n//  Created by Jianing Wang on 2019/4/19.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\nimport Foundation\nimport OpenInTerminalCore\n\ndo {\n    \n    if let terminalName = DefaultsManager.shared.liteDefaultTerminal {\n        let terminal = App(name: terminalName, type: .terminal)\n        try terminal.openOutsideSandbox()\n    } else {\n        guard let selectedTerminal = AppManager.shared.pickTerminalAlert() else {\n            throw OITLError.cannotGetTerminal\n        }\n        DefaultsManager.shared.liteDefaultTerminal = selectedTerminal.name\n        try selectedTerminal.openOutsideSandbox()\n    }\n    \n} catch {\n    logw(error.localizedDescription)\n}\n"
  },
  {
    "path": "OpenInTerminal-Lite/OpenInTerminal-Lite/ru.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  OpenInTerminal-Lite\n\n  Created by Jianing Wang on 2019/5/16.\n  Copyright © 2019 Jianing Wang. All rights reserved.\n*/\n\n\"general.ok\" = \"OK\";\n\"general.cancel\" = \"Отменить\";\n\"general.yes\" = \"Да\";\n\n\"alert.pick_terminal_title\" = \"Открыть в?\";\n\"alert.pick_terminal_description\" = \"Пожалуйста, выберите один из доступных терминалов для установки по-умолчанию.\";\n"
  },
  {
    "path": "OpenInTerminal-Lite/OpenInTerminal-Lite/tr.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  OpenInTerminal-Lite\n\n  Created by Jianing Wang on 2019/5/16.\n  Copyright © 2019 Jianing Wang. All rights reserved.\n*/\n\n\"general.ok\" = \"Tamam\";\n\"general.cancel\" = \"İptal\";\n\"general.yes\" = \"Evet\";\n\n\"alert.pick_terminal_title\" = \"Şununla Aç?\";\n\"alert.pick_terminal_description\" = \"Lütfen gösterilen terimnallerden birini varsayılan terminal olarak seçin.\";\n"
  },
  {
    "path": "OpenInTerminal-Lite/OpenInTerminal-Lite/zh-Hans.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  OpenInTerminal-Lite\n\n  Created by Jianing Wang on 2019/5/16.\n  Copyright © 2019 Jianing Wang. All rights reserved.\n*/\n\n\"general.ok\" = \"好\";\n\"general.cancel\" = \"取消\";\n\"general.yes\" = \"是的\";\n\n\"alert.pick_terminal_title\" = \"打开?\";\n\"alert.pick_terminal_description\" = \"请在下面的终端中选择一个作为默认终端。\";\n"
  },
  {
    "path": "OpenInTerminal-Lite/OpenInTerminal-Lite.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 50;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t95163CE62269F0C3007C006F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 95163CE52269F0C3007C006F /* Assets.xcassets */; };\n\t\t95163CF22269F104007C006F /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95163CF12269F104007C006F /* main.swift */; };\n\t\t95163CF42269F209007C006F /* OpenInTerminalCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95163CF32269F209007C006F /* OpenInTerminalCore.framework */; };\n\t\t95163CF52269F209007C006F /* OpenInTerminalCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 95163CF32269F209007C006F /* OpenInTerminalCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };\n\t\t9590B69D226C715100362B93 /* Error.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9590B69C226C715100362B93 /* Error.swift */; };\n\t\t95ECC130228CF99F00416AA2 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 95ECC132228CF99F00416AA2 /* Localizable.strings */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXCopyFilesBuildPhase section */\n\t\t95163CF62269F209007C006F /* Embed Frameworks */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = \"\";\n\t\t\tdstSubfolderSpec = 10;\n\t\t\tfiles = (\n\t\t\t\t95163CF52269F209007C006F /* OpenInTerminalCore.framework in Embed Frameworks */,\n\t\t\t);\n\t\t\tname = \"Embed Frameworks\";\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXCopyFilesBuildPhase section */\n\n/* Begin PBXFileReference section */\n\t\t2594E99727EF381A00AF84D5 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t82AE667723896ADB00F4DB4D /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t95163CE02269F0C2007C006F /* OpenInTerminal-Lite.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = \"OpenInTerminal-Lite.app\"; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t95163CE52269F0C3007C006F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\t95163CEA2269F0C3007C006F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\t95163CEB2269F0C3007C006F /* OpenInTerminal_Lite.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = OpenInTerminal_Lite.entitlements; sourceTree = \"<group>\"; };\n\t\t95163CF12269F104007C006F /* main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = \"<group>\"; };\n\t\t95163CF32269F209007C006F /* OpenInTerminalCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = OpenInTerminalCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t9561BB4224C1F2FB001DE0A9 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t9590B69C226C715100362B93 /* Error.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Error.swift; sourceTree = \"<group>\"; };\n\t\t9595D2A123BAD74D006CBB36 /* OpenInTerminal-Lite.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = \"OpenInTerminal-Lite.entitlements\"; sourceTree = \"<group>\"; };\n\t\t95B0613F27AFACA9009C2B4E /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t95ECC131228CF99F00416AA2 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t95ECC133228CF9A100416AA2 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"zh-Hans\"; path = \"zh-Hans.lproj/Localizable.strings\"; sourceTree = \"<group>\"; };\n\t\t95ECC134228CF9A200416AA2 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tC3135D9D243F4CD3003323CF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tE197D59B23E299B900C5A893 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t95163CDD2269F0C2007C006F /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t95163CF42269F209007C006F /* OpenInTerminalCore.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t95163CD72269F0C2007C006F = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t95163CF32269F209007C006F /* OpenInTerminalCore.framework */,\n\t\t\t\t95163CE22269F0C2007C006F /* OpenInTerminal-Lite */,\n\t\t\t\t95163CE12269F0C2007C006F /* Products */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t95163CE12269F0C2007C006F /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t95163CE02269F0C2007C006F /* OpenInTerminal-Lite.app */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t95163CE22269F0C2007C006F /* OpenInTerminal-Lite */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t9595D2A123BAD74D006CBB36 /* OpenInTerminal-Lite.entitlements */,\n\t\t\t\t95163CF12269F104007C006F /* main.swift */,\n\t\t\t\t9590B69C226C715100362B93 /* Error.swift */,\n\t\t\t\t95163CE52269F0C3007C006F /* Assets.xcassets */,\n\t\t\t\t95163CEA2269F0C3007C006F /* Info.plist */,\n\t\t\t\t95163CEB2269F0C3007C006F /* OpenInTerminal_Lite.entitlements */,\n\t\t\t\t95ECC132228CF99F00416AA2 /* Localizable.strings */,\n\t\t\t);\n\t\t\tpath = \"OpenInTerminal-Lite\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\t95163CDF2269F0C2007C006F /* OpenInTerminal-Lite */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 95163CEE2269F0C3007C006F /* Build configuration list for PBXNativeTarget \"OpenInTerminal-Lite\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t95163CDC2269F0C2007C006F /* Sources */,\n\t\t\t\t95163CDD2269F0C2007C006F /* Frameworks */,\n\t\t\t\t95163CDE2269F0C2007C006F /* Resources */,\n\t\t\t\t95163CF62269F209007C006F /* Embed Frameworks */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = \"OpenInTerminal-Lite\";\n\t\t\tproductName = \"OpenInTerminal-Lite\";\n\t\t\tproductReference = 95163CE02269F0C2007C006F /* OpenInTerminal-Lite.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\t95163CD82269F0C2007C006F /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastSwiftUpdateCheck = 1020;\n\t\t\t\tLastUpgradeCheck = 1330;\n\t\t\t\tORGANIZATIONNAME = \"Jianing Wang\";\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\t95163CDF2269F0C2007C006F = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 10.2.1;\n\t\t\t\t\t\tLastSwiftMigration = 1020;\n\t\t\t\t\t\tSystemCapabilities = {\n\t\t\t\t\t\t\tcom.apple.Sandbox = {\n\t\t\t\t\t\t\t\tenabled = 0;\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t};\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = 95163CDB2269F0C2007C006F /* Build configuration list for PBXProject \"OpenInTerminal-Lite\" */;\n\t\t\tcompatibilityVersion = \"Xcode 9.3\";\n\t\t\tdevelopmentRegion = en;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t\tBase,\n\t\t\t\t\"zh-Hans\",\n\t\t\t\tfr,\n\t\t\t\tko,\n\t\t\t\tru,\n\t\t\t\tit,\n\t\t\t\tes,\n\t\t\t\ttr,\n\t\t\t\tde,\n\t\t\t);\n\t\t\tmainGroup = 95163CD72269F0C2007C006F;\n\t\t\tproductRefGroup = 95163CE12269F0C2007C006F /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t95163CDF2269F0C2007C006F /* OpenInTerminal-Lite */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t95163CDE2269F0C2007C006F /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t95163CE62269F0C3007C006F /* Assets.xcassets in Resources */,\n\t\t\t\t95ECC130228CF99F00416AA2 /* Localizable.strings in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t95163CDC2269F0C2007C006F /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t9590B69D226C715100362B93 /* Error.swift in Sources */,\n\t\t\t\t95163CF22269F104007C006F /* main.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXVariantGroup section */\n\t\t95ECC132228CF99F00416AA2 /* Localizable.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t95ECC131228CF99F00416AA2 /* en */,\n\t\t\t\t95ECC133228CF9A100416AA2 /* zh-Hans */,\n\t\t\t\t95ECC134228CF9A200416AA2 /* fr */,\n\t\t\t\t82AE667723896ADB00F4DB4D /* ko */,\n\t\t\t\tE197D59B23E299B900C5A893 /* ru */,\n\t\t\t\tC3135D9D243F4CD3003323CF /* it */,\n\t\t\t\t9561BB4224C1F2FB001DE0A9 /* es */,\n\t\t\t\t95B0613F27AFACA9009C2B4E /* tr */,\n\t\t\t\t2594E99727EF381A00AF84D5 /* de */,\n\t\t\t);\n\t\t\tname = Localizable.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\t95163CEC2269F0C3007C006F /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.9;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t95163CED2269F0C3007C006F /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.9;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t95163CEF2269F0C3007C006F /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCODE_SIGN_ENTITLEMENTS = \"OpenInTerminal-Lite/OpenInTerminal-Lite.entitlements\";\n\t\t\t\tCODE_SIGN_IDENTITY = \"Apple Development\";\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDEVELOPMENT_TEAM = Q33U8R4U57;\n\t\t\t\tENABLE_HARDENED_RUNTIME = YES;\n\t\t\t\tINFOPLIST_FILE = \"OpenInTerminal-Lite/Info.plist\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/../Frameworks\",\n\t\t\t\t);\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.13;\n\t\t\t\tMARKETING_VERSION = 1.2.7;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"wang.jianing.app.OpenInTerminal-Lite\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t95163CF02269F0C3007C006F /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCODE_SIGN_ENTITLEMENTS = \"OpenInTerminal-Lite/OpenInTerminal-Lite.entitlements\";\n\t\t\t\tCODE_SIGN_IDENTITY = \"Apple Development\";\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDEVELOPMENT_TEAM = Q33U8R4U57;\n\t\t\t\tENABLE_HARDENED_RUNTIME = YES;\n\t\t\t\tINFOPLIST_FILE = \"OpenInTerminal-Lite/Info.plist\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/../Frameworks\",\n\t\t\t\t);\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.13;\n\t\t\t\tMARKETING_VERSION = 1.2.7;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"wang.jianing.app.OpenInTerminal-Lite\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t95163CDB2269F0C2007C006F /* Build configuration list for PBXProject \"OpenInTerminal-Lite\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t95163CEC2269F0C3007C006F /* Debug */,\n\t\t\t\t95163CED2269F0C3007C006F /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t95163CEE2269F0C3007C006F /* Build configuration list for PBXNativeTarget \"OpenInTerminal-Lite\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t95163CEF2269F0C3007C006F /* Debug */,\n\t\t\t\t95163CF02269F0C3007C006F /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = 95163CD82269F0C2007C006F /* Project object */;\n}\n"
  },
  {
    "path": "OpenInTerminal-Lite/OpenInTerminal-Lite.xcodeproj/xcshareddata/xcschemes/OpenInTerminal-Lite.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1330\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"95163CDF2269F0C2007C006F\"\n               BuildableName = \"OpenInTerminal-Lite.app\"\n               BlueprintName = \"OpenInTerminal-Lite\"\n               ReferencedContainer = \"container:OpenInTerminal-Lite.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"95163CDF2269F0C2007C006F\"\n            BuildableName = \"OpenInTerminal-Lite.app\"\n            BlueprintName = \"OpenInTerminal-Lite\"\n            ReferencedContainer = \"container:OpenInTerminal-Lite.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <Testables>\n      </Testables>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"95163CDF2269F0C2007C006F\"\n            BuildableName = \"OpenInTerminal-Lite.app\"\n            BlueprintName = \"OpenInTerminal-Lite\"\n            ReferencedContainer = \"container:OpenInTerminal-Lite.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"95163CDF2269F0C2007C006F\"\n            BuildableName = \"OpenInTerminal-Lite.app\"\n            BlueprintName = \"OpenInTerminal-Lite\"\n            ReferencedContainer = \"container:OpenInTerminal-Lite.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "OpenInTerminal.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 60;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t4725251522680E87003C50DF /* OpenInTerminalCore.h in Headers */ = {isa = PBXBuildFile; fileRef = 4725251322680E87003C50DF /* OpenInTerminalCore.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\t4725253122680EF3003C50DF /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4725253022680EF3003C50DF /* Constants.swift */; };\n\t\t4725253522680EFD003C50DF /* FinderManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4725253422680EFD003C50DF /* FinderManager.swift */; };\n\t\t4725254022680F5A003C50DF /* Terminal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4725253E22680F5A003C50DF /* Terminal.swift */; };\n\t\t4725254122680F5A003C50DF /* Finder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4725253F22680F5A003C50DF /* Finder.swift */; };\n\t\t4725254422680F7C003C50DF /* Log.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4725254222680F7C003C50DF /* Log.swift */; };\n\t\t472525592268100F003C50DF /* FinderAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 472525572268100F003C50DF /* FinderAssets.xcassets */; };\n\t\t4725255A2268100F003C50DF /* FinderSync.swift in Sources */ = {isa = PBXBuildFile; fileRef = 472525582268100F003C50DF /* FinderSync.swift */; };\n\t\t4725256222681098003C50DF /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4725256122681098003C50DF /* AppDelegate.swift */; };\n\t\t472525812268112F003C50DF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4725257E2268112F003C50DF /* Assets.xcassets */; };\n\t\t47252586226812AB003C50DF /* OpenInTerminalCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4725251122680E87003C50DF /* OpenInTerminalCore.framework */; };\n\t\t47252587226812AB003C50DF /* OpenInTerminalCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4725251122680E87003C50DF /* OpenInTerminalCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };\n\t\t4725258A226812AB003C50DF /* OpenInTerminalFinderExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 4725254A22680FEB003C50DF /* OpenInTerminalFinderExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };\n\t\t9511D8AC22749582008E52B9 /* LaunchNotifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9511D8AB22749582008E52B9 /* LaunchNotifier.swift */; };\n\t\t95163CD22269979E007C006F /* Notifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95163CD12269979E007C006F /* Notifier.swift */; };\n\t\t95163CD4226998ED007C006F /* OpenNotifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95163CD3226998ED007C006F /* OpenNotifier.swift */; };\n\t\t95163CD52269A09D007C006F /* Notifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95163CD12269979E007C006F /* Notifier.swift */; };\n\t\t95187380227DEF89000CCB3A /* OpenNotifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95163CD3226998ED007C006F /* OpenNotifier.swift */; };\n\t\t9518738C227DF492000CCB3A /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9518738B227DF492000CCB3A /* AppDelegate.swift */; };\n\t\t95187390227DF493000CCB3A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9518738F227DF493000CCB3A /* Assets.xcassets */; };\n\t\t95187393227DF493000CCB3A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 95187391227DF493000CCB3A /* Main.storyboard */; };\n\t\t95187399227DF563000CCB3A /* Notifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95163CD12269979E007C006F /* Notifier.swift */; };\n\t\t9518739A227DF565000CCB3A /* LaunchNotifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9511D8AB22749582008E52B9 /* LaunchNotifier.swift */; };\n\t\t9518739C227DF655000CCB3A /* OpenInTerminalHelper.app in CopyFiles */ = {isa = PBXBuildFile; fileRef = 95187389227DF492000CCB3A /* OpenInTerminalHelper.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };\n\t\t951A3EBD2278A6F700E8DB61 /* StatusMenuController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 951A3EBC2278A6F700E8DB61 /* StatusMenuController.swift */; };\n\t\t951A3EBF2278A70F00E8DB61 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 951A3EBE2278A70F00E8DB61 /* MainMenu.xib */; };\n\t\t9521EDCC226B475E008445D1 /* PreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9521EDCB226B475E008445D1 /* PreferencesViewController.swift */; };\n\t\t9521EDD0226B4BE6008445D1 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9521EDCF226B4BE6008445D1 /* Constants.swift */; };\n\t\t95294CE625B0270700CC995D /* CustomInputViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95294CE525B0270700CC995D /* CustomInputViewController.swift */; };\n\t\t95294CEB25B3252900CC995D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4725257E2268112F003C50DF /* Assets.xcassets */; };\n\t\t95294CFD25B3293F00CC995D /* Icons.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 95294CFC25B3293F00CC995D /* Icons.xcassets */; };\n\t\t95294CFE25B3293F00CC995D /* Icons.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 95294CFC25B3293F00CC995D /* Icons.xcassets */; };\n\t\t95294D0825B3E17900CC995D /* Icons.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 95294CFC25B3293F00CC995D /* Icons.xcassets */; };\n\t\t954D67CF235570D5007702D0 /* Error.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954D67CE235570D5007702D0 /* Error.swift */; };\n\t\t954D67D12355AD36007702D0 /* ScriptGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954D67D02355AD36007702D0 /* ScriptGenerator.swift */; };\n\t\t954D67D22355F80E007702D0 /* OpenInTerminalCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4725251122680E87003C50DF /* OpenInTerminalCore.framework */; };\n\t\t954D67D32355F80E007702D0 /* OpenInTerminalCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4725251122680E87003C50DF /* OpenInTerminalCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };\n\t\t955A93BF2D1C31C7001C7A45 /* Preferences.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 955A93BE2D1C31C7001C7A45 /* Preferences.storyboard */; };\n\t\t955A93C02D1C31C7001C7A45 /* Preferences.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 955A93BE2D1C31C7001C7A45 /* Preferences.storyboard */; };\n\t\t955C01322D3C3C6E003AF605 /* ServiceManagement.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9557D3D42274A78C00CE34FA /* ServiceManagement.framework */; };\n\t\t955C01352D3C3C9A003AF605 /* ShortcutRecorder in Frameworks */ = {isa = PBXBuildFile; productRef = 955C01342D3C3C9A003AF605 /* ShortcutRecorder */; };\n\t\t9571DA84227E6FFF0076AA64 /* AdvancedPreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9571DA83227E6FFF0076AA64 /* AdvancedPreferencesViewController.swift */; };\n\t\t9584EAB82CF06A500080F94F /* PathExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9584EAB72CF06A500080F94F /* PathExtensions.swift */; };\n\t\t9584EDF2226DEF79003C7EE8 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 9584EDF4226DEF79003C7EE8 /* Localizable.strings */; };\n\t\t9590B68E226C04E000362B93 /* Defaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9590B68D226C04E000362B93 /* Defaults.swift */; };\n\t\t9590B69F226CBC0000362B93 /* GeneralPreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9590B69E226CBC0000362B93 /* GeneralPreferencesViewController.swift */; };\n\t\t9590B6A1226CBC1D00362B93 /* CustomPreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9590B6A0226CBC1D00362B93 /* CustomPreferencesViewController.swift */; };\n\t\t9592D637258CB9210031CA30 /* AppManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9592D636258CB9210031CA30 /* AppManager.swift */; };\n\t\t95BAA1822279E28D005E1DAC /* AboutPreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95BAA1812279E28D005E1DAC /* AboutPreferencesViewController.swift */; };\n\t\t95C6C340227AA1CB00F157C4 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 9584EDF4226DEF79003C7EE8 /* Localizable.strings */; };\n\t\t95C6C341227AA1D000F157C4 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 9584EDF4226DEF79003C7EE8 /* Localizable.strings */; };\n\t\t95C7C2EE257B7D63004C8355 /* App.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95C7C2ED257B7D63004C8355 /* App.swift */; };\n\t\t95C7C2F2257B7E1E004C8355 /* SupportedApps.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95C7C2F1257B7E1E004C8355 /* SupportedApps.swift */; };\n\t\t95CE277E257E470F0053D76A /* ScriptManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95CE277D257E470F0053D76A /* ScriptManager.swift */; };\n\t\t95CE2789257F2F3A0053D76A /* Error.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95CE2788257F2F3A0053D76A /* Error.swift */; };\n\t\t95DD6296243B211B003550B3 /* ArrayExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95DD6295243B211B003550B3 /* ArrayExtensions.swift */; };\n\t\t95DFC1242354A2C300941D3A /* DefaultsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95DFC1232354A2C300941D3A /* DefaultsManager.swift */; };\n\t\t95F5BED5227734E800D505A0 /* PreferencesWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95F5BED4227734E800D505A0 /* PreferencesWindowController.swift */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\t47252588226812AB003C50DF /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = 956C38A9225F7701001CB769 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 4725251022680E87003C50DF;\n\t\t\tremoteInfo = OpenInTerminalCore;\n\t\t};\n\t\t4725258B226812AB003C50DF /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = 956C38A9225F7701001CB769 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 4725254922680FEB003C50DF;\n\t\t\tremoteInfo = OpenInTerminalFinderExtension;\n\t\t};\n\t\t954D67D42355F80E007702D0 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = 956C38A9225F7701001CB769 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 4725251022680E87003C50DF;\n\t\t\tremoteInfo = OpenInTerminalCore;\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXCopyFilesBuildPhase section */\n\t\t4725258D226812AB003C50DF /* Embed Frameworks */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = \"\";\n\t\t\tdstSubfolderSpec = 10;\n\t\t\tfiles = (\n\t\t\t\t47252587226812AB003C50DF /* OpenInTerminalCore.framework in Embed Frameworks */,\n\t\t\t);\n\t\t\tname = \"Embed Frameworks\";\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t4725258E226812AB003C50DF /* Embed App Extensions */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = \"\";\n\t\t\tdstSubfolderSpec = 13;\n\t\t\tfiles = (\n\t\t\t\t4725258A226812AB003C50DF /* OpenInTerminalFinderExtension.appex in Embed App Extensions */,\n\t\t\t);\n\t\t\tname = \"Embed App Extensions\";\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t9511D8B32274A25A008E52B9 /* CopyFiles */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 8;\n\t\t\tdstPath = Contents/Library/LoginItems;\n\t\t\tdstSubfolderSpec = 1;\n\t\t\tfiles = (\n\t\t\t\t9518739C227DF655000CCB3A /* OpenInTerminalHelper.app in CopyFiles */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 1;\n\t\t};\n\t\t954D67D62355F80E007702D0 /* Embed Frameworks */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = \"\";\n\t\t\tdstSubfolderSpec = 10;\n\t\t\tfiles = (\n\t\t\t\t954D67D32355F80E007702D0 /* OpenInTerminalCore.framework in Embed Frameworks */,\n\t\t\t);\n\t\t\tname = \"Embed Frameworks\";\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXCopyFilesBuildPhase section */\n\n/* Begin PBXFileReference section */\n\t\t2594E99B27EF523300AF84D5 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t4725251122680E87003C50DF /* OpenInTerminalCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OpenInTerminalCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t4725251322680E87003C50DF /* OpenInTerminalCore.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OpenInTerminalCore.h; sourceTree = \"<group>\"; };\n\t\t4725251422680E87003C50DF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\t4725253022680EF3003C50DF /* Constants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = \"<group>\"; };\n\t\t4725253422680EFD003C50DF /* FinderManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FinderManager.swift; sourceTree = \"<group>\"; };\n\t\t4725253E22680F5A003C50DF /* Terminal.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Terminal.swift; sourceTree = \"<group>\"; };\n\t\t4725253F22680F5A003C50DF /* Finder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Finder.swift; sourceTree = \"<group>\"; };\n\t\t4725254222680F7C003C50DF /* Log.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Log.swift; sourceTree = \"<group>\"; };\n\t\t4725254322680F7C003C50DF /* Error.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Error.swift; sourceTree = \"<group>\"; };\n\t\t4725254A22680FEB003C50DF /* OpenInTerminalFinderExtension.appex */ = {isa = PBXFileReference; explicitFileType = \"wrapper.app-extension\"; includeInIndex = 0; path = OpenInTerminalFinderExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t4725254E22680FEB003C50DF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\t4725254F22680FEB003C50DF /* OpenInTerminalFinderExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = OpenInTerminalFinderExtension.entitlements; sourceTree = \"<group>\"; };\n\t\t472525572268100F003C50DF /* FinderAssets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = FinderAssets.xcassets; sourceTree = \"<group>\"; };\n\t\t472525582268100F003C50DF /* FinderSync.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FinderSync.swift; sourceTree = \"<group>\"; };\n\t\t4725255F22681098003C50DF /* OpenInTerminal.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OpenInTerminal.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t4725256122681098003C50DF /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = \"<group>\"; };\n\t\t4725257D2268112F003C50DF /* OpenInTerminal.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = OpenInTerminal.entitlements; sourceTree = \"<group>\"; };\n\t\t4725257E2268112F003C50DF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\t4725257F2268112F003C50DF /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\t9511D8AB22749582008E52B9 /* LaunchNotifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LaunchNotifier.swift; sourceTree = \"<group>\"; };\n\t\t95163CD12269979E007C006F /* Notifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Notifier.swift; sourceTree = \"<group>\"; };\n\t\t95163CD3226998ED007C006F /* OpenNotifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenNotifier.swift; sourceTree = \"<group>\"; };\n\t\t95187389227DF492000CCB3A /* OpenInTerminalHelper.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OpenInTerminalHelper.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t9518738B227DF492000CCB3A /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = \"<group>\"; };\n\t\t9518738F227DF493000CCB3A /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\t95187392227DF493000CCB3A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = \"<group>\"; };\n\t\t95187394227DF493000CCB3A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\t95187395227DF493000CCB3A /* OpenInTerminalHelper.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = OpenInTerminalHelper.entitlements; sourceTree = \"<group>\"; };\n\t\t951A3EBC2278A6F700E8DB61 /* StatusMenuController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusMenuController.swift; sourceTree = \"<group>\"; };\n\t\t951A3EBE2278A70F00E8DB61 /* MainMenu.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainMenu.xib; sourceTree = \"<group>\"; };\n\t\t9521EDCB226B475E008445D1 /* PreferencesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferencesViewController.swift; sourceTree = \"<group>\"; };\n\t\t9521EDCF226B4BE6008445D1 /* Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = \"<group>\"; };\n\t\t95294CE525B0270700CC995D /* CustomInputViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomInputViewController.swift; sourceTree = \"<group>\"; };\n\t\t95294CFC25B3293F00CC995D /* Icons.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Icons.xcassets; sourceTree = \"<group>\"; };\n\t\t954D67CE235570D5007702D0 /* Error.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Error.swift; sourceTree = \"<group>\"; };\n\t\t954D67D02355AD36007702D0 /* ScriptGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScriptGenerator.swift; sourceTree = \"<group>\"; };\n\t\t9557D3D42274A78C00CE34FA /* ServiceManagement.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ServiceManagement.framework; path = System/Library/Frameworks/ServiceManagement.framework; sourceTree = SDKROOT; };\n\t\t955A93BD2D1C31C7001C7A45 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Preferences.storyboard; sourceTree = \"<group>\"; };\n\t\t955A93C12D1C31C7001C7A45 /* mul */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; name = mul; path = mul.lproj/Preferences.xcstrings; sourceTree = \"<group>\"; };\n\t\t9571DA83227E6FFF0076AA64 /* AdvancedPreferencesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdvancedPreferencesViewController.swift; sourceTree = \"<group>\"; };\n\t\t9584EAB72CF06A500080F94F /* PathExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PathExtensions.swift; sourceTree = \"<group>\"; };\n\t\t9584EDF3226DEF79003C7EE8 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t9584EDF5226DEFC0003C7EE8 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"zh-Hans\"; path = \"zh-Hans.lproj/Localizable.strings\"; sourceTree = \"<group>\"; };\n\t\t9590B68D226C04E000362B93 /* Defaults.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Defaults.swift; sourceTree = \"<group>\"; };\n\t\t9590B69E226CBC0000362B93 /* GeneralPreferencesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralPreferencesViewController.swift; sourceTree = \"<group>\"; };\n\t\t9590B6A0226CBC1D00362B93 /* CustomPreferencesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomPreferencesViewController.swift; sourceTree = \"<group>\"; };\n\t\t9592D636258CB9210031CA30 /* AppManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppManager.swift; sourceTree = \"<group>\"; };\n\t\t95B0613E27AFABD5009C2B4E /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t95BAA1812279E28D005E1DAC /* AboutPreferencesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutPreferencesViewController.swift; sourceTree = \"<group>\"; };\n\t\t95C7C2ED257B7D63004C8355 /* App.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = App.swift; sourceTree = \"<group>\"; };\n\t\t95C7C2F1257B7E1E004C8355 /* SupportedApps.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SupportedApps.swift; sourceTree = \"<group>\"; };\n\t\t95CE277D257E470F0053D76A /* ScriptManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScriptManager.swift; sourceTree = \"<group>\"; };\n\t\t95CE2788257F2F3A0053D76A /* Error.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Error.swift; sourceTree = \"<group>\"; };\n\t\t95DD6295243B211B003550B3 /* ArrayExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArrayExtensions.swift; sourceTree = \"<group>\"; };\n\t\t95DFC1232354A2C300941D3A /* DefaultsManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DefaultsManager.swift; sourceTree = \"<group>\"; };\n\t\t95F5BED4227734E800D505A0 /* PreferencesWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferencesWindowController.swift; sourceTree = \"<group>\"; };\n\t\t95FC9243228BAAD600F51DF2 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tC1FB06722493518B004AF7B7 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tC3ACD4D0243E0FEF00462517 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tCE8306A1283D111D00C32E36 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tE197D59A23E2973800C5A893 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t4725250E22680E87003C50DF /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t4725254722680FEB003C50DF /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t954D67D22355F80E007702D0 /* OpenInTerminalCore.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t4725255C22681098003C50DF /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t47252586226812AB003C50DF /* OpenInTerminalCore.framework in Frameworks */,\n\t\t\t\t955C01352D3C3C9A003AF605 /* ShortcutRecorder in Frameworks */,\n\t\t\t\t955C01322D3C3C6E003AF605 /* ServiceManagement.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t95187386227DF492000CCB3A /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t4725251222680E87003C50DF /* OpenInTerminalCore */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t4725253022680EF3003C50DF /* Constants.swift */,\n\t\t\t\t9590B68D226C04E000362B93 /* Defaults.swift */,\n\t\t\t\t95DFC1232354A2C300941D3A /* DefaultsManager.swift */,\n\t\t\t\t95CE2788257F2F3A0053D76A /* Error.swift */,\n\t\t\t\t4725254222680F7C003C50DF /* Log.swift */,\n\t\t\t\t4725253422680EFD003C50DF /* FinderManager.swift */,\n\t\t\t\t95C7C2ED257B7D63004C8355 /* App.swift */,\n\t\t\t\t9592D636258CB9210031CA30 /* AppManager.swift */,\n\t\t\t\t95C7C2F1257B7E1E004C8355 /* SupportedApps.swift */,\n\t\t\t\t95CE277D257E470F0053D76A /* ScriptManager.swift */,\n\t\t\t\t4725253622680F07003C50DF /* ScriptingBridge */,\n\t\t\t\t95DD6294243B2102003550B3 /* Extensions */,\n\t\t\t\t4725251322680E87003C50DF /* OpenInTerminalCore.h */,\n\t\t\t\t4725251422680E87003C50DF /* Info.plist */,\n\t\t\t);\n\t\t\tpath = OpenInTerminalCore;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t4725253622680F07003C50DF /* ScriptingBridge */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t4725253F22680F5A003C50DF /* Finder.swift */,\n\t\t\t\t4725253E22680F5A003C50DF /* Terminal.swift */,\n\t\t\t);\n\t\t\tpath = ScriptingBridge;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t4725254B22680FEB003C50DF /* OpenInTerminalFinderExtension */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t472525572268100F003C50DF /* FinderAssets.xcassets */,\n\t\t\t\t472525582268100F003C50DF /* FinderSync.swift */,\n\t\t\t\t4725254E22680FEB003C50DF /* Info.plist */,\n\t\t\t\t4725254F22680FEB003C50DF /* OpenInTerminalFinderExtension.entitlements */,\n\t\t\t);\n\t\t\tpath = OpenInTerminalFinderExtension;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t4725256022681098003C50DF /* OpenInTerminal */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t4725256122681098003C50DF /* AppDelegate.swift */,\n\t\t\t\t954D67CE235570D5007702D0 /* Error.swift */,\n\t\t\t\t9521EDCF226B4BE6008445D1 /* Constants.swift */,\n\t\t\t\t951A3EBE2278A70F00E8DB61 /* MainMenu.xib */,\n\t\t\t\t951A3EBC2278A6F700E8DB61 /* StatusMenuController.swift */,\n\t\t\t\t954D67D02355AD36007702D0 /* ScriptGenerator.swift */,\n\t\t\t\t9521EDD1226B4BEF008445D1 /* Notifier */,\n\t\t\t\t9521EDC8226B3F41008445D1 /* PreferencesWindow */,\n\t\t\t\t9511D8AA22748FD6008E52B9 /* Assets */,\n\t\t\t);\n\t\t\tpath = OpenInTerminal;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t4725258F22681424003C50DF /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t4725254322680F7C003C50DF /* Error.swift */,\n\t\t\t\t9557D3D42274A78C00CE34FA /* ServiceManagement.framework */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9511D8AA22748FD6008E52B9 /* Assets */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t4725257E2268112F003C50DF /* Assets.xcassets */,\n\t\t\t\t95294CFC25B3293F00CC995D /* Icons.xcassets */,\n\t\t\t\t4725257F2268112F003C50DF /* Info.plist */,\n\t\t\t\t4725257D2268112F003C50DF /* OpenInTerminal.entitlements */,\n\t\t\t\t9584EDF4226DEF79003C7EE8 /* Localizable.strings */,\n\t\t\t);\n\t\t\tname = Assets;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9518738A227DF492000CCB3A /* OpenInTerminalHelper */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t9518738B227DF492000CCB3A /* AppDelegate.swift */,\n\t\t\t\t9518738F227DF493000CCB3A /* Assets.xcassets */,\n\t\t\t\t95187391227DF493000CCB3A /* Main.storyboard */,\n\t\t\t\t95187394227DF493000CCB3A /* Info.plist */,\n\t\t\t\t95187395227DF493000CCB3A /* OpenInTerminalHelper.entitlements */,\n\t\t\t);\n\t\t\tpath = OpenInTerminalHelper;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9521EDC8226B3F41008445D1 /* PreferencesWindow */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t955A93BE2D1C31C7001C7A45 /* Preferences.storyboard */,\n\t\t\t\t95F5BED4227734E800D505A0 /* PreferencesWindowController.swift */,\n\t\t\t\t9521EDCB226B475E008445D1 /* PreferencesViewController.swift */,\n\t\t\t\t9590B69E226CBC0000362B93 /* GeneralPreferencesViewController.swift */,\n\t\t\t\t9590B6A0226CBC1D00362B93 /* CustomPreferencesViewController.swift */,\n\t\t\t\t95294CE525B0270700CC995D /* CustomInputViewController.swift */,\n\t\t\t\t9571DA83227E6FFF0076AA64 /* AdvancedPreferencesViewController.swift */,\n\t\t\t\t95BAA1812279E28D005E1DAC /* AboutPreferencesViewController.swift */,\n\t\t\t);\n\t\t\tpath = PreferencesWindow;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9521EDD1226B4BEF008445D1 /* Notifier */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t95163CD12269979E007C006F /* Notifier.swift */,\n\t\t\t\t95163CD3226998ED007C006F /* OpenNotifier.swift */,\n\t\t\t\t9511D8AB22749582008E52B9 /* LaunchNotifier.swift */,\n\t\t\t);\n\t\t\tpath = Notifier;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t956C38A8225F7701001CB769 = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t4725256022681098003C50DF /* OpenInTerminal */,\n\t\t\t\t4725251222680E87003C50DF /* OpenInTerminalCore */,\n\t\t\t\t4725254B22680FEB003C50DF /* OpenInTerminalFinderExtension */,\n\t\t\t\t9518738A227DF492000CCB3A /* OpenInTerminalHelper */,\n\t\t\t\t956C38B2225F7701001CB769 /* Products */,\n\t\t\t\t4725258F22681424003C50DF /* Frameworks */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t956C38B2225F7701001CB769 /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t4725251122680E87003C50DF /* OpenInTerminalCore.framework */,\n\t\t\t\t4725254A22680FEB003C50DF /* OpenInTerminalFinderExtension.appex */,\n\t\t\t\t4725255F22681098003C50DF /* OpenInTerminal.app */,\n\t\t\t\t95187389227DF492000CCB3A /* OpenInTerminalHelper.app */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t95DD6294243B2102003550B3 /* Extensions */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t95DD6295243B211B003550B3 /* ArrayExtensions.swift */,\n\t\t\t\t9584EAB72CF06A500080F94F /* PathExtensions.swift */,\n\t\t\t);\n\t\t\tpath = Extensions;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXHeadersBuildPhase section */\n\t\t4725250C22680E87003C50DF /* Headers */ = {\n\t\t\tisa = PBXHeadersBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t4725251522680E87003C50DF /* OpenInTerminalCore.h in Headers */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXHeadersBuildPhase section */\n\n/* Begin PBXNativeTarget section */\n\t\t4725251022680E87003C50DF /* OpenInTerminalCore */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 4725251A22680E87003C50DF /* Build configuration list for PBXNativeTarget \"OpenInTerminalCore\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t4725250C22680E87003C50DF /* Headers */,\n\t\t\t\t4725250D22680E87003C50DF /* Sources */,\n\t\t\t\t4725250E22680E87003C50DF /* Frameworks */,\n\t\t\t\t4725250F22680E87003C50DF /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = OpenInTerminalCore;\n\t\t\tproductName = OpenInTerminalCore;\n\t\t\tproductReference = 4725251122680E87003C50DF /* OpenInTerminalCore.framework */;\n\t\t\tproductType = \"com.apple.product-type.framework\";\n\t\t};\n\t\t4725254922680FEB003C50DF /* OpenInTerminalFinderExtension */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 4725255322680FEB003C50DF /* Build configuration list for PBXNativeTarget \"OpenInTerminalFinderExtension\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t4725254622680FEB003C50DF /* Sources */,\n\t\t\t\t4725254722680FEB003C50DF /* Frameworks */,\n\t\t\t\t4725254822680FEB003C50DF /* Resources */,\n\t\t\t\t954D67D62355F80E007702D0 /* Embed Frameworks */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\t954D67D52355F80E007702D0 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = OpenInTerminalFinderExtension;\n\t\t\tproductName = OpenInTerminalFinderExtension;\n\t\t\tproductReference = 4725254A22680FEB003C50DF /* OpenInTerminalFinderExtension.appex */;\n\t\t\tproductType = \"com.apple.product-type.app-extension\";\n\t\t};\n\t\t4725255E22681098003C50DF /* OpenInTerminal */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 4725257722681099003C50DF /* Build configuration list for PBXNativeTarget \"OpenInTerminal\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t4725255B22681098003C50DF /* Sources */,\n\t\t\t\t4725255C22681098003C50DF /* Frameworks */,\n\t\t\t\t4725255D22681098003C50DF /* Resources */,\n\t\t\t\t4725258D226812AB003C50DF /* Embed Frameworks */,\n\t\t\t\t4725258E226812AB003C50DF /* Embed App Extensions */,\n\t\t\t\t9511D8B32274A25A008E52B9 /* CopyFiles */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\t47252589226812AB003C50DF /* PBXTargetDependency */,\n\t\t\t\t4725258C226812AB003C50DF /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = OpenInTerminal;\n\t\t\tproductName = OpenInTerminal;\n\t\t\tproductReference = 4725255F22681098003C50DF /* OpenInTerminal.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n\t\t95187388227DF492000CCB3A /* OpenInTerminalHelper */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 95187398227DF493000CCB3A /* Build configuration list for PBXNativeTarget \"OpenInTerminalHelper\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t95187385227DF492000CCB3A /* Sources */,\n\t\t\t\t95187386227DF492000CCB3A /* Frameworks */,\n\t\t\t\t95187387227DF492000CCB3A /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = OpenInTerminalHelper;\n\t\t\tproductName = OpenInTerminalHelper;\n\t\t\tproductReference = 95187389227DF492000CCB3A /* OpenInTerminalHelper.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\t956C38A9225F7701001CB769 /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastSwiftUpdateCheck = 1020;\n\t\t\t\tLastUpgradeCheck = 1220;\n\t\t\t\tORGANIZATIONNAME = \"Jianing Wang\";\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\t4725251022680E87003C50DF = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 10.2;\n\t\t\t\t\t\tLastSwiftMigration = 1020;\n\t\t\t\t\t};\n\t\t\t\t\t4725254922680FEB003C50DF = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 10.2;\n\t\t\t\t\t\tLastSwiftMigration = 1020;\n\t\t\t\t\t\tSystemCapabilities = {\n\t\t\t\t\t\t\tcom.apple.ApplicationGroups.Mac = {\n\t\t\t\t\t\t\t\tenabled = 1;\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t};\n\t\t\t\t\t};\n\t\t\t\t\t4725255E22681098003C50DF = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 10.2;\n\t\t\t\t\t\tSystemCapabilities = {\n\t\t\t\t\t\t\tcom.apple.ApplicationGroups.Mac = {\n\t\t\t\t\t\t\t\tenabled = 1;\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tcom.apple.Sandbox = {\n\t\t\t\t\t\t\t\tenabled = 0;\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t};\n\t\t\t\t\t};\n\t\t\t\t\t95187388227DF492000CCB3A = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 10.2.1;\n\t\t\t\t\t\tSystemCapabilities = {\n\t\t\t\t\t\t\tcom.apple.ApplicationGroups.Mac = {\n\t\t\t\t\t\t\t\tenabled = 0;\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t};\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = 956C38AC225F7701001CB769 /* Build configuration list for PBXProject \"OpenInTerminal\" */;\n\t\t\tcompatibilityVersion = \"Xcode 9.3\";\n\t\t\tdevelopmentRegion = en;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t\tBase,\n\t\t\t\t\"zh-Hans\",\n\t\t\t\tfr,\n\t\t\t\tru,\n\t\t\t\tit,\n\t\t\t\tes,\n\t\t\t\ttr,\n\t\t\t\tde,\n\t\t\t\tko,\n\t\t\t);\n\t\t\tmainGroup = 956C38A8225F7701001CB769;\n\t\t\tpackageReferences = (\n\t\t\t\t955C01332D3C3C87003AF605 /* XCRemoteSwiftPackageReference \"ShortcutRecorder\" */,\n\t\t\t);\n\t\t\tproductRefGroup = 956C38B2225F7701001CB769 /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t4725255E22681098003C50DF /* OpenInTerminal */,\n\t\t\t\t4725251022680E87003C50DF /* OpenInTerminalCore */,\n\t\t\t\t4725254922680FEB003C50DF /* OpenInTerminalFinderExtension */,\n\t\t\t\t95187388227DF492000CCB3A /* OpenInTerminalHelper */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t4725250F22680E87003C50DF /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t95294D0825B3E17900CC995D /* Icons.xcassets in Resources */,\n\t\t\t\t95C6C340227AA1CB00F157C4 /* Localizable.strings in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t4725254822680FEB003C50DF /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t955A93C02D1C31C7001C7A45 /* Preferences.storyboard in Resources */,\n\t\t\t\t472525592268100F003C50DF /* FinderAssets.xcassets in Resources */,\n\t\t\t\t95294CEB25B3252900CC995D /* Assets.xcassets in Resources */,\n\t\t\t\t95C6C341227AA1D000F157C4 /* Localizable.strings in Resources */,\n\t\t\t\t95294CFE25B3293F00CC995D /* Icons.xcassets in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t4725255D22681098003C50DF /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t955A93BF2D1C31C7001C7A45 /* Preferences.storyboard in Resources */,\n\t\t\t\t951A3EBF2278A70F00E8DB61 /* MainMenu.xib in Resources */,\n\t\t\t\t9584EDF2226DEF79003C7EE8 /* Localizable.strings in Resources */,\n\t\t\t\t472525812268112F003C50DF /* Assets.xcassets in Resources */,\n\t\t\t\t95294CFD25B3293F00CC995D /* Icons.xcassets in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t95187387227DF492000CCB3A /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t95187390227DF493000CCB3A /* Assets.xcassets in Resources */,\n\t\t\t\t95187393227DF493000CCB3A /* Main.storyboard in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t4725250D22680E87003C50DF /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t95CE277E257E470F0053D76A /* ScriptManager.swift in Sources */,\n\t\t\t\t4725254422680F7C003C50DF /* Log.swift in Sources */,\n\t\t\t\t4725253522680EFD003C50DF /* FinderManager.swift in Sources */,\n\t\t\t\t95C7C2EE257B7D63004C8355 /* App.swift in Sources */,\n\t\t\t\t9584EAB82CF06A500080F94F /* PathExtensions.swift in Sources */,\n\t\t\t\t95CE2789257F2F3A0053D76A /* Error.swift in Sources */,\n\t\t\t\t4725253122680EF3003C50DF /* Constants.swift in Sources */,\n\t\t\t\t9592D637258CB9210031CA30 /* AppManager.swift in Sources */,\n\t\t\t\t4725254022680F5A003C50DF /* Terminal.swift in Sources */,\n\t\t\t\t95DD6296243B211B003550B3 /* ArrayExtensions.swift in Sources */,\n\t\t\t\t9590B68E226C04E000362B93 /* Defaults.swift in Sources */,\n\t\t\t\t95DFC1242354A2C300941D3A /* DefaultsManager.swift in Sources */,\n\t\t\t\t95C7C2F2257B7E1E004C8355 /* SupportedApps.swift in Sources */,\n\t\t\t\t4725254122680F5A003C50DF /* Finder.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t4725254622680FEB003C50DF /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t95187380227DEF89000CCB3A /* OpenNotifier.swift in Sources */,\n\t\t\t\t4725255A2268100F003C50DF /* FinderSync.swift in Sources */,\n\t\t\t\t95163CD52269A09D007C006F /* Notifier.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t4725255B22681098003C50DF /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t9590B69F226CBC0000362B93 /* GeneralPreferencesViewController.swift in Sources */,\n\t\t\t\t4725256222681098003C50DF /* AppDelegate.swift in Sources */,\n\t\t\t\t951A3EBD2278A6F700E8DB61 /* StatusMenuController.swift in Sources */,\n\t\t\t\t95294CE625B0270700CC995D /* CustomInputViewController.swift in Sources */,\n\t\t\t\t954D67CF235570D5007702D0 /* Error.swift in Sources */,\n\t\t\t\t95BAA1822279E28D005E1DAC /* AboutPreferencesViewController.swift in Sources */,\n\t\t\t\t9511D8AC22749582008E52B9 /* LaunchNotifier.swift in Sources */,\n\t\t\t\t954D67D12355AD36007702D0 /* ScriptGenerator.swift in Sources */,\n\t\t\t\t9571DA84227E6FFF0076AA64 /* AdvancedPreferencesViewController.swift in Sources */,\n\t\t\t\t95163CD22269979E007C006F /* Notifier.swift in Sources */,\n\t\t\t\t95163CD4226998ED007C006F /* OpenNotifier.swift in Sources */,\n\t\t\t\t9521EDCC226B475E008445D1 /* PreferencesViewController.swift in Sources */,\n\t\t\t\t95F5BED5227734E800D505A0 /* PreferencesWindowController.swift in Sources */,\n\t\t\t\t9521EDD0226B4BE6008445D1 /* Constants.swift in Sources */,\n\t\t\t\t9590B6A1226CBC1D00362B93 /* CustomPreferencesViewController.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t95187385227DF492000CCB3A /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t9518738C227DF492000CCB3A /* AppDelegate.swift in Sources */,\n\t\t\t\t9518739A227DF565000CCB3A /* LaunchNotifier.swift in Sources */,\n\t\t\t\t95187399227DF563000CCB3A /* Notifier.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXTargetDependency section */\n\t\t47252589226812AB003C50DF /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 4725251022680E87003C50DF /* OpenInTerminalCore */;\n\t\t\ttargetProxy = 47252588226812AB003C50DF /* PBXContainerItemProxy */;\n\t\t};\n\t\t4725258C226812AB003C50DF /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 4725254922680FEB003C50DF /* OpenInTerminalFinderExtension */;\n\t\t\ttargetProxy = 4725258B226812AB003C50DF /* PBXContainerItemProxy */;\n\t\t};\n\t\t954D67D52355F80E007702D0 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 4725251022680E87003C50DF /* OpenInTerminalCore */;\n\t\t\ttargetProxy = 954D67D42355F80E007702D0 /* PBXContainerItemProxy */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin PBXVariantGroup section */\n\t\t95187391227DF493000CCB3A /* Main.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t95187392227DF493000CCB3A /* Base */,\n\t\t\t);\n\t\t\tname = Main.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t955A93BE2D1C31C7001C7A45 /* Preferences.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t955A93BD2D1C31C7001C7A45 /* Base */,\n\t\t\t\t955A93C12D1C31C7001C7A45 /* mul */,\n\t\t\t);\n\t\t\tname = Preferences.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9584EDF4226DEF79003C7EE8 /* Localizable.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t9584EDF3226DEF79003C7EE8 /* en */,\n\t\t\t\t9584EDF5226DEFC0003C7EE8 /* zh-Hans */,\n\t\t\t\t95FC9243228BAAD600F51DF2 /* fr */,\n\t\t\t\tE197D59A23E2973800C5A893 /* ru */,\n\t\t\t\tC3ACD4D0243E0FEF00462517 /* it */,\n\t\t\t\tC1FB06722493518B004AF7B7 /* es */,\n\t\t\t\t95B0613E27AFABD5009C2B4E /* tr */,\n\t\t\t\t2594E99B27EF523300AF84D5 /* de */,\n\t\t\t\tCE8306A1283D111D00C32E36 /* ko */,\n\t\t\t);\n\t\t\tname = Localizable.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\t4725251B22680E87003C50DF /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"\";\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tDEFINES_MODULE = YES;\n\t\t\t\tDEVELOPMENT_TEAM = Q33U8R4U57;\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tDYLIB_INSTALL_NAME_BASE = \"@rpath\";\n\t\t\t\tFRAMEWORK_VERSION = A;\n\t\t\t\tINFOPLIST_FILE = OpenInTerminalCore/Info.plist;\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/../Frameworks\",\n\t\t\t\t\t\"@loader_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.13;\n\t\t\t\tMARKETING_VERSION = 2.3.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = wang.jianing.app.OpenInTerminalCore;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME:c99extidentifier)\";\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t\tVERSION_INFO_PREFIX = \"\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t4725251C22680E87003C50DF /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"-\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tDEFINES_MODULE = YES;\n\t\t\t\tDEVELOPMENT_TEAM = Q33U8R4U57;\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tDYLIB_INSTALL_NAME_BASE = \"@rpath\";\n\t\t\t\tFRAMEWORK_VERSION = A;\n\t\t\t\tINFOPLIST_FILE = OpenInTerminalCore/Info.plist;\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/../Frameworks\",\n\t\t\t\t\t\"@loader_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.13;\n\t\t\t\tMARKETING_VERSION = 2.3.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = wang.jianing.app.OpenInTerminalCore;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME:c99extidentifier)\";\n\t\t\t\tPROVISIONING_PROFILE_SPECIFIER = \"\";\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t\tVERSION_INFO_PREFIX = \"\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t4725255422680FEB003C50DF /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tAPPLICATION_EXTENSION_API_ONLY = YES;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCODE_SIGN_ENTITLEMENTS = OpenInTerminalFinderExtension/OpenInTerminalFinderExtension.entitlements;\n\t\t\t\tCODE_SIGN_IDENTITY = \"Apple Development\";\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDEVELOPMENT_TEAM = Q33U8R4U57;\n\t\t\t\tENABLE_HARDENED_RUNTIME = YES;\n\t\t\t\tINFOPLIST_FILE = OpenInTerminalFinderExtension/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/../Frameworks\",\n\t\t\t\t\t\"@executable_path/../../../../Frameworks\",\n\t\t\t\t);\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.13;\n\t\t\t\tMARKETING_VERSION = 2.3.8;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = wang.jianing.app.OpenInTerminal.OpenInTerminalFinderExtension;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t4725255522680FEB003C50DF /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tAPPLICATION_EXTENSION_API_ONLY = YES;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCODE_SIGN_ENTITLEMENTS = OpenInTerminalFinderExtension/OpenInTerminalFinderExtension.entitlements;\n\t\t\t\tCODE_SIGN_IDENTITY = \"Apple Development\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDEVELOPMENT_TEAM = Q33U8R4U57;\n\t\t\t\tENABLE_HARDENED_RUNTIME = YES;\n\t\t\t\tINFOPLIST_FILE = OpenInTerminalFinderExtension/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/../Frameworks\",\n\t\t\t\t\t\"@executable_path/../../../../Frameworks\",\n\t\t\t\t);\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.13;\n\t\t\t\tMARKETING_VERSION = 2.3.8;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = wang.jianing.app.OpenInTerminal.OpenInTerminalFinderExtension;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tPROVISIONING_PROFILE_SPECIFIER = \"\";\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t4725257822681099003C50DF /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCODE_SIGN_ENTITLEMENTS = OpenInTerminal/OpenInTerminal.entitlements;\n\t\t\t\tCODE_SIGN_IDENTITY = \"Apple Development\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDEVELOPMENT_TEAM = Q33U8R4U57;\n\t\t\t\tENABLE_HARDENED_RUNTIME = YES;\n\t\t\t\tINFOPLIST_FILE = OpenInTerminal/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/../Frameworks\",\n\t\t\t\t);\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.13;\n\t\t\t\tMARKETING_VERSION = 2.3.8;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = wang.jianing.app.OpenInTerminal;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tPROVISIONING_PROFILE_SPECIFIER = \"\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t4725257922681099003C50DF /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCODE_SIGN_ENTITLEMENTS = OpenInTerminal/OpenInTerminal.entitlements;\n\t\t\t\tCODE_SIGN_IDENTITY = \"Apple Development\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDEVELOPMENT_TEAM = Q33U8R4U57;\n\t\t\t\tENABLE_HARDENED_RUNTIME = YES;\n\t\t\t\tINFOPLIST_FILE = OpenInTerminal/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/../Frameworks\",\n\t\t\t\t);\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.13;\n\t\t\t\tMARKETING_VERSION = 2.3.8;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = wang.jianing.app.OpenInTerminal;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tPROVISIONING_PROFILE_SPECIFIER = \"\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t95187396227DF493000CCB3A /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCODE_SIGN_ENTITLEMENTS = OpenInTerminalHelper/OpenInTerminalHelper.entitlements;\n\t\t\t\tCODE_SIGN_IDENTITY = \"Apple Development\";\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDEVELOPMENT_TEAM = Q33U8R4U57;\n\t\t\t\tENABLE_HARDENED_RUNTIME = YES;\n\t\t\t\tINFOPLIST_FILE = OpenInTerminalHelper/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/../Frameworks\",\n\t\t\t\t);\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.13;\n\t\t\t\tMARKETING_VERSION = 2.3.8;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = wang.jianing.app.OpenInTerminalHelper;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t95187397227DF493000CCB3A /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCODE_SIGN_ENTITLEMENTS = OpenInTerminalHelper/OpenInTerminalHelper.entitlements;\n\t\t\t\tCODE_SIGN_IDENTITY = \"Apple Development\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDEVELOPMENT_TEAM = Q33U8R4U57;\n\t\t\t\tENABLE_HARDENED_RUNTIME = YES;\n\t\t\t\tINFOPLIST_FILE = OpenInTerminalHelper/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/../Frameworks\",\n\t\t\t\t);\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.13;\n\t\t\t\tMARKETING_VERSION = 2.3.8;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = wang.jianing.app.OpenInTerminalHelper;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tPROVISIONING_PROFILE_SPECIFIER = \"\";\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t956C38BD225F7701001CB769 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.11;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t956C38BE225F7701001CB769 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.11;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t4725251A22680E87003C50DF /* Build configuration list for PBXNativeTarget \"OpenInTerminalCore\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t4725251B22680E87003C50DF /* Debug */,\n\t\t\t\t4725251C22680E87003C50DF /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t4725255322680FEB003C50DF /* Build configuration list for PBXNativeTarget \"OpenInTerminalFinderExtension\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t4725255422680FEB003C50DF /* Debug */,\n\t\t\t\t4725255522680FEB003C50DF /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t4725257722681099003C50DF /* Build configuration list for PBXNativeTarget \"OpenInTerminal\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t4725257822681099003C50DF /* Debug */,\n\t\t\t\t4725257922681099003C50DF /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t95187398227DF493000CCB3A /* Build configuration list for PBXNativeTarget \"OpenInTerminalHelper\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t95187396227DF493000CCB3A /* Debug */,\n\t\t\t\t95187397227DF493000CCB3A /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t956C38AC225F7701001CB769 /* Build configuration list for PBXProject \"OpenInTerminal\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t956C38BD225F7701001CB769 /* Debug */,\n\t\t\t\t956C38BE225F7701001CB769 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\n/* Begin XCRemoteSwiftPackageReference section */\n\t\t955C01332D3C3C87003AF605 /* XCRemoteSwiftPackageReference \"ShortcutRecorder\" */ = {\n\t\t\tisa = XCRemoteSwiftPackageReference;\n\t\t\trepositoryURL = \"https://github.com/Kentzo/ShortcutRecorder\";\n\t\t\trequirement = {\n\t\t\t\tkind = upToNextMajorVersion;\n\t\t\t\tminimumVersion = 3.4.0;\n\t\t\t};\n\t\t};\n/* End XCRemoteSwiftPackageReference section */\n\n/* Begin XCSwiftPackageProductDependency section */\n\t\t955C01342D3C3C9A003AF605 /* ShortcutRecorder */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tpackage = 955C01332D3C3C87003AF605 /* XCRemoteSwiftPackageReference \"ShortcutRecorder\" */;\n\t\t\tproductName = ShortcutRecorder;\n\t\t};\n/* End XCSwiftPackageProductDependency section */\n\t};\n\trootObject = 956C38A9225F7701001CB769 /* Project object */;\n}\n"
  },
  {
    "path": "OpenInTerminalCore/App.swift",
    "content": "//\n//  App.swift\n//  OpenInTerminalCore\n//\n//  Created by Jianing Wang on 2020/12/5.\n//  Copyright © 2020 Jianing Wang. All rights reserved.\n//\n\nimport Foundation\nimport ScriptingBridge\n\npublic enum AppType: String, Codable {\n    case terminal\n    case editor\n}\n\npublic struct App: Codable {\n    public var name: String\n    public var path: String?\n    public var bundleId: String?\n    public var type: AppType\n    \n    public init(name: String, type: AppType) {\n        self.name = name\n        self.type = type\n    }\n}\n\nextension App: Equatable {\n    public static func == (lhs: App, rhs: App) -> Bool {\n        return lhs.name == rhs.name && lhs.bundleId == rhs.bundleId\n    }\n}\n\n// MARK: - Openable\n\npublic protocol Openable {\n    func openOutsideSandbox() throws\n    func openInSandbox(_ urls: [URL]) throws\n}\n\nextension App: Openable {\n    \n    public func openOutsideSandbox() throws {\n        \n        func excute(_ source: String) throws {\n            guard let script = NSAppleScript(source: source) else {\n                throw OITError.cannotCreateAppleScript(source)\n            }\n            var error: NSDictionary?\n            script.executeAndReturnError(&error)\n            if error != nil {\n                throw OITError.cannotAccessApp(self.name)\n            }\n        }\n        \n        switch self.type {\n        case .terminal:\n            // get path\n            var path = try FinderManager.shared.getPathToFrontFinderWindowOrSelectedFile()\n            if path == \"\" {\n                // No Finder window and no file selected.\n                guard let desktopPath = FinderManager.shared.getDesktopPath() else { return }\n                path = desktopPath\n            }\n            \n            if SupportedApps.is(self, is: .terminal) {\n                // this app is supported: Terminal\n                let url = URL(fileURLWithPath: path)\n                guard let terminal = SBApplication(bundleIdentifier: SupportedApps.terminal.bundleId) as TerminalApplication?,\n                      let open = terminal.open else {\n                    throw OITError.cannotAccessApp(self.name)\n                }\n                open([url])\n                terminal.activate()\n//                let newOption = DefaultsManager.shared.getNewOption(.terminal) ?? .window\n//                switch newOption {\n//                case .window:\n//                    // open in a new window\n//                    guard let terminal = SBApplication(bundleIdentifier: SupportedApps.terminal.bundleId) as TerminalApplication?,\n//                          let open = terminal.open else {\n//                        throw OITError.cannotAccessApp(self.name)\n//                    }\n//                    open([url])\n//                    terminal.activate()\n//                case .tab:\n//                    // open in a new tab\n//                    let source = ScriptManager.shared.getTerminalNewTabAppleScript(url: url)\n//                    try excute(source)\n//                }\n            } else {\n                // this app is general\n                var openCommand = DefaultsManager.shared.getOpenCommand(self, escapeCount: 2)\n                openCommand += \" \" + path.specialCharEscaped(2)\n                let source = \"\"\"\n                do shell script \"\\(openCommand)\"\n                \"\"\"\n                try excute(source)\n            }\n            \n        case .editor:\n            // get paths\n            var paths = try FinderManager.shared.getFullPathsToFrontFinderWindowOrSelectedFile()\n            if paths.count == 0 {\n                // No Finder window and no file selected.\n                guard let desktopPath = FinderManager.shared.getDesktopPath() else { return }\n                paths.append(desktopPath)\n            }\n            \n            var openCommand = DefaultsManager.shared.getOpenCommand(self, escapeCount: 2)\n            var path = \"\"\n            paths.forEach {\n                path += \" \\($0.specialCharEscaped(2))\"\n            }\n            // fix for neovim\n            if SupportedApps.is(self, is: .neovim) {\n                openCommand = openCommand.replacingOccurrences(of: \"PATH\", with: path)\n            } else {\n                openCommand += path\n            }\n            logw(openCommand)\n            \n            let source = \"\"\"\n            do shell script \"\\(openCommand)\"\n            \"\"\"\n            try excute(source)\n        }\n    }\n    \n    public func openInSandbox(_ urls: [URL]) throws {\n        switch self.type {\n        case .terminal:\n            guard var url = urls.first else { return }\n            url.getDirectory()\n            // get open command, e.g. \"open -a Terminal /Users/user/Desktop/test\\ folder\"\n            var openCommand = DefaultsManager.shared.getOpenCommand(self)\n            openCommand += \" \" + url.path.specialCharEscaped()\n            // script\n            guard let scriptURL = ScriptManager.shared.getScriptURL(with: Constants.generalScript) else { return }\n//            // handle exceptional case\n//            if SupportedApps.is(self, is: .terminal) {\n//                if let newOption = DefaultsManager.shared.getNewOption(.terminal),\n//                   newOption == .tab {\n//                    openCommand = ScriptManager.shared.getTerminalNewTabCommand(path: path)\n//                    guard let tabScriptURL = ScriptManager.shared.getScriptURL(with: Constants.terminalNewTabScript) else { return }\n//                    scriptURL = tabScriptURL\n//                }\n//            }\n            // excute\n            guard FileManager.default.fileExists(atPath: scriptURL.path) else { return }\n            guard let script = try? NSUserAppleScriptTask(url: scriptURL) else { return }\n            let event = ScriptManager.shared.getScriptEvent(functionName: \"openApp\", openCommand)\n            script.execute(withAppleEvent: event) { (appleEvent, error) in\n                if let error = error {\n                    logw(\"cannot execute applescript: \\(error)\")\n                }\n            }\n        case .editor:\n            // get open command, e.g. \"open -a TextEdit /Users/user/Desktop/test\\ folder /Users/user/Documents\"\n            var openCommand = DefaultsManager.shared.getOpenCommand(self)\n            var path = \"\"\n            urls.map {\n                $0.path\n            }.forEach {\n                path += \" \" + $0.specialCharEscaped()\n            }\n            if SupportedApps.is(self, is: .neovim) {\n                openCommand = openCommand.replacingOccurrences(of: \"PATH\", with: path)\n            } else {\n                openCommand += path\n            }\n            // script\n            guard let scriptURL = ScriptManager.shared.getScriptURL(with: Constants.generalScript) else { return }\n            // excute\n            guard FileManager.default.fileExists(atPath: scriptURL.path) else { return }\n            guard let script = try? NSUserAppleScriptTask(url: scriptURL) else { return }\n            let event = ScriptManager.shared.getScriptEvent(functionName: \"openApp\", openCommand)\n            script.execute(withAppleEvent: event) { (appleEvent, error) in\n                if let error = error {\n                    logw(\"cannot execute applescript: \\(error)\")\n                }\n            }\n        }\n    }\n    \n}\n\n"
  },
  {
    "path": "OpenInTerminalCore/AppManager.swift",
    "content": "//\n//  AppManager.swift\n//  OpenInTerminalCore\n//\n//  Created by Jianing Wang on 2020/12/18.\n//  Copyright © 2020 Jianing Wang. All rights reserved.\n//\n\nimport Foundation\n\npublic class AppManager {\n    \n    public static var shared = AppManager()\n    \n    public func pickTerminalAlert() -> App? {\n        let alert = NSAlert()\n        alert.messageText = NSLocalizedString(\"alert.pick_terminal_title\", comment: \"Open In?\")\n        alert.informativeText = NSLocalizedString(\"alert.pick_terminal_description\", comment: \"Please select one of the following terminals as the default terminal to open.\")\n        // Add button and avoid the focus ring\n        let cancelString = NSLocalizedString(\"general.cancel\", comment: \"Cancel\")\n        alert.addButton(withTitle: cancelString).refusesFirstResponder = true\n        alert.addButton(withTitle: SupportedApps.terminal.name).refusesFirstResponder = true\n        alert.addButton(withTitle: SupportedApps.iTerm.name).refusesFirstResponder = true\n        alert.addButton(withTitle: SupportedApps.hyper.name).refusesFirstResponder = true\n        let modalResult = alert.runModal()\n        switch modalResult {\n        case .alertFirstButtonReturn:\n            return nil\n        case .alertSecondButtonReturn:\n            return SupportedApps.terminal.app\n        case .alertThirdButtonReturn:\n            return SupportedApps.iTerm.app\n        default:\n            return SupportedApps.hyper.app\n        }\n    }\n    \n    public func pickEditorAlert() -> App? {\n        let alert = NSAlert()\n        alert.messageText = NSLocalizedString(\"alert.pick_editor_title\", comment: \"Open In?\")\n        alert.informativeText = NSLocalizedString(\"alert.pick_editor_description\", comment: \"Please select one of the following editors as the default editor to open.\")\n        // Add button and avoid the focus ring\n        let cancelString = NSLocalizedString(\"general.cancel\", comment: \"Cancel\")\n        alert.addButton(withTitle: cancelString).refusesFirstResponder = true\n        alert.addButton(withTitle: SupportedApps.vscode.name).refusesFirstResponder = true\n        alert.addButton(withTitle: SupportedApps.sublime.name).refusesFirstResponder = true\n        alert.addButton(withTitle: SupportedApps.atom.name).refusesFirstResponder = true\n        let modalResult = alert.runModal()\n        switch modalResult {\n        case .alertFirstButtonReturn:\n            return nil\n        case .alertSecondButtonReturn:\n            return SupportedApps.vscode.app\n        case .alertThirdButtonReturn:\n            return SupportedApps.sublime.app\n        default:\n            return SupportedApps.atom.app\n        }\n    }\n    \n    public static func getApplicationName(from path: String?) -> String {\n        guard let validPath = path else {\n            return \"Invalid Name\"\n        }\n        guard let validBundle = Bundle.init(url: URL.init(fileURLWithPath: validPath)) else {\n            return getApplicationFileName(from: validPath)\n        }\n        let CFBundleDisplayName = validBundle.object(forInfoDictionaryKey: \"CFBundleDisplayName\") as? String\n        let CFBundleName = validBundle.object(forInfoDictionaryKey: \"CFBundleName\") as? String\n        let FileName = getApplicationFileName(from: validPath)\n        return CFBundleDisplayName ?? CFBundleName ?? FileName\n    }\n    \n    public static func getApplicationName(from path: URL) -> String {\n        return getApplicationName(from: path.path)\n    }\n    \n    public static func getApplicationFileName(from path: String) -> String {\n        var rawName = FileManager().displayName(atPath: path).removingPercentEncoding!\n        let lowercased = rawName.lowercased()\n        if lowercased.hasSuffix(\".app\") {\n            let start = rawName.startIndex\n            let end = rawName.index(rawName.endIndex, offsetBy: -4)\n            rawName = String(rawName[start..<end])\n        }\n        return rawName\n    }\n    \n    // 从路径获取应用图标\n    public static func getApplicationIcon(from path: String?) -> NSImage {\n        guard let validPath = path else {\n            return #imageLiteral(resourceName: \"SF.cube\")\n        }\n        return NSWorkspace.shared.icon(forFile: validPath)\n    }\n    \n    public static func getApplicationIcon(from path: URL) -> NSImage {\n        return getApplicationIcon(from: path.path)\n    }\n}\n"
  },
  {
    "path": "OpenInTerminalCore/Constants.swift",
    "content": "//\n//  Config.swift\n//  OpenInTerminal\n//\n//  Created by Jianing Wang on 2019/4/17.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\nimport Foundation\n\nstruct Constants {\n    \n    /// Identifier\n    struct Id {\n        static let Group = \"group.wang.jianing.app.OpenInTerminal\"\n        static let OpenInTerminalLite = \"wang.jianing.app.OpenInTerminal-Lite\"\n        static let OpenInEditorLite = \"wang.jianing.app.OpenInEditor-Lite\"\n        static let Finder = \"com.apple.Finder\"\n    }\n    \n    /// General AppleScript for opening apps\n    static let generalScript = \"generalScript\"\n    /// AppleScript for opening a new tab in Terminal\n    static let terminalNewTabScript = \"terminalNewTabScript\"\n    \n    struct Commands {\n        static let alacritty = \"open -na Alacritty --args --working-directory\"\n        static let kitty = \"open -na kitty --args --single-instance --instance-group 1 --directory\"\n        static let wezterm = \"open -na wezterm --args start --cwd\"\n        static let tabby = \"open -na tabby --args --directory\"\n        /// \"Open In NeoVim\" only supports Alacritty, wezterm, and kitty.\n        static let neovim = \"open -na kitty --args /opt/homebrew/bin/nvim PATH\"\n//        static let neovim = \"open -na wezterm --args start /opt/homebrew/bin/nvim PATH\"\n//        static let neovim = \"open -na Alacritty --args -e /opt/homebrew/bin/nvim PATH\"\n\n    }\n    \n}\n\npublic enum QuickToggleType: String {\n    \n    case openWithDefaultTerminal\n    case openWithDefaultEditor\n    case copyPathToClipboard\n    \n    public var name: String {\n        switch self {\n        case .openWithDefaultTerminal:\n        return NSLocalizedString(\"menu.open_with_default_terminal\", comment: \"Open with default Terminal\")\n        case .openWithDefaultEditor:\n        return NSLocalizedString(\"menu.open_with_default_editor\", comment: \"Open with default Editor\")\n        case .copyPathToClipboard:\n        return NSLocalizedString(\"menu.copy_path_to_clipboard\", comment: \"Copy path to Clipboard\")\n        }\n    }\n}\n\npublic enum NewOptionType: String {\n    case tab\n    case window\n}\n\nlet encoder = JSONEncoder()\nlet decoder = JSONDecoder()\n\npublic enum CustomMenuIconOption: String {\n    case no\n    case simple\n    case original\n}\n"
  },
  {
    "path": "OpenInTerminalCore/Defaults.swift",
    "content": "//\n//  Defaults.swift\n//  OpenInTerminalCore\n//\n//  Created by Jianing Wang on 2019/4/21.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\nimport Foundation\n\n/// group defaults\nlet GroupDefaults = UserDefaults(suiteName: Constants.Id.Group)\n\n/// current defaults\npublic var Defaults: UserDefaults = {\n    if Bundle.main.bundleIdentifier == Constants.Id.OpenInTerminalLite ||\n        Bundle.main.bundleIdentifier == Constants.Id.OpenInEditorLite {\n        return UserDefaults.standard\n    } else {\n        return GroupDefaults ?? UserDefaults.standard\n    }\n}()\n\npublic class DefaultsKeys {\n    fileprivate init() {}\n}\n\npublic class DefaultsKey<ValueType>: DefaultsKeys {\n    let _key: String\n    \n    init(_ key: String) {\n        self._key = key\n    }\n}\n\npublic extension DefaultsKeys {\n    // Preferences - General\n    static let firstSetup = DefaultsKey<Bool>(\"FirstSetup\")\n    static let launchAtLogin = DefaultsKey<Bool>(\"LaunchAtLogin\")\n    static let quickToggle = DefaultsKey<Bool>(\"QuickToggle\")\n    static let quickToggleType = DefaultsKey<String>(\"QuickToggleType\")\n    static let hideStatusItem = DefaultsKey<Bool>(\"HideStatusItem\")\n    static let hideContextMenuItems = DefaultsKey<Bool>(\"HideContextMenuItems\")\n    static let defaultTerminal = DefaultsKey<String>(\"DefaultTerminal\")\n    static let defaultEditor = DefaultsKey<String>(\"DefaultEditor\")\n    // Preferences - Custom\n    static let terminalNewOption = DefaultsKey<String>(\"TerminalNewOption\")\n    static let iTermNewOption = DefaultsKey<String>(\"iTermNewOption\")\n    static let customMenuOptions = DefaultsKey<Data>(\"CustomMenuOptions\")\n    static let customMenuApplyToToolbar = DefaultsKey<Bool>(\"CustomMenuApplyToToolbar\")\n    static let customMenuApplyToContext = DefaultsKey<Bool>(\"CustomMenuApplyToContext\")\n    static let customMenuIconOption = DefaultsKey<String>(\"CustomMenuIconOption\")\n    static let pathEscapeOption = DefaultsKey<Bool>(\"PathEscapeOption\")\n    static let kittyCommand = DefaultsKey<String>(\"KittyCommand\")\n    static let neovimCommand = DefaultsKey<String>(\"NeovimCommand\")\n    \n    // for Lite\n    static let liteDefaultTerminal = DefaultsKey<String>(\"LiteDefaultTerminal\")\n    static let liteDefaultEditor = DefaultsKey<String>(\"LiteDefaultEditor\")\n}\n\npublic extension UserDefaults {\n    subscript(key: DefaultsKey<String>) -> String? {\n        get { return string(forKey: key._key) }\n        set { set(newValue, forKey: key._key) }\n    }\n    subscript(key: DefaultsKey<Bool>) -> Bool {\n        get { return bool(forKey: key._key) }\n        set { set(newValue, forKey: key._key) }\n    }\n    subscript(key: DefaultsKey<Int>) -> Int {\n        get { return integer(forKey: key._key) }\n        set { set(newValue, forKey: key._key) }\n    }\n    subscript(key: DefaultsKey<Float>) -> Float {\n        get { return float(forKey: key._key) }\n        set { set(newValue, forKey: key._key) }\n    }\n    subscript(key: DefaultsKey<Double>) -> Double {\n        get { return double(forKey: key._key) }\n        set { set(newValue, forKey: key._key) }\n    }\n    subscript(key: DefaultsKey<URL>) -> URL? {\n        get { return url(forKey: key._key) }\n        set { set(newValue, forKey: key._key) }\n    }\n    subscript(key: DefaultsKey<Any>) -> Any? {\n        get { return value(forKey: key._key) }\n        set { set(newValue, forKey: key._key) }\n    }\n    subscript(key: DefaultsKey<[Any]>) -> [Any]? {\n        get { return array(forKey: key._key) }\n        set { set(newValue, forKey: key._key) }\n    }\n    subscript(key: DefaultsKey<Data>) -> Data? {\n        get { return data(forKey: key._key) }\n        set { set(newValue, forKey: key._key) }\n    }\n    subscript(key: DefaultsKey<[String : Any]>) -> [String : Any]? {\n        get { return dictionary(forKey: key._key) }\n        set { set(newValue, forKey: key._key) }\n    }\n    subscript(key: DefaultsKey<[String]>) -> [String]? {\n        get { return stringArray(forKey: key._key) }\n        set { set(newValue, forKey: key._key) }\n    }\n}\n"
  },
  {
    "path": "OpenInTerminalCore/DefaultsManager.swift",
    "content": "//\n//  DefaultsManager.swift\n//  OpenInTerminalCore\n//\n//  Created by Jianing Wang on 2019/10/14.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\nimport Foundation\n\npublic class DefaultsManager {\n    \n    public static var shared = DefaultsManager()\n    \n    // MARK: - Preferences - General\n    \n    public var isFirstSetup: Bool {\n        get {\n            return Defaults[.firstSetup]\n        }\n        \n        set {\n            Defaults[.firstSetup] = newValue\n        }\n    }\n    \n    public var isLaunchAtLogin: Bool {\n        get {\n            return Defaults[.launchAtLogin]\n        }\n        \n        set {\n            Defaults[.launchAtLogin] = newValue\n        }\n    }\n    \n    public var isQuickToggle: Bool {\n        get {\n            return Defaults[.quickToggle]\n        }\n        \n        set {\n            Defaults[.quickToggle] = newValue\n        }\n    }\n    \n    public var quickToggleType: QuickToggleType? {\n        get {\n            return Defaults[.quickToggleType].map(QuickToggleType.init(rawValue: )) ?? nil\n        }\n        \n        set {\n            Defaults[.quickToggleType] = newValue?.rawValue\n        }\n    }\n    \n    public var isHideStatusItem: Bool {\n        get {\n            return Defaults[.hideStatusItem]\n        }\n        \n        set {\n            Defaults[.hideStatusItem] = newValue\n        }\n    }\n    \n    public var isHideContextMenuItems: Bool {\n        get {\n            return Defaults[.hideContextMenuItems]\n        }\n        \n        set {\n            Defaults[.hideContextMenuItems] = newValue\n        }\n    }\n    \n    public var defaultTerminal: App? {\n        get {\n            guard let terminalName = Defaults[.defaultTerminal] else { return nil }\n            let app = App(name: terminalName, type: .terminal)\n            return app\n        }\n        \n        set {\n            guard let newValue = newValue else { return }\n            Defaults[.defaultTerminal] = newValue.name\n        }\n    }\n    \n    public var defaultEditor: App? {\n        get {\n            guard let editorName = Defaults[.defaultEditor] else { return nil }\n            let app = App(name: editorName, type: .editor)\n            return app\n        }\n        \n        set {\n            guard let newValue = newValue else { return }\n            Defaults[.defaultEditor] = newValue.name\n        }\n    }\n    \n    public var liteDefaultTerminal: String? {\n        get {\n            return Defaults[.liteDefaultTerminal]\n        }\n        \n        set {\n            Defaults[.liteDefaultTerminal] = newValue\n        }\n    }\n    \n    public var liteDefaultEditor: String? {\n        get {\n            return Defaults[.liteDefaultEditor]\n        }\n        \n        set {\n            Defaults[.liteDefaultEditor] = newValue\n        }\n    }\n    \n    // MARK: - Preferences - Custom\n    \n    public func getNewOption(_ app: SupportedApps) -> NewOptionType? {\n        var option: String?\n        switch app {\n        case .iTerm:\n            option = Defaults[.iTermNewOption]\n        default:\n            return nil\n        }\n        return option.map(NewOptionType.init(rawValue: )) ?? nil\n    }\n    \n    public func setNewOption(_ app: SupportedApps, _ newOption: NewOptionType) {\n        switch app {\n        case .iTerm:\n            Defaults[.iTermNewOption] = newOption.rawValue\n            let option = newOption == .window ? \"true\" : \"false\"\n            let source = \"\"\"\n            do shell script \"defaults write \\(SupportedApps.iTerm.bundleId) OpenFileInNewWindows -bool \\(option)\"\n            \"\"\"\n            let script = NSAppleScript(source: source)!\n            var error: NSDictionary?\n            script.executeAndReturnError(&error)\n            if error != nil {\n                logw(\"Setting iTerm new option failed: \\(String(describing: error))\")\n            }\n        default:\n            return\n        }\n    }\n    \n    public var customMenuOptions: [App]? {\n        get {\n            guard let appsData = Defaults[.customMenuOptions] else { return nil }\n            do {\n                let apps = try decoder.decode([App].self, from: appsData)\n                return apps\n            } catch {\n                return nil\n            }\n        }\n        \n        set {\n            guard let newValue = newValue else { return }\n            do {\n                let data = try encoder.encode(newValue)\n                Defaults[.customMenuOptions] = data\n            } catch {\n                logw(\"save custom menu options failed: \\(error)\")\n            }\n        }\n    }\n    \n    public var isCustomMenuApplyToToolbar: Bool {\n        get {\n            return Defaults[.customMenuApplyToToolbar]\n        }\n        \n        set {\n            Defaults[.customMenuApplyToToolbar] = newValue\n        }\n    }\n    \n    public var isCustomMenuApplyToContext: Bool {\n        get {\n            return Defaults[.customMenuApplyToContext]\n        }\n        \n        set {\n            Defaults[.customMenuApplyToContext] = newValue\n        }\n    }\n    \n    public var customMenuIconOption: CustomMenuIconOption {\n        get {\n            let optionValue = Defaults[.customMenuIconOption] ?? \"no\"\n            let option = CustomMenuIconOption(rawValue: optionValue)\n            return option ?? .no\n        }\n        \n        set {\n            Defaults[.customMenuIconOption] = newValue.rawValue\n        }\n    }\n    \n    public var isPathEscaped: Bool {\n        get {\n            return Defaults[.pathEscapeOption]\n        }\n        \n        set {\n            Defaults[.pathEscapeOption] = newValue\n        }\n    }\n\n    public func getAppIcon(_ app: App) -> NSImage? {\n        switch customMenuIconOption {\n        case .no:\n            return nil\n        case .simple:\n            if app.type == .terminal {\n                return NSImage(named: \"context_menu_icon_terminal\")\n            } else {\n                return NSImage(named: \"context_menu_icon_editor\")\n            }\n        case .original:\n            if SupportedApps.isSupported(app),\n               let icon = NSImage(named: app.name) {\n                return icon\n            }\n            if app.type == .terminal {\n                return NSImage(named: \"context_menu_icon_color_terminal\")\n            } else {\n                return NSImage(named: \"context_menu_icon_color_editor\")\n            }\n        }\n    }\n    \n    // MARK: - Open Commands\n    \n    public var kittyCommand: String {\n        get {\n            return Defaults[.kittyCommand] ?? Constants.Commands.kitty\n        }\n        \n        set {\n            Defaults[.kittyCommand] = newValue\n        }\n    }\n\n    public var neovimCommand: String {\n        get {\n            return Defaults[.neovimCommand] ?? Constants.Commands.neovim\n        }\n        \n        set {\n            Defaults[.neovimCommand] = newValue\n        }\n    }\n\n    public func getOpenCommand(_ app: App, escapeCount: Int = 1) -> String {\n        if SupportedApps.is(app, is: .alacritty) {\n            return Constants.Commands.alacritty\n        } else if SupportedApps.is(app, is: .kitty) {\n            return kittyCommand\n        } else if SupportedApps.is(app, is: .wezterm) {\n            return Constants.Commands.wezterm\n        } else if SupportedApps.is(app, is: .tabby) {\n            return Constants.Commands.tabby\n        } else if SupportedApps.is(app, is: .neovim) {\n            return neovimCommand\n        } else {\n            return \"open -a \\(app.name.nameSpaceEscaped(escapeCount))\"\n        }\n    }\n    \n    // MARK: - Advanced Settings\n    \n    public func firstSetup() {\n        guard isFirstSetup == false else { return }\n        logw(\"First Setup\")\n        isFirstSetup = true\n        isLaunchAtLogin = false\n        isQuickToggle = false\n        quickToggleType = .openWithDefaultTerminal\n        isHideStatusItem = false\n        isHideContextMenuItems = false\n        defaultTerminal = SupportedApps.terminal.app\n        defaultEditor = SupportedApps.textEdit.app\n        setNewOption(.terminal, .window)\n        setNewOption(.iTerm, .window)\n        isCustomMenuApplyToToolbar = false\n        isCustomMenuApplyToContext = false\n        customMenuIconOption = .no\n        isPathEscaped = true\n        Defaults.synchronize()\n    }\n    \n    public func removeAllUserDefaults() {\n        logw(\"Remove all UserDefaults\")\n        Defaults.removePersistentDomain(forName: Constants.Id.Group)\n        Defaults.synchronize()\n    }\n    \n}\n"
  },
  {
    "path": "OpenInTerminalCore/Error.swift",
    "content": "//\n//  Error.swift\n//  cd2swiftTest\n//\n//  Created by Jianing Wang on 2019/4/10.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\nimport Foundation\n\nenum OITError: Error {\n    case cannotAccessFinder\n    case cannotAccessApp(_ appName: String)\n    case wrongUrl\n    case cannotCreateAppleScript(_ source: String)\n    case cannotExcuteAppleScript(_ error: Error)\n}\n\nextension OITError : CustomStringConvertible {\n    var description: String {\n        switch self {\n        case .cannotAccessFinder:\n            return \"Cannot access Finder, please check permissions.\"\n        case .cannotAccessApp(let appName):\n            return \"Cannot access \\(appName), please check permissions.\"\n        case .wrongUrl:\n            return \"Oops, got a wrong url\"\n        case .cannotCreateAppleScript(let source):\n            return \"Cannot create AppleScript:\\n\\(source)\"\n        case .cannotExcuteAppleScript(let error):\n            return \"Cannot excute AppleScript:\\n\\(error)\"\n        }\n    }\n}\n"
  },
  {
    "path": "OpenInTerminalCore/Extensions/ArrayExtensions.swift",
    "content": "//\n//  ArrayExtensions.swift\n//  OpenInTerminalCore\n//\n//  Created by Jianing Wang on 2020/4/6.\n//  Copyright © 2020 Jianing Wang. All rights reserved.\n//\n\nimport Foundation\n\npublic extension Array {\n    \n    mutating func move(from start: Index, to end: Index) {\n        guard (0..<count) ~= start, (0...count) ~= end else { return }\n        if start == end { return }\n        let targetIndex = start < end ? end - 1 : end\n        insert(remove(at: start), at: targetIndex)\n    }\n    \n    mutating func move(with indexes: IndexSet, to toIndex: Index) {\n        let movingData = indexes.map{ self[$0] }\n        let targetIndex = toIndex - indexes.filter{ $0 < toIndex }.count\n        for (i, e) in indexes.enumerated() {\n            remove(at: e - i)\n        }\n        insert(contentsOf: movingData, at: targetIndex)\n    }\n}\n\npublic extension Array where Element == String {\n    \n    func sortedIgnoreCase() -> [String] {\n        return sorted { $0.localizedCaseInsensitiveCompare($1) == ComparisonResult.orderedAscending }\n    }\n    \n    mutating func sortIgnoreCase() {\n        sort { $0.localizedCaseInsensitiveCompare($1) == ComparisonResult.orderedAscending }\n    }\n    \n}\n\npublic extension Array where Element == App {\n    \n    func sortedIgnoreCase() -> [App] {\n        return sorted { $0.name.localizedCaseInsensitiveCompare($1.name) == ComparisonResult.orderedAscending }\n    }\n    \n    mutating func sortIgnoreCase() {\n        sort { $0.name.localizedCaseInsensitiveCompare($1.name) == ComparisonResult.orderedAscending }\n    }\n    \n}\n\n\npublic extension Array where Element: Equatable {\n    \n    mutating func remove(element: Element) {\n        if let index = self.firstIndex(of: element) {\n            self.remove(at: index)\n        }\n    }\n}\n"
  },
  {
    "path": "OpenInTerminalCore/Extensions/PathExtensions.swift",
    "content": "//\n//  PathExtensions.swift\n//  OpenInTerminalCore\n//\n//  Created by Jianing Wang on 11/22/24.\n//  Copyright © 2024 Jianing Wang. All rights reserved.\n//\n\nimport Foundation\n\n// MARK: - Escape\n\npublic extension String {\n    \n    /// Handle space in name.\n    /// `count`: number of escape characters.\n    func nameSpaceEscaped(_ count: Int = 1) -> String {\n        let escapeChar = String(repeating: \"\\\\\", count: count)\n        let escapeSpace = escapeChar + \" \"\n        let replaced = self.replacingOccurrences(of: \" \", with: escapeSpace)\n        return replaced\n    }\n    \n    /// Handle special char in path.\n    /// `count`: number of escape characters.\n    func specialCharEscaped(_ count: Int = 1) -> String {\n        let escapeChar = String(repeating: \"\\\\\", count: count)\n        var result = \"\"\n        let set: [Character] = [\" \", \"(\", \")\", \"&\", \"|\", \";\",\n                                \"\\\"\", \"'\", \"<\", \">\", \"`\"]\n        for char in self {\n            if set.contains(char) {\n                result += escapeChar\n            }\n            result.append(char)\n        }\n        return result\n    }\n    \n    // FIXME: if path contains \"\\\" or \"\"\", application will crash.\n    // Special symbols have been tested, excluding backslashes and double quotes.\n    func terminalPathEscaped() -> String {\n        var result = \"\"\n        let set = CharacterSet.alphanumerics\n        for char in self.unicodeScalars {\n            if set.contains(char) || char == \"/\" {\n                result.unicodeScalars.append(char)\n            } else {\n                result += \"\\\\\\\\\"\n                result.unicodeScalars.append(char)\n            }\n        }\n        return result\n    }\n}\n\n// MARK: - URL\n\npublic extension URL {\n    \n    /// Get the directory part of the URL by removing the last part if it's a file.\n    mutating func getDirectory() {\n        var isDirectory: ObjCBool = false\n        if FileManager.default.fileExists(atPath: self.path, isDirectory: &isDirectory) {\n            if !isDirectory.boolValue {\n                self = self.deletingLastPathComponent()\n            }\n        }\n    }\n    \n}\n"
  },
  {
    "path": "OpenInTerminalCore/FinderManager.swift",
    "content": "//\n//  FinderManager.swift\n//  OpenInTerminalCore\n//\n//  Created by Cameron Ingham on 4/17/19.\n//  Copyright © 2019 Cameron Ingham. All rights reserved.\n//\n\nimport Cocoa\nimport ScriptingBridge\n\npublic class FinderManager {\n    \n    public static var shared = FinderManager()\n    \n    /// Get full url to front Finder window or selected file\n    public func getFullUrlToFrontFinderWindowOrSelectedFile() throws -> URL? {\n\n        let finder = SBApplication(bundleIdentifier: Constants.Id.Finder)! as FinderApplication\n        \n        var target: FinderItem\n        \n        guard let selection = finder.selection,\n            let selectionItems = selection.get() else {\n                throw OITError.cannotAccessFinder\n        }\n        \n        if let firstItem = (selectionItems as! Array<AnyObject>).first {\n            // Files or folders selected\n            target = firstItem as! FinderItem\n        } else {\n            // Check if there are finder windows opened\n            guard let windows = finder.FinderWindows?(),\n                let firstWindow = windows.firstObject else {\n                    print(\"No Finder windows are opened or selected\")\n                    return nil\n            }\n            target = (firstWindow as! FinderFinderWindow).target?.get() as! FinderItem\n        }\n        \n        guard let targetUrl = target.URL,\n            let url = URL(string: targetUrl) else {\n                print(\"target url nil\")\n                return nil\n        }\n        \n        return url\n    }\n    \n    /// Get full path to front Finder window or selected file\n    public func getFullPathToFrontFinderWindowOrSelectedFile() throws -> String {\n        guard let url = try getFullUrlToFrontFinderWindowOrSelectedFile() else {\n            return \"\"\n        }\n        return url.path\n    }\n    \n    /// Get full urls to front Finder windows or selected files\n    public func getFullUrlsToFrontFinderWindowOrSelectedFile() throws -> [URL] {\n        \n        let finder = SBApplication(bundleIdentifier: Constants.Id.Finder)! as FinderApplication\n        \n        var targets: [FinderItem]\n        \n        guard let selection = finder.selection,\n            let selectionItems = selection.get() else {\n                throw OITError.cannotAccessFinder\n        }\n        \n        if let items = selectionItems as? Array<FinderItem>,\n            items.count > 0 {\n            // Files or folders are selected\n            targets = items\n        } else {\n            // Check if there are opened finder windows\n            guard let windows = finder.FinderWindows?(),\n                let firstWindow = windows.firstObject else {\n                    print(\"No Finder windows are opened or selected\")\n                    return []\n            }\n            let topFinderWindow = (firstWindow as! FinderFinderWindow).target?.get() as! FinderItem\n            targets = [topFinderWindow]\n        }\n        \n        let paths = targets.compactMap {\n            $0.URL\n        }.compactMap {\n            URL(string: $0)\n        }\n        \n        return paths\n    }\n    \n    /// Get full paths to front Finder windows or selected files\n    public func getFullPathsToFrontFinderWindowOrSelectedFile() throws -> [String] {\n        let urls = try getFullUrlsToFrontFinderWindowOrSelectedFile()\n        let paths = urls.map {\n            $0.path\n        }\n        return paths\n    }\n    \n    /// Get path to front Finder window or selected file.\n    /// If the selected one is file, return it's parent path.\n    public func getPathToFrontFinderWindowOrSelectedFile() throws -> String {\n        \n        guard let fullUrl = try getFullUrlToFrontFinderWindowOrSelectedFile() else {\n            return \"\"\n        }\n        \n        var isDirectory: ObjCBool = false\n        \n        guard FileManager.default.fileExists(atPath: fullUrl.path, isDirectory: &isDirectory) else {\n            print(\"file does not exist\")\n            return \"\"\n        }\n        \n        // if the selected is a file, then delete last path component\n        guard isDirectory.boolValue else {\n            return fullUrl.deletingLastPathComponent().path\n        }\n        \n        return fullUrl.path\n    }\n    \n    public func getDesktopPath() -> String? {\n        let homePath = NSHomeDirectory()\n        guard let homeUrl = URL(string: homePath) else { return nil }\n        let desktopPath = homeUrl.appendingPathComponent(\"Desktop\").path\n        return desktopPath\n    }\n    \n    /// Get all installed applications' names\n    public func getAllInstalledApps() -> Set<String> {\n        var applications: Set<String> = Set()\n        // add system application\n        applications.insert(\"Terminal\")\n        applications.insert(\"TextEdit\")\n        applications.insert(\"neovim\")\n        // search\n        do {\n            var searchDirs: Set<URL> = Set()\n            let fileManager = FileManager.default\n            // search `/Applications`\n            let applicationDir = \"/Applications\"\n            if let applicationURL = URL(string: applicationDir) {\n                searchDirs.insert(applicationURL)\n            }\n            // search `$HOME/Applications`\n            let userApplicationDirURL = fileManager.urls(for: .applicationDirectory, in: .userDomainMask)\n            if userApplicationDirURL.count > 0 {\n                searchDirs.insert(userApplicationDirURL[0])\n            }\n            // search `$HOME/Library/Application Support/JetBrains/Toolbox\n            let libraryDirURL = fileManager.urls(for: .libraryDirectory, in: .userDomainMask)\n            if libraryDirURL.count > 0 {\n                let libDirURL = libraryDirURL[0]\n                let toolboxURL = libDirURL.appendingPathComponent(\"Application Support\")\n                    .appendingPathComponent(\"JetBrains\")\n                    .appendingPathComponent(\"Toolbox\")\n                if fileManager.fileExists(atPath: toolboxURL.path) {\n                    searchDirs.insert(toolboxURL)\n                }\n            }\n            \n            var levelCount = 0\n            \n            while !searchDirs.isEmpty {\n                // to avoid an infinite loop\n                levelCount += 1\n                if levelCount > 20 {\n                    break\n                }\n                \n                var tmpSearchDirs = searchDirs\n                for currentDir in searchDirs {\n                    let fileURLs = try fileManager.contentsOfDirectory(at: currentDir, includingPropertiesForKeys: nil)\n                    for fileURL in fileURLs {\n                        // skip the hidden\n                        let baseName = fileURL.lastPathComponent\n                        if baseName.hasPrefix(\".\") {\n                            continue\n                        }\n                        // add to applications\n                        if baseName.hasSuffix(\".app\") {\n                            var appName = fileURL.deletingPathExtension().lastPathComponent\n                            \n                            // nixpkgs fixes\n                            do {\n                                // iTerm is installed as iTerm2.app\n                                if appName == \"iTerm2\" {\n                                    appName = \"iTerm\"\n                                }\n                                // IntelliJ IDEA and PyCharm community edition have CE appended\n                                else if appName == \"IntelliJ IDEA CE\" {\n                                    appName = \"IntelliJ IDEA\"\n                                } else if appName == \"PyCharm CE\" {\n                                    appName = \"PyCharm\"\n                                }\n                            }\n                            \n                            applications.insert(appName)\n                            continue\n                        }\n                        // add subdirectory to searchDirs\n                        var isDir : ObjCBool = false\n                        if fileManager.fileExists(atPath: fileURL.path, isDirectory:&isDir) {\n                            if isDir.boolValue {\n                                // file exists and is a directory\n                                \n                                // check if it is a alias\n                                var isAlias: AnyObject? = nil\n                                do {\n                                    try (fileURL as NSURL).getResourceValue(&isAlias, forKey: URLResourceKey.isAliasFileKey)\n                                } catch _ {}\n                                if let isAlias = isAlias as? Bool {\n                                    // for nix-darwin users, applications installed through nix will be installed into a symlinked (alias) directory called \"Nix Apps\"\n                                    if fileURL.lastPathComponent == \"Nix Apps\" {\n                                        // symlink needs to be resolved first\n                                        tmpSearchDirs.insert(URL(string: try fileManager.destinationOfSymbolicLink(atPath: fileURL.absoluteString.removingPercentEncoding!.replacingOccurrences(of: \"file://\", with: \"\")))!)\n                                    }\n                                    // skip alias directory\n                                    else if !isAlias {\n                                        tmpSearchDirs.insert(fileURL)\n                                    }\n                                }\n                            } else {\n                                // file exists and is not a directory\n                            }\n                        } else {\n                            // file does not exist\n                        }\n                    }\n                    tmpSearchDirs.remove(currentDir)\n                }\n                searchDirs = tmpSearchDirs\n            }\n            \n        } catch {\n            print(error.localizedDescription)\n            logw(error.localizedDescription)\n        }\n        \n        return applications\n    }\n    \n}\n"
  },
  {
    "path": "OpenInTerminalCore/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>$(DEVELOPMENT_LANGUAGE)</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>FMWK</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>$(MARKETING_VERSION)</string>\n\t<key>CFBundleVersion</key>\n\t<string>$(CURRENT_PROJECT_VERSION)</string>\n\t<key>NSHumanReadableCopyright</key>\n\t<string>Copyright © 2019 Jianing Wang. All rights reserved.</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "OpenInTerminalCore/Log.swift",
    "content": "//\n//  log.swift\n//  cd2swiftTest\n//\n//  Created by Jianing Wang on 2019/4/10.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\nimport Foundation\n\n///The log class containing all the needed methods\nopen class Log {\n    \n    ///The max size a log file can be in Kilobytes. Default is 1024 (1 MB)\n    open var maxFileSize: UInt64 = 1024\n    \n    ///The max number of log file that will be stored. Once this point is reached, the oldest file is deleted.\n    open var maxFileCount = 4\n    \n    ///The directory in which the log files will be written\n    open var directory = Log.defaultDirectory() {\n        didSet {\n            directory = NSString(string: directory).expandingTildeInPath\n            \n            let fileManager = FileManager.default\n            if !fileManager.fileExists(atPath: directory) {\n                do {\n                    try fileManager.createDirectory(atPath: directory, withIntermediateDirectories: true, attributes: nil)\n                } catch {\n                    NSLog(\"Couldn't create directory at \\(directory)\")\n                }\n            }\n        }\n    }\n    \n    open var currentPath: String {\n        return \"\\(directory)/\\(logName(0))\"\n    }\n    \n    ///The name of the log files\n    open var name = \"logfile\"\n    \n    ///Whether or not logging also prints to the console\n    open var printToConsole = true\n    \n    ///logging singleton\n    open class var logger: Log {\n        \n        struct Static {\n            static let instance: Log = Log()\n        }\n        return Static.instance\n    }\n    //the date formatter\n    var dateFormatter: DateFormatter {\n        let formatter = DateFormatter()\n        formatter.timeStyle = .medium\n        formatter.dateStyle = .medium\n        return formatter\n    }\n    \n    ///write content to the current log file.\n    open func write(_ text: String) {\n        let path = currentPath\n        let fileManager = FileManager.default\n        if !fileManager.fileExists(atPath: path) {\n            do {\n                try \"\".write(toFile: path, atomically: true, encoding: String.Encoding.utf8)\n            } catch _ {\n            }\n        }\n        if let fileHandle = FileHandle(forWritingAtPath: path) {\n            let dateStr = dateFormatter.string(from: Date())\n            let writeText = \"[\\(dateStr)]: \\(text)\\n\"\n            fileHandle.seekToEndOfFile()\n            fileHandle.write(writeText.data(using: String.Encoding.utf8)!)\n            fileHandle.closeFile()\n            if printToConsole {\n                print(writeText, terminator: \"\")\n            }\n            cleanup()\n        }\n    }\n    ///do the checks and cleanup\n    func cleanup() {\n        let path = \"\\(directory)/\\(logName(0))\"\n        let size = fileSize(path)\n        let maxSize: UInt64 = maxFileSize*1024\n        if size > 0 && size >= maxSize && maxSize > 0 && maxFileCount > 0 {\n            rename(0)\n            //delete the oldest file\n            let deletePath = \"\\(directory)/\\(logName(maxFileCount))\"\n            let fileManager = FileManager.default\n            do {\n                try fileManager.removeItem(atPath: deletePath)\n            } catch _ {\n            }\n        }\n    }\n    \n    ///check the size of a file\n    func fileSize(_ path: String) -> UInt64 {\n        let fileManager = FileManager.default\n        let attrs: NSDictionary? = try? fileManager.attributesOfItem(atPath: path) as NSDictionary\n        if let dict = attrs {\n            return dict.fileSize()\n        }\n        return 0\n    }\n    \n    ///Recursive method call to rename log files\n    func rename(_ index: Int) {\n        let fileManager = FileManager.default\n        let path = \"\\(directory)/\\(logName(index))\"\n        let newPath = \"\\(directory)/\\(logName(index+1))\"\n        if fileManager.fileExists(atPath: newPath) {\n            rename(index+1)\n        }\n        do {\n            try fileManager.moveItem(atPath: path, toPath: newPath)\n        } catch _ {\n        }\n    }\n    \n    ///gets the log name\n    func logName(_ num :Int) -> String {\n        return \"\\(name)-\\(num).log\"\n    }\n    \n    ///get the default log directory\n    class func defaultDirectory() -> String {\n        var path = \"\"\n        let fileManager = FileManager.default\n        #if os(iOS)\n        let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)\n        path = \"\\(paths[0])/Logs\"\n        #elseif os(macOS)\n        let urls = fileManager.urls(for: .libraryDirectory, in: .userDomainMask)\n        if let url = urls.last {\n            path = \"\\(url.path)/Logs\"\n        }\n        #endif\n        if !fileManager.fileExists(atPath: path) && path != \"\"  {\n            do {\n                try fileManager.createDirectory(atPath: path, withIntermediateDirectories: false, attributes: nil)\n            } catch _ {\n            }\n        }\n        return path\n    }\n    \n}\n\n///Writes content to the current log file\npublic func logw(_ text: String) {\n    Log.logger.write(text)\n}\n"
  },
  {
    "path": "OpenInTerminalCore/OpenInTerminalCore.h",
    "content": "//\n//  OpenInTerminalCore.h\n//  OpenInTerminalCore\n//\n//  Created by Cameron Ingham on 4/17/19.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\n#import <Cocoa/Cocoa.h>\n\n//! Project version number for OpenInTerminalCore.\nFOUNDATION_EXPORT double OpenInTerminalCoreVersionNumber;\n\n//! Project version string for OpenInTerminalCore.\nFOUNDATION_EXPORT const unsigned char OpenInTerminalCoreVersionString[];\n\n// In this header, you should import all the public headers of your framework using statements like #import <OpenInTerminalCore/PublicHeader.h>\n\n\n"
  },
  {
    "path": "OpenInTerminalCore/ScriptManager.swift",
    "content": "//\n//  ScriptManager.swift\n//  OpenInTerminalCore\n//\n//  Created by Jianing Wang on 2020/12/7.\n//  Copyright © 2020 Jianing Wang. All rights reserved.\n//\n\nimport Foundation\nimport Carbon\n\npublic class ScriptManager {\n    \n    public static var shared = ScriptManager()\n    \n    // MARK: - Get AppleScript\n    \n    /// This script requires parameters to be passed in.\n    /// `parameter`: open -a\n    public func getGeneralScript() -> String {\n        let script = \"\"\"\n        on openApp(command)\n            tell application \"Finder\"\n                activate\n                do shell script command\n            end tell\n        end openApp\n        \"\"\"\n        return script\n    }\n    \n    public func getGeneralScriptName() -> String {\n        return Constants.generalScript\n    }\n    \n    /// Open path in a new tab of Terminal\n    public func getTerminalNewTabAppleScript() -> String {\n        let script = \"\"\"\n        on openApp(command)\n            if not application \"Terminal\" is running then\n                tell application \"Terminal\"\n                    do script command\n                    activate\n                end tell\n            else\n                tell application \"Terminal\"\n                    if not (exists window 1) then\n                        do script command\n                        activate\n                    else\n                        activate\n                        tell application \"System Events\" to keystroke \"t\" using command down\n                        repeat while contents of selected tab of window 1 starts with linefeed\n                            delay 0.01\n                        end repeat\n                        do script command in window 1\n                    end if\n                end tell\n            end if\n        end openApp\n        \"\"\"\n        return script\n    }\n    \n    public func getTerminalNewTabScriptName() -> String {\n        return Constants.terminalNewTabScript\n    }\n    \n    public func getTerminalNewTabCommand(path: String) -> String {\n        let command = \"cd \\(path.terminalPathEscaped())\"\n        return command\n    }\n    \n    /// Open path in a new tab of Terminal\n    public func getTerminalNewTabAppleScript(url: URL) -> String {\n        let script = \"\"\"\n        if not application \"Terminal\" is running then\n            tell application \"Terminal\"\n                do script \"cd \\(url.path.terminalPathEscaped())\"\n                activate\n            end tell\n        else\n            tell application \"Terminal\"\n                if not (exists window 1) then\n                    do script \"cd \\(url.path.terminalPathEscaped())\"\n                    activate\n                else\n                    activate\n                    tell application \"System Events\" to keystroke \"t\" using command down\n                    repeat while contents of selected tab of window 1 starts with linefeed\n                        delay 0.01\n                    end repeat\n                    do script \"cd \\(url.path.terminalPathEscaped())\" in window 1\n                end if\n            end tell\n        end if\n        \"\"\"\n        return script\n    }\n    \n    \n    // MARK: - Utils\n    \n    public func getScriptURL(with name: String) -> URL? {\n        let scriptFolderURL = try? FileManager.default.url(for: .applicationScriptsDirectory, in: .userDomainMask, appropriateFor: nil, create: true)\n        guard let url = scriptFolderURL else { return nil }\n        let fileURL = url\n            .appendingPathComponent(name)\n            .appendingPathExtension(\"scpt\")\n        return fileURL\n    }\n    \n    func getScriptEvent(functionName: String, _ parameter: String) -> NSAppleEventDescriptor {\n        let parameters = NSAppleEventDescriptor.list()\n        parameters.insert(NSAppleEventDescriptor(string: parameter), at: 0)\n\n        let event = NSAppleEventDescriptor(\n            eventClass: AEEventClass(kASAppleScriptSuite),\n            eventID: AEEventID(kASSubroutineEvent),\n            targetDescriptor: nil,\n            returnID: AEReturnID(kAutoGenerateReturnID),\n            transactionID: AETransactionID(kAnyTransactionID)\n        )\n        event.setDescriptor(NSAppleEventDescriptor(string: functionName), forKeyword: AEKeyword(keyASSubroutineName))\n        event.setDescriptor(parameters, forKeyword: AEKeyword(keyDirectObject))\n        return event\n    }\n    \n    \n    // MARK: - Deprecated Functions\n    \n    /// **[Deprecated]** This script can run independently without additional parameters.\n    @available(*, deprecated, message: \"Use getGeneralScript()\")\n    func getAppleScript(app: App) -> String {\n        switch app.type {\n        case .terminal:\n            let openCommand = DefaultsManager.shared.getOpenCommand(app, escapeCount: 2)\n            let script = \"\"\"\n            tell application \"Finder\"\n                set finderSelList to selection as alias list\n                \n                if finderSelList ≠ {} then\n                    set theSelected to item 1 of finderSelList\n                    set thePath to POSIX path of (contents of theSelected)\n                    try\n                        do shell script \"cd \" & quoted form of thePath\n                    on error\n                        set thePath to POSIX path of ((container of theSelected) as text)\n                    end try\n                end if\n                \n                if finderSelList = {} then\n                    tell application \"Finder\"\n                        try\n                            set thePath to POSIX path of ((target of front Finder window) as text)\n                        on error\n                            set thePath to POSIX path of (path to desktop)\n                        end try\n                    end tell\n                end if\n            end tell\n\n            do shell script \"\\(openCommand) \" & quoted form of thePath\n            \"\"\"\n            return script\n        case .editor:\n            let openCommand = DefaultsManager.shared.getOpenCommand(app, escapeCount: 2)\n            let script = \"\"\"\n            tell application \"Finder\"\n                set pathList to {}\n                \n                set finderSelList to selection as alias list\n                \n                if finderSelList = {} then\n                    tell application \"Finder\"\n                        try\n                            set thePath to POSIX path of ((target of front Finder window) as text)\n                        on error\n                            set thePath to POSIX path of (path to desktop)\n                        end try\n                        set end of pathList to thePath\n                    end tell\n                end if\n                \n                if finderSelList ≠ {} then\n                    repeat with theSelected in finderSelList\n                        set thePath to POSIX path of (contents of theSelected)\n                        set end of pathList to thePath\n                    end repeat\n                end if\n                \n            end tell\n\n            set scriptStr to \"\\(openCommand)\"\n\n            repeat with thePath in pathList\n                set scriptStr to scriptStr & \" \" & quoted form of thePath\n            end repeat\n\n            do shell script scriptStr\n            \"\"\"\n            return script\n        }\n    }\n    /// **[Deprecated]** Open path in a new tab of Terminal\n    func getTerminalNewTabAppleScript2() -> String {\n        let script = \"\"\"\n        tell application \"Finder\"\n            set finderSelList to selection as alias list\n            \n            if finderSelList ≠ {} then\n                set theSelected to item 1 of finderSelList\n                set thePath to POSIX path of (contents of theSelected)\n                try\n                    do shell script \"cd \" & quoted form of thePath\n                on error\n                    set thePath to POSIX path of ((container of theSelected) as text)\n                end try\n            end if\n            \n            if finderSelList = {} then\n                tell application \"Finder\"\n                    try\n                        set thePath to POSIX path of ((target of front Finder window) as text)\n                    on error\n                        set thePath to POSIX path of (path to desktop)\n                    end try\n                end tell\n            end if\n        end tell\n\n        if not application \"Terminal\" is running then\n            tell application \"Terminal\"\n                do script \"cd \" & quoted form of thePath\n                activate\n            end tell\n        else\n            tell application \"Terminal\"\n                if not (exists window 1) then\n                    do script \"cd \" & quoted form of thePath\n                    activate\n                else\n                    activate\n                    tell application \"System Events\" to keystroke \"t\" using command down\n                    repeat while contents of selected tab of window 1 starts with linefeed\n                        delay 0.01\n                    end repeat\n                    do script \"cd \" & quoted form of thePath in window 1\n                end if\n            end tell\n        end if\n        \"\"\"\n        return script\n    }\n}\n\n"
  },
  {
    "path": "OpenInTerminalCore/ScriptingBridge/Finder.swift",
    "content": "import AppKit\nimport ScriptingBridge\n\n@objc public protocol SBObjectProtocol: NSObjectProtocol {\n    func get() -> Any!\n}\n\n@objc public protocol SBApplicationProtocol: SBObjectProtocol {\n    func activate()\n    var delegate: SBApplicationDelegate! { get set }\n    var isRunning: Bool { get }\n}\n\n// MARK: FinderPriv\n@objc public enum FinderPriv : AEKeyword {\n    case readOnly = 0x72656164 /* 'read' */\n    case readWrite = 0x72647772 /* 'rdwr' */\n    case writeOnly = 0x77726974 /* 'writ' */\n    case none = 0x6e6f6e65 /* 'none' */\n}\n\n// MARK: FinderEdfm\n@objc public enum FinderEdfm : AEKeyword {\n    case macOSFormat = 0x64666866 /* 'dfhf' */\n    case macOSExtendedFormat = 0x6466682b /* 'dfh+' */\n    case ufsFormat = 0x64667566 /* 'dfuf' */\n    case nfsFormat = 0x64666e66 /* 'dfnf' */\n    case audioFormat = 0x64666175 /* 'dfau' */\n    case proDOSFormat = 0x64667072 /* 'dfpr' */\n    case msdosFormat = 0x64666d73 /* 'dfms' */\n    case ntfsFormat = 0x64666e74 /* 'dfnt' */\n    case iso9660Format = 0x64663936 /* 'df96' */\n    case highSierraFormat = 0x64666873 /* 'dfhs' */\n    case quickTakeFormat = 0x64667174 /* 'dfqt' */\n    case applePhotoFormat = 0x64667068 /* 'dfph' */\n    case appleShareFormat = 0x64666173 /* 'dfas' */\n    case udfFormat = 0x64667564 /* 'dfud' */\n    case webDAVFormat = 0x64667764 /* 'dfwd' */\n    case ftpFormat = 0x64666674 /* 'dfft' */\n    case packetWrittenUDFFormat = 0x64667075 /* 'dfpu' */\n    case xsanFormat = 0x64666163 /* 'dfac' */\n    case unknownFormat = 0x64663f3f /* 'df??' */\n}\n\n// MARK: FinderIpnl\n@objc public enum FinderIpnl : AEKeyword {\n    case generalInformationPanel = 0x67706e6c /* 'gpnl' */\n    case sharingPanel = 0x73706e6c /* 'spnl' */\n    case memoryPanel = 0x6d706e6c /* 'mpnl' */\n    case previewPanel = 0x76706e6c /* 'vpnl' */\n    case applicationPanel = 0x61706e6c /* 'apnl' */\n    case languagesPanel = 0x706b6c67 /* 'pklg' */\n    case pluginsPanel = 0x706b7067 /* 'pkpg' */\n    case nameExtensionPanel = 0x6e706e6c /* 'npnl' */\n    case commentsPanel = 0x63706e6c /* 'cpnl' */\n    case contentIndexPanel = 0x63696e6c /* 'cinl' */\n    case burningPanel = 0x62706e6c /* 'bpnl' */\n    case moreInfoPanel = 0x6d696e6c /* 'minl' */\n    case simpleHeaderPanel = 0x73686e6c /* 'shnl' */\n}\n\n// MARK: FinderPple\n@objc public enum FinderPple : AEKeyword {\n    case generalPreferencesPanel = 0x70676e70 /* 'pgnp' */\n    case labelPreferencesPanel = 0x706c6270 /* 'plbp' */\n    case sidebarPreferencesPanel = 0x70736964 /* 'psid' */\n    case advancedPreferencesPanel = 0x70616476 /* 'padv' */\n}\n\n// MARK: FinderEcvw\n@objc public enum FinderEcvw : AEKeyword {\n    case iconView = 0x69636e76 /* 'icnv' */\n    case listView = 0x6c737677 /* 'lsvw' */\n    case columnView = 0x636c7677 /* 'clvw' */\n    case groupView = 0x67727677 /* 'grvw' */\n    case flowView = 0x666c7677 /* 'flvw' */\n}\n\n// MARK: FinderEarr\n@objc public enum FinderEarr : AEKeyword {\n    case notArranged = 0x6e617272 /* 'narr' */\n    case snapToGrid = 0x67726461 /* 'grda' */\n    case arrangedByName = 0x6e616d61 /* 'nama' */\n    case arrangedByModificationDate = 0x6d647461 /* 'mdta' */\n    case arrangedByCreationDate = 0x63647461 /* 'cdta' */\n    case arrangedBySize = 0x73697a61 /* 'siza' */\n    case arrangedByKind = 0x6b696e61 /* 'kina' */\n    case arrangedByLabel = 0x6c616261 /* 'laba' */\n}\n\n// MARK: FinderEpos\n@objc public enum FinderEpos : AEKeyword {\n    case right = 0x6c726774 /* 'lrgt' */\n    case bottom = 0x6c626f74 /* 'lbot' */\n}\n\n// MARK: FinderSodr\n@objc public enum FinderSodr : AEKeyword {\n    case normal = 0x736e726d /* 'snrm' */\n    case reversed = 0x73727673 /* 'srvs' */\n}\n\n// MARK: FinderElsv\n@objc public enum FinderElsv : AEKeyword {\n    case nameColumn = 0x656c736e /* 'elsn' */\n    case modificationDateColumn = 0x656c736d /* 'elsm' */\n    case creationDateColumn = 0x656c7363 /* 'elsc' */\n    case sizeColumn = 0x656c7373 /* 'elss' */\n    case kindColumn = 0x656c736b /* 'elsk' */\n    case labelColumn = 0x656c736c /* 'elsl' */\n    case versionColumn = 0x656c7376 /* 'elsv' */\n    case commentColumn = 0x656c7343 /* 'elsC' */\n}\n\n// MARK: FinderLvic\n@objc public enum FinderLvic : AEKeyword {\n    case smallIcon = 0x736d6963 /* 'smic' */\n    case largeIcon = 0x6c676963 /* 'lgic' */\n}\n\n// MARK: FinderGenericMethods\n@objc public protocol FinderGenericMethods {\n    @objc optional func openUsing(_ using_: SBObject!, withProperties: [AnyHashable : Any]!) // Open the specified object(s)\n    @objc optional func printWithProperties(_ withProperties: [AnyHashable : Any]!) // Print the specified object(s)\n    @objc optional func activate() // Activate the specified window (or the Finder)\n    @objc optional func close() // Close an object\n    @objc optional func dataSizeAs(_ as: NSNumber!) -> Int // Return the size in bytes of an object\n    @objc optional func delete() -> SBObject // Move an item from its container to the trash\n    @objc optional func duplicateTo(_ to: SBObject!, replacing: Bool, routingSuppressed: Bool, exactCopy: Bool) -> SBObject // Duplicate one or more object(s)\n    @objc optional func exists() -> Bool // Verify if an object exists\n    @objc optional func moveTo(_ to: SBObject!, replacing: Bool, positionedAt: [Any]!, routingSuppressed: Bool) -> SBObject // Move object(s) to a new location\n    @objc optional func select() // Select the specified object(s)\n    @objc optional func sortBy(_ by: Selector) -> SBObject // Return the specified object(s) in a sorted list\n    @objc optional func cleanUpBy(_ by: Selector) // Arrange items in window nicely (only applies to open windows in icon view that are not kept arranged)\n    @objc optional func eject() // Eject the specified disk(s)\n    @objc optional func emptySecurity(_ security: Bool) // Empty the trash\n    @objc optional func erase() // (NOT AVAILABLE) Erase the specified disk(s)\n    @objc optional func reveal() // Bring the specified object(s) into view\n    @objc optional func updateNecessity(_ necessity: Bool, registeringApplications: Bool) // Update the display of the specified object(s) to match their on-disk representation\n}\n\n// MARK: FinderApplication\n@objc public protocol FinderApplication: SBApplicationProtocol {\n    @objc optional func items() -> SBElementArray\n    @objc optional func containers() -> SBElementArray\n    @objc optional func disks() -> SBElementArray\n    @objc optional func folders() -> SBElementArray\n    @objc optional func files() -> SBElementArray\n    @objc optional func aliasFiles() -> SBElementArray\n    @objc optional func applicationFiles() -> SBElementArray\n    @objc optional func documentFiles() -> SBElementArray\n    @objc optional func internetLocationFiles() -> SBElementArray\n    @objc optional func clippings() -> SBElementArray\n    @objc optional func packages() -> SBElementArray\n    @objc optional func windows() -> SBElementArray\n    @objc optional func FinderWindows() -> SBElementArray\n    @objc optional func clippingWindows() -> SBElementArray\n    @objc optional var clipboard: SBObject { get } // (NOT AVAILABLE YET) the Finder’s clipboard window\n    @objc optional var name: String { get } // the Finder’s name\n    @objc optional var visible: Bool { get } // Is the Finder’s layer visible?\n    @objc optional var frontmost: Bool { get } // Is the Finder the frontmost process?\n    @objc optional var selection: SBObject { get } // the selection in the frontmost Finder window\n    @objc optional var insertionLocation: SBObject { get } // the container in which a new folder would appear if “New Folder” was selected\n    @objc optional var productVersion: String { get } // the version of the System software running on this computer\n    @objc optional var version: String { get } // the version of the Finder\n    @objc optional var startupDisk: FinderDisk { get } // the startup disk\n    @objc optional var desktop: FinderDesktopObject { get } // the desktop\n    @objc optional var trash: FinderTrashObject { get } // the trash\n    @objc optional var home: FinderFolder { get } // the home directory\n    @objc optional var computerContainer: FinderComputerObject { get } // the computer location (as in Go > Computer)\n    @objc optional var FinderPreferences: FinderPreferences { get } // Various preferences that apply to the Finder as a whole\n    @objc optional func quit() // Quit the Finder\n    @objc optional func activate() // Activate the specified window (or the Finder)\n    @objc optional func copy() // (NOT AVAILABLE YET) Copy the selected items to the clipboard (the Finder must be the front application)\n    @objc optional func eject() // Eject the specified disk(s)\n    @objc optional func emptySecurity(_ security: Bool) // Empty the trash\n    @objc optional func restart() // Restart the computer\n    @objc optional func shutDown() // Shut Down the computer\n    @objc optional func sleep() // Put the computer to sleep\n    @objc optional func setVisible(_ visible: Bool) // Is the Finder’s layer visible?\n    @objc optional func setFrontmost(_ frontmost: Bool) // Is the Finder the frontmost process?\n    @objc optional func setSelection(_ selection: SBObject!) // the selection in the frontmost Finder window\n    @objc optional var desktopPicture: FinderFile { get } // the desktop picture of the main monitor\n    @objc optional func setDesktopPicture(_ desktopPicture: FinderFile!) // the desktop picture of the main monitor\n}\nextension SBApplication: FinderApplication {}\n\n// MARK: FinderItem\n@objc public protocol FinderItem: SBObjectProtocol, FinderGenericMethods {\n    @objc optional var name: String { get } // the name of the item\n    @objc optional var displayedName: String { get } // the user-visible name of the item\n    @objc optional var nameExtension: String { get } // the name extension of the item (such as “txt”)\n    @objc optional var extensionHidden: Bool { get } // Is the item's extension hidden from the user?\n    @objc optional var index: Int { get } // the index in the front-to-back ordering within its container\n    @objc optional var container: SBObject { get } // the container of the item\n    @objc optional var disk: SBObject { get } // the disk on which the item is stored\n    @objc optional var position: NSPoint { get } // the position of the item within its parent window (can only be set for an item in a window viewed as icons or buttons)\n    @objc optional var desktopPosition: NSPoint { get } // the position of the item on the desktop\n    @objc optional var bounds: NSRect { get } // the bounding rectangle of the item (can only be set for an item in a window viewed as icons or buttons)\n    @objc optional var labelIndex: Int { get } // the label of the item\n    @objc optional var locked: Bool { get } // Is the file locked?\n    @objc optional var kind: String { get } // the kind of the item\n    @objc optional var objectDescription: String { get } // a description of the item\n    @objc optional var comment: String { get } // the comment of the item, displayed in the “Get Info” window\n    @objc optional var size: Int64 { get } // the logical size of the item\n    @objc optional var physicalSize: Int64 { get } // the actual space used by the item on disk\n    @objc optional var creationDate: Date { get } // the date on which the item was created\n    @objc optional var modificationDate: Date { get } // the date on which the item was last modified\n    @objc optional var icon: FinderIconFamily { get } // the icon bitmap of the item\n    @objc optional var URL: String { get } // the URL of the item\n    @objc optional var owner: String { get } // the user that owns the container\n    @objc optional var group: String { get } // the user or group that has special access to the container\n    @objc optional var ownerPrivileges: FinderPriv { get }\n    @objc optional var groupPrivileges: FinderPriv { get }\n    @objc optional var everyonesPrivileges: FinderPriv { get }\n    @objc optional var informationWindow: SBObject { get } // the information window for the item\n    @objc optional var properties: [AnyHashable : Any] { get } // every property of an item\n    @objc optional func setName(_ name: String!) // the name of the item\n    @objc optional func setNameExtension(_ nameExtension: String!) // the name extension of the item (such as “txt”)\n    @objc optional func setExtensionHidden(_ extensionHidden: Bool) // Is the item's extension hidden from the user?\n    @objc optional func setPosition(_ position: NSPoint) // the position of the item within its parent window (can only be set for an item in a window viewed as icons or buttons)\n    @objc optional func setDesktopPosition(_ desktopPosition: NSPoint) // the position of the item on the desktop\n    @objc optional func setBounds(_ bounds: NSRect) // the bounding rectangle of the item (can only be set for an item in a window viewed as icons or buttons)\n    @objc optional func setLabelIndex(_ labelIndex: Int) // the label of the item\n    @objc optional func setLocked(_ locked: Bool) // Is the file locked?\n    @objc optional func setComment(_ comment: String!) // the comment of the item, displayed in the “Get Info” window\n    @objc optional func setModificationDate(_ modificationDate: Date!) // the date on which the item was last modified\n    @objc optional func setIcon(_ icon: FinderIconFamily!) // the icon bitmap of the item\n    @objc optional func setOwner(_ owner: String!) // the user that owns the container\n    @objc optional func setGroup(_ group: String!) // the user or group that has special access to the container\n    @objc optional func setOwnerPrivileges(_ ownerPrivileges: FinderPriv)\n    @objc optional func setGroupPrivileges(_ groupPrivileges: FinderPriv)\n    @objc optional func setEveryonesPrivileges(_ everyonesPrivileges: FinderPriv)\n    @objc optional func setProperties(_ properties: [AnyHashable : Any]!) // every property of an item\n}\nextension SBObject: FinderItem {}\n\n// MARK: FinderContainer\n@objc public protocol FinderContainer: FinderItem {\n    @objc optional func items() -> SBElementArray\n    @objc optional func containers() -> SBElementArray\n    @objc optional func folders() -> SBElementArray\n    @objc optional func files() -> SBElementArray\n    @objc optional func aliasFiles() -> SBElementArray\n    @objc optional func applicationFiles() -> SBElementArray\n    @objc optional func documentFiles() -> SBElementArray\n    @objc optional func internetLocationFiles() -> SBElementArray\n    @objc optional func clippings() -> SBElementArray\n    @objc optional func packages() -> SBElementArray\n    @objc optional var entireContents: SBObject { get } // the entire contents of the container, including the contents of its children\n    @objc optional var expandable: Bool { get } // (NOT AVAILABLE YET) Is the container capable of being expanded as an outline?\n    @objc optional var expanded: Bool { get } // (NOT AVAILABLE YET) Is the container opened as an outline? (can only be set for containers viewed as lists)\n    @objc optional var completelyExpanded: Bool { get } // (NOT AVAILABLE YET) Are the container and all of its children opened as outlines? (can only be set for containers viewed as lists)\n    @objc optional var containerWindow: SBObject { get } // the container window for this folder\n    @objc optional func setExpanded(_ expanded: Bool) // (NOT AVAILABLE YET) Is the container opened as an outline? (can only be set for containers viewed as lists)\n    @objc optional func setCompletelyExpanded(_ completelyExpanded: Bool) // (NOT AVAILABLE YET) Are the container and all of its children opened as outlines? (can only be set for containers viewed as lists)\n}\nextension SBObject: FinderContainer {}\n\n// MARK: FinderComputerObject\n@objc public protocol FinderComputerObject: FinderItem {\n}\nextension SBObject: FinderComputerObject {}\n\n// MARK: FinderDisk\n@objc public protocol FinderDisk: FinderContainer {\n    @objc optional func items() -> SBElementArray\n    @objc optional func containers() -> SBElementArray\n    @objc optional func folders() -> SBElementArray\n    @objc optional func files() -> SBElementArray\n    @objc optional func aliasFiles() -> SBElementArray\n    @objc optional func applicationFiles() -> SBElementArray\n    @objc optional func documentFiles() -> SBElementArray\n    @objc optional func internetLocationFiles() -> SBElementArray\n    @objc optional func clippings() -> SBElementArray\n    @objc optional func packages() -> SBElementArray\n    @objc optional func id() -> Int // the unique id for this disk (unchanged while disk remains connected and Finder remains running)\n    @objc optional var capacity: Int64 { get } // the total number of bytes (free or used) on the disk\n    @objc optional var freeSpace: Int64 { get } // the number of free bytes left on the disk\n    @objc optional var ejectable: Bool { get } // Can the media be ejected (floppies, CDs, and so on)?\n    @objc optional var localVolume: Bool { get } // Is the media a local volume (as opposed to a file server)?\n    @objc optional var startup: Bool { get } // Is this disk the boot disk?\n    @objc optional var format: FinderEdfm { get } // the filesystem format of this disk\n    @objc optional var journalingEnabled: Bool { get } // Does this disk do file system journaling?\n    @objc optional var ignorePrivileges: Bool { get } // Ignore permissions on this disk?\n    @objc optional func setIgnorePrivileges(_ ignorePrivileges: Bool) // Ignore permissions on this disk?\n}\nextension SBObject: FinderDisk {}\n\n// MARK: FinderFolder\n@objc public protocol FinderFolder: FinderContainer {\n    @objc optional func items() -> SBElementArray\n    @objc optional func containers() -> SBElementArray\n    @objc optional func folders() -> SBElementArray\n    @objc optional func files() -> SBElementArray\n    @objc optional func aliasFiles() -> SBElementArray\n    @objc optional func applicationFiles() -> SBElementArray\n    @objc optional func documentFiles() -> SBElementArray\n    @objc optional func internetLocationFiles() -> SBElementArray\n    @objc optional func clippings() -> SBElementArray\n    @objc optional func packages() -> SBElementArray\n}\nextension SBObject: FinderFolder {}\n\n// MARK: FinderDesktopObject\n@objc public protocol FinderDesktopObject: FinderContainer {\n    @objc optional func items() -> SBElementArray\n    @objc optional func containers() -> SBElementArray\n    @objc optional func disks() -> SBElementArray\n    @objc optional func folders() -> SBElementArray\n    @objc optional func files() -> SBElementArray\n    @objc optional func aliasFiles() -> SBElementArray\n    @objc optional func applicationFiles() -> SBElementArray\n    @objc optional func documentFiles() -> SBElementArray\n    @objc optional func internetLocationFiles() -> SBElementArray\n    @objc optional func clippings() -> SBElementArray\n    @objc optional func packages() -> SBElementArray\n}\nextension SBObject: FinderDesktopObject {}\n\n// MARK: FinderTrashObject\n@objc public protocol FinderTrashObject: FinderContainer {\n    @objc optional func items() -> SBElementArray\n    @objc optional func containers() -> SBElementArray\n    @objc optional func folders() -> SBElementArray\n    @objc optional func files() -> SBElementArray\n    @objc optional func aliasFiles() -> SBElementArray\n    @objc optional func applicationFiles() -> SBElementArray\n    @objc optional func documentFiles() -> SBElementArray\n    @objc optional func internetLocationFiles() -> SBElementArray\n    @objc optional func clippings() -> SBElementArray\n    @objc optional func packages() -> SBElementArray\n    @objc optional var warnsBeforeEmptying: Bool { get } // Display a dialog when emptying the trash?\n    @objc optional func setWarnsBeforeEmptying(_ warnsBeforeEmptying: Bool) // Display a dialog when emptying the trash?\n}\nextension SBObject: FinderTrashObject {}\n\n// MARK: FinderFile\n@objc public protocol FinderFile: FinderItem {\n    @objc optional var fileType: NSNumber { get } // the OSType identifying the type of data contained in the item\n    @objc optional var creatorType: NSNumber { get } // the OSType identifying the application that created the item\n    @objc optional var stationery: Bool { get } // Is the file a stationery pad?\n    @objc optional var productVersion: String { get } // the version of the product (visible at the top of the “Get Info” window)\n    @objc optional var version: String { get } // the version of the file (visible at the bottom of the “Get Info” window)\n    @objc optional func setFileType(_ fileType: NSNumber!) // the OSType identifying the type of data contained in the item\n    @objc optional func setCreatorType(_ creatorType: NSNumber!) // the OSType identifying the application that created the item\n    @objc optional func setStationery(_ stationery: Bool) // Is the file a stationery pad?\n}\nextension SBObject: FinderFile {}\n\n// MARK: FinderAliasFile\n@objc public protocol FinderAliasFile: FinderFile {\n    @objc optional var originalItem: SBObject { get } // the original item pointed to by the alias\n    @objc optional func setOriginalItem(_ originalItem: SBObject!) // the original item pointed to by the alias\n}\nextension SBObject: FinderAliasFile {}\n\n// MARK: FinderApplicationFile\n@objc public protocol FinderApplicationFile: FinderFile {\n    @objc optional func id() -> String // the bundle identifier or creator type of the application\n    @objc optional var suggestedSize: Int { get } // (AVAILABLE IN 10.1 TO 10.4) the memory size with which the developer recommends the application be launched\n    @objc optional var minimumSize: Int { get } // (AVAILABLE IN 10.1 TO 10.4) the smallest memory size with which the application can be launched\n    @objc optional var preferredSize: Int { get } // (AVAILABLE IN 10.1 TO 10.4) the memory size with which the application will be launched\n    @objc optional var acceptsHighLevelEvents: Bool { get } // Is the application high-level event aware? (OBSOLETE: always returns true)\n    @objc optional var hasScriptingTerminology: Bool { get } // Does the process have a scripting terminology, i.e., can it be scripted?\n    @objc optional var opensInClassic: Bool { get } // (AVAILABLE IN 10.1 TO 10.4) Should the application launch in the Classic environment?\n    @objc optional func setMinimumSize(_ minimumSize: Int) // (AVAILABLE IN 10.1 TO 10.4) the smallest memory size with which the application can be launched\n    @objc optional func setPreferredSize(_ preferredSize: Int) // (AVAILABLE IN 10.1 TO 10.4) the memory size with which the application will be launched\n    @objc optional func setOpensInClassic(_ opensInClassic: Bool) // (AVAILABLE IN 10.1 TO 10.4) Should the application launch in the Classic environment?\n}\nextension SBObject: FinderApplicationFile {}\n\n// MARK: FinderDocumentFile\n@objc public protocol FinderDocumentFile: FinderFile {\n}\nextension SBObject: FinderDocumentFile {}\n\n// MARK: FinderInternetLocationFile\n@objc public protocol FinderInternetLocationFile: FinderFile {\n    @objc optional var location: String { get } // the internet location\n}\nextension SBObject: FinderInternetLocationFile {}\n\n// MARK: FinderClipping\n@objc public protocol FinderClipping: FinderFile {\n    @objc optional var clippingWindow: SBObject { get } // (NOT AVAILABLE YET) the clipping window for this clipping\n}\nextension SBObject: FinderClipping {}\n\n// MARK: FinderPackage\n@objc public protocol FinderPackage: FinderItem {\n}\nextension SBObject: FinderPackage {}\n\n// MARK: FinderWindow\n@objc public protocol FinderWindow: SBObjectProtocol, FinderGenericMethods {\n    @objc optional func id() -> Int // the unique id for this window\n    @objc optional var position: NSPoint { get } // the upper left position of the window\n    @objc optional var bounds: NSRect { get } // the boundary rectangle for the window\n    @objc optional var titled: Bool { get } // Does the window have a title bar?\n    @objc optional var name: String { get } // the name of the window\n    @objc optional var index: Int { get } // the number of the window in the front-to-back layer ordering\n    @objc optional var closeable: Bool { get } // Does the window have a close box?\n    @objc optional var floating: Bool { get } // Does the window have a title bar?\n    @objc optional var modal: Bool { get } // Is the window modal?\n    @objc optional var resizable: Bool { get } // Is the window resizable?\n    @objc optional var zoomable: Bool { get } // Is the window zoomable?\n    @objc optional var zoomed: Bool { get } // Is the window zoomed?\n    @objc optional var visible: Bool { get } // Is the window visible (always true for open Finder windows)?\n    @objc optional var collapsed: Bool { get } // Is the window collapsed\n    @objc optional var properties: [AnyHashable : Any] { get } // every property of a window\n    @objc optional func setPosition(_ position: NSPoint) // the upper left position of the window\n    @objc optional func setBounds(_ bounds: NSRect) // the boundary rectangle for the window\n    @objc optional func setIndex(_ index: Int) // the number of the window in the front-to-back layer ordering\n    @objc optional func setZoomed(_ zoomed: Bool) // Is the window zoomed?\n    @objc optional func setCollapsed(_ collapsed: Bool) // Is the window collapsed\n    @objc optional func setProperties(_ properties: [AnyHashable : Any]!) // every property of a window\n}\nextension SBObject: FinderWindow {}\n\n// MARK: FinderFinderWindow\n@objc public protocol FinderFinderWindow: FinderWindow {\n    @objc optional var target: SBObject { get } // the container at which this file viewer is targeted\n    @objc optional var currentView: FinderEcvw { get } // the current view for the container window\n    @objc optional var iconViewOptions: FinderIconViewOptions { get } // the icon view options for the container window\n    @objc optional var listViewOptions: FinderListViewOptions { get } // the list view options for the container window\n    @objc optional var columnViewOptions: FinderColumnViewOptions { get } // the column view options for the container window\n    @objc optional var toolbarVisible: Bool { get } // Is the window's toolbar visible?\n    @objc optional var statusbarVisible: Bool { get } // Is the window's status bar visible?\n    @objc optional var sidebarWidth: Int { get } // the width of the sidebar for the container window\n    @objc optional func setTarget(_ target: SBObject!) // the container at which this file viewer is targeted\n    @objc optional func setCurrentView(_ currentView: FinderEcvw) // the current view for the container window\n    @objc optional func setToolbarVisible(_ toolbarVisible: Bool) // Is the window's toolbar visible?\n    @objc optional func setStatusbarVisible(_ statusbarVisible: Bool) // Is the window's status bar visible?\n    @objc optional func setSidebarWidth(_ sidebarWidth: Int) // the width of the sidebar for the container window\n}\nextension SBObject: FinderFinderWindow {}\n\n// MARK: FinderDesktopWindow\n@objc public protocol FinderDesktopWindow: FinderFinderWindow {\n}\nextension SBObject: FinderDesktopWindow {}\n\n// MARK: FinderInformationWindow\n@objc public protocol FinderInformationWindow: FinderWindow {\n    @objc optional var item: SBObject { get } // the item from which this window was opened\n    @objc optional var currentPanel: FinderIpnl { get } // the current panel in the information window\n    @objc optional func setCurrentPanel(_ currentPanel: FinderIpnl) // the current panel in the information window\n}\nextension SBObject: FinderInformationWindow {}\n\n// MARK: FinderPreferencesWindow\n@objc public protocol FinderPreferencesWindow: FinderWindow {\n    @objc optional var currentPanel: FinderPple { get } // The current panel in the Finder preferences window\n    @objc optional func setCurrentPanel(_ currentPanel: FinderPple) // The current panel in the Finder preferences window\n}\nextension SBObject: FinderPreferencesWindow {}\n\n// MARK: FinderClippingWindow\n@objc public protocol FinderClippingWindow: FinderWindow {\n}\nextension SBObject: FinderClippingWindow {}\n\n// MARK: FinderProcess\n@objc public protocol FinderProcess: SBObjectProtocol, FinderGenericMethods {\n    @objc optional var name: String { get } // the name of the process\n    @objc optional var visible: Bool { get } // Is the process' layer visible?\n    @objc optional var frontmost: Bool { get } // Is the process the frontmost process?\n    @objc optional var file: SBObject { get } // the file from which the process was launched\n    @objc optional var fileType: NSNumber { get } // the OSType of the file type of the process\n    @objc optional var creatorType: NSNumber { get } // the OSType of the creator of the process (the signature)\n    @objc optional var acceptsHighLevelEvents: Bool { get } // Is the process high-level event aware (accepts open application, open document, print document, and quit)?\n    @objc optional var acceptsRemoteEvents: Bool { get } // Does the process accept remote events?\n    @objc optional var hasScriptingTerminology: Bool { get } // Does the process have a scripting terminology, i.e., can it be scripted?\n    @objc optional var totalPartitionSize: Int { get } // the size of the partition with which the process was launched\n    @objc optional var partitionSpaceUsed: Int { get } // the number of bytes currently used in the process' partition\n    @objc optional func setVisible(_ visible: Bool) // Is the process' layer visible?\n    @objc optional func setFrontmost(_ frontmost: Bool) // Is the process the frontmost process?\n}\nextension SBObject: FinderProcess {}\n\n// MARK: FinderApplicationProcess\n@objc public protocol FinderApplicationProcess: FinderProcess {\n    @objc optional var applicationFile: FinderApplicationFile { get } // the application file from which this process was launched\n}\nextension SBObject: FinderApplicationProcess {}\n\n// MARK: FinderDeskAccessoryProcess\n@objc public protocol FinderDeskAccessoryProcess: FinderProcess {\n    @objc optional var deskAccessoryFile: SBObject { get } // the desk accessory file from which this process was launched\n}\nextension SBObject: FinderDeskAccessoryProcess {}\n\n// MARK: FinderPreferences\n@objc public protocol FinderPreferences: SBObjectProtocol, FinderGenericMethods {\n    @objc optional var window: FinderPreferencesWindow { get } // the window that would open if Finder preferences was opened\n    @objc optional var iconViewOptions: FinderIconViewOptions { get } // the default icon view options\n    @objc optional var listViewOptions: FinderListViewOptions { get } // the default list view options\n    @objc optional var columnViewOptions: FinderColumnViewOptions { get } // the column view options for all windows\n    @objc optional var foldersSpringOpen: Bool { get } // Spring open folders after the specified delay?\n    @objc optional var delayBeforeSpringing: Double { get } // the delay before springing open a container in seconds (from 0.167 to 1.169)\n    @objc optional var desktopShowsHardDisks: Bool { get } // Hard disks appear on the desktop?\n    @objc optional var desktopShowsExternalHardDisks: Bool { get } // External hard disks appear on the desktop?\n    @objc optional var desktopShowsRemovableMedia: Bool { get } // CDs, DVDs, and iPods appear on the desktop?\n    @objc optional var desktopShowsConnectedServers: Bool { get } // Connected servers appear on the desktop?\n    @objc optional var newWindowTarget: SBObject { get } // target location for a newly-opened Finder window\n    @objc optional var foldersOpenInNewWindows: Bool { get } // Folders open into new windows?\n    @objc optional var foldersOpenInNewTabs: Bool { get } // Folders open into new tabs?\n    @objc optional var newWindowsOpenInColumnView: Bool { get } // Open new windows in column view?\n    @objc optional var allNameExtensionsShowing: Bool { get } // Show name extensions, even for items whose “extension hidden” is true?\n    @objc optional func setFoldersSpringOpen(_ foldersSpringOpen: Bool) // Spring open folders after the specified delay?\n    @objc optional func setDelayBeforeSpringing(_ delayBeforeSpringing: Double) // the delay before springing open a container in seconds (from 0.167 to 1.169)\n    @objc optional func setDesktopShowsHardDisks(_ desktopShowsHardDisks: Bool) // Hard disks appear on the desktop?\n    @objc optional func setDesktopShowsExternalHardDisks(_ desktopShowsExternalHardDisks: Bool) // External hard disks appear on the desktop?\n    @objc optional func setDesktopShowsRemovableMedia(_ desktopShowsRemovableMedia: Bool) // CDs, DVDs, and iPods appear on the desktop?\n    @objc optional func setDesktopShowsConnectedServers(_ desktopShowsConnectedServers: Bool) // Connected servers appear on the desktop?\n    @objc optional func setNewWindowTarget(_ newWindowTarget: SBObject!) // target location for a newly-opened Finder window\n    @objc optional func setFoldersOpenInNewWindows(_ foldersOpenInNewWindows: Bool) // Folders open into new windows?\n    @objc optional func setFoldersOpenInNewTabs(_ foldersOpenInNewTabs: Bool) // Folders open into new tabs?\n    @objc optional func setNewWindowsOpenInColumnView(_ newWindowsOpenInColumnView: Bool) // Open new windows in column view?\n    @objc optional func setAllNameExtensionsShowing(_ allNameExtensionsShowing: Bool) // Show name extensions, even for items whose “extension hidden” is true?\n}\nextension SBObject: FinderPreferences {}\n\n// MARK: FinderLabel\n@objc public protocol FinderLabel: SBObjectProtocol, FinderGenericMethods {\n    @objc optional var name: String { get } // the name associated with the label\n    @objc optional var index: Int { get } // the index in the front-to-back ordering within its container\n    @objc optional var color: NSColor { get } // the color associated with the label\n    @objc optional func setName(_ name: String!) // the name associated with the label\n    @objc optional func setIndex(_ index: Int) // the index in the front-to-back ordering within its container\n    @objc optional func setColor(_ color: NSColor!) // the color associated with the label\n}\nextension SBObject: FinderLabel {}\n\n// MARK: FinderIconFamily\n@objc public protocol FinderIconFamily: SBObjectProtocol, FinderGenericMethods {\n    @objc optional var largeMonochromeIconAndMask: Any { get } // the large black-and-white icon and the mask for large icons\n    @objc optional var large8BitMask: Any { get } // the large 8-bit mask for large 32-bit icons\n    @objc optional var large32BitIcon: Any { get } // the large 32-bit color icon\n    @objc optional var large8BitIcon: Any { get } // the large 8-bit color icon\n    @objc optional var large4BitIcon: Any { get } // the large 4-bit color icon\n    @objc optional var smallMonochromeIconAndMask: Any { get } // the small black-and-white icon and the mask for small icons\n    @objc optional var small8BitMask: Any { get } // the small 8-bit mask for small 32-bit icons\n    @objc optional var small32BitIcon: Any { get } // the small 32-bit color icon\n    @objc optional var small8BitIcon: Any { get } // the small 8-bit color icon\n    @objc optional var small4BitIcon: Any { get } // the small 4-bit color icon\n}\nextension SBObject: FinderIconFamily {}\n\n// MARK: FinderIconViewOptions\n@objc public protocol FinderIconViewOptions: SBObjectProtocol, FinderGenericMethods {\n    @objc optional var arrangement: FinderEarr { get } // the property by which to keep icons arranged\n    @objc optional var iconSize: Int { get } // the size of icons displayed in the icon view\n    @objc optional var showsItemInfo: Bool { get } // additional info about an item displayed in icon view\n    @objc optional var showsIconPreview: Bool { get } // displays a preview of the item in icon view\n    @objc optional var textSize: Int { get } // the size of the text displayed in the icon view\n    @objc optional var labelPosition: FinderEpos { get } // the location of the label in reference to the icon\n    @objc optional var backgroundPicture: FinderFile { get } // the background picture of the icon view\n    @objc optional var backgroundColor: NSColor { get } // the background color of the icon view\n    @objc optional func setArrangement(_ arrangement: FinderEarr) // the property by which to keep icons arranged\n    @objc optional func setIconSize(_ iconSize: Int) // the size of icons displayed in the icon view\n    @objc optional func setShowsItemInfo(_ showsItemInfo: Bool) // additional info about an item displayed in icon view\n    @objc optional func setShowsIconPreview(_ showsIconPreview: Bool) // displays a preview of the item in icon view\n    @objc optional func setTextSize(_ textSize: Int) // the size of the text displayed in the icon view\n    @objc optional func setLabelPosition(_ labelPosition: FinderEpos) // the location of the label in reference to the icon\n    @objc optional func setBackgroundPicture(_ backgroundPicture: FinderFile!) // the background picture of the icon view\n    @objc optional func setBackgroundColor(_ backgroundColor: NSColor!) // the background color of the icon view\n}\nextension SBObject: FinderIconViewOptions {}\n\n// MARK: FinderColumnViewOptions\n@objc public protocol FinderColumnViewOptions: SBObjectProtocol, FinderGenericMethods {\n    @objc optional var textSize: Int { get } // the size of the text displayed in the column view\n    @objc optional var showsIcon: Bool { get } // displays an icon next to the label in column view\n    @objc optional var showsIconPreview: Bool { get } // displays a preview of the item in column view\n    @objc optional var showsPreviewColumn: Bool { get } // displays the preview column in column view\n    @objc optional var disclosesPreviewPane: Bool { get } // discloses the preview pane of the preview column in column view\n    @objc optional func setTextSize(_ textSize: Int) // the size of the text displayed in the column view\n    @objc optional func setShowsIcon(_ showsIcon: Bool) // displays an icon next to the label in column view\n    @objc optional func setShowsIconPreview(_ showsIconPreview: Bool) // displays a preview of the item in column view\n    @objc optional func setShowsPreviewColumn(_ showsPreviewColumn: Bool) // displays the preview column in column view\n    @objc optional func setDisclosesPreviewPane(_ disclosesPreviewPane: Bool) // discloses the preview pane of the preview column in column view\n}\nextension SBObject: FinderColumnViewOptions {}\n\n// MARK: FinderListViewOptions\n@objc public protocol FinderListViewOptions: SBObjectProtocol, FinderGenericMethods {\n    @objc optional func columns() -> SBElementArray\n    @objc optional var calculatesFolderSizes: Bool { get } // Are folder sizes calculated and displayed in the window?\n    @objc optional var showsIconPreview: Bool { get } // displays a preview of the item in list view\n    @objc optional var iconSize: FinderLvic { get } // the size of icons displayed in the list view\n    @objc optional var textSize: Int { get } // the size of the text displayed in the list view\n    @objc optional var sortColumn: FinderColumn { get } // the column that the list view is sorted on\n    @objc optional var usesRelativeDates: Bool { get } // Are relative dates (e.g., today, yesterday) shown in the list view?\n    @objc optional func setCalculatesFolderSizes(_ calculatesFolderSizes: Bool) // Are folder sizes calculated and displayed in the window?\n    @objc optional func setShowsIconPreview(_ showsIconPreview: Bool) // displays a preview of the item in list view\n    @objc optional func setIconSize(_ iconSize: FinderLvic) // the size of icons displayed in the list view\n    @objc optional func setTextSize(_ textSize: Int) // the size of the text displayed in the list view\n    @objc optional func setSortColumn(_ sortColumn: FinderColumn!) // the column that the list view is sorted on\n    @objc optional func setUsesRelativeDates(_ usesRelativeDates: Bool) // Are relative dates (e.g., today, yesterday) shown in the list view?\n}\nextension SBObject: FinderListViewOptions {}\n\n// MARK: FinderColumn\n@objc public protocol FinderColumn: SBObjectProtocol, FinderGenericMethods {\n    @objc optional var index: Int { get } // the index in the front-to-back ordering within its container\n    @objc optional var name: FinderElsv { get } // the column name\n    @objc optional var sortDirection: FinderSodr { get } // The direction in which the window is sorted\n    @objc optional var width: Int { get } // the width of this column\n    @objc optional var minimumWidth: Int { get } // the minimum allowed width of this column\n    @objc optional var maximumWidth: Int { get } // the maximum allowed width of this column\n    @objc optional var visible: Bool { get } // is this column visible\n    @objc optional func setIndex(_ index: Int) // the index in the front-to-back ordering within its container\n    @objc optional func setSortDirection(_ sortDirection: FinderSodr) // The direction in which the window is sorted\n    @objc optional func setWidth(_ width: Int) // the width of this column\n    @objc optional func setVisible(_ visible: Bool) // is this column visible\n}\nextension SBObject: FinderColumn {}\n\n// MARK: FinderAliasList\n@objc public protocol FinderAliasList: SBObjectProtocol, FinderGenericMethods {\n}\nextension SBObject: FinderAliasList {}\n\n"
  },
  {
    "path": "OpenInTerminalCore/ScriptingBridge/Terminal.swift",
    "content": "import AppKit\nimport ScriptingBridge\n\n// MARK: TerminalSaveOptions\n@objc public enum TerminalSaveOptions : AEKeyword {\n    case yes = 0x79657320 /* 'yes ' */\n    case no = 0x6e6f2020 /* 'no  ' */\n    case ask = 0x61736b20 /* 'ask ' */\n}\n\n// MARK: TerminalPrintingErrorHandling\n@objc public enum TerminalPrintingErrorHandling : AEKeyword {\n    case standard = 0x6c777374 /* 'lwst' */\n    case detailed = 0x6c776474 /* 'lwdt' */\n}\n\n// MARK: TerminalGenericMethods\n@objc public protocol TerminalGenericMethods {\n    @objc optional func closeSaving(_ saving: TerminalSaveOptions, savingIn: URL!) // Close a document.\n    @objc optional func saveIn(_ in_: URL!) // Save a document.\n    @objc optional func printWithProperties(_ withProperties: [AnyHashable : Any]!, printDialog: Bool) // Print a document.\n    @objc optional func delete() // Delete an object.\n    @objc optional func duplicateTo(_ to: SBObject!, withProperties: [AnyHashable : Any]!) // Copy object(s) and put the copies at a new location.\n    @objc optional func exists() -> Bool // Verify if an object exists.\n    @objc optional func moveTo(_ to: SBObject!) // Move object(s) to a new location.\n}\n\n// MARK: TerminalApplication\n@objc public protocol TerminalApplication: SBApplicationProtocol {\n    @objc optional func windows() -> SBElementArray\n    @objc optional var name: String { get } // The name of the application.\n    @objc optional var frontmost: Bool { get } // Is this the frontmost (active) application?\n    @objc optional var version: String { get } // The version of the application.\n    @objc optional func `open`(_ x: [URL]!) // Open a document.\n    @objc optional func print(_ x: Any!, withProperties: [AnyHashable : Any]!, printDialog: Bool) // Print a document.\n    @objc optional func quitSaving(_ saving: TerminalSaveOptions) // Quit the application.\n    @objc optional func doScript(_ x: String!, in in_: Any!) -> TerminalTab // Runs a UNIX shell script or command.\n    @objc optional func settingsSets() -> SBElementArray\n    @objc optional var defaultSettings: TerminalSettingsSet { get } // The settings set used for new windows.\n    @objc optional var startupSettings: TerminalSettingsSet { get } // The settings set used for the window created on application startup.\n    @objc optional func setDefaultSettings(_ defaultSettings: TerminalSettingsSet!) // The settings set used for new windows.\n    @objc optional func setStartupSettings(_ startupSettings: TerminalSettingsSet!) // The settings set used for the window created on application startup.\n}\nextension SBApplication: TerminalApplication {}\n\n// MARK: TerminalWindow\n@objc public protocol TerminalWindow: SBObjectProtocol, TerminalGenericMethods {\n    @objc optional func tabs() -> SBElementArray\n    @objc optional var name: String { get } // The full title of the window.\n    @objc optional func id() -> Int // The unique identifier of the window.\n    @objc optional var index: Int { get } // The index of the window, ordered front to back.\n    @objc optional var bounds: NSRect { get } // The bounding rectangle of the window.\n    @objc optional var closeable: Bool { get } // Whether the window has a close box.\n    @objc optional var miniaturizable: Bool { get } // Whether the window can be minimized.\n    @objc optional var miniaturized: Bool { get } // Whether the window is currently minimized.\n    @objc optional var resizable: Bool { get } // Whether the window can be resized.\n    @objc optional var visible: Bool { get } // Whether the window is currently visible.\n    @objc optional var zoomable: Bool { get } // Whether the window can be zoomed.\n    @objc optional var zoomed: Bool { get } // Whether the window is currently zoomed.\n    @objc optional var frontmost: Bool { get } // Whether the window is currently the frontmost Terminal window.\n    @objc optional var selectedTab: TerminalTab { get }\n    @objc optional var position: NSPoint { get } // The position of the window, relative to the upper left corner of the screen.\n    @objc optional var origin: NSPoint { get } // The position of the window, relative to the lower left corner of the screen.\n    @objc optional var size: NSPoint { get } // The width and height of the window\n    @objc optional var frame: NSRect { get } // The bounding rectangle, relative to the lower left corner of the screen.\n    @objc optional func setIndex(_ index: Int) // The index of the window, ordered front to back.\n    @objc optional func setBounds(_ bounds: NSRect) // The bounding rectangle of the window.\n    @objc optional func setMiniaturized(_ miniaturized: Bool) // Whether the window is currently minimized.\n    @objc optional func setVisible(_ visible: Bool) // Whether the window is currently visible.\n    @objc optional func setZoomed(_ zoomed: Bool) // Whether the window is currently zoomed.\n    @objc optional func setFrontmost(_ frontmost: Bool) // Whether the window is currently the frontmost Terminal window.\n    @objc optional func setSelectedTab(_ selectedTab: TerminalTab!)\n    @objc optional func setPosition(_ position: NSPoint) // The position of the window, relative to the upper left corner of the screen.\n    @objc optional func setOrigin(_ origin: NSPoint) // The position of the window, relative to the lower left corner of the screen.\n    @objc optional func setSize(_ size: NSPoint) // The width and height of the window\n    @objc optional func setFrame(_ frame: NSRect) // The bounding rectangle, relative to the lower left corner of the screen.\n}\nextension SBObject: TerminalWindow {}\n\n// MARK: TerminalSettingsSet\n@objc public protocol TerminalSettingsSet: SBObjectProtocol, TerminalGenericMethods {\n    @objc optional func id() -> Int // The unique identifier of the settings set.\n    @objc optional var name: String { get } // The name of the settings set.\n    @objc optional var numberOfRows: Int { get } // The number of rows displayed in the tab.\n    @objc optional var numberOfColumns: Int { get } // The number of columns displayed in the tab.\n    @objc optional var cursorColor: NSColor { get } // The cursor color for the tab.\n    @objc optional var backgroundColor: NSColor { get } // The background color for the tab.\n    @objc optional var normalTextColor: NSColor { get } // The normal text color for the tab.\n    @objc optional var boldTextColor: NSColor { get } // The bold text color for the tab.\n    @objc optional var fontName: String { get } // The name of the font used to display the tab’s contents.\n    @objc optional var fontSize: Int { get } // The size of the font used to display the tab’s contents.\n    @objc optional var fontAntialiasing: Bool { get } // Whether the font used to display the tab’s contents is antialiased.\n    @objc optional var cleanCommands: [String] { get } // The processes which will be ignored when checking whether a tab can be closed without showing a prompt.\n    @objc optional var titleDisplaysDeviceName: Bool { get } // Whether the title contains the device name.\n    @objc optional var titleDisplaysShellPath: Bool { get } // Whether the title contains the shell path.\n    @objc optional var titleDisplaysWindowSize: Bool { get } // Whether the title contains the tab’s size, in rows and columns.\n    @objc optional var titleDisplaysSettingsName: Bool { get } // Whether the title contains the settings name.\n    @objc optional var titleDisplaysCustomTitle: Bool { get } // Whether the title contains a custom title.\n    @objc optional var customTitle: String { get } // The tab’s custom title.\n    @objc optional func setName(_ name: String!) // The name of the settings set.\n    @objc optional func setNumberOfRows(_ numberOfRows: Int) // The number of rows displayed in the tab.\n    @objc optional func setNumberOfColumns(_ numberOfColumns: Int) // The number of columns displayed in the tab.\n    @objc optional func setCursorColor(_ cursorColor: NSColor!) // The cursor color for the tab.\n    @objc optional func setBackgroundColor(_ backgroundColor: NSColor!) // The background color for the tab.\n    @objc optional func setNormalTextColor(_ normalTextColor: NSColor!) // The normal text color for the tab.\n    @objc optional func setBoldTextColor(_ boldTextColor: NSColor!) // The bold text color for the tab.\n    @objc optional func setFontName(_ fontName: String!) // The name of the font used to display the tab’s contents.\n    @objc optional func setFontSize(_ fontSize: Int) // The size of the font used to display the tab’s contents.\n    @objc optional func setFontAntialiasing(_ fontAntialiasing: Bool) // Whether the font used to display the tab’s contents is antialiased.\n    @objc optional func setCleanCommands(_ cleanCommands: [String]!) // The processes which will be ignored when checking whether a tab can be closed without showing a prompt.\n    @objc optional func setTitleDisplaysDeviceName(_ titleDisplaysDeviceName: Bool) // Whether the title contains the device name.\n    @objc optional func setTitleDisplaysShellPath(_ titleDisplaysShellPath: Bool) // Whether the title contains the shell path.\n    @objc optional func setTitleDisplaysWindowSize(_ titleDisplaysWindowSize: Bool) // Whether the title contains the tab’s size, in rows and columns.\n    @objc optional func setTitleDisplaysSettingsName(_ titleDisplaysSettingsName: Bool) // Whether the title contains the settings name.\n    @objc optional func setTitleDisplaysCustomTitle(_ titleDisplaysCustomTitle: Bool) // Whether the title contains a custom title.\n    @objc optional func setCustomTitle(_ customTitle: String!) // The tab’s custom title.\n}\nextension SBObject: TerminalSettingsSet {}\n\n// MARK: TerminalTab\n@objc public protocol TerminalTab: SBObjectProtocol, TerminalGenericMethods {\n    @objc optional var numberOfRows: Int { get } // The number of rows displayed in the tab.\n    @objc optional var numberOfColumns: Int { get } // The number of columns displayed in the tab.\n    @objc optional var contents: String { get } // The currently visible contents of the tab.\n    @objc optional var history: String { get } // The contents of the entire scrolling buffer of the tab.\n    @objc optional var busy: Bool { get } // Whether the tab is busy running a process.\n    @objc optional var processes: [String] { get } // The processes currently running in the tab.\n    @objc optional var selected: Bool { get } // Whether the tab is selected.\n    @objc optional var titleDisplaysCustomTitle: Bool { get } // Whether the title contains a custom title.\n    @objc optional var customTitle: String { get } // The tab’s custom title.\n    @objc optional var tty: String { get } // The tab’s TTY device.\n    @objc optional var currentSettings: TerminalSettingsSet { get } // The set of settings which control the tab’s behavior and appearance.\n    @objc optional var cursorColor: NSColor { get } // The cursor color for the tab.\n    @objc optional var backgroundColor: NSColor { get } // The background color for the tab.\n    @objc optional var normalTextColor: NSColor { get } // The normal text color for the tab.\n    @objc optional var boldTextColor: NSColor { get } // The bold text color for the tab.\n    @objc optional var cleanCommands: [String] { get } // The processes which will be ignored when checking whether a tab can be closed without showing a prompt.\n    @objc optional var titleDisplaysDeviceName: Bool { get } // Whether the title contains the device name.\n    @objc optional var titleDisplaysShellPath: Bool { get } // Whether the title contains the shell path.\n    @objc optional var titleDisplaysWindowSize: Bool { get } // Whether the title contains the tab’s size, in rows and columns.\n    @objc optional var titleDisplaysFileName: Bool { get } // Whether the title contains the file name.\n    @objc optional var fontName: String { get } // The name of the font used to display the tab’s contents.\n    @objc optional var fontSize: Int { get } // The size of the font used to display the tab’s contents.\n    @objc optional var fontAntialiasing: Bool { get } // Whether the font used to display the tab’s contents is antialiased.\n    @objc optional func setNumberOfRows(_ numberOfRows: Int) // The number of rows displayed in the tab.\n    @objc optional func setNumberOfColumns(_ numberOfColumns: Int) // The number of columns displayed in the tab.\n    @objc optional func setSelected(_ selected: Bool) // Whether the tab is selected.\n    @objc optional func setTitleDisplaysCustomTitle(_ titleDisplaysCustomTitle: Bool) // Whether the title contains a custom title.\n    @objc optional func setCustomTitle(_ customTitle: String!) // The tab’s custom title.\n    @objc optional func setCurrentSettings(_ currentSettings: TerminalSettingsSet!) // The set of settings which control the tab’s behavior and appearance.\n    @objc optional func setCursorColor(_ cursorColor: NSColor!) // The cursor color for the tab.\n    @objc optional func setBackgroundColor(_ backgroundColor: NSColor!) // The background color for the tab.\n    @objc optional func setNormalTextColor(_ normalTextColor: NSColor!) // The normal text color for the tab.\n    @objc optional func setBoldTextColor(_ boldTextColor: NSColor!) // The bold text color for the tab.\n    @objc optional func setCleanCommands(_ cleanCommands: [String]!) // The processes which will be ignored when checking whether a tab can be closed without showing a prompt.\n    @objc optional func setTitleDisplaysDeviceName(_ titleDisplaysDeviceName: Bool) // Whether the title contains the device name.\n    @objc optional func setTitleDisplaysShellPath(_ titleDisplaysShellPath: Bool) // Whether the title contains the shell path.\n    @objc optional func setTitleDisplaysWindowSize(_ titleDisplaysWindowSize: Bool) // Whether the title contains the tab’s size, in rows and columns.\n    @objc optional func setTitleDisplaysFileName(_ titleDisplaysFileName: Bool) // Whether the title contains the file name.\n    @objc optional func setFontName(_ fontName: String!) // The name of the font used to display the tab’s contents.\n    @objc optional func setFontSize(_ fontSize: Int) // The size of the font used to display the tab’s contents.\n    @objc optional func setFontAntialiasing(_ fontAntialiasing: Bool) // Whether the font used to display the tab’s contents is antialiased.\n}\nextension SBObject: TerminalTab {}\n\n"
  },
  {
    "path": "OpenInTerminalCore/SupportedApps.swift",
    "content": "//\n//  SupportedApps.swift\n//  OpenInTerminalCore\n//\n//  Created by Jianing Wang on 2020/12/5.\n//  Copyright © 2020 Jianing Wang. All rights reserved.\n//\n\nimport Foundation\n\npublic enum SupportedApps: String, CaseIterable {\n    \n    // MARK: - Terminals\n    case terminal = \"Terminal\"\n    case iTerm = \"iTerm\"\n    case hyper = \"Hyper\"\n    case alacritty = \"Alacritty\"\n    case kitty = \"kitty\"\n    case wezterm = \"WezTerm\"\n    case tabby = \"Tabby\"\n    case warp = \"Warp\"\n    case githubDesktop = \"GitHub Desktop\"\n    case fork = \"Fork\"\n    case ghostty = \"Ghostty\"\n    \n    // MARK: - Editors\n    case textEdit = \"TextEdit\"\n    case xcode = \"Xcode\"\n    case vscode = \"Visual Studio Code\"\n    case atom = \"Atom\"\n    case sublime = \"Sublime Text\"\n    case vscodium = \"VSCodium\"\n    case bbedit = \"BBEdit\"\n    case vscodeInsiders = \"Visual Studio Code - Insiders\"\n    case textMate = \"TextMate\"\n    case cotEditor = \"CotEditor\"\n    case macVim = \"MacVim\"\n    case typora = \"Typora\"\n    case nova = \"Nova\"\n    case cursor = \"Cursor\"\n    case neovim = \"neovim\"\n    case zed = \"Zed\"\n    // JetBrains\n    case appCode = \"AppCode\"\n    case cLion = \"CLion\"\n    case fleet = \"Fleet\"\n    case goLand = \"GoLand\"\n    case intelliJIDEA = \"IntelliJ IDEA\"\n    case phpStorm = \"PhpStorm\"\n    case pyCharm = \"PyCharm\"\n    case rubyMine = \"RubyMine\"\n    case webStorm = \"WebStorm\"\n    case androidstudio = \"Android Studio\"\n    \n    public var name: String {\n        return self.rawValue\n    }\n    \n    public var shortName: String {\n        switch self {\n        case .vscode: return \"VSCode\"\n        case .sublime: return \"Sublime\"\n        case .vscodeInsiders: return \"VSCodeInsiders\"\n        case .intelliJIDEA: return \"IntelliJ_IDEA\"\n        case .androidstudio: return \"Android_Studio\"\n        default:\n            return self.rawValue\n        }\n    }\n    \n    public var type: AppType {\n        switch self {\n        case .terminal, .iTerm, .hyper, .alacritty, .kitty, .wezterm, .tabby, .warp, .githubDesktop, .fork, .ghostty:\n            return .terminal\n        default:\n            return .editor\n        }\n    }\n    \n    public static func isSupported(_ app: App) -> Bool {\n        for sa in SupportedApps.allCases {\n            if sa.name == app.name {\n                return true\n            }\n        }\n        return false\n    }\n    \n    public static func `is`(_ app: App, is supported: SupportedApps) -> Bool {\n        return app.name == supported.name\n    }\n    \n    public static var terminals: [SupportedApps] {\n        return SupportedApps.allCases.filter {\n            $0.type == .terminal\n        }\n    }\n    \n    public static var editors: [SupportedApps] {\n        return SupportedApps.allCases.filter {\n            $0.type == .editor\n        }\n    }\n    \n    public var bundleId: String {\n        switch self {\n        // Terminals\n        case .terminal: return \"com.apple.Terminal\"\n        case .iTerm: return \"com.googlecode.iterm2\"\n        case .hyper: return \"co.zeit.hyper\"\n        case .alacritty: return \"io.alacritty\"\n        case .kitty: return \"net.kovidgoyal.kitty\"\n        case .wezterm: return \"com.github.wez.wezterm\"\n        case .tabby: return \"org.tabby\"\n        case .warp: return \"dev.warp\"\n        case .githubDesktop: return \"\"\n        case .fork: return \"\"\n        case .ghostty: return \"com.mitchellh.ghostty\"\n        // Editors\n        case .textEdit: return \"com.apple.TextEdit\"\n        case .xcode: return \"com.apple.Xcode\"\n        case .vscode: return \"com.microsoft.VSCode\"\n        case .atom: return \"com.github.atom\"\n        case .sublime: return \"com.sublimetext.3\"\n        case .vscodium: return \"com.visualstudio.code.oss\"\n        case .bbedit: return \"com.barebones.bbedit\"\n        case .vscodeInsiders: return \"com.microsoft.VSCodeInsiders\"\n        case .textMate: return \"com.macromates.TextMate\"\n        case .cotEditor: return \"\"\n        case .macVim: return \"org.vim.MacVim\"\n        case .typora: return \"abnerworks.Typora\"\n        case .nova: return \"com.panic.Nova\"\n        case .cursor: return \"com.todesktop.230313mzl4w4u92\"\n        case .appCode: return \"com.jetbrains.appcode\"\n        case .cLion: return \"com.jetbrains.clion\"\n        case .fleet: return \"com.jetbrains.fleet\"\n        case .goLand: return \"com.jetbrains.goland\"\n        case .intelliJIDEA: return \"com.jetbrains.intellij\"\n        case .phpStorm: return \"com.jetbrains.PhpStorm\"\n        case .pyCharm: return \"com.jetbrains.pycharm\"\n        case .rubyMine: return \"com.jetbrains.rubymine\"\n        case .webStorm: return \"com.jetbrains.webstorm\"\n        case .androidstudio: return \"\"\n        case .neovim: return \"\"\n        case .zed: return \"\"\n        }\n    }\n    \n    public var app: App {\n        var app = App(name: self.name, type: self.type)\n        app.bundleId = self.bundleId\n        return app\n    }\n}\n"
  },
  {
    "path": "OpenInTerminalFinderExtension/FinderAssets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenInTerminalFinderExtension/FinderAssets.xcassets/Icon.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"Finder_extension_icon.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"filename\" : \"Finder_extension_icon@2x.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"filename\" : \"Finder_extension_icon@3x.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  },\n  \"properties\" : {\n    \"template-rendering-intent\" : \"template\"\n  }\n}\n"
  },
  {
    "path": "OpenInTerminalFinderExtension/FinderSync.swift",
    "content": "//\n//  FinderSync.swift\n//  OpenInTerminalFinderExtension\n//\n//  Created by Cameron Ingham on 4/17/19.\n//  Copyright © 2019 Cameron Ingham. All rights reserved.\n//\n\nimport Cocoa\nimport FinderSync\nimport OpenInTerminalCore\nimport Carbon\n\nclass FinderSync: FIFinderSync {\n    \n    override init() {\n        super.init()\n        let finderSync = FIFinderSyncController.default()\n        if let mountedVolumes = FileManager.default.mountedVolumeURLs(includingResourceValuesForKeys: nil, options: [.skipHiddenVolumes]) {\n            finderSync.directoryURLs = Set<URL>(mountedVolumes)\n        }\n        // Monitor volumes\n        let notificationCenter = NSWorkspace.shared.notificationCenter\n        notificationCenter.addObserver(forName: NSWorkspace.didMountNotification, object: nil, queue: .main) { notification in\n            if let volumeURL = notification.userInfo?[NSWorkspace.volumeURLUserInfoKey] as? URL {\n                finderSync.directoryURLs.insert(volumeURL)\n            }\n        }\n    }\n\n    override var toolbarItemName: String {\n        return NSLocalizedString(\"toolbar.item_name\",\n                                 comment: \"Open in Terminal\")\n    }\n    \n    override var toolbarItemToolTip: String {\n        return NSLocalizedString(\"toolbar.item_tooltip\",\n                                 comment: \"Open current directory in Terminal.\")\n    }\n    \n    override var toolbarItemImage: NSImage {\n        return NSImage(named: \"Icon\")!\n    }\n    \n    override func menu(for menuKind: FIMenuKind) -> NSMenu {\n        var menu = NSMenu(title: \"\")\n        \n        switch menuKind {\n\n        case .contextualMenuForContainer,\n             .contextualMenuForItems:\n            // need to hide or not\n            let isHideContextMenuItems = DefaultsManager.shared.isHideContextMenuItems\n            guard !isHideContextMenuItems else { return NSMenu() }\n            \n            // show custom menu or default\n            let isCustomMenuApplyToContext = DefaultsManager.shared.isCustomMenuApplyToContext\n            if isCustomMenuApplyToContext {\n                menu = createCustomMenu()\n            } else {\n                menu = createDefaultMenu()\n            }\n            \n        case .toolbarItemMenu:\n            // show custom menu or default\n            let isCustomMenuApplyToToolbar = DefaultsManager.shared.isCustomMenuApplyToToolbar\n            if isCustomMenuApplyToToolbar {\n                menu = createCustomMenu()\n            } else {\n                menu = createDefaultMenu()\n            }\n            \n        default:\n            break\n        }\n        \n        return menu\n    }\n    \n    var scriptPath: URL? {\n        return try? FileManager.default.url(for: .applicationScriptsDirectory, in: .userDomainMask, appropriateFor: nil, create: true)\n    }\n\n    func fileScriptPath(fileName: String) -> URL? {\n        return scriptPath?\n            .appendingPathComponent(fileName)\n            .appendingPathExtension(\"scpt\")\n    }\n    \n    var copyPathItem: NSMenuItem {\n        get {\n            let copyPathItem = NSMenuItem(title: NSLocalizedString(\"menu.copy_path_to_clipboard\",\n                                                                   comment: \"Copy path to Clipboard\"),\n                                                action: #selector(copyPathToClipboard),\n                                                keyEquivalent: \"\")\n            if DefaultsManager.shared.customMenuIconOption == .simple {\n                let copyPathIcon = NSImage(named: \"context_menu_icon_path\")\n                copyPathItem.image = copyPathIcon\n            } else if DefaultsManager.shared.customMenuIconOption == .original {\n                let copyPathIcon = NSImage(named: \"context_menu_icon_color_path\")\n                copyPathItem.image = copyPathIcon\n            }\n            return copyPathItem\n        }\n    }\n    \n    func createDefaultMenu() -> NSMenu {\n        let menu = NSMenu(title: \"\")\n        \n        guard let terminal = DefaultsManager.shared.defaultTerminal else { return menu }\n        let terminalTitle = terminal.name\n        let openInTerminalItem = NSMenuItem(title: terminalTitle,\n                                            action: #selector(openDefaultTerminal),\n                                            keyEquivalent: \"\")\n        let terminalIcon = DefaultsManager.shared.getAppIcon(terminal)\n        openInTerminalItem.image = terminalIcon\n        menu.addItem(openInTerminalItem)\n        \n        guard let editor = DefaultsManager.shared.defaultEditor else { return menu }\n        let editorTitle = editor.name\n        let openInEditorItem = NSMenuItem(title: editorTitle,\n                                            action: #selector(openDefaultEditor),\n                                            keyEquivalent: \"\")\n        let editorIcon = DefaultsManager.shared.getAppIcon(editor)\n        openInEditorItem.image = editorIcon\n        menu.addItem(openInEditorItem)\n        \n        // add \"Copy Path\"\n        menu.addItem(self.copyPathItem)\n        \n        return menu\n    }\n    \n    func createCustomMenu() -> NSMenu {\n        let menu = NSMenu(title: \"\")\n        \n        // get saved custom apps\n        guard let customApps = DefaultsManager.shared.customMenuOptions else {\n            return menu\n        }\n        customApps.forEach { app in\n            let itemTitle = app.name\n            let menuItem = NSMenuItem(title: itemTitle,\n                                      action: #selector(customMenuItemClicked),\n                                      keyEquivalent: \"\")\n            let appIcon = DefaultsManager.shared.getAppIcon(app)\n            menuItem.image = appIcon\n            menu.addItem(menuItem)\n        }\n        \n        // add \"Copy Path\"\n        menu.addItem(self.copyPathItem)\n        \n        return menu\n    }\n\n    // MARK: - Actions\n    \n    func getSelectedPathsFromFinder() -> [URL] {\n        var urls = [URL]()\n        if let items = FIFinderSyncController.default().selectedItemURLs(), items.count > 0 {\n            items.forEach {\n                urls.append($0)\n            }\n        } else if let url = FIFinderSyncController.default().targetedURL() {\n            urls.append(url)\n        }\n        return urls\n    }\n    \n    func open(_ app: App) {\n        let urls = getSelectedPathsFromFinder()\n        do {\n            try app.openInSandbox(urls)\n        } catch {\n            logw(\"Failed to open \\(app.name) with \\(urls)\")\n        }\n    }\n    \n//    func openTerminal(_ terminal: TerminalType) {\n//        var scriptPath: URL\n//        if terminal == .terminal,\n//            let newOption = DefaultsManager.shared.getNewOption(.terminal),\n//            newOption == .tab {\n//            guard let fileScriptPath = fileScriptPath(fileName: terminal.rawValue + \"-tab\") else { return }\n//            scriptPath = fileScriptPath\n//        } else {\n//            guard let fileScriptPath = fileScriptPath(fileName: terminal.rawValue) else { return }\n//            scriptPath = fileScriptPath\n//        }\n//        guard FileManager.default.fileExists(atPath: scriptPath.path) else { return }\n//        guard let script = try? NSUserAppleScriptTask(url: scriptPath) else { return }\n//        script.execute(completionHandler: nil)\n//    }\n//\n//    func openEditor(_ editor: EditorType) {\n//        if (editor == .vscode) {\n//            var path = \"open -a Visual\\\\ Studio\\\\ Code\"\n//            if let items = FIFinderSyncController.default().selectedItemURLs(), items.count > 0 {\n//                items.forEach { (url) in\n//                    path += \" \\(url.path.specialCharEscaped2)\"\n//                }\n//            } else if let url = FIFinderSyncController.default().targetedURL() {\n//                path = url.path.specialCharEscaped2\n//            } else {\n//                return\n//            }\n//            let appleScript = try! NSUserAppleScriptTask(url: fileScriptPath(fileName: editor.rawValue)!)\n//            appleScript.execute(withAppleEvent: getScriptEvent(functionName: \"openVSCode\", path)) { (appleEvent, error) in\n//                if let error = error {\n//                    print(error)\n//                }\n//            }\n//        } else {\n//            guard let scriptPath = fileScriptPath(fileName: editor.rawValue) else { return }\n//            guard FileManager.default.fileExists(atPath: scriptPath.path) else { return }\n//            guard let script = try? NSUserAppleScriptTask(url: scriptPath) else { return }\n//            script.execute(completionHandler: nil)\n//        }\n//    }\n    \n    // MARK: - Menu Actions\n    \n    @objc func openDefaultTerminal() {\n        guard let terminal = DefaultsManager.shared.defaultTerminal else { return }\n        open(terminal)\n    }\n    \n    @objc func openDefaultEditor() {\n        guard let editor = DefaultsManager.shared.defaultEditor else { return }\n        open(editor)\n    }\n    \n    @objc func customMenuItemClicked(_ sender: NSMenuItem) {\n        guard let customApps = DefaultsManager.shared.customMenuOptions else { return }\n        let appName = sender.title\n        for app in customApps {\n            if app.name == appName {\n                open(app)\n                break\n            }\n        }\n    }\n    \n    @objc func copyPathToClipboard() {\n        let urls = getSelectedPathsFromFinder()\n        var paths = urls.map { $0.path }\n        if DefaultsManager.shared.isPathEscaped {\n            paths = paths.map { $0.specialCharEscaped() }\n        }\n        let pathString = paths.joined(separator: \"\\n\")\n        // Set string\n        NSPasteboard.general.clearContents()\n        NSPasteboard.general.setString(pathString, forType: .string)\n    }\n    \n}\n\nfileprivate extension String {\n    \n    subscript(_ range: CountableRange<Int>) -> String {\n        let start = index(startIndex, offsetBy: max(0, range.lowerBound))\n        let end = index(start, offsetBy: min(self.count - range.lowerBound,\n                                             range.upperBound - range.lowerBound))\n        return String(self[start..<end])\n    }\n\n    subscript(_ range: CountablePartialRangeFrom<Int>) -> String {\n        let start = index(startIndex, offsetBy: max(0, range.lowerBound))\n         return String(self[start...])\n    }\n    \n}\n"
  },
  {
    "path": "OpenInTerminalFinderExtension/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>$(DEVELOPMENT_LANGUAGE)</string>\n\t<key>CFBundleDisplayName</key>\n\t<string>OpenInTerminalFinderExtension</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>XPC!</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>$(MARKETING_VERSION)</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSMinimumSystemVersion</key>\n\t<string>$(MACOSX_DEPLOYMENT_TARGET)</string>\n\t<key>LSUIElement</key>\n\t<true/>\n\t<key>NSExtension</key>\n\t<dict>\n\t\t<key>NSExtensionAttributes</key>\n\t\t<dict/>\n\t\t<key>NSExtensionPointIdentifier</key>\n\t\t<string>com.apple.FinderSync</string>\n\t\t<key>NSExtensionPrincipalClass</key>\n\t\t<string>$(PRODUCT_MODULE_NAME).FinderSync</string>\n\t</dict>\n\t<key>NSHumanReadableCopyright</key>\n\t<string>Copyright © 2019 Jianing Wang. All rights reserved.</string>\n\t<key>NSPrincipalClass</key>\n\t<string>NSApplication</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "OpenInTerminalFinderExtension/OpenInTerminalFinderExtension.entitlements",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>com.apple.security.app-sandbox</key>\n\t<true/>\n\t<key>com.apple.security.application-groups</key>\n\t<array>\n\t\t<string>group.wang.jianing.app.OpenInTerminal</string>\n\t</array>\n\t<key>com.apple.security.automation.apple-events</key>\n\t<true/>\n\t<key>com.apple.security.files.user-selected.read-only</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "OpenInTerminalHelper/AppDelegate.swift",
    "content": "//\n//  AppDelegate.swift\n//  OpenInTerminalHelper\n//\n//  Created by Jianing Wang on 2019/5/5.\n//  Copyright © 2019 Jianing Wang. All rights reserved.\n//\n\nimport Cocoa\n\n@NSApplicationMain\nclass AppDelegate: NSObject, NSApplicationDelegate {\n\n    public func applicationDidFinishLaunching(_ aNotification: Notification) {\n        let mainAppIdentifier = \"wang.jianing.OpenInTerminal\"\n        let running = NSWorkspace.shared.runningApplications\n        var alreadyRunning = false\n        \n        for app in running {\n            if app.bundleIdentifier == mainAppIdentifier {\n                alreadyRunning = true\n                break\n            }\n        }\n        \n        if !alreadyRunning {\n            LaunchNotifier.addObserver(observer: NSApp,\n                                       selector: #selector(NSApplication.terminate(_:)),\n                                       notification: .terminateApp,\n                                       object: mainAppIdentifier)\n            \n            let path = Bundle.main.bundlePath as NSString\n            var components = path.pathComponents\n            components.removeLast()\n            components.removeLast()\n            components.removeLast()\n            components.append(\"MacOS\")\n            components.append(\"OpenInTerminal\")\n            \n            let newPath = NSString.path(withComponents: components)\n            NSWorkspace.shared.launchApplication(newPath)\n        } else {\n            NSApp.terminate(self)\n        }\n    }\n    \n    func applicationWillTerminate(_ aNotification: Notification) {\n        print(\"helper app terminated\")\n    }\n\n\n}\n\n"
  },
  {
    "path": "OpenInTerminalHelper/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"mac\",\n      \"size\" : \"16x16\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"mac\",\n      \"size\" : \"16x16\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"mac\",\n      \"size\" : \"32x32\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"mac\",\n      \"size\" : \"32x32\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"mac\",\n      \"size\" : \"128x128\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"mac\",\n      \"size\" : \"128x128\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"mac\",\n      \"size\" : \"256x256\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"mac\",\n      \"size\" : \"256x256\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"mac\",\n      \"size\" : \"512x512\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"mac\",\n      \"size\" : \"512x512\",\n      \"scale\" : \"2x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "OpenInTerminalHelper/Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "OpenInTerminalHelper/Base.lproj/Main.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"14490.70\" targetRuntime=\"MacOSX.Cocoa\" propertyAccessControl=\"none\" useAutolayout=\"YES\">\n    <dependencies>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.CocoaPlugin\" version=\"14490.70\"/>\n    </dependencies>\n    <scenes>\n        <!--Application-->\n        <scene sceneID=\"JPo-4y-FX3\">\n            <objects>\n                <application id=\"hnw-xV-0zn\" sceneMemberID=\"viewController\">\n                    <menu key=\"mainMenu\" title=\"Main Menu\" systemMenu=\"main\" id=\"AYu-sK-qS6\">\n                        <items>\n                            <menuItem title=\"OpenInTerminalHelper\" id=\"1Xt-HY-uBw\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <menu key=\"submenu\" title=\"OpenInTerminalHelper\" systemMenu=\"apple\" id=\"uQy-DD-JDr\">\n                                    <items>\n                                        <menuItem title=\"About OpenInTerminalHelper\" id=\"5kV-Vb-QxS\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"orderFrontStandardAboutPanel:\" target=\"Ady-hI-5gd\" id=\"Exp-CZ-Vem\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem isSeparatorItem=\"YES\" id=\"VOq-y0-SEH\"/>\n                                        <menuItem title=\"Preferences…\" keyEquivalent=\",\" id=\"BOF-NM-1cW\"/>\n                                        <menuItem isSeparatorItem=\"YES\" id=\"wFC-TO-SCJ\"/>\n                                        <menuItem title=\"Services\" id=\"NMo-om-nkz\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <menu key=\"submenu\" title=\"Services\" systemMenu=\"services\" id=\"hz9-B4-Xy5\"/>\n                                        </menuItem>\n                                        <menuItem isSeparatorItem=\"YES\" id=\"4je-JR-u6R\"/>\n                                        <menuItem title=\"Hide OpenInTerminalHelper\" keyEquivalent=\"h\" id=\"Olw-nP-bQN\">\n                                            <connections>\n                                                <action selector=\"hide:\" target=\"Ady-hI-5gd\" id=\"PnN-Uc-m68\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Hide Others\" keyEquivalent=\"h\" id=\"Vdr-fp-XzO\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\" option=\"YES\" command=\"YES\"/>\n                                            <connections>\n                                                <action selector=\"hideOtherApplications:\" target=\"Ady-hI-5gd\" id=\"VT4-aY-XCT\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Show All\" id=\"Kd2-mp-pUS\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"unhideAllApplications:\" target=\"Ady-hI-5gd\" id=\"Dhg-Le-xox\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem isSeparatorItem=\"YES\" id=\"kCx-OE-vgT\"/>\n                                        <menuItem title=\"Quit OpenInTerminalHelper\" keyEquivalent=\"q\" id=\"4sb-4s-VLi\">\n                                            <connections>\n                                                <action selector=\"terminate:\" target=\"Ady-hI-5gd\" id=\"Te7-pn-YzF\"/>\n                                            </connections>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                            <menuItem title=\"File\" id=\"dMs-cI-mzQ\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <menu key=\"submenu\" title=\"File\" id=\"bib-Uj-vzu\">\n                                    <items>\n                                        <menuItem title=\"New\" keyEquivalent=\"n\" id=\"Was-JA-tGl\">\n                                            <connections>\n                                                <action selector=\"newDocument:\" target=\"Ady-hI-5gd\" id=\"4Si-XN-c54\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Open…\" keyEquivalent=\"o\" id=\"IAo-SY-fd9\">\n                                            <connections>\n                                                <action selector=\"openDocument:\" target=\"Ady-hI-5gd\" id=\"bVn-NM-KNZ\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Open Recent\" id=\"tXI-mr-wws\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <menu key=\"submenu\" title=\"Open Recent\" systemMenu=\"recentDocuments\" id=\"oas-Oc-fiZ\">\n                                                <items>\n                                                    <menuItem title=\"Clear Menu\" id=\"vNY-rz-j42\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"clearRecentDocuments:\" target=\"Ady-hI-5gd\" id=\"Daa-9d-B3U\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                </items>\n                                            </menu>\n                                        </menuItem>\n                                        <menuItem isSeparatorItem=\"YES\" id=\"m54-Is-iLE\"/>\n                                        <menuItem title=\"Close\" keyEquivalent=\"w\" id=\"DVo-aG-piG\">\n                                            <connections>\n                                                <action selector=\"performClose:\" target=\"Ady-hI-5gd\" id=\"HmO-Ls-i7Q\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Save…\" keyEquivalent=\"s\" id=\"pxx-59-PXV\">\n                                            <connections>\n                                                <action selector=\"saveDocument:\" target=\"Ady-hI-5gd\" id=\"teZ-XB-qJY\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Save As…\" keyEquivalent=\"S\" id=\"Bw7-FT-i3A\">\n                                            <connections>\n                                                <action selector=\"saveDocumentAs:\" target=\"Ady-hI-5gd\" id=\"mDf-zr-I0C\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Revert to Saved\" keyEquivalent=\"r\" id=\"KaW-ft-85H\">\n                                            <connections>\n                                                <action selector=\"revertDocumentToSaved:\" target=\"Ady-hI-5gd\" id=\"iJ3-Pv-kwq\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem isSeparatorItem=\"YES\" id=\"aJh-i4-bef\"/>\n                                        <menuItem title=\"Page Setup…\" keyEquivalent=\"P\" id=\"qIS-W8-SiK\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\" shift=\"YES\" command=\"YES\"/>\n                                            <connections>\n                                                <action selector=\"runPageLayout:\" target=\"Ady-hI-5gd\" id=\"Din-rz-gC5\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Print…\" keyEquivalent=\"p\" id=\"aTl-1u-JFS\">\n                                            <connections>\n                                                <action selector=\"print:\" target=\"Ady-hI-5gd\" id=\"qaZ-4w-aoO\"/>\n                                            </connections>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                            <menuItem title=\"Edit\" id=\"5QF-Oa-p0T\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <menu key=\"submenu\" title=\"Edit\" id=\"W48-6f-4Dl\">\n                                    <items>\n                                        <menuItem title=\"Undo\" keyEquivalent=\"z\" id=\"dRJ-4n-Yzg\">\n                                            <connections>\n                                                <action selector=\"undo:\" target=\"Ady-hI-5gd\" id=\"M6e-cu-g7V\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Redo\" keyEquivalent=\"Z\" id=\"6dh-zS-Vam\">\n                                            <connections>\n                                                <action selector=\"redo:\" target=\"Ady-hI-5gd\" id=\"oIA-Rs-6OD\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem isSeparatorItem=\"YES\" id=\"WRV-NI-Exz\"/>\n                                        <menuItem title=\"Cut\" keyEquivalent=\"x\" id=\"uRl-iY-unG\">\n                                            <connections>\n                                                <action selector=\"cut:\" target=\"Ady-hI-5gd\" id=\"YJe-68-I9s\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Copy\" keyEquivalent=\"c\" id=\"x3v-GG-iWU\">\n                                            <connections>\n                                                <action selector=\"copy:\" target=\"Ady-hI-5gd\" id=\"G1f-GL-Joy\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Paste\" keyEquivalent=\"v\" id=\"gVA-U4-sdL\">\n                                            <connections>\n                                                <action selector=\"paste:\" target=\"Ady-hI-5gd\" id=\"UvS-8e-Qdg\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Paste and Match Style\" keyEquivalent=\"V\" id=\"WeT-3V-zwk\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\" option=\"YES\" command=\"YES\"/>\n                                            <connections>\n                                                <action selector=\"pasteAsPlainText:\" target=\"Ady-hI-5gd\" id=\"cEh-KX-wJQ\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Delete\" id=\"pa3-QI-u2k\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"delete:\" target=\"Ady-hI-5gd\" id=\"0Mk-Ml-PaM\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Select All\" keyEquivalent=\"a\" id=\"Ruw-6m-B2m\">\n                                            <connections>\n                                                <action selector=\"selectAll:\" target=\"Ady-hI-5gd\" id=\"VNm-Mi-diN\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem isSeparatorItem=\"YES\" id=\"uyl-h8-XO2\"/>\n                                        <menuItem title=\"Find\" id=\"4EN-yA-p0u\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <menu key=\"submenu\" title=\"Find\" id=\"1b7-l0-nxx\">\n                                                <items>\n                                                    <menuItem title=\"Find…\" tag=\"1\" keyEquivalent=\"f\" id=\"Xz5-n4-O0W\">\n                                                        <connections>\n                                                            <action selector=\"performFindPanelAction:\" target=\"Ady-hI-5gd\" id=\"cD7-Qs-BN4\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Find and Replace…\" tag=\"12\" keyEquivalent=\"f\" id=\"YEy-JH-Tfz\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\" option=\"YES\" command=\"YES\"/>\n                                                        <connections>\n                                                            <action selector=\"performFindPanelAction:\" target=\"Ady-hI-5gd\" id=\"WD3-Gg-5AJ\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Find Next\" tag=\"2\" keyEquivalent=\"g\" id=\"q09-fT-Sye\">\n                                                        <connections>\n                                                            <action selector=\"performFindPanelAction:\" target=\"Ady-hI-5gd\" id=\"NDo-RZ-v9R\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Find Previous\" tag=\"3\" keyEquivalent=\"G\" id=\"OwM-mh-QMV\">\n                                                        <connections>\n                                                            <action selector=\"performFindPanelAction:\" target=\"Ady-hI-5gd\" id=\"HOh-sY-3ay\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Use Selection for Find\" tag=\"7\" keyEquivalent=\"e\" id=\"buJ-ug-pKt\">\n                                                        <connections>\n                                                            <action selector=\"performFindPanelAction:\" target=\"Ady-hI-5gd\" id=\"U76-nv-p5D\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Jump to Selection\" keyEquivalent=\"j\" id=\"S0p-oC-mLd\">\n                                                        <connections>\n                                                            <action selector=\"centerSelectionInVisibleArea:\" target=\"Ady-hI-5gd\" id=\"IOG-6D-g5B\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                </items>\n                                            </menu>\n                                        </menuItem>\n                                        <menuItem title=\"Spelling and Grammar\" id=\"Dv1-io-Yv7\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <menu key=\"submenu\" title=\"Spelling\" id=\"3IN-sU-3Bg\">\n                                                <items>\n                                                    <menuItem title=\"Show Spelling and Grammar\" keyEquivalent=\":\" id=\"HFo-cy-zxI\">\n                                                        <connections>\n                                                            <action selector=\"showGuessPanel:\" target=\"Ady-hI-5gd\" id=\"vFj-Ks-hy3\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Check Document Now\" keyEquivalent=\";\" id=\"hz2-CU-CR7\">\n                                                        <connections>\n                                                            <action selector=\"checkSpelling:\" target=\"Ady-hI-5gd\" id=\"fz7-VC-reM\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem isSeparatorItem=\"YES\" id=\"bNw-od-mp5\"/>\n                                                    <menuItem title=\"Check Spelling While Typing\" id=\"rbD-Rh-wIN\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"toggleContinuousSpellChecking:\" target=\"Ady-hI-5gd\" id=\"7w6-Qz-0kB\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Check Grammar With Spelling\" id=\"mK6-2p-4JG\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"toggleGrammarChecking:\" target=\"Ady-hI-5gd\" id=\"muD-Qn-j4w\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Correct Spelling Automatically\" id=\"78Y-hA-62v\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"toggleAutomaticSpellingCorrection:\" target=\"Ady-hI-5gd\" id=\"2lM-Qi-WAP\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                </items>\n                                            </menu>\n                                        </menuItem>\n                                        <menuItem title=\"Substitutions\" id=\"9ic-FL-obx\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <menu key=\"submenu\" title=\"Substitutions\" id=\"FeM-D8-WVr\">\n                                                <items>\n                                                    <menuItem title=\"Show Substitutions\" id=\"z6F-FW-3nz\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"orderFrontSubstitutionsPanel:\" target=\"Ady-hI-5gd\" id=\"oku-mr-iSq\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem isSeparatorItem=\"YES\" id=\"gPx-C9-uUO\"/>\n                                                    <menuItem title=\"Smart Copy/Paste\" id=\"9yt-4B-nSM\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"toggleSmartInsertDelete:\" target=\"Ady-hI-5gd\" id=\"3IJ-Se-DZD\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Smart Quotes\" id=\"hQb-2v-fYv\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"toggleAutomaticQuoteSubstitution:\" target=\"Ady-hI-5gd\" id=\"ptq-xd-QOA\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Smart Dashes\" id=\"rgM-f4-ycn\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"toggleAutomaticDashSubstitution:\" target=\"Ady-hI-5gd\" id=\"oCt-pO-9gS\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Smart Links\" id=\"cwL-P1-jid\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"toggleAutomaticLinkDetection:\" target=\"Ady-hI-5gd\" id=\"Gip-E3-Fov\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Data Detectors\" id=\"tRr-pd-1PS\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"toggleAutomaticDataDetection:\" target=\"Ady-hI-5gd\" id=\"R1I-Nq-Kbl\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Text Replacement\" id=\"HFQ-gK-NFA\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"toggleAutomaticTextReplacement:\" target=\"Ady-hI-5gd\" id=\"DvP-Fe-Py6\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                </items>\n                                            </menu>\n                                        </menuItem>\n                                        <menuItem title=\"Transformations\" id=\"2oI-Rn-ZJC\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <menu key=\"submenu\" title=\"Transformations\" id=\"c8a-y6-VQd\">\n                                                <items>\n                                                    <menuItem title=\"Make Upper Case\" id=\"vmV-6d-7jI\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"uppercaseWord:\" target=\"Ady-hI-5gd\" id=\"sPh-Tk-edu\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Make Lower Case\" id=\"d9M-CD-aMd\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"lowercaseWord:\" target=\"Ady-hI-5gd\" id=\"iUZ-b5-hil\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Capitalize\" id=\"UEZ-Bs-lqG\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"capitalizeWord:\" target=\"Ady-hI-5gd\" id=\"26H-TL-nsh\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                </items>\n                                            </menu>\n                                        </menuItem>\n                                        <menuItem title=\"Speech\" id=\"xrE-MZ-jX0\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <menu key=\"submenu\" title=\"Speech\" id=\"3rS-ZA-NoH\">\n                                                <items>\n                                                    <menuItem title=\"Start Speaking\" id=\"Ynk-f8-cLZ\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"startSpeaking:\" target=\"Ady-hI-5gd\" id=\"654-Ng-kyl\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Stop Speaking\" id=\"Oyz-dy-DGm\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"stopSpeaking:\" target=\"Ady-hI-5gd\" id=\"dX8-6p-jy9\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                </items>\n                                            </menu>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                            <menuItem title=\"Format\" id=\"jxT-CU-nIS\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <menu key=\"submenu\" title=\"Format\" id=\"GEO-Iw-cKr\">\n                                    <items>\n                                        <menuItem title=\"Font\" id=\"Gi5-1S-RQB\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <menu key=\"submenu\" title=\"Font\" systemMenu=\"font\" id=\"aXa-aM-Jaq\">\n                                                <items>\n                                                    <menuItem title=\"Show Fonts\" keyEquivalent=\"t\" id=\"Q5e-8K-NDq\">\n                                                        <connections>\n                                                            <action selector=\"orderFrontFontPanel:\" target=\"YLy-65-1bz\" id=\"WHr-nq-2xA\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Bold\" tag=\"2\" keyEquivalent=\"b\" id=\"GB9-OM-e27\">\n                                                        <connections>\n                                                            <action selector=\"addFontTrait:\" target=\"YLy-65-1bz\" id=\"hqk-hr-sYV\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Italic\" tag=\"1\" keyEquivalent=\"i\" id=\"Vjx-xi-njq\">\n                                                        <connections>\n                                                            <action selector=\"addFontTrait:\" target=\"YLy-65-1bz\" id=\"IHV-OB-c03\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Underline\" keyEquivalent=\"u\" id=\"WRG-CD-K1S\">\n                                                        <connections>\n                                                            <action selector=\"underline:\" target=\"Ady-hI-5gd\" id=\"FYS-2b-JAY\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem isSeparatorItem=\"YES\" id=\"5gT-KC-WSO\"/>\n                                                    <menuItem title=\"Bigger\" tag=\"3\" keyEquivalent=\"+\" id=\"Ptp-SP-VEL\">\n                                                        <connections>\n                                                            <action selector=\"modifyFont:\" target=\"YLy-65-1bz\" id=\"Uc7-di-UnL\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Smaller\" tag=\"4\" keyEquivalent=\"-\" id=\"i1d-Er-qST\">\n                                                        <connections>\n                                                            <action selector=\"modifyFont:\" target=\"YLy-65-1bz\" id=\"HcX-Lf-eNd\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem isSeparatorItem=\"YES\" id=\"kx3-Dk-x3B\"/>\n                                                    <menuItem title=\"Kern\" id=\"jBQ-r6-VK2\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <menu key=\"submenu\" title=\"Kern\" id=\"tlD-Oa-oAM\">\n                                                            <items>\n                                                                <menuItem title=\"Use Default\" id=\"GUa-eO-cwY\">\n                                                                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                                    <connections>\n                                                                        <action selector=\"useStandardKerning:\" target=\"Ady-hI-5gd\" id=\"6dk-9l-Ckg\"/>\n                                                                    </connections>\n                                                                </menuItem>\n                                                                <menuItem title=\"Use None\" id=\"cDB-IK-hbR\">\n                                                                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                                    <connections>\n                                                                        <action selector=\"turnOffKerning:\" target=\"Ady-hI-5gd\" id=\"U8a-gz-Maa\"/>\n                                                                    </connections>\n                                                                </menuItem>\n                                                                <menuItem title=\"Tighten\" id=\"46P-cB-AYj\">\n                                                                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                                    <connections>\n                                                                        <action selector=\"tightenKerning:\" target=\"Ady-hI-5gd\" id=\"hr7-Nz-8ro\"/>\n                                                                    </connections>\n                                                                </menuItem>\n                                                                <menuItem title=\"Loosen\" id=\"ogc-rX-tC1\">\n                                                                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                                    <connections>\n                                                                        <action selector=\"loosenKerning:\" target=\"Ady-hI-5gd\" id=\"8i4-f9-FKE\"/>\n                                                                    </connections>\n                                                                </menuItem>\n                                                            </items>\n                                                        </menu>\n                                                    </menuItem>\n                                                    <menuItem title=\"Ligatures\" id=\"o6e-r0-MWq\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <menu key=\"submenu\" title=\"Ligatures\" id=\"w0m-vy-SC9\">\n                                                            <items>\n                                                                <menuItem title=\"Use Default\" id=\"agt-UL-0e3\">\n                                                                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                                    <connections>\n                                                                        <action selector=\"useStandardLigatures:\" target=\"Ady-hI-5gd\" id=\"7uR-wd-Dx6\"/>\n                                                                    </connections>\n                                                                </menuItem>\n                                                                <menuItem title=\"Use None\" id=\"J7y-lM-qPV\">\n                                                                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                                    <connections>\n                                                                        <action selector=\"turnOffLigatures:\" target=\"Ady-hI-5gd\" id=\"iX2-gA-Ilz\"/>\n                                                                    </connections>\n                                                                </menuItem>\n                                                                <menuItem title=\"Use All\" id=\"xQD-1f-W4t\">\n                                                                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                                    <connections>\n                                                                        <action selector=\"useAllLigatures:\" target=\"Ady-hI-5gd\" id=\"KcB-kA-TuK\"/>\n                                                                    </connections>\n                                                                </menuItem>\n                                                            </items>\n                                                        </menu>\n                                                    </menuItem>\n                                                    <menuItem title=\"Baseline\" id=\"OaQ-X3-Vso\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <menu key=\"submenu\" title=\"Baseline\" id=\"ijk-EB-dga\">\n                                                            <items>\n                                                                <menuItem title=\"Use Default\" id=\"3Om-Ey-2VK\">\n                                                                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                                    <connections>\n                                                                        <action selector=\"unscript:\" target=\"Ady-hI-5gd\" id=\"0vZ-95-Ywn\"/>\n                                                                    </connections>\n                                                                </menuItem>\n                                                                <menuItem title=\"Superscript\" id=\"Rqc-34-cIF\">\n                                                                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                                    <connections>\n                                                                        <action selector=\"superscript:\" target=\"Ady-hI-5gd\" id=\"3qV-fo-wpU\"/>\n                                                                    </connections>\n                                                                </menuItem>\n                                                                <menuItem title=\"Subscript\" id=\"I0S-gh-46l\">\n                                                                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                                    <connections>\n                                                                        <action selector=\"subscript:\" target=\"Ady-hI-5gd\" id=\"Q6W-4W-IGz\"/>\n                                                                    </connections>\n                                                                </menuItem>\n                                                                <menuItem title=\"Raise\" id=\"2h7-ER-AoG\">\n                                                                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                                    <connections>\n                                                                        <action selector=\"raiseBaseline:\" target=\"Ady-hI-5gd\" id=\"4sk-31-7Q9\"/>\n                                                                    </connections>\n                                                                </menuItem>\n                                                                <menuItem title=\"Lower\" id=\"1tx-W0-xDw\">\n                                                                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                                    <connections>\n                                                                        <action selector=\"lowerBaseline:\" target=\"Ady-hI-5gd\" id=\"OF1-bc-KW4\"/>\n                                                                    </connections>\n                                                                </menuItem>\n                                                            </items>\n                                                        </menu>\n                                                    </menuItem>\n                                                    <menuItem isSeparatorItem=\"YES\" id=\"Ndw-q3-faq\"/>\n                                                    <menuItem title=\"Show Colors\" keyEquivalent=\"C\" id=\"bgn-CT-cEk\">\n                                                        <connections>\n                                                            <action selector=\"orderFrontColorPanel:\" target=\"Ady-hI-5gd\" id=\"mSX-Xz-DV3\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem isSeparatorItem=\"YES\" id=\"iMs-zA-UFJ\"/>\n                                                    <menuItem title=\"Copy Style\" keyEquivalent=\"c\" id=\"5Vv-lz-BsD\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\" option=\"YES\" command=\"YES\"/>\n                                                        <connections>\n                                                            <action selector=\"copyFont:\" target=\"Ady-hI-5gd\" id=\"GJO-xA-L4q\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Paste Style\" keyEquivalent=\"v\" id=\"vKC-jM-MkH\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\" option=\"YES\" command=\"YES\"/>\n                                                        <connections>\n                                                            <action selector=\"pasteFont:\" target=\"Ady-hI-5gd\" id=\"JfD-CL-leO\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                </items>\n                                            </menu>\n                                        </menuItem>\n                                        <menuItem title=\"Text\" id=\"Fal-I4-PZk\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <menu key=\"submenu\" title=\"Text\" id=\"d9c-me-L2H\">\n                                                <items>\n                                                    <menuItem title=\"Align Left\" keyEquivalent=\"{\" id=\"ZM1-6Q-yy1\">\n                                                        <connections>\n                                                            <action selector=\"alignLeft:\" target=\"Ady-hI-5gd\" id=\"zUv-R1-uAa\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Center\" keyEquivalent=\"|\" id=\"VIY-Ag-zcb\">\n                                                        <connections>\n                                                            <action selector=\"alignCenter:\" target=\"Ady-hI-5gd\" id=\"spX-mk-kcS\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Justify\" id=\"J5U-5w-g23\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"alignJustified:\" target=\"Ady-hI-5gd\" id=\"ljL-7U-jND\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Align Right\" keyEquivalent=\"}\" id=\"wb2-vD-lq4\">\n                                                        <connections>\n                                                            <action selector=\"alignRight:\" target=\"Ady-hI-5gd\" id=\"r48-bG-YeY\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem isSeparatorItem=\"YES\" id=\"4s2-GY-VfK\"/>\n                                                    <menuItem title=\"Writing Direction\" id=\"H1b-Si-o9J\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <menu key=\"submenu\" title=\"Writing Direction\" id=\"8mr-sm-Yjd\">\n                                                            <items>\n                                                                <menuItem title=\"Paragraph\" enabled=\"NO\" id=\"ZvO-Gk-QUH\">\n                                                                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                                </menuItem>\n                                                                <menuItem id=\"YGs-j5-SAR\">\n                                                                    <string key=\"title\">\tDefault</string>\n                                                                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                                    <connections>\n                                                                        <action selector=\"makeBaseWritingDirectionNatural:\" target=\"Ady-hI-5gd\" id=\"qtV-5e-UBP\"/>\n                                                                    </connections>\n                                                                </menuItem>\n                                                                <menuItem id=\"Lbh-J2-qVU\">\n                                                                    <string key=\"title\">\tLeft to Right</string>\n                                                                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                                    <connections>\n                                                                        <action selector=\"makeBaseWritingDirectionLeftToRight:\" target=\"Ady-hI-5gd\" id=\"S0X-9S-QSf\"/>\n                                                                    </connections>\n                                                                </menuItem>\n                                                                <menuItem id=\"jFq-tB-4Kx\">\n                                                                    <string key=\"title\">\tRight to Left</string>\n                                                                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                                    <connections>\n                                                                        <action selector=\"makeBaseWritingDirectionRightToLeft:\" target=\"Ady-hI-5gd\" id=\"5fk-qB-AqJ\"/>\n                                                                    </connections>\n                                                                </menuItem>\n                                                                <menuItem isSeparatorItem=\"YES\" id=\"swp-gr-a21\"/>\n                                                                <menuItem title=\"Selection\" enabled=\"NO\" id=\"cqv-fj-IhA\">\n                                                                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                                </menuItem>\n                                                                <menuItem id=\"Nop-cj-93Q\">\n                                                                    <string key=\"title\">\tDefault</string>\n                                                                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                                    <connections>\n                                                                        <action selector=\"makeTextWritingDirectionNatural:\" target=\"Ady-hI-5gd\" id=\"lPI-Se-ZHp\"/>\n                                                                    </connections>\n                                                                </menuItem>\n                                                                <menuItem id=\"BgM-ve-c93\">\n                                                                    <string key=\"title\">\tLeft to Right</string>\n                                                                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                                    <connections>\n                                                                        <action selector=\"makeTextWritingDirectionLeftToRight:\" target=\"Ady-hI-5gd\" id=\"caW-Bv-w94\"/>\n                                                                    </connections>\n                                                                </menuItem>\n                                                                <menuItem id=\"RB4-Sm-HuC\">\n                                                                    <string key=\"title\">\tRight to Left</string>\n                                                                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                                    <connections>\n                                                                        <action selector=\"makeTextWritingDirectionRightToLeft:\" target=\"Ady-hI-5gd\" id=\"EXD-6r-ZUu\"/>\n                                                                    </connections>\n                                                                </menuItem>\n                                                            </items>\n                                                        </menu>\n                                                    </menuItem>\n                                                    <menuItem isSeparatorItem=\"YES\" id=\"fKy-g9-1gm\"/>\n                                                    <menuItem title=\"Show Ruler\" id=\"vLm-3I-IUL\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"toggleRuler:\" target=\"Ady-hI-5gd\" id=\"FOx-HJ-KwY\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Copy Ruler\" keyEquivalent=\"c\" id=\"MkV-Pr-PK5\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\" control=\"YES\" command=\"YES\"/>\n                                                        <connections>\n                                                            <action selector=\"copyRuler:\" target=\"Ady-hI-5gd\" id=\"71i-fW-3W2\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Paste Ruler\" keyEquivalent=\"v\" id=\"LVM-kO-fVI\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\" control=\"YES\" command=\"YES\"/>\n                                                        <connections>\n                                                            <action selector=\"pasteRuler:\" target=\"Ady-hI-5gd\" id=\"cSh-wd-qM2\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                </items>\n                                            </menu>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                            <menuItem title=\"View\" id=\"H8h-7b-M4v\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <menu key=\"submenu\" title=\"View\" id=\"HyV-fh-RgO\">\n                                    <items>\n                                        <menuItem title=\"Show Toolbar\" keyEquivalent=\"t\" id=\"snW-S8-Cw5\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\" option=\"YES\" command=\"YES\"/>\n                                            <connections>\n                                                <action selector=\"toggleToolbarShown:\" target=\"Ady-hI-5gd\" id=\"BXY-wc-z0C\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Customize Toolbar…\" id=\"1UK-8n-QPP\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"runToolbarCustomizationPalette:\" target=\"Ady-hI-5gd\" id=\"pQI-g3-MTW\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem isSeparatorItem=\"YES\" id=\"hB3-LF-h0Y\"/>\n                                        <menuItem title=\"Show Sidebar\" keyEquivalent=\"s\" id=\"kIP-vf-haE\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\" control=\"YES\" command=\"YES\"/>\n                                            <connections>\n                                                <action selector=\"toggleSidebar:\" target=\"Ady-hI-5gd\" id=\"iwa-gc-5KM\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Enter Full Screen\" keyEquivalent=\"f\" id=\"4J7-dP-txa\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\" control=\"YES\" command=\"YES\"/>\n                                            <connections>\n                                                <action selector=\"toggleFullScreen:\" target=\"Ady-hI-5gd\" id=\"dU3-MA-1Rq\"/>\n                                            </connections>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                            <menuItem title=\"Window\" id=\"aUF-d1-5bR\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <menu key=\"submenu\" title=\"Window\" systemMenu=\"window\" id=\"Td7-aD-5lo\">\n                                    <items>\n                                        <menuItem title=\"Minimize\" keyEquivalent=\"m\" id=\"OY7-WF-poV\">\n                                            <connections>\n                                                <action selector=\"performMiniaturize:\" target=\"Ady-hI-5gd\" id=\"VwT-WD-YPe\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Zoom\" id=\"R4o-n2-Eq4\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"performZoom:\" target=\"Ady-hI-5gd\" id=\"DIl-cC-cCs\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem isSeparatorItem=\"YES\" id=\"eu3-7i-yIM\"/>\n                                        <menuItem title=\"Bring All to Front\" id=\"LE2-aR-0XJ\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"arrangeInFront:\" target=\"Ady-hI-5gd\" id=\"DRN-fu-gQh\"/>\n                                            </connections>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                            <menuItem title=\"Help\" id=\"wpr-3q-Mcd\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <menu key=\"submenu\" title=\"Help\" systemMenu=\"help\" id=\"F2S-fz-NVQ\">\n                                    <items>\n                                        <menuItem title=\"OpenInTerminalHelper Help\" keyEquivalent=\"?\" id=\"FKE-Sm-Kum\">\n                                            <connections>\n                                                <action selector=\"showHelp:\" target=\"Ady-hI-5gd\" id=\"y7X-2Q-9no\"/>\n                                            </connections>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                        </items>\n                    </menu>\n                    <connections>\n                        <outlet property=\"delegate\" destination=\"Voe-Tx-rLC\" id=\"PrD-fu-P6m\"/>\n                    </connections>\n                </application>\n                <customObject id=\"Voe-Tx-rLC\" customClass=\"AppDelegate\" customModule=\"OpenInTerminalHelper\" customModuleProvider=\"target\"/>\n                <customObject id=\"YLy-65-1bz\" customClass=\"NSFontManager\"/>\n                <customObject id=\"Ady-hI-5gd\" userLabel=\"First Responder\" customClass=\"NSResponder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"75\" y=\"0.0\"/>\n        </scene>\n    </scenes>\n</document>\n"
  },
  {
    "path": "OpenInTerminalHelper/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>$(DEVELOPMENT_LANGUAGE)</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIconFile</key>\n\t<string></string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>$(MARKETING_VERSION)</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSApplicationCategoryType</key>\n\t<string>public.app-category.utilities</string>\n\t<key>LSBackgroundOnly</key>\n\t<true/>\n\t<key>LSMinimumSystemVersion</key>\n\t<string>$(MACOSX_DEPLOYMENT_TARGET)</string>\n\t<key>NSHumanReadableCopyright</key>\n\t<string>Copyright © 2019 Jianing Wang. All rights reserved.</string>\n\t<key>NSMainStoryboardFile</key>\n\t<string>Main</string>\n\t<key>NSPrincipalClass</key>\n\t<string>NSApplication</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "OpenInTerminalHelper/OpenInTerminalHelper.entitlements",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>com.apple.security.app-sandbox</key>\n\t<true/>\n\t<key>com.apple.security.application-groups</key>\n\t<array>\n\t\t<string>$(TeamIdentifierPrefix)</string>\n\t</array>\n\t<key>com.apple.security.automation.apple-events</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "README.md",
    "content": "<div align=\"center\">\n  <img width=\"80%\" src=\"https://user-images.githubusercontent.com/11001224/104892170-d18f2b80-59ac-11eb-96b1-0293acfde4e5.png\"><br/><br/>\n  English | <a href=\"./Resources/README-zh.md\">中文</a> | <a href=\"./Resources/README-tr.md\">Türkçe</a> | <a href=\"./Resources/README-de.md\">Deutsch</a>\n</div>\n\n## How to use 🚀\n\n| Core Features | OpenInTerminal |\n| --- | --- |\n| Open items (e.g., folders or files) in Terminal or Editor. | ![](https://user-images.githubusercontent.com/11001224/78589385-b797b880-7872-11ea-9062-c11a49461598.gif) | \n| Open the selected item in your preferred apps (e.g., Github Desktop, Fork). | ![](https://user-images.githubusercontent.com/11001224/104891620-28483580-59ac-11eb-9fb5-3e4dec7863cc.gif) |\n\n### More features\n\n| Features | OpenInTerminal | OpenInTerminal-Lite & OpenInEditor-Lite |\n| --- | --- | --- |\n| Support Terminal, [iTerm](https://www.iterm2.com/), [Hyper](https://github.com/zeit/hyper), [Alacritty](https://github.com/jwilm/alacritty), [kitty](https://sw.kovidgoyal.net/kitty/), [Warp](https://www.warp.dev), [WezTerm](https://wezfurlong.org/wezterm/index.html), [Tabby](https://tabby.sh), [Ghostty](https://ghostty.org/). | ✅ | ✅ |\n| Support TextEdit, Xcode, [Visual Studio Code](https://code.visualstudio.com/), [VSCode Insiders](https://code.visualstudio.com/insiders/), [Atom](https://atom.io/), [Sublime Text](https://www.sublimetext.com/), [VSCodium](https://github.com/VSCodium/vscodium), [BBEdit](https://www.barebones.com/products/bbedit/), [TextMate](https://macromates.com), [CotEditor](https://coteditor.com/), [MacVim](https://github.com/macvim-dev/macvim), [JetBrains](https://www.jetbrains.com/)(AppCode, CLion, GoLand, IntelliJ IDEA, PhpStorm, PyCharm, RubyMine, WebStorm, Android Studio, Fleet), [Typora](https://typora.io/), [Nova](https://nova.app/), [Cursor](https://cursor.sh/), [notepad--](https://github.com/cxasm/notepad--), [neovim](https://neovim.io/). | ✅ | ✅ |\n| Open in custom apps. (⚠️ Not all apps support.) | ✅ | ✅ |\n| Support English, Chinese, French, Russian, Italian, Spanish, Turkish, German and Korean | ✅ | ✅ |\n| GUI preferences | ✅ | ❌ |\n| Support keyboard shortcuts. | ✅ | ❌ |\n\n## OpenInTerminal vs OpenInTerminal-Lite 👀\n\nWondering which one to choose? If you're all about fancy features and GUI settings, go for `OpenInTerminal`. But if you just want to open your terminal quickly and without fuss, `OpenInTerminal-Lite` is your buddy.\n\nI personally prefer `OpenInTerminal-Lite`. Why? It's a one-click wonder (while the other makes you click twice 😂) and it's more lightweight.\n\nCheck **OpenInTerminal-Lite** Docs: [English](./Resources/README-Lite.md) | [中文](./Resources/README-Lite-zh.md) | [Deutsch](./Resources/README-Lite-de.md)\n\n\n## Installation 🖥\n\n```\nbrew install --cask openinterminal\n```\n\nOr manually download it from [release](https://github.com/Ji4n1ng/OpenInTerminal/releases).\n\n## Configuration and FAQ ⚙️\n\nPlease check the [Configuration](./Resources/README-Config.md) document.\n\n## Support ❤️\n\nOpen-source projects cannot live long without your help. If you like OpenInTerminal, please consider supporting this project by becoming a sponsor. Your user icon or company logo shows up on the README with a link to your home page.\n\nBecome a sponsor through [GitHub Sponsors](https://github.com/sponsors/Ji4n1ng) 💖.\n\n| PayPal | AliPay | WeChat Pay |\n| --- | --- | --- |\n| [paypal.me/ji4ning](https://www.paypal.me/ji4ning) | <img src=\"./Resources/Support-Alipay.jpg\" width=\"50%\"> | <img src=\"./Resources/Support-WeChatPay.jpg\" width=\"50%\"> |\n\n<!-- ### Backers & Sponsors -->\n<!---->\n<!-- <a href=\"https://github.com/wcoder\"><img src=\"https://avatars.githubusercontent.com/u/766193?v=4\" width=\"10%\" style=\"border-radius:10px;\" /></a> -->\n\n\n## Changes 🗒\n\n<details><summary>show all</summary><br>\n<p><strong>version 2.3.8</strong></p>\n<ul>\n<li>Support \"open in neovim\" for Alacritty, WezTerm, and kitty users.</li>\n<li>Customize open command for kitty users</li>\n<li>Copy path with escaping</li>\n<li>Support fork, notepad--, Ghostty</li>\n<li>Support nix installed applications</li>\n</ul>\n<p><strong>version 2.3.7</strong></p>\n<ul>\n<li>Support Korean</li>\n<li>Support Warp</li>\n<li>Support WezTerm</li>\n<li>Support Tabby</li>\n<li>Support Fleet</li>\n<li>Support Nova</li>\n<li>Support Cursor</li>\n<li>Support Xcode</li>\n<li>For kitty users: open in a signle instance instead of a new one</li>\n</ul>\n<p><strong>version 2.3.6</strong></p>\n<ul>\n<li>Support German</li>\n<li>Search apps installed by JetBrains Toolbox</li>\n<li>Support Android Studio</li>\n</ul>\n<p><strong>version 2.3.5</strong></p>\n<ul>\n<li>Support dragging to reorder custom menu</li>\n<li>Support Turkish</li>\n<li>Support Typora</li>\n</ul>\n<p><strong>version 2.3.4</strong></p>\n<ul>\n<li>Update icons in context menu</li>\n</ul>\n<p><strong>version 2.3.3</strong></p>\n<ul>\n<li>Fix: cannot open path with white space when using shortcut</li>\n</ul>\n<p><strong>version 2.3.2</strong></p>\n<ul>\n<li>Fix: cannot open path with white space</li>\n</ul>\n<p><strong>version 2.3.1</strong></p>\n<ul>\n<li>Fix: cannot open alacritty</li>\n<li>Feat: add quit button in preferences</li>\n</ul>\n<p><strong>version 2.3.0</strong></p>\n<ul>\n<li>Open custom apps. (Not all apps support)</li>\n<li>Show icon in context menu. (For stability, old Mac models are not recommended to display icons)</li>\n</ul>\n<p><strong>version 2.2.3</strong></p>\n<ul>\n<li>Support kitty</li>\n<li>Open multi-selected files in editors</li>\n</ul>\n<p><strong>version 2.2.2</strong></p>\n<ul>\n<li>Support Italian and Spanish</li>\n<li>Fix: does not show Terminal and TextEdit</li>\n</ul>\n<p><strong>version 2.2.1</strong></p>\n<ul>\n<li>Support JetBrains</li>\n<li>Fix: check whether an application exists</li>\n</ul>\n<p><strong>version 2.2.0</strong></p>\n<ul>\n<li>Custom Finder menu options</li>\n<li>Support Russian</li>\n<li>Support PhpStorm</li>\n<li>Fix: doesn't work when opening desktop in terminal</li>\n</ul>\n<p><strong>version 2.1.1</strong></p>\n<ul>\n<li>Signed the application with the developer account. Bundle ID has changed</li>\n<li>Support Finder Extension Standalone Operation Mode</li>\n<li>Support CotEditor and MacVim</li>\n<li>User can hide context menu items</li>\n<li>Finder context menu item's title will change to the current default terminal or editor</li>\n</ul>\n<p><strong>version 2.0.5</strong></p>\n<ul>\n<li>Fix: check application exist bug</li>\n</ul>\n<p><strong>version 2.0.4</strong></p>\n<ul>\n<li>Support TextMate</li>\n<li>Fix: keyboard shortcut bug</li>\n</ul>\n<p><strong>version 2.0.3</strong></p>\n<ul>\n<li>Fix: Finder context menu icon supports dark mode</li>\n</ul>\n<p><strong>version 2.0.2</strong></p>\n<ul>\n<li>Support Visual Studio Code - Insiders</li>\n<li>Support for hiding the status bar icon</li>\n</ul>\n<p><strong>version 2.0.1</strong></p>\n<ul>\n<li>Support BBEdit</li>\n<li>Add icon in Finder context menu</li>\n<li>Fix: check application folder under home directory</li>\n</ul>\n<p><strong>version 0.10.2</strong></p>\n<ul>\n<li>Fix: Finder context menu does not appear on other disks.</li>\n</ul>\n<p><strong>version 0.10.1</strong></p>\n<ul>\n<li>iTerm will not leave `cd xxx` in history.</li>\n<li>You need to click the `window` button or the `tab` button of iTerm again in `Preferences`.</li>\n</ul>\n<p><strong>version 0.10.0</strong></p>\n<ul>\n<li>Support keyboard shortcuts.</li>\n<li>Support VSCodium.</li>\n</ul>\n<p><strong>version 0.9.1</strong></p>\n<ul>\n<li>Support French.</li>\n</ul>\n<p><strong>version 0.9.0</strong></p>\n<ul>\n<li>OpenInTerminal has been released after several weeks of development. If you have suggestions or there are bugs, please feel free to open an issue.</li>\n</ul>\n<p><strong>version 0.4.1</strong></p>\n<ul>\n<li>Support <code>Alacritty</code></li>\n</ul>\n<p><strong>version 0.4.0</strong></p>\n<ul>\n<li>You can set a default to open a new tab or window when using <code>Terminal</code> and <code>Hyper</code>.</li>\n</ul>\n<p><strong>version 0.3.0</strong></p>\n<ul>\n<li>Change name to <code>OpenInTerminal-Lite</code> (<code>OpenInTerminal</code> will come as a more powerful version in the future.)</li>\n<li>Fix a bug that some special characters in the path would crash the program when opening Hyper.</li>\n</ul>\n<p><strong>version 0.2.0</strong></p>\n<ul>\n<li>Add terminal selector</li>\n<li>Cancel running <code>clear</code> command when opening iTerm</li>\n</ul>\n<p><strong>version 0.1.1</strong></p>\n<ul>\n<li>Support <code>Hyper</code></li>\n<li>Give priority to creating a new tab when opening iTerm</li>\n</ul>\n<p><strong>version 0.1.0</strong></p>\n<ul>\n<li>First release</li>\n</ul>\n<br>\n</details>\n\n## Special Thanks to ❤️\n\nThanks to all [backers](https://github.com/sponsors/Ji4n1ng) and [contributors](https://github.com/Ji4n1ng/OpenInTerminal/graphs/contributors). Your work makes OpenInTerminal better.\n\n### Reference projects\n\n- [jbtule/cdto](https://github.com/jbtule/cdto)\n- [es-kumagai/OpenTerminal](https://github.com/es-kumagai/OpenTerminal)\n- [tingraldi/SwiftScripting](https://github.com/tingraldi/SwiftScripting)\n- [onmyway133/FinderGo](https://github.com/onmyway133/FinderGo)\n- [Caldis/Mos](https://github.com/Caldis/Mos/)\n"
  },
  {
    "path": "Resources/README-Config-zh.md",
    "content": "# OpenInTerminal 配置\n\n## Finder 扩展配置\n\n要启用 Finder 扩展，请右键单击 Finder 工具栏，然后选择 自定义工具栏...，如下图所示：\n\n<div>\n  <img src=\"https://github.com/user-attachments/assets/c834f0d1-2f9d-4200-984c-3f6330eaeb2d\" width=\"400px\">\n</div>\n\n然后将 OpenInTerminal 图标拖动到工具栏中：\n\n<div>\n  <img src=\"https://github.com/user-attachments/assets/261eb747-27f0-4484-9654-40cab8a52008\" width=\"400px\">\n</div>\n\n### macOS 15 中 Finder 扩展未显示在系统设置中\n\n#### 1) 手动启用 Finder 扩展\n\n从 macOS 15 开始，Apple 从系统设置中移除了 Finder 同步扩展的配置。要启用 Finder 扩展，可以使用 `pluginkit` 命令行工具，如下所示：\n\n```\n$ pluginkit -mAD -p com.apple.FinderSync -vvv\n```\n\n会看到类似以下的输出：\n\n```\nwang.jianing.app.OpenInTerminal.OpenInTerminalFinderExtension(2.3.5)\n           Path = /Applications/OpenInTerminal.app/Contents/PlugIns/OpenInTerminalFinderExtension.appex\n           UUID = F2547F13-4E43-4E88-9D8F-56DF05C020D8\n      Timestamp = 2024-09-17 09:34:07 +0000\n            SDK = com.apple.FinderSync\n  Parent Bundle = /Applications/OpenInTerminal.app\n   Display Name = OpenInTerminalFinderExtension\n     Short Name = OpenInTerminalFinderExtension\n    Parent Name = OpenInTerminal\n       Platform = macOS\n```\n\n要手动启用 Finder 扩展，请使用输出中的 UUID 运行以下命令：\n\n```\n$ pluginkit -e \"use\" -u \"F2547F13-4E43-4E88-9D8F-56DF05C020D8\"\n```\n\n#### 2) 使用 FinderSyncer\n\n或者，您可以使用一个名为 [FinderSyncer](https://zigz.ag/FinderSyncer/) 的图形界面工具来启用扩展。\n\n### 在 macOS 14 及更早版本中检查 Finder 扩展权限\n\n对于 macOS 14 及更早版本，请确保通过系统偏好设置启用了 Finder 扩展：\n\n1. 打开 OpenInTerminal 应用。\n2. 依次进入 系统偏好设置 -> 扩展 -> Finder 扩展。\n3. 勾选 OpenInTerminalFinderExtension 旁的复选框，如下图所示：\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/78590336-448f4180-7874-11ea-827c-ad3a7bffca5e.png\" width=\"400px\">\n</div>\n\n## 自定义配置\n\n### 针对 Neovim 用户\n\n如果您在 OpenInTerminal 中选择 Neovim 作为编辑器，应用将使用 Kitty 作为默认终端。要切换到其他终端（支持的选项包括 Alacritty、WezTerm 和 Kitty），请使用以下命令更新配置。将 `<Your Name>` 替换为您的用户名，并根据您的安装调整 Neovim 路径（此示例为 `/opt/homebrew/bin/nvim`）：\n\n```\ndefaults write /Users/<Your Name>/Library/Group\\ Containers/group.wang.jianing.app.OpenInTerminal/Library/Preferences/group.wang.jianing.app.OpenInTerminal.plist NeovimCommand \"open -na wezterm --args start /opt/homebrew/bin/nvim PATH\"\n```\n\n其他终端配置：\n\n```\n// kitty:\n\"open -na kitty --args /opt/homebrew/bin/nvim PATH\"\n// WezTerm:\n\"open -na wezterm --args start /opt/homebrew/bin/nvim PATH\"\n// Alacritty:\n\"open -na Alacritty --args -e /opt/homebrew/bin/nvim PATH\"\n```\n\n### 针对 Kitty 用户\n\n默认情况下，Kitty 的启动行为是为每个命令打开一个新实例，如下所示：\n\n```\nopen -na kitty --args --single-instance --instance-group 1 --directory\n```\n\n如果您想自定义此行为，可以在终端中运行以下命令。请确保将 <Your Name> 替换为您的用户名，并根据需要调整命令：\n\n```\ndefaults write /Users/<Your Name>/Library/Group\\ Containers/group.wang.jianing.app.OpenInTerminal/Library/Preferences/group.wang.jianing.app.OpenInTerminal.plist KittyCommand \"open -na kitty --args --single-instance --instance-group 1 --directory\"\n```\n\n## 常见问题 ❓\n\n<details><summary>我不小心点了不授权的按钮</summary><br>\n<p>你可以运行以下命令。这会重置系统设置里的权限。</p>\n<pre><code>tccutil reset AppleEvents wang.jianing.app.OpenInTerminal</code></pre>\n</details>\n\n<details><summary>路径里的特殊字符</summary><br>\n<p>请不要在路径中使用反斜线 <code>\\</code> 和双引号 <code>\"</code>。</p>\n</details>\n\n<details><summary>在 Mojave 上打开了两个终端窗口</summary><br>\n<p>这个问题只发生在第一次启动终端的时候。所以，你可以通过 <code>⌘W</code> 来关闭终端的窗口，而不是用 <code>⌘Q</code> 来退出终端。</p>\n</details>\n\n<details><summary>OpenInTerminal 并不按照我的预期来工作</summary><br>\n<p>OpenInTerminal 将会按照以下顺序来打开终端或编辑器：</p>\n<ul>\n<li>1. 打开你所选中的文件或文件夹。</li>\n<li>2. 打开最上面的访达窗口。</li>\n<li>3. 都不是。那么打开桌面。</li>\n</ul>\n</details>\n\n<details><summary>我的自定义应用不工作</summary><br>\n<p>如果你的自定义应用不能通过运行以下命令正常运行，那么该应用不支持通过 OpenInTerminal 打开。例如，GitHub Desktop:</p>\n<code>open -a GitHub\\ Desktop ~/Desktop</code>\n</details>\n\n"
  },
  {
    "path": "Resources/README-Config.md",
    "content": "# OpenInTerminal Configurations\n\n## Finder Extension Configuration\n\nTo enable Finder Extension, right click on Finder toolbar, select `Customize Toolbar...` as shown below:\n\n<div>\n  <img src=\"https://github.com/user-attachments/assets/c834f0d1-2f9d-4200-984c-3f6330eaeb2d\" width=\"400px\">\n</div>\n\nThen drag the `OpenInTerminal` icon to the toolbar:\n\n<div>\n  <img src=\"https://github.com/user-attachments/assets/261eb747-27f0-4484-9654-40cab8a52008\" width=\"400px\">\n</div>\n\n### Finder Extension Not Showing Up in System Settings on macOS 15\n\n#### 1) Manually Enable the Finder Extension\n\nStarting with macOS 15, Apple removed the Finder Sync Extension configuration from System Settings. To enable the Finder Extension, use the `pluginkit` command-line tool as follows:\n\n```\n$ pluginkit -mAD -p com.apple.FinderSync -vvv\n```\n\nYou should see output similar to the following:\n\n```\nwang.jianing.app.OpenInTerminal.OpenInTerminalFinderExtension(2.3.5)\n           Path = /Applications/OpenInTerminal.app/Contents/PlugIns/OpenInTerminalFinderExtension.appex\n           UUID = F2547F13-4E43-4E88-9D8F-56DF05C020D8\n      Timestamp = 2024-09-17 09:34:07 +0000\n            SDK = com.apple.FinderSync\n  Parent Bundle = /Applications/OpenInTerminal.app\n   Display Name = OpenInTerminalFinderExtension\n     Short Name = OpenInTerminalFinderExtension\n    Parent Name = OpenInTerminal\n       Platform = macOS\n```\n\nTo manually enable the Finder Extension, run the following command with the UUID from the output:\n\n```\n$ pluginkit -e \"use\" -u \"F2547F13-4E43-4E88-9D8F-56DF05C020D8\"\n```\n\n#### 2) Use FinderSyncer\n\nAlternatively, you could use a GUI tool called [FinderSyncer](https://zigz.ag/FinderSyncer/) to enable the extension.\n\n### Checking Finder Extension Permissions on macOS 14 and Earlier\n\nFor macOS 14 and earlier, ensure the Finder Extension is enabled via System Preferences:\n\n1. Open the OpenInTerminal app.\n2. Navigate to `System Preferences` -> `Extensions` -> `Finder Extensions`.\n3. Check the checkbox next to `OpenInTerminalFinderExtension`, as shown below:\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/78590336-448f4180-7874-11ea-827c-ad3a7bffca5e.png\" width=\"400px\">\n</div>\n\n## Custom Configuration\n\n### For Neovim Users\n\nIf you select Neovim as your editor in OpenInTerminal, the app will use Kitty as the default terminal. To switch to a different terminal (supported options: Alacritty, WezTerm, and Kitty), update the configuration with the following command. Replace `<Your Name>` with your username and adjust the Neovim path (`/opt/homebrew/bin/nvim` in this example) to match your installation:\n\n```\ndefaults write /Users/<Your Name>/Library/Group\\ Containers/group.wang.jianing.app.OpenInTerminal/Library/Preferences/group.wang.jianing.app.OpenInTerminal.plist NeovimCommand \"open -na wezterm --args start /opt/homebrew/bin/nvim PATH\"\n```\n\nOther terminal configurations:\n\n```\n// kitty:\n\"open -na kitty --args /opt/homebrew/bin/nvim PATH\"\n// WezTerm:\n\"open -na wezterm --args start /opt/homebrew/bin/nvim PATH\"\n// Alacritty:\n\"open -na Alacritty --args -e /opt/homebrew/bin/nvim PATH\"\n```\n\n### For Kitty Users\n\nThe default launch behavior for kitty is to open a new instance for each command, like the following:\n\n```\nopen -na kitty --args --single-instance --instance-group 1 --directory\n```\n\nIf you want to customize this behavior, you can run the following command in your terminal. Make sure to replace `<Your Name>` with your username and adjust the open command as what you want:\n\n```\ndefaults write /Users/<Your Name>/Library/Group\\ Containers/group.wang.jianing.app.OpenInTerminal/Library/Preferences/group.wang.jianing.app.OpenInTerminal.plist KittyCommand \"open -na kitty --args --single-instance --instance-group 1 --directory\"\n```\n\n## FAQ ❓\n\n<details><summary>Oops, hit <code>Don't Allow</code> button by mistake.</summary><br>\n<p>No sweat! Just run the following command in your terminal, and it'll reset the permissions in System Preferences.</p>\n<br><code>tccutil reset AppleEvents wang.jianing.app.OpenInTerminal</code><br>\n</details>\n\n<details><summary>Special characters in the <code>path</code>.</summary><br>\n<p>Please do not use backslash <code>\\</code> and double quotes <code>\"</code> in the path.</p>\n</details>\n\n<details><summary>Open two Terminal windows on Mojave</summary><br>\n<p>This problem usually occurs when you first start Terminal. Try using <code>⌘W</code> to close Terminal window, instead of using <code>⌘Q</code> to quit Terminal.</p>\n</details>\n\n<details><summary>OpenInTerminal doesn't work as I expected</summary><br>\n<p>OpenInTerminal works as the following order:</p>\n<ul>\n<li>1. Open the file or folder you selected.</li>\n<li>2. If nothing's selected, it opens the top Finder window.</li>\n<li>3. If there's no Finder window, it opens the desktop.</li>\n</ul>\n</details>\n\n<details><summary>My custom app doesn't work.</summary><br>\n<p>If your custom application doesn't work with the following command, then it's not supported. For example, GitHub Desktop:</p>\n<code>open -a GitHub\\ Desktop ~/Desktop</code>\n</details>\n"
  },
  {
    "path": "Resources/README-Lite-de.md",
    "content": "<p align=\"center\">\n  <img width=\"100%\" src=\"https://user-images.githubusercontent.com/11001224/104892184-d522b280-59ac-11eb-9c06-5ffd044dce7d.png\"><br/><br/>\n  <a href=\"https://github.com/Ji4n1ng/OpenInTerminal/releases/tag/v1.2.5\"><img src=\"https://img.shields.io/badge/Version-1.2.5-blue.svg\"></a>\n  <a href=\"https://github.com/Ji4n1ng/OpenInTerminal/blob/master/LICENSE\"><img src=\"https://img.shields.io/badge/License-MIT-green.svg\"></a>\n  <img src=\"https://img.shields.io/badge/Made With-Swift-red.svg\">\n  <a href=\"https://travis-ci.org/Ji4n1ng/OpenInTerminal\"><img src=\"https://img.shields.io/travis/Ji4n1ng/OpenInTerminal.svg\"></a>\n</p>\n\n[English](./README-Lite.md) | [中文说明](./README-Lite-zh.md) | Deutsch\n\n## Verwendung 🚀\n\n### 1) Aktuelles Verzeichnis im Terminal (oder Editor) öffnen\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/78589363-b23a6e00-7872-11ea-841d-79227b1125ce.gif\" width=\"600px\">\n</div>\n\n### 2) Ausgewählten Ordner oder Datei im Terminal (oder Editor) öffnen\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/78589359-afd81400-7872-11ea-8032-8035d4412b19.gif\" width=\"600px\">\n</div>\n\n### 3) Öffne die Auswahl in X (z.B. Github Desktop)\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/104891620-28483580-59ac-11eb-9fb5-3e4dec7863cc.gif\" width=\"600px\">\n</div>\n\n## Installation 🖥\n\n### Homebrew\n\n1. Führen Sie den folgenden Befehl aus\n\n```\nbrew install --cask openinterminal-lite\n# oder\nbrew install --cask openineditor-lite\n```\n\n2. Im `/Programme` Ordner, halten Sie die `command ⌘` Taste gedrückt und ziehen Sie das Programm in die Finder Symbolleiste.\n\n>  ⚠️ macOS fragt Sie nach Ihrer Berechtigung für den Zugriff auf den Finder und andere Anwendungen, wenn Sie die App zum ersten Mal ausführen. Bitte geben Sie OpenInTerminal diese Berechtigungen.\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/78590414-67215a80-7874-11ea-97a1-fb8996db6984.gif\" width=\"600px\">\n</div>\n\n### Manuell\n\n1. Herunterladen von [release](https://github.com/Ji4n1ng/OpenInTerminal/releases).\n2. Bewegen Sie das Programm in `/Programme`.\n3. Halten Sie die `⌘ command` Taste gedrückt und ziehen Sie das Programm in die Finder Symbolleiste.\n\n## Unterstützung ❤️\n\nDanke für Ihre Unterstützung!\n\n| PayPal | AliPay | WeChat Pay |\n| --- | --- | --- |\n| [paypal.me/ji4ning](https://www.paypal.me/ji4ning) | <img src=\"./Support-Alipay.jpg\" width=\"50%\"> | <img src=\"./Support-WeChatPay.jpg\" width=\"50%\"> |\n\n## Einstellungen 🔨\n\n### 1) Standard-Terminal (oder Editor) einstellen\n\nSie werden aufgefordert, das Standardterminal (oder den Editor) festzulegen, das/der nach dem ersten Start geöffnet werden soll.\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/78600459-8b396780-7885-11ea-8226-2fe45e539134.png\" width=\"45%\">\n  <img src=\"https://user-images.githubusercontent.com/11001224/78600438-88d70d80-7885-11ea-9bcb-d70fcaaf7334.png\" width=\"45%\">\n</div>\n\nDas Auswahlfeld wird nicht mehr angezeigt, wenn Sie das Standardterminal eingestellt haben. Wenn Sie das Standard-Terminal zurücksetzen möchten, geben Sie bitte den folgenden Befehl in das Terminal ein. Führen Sie die Anwendung dann einfach erneut aus.\n\n```\n# Für OpenInTerminal-Lite:\ndefaults remove wang.jianing.app.OpenInTerminal-Lite LiteDefaultTerminal\n# Für OpenInEditor-Lite:\ndefaults remove wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor\n```\n\nLegen Sie die folgende Anwendung als Standardanwendung zum Öffnen fest:\n\n| App | Command |\n| --- | --- |\n| Alacritty | `defaults write wang.jianing.app.OpenInTerminal-Lite LiteDefaultTerminal Alacritty` |\n| kitty | `defaults write wang.jianing.app.OpenInTerminal-Lite LiteDefaultTerminal kitty` |\n| TextEdit | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor TextEdit` |\n| VSCodium | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor VSCodium` |\n| BBEdit | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor BBEdit` |\n| Visual Studio Code - Insiders | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor Visual\\ Studio\\ Code\\ -\\ Insiders` |\n| TextMate | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor TextMate` |\n| CotEditor | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor CotEditor` |\n| MacVim | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor MacVim` |\n| Typora | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor Typora` |\n| Neovim | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor neovim` |\n| Nova | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor Nova` |\n| Cursor | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor Cursor` |\n| AppCode | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor AppCode` |\n| CLion | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor CLion` |\n| GoLand | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor GoLand` |\n| IntelliJ IDEA | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor IntelliJ\\ IDEA` |\n| PhpStorm | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor PhpStorm` |\n| PyCharm | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor PyCharm` |\n| RubyMine | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor RubyMine` |\n| WebStorm | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor WebStorm` |\n| Android Studio | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor Android\\ Studio` |\n\nInsbesondere wenn Sie eine benutzerdefinierte Anwendung als Standardanwendung verwenden möchten, können Sie diesen Befehl ebenfalls verwenden. Nehmen Sie `GitHub Desktop` als Beispiel.\n\n```\ndefaults write wang.jianing.app.OpenInTerminal-Lite LiteDefaultTerminal GitHub\\ Desktop\n```\n\n### 2) Wenn Sie den Dunkelmodus verwenden\n\nIch habe mehrere Icons zusammen mit der App auf der [release Seite](https://github.com/Ji4n1ng/OpenInTerminal/releases) bereitgestellt.\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/78600452-8aa0d100-7885-11ea-8a90-cc88b9233dac.png\" width=\"600px\">\n</div>\n\n#### a. Manuelle Änderung des Symbols\n\nKlicken Sie mit der rechten Maustaste auf die Anwendung und wählen Sie `Informationen`. Ziehen Sie das neue Symbol über das alte.\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/78590421-68eb1e00-7874-11ea-91e3-61cfd5ba3a26.gif\" width=\"600px\">\n</div>\n\n#### b. Automatisches Ändern des Symbols mit [Hammerspoon](https://www.hammerspoon.org)\n\nDieses Verfahren ist besonders nützlich für diejenigen, die den automatischen Wechsel zwischen Hell- und Dunkelmodus von macOS nutzen.\n\n1. Installieren Sie Hammerspoon indem Sie entweder [den neuesten Release herunterladen](https://github.com/Hammerspoon/hammerspoon/releases/latest) und es in den `/Programme` Ordner ziehen, oder mithilfe von Homebrew:\n```\nbrew install --cask hammerspoon\n```\n\n2. Installieren Sie das [fileicon](https://github.com/mklement0/fileicon) Hilfsprogramm um das Anwendungssymbol programmatisch zu ändern:\n```\nbrew install fileicon\n```\n\n3. Erstellen Sie den `~/.hammerspoon/Icons` Ordner und verschieben Sie die Symbole dahon\n\n4. Erstellen Sie die `~/.hammerspoon/init.lua` Datei (falls sie nicht schon existiert) und fügen den folgenden Code ein:\n```lua\nlocal function setOpenInEditorLiteIcon(dark)\n  -- Change the path in case of a different install location\n  local appPath = \"/Applications/OpenInEditor-Lite.app\"\n  -- Change the type accordingly to the icon you want to use (editor, atom, sublime, vscode)\n  local iconType = \"editor\"\n  local iconsFolder = hs.fs.currentDir() .. \"/Icons\"\n  local theme = dark and \"dark\" or \"light\"\n  hs.execute('fileicon set \"' .. appPath .. '\" \"' .. iconsFolder .. \"/icon_\" .. iconType .. \"_\" .. theme .. '.icns\"', true)\nend\n\nlocal function setOpenInTerminalLiteIcon(dark)\n  -- Change the path in case of a different install location\n  local appPath = \"/Applications/OpenInTerminal-Lite.app\"\n  -- Change the type accordingly to the icon you want to use (terminal, iterm, hyper)\n  local iconType = \"terminal\"\n  local iconsFolder = hs.fs.currentDir() .. \"/Icons\"\n  local theme = dark and \"dark\" or \"light\"\n  hs.execute('fileicon set \"' .. appPath .. '\" \"' .. iconsFolder .. \"/icon_\" .. iconType .. \"_\" .. theme .. '.icns\"', true)\nend\n\nlocal function updateIcons()\n  darkMode = (hs.settings.get(\"AppleInterfaceStyle\") == \"Dark\")\n  setOpenInEditorLiteIcon(darkMode)\n  setOpenInTerminalLiteIcon(darkMode)\nend\n\nupdateIcons()\nhs.settings.watchKey(\"dark_mode\", \"AppleInterfaceStyle\", function()\n  updateIcons()\nend)\n```\n\nJetzt können Sie die Konfigurationsdatei neu laden (oder hammerspoon neu starten) und fertig! Die Icons sollten sich automatisch aktualisieren, wenn Sie vom hellen in den Dunkelmodus wechseln und andersherum. Vergessen Sie nicht, die Option \"Launch Hammerspoon at login\" zu aktivieren.\n\n### 3) In einem neuen Tab oder Fenster öffnen, wenn Sie iTerm verwenden\n\nWenn Sie `iTerm`verwenden, können Sie festlegen, dass standardmäßig eine neue Registerkarte oder ein neues Fenster geöffnet wird. Die **Standardeinstellung** ist ein neues Fenster zu öffnen. \n\n```\n# Einen neuen Tab öffnen\ndefaults write com.googlecode.iterm2 OpenFileInNewWindows -bool false\n# Ein neues Fenster öffnen\ndefaults write com.googlecode.iterm2 OpenFileInNewWindows -bool true\n```\n\n## FAQ ❓\n\n<details><summary>1. Ich habe versehentlich auf <code>Nicht erlauben</code> geklickt.</summary><br>\n<p>Sie können den folgenden Befehl in einem Terminal ausführen. Dadurch werden die Berechtigungen in den Systemeinstellungen zurückgesetzt.</p>\n<pre><code># Für OpenInTerminal-Lite:\ntccutil reset AppleEvents wang.jianing.app.OpenInTerminal-Lite\n# Für OpenInEditor-Lite:\ntccutil reset AppleEvents wang.jianing.app.OpenInEditor-Lite\n</code></pre>\n</details>\n\n<details><summary>2. Sonderzeichen im <code>Pfad</code>.</summary><br>\n<p>Bitte verwenden Sie keine Backslashes <code>\\</code> oder doppelte Anführungszeichen <code>\"</code> in dem Pfad.</p>\n</details>\n\n<details><summary>3. Warum können die Symbole beim Wechsel vom/zum dunklen Modus nicht automatisch gewechselt werden?</summary><br>\n<p>Was <code>OpenInTerminal-Lite</code> betrifft, so ist das Symbol in der Finder-Symbolleiste das Symbol der Anwendung und nicht das Symbol der Finder-Erweiterung. Und ich habe keine API gefunden um das Programmsymbol zu ändern (Wenn Sie eine gute Idee haben, lassen Sie es mich bitte wissen).  \n<p>Hinzugefügt: Dank des Beitrags (#126) von @MatteoCarnelos kann <code>OpenInTerminal-Lite</code> nun automatisch Icons mit Hammerspoon wechseln.</p><br>\nWas <code>OpenInTerminal</code> betrifft, so ist das Symbol in der Finder-Symbolleiste das Symbol der Finder-Erweiterung. Es kann sich automatisch ändern, wenn Sie zwischen dunklem und hellem Modus wechseln. Sie können also versuchen, OpenInTerminal zu verwenden.</p>\n</details>\n\n<details><summary>4. Mein benutzerdefiniertes Programm funktioniert nicht.</summary><br>\n<p>Wenn Ihre benutzerdefinierte Anwendung nicht mit dem folgenden Befehl funktioniert, kann die Anwendung nicht unterstützt werden. Zum Beispiel, GitHub Desktop:</p>\n<code>open -a GitHub\\ Desktop ~/Desktop</code>\n</details>\n\n## Besonderen Dank an ❤️\n\n### Mitwirkende\n\n- [Camji55](https://github.com/Camji55)\n- [gucheen](https://github.com/gucheen)\n- [uclort](https://github.com/uclort)\n- [MatteoCarnelos](https://github.com/MatteoCarnelos)\n\n### Übersetzer\n\n- [Dorian Eydoux](https://github.com/dorianeydx)\n- [techinpark](https://github.com/techinpark)\n- [Egor](https://github.com/Rogue85)\n- [arendruni](https://github.com/arendruni)\n- [panta97](https://github.com/panta97)\n- [bkzspam](https://github.com/bkzspam)\n- [ystolzenburg](https://github.com/ystolzenburg)\n\n### Referenzprojekte\n\n- [jbtule/cdto](https://github.com/jbtule/cdto)\n- [es-kumagai/OpenTerminal](https://github.com/es-kumagai/OpenTerminal)\n- [tingraldi/SwiftScripting](https://github.com/tingraldi/SwiftScripting)\n- [onmyway133/FinderGo](https://github.com/onmyway133/FinderGo)\n- [Caldis/Mos](https://github.com/Caldis/Mos/)\n"
  },
  {
    "path": "Resources/README-Lite-zh.md",
    "content": "<div align=\"center\">\n  <img width=\"100%\" src=\"https://user-images.githubusercontent.com/11001224/104892184-d522b280-59ac-11eb-9c06-5ffd044dce7d.png\"><br/><br/>\n  <a href=\"./README-Lite.md\">English</a> | 中文 | <a href=\"./README-Lite-de.md\">Deutsch</a>\n</div>\n\n## 如何使用 🚀\n\n### 1) 在终端（或编辑器）中打开当前目录\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/78589363-b23a6e00-7872-11ea-841d-79227b1125ce.gif\" width=\"600px\">\n</div>\n\n\n### 2) 在终端（或编辑器）中打开选择的文件夹或文件\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/78589359-afd81400-7872-11ea-8032-8035d4412b19.gif\" width=\"600px\">\n</div>\n\n### 3) 在自定义应用中打开 (例如, GitHub Desktop)\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/104891620-28483580-59ac-11eb-9fb5-3e4dec7863cc.gif\" width=\"600px\">\n</div>\n\n## 如何安装 🖥\n\n### Homebrew\n\n1. 运行以下命令\n\n```\nbrew install --cask openinterminal-lite\n# 或者\nbrew install --cask openineditor-lite\n```\n\n2. 在 `应用程序` 文件夹中，按住 `Cmd` 键，然后将应用拖到访达工具栏中。\n\n>  ⚠️ 当您第一次运行应用程序时，macOS 将要求访问 `访达` 和 `终端`（或 `iTerm`）的权限。请给予应用程序权限。\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/78590414-67215a80-7874-11ea-97a1-fb8996db6984.gif\" width=\"600px\">\n</div>\n\n### 手动安装\n\n1. 从 [release](https://github.com/Ji4n1ng/OpenInTerminal/releases) 中下载。\n2. 将应用移动到 `应用程序` 文件夹。\n3. 按住 `Cmd` 键，然后将应用拖到访达工具栏中。\n\n## 支持 ❤️\n\n感谢你的支持！\n\n| PayPal | 支付宝 | 微信 |\n| --- | --- | --- |\n| [paypal.me/ji4ning](https://www.paypal.me/ji4ning) | <img src=\"./Support-Alipay.jpg\" width=\"50%\"> | <img src=\"./Support-WeChatPay.jpg\" width=\"50%\"> |\n\n## 设置 🔨 \n\n### 1) 设置默认终端（或编辑器）\n\n在第一次运行应用的时候，需要选择默认终端。\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/78600459-8b396780-7885-11ea-8226-2fe45e539134.png\" width=\"45%\">\n  <img src=\"https://user-images.githubusercontent.com/11001224/78600438-88d70d80-7885-11ea-9bcb-d70fcaaf7334.png\" width=\"45%\">\n</div>\n\n当设置了默认终端之后，选择框将不会再出现。如果想要重新设置默认终端，请在终端中输入以下命令。然后重新运行应用。\n\n```\n# 对于 OpenInTerminal-Lite:\ndefaults remove wang.jianing.app.OpenInTerminal-Lite LiteDefaultTerminal\n# 对于 OpenInEditor-Lite:\ndefaults remove wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor\n```\n\n将下列应用设置为默认：\n\n| 应用 | 命令 |\n| --- | --- |\n| Alacritty | `defaults write wang.jianing.app.OpenInTerminal-Lite LiteDefaultTerminal Alacritty` |\n| kitty | `defaults write wang.jianing.app.OpenInTerminal-Lite LiteDefaultTerminal kitty` |\n| TextEdit | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor TextEdit` |\n| VSCodium | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor VSCodium` |\n| BBEdit | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor BBEdit` |\n| Visual Studio Code - Insiders | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor Visual\\ Studio\\ Code\\ -\\ Insiders` |\n| TextMate | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor TextMate` |\n| CotEditor | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor CotEditor` |\n| MacVim | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor MacVim` |\n| Typora | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor Typora` |\n| Neovim | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor neovim` |\n| Nova | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor Nova` |\n| Cursor | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor Cursor` |\n| AppCode | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor AppCode` |\n| CLion | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor CLion` |\n| GoLand | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor GoLand` |\n| IntelliJ IDEA | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor IntelliJ\\ IDEA` |\n| PhpStorm | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor PhpStorm` |\n| PyCharm | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor PyCharm` |\n| RubyMine | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor RubyMine` |\n| WebStorm | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor WebStorm` |\n| Android Studio | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor Android\\ Studio` |\n\n如果你想要使用自定义应用，那么你可以下面的命令。以 GitHub Desktop 为例。\n\n```\ndefaults write wang.jianing.app.OpenInTerminal-Lite LiteDefaultTerminal GitHub\\ Desktop\n```\n\n#### 针对 Neovim 用户\n\n如果您选择 Neovim 作为编辑器，应用将默认使用 Kitty 作为终端。要切换到其他终端（支持的选项包括 Alacritty、WezTerm 和 Kitty），请使用以下命令更新配置。根据您的安装调整 Neovim 路径（此示例为 /opt/homebrew/bin/nvim）：\n\n```\ndefaults write wang.jianing.app.OpenInEditor-Lite NeovimCommand \"open -na Alacritty --args -e /opt/homebrew/bin/nvim PATH\"\n```\n\n其他终端配置：\n\n```\n// Kitty:\n\"open -na kitty --args /opt/homebrew/bin/nvim PATH\"\n// WezTerm:\n\"open -na wezterm --args start /opt/homebrew/bin/nvim PATH\"\n// Alacritty:\n\"open -na Alacritty --args -e /opt/homebrew/bin/nvim PATH\"\n```\n\n#### 针对 Kitty 用户\n\nKitty 的默认启动行为是为每个命令打开一个新实例，如下所示：\n\n```\nopen -na kitty --args --single-instance --instance-group 1 --directory\n```\n\n如果您想自定义此行为，可以在终端中运行以下命令。请根据需要调整 open 命令：\n\n```\ndefaults write wang.jianing.app.OpenInTerminal-Lite KittyCommand \"open -na kitty --args --single-instance --instance-group 1 --directory\"\n```\n\n### 2) 如果你正在使用深色模式 (Dark Mode)\n\n我在 [release](https://github.com/Ji4n1ng/OpenInTerminal/releases) 中提供了几个图标。 您可以右键单击该应用程序并选择 `显示简介`。 拖动图标进行更改。\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/78600452-8aa0d100-7885-11ea-8a90-cc88b9233dac.png\" width=\"600px\">\n  <br>\n</div>\n\n#### a. 手动更换图标\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/78590421-68eb1e00-7874-11ea-91e3-61cfd5ba3a26.gif\" width=\"600px\">\n</div>\n\n#### b. 利用 [Hammerspoon](https://www.hammerspoon.org) 自动更换图标\n\n对于使用 macOS 的自动 Dark mode 功能的用户来说，下面的步骤特别有用。\n\n1. 通过[下载最新版本](https://github.com/Hammerspoon/hammerspoon/releases/latest) 并将其拖动到 `/Applications` 文件夹中，或使用 Homebrew 安装 Hammerspoon: \n```\nbrew cask install hammerspoon\n```\n\n2. 安装 [fileicon](https://github.com/mklement0/fileicon) 程序，以编程的方式更改图标: \n```\nbrew install fileicon\n```\n\n3. 创建 `~/.hammerspoon/Icons` 文件夹，并将图标放在此处\n\n4. 创建 `~/.hammerspoon/init.lua` 文件（如果该文件不存在），并添加以下代码：\n```lua\nlocal function setOpenInEditorLiteIcon(dark)\n  -- 如果安装到其他路径，请替换下面的路径\n  local appPath = \"/Applications/OpenInEditor-Lite.app\"\n  -- 根据你想使用的图标(editor, atom, sublime, vscode)来更改下面的类型\n  local iconType = \"editor\"\n  local iconsFolder = hs.fs.currentDir() .. \"/Icons\"\n  local theme = dark and \"dark\" or \"light\"\n  hs.execute('fileicon set \"' .. appPath .. '\" \"' .. iconsFolder .. \"/icon_\" .. iconType .. \"_\" .. theme .. '.icns\"', true)\nend\n\nlocal function setOpenInTerminalLiteIcon(dark)\n  -- 如果安装到其他路径，请替换下面的路径\n  local appPath = \"/Applications/OpenInTerminal-Lite.app\"\n  -- 根据你想使用的图标(terminal, iterm, hyper)来更改下面的类型\n  local iconType = \"terminal\"\n  local iconsFolder = hs.fs.currentDir() .. \"/Icons\"\n  local theme = dark and \"dark\" or \"light\"\n  hs.execute('fileicon set \"' .. appPath .. '\" \"' .. iconsFolder .. \"/icon_\" .. iconType .. \"_\" .. theme .. '.icns\"', true)\nend\n\nlocal function updateIcons()\n  darkMode = (hs.settings.get(\"AppleInterfaceStyle\") == \"Dark\")\n  setOpenInEditorLiteIcon(darkMode)\n  setOpenInTerminalLiteIcon(darkMode)\nend\n\nupdateIcons()\nhs.settings.watchKey(\"dark_mode\", \"AppleInterfaceStyle\", function()\n  updateIcons()\nend)\n```\n\n现在可以重新加载配置文件（或重新启动 Hammerspoon），就完成了！从亮模式切换为暗模式时，图标应自动更新，反之亦然。不要忘记勾选 \"登录时启动 Hammerspoon\" 选项。\n\n### 3) 使用 iTerm 时，打开新的标签页或者窗口\n\n当你在使用 `iTerm` 时，你可以设置默认打开一个新的标签或者窗口。**默认**是打开新的窗口。\n\n```\n# 打开新的标签\ndefaults write com.googlecode.iterm2 OpenFileInNewWindows -bool false\n# 打开新的窗口\ndefaults write com.googlecode.iterm2 OpenFileInNewWindows -bool true\n```\n\n## 常见问题 ❓\n\n<details><summary>1. 我不小心点了不授权的按钮</summary><br>\n<p>你可以运行以下命令。这会重置系统设置里的权限。</p>\n<pre><code># 对于 OpenInTerminal-Lite:\ntccutil reset AppleEvents wang.jianing.app.OpenInTerminal-Lite\n# 对于 OpenInEditor-Lite:\ntccutil reset AppleEvents wang.jianing.app.OpenInEditor-Lite\n</code></pre>\n</details>\n\n<details><summary>2. 路径里的特殊字符</summary><br>\n<p>请不要在路径中使用反斜线 <code>\\</code> 和双引号 <code>\"</code>。</p>\n</details>\n\n<details><summary>3. 为什么不能根据深色模式自动切换图标</summary><br>\n<p>对于 <code>OpenInTerminal-Lite</code> 来说，访达工具栏里的图标是应用图标，而不是访达扩展图标。目前我还没找到 API 可以更换应用图标（如果你有好的建议，请告诉我谢谢）。</p>\n<p>补充：感谢 @MatteoCarnelos 的贡献(#126)，<code>OpenInTerminal-Lite</code>现在可以通过 Hammerspoon 来自动更换图标。</p><br>\n<p>对于 <code>OpenInTerminal</code> 来说，访达工具栏里的图标是访达扩展图标，所以支持根据深色模式自动切换图标。</p>\n</details>\n\n<details><summary>4. 我的自定义应用不工作</summary><br>\n<p>如果你的自定义应用不能通过运行以下命令正常运行，那么该应用不支持通过 OpenInTerminal 打开。例如，GitHub Desktop:</p>\n<code>open -a GitHub\\ Desktop ~/Desktop</code>\n</details>\n\n## 特别感谢 ❤️\n\n所有贡献者和支持者！\n\n### 参考项目\n\n- [jbtule/cdto](https://github.com/jbtule/cdto)\n- [es-kumagai/OpenTerminal](https://github.com/es-kumagai/OpenTerminal)\n- [tingraldi/SwiftScripting](https://github.com/tingraldi/SwiftScripting)\n- [onmyway133/FinderGo](https://github.com/onmyway133/FinderGo)\n- [Caldis/Mos](https://github.com/Caldis/Mos/)\n"
  },
  {
    "path": "Resources/README-Lite.md",
    "content": "<div align=\"center\">\n  <img width=\"100%\" src=\"https://user-images.githubusercontent.com/11001224/104892184-d522b280-59ac-11eb-9c06-5ffd044dce7d.png\"><br/><br/>\n  English | <a href=\"./README-Lite-zh.md\">中文</a> | <a href=\"./README-Lite-de.md\">Deutsch</a>\n</div>\n\n## How to use 🚀\n\n### 1) Open current directory in Terminal (or Editor)\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/78589363-b23a6e00-7872-11ea-841d-79227b1125ce.gif\" width=\"600px\">\n</div>\n\n### 2) Open selected folder or file in Terminal (or Editor)\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/78589359-afd81400-7872-11ea-8032-8035d4412b19.gif\" width=\"600px\">\n</div>\n\n### 3) Open the selected in X (e.g., GitHub Desktop)\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/104891620-28483580-59ac-11eb-9fb5-3e4dec7863cc.gif\" width=\"600px\">\n</div>\n\n## How to install 🖥\n\n### Homebrew\n\n1. Run the following command\n\n```\nbrew install --cask openinterminal-lite\nbrew install --cask openineditor-lite\n```\n\n2. In `/Applications` folder, hold down the `Cmd` key and drag the app into Finder Toolbar.\n\n>  ⚠️ macOS will ask your permissions to access Finder and Terminal (iTerm or Hyper) when you run the app for the first time. Please give the application permissions.\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/78590414-67215a80-7874-11ea-97a1-fb8996db6984.gif\" width=\"600px\">\n</div>\n\n### Manual\n\n1. Download from [release](https://github.com/Ji4n1ng/OpenInTerminal/releases).\n2. Move the app into `/Applications`.\n3. Hold down the `Cmd` key and drag the app into Finder Toolbar.\n\n## Support ❤️\n\nOpen-source projects cannot live long without your help. If you like OpenInTerminal, please consider supporting this project by becoming a sponsor. Your user icon or company logo shows up on the README with a link to your home page.\n\nBecome a sponsor through [GitHub Sponsors](https://github.com/sponsors/Ji4n1ng) 💖.\n\n| PayPal | AliPay | WeChat Pay |\n| --- | --- | --- |\n| [paypal.me/ji4ning](https://www.paypal.me/ji4ning) | <img src=\"./Support-Alipay.jpg\" width=\"50%\"> | <img src=\"./Support-WeChatPay.jpg\" width=\"50%\"> |\n\n<!-- ### Backers & Sponsors -->\n<!---->\n<!-- <a href=\"https://github.com/sparrowcode\"><img src=\"https://avatars.githubusercontent.com/u/98487302?s=200&v=4\" width=\"10%\" style=\"border-radius:10px;\" /></a> -->\n\n## Settings 🔨\n\n### 1) Set default terminal (or editor)\n\nYou are asked to set the default terminal (or editor) to open after first launch.\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/78600459-8b396780-7885-11ea-8226-2fe45e539134.png\" width=\"45%\">\n  <img src=\"https://user-images.githubusercontent.com/11001224/78600438-88d70d80-7885-11ea-9bcb-d70fcaaf7334.png\" width=\"45%\">\n</div>\n\nThe selection box will not appear after you have set the default terminal. If you want to reset the default terminal, please enter the following command in the terminal. Then just run the application again.\n\n```\n# For OpenInTerminal-Lite:\ndefaults remove wang.jianing.app.OpenInTerminal-Lite LiteDefaultTerminal\n# For OpenInEditor-Lite:\ndefaults remove wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor\n```\n\nSet the following app as the default app to open:\n\n| App | Command |\n| --- | --- |\n| Alacritty | `defaults write wang.jianing.app.OpenInTerminal-Lite LiteDefaultTerminal Alacritty` |\n| kitty | `defaults write wang.jianing.app.OpenInTerminal-Lite LiteDefaultTerminal kitty` |\n| TextEdit | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor TextEdit` |\n| VSCodium | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor VSCodium` |\n| BBEdit | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor BBEdit` |\n| Visual Studio Code - Insiders | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor Visual\\ Studio\\ Code\\ -\\ Insiders` |\n| TextMate | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor TextMate` |\n| CotEditor | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor CotEditor` |\n| MacVim | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor MacVim` |\n| Typora | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor Typora` |\n| Neovim | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor neovim` |\n| Nova | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor Nova` |\n| Cursor | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor Cursor` |\n| AppCode | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor AppCode` |\n| CLion | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor CLion` |\n| GoLand | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor GoLand` |\n| IntelliJ IDEA | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor IntelliJ\\ IDEA` |\n| PhpStorm | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor PhpStorm` |\n| PyCharm | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor PyCharm` |\n| RubyMine | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor RubyMine` |\n| WebStorm | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor WebStorm` |\n| Android Studio | `defaults write wang.jianing.app.OpenInEditor-Lite LiteDefaultEditor Android\\ Studio` |\n\nIn particular, if you want to use a custom application as the default, then you can also use this command. Take `GitHub Desktop` as an example.\n\n```\ndefaults write wang.jianing.app.OpenInTerminal-Lite LiteDefaultTerminal GitHub\\ Desktop\n```\n\n#### For Neovim Users\n\nIf you select Neovim as your editor, the app will use Kitty as the default terminal. To switch to a different terminal (supported options: Alacritty, WezTerm, and Kitty), update the configuration with the following command. Adjust the Neovim path (`/opt/homebrew/bin/nvim` in this example) to match your installation:\n\n```\ndefaults write wang.jianing.app.OpenInEditor-Lite NeovimCommand \"open -na Alacritty --args -e /opt/homebrew/bin/nvim PATH\"\n```\n\nOther terminal configurations:\n\n```\n// kitty:\n\"open -na kitty --args /opt/homebrew/bin/nvim PATH\"\n// WezTerm:\n\"open -na wezterm --args start /opt/homebrew/bin/nvim PATH\"\n// Alacritty:\n\"open -na Alacritty --args -e /opt/homebrew/bin/nvim PATH\"\n```\n\n#### For Kitty Users\n\nThe default launch behavior for kitty is to open a new instance for each command, like the following:\n\n```\nopen -na kitty --args --single-instance --instance-group 1 --directory\n```\n\nIf you want to customize this behavior, you can run the following command in your terminal. Make sure to replace the open command as what you want:\n\n```\ndefaults write wang.jianing.app.OpenInTerminal-Lite KittyCommand \"open -na kitty --args --single-instance --instance-group 1 --directory\"\n```\n\n### 2) If you are using Dark Mode\n\nI provided several icons along with the app in the [release page](https://github.com/Ji4n1ng/OpenInTerminal/releases).\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/78600452-8aa0d100-7885-11ea-8a90-cc88b9233dac.png\" width=\"600px\">\n</div>\n\n#### a. Changing the icon manually\n\nYou can right click on the app and select `Get Info`. Drag the icon to cover the default icon.\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/78590421-68eb1e00-7874-11ea-91e3-61cfd5ba3a26.gif\" width=\"600px\">\n</div>\n\n#### b. Changing the icon automatically with [Hammerspoon](https://www.hammerspoon.org)\n\nThis procedure is particularly useful for those using the automatic dark/light mode switching feature of macOS.\n\n1. Install Hammerspoon either by [downloading the latest release](https://github.com/Hammerspoon/hammerspoon/releases/latest) and dragging it in the `/Applications` folder, or by using Homebrew:\n```\nbrew install --cask hammerspoon\n```\n\n2. Install the [fileicon](https://github.com/mklement0/fileicon) utility to change the app icon programmatically:\n```\nbrew install fileicon\n```\n\n3. Create the `~/.hammerspoon/Icons` folder and put the icons there\n\n4. Create the `~/.hammerspoon/init.lua` file (if it doesn't already exist) and add the following code:\n```lua\nlocal function setOpenInEditorLiteIcon(dark)\n  -- Change the path in case of a different install location\n  local appPath = \"/Applications/OpenInEditor-Lite.app\"\n  -- Change the type accordingly to the icon you want to use (editor, atom, sublime, vscode)\n  local iconType = \"editor\"\n  local iconsFolder = hs.fs.currentDir() .. \"/Icons\"\n  local theme = dark and \"dark\" or \"light\"\n  hs.execute('fileicon set \"' .. appPath .. '\" \"' .. iconsFolder .. \"/icon_\" .. iconType .. \"_\" .. theme .. '.icns\"', true)\nend\n\nlocal function setOpenInTerminalLiteIcon(dark)\n  -- Change the path in case of a different install location\n  local appPath = \"/Applications/OpenInTerminal-Lite.app\"\n  -- Change the type accordingly to the icon you want to use (terminal, iterm, hyper)\n  local iconType = \"terminal\"\n  local iconsFolder = hs.fs.currentDir() .. \"/Icons\"\n  local theme = dark and \"dark\" or \"light\"\n  hs.execute('fileicon set \"' .. appPath .. '\" \"' .. iconsFolder .. \"/icon_\" .. iconType .. \"_\" .. theme .. '.icns\"', true)\nend\n\nlocal function updateIcons()\n  darkMode = (hs.settings.get(\"AppleInterfaceStyle\") == \"Dark\")\n  setOpenInEditorLiteIcon(darkMode)\n  setOpenInTerminalLiteIcon(darkMode)\nend\n\nupdateIcons()\nhs.settings.watchKey(\"dark_mode\", \"AppleInterfaceStyle\", function()\n  updateIcons()\nend)\n```\n\nYou can now reload the config file (or restart hammerspoon) and you're done! The icons should automatically update when switching from light to dark mode and vice versa. Don't forget to check the \"Launch Hammerspoon at login\" option.\n\n### 3) Open in a new Tab or Window when using iTerm\n\nWhen you are using `iTerm`, you can set a default to open a new tab or window. The **default** is to open a new window. \n\n```\n# Open a new Tab\ndefaults write com.googlecode.iterm2 OpenFileInNewWindows -bool false\n# Open a new Window\ndefaults write com.googlecode.iterm2 OpenFileInNewWindows -bool true\n```\n\n## FAQ ❓\n\n<details><summary>1. Oops, hit <code>Don't Allow</code> button by mistake.</summary><br>\n<p>No sweat! Just run the following command in your terminal, and it'll reset the permissions in System Preferences.</p>\n<pre><code># For OpenInTerminal-Lite:\ntccutil reset AppleEvents wang.jianing.app.OpenInTerminal-Lite\n# For OpenInEditor-Lite:\ntccutil reset AppleEvents wang.jianing.app.OpenInEditor-Lite\n</code></pre>\n</details>\n\n<details><summary>2. Special characters in the <code>path</code>.</summary><br>\n<p>Please do not use backslash <code>\\</code> and double quotes <code>\"</code> in the path</p>\n</details>\n\n<details><summary>3. Why it cannot automatically switch icons in Dark mode</summary><br>\n<p>As for <code>OpenInTerminal-Lite</code>, the icon you see in the Finder Toolbar is actually the app icon, not the Finder extension icon. And I haven't found an API yet that lets you swtich the app icon on the fly (got any cool ideas? Do share!). \n<p>But hey, good news! Thanks to @MatteoCarnelos's awesome contribution (#126), <code>OpenInTerminal-Lite</code> can now automatically switch icons using Hammerspoon.</p>\n</details>\n\n<details><summary>4. My custom app doesn't work.</summary><br>\n<p>If your custom application doesn't work with the following command, then it's not supported. For example, GitHub Desktop:</p>\n<code>open -a GitHub\\ Desktop ~/Desktop</code>\n</details>\n\n## Changes 🗒\n\n<details><summary>show all</summary><br>\n<p><strong>version 1.2.7</strong></p>\n<ul>\n<li>Support \"open in neovim\" for Alacritty, WezTerm, and kitty users.</li>\n<li>Customize open command for kitty users</li>\n</ul>\n<p><strong>version 1.2.6</strong></p>\n<ul>\n<li>Support Korean</li>\n<li>For kitty users: open in a signle instance instead of a new one</li>\n</ul>\n<p><strong>version 1.2.5</strong></p>\n<ul>\n<li>Support German</li>\n</ul>\n<p><strong>version 1.2.4</strong></p>\n<ul>\n<li>Support Turkish</li>\n</ul>\n<p><strong>version 1.2.3</strong></p>\n<ul>\n<li>Fix: cannot open path with white space when using Terminal</li>\n</ul>\n<p><strong>version 1.2.2</strong></p>\n<ul>\n<li>Fix: cannot open alacritty</li>\n<li>Fix: cannot set default editor</li>\n</ul>\n<p><strong>version 1.2.1</strong></p>\n<ul>\n<li>Fix: cannot open alacritty</li>\n<li>Fix: cannot set default editor</li>\n</ul>\n<p><strong>version 1.2.0</strong></p>\n<ul>\n<li>Support setting custom app (Not all apps support)</li>\n<li>BigSur-style icon</li>\n</ul>\n<p><strong>version 1.1.5</strong></p>\n<ul>\n<li>fix bug in OpenInEditor-Lite</li>\n</ul>\n<p><strong>version 1.1.4</strong></p>\n<ul>\n<li>Support kitty</li>\n<li>Open multi-selected files in editors</li>\n</ul>\n<p><strong>version 1.1.3</strong></p>\n<ul>\n<li>Support Italian and Spanish</li>\n</ul>\n<p><strong>version 1.1.2</strong></p>\n<ul>\n<li>Support JetBrains</li>\n</ul>\n<p><strong>version 1.1.1</strong></p>\n<ul>\n<li>Support Russian and Korean</li>\n<li>Support PhpStorm</li>\n</ul>\n<p><strong>version 1.1.0</strong></p>\n<ul>\n<li>Support CotEditor and MacVim</li>\n</ul>\n<p><strong>version 1.0.3</strong></p>\n<ul>\n<li>Signed the application with the developer account. Bundle ID has changed</li>\n<li>Support Korean</li>\n</ul>\n<p><strong>version 1.0.2</strong></p>\n<ul>\n<li>Support TextMate</li>\n<li>Change OpenInEditor-Lite default icon</li>\n</ul>\n<p><strong>version 1.0.1</strong></p>\n<ul>\n<li>Support Visual Studio Code - Insiders</li>\n</ul>\n<p><strong>version 1.0.0</strong></p>\n<ul>\n<li>Support BBEdit</li>\n<li>Fix: check application folder under home directory</li>\n</ul>\n<p><strong>version 0.4.4</strong></p>\n<ul>\n<li>iTerm will not leave 'cd xxx' in history</li>\n<li>Fix: icon will not flash in dock</li>\n</ul>\n<p><strong>version 0.4.3</strong></p>\n<ul>\n<li>Fix localization bug</li>\n</ul>\n<p><strong>version 0.4.2</strong></p>\n<ul>\n<li>Support French</li>\n</ul>\n<p><strong>version 0.4.1</strong></p>\n<ul>\n<li>Support Alacritty</li>\n</ul>\n<p><strong>version 0.4.0</strong></p>\n<ul>\n<li>You can set a default to open a new tab or window when using Terminal and Hyper.</li>\n</ul>\n<p><strong>version 0.3.0</strong></p>\n<ul>\n<li>Change name to OpenInTerminal-Lite (OpenInTerminal will come as a more powerful version in the future.)</li>\n<li>Fix a bug that some special characters in the path would crash the program when opening Hyper.</li>\n</ul>\n<p><strong>version 0.2.0</strong></p>\n<ul>\n<li>Add terminal selector</li>\n<li>Cancel running <code>clear</code> command when opening iTerm</li>\n</ul>\n<p><strong>version 0.1.1</strong></p>\n<ul>\n<li>Support <code>Hyper</code></li>\n<li>Give priority to creating a new tab when opening iTerm</li>\n</ul>\n<p><strong>version 0.1.0</strong></p>\n<ul>\n<li>First release</li>\n</ul>\n<br>\n</details>\n\n## Special Thanks to ❤️\n\nAll the contributors who have helped with the development of OpenInTerminal-Lite.\n\n### Reference projects\n\n- [jbtule/cdto](https://github.com/jbtule/cdto)\n- [es-kumagai/OpenTerminal](https://github.com/es-kumagai/OpenTerminal)\n- [tingraldi/SwiftScripting](https://github.com/tingraldi/SwiftScripting)\n- [onmyway133/FinderGo](https://github.com/onmyway133/FinderGo)\n- [Caldis/Mos](https://github.com/Caldis/Mos/)\n"
  },
  {
    "path": "Resources/README-de.md",
    "content": "<p align=\"center\">\n  <img width=\"80%\" src=\"https://user-images.githubusercontent.com/11001224/104892170-d18f2b80-59ac-11eb-96b1-0293acfde4e5.png\"><br/><br/>\n  <a href=\"https://github.com/Ji4n1ng/OpenInTerminal/releases/tag/v2.3.6\"><img src=\"https://img.shields.io/badge/Version-2.3.6-blue.svg\"></a>\n  <a href=\"https://github.com/Ji4n1ng/OpenInTerminal/blob/master/LICENSE\"><img src=\"https://img.shields.io/badge/License-MIT-green.svg\"></a>\n  <img src=\"https://img.shields.io/badge/Made With-Swift-red.svg\">\n  <a href=\"https://travis-ci.org/Ji4n1ng/OpenInTerminal\"><img src=\"https://img.shields.io/travis/Ji4n1ng/OpenInTerminal.svg\"></a>\n</p>\n\n[English](../README.md) | [OpenInTerminal 中文说明](./Resources/README-zh.md) | [OpenInTerminal Türkçe](./Resources/README-tr.md) | OpenInTerminal Deutsch\n\n[OpenInTerminal-Lite English](./Resources/README-Lite.md) | [OpenInTerminal-Lite 中文说明](./Resources/README-Lite-zh.md) | [OpenInTerminal-Lite Deutsch](./Resources/README-Lite-de.md)\n\n## Verwendung 🚀\n\n| Hauptmerkmale | OpenInTerminal |\n| --- | --- |\n| Öffne X (z.B. Ordner or Dateien) im Terminal oder Editor | ![](https://user-images.githubusercontent.com/11001224/78589385-b797b880-7872-11ea-9062-c11a49461598.gif) | \n| Öffne die Auswahl in X (z.B. Github Desktop) | ![](https://user-images.githubusercontent.com/11001224/104891620-28483580-59ac-11eb-9fb5-3e4dec7863cc.gif) |\n\n### Mehr Funktionen\n\n| Funktionen | OpenInTerminal | OpenInTerminal-Lite & OpenInEditor-Lite |\n| --- | --- | --- |\n| Unterstützt Terminal, [iTerm](https://www.iterm2.com/), [Hyper](https://github.com/zeit/hyper), [Alacritty](https://github.com/jwilm/alacritty) und [kitty](https://sw.kovidgoyal.net/kitty/). | ✅ | ✅ |\n| Unterstützt TextEdit, [Visual Studio Code](https://code.visualstudio.com/), [VSCode Insiders](https://code.visualstudio.com/insiders/), [Atom](https://atom.io/), [Sublime Text](https://www.sublimetext.com/), [VSCodium](https://github.com/VSCodium/vscodium), [BBEdit](https://www.barebones.com/products/bbedit/), [TextMate](https://macromates.com), [CotEditor](https://coteditor.com/), [MacVim](https://github.com/macvim-dev/macvim), [JetBrains](https://www.jetbrains.com/) (AppCode, CLion, GoLand, IntelliJ IDEA, PhpStorm, PyCharm, RubyMine, WebStorm), und [Typora](https://typora.io/). | ✅ | ✅ |\n| In benutzerdefinierten Programmen öffnen. (⚠️ Es werden nicht alle Apps unterstützt.) | ✅ | ✅ |\n| Unterstützt Englisch, Chinesisch, Französisch, Russisch, Italienisch, Spanisch and Türkisch | ✅ | ✅ |\n| GUI-Einstellungen | ✅ | ❌ |\n| Unterstützung von Tastaturkürzeln | ✅ | ❌ |\n\n## OpenInTerminal und OpenInTerminal-Lite (OpenInEditor-Lite) 👀\n\nWelches sollte man wählen? Beide Apps sind wie meine Kinder. Wenn Sie leistungsfähigere Funktionen und GUI-Einstellungen mögen, können Sie `OpenInTerminal` verwenden. Wenn Sie nur das Terminal schnell und zuverlässig öffnen müssen, können Sie `OpenInTerminal-Lite` verwenden.\n\nIch bevorzuge `OpenInTerminal-Lite`, bei dem man nur einmal klicken muss, um die Funktion auszuführen (bei dem anderen muss man zweimal klicken 😂), und es ist leichtgewichtiger.\n\nFür `OpenInTerminal-Lite` Nutzer:\n\nBitte lesen Sie das Dokument: [OpenInTerminal-Lite English](./Resources/README-Lite.md) | [OpenInTerminal-Lite 中文说明](./Resources/README-Lite-zh.md) | [OpenInTerminal-Lite Türkçe](./Resources/README-Lite-tr.md) | [OpenInTerminal-Lite Deutsch](./Resources/README-Lite-de.md)\n\n## Installation 🖥\n\n### 1. Herunterladen\n\n#### a) Homebrew\n\n```\nbrew install --cask openinterminal\n```\n\n#### b) Manuell\n\n1. Herunterladen von [release](https://github.com/Ji4n1ng/OpenInTerminal/releases).\n\n2. Verschieben Sie das Programm in `/Programme`.\n\n> ⚠️ macOS fragt Sie nach Ihrer Berechtigung für den Zugriff auf den Finder und andere Anwendungen, wenn Sie die App zum ersten Mal ausführen. Bitte geben Sie OpenInTerminal diese Berechtigungen.\n\n### 2. Berechtigung der Finder-Erweiterung prüfen\n\nÖffnen Sie die OpenInTerminal App. Gehen Sie dann zu `Systemeinstellungen` -> `Erweiterungen` -> `Finder-Erweiterungen`, erteilen Sie dann die Berechtigung mit dem Kontrollkästchen wie gezeigt.\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/78590336-448f4180-7874-11ea-827c-ad3a7bffca5e.png\" width=\"400px\">\n</div>\n\n## Zu erledigen 👨‍💻\n\nWenn Sie eine gute Idee haben, können Sie gerne ein neues [Issue](https://github.com/Ji4n1ng/OpenInTerminal/issues/new/choose) eröffnen.\n\n## Unterstützung ❤️\n\nDanke für Ihre Unterstützung!\n\n| PayPal | AliPay | WeChat Pay |\n| --- | --- | --- |\n| [paypal.me/ji4ning](https://www.paypal.me/ji4ning) | <img src=\"./Resources/Support-Alipay.jpg\" width=\"50%\"> | <img src=\"./Resources/Support-WeChatPay.jpg\" width=\"50%\"> |\n\n## FAQ ❓\n\n<details><summary>1. Was ist der Unterschied zwischen OpenInTerminal und OpenInTerminal-Lite?</summary><br>\n<p>OpenInTerminal hat aktuell eine normale und eine lite Version. Wenn Sie leistungsfähigere Funktionen und GUI-Einstellungen mögen, können Sie `OpenInTerminal` verwenden. Wenn Sie nur das Terminal schnell und zuverlässig öffnen müssen, können Sie `OpenInTerminal-Lite` verwenden.</p>\n</details>\n\n<details><summary>2. Ich habe versehentlich auf <code>Nicht erlauben</code> geklickt.</summary><br>\n<p>Sie können den folgenden Befehl in einem Terminal ausführen. Dadurch werden die Berechtigungen in den Systemeinstellungen zurückgesetzt.</p>\n<br><code>tccutil reset AppleEvents wang.jianing.app.OpenInTerminal</code><br>\n</details>\n\n<details><summary>3. Sonderzeichen im <code>Pfad</code>.</summary><br>\n<p>Bitte verwenden Sie keine Backslashes <code>\\</code> oder doppelte Anführungszeichen <code>\"</code> in dem Pfad.</p>\n</details>\n\n<details><summary>4. Öffnen von zwei Terminal Fenstern in Mojave</summary><br>\n<p>Dieses Problem tritt normalerweise auf, wenn Terminal zum ersten Mal gestartet wird. Sie können <code>⌘W</code> verwenden um nur das Terminal Fenster zu schließen, anstatt von <code>⌘Q</code> um das Terminal zu beenden.</p>\n</details>\n\n<details><summary>5. OpenInTerminal Finder-Erweiterung funktioniert nicht.</summary><br>\n<p>Derzeit ist die Finder-Erweiterung vollständig von AppleScript abhängig, um unabhängig zu laufen. Daher ist es schwer, ihre Stabilität zu garantieren. Wenn Sie feststellen, dass die Finder-Erweiterung nicht richtig funktioniert, müssen Sie die <code>option(⌥)</code> Taste drücken, während Sie auf den Finder im Dock rechtsklicken und <code>Neu starten</code> auswählen.</p>\n<p>Wenn Ihr Mac-Modell etwas älter ist, so wie meines, schlage ich vor, dass Sie das Symbol im Kontextmenü in den Einstellungen entfernen. Wenn es immer noch häufig abstürzt, empfiehlt es sich, OpenInTerminal-Lite zu verwenden.</p>\n</details>\n\n<details><summary>6. OpenInTerminal funktioniert nicht wie erwartet</summary><br>\n<p>OpenInTerminal öffnet das Terminal oder den Editor in der folgenden Reihenfolge:</p>\n<ul>\n<li>1. Öffnen der Datei oder des Ordners, den Sie gewählt haben.</li>\n<li>2. Öffnen des obersten Finder Fensters.</li>\n<li>3. Keines von beiden. Dann den Schreibtisch öffnen.</li>\n</ul>\n<p>Wenn Sie z.B. eine Datei im unteren Finder-Fenster auswählen und das darüber liegende Finder-Fenster im Terminal öffnen wollen, wird dies nicht so funktionieren, wie Sie es in der obigen Reihenfolge erwarten.</p>\n<p>F: Ich klicke mit der rechten Maustaste auf den Desktop, aber es erscheint kein Terminal oder Editor. Die Aktionen im Menü der Statusleiste funktionieren jedoch.</p>\n<p>A: Versuchen Sie, eine Datei (oder einen Ordner) auszuwählen oder ein Finder-Fenster zu öffnen. Wenn Sie mit der rechten Maustaste auf den Desktop klicken und nichts ausgewählt ist, stellt das System dem Programm den Pfad der ausgewählten Dateien nicht zur Verfügung. In dieser Situation funktioniert das Programm nicht. Derzeit funktionieren sie (Finder-Erweiterung und Aktionen im Statusleistenmenü) nicht auf die gleiche Weise. Die Finder-Erweiterung ist vollständig abhängig von AppleScript, um unabhängig zu laufen, während das Statusleistensymbol wie bisher funktioniert. Sie haben also unterschiedliche Verhaltensweisen. Dieses Problem wird in Zukunft verbessert werden.</p>\n</details>\n\n<details><summary>7. Mein benutzerdefiniertes Programm funktioniert nicht.</summary><br>\n<p>Wenn Ihre benutzerdefinierte Anwendung nicht mit dem folgenden Befehl funktioniert, kann die Anwendung nicht unterstützt werden. Zum Beispiel, GitHub Desktop:</p>\n<code>open -a GitHub\\ Desktop ~/Desktop</code>\n</details>\n\n## Besonderen Dank an ❤️\n\nVielen Dank an alle Mitwirkenden. Ihre Arbeit macht OpenInTerminal besser.\n\n### Referenzprojekte\n\n- [jbtule/cdto](https://github.com/jbtule/cdto)\n- [es-kumagai/OpenTerminal](https://github.com/es-kumagai/OpenTerminal)\n- [tingraldi/SwiftScripting](https://github.com/tingraldi/SwiftScripting)\n- [onmyway133/FinderGo](https://github.com/onmyway133/FinderGo)\n- [Caldis/Mos](https://github.com/Caldis/Mos/)\n"
  },
  {
    "path": "Resources/README-tr.md",
    "content": "<p align=\"center\">\n  <img width=\"80%\" src=\"https://user-images.githubusercontent.com/11001224/104892170-d18f2b80-59ac-11eb-96b1-0293acfde4e5.png\"><br/><br/>\n  <a href=\"https://github.com/Ji4n1ng/OpenInTerminal/releases/tag/v2.3.6\"><img src=\"https://img.shields.io/badge/Version-2.3.6-blue.svg\"></a>\n  <a href=\"https://github.com/Ji4n1ng/OpenInTerminal/blob/master/LICENSE\"><img src=\"https://img.shields.io/badge/License-MIT-green.svg\"></a>\n  <img src=\"https://img.shields.io/badge/Made With-Swift-red.svg\">\n  <a href=\"https://travis-ci.org/Ji4n1ng/OpenInTerminal\"><img src=\"https://img.shields.io/travis/Ji4n1ng/OpenInTerminal.svg\"></a>\n</p>\n\nEnglish | [OpenInTerminal 中文说明](./Resources/README-zh.md) | [OpenInTerminal Türkçe](./Resources/README-tr.md) \n\n[OpenInTerminal-Lite English](./Resources/README-Lite.md) | [OpenInTerminal-Lite 中文说明](./Resources/README-Lite-zh.md) | [OpenInTerminal-Lite Türkçe](./Resources/README-Lite-tr.md)\n\n## Nasıl kullanılır 🚀\n\n| Temel Özellikler | OpenInTerminal |\n| --- | --- |\n| X'i (örn, bir klasör veya dosya) terminalde veya düzenleyicide aç | ![](https://user-images.githubusercontent.com/11001224/78589385-b797b880-7872-11ea-9062-c11a49461598.gif) | \n| Seçileni X'de aç (örn, Github Desktop)  | ![](https://user-images.githubusercontent.com/11001224/104891620-28483580-59ac-11eb-9fb5-3e4dec7863cc.gif) |\n\n### Daha fazla özellik\n\n| Özellikler | OpenInTerminal | OpenInTerminal-Lite & OpenInEditor-Lite |\n| --- | --- | --- |\n| Terminal Desteği, [iTerm](https://www.iterm2.com/), [Hyper](https://github.com/zeit/hyper), [Alacritty](https://github.com/jwilm/alacritty) ve [kitty](https://sw.kovidgoyal.net/kitty/). | ✅ | ✅ |\n| TextEdit Desteği, [Visual Studio Code](https://code.visualstudio.com/), [VSCode Insiders](https://code.visualstudio.com/insiders/), [Atom](https://atom.io/), [Sublime Text](https://www.sublimetext.com/), [VSCodium](https://github.com/VSCodium/vscodium), [BBEdit](https://www.barebones.com/products/bbedit/), [TextMate](https://macromates.com), [CotEditor](https://coteditor.com/), [MacVim](https://github.com/macvim-dev/macvim) and [JetBrains](https://www.jetbrains.com/)(AppCode, CLion, GoLand, IntelliJ IDEA, PhpStorm, PyCharm, RubyMine, WebStorm). | ✅ | ✅ |\n| Özelleştirilmiş uygulamalarda aç. (⚠️Bütün uygulamar desteklenmemektedir.) | ✅ | ✅ |\n| Türkçe, İngilizce, Çince, Fransızca, Rusça, İtalyanca ve İspanyolca dil desteği. | ✅ | ✅ |\n| GUI ile özelleştirme | ✅ | ❌ |\n| Klavye kısayolu desteği. | ✅ | ❌ |\n\n## OpenInTerminal ve OpenInTerminal-Lite (OpenInEditor-Lite) 👀\n\nHangisini seçmeliyim? İki sürüm de benim için değerli. Eğer daha güçlü özellikler ve GUI tercihlerini seviyorsanız, `OpenInTerminal`'i kullanın. Ancak sadece terminal açmak istiyorsanız `OpenInTerminal-Lite`, daha hızlı ve stabil şekilde çalışacaktır.\n\nŞahsen ben`OpenInTerminal-Lite`'ı tercih ediyorum. Terminalı sadece bir tıkla açabiliyorsunuz (diğeri ise iki tıkla bu işi yapıyor 😂) ve daha hafif bir yazılım olma vantajına sahip.\n\n`OpenInTerminal-Lite` kullanıcıları için:\n\nİlişkin döküman: [OpenInTerminal-Lite English](./Resources/README-Lite.md) | [OpenInTerminal-Lite 中文说明](./Resources/README-Lite-zh.md) | [OpenInTerminal-Lite Türkçe](./Resources/README-Lite-tr.md)\n\n## Nasıl Yüklenir 🖥\n\n### 1. İndirme\n\n#### a) Homebrew kullanarak yapma\n\n```\nbrew install --cask openinterminal\n```\n\n#### b) Elle yapma\n\n1. [release](https://github.com/Ji4n1ng/OpenInTerminal/releases) adresinden indirin.\n\n2. Uygulamayı `/Applications` konumuna taşıyın.\n\n> ⚠️ macOS, uygulama ilk kez çalıştırılırken size Finder ve diğer uygulamara erişim izni verip vermeyeceğinizi soracaktır. Lütfen OpenInTerminal'e gerekli izinleri verin.\n\n### 2. Finder uzantı iznini kontrol edin\n\nOpenInTerminal uygulamasını açın. `Sistem Tercihleri` -> `Uzantılar` -> `Finder Uzantıları` yolunu takip edip aşağıda gösterildiği gibi izin butonunu kontrol edin.\n\n<div>\n  <img src=\"https://user-images.githubusercontent.com/11001224/78590336-448f4180-7874-11ea-827c-ad3a7bffca5e.png\" width=\"400px\">\n</div>\n\n## Yapılacaklar 👨‍💻\n\nEğer iyi bir fikriniz varsa lütfen [issue](https://github.com/Ji4n1ng/OpenInTerminal/issues/new/choose) açın.\n\n## Projeyi Destekleme ❤️\n\nDesteğiniz için teşekkürler!\n\n| PayPal | AliPay | WeChat Pay |\n| --- | --- | --- |\n| [paypal.me/ji4ning](https://www.paypal.me/ji4ning) | <img src=\"./Support-Alipay.jpg\" width=\"50%\"> | <img src=\"./Support-WeChatPay.jpg\" width=\"50%\"> |\n\n## Sık Sorulan Sorular ❓\n\n<details><summary>1. OpenInTerminal ile OpenInTerminal-Lite? arasındaki fark nedir?</summary><br>\n<p>OpenInTerminal güncel olarak iki versiyona sahiptir: Normal ve Lite.  Eğer daha güçlü özellikler ve GUI tercihlerini seviyorsanız, OpenInTerminal'ı kullanın. Ancak sadece terminal açmak istiyorsanız `OpenInTerminal-Lite`, daha hızlı ve stabil şekilde çalışacaktır.</p>\n</details>\n\n<details><summary>2. Yanlışlıkla <code>Kabul Etme</code>  butonuna tıkladım.</summary><br>\n<p>Aşağıda verilen kodu terminalde çalıştırın. Bu sayede Sistem Tercihlerindeki uygulamaya dair izinler sıfırlanacaktır.</p>\n<br><code>tccutil reset AppleEvents wang.jianing.app.OpenInTerminal</code><br>\n</details>\n\n<details><summary>3. <code>path</code>'de özel karakterler var.</summary><br>\n<p>Lütfen ters eğik çizgi <code>\\</code> ve çift tırnak <code>\"</code> sembollerini yolun içinde kullanmayın.</p>\n</details>\n\n<details><summary>4. Mojave'de iki terminal penceresi açılıyor.</summary><br>\n<p>Bu problem genellikle ilk terminal başlatılıdığında oluşmakta. Terminali kapatmak için <code>⌘W</code> ifadesini, <code>⌘Q</code> ifadesi yerine kullanabilirsiniz.</p>\n</details>\n\n<details><summary>5. OpenInTerminal Finder uzantısı çalışmıyor.</summary><br>\n<p>Şimdilik Finder uzantıları bağımsız çalışabilmek için AppleScript'e bağlı. Bu sebepten ötürü stabil çalışmasını garanti etmek pek mümkün değil. Finder uzantısının düzgün çalışmadığını fark ettiğinizde, <code>Option(⌥)</code> tuşunu basılı tutup Finder'a sağ tıklama yaptıktan sonra, <code>Relaunch</code>'u seçin.</p>\n<p>Eğer Mac'niz benimkisi gibi eskiyse uygulama ikonunu Tercihler menüsünden kapatmanızı tavsiye ediyorum. Eğer hala sıkça çöküyorsa OpenInTerminal-Lite kullanılması daha iyi olacaktır.</p>\n</details>\n\n<details><summary>6. OpenInTerminal beklediğim gibi çalışmıyor</summary><br>\n<p>OpenInTerminal, terminali ya da düzenlryicisi aşağıdaki sırayla kullanılmalıdır:</p>\n<ul>\n<li>1. Seçmiş olduğun dosya ya da klasörü aç.</li>\n<li>2. En üstteki Finder pencerisini aç.</li>\n<li>3. Masaüstüne geç.</li>\n</ul>\n<p>Örneğin; eğer alttaki Finder penceresinden bir dosya seçip üstteki Fİnder pencersini terminalde açmak istersen yuaksrıdaki sırada görülebileceği üzere, uygulama beklendiği şekilde çalışmayacaktır.</p>\n<p>Q: Masaüstüne sağ tık yapmama rağmen terminal veya düzenleyici gözükmüyor ancak durum çubuğundaki işlevler çalışmakta.</p>\n<p>A: Bir dosyayı(klasörü) seçerek ya da Finder penceresi açarak işlem yapabilirsiniz. Çünkü sağ tık yapıldığında bir öge seçili değilse sistem seçilmiş dosyaların yoluna dair bir program paylaşmaz. Bu durumda da program çalışmaz.<br>Şu anda bazı(Finder uzantıları ve durum çubuğundaki işlevler) aynı şekilde çalışmıyor. Durum çubuğu simgelerinin aksine Finder uzantıları bağımsız çalışabilmek için AppleScript'e bağlı. Bu yüzden farklı davranış bimileri sergiliyorlar. Bu problem gelecekte iyileştirilecektir.</p>\n</details>\n\n<details><summary>7. Benim özel uygulamam çalışmıyor.</summary><br>\n<p>Eğer aşağıdaki komutla kullanmak istediğiniz program açılmıyorsa, o program bu uygulama tarafından desteklenmiyor demektir. Örneğin, GitHub Desktop için:</p>\n<code>open -a GitHub\\ Desktop ~/Desktop</code>\n</details>\n\n## Özel Olarak Teşekkürler ❤️\n\nKatkıda bulunan herkese teşekkürler... Uğraşlarınızla OpenInTerminal daha iyi bir hale geliyor.\n\n### Referans Projeler\n\n- [jbtule/cdto](https://github.com/jbtule/cdto)\n- [es-kumagai/OpenTerminal](https://github.com/es-kumagai/OpenTerminal)\n- [tingraldi/SwiftScripting](https://github.com/tingraldi/SwiftScripting)\n- [onmyway133/FinderGo](https://github.com/onmyway133/FinderGo)\n- [Caldis/Mos](https://github.com/Caldis/Mos/)\n"
  },
  {
    "path": "Resources/README-zh.md",
    "content": "<div align=\"center\">\n  <img width=\"80%\" src=\"https://user-images.githubusercontent.com/11001224/104892170-d18f2b80-59ac-11eb-96b1-0293acfde4e5.png\"><br/><br/>\n  <a href=\"../README.md\">English</a> | 中文\n</div>\n\n## 如何使用 🚀\n\n| 核心功能 | OpenInTerminal |\n| --- | --- |\n| 在终端（或编辑器）中打开目录或文件 | ![](https://user-images.githubusercontent.com/11001224/78589385-b797b880-7872-11ea-9062-c11a49461598.gif) |\n| 在自定义应用中打开（以 GitHub Desktop 为例） | ![](https://user-images.githubusercontent.com/11001224/104891620-28483580-59ac-11eb-9fb5-3e4dec7863cc.gif) |\n\n### 更多功能\n\n| 功能 | OpenInTerminal | OpenInTerminal-Lite & OpenInEditor-Lite |\n| --- | --- | --- |\n| 支持 终端, [iTerm](https://www.iterm2.com/), [Hyper](https://github.com/zeit/hyper), [Alacritty](https://github.com/jwilm/alacritty), [kitty](https://sw.kovidgoyal.net/kitty/), [Warp](https://www.warp.dev), [WezTerm](https://wezfurlong.org/wezterm/index.html), [Tabby](https://tabby.sh), [Ghostty](https://ghostty). | ✅ | ✅ |\n| 支持 文本编辑, Xcode, [Visual Studio Code](https://code.visualstudio.com/), [VSCode Insiders](https://code.visualstudio.com/insiders/), [Atom](https://atom.io/), [Sublime Text](https://www.sublimetext.com/), [VSCodium](https://github.com/VSCodium/vscodium), [BBEdit](https://www.barebones.com/products/bbedit/), [TextMate](https://macromates.com), [CotEditor](https://coteditor.com/), [MacVim](https://github.com/macvim-dev/macvim), [JetBrains](https://www.jetbrains.com/)(AppCode, CLion, GoLand, IntelliJ IDEA, PhpStorm, PyCharm, RubyMine, WebStorm, Android Studio, Fleet), [Typora](https://typora.io/), [Nova](https://nova.app/), [Cursor](https://cursor.sh/), [notepad--](https://github.com/cxasm/notepad--), [neovim](https://neovim.io/). | ✅ | ✅ |\n| 打开自定义应用（⚠️ 并不是所有的应用都支持） | ✅ | ✅ |\n| 支持中文，英语，法语，俄语，意大利语，西班牙语，土耳其语, 德语, 韩语 | ✅ | ✅ |\n| 图形化设置界面 | ✅ | ❌ |\n| 支持键盘快捷键 | ✅ | ❌ |\n\n## OpenInTerminal 和 OpenInTerminal-Lite (OpenInEditor-Lite) 👀\n\n选择哪个？如果你喜欢更强大的功能和图形化设置界面，那么你可以选择 `OpenInTerminal`。如果你仅仅需要更快速且更稳定地打开终端或编辑器，那么你可以选择 `OpenInTerminal-Lite`。\n\n对于我而言，我更喜欢 `OpenInTerminal-Lite`，它只需要点击一次来完成功能（另一个需要点击两次😂），而且它更轻量一些。\n\n对于 `OpenInTerminal-Lite` 用户：\n\n请看文档： [English](./README-Lite.md) | [中文说明](./README-Lite-zh.md)\n\n## 安装 🖥\n\n```\nbrew install --cask openinterminal\n```\n\n或者从 [release](https://github.com/Ji4n1ng/OpenInTerminal/releases) 中手动下载。\n\n## 配置和常见问题 ⚙️\n\n请看文档 [配置](./Resources/README-Config-zh.md)\n\n## 支持 ❤️\n\n感谢各位的支持！\n\n通过 [GitHub Sponsors](https://github.com/sponsors/Ji4n1ng) 支持 💖。\n\n| PayPal | 支付宝 | 微信 |\n| --- | --- | --- |\n| [paypal.me/ji4ning](https://www.paypal.me/ji4ning) | <img src=\"./Support-Alipay.jpg\" width=\"50%\"> | <img src=\"./Support-WeChatPay.jpg\" width=\"50%\"> |\n\n<!-- ### 赞助商 -->\n<!-- <a href=\"https://github.com/wcoder\"><img src=\"https://avatars.githubusercontent.com/u/766193?v=4\" width=\"10%\" style=\"border-radius:10px;\" /></a> -->\n\n\n## 特别感谢 ❤️\n\n感谢所有的贡献者。你们的付出让 OpenInTerminal 更棒了。\n\n### 参考项目\n\n- [jbtule/cdto](https://github.com/jbtule/cdto)\n- [es-kumagai/OpenTerminal](https://github.com/es-kumagai/OpenTerminal)\n- [tingraldi/SwiftScripting](https://github.com/tingraldi/SwiftScripting)\n- [onmyway133/FinderGo](https://github.com/onmyway133/FinderGo)\n- [Caldis/Mos](https://github.com/Caldis/Mos/)\n"
  }
]