mirror of https://github.com/oxen-io/lokinet
gut ui-*
parent
8cfc02ca56
commit
c2fbc28bbf
@ -1,60 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
set(PROJECT_NAME lokinet)
|
||||
project(${PROJECT_NAME} C CXX Swift)
|
||||
|
||||
get_filename_component(LOKINET_ROOT .. ABSOLUTE BASE_DIR "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
include("${LOKINET_ROOT}/cmake/target_link_libraries_system.cmake")
|
||||
include("${LOKINET_ROOT}/cmake/add_import_library.cmake")
|
||||
include("${LOKINET_ROOT}/cmake/add_log_tag.cmake")
|
||||
include("${LOKINET_ROOT}/cmake/libatomic.cmake")
|
||||
|
||||
if (STATIC_LINK AND STATIC_LINK_RUNTIME)
|
||||
message(FATAL "Cannot set both STATIC_LINK and STATIC_LINK_RUNTIME")
|
||||
endif()
|
||||
|
||||
set(CMAKE_Swift_LANGUAGE_VERSION 5.0)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${LOKINET_ROOT}/cmake")
|
||||
|
||||
include(FetchContent)
|
||||
FetchContent_Declare(
|
||||
libuv
|
||||
GIT_REPOSITORY https://github.com/libuv/libuv.git
|
||||
GIT_TAG v1.32.0
|
||||
)
|
||||
FetchContent_Populate(libuv)
|
||||
add_subdirectory(${libuv_SOURCE_DIR} ${libuv_BINARY_DIR})
|
||||
|
||||
include("${LOKINET_ROOT}/cmake/basic_definitions.cmake")
|
||||
set(LIBUV_IN_SOURCE ON)
|
||||
set(LIBUV_LIBRARY uv_a)
|
||||
include("${LOKINET_ROOT}/cmake/unix.cmake")
|
||||
unset(LIBTUNTAP_SRC)
|
||||
|
||||
find_package(Threads REQUIRED)
|
||||
|
||||
set(ABSEIL_DIR "${LOKINET_ROOT}/vendor/abseil-cpp")
|
||||
|
||||
macro(add_loki_dir name)
|
||||
add_subdirectory("${LOKINET_ROOT}/${name}" "${name}")
|
||||
endmacro()
|
||||
|
||||
include_directories(SYSTEM ${ABSEIL_DIR})
|
||||
add_loki_dir(vendor/cxxopts)
|
||||
add_loki_dir(vendor/nlohmann)
|
||||
include_directories(SYSTEM "${LOKINET_ROOT}/vendor/cxxopts/include")
|
||||
include_directories("${LOKINET_ROOT}/include")
|
||||
include_directories("${libuv_SOURCE_DIR}/include")
|
||||
|
||||
add_loki_dir(vendor/gtest)
|
||||
add_subdirectory(${ABSEIL_DIR} "vendor/abseil-cpp")
|
||||
|
||||
add_loki_dir(crypto)
|
||||
add_loki_dir(llarp)
|
||||
add_loki_dir(libabyss)
|
||||
|
||||
add_subdirectory(lokinet)
|
@ -1,4 +0,0 @@
|
||||
set(CMAKE_MACOSX_BUNDLE YES)
|
||||
set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED NO)
|
||||
set(CMAKE_OSX_SYSROOT iphoneos)
|
||||
set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "")
|
@ -1,92 +0,0 @@
|
||||
//
|
||||
// AppDelegate.swift
|
||||
// lokinet
|
||||
//
|
||||
// Copyright © 2019 Loki. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import CoreData
|
||||
|
||||
@UIApplicationMain
|
||||
class AppDelegate: UIResponder, UIApplicationDelegate {
|
||||
|
||||
var window: UIWindow?
|
||||
|
||||
|
||||
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
|
||||
// Override point for customization after application launch.
|
||||
return true
|
||||
}
|
||||
|
||||
func applicationWillResignActive(_ application: UIApplication) {
|
||||
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
|
||||
// Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
|
||||
}
|
||||
|
||||
func applicationDidEnterBackground(_ application: UIApplication) {
|
||||
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
|
||||
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
|
||||
}
|
||||
|
||||
func applicationWillEnterForeground(_ application: UIApplication) {
|
||||
// Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
|
||||
}
|
||||
|
||||
func applicationDidBecomeActive(_ application: UIApplication) {
|
||||
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
|
||||
}
|
||||
|
||||
func applicationWillTerminate(_ application: UIApplication) {
|
||||
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
|
||||
// Saves changes in the application's managed object context before the application terminates.
|
||||
self.saveContext()
|
||||
}
|
||||
|
||||
// MARK: - Core Data stack
|
||||
|
||||
lazy var persistentContainer: NSPersistentContainer = {
|
||||
/*
|
||||
The persistent container for the application. This implementation
|
||||
creates and returns a container, having loaded the store for the
|
||||
application to it. This property is optional since there are legitimate
|
||||
error conditions that could cause the creation of the store to fail.
|
||||
*/
|
||||
let container = NSPersistentContainer(name: "lokinet")
|
||||
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
|
||||
if let error = error as NSError? {
|
||||
// Replace this implementation with code to handle the error appropriately.
|
||||
// fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
|
||||
|
||||
/*
|
||||
Typical reasons for an error here include:
|
||||
* The parent directory does not exist, cannot be created, or disallows writing.
|
||||
* The persistent store is not accessible, due to permissions or data protection when the device is locked.
|
||||
* The device is out of space.
|
||||
* The store could not be migrated to the current model version.
|
||||
Check the error message to determine what the actual problem was.
|
||||
*/
|
||||
fatalError("Unresolved error \(error), \(error.userInfo)")
|
||||
}
|
||||
})
|
||||
return container
|
||||
}()
|
||||
|
||||
// MARK: - Core Data Saving support
|
||||
|
||||
func saveContext () {
|
||||
let context = persistentContainer.viewContext
|
||||
if context.hasChanges {
|
||||
do {
|
||||
try context.save()
|
||||
} catch {
|
||||
// Replace this implementation with code to handle the error appropriately.
|
||||
// fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
|
||||
let nserror = error as NSError
|
||||
fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,98 +0,0 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "20x20",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "20x20",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "29x29",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "29x29",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "40x40",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "40x40",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "60x60",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "60x60",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "20x20",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "20x20",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "29x29",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "29x29",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "40x40",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "40x40",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "76x76",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "76x76",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "83.5x83.5",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ios-marketing",
|
||||
"size" : "1024x1024",
|
||||
"scale" : "1x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
@ -1,25 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/>
|
||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--View Controller-->
|
||||
<scene sceneID="EHf-IW-A2E">
|
||||
<objects>
|
||||
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
|
||||
</view>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="53" y="375"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
</document>
|
@ -1,24 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/>
|
||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--View Controller-->
|
||||
<scene sceneID="tne-QT-ifu">
|
||||
<objects>
|
||||
<viewController id="BYZ-38-t0r" customClass="ViewController" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
|
||||
</view>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
</scene>
|
||||
</scenes>
|
||||
</document>
|
@ -1 +0,0 @@
|
||||
add_executable(lokinet AppDelegate.swift ViewController.swift)
|
@ -1,45 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen</string>
|
||||
<key>UIMainStoryboardFile</key>
|
||||
<string>Main</string>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>armv7</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
@ -1,19 +0,0 @@
|
||||
//
|
||||
// ViewController.swift
|
||||
// lokinet
|
||||
//
|
||||
// Copyright © 2019 Loki. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
class ViewController: UIViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
// Do any additional setup after loading the view.
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.developer.networking.networkextension</key>
|
||||
<array>
|
||||
<string>dns-proxy</string>
|
||||
<string>packet-tunnel-provider</string>
|
||||
</array>
|
||||
<key>com.apple.developer.networking.vpn.api</key>
|
||||
<array>
|
||||
<string>allow-vpn</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>_XCCurrentVersionName</key>
|
||||
<string>lokinet.xcdatamodel</string>
|
||||
</dict>
|
||||
</plist>
|
@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="1" systemVersion="11A491" minimumToolsVersion="Automatic" sourceLanguage="Swift" userDefinedModelVersionIdentifier="">
|
||||
<elements/>
|
||||
</model>
|
@ -1,29 +0,0 @@
|
||||
//
|
||||
// WindowsManager.swift
|
||||
// lokinet
|
||||
//
|
||||
// Copyright © 2019 Loki. All rights reserved.
|
||||
//
|
||||
|
||||
import AppKit
|
||||
import Foundation
|
||||
|
||||
struct WindowsManager {
|
||||
static func getVC<T: NSViewController>(withIdentifier identifier: String,
|
||||
ofType: T.Type?,
|
||||
storyboard: String = "Main",
|
||||
bundle: Bundle? = nil) -> T? {
|
||||
let storyboard = NSStoryboard(name: storyboard, bundle: bundle)
|
||||
|
||||
guard let vc: T = storyboard.instantiateController(withIdentifier: identifier) as? T else {
|
||||
let alert = NSAlert()
|
||||
alert.alertStyle = .critical
|
||||
alert.messageText = "Error initiating the viewcontroller"
|
||||
alert.runModal()
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
return vc
|
||||
}
|
||||
}
|
@ -1,641 +0,0 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 51;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
7B28BD1A232EA8B40073B955 /* DNSManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B28BD19232EA8B40073B955 /* DNSManager.swift */; };
|
||||
7B28BD1C232EB6EF0073B955 /* LokinetRunner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B28BD1B232EB6EF0073B955 /* LokinetRunner.swift */; };
|
||||
7BA4FB642340D5940098E20A /* Preferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA4FB632340D5940098E20A /* Preferences.swift */; };
|
||||
7BA4FB662340DA820098E20A /* StatusMenuExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA4FB652340DA820098E20A /* StatusMenuExt.swift */; };
|
||||
7BA4FB6C2340F2270098E20A /* WindowsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA4FB6B2340F2270098E20A /* WindowsManager.swift */; };
|
||||
7BA4FB7023411FF60098E20A /* PrefsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA4FB6E23411FF60098E20A /* PrefsViewController.swift */; };
|
||||
7BA4FB7323412D700098E20A /* Interfaces.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA4FB7223412D700098E20A /* Interfaces.swift */; };
|
||||
7BED5B7A232D78D900DF603F /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BED5B79232D78D900DF603F /* AppDelegate.swift */; };
|
||||
7BED5B7E232D78DB00DF603F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7BED5B7D232D78DB00DF603F /* Assets.xcassets */; };
|
||||
7BED5B81232D78DB00DF603F /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7BED5B7F232D78DB00DF603F /* Main.storyboard */; };
|
||||
7BED5B8D232D78DB00DF603F /* lokinetTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BED5B8C232D78DB00DF603F /* lokinetTests.swift */; };
|
||||
7BED5B98232D78DB00DF603F /* lokinetUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BED5B97232D78DB00DF603F /* lokinetUITests.swift */; };
|
||||
7BED5BA6232E7E6600DF603F /* LokinetLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BED5BA5232E7E6600DF603F /* LokinetLog.swift */; };
|
||||
7BED5BA8232E831B00DF603F /* StreamReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BED5BA7232E831B00DF603F /* StreamReader.swift */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
7BED5B89232D78DB00DF603F /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 7BED5B6E232D78D900DF603F /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 7BED5B75232D78D900DF603F;
|
||||
remoteInfo = lokinet;
|
||||
};
|
||||
7BED5B94232D78DB00DF603F /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 7BED5B6E232D78D900DF603F /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 7BED5B75232D78D900DF603F;
|
||||
remoteInfo = lokinet;
|
||||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
7B28BD19232EA8B40073B955 /* DNSManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DNSManager.swift; sourceTree = "<group>"; };
|
||||
7B28BD1B232EB6EF0073B955 /* LokinetRunner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LokinetRunner.swift; sourceTree = "<group>"; };
|
||||
7BA4FB632340D5940098E20A /* Preferences.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Preferences.swift; sourceTree = "<group>"; };
|
||||
7BA4FB652340DA820098E20A /* StatusMenuExt.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusMenuExt.swift; sourceTree = "<group>"; };
|
||||
7BA4FB6B2340F2270098E20A /* WindowsManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowsManager.swift; sourceTree = "<group>"; };
|
||||
7BA4FB6E23411FF60098E20A /* PrefsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrefsViewController.swift; sourceTree = "<group>"; };
|
||||
7BA4FB7223412D700098E20A /* Interfaces.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Interfaces.swift; sourceTree = "<group>"; };
|
||||
7BED5B76232D78D900DF603F /* lokinet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = lokinet.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
7BED5B79232D78D900DF603F /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
||||
7BED5B7D232D78DB00DF603F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
7BED5B80232D78DB00DF603F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
|
||||
7BED5B82232D78DB00DF603F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
7BED5B83232D78DB00DF603F /* lokinet.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = lokinet.entitlements; sourceTree = "<group>"; };
|
||||
7BED5B88232D78DB00DF603F /* lokinetTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = lokinetTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
7BED5B8C232D78DB00DF603F /* lokinetTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = lokinetTests.swift; sourceTree = "<group>"; };
|
||||
7BED5B8E232D78DB00DF603F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
7BED5B93232D78DB00DF603F /* lokinetUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = lokinetUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
7BED5B97232D78DB00DF603F /* lokinetUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = lokinetUITests.swift; sourceTree = "<group>"; };
|
||||
7BED5B99232D78DB00DF603F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
7BED5BA5232E7E6600DF603F /* LokinetLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LokinetLog.swift; sourceTree = "<group>"; };
|
||||
7BED5BA7232E831B00DF603F /* StreamReader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StreamReader.swift; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
7BED5B73232D78D900DF603F /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
7BED5B85232D78DB00DF603F /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
7BED5B90232D78DB00DF603F /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
7BED5B6D232D78D900DF603F = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7BA4FB6B2340F2270098E20A /* WindowsManager.swift */,
|
||||
7BED5B78232D78D900DF603F /* lokinet */,
|
||||
7BED5B8B232D78DB00DF603F /* lokinetTests */,
|
||||
7BED5B96232D78DB00DF603F /* lokinetUITests */,
|
||||
7BED5B77232D78D900DF603F /* Products */,
|
||||
7BED5BA9232E993E00DF603F /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
7BED5B77232D78D900DF603F /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7BED5B76232D78D900DF603F /* lokinet.app */,
|
||||
7BED5B88232D78DB00DF603F /* lokinetTests.xctest */,
|
||||
7BED5B93232D78DB00DF603F /* lokinetUITests.xctest */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
7BED5B78232D78D900DF603F /* lokinet */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7BED5B79232D78D900DF603F /* AppDelegate.swift */,
|
||||
7BA4FB652340DA820098E20A /* StatusMenuExt.swift */,
|
||||
7BA4FB632340D5940098E20A /* Preferences.swift */,
|
||||
7BA4FB6E23411FF60098E20A /* PrefsViewController.swift */,
|
||||
7BED5B7D232D78DB00DF603F /* Assets.xcassets */,
|
||||
7BED5B7F232D78DB00DF603F /* Main.storyboard */,
|
||||
7BED5B82232D78DB00DF603F /* Info.plist */,
|
||||
7BED5B83232D78DB00DF603F /* lokinet.entitlements */,
|
||||
7BED5BA5232E7E6600DF603F /* LokinetLog.swift */,
|
||||
7B28BD19232EA8B40073B955 /* DNSManager.swift */,
|
||||
7BED5BA7232E831B00DF603F /* StreamReader.swift */,
|
||||
7B28BD1B232EB6EF0073B955 /* LokinetRunner.swift */,
|
||||
7BA4FB7223412D700098E20A /* Interfaces.swift */,
|
||||
);
|
||||
path = lokinet;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
7BED5B8B232D78DB00DF603F /* lokinetTests */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7BED5B8C232D78DB00DF603F /* lokinetTests.swift */,
|
||||
7BED5B8E232D78DB00DF603F /* Info.plist */,
|
||||
);
|
||||
path = lokinetTests;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
7BED5B96232D78DB00DF603F /* lokinetUITests */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7BED5B97232D78DB00DF603F /* lokinetUITests.swift */,
|
||||
7BED5B99232D78DB00DF603F /* Info.plist */,
|
||||
);
|
||||
path = lokinetUITests;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
7BED5BA9232E993E00DF603F /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
7BED5B75232D78D900DF603F /* lokinet */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 7BED5B9C232D78DB00DF603F /* Build configuration list for PBXNativeTarget "lokinet" */;
|
||||
buildPhases = (
|
||||
7BED5B72232D78D900DF603F /* Sources */,
|
||||
7BED5B73232D78D900DF603F /* Frameworks */,
|
||||
7BED5B74232D78D900DF603F /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = lokinet;
|
||||
productName = lokinet;
|
||||
productReference = 7BED5B76232D78D900DF603F /* lokinet.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
7BED5B87232D78DB00DF603F /* lokinetTests */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 7BED5B9F232D78DB00DF603F /* Build configuration list for PBXNativeTarget "lokinetTests" */;
|
||||
buildPhases = (
|
||||
7BED5B84232D78DB00DF603F /* Sources */,
|
||||
7BED5B85232D78DB00DF603F /* Frameworks */,
|
||||
7BED5B86232D78DB00DF603F /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
7BED5B8A232D78DB00DF603F /* PBXTargetDependency */,
|
||||
);
|
||||
name = lokinetTests;
|
||||
productName = lokinetTests;
|
||||
productReference = 7BED5B88232D78DB00DF603F /* lokinetTests.xctest */;
|
||||
productType = "com.apple.product-type.bundle.unit-test";
|
||||
};
|
||||
7BED5B92232D78DB00DF603F /* lokinetUITests */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 7BED5BA2232D78DB00DF603F /* Build configuration list for PBXNativeTarget "lokinetUITests" */;
|
||||
buildPhases = (
|
||||
7BED5B8F232D78DB00DF603F /* Sources */,
|
||||
7BED5B90232D78DB00DF603F /* Frameworks */,
|
||||
7BED5B91232D78DB00DF603F /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
7BED5B95232D78DB00DF603F /* PBXTargetDependency */,
|
||||
);
|
||||
name = lokinetUITests;
|
||||
productName = lokinetUITests;
|
||||
productReference = 7BED5B93232D78DB00DF603F /* lokinetUITests.xctest */;
|
||||
productType = "com.apple.product-type.bundle.ui-testing";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
7BED5B6E232D78D900DF603F /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastSwiftUpdateCheck = 1020;
|
||||
LastUpgradeCheck = 1020;
|
||||
ORGANIZATIONNAME = Loki;
|
||||
TargetAttributes = {
|
||||
7BED5B75232D78D900DF603F = {
|
||||
CreatedOnToolsVersion = 10.2.1;
|
||||
SystemCapabilities = {
|
||||
com.apple.ApplicationGroups.Mac = {
|
||||
enabled = 0;
|
||||
};
|
||||
com.apple.NetworkExtensions = {
|
||||
enabled = 0;
|
||||
};
|
||||
com.apple.Sandbox = {
|
||||
enabled = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
7BED5B87232D78DB00DF603F = {
|
||||
CreatedOnToolsVersion = 10.2.1;
|
||||
TestTargetID = 7BED5B75232D78D900DF603F;
|
||||
};
|
||||
7BED5B92232D78DB00DF603F = {
|
||||
CreatedOnToolsVersion = 10.2.1;
|
||||
TestTargetID = 7BED5B75232D78D900DF603F;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = 7BED5B71232D78D900DF603F /* Build configuration list for PBXProject "lokinet" */;
|
||||
compatibilityVersion = "Xcode 10.0";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
Base,
|
||||
);
|
||||
mainGroup = 7BED5B6D232D78D900DF603F;
|
||||
productRefGroup = 7BED5B77232D78D900DF603F /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
7BED5B75232D78D900DF603F /* lokinet */,
|
||||
7BED5B87232D78DB00DF603F /* lokinetTests */,
|
||||
7BED5B92232D78DB00DF603F /* lokinetUITests */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
7BED5B74232D78D900DF603F /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
7BED5B7E232D78DB00DF603F /* Assets.xcassets in Resources */,
|
||||
7BED5B81232D78DB00DF603F /* Main.storyboard in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
7BED5B86232D78DB00DF603F /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
7BED5B91232D78DB00DF603F /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
7BED5B72232D78D900DF603F /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
7BED5BA8232E831B00DF603F /* StreamReader.swift in Sources */,
|
||||
7BA4FB7023411FF60098E20A /* PrefsViewController.swift in Sources */,
|
||||
7BED5BA6232E7E6600DF603F /* LokinetLog.swift in Sources */,
|
||||
7BA4FB662340DA820098E20A /* StatusMenuExt.swift in Sources */,
|
||||
7B28BD1A232EA8B40073B955 /* DNSManager.swift in Sources */,
|
||||
7B28BD1C232EB6EF0073B955 /* LokinetRunner.swift in Sources */,
|
||||
7BA4FB6C2340F2270098E20A /* WindowsManager.swift in Sources */,
|
||||
7BA4FB7323412D700098E20A /* Interfaces.swift in Sources */,
|
||||
7BA4FB642340D5940098E20A /* Preferences.swift in Sources */,
|
||||
7BED5B7A232D78D900DF603F /* AppDelegate.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
7BED5B84232D78DB00DF603F /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
7BED5B8D232D78DB00DF603F /* lokinetTests.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
7BED5B8F232D78DB00DF603F /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
7BED5B98232D78DB00DF603F /* lokinetUITests.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXTargetDependency section */
|
||||
7BED5B8A232D78DB00DF603F /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = 7BED5B75232D78D900DF603F /* lokinet */;
|
||||
targetProxy = 7BED5B89232D78DB00DF603F /* PBXContainerItemProxy */;
|
||||
};
|
||||
7BED5B95232D78DB00DF603F /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = 7BED5B75232D78D900DF603F /* lokinet */;
|
||||
targetProxy = 7BED5B94232D78DB00DF603F /* PBXContainerItemProxy */;
|
||||
};
|
||||
/* End PBXTargetDependency section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
7BED5B7F232D78DB00DF603F /* Main.storyboard */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
7BED5B80232D78DB00DF603F /* Base */,
|
||||
);
|
||||
name = Main.storyboard;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
7BED5B9A232D78DB00DF603F /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "-";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
DEVELOPMENT_TEAM = 23TKR8Q2XE;
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.14;
|
||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||
MTL_FAST_MATH = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = macosx;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
7BED5B9B232D78DB00DF603F /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "-";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = 23TKR8Q2XE;
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.14;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
MTL_FAST_MATH = YES;
|
||||
SDKROOT = macosx;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
7BED5B9D232D78DB00DF603F /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_ENTITLEMENTS = lokinet/lokinet.entitlements;
|
||||
CODE_SIGN_IDENTITY = "Mac Developer";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
DEVELOPMENT_TEAM = 23TKR8Q2XE;
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
INFOPLIST_FILE = lokinet/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/../Frameworks",
|
||||
);
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.14;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = loki.lokinet;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SWIFT_VERSION = 5.0;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
7BED5B9E232D78DB00DF603F /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_ENTITLEMENTS = lokinet/lokinet.entitlements;
|
||||
CODE_SIGN_IDENTITY = "Mac Developer";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
DEVELOPMENT_TEAM = 23TKR8Q2XE;
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
INFOPLIST_FILE = lokinet/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/../Frameworks",
|
||||
);
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.14;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = loki.lokinet;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SWIFT_VERSION = 5.0;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
7BED5BA0232D78DB00DF603F /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
INFOPLIST_FILE = lokinetTests/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/../Frameworks",
|
||||
"@loader_path/../Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = loki.lokinetTests;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/lokinet.app/Contents/MacOS/lokinet";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
7BED5BA1232D78DB00DF603F /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
INFOPLIST_FILE = lokinetTests/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/../Frameworks",
|
||||
"@loader_path/../Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = loki.lokinetTests;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/lokinet.app/Contents/MacOS/lokinet";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
7BED5BA3232D78DB00DF603F /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
INFOPLIST_FILE = lokinetUITests/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/../Frameworks",
|
||||
"@loader_path/../Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = loki.lokinetUITests;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TEST_TARGET_NAME = lokinet;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
7BED5BA4232D78DB00DF603F /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
INFOPLIST_FILE = lokinetUITests/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/../Frameworks",
|
||||
"@loader_path/../Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = loki.lokinetUITests;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TEST_TARGET_NAME = lokinet;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
7BED5B71232D78D900DF603F /* Build configuration list for PBXProject "lokinet" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
7BED5B9A232D78DB00DF603F /* Debug */,
|
||||
7BED5B9B232D78DB00DF603F /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
7BED5B9C232D78DB00DF603F /* Build configuration list for PBXNativeTarget "lokinet" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
7BED5B9D232D78DB00DF603F /* Debug */,
|
||||
7BED5B9E232D78DB00DF603F /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
7BED5B9F232D78DB00DF603F /* Build configuration list for PBXNativeTarget "lokinetTests" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
7BED5BA0232D78DB00DF603F /* Debug */,
|
||||
7BED5BA1232D78DB00DF603F /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
7BED5BA2232D78DB00DF603F /* Build configuration list for PBXNativeTarget "lokinetUITests" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
7BED5BA3232D78DB00DF603F /* Debug */,
|
||||
7BED5BA4232D78DB00DF603F /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 7BED5B6E232D78D900DF603F /* Project object */;
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:">
|
||||
</FileRef>
|
||||
</Workspace>
|
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IDEDidComputeMac32BitWarning</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
@ -1,112 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1020"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "7BED5B75232D78D900DF603F"
|
||||
BuildableName = "lokinet.app"
|
||||
BlueprintName = "lokinet"
|
||||
ReferencedContainer = "container:lokinet.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
<TestableReference
|
||||
skipped = "NO">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "7BED5B87232D78DB00DF603F"
|
||||
BuildableName = "lokinetTests.xctest"
|
||||
BlueprintName = "lokinetTests"
|
||||
ReferencedContainer = "container:lokinet.xcodeproj">
|
||||
</BuildableReference>
|
||||
</TestableReference>
|
||||
<TestableReference
|
||||
skipped = "NO">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "7BED5B92232D78DB00DF603F"
|
||||
BuildableName = "lokinetUITests.xctest"
|
||||
BlueprintName = "lokinetUITests"
|
||||
ReferencedContainer = "container:lokinet.xcodeproj">
|
||||
</BuildableReference>
|
||||
</TestableReference>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "7BED5B75232D78D900DF603F"
|
||||
BuildableName = "lokinet.app"
|
||||
BlueprintName = "lokinet"
|
||||
ReferencedContainer = "container:lokinet.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
debugAsWhichUser = "root"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "7BED5B75232D78D900DF603F"
|
||||
BuildableName = "lokinet.app"
|
||||
BlueprintName = "lokinet"
|
||||
ReferencedContainer = "container:lokinet.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "7BED5B75232D78D900DF603F"
|
||||
BuildableName = "lokinet.app"
|
||||
BlueprintName = "lokinet"
|
||||
ReferencedContainer = "container:lokinet.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
@ -1,155 +0,0 @@
|
||||
//
|
||||
// AppDelegate.swift
|
||||
// lokinet
|
||||
//
|
||||
// Copyright © 2019 Loki. All rights reserved.
|
||||
//
|
||||
|
||||
import Cocoa
|
||||
|
||||
let LOG_WINDOW_CONTROLLER: NSWindowController = NSWindowController(window: nil)
|
||||
|
||||
@NSApplicationMain
|
||||
class AppDelegate: NSObject, NSApplicationDelegate {
|
||||
|
||||
var lokinet: LokinetRunner? = nil
|
||||
var appender: Appendable? = nil
|
||||
|
||||
var statusBarItem: NSStatusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
|
||||
|
||||
func applicationWillFinishLaunching(_ notification: Notification) {
|
||||
if (!Preferences.firstRunDone) {
|
||||
Preferences.firstRunDone = true
|
||||
Preferences.restore()
|
||||
}
|
||||
}
|
||||
|
||||
func applicationDidFinishLaunching(_ aNotification: Notification) {
|
||||
guard let statusButton = statusBarItem.button else { return }
|
||||
statusButton.title = "LokiNet"
|
||||
let statusMenu: NSMenu = NSMenu()
|
||||
statusMenu.autoenablesItems = false
|
||||
statusMenu.addItem(withTitle: "LokiNet", action: nil, keyEquivalent: "")
|
||||
|
||||
let runItem: NSMenuItem = {
|
||||
let item = NSMenuItem(
|
||||
title: "Run",
|
||||
action: #selector(runLokinet),
|
||||
keyEquivalent: "r"
|
||||
)
|
||||
item.target = self
|
||||
|
||||
return item
|
||||
}()
|
||||
|
||||
let stopItem: NSMenuItem = {
|
||||
let item = NSMenuItem(
|
||||
title: "Stop",
|
||||
action: #selector(stopLokinet),
|
||||
keyEquivalent: "s"
|
||||
|
||||
)
|
||||
item.isEnabled = false
|
||||
item.target = self
|
||||
|
||||
return item
|
||||
}()
|
||||
|
||||
let showWindowItem: NSMenuItem = {
|
||||
let item = NSMenuItem(
|
||||
title: "Show Window",
|
||||
action: #selector(showWindow),
|
||||
keyEquivalent: "w"
|
||||
)
|
||||
item.target = self
|
||||
|
||||
return item
|
||||
}()
|
||||
|
||||
let quitApplicationItem: NSMenuItem = {
|
||||
let item = NSMenuItem(
|
||||
title: "Quit",
|
||||
action: #selector(terminate),
|
||||
keyEquivalent: "q")
|
||||
item.target = self
|
||||
|
||||
return item
|
||||
}()
|
||||
|
||||
statusMenu.addItems(
|
||||
.separator(),
|
||||
runItem,
|
||||
stopItem,
|
||||
.separator(),
|
||||
showWindowItem,
|
||||
.separator(),
|
||||
quitApplicationItem
|
||||
)
|
||||
|
||||
statusBarItem.menu = statusMenu
|
||||
}
|
||||
|
||||
func applicationWillTerminate(_ aNotification: Notification) {
|
||||
lokinet?.stop()
|
||||
}
|
||||
}
|
||||
|
||||
extension AppDelegate {
|
||||
@objc
|
||||
func showWindow(sender: NSMenuItem) {
|
||||
if let vc = WindowsManager.getVC(withIdentifier: "LokinetLogController", ofType: LokinetLogController.self) {
|
||||
appender = vc.log
|
||||
let window: NSWindow = {
|
||||
let w = NSWindow(contentViewController: vc)
|
||||
|
||||
w.styleMask.remove(.fullScreen)
|
||||
w.styleMask.remove(.resizable)
|
||||
w.styleMask.remove(.miniaturizable)
|
||||
|
||||
w.level = .floating
|
||||
|
||||
return w
|
||||
}()
|
||||
|
||||
lokinet?.logAppender = vc.log
|
||||
|
||||
if LOG_WINDOW_CONTROLLER.window == nil {
|
||||
LOG_WINDOW_CONTROLLER.window = window
|
||||
}
|
||||
|
||||
LOG_WINDOW_CONTROLLER.showWindow(window)
|
||||
}
|
||||
}
|
||||
|
||||
@objc
|
||||
func runLokinet(sender: NSMenuItem) {
|
||||
if lokinet == nil {
|
||||
lokinet = LokinetRunner(interface: Preferences.interfaceName, path: Preferences.lokinetPath)
|
||||
lokinet?.logAppender = appender
|
||||
lokinet?.start()
|
||||
}
|
||||
|
||||
sender.isEnabled = false;
|
||||
|
||||
if let menu = statusBarItem.menu, let stop = menu.item(withTitle: "Stop") {
|
||||
stop.isEnabled = true
|
||||
}
|
||||
}
|
||||
|
||||
@objc
|
||||
func stopLokinet(_ sender: NSMenuItem) {
|
||||
lokinet?.stop()
|
||||
lokinet = nil
|
||||
|
||||
sender.isEnabled = false;
|
||||
|
||||
if let menu = statusBarItem.menu, let start = menu.item(withTitle: "Run") {
|
||||
start.isEnabled = true
|
||||
}
|
||||
}
|
||||
|
||||
@objc
|
||||
func terminate(_ sender: NSMenuItem) {
|
||||
NSApp.terminate(sender)
|
||||
}
|
||||
}
|
@ -1,58 +0,0 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"size" : "16x16",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"size" : "16x16",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"size" : "32x32",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"size" : "32x32",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"size" : "128x128",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"size" : "128x128",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"size" : "256x256",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"size" : "256x256",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"size" : "512x512",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"size" : "512x512",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
@ -1,238 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--Application-->
|
||||
<scene sceneID="JPo-4y-FX3">
|
||||
<objects>
|
||||
<application id="hnw-xV-0zn" sceneMemberID="viewController">
|
||||
<menu key="mainMenu" title="Main Menu" systemMenu="main" id="AYu-sK-qS6">
|
||||
<items>
|
||||
<menuItem title="lokinet" id="1Xt-HY-uBw">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="lokinet" systemMenu="apple" id="uQy-DD-JDr">
|
||||
<items>
|
||||
<menuItem title="About lokinet" id="5kV-Vb-QxS">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="orderFrontStandardAboutPanel:" target="Ady-hI-5gd" id="Exp-CZ-Vem"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="VOq-y0-SEH"/>
|
||||
<menuItem title="Preferences…" keyEquivalent="," id="BOF-NM-1cW">
|
||||
<connections>
|
||||
<segue destination="I5t-b2-LMF" kind="show" id="DG8-M4-AZh"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="wFC-TO-SCJ"/>
|
||||
<menuItem title="Services" id="NMo-om-nkz">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="Services" systemMenu="services" id="hz9-B4-Xy5"/>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="4je-JR-u6R"/>
|
||||
<menuItem title="Hide lokinet" keyEquivalent="h" id="Olw-nP-bQN">
|
||||
<connections>
|
||||
<action selector="hide:" target="Ady-hI-5gd" id="PnN-Uc-m68"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Hide Others" keyEquivalent="h" id="Vdr-fp-XzO">
|
||||
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
|
||||
<connections>
|
||||
<action selector="hideOtherApplications:" target="Ady-hI-5gd" id="VT4-aY-XCT"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Show All" id="Kd2-mp-pUS">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="unhideAllApplications:" target="Ady-hI-5gd" id="Dhg-Le-xox"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="kCx-OE-vgT"/>
|
||||
<menuItem title="Quit lokinet" keyEquivalent="q" id="4sb-4s-VLi">
|
||||
<connections>
|
||||
<action selector="terminate:" target="Ady-hI-5gd" id="Te7-pn-YzF"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem title="View" id="H8h-7b-M4v">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="View" id="HyV-fh-RgO">
|
||||
<items>
|
||||
<menuItem title="Enter Full Screen" keyEquivalent="f" id="4J7-dP-txa">
|
||||
<modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
|
||||
<connections>
|
||||
<action selector="toggleFullScreen:" target="Ady-hI-5gd" id="dU3-MA-1Rq"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem title="Window" id="aUF-d1-5bR">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="Window" systemMenu="window" id="Td7-aD-5lo">
|
||||
<items>
|
||||
<menuItem title="Minimize" keyEquivalent="m" id="OY7-WF-poV">
|
||||
<connections>
|
||||
<action selector="performMiniaturize:" target="Ady-hI-5gd" id="VwT-WD-YPe"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Zoom" id="R4o-n2-Eq4">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="performZoom:" target="Ady-hI-5gd" id="DIl-cC-cCs"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="eu3-7i-yIM"/>
|
||||
<menuItem title="Bring All to Front" id="LE2-aR-0XJ">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="arrangeInFront:" target="Ady-hI-5gd" id="DRN-fu-gQh"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem title="Help" id="wpr-3q-Mcd">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="Help" systemMenu="help" id="F2S-fz-NVQ">
|
||||
<items>
|
||||
<menuItem title="lokinet Help" keyEquivalent="?" id="FKE-Sm-Kum">
|
||||
<connections>
|
||||
<action selector="showHelp:" target="Ady-hI-5gd" id="y7X-2Q-9no"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="Voe-Tx-rLC" id="PrD-fu-P6m"/>
|
||||
</connections>
|
||||
</application>
|
||||
<customObject id="Voe-Tx-rLC" customClass="AppDelegate" customModule="lokinet" customModuleProvider="target"/>
|
||||
<customObject id="YLy-65-1bz" customClass="NSFontManager"/>
|
||||
<customObject id="Ady-hI-5gd" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="123" y="-201"/>
|
||||
</scene>
|
||||
<!--lokinet-->
|
||||
<scene sceneID="KyO-ZK-znh">
|
||||
<objects>
|
||||
<viewController title="lokinet" storyboardIdentifier="LokinetLogController" id="Bom-14-aTM" customClass="LokinetLogController" customModule="lokinet" sceneMemberID="viewController">
|
||||
<view key="view" id="vMu-xc-OqT">
|
||||
<rect key="frame" x="0.0" y="0.0" width="450" height="300"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<scrollView fixedFrame="YES" borderType="none" horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" hasHorizontalScroller="NO" translatesAutoresizingMaskIntoConstraints="NO" id="pjx-TF-AEF">
|
||||
<rect key="frame" x="0.0" y="0.0" width="450" height="300"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<clipView key="contentView" ambiguous="YES" drawsBackground="NO" copiesOnScroll="NO" id="LWK-yZ-W61">
|
||||
<rect key="frame" x="0.0" y="0.0" width="450" height="300"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textView ambiguous="YES" editable="NO" importsGraphics="NO" richText="NO" verticallyResizable="YES" id="Iv9-j0-Ji1" customClass="LokinetLog" customModule="lokinet" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="0.0" width="450" height="300"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="textColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="systemGrayColor" catalog="System" colorSpace="catalog"/>
|
||||
<size key="minSize" width="450" height="300"/>
|
||||
<size key="maxSize" width="498" height="10000000"/>
|
||||
<color key="insertionPointColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
</textView>
|
||||
</subviews>
|
||||
</clipView>
|
||||
<scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="2H0-hl-PSz">
|
||||
<rect key="frame" x="-100" y="-100" width="240" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
<scroller key="verticalScroller" wantsLayer="YES" verticalHuggingPriority="750" horizontal="NO" id="0vF-TP-EGb">
|
||||
<rect key="frame" x="434" y="0.0" width="16" height="300"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
</scrollView>
|
||||
</subviews>
|
||||
</view>
|
||||
</viewController>
|
||||
<customObject id="4KZ-DK-tjg" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
</scene>
|
||||
<!--Preferences-->
|
||||
<scene sceneID="DWQ-D6-m8l">
|
||||
<objects>
|
||||
<viewController title="Preferences" id="I5t-b2-LMF" customClass="PrefsViewController" customModule="lokinet" sceneMemberID="viewController">
|
||||
<view key="view" id="KZz-Tr-Jig">
|
||||
<rect key="frame" x="0.0" y="0.0" width="450" height="300"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<box fixedFrame="YES" title="Options" translatesAutoresizingMaskIntoConstraints="NO" id="Mbe-YJ-q14">
|
||||
<rect key="frame" x="-3" y="-4" width="456" height="304"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<view key="contentView" id="tbu-Pf-Pbq">
|
||||
<rect key="frame" x="3" y="3" width="450" height="286"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<box verticalHuggingPriority="750" fixedFrame="YES" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="keI-0V-OFa">
|
||||
<rect key="frame" x="0.0" y="226" width="450" height="5"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
</box>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="NuC-QX-tDB">
|
||||
<rect key="frame" x="18" y="269" width="414" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" title="Lokinet Path" id="J0z-ru-wAJ">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Faq-SR-HLK">
|
||||
<rect key="frame" x="18" y="201" width="414" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" title="Network Interface" id="EAM-Cf-Ujw">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<comboBox identifier="lokinetInterface" verticalHuggingPriority="750" fixedFrame="YES" tag="2" translatesAutoresizingMaskIntoConstraints="NO" id="S5U-xg-7pX">
|
||||
<rect key="frame" x="20" y="169" width="413" height="26"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<comboBoxCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" numberOfVisibleItems="7" id="f1D-GI-o0g">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</comboBoxCell>
|
||||
<connections>
|
||||
<action selector="comboAction:" target="I5t-b2-LMF" id="Bji-8L-xCR"/>
|
||||
</connections>
|
||||
</comboBox>
|
||||
<textField verticalHuggingPriority="750" fixedFrame="YES" tag="1" translatesAutoresizingMaskIntoConstraints="NO" id="esl-Vn-YX2">
|
||||
<rect key="frame" x="20" y="239" width="410" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" id="WCQ-qF-r0o">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
</view>
|
||||
</box>
|
||||
</subviews>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="interfaceEntry" destination="S5U-xg-7pX" id="OaG-RT-28K"/>
|
||||
<outlet property="pathEntry" destination="WCQ-qF-r0o" id="aVf-iB-WbW"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<customObject id="ncN-3l-Dyn" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="845" y="227"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
</document>
|
@ -1,79 +0,0 @@
|
||||
//
|
||||
// DNSManager.swift
|
||||
// lokinet
|
||||
//
|
||||
// Copyright © 2019 Loki. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
func split(str: String?) -> [String] {
|
||||
let res = str?.components(separatedBy: NSCharacterSet.whitespacesAndNewlines) ?? []
|
||||
return res.filter({!$0.isEmpty})
|
||||
}
|
||||
|
||||
class DNSManager {
|
||||
static let netSetup = URL(fileURLWithPath: "/usr/sbin/networksetup")
|
||||
|
||||
let interface: String
|
||||
var oldDNSSettings: [String] = []
|
||||
|
||||
func getOldSettings() -> [String] {
|
||||
let netprocess = Process()
|
||||
netprocess.executableURL = DNSManager.netSetup
|
||||
netprocess.arguments = ["-getdnsservers", interface]
|
||||
|
||||
do {
|
||||
let pipe = Pipe()
|
||||
netprocess.standardOutput = pipe
|
||||
try netprocess.run()
|
||||
let data = pipe.fileHandleForReading.readDataToEndOfFile()
|
||||
let asStr = String(data: data, encoding: .ascii)
|
||||
|
||||
if asStr?.contains("There aren't any DNS Servers") ?? true {
|
||||
return []
|
||||
} else {
|
||||
return split(str: asStr).filter({$0 != "127.0.0.1"})
|
||||
}
|
||||
} catch {
|
||||
return []
|
||||
}
|
||||
}
|
||||
|
||||
func setNewSettings() throws {
|
||||
self.oldDNSSettings = getOldSettings()
|
||||
print("Overriding DNS Settings of \(self.oldDNSSettings)")
|
||||
|
||||
let netprocess = Process()
|
||||
netprocess.executableURL = DNSManager.netSetup
|
||||
|
||||
netprocess.arguments = ["-setdnsservers", self.interface, "127.0.0.1"]
|
||||
|
||||
try netprocess.run()
|
||||
}
|
||||
|
||||
func restoreOldSettings() {
|
||||
let netprocess = Process()
|
||||
netprocess.executableURL = DNSManager.netSetup
|
||||
|
||||
netprocess.arguments = ["-setdnsservers", self.interface]
|
||||
|
||||
if oldDNSSettings.isEmpty {
|
||||
// networkmsetup uses "networksetup -setdnsservers <interface> Empty" to reset
|
||||
netprocess.arguments?.append("Empty")
|
||||
} else {
|
||||
netprocess.arguments?.append(contentsOf: oldDNSSettings)
|
||||
}
|
||||
|
||||
do {
|
||||
try netprocess.run()
|
||||
print("Resetting DNS Settings to \(self.oldDNSSettings)")
|
||||
} catch {
|
||||
// do nothing
|
||||
}
|
||||
}
|
||||
|
||||
init(interface: String) {
|
||||
self.interface = interface
|
||||
}
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string>public.app-category.productivity</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Copyright © 2019 Loki. All rights reserved.</string>
|
||||
<key>NSMainStoryboardFile</key>
|
||||
<string>Main</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>NSApplication</string>
|
||||
</dict>
|
||||
</plist>
|
@ -1,37 +0,0 @@
|
||||
//
|
||||
// LokinetLog.swift
|
||||
// lokinet
|
||||
//
|
||||
// Copyright © 2019 Loki. All rights reserved.
|
||||
//
|
||||
|
||||
import AppKit
|
||||
|
||||
class LokinetLogController : NSViewController {
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
}
|
||||
|
||||
var log: LokinetLog {
|
||||
get {
|
||||
// this is walking down the UI stack.
|
||||
// TODO: work out a better way of doing this
|
||||
let scroll = self.view.subviews[0] as! NSScrollView
|
||||
let clip = scroll.subviews[0] as! NSClipView
|
||||
let log = clip.subviews[0] as! LokinetLog
|
||||
return log
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protocol Appendable {
|
||||
func append(string: String)
|
||||
}
|
||||
|
||||
final class LokinetLog : NSTextView, Appendable {
|
||||
func append(string: String) {
|
||||
self.textStorage?.append(NSAttributedString(string: string + "\n"))
|
||||
self.scrollToEndOfDocument(nil)
|
||||
}
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
//
|
||||
// LokinetRunner.swift
|
||||
// lokinet
|
||||
//
|
||||
// Copyright © 2019 Loki. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import Cocoa
|
||||
|
||||
class LokinetRunner {
|
||||
let dnsManager: DNSManager
|
||||
let lokinetPath: URL
|
||||
var process = Process()
|
||||
|
||||
var logAppender: Appendable? = nil
|
||||
|
||||
init(interface: String, path: String) {
|
||||
self.lokinetPath = URL(fileURLWithPath: path)
|
||||
self.dnsManager = DNSManager(interface: interface)
|
||||
}
|
||||
|
||||
func start() {
|
||||
process.executableURL = self.lokinetPath
|
||||
process.arguments = ["--colour=false"]
|
||||
let outputPipe = Pipe()
|
||||
process.standardOutput = outputPipe
|
||||
process.standardError = outputPipe
|
||||
|
||||
do {
|
||||
try self.dnsManager.setNewSettings()
|
||||
try process.run()
|
||||
} catch {
|
||||
NSApp.presentError(error)
|
||||
}
|
||||
|
||||
guard let reader = StreamReader(fh: outputPipe.fileHandleForReading) else {
|
||||
let err = NSError(domain: "lokinet", code: 0, userInfo: ["msg": "Failed to read from filehandle"])
|
||||
NSApp.presentError(err)
|
||||
return
|
||||
}
|
||||
|
||||
DispatchQueue.global(qos: .background).async {
|
||||
for line in reader {
|
||||
print(line)
|
||||
DispatchQueue.main.async {
|
||||
self.logAppender?.append(string: line)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func stop() {
|
||||
if process.isRunning {
|
||||
process.terminate()
|
||||
process.waitUntilExit()
|
||||
}
|
||||
dnsManager.restoreOldSettings()
|
||||
}
|
||||
}
|
@ -1,73 +0,0 @@
|
||||
//
|
||||
// StreamReader.swift
|
||||
// lokinet
|
||||
//
|
||||
// Copyright © 2019 Loki. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
final class StreamReader {
|
||||
let encoding : String.Encoding
|
||||
let chunkSize : Int
|
||||
|
||||
var fileHandle : FileHandle!
|
||||
var buffer : Data
|
||||
let delimData : Data
|
||||
var atEof : Bool = false
|
||||
|
||||
init?(fh: FileHandle, delimiter: String = "\n", encoding : String.Encoding = .utf8, chunkSize : Int = 4096) {
|
||||
self.chunkSize = chunkSize
|
||||
self.encoding = encoding
|
||||
self.fileHandle = fh
|
||||
|
||||
guard let delimData = delimiter.data(using: encoding) else {
|
||||
return nil
|
||||
}
|
||||
self.delimData = delimData
|
||||
self.buffer = Data(capacity: chunkSize)
|
||||
}
|
||||
|
||||
/// Return next line, or nil on EOF.
|
||||
func nextLine() -> String? {
|
||||
precondition(fileHandle != nil, "Attempt to read from closed file")
|
||||
|
||||
if atEof {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Read data chunks from file until a line delimiter is found:
|
||||
while !atEof {
|
||||
if let range = buffer.range(of: delimData) {
|
||||
// Convert complete line (excluding the delimiter) to a string:
|
||||
let line = String(data: buffer.subdata(in: 0..<range.lowerBound), encoding: encoding)
|
||||
// Remove line (and the delimiter) from the buffer:
|
||||
buffer.removeSubrange(0..<range.upperBound)
|
||||
return line
|
||||
}
|
||||
let tmpData = fileHandle.readData(ofLength: chunkSize)
|
||||
if tmpData.count > 0 {
|
||||
buffer.append(tmpData)
|
||||
} else {
|
||||
// EOF or read error.
|
||||
atEof = true
|
||||
if buffer.count > 0 {
|
||||
// Buffer contains last line in file (not terminated by delimiter).
|
||||
let line = String(data: buffer as Data, encoding: encoding)
|
||||
buffer.count = 0
|
||||
return line
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
extension StreamReader : Sequence {
|
||||
func makeIterator() -> AnyIterator<String> {
|
||||
return AnyIterator {
|
||||
return self.nextLine()
|
||||
}
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.application-groups</key>
|
||||
<array/>
|
||||
</dict>
|
||||
</plist>
|
@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
</dict>
|
||||
</plist>
|
@ -1,33 +0,0 @@
|
||||
//
|
||||
// lokinetTests.swift
|
||||
// lokinetTests
|
||||
//
|
||||
// Copyright © 2019 Loki. All rights reserved.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
@testable import lokinet
|
||||
|
||||
class lokinetTests: XCTestCase {
|
||||
|
||||
override func setUp() {
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
func testExample() {
|
||||
// This is an example of a functional test case.
|
||||
// Use XCTAssert and related functions to verify your tests produce the correct results.
|
||||
}
|
||||
|
||||
func testPerformanceExample() {
|
||||
// This is an example of a performance test case.
|
||||
self.measure {
|
||||
// Put the code you want to measure the time of here.
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
</dict>
|
||||
</plist>
|
@ -1,338 +0,0 @@
|
||||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
##
|
||||
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
||||
|
||||
# User-specific files
|
||||
*.rsuser
|
||||
*.suo
|
||||
*.user
|
||||
*.userosscache
|
||||
*.sln.docstates
|
||||
|
||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||
*.userprefs
|
||||
|
||||
# Build results
|
||||
[Dd]ebug/
|
||||
[Dd]ebugPublic/
|
||||
[Rr]elease/
|
||||
[Rr]eleases/
|
||||
x64/
|
||||
x86/
|
||||
[Aa][Rr][Mm]/
|
||||
[Aa][Rr][Mm]64/
|
||||
bld/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
[Ll]og/
|
||||
|
||||
# Visual Studio 2015/2017 cache/options directory
|
||||
.vs/
|
||||
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||
#wwwroot/
|
||||
|
||||
# Visual Studio 2017 auto generated files
|
||||
Generated\ Files/
|
||||
|
||||
# MSTest test Results
|
||||
[Tt]est[Rr]esult*/
|
||||
[Bb]uild[Ll]og.*
|
||||
|
||||
# NUNIT
|
||||
*.VisualState.xml
|
||||
TestResult.xml
|
||||
|
||||
# Build Results of an ATL Project
|
||||
[Dd]ebugPS/
|
||||
[Rr]eleasePS/
|
||||
dlldata.c
|
||||
|
||||
# Benchmark Results
|
||||
BenchmarkDotNet.Artifacts/
|
||||
|
||||
# .NET Core
|
||||
project.lock.json
|
||||
project.fragment.lock.json
|
||||
artifacts/
|
||||
|
||||
# StyleCop
|
||||
StyleCopReport.xml
|
||||
|
||||
# Files built by Visual Studio
|
||||
*_i.c
|
||||
*_p.c
|
||||
*_h.h
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.iobj
|
||||
*.pch
|
||||
*.pdb
|
||||
*.ipdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
*.sbr
|
||||
*.tlb
|
||||
*.tli
|
||||
*.tlh
|
||||
*.tmp
|
||||
*.tmp_proj
|
||||
*_wpftmp.csproj
|
||||
*.log
|
||||
*.vspscc
|
||||
*.vssscc
|
||||
.builds
|
||||
*.pidb
|
||||
*.svclog
|
||||
*.scc
|
||||
|
||||
# Chutzpah Test files
|
||||
_Chutzpah*
|
||||
|
||||
# Visual C++ cache files
|
||||
ipch/
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opendb
|
||||
*.opensdf
|
||||
*.sdf
|
||||
*.cachefile
|
||||
*.VC.db
|
||||
*.VC.VC.opendb
|
||||
|
||||
# Visual Studio profiler
|
||||
*.psess
|
||||
*.vsp
|
||||
*.vspx
|
||||
*.sap
|
||||
|
||||
# Visual Studio Trace Files
|
||||
*.e2e
|
||||
|
||||
# TFS 2012 Local Workspace
|
||||
$tf/
|
||||
|
||||
# Guidance Automation Toolkit
|
||||
*.gpState
|
||||
|
||||
# ReSharper is a .NET coding add-in
|
||||
_ReSharper*/
|
||||
*.[Rr]e[Ss]harper
|
||||
*.DotSettings.user
|
||||
|
||||
# JustCode is a .NET coding add-in
|
||||
.JustCode
|
||||
|
||||
# TeamCity is a build add-in
|
||||
_TeamCity*
|
||||
|
||||
# DotCover is a Code Coverage Tool
|
||||
*.dotCover
|
||||
|
||||
# AxoCover is a Code Coverage Tool
|
||||
.axoCover/*
|
||||
!.axoCover/settings.json
|
||||
|
||||
# Visual Studio code coverage results
|
||||
*.coverage
|
||||
*.coveragexml
|
||||
|
||||
# NCrunch
|
||||
_NCrunch_*
|
||||
.*crunch*.local.xml
|
||||
nCrunchTemp_*
|
||||
|
||||
# MightyMoose
|
||||
*.mm.*
|
||||
AutoTest.Net/
|
||||
|
||||
# Web workbench (sass)
|
||||
.sass-cache/
|
||||
|
||||
# Installshield output folder
|
||||
[Ee]xpress/
|
||||
|
||||
# DocProject is a documentation generator add-in
|
||||
DocProject/buildhelp/
|
||||
DocProject/Help/*.HxT
|
||||
DocProject/Help/*.HxC
|
||||
DocProject/Help/*.hhc
|
||||
DocProject/Help/*.hhk
|
||||
DocProject/Help/*.hhp
|
||||
DocProject/Help/Html2
|
||||
DocProject/Help/html
|
||||
|
||||
# Click-Once directory
|
||||
publish/
|
||||
|
||||
# Publish Web Output
|
||||
*.[Pp]ublish.xml
|
||||
*.azurePubxml
|
||||
# Note: Comment the next line if you want to checkin your web deploy settings,
|
||||
# but database connection strings (with potential passwords) will be unencrypted
|
||||
*.pubxml
|
||||
*.publishproj
|
||||
|
||||
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
||||
# checkin your Azure Web App publish settings, but sensitive information contained
|
||||
# in these scripts will be unencrypted
|
||||
PublishScripts/
|
||||
|
||||
# NuGet Packages
|
||||
*.nupkg
|
||||
# The packages folder can be ignored because of Package Restore
|
||||
**/[Pp]ackages/*
|
||||
# except build/, which is used as an MSBuild target.
|
||||
!**/[Pp]ackages/build/
|
||||
# Uncomment if necessary however generally it will be regenerated when needed
|
||||
#!**/[Pp]ackages/repositories.config
|
||||
# NuGet v3's project.json files produces more ignorable files
|
||||
*.nuget.props
|
||||
*.nuget.targets
|
||||
|
||||
# Microsoft Azure Build Output
|
||||
csx/
|
||||
*.build.csdef
|
||||
|
||||
# Microsoft Azure Emulator
|
||||
ecf/
|
||||
rcf/
|
||||
|
||||
# Windows Store app package directories and files
|
||||
AppPackages/
|
||||
BundleArtifacts/
|
||||
Package.StoreAssociation.xml
|
||||
_pkginfo.txt
|
||||
*.appx
|
||||
|
||||
# Visual Studio cache files
|
||||
# files ending in .cache can be ignored
|
||||
*.[Cc]ache
|
||||
# but keep track of directories ending in .cache
|
||||
!*.[Cc]ache/
|
||||
|
||||
# Others
|
||||
ClientBin/
|
||||
~$*
|
||||
*~
|
||||
*.dbmdl
|
||||
*.dbproj.schemaview
|
||||
*.jfm
|
||||
*.pfx
|
||||
*.publishsettings
|
||||
orleans.codegen.cs
|
||||
|
||||
# Including strong name files can present a security risk
|
||||
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
|
||||
#*.snk
|
||||
|
||||
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
||||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
||||
#bower_components/
|
||||
# ASP.NET Core default setup: bower directory is configured as wwwroot/lib/ and bower restore is true
|
||||
**/wwwroot/lib/
|
||||
|
||||
# RIA/Silverlight projects
|
||||
Generated_Code/
|
||||
|
||||
# Backup & report files from converting an old project file
|
||||
# to a newer Visual Studio version. Backup files are not needed,
|
||||
# because we have git ;-)
|
||||
_UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
UpgradeLog*.htm
|
||||
ServiceFabricBackup/
|
||||
*.rptproj.bak
|
||||
|
||||
# SQL Server files
|
||||
*.mdf
|
||||
*.ldf
|
||||
*.ndf
|
||||
|
||||
# Business Intelligence projects
|
||||
*.rdl.data
|
||||
*.bim.layout
|
||||
*.bim_*.settings
|
||||
*.rptproj.rsuser
|
||||
|
||||
# Microsoft Fakes
|
||||
FakesAssemblies/
|
||||
|
||||
# GhostDoc plugin setting file
|
||||
*.GhostDoc.xml
|
||||
|
||||
# Node.js Tools for Visual Studio
|
||||
.ntvs_analysis.dat
|
||||
node_modules/
|
||||
|
||||
# Visual Studio 6 build log
|
||||
*.plg
|
||||
|
||||
# Visual Studio 6 workspace options file
|
||||
*.opt
|
||||
|
||||
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
||||
*.vbw
|
||||
|
||||
# Visual Studio LightSwitch build output
|
||||
**/*.HTMLClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/ModelManifest.xml
|
||||
**/*.Server/GeneratedArtifacts
|
||||
**/*.Server/ModelManifest.xml
|
||||
_Pvt_Extensions
|
||||
|
||||
# Paket dependency manager
|
||||
.paket/paket.exe
|
||||
paket-files/
|
||||
|
||||
# FAKE - F# Make
|
||||
.fake/
|
||||
|
||||
# JetBrains Rider
|
||||
.idea/
|
||||
*.sln.iml
|
||||
|
||||
# CodeRush personal settings
|
||||
.cr/personal
|
||||
|
||||
# Python Tools for Visual Studio (PTVS)
|
||||
__pycache__/
|
||||
*.pyc
|
||||
|
||||
# Cake - Uncomment if you are using it
|
||||
# tools/**
|
||||
# !tools/packages.config
|
||||
|
||||
# Tabs Studio
|
||||
*.tss
|
||||
|
||||
# Telerik's JustMock configuration file
|
||||
*.jmconfig
|
||||
|
||||
# BizTalk build output
|
||||
*.btp.cs
|
||||
*.btm.cs
|
||||
*.odx.cs
|
||||
*.xsd.cs
|
||||
|
||||
# OpenCover UI analysis results
|
||||
OpenCover/
|
||||
|
||||
# Azure Stream Analytics local run output
|
||||
ASALocalRun/
|
||||
|
||||
# MSBuild Binary and Structured Log
|
||||
*.binlog
|
||||
|
||||
# NVidia Nsight GPU debugger configuration file
|
||||
*.nvuser
|
||||
|
||||
# MFractors (Xamarin productivity tool) working folder
|
||||
.mfractor/
|
||||
|
||||
# Local History for Visual Studio
|
||||
.localhistory/
|
@ -1,454 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="logoPictureBox.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
|
||||
<section name="network.loki.lokinet.win32.ui.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
<startup useLegacyV2RuntimeActivationPolicy="false">
|
||||
<!-- for modern PCs without .NET 2.0 -->
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
|
||||
<supportedRuntime version="v2.0.50727"/>
|
||||
</startup>
|
||||
<userSettings>
|
||||
<network.loki.lokinet.win32.ui.Properties.Settings>
|
||||
<setting name="autoScroll" serializeAs="String">
|
||||
<value>True</value>
|
||||
</setting>
|
||||
</network.loki.lokinet.win32.ui.Properties.Settings>
|
||||
</userSettings>
|
||||
</configuration>
|
@ -1,46 +0,0 @@
|
||||
// WARNING: for the love of all that is good and holy
|
||||
// please DO NOT convert this file to UTF-8, much less
|
||||
// UTF-16 - the UNIX port of Roslyn does not understand UTF-16,
|
||||
// and UTF-8 chews up the copyright symbols.
|
||||
// -rick
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("Lokinet for Windows")]
|
||||
[assembly: AssemblyDescription("Lokinet end-user UI")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("Loki Project")]
|
||||
[assembly: AssemblyProduct("Lokinet Launcher")]
|
||||
[assembly: AssemblyCopyright("Copyright ©2018-2020 Loki Project. All rights reserved. See LICENSE for more details.")]
|
||||
[assembly: AssemblyTrademark("Loki, Loki Project, LokiNET are ™ & ©2018-2020 Loki Foundation")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("1cdee73c-29c5-4781-bd74-1eeac6f75a14")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("0.7.0")]
|
||||
[assembly: AssemblyFileVersion("0.7.0")]
|
||||
#if DEBUG
|
||||
[assembly: AssemblyInformationalVersion("0.7.0-dev-{chash:8}")]
|
||||
#else
|
||||
[assembly: AssemblyInformationalVersion("0.7.0 (RELEASE_CODENAME)")]
|
||||
#endif
|
@ -1,117 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
@ -1,9 +0,0 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="network.loki.lokinet.win32.ui.Properties" GeneratedClassName="Settings">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="autoScroll" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
@ -1,279 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="NotificationTrayIcon.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="TrayMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>179, 17</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="NotificationTrayIcon.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAgBAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAABISEgccHBygHBwcmRISEgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvgEkMIjYpvBwcHP8cHBz/HBwcuBQUFAwAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANpdVGEW+bM00fUv/HB0c/xwcHP8cHBz/HBwcyRYW
|
||||
FhUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
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
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAFxcXGBwcHM4cHBz/HBwc/xwdHP81gE3/Rb5s0TynXhsAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRUVDhwcHL0cHBz/HBwc/yI1KMI1j1IPAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAExMTBxwcHKAcHBypFRYWCgAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAA//////////////////w////4H///8A///+AH///AA///gYH//wPA//4E
|
||||
IH/8CBA//BAIP/wAAD/8AAA//AGAP/wBgD/8AAA//AAAP/wQCD/8CBA//gQgf/8DwP//gYH//8AD///g
|
||||
B///8A////gf///8P/////////////////8=
|
||||
</value>
|
||||
</data>
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAgBAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAABISEgccHBygHBwcmRISEgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvgEkMIjYpvBwcHP8cHBz/HBwcuBQUFAwAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANpdVGEW+bM00fUv/HB0c/xwcHP8cHBz/HBwcyRYW
|
||||
FhUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
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
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAFxcXGBwcHM4cHBz/HBwc/xwdHP81gE3/Rb5s0TynXhsAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRUVDhwcHL0cHBz/HBwc/yI1KMI1j1IPAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAExMTBxwcHKAcHBypFRYWCgAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAA//////////////////w////4H///8A///+AH///AA///gYH//wPA//4E
|
||||
IH/8CBA//BAIP/wAAD/8AAA//AGAP/wBgD/8AAA//AAAP/wQCD/8CBA//gQgf/8DwP//gYH//8AD///g
|
||||
B///8A////gf///8P/////////////////8=
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
@ -1,120 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
@ -1,120 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
@ -1,279 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>13, 13</value>
|
||||
</data>
|
||||
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>196, 13</value>
|
||||
</data>
|
||||
<data name="label1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="label1.Text" xml:space="preserve">
|
||||
<value>Enter a URI to a node to bootstrap from:</value>
|
||||
</data>
|
||||
<data name=">>label1.Name" xml:space="preserve">
|
||||
<value>label1</value>
|
||||
</data>
|
||||
<data name=">>label1.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>label1.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>label1.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="uriBox.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Left, Right</value>
|
||||
</data>
|
||||
<data name="uriBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>12, 29</value>
|
||||
</data>
|
||||
<data name="uriBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>520, 20</value>
|
||||
</data>
|
||||
<data name="uriBox.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="uriBox.Text" xml:space="preserve">
|
||||
<value>https://seed.lokinet.org/lokinet.signed</value>
|
||||
</data>
|
||||
<data name=">>uriBox.Name" xml:space="preserve">
|
||||
<value>uriBox</value>
|
||||
</data>
|
||||
<data name=">>uriBox.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>uriBox.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>uriBox.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>12, 52</value>
|
||||
</data>
|
||||
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>347, 13</value>
|
||||
</data>
|
||||
<data name="label2.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="label2.Text" xml:space="preserve">
|
||||
<value>This file is automatically saved as $APPDATA\.lokinet\bootstrap.signed.</value>
|
||||
</data>
|
||||
<data name=">>label2.Name" xml:space="preserve">
|
||||
<value>label2</value>
|
||||
</data>
|
||||
<data name=">>label2.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>label2.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>label2.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="btnDownload.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom</value>
|
||||
</data>
|
||||
<data name="btnDownload.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>196, 75</value>
|
||||
</data>
|
||||
<data name="btnDownload.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>75, 23</value>
|
||||
</data>
|
||||
<data name="btnDownload.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="btnDownload.Text" xml:space="preserve">
|
||||
<value>OK</value>
|
||||
</data>
|
||||
<data name=">>btnDownload.Name" xml:space="preserve">
|
||||
<value>btnDownload</value>
|
||||
</data>
|
||||
<data name=">>btnDownload.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>btnDownload.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>btnDownload.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="btnCancel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom</value>
|
||||
</data>
|
||||
<data name="btnCancel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>278, 75</value>
|
||||
</data>
|
||||
<data name="btnCancel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>75, 23</value>
|
||||
</data>
|
||||
<data name="btnCancel.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="btnCancel.Text" xml:space="preserve">
|
||||
<value>Cancel</value>
|
||||
</data>
|
||||
<data name=">>btnCancel.Name" xml:space="preserve">
|
||||
<value>btnCancel</value>
|
||||
</data>
|
||||
<data name=">>btnCancel.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>btnCancel.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>btnCancel.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>6, 13</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>548, 111</value>
|
||||
</data>
|
||||
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
|
||||
<value>CenterParent</value>
|
||||
</data>
|
||||
<data name="$this.Text" xml:space="preserve">
|
||||
<value>bootstrap from web...</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>dlgBootstrap</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
</root>
|
Binary file not shown.
Before Width: | Height: | Size: 19 KiB |
Binary file not shown.
Before Width: | Height: | Size: 4.2 KiB |
Binary file not shown.
@ -1,4 +0,0 @@
|
||||
REM this requires some kind of cygwin toolset in $PATH
|
||||
REM or just having sed(1) at a minimum
|
||||
set /P RELEASE_NAME=<..\..\..\motto.txt
|
||||
sed -i "s/RELEASE_CODENAME/%RELEASE_NAME%/g" ..\..\Properties\AssemblyInfo.cs
|
@ -1,4 +0,0 @@
|
||||
REM this requires some kind of cygwin toolset in $PATH
|
||||
REM or just having sed(1) at a minimum
|
||||
set /P RELEASE_NAME=<..\..\..\motto.txt
|
||||
sed -i "s/%RELEASE_NAME%/RELEASE_CODENAME/g" ..\..\Properties\AssemblyInfo.cs
|
Loading…
Reference in New Issue