From 592903ee5806daf3826ae0343b621845cab6d047 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 21 Sep 2026 14:29:45 +0200 Subject: [PATCH 01/19] unified: Import MaD models from old swift --- .../codeql/unified/internal/mad/LegacyMaD.qll | 16 + unified/ql/lib/ext/legacy-swift.model.yml | 1185 +++++++++++++++++ unified/ql/lib/qlpack.yml | 2 + 3 files changed, 1203 insertions(+) create mode 100644 unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll create mode 100644 unified/ql/lib/ext/legacy-swift.model.yml diff --git a/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll b/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll new file mode 100644 index 000000000000..9f65c160c06b --- /dev/null +++ b/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll @@ -0,0 +1,16 @@ +private import unified + +extensible predicate legacySourceModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance +); + +extensible predicate legacySinkModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string kind, string provenance +); + +extensible predicate legacySummaryModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string output, string kind, string provenance +); diff --git a/unified/ql/lib/ext/legacy-swift.model.yml b/unified/ql/lib/ext/legacy-swift.model.yml new file mode 100644 index 000000000000..3fadf20af765 --- /dev/null +++ b/unified/ql/lib/ext/legacy-swift.model.yml @@ -0,0 +1,1185 @@ +extensions: + - addsTo: + pack: codeql/unified-all + extensible: legacySourceModel + data: # namespace, type, subtypes, name, signature, ext, output, kind, provenance + - ["", "String", true, "count", "", "", "", "string-length", "manual"] + - ["", "String", true, "init(contentsOf:)", "(URL)", "", "ReturnValue", "remote", "manual"] + - ["", "String", true, "init(contentsOfFile:)", "(String)", "", "ReturnValue", "local", "manual"] + - ["", "String", true, "init(contentsOf:encoding:)", "(URL,String.Encoding)", "", "ReturnValue", "remote", "manual"] + - ["", "String", true, "init(contentsOfFile:encoding:)", "(String,String.Encoding)", "", "ReturnValue", "local", "manual"] + - ["", "String", true, "init(contentsOf:usedEncoding:)", "(URL,String.Encoding)", "", "ReturnValue", "remote", "manual"] + - ["", "String", true, "init(contentsOfFile:usedEncoding:)", "(String,String.Encoding)", "", "ReturnValue", "local", "manual"] + - ["", "", false, "SecKeyCopyExternalRepresentation(_:_:)", "", "", "ReturnValue", "sensitive-password", "manual"] + - ["", "URL", true, "lines", "", "", "", "remote", "manual"] + - ["", "URL", true, "resourceBytes", "", "", "", "remote", "manual"] + - ["", "UITextField", true, "text", "", "", "", "local", "manual"] + - ["", "UITextField", true, "attributedText", "", "", "", "local", "manual"] + - ["", "DataResponse", true, "value", "", "", "", "remote", "manual"] + - ["", "DataResponse", true, "result", "", "", "", "remote", "manual"] + - ["", "DataResponse", true, "data", "", "", "", "remote", "manual"] + - ["", "URL.AsyncBytes", true, "lines", "", "", "", "remote", "manual"] + - ["", "DownloadResponse", true, "value", "", "", "", "remote", "manual"] + - ["", "DownloadResponse", true, "result", "", "", "", "remote", "manual"] + - ["", "DownloadResponse", true, "data", "", "", "", "remote", "manual"] + - ["", "JSContext", true, "globalObject", "", "", "", "remote", "manual"] + - ["", "JSContext", true, "objectForKeyedSubscript(_:)", "", "", "ReturnValue", "remote", "manual"] + - ["", "JSContext", true, "objectAtIndexedSubscript(_:)", "", "", "ReturnValue", "remote", "manual"] + - ["", "UITextInput", true, "text(in:)", "", "", "ReturnValue", "local", "manual"] + - ["", "UITextInput", true, "shouldChangeText(in:replacementText:)", "", "", "Parameter[1]", "local", "manual"] + - ["", "NSData", true, "init(contentsOf:)", "", "", "ReturnValue", "remote", "manual"] + - ["", "NSData", true, "init(contentsOf:options:)", "", "", "ReturnValue", "remote", "manual"] + - ["", "NSString", true, "length", "", "", "", "nsstring-length", "manual"] + - ["", "NSString", true, "init(contentsOf:)", "", "", "ReturnValue", "remote", "manual"] + - ["", "NSString", true, "init(contentsOfFile:)", "", "", "ReturnValue", "local", "manual"] + - ["", "NSString", true, "string(withContentsOf:)", "", "", "ReturnValue", "remote", "manual"] + - ["", "NSString", true, "init(contentsOf:encoding:)", "", "", "ReturnValue", "remote", "manual"] + - ["", "NSString", true, "string(withContentsOfFile:)", "", "", "ReturnValue", "local", "manual"] + - ["", "NSString", true, "init(contentsOfFile:encoding:)", "", "", "ReturnValue", "local", "manual"] + - ["", "NSString", true, "init(contentsOf:usedEncoding:)", "", "", "ReturnValue", "remote", "manual"] + - ["", "NSString", true, "init(contentsOfFile:usedEncoding:)", "", "", "ReturnValue", "local", "manual"] + - ["", "FileManager", true, "contents(atPath:)", "", "", "ReturnValue", "local", "manual"] + - ["", "Data", true, "init(contentsOf:options:)", "", "", "ReturnValue", "remote", "manual"] + - ["", "UISceneDelegate", true, "scene(_:continue:)", "", "", "Parameter[1]", "remote", "manual"] + - ["", "UISceneDelegate", true, "scene(_:didUpdate:)", "", "", "Parameter[1]", "remote", "manual"] + - ["", "UISceneDelegate", true, "scene(_:openURLContexts:)", "", "", "Parameter[1]", "remote", "manual"] + - ["", "UISceneDelegate", true, "scene(_:willConnectTo:options:)", "", "", "Parameter[2]", "remote", "manual"] + - ["", "UIApplicationDelegate", true, "application(_:handleOpen:)", "", "", "Parameter[1]", "remote", "manual"] + - ["", "UIApplicationDelegate", true, "application(_:open:options:)", "", "", "Parameter[1]", "remote", "manual"] + - ["", "UIApplicationDelegate", true, "application(_:open:sourceApplication:annotation:)", "", "", "Parameter[1]", "remote", "manual"] + - ["", "WKScriptMessageHandler", true, "userContentController(_:didReceive:)", "", "", "Parameter[1]", "remote", "manual"] + - ["", "UITextViewDelegate", true, "textView(_:shouldChangeTextIn:replacementText:)", "", "", "Parameter[2]", "local", "manual"] + - ["", "UITextFieldDelegate", true, "textField(_:shouldChangeCharactersIn:replacementString:)", "", "", "Parameter[2]", "local", "manual"] + - ["", "NSMutableString", true, "length", "", "", "", "nsstring-length", "manual"] + - addsTo: + pack: codeql/unified-all + extensible: legacySinkModel + data: # namespace, type, subtypes, name, signature, ext, input, kind, provenance + - ["", "String", true, "index(_:offsetBy:)", "", "", "Argument[0..1]", "string-length", "manual"] + - ["", "String", true, "init(contentsOfFile:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "String", true, "init(contentsOfFile:encoding:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "String", true, "init(contentsOfFile:usedEncoding:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "String", true, "index(_:offsetBy:limitBy:)", "", "", "Argument[0..1]", "string-length", "manual"] + - ["", "String", true, "md5()", "", "", "Argument[-1]", "weak-hash-input-MD5", "manual"] + - ["", "String", true, "sha1()", "", "", "Argument[-1]", "weak-hash-input-SHA1", "manual"] + - ["", "String", true, "sha2(_:)", "", "", "Argument[-1]", "weak-password-hash-input-SHA2", "manual"] + - ["", "String", true, "sha224()", "", "", "Argument[-1]", "weak-password-hash-input-SHA224", "manual"] + - ["", "String", true, "sha256()", "", "", "Argument[-1]", "weak-password-hash-input-SHA256", "manual"] + - ["", "String", true, "sha3(_:)", "", "", "Argument[-1]", "weak-password-hash-input-SHA3", "manual"] + - ["", "String", true, "sha384()", "", "", "Argument[-1]", "weak-password-hash-input-SHA384", "manual"] + - ["", "String", true, "sha512()", "", "", "Argument[-1]", "weak-password-hash-input-SHA512", "manual"] + - ["", "Array", true, "md5()", "", "", "Argument[-1]", "weak-hash-input-MD5", "manual"] + - ["", "Array", true, "sha1()", "", "", "Argument[-1]", "weak-hash-input-SHA1", "manual"] + - ["", "Array", true, "sha2(_:)", "", "", "Argument[-1]", "weak-password-hash-input-SHA2", "manual"] + - ["", "Array", true, "sha224()", "", "", "Argument[-1]", "weak-password-hash-input-SHA224", "manual"] + - ["", "Array", true, "sha256()", "", "", "Argument[-1]", "weak-password-hash-input-SHA256", "manual"] + - ["", "Array", true, "sha3(_:)", "", "", "Argument[-1]", "weak-password-hash-input-SHA3", "manual"] + - ["", "Array", true, "sha384()", "", "", "Argument[-1]", "weak-password-hash-input-SHA384", "manual"] + - ["", "Array", true, "sha512()", "", "", "Argument[-1]", "weak-password-hash-input-SHA512", "manual"] + - ["", "String.Index", true, "init(encodedOffset:)", "", "", "Argument[0]", "string-length", "manual"] + - ["", "Regex", true, "init(_:)", "", "", "Argument[0]", "regex-use", "manual"] + - ["", "Regex", true, "init(_:as:)", "", "", "Argument[0]", "regex-use", "manual"] + - ["", "", false, "assert(_:_:file:line:)", "", "", "Argument[1]", "log-injection", "manual"] + - ["", "", false, "precondition(_:_:file:line:)", "", "", "Argument[1]", "log-injection", "manual"] + - ["", "", false, "assertionFailure(_:file:line:)", "", "", "Argument[0]", "log-injection", "manual"] + - ["", "", false, "preconditionFailure(_:file:line:)", "", "", "Argument[0]", "log-injection", "manual"] + - ["", "", false, "fatalError(_:file:line:)", "", "", "Argument[0]", "log-injection", "manual"] + - ["", "", false, "dump(_:name:indent:maxDepth:maxItems:)", "", "", "Argument[0..1]", "log-injection", "manual"] + - ["", "", false, "print(_:separator:terminator:)", "", "", "Argument[0..2]", "log-injection", "manual"] + - ["", "", false, "debugPrint(_:separator:terminator:)", "", "", "Argument[0..2]", "log-injection", "manual"] + - ["", "", false, "NSMakeRange(_:_:)", "", "", "Argument[0..1]", "nsstring-length", "manual"] + - ["", "", false, "sqlite3_key(_:_:_:)", "", "", "Argument[1]", "encryption-key", "manual"] + - ["", "", false, "sqlite3_key_v2(_:_:_:_:)", "", "", "Argument[2]", "encryption-key", "manual"] + - ["", "", false, "sqlite3_rekey(_:_:_:)", "", "", "Argument[1]", "encryption-key", "manual"] + - ["", "", false, "sqlite3_rekey_v2(_:_:_:_:)", "", "", "Argument[2]", "encryption-key", "manual"] + - ["", "", false, "NSLog(_:_:)", "", "", "Argument[0..1]", "log-injection", "manual"] + - ["", "", false, "NSLogv(_:_:)", "", "", "Argument[0..1]", "log-injection", "manual"] + - ["", "", false, "os_log(_:)", "", "", "Argument[0]", "log-injection", "manual"] + - ["", "", false, "os_log(_:dso:log:_:_:)", "", "", "Argument[0,4]", "log-injection", "manual"] + - ["", "", false, "os_log(_:dso:log:type:_:)", "", "", "Argument[0,4]", "log-injection", "manual"] + - ["", "", false, "os_log(_:log:_:)", "", "", "Argument[2]", "log-injection", "manual"] + - ["", "", false, "print(_:separator:terminator:toStream:)", "", "", "Argument[0..2]", "log-injection", "manual"] + - ["", "", false, "vfprintf(_:_:_:)", "", "", "Argument[1..2]", "log-injection", "manual"] + - ["", "", false, "sqlite3_bind_blob(_:_:_:_:_:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "", false, "sqlite3_bind_blob64(_:_:_:_:_:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "", false, "sqlite3_bind_double(_:_:_:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "", false, "sqlite3_bind_int(_:_:_:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "", false, "sqlite3_bind_int64(_:_:_:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "", false, "sqlite3_bind_pointer(_:_:_:_:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "", false, "sqlite3_bind_text(_:_:_:_:_:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "", false, "sqlite3_bind_text16(_:_:_:_:_:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "", false, "sqlite3_bind_text64(_:_:_:_:_:_:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "", false, "sqlite3_bind_value(_:_:_:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "", false, "sqlite3_exec(_:_:_:_:_:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "", false, "sqlite3_prepare(_:_:_:_:_:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "", false, "sqlite3_prepare16(_:_:_:_:_:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "", false, "sqlite3_prepare16_v2(_:_:_:_:_:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "", false, "sqlite3_prepare16_v3(_:_:_:_:_:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "", false, "sqlite3_prepare_v2(_:_:_:_:_:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "", false, "sqlite3_prepare_v3(_:_:_:_:_:_:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "", false, "sqlite3_database_file_object(_:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "", false, "sqlite3_filename_database(_:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "", false, "sqlite3_filename_journal(_:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "", false, "sqlite3_filename_wal(_:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "", false, "sqlite3_free_filename(_:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "", false, "sqlite3_open(_:_:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "", false, "sqlite3_open16(_:_:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "", false, "sqlite3_open_v2(_:_:_:_:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "NSData", true, "init(contentsOf:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "NSData", true, "init(contentsOfFile:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "NSData", true, "init(contentsOf:options:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "NSData", true, "dataWithContentsOfMappedFile(_:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "NSData", true, "init(contentsOfFile:options:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "NSData", true, "init(contentsOfMappedFile:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "NSData", true, "write(to:options:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "NSData", true, "write(to:atomically:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "NSData", true, "write(toFile:atomically:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "NSData", true, "write(toFile:options:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "NSString", true, "character(at:)", "", "", "Argument[0]", "nsstring-length", "manual"] + - ["", "NSString", true, "init(contentsOfFile:encoding:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "NSString", true, "init(contentsOfFile:usedEncoding:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "NSString", true, "substring(from:)", "", "", "Argument[0]", "nsstring-length", "manual"] + - ["", "NSString", true, "substring(to:)", "", "", "Argument[0]", "nsstring-length", "manual"] + - ["", "NSString", true, "write(to:atomically:encoding:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "NSString", true, "write(toFile:atomically:encoding:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "FileManager", true, "contents(atPath:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "FileManager", true, "unzipItem(at:to:skipCRC32:progress:pathEncoding:)", "", "", "Argument[0]", "unsafe-unpack", "manual"] + - ["", "FileManager", true, "attributesOfItem(atPath:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "FileManager", true, "changeCurrentDirectoryPath(_:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "FileManager", true, "changeFileAttributes(_:atPath:)", "", "", "Argument[1]", "path-injection", "manual"] + - ["", "FileManager", true, "contentsEqual(atPath:andPath:)", "", "", "Argument[0..1]", "path-injection", "manual"] + - ["", "FileManager", true, "contentsOfDirectory(at:includingPropertiesForKeys:options:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "FileManager", true, "contentsOfDirectory(atPath:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "FileManager", true, "copyItem(at:to:)", "", "", "Argument[0..1]", "path-injection", "manual"] + - ["", "FileManager", true, "copyItem(atPath:toPath:)", "", "", "Argument[0..1]", "path-injection", "manual"] + - ["", "FileManager", true, "createDirectory(at:withIntermediateDirectories:attributes:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "FileManager", true, "createDirectory(atPath:attributes:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "FileManager", true, "createDirectory(atPath:withIntermediateDirectories:attributes:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "FileManager", true, "createFile(atPath:contents:attributes:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "FileManager", true, "createSymbolicLink(at:withDestinationURL:)", "", "", "Argument[0..1]", "path-injection", "manual"] + - ["", "FileManager", true, "createSymbolicLink(atPath:pathContent:)", "", "", "Argument[0..1]", "path-injection", "manual"] + - ["", "FileManager", true, "createSymbolicLink(atPath:withDestinationPath:)", "", "", "Argument[0..1]", "path-injection", "manual"] + - ["", "FileManager", true, "destinationOfSymbolicLink(atPath:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "FileManager", true, "directoryContents(atPath:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "FileManager", true, "enumerator(at:includingPropertiesForKeys:options:errorHandler:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "FileManager", true, "enumerator(atPath:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "FileManager", true, "fileAttributes(atPath:traverseLink:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "FileManager", true, "fileExists(atPath:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "FileManager", true, "fileExists(atPath:isDirectory:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "FileManager", true, "linkItem(at:to:)", "", "", "Argument[0..1]", "path-injection", "manual"] + - ["", "FileManager", true, "linkItem(atPath:toPath:)", "", "", "Argument[0..1]", "path-injection", "manual"] + - ["", "FileManager", true, "moveItem(at:to:)", "", "", "Argument[0..1]", "path-injection", "manual"] + - ["", "FileManager", true, "moveItem(atPath:toPath:)", "", "", "Argument[0..1]", "path-injection", "manual"] + - ["", "FileManager", true, "pathContentOfSymbolicLink(atPath:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "FileManager", true, "removeItem(at:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "FileManager", true, "removeItem(atPath:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "FileManager", true, "replaceItem(at:withItemAt:backupItemName:options:resultingItemURL:)", "", "", "Argument[0..1]", "path-injection", "manual"] + - ["", "FileManager", true, "replaceItemAt(_:withItemAt:backupItemName:options:)", "", "", "Argument[0..1]", "path-injection", "manual"] + - ["", "FileManager", true, "replaceItemAtURL(originalItemURL:withItemAtURL:backupItemName:options:)", "", "", "Argument[0..1]", "path-injection", "manual"] + - ["", "FileManager", true, "setAttributes(_:ofItemAtPath:)", "", "", "Argument[1]", "path-injection", "manual"] + - ["", "FileManager", true, "subpaths(atPath:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "FileManager", true, "subpathsOfDirectory(atPath:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "FileManager", true, "trashItem(at:resultingItemURL:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "FileManager", true, "unmountVolume(at:options:completionHandler:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "Data", true, "init(contentsOf:options:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "Data", true, "md5()", "", "", "Argument[-1]", "weak-hash-input-MD5", "manual"] + - ["", "Data", true, "sha1()", "", "", "Argument[-1]", "weak-hash-input-SHA1", "manual"] + - ["", "Data", true, "sha2(_:)", "", "", "Argument[-1]", "weak-password-hash-input-SHA2", "manual"] + - ["", "Data", true, "sha224()", "", "", "Argument[-1]", "weak-password-hash-input-SHA224", "manual"] + - ["", "Data", true, "sha256()", "", "", "Argument[-1]", "weak-password-hash-input-SHA256", "manual"] + - ["", "Data", true, "sha3(_:)", "", "", "Argument[-1]", "weak-password-hash-input-SHA3", "manual"] + - ["", "Data", true, "sha384()", "", "", "Argument[-1]", "weak-password-hash-input-SHA384", "manual"] + - ["", "Data", true, "sha512()", "", "", "Argument[-1]", "weak-password-hash-input-SHA512", "manual"] + - ["", "Data", true, "write(to:options:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "NSMutableString", true, "insert(_:at:)", "", "", "Argument[1]", "nsstring-length", "manual"] + - ["", "NSMutableString", true, "character(at:)", "", "", "Argument[0]", "nsstring-length", "manual"] + - ["", "NSMutableString", true, "substring(from:)", "", "", "Argument[0]", "nsstring-length", "manual"] + - ["", "NSMutableString", true, "substring(to:)", "", "", "Argument[0]", "nsstring-length", "manual"] + - ["", "AES", true, "init(key:blockMode:)", "", "", "Argument[1]", "encryption-block-mode", "manual"] + - ["", "AES", true, "init(key:blockMode:padding:)", "", "", "Argument[1]", "encryption-block-mode", "manual"] + - ["", "NSPredicate", true, "init(format:_:)", "", "", "Argument[0]", "predicate-injection", "manual"] + - ["", "NSPredicate", true, "init(format:arguments:)", "", "", "Argument[0]", "predicate-injection", "manual"] + - ["", "NSPredicate", true, "init(format:argumentArray:)", "", "", "Argument[0]", "predicate-injection", "manual"] + - ["", "NSPredicate", true, "init(fromMetadataQueryString:)", "", "", "Argument[0]", "predicate-injection", "manual"] + - ["", "NSRegularExpression", true, "init(pattern:options:)", "", "", "Argument[0]", "regex-use", "manual"] + - ["", "Blowfish", true, "init(key:blockMode:padding:)", "", "", "Argument[1]", "encryption-block-mode", "manual"] + - ["", "URLSessionConfiguration", false, "tlsMaximumSupportedProtocol", "", "", "PostUpdate", "tls-protocol-version", "manual"] + - ["", "URLSessionConfiguration", false, "tlsMinimumSupportedProtocol", "", "", "PostUpdate", "tls-protocol-version", "manual"] + - ["", "URLSessionConfiguration", false, "tlsMaximumSupportedProtocolVersion", "", "", "PostUpdate", "tls-protocol-version", "manual"] + - ["", "URLSessionConfiguration", false, "tlsMinimumSupportedProtocolVersion", "", "", "PostUpdate", "tls-protocol-version", "manual"] + - ["", "NWConnection", true, "send(content:contentContext:isComplete:completion:)", "", "", "Argument[0]", "transmission", "manual"] + - ["", "Zip", true, "unzipFile(_:destination:overwrite:password:progress:fileOutputHandler:)", "", "", "Argument[0]", "unsafe-unpack", "manual"] + - ["", "NSRange", true, "init(location:length:)", "", "", "Argument[0..1]", "nsstring-length", "manual"] + - ["", "NSUserScriptTask", true, "init(url:)", "", "", "Argument[0]", "command-injection", "manual"] + - ["", "NSUserUnixTask", true, "execute(withArguments:completionHandler:)", "", "", "Argument[0]", "command-injection", "manual"] + - ["", "Process", true, "arguments", "", "", "PostUpdate", "command-injection", "manual"] + - ["", "Process", true, "currentDirectory", "", "", "PostUpdate", "command-injection", "manual"] + - ["", "Process", true, "currentDirectoryPath", "", "", "PostUpdate", "command-injection", "manual"] + - ["", "Process", true, "environment", "", "", "PostUpdate", "command-injection", "manual"] + - ["", "Process", true, "executableURL", "", "", "PostUpdate", "command-injection", "manual"] + - ["", "Process", true, "launchPath", "", "", "PostUpdate", "command-injection", "manual"] + - ["", "Process", true, "launchedProcess(launchPath:arguments:)", "", "", "Argument[0..1]", "command-injection", "manual"] + - ["", "Process", true, "run(_:arguments:terminationHandler:)", "", "", "Argument[0..1]", "command-injection", "manual"] + - ["", "Process", true, "standardError", "", "", "PostUpdate", "command-injection", "manual"] + - ["", "Process", true, "standardInput", "", "", "PostUpdate", "command-injection", "manual"] + - ["", "Process", true, "standardOutput", "", "", "PostUpdate", "command-injection", "manual"] + - ["", "Connection", true, "key(_:db:)", "", "", "Argument[0]", "encryption-key", "manual"] + - ["", "Connection", true, "keyAndMigrate(_:db:)", "", "", "Argument[0]", "encryption-key", "manual"] + - ["", "Connection", true, "rekey(_:db:)", "", "", "Argument[0]", "encryption-key", "manual"] + - ["", "Connection", true, "sqlcipher_export(_:key:)", "", "", "Argument[1]", "encryption-key", "manual"] + - ["", "Connection", true, "execute(_:)", "", "", "Argument[0]", "database-store", "manual"] + - ["", "Connection", true, "prepare(_:_:)", "", "", "Argument[0]", "database-store", "manual"] + - ["", "Connection", true, "prepare(_:_:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "Connection", true, "run(_:_:)", "", "", "Argument[0]", "database-store", "manual"] + - ["", "Connection", true, "run(_:_:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "Connection", true, "scalar(_:_:)", "", "", "Argument[0]", "database-store", "manual"] + - ["", "Connection", true, "scalar(_:_:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "Connection", true, "init(_:readonly:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "Database", true, "changePassphrase(_:)", "", "", "Argument[0]", "encryption-key", "manual"] + - ["", "Database", true, "usePassphrase(_:)", "", "", "Argument[0]", "encryption-key", "manual"] + - ["", "Database", true, "allStatements(sql:arguments:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "Database", true, "execute(sql:arguments:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "Database", true, "init(path:description:configuration:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "Realm.Configuration", true, "encryptionKey", "", "", "PostUpdate", "encryption-key", "manual"] + - ["", "Realm.Configuration", true, "init(fileURL:inMemoryIdentifier:syncConfiguration:encryptionKey:readOnly:schemaVersion:migrationBlock:deleteRealmIfMigrationNeeded:shouldCompactOnLaunch:objectTypes:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "Realm.Configuration", true, "init(fileURL:inMemoryIdentifier:syncConfiguration:encryptionKey:readOnly:schemaVersion:migrationBlock:deleteRealmIfMigrationNeeded:shouldCompactOnLaunch:objectTypes:)", "", "", "Argument[3]", "encryption-key", "manual"] + - ["", "Realm.Configuration", true, "init(fileURL:inMemoryIdentifier:syncConfiguration:encryptionKey:readOnly:schemaVersion:migrationBlock:deleteRealmIfMigrationNeeded:shouldCompactOnLaunch:objectTypes:seedFilePath:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "Realm.Configuration", true, "init(fileURL:inMemoryIdentifier:syncConfiguration:encryptionKey:readOnly:schemaVersion:migrationBlock:deleteRealmIfMigrationNeeded:shouldCompactOnLaunch:objectTypes:seedFilePath:)", "", "", "Argument[3]", "encryption-key", "manual"] + - ["", "Realm.Configuration", true, "init(fileURL:inMemoryIdentifier:syncConfiguration:encryptionKey:readOnly:schemaVersion:migrationBlock:deleteRealmIfMigrationNeeded:shouldCompactOnLaunch:objectTypes:seedFilePath:)", "", "", "Argument[10]", "path-injection", "manual"] + - ["", "Realm.Configuration", true, "fileURL", "", "", "PostUpdate", "path-injection", "manual"] + - ["", "Realm.Configuration", true, "seedFilePath", "", "", "PostUpdate", "path-injection", "manual"] + - ["", "Digest", true, "md5(_:)", "", "", "Argument[0]", "weak-hash-input-MD5", "manual"] + - ["", "Digest", true, "sha1(_:)", "", "", "Argument[0]", "weak-hash-input-SHA1", "manual"] + - ["", "Digest", true, "sha2(_:variant:)", "", "", "Argument[0]", "weak-password-hash-input-SHA2", "manual"] + - ["", "Digest", true, "sha224(_:)", "", "", "Argument[0]", "weak-password-hash-input-SHA224", "manual"] + - ["", "Digest", true, "sha256(_:)", "", "", "Argument[0]", "weak-password-hash-input-SHA256", "manual"] + - ["", "Digest", true, "sha3(_:variant:)", "", "", "Argument[0]", "weak-password-hash-input-SHA3", "manual"] + - ["", "Digest", true, "sha384(_:)", "", "", "Argument[0]", "weak-password-hash-input-SHA384", "manual"] + - ["", "Digest", true, "sha512(_:)", "", "", "Argument[0]", "weak-password-hash-input-SHA512", "manual"] + - ["", "Insecure.MD5", true, "hash(bufferPointer:)", "", "", "Argument[0]", "weak-hash-input-MD5", "manual"] + - ["", "Insecure.MD5", true, "hash(data:)", "", "", "Argument[0]", "weak-hash-input-MD5", "manual"] + - ["", "Insecure.MD5", true, "update(bufferPointer:)", "", "", "Argument[0]", "weak-hash-input-MD5", "manual"] + - ["", "Insecure.MD5", true, "update(data:)", "", "", "Argument[0]", "weak-hash-input-MD5", "manual"] + - ["", "Insecure.SHA1", true, "hash(bufferPointer:)", "", "", "Argument[0]", "weak-hash-input-SHA1", "manual"] + - ["", "Insecure.SHA1", true, "hash(data:)", "", "", "Argument[0]", "weak-hash-input-SHA1", "manual"] + - ["", "Insecure.SHA1", true, "update(bufferPointer:)", "", "", "Argument[0]", "weak-hash-input-SHA1", "manual"] + - ["", "Insecure.SHA1", true, "update(data:)", "", "", "Argument[0]", "weak-hash-input-SHA1", "manual"] + - ["", "MD5", true, "callAsFunction(_:)", "", "", "Argument[0]", "weak-hash-input-MD5", "manual"] + - ["", "MD5", true, "calculate(for:)", "", "", "Argument[0]", "weak-hash-input-MD5", "manual"] + - ["", "MD5", true, "process(block:currentHash:)", "", "", "Argument[0]", "weak-hash-input-MD5", "manual"] + - ["", "MD5", true, "update(withBytes:isLast:)", "", "", "Argument[0]", "weak-hash-input-MD5", "manual"] + - ["", "SHA1", true, "callAsFunction(_:)", "", "", "Argument[0]", "weak-hash-input-SHA1", "manual"] + - ["", "SHA1", true, "calculate(for:)", "", "", "Argument[0]", "weak-hash-input-SHA1", "manual"] + - ["", "SHA1", true, "process(block:currentHash:)", "", "", "Argument[0]", "weak-hash-input-SHA1", "manual"] + - ["", "SHA1", true, "update(withBytes:isLast:)", "", "", "Argument[0]", "weak-hash-input-SHA1", "manual"] + - ["", "Logger", true, "warning(_:)", "", "", "Argument[1]", "log-injection", "manual"] + - ["", "Logger", true, "error(_:)", "", "", "Argument[1]", "log-injection", "manual"] + - ["", "Logger", true, "critical(_:)", "", "", "Argument[1]", "log-injection", "manual"] + - ["", "Logger", true, "debug(_:)", "", "", "Argument[1]", "log-injection", "manual"] + - ["", "Logger", true, "fault(_:)", "", "", "Argument[1]", "log-injection", "manual"] + - ["", "Logger", true, "info(_:)", "", "", "Argument[1]", "log-injection", "manual"] + - ["", "Logger", true, "log(_:)", "", "", "Argument[0]", "log-injection", "manual"] + - ["", "Logger", true, "log(level:_:)", "", "", "Argument[1]", "log-injection", "manual"] + - ["", "Logger", true, "notice(_:)", "", "", "Argument[1]", "log-injection", "manual"] + - ["", "Logger", true, "trace(_:)", "", "", "Argument[1]", "log-injection", "manual"] + - ["", "NSException", true, "init(name:reason:userInfo:)", "", "", "Argument[1]", "log-injection", "manual"] + - ["", "NSException", true, "raise(_:format:arguments:)", "", "", "Argument[1..2]", "log-injection", "manual"] + - ["", "SHA256", true, "hash(bufferPointer:)", "", "", "Argument[0]", "weak-password-hash-input-SHA256", "manual"] + - ["", "SHA256", true, "hash(data:)", "", "", "Argument[0]", "weak-password-hash-input-SHA256", "manual"] + - ["", "SHA256", true, "update(bufferPointer:)", "", "", "Argument[0]", "weak-password-hash-input-SHA256", "manual"] + - ["", "SHA256", true, "update(data:)", "", "", "Argument[0]", "weak-password-hash-input-SHA256", "manual"] + - ["", "SHA2", true, "callAsFunction(_:)", "", "", "Argument[0]", "weak-password-hash-input-SHA2", "manual"] + - ["", "SHA2", true, "calculate(for:)", "", "", "Argument[0]", "weak-password-hash-input-SHA2", "manual"] + - ["", "SHA2", true, "update(withBytes:isLast:)", "", "", "Argument[0]", "weak-password-hash-input-SHA2", "manual"] + - ["", "SHA2", true, "process32(block:currentHash:)", "", "", "Argument[0]", "weak-password-hash-input-SHA2", "manual"] + - ["", "SHA2", true, "process64(block:currentHash:)", "", "", "Argument[0]", "weak-password-hash-input-SHA2", "manual"] + - ["", "SHA384", true, "hash(bufferPointer:)", "", "", "Argument[0]", "weak-password-hash-input-SHA384", "manual"] + - ["", "SHA384", true, "hash(data:)", "", "", "Argument[0]", "weak-password-hash-input-SHA384", "manual"] + - ["", "SHA384", true, "update(bufferPointer:)", "", "", "Argument[0]", "weak-password-hash-input-SHA384", "manual"] + - ["", "SHA384", true, "update(data:)", "", "", "Argument[0]", "weak-password-hash-input-SHA384", "manual"] + - ["", "SHA3", true, "callAsFunction(_:)", "", "", "Argument[0]", "weak-password-hash-input-SHA2", "manual"] + - ["", "SHA3", true, "calculate(for:)", "", "", "Argument[0]", "weak-password-hash-input-SHA2", "manual"] + - ["", "SHA3", true, "process(block:currentHash:)", "", "", "Argument[0]", "weak-password-hash-input-SHA2", "manual"] + - ["", "SHA3", true, "update(withBytes:isLast:)", "", "", "Argument[0]", "weak-password-hash-input-SHA2", "manual"] + - ["", "SHA512", true, "hash(bufferPointer:)", "", "", "Argument[0]", "weak-password-hash-input-SHA512", "manual"] + - ["", "SHA512", true, "hash(data:)", "", "", "Argument[0]", "weak-password-hash-input-SHA512", "manual"] + - ["", "SHA512", true, "update(bufferPointer:)", "", "", "Argument[0]", "weak-password-hash-input-SHA512", "manual"] + - ["", "SHA512", true, "update(data:)", "", "", "Argument[0]", "weak-password-hash-input-SHA512", "manual"] + - ["", "CommonTableExpression", true, "init(recursive:named:columns:sql:arguments:)", "", "", "Argument[4]", "database-store", "manual"] + - ["", "DatabaseValueConvertible", true, "fetchAll(_:sql:arguments:adapter:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "DatabaseValueConvertible", true, "fetchCursor(_:sql:arguments:adapter:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "DatabaseValueConvertible", true, "fetchOne(_:sql:arguments:adapter:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "DatabaseValueConvertible", true, "fetchSet(_:sql:arguments:adapter:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "FetchableRecord", true, "fetchAll(_:sql:arguments:adapter:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "FetchableRecord", true, "fetchCursor(_:sql:arguments:adapter:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "FetchableRecord", true, "fetchOne(_:sql:arguments:adapter:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "FetchableRecord", true, "fetchSet(_:sql:arguments:adapter:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "FetchableRecord", true, "fetchAll(_:arguments:adapter:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "FetchableRecord", true, "fetchCursor(_:arguments:adapter:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "FetchableRecord", true, "fetchOne(_:arguments:adapter:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "FetchableRecord", true, "fetchSet(_:arguments:adapter:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "QueryType", true, "insert(_:)", "", "", "Argument[0]", "database-store", "manual"] + - ["", "QueryType", true, "update(_:)", "", "", "Argument[0]", "database-store", "manual"] + - ["", "QueryType", true, "insert(_:_:)", "", "", "Argument[0..1]", "database-store", "manual"] + - ["", "QueryType", true, "insert(or:_:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "QueryType", true, "insertMany(_:)", "", "", "Argument[0]", "database-store", "manual"] + - ["", "QueryType", true, "insertMany(or:_:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "QueryType", true, "update(_:_:)", "", "", "Argument[0..1]", "database-store", "manual"] + - ["", "QueryType", true, "update(or:_:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "QueryType", true, "upsert(_:onConflictOf:)", "", "", "Argument[0]", "database-store", "manual"] + - ["", "QueryType", true, "upsert(_:onConflictOf:setValues:)", "", "", "Argument[0]", "database-store", "manual"] + - ["", "QueryType", true, "upsert(_:onConflictOf:setValues:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "Row", true, "fetchAll(_:sql:arguments:adapter:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "Row", true, "fetchCursor(_:sql:arguments:adapter:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "Row", true, "fetchOne(_:sql:arguments:adapter:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "Row", true, "fetchSet(_:sql:arguments:adapter:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "SQL", true, "append(sql:arguments:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "SQL", true, "init(sql:arguments:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "SQLRequest", true, "init(sql:arguments:adapter:cached:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "SQLStatementCursor", true, "init(database:sql:arguments:prepFlags:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "Statement", true, "init(_:_:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "Statement", true, "scalar(_:)", "", "", "Argument[0]", "database-store", "manual"] + - ["", "Statement", true, "bind(_:)", "", "", "Argument[0]", "database-store", "manual"] + - ["", "Statement", true, "execute(arguments:)", "", "", "Argument[0]", "database-store", "manual"] + - ["", "Statement", true, "run(_:)", "", "", "Argument[0]", "database-store", "manual"] + - ["", "Statement", true, "setArguments(_:)", "", "", "Argument[0]", "database-store", "manual"] + - ["", "TableRecord", true, "filter(sql:arguments:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "TableRecord", true, "order(sql:arguments:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "TableRecord", true, "select(sql:arguments:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "TableRecord", true, "select(sql:arguments:as:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "ArchiveByteStream", true, "fileStream(fd:automaticClose:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "ArchiveByteStream", true, "fileStream(path:mode:options:permissions:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "ArchiveByteStream", true, "withFileStream(fd:automaticClose:_:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "ArchiveByteStream", true, "withFileStream(path:mode:options:permissions:_:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "Bundle", true, "init(url:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "Bundle", true, "init(path:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "DatabasePool", true, "init(path:configuration:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "DatabaseQueue", true, "init(path:configuration:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "DatabaseSnapshotPool", true, "init(path:configuration:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "NIOFileHandle", true, "init(path:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "NIOFileHandle", true, "init(descriptor:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "NIOFileHandle", true, "init(path:mode:flags:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "NSKeyedUnarchiver", true, "unarchiveObject(withFile:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "SerializedDatabase", true, "init(path:configuration:defaultLabel:purpose:)", "", "", "Argument[0]", "path-injection", "manual"] + - addsTo: + pack: codeql/unified-all + extensible: legacySummaryModel + data: # namespace, type, subtypes, name, signature, ext, input, output, kind, provenance + - ["", "UnsafeMutableRawPointer", true, "init(_:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "UnsafeMutableRawPointer", true, "init(_:)", "", "", "Argument[0].OptionalSome.CollectionElement", "ReturnValue.OptionalSome.CollectionElement", "value", "manual"] + - ["", "UnsafeMutableRawPointer", true, "init(mutating:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "UnsafeMutableRawPointer", true, "init(mutating:)", "", "", "Argument[0].OptionalSome.CollectionElement", "ReturnValue.OptionalSome.CollectionElement", "value", "manual"] + - ["", "UnsafeMutableRawPointer", true, "storeBytes(of:toByteOffset:as:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[-1].CollectionElement", "Argument[2].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[2].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "UnsafeMutableRawPointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[2].Parameter[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "loadUnaligned(fromByteOffset:as:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "load(fromByteOffset:as:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "assumingMemoryBound(to:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "bindMemory(to:capacity:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "alignedDown(toMultipleOf:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "alignedUp(toMultipleOf:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "alignedDown(for:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "alignedUp(for:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "moveInitializeMemory(as:from:count:)", "", "", "Argument[1].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "moveInitializeMemory(as:from:count:)", "", "", "Argument[1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:from:count:)", "", "", "Argument[1].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:from:count:)", "", "", "Argument[1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:repeating:count:)", "", "", "Argument[1]", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:repeating:count:)", "", "", "Argument[1]", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:to:)", "", "", "Argument[1]", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:to:)", "", "", "Argument[1]", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:from:)", "", "", "Argument[1].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:from:)", "", "", "Argument[1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "copyBytes(from:count:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "copyMemory(from:count:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:at:count:to:)", "", "", "Argument[3]", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:at:count:to:)", "", "", "Argument[3]", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsignedInteger", true, "init(exactly:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "value", "manual"] + - ["", "UnsignedInteger", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "FixedWidthInteger", true, "init(littleEndian:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "FixedWidthInteger", true, "init(bigEndian:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "FixedWidthInteger", true, "dividingFullWidth(_:)", "", "", "Argument[-1]", "ReturnValue.TupleElement[0,1]", "taint", "manual"] + - ["", "FixedWidthInteger", true, "dividingFullWidth(_:)", "", "", "Argument[1].TupleElement[0,1]", "ReturnValue.TupleElement[0,1]", "taint", "manual"] + - ["", "FixedWidthInteger", true, "multipliedFullWidth(by:)", "", "", "Argument[-1..0]", "ReturnValue.TupleElement[0,1]", "taint", "manual"] + - ["", "FixedWidthInteger", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "FixedWidthInteger", true, "remainderReportingOverflow(dividingBy:)", "", "", "Argument[-1..0]", "ReturnValue.TupleElement[0]", "taint", "manual"] + - ["", "FixedWidthInteger", true, "dividedReportingOverflow(by:)", "", "", "Argument[-1..0]", "ReturnValue.TupleElement[0]", "taint", "manual"] + - ["", "FixedWidthInteger", true, "multipliedReportingOverflow(by:)", "", "", "Argument[-1..0]", "ReturnValue.TupleElement[0]", "taint", "manual"] + - ["", "FixedWidthInteger", true, "subtractingReportingOverflow(_:)", "", "", "Argument[-1..0]", "ReturnValue.TupleElement[0]", "taint", "manual"] + - ["", "FixedWidthInteger", true, "addingReportingOverflow(_:)", "", "", "Argument[-1..0]", "ReturnValue.TupleElement[0]", "taint", "manual"] + - ["", "FixedWidthInteger", true, "init(bitPattern:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "FixedWidthInteger", true, "init(clamping:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "FixedWidthInteger", true, "init(truncatingIfNeeded:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "FixedWidthInteger", true, "init(_:radix:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "FixedWidthInteger", true, "init(truncating:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "Numeric", true, "init(exactly:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "value", "manual"] + - ["", "Numeric", true, "init(bitPattern:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "Numeric", true, "init(truncating:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "BinaryInteger", true, "quotientAndRemainder(dividingBy:)", "", "", "Argument[-1..0]", "ReturnValue.TupleElement[0,1]", "taint", "manual"] + - ["", "BinaryInteger", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "BinaryInteger", true, "init(clamping:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "BinaryInteger", true, "init(truncatingIfNeeded:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "BinaryInteger", true, "advanced(by:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "BinaryInteger", true, "distance(to:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "BinaryInteger", true, "formatted()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "BinaryInteger", true, "formatted(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "BinaryInteger", true, "init(_:format:lenient:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "BinaryInteger", true, "init(_:strategy:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "withContiguousStorageIfAvailable(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Sequence", true, "withContiguousStorageIfAvailable(_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "value", "manual"] + - ["", "Sequence", true, "withContiguousStorageIfAvailable(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue.OptionalSome", "value", "manual"] + - ["", "Sequence", true, "makeIterator()", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "suffix(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "suffix(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "dropLast(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "dropLast(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "split(maxSplits:omittingEmptySubsequences:whereSeparator:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "split(maxSplits:omittingEmptySubsequences:whereSeparator:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "prefix(while:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "prefix(while:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "prefix(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "prefix(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "drop(while:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "drop(while:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "dropFirst(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "dropFirst(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "split(separator:maxSplits:omittingEmptySubsequences:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "split(separator:maxSplits:omittingEmptySubsequences:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "shuffled()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "shuffled()", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "shuffled(using:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "shuffled(using:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "forEach(_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0]", "value", "manual"] + - ["", "Sequence", true, "joined()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "joined()", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "joined()", "", "", "Argument[-1].CollectionElement.CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "joined(separator:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "joined(separator:)", "", "", "Argument[-1].CollectionElement.CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "joined(separator:)", "", "", "Argument[0..-1]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "reversed()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "reversed()", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "first(where:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "value", "manual"] + - ["", "Sequence", true, "enumerated()", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement.TupleElement[1]", "value", "manual"] + - ["", "Sequence", true, "max(by:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "Sequence", true, "min(by:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "Sequence", true, "max()", "", "", "Argument[-1].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "Sequence", true, "min()", "", "", "Argument[-1].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "Sequence", true, "sorted()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "sorted()", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "sorted(by:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "sorted(by:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "formatted()", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeBufferPointer", true, "init(_:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "UnsafeBufferPointer", true, "init(start:count:)", "", "", "Argument[0].OptionalSome.CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[-1].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "UnsafeBufferPointer", true, "init(rebasing:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "UnsafePointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[-1].CollectionElement", "Argument[2].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "UnsafePointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[2].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "init(_:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "init(_:)", "", "", "Argument[0].OptionalSome.CollectionElement", "ReturnValue.OptionalSome.CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "init(mutating:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "init(mutating:)", "", "", "Argument[0].OptionalSome.CollectionElement", "ReturnValue.OptionalSome.CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[-1].CollectionElement", "Argument[2].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutablePointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[2].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[2].Parameter[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutablePointer", true, "initialize(repeating:count:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "initialize(to:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "move()", "", "", "Argument[-1].CollectionElement", "ReturnValue", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "assign(repeating:count:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "update(repeating:count:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "assign(from:count:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "update(from:count:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "moveInitialize(from:count:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "initialize(from:count:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "moveUpdate(from:count:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "moveAssign(from:count:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "initialize(from:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "initialize(to:count:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "init(start:count:)", "", "", "Argument[0].OptionalSome.CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "init(mutating:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "update(repeating:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[-1].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "moveElement(from:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "initializeElement(at:to:)", "", "", "Argument[1]", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "moveUpdate(fromContentsOf:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "moveInitialize(fromContentsOf:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "update(fromContentsOf:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "update(from:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "update(from:)", "", "", "Argument[0].CollectionElement", "ReturnValue.TupleElement[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "initialize(fromContentsOf:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "initialize(from:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "initialize(from:)", "", "", "Argument[0].CollectionElement", "ReturnValue.TupleElement[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "initialize(repeating:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "init(rebasing:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "assign(repeating:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "ContiguousArray", true, "withUnsafeMutableBufferPointer(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "ContiguousArray", true, "withUnsafeMutableBufferPointer(_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "value", "manual"] + - ["", "ContiguousArray", true, "withUnsafeMutableBufferPointer(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "ContiguousArray", true, "withUnsafeMutableBufferPointer(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "ContiguousArray", true, "withUnsafeBufferPointer(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "ContiguousArray", true, "withUnsafeBufferPointer(_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "value", "manual"] + - ["", "ContiguousArray", true, "withUnsafeBufferPointer(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "ContiguousArray", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "ContiguousArray", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "ContiguousArray", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "ContiguousArray", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "Collection", true, "makeIterator()", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Collection", true, "removeFirst()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "suffix(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "suffix(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Collection", true, "dropLast(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "dropLast(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Collection", true, "randomElement()", "", "", "Argument[-1].CollectionElement", "ReturnValue.OptionalSome", "value", "manual"] + - ["", "Collection", true, "randomElement(using:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.OptionalSome", "value", "manual"] + - ["", "Collection", true, "popFirst()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "split(maxSplits:omittingEmptySubsequences:whereSeparator:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "prefix(through:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "prefix(through:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Collection", true, "suffix(from:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "prefix(upTo:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "prefix(upTo:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Collection", true, "prefix(while:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "prefix(while:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Collection", true, "prefix(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "prefix(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Collection", true, "dropFirst(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "dropFirst(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Collection", true, "split(separator:maxSplits:omittingEmptySubsequences:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "flatMap(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "flatMap(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Collection", true, "trimmingPrefix(while:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "trimmingPrefix(while:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Collection", true, "trimmingPrefix(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "trimmingPrefix(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "UnsafeRawPointer", true, "init(_:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "UnsafeRawPointer", true, "init(_:)", "", "", "Argument[0].OptionalSome.CollectionElement", "ReturnValue.OptionalSome.CollectionElement", "value", "manual"] + - ["", "UnsafeRawPointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[-1].CollectionElement", "Argument[2].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeRawPointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[2].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "UnsafeRawPointer", true, "loadUnaligned(fromByteOffset:as:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeRawPointer", true, "load(fromByteOffset:as:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeRawPointer", true, "assumingMemoryBound(to:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeRawPointer", true, "bindMemory(to:capacity:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeRawPointer", true, "alignedDown(toMultipleOf:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeRawPointer", true, "alignedUp(toMultipleOf:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeRawPointer", true, "alignedDown(for:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeRawPointer", true, "alignedUp(for:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "Slice", true, "init(base:bounds:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Slice", true, "remove(at:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "value", "manual"] + - ["", "Slice", true, "insert(_:at:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "Slice", true, "insert(contentsOf:at:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "Slice", true, "replaceSubrange(_:with:)", "", "", "Argument[1].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "Slice", true, "storeBytes(of:toByteOffset:as:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "update(repeating:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "Slice", true, "loadUnaligned(fromByteOffset:as:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "Slice", true, "load(fromByteOffset:as:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "Slice", true, "assumingMemoryBound(to:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "Slice", true, "withMemoryRebound(to:_:)", "", "", "Argument[-1].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "Slice", true, "bindMemory(to:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "Slice", true, "moveInitializeMemory(as:fromContentsOf:)", "", "", "Argument[1].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "moveInitializeMemory(as:fromContentsOf:)", "", "", "Argument[1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "Slice", true, "initializeMemory(as:fromContentsOf:)", "", "", "Argument[1].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "initializeMemory(as:fromContentsOf:)", "", "", "Argument[1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "Slice", true, "initializeMemory(as:from:)", "", "", "Argument[1].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "initializeMemory(as:from:)", "", "", "Argument[1].CollectionElement", "ReturnValue.TupleElement[0,1].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "initializeMemory(as:repeating:)", "", "", "Argument[1]", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "initializeMemory(as:repeating:)", "", "", "Argument[1]", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "Slice", true, "copyBytes(from:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "moveElement(from:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "value", "manual"] + - ["", "Slice", true, "initializeElement(at:to:)", "", "", "Argument[1]", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "Slice", true, "moveUpdate(fromContentsOf:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "Slice", true, "moveInitialize(fromContentsOf:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "Slice", true, "update(fromContentsOf:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "Slice", true, "update(from:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "Slice", true, "update(from:)", "", "", "Argument[0].CollectionElement", "ReturnValue.TupleElement[0].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "initialize(fromContentsOf:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "initialize(from:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "initialize(from:)", "", "", "Argument[0].CollectionElement", "ReturnValue.TupleElement[0,1].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "initialize(repeating:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "Slice", true, "withContiguousMutableStorageIfAvailable(to:_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "withContiguousMutableStorageIfAvailable(to:_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "withContiguousMutableStorageIfAvailable(to:_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "SignedInteger", true, "init(exactly:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "value", "manual"] + - ["", "SignedInteger", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "BidirectionalCollection", true, "popLast()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "BidirectionalCollection", true, "suffix(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "BidirectionalCollection", true, "suffix(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "BidirectionalCollection", true, "dropLast(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "BidirectionalCollection", true, "dropLast(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "BidirectionalCollection", true, "suffix(from:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "BidirectionalCollection", true, "last(where:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "BidirectionalCollection", true, "joined(separator:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "BidirectionalCollection", true, "joined(separator:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "BidirectionalCollection", true, "joined(separator:)", "", "", "Argument[-1].CollectionElement.CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "BidirectionalCollection", true, "reversed()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "BidirectionalCollection", true, "reversed()", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "String", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(_:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "init(repeating:count:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "insert(contentsOf:at:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["", "String", true, "init(extendedGraphemeClusterLiteral:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(unicodeScalarLiteral:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "encode(to:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["", "String", true, "init(from:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(from:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "randomElement()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "randomElement(using:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "split(maxSplits:omittingEmptySubsequences:whereSeparator:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(stringLiteral:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(stringInterpolation:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "decodeCString(_:as:repairingInvalidCodeUnits:)", "", "", "Argument[0]", "ReturnValue.TupleElement[0]", "taint", "manual"] + - ["", "String", true, "decodeCString(_:as:repairingInvalidCodeUnits:)", "", "", "Argument[0].CollectionElement", "ReturnValue.TupleElement[0]", "taint", "manual"] + - ["", "String", true, "init(validatingUTF8:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "init(validatingUTF8:)", "", "", "Argument[0].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "enumerated()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "max(by:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "min(by:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "max()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "min()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "withUTF8(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "String", true, "withUTF8(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[-1]", "taint", "manual"] + - ["", "String", true, "withUTF8(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "String", true, "init(unsafeUninitializedCapacity:initializingUTF8With:)", "", "", "Argument[1].Parameter[0].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(_:radix:uppercase:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(validating:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "init(describing:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(contentsOf:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(contentsOfFile:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(contentsOf:encoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(contentsOfFile:encoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(contentsOfFile:usedEncoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(platformString:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(platformString:)", "", "", "Argument[0].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "String", true, "withPlatformString(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "String", true, "withPlatformString(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "String", true, "init(bytesNoCopy:length:encoding:freeWhenDone:)", "", "", "Argument[0].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "init(cString:encoding:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "init(cString:encoding:)", "", "", "Argument[0].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "init(data:encoding:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "init(format:_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(format:_:)", "", "", "Argument[1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(format:arguments:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(format:arguments:)", "", "", "Argument[1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(format:locale:_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(format:locale:_:)", "", "", "Argument[2].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(format:locale:arguments:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(format:locale:arguments:)", "", "", "Argument[2].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(utf8String:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "init(utf8String:)", "", "", "Argument[0].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "localizedStringWithFormat(_:_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "localizedStringWithFormat(_:_:)", "", "", "Argument[1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(bytes:encoding:)", "", "", "Argument[0].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "init(contendsOf:usedEncoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(decoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(utf16CodeUnits:count:)", "", "", "Argument[0].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(utf16CodeUnitsNoCopy:count:freeWhenDone:)", "", "", "Argument[0].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(validatingPlatformString:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "init(validatingPlatformString:)", "", "", "Argument[0].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "subscript(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "withMutableCharacters(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0]", "value", "manual"] + - ["", "String", true, "withMutableCharacters(_:)", "", "", "Argument[0].Parameter[0]", "Argument[-1]", "value", "manual"] + - ["", "String", true, "withMutableCharacters(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[-1]", "taint", "manual"] + - ["", "String", true, "withMutableCharacters(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "BinaryFloatingPoint", true, "init(sign:exponentBitPattern:significandBitPattern:)", "", "", "Argument[0..2]", "ReturnValue", "taint", "manual"] + - ["", "BinaryFloatingPoint", true, "formatted()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "BinaryFloatingPoint", true, "formatted(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "BinaryFloatingPoint", true, "init(_:format:lenient:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "BinaryFloatingPoint", true, "init(_:strategy:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "UnsafeRawBufferPointer", true, "init(_:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "UnsafeRawBufferPointer", true, "init(start:count:)", "", "", "Argument[0].OptionalSome.CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeRawBufferPointer", true, "loadUnaligned(fromByteOffset:as:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeRawBufferPointer", true, "load(fromByteOffset:as:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeRawBufferPointer", true, "assumingMemoryBound(to:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeRawBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[-1].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeRawBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "UnsafeRawBufferPointer", true, "bindMemory(to:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeRawBufferPointer", true, "init(rebasing:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Array", true, "withUnsafeMutableBufferPointer(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Array", true, "withUnsafeMutableBufferPointer(_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "value", "manual"] + - ["", "Array", true, "withUnsafeMutableBufferPointer(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "Array", true, "withUnsafeMutableBufferPointer(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "Array", true, "withUnsafeBufferPointer(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Array", true, "withUnsafeBufferPointer(_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "value", "manual"] + - ["", "Array", true, "withUnsafeBufferPointer(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "Array", true, "makeIterator()", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Array", true, "insert(_:at:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "Array", true, "insert(_:at:)", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] + - ["", "Array", true, "init(arrayLiteral:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Array", true, "withUnsafeBytes(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Array", true, "withUnsafeBytes(_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Array", true, "withUnsafeBytes(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "Array", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Array", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Array", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "Array", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "MutableCollection", true, "withContiguousMutableStorageIfAvailable(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "MutableCollection", true, "withContiguousMutableStorageIfAvailable(_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "value", "manual"] + - ["", "MutableCollection", true, "withContiguousMutableStorageIfAvailable(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "MutableCollection", true, "withContiguousMutableStorageIfAvailable(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue.OptionalSome", "value", "manual"] + - ["", "RangeReplaceableCollection", true, "init(_:)", "", "", "Argument[0]", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "RangeReplaceableCollection", true, "init(_:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "RangeReplaceableCollection", true, "append(_:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["", "RangeReplaceableCollection", true, "remove(at:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "RangeReplaceableCollection", true, "insert(_:at:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["", "RangeReplaceableCollection", true, "append(contentsOf:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["", "RangeReplaceableCollection", true, "init(repeating:count:)", "", "", "Argument[0]", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "RangeReplaceableCollection", true, "removeFirst()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "RangeReplaceableCollection", true, "replaceSubrange(_:with:)", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] + - ["", "RangeReplaceableCollection", true, "replaceSubrange(_:with:)", "", "", "Argument[1].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "RangeReplaceableCollection", true, "removeLast()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "IteratorProtocol", true, "next()", "", "", "Argument[-1].CollectionElement", "ReturnValue.OptionalSome", "value", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "init(_:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "init(start:count:)", "", "", "Argument[0].OptionalSome.CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "init(mutating:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "storeBytes(of:toByteOffset:as:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "loadUnaligned(fromByteOffset:as:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "load(fromByteOffset:as:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "assumingMemoryBound(to:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[-1].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "bindMemory(to:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "moveInitializeMemory(as:fromContentsOf:)", "", "", "Argument[1].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "moveInitializeMemory(as:fromContentsOf:)", "", "", "Argument[1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "initializeMemory(as:fromContentsOf:)", "", "", "Argument[1].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "initializeMemory(as:fromContentsOf:)", "", "", "Argument[1].CollectionElement", "ReturnValue.TupleElement[0,1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "initializeMemory(as:from:)", "", "", "Argument[1].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "initializeMemory(as:from:)", "", "", "Argument[1].CollectionElement", "ReturnValue.TupleElement[0,1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "initializeMemory(as:repeating:)", "", "", "Argument[1]", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "initializeMemory(as:repeating:)", "", "", "Argument[1]", "ReturnValue.TupleElement[0,1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "copyBytes(from:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "init(rebasing:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "copyMemory(from:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "LosslessStringConvertible", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "RawRepresentable", true, "init(rawValue:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "Dictionary", true, "makeIterator()", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Dictionary", true, "updateValue(_:forKey:)", "", "", "Argument[0]", "Argument[-1].CollectionElement.TupleElement[1]", "value", "manual"] + - ["", "Dictionary", true, "updateValue(_:forKey:)", "", "", "Argument[1]", "Argument[-1].CollectionElement.TupleElement[0]", "value", "manual"] + - ["", "Dictionary", true, "updateValue(_:forKey:)", "", "", "Argument[-1].CollectionElement.TupleElement[1]", "ReturnValue.OptionalSome", "value", "manual"] + - ["", "Set", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "Set", true, "init(_:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Set", true, "remove(at:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "value", "manual"] + - ["", "Set", true, "removeFirst()", "", "", "Argument[-1].CollectionElement", "ReturnValue", "value", "manual"] + - ["", "Set", true, "filter(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "Set", true, "insert(_:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "Set", true, "insert(_:)", "", "", "Argument[0]", "ReturnValue.TupleElement[1]", "taint", "manual"] + - ["", "Set", true, "intersection(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "Set", true, "subtracting(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "Set", true, "symmetricDifference(_:)", "", "", "Argument[-1..0].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "Set", true, "union(_:)", "", "", "Argument[-1..0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Set", true, "update(with:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "Set", true, "update(with:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "Set", true, "remove(_:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "Set", true, "formSymmetricDifference(_:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "Set", true, "formUnion(_:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "TextOutputStreamable", true, "write(to:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["", "TextOutputStream", true, "write(_:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["", "Substring", true, "withUTF8(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Substring", true, "withUTF8(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[-1]", "taint", "manual"] + - ["", "Substring", true, "withUTF8(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "StringProtocol", true, "withCString(encodedAs:_:)", "", "", "Argument[-1]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "StringProtocol", true, "withCString(encodedAs:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "StringProtocol", true, "withCString(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "StringProtocol", true, "withCString(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "StringProtocol", true, "init(decodingCString:as:)", "", "", "Argument[0].OptionalSome.CollectionElement", "ReturnValue.OptionalSome.TupleElement[0]", "taint", "manual"] + - ["", "StringProtocol", true, "init(cString:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "init(cString:)", "", "", "Argument[0].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "init(decoding:as:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "uppercased()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "lowercased()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "getBytes(_:maxLength:usedLength:encoding:options:range:remaining:)", "", "", "Argument[-1]", "Argument[0].CollectionElement", "taint", "manual"] + - ["", "StringProtocol", true, "getCString(_:maxLength:encoding:)", "", "", "Argument[-1]", "Argument[0].CollectionElement", "taint", "manual"] + - ["", "StringProtocol", true, "appending(_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "addingPercentEscapes(using:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "appendingFormat(_:_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "appendingFormat(_:_:)", "", "", "Argument[1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "applyingTransform(_:reverse:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "cString(using:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "capitalized(with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "completePath(into:caseSensitive:matchesInto:filterTypes:)", "", "", "Argument[-1]", "Argument[0].CollectionElement", "taint", "manual"] + - ["", "StringProtocol", true, "completePath(into:caseSensitive:matchesInto:filterTypes:)", "", "", "Argument[-1]", "Argument[2].CollectionElement.CollectionElement", "taint", "manual"] + - ["", "StringProtocol", true, "components(separatedBy:)", "", "", "Argument[-1]", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "StringProtocol", true, "data(using:allowLossyConversion:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "folding(options:locale:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "lowercased(with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "padding(toLength:withPad:startingAt:)", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "padding(toLength:withPad:startingAt:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "propertyList()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "propertyListFromStringsFileFormat()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "replacingCharacters(in:with:)", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "replacingCharacters(in:with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "replacingOccurrences(of:with:options:range:)", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "replacingOccurrences(of:with:options:range:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "replacingPercentEscapes(using:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "substring(from:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "substring(with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "trimmingCharacters(in:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "uppercased(with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "addingPercentEncoding(withAllowedCharacter:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Strideable", true, "advanced(by:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "Strideable", true, "distance(to:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "rounded(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "maximumMagnitude(_:_:)", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "minimumMagnitude(_:_:)", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "maximum(_:_:)", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "minimum(_:_:)", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "addProduct(_:_:)", "", "", "Argument[-1..1]", "Argument[-1]", "taint", "manual"] + - ["", "FloatingPoint", true, "addingProduct(_:_:)", "", "", "Argument[-1..1]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "squareRoot()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "formTruncatingRemainder(dividingBy:)", "", "", "Argument[-1..0]", "Argument[-1]", "taint", "manual"] + - ["", "FloatingPoint", true, "truncatingRemainder(dividingBy:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "formRemainder(dividingBy:)", "", "", "Argument[-1..0]", "Argument[-1]", "taint", "manual"] + - ["", "FloatingPoint", true, "remainder(dividingBy:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "init(signOf:magnitudeOf:)", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "init(sign:exponent:significand:)", "", "", "Argument[1..2]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "rounded()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "OptionSet", true, "init(rawValue:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "", false, "min(_:_:)", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["", "", false, "min(_:_:_:_:)", "", "", "Argument[0..2]", "ReturnValue", "taint", "manual"] + - ["", "", false, "min(_:_:_:_:)", "", "", "Argument[3].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "", false, "max(_:_:)", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["", "", false, "max(_:_:_:_:)", "", "", "Argument[0..2]", "ReturnValue", "taint", "manual"] + - ["", "", false, "max(_:_:_:_:)", "", "", "Argument[3].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "", false, "unsafeBitCast(_:to:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "", false, "unsafeDowncast(_:to:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "", false, "dump(_:to:name:indent:maxDepth:maxItems:)", "", "", "Argument[0,2]", "Argument[1]", "taint", "manual"] + - ["", "", false, "abs(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "", false, "numericCast(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "", false, "withExtendedLifetime(_:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "", false, "withUnsafeMutablePointer(to:_:)", "", "", "Argument[0]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "", false, "withUnsafeMutablePointer(to:_:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[0]", "value", "manual"] + - ["", "", false, "withUnsafeMutablePointer(to:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "", false, "withUnsafePointer(to:_:)", "", "", "Argument[0]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "", false, "withUnsafePointer(to:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "", false, "swap(_:_:)", "", "", "Argument[0]", "Argument[1]", "value", "manual"] + - ["", "", false, "swap(_:_:)", "", "", "Argument[1]", "Argument[0]", "value", "manual"] + - ["", "", false, "print(_:separator:terminator:to:)", "", "", "Argument[0].CollectionElement", "Argument[3]", "taint", "manual"] + - ["", "", false, "print(_:separator:terminator:to:)", "", "", "Argument[1..2]", "Argument[3]", "taint", "manual"] + - ["", "", false, "debugPrint(_:separator:terminator:to:)", "", "", "Argument[0].CollectionElement", "Argument[3]", "taint", "manual"] + - ["", "", false, "debugPrint(_:separator:terminator:to:)", "", "", "Argument[1..2]", "Argument[3]", "taint", "manual"] + - ["", "", false, "withUnsafeTemporaryAllocation(byteCount:alignment:_:)", "", "", "Argument[2].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "", false, "withUnsafeTemporaryAllocation(of:capacity:_:)", "", "", "Argument[2].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "", false, "withVaList(_:_:)", "", "", "Argument[0]", "Argument[1].Parameter[0]", "value", "manual"] + - ["", "", false, "getVaList(_:)", "", "", "Argument[0].CollectionElement", "ReturnValue", "value", "manual"] + - ["", "", false, "withUnsafeMutableBytes(of:_:)", "", "", "Argument[0]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "", false, "withUnsafeMutableBytes(of:_:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[0]", "taint", "manual"] + - ["", "", false, "withUnsafeMutableBytes(of:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "", false, "withUnsafeBytes(of:_:)", "", "", "Argument[0]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "", false, "withUnsafeBytes(of:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "", false, "<-(_:_:)", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["", "", false, "JSStringRetain(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "", false, "JSStringCreateWithUTF8CString(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "", false, "JSStringCreateWithCharacters(_:_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(_:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "URL", true, "init(fileReferenceLiteralResourceName:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(string:)", "(String)", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "URL", true, "appendingPathExtension(for:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "appendingPathComponent(_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "appendingPathExtension(_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "appendingPathComponent(_:isDirectory:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "appendingPathComponent(_:conformingTo:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "formatted()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "formatted(_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(_:strategy:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "append(component:directoryHint:)", "", "", "Argument[-1..0]", "Argument[-1]", "taint", "manual"] + - ["", "URL", true, "append(components:directoryHint:)", "", "", "Argument[-1..0]", "Argument[-1]", "taint", "manual"] + - ["", "URL", true, "append(path:directoryHint:)", "", "", "Argument[-1..0]", "Argument[-1]", "taint", "manual"] + - ["", "URL", true, "append(queryItems:)", "", "", "Argument[-1..0]", "Argument[-1]", "taint", "manual"] + - ["", "URL", true, "appendPathComponent(_:)", "", "", "Argument[-1..0]", "Argument[-1]", "taint", "manual"] + - ["", "URL", true, "appendPathComponent(_:conformingTo:)", "", "", "Argument[-1..0]", "Argument[-1]", "taint", "manual"] + - ["", "URL", true, "appendPathComponent(_:isDirectory:)", "", "", "Argument[-1..0]", "Argument[-1]", "taint", "manual"] + - ["", "URL", true, "appendPathExtension(_:)", "", "", "Argument[-1..0]", "Argument[-1]", "taint", "manual"] + - ["", "URL", true, "appending(component:directoryHint:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "appending(components:directoryHint:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "appending(path:directoryHint:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "appending(queryItems:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "bookmarkData(options:includingResourceValuesForKeys:relativeTo:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "bookmarkData(options:includingResourceValuesForKeys:relativeTo:)", "", "", "Argument[1].OptionalSome.CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "bookmarkData(options:includingResourceValuesForKeys:relativeTo:)", "", "", "Argument[2].OptionalSome", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "bookmarkData(withContentsOf:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "deletingLastPathComponent()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "deletingPathExtension()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "fragment(percentEncoded:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "homeDirectory(forUser:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "host(percentEncoded:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(_:isDirectory:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "URL", true, "init(dataRepresentation:relativeTo:isAbsolute:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(dataRepresentation:relativeTo:isAbsolute:)", "", "", "Argument[1].OptionalSome", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(filePath:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "URL", true, "init(filePath:directoryHint:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "URL", true, "init(filePath:directoryHint:relativeTo:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(filePath:directoryHint:relativeTo:)", "", "", "Argument[2].OptionalSome", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(filePath:isDirectory:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "URL", true, "init(fileURLWithFileSystemRepresentation:isDirectory:relativeTo:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(fileURLWithFileSystemRepresentation:isDirectory:relativeTo:)", "", "", "Argument[2].OptionalSome", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(fileURLWithPath:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(fileURLWithPath:isDirectory:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(fileURLWithPath:isDirectory:relativeTo:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(fileURLWithPath:isDirectory:relativeTo:)", "", "", "Argument[2].OptionalSome", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(fileURLWithPath:relativeTo:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(fileURLWithPath:relativeTo:)", "", "", "Argument[1].OptionalSome", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(for:in:appropriateFor:create:)", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(for:in:appropriateFor:create:)", "", "", "Argument[2].OptionalSome", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(resolvingAliasFileAt:options:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(resolvingBookmarkData:options:relativeTo:bookmarkDataIsStale:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(resolvingBookmarkData:options:relativeTo:bookmarkDataIsStale:)", "", "", "Argument[2].OptionalSome", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(resource:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(string:encodingInvalidCharacters:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "URL", true, "init(string:relativeTo:)", "(String,URL?)", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "URL", true, "init(string:relativeTo:)", "(String,URL?)", "", "Argument[1].OptionalSome", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "URL", true, "password(percentEncoded:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "path(percentEncoded:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "promisedItemResourceValues(forKeys:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "query(percentEncoded:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "resolvingSymlinksInPath()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "resourceValues(forKeys:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "resourceValues(forKeys:fromBookmarkData:)", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "setResourceValues(_:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["", "URL", true, "setTemporaryResourceValue(_:forKey:)", "", "", "Argument[-1..0]", "Argument[-1]", "taint", "manual"] + - ["", "URL", true, "user(percentEncoded:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "withUnsafeFileSystemRepresentation(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].OptionalSome.CollectionElement", "taint", "manual"] + - ["", "URL", true, "withUnsafeFileSystemRepresentation(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "init(contentsOf:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "init(contentsOfFile:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "init(contentsOf:options:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "init(data:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "init(bytes:length:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "base64EncodedData(options:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "base64EncodedString(options:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "base64Encoding()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "compressed(using:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "dataWithContentsOfMappedFile(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "decompressed(using:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "enumerateBytes(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0]", "taint", "manual"] + - ["", "NSData", true, "getBytes(_:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["", "NSData", true, "getBytes(_:length:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["", "NSData", true, "getBytes(_:range:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["", "NSData", true, "init(base64Encoded:options:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "init(base64Encoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "init(bytesNoCopy:length:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "init(bytesNoCopy:length:deallocator:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "init(bytesNoCopy:length:freeWhenDone:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "init(contentsOfFile:options:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "init(contentsOfMappedFile:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "subdata(with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(coder:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(cString:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "getBytes(_:maxLength:usedLength:encoding:options:range:remaining:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["", "NSString", true, "getCharacters(_:range:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["", "NSString", true, "character(at:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "getCString(_:maxLength:encoding:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["", "NSString", true, "init(string:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "appending(_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(contentsOf:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(contentsOfFile:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "string(withContentsOf:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(contentsOf:encoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "string(withContentsOfFile:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(contentsOfFile:encoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(contentsOf:usedEncoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(contentsOfFile:usedEncoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "appendingPathComponent(_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "appendingPathExtension(_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "appendingPathComponent(_:conformingTo:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "addingPercentEncoding(withAllowedCharacters:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "addingPercentEscapes(using:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "appendingFormat(_:_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "appendingFormat(_:_:)", "", "", "Argument[1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "applyTransform(_:reverse:range:updatedRange:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "applyingTransform(_:reverse:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "cString()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "cString(using:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "capitalized(with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "completePath(into:caseSensitive:matchesInto:filterTypes:)", "", "", "Argument[-1]", "Argument[0].CollectionElement", "taint", "manual"] + - ["", "NSString", true, "completePath(into:caseSensitive:matchesInto:filterTypes:)", "", "", "Argument[-1]", "Argument[2].CollectionElement.CollectionElement", "taint", "manual"] + - ["", "NSString", true, "components(separatedBy:)", "", "", "Argument[-1]", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "NSString", true, "data(using:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "data(using:allowLossyConversion:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "enumerateLines(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0]", "taint", "manual"] + - ["", "NSString", true, "enumerateLinguisticTags(in:scheme:options:orthography:using:)", "", "", "Argument[-1]", "Argument[4].Parameter[0].OptionalSome", "taint", "manual"] + - ["", "NSString", true, "enumerateSubstrings(in:options:using:)", "", "", "Argument[-1]", "Argument[2].Parameter[0].OptionalSome", "taint", "manual"] + - ["", "NSString", true, "enumerateSubstrings(in:options:using:)", "", "", "Argument[2].Parameter[0].OptionalSome", "Argument[-1]", "taint", "manual"] + - ["", "NSString", true, "folding(options:locale:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "getCString(_:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["", "NSString", true, "getCString(_:maxLength:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["", "NSString", true, "getCString(_:maxLength:range:remaining:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["", "NSString", true, "getCharacters(_:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["", "NSString", true, "getFileSystemRepresentation(_:maxLength:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["", "NSString", true, "init(bytes:length:encoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(bytesNoCopy:length:encoding:deallocator:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(bytesNoCopy:length:encoding:freeWhenDone:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(cString:encoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(cString:length:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(cStringNoCopy:length:freeWhenDone:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(characters:length:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(charactersNoCopy:length:dellocator:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(charactersNoCopy:length:freeWhenDone:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(data:encoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(format:_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(format:_:)", "", "", "Argument[1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(format:arguments:)", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(format:locale:_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(format:locale:_:)", "", "", "Argument[2].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(format:locale:arguments:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(format:locale:arguments:)", "", "", "Argument[2]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(utf8String:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "localizedStringWithFormat(_:_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "localizedStringWithFormat(_:_:)", "", "", "Argument[1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "lossyCString()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "lowercased(with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "padding(toLength:withPad:startingAt:)", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "padding(toLength:withPad:startingAt:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "path(withComponents:)", "", "", "Argument[0].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "propertyList()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "propertyListFromStringsFileFormat()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "replacingCharacters(in:with:)", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "replacingCharacters(in:with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "replacingOccurrences(of:with:)", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "replacingOccurrences(of:with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "replacingOccurrences(of:with:options:range:)", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "replacingOccurrences(of:with:options:range:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "replacingPercentEscapes(using:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "string(withCString:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "string(withCString:length:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "stringEncoding(for:encodingOptions:convertedString:usedLossyCompression:)", "", "", "Argument[0]", "Argument[2]", "taint", "manual"] + - ["", "NSString", true, "strings(byAppendingPaths:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "strings(byAppendingPaths:)", "", "", "Argument[0].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "substring(from:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "substring(to:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "substring(with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "trimmingCharacters(in:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "uppercased(with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "variantFittingPresentationWidth(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "append(_:count:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["", "Data", true, "insert(contentsOf:at:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["", "Data", true, "replaceSubrange(_:with:)", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] + - ["", "Data", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Data", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Data", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "Data", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "Data", true, "map(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "shuffled()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "shuffled(using:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "compactMap(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "flatMap(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "reduce(into:_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "sorted()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "sorted(by:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "replace(_:with:maxReplacements:)", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] + - ["", "Data", true, "replacing(_:with:maxReplacements:)", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] + - ["", "Data", true, "replacing(_:with:subrange:maxReplacements:)", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] + - ["", "Data", true, "trimmingPrefix(while:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "trimmingPrefix(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "init(contentsOf:options:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "base64EncodedData(options:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "base64EncodedString(options:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "init(base64Encoded:options:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "init(buffer:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "init(bytes:count:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "init(bytesNoCopy:count:deallocator:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "init(referencing:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "replaceSubrange(_:with:count:)", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] + - ["", "Data", true, "sorted(using:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSObject", true, "copy()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSObject", true, "mutableCopy()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Blob", true, "init(bytes:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "Blob", true, "init(bytes:length:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "Expression", true, "init(_:_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "Expression", true, "init(_:_:)", "", "", "Argument[1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "NSCopying", true, "copy(with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "ExpressionType", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "ExpressionType", true, "replace(_:with:)", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["", "InputStream", true, "init(data:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSMutableData", true, "append(_:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["", "NSMutableData", true, "setData(_:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["", "NSMutableData", true, "append(_:length:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["", "NSMutableData", true, "replaceBytes(in:withBytes:)", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] + - ["", "NSMutableData", true, "replaceBytes(in:withBytes:length:)", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] + - ["", "NSURL", true, "init(string:)", "(String)", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "NSURL", true, "appendingPathExtension(for:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSURL", true, "appendingPathComponent(_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "NSURL", true, "appendingPathExtension(_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "NSURL", true, "appendingPathComponent(_:isDirectory:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "NSURL", true, "appendingPathComponent(_:conformingTo:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "NSMutableCopying", true, "mutableCopy(with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "URLSession", true, "dataTask(with:completionHandler:)", "", "", "Argument[0]", "Argument[1].Parameter[0]", "taint", "manual"] + - ["", "WKUserScript", true, "init(source:injectionTime:forMainFrameOnly:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "WKUserScript", true, "init(source:injectionTime:forMainFrameOnly:in:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "atIndex(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "defineProperty(_:descriptor:)", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] + - ["", "JSValue", true, "forProperty(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(bool:in:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(double:in:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(int32:in:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(object:in:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(point:in:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(range:in:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(rect:in:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(size:in:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(uInt32:in:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "setValue(_:at:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["", "JSValue", true, "setValue(_:forProperty:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["", "JSValue", true, "toArray()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toBool()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toDate()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toDictionary()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toDouble()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toInt32()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toNumber()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toObject()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toObjectOf(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toPoint()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toRange()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toRect()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toSize()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toString()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toUInt32()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "FilePath.Component", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "FilePath.Component", true, "init(platformString:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "FilePath.Component", true, "withPlatformString(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0]", "taint", "manual"] + - ["", "FilePath.Root", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "FilePath.Root", true, "init(platformString:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "FilePath.Root", true, "withPlatformString(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0]", "taint", "manual"] + - ["", "FilePath", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "append(_:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["", "FilePath", true, "init(extendedGraphemeClusterLiteral:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "init(unicodeScalarLiteral:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "encode(to:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["", "FilePath", true, "init(from:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "init(stringLiteral:)", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "withCString(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "FilePath", true, "withCString(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "init(cString:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "push(_:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["", "FilePath", true, "appending(_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "init(platformString:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "withPlatformString(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "FilePath", true, "withPlatformString(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "init(root:_:)", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "init(root:components:)", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "lexicallyNormalized()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "lexicallyResolving(_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "pushing(_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "removingLastComponent()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "removingRoot()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "DataProtocol", true, "copyBytes(to:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["", "DataProtocol", true, "copyBytes(to:count:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["", "DataProtocol", true, "copyBytes(to:from:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["", "ContiguousBytes", true, "withUnsafeBytes(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "ContiguousBytes", true, "withUnsafeBytes(_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "ContiguousBytes", true, "withUnsafeBytes(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "URLResource", true, "init(name:subdirectory:locale:bundle:)", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["", "NSMutableString", true, "append(_:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["", "NSMutableString", true, "insert(_:at:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["", "NSMutableString", true, "appendFormat(_:_:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["", "NSMutableString", true, "appendFormat(_:_:)", "", "", "Argument[1].CollectionElement", "Argument[-1]", "taint", "manual"] + - ["", "NSMutableString", true, "replaceCharacters(in:with:)", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] + - ["", "NSMutableString", true, "replaceOccurrences(of:with:options:range:)", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] + - ["", "NSMutableString", true, "setString(_:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] diff --git a/unified/ql/lib/qlpack.yml b/unified/ql/lib/qlpack.yml index 84261b14adc7..beaa0eeb0666 100644 --- a/unified/ql/lib/qlpack.yml +++ b/unified/ql/lib/qlpack.yml @@ -12,5 +12,7 @@ dependencies: codeql/dataflow: ${workspace} codeql/namebinding: ${workspace} codeql/util: ${workspace} +dataExtensions: + - ext/*.model.yml warnOnImplicitThis: true compileForOverlayEval: true From 04ec328476d92c8aa285914eb48b5481d276b188 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 22 Sep 2026 15:43:12 +0200 Subject: [PATCH 02/19] unified: Use named labels The original models referred to named arguments as positional arguments, based on the declaration order in the target method, and -1 for the receiver. Change this to Argument[name:] for named arguments, and Argument[self] for the receiver. --- unified/ql/lib/ext/legacy-swift.model.yml | 1852 ++++++++++----------- 1 file changed, 926 insertions(+), 926 deletions(-) diff --git a/unified/ql/lib/ext/legacy-swift.model.yml b/unified/ql/lib/ext/legacy-swift.model.yml index 3fadf20af765..9efe5310220d 100644 --- a/unified/ql/lib/ext/legacy-swift.model.yml +++ b/unified/ql/lib/ext/legacy-swift.model.yml @@ -26,7 +26,7 @@ extensions: - ["", "JSContext", true, "objectForKeyedSubscript(_:)", "", "", "ReturnValue", "remote", "manual"] - ["", "JSContext", true, "objectAtIndexedSubscript(_:)", "", "", "ReturnValue", "remote", "manual"] - ["", "UITextInput", true, "text(in:)", "", "", "ReturnValue", "local", "manual"] - - ["", "UITextInput", true, "shouldChangeText(in:replacementText:)", "", "", "Parameter[1]", "local", "manual"] + - ["", "UITextInput", true, "shouldChangeText(in:replacementText:)", "", "", "Parameter[replacementText:]", "local", "manual"] - ["", "NSData", true, "init(contentsOf:)", "", "", "ReturnValue", "remote", "manual"] - ["", "NSData", true, "init(contentsOf:options:)", "", "", "ReturnValue", "remote", "manual"] - ["", "NSString", true, "length", "", "", "", "nsstring-length", "manual"] @@ -40,43 +40,43 @@ extensions: - ["", "NSString", true, "init(contentsOfFile:usedEncoding:)", "", "", "ReturnValue", "local", "manual"] - ["", "FileManager", true, "contents(atPath:)", "", "", "ReturnValue", "local", "manual"] - ["", "Data", true, "init(contentsOf:options:)", "", "", "ReturnValue", "remote", "manual"] - - ["", "UISceneDelegate", true, "scene(_:continue:)", "", "", "Parameter[1]", "remote", "manual"] - - ["", "UISceneDelegate", true, "scene(_:didUpdate:)", "", "", "Parameter[1]", "remote", "manual"] - - ["", "UISceneDelegate", true, "scene(_:openURLContexts:)", "", "", "Parameter[1]", "remote", "manual"] - - ["", "UISceneDelegate", true, "scene(_:willConnectTo:options:)", "", "", "Parameter[2]", "remote", "manual"] - - ["", "UIApplicationDelegate", true, "application(_:handleOpen:)", "", "", "Parameter[1]", "remote", "manual"] - - ["", "UIApplicationDelegate", true, "application(_:open:options:)", "", "", "Parameter[1]", "remote", "manual"] - - ["", "UIApplicationDelegate", true, "application(_:open:sourceApplication:annotation:)", "", "", "Parameter[1]", "remote", "manual"] - - ["", "WKScriptMessageHandler", true, "userContentController(_:didReceive:)", "", "", "Parameter[1]", "remote", "manual"] - - ["", "UITextViewDelegate", true, "textView(_:shouldChangeTextIn:replacementText:)", "", "", "Parameter[2]", "local", "manual"] - - ["", "UITextFieldDelegate", true, "textField(_:shouldChangeCharactersIn:replacementString:)", "", "", "Parameter[2]", "local", "manual"] + - ["", "UISceneDelegate", true, "scene(_:continue:)", "", "", "Parameter[continue:]", "remote", "manual"] + - ["", "UISceneDelegate", true, "scene(_:didUpdate:)", "", "", "Parameter[didUpdate:]", "remote", "manual"] + - ["", "UISceneDelegate", true, "scene(_:openURLContexts:)", "", "", "Parameter[openURLContexts:]", "remote", "manual"] + - ["", "UISceneDelegate", true, "scene(_:willConnectTo:options:)", "", "", "Parameter[options:]", "remote", "manual"] + - ["", "UIApplicationDelegate", true, "application(_:handleOpen:)", "", "", "Parameter[handleOpen:]", "remote", "manual"] + - ["", "UIApplicationDelegate", true, "application(_:open:options:)", "", "", "Parameter[open:]", "remote", "manual"] + - ["", "UIApplicationDelegate", true, "application(_:open:sourceApplication:annotation:)", "", "", "Parameter[open:]", "remote", "manual"] + - ["", "WKScriptMessageHandler", true, "userContentController(_:didReceive:)", "", "", "Parameter[didReceive:]", "remote", "manual"] + - ["", "UITextViewDelegate", true, "textView(_:shouldChangeTextIn:replacementText:)", "", "", "Parameter[replacementText:]", "local", "manual"] + - ["", "UITextFieldDelegate", true, "textField(_:shouldChangeCharactersIn:replacementString:)", "", "", "Parameter[replacementString:]", "local", "manual"] - ["", "NSMutableString", true, "length", "", "", "", "nsstring-length", "manual"] - addsTo: pack: codeql/unified-all extensible: legacySinkModel data: # namespace, type, subtypes, name, signature, ext, input, kind, provenance - - ["", "String", true, "index(_:offsetBy:)", "", "", "Argument[0..1]", "string-length", "manual"] - - ["", "String", true, "init(contentsOfFile:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "String", true, "init(contentsOfFile:encoding:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "String", true, "init(contentsOfFile:usedEncoding:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "String", true, "index(_:offsetBy:limitBy:)", "", "", "Argument[0..1]", "string-length", "manual"] - - ["", "String", true, "md5()", "", "", "Argument[-1]", "weak-hash-input-MD5", "manual"] - - ["", "String", true, "sha1()", "", "", "Argument[-1]", "weak-hash-input-SHA1", "manual"] - - ["", "String", true, "sha2(_:)", "", "", "Argument[-1]", "weak-password-hash-input-SHA2", "manual"] - - ["", "String", true, "sha224()", "", "", "Argument[-1]", "weak-password-hash-input-SHA224", "manual"] - - ["", "String", true, "sha256()", "", "", "Argument[-1]", "weak-password-hash-input-SHA256", "manual"] - - ["", "String", true, "sha3(_:)", "", "", "Argument[-1]", "weak-password-hash-input-SHA3", "manual"] - - ["", "String", true, "sha384()", "", "", "Argument[-1]", "weak-password-hash-input-SHA384", "manual"] - - ["", "String", true, "sha512()", "", "", "Argument[-1]", "weak-password-hash-input-SHA512", "manual"] - - ["", "Array", true, "md5()", "", "", "Argument[-1]", "weak-hash-input-MD5", "manual"] - - ["", "Array", true, "sha1()", "", "", "Argument[-1]", "weak-hash-input-SHA1", "manual"] - - ["", "Array", true, "sha2(_:)", "", "", "Argument[-1]", "weak-password-hash-input-SHA2", "manual"] - - ["", "Array", true, "sha224()", "", "", "Argument[-1]", "weak-password-hash-input-SHA224", "manual"] - - ["", "Array", true, "sha256()", "", "", "Argument[-1]", "weak-password-hash-input-SHA256", "manual"] - - ["", "Array", true, "sha3(_:)", "", "", "Argument[-1]", "weak-password-hash-input-SHA3", "manual"] - - ["", "Array", true, "sha384()", "", "", "Argument[-1]", "weak-password-hash-input-SHA384", "manual"] - - ["", "Array", true, "sha512()", "", "", "Argument[-1]", "weak-password-hash-input-SHA512", "manual"] - - ["", "String.Index", true, "init(encodedOffset:)", "", "", "Argument[0]", "string-length", "manual"] + - ["", "String", true, "index(_:offsetBy:)", "", "", "Argument[0,offsetBy:]", "string-length", "manual"] + - ["", "String", true, "init(contentsOfFile:)", "", "", "Argument[contentsOfFile:]", "path-injection", "manual"] + - ["", "String", true, "init(contentsOfFile:encoding:)", "", "", "Argument[contentsOfFile:]", "path-injection", "manual"] + - ["", "String", true, "init(contentsOfFile:usedEncoding:)", "", "", "Argument[contentsOfFile:]", "path-injection", "manual"] + - ["", "String", true, "index(_:offsetBy:limitBy:)", "", "", "Argument[0,offsetBy:]", "string-length", "manual"] + - ["", "String", true, "md5()", "", "", "Argument[self]", "weak-hash-input-MD5", "manual"] + - ["", "String", true, "sha1()", "", "", "Argument[self]", "weak-hash-input-SHA1", "manual"] + - ["", "String", true, "sha2(_:)", "", "", "Argument[self]", "weak-password-hash-input-SHA2", "manual"] + - ["", "String", true, "sha224()", "", "", "Argument[self]", "weak-password-hash-input-SHA224", "manual"] + - ["", "String", true, "sha256()", "", "", "Argument[self]", "weak-password-hash-input-SHA256", "manual"] + - ["", "String", true, "sha3(_:)", "", "", "Argument[self]", "weak-password-hash-input-SHA3", "manual"] + - ["", "String", true, "sha384()", "", "", "Argument[self]", "weak-password-hash-input-SHA384", "manual"] + - ["", "String", true, "sha512()", "", "", "Argument[self]", "weak-password-hash-input-SHA512", "manual"] + - ["", "Array", true, "md5()", "", "", "Argument[self]", "weak-hash-input-MD5", "manual"] + - ["", "Array", true, "sha1()", "", "", "Argument[self]", "weak-hash-input-SHA1", "manual"] + - ["", "Array", true, "sha2(_:)", "", "", "Argument[self]", "weak-password-hash-input-SHA2", "manual"] + - ["", "Array", true, "sha224()", "", "", "Argument[self]", "weak-password-hash-input-SHA224", "manual"] + - ["", "Array", true, "sha256()", "", "", "Argument[self]", "weak-password-hash-input-SHA256", "manual"] + - ["", "Array", true, "sha3(_:)", "", "", "Argument[self]", "weak-password-hash-input-SHA3", "manual"] + - ["", "Array", true, "sha384()", "", "", "Argument[self]", "weak-password-hash-input-SHA384", "manual"] + - ["", "Array", true, "sha512()", "", "", "Argument[self]", "weak-password-hash-input-SHA512", "manual"] + - ["", "String.Index", true, "init(encodedOffset:)", "", "", "Argument[encodedOffset:]", "string-length", "manual"] - ["", "Regex", true, "init(_:)", "", "", "Argument[0]", "regex-use", "manual"] - ["", "Regex", true, "init(_:as:)", "", "", "Argument[0]", "regex-use", "manual"] - ["", "", false, "assert(_:_:file:line:)", "", "", "Argument[1]", "log-injection", "manual"] @@ -84,22 +84,22 @@ extensions: - ["", "", false, "assertionFailure(_:file:line:)", "", "", "Argument[0]", "log-injection", "manual"] - ["", "", false, "preconditionFailure(_:file:line:)", "", "", "Argument[0]", "log-injection", "manual"] - ["", "", false, "fatalError(_:file:line:)", "", "", "Argument[0]", "log-injection", "manual"] - - ["", "", false, "dump(_:name:indent:maxDepth:maxItems:)", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["", "", false, "print(_:separator:terminator:)", "", "", "Argument[0..2]", "log-injection", "manual"] - - ["", "", false, "debugPrint(_:separator:terminator:)", "", "", "Argument[0..2]", "log-injection", "manual"] - - ["", "", false, "NSMakeRange(_:_:)", "", "", "Argument[0..1]", "nsstring-length", "manual"] + - ["", "", false, "dump(_:name:indent:maxDepth:maxItems:)", "", "", "Argument[0,name:]", "log-injection", "manual"] + - ["", "", false, "print(_:separator:terminator:)", "", "", "Argument[0,separator:,terminator:]", "log-injection", "manual"] + - ["", "", false, "debugPrint(_:separator:terminator:)", "", "", "Argument[0,separator:,terminator:]", "log-injection", "manual"] + - ["", "", false, "NSMakeRange(_:_:)", "", "", "Argument[0,1]", "nsstring-length", "manual"] - ["", "", false, "sqlite3_key(_:_:_:)", "", "", "Argument[1]", "encryption-key", "manual"] - ["", "", false, "sqlite3_key_v2(_:_:_:_:)", "", "", "Argument[2]", "encryption-key", "manual"] - ["", "", false, "sqlite3_rekey(_:_:_:)", "", "", "Argument[1]", "encryption-key", "manual"] - ["", "", false, "sqlite3_rekey_v2(_:_:_:_:)", "", "", "Argument[2]", "encryption-key", "manual"] - - ["", "", false, "NSLog(_:_:)", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["", "", false, "NSLogv(_:_:)", "", "", "Argument[0..1]", "log-injection", "manual"] + - ["", "", false, "NSLog(_:_:)", "", "", "Argument[0,1]", "log-injection", "manual"] + - ["", "", false, "NSLogv(_:_:)", "", "", "Argument[0,1]", "log-injection", "manual"] - ["", "", false, "os_log(_:)", "", "", "Argument[0]", "log-injection", "manual"] - ["", "", false, "os_log(_:dso:log:_:_:)", "", "", "Argument[0,4]", "log-injection", "manual"] - ["", "", false, "os_log(_:dso:log:type:_:)", "", "", "Argument[0,4]", "log-injection", "manual"] - ["", "", false, "os_log(_:log:_:)", "", "", "Argument[2]", "log-injection", "manual"] - - ["", "", false, "print(_:separator:terminator:toStream:)", "", "", "Argument[0..2]", "log-injection", "manual"] - - ["", "", false, "vfprintf(_:_:_:)", "", "", "Argument[1..2]", "log-injection", "manual"] + - ["", "", false, "print(_:separator:terminator:toStream:)", "", "", "Argument[0,separator:,terminator:]", "log-injection", "manual"] + - ["", "", false, "vfprintf(_:_:_:)", "", "", "Argument[1,2]", "log-injection", "manual"] - ["", "", false, "sqlite3_bind_blob(_:_:_:_:_:)", "", "", "Argument[2]", "database-store", "manual"] - ["", "", false, "sqlite3_bind_blob64(_:_:_:_:_:)", "", "", "Argument[2]", "database-store", "manual"] - ["", "", false, "sqlite3_bind_double(_:_:_:)", "", "", "Argument[2]", "database-store", "manual"] @@ -125,108 +125,108 @@ extensions: - ["", "", false, "sqlite3_open(_:_:)", "", "", "Argument[0]", "path-injection", "manual"] - ["", "", false, "sqlite3_open16(_:_:)", "", "", "Argument[0]", "path-injection", "manual"] - ["", "", false, "sqlite3_open_v2(_:_:_:_:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "NSData", true, "init(contentsOf:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "NSData", true, "init(contentsOfFile:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "NSData", true, "init(contentsOf:options:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "NSData", true, "init(contentsOf:)", "", "", "Argument[contentsOf:]", "path-injection", "manual"] + - ["", "NSData", true, "init(contentsOfFile:)", "", "", "Argument[contentsOfFile:]", "path-injection", "manual"] + - ["", "NSData", true, "init(contentsOf:options:)", "", "", "Argument[contentsOf:]", "path-injection", "manual"] - ["", "NSData", true, "dataWithContentsOfMappedFile(_:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "NSData", true, "init(contentsOfFile:options:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "NSData", true, "init(contentsOfMappedFile:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "NSData", true, "write(to:options:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "NSData", true, "write(to:atomically:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "NSData", true, "write(toFile:atomically:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "NSData", true, "write(toFile:options:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "NSString", true, "character(at:)", "", "", "Argument[0]", "nsstring-length", "manual"] - - ["", "NSString", true, "init(contentsOfFile:encoding:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "NSString", true, "init(contentsOfFile:usedEncoding:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "NSString", true, "substring(from:)", "", "", "Argument[0]", "nsstring-length", "manual"] - - ["", "NSString", true, "substring(to:)", "", "", "Argument[0]", "nsstring-length", "manual"] - - ["", "NSString", true, "write(to:atomically:encoding:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "NSString", true, "write(toFile:atomically:encoding:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "FileManager", true, "contents(atPath:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "FileManager", true, "unzipItem(at:to:skipCRC32:progress:pathEncoding:)", "", "", "Argument[0]", "unsafe-unpack", "manual"] - - ["", "FileManager", true, "attributesOfItem(atPath:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "NSData", true, "init(contentsOfFile:options:)", "", "", "Argument[contentsOfFile:]", "path-injection", "manual"] + - ["", "NSData", true, "init(contentsOfMappedFile:)", "", "", "Argument[contentsOfMappedFile:]", "path-injection", "manual"] + - ["", "NSData", true, "write(to:options:)", "", "", "Argument[to:]", "path-injection", "manual"] + - ["", "NSData", true, "write(to:atomically:)", "", "", "Argument[to:]", "path-injection", "manual"] + - ["", "NSData", true, "write(toFile:atomically:)", "", "", "Argument[toFile:]", "path-injection", "manual"] + - ["", "NSData", true, "write(toFile:options:)", "", "", "Argument[toFile:]", "path-injection", "manual"] + - ["", "NSString", true, "character(at:)", "", "", "Argument[at:]", "nsstring-length", "manual"] + - ["", "NSString", true, "init(contentsOfFile:encoding:)", "", "", "Argument[contentsOfFile:]", "path-injection", "manual"] + - ["", "NSString", true, "init(contentsOfFile:usedEncoding:)", "", "", "Argument[contentsOfFile:]", "path-injection", "manual"] + - ["", "NSString", true, "substring(from:)", "", "", "Argument[from:]", "nsstring-length", "manual"] + - ["", "NSString", true, "substring(to:)", "", "", "Argument[to:]", "nsstring-length", "manual"] + - ["", "NSString", true, "write(to:atomically:encoding:)", "", "", "Argument[to:]", "path-injection", "manual"] + - ["", "NSString", true, "write(toFile:atomically:encoding:)", "", "", "Argument[toFile:]", "path-injection", "manual"] + - ["", "FileManager", true, "contents(atPath:)", "", "", "Argument[atPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "unzipItem(at:to:skipCRC32:progress:pathEncoding:)", "", "", "Argument[at:]", "unsafe-unpack", "manual"] + - ["", "FileManager", true, "attributesOfItem(atPath:)", "", "", "Argument[atPath:]", "path-injection", "manual"] - ["", "FileManager", true, "changeCurrentDirectoryPath(_:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "FileManager", true, "changeFileAttributes(_:atPath:)", "", "", "Argument[1]", "path-injection", "manual"] - - ["", "FileManager", true, "contentsEqual(atPath:andPath:)", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["", "FileManager", true, "contentsOfDirectory(at:includingPropertiesForKeys:options:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "FileManager", true, "contentsOfDirectory(atPath:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "FileManager", true, "copyItem(at:to:)", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["", "FileManager", true, "copyItem(atPath:toPath:)", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["", "FileManager", true, "createDirectory(at:withIntermediateDirectories:attributes:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "FileManager", true, "createDirectory(atPath:attributes:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "FileManager", true, "createDirectory(atPath:withIntermediateDirectories:attributes:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "FileManager", true, "createFile(atPath:contents:attributes:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "FileManager", true, "createSymbolicLink(at:withDestinationURL:)", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["", "FileManager", true, "createSymbolicLink(atPath:pathContent:)", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["", "FileManager", true, "createSymbolicLink(atPath:withDestinationPath:)", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["", "FileManager", true, "destinationOfSymbolicLink(atPath:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "FileManager", true, "directoryContents(atPath:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "FileManager", true, "enumerator(at:includingPropertiesForKeys:options:errorHandler:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "FileManager", true, "enumerator(atPath:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "FileManager", true, "fileAttributes(atPath:traverseLink:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "FileManager", true, "fileExists(atPath:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "FileManager", true, "fileExists(atPath:isDirectory:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "FileManager", true, "linkItem(at:to:)", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["", "FileManager", true, "linkItem(atPath:toPath:)", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["", "FileManager", true, "moveItem(at:to:)", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["", "FileManager", true, "moveItem(atPath:toPath:)", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["", "FileManager", true, "pathContentOfSymbolicLink(atPath:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "FileManager", true, "removeItem(at:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "FileManager", true, "removeItem(atPath:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "FileManager", true, "replaceItem(at:withItemAt:backupItemName:options:resultingItemURL:)", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["", "FileManager", true, "replaceItemAt(_:withItemAt:backupItemName:options:)", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["", "FileManager", true, "replaceItemAtURL(originalItemURL:withItemAtURL:backupItemName:options:)", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["", "FileManager", true, "setAttributes(_:ofItemAtPath:)", "", "", "Argument[1]", "path-injection", "manual"] - - ["", "FileManager", true, "subpaths(atPath:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "FileManager", true, "subpathsOfDirectory(atPath:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "FileManager", true, "trashItem(at:resultingItemURL:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "FileManager", true, "unmountVolume(at:options:completionHandler:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "Data", true, "init(contentsOf:options:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "Data", true, "md5()", "", "", "Argument[-1]", "weak-hash-input-MD5", "manual"] - - ["", "Data", true, "sha1()", "", "", "Argument[-1]", "weak-hash-input-SHA1", "manual"] - - ["", "Data", true, "sha2(_:)", "", "", "Argument[-1]", "weak-password-hash-input-SHA2", "manual"] - - ["", "Data", true, "sha224()", "", "", "Argument[-1]", "weak-password-hash-input-SHA224", "manual"] - - ["", "Data", true, "sha256()", "", "", "Argument[-1]", "weak-password-hash-input-SHA256", "manual"] - - ["", "Data", true, "sha3(_:)", "", "", "Argument[-1]", "weak-password-hash-input-SHA3", "manual"] - - ["", "Data", true, "sha384()", "", "", "Argument[-1]", "weak-password-hash-input-SHA384", "manual"] - - ["", "Data", true, "sha512()", "", "", "Argument[-1]", "weak-password-hash-input-SHA512", "manual"] - - ["", "Data", true, "write(to:options:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "NSMutableString", true, "insert(_:at:)", "", "", "Argument[1]", "nsstring-length", "manual"] - - ["", "NSMutableString", true, "character(at:)", "", "", "Argument[0]", "nsstring-length", "manual"] - - ["", "NSMutableString", true, "substring(from:)", "", "", "Argument[0]", "nsstring-length", "manual"] - - ["", "NSMutableString", true, "substring(to:)", "", "", "Argument[0]", "nsstring-length", "manual"] - - ["", "AES", true, "init(key:blockMode:)", "", "", "Argument[1]", "encryption-block-mode", "manual"] - - ["", "AES", true, "init(key:blockMode:padding:)", "", "", "Argument[1]", "encryption-block-mode", "manual"] - - ["", "NSPredicate", true, "init(format:_:)", "", "", "Argument[0]", "predicate-injection", "manual"] - - ["", "NSPredicate", true, "init(format:arguments:)", "", "", "Argument[0]", "predicate-injection", "manual"] - - ["", "NSPredicate", true, "init(format:argumentArray:)", "", "", "Argument[0]", "predicate-injection", "manual"] - - ["", "NSPredicate", true, "init(fromMetadataQueryString:)", "", "", "Argument[0]", "predicate-injection", "manual"] - - ["", "NSRegularExpression", true, "init(pattern:options:)", "", "", "Argument[0]", "regex-use", "manual"] - - ["", "Blowfish", true, "init(key:blockMode:padding:)", "", "", "Argument[1]", "encryption-block-mode", "manual"] + - ["", "FileManager", true, "changeFileAttributes(_:atPath:)", "", "", "Argument[atPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "contentsEqual(atPath:andPath:)", "", "", "Argument[atPath:,andPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "contentsOfDirectory(at:includingPropertiesForKeys:options:)", "", "", "Argument[at:]", "path-injection", "manual"] + - ["", "FileManager", true, "contentsOfDirectory(atPath:)", "", "", "Argument[atPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "copyItem(at:to:)", "", "", "Argument[at:,to:]", "path-injection", "manual"] + - ["", "FileManager", true, "copyItem(atPath:toPath:)", "", "", "Argument[atPath:,toPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "createDirectory(at:withIntermediateDirectories:attributes:)", "", "", "Argument[at:]", "path-injection", "manual"] + - ["", "FileManager", true, "createDirectory(atPath:attributes:)", "", "", "Argument[atPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "createDirectory(atPath:withIntermediateDirectories:attributes:)", "", "", "Argument[atPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "createFile(atPath:contents:attributes:)", "", "", "Argument[atPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "createSymbolicLink(at:withDestinationURL:)", "", "", "Argument[at:,withDestinationURL:]", "path-injection", "manual"] + - ["", "FileManager", true, "createSymbolicLink(atPath:pathContent:)", "", "", "Argument[atPath:,pathContent:]", "path-injection", "manual"] + - ["", "FileManager", true, "createSymbolicLink(atPath:withDestinationPath:)", "", "", "Argument[atPath:,withDestinationPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "destinationOfSymbolicLink(atPath:)", "", "", "Argument[atPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "directoryContents(atPath:)", "", "", "Argument[atPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "enumerator(at:includingPropertiesForKeys:options:errorHandler:)", "", "", "Argument[at:]", "path-injection", "manual"] + - ["", "FileManager", true, "enumerator(atPath:)", "", "", "Argument[atPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "fileAttributes(atPath:traverseLink:)", "", "", "Argument[atPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "fileExists(atPath:)", "", "", "Argument[atPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "fileExists(atPath:isDirectory:)", "", "", "Argument[atPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "linkItem(at:to:)", "", "", "Argument[at:,to:]", "path-injection", "manual"] + - ["", "FileManager", true, "linkItem(atPath:toPath:)", "", "", "Argument[atPath:,toPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "moveItem(at:to:)", "", "", "Argument[at:,to:]", "path-injection", "manual"] + - ["", "FileManager", true, "moveItem(atPath:toPath:)", "", "", "Argument[atPath:,toPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "pathContentOfSymbolicLink(atPath:)", "", "", "Argument[atPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "removeItem(at:)", "", "", "Argument[at:]", "path-injection", "manual"] + - ["", "FileManager", true, "removeItem(atPath:)", "", "", "Argument[atPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "replaceItem(at:withItemAt:backupItemName:options:resultingItemURL:)", "", "", "Argument[at:,withItemAt:]", "path-injection", "manual"] + - ["", "FileManager", true, "replaceItemAt(_:withItemAt:backupItemName:options:)", "", "", "Argument[0,withItemAt:]", "path-injection", "manual"] + - ["", "FileManager", true, "replaceItemAtURL(originalItemURL:withItemAtURL:backupItemName:options:)", "", "", "Argument[originalItemURL:,withItemAtURL:]", "path-injection", "manual"] + - ["", "FileManager", true, "setAttributes(_:ofItemAtPath:)", "", "", "Argument[ofItemAtPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "subpaths(atPath:)", "", "", "Argument[atPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "subpathsOfDirectory(atPath:)", "", "", "Argument[atPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "trashItem(at:resultingItemURL:)", "", "", "Argument[at:]", "path-injection", "manual"] + - ["", "FileManager", true, "unmountVolume(at:options:completionHandler:)", "", "", "Argument[at:]", "path-injection", "manual"] + - ["", "Data", true, "init(contentsOf:options:)", "", "", "Argument[contentsOf:]", "path-injection", "manual"] + - ["", "Data", true, "md5()", "", "", "Argument[self]", "weak-hash-input-MD5", "manual"] + - ["", "Data", true, "sha1()", "", "", "Argument[self]", "weak-hash-input-SHA1", "manual"] + - ["", "Data", true, "sha2(_:)", "", "", "Argument[self]", "weak-password-hash-input-SHA2", "manual"] + - ["", "Data", true, "sha224()", "", "", "Argument[self]", "weak-password-hash-input-SHA224", "manual"] + - ["", "Data", true, "sha256()", "", "", "Argument[self]", "weak-password-hash-input-SHA256", "manual"] + - ["", "Data", true, "sha3(_:)", "", "", "Argument[self]", "weak-password-hash-input-SHA3", "manual"] + - ["", "Data", true, "sha384()", "", "", "Argument[self]", "weak-password-hash-input-SHA384", "manual"] + - ["", "Data", true, "sha512()", "", "", "Argument[self]", "weak-password-hash-input-SHA512", "manual"] + - ["", "Data", true, "write(to:options:)", "", "", "Argument[to:]", "path-injection", "manual"] + - ["", "NSMutableString", true, "insert(_:at:)", "", "", "Argument[at:]", "nsstring-length", "manual"] + - ["", "NSMutableString", true, "character(at:)", "", "", "Argument[at:]", "nsstring-length", "manual"] + - ["", "NSMutableString", true, "substring(from:)", "", "", "Argument[from:]", "nsstring-length", "manual"] + - ["", "NSMutableString", true, "substring(to:)", "", "", "Argument[to:]", "nsstring-length", "manual"] + - ["", "AES", true, "init(key:blockMode:)", "", "", "Argument[blockMode:]", "encryption-block-mode", "manual"] + - ["", "AES", true, "init(key:blockMode:padding:)", "", "", "Argument[blockMode:]", "encryption-block-mode", "manual"] + - ["", "NSPredicate", true, "init(format:_:)", "", "", "Argument[format:]", "predicate-injection", "manual"] + - ["", "NSPredicate", true, "init(format:arguments:)", "", "", "Argument[format:]", "predicate-injection", "manual"] + - ["", "NSPredicate", true, "init(format:argumentArray:)", "", "", "Argument[format:]", "predicate-injection", "manual"] + - ["", "NSPredicate", true, "init(fromMetadataQueryString:)", "", "", "Argument[fromMetadataQueryString:]", "predicate-injection", "manual"] + - ["", "NSRegularExpression", true, "init(pattern:options:)", "", "", "Argument[pattern:]", "regex-use", "manual"] + - ["", "Blowfish", true, "init(key:blockMode:padding:)", "", "", "Argument[blockMode:]", "encryption-block-mode", "manual"] - ["", "URLSessionConfiguration", false, "tlsMaximumSupportedProtocol", "", "", "PostUpdate", "tls-protocol-version", "manual"] - ["", "URLSessionConfiguration", false, "tlsMinimumSupportedProtocol", "", "", "PostUpdate", "tls-protocol-version", "manual"] - ["", "URLSessionConfiguration", false, "tlsMaximumSupportedProtocolVersion", "", "", "PostUpdate", "tls-protocol-version", "manual"] - ["", "URLSessionConfiguration", false, "tlsMinimumSupportedProtocolVersion", "", "", "PostUpdate", "tls-protocol-version", "manual"] - - ["", "NWConnection", true, "send(content:contentContext:isComplete:completion:)", "", "", "Argument[0]", "transmission", "manual"] + - ["", "NWConnection", true, "send(content:contentContext:isComplete:completion:)", "", "", "Argument[content:]", "transmission", "manual"] - ["", "Zip", true, "unzipFile(_:destination:overwrite:password:progress:fileOutputHandler:)", "", "", "Argument[0]", "unsafe-unpack", "manual"] - - ["", "NSRange", true, "init(location:length:)", "", "", "Argument[0..1]", "nsstring-length", "manual"] - - ["", "NSUserScriptTask", true, "init(url:)", "", "", "Argument[0]", "command-injection", "manual"] - - ["", "NSUserUnixTask", true, "execute(withArguments:completionHandler:)", "", "", "Argument[0]", "command-injection", "manual"] + - ["", "NSRange", true, "init(location:length:)", "", "", "Argument[location:,length:]", "nsstring-length", "manual"] + - ["", "NSUserScriptTask", true, "init(url:)", "", "", "Argument[url:]", "command-injection", "manual"] + - ["", "NSUserUnixTask", true, "execute(withArguments:completionHandler:)", "", "", "Argument[withArguments:]", "command-injection", "manual"] - ["", "Process", true, "arguments", "", "", "PostUpdate", "command-injection", "manual"] - ["", "Process", true, "currentDirectory", "", "", "PostUpdate", "command-injection", "manual"] - ["", "Process", true, "currentDirectoryPath", "", "", "PostUpdate", "command-injection", "manual"] - ["", "Process", true, "environment", "", "", "PostUpdate", "command-injection", "manual"] - ["", "Process", true, "executableURL", "", "", "PostUpdate", "command-injection", "manual"] - ["", "Process", true, "launchPath", "", "", "PostUpdate", "command-injection", "manual"] - - ["", "Process", true, "launchedProcess(launchPath:arguments:)", "", "", "Argument[0..1]", "command-injection", "manual"] - - ["", "Process", true, "run(_:arguments:terminationHandler:)", "", "", "Argument[0..1]", "command-injection", "manual"] + - ["", "Process", true, "launchedProcess(launchPath:arguments:)", "", "", "Argument[launchPath:,arguments:]", "command-injection", "manual"] + - ["", "Process", true, "run(_:arguments:terminationHandler:)", "", "", "Argument[0,arguments:]", "command-injection", "manual"] - ["", "Process", true, "standardError", "", "", "PostUpdate", "command-injection", "manual"] - ["", "Process", true, "standardInput", "", "", "PostUpdate", "command-injection", "manual"] - ["", "Process", true, "standardOutput", "", "", "PostUpdate", "command-injection", "manual"] - ["", "Connection", true, "key(_:db:)", "", "", "Argument[0]", "encryption-key", "manual"] - ["", "Connection", true, "keyAndMigrate(_:db:)", "", "", "Argument[0]", "encryption-key", "manual"] - ["", "Connection", true, "rekey(_:db:)", "", "", "Argument[0]", "encryption-key", "manual"] - - ["", "Connection", true, "sqlcipher_export(_:key:)", "", "", "Argument[1]", "encryption-key", "manual"] + - ["", "Connection", true, "sqlcipher_export(_:key:)", "", "", "Argument[key:]", "encryption-key", "manual"] - ["", "Connection", true, "execute(_:)", "", "", "Argument[0]", "database-store", "manual"] - ["", "Connection", true, "prepare(_:_:)", "", "", "Argument[0]", "database-store", "manual"] - ["", "Connection", true, "prepare(_:_:)", "", "", "Argument[1]", "database-store", "manual"] @@ -237,15 +237,15 @@ extensions: - ["", "Connection", true, "init(_:readonly:)", "", "", "Argument[0]", "path-injection", "manual"] - ["", "Database", true, "changePassphrase(_:)", "", "", "Argument[0]", "encryption-key", "manual"] - ["", "Database", true, "usePassphrase(_:)", "", "", "Argument[0]", "encryption-key", "manual"] - - ["", "Database", true, "allStatements(sql:arguments:)", "", "", "Argument[1]", "database-store", "manual"] - - ["", "Database", true, "execute(sql:arguments:)", "", "", "Argument[1]", "database-store", "manual"] - - ["", "Database", true, "init(path:description:configuration:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "Database", true, "allStatements(sql:arguments:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "Database", true, "execute(sql:arguments:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "Database", true, "init(path:description:configuration:)", "", "", "Argument[path:]", "path-injection", "manual"] - ["", "Realm.Configuration", true, "encryptionKey", "", "", "PostUpdate", "encryption-key", "manual"] - - ["", "Realm.Configuration", true, "init(fileURL:inMemoryIdentifier:syncConfiguration:encryptionKey:readOnly:schemaVersion:migrationBlock:deleteRealmIfMigrationNeeded:shouldCompactOnLaunch:objectTypes:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "Realm.Configuration", true, "init(fileURL:inMemoryIdentifier:syncConfiguration:encryptionKey:readOnly:schemaVersion:migrationBlock:deleteRealmIfMigrationNeeded:shouldCompactOnLaunch:objectTypes:)", "", "", "Argument[3]", "encryption-key", "manual"] - - ["", "Realm.Configuration", true, "init(fileURL:inMemoryIdentifier:syncConfiguration:encryptionKey:readOnly:schemaVersion:migrationBlock:deleteRealmIfMigrationNeeded:shouldCompactOnLaunch:objectTypes:seedFilePath:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "Realm.Configuration", true, "init(fileURL:inMemoryIdentifier:syncConfiguration:encryptionKey:readOnly:schemaVersion:migrationBlock:deleteRealmIfMigrationNeeded:shouldCompactOnLaunch:objectTypes:seedFilePath:)", "", "", "Argument[3]", "encryption-key", "manual"] - - ["", "Realm.Configuration", true, "init(fileURL:inMemoryIdentifier:syncConfiguration:encryptionKey:readOnly:schemaVersion:migrationBlock:deleteRealmIfMigrationNeeded:shouldCompactOnLaunch:objectTypes:seedFilePath:)", "", "", "Argument[10]", "path-injection", "manual"] + - ["", "Realm.Configuration", true, "init(fileURL:inMemoryIdentifier:syncConfiguration:encryptionKey:readOnly:schemaVersion:migrationBlock:deleteRealmIfMigrationNeeded:shouldCompactOnLaunch:objectTypes:)", "", "", "Argument[fileURL:]", "path-injection", "manual"] + - ["", "Realm.Configuration", true, "init(fileURL:inMemoryIdentifier:syncConfiguration:encryptionKey:readOnly:schemaVersion:migrationBlock:deleteRealmIfMigrationNeeded:shouldCompactOnLaunch:objectTypes:)", "", "", "Argument[encryptionKey:]", "encryption-key", "manual"] + - ["", "Realm.Configuration", true, "init(fileURL:inMemoryIdentifier:syncConfiguration:encryptionKey:readOnly:schemaVersion:migrationBlock:deleteRealmIfMigrationNeeded:shouldCompactOnLaunch:objectTypes:seedFilePath:)", "", "", "Argument[fileURL:]", "path-injection", "manual"] + - ["", "Realm.Configuration", true, "init(fileURL:inMemoryIdentifier:syncConfiguration:encryptionKey:readOnly:schemaVersion:migrationBlock:deleteRealmIfMigrationNeeded:shouldCompactOnLaunch:objectTypes:seedFilePath:)", "", "", "Argument[encryptionKey:]", "encryption-key", "manual"] + - ["", "Realm.Configuration", true, "init(fileURL:inMemoryIdentifier:syncConfiguration:encryptionKey:readOnly:schemaVersion:migrationBlock:deleteRealmIfMigrationNeeded:shouldCompactOnLaunch:objectTypes:seedFilePath:)", "", "", "Argument[seedFilePath:]", "path-injection", "manual"] - ["", "Realm.Configuration", true, "fileURL", "", "", "PostUpdate", "path-injection", "manual"] - ["", "Realm.Configuration", true, "seedFilePath", "", "", "PostUpdate", "path-injection", "manual"] - ["", "Digest", true, "md5(_:)", "", "", "Argument[0]", "weak-hash-input-MD5", "manual"] @@ -256,22 +256,22 @@ extensions: - ["", "Digest", true, "sha3(_:variant:)", "", "", "Argument[0]", "weak-password-hash-input-SHA3", "manual"] - ["", "Digest", true, "sha384(_:)", "", "", "Argument[0]", "weak-password-hash-input-SHA384", "manual"] - ["", "Digest", true, "sha512(_:)", "", "", "Argument[0]", "weak-password-hash-input-SHA512", "manual"] - - ["", "Insecure.MD5", true, "hash(bufferPointer:)", "", "", "Argument[0]", "weak-hash-input-MD5", "manual"] - - ["", "Insecure.MD5", true, "hash(data:)", "", "", "Argument[0]", "weak-hash-input-MD5", "manual"] - - ["", "Insecure.MD5", true, "update(bufferPointer:)", "", "", "Argument[0]", "weak-hash-input-MD5", "manual"] - - ["", "Insecure.MD5", true, "update(data:)", "", "", "Argument[0]", "weak-hash-input-MD5", "manual"] - - ["", "Insecure.SHA1", true, "hash(bufferPointer:)", "", "", "Argument[0]", "weak-hash-input-SHA1", "manual"] - - ["", "Insecure.SHA1", true, "hash(data:)", "", "", "Argument[0]", "weak-hash-input-SHA1", "manual"] - - ["", "Insecure.SHA1", true, "update(bufferPointer:)", "", "", "Argument[0]", "weak-hash-input-SHA1", "manual"] - - ["", "Insecure.SHA1", true, "update(data:)", "", "", "Argument[0]", "weak-hash-input-SHA1", "manual"] + - ["", "Insecure.MD5", true, "hash(bufferPointer:)", "", "", "Argument[bufferPointer:]", "weak-hash-input-MD5", "manual"] + - ["", "Insecure.MD5", true, "hash(data:)", "", "", "Argument[data:]", "weak-hash-input-MD5", "manual"] + - ["", "Insecure.MD5", true, "update(bufferPointer:)", "", "", "Argument[bufferPointer:]", "weak-hash-input-MD5", "manual"] + - ["", "Insecure.MD5", true, "update(data:)", "", "", "Argument[data:]", "weak-hash-input-MD5", "manual"] + - ["", "Insecure.SHA1", true, "hash(bufferPointer:)", "", "", "Argument[bufferPointer:]", "weak-hash-input-SHA1", "manual"] + - ["", "Insecure.SHA1", true, "hash(data:)", "", "", "Argument[data:]", "weak-hash-input-SHA1", "manual"] + - ["", "Insecure.SHA1", true, "update(bufferPointer:)", "", "", "Argument[bufferPointer:]", "weak-hash-input-SHA1", "manual"] + - ["", "Insecure.SHA1", true, "update(data:)", "", "", "Argument[data:]", "weak-hash-input-SHA1", "manual"] - ["", "MD5", true, "callAsFunction(_:)", "", "", "Argument[0]", "weak-hash-input-MD5", "manual"] - - ["", "MD5", true, "calculate(for:)", "", "", "Argument[0]", "weak-hash-input-MD5", "manual"] - - ["", "MD5", true, "process(block:currentHash:)", "", "", "Argument[0]", "weak-hash-input-MD5", "manual"] - - ["", "MD5", true, "update(withBytes:isLast:)", "", "", "Argument[0]", "weak-hash-input-MD5", "manual"] + - ["", "MD5", true, "calculate(for:)", "", "", "Argument[for:]", "weak-hash-input-MD5", "manual"] + - ["", "MD5", true, "process(block:currentHash:)", "", "", "Argument[block:]", "weak-hash-input-MD5", "manual"] + - ["", "MD5", true, "update(withBytes:isLast:)", "", "", "Argument[withBytes:]", "weak-hash-input-MD5", "manual"] - ["", "SHA1", true, "callAsFunction(_:)", "", "", "Argument[0]", "weak-hash-input-SHA1", "manual"] - - ["", "SHA1", true, "calculate(for:)", "", "", "Argument[0]", "weak-hash-input-SHA1", "manual"] - - ["", "SHA1", true, "process(block:currentHash:)", "", "", "Argument[0]", "weak-hash-input-SHA1", "manual"] - - ["", "SHA1", true, "update(withBytes:isLast:)", "", "", "Argument[0]", "weak-hash-input-SHA1", "manual"] + - ["", "SHA1", true, "calculate(for:)", "", "", "Argument[for:]", "weak-hash-input-SHA1", "manual"] + - ["", "SHA1", true, "process(block:currentHash:)", "", "", "Argument[block:]", "weak-hash-input-SHA1", "manual"] + - ["", "SHA1", true, "update(withBytes:isLast:)", "", "", "Argument[withBytes:]", "weak-hash-input-SHA1", "manual"] - ["", "Logger", true, "warning(_:)", "", "", "Argument[1]", "log-injection", "manual"] - ["", "Logger", true, "error(_:)", "", "", "Argument[1]", "log-injection", "manual"] - ["", "Logger", true, "critical(_:)", "", "", "Argument[1]", "log-injection", "manual"] @@ -282,904 +282,904 @@ extensions: - ["", "Logger", true, "log(level:_:)", "", "", "Argument[1]", "log-injection", "manual"] - ["", "Logger", true, "notice(_:)", "", "", "Argument[1]", "log-injection", "manual"] - ["", "Logger", true, "trace(_:)", "", "", "Argument[1]", "log-injection", "manual"] - - ["", "NSException", true, "init(name:reason:userInfo:)", "", "", "Argument[1]", "log-injection", "manual"] - - ["", "NSException", true, "raise(_:format:arguments:)", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["", "SHA256", true, "hash(bufferPointer:)", "", "", "Argument[0]", "weak-password-hash-input-SHA256", "manual"] - - ["", "SHA256", true, "hash(data:)", "", "", "Argument[0]", "weak-password-hash-input-SHA256", "manual"] - - ["", "SHA256", true, "update(bufferPointer:)", "", "", "Argument[0]", "weak-password-hash-input-SHA256", "manual"] - - ["", "SHA256", true, "update(data:)", "", "", "Argument[0]", "weak-password-hash-input-SHA256", "manual"] + - ["", "NSException", true, "init(name:reason:userInfo:)", "", "", "Argument[reason:]", "log-injection", "manual"] + - ["", "NSException", true, "raise(_:format:arguments:)", "", "", "Argument[format:,arguments:]", "log-injection", "manual"] + - ["", "SHA256", true, "hash(bufferPointer:)", "", "", "Argument[bufferPointer:]", "weak-password-hash-input-SHA256", "manual"] + - ["", "SHA256", true, "hash(data:)", "", "", "Argument[data:]", "weak-password-hash-input-SHA256", "manual"] + - ["", "SHA256", true, "update(bufferPointer:)", "", "", "Argument[bufferPointer:]", "weak-password-hash-input-SHA256", "manual"] + - ["", "SHA256", true, "update(data:)", "", "", "Argument[data:]", "weak-password-hash-input-SHA256", "manual"] - ["", "SHA2", true, "callAsFunction(_:)", "", "", "Argument[0]", "weak-password-hash-input-SHA2", "manual"] - - ["", "SHA2", true, "calculate(for:)", "", "", "Argument[0]", "weak-password-hash-input-SHA2", "manual"] - - ["", "SHA2", true, "update(withBytes:isLast:)", "", "", "Argument[0]", "weak-password-hash-input-SHA2", "manual"] - - ["", "SHA2", true, "process32(block:currentHash:)", "", "", "Argument[0]", "weak-password-hash-input-SHA2", "manual"] - - ["", "SHA2", true, "process64(block:currentHash:)", "", "", "Argument[0]", "weak-password-hash-input-SHA2", "manual"] - - ["", "SHA384", true, "hash(bufferPointer:)", "", "", "Argument[0]", "weak-password-hash-input-SHA384", "manual"] - - ["", "SHA384", true, "hash(data:)", "", "", "Argument[0]", "weak-password-hash-input-SHA384", "manual"] - - ["", "SHA384", true, "update(bufferPointer:)", "", "", "Argument[0]", "weak-password-hash-input-SHA384", "manual"] - - ["", "SHA384", true, "update(data:)", "", "", "Argument[0]", "weak-password-hash-input-SHA384", "manual"] + - ["", "SHA2", true, "calculate(for:)", "", "", "Argument[for:]", "weak-password-hash-input-SHA2", "manual"] + - ["", "SHA2", true, "update(withBytes:isLast:)", "", "", "Argument[withBytes:]", "weak-password-hash-input-SHA2", "manual"] + - ["", "SHA2", true, "process32(block:currentHash:)", "", "", "Argument[block:]", "weak-password-hash-input-SHA2", "manual"] + - ["", "SHA2", true, "process64(block:currentHash:)", "", "", "Argument[block:]", "weak-password-hash-input-SHA2", "manual"] + - ["", "SHA384", true, "hash(bufferPointer:)", "", "", "Argument[bufferPointer:]", "weak-password-hash-input-SHA384", "manual"] + - ["", "SHA384", true, "hash(data:)", "", "", "Argument[data:]", "weak-password-hash-input-SHA384", "manual"] + - ["", "SHA384", true, "update(bufferPointer:)", "", "", "Argument[bufferPointer:]", "weak-password-hash-input-SHA384", "manual"] + - ["", "SHA384", true, "update(data:)", "", "", "Argument[data:]", "weak-password-hash-input-SHA384", "manual"] - ["", "SHA3", true, "callAsFunction(_:)", "", "", "Argument[0]", "weak-password-hash-input-SHA2", "manual"] - - ["", "SHA3", true, "calculate(for:)", "", "", "Argument[0]", "weak-password-hash-input-SHA2", "manual"] - - ["", "SHA3", true, "process(block:currentHash:)", "", "", "Argument[0]", "weak-password-hash-input-SHA2", "manual"] - - ["", "SHA3", true, "update(withBytes:isLast:)", "", "", "Argument[0]", "weak-password-hash-input-SHA2", "manual"] - - ["", "SHA512", true, "hash(bufferPointer:)", "", "", "Argument[0]", "weak-password-hash-input-SHA512", "manual"] - - ["", "SHA512", true, "hash(data:)", "", "", "Argument[0]", "weak-password-hash-input-SHA512", "manual"] - - ["", "SHA512", true, "update(bufferPointer:)", "", "", "Argument[0]", "weak-password-hash-input-SHA512", "manual"] - - ["", "SHA512", true, "update(data:)", "", "", "Argument[0]", "weak-password-hash-input-SHA512", "manual"] - - ["", "CommonTableExpression", true, "init(recursive:named:columns:sql:arguments:)", "", "", "Argument[4]", "database-store", "manual"] - - ["", "DatabaseValueConvertible", true, "fetchAll(_:sql:arguments:adapter:)", "", "", "Argument[2]", "database-store", "manual"] - - ["", "DatabaseValueConvertible", true, "fetchCursor(_:sql:arguments:adapter:)", "", "", "Argument[2]", "database-store", "manual"] - - ["", "DatabaseValueConvertible", true, "fetchOne(_:sql:arguments:adapter:)", "", "", "Argument[2]", "database-store", "manual"] - - ["", "DatabaseValueConvertible", true, "fetchSet(_:sql:arguments:adapter:)", "", "", "Argument[2]", "database-store", "manual"] - - ["", "FetchableRecord", true, "fetchAll(_:sql:arguments:adapter:)", "", "", "Argument[2]", "database-store", "manual"] - - ["", "FetchableRecord", true, "fetchCursor(_:sql:arguments:adapter:)", "", "", "Argument[2]", "database-store", "manual"] - - ["", "FetchableRecord", true, "fetchOne(_:sql:arguments:adapter:)", "", "", "Argument[2]", "database-store", "manual"] - - ["", "FetchableRecord", true, "fetchSet(_:sql:arguments:adapter:)", "", "", "Argument[2]", "database-store", "manual"] - - ["", "FetchableRecord", true, "fetchAll(_:arguments:adapter:)", "", "", "Argument[1]", "database-store", "manual"] - - ["", "FetchableRecord", true, "fetchCursor(_:arguments:adapter:)", "", "", "Argument[1]", "database-store", "manual"] - - ["", "FetchableRecord", true, "fetchOne(_:arguments:adapter:)", "", "", "Argument[1]", "database-store", "manual"] - - ["", "FetchableRecord", true, "fetchSet(_:arguments:adapter:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "SHA3", true, "calculate(for:)", "", "", "Argument[for:]", "weak-password-hash-input-SHA2", "manual"] + - ["", "SHA3", true, "process(block:currentHash:)", "", "", "Argument[block:]", "weak-password-hash-input-SHA2", "manual"] + - ["", "SHA3", true, "update(withBytes:isLast:)", "", "", "Argument[withBytes:]", "weak-password-hash-input-SHA2", "manual"] + - ["", "SHA512", true, "hash(bufferPointer:)", "", "", "Argument[bufferPointer:]", "weak-password-hash-input-SHA512", "manual"] + - ["", "SHA512", true, "hash(data:)", "", "", "Argument[data:]", "weak-password-hash-input-SHA512", "manual"] + - ["", "SHA512", true, "update(bufferPointer:)", "", "", "Argument[bufferPointer:]", "weak-password-hash-input-SHA512", "manual"] + - ["", "SHA512", true, "update(data:)", "", "", "Argument[data:]", "weak-password-hash-input-SHA512", "manual"] + - ["", "CommonTableExpression", true, "init(recursive:named:columns:sql:arguments:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "DatabaseValueConvertible", true, "fetchAll(_:sql:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "DatabaseValueConvertible", true, "fetchCursor(_:sql:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "DatabaseValueConvertible", true, "fetchOne(_:sql:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "DatabaseValueConvertible", true, "fetchSet(_:sql:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "FetchableRecord", true, "fetchAll(_:sql:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "FetchableRecord", true, "fetchCursor(_:sql:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "FetchableRecord", true, "fetchOne(_:sql:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "FetchableRecord", true, "fetchSet(_:sql:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "FetchableRecord", true, "fetchAll(_:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "FetchableRecord", true, "fetchCursor(_:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "FetchableRecord", true, "fetchOne(_:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "FetchableRecord", true, "fetchSet(_:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] - ["", "QueryType", true, "insert(_:)", "", "", "Argument[0]", "database-store", "manual"] - ["", "QueryType", true, "update(_:)", "", "", "Argument[0]", "database-store", "manual"] - - ["", "QueryType", true, "insert(_:_:)", "", "", "Argument[0..1]", "database-store", "manual"] + - ["", "QueryType", true, "insert(_:_:)", "", "", "Argument[0,1]", "database-store", "manual"] - ["", "QueryType", true, "insert(or:_:)", "", "", "Argument[1]", "database-store", "manual"] - ["", "QueryType", true, "insertMany(_:)", "", "", "Argument[0]", "database-store", "manual"] - ["", "QueryType", true, "insertMany(or:_:)", "", "", "Argument[1]", "database-store", "manual"] - - ["", "QueryType", true, "update(_:_:)", "", "", "Argument[0..1]", "database-store", "manual"] + - ["", "QueryType", true, "update(_:_:)", "", "", "Argument[0,1]", "database-store", "manual"] - ["", "QueryType", true, "update(or:_:)", "", "", "Argument[1]", "database-store", "manual"] - ["", "QueryType", true, "upsert(_:onConflictOf:)", "", "", "Argument[0]", "database-store", "manual"] - ["", "QueryType", true, "upsert(_:onConflictOf:setValues:)", "", "", "Argument[0]", "database-store", "manual"] - - ["", "QueryType", true, "upsert(_:onConflictOf:setValues:)", "", "", "Argument[2]", "database-store", "manual"] - - ["", "Row", true, "fetchAll(_:sql:arguments:adapter:)", "", "", "Argument[2]", "database-store", "manual"] - - ["", "Row", true, "fetchCursor(_:sql:arguments:adapter:)", "", "", "Argument[2]", "database-store", "manual"] - - ["", "Row", true, "fetchOne(_:sql:arguments:adapter:)", "", "", "Argument[2]", "database-store", "manual"] - - ["", "Row", true, "fetchSet(_:sql:arguments:adapter:)", "", "", "Argument[2]", "database-store", "manual"] - - ["", "SQL", true, "append(sql:arguments:)", "", "", "Argument[1]", "database-store", "manual"] - - ["", "SQL", true, "init(sql:arguments:)", "", "", "Argument[1]", "database-store", "manual"] - - ["", "SQLRequest", true, "init(sql:arguments:adapter:cached:)", "", "", "Argument[1]", "database-store", "manual"] - - ["", "SQLStatementCursor", true, "init(database:sql:arguments:prepFlags:)", "", "", "Argument[2]", "database-store", "manual"] + - ["", "QueryType", true, "upsert(_:onConflictOf:setValues:)", "", "", "Argument[setValues:]", "database-store", "manual"] + - ["", "Row", true, "fetchAll(_:sql:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "Row", true, "fetchCursor(_:sql:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "Row", true, "fetchOne(_:sql:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "Row", true, "fetchSet(_:sql:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "SQL", true, "append(sql:arguments:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "SQL", true, "init(sql:arguments:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "SQLRequest", true, "init(sql:arguments:adapter:cached:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "SQLStatementCursor", true, "init(database:sql:arguments:prepFlags:)", "", "", "Argument[arguments:]", "database-store", "manual"] - ["", "Statement", true, "init(_:_:)", "", "", "Argument[1]", "database-store", "manual"] - ["", "Statement", true, "scalar(_:)", "", "", "Argument[0]", "database-store", "manual"] - ["", "Statement", true, "bind(_:)", "", "", "Argument[0]", "database-store", "manual"] - - ["", "Statement", true, "execute(arguments:)", "", "", "Argument[0]", "database-store", "manual"] + - ["", "Statement", true, "execute(arguments:)", "", "", "Argument[arguments:]", "database-store", "manual"] - ["", "Statement", true, "run(_:)", "", "", "Argument[0]", "database-store", "manual"] - ["", "Statement", true, "setArguments(_:)", "", "", "Argument[0]", "database-store", "manual"] - - ["", "TableRecord", true, "filter(sql:arguments:)", "", "", "Argument[1]", "database-store", "manual"] - - ["", "TableRecord", true, "order(sql:arguments:)", "", "", "Argument[1]", "database-store", "manual"] - - ["", "TableRecord", true, "select(sql:arguments:)", "", "", "Argument[1]", "database-store", "manual"] - - ["", "TableRecord", true, "select(sql:arguments:as:)", "", "", "Argument[1]", "database-store", "manual"] - - ["", "ArchiveByteStream", true, "fileStream(fd:automaticClose:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "ArchiveByteStream", true, "fileStream(path:mode:options:permissions:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "ArchiveByteStream", true, "withFileStream(fd:automaticClose:_:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "ArchiveByteStream", true, "withFileStream(path:mode:options:permissions:_:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "Bundle", true, "init(url:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "Bundle", true, "init(path:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "DatabasePool", true, "init(path:configuration:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "DatabaseQueue", true, "init(path:configuration:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "DatabaseSnapshotPool", true, "init(path:configuration:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "NIOFileHandle", true, "init(path:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "NIOFileHandle", true, "init(descriptor:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "NIOFileHandle", true, "init(path:mode:flags:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "NSKeyedUnarchiver", true, "unarchiveObject(withFile:)", "", "", "Argument[0]", "path-injection", "manual"] - - ["", "SerializedDatabase", true, "init(path:configuration:defaultLabel:purpose:)", "", "", "Argument[0]", "path-injection", "manual"] + - ["", "TableRecord", true, "filter(sql:arguments:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "TableRecord", true, "order(sql:arguments:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "TableRecord", true, "select(sql:arguments:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "TableRecord", true, "select(sql:arguments:as:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "ArchiveByteStream", true, "fileStream(fd:automaticClose:)", "", "", "Argument[fd:]", "path-injection", "manual"] + - ["", "ArchiveByteStream", true, "fileStream(path:mode:options:permissions:)", "", "", "Argument[path:]", "path-injection", "manual"] + - ["", "ArchiveByteStream", true, "withFileStream(fd:automaticClose:_:)", "", "", "Argument[fd:]", "path-injection", "manual"] + - ["", "ArchiveByteStream", true, "withFileStream(path:mode:options:permissions:_:)", "", "", "Argument[path:]", "path-injection", "manual"] + - ["", "Bundle", true, "init(url:)", "", "", "Argument[url:]", "path-injection", "manual"] + - ["", "Bundle", true, "init(path:)", "", "", "Argument[path:]", "path-injection", "manual"] + - ["", "DatabasePool", true, "init(path:configuration:)", "", "", "Argument[path:]", "path-injection", "manual"] + - ["", "DatabaseQueue", true, "init(path:configuration:)", "", "", "Argument[path:]", "path-injection", "manual"] + - ["", "DatabaseSnapshotPool", true, "init(path:configuration:)", "", "", "Argument[path:]", "path-injection", "manual"] + - ["", "NIOFileHandle", true, "init(path:)", "", "", "Argument[path:]", "path-injection", "manual"] + - ["", "NIOFileHandle", true, "init(descriptor:)", "", "", "Argument[descriptor:]", "path-injection", "manual"] + - ["", "NIOFileHandle", true, "init(path:mode:flags:)", "", "", "Argument[path:]", "path-injection", "manual"] + - ["", "NSKeyedUnarchiver", true, "unarchiveObject(withFile:)", "", "", "Argument[withFile:]", "path-injection", "manual"] + - ["", "SerializedDatabase", true, "init(path:configuration:defaultLabel:purpose:)", "", "", "Argument[path:]", "path-injection", "manual"] - addsTo: pack: codeql/unified-all extensible: legacySummaryModel data: # namespace, type, subtypes, name, signature, ext, input, output, kind, provenance - ["", "UnsafeMutableRawPointer", true, "init(_:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - ["", "UnsafeMutableRawPointer", true, "init(_:)", "", "", "Argument[0].OptionalSome.CollectionElement", "ReturnValue.OptionalSome.CollectionElement", "value", "manual"] - - ["", "UnsafeMutableRawPointer", true, "init(mutating:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "UnsafeMutableRawPointer", true, "init(mutating:)", "", "", "Argument[0].OptionalSome.CollectionElement", "ReturnValue.OptionalSome.CollectionElement", "value", "manual"] - - ["", "UnsafeMutableRawPointer", true, "storeBytes(of:toByteOffset:as:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[-1].CollectionElement", "Argument[2].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "init(mutating:)", "", "", "Argument[mutating:].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "UnsafeMutableRawPointer", true, "init(mutating:)", "", "", "Argument[mutating:].OptionalSome.CollectionElement", "ReturnValue.OptionalSome.CollectionElement", "value", "manual"] + - ["", "UnsafeMutableRawPointer", true, "storeBytes(of:toByteOffset:as:)", "", "", "Argument[of:]", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[self].CollectionElement", "Argument[2].Parameter[0].CollectionElement", "taint", "manual"] - ["", "UnsafeMutableRawPointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[2].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "UnsafeMutableRawPointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[2].Parameter[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "loadUnaligned(fromByteOffset:as:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "load(fromByteOffset:as:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "assumingMemoryBound(to:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "bindMemory(to:capacity:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "alignedDown(toMultipleOf:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "alignedUp(toMultipleOf:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "alignedDown(for:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "alignedUp(for:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "moveInitializeMemory(as:from:count:)", "", "", "Argument[1].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "moveInitializeMemory(as:from:count:)", "", "", "Argument[1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:from:count:)", "", "", "Argument[1].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:from:count:)", "", "", "Argument[1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:repeating:count:)", "", "", "Argument[1]", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:repeating:count:)", "", "", "Argument[1]", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:to:)", "", "", "Argument[1]", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:to:)", "", "", "Argument[1]", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:from:)", "", "", "Argument[1].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:from:)", "", "", "Argument[1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "copyBytes(from:count:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "copyMemory(from:count:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:at:count:to:)", "", "", "Argument[3]", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:at:count:to:)", "", "", "Argument[3]", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsignedInteger", true, "init(exactly:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "value", "manual"] + - ["", "UnsafeMutableRawPointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[2].Parameter[0].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "loadUnaligned(fromByteOffset:as:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "load(fromByteOffset:as:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "assumingMemoryBound(to:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "bindMemory(to:capacity:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "alignedDown(toMultipleOf:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "alignedUp(toMultipleOf:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "alignedDown(for:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "alignedUp(for:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "moveInitializeMemory(as:from:count:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "moveInitializeMemory(as:from:count:)", "", "", "Argument[from:].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:from:count:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:from:count:)", "", "", "Argument[from:].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:repeating:count:)", "", "", "Argument[repeating:]", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:repeating:count:)", "", "", "Argument[repeating:]", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:to:)", "", "", "Argument[to:]", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:to:)", "", "", "Argument[to:]", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:from:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:from:)", "", "", "Argument[from:].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "copyBytes(from:count:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "copyMemory(from:count:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:at:count:to:)", "", "", "Argument[to:]", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:at:count:to:)", "", "", "Argument[to:]", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsignedInteger", true, "init(exactly:)", "", "", "Argument[exactly:]", "ReturnValue.OptionalSome", "value", "manual"] - ["", "UnsignedInteger", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "FixedWidthInteger", true, "init(littleEndian:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "FixedWidthInteger", true, "init(bigEndian:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "FixedWidthInteger", true, "dividingFullWidth(_:)", "", "", "Argument[-1]", "ReturnValue.TupleElement[0,1]", "taint", "manual"] + - ["", "FixedWidthInteger", true, "init(littleEndian:)", "", "", "Argument[littleEndian:]", "ReturnValue", "taint", "manual"] + - ["", "FixedWidthInteger", true, "init(bigEndian:)", "", "", "Argument[bigEndian:]", "ReturnValue", "taint", "manual"] + - ["", "FixedWidthInteger", true, "dividingFullWidth(_:)", "", "", "Argument[self]", "ReturnValue.TupleElement[0,1]", "taint", "manual"] - ["", "FixedWidthInteger", true, "dividingFullWidth(_:)", "", "", "Argument[1].TupleElement[0,1]", "ReturnValue.TupleElement[0,1]", "taint", "manual"] - - ["", "FixedWidthInteger", true, "multipliedFullWidth(by:)", "", "", "Argument[-1..0]", "ReturnValue.TupleElement[0,1]", "taint", "manual"] + - ["", "FixedWidthInteger", true, "multipliedFullWidth(by:)", "", "", "Argument[self,by:]", "ReturnValue.TupleElement[0,1]", "taint", "manual"] - ["", "FixedWidthInteger", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "FixedWidthInteger", true, "remainderReportingOverflow(dividingBy:)", "", "", "Argument[-1..0]", "ReturnValue.TupleElement[0]", "taint", "manual"] - - ["", "FixedWidthInteger", true, "dividedReportingOverflow(by:)", "", "", "Argument[-1..0]", "ReturnValue.TupleElement[0]", "taint", "manual"] - - ["", "FixedWidthInteger", true, "multipliedReportingOverflow(by:)", "", "", "Argument[-1..0]", "ReturnValue.TupleElement[0]", "taint", "manual"] - - ["", "FixedWidthInteger", true, "subtractingReportingOverflow(_:)", "", "", "Argument[-1..0]", "ReturnValue.TupleElement[0]", "taint", "manual"] - - ["", "FixedWidthInteger", true, "addingReportingOverflow(_:)", "", "", "Argument[-1..0]", "ReturnValue.TupleElement[0]", "taint", "manual"] - - ["", "FixedWidthInteger", true, "init(bitPattern:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "FixedWidthInteger", true, "init(clamping:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "FixedWidthInteger", true, "init(truncatingIfNeeded:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "FixedWidthInteger", true, "remainderReportingOverflow(dividingBy:)", "", "", "Argument[self,dividingBy:]", "ReturnValue.TupleElement[0]", "taint", "manual"] + - ["", "FixedWidthInteger", true, "dividedReportingOverflow(by:)", "", "", "Argument[self,by:]", "ReturnValue.TupleElement[0]", "taint", "manual"] + - ["", "FixedWidthInteger", true, "multipliedReportingOverflow(by:)", "", "", "Argument[self,by:]", "ReturnValue.TupleElement[0]", "taint", "manual"] + - ["", "FixedWidthInteger", true, "subtractingReportingOverflow(_:)", "", "", "Argument[self,0]", "ReturnValue.TupleElement[0]", "taint", "manual"] + - ["", "FixedWidthInteger", true, "addingReportingOverflow(_:)", "", "", "Argument[self,0]", "ReturnValue.TupleElement[0]", "taint", "manual"] + - ["", "FixedWidthInteger", true, "init(bitPattern:)", "", "", "Argument[bitPattern:]", "ReturnValue", "taint", "manual"] + - ["", "FixedWidthInteger", true, "init(clamping:)", "", "", "Argument[clamping:]", "ReturnValue", "taint", "manual"] + - ["", "FixedWidthInteger", true, "init(truncatingIfNeeded:)", "", "", "Argument[truncatingIfNeeded:]", "ReturnValue", "taint", "manual"] - ["", "FixedWidthInteger", true, "init(_:radix:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "FixedWidthInteger", true, "init(truncating:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "Numeric", true, "init(exactly:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "value", "manual"] - - ["", "Numeric", true, "init(bitPattern:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "Numeric", true, "init(truncating:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "BinaryInteger", true, "quotientAndRemainder(dividingBy:)", "", "", "Argument[-1..0]", "ReturnValue.TupleElement[0,1]", "taint", "manual"] + - ["", "FixedWidthInteger", true, "init(truncating:)", "", "", "Argument[truncating:]", "ReturnValue", "taint", "manual"] + - ["", "Numeric", true, "init(exactly:)", "", "", "Argument[exactly:]", "ReturnValue.OptionalSome", "value", "manual"] + - ["", "Numeric", true, "init(bitPattern:)", "", "", "Argument[bitPattern:]", "ReturnValue", "taint", "manual"] + - ["", "Numeric", true, "init(truncating:)", "", "", "Argument[truncating:]", "ReturnValue", "taint", "manual"] + - ["", "BinaryInteger", true, "quotientAndRemainder(dividingBy:)", "", "", "Argument[self,dividingBy:]", "ReturnValue.TupleElement[0,1]", "taint", "manual"] - ["", "BinaryInteger", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "BinaryInteger", true, "init(clamping:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "BinaryInteger", true, "init(truncatingIfNeeded:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "BinaryInteger", true, "advanced(by:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "BinaryInteger", true, "distance(to:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "BinaryInteger", true, "formatted()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "BinaryInteger", true, "formatted(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "BinaryInteger", true, "init(clamping:)", "", "", "Argument[clamping:]", "ReturnValue", "taint", "manual"] + - ["", "BinaryInteger", true, "init(truncatingIfNeeded:)", "", "", "Argument[truncatingIfNeeded:]", "ReturnValue", "taint", "manual"] + - ["", "BinaryInteger", true, "advanced(by:)", "", "", "Argument[self,by:]", "ReturnValue", "taint", "manual"] + - ["", "BinaryInteger", true, "distance(to:)", "", "", "Argument[self,to:]", "ReturnValue", "taint", "manual"] + - ["", "BinaryInteger", true, "formatted()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "BinaryInteger", true, "formatted(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "BinaryInteger", true, "init(_:format:lenient:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "BinaryInteger", true, "init(_:strategy:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "Sequence", true, "withContiguousStorageIfAvailable(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "Sequence", true, "withContiguousStorageIfAvailable(_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "value", "manual"] + - ["", "Sequence", true, "withContiguousStorageIfAvailable(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Sequence", true, "withContiguousStorageIfAvailable(_:)", "", "", "Argument[self].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "value", "manual"] - ["", "Sequence", true, "withContiguousStorageIfAvailable(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue.OptionalSome", "value", "manual"] - - ["", "Sequence", true, "makeIterator()", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Sequence", true, "suffix(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Sequence", true, "suffix(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Sequence", true, "dropLast(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Sequence", true, "dropLast(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Sequence", true, "split(maxSplits:omittingEmptySubsequences:whereSeparator:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Sequence", true, "split(maxSplits:omittingEmptySubsequences:whereSeparator:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Sequence", true, "prefix(while:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Sequence", true, "prefix(while:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Sequence", true, "prefix(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Sequence", true, "prefix(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Sequence", true, "drop(while:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Sequence", true, "drop(while:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Sequence", true, "dropFirst(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Sequence", true, "dropFirst(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Sequence", true, "split(separator:maxSplits:omittingEmptySubsequences:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Sequence", true, "split(separator:maxSplits:omittingEmptySubsequences:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Sequence", true, "shuffled()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Sequence", true, "shuffled()", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Sequence", true, "shuffled(using:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "Sequence", true, "shuffled(using:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Sequence", true, "forEach(_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0]", "value", "manual"] - - ["", "Sequence", true, "joined()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Sequence", true, "joined()", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "Sequence", true, "joined()", "", "", "Argument[-1].CollectionElement.CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Sequence", true, "joined(separator:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "Sequence", true, "joined(separator:)", "", "", "Argument[-1].CollectionElement.CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Sequence", true, "joined(separator:)", "", "", "Argument[0..-1]", "ReturnValue", "taint", "manual"] - - ["", "Sequence", true, "reversed()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Sequence", true, "reversed()", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Sequence", true, "first(where:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "value", "manual"] - - ["", "Sequence", true, "enumerated()", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement.TupleElement[1]", "value", "manual"] - - ["", "Sequence", true, "max(by:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "Sequence", true, "min(by:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "Sequence", true, "max()", "", "", "Argument[-1].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "Sequence", true, "min()", "", "", "Argument[-1].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "Sequence", true, "sorted()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Sequence", true, "sorted()", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Sequence", true, "sorted(by:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Sequence", true, "sorted(by:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Sequence", true, "formatted()", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "makeIterator()", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "suffix(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "suffix(_:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "dropLast(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "dropLast(_:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "split(maxSplits:omittingEmptySubsequences:whereSeparator:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "split(maxSplits:omittingEmptySubsequences:whereSeparator:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "prefix(while:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "prefix(while:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "prefix(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "prefix(_:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "drop(while:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "drop(while:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "dropFirst(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "dropFirst(_:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "split(separator:maxSplits:omittingEmptySubsequences:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "split(separator:maxSplits:omittingEmptySubsequences:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "shuffled()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "shuffled()", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "shuffled(using:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "shuffled(using:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "forEach(_:)", "", "", "Argument[self].CollectionElement", "Argument[0].Parameter[0]", "value", "manual"] + - ["", "Sequence", true, "joined()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "joined()", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "joined()", "", "", "Argument[self].CollectionElement.CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "joined(separator:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "joined(separator:)", "", "", "Argument[self].CollectionElement.CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "joined(separator:)", "", "", "Argument[separator:,self]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "reversed()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "reversed()", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "first(where:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "value", "manual"] + - ["", "Sequence", true, "enumerated()", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement.TupleElement[1]", "value", "manual"] + - ["", "Sequence", true, "max(by:)", "", "", "Argument[self].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "Sequence", true, "min(by:)", "", "", "Argument[self].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "Sequence", true, "max()", "", "", "Argument[self].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "Sequence", true, "min()", "", "", "Argument[self].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "Sequence", true, "sorted()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "sorted()", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "sorted(by:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "sorted(by:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "formatted()", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] - ["", "UnsafeBufferPointer", true, "init(_:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "UnsafeBufferPointer", true, "init(start:count:)", "", "", "Argument[0].OptionalSome.CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[-1].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeBufferPointer", true, "init(start:count:)", "", "", "Argument[start:].OptionalSome.CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[self].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] - ["", "UnsafeBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "UnsafeBufferPointer", true, "init(rebasing:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "UnsafePointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[-1].CollectionElement", "Argument[2].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeBufferPointer", true, "init(rebasing:)", "", "", "Argument[rebasing:].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "UnsafePointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[self].CollectionElement", "Argument[2].Parameter[0].CollectionElement", "taint", "manual"] - ["", "UnsafePointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[2].ReturnValue", "ReturnValue", "value", "manual"] - ["", "UnsafeMutablePointer", true, "init(_:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - ["", "UnsafeMutablePointer", true, "init(_:)", "", "", "Argument[0].OptionalSome.CollectionElement", "ReturnValue.OptionalSome.CollectionElement", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "init(mutating:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "init(mutating:)", "", "", "Argument[0].OptionalSome.CollectionElement", "ReturnValue.OptionalSome.CollectionElement", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[-1].CollectionElement", "Argument[2].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutablePointer", true, "init(mutating:)", "", "", "Argument[mutating:].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "init(mutating:)", "", "", "Argument[mutating:].OptionalSome.CollectionElement", "ReturnValue.OptionalSome.CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[self].CollectionElement", "Argument[2].Parameter[0].CollectionElement", "taint", "manual"] - ["", "UnsafeMutablePointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[2].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[2].Parameter[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutablePointer", true, "initialize(repeating:count:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "initialize(to:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "move()", "", "", "Argument[-1].CollectionElement", "ReturnValue", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "assign(repeating:count:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "update(repeating:count:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "assign(from:count:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "update(from:count:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "moveInitialize(from:count:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "initialize(from:count:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "moveUpdate(from:count:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "moveAssign(from:count:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "initialize(from:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "initialize(to:count:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "UnsafeMutableBufferPointer", true, "init(start:count:)", "", "", "Argument[0].OptionalSome.CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableBufferPointer", true, "init(mutating:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "UnsafeMutableBufferPointer", true, "update(repeating:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "UnsafeMutableBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[-1].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutablePointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[2].Parameter[0].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutablePointer", true, "initialize(repeating:count:)", "", "", "Argument[repeating:]", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "initialize(to:)", "", "", "Argument[to:]", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "move()", "", "", "Argument[self].CollectionElement", "ReturnValue", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "assign(repeating:count:)", "", "", "Argument[repeating:]", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "update(repeating:count:)", "", "", "Argument[repeating:]", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "assign(from:count:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "update(from:count:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "moveInitialize(from:count:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "initialize(from:count:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "moveUpdate(from:count:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "moveAssign(from:count:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "initialize(from:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "initialize(to:count:)", "", "", "Argument[to:]", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "init(start:count:)", "", "", "Argument[start:].OptionalSome.CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "init(mutating:)", "", "", "Argument[mutating:].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "update(repeating:)", "", "", "Argument[repeating:]", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[self].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] - ["", "UnsafeMutableBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "UnsafeMutableBufferPointer", true, "moveElement(from:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "value", "manual"] - - ["", "UnsafeMutableBufferPointer", true, "initializeElement(at:to:)", "", "", "Argument[1]", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "UnsafeMutableBufferPointer", true, "moveUpdate(fromContentsOf:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "UnsafeMutableBufferPointer", true, "moveInitialize(fromContentsOf:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "UnsafeMutableBufferPointer", true, "update(fromContentsOf:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "UnsafeMutableBufferPointer", true, "update(from:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableBufferPointer", true, "update(from:)", "", "", "Argument[0].CollectionElement", "ReturnValue.TupleElement[0].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableBufferPointer", true, "initialize(fromContentsOf:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "UnsafeMutableBufferPointer", true, "initialize(from:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableBufferPointer", true, "initialize(from:)", "", "", "Argument[0].CollectionElement", "ReturnValue.TupleElement[0].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableBufferPointer", true, "initialize(repeating:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "UnsafeMutableBufferPointer", true, "init(rebasing:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "UnsafeMutableBufferPointer", true, "assign(repeating:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "ContiguousArray", true, "withUnsafeMutableBufferPointer(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "ContiguousArray", true, "withUnsafeMutableBufferPointer(_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "value", "manual"] - - ["", "ContiguousArray", true, "withUnsafeMutableBufferPointer(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "moveElement(from:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "initializeElement(at:to:)", "", "", "Argument[to:]", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "moveUpdate(fromContentsOf:)", "", "", "Argument[fromContentsOf:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "moveInitialize(fromContentsOf:)", "", "", "Argument[fromContentsOf:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "update(fromContentsOf:)", "", "", "Argument[fromContentsOf:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "update(from:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "update(from:)", "", "", "Argument[from:].CollectionElement", "ReturnValue.TupleElement[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "initialize(fromContentsOf:)", "", "", "Argument[fromContentsOf:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "initialize(from:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "initialize(from:)", "", "", "Argument[from:].CollectionElement", "ReturnValue.TupleElement[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "initialize(repeating:)", "", "", "Argument[repeating:]", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "init(rebasing:)", "", "", "Argument[rebasing:].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "assign(repeating:)", "", "", "Argument[repeating:]", "Argument[self].CollectionElement", "value", "manual"] + - ["", "ContiguousArray", true, "withUnsafeMutableBufferPointer(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "ContiguousArray", true, "withUnsafeMutableBufferPointer(_:)", "", "", "Argument[self].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "value", "manual"] + - ["", "ContiguousArray", true, "withUnsafeMutableBufferPointer(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] - ["", "ContiguousArray", true, "withUnsafeMutableBufferPointer(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "ContiguousArray", true, "withUnsafeBufferPointer(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "ContiguousArray", true, "withUnsafeBufferPointer(_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "value", "manual"] + - ["", "ContiguousArray", true, "withUnsafeBufferPointer(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "ContiguousArray", true, "withUnsafeBufferPointer(_:)", "", "", "Argument[self].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "value", "manual"] - ["", "ContiguousArray", true, "withUnsafeBufferPointer(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "ContiguousArray", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "ContiguousArray", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "ContiguousArray", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "ContiguousArray", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "ContiguousArray", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[self].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "ContiguousArray", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] - ["", "ContiguousArray", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "Collection", true, "makeIterator()", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Collection", true, "removeFirst()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Collection", true, "suffix(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Collection", true, "suffix(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Collection", true, "dropLast(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Collection", true, "dropLast(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Collection", true, "randomElement()", "", "", "Argument[-1].CollectionElement", "ReturnValue.OptionalSome", "value", "manual"] - - ["", "Collection", true, "randomElement(using:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.OptionalSome", "value", "manual"] - - ["", "Collection", true, "popFirst()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Collection", true, "split(maxSplits:omittingEmptySubsequences:whereSeparator:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Collection", true, "prefix(through:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Collection", true, "prefix(through:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Collection", true, "suffix(from:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Collection", true, "prefix(upTo:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Collection", true, "prefix(upTo:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Collection", true, "prefix(while:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Collection", true, "prefix(while:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Collection", true, "prefix(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Collection", true, "prefix(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Collection", true, "dropFirst(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Collection", true, "dropFirst(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Collection", true, "split(separator:maxSplits:omittingEmptySubsequences:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Collection", true, "flatMap(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Collection", true, "flatMap(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Collection", true, "trimmingPrefix(while:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Collection", true, "trimmingPrefix(while:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Collection", true, "trimmingPrefix(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Collection", true, "trimmingPrefix(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Collection", true, "makeIterator()", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Collection", true, "removeFirst()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "suffix(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "suffix(_:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Collection", true, "dropLast(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "dropLast(_:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Collection", true, "randomElement()", "", "", "Argument[self].CollectionElement", "ReturnValue.OptionalSome", "value", "manual"] + - ["", "Collection", true, "randomElement(using:)", "", "", "Argument[self].CollectionElement", "ReturnValue.OptionalSome", "value", "manual"] + - ["", "Collection", true, "popFirst()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "split(maxSplits:omittingEmptySubsequences:whereSeparator:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "prefix(through:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "prefix(through:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Collection", true, "suffix(from:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "prefix(upTo:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "prefix(upTo:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Collection", true, "prefix(while:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "prefix(while:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Collection", true, "prefix(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "prefix(_:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Collection", true, "dropFirst(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "dropFirst(_:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Collection", true, "split(separator:maxSplits:omittingEmptySubsequences:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "flatMap(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "flatMap(_:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Collection", true, "trimmingPrefix(while:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "trimmingPrefix(while:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Collection", true, "trimmingPrefix(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "trimmingPrefix(_:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - ["", "UnsafeRawPointer", true, "init(_:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - ["", "UnsafeRawPointer", true, "init(_:)", "", "", "Argument[0].OptionalSome.CollectionElement", "ReturnValue.OptionalSome.CollectionElement", "value", "manual"] - - ["", "UnsafeRawPointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[-1].CollectionElement", "Argument[2].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeRawPointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[self].CollectionElement", "Argument[2].Parameter[0].CollectionElement", "taint", "manual"] - ["", "UnsafeRawPointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[2].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "UnsafeRawPointer", true, "loadUnaligned(fromByteOffset:as:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "UnsafeRawPointer", true, "load(fromByteOffset:as:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "UnsafeRawPointer", true, "assumingMemoryBound(to:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeRawPointer", true, "bindMemory(to:capacity:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeRawPointer", true, "alignedDown(toMultipleOf:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeRawPointer", true, "alignedUp(toMultipleOf:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeRawPointer", true, "alignedDown(for:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeRawPointer", true, "alignedUp(for:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "Slice", true, "init(base:bounds:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Slice", true, "remove(at:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "value", "manual"] - - ["", "Slice", true, "insert(_:at:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "Slice", true, "insert(contentsOf:at:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "Slice", true, "replaceSubrange(_:with:)", "", "", "Argument[1].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "Slice", true, "storeBytes(of:toByteOffset:as:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "Slice", true, "update(repeating:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "Slice", true, "loadUnaligned(fromByteOffset:as:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "Slice", true, "load(fromByteOffset:as:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "Slice", true, "assumingMemoryBound(to:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "Slice", true, "withMemoryRebound(to:_:)", "", "", "Argument[-1].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "Slice", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "UnsafeRawPointer", true, "loadUnaligned(fromByteOffset:as:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeRawPointer", true, "load(fromByteOffset:as:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeRawPointer", true, "assumingMemoryBound(to:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeRawPointer", true, "bindMemory(to:capacity:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeRawPointer", true, "alignedDown(toMultipleOf:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeRawPointer", true, "alignedUp(toMultipleOf:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeRawPointer", true, "alignedDown(for:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeRawPointer", true, "alignedUp(for:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "Slice", true, "init(base:bounds:)", "", "", "Argument[base:].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Slice", true, "remove(at:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "value", "manual"] + - ["", "Slice", true, "insert(_:at:)", "", "", "Argument[0]", "Argument[self].CollectionElement", "value", "manual"] + - ["", "Slice", true, "insert(contentsOf:at:)", "", "", "Argument[contentsOf:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "Slice", true, "replaceSubrange(_:with:)", "", "", "Argument[with:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "Slice", true, "storeBytes(of:toByteOffset:as:)", "", "", "Argument[of:]", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "update(repeating:)", "", "", "Argument[repeating:]", "Argument[self].CollectionElement", "value", "manual"] + - ["", "Slice", true, "loadUnaligned(fromByteOffset:as:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "Slice", true, "load(fromByteOffset:as:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "Slice", true, "assumingMemoryBound(to:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "Slice", true, "withMemoryRebound(to:_:)", "", "", "Argument[self].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] - ["", "Slice", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "Slice", true, "bindMemory(to:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "Slice", true, "moveInitializeMemory(as:fromContentsOf:)", "", "", "Argument[1].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "Slice", true, "moveInitializeMemory(as:fromContentsOf:)", "", "", "Argument[1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "Slice", true, "initializeMemory(as:fromContentsOf:)", "", "", "Argument[1].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "Slice", true, "initializeMemory(as:fromContentsOf:)", "", "", "Argument[1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "Slice", true, "initializeMemory(as:from:)", "", "", "Argument[1].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "Slice", true, "initializeMemory(as:from:)", "", "", "Argument[1].CollectionElement", "ReturnValue.TupleElement[0,1].CollectionElement", "taint", "manual"] - - ["", "Slice", true, "initializeMemory(as:repeating:)", "", "", "Argument[1]", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "Slice", true, "initializeMemory(as:repeating:)", "", "", "Argument[1]", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "Slice", true, "copyBytes(from:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "Slice", true, "moveElement(from:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "value", "manual"] - - ["", "Slice", true, "initializeElement(at:to:)", "", "", "Argument[1]", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "Slice", true, "moveUpdate(fromContentsOf:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "Slice", true, "moveInitialize(fromContentsOf:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "Slice", true, "update(fromContentsOf:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "Slice", true, "update(from:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "Slice", true, "update(from:)", "", "", "Argument[0].CollectionElement", "ReturnValue.TupleElement[0].CollectionElement", "taint", "manual"] - - ["", "Slice", true, "initialize(fromContentsOf:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "Slice", true, "initialize(from:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "Slice", true, "initialize(from:)", "", "", "Argument[0].CollectionElement", "ReturnValue.TupleElement[0,1].CollectionElement", "taint", "manual"] - - ["", "Slice", true, "initialize(repeating:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "Slice", true, "withContiguousMutableStorageIfAvailable(to:_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "Slice", true, "withContiguousMutableStorageIfAvailable(to:_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "Slice", true, "withContiguousMutableStorageIfAvailable(to:_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "SignedInteger", true, "init(exactly:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "value", "manual"] + - ["", "Slice", true, "bindMemory(to:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "Slice", true, "moveInitializeMemory(as:fromContentsOf:)", "", "", "Argument[fromContentsOf:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "moveInitializeMemory(as:fromContentsOf:)", "", "", "Argument[fromContentsOf:].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "Slice", true, "initializeMemory(as:fromContentsOf:)", "", "", "Argument[fromContentsOf:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "initializeMemory(as:fromContentsOf:)", "", "", "Argument[fromContentsOf:].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "Slice", true, "initializeMemory(as:from:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "initializeMemory(as:from:)", "", "", "Argument[from:].CollectionElement", "ReturnValue.TupleElement[0,1].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "initializeMemory(as:repeating:)", "", "", "Argument[repeating:]", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "initializeMemory(as:repeating:)", "", "", "Argument[repeating:]", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "Slice", true, "copyBytes(from:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "moveElement(from:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "value", "manual"] + - ["", "Slice", true, "initializeElement(at:to:)", "", "", "Argument[to:]", "Argument[self].CollectionElement", "value", "manual"] + - ["", "Slice", true, "moveUpdate(fromContentsOf:)", "", "", "Argument[fromContentsOf:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "Slice", true, "moveInitialize(fromContentsOf:)", "", "", "Argument[fromContentsOf:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "Slice", true, "update(fromContentsOf:)", "", "", "Argument[fromContentsOf:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "Slice", true, "update(from:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "Slice", true, "update(from:)", "", "", "Argument[from:].CollectionElement", "ReturnValue.TupleElement[0].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "initialize(fromContentsOf:)", "", "", "Argument[fromContentsOf:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "initialize(from:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "initialize(from:)", "", "", "Argument[from:].CollectionElement", "ReturnValue.TupleElement[0,1].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "initialize(repeating:)", "", "", "Argument[repeating:]", "Argument[self].CollectionElement", "value", "manual"] + - ["", "Slice", true, "withContiguousMutableStorageIfAvailable(to:_:)", "", "", "Argument[self].CollectionElement", "Argument[to:].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "withContiguousMutableStorageIfAvailable(to:_:)", "", "", "Argument[to:].Parameter[0].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "withContiguousMutableStorageIfAvailable(to:_:)", "", "", "Argument[to:].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "SignedInteger", true, "init(exactly:)", "", "", "Argument[exactly:]", "ReturnValue.OptionalSome", "value", "manual"] - ["", "SignedInteger", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "BidirectionalCollection", true, "popLast()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "BidirectionalCollection", true, "suffix(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "BidirectionalCollection", true, "suffix(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "BidirectionalCollection", true, "dropLast(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "BidirectionalCollection", true, "dropLast(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "BidirectionalCollection", true, "suffix(from:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "BidirectionalCollection", true, "last(where:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "BidirectionalCollection", true, "joined(separator:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "BidirectionalCollection", true, "joined(separator:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "BidirectionalCollection", true, "joined(separator:)", "", "", "Argument[-1].CollectionElement.CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "BidirectionalCollection", true, "reversed()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "BidirectionalCollection", true, "reversed()", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "BidirectionalCollection", true, "popLast()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "BidirectionalCollection", true, "suffix(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "BidirectionalCollection", true, "suffix(_:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "BidirectionalCollection", true, "dropLast(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "BidirectionalCollection", true, "dropLast(_:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "BidirectionalCollection", true, "suffix(from:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "BidirectionalCollection", true, "last(where:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "BidirectionalCollection", true, "joined(separator:)", "", "", "Argument[self,separator:]", "ReturnValue", "taint", "manual"] + - ["", "BidirectionalCollection", true, "joined(separator:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "BidirectionalCollection", true, "joined(separator:)", "", "", "Argument[self].CollectionElement.CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "BidirectionalCollection", true, "reversed()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "BidirectionalCollection", true, "reversed()", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - ["", "String", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "String", true, "init(_:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "String", true, "init(repeating:count:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "insert(contentsOf:at:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["", "String", true, "init(extendedGraphemeClusterLiteral:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(unicodeScalarLiteral:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "encode(to:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["", "String", true, "init(from:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(from:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "String", true, "randomElement()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "randomElement(using:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "split(maxSplits:omittingEmptySubsequences:whereSeparator:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(stringLiteral:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(stringInterpolation:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(repeating:count:)", "", "", "Argument[repeating:]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "insert(contentsOf:at:)", "", "", "Argument[contentsOf:]", "Argument[self]", "taint", "manual"] + - ["", "String", true, "init(extendedGraphemeClusterLiteral:)", "", "", "Argument[extendedGraphemeClusterLiteral:]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(unicodeScalarLiteral:)", "", "", "Argument[unicodeScalarLiteral:]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "encode(to:)", "", "", "Argument[self]", "Argument[to:]", "taint", "manual"] + - ["", "String", true, "init(from:)", "", "", "Argument[from:]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(from:)", "", "", "Argument[from:]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "randomElement()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "randomElement(using:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "split(maxSplits:omittingEmptySubsequences:whereSeparator:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(stringLiteral:)", "", "", "Argument[stringLiteral:]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(stringInterpolation:)", "", "", "Argument[stringInterpolation:]", "ReturnValue", "taint", "manual"] - ["", "String", true, "decodeCString(_:as:repairingInvalidCodeUnits:)", "", "", "Argument[0]", "ReturnValue.TupleElement[0]", "taint", "manual"] - ["", "String", true, "decodeCString(_:as:repairingInvalidCodeUnits:)", "", "", "Argument[0].CollectionElement", "ReturnValue.TupleElement[0]", "taint", "manual"] - - ["", "String", true, "init(validatingUTF8:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "String", true, "init(validatingUTF8:)", "", "", "Argument[0].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "String", true, "enumerated()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "max(by:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "min(by:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "max()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "min()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "withUTF8(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "String", true, "withUTF8(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[-1]", "taint", "manual"] + - ["", "String", true, "init(validatingUTF8:)", "", "", "Argument[validatingUTF8:]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "init(validatingUTF8:)", "", "", "Argument[validatingUTF8:].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "enumerated()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "max(by:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "min(by:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "max()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "min()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "withUTF8(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "String", true, "withUTF8(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[self]", "taint", "manual"] - ["", "String", true, "withUTF8(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "String", true, "init(unsafeUninitializedCapacity:initializingUTF8With:)", "", "", "Argument[1].Parameter[0].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(unsafeUninitializedCapacity:initializingUTF8With:)", "", "", "Argument[initializingUTF8With:].Parameter[0].CollectionElement", "ReturnValue", "taint", "manual"] - ["", "String", true, "init(_:radix:uppercase:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(validating:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "String", true, "init(describing:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(contentsOf:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(contentsOfFile:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(contentsOf:encoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(contentsOfFile:encoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(contentsOfFile:usedEncoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(platformString:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(platformString:)", "", "", "Argument[0].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "String", true, "withPlatformString(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "String", true, "init(validating:)", "", "", "Argument[validating:]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "init(describing:)", "", "", "Argument[describing:]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(contentsOf:)", "", "", "Argument[contentsOf:]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(contentsOfFile:)", "", "", "Argument[contentsOfFile:]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(contentsOf:encoding:)", "", "", "Argument[contentsOf:]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(contentsOfFile:encoding:)", "", "", "Argument[contentsOfFile:]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(contentsOfFile:usedEncoding:)", "", "", "Argument[contentsOfFile:]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(platformString:)", "", "", "Argument[platformString:]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(platformString:)", "", "", "Argument[platformString:].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "String", true, "withPlatformString(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - ["", "String", true, "withPlatformString(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "String", true, "init(bytesNoCopy:length:encoding:freeWhenDone:)", "", "", "Argument[0].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "String", true, "init(cString:encoding:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "String", true, "init(cString:encoding:)", "", "", "Argument[0].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "String", true, "init(data:encoding:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "String", true, "init(format:_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(bytesNoCopy:length:encoding:freeWhenDone:)", "", "", "Argument[bytesNoCopy:].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "init(cString:encoding:)", "", "", "Argument[cString:]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "init(cString:encoding:)", "", "", "Argument[cString:].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "init(data:encoding:)", "", "", "Argument[data:]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "init(format:_:)", "", "", "Argument[format:]", "ReturnValue", "taint", "manual"] - ["", "String", true, "init(format:_:)", "", "", "Argument[1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(format:arguments:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(format:arguments:)", "", "", "Argument[1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(format:locale:_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(format:arguments:)", "", "", "Argument[format:]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(format:arguments:)", "", "", "Argument[arguments:].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(format:locale:_:)", "", "", "Argument[format:]", "ReturnValue", "taint", "manual"] - ["", "String", true, "init(format:locale:_:)", "", "", "Argument[2].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(format:locale:arguments:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(format:locale:arguments:)", "", "", "Argument[2].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(utf8String:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "String", true, "init(utf8String:)", "", "", "Argument[0].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "init(format:locale:arguments:)", "", "", "Argument[format:]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(format:locale:arguments:)", "", "", "Argument[arguments:].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(utf8String:)", "", "", "Argument[utf8String:]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "init(utf8String:)", "", "", "Argument[utf8String:].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] - ["", "String", true, "localizedStringWithFormat(_:_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "String", true, "localizedStringWithFormat(_:_:)", "", "", "Argument[1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(bytes:encoding:)", "", "", "Argument[0].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "String", true, "init(contendsOf:usedEncoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(decoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(utf16CodeUnits:count:)", "", "", "Argument[0].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(utf16CodeUnitsNoCopy:count:freeWhenDone:)", "", "", "Argument[0].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(validatingPlatformString:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "String", true, "init(validatingPlatformString:)", "", "", "Argument[0].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "String", true, "subscript(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "withMutableCharacters(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0]", "value", "manual"] - - ["", "String", true, "withMutableCharacters(_:)", "", "", "Argument[0].Parameter[0]", "Argument[-1]", "value", "manual"] - - ["", "String", true, "withMutableCharacters(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[-1]", "taint", "manual"] + - ["", "String", true, "init(bytes:encoding:)", "", "", "Argument[bytes:].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "init(contendsOf:usedEncoding:)", "", "", "Argument[contendsOf:]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(decoding:)", "", "", "Argument[decoding:]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(utf16CodeUnits:count:)", "", "", "Argument[utf16CodeUnits:].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(utf16CodeUnitsNoCopy:count:freeWhenDone:)", "", "", "Argument[utf16CodeUnitsNoCopy:].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(validatingPlatformString:)", "", "", "Argument[validatingPlatformString:]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "init(validatingPlatformString:)", "", "", "Argument[validatingPlatformString:].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "subscript(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "withMutableCharacters(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0]", "value", "manual"] + - ["", "String", true, "withMutableCharacters(_:)", "", "", "Argument[0].Parameter[0]", "Argument[self]", "value", "manual"] + - ["", "String", true, "withMutableCharacters(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[self]", "taint", "manual"] - ["", "String", true, "withMutableCharacters(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "BinaryFloatingPoint", true, "init(sign:exponentBitPattern:significandBitPattern:)", "", "", "Argument[0..2]", "ReturnValue", "taint", "manual"] - - ["", "BinaryFloatingPoint", true, "formatted()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "BinaryFloatingPoint", true, "formatted(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "BinaryFloatingPoint", true, "init(sign:exponentBitPattern:significandBitPattern:)", "", "", "Argument[sign:,exponentBitPattern:,significandBitPattern:]", "ReturnValue", "taint", "manual"] + - ["", "BinaryFloatingPoint", true, "formatted()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "BinaryFloatingPoint", true, "formatted(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "BinaryFloatingPoint", true, "init(_:format:lenient:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "BinaryFloatingPoint", true, "init(_:strategy:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "UnsafeRawBufferPointer", true, "init(_:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "UnsafeRawBufferPointer", true, "init(start:count:)", "", "", "Argument[0].OptionalSome.CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeRawBufferPointer", true, "loadUnaligned(fromByteOffset:as:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "UnsafeRawBufferPointer", true, "load(fromByteOffset:as:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "UnsafeRawBufferPointer", true, "assumingMemoryBound(to:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeRawBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[-1].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeRawBufferPointer", true, "init(start:count:)", "", "", "Argument[start:].OptionalSome.CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeRawBufferPointer", true, "loadUnaligned(fromByteOffset:as:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeRawBufferPointer", true, "load(fromByteOffset:as:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeRawBufferPointer", true, "assumingMemoryBound(to:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeRawBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[self].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] - ["", "UnsafeRawBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "UnsafeRawBufferPointer", true, "bindMemory(to:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeRawBufferPointer", true, "init(rebasing:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Array", true, "withUnsafeMutableBufferPointer(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "Array", true, "withUnsafeMutableBufferPointer(_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "value", "manual"] - - ["", "Array", true, "withUnsafeMutableBufferPointer(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "UnsafeRawBufferPointer", true, "bindMemory(to:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeRawBufferPointer", true, "init(rebasing:)", "", "", "Argument[rebasing:].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Array", true, "withUnsafeMutableBufferPointer(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Array", true, "withUnsafeMutableBufferPointer(_:)", "", "", "Argument[self].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "value", "manual"] + - ["", "Array", true, "withUnsafeMutableBufferPointer(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] - ["", "Array", true, "withUnsafeMutableBufferPointer(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "Array", true, "withUnsafeBufferPointer(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "Array", true, "withUnsafeBufferPointer(_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "value", "manual"] + - ["", "Array", true, "withUnsafeBufferPointer(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Array", true, "withUnsafeBufferPointer(_:)", "", "", "Argument[self].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "value", "manual"] - ["", "Array", true, "withUnsafeBufferPointer(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "Array", true, "makeIterator()", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Array", true, "insert(_:at:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "Array", true, "insert(_:at:)", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["", "Array", true, "init(arrayLiteral:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Array", true, "withUnsafeBytes(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "Array", true, "withUnsafeBytes(_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Array", true, "makeIterator()", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Array", true, "insert(_:at:)", "", "", "Argument[0]", "Argument[self].CollectionElement", "value", "manual"] + - ["", "Array", true, "insert(_:at:)", "", "", "Argument[at:]", "Argument[self]", "taint", "manual"] + - ["", "Array", true, "init(arrayLiteral:)", "", "", "Argument[arrayLiteral:].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Array", true, "withUnsafeBytes(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Array", true, "withUnsafeBytes(_:)", "", "", "Argument[self].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - ["", "Array", true, "withUnsafeBytes(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "Array", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "Array", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "Array", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "Array", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Array", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[self].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Array", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] - ["", "Array", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "MutableCollection", true, "withContiguousMutableStorageIfAvailable(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "MutableCollection", true, "withContiguousMutableStorageIfAvailable(_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "value", "manual"] - - ["", "MutableCollection", true, "withContiguousMutableStorageIfAvailable(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "MutableCollection", true, "withContiguousMutableStorageIfAvailable(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "MutableCollection", true, "withContiguousMutableStorageIfAvailable(_:)", "", "", "Argument[self].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "value", "manual"] + - ["", "MutableCollection", true, "withContiguousMutableStorageIfAvailable(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] - ["", "MutableCollection", true, "withContiguousMutableStorageIfAvailable(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue.OptionalSome", "value", "manual"] - ["", "RangeReplaceableCollection", true, "init(_:)", "", "", "Argument[0]", "ReturnValue.CollectionElement", "taint", "manual"] - ["", "RangeReplaceableCollection", true, "init(_:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "RangeReplaceableCollection", true, "append(_:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["", "RangeReplaceableCollection", true, "remove(at:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "RangeReplaceableCollection", true, "insert(_:at:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["", "RangeReplaceableCollection", true, "append(contentsOf:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["", "RangeReplaceableCollection", true, "init(repeating:count:)", "", "", "Argument[0]", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "RangeReplaceableCollection", true, "removeFirst()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "RangeReplaceableCollection", true, "replaceSubrange(_:with:)", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["", "RangeReplaceableCollection", true, "replaceSubrange(_:with:)", "", "", "Argument[1].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "RangeReplaceableCollection", true, "removeLast()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "IteratorProtocol", true, "next()", "", "", "Argument[-1].CollectionElement", "ReturnValue.OptionalSome", "value", "manual"] + - ["", "RangeReplaceableCollection", true, "append(_:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] + - ["", "RangeReplaceableCollection", true, "remove(at:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "RangeReplaceableCollection", true, "insert(_:at:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] + - ["", "RangeReplaceableCollection", true, "append(contentsOf:)", "", "", "Argument[contentsOf:]", "Argument[self]", "taint", "manual"] + - ["", "RangeReplaceableCollection", true, "init(repeating:count:)", "", "", "Argument[repeating:]", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "RangeReplaceableCollection", true, "removeFirst()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "RangeReplaceableCollection", true, "replaceSubrange(_:with:)", "", "", "Argument[with:]", "Argument[self]", "taint", "manual"] + - ["", "RangeReplaceableCollection", true, "replaceSubrange(_:with:)", "", "", "Argument[with:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "RangeReplaceableCollection", true, "removeLast()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "IteratorProtocol", true, "next()", "", "", "Argument[self].CollectionElement", "ReturnValue.OptionalSome", "value", "manual"] - ["", "UnsafeMutableRawBufferPointer", true, "init(_:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "init(start:count:)", "", "", "Argument[0].OptionalSome.CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "init(mutating:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "storeBytes(of:toByteOffset:as:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "loadUnaligned(fromByteOffset:as:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "load(fromByteOffset:as:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "assumingMemoryBound(to:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[-1].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "init(start:count:)", "", "", "Argument[start:].OptionalSome.CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "init(mutating:)", "", "", "Argument[mutating:].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "storeBytes(of:toByteOffset:as:)", "", "", "Argument[of:]", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "loadUnaligned(fromByteOffset:as:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "load(fromByteOffset:as:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "assumingMemoryBound(to:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[self].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] - ["", "UnsafeMutableRawBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "bindMemory(to:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "moveInitializeMemory(as:fromContentsOf:)", "", "", "Argument[1].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "moveInitializeMemory(as:fromContentsOf:)", "", "", "Argument[1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "initializeMemory(as:fromContentsOf:)", "", "", "Argument[1].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "initializeMemory(as:fromContentsOf:)", "", "", "Argument[1].CollectionElement", "ReturnValue.TupleElement[0,1].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "initializeMemory(as:from:)", "", "", "Argument[1].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "initializeMemory(as:from:)", "", "", "Argument[1].CollectionElement", "ReturnValue.TupleElement[0,1].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "initializeMemory(as:repeating:)", "", "", "Argument[1]", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "initializeMemory(as:repeating:)", "", "", "Argument[1]", "ReturnValue.TupleElement[0,1].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "copyBytes(from:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "init(rebasing:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "copyMemory(from:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "bindMemory(to:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "moveInitializeMemory(as:fromContentsOf:)", "", "", "Argument[fromContentsOf:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "moveInitializeMemory(as:fromContentsOf:)", "", "", "Argument[fromContentsOf:].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "initializeMemory(as:fromContentsOf:)", "", "", "Argument[fromContentsOf:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "initializeMemory(as:fromContentsOf:)", "", "", "Argument[fromContentsOf:].CollectionElement", "ReturnValue.TupleElement[0,1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "initializeMemory(as:from:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "initializeMemory(as:from:)", "", "", "Argument[from:].CollectionElement", "ReturnValue.TupleElement[0,1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "initializeMemory(as:repeating:)", "", "", "Argument[repeating:]", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "initializeMemory(as:repeating:)", "", "", "Argument[repeating:]", "ReturnValue.TupleElement[0,1].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "copyBytes(from:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "init(rebasing:)", "", "", "Argument[rebasing:].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "copyMemory(from:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] - ["", "LosslessStringConvertible", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "RawRepresentable", true, "init(rawValue:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "Dictionary", true, "makeIterator()", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Dictionary", true, "updateValue(_:forKey:)", "", "", "Argument[0]", "Argument[-1].CollectionElement.TupleElement[1]", "value", "manual"] - - ["", "Dictionary", true, "updateValue(_:forKey:)", "", "", "Argument[1]", "Argument[-1].CollectionElement.TupleElement[0]", "value", "manual"] - - ["", "Dictionary", true, "updateValue(_:forKey:)", "", "", "Argument[-1].CollectionElement.TupleElement[1]", "ReturnValue.OptionalSome", "value", "manual"] + - ["", "RawRepresentable", true, "init(rawValue:)", "", "", "Argument[rawValue:]", "ReturnValue", "taint", "manual"] + - ["", "Dictionary", true, "makeIterator()", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Dictionary", true, "updateValue(_:forKey:)", "", "", "Argument[0]", "Argument[self].CollectionElement.TupleElement[1]", "value", "manual"] + - ["", "Dictionary", true, "updateValue(_:forKey:)", "", "", "Argument[forKey:]", "Argument[self].CollectionElement.TupleElement[0]", "value", "manual"] + - ["", "Dictionary", true, "updateValue(_:forKey:)", "", "", "Argument[self].CollectionElement.TupleElement[1]", "ReturnValue.OptionalSome", "value", "manual"] - ["", "Set", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "Set", true, "init(_:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Set", true, "remove(at:)", "", "", "Argument[-1].CollectionElement", "ReturnValue", "value", "manual"] - - ["", "Set", true, "removeFirst()", "", "", "Argument[-1].CollectionElement", "ReturnValue", "value", "manual"] - - ["", "Set", true, "filter(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "Set", true, "insert(_:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "Set", true, "remove(at:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "value", "manual"] + - ["", "Set", true, "removeFirst()", "", "", "Argument[self].CollectionElement", "ReturnValue", "value", "manual"] + - ["", "Set", true, "filter(_:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "Set", true, "insert(_:)", "", "", "Argument[0]", "Argument[self].CollectionElement", "value", "manual"] - ["", "Set", true, "insert(_:)", "", "", "Argument[0]", "ReturnValue.TupleElement[1]", "taint", "manual"] - - ["", "Set", true, "intersection(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "Set", true, "subtracting(_:)", "", "", "Argument[-1].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "Set", true, "symmetricDifference(_:)", "", "", "Argument[-1..0].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "Set", true, "union(_:)", "", "", "Argument[-1..0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Set", true, "update(with:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "Set", true, "update(with:)", "", "", "Argument[0]", "Argument[-1].CollectionElement", "value", "manual"] + - ["", "Set", true, "intersection(_:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "Set", true, "subtracting(_:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "Set", true, "symmetricDifference(_:)", "", "", "Argument[self,0].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "Set", true, "union(_:)", "", "", "Argument[self,0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Set", true, "update(with:)", "", "", "Argument[with:]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "Set", true, "update(with:)", "", "", "Argument[with:]", "Argument[self].CollectionElement", "value", "manual"] - ["", "Set", true, "remove(_:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "Set", true, "formSymmetricDifference(_:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] - - ["", "Set", true, "formUnion(_:)", "", "", "Argument[0].CollectionElement", "Argument[-1].CollectionElement", "value", "manual"] - - ["", "TextOutputStreamable", true, "write(to:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["", "TextOutputStream", true, "write(_:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["", "Substring", true, "withUTF8(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "Substring", true, "withUTF8(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[-1]", "taint", "manual"] + - ["", "Set", true, "formSymmetricDifference(_:)", "", "", "Argument[0].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "Set", true, "formUnion(_:)", "", "", "Argument[0].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "TextOutputStreamable", true, "write(to:)", "", "", "Argument[self]", "Argument[to:]", "taint", "manual"] + - ["", "TextOutputStream", true, "write(_:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] + - ["", "Substring", true, "withUTF8(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Substring", true, "withUTF8(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[self]", "taint", "manual"] - ["", "Substring", true, "withUTF8(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "StringProtocol", true, "withCString(encodedAs:_:)", "", "", "Argument[-1]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "StringProtocol", true, "withCString(encodedAs:_:)", "", "", "Argument[self]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] - ["", "StringProtocol", true, "withCString(encodedAs:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "StringProtocol", true, "withCString(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "StringProtocol", true, "withCString(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - ["", "StringProtocol", true, "withCString(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "StringProtocol", true, "init(decodingCString:as:)", "", "", "Argument[0].OptionalSome.CollectionElement", "ReturnValue.OptionalSome.TupleElement[0]", "taint", "manual"] - - ["", "StringProtocol", true, "init(cString:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "init(cString:)", "", "", "Argument[0].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "init(decoding:as:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "uppercased()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "lowercased()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "getBytes(_:maxLength:usedLength:encoding:options:range:remaining:)", "", "", "Argument[-1]", "Argument[0].CollectionElement", "taint", "manual"] - - ["", "StringProtocol", true, "getCString(_:maxLength:encoding:)", "", "", "Argument[-1]", "Argument[0].CollectionElement", "taint", "manual"] - - ["", "StringProtocol", true, "appending(_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "addingPercentEscapes(using:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "appendingFormat(_:_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "init(decodingCString:as:)", "", "", "Argument[decodingCString:].OptionalSome.CollectionElement", "ReturnValue.OptionalSome.TupleElement[0]", "taint", "manual"] + - ["", "StringProtocol", true, "init(cString:)", "", "", "Argument[cString:]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "init(cString:)", "", "", "Argument[cString:].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "init(decoding:as:)", "", "", "Argument[decoding:]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "uppercased()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "lowercased()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "getBytes(_:maxLength:usedLength:encoding:options:range:remaining:)", "", "", "Argument[self]", "Argument[0].CollectionElement", "taint", "manual"] + - ["", "StringProtocol", true, "getCString(_:maxLength:encoding:)", "", "", "Argument[self]", "Argument[0].CollectionElement", "taint", "manual"] + - ["", "StringProtocol", true, "appending(_:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "addingPercentEscapes(using:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "appendingFormat(_:_:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] - ["", "StringProtocol", true, "appendingFormat(_:_:)", "", "", "Argument[1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "applyingTransform(_:reverse:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "cString(using:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "capitalized(with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "completePath(into:caseSensitive:matchesInto:filterTypes:)", "", "", "Argument[-1]", "Argument[0].CollectionElement", "taint", "manual"] - - ["", "StringProtocol", true, "completePath(into:caseSensitive:matchesInto:filterTypes:)", "", "", "Argument[-1]", "Argument[2].CollectionElement.CollectionElement", "taint", "manual"] - - ["", "StringProtocol", true, "components(separatedBy:)", "", "", "Argument[-1]", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "StringProtocol", true, "data(using:allowLossyConversion:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "folding(options:locale:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "lowercased(with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "padding(toLength:withPad:startingAt:)", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "padding(toLength:withPad:startingAt:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "propertyList()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "propertyListFromStringsFileFormat()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "replacingCharacters(in:with:)", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "replacingCharacters(in:with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "replacingOccurrences(of:with:options:range:)", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "replacingOccurrences(of:with:options:range:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "replacingPercentEscapes(using:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "substring(from:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "substring(with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "trimmingCharacters(in:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "uppercased(with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "addingPercentEncoding(withAllowedCharacter:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Strideable", true, "advanced(by:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "Strideable", true, "distance(to:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "applyingTransform(_:reverse:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "cString(using:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "capitalized(with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "completePath(into:caseSensitive:matchesInto:filterTypes:)", "", "", "Argument[self]", "Argument[into:].CollectionElement", "taint", "manual"] + - ["", "StringProtocol", true, "completePath(into:caseSensitive:matchesInto:filterTypes:)", "", "", "Argument[self]", "Argument[matchesInto:].CollectionElement.CollectionElement", "taint", "manual"] + - ["", "StringProtocol", true, "components(separatedBy:)", "", "", "Argument[self]", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "StringProtocol", true, "data(using:allowLossyConversion:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "folding(options:locale:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "lowercased(with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "padding(toLength:withPad:startingAt:)", "", "", "Argument[withPad:]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "padding(toLength:withPad:startingAt:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "propertyList()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "propertyListFromStringsFileFormat()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "replacingCharacters(in:with:)", "", "", "Argument[with:]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "replacingCharacters(in:with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "replacingOccurrences(of:with:options:range:)", "", "", "Argument[with:]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "replacingOccurrences(of:with:options:range:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "replacingPercentEscapes(using:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "substring(from:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "substring(with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "trimmingCharacters(in:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "uppercased(with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "addingPercentEncoding(withAllowedCharacter:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Strideable", true, "advanced(by:)", "", "", "Argument[self,by:]", "ReturnValue", "taint", "manual"] + - ["", "Strideable", true, "distance(to:)", "", "", "Argument[self,to:]", "ReturnValue", "taint", "manual"] - ["", "FloatingPoint", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "FloatingPoint", true, "rounded(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "FloatingPoint", true, "maximumMagnitude(_:_:)", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["", "FloatingPoint", true, "minimumMagnitude(_:_:)", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["", "FloatingPoint", true, "maximum(_:_:)", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["", "FloatingPoint", true, "minimum(_:_:)", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["", "FloatingPoint", true, "addProduct(_:_:)", "", "", "Argument[-1..1]", "Argument[-1]", "taint", "manual"] - - ["", "FloatingPoint", true, "addingProduct(_:_:)", "", "", "Argument[-1..1]", "ReturnValue", "taint", "manual"] - - ["", "FloatingPoint", true, "squareRoot()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "FloatingPoint", true, "formTruncatingRemainder(dividingBy:)", "", "", "Argument[-1..0]", "Argument[-1]", "taint", "manual"] - - ["", "FloatingPoint", true, "truncatingRemainder(dividingBy:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "FloatingPoint", true, "formRemainder(dividingBy:)", "", "", "Argument[-1..0]", "Argument[-1]", "taint", "manual"] - - ["", "FloatingPoint", true, "remainder(dividingBy:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "FloatingPoint", true, "init(signOf:magnitudeOf:)", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["", "FloatingPoint", true, "init(sign:exponent:significand:)", "", "", "Argument[1..2]", "ReturnValue", "taint", "manual"] - - ["", "FloatingPoint", true, "rounded()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "OptionSet", true, "init(rawValue:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "", false, "min(_:_:)", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["", "", false, "min(_:_:_:_:)", "", "", "Argument[0..2]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "rounded(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "maximumMagnitude(_:_:)", "", "", "Argument[0,1]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "minimumMagnitude(_:_:)", "", "", "Argument[0,1]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "maximum(_:_:)", "", "", "Argument[0,1]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "minimum(_:_:)", "", "", "Argument[0,1]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "addProduct(_:_:)", "", "", "Argument[self,0,1]", "Argument[self]", "taint", "manual"] + - ["", "FloatingPoint", true, "addingProduct(_:_:)", "", "", "Argument[self,0,1]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "squareRoot()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "formTruncatingRemainder(dividingBy:)", "", "", "Argument[self,dividingBy:]", "Argument[self]", "taint", "manual"] + - ["", "FloatingPoint", true, "truncatingRemainder(dividingBy:)", "", "", "Argument[self,dividingBy:]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "formRemainder(dividingBy:)", "", "", "Argument[self,dividingBy:]", "Argument[self]", "taint", "manual"] + - ["", "FloatingPoint", true, "remainder(dividingBy:)", "", "", "Argument[self,dividingBy:]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "init(signOf:magnitudeOf:)", "", "", "Argument[magnitudeOf:]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "init(sign:exponent:significand:)", "", "", "Argument[exponent:,significand:]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "rounded()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "OptionSet", true, "init(rawValue:)", "", "", "Argument[rawValue:]", "ReturnValue", "taint", "manual"] + - ["", "", false, "min(_:_:)", "", "", "Argument[0,1]", "ReturnValue", "taint", "manual"] + - ["", "", false, "min(_:_:_:_:)", "", "", "Argument[0,1,2]", "ReturnValue", "taint", "manual"] - ["", "", false, "min(_:_:_:_:)", "", "", "Argument[3].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "", false, "max(_:_:)", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["", "", false, "max(_:_:_:_:)", "", "", "Argument[0..2]", "ReturnValue", "taint", "manual"] + - ["", "", false, "max(_:_:)", "", "", "Argument[0,1]", "ReturnValue", "taint", "manual"] + - ["", "", false, "max(_:_:_:_:)", "", "", "Argument[0,1,2]", "ReturnValue", "taint", "manual"] - ["", "", false, "max(_:_:_:_:)", "", "", "Argument[3].CollectionElement", "ReturnValue", "taint", "manual"] - ["", "", false, "unsafeBitCast(_:to:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "", false, "unsafeDowncast(_:to:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "", false, "dump(_:to:name:indent:maxDepth:maxItems:)", "", "", "Argument[0,2]", "Argument[1]", "taint", "manual"] + - ["", "", false, "dump(_:to:name:indent:maxDepth:maxItems:)", "", "", "Argument[0,name:]", "Argument[to:]", "taint", "manual"] - ["", "", false, "abs(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "", false, "numericCast(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "", false, "withExtendedLifetime(_:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "", false, "withUnsafeMutablePointer(to:_:)", "", "", "Argument[0]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "", false, "withUnsafeMutablePointer(to:_:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[0]", "value", "manual"] + - ["", "", false, "withUnsafeMutablePointer(to:_:)", "", "", "Argument[to:]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "", false, "withUnsafeMutablePointer(to:_:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[to:]", "value", "manual"] - ["", "", false, "withUnsafeMutablePointer(to:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "", false, "withUnsafePointer(to:_:)", "", "", "Argument[0]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "", false, "withUnsafePointer(to:_:)", "", "", "Argument[to:]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] - ["", "", false, "withUnsafePointer(to:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - ["", "", false, "swap(_:_:)", "", "", "Argument[0]", "Argument[1]", "value", "manual"] - ["", "", false, "swap(_:_:)", "", "", "Argument[1]", "Argument[0]", "value", "manual"] - - ["", "", false, "print(_:separator:terminator:to:)", "", "", "Argument[0].CollectionElement", "Argument[3]", "taint", "manual"] - - ["", "", false, "print(_:separator:terminator:to:)", "", "", "Argument[1..2]", "Argument[3]", "taint", "manual"] - - ["", "", false, "debugPrint(_:separator:terminator:to:)", "", "", "Argument[0].CollectionElement", "Argument[3]", "taint", "manual"] - - ["", "", false, "debugPrint(_:separator:terminator:to:)", "", "", "Argument[1..2]", "Argument[3]", "taint", "manual"] + - ["", "", false, "print(_:separator:terminator:to:)", "", "", "Argument[0].CollectionElement", "Argument[to:]", "taint", "manual"] + - ["", "", false, "print(_:separator:terminator:to:)", "", "", "Argument[separator:,terminator:]", "Argument[to:]", "taint", "manual"] + - ["", "", false, "debugPrint(_:separator:terminator:to:)", "", "", "Argument[0].CollectionElement", "Argument[to:]", "taint", "manual"] + - ["", "", false, "debugPrint(_:separator:terminator:to:)", "", "", "Argument[separator:,terminator:]", "Argument[to:]", "taint", "manual"] - ["", "", false, "withUnsafeTemporaryAllocation(byteCount:alignment:_:)", "", "", "Argument[2].ReturnValue", "ReturnValue", "value", "manual"] - ["", "", false, "withUnsafeTemporaryAllocation(of:capacity:_:)", "", "", "Argument[2].ReturnValue", "ReturnValue", "value", "manual"] - ["", "", false, "withVaList(_:_:)", "", "", "Argument[0]", "Argument[1].Parameter[0]", "value", "manual"] - ["", "", false, "getVaList(_:)", "", "", "Argument[0].CollectionElement", "ReturnValue", "value", "manual"] - - ["", "", false, "withUnsafeMutableBytes(of:_:)", "", "", "Argument[0]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "", false, "withUnsafeMutableBytes(of:_:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[0]", "taint", "manual"] + - ["", "", false, "withUnsafeMutableBytes(of:_:)", "", "", "Argument[of:]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "", false, "withUnsafeMutableBytes(of:_:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[of:]", "taint", "manual"] - ["", "", false, "withUnsafeMutableBytes(of:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "", false, "withUnsafeBytes(of:_:)", "", "", "Argument[0]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "", false, "withUnsafeBytes(of:_:)", "", "", "Argument[of:]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] - ["", "", false, "withUnsafeBytes(of:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "", false, "<-(_:_:)", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["", "", false, "<-(_:_:)", "", "", "Argument[0,1]", "ReturnValue", "taint", "manual"] - ["", "", false, "JSStringRetain(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "", false, "JSStringCreateWithUTF8CString(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "", false, "JSStringCreateWithCharacters(_:_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "URL", true, "init(_:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "URL", true, "init(fileReferenceLiteralResourceName:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(string:)", "(String)", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "URL", true, "appendingPathExtension(for:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "appendingPathComponent(_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "appendingPathExtension(_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "appendingPathComponent(_:isDirectory:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "appendingPathComponent(_:conformingTo:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "formatted()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "formatted(_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(fileReferenceLiteralResourceName:)", "", "", "Argument[fileReferenceLiteralResourceName:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(string:)", "(String)", "", "Argument[string:]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "URL", true, "appendingPathExtension(for:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "appendingPathComponent(_:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "appendingPathExtension(_:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "appendingPathComponent(_:isDirectory:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "appendingPathComponent(_:conformingTo:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "formatted()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "formatted(_:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] - ["", "URL", true, "init(_:strategy:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "append(component:directoryHint:)", "", "", "Argument[-1..0]", "Argument[-1]", "taint", "manual"] - - ["", "URL", true, "append(components:directoryHint:)", "", "", "Argument[-1..0]", "Argument[-1]", "taint", "manual"] - - ["", "URL", true, "append(path:directoryHint:)", "", "", "Argument[-1..0]", "Argument[-1]", "taint", "manual"] - - ["", "URL", true, "append(queryItems:)", "", "", "Argument[-1..0]", "Argument[-1]", "taint", "manual"] - - ["", "URL", true, "appendPathComponent(_:)", "", "", "Argument[-1..0]", "Argument[-1]", "taint", "manual"] - - ["", "URL", true, "appendPathComponent(_:conformingTo:)", "", "", "Argument[-1..0]", "Argument[-1]", "taint", "manual"] - - ["", "URL", true, "appendPathComponent(_:isDirectory:)", "", "", "Argument[-1..0]", "Argument[-1]", "taint", "manual"] - - ["", "URL", true, "appendPathExtension(_:)", "", "", "Argument[-1..0]", "Argument[-1]", "taint", "manual"] - - ["", "URL", true, "appending(component:directoryHint:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "appending(components:directoryHint:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "appending(path:directoryHint:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "appending(queryItems:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "bookmarkData(options:includingResourceValuesForKeys:relativeTo:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "bookmarkData(options:includingResourceValuesForKeys:relativeTo:)", "", "", "Argument[1].OptionalSome.CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "bookmarkData(options:includingResourceValuesForKeys:relativeTo:)", "", "", "Argument[2].OptionalSome", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "bookmarkData(withContentsOf:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "deletingLastPathComponent()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "deletingPathExtension()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "fragment(percentEncoded:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "homeDirectory(forUser:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "host(percentEncoded:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "append(component:directoryHint:)", "", "", "Argument[self,component:]", "Argument[self]", "taint", "manual"] + - ["", "URL", true, "append(components:directoryHint:)", "", "", "Argument[self,components:]", "Argument[self]", "taint", "manual"] + - ["", "URL", true, "append(path:directoryHint:)", "", "", "Argument[self,path:]", "Argument[self]", "taint", "manual"] + - ["", "URL", true, "append(queryItems:)", "", "", "Argument[self,queryItems:]", "Argument[self]", "taint", "manual"] + - ["", "URL", true, "appendPathComponent(_:)", "", "", "Argument[self,0]", "Argument[self]", "taint", "manual"] + - ["", "URL", true, "appendPathComponent(_:conformingTo:)", "", "", "Argument[self,0]", "Argument[self]", "taint", "manual"] + - ["", "URL", true, "appendPathComponent(_:isDirectory:)", "", "", "Argument[self,0]", "Argument[self]", "taint", "manual"] + - ["", "URL", true, "appendPathExtension(_:)", "", "", "Argument[self,0]", "Argument[self]", "taint", "manual"] + - ["", "URL", true, "appending(component:directoryHint:)", "", "", "Argument[self,component:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "appending(components:directoryHint:)", "", "", "Argument[self,components:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "appending(path:directoryHint:)", "", "", "Argument[self,path:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "appending(queryItems:)", "", "", "Argument[self,queryItems:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "bookmarkData(options:includingResourceValuesForKeys:relativeTo:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "bookmarkData(options:includingResourceValuesForKeys:relativeTo:)", "", "", "Argument[includingResourceValuesForKeys:].OptionalSome.CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "bookmarkData(options:includingResourceValuesForKeys:relativeTo:)", "", "", "Argument[relativeTo:].OptionalSome", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "bookmarkData(withContentsOf:)", "", "", "Argument[withContentsOf:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "deletingLastPathComponent()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "deletingPathExtension()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "fragment(percentEncoded:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "homeDirectory(forUser:)", "", "", "Argument[forUser:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "host(percentEncoded:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "URL", true, "init(_:isDirectory:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "URL", true, "init(dataRepresentation:relativeTo:isAbsolute:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(dataRepresentation:relativeTo:isAbsolute:)", "", "", "Argument[1].OptionalSome", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(filePath:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "URL", true, "init(filePath:directoryHint:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "URL", true, "init(filePath:directoryHint:relativeTo:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(filePath:directoryHint:relativeTo:)", "", "", "Argument[2].OptionalSome", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(filePath:isDirectory:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "URL", true, "init(fileURLWithFileSystemRepresentation:isDirectory:relativeTo:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(fileURLWithFileSystemRepresentation:isDirectory:relativeTo:)", "", "", "Argument[2].OptionalSome", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(fileURLWithPath:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(fileURLWithPath:isDirectory:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(fileURLWithPath:isDirectory:relativeTo:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(fileURLWithPath:isDirectory:relativeTo:)", "", "", "Argument[2].OptionalSome", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(fileURLWithPath:relativeTo:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(fileURLWithPath:relativeTo:)", "", "", "Argument[1].OptionalSome", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(for:in:appropriateFor:create:)", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(for:in:appropriateFor:create:)", "", "", "Argument[2].OptionalSome", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(resolvingAliasFileAt:options:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(resolvingBookmarkData:options:relativeTo:bookmarkDataIsStale:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(resolvingBookmarkData:options:relativeTo:bookmarkDataIsStale:)", "", "", "Argument[2].OptionalSome", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(resource:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(string:encodingInvalidCharacters:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "URL", true, "init(string:relativeTo:)", "(String,URL?)", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "URL", true, "init(string:relativeTo:)", "(String,URL?)", "", "Argument[1].OptionalSome", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "URL", true, "password(percentEncoded:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "path(percentEncoded:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "promisedItemResourceValues(forKeys:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "query(percentEncoded:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "resolvingSymlinksInPath()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "resourceValues(forKeys:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "resourceValues(forKeys:fromBookmarkData:)", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "setResourceValues(_:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["", "URL", true, "setTemporaryResourceValue(_:forKey:)", "", "", "Argument[-1..0]", "Argument[-1]", "taint", "manual"] - - ["", "URL", true, "user(percentEncoded:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "withUnsafeFileSystemRepresentation(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].OptionalSome.CollectionElement", "taint", "manual"] + - ["", "URL", true, "init(dataRepresentation:relativeTo:isAbsolute:)", "", "", "Argument[dataRepresentation:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(dataRepresentation:relativeTo:isAbsolute:)", "", "", "Argument[relativeTo:].OptionalSome", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(filePath:)", "", "", "Argument[filePath:]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "URL", true, "init(filePath:directoryHint:)", "", "", "Argument[filePath:]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "URL", true, "init(filePath:directoryHint:relativeTo:)", "", "", "Argument[filePath:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(filePath:directoryHint:relativeTo:)", "", "", "Argument[relativeTo:].OptionalSome", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(filePath:isDirectory:)", "", "", "Argument[filePath:]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "URL", true, "init(fileURLWithFileSystemRepresentation:isDirectory:relativeTo:)", "", "", "Argument[fileURLWithFileSystemRepresentation:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(fileURLWithFileSystemRepresentation:isDirectory:relativeTo:)", "", "", "Argument[relativeTo:].OptionalSome", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(fileURLWithPath:)", "", "", "Argument[fileURLWithPath:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(fileURLWithPath:isDirectory:)", "", "", "Argument[fileURLWithPath:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(fileURLWithPath:isDirectory:relativeTo:)", "", "", "Argument[fileURLWithPath:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(fileURLWithPath:isDirectory:relativeTo:)", "", "", "Argument[relativeTo:].OptionalSome", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(fileURLWithPath:relativeTo:)", "", "", "Argument[fileURLWithPath:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(fileURLWithPath:relativeTo:)", "", "", "Argument[relativeTo:].OptionalSome", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(for:in:appropriateFor:create:)", "", "", "Argument[for:,in:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(for:in:appropriateFor:create:)", "", "", "Argument[appropriateFor:].OptionalSome", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(resolvingAliasFileAt:options:)", "", "", "Argument[resolvingAliasFileAt:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(resolvingBookmarkData:options:relativeTo:bookmarkDataIsStale:)", "", "", "Argument[resolvingBookmarkData:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(resolvingBookmarkData:options:relativeTo:bookmarkDataIsStale:)", "", "", "Argument[relativeTo:].OptionalSome", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(resource:)", "", "", "Argument[resource:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(string:encodingInvalidCharacters:)", "", "", "Argument[string:]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "URL", true, "init(string:relativeTo:)", "(String,URL?)", "", "Argument[string:]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "URL", true, "init(string:relativeTo:)", "(String,URL?)", "", "Argument[relativeTo:].OptionalSome", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "URL", true, "password(percentEncoded:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "path(percentEncoded:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "promisedItemResourceValues(forKeys:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "query(percentEncoded:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "resolvingSymlinksInPath()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "resourceValues(forKeys:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "resourceValues(forKeys:fromBookmarkData:)", "", "", "Argument[fromBookmarkData:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "setResourceValues(_:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] + - ["", "URL", true, "setTemporaryResourceValue(_:forKey:)", "", "", "Argument[self,0]", "Argument[self]", "taint", "manual"] + - ["", "URL", true, "user(percentEncoded:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "withUnsafeFileSystemRepresentation(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].OptionalSome.CollectionElement", "taint", "manual"] - ["", "URL", true, "withUnsafeFileSystemRepresentation(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "taint", "manual"] - - ["", "NSData", true, "init(contentsOf:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSData", true, "init(contentsOfFile:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSData", true, "init(contentsOf:options:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSData", true, "init(data:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSData", true, "init(bytes:length:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSData", true, "base64EncodedData(options:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSData", true, "base64EncodedString(options:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSData", true, "base64Encoding()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSData", true, "compressed(using:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "init(contentsOf:)", "", "", "Argument[contentsOf:]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "init(contentsOfFile:)", "", "", "Argument[contentsOfFile:]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "init(contentsOf:options:)", "", "", "Argument[contentsOf:]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "init(data:)", "", "", "Argument[data:]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "init(bytes:length:)", "", "", "Argument[bytes:]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "base64EncodedData(options:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "base64EncodedString(options:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "base64Encoding()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "compressed(using:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "NSData", true, "dataWithContentsOfMappedFile(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSData", true, "decompressed(using:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSData", true, "enumerateBytes(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0]", "taint", "manual"] - - ["", "NSData", true, "getBytes(_:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["", "NSData", true, "getBytes(_:length:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["", "NSData", true, "getBytes(_:range:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["", "NSData", true, "init(base64Encoded:options:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSData", true, "init(base64Encoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSData", true, "init(bytesNoCopy:length:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSData", true, "init(bytesNoCopy:length:deallocator:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSData", true, "init(bytesNoCopy:length:freeWhenDone:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSData", true, "init(contentsOfFile:options:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSData", true, "init(contentsOfMappedFile:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSData", true, "subdata(with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(coder:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(cString:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "getBytes(_:maxLength:usedLength:encoding:options:range:remaining:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["", "NSString", true, "getCharacters(_:range:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["", "NSString", true, "character(at:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "getCString(_:maxLength:encoding:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["", "NSString", true, "init(string:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "appending(_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(contentsOf:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(contentsOfFile:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "string(withContentsOf:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(contentsOf:encoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "string(withContentsOfFile:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(contentsOfFile:encoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(contentsOf:usedEncoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(contentsOfFile:usedEncoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "appendingPathComponent(_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "appendingPathExtension(_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "appendingPathComponent(_:conformingTo:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "addingPercentEncoding(withAllowedCharacters:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "addingPercentEscapes(using:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "appendingFormat(_:_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "decompressed(using:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "enumerateBytes(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0]", "taint", "manual"] + - ["", "NSData", true, "getBytes(_:)", "", "", "Argument[self]", "Argument[0]", "taint", "manual"] + - ["", "NSData", true, "getBytes(_:length:)", "", "", "Argument[self]", "Argument[0]", "taint", "manual"] + - ["", "NSData", true, "getBytes(_:range:)", "", "", "Argument[self]", "Argument[0]", "taint", "manual"] + - ["", "NSData", true, "init(base64Encoded:options:)", "", "", "Argument[base64Encoded:]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "init(base64Encoding:)", "", "", "Argument[base64Encoding:]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "init(bytesNoCopy:length:)", "", "", "Argument[bytesNoCopy:]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "init(bytesNoCopy:length:deallocator:)", "", "", "Argument[bytesNoCopy:]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "init(bytesNoCopy:length:freeWhenDone:)", "", "", "Argument[bytesNoCopy:]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "init(contentsOfFile:options:)", "", "", "Argument[contentsOfFile:]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "init(contentsOfMappedFile:)", "", "", "Argument[contentsOfMappedFile:]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "subdata(with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(coder:)", "", "", "Argument[coder:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(cString:)", "", "", "Argument[cString:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "getBytes(_:maxLength:usedLength:encoding:options:range:remaining:)", "", "", "Argument[self]", "Argument[0]", "taint", "manual"] + - ["", "NSString", true, "getCharacters(_:range:)", "", "", "Argument[self]", "Argument[0]", "taint", "manual"] + - ["", "NSString", true, "character(at:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "getCString(_:maxLength:encoding:)", "", "", "Argument[self]", "Argument[0]", "taint", "manual"] + - ["", "NSString", true, "init(string:)", "", "", "Argument[string:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "appending(_:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(contentsOf:)", "", "", "Argument[contentsOf:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(contentsOfFile:)", "", "", "Argument[contentsOfFile:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "string(withContentsOf:)", "", "", "Argument[withContentsOf:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(contentsOf:encoding:)", "", "", "Argument[contentsOf:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "string(withContentsOfFile:)", "", "", "Argument[withContentsOfFile:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(contentsOfFile:encoding:)", "", "", "Argument[contentsOfFile:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(contentsOf:usedEncoding:)", "", "", "Argument[contentsOf:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(contentsOfFile:usedEncoding:)", "", "", "Argument[contentsOfFile:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "appendingPathComponent(_:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "appendingPathExtension(_:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "appendingPathComponent(_:conformingTo:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "addingPercentEncoding(withAllowedCharacters:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "addingPercentEscapes(using:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "appendingFormat(_:_:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "appendingFormat(_:_:)", "", "", "Argument[1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "applyTransform(_:reverse:range:updatedRange:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "applyingTransform(_:reverse:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "cString()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "cString(using:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "capitalized(with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "completePath(into:caseSensitive:matchesInto:filterTypes:)", "", "", "Argument[-1]", "Argument[0].CollectionElement", "taint", "manual"] - - ["", "NSString", true, "completePath(into:caseSensitive:matchesInto:filterTypes:)", "", "", "Argument[-1]", "Argument[2].CollectionElement.CollectionElement", "taint", "manual"] - - ["", "NSString", true, "components(separatedBy:)", "", "", "Argument[-1]", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "NSString", true, "data(using:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "data(using:allowLossyConversion:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "enumerateLines(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0]", "taint", "manual"] - - ["", "NSString", true, "enumerateLinguisticTags(in:scheme:options:orthography:using:)", "", "", "Argument[-1]", "Argument[4].Parameter[0].OptionalSome", "taint", "manual"] - - ["", "NSString", true, "enumerateSubstrings(in:options:using:)", "", "", "Argument[-1]", "Argument[2].Parameter[0].OptionalSome", "taint", "manual"] - - ["", "NSString", true, "enumerateSubstrings(in:options:using:)", "", "", "Argument[2].Parameter[0].OptionalSome", "Argument[-1]", "taint", "manual"] - - ["", "NSString", true, "folding(options:locale:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "getCString(_:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["", "NSString", true, "getCString(_:maxLength:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["", "NSString", true, "getCString(_:maxLength:range:remaining:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["", "NSString", true, "getCharacters(_:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["", "NSString", true, "getFileSystemRepresentation(_:maxLength:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["", "NSString", true, "init(bytes:length:encoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(bytesNoCopy:length:encoding:deallocator:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(bytesNoCopy:length:encoding:freeWhenDone:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(cString:encoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(cString:length:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(cStringNoCopy:length:freeWhenDone:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(characters:length:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(charactersNoCopy:length:dellocator:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(charactersNoCopy:length:freeWhenDone:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(data:encoding:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(format:_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "applyTransform(_:reverse:range:updatedRange:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "applyingTransform(_:reverse:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "cString()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "cString(using:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "capitalized(with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "completePath(into:caseSensitive:matchesInto:filterTypes:)", "", "", "Argument[self]", "Argument[into:].CollectionElement", "taint", "manual"] + - ["", "NSString", true, "completePath(into:caseSensitive:matchesInto:filterTypes:)", "", "", "Argument[self]", "Argument[matchesInto:].CollectionElement.CollectionElement", "taint", "manual"] + - ["", "NSString", true, "components(separatedBy:)", "", "", "Argument[self]", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "NSString", true, "data(using:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "data(using:allowLossyConversion:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "enumerateLines(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0]", "taint", "manual"] + - ["", "NSString", true, "enumerateLinguisticTags(in:scheme:options:orthography:using:)", "", "", "Argument[self]", "Argument[using:].Parameter[0].OptionalSome", "taint", "manual"] + - ["", "NSString", true, "enumerateSubstrings(in:options:using:)", "", "", "Argument[self]", "Argument[using:].Parameter[0].OptionalSome", "taint", "manual"] + - ["", "NSString", true, "enumerateSubstrings(in:options:using:)", "", "", "Argument[using:].Parameter[0].OptionalSome", "Argument[self]", "taint", "manual"] + - ["", "NSString", true, "folding(options:locale:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "getCString(_:)", "", "", "Argument[self]", "Argument[0]", "taint", "manual"] + - ["", "NSString", true, "getCString(_:maxLength:)", "", "", "Argument[self]", "Argument[0]", "taint", "manual"] + - ["", "NSString", true, "getCString(_:maxLength:range:remaining:)", "", "", "Argument[self]", "Argument[0]", "taint", "manual"] + - ["", "NSString", true, "getCharacters(_:)", "", "", "Argument[self]", "Argument[0]", "taint", "manual"] + - ["", "NSString", true, "getFileSystemRepresentation(_:maxLength:)", "", "", "Argument[self]", "Argument[0]", "taint", "manual"] + - ["", "NSString", true, "init(bytes:length:encoding:)", "", "", "Argument[bytes:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(bytesNoCopy:length:encoding:deallocator:)", "", "", "Argument[bytesNoCopy:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(bytesNoCopy:length:encoding:freeWhenDone:)", "", "", "Argument[bytesNoCopy:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(cString:encoding:)", "", "", "Argument[cString:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(cString:length:)", "", "", "Argument[cString:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(cStringNoCopy:length:freeWhenDone:)", "", "", "Argument[cStringNoCopy:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(characters:length:)", "", "", "Argument[characters:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(charactersNoCopy:length:dellocator:)", "", "", "Argument[charactersNoCopy:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(charactersNoCopy:length:freeWhenDone:)", "", "", "Argument[charactersNoCopy:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(data:encoding:)", "", "", "Argument[data:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(format:_:)", "", "", "Argument[format:]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "init(format:_:)", "", "", "Argument[1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(format:arguments:)", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(format:locale:_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(format:arguments:)", "", "", "Argument[format:,arguments:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(format:locale:_:)", "", "", "Argument[format:]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "init(format:locale:_:)", "", "", "Argument[2].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(format:locale:arguments:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(format:locale:arguments:)", "", "", "Argument[2]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(utf8String:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(format:locale:arguments:)", "", "", "Argument[format:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(format:locale:arguments:)", "", "", "Argument[arguments:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(utf8String:)", "", "", "Argument[utf8String:]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "localizedStringWithFormat(_:_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "localizedStringWithFormat(_:_:)", "", "", "Argument[1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "lossyCString()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "lowercased(with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "padding(toLength:withPad:startingAt:)", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "padding(toLength:withPad:startingAt:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "path(withComponents:)", "", "", "Argument[0].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "propertyList()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "propertyListFromStringsFileFormat()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "replacingCharacters(in:with:)", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "replacingCharacters(in:with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "replacingOccurrences(of:with:)", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "replacingOccurrences(of:with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "replacingOccurrences(of:with:options:range:)", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "replacingOccurrences(of:with:options:range:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "replacingPercentEscapes(using:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "string(withCString:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "string(withCString:length:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "stringEncoding(for:encodingOptions:convertedString:usedLossyCompression:)", "", "", "Argument[0]", "Argument[2]", "taint", "manual"] - - ["", "NSString", true, "strings(byAppendingPaths:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "strings(byAppendingPaths:)", "", "", "Argument[0].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "substring(from:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "substring(to:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "substring(with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "trimmingCharacters(in:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "uppercased(with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "variantFittingPresentationWidth(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "lossyCString()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "lowercased(with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "padding(toLength:withPad:startingAt:)", "", "", "Argument[withPad:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "padding(toLength:withPad:startingAt:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "path(withComponents:)", "", "", "Argument[withComponents:].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "propertyList()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "propertyListFromStringsFileFormat()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "replacingCharacters(in:with:)", "", "", "Argument[with:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "replacingCharacters(in:with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "replacingOccurrences(of:with:)", "", "", "Argument[with:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "replacingOccurrences(of:with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "replacingOccurrences(of:with:options:range:)", "", "", "Argument[with:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "replacingOccurrences(of:with:options:range:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "replacingPercentEscapes(using:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "string(withCString:)", "", "", "Argument[withCString:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "string(withCString:length:)", "", "", "Argument[withCString:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "stringEncoding(for:encodingOptions:convertedString:usedLossyCompression:)", "", "", "Argument[for:]", "Argument[convertedString:]", "taint", "manual"] + - ["", "NSString", true, "strings(byAppendingPaths:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "strings(byAppendingPaths:)", "", "", "Argument[byAppendingPaths:].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "substring(from:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "substring(to:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "substring(with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "trimmingCharacters(in:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "uppercased(with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "variantFittingPresentationWidth(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "Data", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "Data", true, "append(_:count:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["", "Data", true, "insert(contentsOf:at:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["", "Data", true, "replaceSubrange(_:with:)", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["", "Data", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "Data", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "Data", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[-1].CollectionElement", "taint", "manual"] + - ["", "Data", true, "append(_:count:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] + - ["", "Data", true, "insert(contentsOf:at:)", "", "", "Argument[contentsOf:]", "Argument[self]", "taint", "manual"] + - ["", "Data", true, "replaceSubrange(_:with:)", "", "", "Argument[with:]", "Argument[self]", "taint", "manual"] + - ["", "Data", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Data", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[self].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Data", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] - ["", "Data", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "Data", true, "map(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Data", true, "shuffled()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Data", true, "shuffled(using:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Data", true, "compactMap(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Data", true, "flatMap(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Data", true, "reduce(into:_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Data", true, "sorted()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Data", true, "sorted(by:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Data", true, "replace(_:with:maxReplacements:)", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["", "Data", true, "replacing(_:with:maxReplacements:)", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["", "Data", true, "replacing(_:with:subrange:maxReplacements:)", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["", "Data", true, "trimmingPrefix(while:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Data", true, "trimmingPrefix(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Data", true, "init(contentsOf:options:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "Data", true, "base64EncodedData(options:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Data", true, "base64EncodedString(options:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Data", true, "init(base64Encoded:options:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "Data", true, "init(buffer:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "Data", true, "init(bytes:count:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "Data", true, "init(bytesNoCopy:count:deallocator:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "Data", true, "init(referencing:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "Data", true, "replaceSubrange(_:with:count:)", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["", "Data", true, "sorted(using:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSObject", true, "copy()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSObject", true, "mutableCopy()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "Blob", true, "init(bytes:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "Blob", true, "init(bytes:length:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "map(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "shuffled()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "shuffled(using:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "compactMap(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "flatMap(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "reduce(into:_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "sorted()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "sorted(by:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "replace(_:with:maxReplacements:)", "", "", "Argument[with:]", "Argument[self]", "taint", "manual"] + - ["", "Data", true, "replacing(_:with:maxReplacements:)", "", "", "Argument[with:]", "Argument[self]", "taint", "manual"] + - ["", "Data", true, "replacing(_:with:subrange:maxReplacements:)", "", "", "Argument[with:]", "Argument[self]", "taint", "manual"] + - ["", "Data", true, "trimmingPrefix(while:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "trimmingPrefix(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "init(contentsOf:options:)", "", "", "Argument[contentsOf:]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "base64EncodedData(options:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "base64EncodedString(options:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "init(base64Encoded:options:)", "", "", "Argument[base64Encoded:]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "init(buffer:)", "", "", "Argument[buffer:]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "init(bytes:count:)", "", "", "Argument[bytes:]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "init(bytesNoCopy:count:deallocator:)", "", "", "Argument[bytesNoCopy:]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "init(referencing:)", "", "", "Argument[referencing:]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "replaceSubrange(_:with:count:)", "", "", "Argument[with:]", "Argument[self]", "taint", "manual"] + - ["", "Data", true, "sorted(using:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSObject", true, "copy()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSObject", true, "mutableCopy()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Blob", true, "init(bytes:)", "", "", "Argument[bytes:]", "ReturnValue", "taint", "manual"] + - ["", "Blob", true, "init(bytes:length:)", "", "", "Argument[bytes:]", "ReturnValue", "taint", "manual"] - ["", "Expression", true, "init(_:_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "Expression", true, "init(_:_:)", "", "", "Argument[1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "NSCopying", true, "copy(with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "NSCopying", true, "copy(with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "ExpressionType", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "ExpressionType", true, "replace(_:with:)", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["", "InputStream", true, "init(data:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "NSMutableData", true, "append(_:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["", "NSMutableData", true, "setData(_:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["", "NSMutableData", true, "append(_:length:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["", "NSMutableData", true, "replaceBytes(in:withBytes:)", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["", "NSMutableData", true, "replaceBytes(in:withBytes:length:)", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["", "NSURL", true, "init(string:)", "(String)", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "NSURL", true, "appendingPathExtension(for:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "NSURL", true, "appendingPathComponent(_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "NSURL", true, "appendingPathExtension(_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "NSURL", true, "appendingPathComponent(_:isDirectory:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "NSURL", true, "appendingPathComponent(_:conformingTo:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "NSMutableCopying", true, "mutableCopy(with:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "URLSession", true, "dataTask(with:completionHandler:)", "", "", "Argument[0]", "Argument[1].Parameter[0]", "taint", "manual"] - - ["", "WKUserScript", true, "init(source:injectionTime:forMainFrameOnly:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "WKUserScript", true, "init(source:injectionTime:forMainFrameOnly:in:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "atIndex(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "defineProperty(_:descriptor:)", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["", "JSValue", true, "forProperty(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "init(bool:in:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "init(double:in:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "init(int32:in:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "init(object:in:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "init(point:in:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "init(range:in:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "init(rect:in:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "init(size:in:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "init(uInt32:in:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "setValue(_:at:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["", "JSValue", true, "setValue(_:forProperty:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["", "JSValue", true, "toArray()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "toBool()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "toDate()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "toDictionary()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "toDouble()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "toInt32()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "toNumber()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "toObject()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "toObjectOf(_:)", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "toPoint()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "toRange()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "toRect()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "toSize()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "toString()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "toUInt32()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "ExpressionType", true, "replace(_:with:)", "", "", "Argument[with:]", "ReturnValue", "taint", "manual"] + - ["", "InputStream", true, "init(data:)", "", "", "Argument[data:]", "ReturnValue", "taint", "manual"] + - ["", "NSMutableData", true, "append(_:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] + - ["", "NSMutableData", true, "setData(_:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] + - ["", "NSMutableData", true, "append(_:length:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] + - ["", "NSMutableData", true, "replaceBytes(in:withBytes:)", "", "", "Argument[withBytes:]", "Argument[self]", "taint", "manual"] + - ["", "NSMutableData", true, "replaceBytes(in:withBytes:length:)", "", "", "Argument[withBytes:]", "Argument[self]", "taint", "manual"] + - ["", "NSURL", true, "init(string:)", "(String)", "", "Argument[string:]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "NSURL", true, "appendingPathExtension(for:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSURL", true, "appendingPathComponent(_:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] + - ["", "NSURL", true, "appendingPathExtension(_:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] + - ["", "NSURL", true, "appendingPathComponent(_:isDirectory:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] + - ["", "NSURL", true, "appendingPathComponent(_:conformingTo:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] + - ["", "NSMutableCopying", true, "mutableCopy(with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "URLSession", true, "dataTask(with:completionHandler:)", "", "", "Argument[with:]", "Argument[completionHandler:].Parameter[0]", "taint", "manual"] + - ["", "WKUserScript", true, "init(source:injectionTime:forMainFrameOnly:)", "", "", "Argument[source:]", "ReturnValue", "taint", "manual"] + - ["", "WKUserScript", true, "init(source:injectionTime:forMainFrameOnly:in:)", "", "", "Argument[source:]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "atIndex(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "defineProperty(_:descriptor:)", "", "", "Argument[descriptor:]", "Argument[self]", "taint", "manual"] + - ["", "JSValue", true, "forProperty(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(bool:in:)", "", "", "Argument[bool:]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(double:in:)", "", "", "Argument[double:]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(int32:in:)", "", "", "Argument[int32:]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(object:in:)", "", "", "Argument[object:]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(point:in:)", "", "", "Argument[point:]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(range:in:)", "", "", "Argument[range:]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(rect:in:)", "", "", "Argument[rect:]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(size:in:)", "", "", "Argument[size:]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(uInt32:in:)", "", "", "Argument[uInt32:]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "setValue(_:at:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] + - ["", "JSValue", true, "setValue(_:forProperty:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] + - ["", "JSValue", true, "toArray()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toBool()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toDate()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toDictionary()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toDouble()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toInt32()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toNumber()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toObject()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toObjectOf(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toPoint()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toRange()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toRect()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toSize()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toString()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "toUInt32()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "FilePath.Component", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "FilePath.Component", true, "init(platformString:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "FilePath.Component", true, "withPlatformString(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0]", "taint", "manual"] + - ["", "FilePath.Component", true, "init(platformString:)", "", "", "Argument[platformString:]", "ReturnValue", "taint", "manual"] + - ["", "FilePath.Component", true, "withPlatformString(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0]", "taint", "manual"] - ["", "FilePath.Root", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "FilePath.Root", true, "init(platformString:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "FilePath.Root", true, "withPlatformString(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0]", "taint", "manual"] + - ["", "FilePath.Root", true, "init(platformString:)", "", "", "Argument[platformString:]", "ReturnValue", "taint", "manual"] + - ["", "FilePath.Root", true, "withPlatformString(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0]", "taint", "manual"] - ["", "FilePath", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "FilePath", true, "append(_:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["", "FilePath", true, "init(extendedGraphemeClusterLiteral:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "FilePath", true, "init(unicodeScalarLiteral:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "FilePath", true, "encode(to:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["", "FilePath", true, "init(from:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "FilePath", true, "init(stringLiteral:)", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "FilePath", true, "withCString(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "FilePath", true, "append(_:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] + - ["", "FilePath", true, "init(extendedGraphemeClusterLiteral:)", "", "", "Argument[extendedGraphemeClusterLiteral:]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "init(unicodeScalarLiteral:)", "", "", "Argument[unicodeScalarLiteral:]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "encode(to:)", "", "", "Argument[self]", "Argument[to:]", "taint", "manual"] + - ["", "FilePath", true, "init(from:)", "", "", "Argument[from:]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "init(stringLiteral:)", "(String)", "", "Argument[stringLiteral:]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "withCString(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - ["", "FilePath", true, "withCString(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "taint", "manual"] - - ["", "FilePath", true, "init(cString:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "FilePath", true, "push(_:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["", "FilePath", true, "appending(_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "FilePath", true, "init(platformString:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "FilePath", true, "withPlatformString(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "FilePath", true, "init(cString:)", "", "", "Argument[cString:]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "push(_:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] + - ["", "FilePath", true, "appending(_:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "init(platformString:)", "", "", "Argument[platformString:]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "withPlatformString(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - ["", "FilePath", true, "withPlatformString(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "taint", "manual"] - - ["", "FilePath", true, "init(root:_:)", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["", "FilePath", true, "init(root:components:)", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["", "FilePath", true, "lexicallyNormalized()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "FilePath", true, "lexicallyResolving(_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "FilePath", true, "pushing(_:)", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["", "FilePath", true, "removingLastComponent()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "FilePath", true, "removingRoot()", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["", "DataProtocol", true, "copyBytes(to:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["", "DataProtocol", true, "copyBytes(to:count:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["", "DataProtocol", true, "copyBytes(to:from:)", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["", "ContiguousBytes", true, "withUnsafeBytes(_:)", "", "", "Argument[-1]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "ContiguousBytes", true, "withUnsafeBytes(_:)", "", "", "Argument[-1].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "FilePath", true, "init(root:_:)", "", "", "Argument[root:,1]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "init(root:components:)", "", "", "Argument[root:,components:]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "lexicallyNormalized()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "lexicallyResolving(_:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "pushing(_:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "removingLastComponent()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "removingRoot()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "DataProtocol", true, "copyBytes(to:)", "", "", "Argument[self]", "Argument[to:]", "taint", "manual"] + - ["", "DataProtocol", true, "copyBytes(to:count:)", "", "", "Argument[self]", "Argument[to:]", "taint", "manual"] + - ["", "DataProtocol", true, "copyBytes(to:from:)", "", "", "Argument[self]", "Argument[to:]", "taint", "manual"] + - ["", "ContiguousBytes", true, "withUnsafeBytes(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "ContiguousBytes", true, "withUnsafeBytes(_:)", "", "", "Argument[self].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - ["", "ContiguousBytes", true, "withUnsafeBytes(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "URLResource", true, "init(name:subdirectory:locale:bundle:)", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["", "NSMutableString", true, "append(_:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["", "NSMutableString", true, "insert(_:at:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["", "NSMutableString", true, "appendFormat(_:_:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["", "NSMutableString", true, "appendFormat(_:_:)", "", "", "Argument[1].CollectionElement", "Argument[-1]", "taint", "manual"] - - ["", "NSMutableString", true, "replaceCharacters(in:with:)", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["", "NSMutableString", true, "replaceOccurrences(of:with:options:range:)", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["", "NSMutableString", true, "setString(_:)", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["", "URLResource", true, "init(name:subdirectory:locale:bundle:)", "", "", "Argument[name:,subdirectory:]", "ReturnValue", "taint", "manual"] + - ["", "NSMutableString", true, "append(_:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] + - ["", "NSMutableString", true, "insert(_:at:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] + - ["", "NSMutableString", true, "appendFormat(_:_:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] + - ["", "NSMutableString", true, "appendFormat(_:_:)", "", "", "Argument[1].CollectionElement", "Argument[self]", "taint", "manual"] + - ["", "NSMutableString", true, "replaceCharacters(in:with:)", "", "", "Argument[with:]", "Argument[self]", "taint", "manual"] + - ["", "NSMutableString", true, "replaceOccurrences(of:with:options:range:)", "", "", "Argument[with:]", "Argument[self]", "taint", "manual"] + - ["", "NSMutableString", true, "setString(_:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] From c37b51d3c6d572d5830ba33f1d328964427419de Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 22 Sep 2026 15:54:39 +0200 Subject: [PATCH 03/19] unified: Sort argument labels Sorting the argument labels simplifies matching with calls --- unified/ql/lib/ext/legacy-swift.model.yml | 542 +++++++++++----------- 1 file changed, 271 insertions(+), 271 deletions(-) diff --git a/unified/ql/lib/ext/legacy-swift.model.yml b/unified/ql/lib/ext/legacy-swift.model.yml index 9efe5310220d..f2aa86c94f21 100644 --- a/unified/ql/lib/ext/legacy-swift.model.yml +++ b/unified/ql/lib/ext/legacy-swift.model.yml @@ -43,13 +43,13 @@ extensions: - ["", "UISceneDelegate", true, "scene(_:continue:)", "", "", "Parameter[continue:]", "remote", "manual"] - ["", "UISceneDelegate", true, "scene(_:didUpdate:)", "", "", "Parameter[didUpdate:]", "remote", "manual"] - ["", "UISceneDelegate", true, "scene(_:openURLContexts:)", "", "", "Parameter[openURLContexts:]", "remote", "manual"] - - ["", "UISceneDelegate", true, "scene(_:willConnectTo:options:)", "", "", "Parameter[options:]", "remote", "manual"] + - ["", "UISceneDelegate", true, "scene(_:options:willConnectTo:)", "", "", "Parameter[options:]", "remote", "manual"] - ["", "UIApplicationDelegate", true, "application(_:handleOpen:)", "", "", "Parameter[handleOpen:]", "remote", "manual"] - ["", "UIApplicationDelegate", true, "application(_:open:options:)", "", "", "Parameter[open:]", "remote", "manual"] - - ["", "UIApplicationDelegate", true, "application(_:open:sourceApplication:annotation:)", "", "", "Parameter[open:]", "remote", "manual"] + - ["", "UIApplicationDelegate", true, "application(_:annotation:open:sourceApplication:)", "", "", "Parameter[open:]", "remote", "manual"] - ["", "WKScriptMessageHandler", true, "userContentController(_:didReceive:)", "", "", "Parameter[didReceive:]", "remote", "manual"] - - ["", "UITextViewDelegate", true, "textView(_:shouldChangeTextIn:replacementText:)", "", "", "Parameter[replacementText:]", "local", "manual"] - - ["", "UITextFieldDelegate", true, "textField(_:shouldChangeCharactersIn:replacementString:)", "", "", "Parameter[replacementString:]", "local", "manual"] + - ["", "UITextViewDelegate", true, "textView(_:replacementText:shouldChangeTextIn:)", "", "", "Parameter[replacementText:]", "local", "manual"] + - ["", "UITextFieldDelegate", true, "textField(_:replacementString:shouldChangeCharactersIn:)", "", "", "Parameter[replacementString:]", "local", "manual"] - ["", "NSMutableString", true, "length", "", "", "", "nsstring-length", "manual"] - addsTo: pack: codeql/unified-all @@ -59,7 +59,7 @@ extensions: - ["", "String", true, "init(contentsOfFile:)", "", "", "Argument[contentsOfFile:]", "path-injection", "manual"] - ["", "String", true, "init(contentsOfFile:encoding:)", "", "", "Argument[contentsOfFile:]", "path-injection", "manual"] - ["", "String", true, "init(contentsOfFile:usedEncoding:)", "", "", "Argument[contentsOfFile:]", "path-injection", "manual"] - - ["", "String", true, "index(_:offsetBy:limitBy:)", "", "", "Argument[0,offsetBy:]", "string-length", "manual"] + - ["", "String", true, "index(_:limitBy:offsetBy:)", "", "", "Argument[0,offsetBy:]", "string-length", "manual"] - ["", "String", true, "md5()", "", "", "Argument[self]", "weak-hash-input-MD5", "manual"] - ["", "String", true, "sha1()", "", "", "Argument[self]", "weak-hash-input-SHA1", "manual"] - ["", "String", true, "sha2(_:)", "", "", "Argument[self]", "weak-password-hash-input-SHA2", "manual"] @@ -84,7 +84,7 @@ extensions: - ["", "", false, "assertionFailure(_:file:line:)", "", "", "Argument[0]", "log-injection", "manual"] - ["", "", false, "preconditionFailure(_:file:line:)", "", "", "Argument[0]", "log-injection", "manual"] - ["", "", false, "fatalError(_:file:line:)", "", "", "Argument[0]", "log-injection", "manual"] - - ["", "", false, "dump(_:name:indent:maxDepth:maxItems:)", "", "", "Argument[0,name:]", "log-injection", "manual"] + - ["", "", false, "dump(_:indent:maxDepth:maxItems:name:)", "", "", "Argument[0,name:]", "log-injection", "manual"] - ["", "", false, "print(_:separator:terminator:)", "", "", "Argument[0,separator:,terminator:]", "log-injection", "manual"] - ["", "", false, "debugPrint(_:separator:terminator:)", "", "", "Argument[0,separator:,terminator:]", "log-injection", "manual"] - ["", "", false, "NSMakeRange(_:_:)", "", "", "Argument[0,1]", "nsstring-length", "manual"] @@ -95,9 +95,9 @@ extensions: - ["", "", false, "NSLog(_:_:)", "", "", "Argument[0,1]", "log-injection", "manual"] - ["", "", false, "NSLogv(_:_:)", "", "", "Argument[0,1]", "log-injection", "manual"] - ["", "", false, "os_log(_:)", "", "", "Argument[0]", "log-injection", "manual"] - - ["", "", false, "os_log(_:dso:log:_:_:)", "", "", "Argument[0,4]", "log-injection", "manual"] - - ["", "", false, "os_log(_:dso:log:type:_:)", "", "", "Argument[0,4]", "log-injection", "manual"] - - ["", "", false, "os_log(_:log:_:)", "", "", "Argument[2]", "log-injection", "manual"] + - ["", "", false, "os_log(_:_:_:dso:log:)", "", "", "Argument[0,4]", "log-injection", "manual"] + - ["", "", false, "os_log(_:_:dso:log:type:)", "", "", "Argument[0,4]", "log-injection", "manual"] + - ["", "", false, "os_log(_:_:log:)", "", "", "Argument[2]", "log-injection", "manual"] - ["", "", false, "print(_:separator:terminator:toStream:)", "", "", "Argument[0,separator:,terminator:]", "log-injection", "manual"] - ["", "", false, "vfprintf(_:_:_:)", "", "", "Argument[1,2]", "log-injection", "manual"] - ["", "", false, "sqlite3_bind_blob(_:_:_:_:_:)", "", "", "Argument[2]", "database-store", "manual"] @@ -131,37 +131,37 @@ extensions: - ["", "NSData", true, "dataWithContentsOfMappedFile(_:)", "", "", "Argument[0]", "path-injection", "manual"] - ["", "NSData", true, "init(contentsOfFile:options:)", "", "", "Argument[contentsOfFile:]", "path-injection", "manual"] - ["", "NSData", true, "init(contentsOfMappedFile:)", "", "", "Argument[contentsOfMappedFile:]", "path-injection", "manual"] - - ["", "NSData", true, "write(to:options:)", "", "", "Argument[to:]", "path-injection", "manual"] - - ["", "NSData", true, "write(to:atomically:)", "", "", "Argument[to:]", "path-injection", "manual"] - - ["", "NSData", true, "write(toFile:atomically:)", "", "", "Argument[toFile:]", "path-injection", "manual"] - - ["", "NSData", true, "write(toFile:options:)", "", "", "Argument[toFile:]", "path-injection", "manual"] + - ["", "NSData", true, "write(options:to:)", "", "", "Argument[to:]", "path-injection", "manual"] + - ["", "NSData", true, "write(atomically:to:)", "", "", "Argument[to:]", "path-injection", "manual"] + - ["", "NSData", true, "write(atomically:toFile:)", "", "", "Argument[toFile:]", "path-injection", "manual"] + - ["", "NSData", true, "write(options:toFile:)", "", "", "Argument[toFile:]", "path-injection", "manual"] - ["", "NSString", true, "character(at:)", "", "", "Argument[at:]", "nsstring-length", "manual"] - ["", "NSString", true, "init(contentsOfFile:encoding:)", "", "", "Argument[contentsOfFile:]", "path-injection", "manual"] - ["", "NSString", true, "init(contentsOfFile:usedEncoding:)", "", "", "Argument[contentsOfFile:]", "path-injection", "manual"] - ["", "NSString", true, "substring(from:)", "", "", "Argument[from:]", "nsstring-length", "manual"] - ["", "NSString", true, "substring(to:)", "", "", "Argument[to:]", "nsstring-length", "manual"] - - ["", "NSString", true, "write(to:atomically:encoding:)", "", "", "Argument[to:]", "path-injection", "manual"] - - ["", "NSString", true, "write(toFile:atomically:encoding:)", "", "", "Argument[toFile:]", "path-injection", "manual"] + - ["", "NSString", true, "write(atomically:encoding:to:)", "", "", "Argument[to:]", "path-injection", "manual"] + - ["", "NSString", true, "write(atomically:encoding:toFile:)", "", "", "Argument[toFile:]", "path-injection", "manual"] - ["", "FileManager", true, "contents(atPath:)", "", "", "Argument[atPath:]", "path-injection", "manual"] - - ["", "FileManager", true, "unzipItem(at:to:skipCRC32:progress:pathEncoding:)", "", "", "Argument[at:]", "unsafe-unpack", "manual"] + - ["", "FileManager", true, "unzipItem(at:pathEncoding:progress:skipCRC32:to:)", "", "", "Argument[at:]", "unsafe-unpack", "manual"] - ["", "FileManager", true, "attributesOfItem(atPath:)", "", "", "Argument[atPath:]", "path-injection", "manual"] - ["", "FileManager", true, "changeCurrentDirectoryPath(_:)", "", "", "Argument[0]", "path-injection", "manual"] - ["", "FileManager", true, "changeFileAttributes(_:atPath:)", "", "", "Argument[atPath:]", "path-injection", "manual"] - - ["", "FileManager", true, "contentsEqual(atPath:andPath:)", "", "", "Argument[atPath:,andPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "contentsEqual(andPath:atPath:)", "", "", "Argument[atPath:,andPath:]", "path-injection", "manual"] - ["", "FileManager", true, "contentsOfDirectory(at:includingPropertiesForKeys:options:)", "", "", "Argument[at:]", "path-injection", "manual"] - ["", "FileManager", true, "contentsOfDirectory(atPath:)", "", "", "Argument[atPath:]", "path-injection", "manual"] - ["", "FileManager", true, "copyItem(at:to:)", "", "", "Argument[at:,to:]", "path-injection", "manual"] - ["", "FileManager", true, "copyItem(atPath:toPath:)", "", "", "Argument[atPath:,toPath:]", "path-injection", "manual"] - - ["", "FileManager", true, "createDirectory(at:withIntermediateDirectories:attributes:)", "", "", "Argument[at:]", "path-injection", "manual"] + - ["", "FileManager", true, "createDirectory(at:attributes:withIntermediateDirectories:)", "", "", "Argument[at:]", "path-injection", "manual"] - ["", "FileManager", true, "createDirectory(atPath:attributes:)", "", "", "Argument[atPath:]", "path-injection", "manual"] - - ["", "FileManager", true, "createDirectory(atPath:withIntermediateDirectories:attributes:)", "", "", "Argument[atPath:]", "path-injection", "manual"] - - ["", "FileManager", true, "createFile(atPath:contents:attributes:)", "", "", "Argument[atPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "createDirectory(atPath:attributes:withIntermediateDirectories:)", "", "", "Argument[atPath:]", "path-injection", "manual"] + - ["", "FileManager", true, "createFile(atPath:attributes:contents:)", "", "", "Argument[atPath:]", "path-injection", "manual"] - ["", "FileManager", true, "createSymbolicLink(at:withDestinationURL:)", "", "", "Argument[at:,withDestinationURL:]", "path-injection", "manual"] - ["", "FileManager", true, "createSymbolicLink(atPath:pathContent:)", "", "", "Argument[atPath:,pathContent:]", "path-injection", "manual"] - ["", "FileManager", true, "createSymbolicLink(atPath:withDestinationPath:)", "", "", "Argument[atPath:,withDestinationPath:]", "path-injection", "manual"] - ["", "FileManager", true, "destinationOfSymbolicLink(atPath:)", "", "", "Argument[atPath:]", "path-injection", "manual"] - ["", "FileManager", true, "directoryContents(atPath:)", "", "", "Argument[atPath:]", "path-injection", "manual"] - - ["", "FileManager", true, "enumerator(at:includingPropertiesForKeys:options:errorHandler:)", "", "", "Argument[at:]", "path-injection", "manual"] + - ["", "FileManager", true, "enumerator(at:errorHandler:includingPropertiesForKeys:options:)", "", "", "Argument[at:]", "path-injection", "manual"] - ["", "FileManager", true, "enumerator(atPath:)", "", "", "Argument[atPath:]", "path-injection", "manual"] - ["", "FileManager", true, "fileAttributes(atPath:traverseLink:)", "", "", "Argument[atPath:]", "path-injection", "manual"] - ["", "FileManager", true, "fileExists(atPath:)", "", "", "Argument[atPath:]", "path-injection", "manual"] @@ -173,14 +173,14 @@ extensions: - ["", "FileManager", true, "pathContentOfSymbolicLink(atPath:)", "", "", "Argument[atPath:]", "path-injection", "manual"] - ["", "FileManager", true, "removeItem(at:)", "", "", "Argument[at:]", "path-injection", "manual"] - ["", "FileManager", true, "removeItem(atPath:)", "", "", "Argument[atPath:]", "path-injection", "manual"] - - ["", "FileManager", true, "replaceItem(at:withItemAt:backupItemName:options:resultingItemURL:)", "", "", "Argument[at:,withItemAt:]", "path-injection", "manual"] - - ["", "FileManager", true, "replaceItemAt(_:withItemAt:backupItemName:options:)", "", "", "Argument[0,withItemAt:]", "path-injection", "manual"] - - ["", "FileManager", true, "replaceItemAtURL(originalItemURL:withItemAtURL:backupItemName:options:)", "", "", "Argument[originalItemURL:,withItemAtURL:]", "path-injection", "manual"] + - ["", "FileManager", true, "replaceItem(at:backupItemName:options:resultingItemURL:withItemAt:)", "", "", "Argument[at:,withItemAt:]", "path-injection", "manual"] + - ["", "FileManager", true, "replaceItemAt(_:backupItemName:options:withItemAt:)", "", "", "Argument[0,withItemAt:]", "path-injection", "manual"] + - ["", "FileManager", true, "replaceItemAtURL(backupItemName:options:originalItemURL:withItemAtURL:)", "", "", "Argument[originalItemURL:,withItemAtURL:]", "path-injection", "manual"] - ["", "FileManager", true, "setAttributes(_:ofItemAtPath:)", "", "", "Argument[ofItemAtPath:]", "path-injection", "manual"] - ["", "FileManager", true, "subpaths(atPath:)", "", "", "Argument[atPath:]", "path-injection", "manual"] - ["", "FileManager", true, "subpathsOfDirectory(atPath:)", "", "", "Argument[atPath:]", "path-injection", "manual"] - ["", "FileManager", true, "trashItem(at:resultingItemURL:)", "", "", "Argument[at:]", "path-injection", "manual"] - - ["", "FileManager", true, "unmountVolume(at:options:completionHandler:)", "", "", "Argument[at:]", "path-injection", "manual"] + - ["", "FileManager", true, "unmountVolume(at:completionHandler:options:)", "", "", "Argument[at:]", "path-injection", "manual"] - ["", "Data", true, "init(contentsOf:options:)", "", "", "Argument[contentsOf:]", "path-injection", "manual"] - ["", "Data", true, "md5()", "", "", "Argument[self]", "weak-hash-input-MD5", "manual"] - ["", "Data", true, "sha1()", "", "", "Argument[self]", "weak-hash-input-SHA1", "manual"] @@ -190,35 +190,35 @@ extensions: - ["", "Data", true, "sha3(_:)", "", "", "Argument[self]", "weak-password-hash-input-SHA3", "manual"] - ["", "Data", true, "sha384()", "", "", "Argument[self]", "weak-password-hash-input-SHA384", "manual"] - ["", "Data", true, "sha512()", "", "", "Argument[self]", "weak-password-hash-input-SHA512", "manual"] - - ["", "Data", true, "write(to:options:)", "", "", "Argument[to:]", "path-injection", "manual"] + - ["", "Data", true, "write(options:to:)", "", "", "Argument[to:]", "path-injection", "manual"] - ["", "NSMutableString", true, "insert(_:at:)", "", "", "Argument[at:]", "nsstring-length", "manual"] - ["", "NSMutableString", true, "character(at:)", "", "", "Argument[at:]", "nsstring-length", "manual"] - ["", "NSMutableString", true, "substring(from:)", "", "", "Argument[from:]", "nsstring-length", "manual"] - ["", "NSMutableString", true, "substring(to:)", "", "", "Argument[to:]", "nsstring-length", "manual"] - - ["", "AES", true, "init(key:blockMode:)", "", "", "Argument[blockMode:]", "encryption-block-mode", "manual"] - - ["", "AES", true, "init(key:blockMode:padding:)", "", "", "Argument[blockMode:]", "encryption-block-mode", "manual"] - - ["", "NSPredicate", true, "init(format:_:)", "", "", "Argument[format:]", "predicate-injection", "manual"] - - ["", "NSPredicate", true, "init(format:arguments:)", "", "", "Argument[format:]", "predicate-injection", "manual"] - - ["", "NSPredicate", true, "init(format:argumentArray:)", "", "", "Argument[format:]", "predicate-injection", "manual"] + - ["", "AES", true, "init(blockMode:key:)", "", "", "Argument[blockMode:]", "encryption-block-mode", "manual"] + - ["", "AES", true, "init(blockMode:key:padding:)", "", "", "Argument[blockMode:]", "encryption-block-mode", "manual"] + - ["", "NSPredicate", true, "init(_:format:)", "", "", "Argument[format:]", "predicate-injection", "manual"] + - ["", "NSPredicate", true, "init(arguments:format:)", "", "", "Argument[format:]", "predicate-injection", "manual"] + - ["", "NSPredicate", true, "init(argumentArray:format:)", "", "", "Argument[format:]", "predicate-injection", "manual"] - ["", "NSPredicate", true, "init(fromMetadataQueryString:)", "", "", "Argument[fromMetadataQueryString:]", "predicate-injection", "manual"] - - ["", "NSRegularExpression", true, "init(pattern:options:)", "", "", "Argument[pattern:]", "regex-use", "manual"] - - ["", "Blowfish", true, "init(key:blockMode:padding:)", "", "", "Argument[blockMode:]", "encryption-block-mode", "manual"] + - ["", "NSRegularExpression", true, "init(options:pattern:)", "", "", "Argument[pattern:]", "regex-use", "manual"] + - ["", "Blowfish", true, "init(blockMode:key:padding:)", "", "", "Argument[blockMode:]", "encryption-block-mode", "manual"] - ["", "URLSessionConfiguration", false, "tlsMaximumSupportedProtocol", "", "", "PostUpdate", "tls-protocol-version", "manual"] - ["", "URLSessionConfiguration", false, "tlsMinimumSupportedProtocol", "", "", "PostUpdate", "tls-protocol-version", "manual"] - ["", "URLSessionConfiguration", false, "tlsMaximumSupportedProtocolVersion", "", "", "PostUpdate", "tls-protocol-version", "manual"] - ["", "URLSessionConfiguration", false, "tlsMinimumSupportedProtocolVersion", "", "", "PostUpdate", "tls-protocol-version", "manual"] - - ["", "NWConnection", true, "send(content:contentContext:isComplete:completion:)", "", "", "Argument[content:]", "transmission", "manual"] - - ["", "Zip", true, "unzipFile(_:destination:overwrite:password:progress:fileOutputHandler:)", "", "", "Argument[0]", "unsafe-unpack", "manual"] - - ["", "NSRange", true, "init(location:length:)", "", "", "Argument[location:,length:]", "nsstring-length", "manual"] + - ["", "NWConnection", true, "send(completion:content:contentContext:isComplete:)", "", "", "Argument[content:]", "transmission", "manual"] + - ["", "Zip", true, "unzipFile(_:destination:fileOutputHandler:overwrite:password:progress:)", "", "", "Argument[0]", "unsafe-unpack", "manual"] + - ["", "NSRange", true, "init(length:location:)", "", "", "Argument[location:,length:]", "nsstring-length", "manual"] - ["", "NSUserScriptTask", true, "init(url:)", "", "", "Argument[url:]", "command-injection", "manual"] - - ["", "NSUserUnixTask", true, "execute(withArguments:completionHandler:)", "", "", "Argument[withArguments:]", "command-injection", "manual"] + - ["", "NSUserUnixTask", true, "execute(completionHandler:withArguments:)", "", "", "Argument[withArguments:]", "command-injection", "manual"] - ["", "Process", true, "arguments", "", "", "PostUpdate", "command-injection", "manual"] - ["", "Process", true, "currentDirectory", "", "", "PostUpdate", "command-injection", "manual"] - ["", "Process", true, "currentDirectoryPath", "", "", "PostUpdate", "command-injection", "manual"] - ["", "Process", true, "environment", "", "", "PostUpdate", "command-injection", "manual"] - ["", "Process", true, "executableURL", "", "", "PostUpdate", "command-injection", "manual"] - ["", "Process", true, "launchPath", "", "", "PostUpdate", "command-injection", "manual"] - - ["", "Process", true, "launchedProcess(launchPath:arguments:)", "", "", "Argument[launchPath:,arguments:]", "command-injection", "manual"] + - ["", "Process", true, "launchedProcess(arguments:launchPath:)", "", "", "Argument[launchPath:,arguments:]", "command-injection", "manual"] - ["", "Process", true, "run(_:arguments:terminationHandler:)", "", "", "Argument[0,arguments:]", "command-injection", "manual"] - ["", "Process", true, "standardError", "", "", "PostUpdate", "command-injection", "manual"] - ["", "Process", true, "standardInput", "", "", "PostUpdate", "command-injection", "manual"] @@ -237,15 +237,15 @@ extensions: - ["", "Connection", true, "init(_:readonly:)", "", "", "Argument[0]", "path-injection", "manual"] - ["", "Database", true, "changePassphrase(_:)", "", "", "Argument[0]", "encryption-key", "manual"] - ["", "Database", true, "usePassphrase(_:)", "", "", "Argument[0]", "encryption-key", "manual"] - - ["", "Database", true, "allStatements(sql:arguments:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "Database", true, "execute(sql:arguments:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "Database", true, "init(path:description:configuration:)", "", "", "Argument[path:]", "path-injection", "manual"] + - ["", "Database", true, "allStatements(arguments:sql:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "Database", true, "execute(arguments:sql:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "Database", true, "init(configuration:description:path:)", "", "", "Argument[path:]", "path-injection", "manual"] - ["", "Realm.Configuration", true, "encryptionKey", "", "", "PostUpdate", "encryption-key", "manual"] - - ["", "Realm.Configuration", true, "init(fileURL:inMemoryIdentifier:syncConfiguration:encryptionKey:readOnly:schemaVersion:migrationBlock:deleteRealmIfMigrationNeeded:shouldCompactOnLaunch:objectTypes:)", "", "", "Argument[fileURL:]", "path-injection", "manual"] - - ["", "Realm.Configuration", true, "init(fileURL:inMemoryIdentifier:syncConfiguration:encryptionKey:readOnly:schemaVersion:migrationBlock:deleteRealmIfMigrationNeeded:shouldCompactOnLaunch:objectTypes:)", "", "", "Argument[encryptionKey:]", "encryption-key", "manual"] - - ["", "Realm.Configuration", true, "init(fileURL:inMemoryIdentifier:syncConfiguration:encryptionKey:readOnly:schemaVersion:migrationBlock:deleteRealmIfMigrationNeeded:shouldCompactOnLaunch:objectTypes:seedFilePath:)", "", "", "Argument[fileURL:]", "path-injection", "manual"] - - ["", "Realm.Configuration", true, "init(fileURL:inMemoryIdentifier:syncConfiguration:encryptionKey:readOnly:schemaVersion:migrationBlock:deleteRealmIfMigrationNeeded:shouldCompactOnLaunch:objectTypes:seedFilePath:)", "", "", "Argument[encryptionKey:]", "encryption-key", "manual"] - - ["", "Realm.Configuration", true, "init(fileURL:inMemoryIdentifier:syncConfiguration:encryptionKey:readOnly:schemaVersion:migrationBlock:deleteRealmIfMigrationNeeded:shouldCompactOnLaunch:objectTypes:seedFilePath:)", "", "", "Argument[seedFilePath:]", "path-injection", "manual"] + - ["", "Realm.Configuration", true, "init(deleteRealmIfMigrationNeeded:encryptionKey:fileURL:inMemoryIdentifier:migrationBlock:objectTypes:readOnly:schemaVersion:shouldCompactOnLaunch:syncConfiguration:)", "", "", "Argument[fileURL:]", "path-injection", "manual"] + - ["", "Realm.Configuration", true, "init(deleteRealmIfMigrationNeeded:encryptionKey:fileURL:inMemoryIdentifier:migrationBlock:objectTypes:readOnly:schemaVersion:shouldCompactOnLaunch:syncConfiguration:)", "", "", "Argument[encryptionKey:]", "encryption-key", "manual"] + - ["", "Realm.Configuration", true, "init(deleteRealmIfMigrationNeeded:encryptionKey:fileURL:inMemoryIdentifier:migrationBlock:objectTypes:readOnly:schemaVersion:seedFilePath:shouldCompactOnLaunch:syncConfiguration:)", "", "", "Argument[fileURL:]", "path-injection", "manual"] + - ["", "Realm.Configuration", true, "init(deleteRealmIfMigrationNeeded:encryptionKey:fileURL:inMemoryIdentifier:migrationBlock:objectTypes:readOnly:schemaVersion:seedFilePath:shouldCompactOnLaunch:syncConfiguration:)", "", "", "Argument[encryptionKey:]", "encryption-key", "manual"] + - ["", "Realm.Configuration", true, "init(deleteRealmIfMigrationNeeded:encryptionKey:fileURL:inMemoryIdentifier:migrationBlock:objectTypes:readOnly:schemaVersion:seedFilePath:shouldCompactOnLaunch:syncConfiguration:)", "", "", "Argument[seedFilePath:]", "path-injection", "manual"] - ["", "Realm.Configuration", true, "fileURL", "", "", "PostUpdate", "path-injection", "manual"] - ["", "Realm.Configuration", true, "seedFilePath", "", "", "PostUpdate", "path-injection", "manual"] - ["", "Digest", true, "md5(_:)", "", "", "Argument[0]", "weak-hash-input-MD5", "manual"] @@ -267,11 +267,11 @@ extensions: - ["", "MD5", true, "callAsFunction(_:)", "", "", "Argument[0]", "weak-hash-input-MD5", "manual"] - ["", "MD5", true, "calculate(for:)", "", "", "Argument[for:]", "weak-hash-input-MD5", "manual"] - ["", "MD5", true, "process(block:currentHash:)", "", "", "Argument[block:]", "weak-hash-input-MD5", "manual"] - - ["", "MD5", true, "update(withBytes:isLast:)", "", "", "Argument[withBytes:]", "weak-hash-input-MD5", "manual"] + - ["", "MD5", true, "update(isLast:withBytes:)", "", "", "Argument[withBytes:]", "weak-hash-input-MD5", "manual"] - ["", "SHA1", true, "callAsFunction(_:)", "", "", "Argument[0]", "weak-hash-input-SHA1", "manual"] - ["", "SHA1", true, "calculate(for:)", "", "", "Argument[for:]", "weak-hash-input-SHA1", "manual"] - ["", "SHA1", true, "process(block:currentHash:)", "", "", "Argument[block:]", "weak-hash-input-SHA1", "manual"] - - ["", "SHA1", true, "update(withBytes:isLast:)", "", "", "Argument[withBytes:]", "weak-hash-input-SHA1", "manual"] + - ["", "SHA1", true, "update(isLast:withBytes:)", "", "", "Argument[withBytes:]", "weak-hash-input-SHA1", "manual"] - ["", "Logger", true, "warning(_:)", "", "", "Argument[1]", "log-injection", "manual"] - ["", "Logger", true, "error(_:)", "", "", "Argument[1]", "log-injection", "manual"] - ["", "Logger", true, "critical(_:)", "", "", "Argument[1]", "log-injection", "manual"] @@ -279,18 +279,18 @@ extensions: - ["", "Logger", true, "fault(_:)", "", "", "Argument[1]", "log-injection", "manual"] - ["", "Logger", true, "info(_:)", "", "", "Argument[1]", "log-injection", "manual"] - ["", "Logger", true, "log(_:)", "", "", "Argument[0]", "log-injection", "manual"] - - ["", "Logger", true, "log(level:_:)", "", "", "Argument[1]", "log-injection", "manual"] + - ["", "Logger", true, "log(_:level:)", "", "", "Argument[1]", "log-injection", "manual"] - ["", "Logger", true, "notice(_:)", "", "", "Argument[1]", "log-injection", "manual"] - ["", "Logger", true, "trace(_:)", "", "", "Argument[1]", "log-injection", "manual"] - ["", "NSException", true, "init(name:reason:userInfo:)", "", "", "Argument[reason:]", "log-injection", "manual"] - - ["", "NSException", true, "raise(_:format:arguments:)", "", "", "Argument[format:,arguments:]", "log-injection", "manual"] + - ["", "NSException", true, "raise(_:arguments:format:)", "", "", "Argument[format:,arguments:]", "log-injection", "manual"] - ["", "SHA256", true, "hash(bufferPointer:)", "", "", "Argument[bufferPointer:]", "weak-password-hash-input-SHA256", "manual"] - ["", "SHA256", true, "hash(data:)", "", "", "Argument[data:]", "weak-password-hash-input-SHA256", "manual"] - ["", "SHA256", true, "update(bufferPointer:)", "", "", "Argument[bufferPointer:]", "weak-password-hash-input-SHA256", "manual"] - ["", "SHA256", true, "update(data:)", "", "", "Argument[data:]", "weak-password-hash-input-SHA256", "manual"] - ["", "SHA2", true, "callAsFunction(_:)", "", "", "Argument[0]", "weak-password-hash-input-SHA2", "manual"] - ["", "SHA2", true, "calculate(for:)", "", "", "Argument[for:]", "weak-password-hash-input-SHA2", "manual"] - - ["", "SHA2", true, "update(withBytes:isLast:)", "", "", "Argument[withBytes:]", "weak-password-hash-input-SHA2", "manual"] + - ["", "SHA2", true, "update(isLast:withBytes:)", "", "", "Argument[withBytes:]", "weak-password-hash-input-SHA2", "manual"] - ["", "SHA2", true, "process32(block:currentHash:)", "", "", "Argument[block:]", "weak-password-hash-input-SHA2", "manual"] - ["", "SHA2", true, "process64(block:currentHash:)", "", "", "Argument[block:]", "weak-password-hash-input-SHA2", "manual"] - ["", "SHA384", true, "hash(bufferPointer:)", "", "", "Argument[bufferPointer:]", "weak-password-hash-input-SHA384", "manual"] @@ -300,67 +300,67 @@ extensions: - ["", "SHA3", true, "callAsFunction(_:)", "", "", "Argument[0]", "weak-password-hash-input-SHA2", "manual"] - ["", "SHA3", true, "calculate(for:)", "", "", "Argument[for:]", "weak-password-hash-input-SHA2", "manual"] - ["", "SHA3", true, "process(block:currentHash:)", "", "", "Argument[block:]", "weak-password-hash-input-SHA2", "manual"] - - ["", "SHA3", true, "update(withBytes:isLast:)", "", "", "Argument[withBytes:]", "weak-password-hash-input-SHA2", "manual"] + - ["", "SHA3", true, "update(isLast:withBytes:)", "", "", "Argument[withBytes:]", "weak-password-hash-input-SHA2", "manual"] - ["", "SHA512", true, "hash(bufferPointer:)", "", "", "Argument[bufferPointer:]", "weak-password-hash-input-SHA512", "manual"] - ["", "SHA512", true, "hash(data:)", "", "", "Argument[data:]", "weak-password-hash-input-SHA512", "manual"] - ["", "SHA512", true, "update(bufferPointer:)", "", "", "Argument[bufferPointer:]", "weak-password-hash-input-SHA512", "manual"] - ["", "SHA512", true, "update(data:)", "", "", "Argument[data:]", "weak-password-hash-input-SHA512", "manual"] - - ["", "CommonTableExpression", true, "init(recursive:named:columns:sql:arguments:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "DatabaseValueConvertible", true, "fetchAll(_:sql:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "DatabaseValueConvertible", true, "fetchCursor(_:sql:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "DatabaseValueConvertible", true, "fetchOne(_:sql:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "DatabaseValueConvertible", true, "fetchSet(_:sql:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "FetchableRecord", true, "fetchAll(_:sql:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "FetchableRecord", true, "fetchCursor(_:sql:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "FetchableRecord", true, "fetchOne(_:sql:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "FetchableRecord", true, "fetchSet(_:sql:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "FetchableRecord", true, "fetchAll(_:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "FetchableRecord", true, "fetchCursor(_:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "FetchableRecord", true, "fetchOne(_:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "FetchableRecord", true, "fetchSet(_:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "CommonTableExpression", true, "init(arguments:columns:named:recursive:sql:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "DatabaseValueConvertible", true, "fetchAll(_:adapter:arguments:sql:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "DatabaseValueConvertible", true, "fetchCursor(_:adapter:arguments:sql:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "DatabaseValueConvertible", true, "fetchOne(_:adapter:arguments:sql:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "DatabaseValueConvertible", true, "fetchSet(_:adapter:arguments:sql:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "FetchableRecord", true, "fetchAll(_:adapter:arguments:sql:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "FetchableRecord", true, "fetchCursor(_:adapter:arguments:sql:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "FetchableRecord", true, "fetchOne(_:adapter:arguments:sql:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "FetchableRecord", true, "fetchSet(_:adapter:arguments:sql:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "FetchableRecord", true, "fetchAll(_:adapter:arguments:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "FetchableRecord", true, "fetchCursor(_:adapter:arguments:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "FetchableRecord", true, "fetchOne(_:adapter:arguments:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "FetchableRecord", true, "fetchSet(_:adapter:arguments:)", "", "", "Argument[arguments:]", "database-store", "manual"] - ["", "QueryType", true, "insert(_:)", "", "", "Argument[0]", "database-store", "manual"] - ["", "QueryType", true, "update(_:)", "", "", "Argument[0]", "database-store", "manual"] - ["", "QueryType", true, "insert(_:_:)", "", "", "Argument[0,1]", "database-store", "manual"] - - ["", "QueryType", true, "insert(or:_:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "QueryType", true, "insert(_:or:)", "", "", "Argument[1]", "database-store", "manual"] - ["", "QueryType", true, "insertMany(_:)", "", "", "Argument[0]", "database-store", "manual"] - - ["", "QueryType", true, "insertMany(or:_:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "QueryType", true, "insertMany(_:or:)", "", "", "Argument[1]", "database-store", "manual"] - ["", "QueryType", true, "update(_:_:)", "", "", "Argument[0,1]", "database-store", "manual"] - - ["", "QueryType", true, "update(or:_:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "QueryType", true, "update(_:or:)", "", "", "Argument[1]", "database-store", "manual"] - ["", "QueryType", true, "upsert(_:onConflictOf:)", "", "", "Argument[0]", "database-store", "manual"] - ["", "QueryType", true, "upsert(_:onConflictOf:setValues:)", "", "", "Argument[0]", "database-store", "manual"] - ["", "QueryType", true, "upsert(_:onConflictOf:setValues:)", "", "", "Argument[setValues:]", "database-store", "manual"] - - ["", "Row", true, "fetchAll(_:sql:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "Row", true, "fetchCursor(_:sql:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "Row", true, "fetchOne(_:sql:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "Row", true, "fetchSet(_:sql:arguments:adapter:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "SQL", true, "append(sql:arguments:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "SQL", true, "init(sql:arguments:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "SQLRequest", true, "init(sql:arguments:adapter:cached:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "SQLStatementCursor", true, "init(database:sql:arguments:prepFlags:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "Row", true, "fetchAll(_:adapter:arguments:sql:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "Row", true, "fetchCursor(_:adapter:arguments:sql:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "Row", true, "fetchOne(_:adapter:arguments:sql:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "Row", true, "fetchSet(_:adapter:arguments:sql:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "SQL", true, "append(arguments:sql:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "SQL", true, "init(arguments:sql:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "SQLRequest", true, "init(adapter:arguments:cached:sql:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "SQLStatementCursor", true, "init(arguments:database:prepFlags:sql:)", "", "", "Argument[arguments:]", "database-store", "manual"] - ["", "Statement", true, "init(_:_:)", "", "", "Argument[1]", "database-store", "manual"] - ["", "Statement", true, "scalar(_:)", "", "", "Argument[0]", "database-store", "manual"] - ["", "Statement", true, "bind(_:)", "", "", "Argument[0]", "database-store", "manual"] - ["", "Statement", true, "execute(arguments:)", "", "", "Argument[arguments:]", "database-store", "manual"] - ["", "Statement", true, "run(_:)", "", "", "Argument[0]", "database-store", "manual"] - ["", "Statement", true, "setArguments(_:)", "", "", "Argument[0]", "database-store", "manual"] - - ["", "TableRecord", true, "filter(sql:arguments:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "TableRecord", true, "order(sql:arguments:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "TableRecord", true, "select(sql:arguments:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "TableRecord", true, "select(sql:arguments:as:)", "", "", "Argument[arguments:]", "database-store", "manual"] - - ["", "ArchiveByteStream", true, "fileStream(fd:automaticClose:)", "", "", "Argument[fd:]", "path-injection", "manual"] - - ["", "ArchiveByteStream", true, "fileStream(path:mode:options:permissions:)", "", "", "Argument[path:]", "path-injection", "manual"] - - ["", "ArchiveByteStream", true, "withFileStream(fd:automaticClose:_:)", "", "", "Argument[fd:]", "path-injection", "manual"] - - ["", "ArchiveByteStream", true, "withFileStream(path:mode:options:permissions:_:)", "", "", "Argument[path:]", "path-injection", "manual"] + - ["", "TableRecord", true, "filter(arguments:sql:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "TableRecord", true, "order(arguments:sql:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "TableRecord", true, "select(arguments:sql:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "TableRecord", true, "select(arguments:as:sql:)", "", "", "Argument[arguments:]", "database-store", "manual"] + - ["", "ArchiveByteStream", true, "fileStream(automaticClose:fd:)", "", "", "Argument[fd:]", "path-injection", "manual"] + - ["", "ArchiveByteStream", true, "fileStream(mode:options:path:permissions:)", "", "", "Argument[path:]", "path-injection", "manual"] + - ["", "ArchiveByteStream", true, "withFileStream(_:automaticClose:fd:)", "", "", "Argument[fd:]", "path-injection", "manual"] + - ["", "ArchiveByteStream", true, "withFileStream(_:mode:options:path:permissions:)", "", "", "Argument[path:]", "path-injection", "manual"] - ["", "Bundle", true, "init(url:)", "", "", "Argument[url:]", "path-injection", "manual"] - ["", "Bundle", true, "init(path:)", "", "", "Argument[path:]", "path-injection", "manual"] - - ["", "DatabasePool", true, "init(path:configuration:)", "", "", "Argument[path:]", "path-injection", "manual"] - - ["", "DatabaseQueue", true, "init(path:configuration:)", "", "", "Argument[path:]", "path-injection", "manual"] - - ["", "DatabaseSnapshotPool", true, "init(path:configuration:)", "", "", "Argument[path:]", "path-injection", "manual"] + - ["", "DatabasePool", true, "init(configuration:path:)", "", "", "Argument[path:]", "path-injection", "manual"] + - ["", "DatabaseQueue", true, "init(configuration:path:)", "", "", "Argument[path:]", "path-injection", "manual"] + - ["", "DatabaseSnapshotPool", true, "init(configuration:path:)", "", "", "Argument[path:]", "path-injection", "manual"] - ["", "NIOFileHandle", true, "init(path:)", "", "", "Argument[path:]", "path-injection", "manual"] - ["", "NIOFileHandle", true, "init(descriptor:)", "", "", "Argument[descriptor:]", "path-injection", "manual"] - - ["", "NIOFileHandle", true, "init(path:mode:flags:)", "", "", "Argument[path:]", "path-injection", "manual"] + - ["", "NIOFileHandle", true, "init(flags:mode:path:)", "", "", "Argument[path:]", "path-injection", "manual"] - ["", "NSKeyedUnarchiver", true, "unarchiveObject(withFile:)", "", "", "Argument[withFile:]", "path-injection", "manual"] - - ["", "SerializedDatabase", true, "init(path:configuration:defaultLabel:purpose:)", "", "", "Argument[path:]", "path-injection", "manual"] + - ["", "SerializedDatabase", true, "init(configuration:defaultLabel:path:purpose:)", "", "", "Argument[path:]", "path-injection", "manual"] - addsTo: pack: codeql/unified-all extensible: legacySummaryModel @@ -369,30 +369,30 @@ extensions: - ["", "UnsafeMutableRawPointer", true, "init(_:)", "", "", "Argument[0].OptionalSome.CollectionElement", "ReturnValue.OptionalSome.CollectionElement", "value", "manual"] - ["", "UnsafeMutableRawPointer", true, "init(mutating:)", "", "", "Argument[mutating:].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - ["", "UnsafeMutableRawPointer", true, "init(mutating:)", "", "", "Argument[mutating:].OptionalSome.CollectionElement", "ReturnValue.OptionalSome.CollectionElement", "value", "manual"] - - ["", "UnsafeMutableRawPointer", true, "storeBytes(of:toByteOffset:as:)", "", "", "Argument[of:]", "Argument[self].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[self].CollectionElement", "Argument[2].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[2].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "UnsafeMutableRawPointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[2].Parameter[0].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "loadUnaligned(fromByteOffset:as:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "load(fromByteOffset:as:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "storeBytes(as:of:toByteOffset:)", "", "", "Argument[of:]", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "withMemoryRebound(_:capacity:to:)", "", "", "Argument[self].CollectionElement", "Argument[2].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "withMemoryRebound(_:capacity:to:)", "", "", "Argument[2].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "UnsafeMutableRawPointer", true, "withMemoryRebound(_:capacity:to:)", "", "", "Argument[2].Parameter[0].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "loadUnaligned(as:fromByteOffset:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "load(as:fromByteOffset:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] - ["", "UnsafeMutableRawPointer", true, "assumingMemoryBound(to:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "bindMemory(to:capacity:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "bindMemory(capacity:to:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - ["", "UnsafeMutableRawPointer", true, "alignedDown(toMultipleOf:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - ["", "UnsafeMutableRawPointer", true, "alignedUp(toMultipleOf:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - ["", "UnsafeMutableRawPointer", true, "alignedDown(for:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - ["", "UnsafeMutableRawPointer", true, "alignedUp(for:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "moveInitializeMemory(as:from:count:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "moveInitializeMemory(as:from:count:)", "", "", "Argument[from:].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:from:count:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:from:count:)", "", "", "Argument[from:].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:repeating:count:)", "", "", "Argument[repeating:]", "Argument[self].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:repeating:count:)", "", "", "Argument[repeating:]", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "moveInitializeMemory(as:count:from:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "moveInitializeMemory(as:count:from:)", "", "", "Argument[from:].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:count:from:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:count:from:)", "", "", "Argument[from:].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:count:repeating:)", "", "", "Argument[repeating:]", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:count:repeating:)", "", "", "Argument[repeating:]", "ReturnValue.CollectionElement", "taint", "manual"] - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:to:)", "", "", "Argument[to:]", "Argument[self].CollectionElement", "taint", "manual"] - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:to:)", "", "", "Argument[to:]", "ReturnValue.CollectionElement", "taint", "manual"] - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:from:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:from:)", "", "", "Argument[from:].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "copyBytes(from:count:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawPointer", true, "copyMemory(from:count:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "copyBytes(count:from:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawPointer", true, "copyMemory(count:from:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:at:count:to:)", "", "", "Argument[to:]", "Argument[self].CollectionElement", "taint", "manual"] - ["", "UnsafeMutableRawPointer", true, "initializeMemory(as:at:count:to:)", "", "", "Argument[to:]", "ReturnValue.CollectionElement", "taint", "manual"] - ["", "UnsignedInteger", true, "init(exactly:)", "", "", "Argument[exactly:]", "ReturnValue.OptionalSome", "value", "manual"] @@ -444,8 +444,8 @@ extensions: - ["", "Sequence", true, "drop(while:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - ["", "Sequence", true, "dropFirst(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "Sequence", true, "dropFirst(_:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Sequence", true, "split(separator:maxSplits:omittingEmptySubsequences:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - - ["", "Sequence", true, "split(separator:maxSplits:omittingEmptySubsequences:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "Sequence", true, "split(maxSplits:omittingEmptySubsequences:separator:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Sequence", true, "split(maxSplits:omittingEmptySubsequences:separator:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - ["", "Sequence", true, "shuffled()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "Sequence", true, "shuffled()", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - ["", "Sequence", true, "shuffled(using:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] @@ -471,38 +471,38 @@ extensions: - ["", "Sequence", true, "sorted(by:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - ["", "Sequence", true, "formatted()", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] - ["", "UnsafeBufferPointer", true, "init(_:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "UnsafeBufferPointer", true, "init(start:count:)", "", "", "Argument[start:].OptionalSome.CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[self].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "UnsafeBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "UnsafeBufferPointer", true, "init(count:start:)", "", "", "Argument[start:].OptionalSome.CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeBufferPointer", true, "withMemoryRebound(_:to:)", "", "", "Argument[self].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeBufferPointer", true, "withMemoryRebound(_:to:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - ["", "UnsafeBufferPointer", true, "init(rebasing:)", "", "", "Argument[rebasing:].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "UnsafePointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[self].CollectionElement", "Argument[2].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "UnsafePointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[2].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "UnsafePointer", true, "withMemoryRebound(_:capacity:to:)", "", "", "Argument[self].CollectionElement", "Argument[2].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "UnsafePointer", true, "withMemoryRebound(_:capacity:to:)", "", "", "Argument[2].ReturnValue", "ReturnValue", "value", "manual"] - ["", "UnsafeMutablePointer", true, "init(_:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - ["", "UnsafeMutablePointer", true, "init(_:)", "", "", "Argument[0].OptionalSome.CollectionElement", "ReturnValue.OptionalSome.CollectionElement", "value", "manual"] - ["", "UnsafeMutablePointer", true, "init(mutating:)", "", "", "Argument[mutating:].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - ["", "UnsafeMutablePointer", true, "init(mutating:)", "", "", "Argument[mutating:].OptionalSome.CollectionElement", "ReturnValue.OptionalSome.CollectionElement", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[self].CollectionElement", "Argument[2].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutablePointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[2].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[2].Parameter[0].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutablePointer", true, "initialize(repeating:count:)", "", "", "Argument[repeating:]", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "withMemoryRebound(_:capacity:to:)", "", "", "Argument[self].CollectionElement", "Argument[2].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutablePointer", true, "withMemoryRebound(_:capacity:to:)", "", "", "Argument[2].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "withMemoryRebound(_:capacity:to:)", "", "", "Argument[2].Parameter[0].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutablePointer", true, "initialize(count:repeating:)", "", "", "Argument[repeating:]", "Argument[self].CollectionElement", "value", "manual"] - ["", "UnsafeMutablePointer", true, "initialize(to:)", "", "", "Argument[to:]", "Argument[self].CollectionElement", "value", "manual"] - ["", "UnsafeMutablePointer", true, "move()", "", "", "Argument[self].CollectionElement", "ReturnValue", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "assign(repeating:count:)", "", "", "Argument[repeating:]", "Argument[self].CollectionElement", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "update(repeating:count:)", "", "", "Argument[repeating:]", "Argument[self].CollectionElement", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "assign(from:count:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "update(from:count:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "moveInitialize(from:count:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "initialize(from:count:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "moveUpdate(from:count:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "moveAssign(from:count:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "assign(count:repeating:)", "", "", "Argument[repeating:]", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "update(count:repeating:)", "", "", "Argument[repeating:]", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "assign(count:from:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "update(count:from:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "moveInitialize(count:from:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "initialize(count:from:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "moveUpdate(count:from:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutablePointer", true, "moveAssign(count:from:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] - ["", "UnsafeMutablePointer", true, "initialize(from:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] - - ["", "UnsafeMutablePointer", true, "initialize(to:count:)", "", "", "Argument[to:]", "Argument[self].CollectionElement", "value", "manual"] - - ["", "UnsafeMutableBufferPointer", true, "init(start:count:)", "", "", "Argument[start:].OptionalSome.CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutablePointer", true, "initialize(count:to:)", "", "", "Argument[to:]", "Argument[self].CollectionElement", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "init(count:start:)", "", "", "Argument[start:].OptionalSome.CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - ["", "UnsafeMutableBufferPointer", true, "init(mutating:)", "", "", "Argument[mutating:].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - ["", "UnsafeMutableBufferPointer", true, "update(repeating:)", "", "", "Argument[repeating:]", "Argument[self].CollectionElement", "value", "manual"] - - ["", "UnsafeMutableBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[self].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "withMemoryRebound(_:to:)", "", "", "Argument[self].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "withMemoryRebound(_:to:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableBufferPointer", true, "withMemoryRebound(_:to:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - ["", "UnsafeMutableBufferPointer", true, "moveElement(from:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "value", "manual"] - ["", "UnsafeMutableBufferPointer", true, "initializeElement(at:to:)", "", "", "Argument[to:]", "Argument[self].CollectionElement", "value", "manual"] - ["", "UnsafeMutableBufferPointer", true, "moveUpdate(fromContentsOf:)", "", "", "Argument[fromContentsOf:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] @@ -548,7 +548,7 @@ extensions: - ["", "Collection", true, "prefix(_:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - ["", "Collection", true, "dropFirst(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "Collection", true, "dropFirst(_:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "Collection", true, "split(separator:maxSplits:omittingEmptySubsequences:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Collection", true, "split(maxSplits:omittingEmptySubsequences:separator:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "Collection", true, "flatMap(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "Collection", true, "flatMap(_:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - ["", "Collection", true, "trimmingPrefix(while:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] @@ -557,12 +557,12 @@ extensions: - ["", "Collection", true, "trimmingPrefix(_:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - ["", "UnsafeRawPointer", true, "init(_:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - ["", "UnsafeRawPointer", true, "init(_:)", "", "", "Argument[0].OptionalSome.CollectionElement", "ReturnValue.OptionalSome.CollectionElement", "value", "manual"] - - ["", "UnsafeRawPointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[self].CollectionElement", "Argument[2].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "UnsafeRawPointer", true, "withMemoryRebound(to:capacity:_:)", "", "", "Argument[2].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "UnsafeRawPointer", true, "loadUnaligned(fromByteOffset:as:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "UnsafeRawPointer", true, "load(fromByteOffset:as:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeRawPointer", true, "withMemoryRebound(_:capacity:to:)", "", "", "Argument[self].CollectionElement", "Argument[2].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeRawPointer", true, "withMemoryRebound(_:capacity:to:)", "", "", "Argument[2].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "UnsafeRawPointer", true, "loadUnaligned(as:fromByteOffset:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeRawPointer", true, "load(as:fromByteOffset:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] - ["", "UnsafeRawPointer", true, "assumingMemoryBound(to:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeRawPointer", true, "bindMemory(to:capacity:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeRawPointer", true, "bindMemory(capacity:to:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - ["", "UnsafeRawPointer", true, "alignedDown(toMultipleOf:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - ["", "UnsafeRawPointer", true, "alignedUp(toMultipleOf:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - ["", "UnsafeRawPointer", true, "alignedDown(for:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] @@ -570,16 +570,16 @@ extensions: - ["", "Slice", true, "init(base:bounds:)", "", "", "Argument[base:].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - ["", "Slice", true, "remove(at:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "value", "manual"] - ["", "Slice", true, "insert(_:at:)", "", "", "Argument[0]", "Argument[self].CollectionElement", "value", "manual"] - - ["", "Slice", true, "insert(contentsOf:at:)", "", "", "Argument[contentsOf:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] + - ["", "Slice", true, "insert(at:contentsOf:)", "", "", "Argument[contentsOf:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] - ["", "Slice", true, "replaceSubrange(_:with:)", "", "", "Argument[with:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] - - ["", "Slice", true, "storeBytes(of:toByteOffset:as:)", "", "", "Argument[of:]", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "storeBytes(as:of:toByteOffset:)", "", "", "Argument[of:]", "Argument[self].CollectionElement", "taint", "manual"] - ["", "Slice", true, "update(repeating:)", "", "", "Argument[repeating:]", "Argument[self].CollectionElement", "value", "manual"] - - ["", "Slice", true, "loadUnaligned(fromByteOffset:as:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "Slice", true, "load(fromByteOffset:as:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "Slice", true, "loadUnaligned(as:fromByteOffset:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "Slice", true, "load(as:fromByteOffset:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] - ["", "Slice", true, "assumingMemoryBound(to:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "Slice", true, "withMemoryRebound(to:_:)", "", "", "Argument[self].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "Slice", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] - - ["", "Slice", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "Slice", true, "withMemoryRebound(_:to:)", "", "", "Argument[self].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "withMemoryRebound(_:to:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "withMemoryRebound(_:to:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - ["", "Slice", true, "bindMemory(to:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - ["", "Slice", true, "moveInitializeMemory(as:fromContentsOf:)", "", "", "Argument[fromContentsOf:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] - ["", "Slice", true, "moveInitializeMemory(as:fromContentsOf:)", "", "", "Argument[fromContentsOf:].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] @@ -601,9 +601,9 @@ extensions: - ["", "Slice", true, "initialize(from:)", "", "", "Argument[from:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] - ["", "Slice", true, "initialize(from:)", "", "", "Argument[from:].CollectionElement", "ReturnValue.TupleElement[0,1].CollectionElement", "taint", "manual"] - ["", "Slice", true, "initialize(repeating:)", "", "", "Argument[repeating:]", "Argument[self].CollectionElement", "value", "manual"] - - ["", "Slice", true, "withContiguousMutableStorageIfAvailable(to:_:)", "", "", "Argument[self].CollectionElement", "Argument[to:].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "Slice", true, "withContiguousMutableStorageIfAvailable(to:_:)", "", "", "Argument[to:].Parameter[0].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] - - ["", "Slice", true, "withContiguousMutableStorageIfAvailable(to:_:)", "", "", "Argument[to:].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "Slice", true, "withContiguousMutableStorageIfAvailable(_:to:)", "", "", "Argument[self].CollectionElement", "Argument[to:].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "withContiguousMutableStorageIfAvailable(_:to:)", "", "", "Argument[to:].Parameter[0].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "Slice", true, "withContiguousMutableStorageIfAvailable(_:to:)", "", "", "Argument[to:].ReturnValue", "ReturnValue", "value", "manual"] - ["", "SignedInteger", true, "init(exactly:)", "", "", "Argument[exactly:]", "ReturnValue.OptionalSome", "value", "manual"] - ["", "SignedInteger", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "BidirectionalCollection", true, "popLast()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] @@ -620,8 +620,8 @@ extensions: - ["", "BidirectionalCollection", true, "reversed()", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - ["", "String", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "String", true, "init(_:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "String", true, "init(repeating:count:)", "", "", "Argument[repeating:]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "insert(contentsOf:at:)", "", "", "Argument[contentsOf:]", "Argument[self]", "taint", "manual"] + - ["", "String", true, "init(count:repeating:)", "", "", "Argument[repeating:]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "insert(at:contentsOf:)", "", "", "Argument[contentsOf:]", "Argument[self]", "taint", "manual"] - ["", "String", true, "init(extendedGraphemeClusterLiteral:)", "", "", "Argument[extendedGraphemeClusterLiteral:]", "ReturnValue", "taint", "manual"] - ["", "String", true, "init(unicodeScalarLiteral:)", "", "", "Argument[unicodeScalarLiteral:]", "ReturnValue", "taint", "manual"] - ["", "String", true, "encode(to:)", "", "", "Argument[self]", "Argument[to:]", "taint", "manual"] @@ -644,7 +644,7 @@ extensions: - ["", "String", true, "withUTF8(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - ["", "String", true, "withUTF8(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[self]", "taint", "manual"] - ["", "String", true, "withUTF8(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "String", true, "init(unsafeUninitializedCapacity:initializingUTF8With:)", "", "", "Argument[initializingUTF8With:].Parameter[0].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(initializingUTF8With:unsafeUninitializedCapacity:)", "", "", "Argument[initializingUTF8With:].Parameter[0].CollectionElement", "ReturnValue", "taint", "manual"] - ["", "String", true, "init(_:radix:uppercase:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "String", true, "init(validating:)", "", "", "Argument[validating:]", "ReturnValue.OptionalSome", "taint", "manual"] - ["", "String", true, "init(describing:)", "", "", "Argument[describing:]", "ReturnValue", "taint", "manual"] @@ -657,18 +657,18 @@ extensions: - ["", "String", true, "init(platformString:)", "", "", "Argument[platformString:].CollectionElement", "ReturnValue", "taint", "manual"] - ["", "String", true, "withPlatformString(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - ["", "String", true, "withPlatformString(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "String", true, "init(bytesNoCopy:length:encoding:freeWhenDone:)", "", "", "Argument[bytesNoCopy:].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "String", true, "init(bytesNoCopy:encoding:freeWhenDone:length:)", "", "", "Argument[bytesNoCopy:].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] - ["", "String", true, "init(cString:encoding:)", "", "", "Argument[cString:]", "ReturnValue.OptionalSome", "taint", "manual"] - ["", "String", true, "init(cString:encoding:)", "", "", "Argument[cString:].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] - ["", "String", true, "init(data:encoding:)", "", "", "Argument[data:]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "String", true, "init(format:_:)", "", "", "Argument[format:]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(format:_:)", "", "", "Argument[1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(format:arguments:)", "", "", "Argument[format:]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(format:arguments:)", "", "", "Argument[arguments:].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(format:locale:_:)", "", "", "Argument[format:]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(format:locale:_:)", "", "", "Argument[2].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(format:locale:arguments:)", "", "", "Argument[format:]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(format:locale:arguments:)", "", "", "Argument[arguments:].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(_:format:)", "", "", "Argument[format:]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(_:format:)", "", "", "Argument[1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(arguments:format:)", "", "", "Argument[format:]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(arguments:format:)", "", "", "Argument[arguments:].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(_:format:locale:)", "", "", "Argument[format:]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(_:format:locale:)", "", "", "Argument[2].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(arguments:format:locale:)", "", "", "Argument[format:]", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(arguments:format:locale:)", "", "", "Argument[arguments:].CollectionElement", "ReturnValue", "taint", "manual"] - ["", "String", true, "init(utf8String:)", "", "", "Argument[utf8String:]", "ReturnValue.OptionalSome", "taint", "manual"] - ["", "String", true, "init(utf8String:)", "", "", "Argument[utf8String:].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] - ["", "String", true, "localizedStringWithFormat(_:_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] @@ -676,8 +676,8 @@ extensions: - ["", "String", true, "init(bytes:encoding:)", "", "", "Argument[bytes:].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] - ["", "String", true, "init(contendsOf:usedEncoding:)", "", "", "Argument[contendsOf:]", "ReturnValue", "taint", "manual"] - ["", "String", true, "init(decoding:)", "", "", "Argument[decoding:]", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(utf16CodeUnits:count:)", "", "", "Argument[utf16CodeUnits:].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "String", true, "init(utf16CodeUnitsNoCopy:count:freeWhenDone:)", "", "", "Argument[utf16CodeUnitsNoCopy:].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(count:utf16CodeUnits:)", "", "", "Argument[utf16CodeUnits:].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "String", true, "init(count:freeWhenDone:utf16CodeUnitsNoCopy:)", "", "", "Argument[utf16CodeUnitsNoCopy:].CollectionElement", "ReturnValue", "taint", "manual"] - ["", "String", true, "init(validatingPlatformString:)", "", "", "Argument[validatingPlatformString:]", "ReturnValue.OptionalSome", "taint", "manual"] - ["", "String", true, "init(validatingPlatformString:)", "", "", "Argument[validatingPlatformString:].CollectionElement", "ReturnValue.OptionalSome", "taint", "manual"] - ["", "String", true, "subscript(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] @@ -685,18 +685,18 @@ extensions: - ["", "String", true, "withMutableCharacters(_:)", "", "", "Argument[0].Parameter[0]", "Argument[self]", "value", "manual"] - ["", "String", true, "withMutableCharacters(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[self]", "taint", "manual"] - ["", "String", true, "withMutableCharacters(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "BinaryFloatingPoint", true, "init(sign:exponentBitPattern:significandBitPattern:)", "", "", "Argument[sign:,exponentBitPattern:,significandBitPattern:]", "ReturnValue", "taint", "manual"] + - ["", "BinaryFloatingPoint", true, "init(exponentBitPattern:sign:significandBitPattern:)", "", "", "Argument[sign:,exponentBitPattern:,significandBitPattern:]", "ReturnValue", "taint", "manual"] - ["", "BinaryFloatingPoint", true, "formatted()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "BinaryFloatingPoint", true, "formatted(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "BinaryFloatingPoint", true, "init(_:format:lenient:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "BinaryFloatingPoint", true, "init(_:strategy:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "UnsafeRawBufferPointer", true, "init(_:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "UnsafeRawBufferPointer", true, "init(start:count:)", "", "", "Argument[start:].OptionalSome.CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeRawBufferPointer", true, "loadUnaligned(fromByteOffset:as:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "UnsafeRawBufferPointer", true, "load(fromByteOffset:as:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeRawBufferPointer", true, "init(count:start:)", "", "", "Argument[start:].OptionalSome.CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeRawBufferPointer", true, "loadUnaligned(as:fromByteOffset:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeRawBufferPointer", true, "load(as:fromByteOffset:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] - ["", "UnsafeRawBufferPointer", true, "assumingMemoryBound(to:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeRawBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[self].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "UnsafeRawBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "UnsafeRawBufferPointer", true, "withMemoryRebound(_:to:)", "", "", "Argument[self].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeRawBufferPointer", true, "withMemoryRebound(_:to:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - ["", "UnsafeRawBufferPointer", true, "bindMemory(to:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - ["", "UnsafeRawBufferPointer", true, "init(rebasing:)", "", "", "Argument[rebasing:].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - ["", "Array", true, "withUnsafeMutableBufferPointer(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] @@ -727,22 +727,22 @@ extensions: - ["", "RangeReplaceableCollection", true, "remove(at:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "RangeReplaceableCollection", true, "insert(_:at:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] - ["", "RangeReplaceableCollection", true, "append(contentsOf:)", "", "", "Argument[contentsOf:]", "Argument[self]", "taint", "manual"] - - ["", "RangeReplaceableCollection", true, "init(repeating:count:)", "", "", "Argument[repeating:]", "ReturnValue.CollectionElement", "value", "manual"] + - ["", "RangeReplaceableCollection", true, "init(count:repeating:)", "", "", "Argument[repeating:]", "ReturnValue.CollectionElement", "value", "manual"] - ["", "RangeReplaceableCollection", true, "removeFirst()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "RangeReplaceableCollection", true, "replaceSubrange(_:with:)", "", "", "Argument[with:]", "Argument[self]", "taint", "manual"] - ["", "RangeReplaceableCollection", true, "replaceSubrange(_:with:)", "", "", "Argument[with:].CollectionElement", "Argument[self].CollectionElement", "value", "manual"] - ["", "RangeReplaceableCollection", true, "removeLast()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "IteratorProtocol", true, "next()", "", "", "Argument[self].CollectionElement", "ReturnValue.OptionalSome", "value", "manual"] - ["", "UnsafeMutableRawBufferPointer", true, "init(_:)", "", "", "Argument[0].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "init(start:count:)", "", "", "Argument[start:].OptionalSome.CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "init(count:start:)", "", "", "Argument[start:].OptionalSome.CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - ["", "UnsafeMutableRawBufferPointer", true, "init(mutating:)", "", "", "Argument[mutating:].CollectionElement", "ReturnValue.CollectionElement", "value", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "storeBytes(of:toByteOffset:as:)", "", "", "Argument[of:]", "Argument[self].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "loadUnaligned(fromByteOffset:as:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "load(fromByteOffset:as:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "storeBytes(as:of:toByteOffset:)", "", "", "Argument[of:]", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "loadUnaligned(as:fromByteOffset:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "load(as:fromByteOffset:)", "", "", "Argument[self].CollectionElement", "ReturnValue", "taint", "manual"] - ["", "UnsafeMutableRawBufferPointer", true, "assumingMemoryBound(to:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[self].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] - - ["", "UnsafeMutableRawBufferPointer", true, "withMemoryRebound(to:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "withMemoryRebound(_:to:)", "", "", "Argument[self].CollectionElement", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "withMemoryRebound(_:to:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] + - ["", "UnsafeMutableRawBufferPointer", true, "withMemoryRebound(_:to:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - ["", "UnsafeMutableRawBufferPointer", true, "bindMemory(to:)", "", "", "Argument[self].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] - ["", "UnsafeMutableRawBufferPointer", true, "moveInitializeMemory(as:fromContentsOf:)", "", "", "Argument[fromContentsOf:].CollectionElement", "Argument[self].CollectionElement", "taint", "manual"] - ["", "UnsafeMutableRawBufferPointer", true, "moveInitializeMemory(as:fromContentsOf:)", "", "", "Argument[fromContentsOf:].CollectionElement", "ReturnValue.CollectionElement", "taint", "manual"] @@ -782,18 +782,18 @@ extensions: - ["", "Substring", true, "withUTF8(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - ["", "Substring", true, "withUTF8(_:)", "", "", "Argument[0].Parameter[0].CollectionElement", "Argument[self]", "taint", "manual"] - ["", "Substring", true, "withUTF8(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "StringProtocol", true, "withCString(encodedAs:_:)", "", "", "Argument[self]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "StringProtocol", true, "withCString(encodedAs:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "StringProtocol", true, "withCString(_:encodedAs:)", "", "", "Argument[self]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "StringProtocol", true, "withCString(_:encodedAs:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - ["", "StringProtocol", true, "withCString(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - ["", "StringProtocol", true, "withCString(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "StringProtocol", true, "init(decodingCString:as:)", "", "", "Argument[decodingCString:].OptionalSome.CollectionElement", "ReturnValue.OptionalSome.TupleElement[0]", "taint", "manual"] + - ["", "StringProtocol", true, "init(as:decodingCString:)", "", "", "Argument[decodingCString:].OptionalSome.CollectionElement", "ReturnValue.OptionalSome.TupleElement[0]", "taint", "manual"] - ["", "StringProtocol", true, "init(cString:)", "", "", "Argument[cString:]", "ReturnValue", "taint", "manual"] - ["", "StringProtocol", true, "init(cString:)", "", "", "Argument[cString:].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "init(decoding:as:)", "", "", "Argument[decoding:]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "init(as:decoding:)", "", "", "Argument[decoding:]", "ReturnValue", "taint", "manual"] - ["", "StringProtocol", true, "uppercased()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "StringProtocol", true, "lowercased()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "getBytes(_:maxLength:usedLength:encoding:options:range:remaining:)", "", "", "Argument[self]", "Argument[0].CollectionElement", "taint", "manual"] - - ["", "StringProtocol", true, "getCString(_:maxLength:encoding:)", "", "", "Argument[self]", "Argument[0].CollectionElement", "taint", "manual"] + - ["", "StringProtocol", true, "getBytes(_:encoding:maxLength:options:range:remaining:usedLength:)", "", "", "Argument[self]", "Argument[0].CollectionElement", "taint", "manual"] + - ["", "StringProtocol", true, "getCString(_:encoding:maxLength:)", "", "", "Argument[self]", "Argument[0].CollectionElement", "taint", "manual"] - ["", "StringProtocol", true, "appending(_:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] - ["", "StringProtocol", true, "addingPercentEscapes(using:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "StringProtocol", true, "appendingFormat(_:_:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] @@ -801,20 +801,20 @@ extensions: - ["", "StringProtocol", true, "applyingTransform(_:reverse:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "StringProtocol", true, "cString(using:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "StringProtocol", true, "capitalized(with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "completePath(into:caseSensitive:matchesInto:filterTypes:)", "", "", "Argument[self]", "Argument[into:].CollectionElement", "taint", "manual"] - - ["", "StringProtocol", true, "completePath(into:caseSensitive:matchesInto:filterTypes:)", "", "", "Argument[self]", "Argument[matchesInto:].CollectionElement.CollectionElement", "taint", "manual"] + - ["", "StringProtocol", true, "completePath(caseSensitive:filterTypes:into:matchesInto:)", "", "", "Argument[self]", "Argument[into:].CollectionElement", "taint", "manual"] + - ["", "StringProtocol", true, "completePath(caseSensitive:filterTypes:into:matchesInto:)", "", "", "Argument[self]", "Argument[matchesInto:].CollectionElement.CollectionElement", "taint", "manual"] - ["", "StringProtocol", true, "components(separatedBy:)", "", "", "Argument[self]", "ReturnValue.CollectionElement", "taint", "manual"] - - ["", "StringProtocol", true, "data(using:allowLossyConversion:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "folding(options:locale:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "data(allowLossyConversion:using:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "folding(locale:options:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "StringProtocol", true, "lowercased(with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "padding(toLength:withPad:startingAt:)", "", "", "Argument[withPad:]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "padding(toLength:withPad:startingAt:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "padding(startingAt:toLength:withPad:)", "", "", "Argument[withPad:]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "padding(startingAt:toLength:withPad:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "StringProtocol", true, "propertyList()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "StringProtocol", true, "propertyListFromStringsFileFormat()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "StringProtocol", true, "replacingCharacters(in:with:)", "", "", "Argument[with:]", "ReturnValue", "taint", "manual"] - ["", "StringProtocol", true, "replacingCharacters(in:with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "replacingOccurrences(of:with:options:range:)", "", "", "Argument[with:]", "ReturnValue", "taint", "manual"] - - ["", "StringProtocol", true, "replacingOccurrences(of:with:options:range:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "replacingOccurrences(of:options:range:with:)", "", "", "Argument[with:]", "ReturnValue", "taint", "manual"] + - ["", "StringProtocol", true, "replacingOccurrences(of:options:range:with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "StringProtocol", true, "replacingPercentEscapes(using:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "StringProtocol", true, "substring(from:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "StringProtocol", true, "substring(with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] @@ -836,8 +836,8 @@ extensions: - ["", "FloatingPoint", true, "truncatingRemainder(dividingBy:)", "", "", "Argument[self,dividingBy:]", "ReturnValue", "taint", "manual"] - ["", "FloatingPoint", true, "formRemainder(dividingBy:)", "", "", "Argument[self,dividingBy:]", "Argument[self]", "taint", "manual"] - ["", "FloatingPoint", true, "remainder(dividingBy:)", "", "", "Argument[self,dividingBy:]", "ReturnValue", "taint", "manual"] - - ["", "FloatingPoint", true, "init(signOf:magnitudeOf:)", "", "", "Argument[magnitudeOf:]", "ReturnValue", "taint", "manual"] - - ["", "FloatingPoint", true, "init(sign:exponent:significand:)", "", "", "Argument[exponent:,significand:]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "init(magnitudeOf:signOf:)", "", "", "Argument[magnitudeOf:]", "ReturnValue", "taint", "manual"] + - ["", "FloatingPoint", true, "init(exponent:sign:significand:)", "", "", "Argument[exponent:,significand:]", "ReturnValue", "taint", "manual"] - ["", "FloatingPoint", true, "rounded()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "OptionSet", true, "init(rawValue:)", "", "", "Argument[rawValue:]", "ReturnValue", "taint", "manual"] - ["", "", false, "min(_:_:)", "", "", "Argument[0,1]", "ReturnValue", "taint", "manual"] @@ -848,30 +848,30 @@ extensions: - ["", "", false, "max(_:_:_:_:)", "", "", "Argument[3].CollectionElement", "ReturnValue", "taint", "manual"] - ["", "", false, "unsafeBitCast(_:to:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "", false, "unsafeDowncast(_:to:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "", false, "dump(_:to:name:indent:maxDepth:maxItems:)", "", "", "Argument[0,name:]", "Argument[to:]", "taint", "manual"] + - ["", "", false, "dump(_:indent:maxDepth:maxItems:name:to:)", "", "", "Argument[0,name:]", "Argument[to:]", "taint", "manual"] - ["", "", false, "abs(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "", false, "numericCast(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "", false, "withExtendedLifetime(_:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "", false, "withUnsafeMutablePointer(to:_:)", "", "", "Argument[to:]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "", false, "withUnsafeMutablePointer(to:_:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[to:]", "value", "manual"] - - ["", "", false, "withUnsafeMutablePointer(to:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "", false, "withUnsafePointer(to:_:)", "", "", "Argument[to:]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "", false, "withUnsafePointer(to:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "", false, "withUnsafeMutablePointer(_:to:)", "", "", "Argument[to:]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "", false, "withUnsafeMutablePointer(_:to:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[to:]", "value", "manual"] + - ["", "", false, "withUnsafeMutablePointer(_:to:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "", false, "withUnsafePointer(_:to:)", "", "", "Argument[to:]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "", false, "withUnsafePointer(_:to:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - ["", "", false, "swap(_:_:)", "", "", "Argument[0]", "Argument[1]", "value", "manual"] - ["", "", false, "swap(_:_:)", "", "", "Argument[1]", "Argument[0]", "value", "manual"] - ["", "", false, "print(_:separator:terminator:to:)", "", "", "Argument[0].CollectionElement", "Argument[to:]", "taint", "manual"] - ["", "", false, "print(_:separator:terminator:to:)", "", "", "Argument[separator:,terminator:]", "Argument[to:]", "taint", "manual"] - ["", "", false, "debugPrint(_:separator:terminator:to:)", "", "", "Argument[0].CollectionElement", "Argument[to:]", "taint", "manual"] - ["", "", false, "debugPrint(_:separator:terminator:to:)", "", "", "Argument[separator:,terminator:]", "Argument[to:]", "taint", "manual"] - - ["", "", false, "withUnsafeTemporaryAllocation(byteCount:alignment:_:)", "", "", "Argument[2].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "", false, "withUnsafeTemporaryAllocation(of:capacity:_:)", "", "", "Argument[2].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "", false, "withUnsafeTemporaryAllocation(_:alignment:byteCount:)", "", "", "Argument[2].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "", false, "withUnsafeTemporaryAllocation(_:capacity:of:)", "", "", "Argument[2].ReturnValue", "ReturnValue", "value", "manual"] - ["", "", false, "withVaList(_:_:)", "", "", "Argument[0]", "Argument[1].Parameter[0]", "value", "manual"] - ["", "", false, "getVaList(_:)", "", "", "Argument[0].CollectionElement", "ReturnValue", "value", "manual"] - - ["", "", false, "withUnsafeMutableBytes(of:_:)", "", "", "Argument[of:]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "", false, "withUnsafeMutableBytes(of:_:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[of:]", "taint", "manual"] - - ["", "", false, "withUnsafeMutableBytes(of:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "", false, "withUnsafeBytes(of:_:)", "", "", "Argument[of:]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] - - ["", "", false, "withUnsafeBytes(of:_:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "", false, "withUnsafeMutableBytes(_:of:)", "", "", "Argument[of:]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "", false, "withUnsafeMutableBytes(_:of:)", "", "", "Argument[1].Parameter[0].CollectionElement", "Argument[of:]", "taint", "manual"] + - ["", "", false, "withUnsafeMutableBytes(_:of:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] + - ["", "", false, "withUnsafeBytes(_:of:)", "", "", "Argument[of:]", "Argument[1].Parameter[0].CollectionElement", "taint", "manual"] + - ["", "", false, "withUnsafeBytes(_:of:)", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - ["", "", false, "<-(_:_:)", "", "", "Argument[0,1]", "ReturnValue", "taint", "manual"] - ["", "", false, "JSStringRetain(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "", false, "JSStringCreateWithUTF8CString(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] @@ -889,7 +889,7 @@ extensions: - ["", "URL", true, "init(_:strategy:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "URL", true, "append(component:directoryHint:)", "", "", "Argument[self,component:]", "Argument[self]", "taint", "manual"] - ["", "URL", true, "append(components:directoryHint:)", "", "", "Argument[self,components:]", "Argument[self]", "taint", "manual"] - - ["", "URL", true, "append(path:directoryHint:)", "", "", "Argument[self,path:]", "Argument[self]", "taint", "manual"] + - ["", "URL", true, "append(directoryHint:path:)", "", "", "Argument[self,path:]", "Argument[self]", "taint", "manual"] - ["", "URL", true, "append(queryItems:)", "", "", "Argument[self,queryItems:]", "Argument[self]", "taint", "manual"] - ["", "URL", true, "appendPathComponent(_:)", "", "", "Argument[self,0]", "Argument[self]", "taint", "manual"] - ["", "URL", true, "appendPathComponent(_:conformingTo:)", "", "", "Argument[self,0]", "Argument[self]", "taint", "manual"] @@ -897,11 +897,11 @@ extensions: - ["", "URL", true, "appendPathExtension(_:)", "", "", "Argument[self,0]", "Argument[self]", "taint", "manual"] - ["", "URL", true, "appending(component:directoryHint:)", "", "", "Argument[self,component:]", "ReturnValue", "taint", "manual"] - ["", "URL", true, "appending(components:directoryHint:)", "", "", "Argument[self,components:]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "appending(path:directoryHint:)", "", "", "Argument[self,path:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "appending(directoryHint:path:)", "", "", "Argument[self,path:]", "ReturnValue", "taint", "manual"] - ["", "URL", true, "appending(queryItems:)", "", "", "Argument[self,queryItems:]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "bookmarkData(options:includingResourceValuesForKeys:relativeTo:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "bookmarkData(options:includingResourceValuesForKeys:relativeTo:)", "", "", "Argument[includingResourceValuesForKeys:].OptionalSome.CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "bookmarkData(options:includingResourceValuesForKeys:relativeTo:)", "", "", "Argument[relativeTo:].OptionalSome", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "bookmarkData(includingResourceValuesForKeys:options:relativeTo:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "bookmarkData(includingResourceValuesForKeys:options:relativeTo:)", "", "", "Argument[includingResourceValuesForKeys:].OptionalSome.CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "bookmarkData(includingResourceValuesForKeys:options:relativeTo:)", "", "", "Argument[relativeTo:].OptionalSome", "ReturnValue", "taint", "manual"] - ["", "URL", true, "bookmarkData(withContentsOf:)", "", "", "Argument[withContentsOf:]", "ReturnValue", "taint", "manual"] - ["", "URL", true, "deletingLastPathComponent()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "URL", true, "deletingPathExtension()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] @@ -909,12 +909,12 @@ extensions: - ["", "URL", true, "homeDirectory(forUser:)", "", "", "Argument[forUser:]", "ReturnValue", "taint", "manual"] - ["", "URL", true, "host(percentEncoded:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "URL", true, "init(_:isDirectory:)", "", "", "Argument[0]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "URL", true, "init(dataRepresentation:relativeTo:isAbsolute:)", "", "", "Argument[dataRepresentation:]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(dataRepresentation:relativeTo:isAbsolute:)", "", "", "Argument[relativeTo:].OptionalSome", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(dataRepresentation:isAbsolute:relativeTo:)", "", "", "Argument[dataRepresentation:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(dataRepresentation:isAbsolute:relativeTo:)", "", "", "Argument[relativeTo:].OptionalSome", "ReturnValue", "taint", "manual"] - ["", "URL", true, "init(filePath:)", "", "", "Argument[filePath:]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "URL", true, "init(filePath:directoryHint:)", "", "", "Argument[filePath:]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "URL", true, "init(filePath:directoryHint:relativeTo:)", "", "", "Argument[filePath:]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(filePath:directoryHint:relativeTo:)", "", "", "Argument[relativeTo:].OptionalSome", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(directoryHint:filePath:)", "", "", "Argument[filePath:]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "URL", true, "init(directoryHint:filePath:relativeTo:)", "", "", "Argument[filePath:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(directoryHint:filePath:relativeTo:)", "", "", "Argument[relativeTo:].OptionalSome", "ReturnValue", "taint", "manual"] - ["", "URL", true, "init(filePath:isDirectory:)", "", "", "Argument[filePath:]", "ReturnValue.OptionalSome", "taint", "manual"] - ["", "URL", true, "init(fileURLWithFileSystemRepresentation:isDirectory:relativeTo:)", "", "", "Argument[fileURLWithFileSystemRepresentation:]", "ReturnValue", "taint", "manual"] - ["", "URL", true, "init(fileURLWithFileSystemRepresentation:isDirectory:relativeTo:)", "", "", "Argument[relativeTo:].OptionalSome", "ReturnValue", "taint", "manual"] @@ -924,15 +924,15 @@ extensions: - ["", "URL", true, "init(fileURLWithPath:isDirectory:relativeTo:)", "", "", "Argument[relativeTo:].OptionalSome", "ReturnValue", "taint", "manual"] - ["", "URL", true, "init(fileURLWithPath:relativeTo:)", "", "", "Argument[fileURLWithPath:]", "ReturnValue", "taint", "manual"] - ["", "URL", true, "init(fileURLWithPath:relativeTo:)", "", "", "Argument[relativeTo:].OptionalSome", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(for:in:appropriateFor:create:)", "", "", "Argument[for:,in:]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(for:in:appropriateFor:create:)", "", "", "Argument[appropriateFor:].OptionalSome", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(resolvingAliasFileAt:options:)", "", "", "Argument[resolvingAliasFileAt:]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(resolvingBookmarkData:options:relativeTo:bookmarkDataIsStale:)", "", "", "Argument[resolvingBookmarkData:]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(resolvingBookmarkData:options:relativeTo:bookmarkDataIsStale:)", "", "", "Argument[relativeTo:].OptionalSome", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(appropriateFor:create:for:in:)", "", "", "Argument[for:,in:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(appropriateFor:create:for:in:)", "", "", "Argument[appropriateFor:].OptionalSome", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(options:resolvingAliasFileAt:)", "", "", "Argument[resolvingAliasFileAt:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(bookmarkDataIsStale:options:relativeTo:resolvingBookmarkData:)", "", "", "Argument[resolvingBookmarkData:]", "ReturnValue", "taint", "manual"] + - ["", "URL", true, "init(bookmarkDataIsStale:options:relativeTo:resolvingBookmarkData:)", "", "", "Argument[relativeTo:].OptionalSome", "ReturnValue", "taint", "manual"] - ["", "URL", true, "init(resource:)", "", "", "Argument[resource:]", "ReturnValue", "taint", "manual"] - - ["", "URL", true, "init(string:encodingInvalidCharacters:)", "", "", "Argument[string:]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "URL", true, "init(string:relativeTo:)", "(String,URL?)", "", "Argument[string:]", "ReturnValue.OptionalSome", "taint", "manual"] - - ["", "URL", true, "init(string:relativeTo:)", "(String,URL?)", "", "Argument[relativeTo:].OptionalSome", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "URL", true, "init(encodingInvalidCharacters:string:)", "", "", "Argument[string:]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "URL", true, "init(relativeTo:string:)", "(String,URL?)", "", "Argument[string:]", "ReturnValue.OptionalSome", "taint", "manual"] + - ["", "URL", true, "init(relativeTo:string:)", "(String,URL?)", "", "Argument[relativeTo:].OptionalSome", "ReturnValue.OptionalSome", "taint", "manual"] - ["", "URL", true, "password(percentEncoded:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "URL", true, "path(percentEncoded:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "URL", true, "promisedItemResourceValues(forKeys:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] @@ -963,17 +963,17 @@ extensions: - ["", "NSData", true, "init(base64Encoded:options:)", "", "", "Argument[base64Encoded:]", "ReturnValue", "taint", "manual"] - ["", "NSData", true, "init(base64Encoding:)", "", "", "Argument[base64Encoding:]", "ReturnValue", "taint", "manual"] - ["", "NSData", true, "init(bytesNoCopy:length:)", "", "", "Argument[bytesNoCopy:]", "ReturnValue", "taint", "manual"] - - ["", "NSData", true, "init(bytesNoCopy:length:deallocator:)", "", "", "Argument[bytesNoCopy:]", "ReturnValue", "taint", "manual"] - - ["", "NSData", true, "init(bytesNoCopy:length:freeWhenDone:)", "", "", "Argument[bytesNoCopy:]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "init(bytesNoCopy:deallocator:length:)", "", "", "Argument[bytesNoCopy:]", "ReturnValue", "taint", "manual"] + - ["", "NSData", true, "init(bytesNoCopy:freeWhenDone:length:)", "", "", "Argument[bytesNoCopy:]", "ReturnValue", "taint", "manual"] - ["", "NSData", true, "init(contentsOfFile:options:)", "", "", "Argument[contentsOfFile:]", "ReturnValue", "taint", "manual"] - ["", "NSData", true, "init(contentsOfMappedFile:)", "", "", "Argument[contentsOfMappedFile:]", "ReturnValue", "taint", "manual"] - ["", "NSData", true, "subdata(with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "init(coder:)", "", "", "Argument[coder:]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "init(cString:)", "", "", "Argument[cString:]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "getBytes(_:maxLength:usedLength:encoding:options:range:remaining:)", "", "", "Argument[self]", "Argument[0]", "taint", "manual"] + - ["", "NSString", true, "getBytes(_:encoding:maxLength:options:range:remaining:usedLength:)", "", "", "Argument[self]", "Argument[0]", "taint", "manual"] - ["", "NSString", true, "getCharacters(_:range:)", "", "", "Argument[self]", "Argument[0]", "taint", "manual"] - ["", "NSString", true, "character(at:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "getCString(_:maxLength:encoding:)", "", "", "Argument[self]", "Argument[0]", "taint", "manual"] + - ["", "NSString", true, "getCString(_:encoding:maxLength:)", "", "", "Argument[self]", "Argument[0]", "taint", "manual"] - ["", "NSString", true, "init(string:)", "", "", "Argument[string:]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "appending(_:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "init(contentsOf:)", "", "", "Argument[contentsOf:]", "ReturnValue", "taint", "manual"] @@ -991,50 +991,50 @@ extensions: - ["", "NSString", true, "addingPercentEscapes(using:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "appendingFormat(_:_:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "appendingFormat(_:_:)", "", "", "Argument[1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "applyTransform(_:reverse:range:updatedRange:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "applyTransform(_:range:reverse:updatedRange:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "applyingTransform(_:reverse:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "cString()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "cString(using:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "capitalized(with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "completePath(into:caseSensitive:matchesInto:filterTypes:)", "", "", "Argument[self]", "Argument[into:].CollectionElement", "taint", "manual"] - - ["", "NSString", true, "completePath(into:caseSensitive:matchesInto:filterTypes:)", "", "", "Argument[self]", "Argument[matchesInto:].CollectionElement.CollectionElement", "taint", "manual"] + - ["", "NSString", true, "completePath(caseSensitive:filterTypes:into:matchesInto:)", "", "", "Argument[self]", "Argument[into:].CollectionElement", "taint", "manual"] + - ["", "NSString", true, "completePath(caseSensitive:filterTypes:into:matchesInto:)", "", "", "Argument[self]", "Argument[matchesInto:].CollectionElement.CollectionElement", "taint", "manual"] - ["", "NSString", true, "components(separatedBy:)", "", "", "Argument[self]", "ReturnValue.CollectionElement", "taint", "manual"] - ["", "NSString", true, "data(using:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "data(using:allowLossyConversion:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "data(allowLossyConversion:using:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "enumerateLines(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0]", "taint", "manual"] - - ["", "NSString", true, "enumerateLinguisticTags(in:scheme:options:orthography:using:)", "", "", "Argument[self]", "Argument[using:].Parameter[0].OptionalSome", "taint", "manual"] + - ["", "NSString", true, "enumerateLinguisticTags(in:options:orthography:scheme:using:)", "", "", "Argument[self]", "Argument[using:].Parameter[0].OptionalSome", "taint", "manual"] - ["", "NSString", true, "enumerateSubstrings(in:options:using:)", "", "", "Argument[self]", "Argument[using:].Parameter[0].OptionalSome", "taint", "manual"] - ["", "NSString", true, "enumerateSubstrings(in:options:using:)", "", "", "Argument[using:].Parameter[0].OptionalSome", "Argument[self]", "taint", "manual"] - - ["", "NSString", true, "folding(options:locale:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "folding(locale:options:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "getCString(_:)", "", "", "Argument[self]", "Argument[0]", "taint", "manual"] - ["", "NSString", true, "getCString(_:maxLength:)", "", "", "Argument[self]", "Argument[0]", "taint", "manual"] - ["", "NSString", true, "getCString(_:maxLength:range:remaining:)", "", "", "Argument[self]", "Argument[0]", "taint", "manual"] - ["", "NSString", true, "getCharacters(_:)", "", "", "Argument[self]", "Argument[0]", "taint", "manual"] - ["", "NSString", true, "getFileSystemRepresentation(_:maxLength:)", "", "", "Argument[self]", "Argument[0]", "taint", "manual"] - - ["", "NSString", true, "init(bytes:length:encoding:)", "", "", "Argument[bytes:]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(bytesNoCopy:length:encoding:deallocator:)", "", "", "Argument[bytesNoCopy:]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(bytesNoCopy:length:encoding:freeWhenDone:)", "", "", "Argument[bytesNoCopy:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(bytes:encoding:length:)", "", "", "Argument[bytes:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(bytesNoCopy:deallocator:encoding:length:)", "", "", "Argument[bytesNoCopy:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(bytesNoCopy:encoding:freeWhenDone:length:)", "", "", "Argument[bytesNoCopy:]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "init(cString:encoding:)", "", "", "Argument[cString:]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "init(cString:length:)", "", "", "Argument[cString:]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(cStringNoCopy:length:freeWhenDone:)", "", "", "Argument[cStringNoCopy:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(cStringNoCopy:freeWhenDone:length:)", "", "", "Argument[cStringNoCopy:]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "init(characters:length:)", "", "", "Argument[characters:]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(charactersNoCopy:length:dellocator:)", "", "", "Argument[charactersNoCopy:]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(charactersNoCopy:length:freeWhenDone:)", "", "", "Argument[charactersNoCopy:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(charactersNoCopy:dellocator:length:)", "", "", "Argument[charactersNoCopy:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(charactersNoCopy:freeWhenDone:length:)", "", "", "Argument[charactersNoCopy:]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "init(data:encoding:)", "", "", "Argument[data:]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(format:_:)", "", "", "Argument[format:]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(format:_:)", "", "", "Argument[1].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(format:arguments:)", "", "", "Argument[format:,arguments:]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(format:locale:_:)", "", "", "Argument[format:]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(format:locale:_:)", "", "", "Argument[2].CollectionElement", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(format:locale:arguments:)", "", "", "Argument[format:]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "init(format:locale:arguments:)", "", "", "Argument[arguments:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(_:format:)", "", "", "Argument[format:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(_:format:)", "", "", "Argument[1].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(arguments:format:)", "", "", "Argument[format:,arguments:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(_:format:locale:)", "", "", "Argument[format:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(_:format:locale:)", "", "", "Argument[2].CollectionElement", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(arguments:format:locale:)", "", "", "Argument[format:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "init(arguments:format:locale:)", "", "", "Argument[arguments:]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "init(utf8String:)", "", "", "Argument[utf8String:]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "localizedStringWithFormat(_:_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "localizedStringWithFormat(_:_:)", "", "", "Argument[1].CollectionElement", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "lossyCString()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "lowercased(with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "padding(toLength:withPad:startingAt:)", "", "", "Argument[withPad:]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "padding(toLength:withPad:startingAt:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "padding(startingAt:toLength:withPad:)", "", "", "Argument[withPad:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "padding(startingAt:toLength:withPad:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "path(withComponents:)", "", "", "Argument[withComponents:].CollectionElement", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "propertyList()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "propertyListFromStringsFileFormat()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] @@ -1042,12 +1042,12 @@ extensions: - ["", "NSString", true, "replacingCharacters(in:with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "replacingOccurrences(of:with:)", "", "", "Argument[with:]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "replacingOccurrences(of:with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "replacingOccurrences(of:with:options:range:)", "", "", "Argument[with:]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "replacingOccurrences(of:with:options:range:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "replacingOccurrences(of:options:range:with:)", "", "", "Argument[with:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "replacingOccurrences(of:options:range:with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "replacingPercentEscapes(using:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "string(withCString:)", "", "", "Argument[withCString:]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "string(withCString:length:)", "", "", "Argument[withCString:]", "ReturnValue", "taint", "manual"] - - ["", "NSString", true, "stringEncoding(for:encodingOptions:convertedString:usedLossyCompression:)", "", "", "Argument[for:]", "Argument[convertedString:]", "taint", "manual"] + - ["", "NSString", true, "string(length:withCString:)", "", "", "Argument[withCString:]", "ReturnValue", "taint", "manual"] + - ["", "NSString", true, "stringEncoding(convertedString:encodingOptions:for:usedLossyCompression:)", "", "", "Argument[for:]", "Argument[convertedString:]", "taint", "manual"] - ["", "NSString", true, "strings(byAppendingPaths:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "strings(byAppendingPaths:)", "", "", "Argument[byAppendingPaths:].CollectionElement", "ReturnValue", "taint", "manual"] - ["", "NSString", true, "substring(from:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] @@ -1058,7 +1058,7 @@ extensions: - ["", "NSString", true, "variantFittingPresentationWidth(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "Data", true, "init(_:)", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "Data", true, "append(_:count:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] - - ["", "Data", true, "insert(contentsOf:at:)", "", "", "Argument[contentsOf:]", "Argument[self]", "taint", "manual"] + - ["", "Data", true, "insert(at:contentsOf:)", "", "", "Argument[contentsOf:]", "Argument[self]", "taint", "manual"] - ["", "Data", true, "replaceSubrange(_:with:)", "", "", "Argument[with:]", "Argument[self]", "taint", "manual"] - ["", "Data", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - ["", "Data", true, "withUnsafeMutableBytes(_:)", "", "", "Argument[self].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] @@ -1069,12 +1069,12 @@ extensions: - ["", "Data", true, "shuffled(using:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "Data", true, "compactMap(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "Data", true, "flatMap(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - - ["", "Data", true, "reduce(into:_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["", "Data", true, "reduce(_:into:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "Data", true, "sorted()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "Data", true, "sorted(by:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - - ["", "Data", true, "replace(_:with:maxReplacements:)", "", "", "Argument[with:]", "Argument[self]", "taint", "manual"] - - ["", "Data", true, "replacing(_:with:maxReplacements:)", "", "", "Argument[with:]", "Argument[self]", "taint", "manual"] - - ["", "Data", true, "replacing(_:with:subrange:maxReplacements:)", "", "", "Argument[with:]", "Argument[self]", "taint", "manual"] + - ["", "Data", true, "replace(_:maxReplacements:with:)", "", "", "Argument[with:]", "Argument[self]", "taint", "manual"] + - ["", "Data", true, "replacing(_:maxReplacements:with:)", "", "", "Argument[with:]", "Argument[self]", "taint", "manual"] + - ["", "Data", true, "replacing(_:maxReplacements:subrange:with:)", "", "", "Argument[with:]", "Argument[self]", "taint", "manual"] - ["", "Data", true, "trimmingPrefix(while:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "Data", true, "trimmingPrefix(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "Data", true, "init(contentsOf:options:)", "", "", "Argument[contentsOf:]", "ReturnValue", "taint", "manual"] @@ -1085,7 +1085,7 @@ extensions: - ["", "Data", true, "init(bytes:count:)", "", "", "Argument[bytes:]", "ReturnValue", "taint", "manual"] - ["", "Data", true, "init(bytesNoCopy:count:deallocator:)", "", "", "Argument[bytesNoCopy:]", "ReturnValue", "taint", "manual"] - ["", "Data", true, "init(referencing:)", "", "", "Argument[referencing:]", "ReturnValue", "taint", "manual"] - - ["", "Data", true, "replaceSubrange(_:with:count:)", "", "", "Argument[with:]", "Argument[self]", "taint", "manual"] + - ["", "Data", true, "replaceSubrange(_:count:with:)", "", "", "Argument[with:]", "Argument[self]", "taint", "manual"] - ["", "Data", true, "sorted(using:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "NSObject", true, "copy()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "NSObject", true, "mutableCopy()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] @@ -1101,7 +1101,7 @@ extensions: - ["", "NSMutableData", true, "setData(_:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] - ["", "NSMutableData", true, "append(_:length:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] - ["", "NSMutableData", true, "replaceBytes(in:withBytes:)", "", "", "Argument[withBytes:]", "Argument[self]", "taint", "manual"] - - ["", "NSMutableData", true, "replaceBytes(in:withBytes:length:)", "", "", "Argument[withBytes:]", "Argument[self]", "taint", "manual"] + - ["", "NSMutableData", true, "replaceBytes(in:length:withBytes:)", "", "", "Argument[withBytes:]", "Argument[self]", "taint", "manual"] - ["", "NSURL", true, "init(string:)", "(String)", "", "Argument[string:]", "ReturnValue.OptionalSome", "taint", "manual"] - ["", "NSURL", true, "appendingPathExtension(for:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "NSURL", true, "appendingPathComponent(_:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] @@ -1109,21 +1109,21 @@ extensions: - ["", "NSURL", true, "appendingPathComponent(_:isDirectory:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] - ["", "NSURL", true, "appendingPathComponent(_:conformingTo:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] - ["", "NSMutableCopying", true, "mutableCopy(with:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - - ["", "URLSession", true, "dataTask(with:completionHandler:)", "", "", "Argument[with:]", "Argument[completionHandler:].Parameter[0]", "taint", "manual"] - - ["", "WKUserScript", true, "init(source:injectionTime:forMainFrameOnly:)", "", "", "Argument[source:]", "ReturnValue", "taint", "manual"] - - ["", "WKUserScript", true, "init(source:injectionTime:forMainFrameOnly:in:)", "", "", "Argument[source:]", "ReturnValue", "taint", "manual"] + - ["", "URLSession", true, "dataTask(completionHandler:with:)", "", "", "Argument[with:]", "Argument[completionHandler:].Parameter[0]", "taint", "manual"] + - ["", "WKUserScript", true, "init(forMainFrameOnly:injectionTime:source:)", "", "", "Argument[source:]", "ReturnValue", "taint", "manual"] + - ["", "WKUserScript", true, "init(forMainFrameOnly:in:injectionTime:source:)", "", "", "Argument[source:]", "ReturnValue", "taint", "manual"] - ["", "JSValue", true, "atIndex(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "JSValue", true, "defineProperty(_:descriptor:)", "", "", "Argument[descriptor:]", "Argument[self]", "taint", "manual"] - ["", "JSValue", true, "forProperty(_:)", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "JSValue", true, "init(bool:in:)", "", "", "Argument[bool:]", "ReturnValue", "taint", "manual"] - ["", "JSValue", true, "init(double:in:)", "", "", "Argument[double:]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "init(int32:in:)", "", "", "Argument[int32:]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "init(object:in:)", "", "", "Argument[object:]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "init(point:in:)", "", "", "Argument[point:]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "init(range:in:)", "", "", "Argument[range:]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "init(rect:in:)", "", "", "Argument[rect:]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "init(size:in:)", "", "", "Argument[size:]", "ReturnValue", "taint", "manual"] - - ["", "JSValue", true, "init(uInt32:in:)", "", "", "Argument[uInt32:]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(in:int32:)", "", "", "Argument[int32:]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(in:object:)", "", "", "Argument[object:]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(in:point:)", "", "", "Argument[point:]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(in:range:)", "", "", "Argument[range:]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(in:rect:)", "", "", "Argument[rect:]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(in:size:)", "", "", "Argument[size:]", "ReturnValue", "taint", "manual"] + - ["", "JSValue", true, "init(in:uInt32:)", "", "", "Argument[uInt32:]", "ReturnValue", "taint", "manual"] - ["", "JSValue", true, "setValue(_:at:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] - ["", "JSValue", true, "setValue(_:forProperty:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] - ["", "JSValue", true, "toArray()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] @@ -1162,24 +1162,24 @@ extensions: - ["", "FilePath", true, "init(platformString:)", "", "", "Argument[platformString:]", "ReturnValue", "taint", "manual"] - ["", "FilePath", true, "withPlatformString(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - ["", "FilePath", true, "withPlatformString(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "taint", "manual"] - - ["", "FilePath", true, "init(root:_:)", "", "", "Argument[root:,1]", "ReturnValue", "taint", "manual"] - - ["", "FilePath", true, "init(root:components:)", "", "", "Argument[root:,components:]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "init(_:root:)", "", "", "Argument[root:,1]", "ReturnValue", "taint", "manual"] + - ["", "FilePath", true, "init(components:root:)", "", "", "Argument[root:,components:]", "ReturnValue", "taint", "manual"] - ["", "FilePath", true, "lexicallyNormalized()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "FilePath", true, "lexicallyResolving(_:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] - ["", "FilePath", true, "pushing(_:)", "", "", "Argument[self,0]", "ReturnValue", "taint", "manual"] - ["", "FilePath", true, "removingLastComponent()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "FilePath", true, "removingRoot()", "", "", "Argument[self]", "ReturnValue", "taint", "manual"] - ["", "DataProtocol", true, "copyBytes(to:)", "", "", "Argument[self]", "Argument[to:]", "taint", "manual"] - - ["", "DataProtocol", true, "copyBytes(to:count:)", "", "", "Argument[self]", "Argument[to:]", "taint", "manual"] - - ["", "DataProtocol", true, "copyBytes(to:from:)", "", "", "Argument[self]", "Argument[to:]", "taint", "manual"] + - ["", "DataProtocol", true, "copyBytes(count:to:)", "", "", "Argument[self]", "Argument[to:]", "taint", "manual"] + - ["", "DataProtocol", true, "copyBytes(from:to:)", "", "", "Argument[self]", "Argument[to:]", "taint", "manual"] - ["", "ContiguousBytes", true, "withUnsafeBytes(_:)", "", "", "Argument[self]", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - ["", "ContiguousBytes", true, "withUnsafeBytes(_:)", "", "", "Argument[self].CollectionElement", "Argument[0].Parameter[0].CollectionElement", "taint", "manual"] - ["", "ContiguousBytes", true, "withUnsafeBytes(_:)", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] - - ["", "URLResource", true, "init(name:subdirectory:locale:bundle:)", "", "", "Argument[name:,subdirectory:]", "ReturnValue", "taint", "manual"] + - ["", "URLResource", true, "init(bundle:locale:name:subdirectory:)", "", "", "Argument[name:,subdirectory:]", "ReturnValue", "taint", "manual"] - ["", "NSMutableString", true, "append(_:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] - ["", "NSMutableString", true, "insert(_:at:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] - ["", "NSMutableString", true, "appendFormat(_:_:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] - ["", "NSMutableString", true, "appendFormat(_:_:)", "", "", "Argument[1].CollectionElement", "Argument[self]", "taint", "manual"] - ["", "NSMutableString", true, "replaceCharacters(in:with:)", "", "", "Argument[with:]", "Argument[self]", "taint", "manual"] - - ["", "NSMutableString", true, "replaceOccurrences(of:with:options:range:)", "", "", "Argument[with:]", "Argument[self]", "taint", "manual"] + - ["", "NSMutableString", true, "replaceOccurrences(of:options:range:with:)", "", "", "Argument[with:]", "Argument[self]", "taint", "manual"] - ["", "NSMutableString", true, "setString(_:)", "", "", "Argument[0]", "Argument[self]", "taint", "manual"] From ceec6c25518554de5c1d55eb18187091759041fb Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 22 Sep 2026 08:56:56 +0200 Subject: [PATCH 04/19] unified: Add approximate MaD interpreter --- .../lib/codeql/unified/internal/FacadeAst.qll | 5 + .../codeql/unified/internal/mad/LegacyMaD.qll | 203 ++++++++++++++++++ 2 files changed, 208 insertions(+) diff --git a/unified/ql/lib/codeql/unified/internal/FacadeAst.qll b/unified/ql/lib/codeql/unified/internal/FacadeAst.qll index 31b3ec3d950d..afd218351348 100644 --- a/unified/ql/lib/codeql/unified/internal/FacadeAst.qll +++ b/unified/ql/lib/codeql/unified/internal/FacadeAst.qll @@ -260,5 +260,10 @@ module Unified { /** Gets the number of arguments passed to this call, not counting implicit arguments like receiver. */ int getNumberOfArguments() { result = count(this.getAnArgument()) } + + /** Gets the number of arguments passed to this call, not counting implicit arguments like receiver. */ + int getNumberOfPositionalArguments() { + result = count(Argument arg | arg = this.getAnArgument() and arg.isPositional()) + } } } diff --git a/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll b/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll index 9f65c160c06b..1dcc376e4b05 100644 --- a/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll +++ b/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll @@ -1,4 +1,9 @@ +/** + * Provides an approximate interpreter for MaD models imported from legacy Swift. + */ + private import unified +private import codeql.dataflow.internal.AccessPathSyntax extensible predicate legacySourceModel( string namespace, string type, boolean subtypes, string name, string signature, string ext, @@ -14,3 +19,201 @@ extensible predicate legacySummaryModel( string namespace, string type, boolean subtypes, string name, string signature, string ext, string input, string output, string kind, string provenance ); + +private predicate modelContainsMethodName(string name) { + legacySourceModel(_, _, _, name, _, _, _, _, _) + or + legacySinkModel(_, _, _, name, _, _, _, _, _) + or + legacySummaryModel(_, _, _, name, _, _, _, _, _, _) +} + +private predicate parsedRawMethodName(string rawName, string name, string argLabels) { + modelContainsMethodName(rawName) and + exists(string regex | + regex = "([^(]+)\\((.*)\\)" and + name = rawName.regexpCapture(regex, 1) and + argLabels = rawName.regexpCapture(regex, 2) + ) +} + +private string getNameFromExpr(Expr e) { + result = e.(Identifier).getValue() + or + result = e.(MemberAccessExpr).getMemberName() +} + +private string getCalleeName(CallExpr call) { result = getNameFromExpr(call.getCallee()) } + +private string getArgLabelsFromCall(CallExpr call) { + result = + concat(Argument arg, string name, int group | + arg = call.getAnArgument() and + ( + arg.isPositional() and + name = "_" and + group = 0 + or + name = arg.getName() and + group = 1 + ) + | + name + ":" order by group, name + ) +} + +pragma[nomagic] +private predicate callSelector(CallExpr call, string name, string argLabels) { + name = getCalleeName(call) and + argLabels = getArgLabelsFromCall(call) +} + +private newtype TSelector = + MkSelector(string type, boolean subtypes, string name, string argLabels, string argTypes) { + exists(string rawName | + legacySourceModel(_, type, subtypes, rawName, argTypes, _, _, _, _) + or + legacySinkModel(_, type, subtypes, rawName, argTypes, _, _, _, _) + or + legacySummaryModel(_, type, subtypes, rawName, argTypes, _, _, _, _, _) + | + parsedRawMethodName(rawName, name, argLabels) + ) + } + +/** + * A tuple from a model that identifies call sites. + */ +private class Selector extends TSelector { + string getTypeString() { this = MkSelector(result, _, _, _, _) } + + boolean getSubtypesFlag() { this = MkSelector(_, result, _, _, _) } + + string getName() { this = MkSelector(_, _, result, _, _) } + + string getArgLabels() { this = MkSelector(_, _, _, result, _) } + + string getArgTypes() { this = MkSelector(_, _, _, _, result) } + + private string ppSubtypes() { + if this.getSubtypesFlag() = true then result = "+" else result = "" + } + + string toString() { + result = + this.getTypeString() + this.ppSubtypes() + "." + this.getName() + "(" + this.getArgLabels() + + ")" + this.getArgTypes() + } + + /** Holds if `name,argLabels` should be used to join with `callSelector`. */ + private predicate effectiveSelector(string name, string argLabels) { + this = MkSelector(_, _, name, argLabels, _) and + name != "init" + or + // For "init" models there are two issues at play: + // - Constructor calls do not mention "init", they just mention the type name, e.g. `String(...)` not `String.init(...)`. + // - The name "init" is too common to match on anyway. It is more precise to match on the type name in this case. + // + // So to wire up "init" calls correctly, we just use the type name as the method name. + this = MkSelector(name, _, "init", argLabels, _) + } + + predicate matchesCall(CallExpr call) { + exists(string name, string argLabels | + this.effectiveSelector(name, argLabels) and + callSelector(call, name, argLabels) + ) + } +} + +private predicate isAccessPath(string path) { + legacySourceModel(_, _, _, _, _, _, path, _, _) // output + or + legacySinkModel(_, _, _, _, _, _, path, _, _) // input + or + legacySummaryModel(_, _, _, _, _, _, path, _, _, _) // input + or + legacySummaryModel(_, _, _, _, _, _, _, path, _, _) // output +} + +private module AccessPathOutput = AccessPath; + +private import AccessPathOutput + +/** + * Gets the input to `call` specified by `token`. Only singleton access paths are supported. + */ +bindingset[call, token] +private DataFlow::Node getCallInput(CallExpr call, AccessPathToken token) { + token.getName() = ["Parameter", "Argument"] and + exists(Argument arg | + arg = call.getAnArgument() and + result.asExpr() = arg.getValue() + | + arg.getPositionalIndex() = parseIntUnbounded(token.getAnArgument()) + or + arg.getName() + ":" = token.getAnArgument() + ) + or + token = ["Parameter[self]", "Argument[self]"] and + result.isReceiverArgument(call) +} + +private import codeql.unified.internal.dataflow.AllDataFlow + +/** + * Gets the output from `call` specified by `token`. Only singleton access paths are supported. + */ +bindingset[call, token] +private DataFlow::Node getCallOutput(CallExpr call, AccessPathToken token) { + token = "ReturnValue" and + result.asExpr() = call + or + result = getPostUpdateNode(getCallInput(call, token)) +} + +private predicate normalizedSourceModel( + Selector selector, AccessPath output, string kind, string provenance +) { + exists( + string type, boolean subtypes, string rawName, string name, string argLabels, string argTypes + | + legacySourceModel(_, type, subtypes, rawName, argTypes, _, output, kind, provenance) and + parsedRawMethodName(rawName, name, argLabels) and + selector = MkSelector(type, subtypes, name, argLabels, argTypes) + ) +} + +private predicate normalizedSinkModel( + Selector selector, AccessPath output, string kind, string provenance +) { + exists( + string type, boolean subtypes, string rawName, string name, string argLabels, string argTypes + | + legacySinkModel(_, type, subtypes, rawName, argTypes, _, output, kind, provenance) and + parsedRawMethodName(rawName, name, argLabels) and + selector = MkSelector(type, subtypes, name, argLabels, argTypes) + ) +} + +/** + * Gets a flow source with the given `kind` and `provenance`. + */ +DataFlow::Node getASource(string kind, string provenance) { + exists(CallExpr call, Selector selector, AccessPath output | + normalizedSourceModel(selector, output, kind, provenance) and + selector.matchesCall(call) and + result = getCallOutput(call, output) + ) +} + +/** + * Gets a sink with the given `kind` and `provenance`. + */ +DataFlow::Node getASink(string kind, string provenance) { + exists(CallExpr call, Selector selector, AccessPath input | + normalizedSinkModel(selector, input, kind, provenance) and + selector.matchesCall(call) and + result = getCallInput(call, input) + ) +} From 5f65e192ed4a0045ccd920a67a4fd45751b96176 Mon Sep 17 00:00:00 2001 From: Asger F Date: Wed, 23 Sep 2026 13:37:27 +0200 Subject: [PATCH 05/19] unified: Add a test and "public" API We'll want to avoid importing internal files from queries so LegacyMad will have a "public" API though I expect it to be rewritten eventually. --- .../codeql/unified/internal/mad/LegacyMaD.qll | 11 +++++++++ unified/ql/lib/unified.qll | 1 + .../ql/test/library-tests/mad/test.expected | 15 ++++++++++++ unified/ql/test/library-tests/mad/test.ql | 5 ++++ unified/ql/test/library-tests/mad/test.qlref | 2 ++ unified/ql/test/library-tests/mad/test.swift | 24 +++++++++++++++++++ 6 files changed, 58 insertions(+) create mode 100644 unified/ql/test/library-tests/mad/test.expected create mode 100644 unified/ql/test/library-tests/mad/test.ql create mode 100644 unified/ql/test/library-tests/mad/test.qlref create mode 100644 unified/ql/test/library-tests/mad/test.swift diff --git a/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll b/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll index 1dcc376e4b05..a69eaaf969d1 100644 --- a/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll +++ b/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll @@ -217,3 +217,14 @@ DataFlow::Node getASink(string kind, string provenance) { result = getCallInput(call, input) ) } + +module Public { + /** Provides access to data from library models. */ + module Models { + /** Holds if `node` is a source of the given `kind`. */ + predicate isSource(DataFlow::Node node, string kind) { node = getASource(kind, _) } + + /** Holds if `node` is a sink of the given `kind`. */ + predicate isSink(DataFlow::Node node, string kind) { node = getASink(kind, _) } + } +} diff --git a/unified/ql/lib/unified.qll b/unified/ql/lib/unified.qll index b8dd4e9949fc..7aed5441f0f7 100644 --- a/unified/ql/lib/unified.qll +++ b/unified/ql/lib/unified.qll @@ -9,3 +9,4 @@ import codeql.unified.internal.AstExtra::Public import codeql.unified.internal.ControlFlowGraph::Public import codeql.unified.internal.NameBinding::Public import codeql.unified.internal.dataflow.DataFlowPublic +import codeql.unified.internal.mad.LegacyMaD::Public diff --git a/unified/ql/test/library-tests/mad/test.expected b/unified/ql/test/library-tests/mad/test.expected new file mode 100644 index 000000000000..b070ecb74fd5 --- /dev/null +++ b/unified/ql/test/library-tests/mad/test.expected @@ -0,0 +1,15 @@ +isSink +| test.swift:8:28:8:33 | string | path-injection | +| test.swift:10:25:10:30 | string | path-injection | +| test.swift:13:25:13:30 | string | path-injection | +| test.swift:17:17:17:22 | string | path-injection | +| test.swift:20:5:20:16 | [receiver arg] ... .md5(...) | weak-hash-input-MD5 | +| test.swift:22:20:22:25 | string | regex-use | +| test.swift:23:20:23:25 | string | regex-use | +isSource +| test.swift:4:5:4:27 | String(...) | remote | +| test.swift:5:5:5:44 | String(...) | remote | +| test.swift:6:5:6:48 | String(...) | remote | +| test.swift:8:5:8:34 | String(...) | local | +| test.swift:9:5:11:24 | String(...) | local | +| test.swift:12:5:14:28 | String(...) | local | diff --git a/unified/ql/test/library-tests/mad/test.ql b/unified/ql/test/library-tests/mad/test.ql new file mode 100644 index 000000000000..970aaa22e27f --- /dev/null +++ b/unified/ql/test/library-tests/mad/test.ql @@ -0,0 +1,5 @@ +private import unified + +query predicate isSource = Models::isSource/2; + +query predicate isSink = Models::isSink/2; diff --git a/unified/ql/test/library-tests/mad/test.qlref b/unified/ql/test/library-tests/mad/test.qlref new file mode 100644 index 000000000000..ab6773f15f90 --- /dev/null +++ b/unified/ql/test/library-tests/mad/test.qlref @@ -0,0 +1,2 @@ +query: test.ql +postprocess: utils/test/InlineExpectationsTestQuery.ql diff --git a/unified/ql/test/library-tests/mad/test.swift b/unified/ql/test/library-tests/mad/test.swift new file mode 100644 index 000000000000..44d96827c7f4 --- /dev/null +++ b/unified/ql/test/library-tests/mad/test.swift @@ -0,0 +1,24 @@ +func test(url: URL, string: String) { + String(url) // not a source + + String(contentsOf: url) // $ isSource=remote + String(contentsOf: url, encoding: .utf8) // $ isSource=remote + String(contentsOf: url, usedEncoding: .utf8) // $ isSource=remote + + String(contentsOfFile: string) // $ isSource=local isSink=path-injection + String( + contentsOfFile: string, // $ isSink=path-injection + encoding: .utf8) // $ isSource=local + String( + contentsOfFile: string, // $ isSink=path-injection + usedEncoding: .utf8) // $ isSource=local + + FileManager.default.createDirectory( + atPath: string, // $ isSink=path-injection + withIntermediateDirectories: true, attributes: nil) + + string.md5() // $ isSink=weak-hash-input-MD5 + + _ = try! Regex(string) // $ isSink=regex-use + _ = try! Regex(string, as: Substring.self) // $ isSink=regex-use +} From a77beac906776be3f45eee01774b66c65086ac27 Mon Sep 17 00:00:00 2001 From: Asger F Date: Wed, 23 Sep 2026 13:52:09 +0200 Subject: [PATCH 06/19] unified: Add test for unsupported parameter match --- unified/ql/test/library-tests/mad/test.swift | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/unified/ql/test/library-tests/mad/test.swift b/unified/ql/test/library-tests/mad/test.swift index 44d96827c7f4..326a2a0c1e9e 100644 --- a/unified/ql/test/library-tests/mad/test.swift +++ b/unified/ql/test/library-tests/mad/test.swift @@ -21,4 +21,13 @@ func test(url: URL, string: String) { _ = try! Regex(string) // $ isSink=regex-use _ = try! Regex(string, as: Substring.self) // $ isSink=regex-use + + class TestTextInput: UITextInput { + func shouldChangeText( + in range: UITextRange, + replacementText text: String // $ MISSING: isSource=local // parameters not detected yet + ) -> Bool { + return true + } + } } From 91d22cf928e8b260bf6b44963dc0324ecbadf471 Mon Sep 17 00:00:00 2001 From: Asger F Date: Wed, 23 Sep 2026 14:14:16 +0200 Subject: [PATCH 07/19] unified: Detect override-parameter sources --- .../lib/codeql/unified/internal/FacadeAst.qll | 8 ++ .../codeql/unified/internal/mad/LegacyMaD.qll | 121 +++++++++++++++--- .../ql/test/library-tests/mad/test.expected | 1 + unified/ql/test/library-tests/mad/test.swift | 2 +- 4 files changed, 116 insertions(+), 16 deletions(-) diff --git a/unified/ql/lib/codeql/unified/internal/FacadeAst.qll b/unified/ql/lib/codeql/unified/internal/FacadeAst.qll index afd218351348..1bd280ad8945 100644 --- a/unified/ql/lib/codeql/unified/internal/FacadeAst.qll +++ b/unified/ql/lib/codeql/unified/internal/FacadeAst.qll @@ -5,6 +5,7 @@ overlay[local?] module; private import codeql.files.FileSystem +private import codeql.unified.internal.NameBinding as NameBinding module Unified { private import Ast::Unified as G @@ -145,6 +146,13 @@ module Unified { class ClassLikeDeclaration extends G::ClassLikeDeclaration { /** Gets the name of this declaration. */ string getName() { result = this.getNameNode().getValue() } + + /** Gets a direct base class of this class. */ + ClassLikeDeclaration getABaseClass() { + result.getNameNode() = + NameBinding::getStaticBindingTarget(NameBinding::getIdentifierFromRef(this.getABaseType() + .getType())) + } } class ConstructorDeclaration extends G::ConstructorDeclaration { diff --git a/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll b/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll index a69eaaf969d1..0525040f67c7 100644 --- a/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll +++ b/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll @@ -68,6 +68,46 @@ private predicate callSelector(CallExpr call, string name, string argLabels) { argLabels = getArgLabelsFromCall(call) } +private import codeql.unified.internal.NameBinding as NameBinding + +private predicate isSubclassOfType(ClassLikeDeclaration cls, string typeName) { + typeName = any(Selector s).getTypeString() and + ( + getNameFromExpr(cls.getABaseType().getType()) = typeName + or + isSubclassOfType(cls.getABaseClass(), typeName) + ) +} + +private string getArgLabelsFromCallable(Callable callable) { + result = + concat(Parameter param, string name, int group | + param.getParent() = callable and + ( + param.isPositional() and + name = "_" and + group = 0 + or + name = param.getExternalName() and + group = 1 + ) + | + name + ":" order by group, name + ) +} + +pragma[nomagic] +private predicate callableSelector( + FunctionDeclaration callable, string type, string name, string argLabels +) { + name = callable.getName() and + argLabels = getArgLabelsFromCallable(callable) and + exists(ClassLikeDeclaration cls | + callable = cls.getAMember() and + isSubclassOfType(cls, type) + ) +} + private newtype TSelector = MkSelector(string type, boolean subtypes, string name, string argLabels, string argTypes) { exists(string rawName | @@ -106,7 +146,7 @@ private class Selector extends TSelector { } /** Holds if `name,argLabels` should be used to join with `callSelector`. */ - private predicate effectiveSelector(string name, string argLabels) { + private predicate effectiveCallSelector(string name, string argLabels) { this = MkSelector(_, _, name, argLabels, _) and name != "init" or @@ -120,10 +160,17 @@ private class Selector extends TSelector { predicate matchesCall(CallExpr call) { exists(string name, string argLabels | - this.effectiveSelector(name, argLabels) and + this.effectiveCallSelector(name, argLabels) and callSelector(call, name, argLabels) ) } + + predicate matchesCallable(Callable callable) { + exists(string type, string name, string argLabels | + callableSelector(callable, type, name, argLabels) and + this = MkSelector(type, true, name, argLabels, _) + ) + } } private predicate isAccessPath(string path) { @@ -144,8 +191,8 @@ private import AccessPathOutput * Gets the input to `call` specified by `token`. Only singleton access paths are supported. */ bindingset[call, token] -private DataFlow::Node getCallInput(CallExpr call, AccessPathToken token) { - token.getName() = ["Parameter", "Argument"] and +private DataFlow::Node getSinkFromCall(CallExpr call, AccessPathToken token) { + token.getName() = "Argument" and exists(Argument arg | arg = call.getAnArgument() and result.asExpr() = arg.getValue() @@ -155,7 +202,7 @@ private DataFlow::Node getCallInput(CallExpr call, AccessPathToken token) { arg.getName() + ":" = token.getAnArgument() ) or - token = ["Parameter[self]", "Argument[self]"] and + token = "Argument[self]" and result.isReceiverArgument(call) } @@ -165,11 +212,39 @@ private import codeql.unified.internal.dataflow.AllDataFlow * Gets the output from `call` specified by `token`. Only singleton access paths are supported. */ bindingset[call, token] -private DataFlow::Node getCallOutput(CallExpr call, AccessPathToken token) { +private DataFlow::Node getSourceFromCall(CallExpr call, AccessPathToken token) { token = "ReturnValue" and result.asExpr() = call or - result = getPostUpdateNode(getCallInput(call, token)) + result = getPostUpdateNode(getSinkFromCall(call, token)) +} + +/** + * Gets the sink from `callable` specified by `token`. Only singleton access paths are supported. + */ +bindingset[callable, token] +private DataFlow::Node getSinkFromCallable(Callable callable, AccessPathToken token) { + token = "ReturnValue" and + result.asExpr() = any(ReturnExpr r | r.getEnclosingCallable() = callable).getValue() // TODO: expose canonical return node in data flow +} + +/** + * Gets the source from `callable` specified by `token`. Only singleton access paths are supported. + */ +bindingset[callable, token] +private DataFlow::Node getSourceFromCallable(Callable callable, AccessPathToken token) { + token.getName() = "Parameter" and + exists(Parameter param | + param.getParent() = callable and + result.asExpr() = param.getPattern() + | + param.getPositionalIndex() = parseIntUnbounded(token.getAnArgument()) + or + param.getExternalName() + ":" = token.getAnArgument() + ) + or + token = "Parameter[self]" and + result.isReceiverParameter(callable) } private predicate normalizedSourceModel( @@ -200,10 +275,18 @@ private predicate normalizedSinkModel( * Gets a flow source with the given `kind` and `provenance`. */ DataFlow::Node getASource(string kind, string provenance) { - exists(CallExpr call, Selector selector, AccessPath output | - normalizedSourceModel(selector, output, kind, provenance) and - selector.matchesCall(call) and - result = getCallOutput(call, output) + exists(Selector selector, AccessPath output | + normalizedSourceModel(selector, output, kind, provenance) + | + exists(CallExpr call | + selector.matchesCall(call) and + result = getSourceFromCall(call, output) + ) + or + exists(Callable callable | + selector.matchesCallable(callable) and + result = getSourceFromCallable(callable, output) + ) ) } @@ -211,10 +294,18 @@ DataFlow::Node getASource(string kind, string provenance) { * Gets a sink with the given `kind` and `provenance`. */ DataFlow::Node getASink(string kind, string provenance) { - exists(CallExpr call, Selector selector, AccessPath input | - normalizedSinkModel(selector, input, kind, provenance) and - selector.matchesCall(call) and - result = getCallInput(call, input) + exists(Selector selector, AccessPath input | + normalizedSinkModel(selector, input, kind, provenance) + | + exists(CallExpr call | + selector.matchesCall(call) and + result = getSinkFromCall(call, input) + ) + or + exists(Callable callable | + selector.matchesCallable(callable) and + result = getSinkFromCallable(callable, input) + ) ) } diff --git a/unified/ql/test/library-tests/mad/test.expected b/unified/ql/test/library-tests/mad/test.expected index b070ecb74fd5..c2a9b7847f1d 100644 --- a/unified/ql/test/library-tests/mad/test.expected +++ b/unified/ql/test/library-tests/mad/test.expected @@ -13,3 +13,4 @@ isSource | test.swift:8:5:8:34 | String(...) | local | | test.swift:9:5:11:24 | String(...) | local | | test.swift:12:5:14:28 | String(...) | local | +| test.swift:28:29:28:32 | text | local | diff --git a/unified/ql/test/library-tests/mad/test.swift b/unified/ql/test/library-tests/mad/test.swift index 326a2a0c1e9e..22b941352be4 100644 --- a/unified/ql/test/library-tests/mad/test.swift +++ b/unified/ql/test/library-tests/mad/test.swift @@ -25,7 +25,7 @@ func test(url: URL, string: String) { class TestTextInput: UITextInput { func shouldChangeText( in range: UITextRange, - replacementText text: String // $ MISSING: isSource=local // parameters not detected yet + replacementText text: String // $ isSource=local // parameters not detected yet ) -> Bool { return true } From 0d74896c9f9e4e2091ae6781d977139694baf2ff Mon Sep 17 00:00:00 2001 From: Asger F Date: Wed, 23 Sep 2026 14:27:46 +0200 Subject: [PATCH 08/19] unified: Add stats --- .../unified/internal/AnalysisQuality.qll | 25 +++++++++++++++++++ unified/ql/src/summary/SummaryStats.ql | 14 +++++++++++ 2 files changed, 39 insertions(+) create mode 100644 unified/ql/src/summary/SummaryStats.ql diff --git a/unified/ql/lib/codeql/unified/internal/AnalysisQuality.qll b/unified/ql/lib/codeql/unified/internal/AnalysisQuality.qll index b0449cef77a8..79bac4423ccd 100644 --- a/unified/ql/lib/codeql/unified/internal/AnalysisQuality.qll +++ b/unified/ql/lib/codeql/unified/internal/AnalysisQuality.qll @@ -108,3 +108,28 @@ module CallGraphStats implements EntityStatsSig { } module CallGraphStatsReport = EntityReportStats; + +/** + * Gets summary statistics about taint. + */ +predicate taintStats(string key, int value) { + // The keys must match those in DCA summary profiles + key = "Taint sources - active" and value = count(DataFlow::Node n | Models::isSource(n, "remote")) + or + key = "Taint sources - disabled" and + value = count(DataFlow::Node n | Models::isSource(n, any(string s | s != "remote"))) + or + key = "Taint sources - sensitive data" and none() + or + key = "Taint edges - number of edges" and none() + or + key = "Taint reach - nodes tainted" and none() + or + key = "Taint reach - total non-summary nodes" and none() + or + key = "Taint reach - per million nodes" and none() + or + key = "Taint sinks - query sinks" and value = count(DataFlow::Node n | Models::isSink(n, _)) + or + key = "Taint sinks - cryptographic operations" and none() +} diff --git a/unified/ql/src/summary/SummaryStats.ql b/unified/ql/src/summary/SummaryStats.ql new file mode 100644 index 000000000000..916d3388baff --- /dev/null +++ b/unified/ql/src/summary/SummaryStats.ql @@ -0,0 +1,14 @@ +/** + * @name Summary Statistics + * @description A table of summary statistics about a database. + * @kind metric + * @id unified/summary/summary-statistics + * @tags summary telemetry + */ + +import unified +import codeql.unified.internal.AnalysisQuality + +from string key, int value +where taintStats(key, value) +select key, value order by key From 785508f1013d4334c8c1cf508b40003c1c434c36 Mon Sep 17 00:00:00 2001 From: Asger F Date: Wed, 23 Sep 2026 21:40:13 +0200 Subject: [PATCH 09/19] unified: Add meta queries --- unified/ql/src/diagnostic/TaintSinks.ql | 15 +++++++++++++++ unified/ql/src/diagnostic/TaintSources.ql | 15 +++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 unified/ql/src/diagnostic/TaintSinks.ql create mode 100644 unified/ql/src/diagnostic/TaintSources.ql diff --git a/unified/ql/src/diagnostic/TaintSinks.ql b/unified/ql/src/diagnostic/TaintSinks.ql new file mode 100644 index 000000000000..5709909010a9 --- /dev/null +++ b/unified/ql/src/diagnostic/TaintSinks.ql @@ -0,0 +1,15 @@ +/** + * @name Taint sinks + * @description Taint sinks + * @kind problem + * @problem.severity recommendation + * @id unified/diagnostic/taint-sinks + * @tags meta + * @precision very-low + */ + +import unified + +from DataFlow::Node node, string kind +where Models::isSink(node, kind) +select node, "Sink of kind '" + kind + "'" diff --git a/unified/ql/src/diagnostic/TaintSources.ql b/unified/ql/src/diagnostic/TaintSources.ql new file mode 100644 index 000000000000..95695f45d284 --- /dev/null +++ b/unified/ql/src/diagnostic/TaintSources.ql @@ -0,0 +1,15 @@ +/** + * @name Taint sources + * @description Taint sources + * @kind problem + * @problem.severity recommendation + * @id unified/diagnostic/taint-sources + * @tags meta + * @precision very-low + */ + +import unified + +from DataFlow::Node node, string kind +where Models::isSource(node, kind) +select node, "Source of kind '" + kind + "'" From 67a95628e659d5e1ea7db56b435601df18f7f30f Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 24 Sep 2026 10:19:36 +0200 Subject: [PATCH 10/19] unified: Expose getPostUpdateNode() to avoid internal import --- .../internal/dataflow/DataFlowGraph.qll | 2 +- .../dataflow/DataFlowInstantiation.qll | 4 +- .../internal/dataflow/DataFlowNode.qll | 37 +++++++++++-------- .../unified/internal/dataflow/LocalSsa.qll | 2 +- .../codeql/unified/internal/mad/LegacyMaD.qll | 4 +- 5 files changed, 26 insertions(+), 23 deletions(-) diff --git a/unified/ql/lib/codeql/unified/internal/dataflow/DataFlowGraph.qll b/unified/ql/lib/codeql/unified/internal/dataflow/DataFlowGraph.qll index 4ba0fdcb802c..91111f7f8c0d 100644 --- a/unified/ql/lib/codeql/unified/internal/dataflow/DataFlowGraph.qll +++ b/unified/ql/lib/codeql/unified/internal/dataflow/DataFlowGraph.qll @@ -148,7 +148,7 @@ module DebugGraph { if isUseStep = true then value = "use-use" else value = "def-use" ) or - node2 = getPostUpdateNode(node1) and + node2 = node1.getPostUpdateNode() and value = "post-update" ) } diff --git a/unified/ql/lib/codeql/unified/internal/dataflow/DataFlowInstantiation.qll b/unified/ql/lib/codeql/unified/internal/dataflow/DataFlowInstantiation.qll index b2d455eb058e..c762ec0de7d0 100644 --- a/unified/ql/lib/codeql/unified/internal/dataflow/DataFlowInstantiation.qll +++ b/unified/ql/lib/codeql/unified/internal/dataflow/DataFlowInstantiation.qll @@ -101,9 +101,9 @@ module DataFlowInput implements InputSig { // Post-update nodes // class PostUpdateNode extends Node { - PostUpdateNode() { this = getPostUpdateNode(_) } + PostUpdateNode() { this = any(Node n).getPostUpdateNode() } - Node getPreUpdateNode() { this = getPostUpdateNode(result) } + Node getPreUpdateNode() { this = result.getPostUpdateNode() } } // diff --git a/unified/ql/lib/codeql/unified/internal/dataflow/DataFlowNode.qll b/unified/ql/lib/codeql/unified/internal/dataflow/DataFlowNode.qll index 03b01096848f..aeb662c3c236 100644 --- a/unified/ql/lib/codeql/unified/internal/dataflow/DataFlowNode.qll +++ b/unified/ql/lib/codeql/unified/internal/dataflow/DataFlowNode.qll @@ -315,21 +315,26 @@ class Node extends TDataFlowNode { /** Gets the basic block associated with this data flow node, if any. */ BasicBlock getBasicBlock() { this.hasControlFlowPosition(result, _) } -} -Node getPostUpdateNode(Node pre) { - exists(Expr expr | - pre.isResultValue(expr) and - result.isPostUpdate(expr) - ) - or - exists(Expr expr, LocalVariable var | - pre.isLocalVariableRead(expr, var) and - result.isLocalVariablePostUpdate(expr, var) - ) - or - exists(DataFlowCall call | - pre.isReceiverArgumentEx(call) and - result.isReceiverPostUpdateEx(call) - ) + /** + * Gets the post-update node for this node, if any. + * + * The post-update node represents the updated state of the value held in this node, after it has been mutated by the surrounding assignment or call. + */ + Node getPostUpdateNode() { + exists(Expr expr | + this.isResultValue(expr) and + result.isPostUpdate(expr) + ) + or + exists(Expr expr, LocalVariable var | + this.isLocalVariableRead(expr, var) and + result.isLocalVariablePostUpdate(expr, var) + ) + or + exists(DataFlowCall call | + this.isReceiverArgumentEx(call) and + result.isReceiverPostUpdateEx(call) + ) + } } diff --git a/unified/ql/lib/codeql/unified/internal/dataflow/LocalSsa.qll b/unified/ql/lib/codeql/unified/internal/dataflow/LocalSsa.qll index 56c2cfadea73..dd3b41492061 100644 --- a/unified/ql/lib/codeql/unified/internal/dataflow/LocalSsa.qll +++ b/unified/ql/lib/codeql/unified/internal/dataflow/LocalSsa.qll @@ -95,7 +95,7 @@ Node getNodeFromLocalSsaNode(Ssa::Node n) { result = n.(Ssa::ExprNode).getExpr() and not postUpdateReadNode(n) or - result = getPostUpdateNode(n.(Ssa::ExprPostUpdateNode).getExpr()) + result = n.(Ssa::ExprPostUpdateNode).getExpr().(Node).getPostUpdateNode() or exists(LocalVariable v, BasicBlock bb, int i, AstNode repr | n.(Ssa::WriteDefSourceNode).getDefinition().definesAt(v, bb, i) and diff --git a/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll b/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll index 0525040f67c7..532067227c4d 100644 --- a/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll +++ b/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll @@ -206,8 +206,6 @@ private DataFlow::Node getSinkFromCall(CallExpr call, AccessPathToken token) { result.isReceiverArgument(call) } -private import codeql.unified.internal.dataflow.AllDataFlow - /** * Gets the output from `call` specified by `token`. Only singleton access paths are supported. */ @@ -216,7 +214,7 @@ private DataFlow::Node getSourceFromCall(CallExpr call, AccessPathToken token) { token = "ReturnValue" and result.asExpr() = call or - result = getPostUpdateNode(getSinkFromCall(call, token)) + result = getSinkFromCall(call, token).getPostUpdateNode() } /** From 56d5444a5d191dd8c88422fd615752f152698aeb Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 24 Sep 2026 10:52:31 +0200 Subject: [PATCH 11/19] unified: Document lack of support for properties --- .../codeql/unified/internal/mad/LegacyMaD.qll | 1 + unified/ql/test/library-tests/mad/test.swift | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll b/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll index 532067227c4d..f1ea86edcd8c 100644 --- a/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll +++ b/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll @@ -29,6 +29,7 @@ private predicate modelContainsMethodName(string name) { } private predicate parsedRawMethodName(string rawName, string name, string argLabels) { + // NOTE: We only support method names at the moment, not property names like `String.count`. modelContainsMethodName(rawName) and exists(string regex | regex = "([^(]+)\\((.*)\\)" and diff --git a/unified/ql/test/library-tests/mad/test.swift b/unified/ql/test/library-tests/mad/test.swift index 22b941352be4..ad58b8d1b1fb 100644 --- a/unified/ql/test/library-tests/mad/test.swift +++ b/unified/ql/test/library-tests/mad/test.swift @@ -31,3 +31,28 @@ func test(url: URL, string: String) { } } } + +class UITextField { + var text: String = "" +} + +class URLSessionConfiguration { + var tlsMaximumSupportedProtocol: Int = 0 + var tlsMinimumSupportedProtocol: Int = 0 + var tlsMaximumSupportedProtocolVersion: Int = 0 + var tlsMinimumSupportedProtocolVersion: Int = 0 +} + +func testProperties( + string: String, + textField: UITextField, + configuration: URLSessionConfiguration +) { + _ = string.count // $ MISSING: isSource=string-length + _ = textField.text // $ MISSING: isSource=local + + configuration.tlsMaximumSupportedProtocol = 0 // $ MISSING: isSink=tls-protocol-version + configuration.tlsMinimumSupportedProtocol = 0 // $ MISSING: isSink=tls-protocol-version + configuration.tlsMaximumSupportedProtocolVersion = 0 // $ MISSING: isSink=tls-protocol-version + configuration.tlsMinimumSupportedProtocolVersion = 0 // $ MISSING: isSink=tls-protocol-version +} From af35b8fb82e043f0d700a81ee6e1d8b88043c97d Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 24 Sep 2026 11:01:37 +0200 Subject: [PATCH 12/19] unified: Document bug for qualified type access --- .../codeql/unified/internal/mad/LegacyMaD.qll | 3 ++ unified/ql/test/library-tests/mad/test.swift | 38 +++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll b/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll index f1ea86edcd8c..6a79571b6ff8 100644 --- a/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll +++ b/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll @@ -156,6 +156,9 @@ private class Selector extends TSelector { // - The name "init" is too common to match on anyway. It is more precise to match on the type name in this case. // // So to wire up "init" calls correctly, we just use the type name as the method name. + // + // TODO: does not work for compound access like `String.Index(...)` where the type is `String.Index` but the + // call selector only uses `Index`. this = MkSelector(name, _, "init", argLabels, _) } diff --git a/unified/ql/test/library-tests/mad/test.swift b/unified/ql/test/library-tests/mad/test.swift index ad58b8d1b1fb..7f29dc2a5527 100644 --- a/unified/ql/test/library-tests/mad/test.swift +++ b/unified/ql/test/library-tests/mad/test.swift @@ -56,3 +56,41 @@ func testProperties( configuration.tlsMaximumSupportedProtocolVersion = 0 // $ MISSING: isSink=tls-protocol-version configuration.tlsMinimumSupportedProtocolVersion = 0 // $ MISSING: isSink=tls-protocol-version } + +class Realm { + struct Configuration {} +} + +func testQualifiedConstructors( + encodedOffset: Int, + encryptionKey: String, + fileURL: String, + seedFilePath: String +) { + _ = String.Index(encodedOffset: encodedOffset) // $ MISSING: isSink=string-length + + _ = Realm.Configuration( + deleteRealmIfMigrationNeeded: false, + encryptionKey: encryptionKey, // $ MISSING: isSink=encryption-key + fileURL: fileURL, // $ MISSING: isSink=path-injection + inMemoryIdentifier: nil, + migrationBlock: nil, + objectTypes: nil, + readOnly: false, + schemaVersion: 0, + shouldCompactOnLaunch: nil, + syncConfiguration: nil) + + _ = Realm.Configuration( + deleteRealmIfMigrationNeeded: false, + encryptionKey: encryptionKey, // $ MISSING: isSink=encryption-key + fileURL: fileURL, // $ MISSING: isSink=path-injection + inMemoryIdentifier: nil, + migrationBlock: nil, + objectTypes: nil, + readOnly: false, + schemaVersion: 0, + seedFilePath: seedFilePath, // $ MISSING: isSink=path-injection + shouldCompactOnLaunch: nil, + syncConfiguration: nil) +} From d92e90f775ae684c2c2d88706af25e11fc37c487 Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 24 Sep 2026 11:09:08 +0200 Subject: [PATCH 13/19] unified: Handle qualified type names --- .../codeql/unified/internal/mad/LegacyMaD.qll | 48 ++++++++++++------- .../ql/test/library-tests/mad/test.expected | 6 +++ unified/ql/test/library-tests/mad/test.swift | 12 ++--- 3 files changed, 42 insertions(+), 24 deletions(-) diff --git a/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll b/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll index 6a79571b6ff8..cdc590e3626e 100644 --- a/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll +++ b/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll @@ -38,13 +38,19 @@ private predicate parsedRawMethodName(string rawName, string name, string argLab ) } -private string getNameFromExpr(Expr e) { +private string getSimpleNameFromExpr(Expr e) { result = e.(Identifier).getValue() or result = e.(MemberAccessExpr).getMemberName() } -private string getCalleeName(CallExpr call) { result = getNameFromExpr(call.getCallee()) } +private string getQualifiedNameFromExpr(Expr e) { + result = e.(Identifier).getValue() + or + exists(MemberAccessExpr access | e = access | + result = getQualifiedNameFromExpr(access.getBase()) + "." + access.getMemberName() + ) +} private string getArgLabelsFromCall(CallExpr call) { result = @@ -64,8 +70,14 @@ private string getArgLabelsFromCall(CallExpr call) { } pragma[nomagic] -private predicate callSelector(CallExpr call, string name, string argLabels) { - name = getCalleeName(call) and +private predicate methodCallSelector(CallExpr call, string name, string argLabels) { + name = getSimpleNameFromExpr(call.getCallee()) and + argLabels = getArgLabelsFromCall(call) +} + +pragma[nomagic] +private predicate constructorCallSelector(CallExpr call, string name, string argLabels) { + name = getQualifiedNameFromExpr(call.getCallee()) and argLabels = getArgLabelsFromCall(call) } @@ -74,7 +86,7 @@ private import codeql.unified.internal.NameBinding as NameBinding private predicate isSubclassOfType(ClassLikeDeclaration cls, string typeName) { typeName = any(Selector s).getTypeString() and ( - getNameFromExpr(cls.getABaseType().getType()) = typeName + getQualifiedNameFromExpr(cls.getABaseType().getType()) = typeName or isSubclassOfType(cls.getABaseClass(), typeName) ) @@ -146,26 +158,26 @@ private class Selector extends TSelector { ")" + this.getArgTypes() } - /** Holds if `name,argLabels` should be used to join with `callSelector`. */ - private predicate effectiveCallSelector(string name, string argLabels) { + /** Holds if `name,argLabels` should be used to join with `methodCallSelector`. */ + pragma[nomagic] + private predicate matchesMethodCallSelector(string name, string argLabels) { this = MkSelector(_, _, name, argLabels, _) and name != "init" - or - // For "init" models there are two issues at play: - // - Constructor calls do not mention "init", they just mention the type name, e.g. `String(...)` not `String.init(...)`. - // - The name "init" is too common to match on anyway. It is more precise to match on the type name in this case. - // - // So to wire up "init" calls correctly, we just use the type name as the method name. - // - // TODO: does not work for compound access like `String.Index(...)` where the type is `String.Index` but the - // call selector only uses `Index`. + } + + /** Holds if `name,argLabels` should be used to join with `constructorCallSelector`. */ + pragma[nomagic] + private predicate matchesConstructorCallSelector(string name, string argLabels) { this = MkSelector(name, _, "init", argLabels, _) } predicate matchesCall(CallExpr call) { exists(string name, string argLabels | - this.effectiveCallSelector(name, argLabels) and - callSelector(call, name, argLabels) + this.matchesMethodCallSelector(name, argLabels) and + methodCallSelector(call, name, argLabels) + or + this.matchesConstructorCallSelector(name, argLabels) and + constructorCallSelector(call, name, argLabels) ) } diff --git a/unified/ql/test/library-tests/mad/test.expected b/unified/ql/test/library-tests/mad/test.expected index c2a9b7847f1d..5776f872b019 100644 --- a/unified/ql/test/library-tests/mad/test.expected +++ b/unified/ql/test/library-tests/mad/test.expected @@ -6,6 +6,12 @@ isSink | test.swift:20:5:20:16 | [receiver arg] ... .md5(...) | weak-hash-input-MD5 | | test.swift:22:20:22:25 | string | regex-use | | test.swift:23:20:23:25 | string | regex-use | +| test.swift:70:37:70:49 | encodedOffset | string-length | +| test.swift:74:24:74:36 | encryptionKey | encryption-key | +| test.swift:75:18:75:24 | fileURL | path-injection | +| test.swift:86:24:86:36 | encryptionKey | encryption-key | +| test.swift:87:18:87:24 | fileURL | path-injection | +| test.swift:93:23:93:34 | seedFilePath | path-injection | isSource | test.swift:4:5:4:27 | String(...) | remote | | test.swift:5:5:5:44 | String(...) | remote | diff --git a/unified/ql/test/library-tests/mad/test.swift b/unified/ql/test/library-tests/mad/test.swift index 7f29dc2a5527..bd7cd79b4ee5 100644 --- a/unified/ql/test/library-tests/mad/test.swift +++ b/unified/ql/test/library-tests/mad/test.swift @@ -67,12 +67,12 @@ func testQualifiedConstructors( fileURL: String, seedFilePath: String ) { - _ = String.Index(encodedOffset: encodedOffset) // $ MISSING: isSink=string-length + _ = String.Index(encodedOffset: encodedOffset) // $ isSink=string-length _ = Realm.Configuration( deleteRealmIfMigrationNeeded: false, - encryptionKey: encryptionKey, // $ MISSING: isSink=encryption-key - fileURL: fileURL, // $ MISSING: isSink=path-injection + encryptionKey: encryptionKey, // $ isSink=encryption-key + fileURL: fileURL, // $ isSink=path-injection inMemoryIdentifier: nil, migrationBlock: nil, objectTypes: nil, @@ -83,14 +83,14 @@ func testQualifiedConstructors( _ = Realm.Configuration( deleteRealmIfMigrationNeeded: false, - encryptionKey: encryptionKey, // $ MISSING: isSink=encryption-key - fileURL: fileURL, // $ MISSING: isSink=path-injection + encryptionKey: encryptionKey, // $ isSink=encryption-key + fileURL: fileURL, // $ isSink=path-injection inMemoryIdentifier: nil, migrationBlock: nil, objectTypes: nil, readOnly: false, schemaVersion: 0, - seedFilePath: seedFilePath, // $ MISSING: isSink=path-injection + seedFilePath: seedFilePath, // $ isSink=path-injection shouldCompactOnLaunch: nil, syncConfiguration: nil) } From df72e5ee7a7cdd5feecc17d16e9d2429213bbf9a Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 24 Sep 2026 11:19:34 +0200 Subject: [PATCH 14/19] unified: Fix mistranslated Argument tokens Some argument indices were not translated correctly. In some cases it seems the original index was out of bounds and we set it to the intended argument. --- .../codeql/unified/internal/mad/LegacyMaD.qll | 26 ++++++++++++++++ unified/ql/lib/ext/legacy-swift.model.yml | 30 +++++++++---------- 2 files changed, 41 insertions(+), 15 deletions(-) diff --git a/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll b/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll index cdc590e3626e..a0d893279935 100644 --- a/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll +++ b/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll @@ -187,6 +187,10 @@ private class Selector extends TSelector { this = MkSelector(type, true, name, argLabels, _) ) } + + int getPositionalArity() { result = count(int n | this.getArgLabels().splitAt(":", n) = "_") } + + string getANamedArgument() { result = this.getArgLabels().splitAt(":") and result != "_" } } private predicate isAccessPath(string path) { @@ -333,3 +337,25 @@ module Public { predicate isSink(DataFlow::Node node, string kind) { node = getASink(kind, _) } } } + +private module Debug { + query predicate invalidAccessPath(Selector selector, AccessPathToken ap) { + ( + normalizedSourceModel(selector, ap, _, _) + or + normalizedSinkModel(selector, ap, _, _) + ) and + ap.getName() = ["Argument", "Parameter"] and + ( + exists(int n | + parseInt(ap.getAnArgument()) = n and + not n in [0 .. selector.getPositionalArity() - 1] + ) + or + exists(string name | + name = ap.getAnArgument().regexpCapture("(.*):", 1) and + not name = selector.getANamedArgument() + ) + ) + } +} diff --git a/unified/ql/lib/ext/legacy-swift.model.yml b/unified/ql/lib/ext/legacy-swift.model.yml index f2aa86c94f21..a44a48adada5 100644 --- a/unified/ql/lib/ext/legacy-swift.model.yml +++ b/unified/ql/lib/ext/legacy-swift.model.yml @@ -95,9 +95,9 @@ extensions: - ["", "", false, "NSLog(_:_:)", "", "", "Argument[0,1]", "log-injection", "manual"] - ["", "", false, "NSLogv(_:_:)", "", "", "Argument[0,1]", "log-injection", "manual"] - ["", "", false, "os_log(_:)", "", "", "Argument[0]", "log-injection", "manual"] - - ["", "", false, "os_log(_:_:_:dso:log:)", "", "", "Argument[0,4]", "log-injection", "manual"] - - ["", "", false, "os_log(_:_:dso:log:type:)", "", "", "Argument[0,4]", "log-injection", "manual"] - - ["", "", false, "os_log(_:_:log:)", "", "", "Argument[2]", "log-injection", "manual"] + - ["", "", false, "os_log(_:_:_:dso:log:)", "", "", "Argument[0,2]", "log-injection", "manual"] + - ["", "", false, "os_log(_:_:dso:log:type:)", "", "", "Argument[0,1]", "log-injection", "manual"] + - ["", "", false, "os_log(_:_:log:)", "", "", "Argument[1]", "log-injection", "manual"] - ["", "", false, "print(_:separator:terminator:toStream:)", "", "", "Argument[0,separator:,terminator:]", "log-injection", "manual"] - ["", "", false, "vfprintf(_:_:_:)", "", "", "Argument[1,2]", "log-injection", "manual"] - ["", "", false, "sqlite3_bind_blob(_:_:_:_:_:)", "", "", "Argument[2]", "database-store", "manual"] @@ -272,16 +272,16 @@ extensions: - ["", "SHA1", true, "calculate(for:)", "", "", "Argument[for:]", "weak-hash-input-SHA1", "manual"] - ["", "SHA1", true, "process(block:currentHash:)", "", "", "Argument[block:]", "weak-hash-input-SHA1", "manual"] - ["", "SHA1", true, "update(isLast:withBytes:)", "", "", "Argument[withBytes:]", "weak-hash-input-SHA1", "manual"] - - ["", "Logger", true, "warning(_:)", "", "", "Argument[1]", "log-injection", "manual"] - - ["", "Logger", true, "error(_:)", "", "", "Argument[1]", "log-injection", "manual"] - - ["", "Logger", true, "critical(_:)", "", "", "Argument[1]", "log-injection", "manual"] - - ["", "Logger", true, "debug(_:)", "", "", "Argument[1]", "log-injection", "manual"] - - ["", "Logger", true, "fault(_:)", "", "", "Argument[1]", "log-injection", "manual"] - - ["", "Logger", true, "info(_:)", "", "", "Argument[1]", "log-injection", "manual"] + - ["", "Logger", true, "warning(_:)", "", "", "Argument[0]", "log-injection", "manual"] + - ["", "Logger", true, "error(_:)", "", "", "Argument[0]", "log-injection", "manual"] + - ["", "Logger", true, "critical(_:)", "", "", "Argument[0]", "log-injection", "manual"] + - ["", "Logger", true, "debug(_:)", "", "", "Argument[0]", "log-injection", "manual"] + - ["", "Logger", true, "fault(_:)", "", "", "Argument[0]", "log-injection", "manual"] + - ["", "Logger", true, "info(_:)", "", "", "Argument[0]", "log-injection", "manual"] - ["", "Logger", true, "log(_:)", "", "", "Argument[0]", "log-injection", "manual"] - - ["", "Logger", true, "log(_:level:)", "", "", "Argument[1]", "log-injection", "manual"] - - ["", "Logger", true, "notice(_:)", "", "", "Argument[1]", "log-injection", "manual"] - - ["", "Logger", true, "trace(_:)", "", "", "Argument[1]", "log-injection", "manual"] + - ["", "Logger", true, "log(_:level:)", "", "", "Argument[0]", "log-injection", "manual"] + - ["", "Logger", true, "notice(_:)", "", "", "Argument[0]", "log-injection", "manual"] + - ["", "Logger", true, "trace(_:)", "", "", "Argument[0]", "log-injection", "manual"] - ["", "NSException", true, "init(name:reason:userInfo:)", "", "", "Argument[reason:]", "log-injection", "manual"] - ["", "NSException", true, "raise(_:arguments:format:)", "", "", "Argument[format:,arguments:]", "log-injection", "manual"] - ["", "SHA256", true, "hash(bufferPointer:)", "", "", "Argument[bufferPointer:]", "weak-password-hash-input-SHA256", "manual"] @@ -321,11 +321,11 @@ extensions: - ["", "QueryType", true, "insert(_:)", "", "", "Argument[0]", "database-store", "manual"] - ["", "QueryType", true, "update(_:)", "", "", "Argument[0]", "database-store", "manual"] - ["", "QueryType", true, "insert(_:_:)", "", "", "Argument[0,1]", "database-store", "manual"] - - ["", "QueryType", true, "insert(_:or:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "QueryType", true, "insert(_:or:)", "", "", "Argument[0]", "database-store", "manual"] - ["", "QueryType", true, "insertMany(_:)", "", "", "Argument[0]", "database-store", "manual"] - - ["", "QueryType", true, "insertMany(_:or:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "QueryType", true, "insertMany(_:or:)", "", "", "Argument[0]", "database-store", "manual"] - ["", "QueryType", true, "update(_:_:)", "", "", "Argument[0,1]", "database-store", "manual"] - - ["", "QueryType", true, "update(_:or:)", "", "", "Argument[1]", "database-store", "manual"] + - ["", "QueryType", true, "update(_:or:)", "", "", "Argument[0]", "database-store", "manual"] - ["", "QueryType", true, "upsert(_:onConflictOf:)", "", "", "Argument[0]", "database-store", "manual"] - ["", "QueryType", true, "upsert(_:onConflictOf:setValues:)", "", "", "Argument[0]", "database-store", "manual"] - ["", "QueryType", true, "upsert(_:onConflictOf:setValues:)", "", "", "Argument[setValues:]", "database-store", "manual"] From cd0f3299cdce3f09ddd0318c82009f9ad0dfcab1 Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 24 Sep 2026 11:38:49 +0200 Subject: [PATCH 15/19] unified: Add tests for explicit '.init' at constructor call --- .../ql/test/library-tests/mad/test.expected | 32 +++++++++---------- unified/ql/test/library-tests/mad/test.swift | 14 ++++++++ 2 files changed, 30 insertions(+), 16 deletions(-) diff --git a/unified/ql/test/library-tests/mad/test.expected b/unified/ql/test/library-tests/mad/test.expected index 5776f872b019..160fe994f23c 100644 --- a/unified/ql/test/library-tests/mad/test.expected +++ b/unified/ql/test/library-tests/mad/test.expected @@ -1,22 +1,22 @@ isSink -| test.swift:8:28:8:33 | string | path-injection | -| test.swift:10:25:10:30 | string | path-injection | -| test.swift:13:25:13:30 | string | path-injection | -| test.swift:17:17:17:22 | string | path-injection | -| test.swift:20:5:20:16 | [receiver arg] ... .md5(...) | weak-hash-input-MD5 | -| test.swift:22:20:22:25 | string | regex-use | +| test.swift:9:28:9:33 | string | path-injection | +| test.swift:11:25:11:30 | string | path-injection | +| test.swift:14:25:14:30 | string | path-injection | +| test.swift:18:17:18:22 | string | path-injection | +| test.swift:21:5:21:16 | [receiver arg] ... .md5(...) | weak-hash-input-MD5 | | test.swift:23:20:23:25 | string | regex-use | -| test.swift:70:37:70:49 | encodedOffset | string-length | -| test.swift:74:24:74:36 | encryptionKey | encryption-key | -| test.swift:75:18:75:24 | fileURL | path-injection | -| test.swift:86:24:86:36 | encryptionKey | encryption-key | -| test.swift:87:18:87:24 | fileURL | path-injection | -| test.swift:93:23:93:34 | seedFilePath | path-injection | +| test.swift:24:20:24:25 | string | regex-use | +| test.swift:71:37:71:49 | encodedOffset | string-length | +| test.swift:76:24:76:36 | encryptionKey | encryption-key | +| test.swift:77:18:77:24 | fileURL | path-injection | +| test.swift:100:24:100:36 | encryptionKey | encryption-key | +| test.swift:101:18:101:24 | fileURL | path-injection | +| test.swift:107:23:107:34 | seedFilePath | path-injection | isSource | test.swift:4:5:4:27 | String(...) | remote | | test.swift:5:5:5:44 | String(...) | remote | | test.swift:6:5:6:48 | String(...) | remote | -| test.swift:8:5:8:34 | String(...) | local | -| test.swift:9:5:11:24 | String(...) | local | -| test.swift:12:5:14:28 | String(...) | local | -| test.swift:28:29:28:32 | text | local | +| test.swift:9:5:9:34 | String(...) | local | +| test.swift:10:5:12:24 | String(...) | local | +| test.swift:13:5:15:28 | String(...) | local | +| test.swift:29:29:29:32 | text | local | diff --git a/unified/ql/test/library-tests/mad/test.swift b/unified/ql/test/library-tests/mad/test.swift index bd7cd79b4ee5..8902f89187ee 100644 --- a/unified/ql/test/library-tests/mad/test.swift +++ b/unified/ql/test/library-tests/mad/test.swift @@ -4,6 +4,7 @@ func test(url: URL, string: String) { String(contentsOf: url) // $ isSource=remote String(contentsOf: url, encoding: .utf8) // $ isSource=remote String(contentsOf: url, usedEncoding: .utf8) // $ isSource=remote + String.init(contentsOf: url) // $ MISSING: isSource=remote String(contentsOfFile: string) // $ isSource=local isSink=path-injection String( @@ -68,6 +69,7 @@ func testQualifiedConstructors( seedFilePath: String ) { _ = String.Index(encodedOffset: encodedOffset) // $ isSink=string-length + _ = String.Index.init(encodedOffset: encodedOffset) // $ MISSING: isSink=string-length _ = Realm.Configuration( deleteRealmIfMigrationNeeded: false, @@ -81,6 +83,18 @@ func testQualifiedConstructors( shouldCompactOnLaunch: nil, syncConfiguration: nil) + _ = Realm.Configuration.init( + deleteRealmIfMigrationNeeded: false, + encryptionKey: encryptionKey, // $ MISSING: isSink=encryption-key + fileURL: fileURL, // $ MISSING: isSink=path-injection + inMemoryIdentifier: nil, + migrationBlock: nil, + objectTypes: nil, + readOnly: false, + schemaVersion: 0, + shouldCompactOnLaunch: nil, + syncConfiguration: nil) + _ = Realm.Configuration( deleteRealmIfMigrationNeeded: false, encryptionKey: encryptionKey, // $ isSink=encryption-key From d1b45ecfd2f0388a814696affecae07f8413ec5b Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 24 Sep 2026 11:43:10 +0200 Subject: [PATCH 16/19] unified: Handle explicit .init at call site --- unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll | 6 +++++- unified/ql/test/library-tests/mad/test.expected | 4 ++++ unified/ql/test/library-tests/mad/test.swift | 8 ++++---- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll b/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll index a0d893279935..64320f671937 100644 --- a/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll +++ b/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll @@ -77,7 +77,11 @@ private predicate methodCallSelector(CallExpr call, string name, string argLabel pragma[nomagic] private predicate constructorCallSelector(CallExpr call, string name, string argLabels) { - name = getQualifiedNameFromExpr(call.getCallee()) and + ( + if call.getCallee().(MemberAccessExpr).getMemberName() = "init" + then name = getQualifiedNameFromExpr(call.getCallee().(MemberAccessExpr).getBase()) + else name = getQualifiedNameFromExpr(call.getCallee()) + ) and argLabels = getArgLabelsFromCall(call) } diff --git a/unified/ql/test/library-tests/mad/test.expected b/unified/ql/test/library-tests/mad/test.expected index 160fe994f23c..cac0df439216 100644 --- a/unified/ql/test/library-tests/mad/test.expected +++ b/unified/ql/test/library-tests/mad/test.expected @@ -7,8 +7,11 @@ isSink | test.swift:23:20:23:25 | string | regex-use | | test.swift:24:20:24:25 | string | regex-use | | test.swift:71:37:71:49 | encodedOffset | string-length | +| test.swift:72:42:72:54 | encodedOffset | string-length | | test.swift:76:24:76:36 | encryptionKey | encryption-key | | test.swift:77:18:77:24 | fileURL | path-injection | +| test.swift:88:24:88:36 | encryptionKey | encryption-key | +| test.swift:89:18:89:24 | fileURL | path-injection | | test.swift:100:24:100:36 | encryptionKey | encryption-key | | test.swift:101:18:101:24 | fileURL | path-injection | | test.swift:107:23:107:34 | seedFilePath | path-injection | @@ -16,6 +19,7 @@ isSource | test.swift:4:5:4:27 | String(...) | remote | | test.swift:5:5:5:44 | String(...) | remote | | test.swift:6:5:6:48 | String(...) | remote | +| test.swift:7:5:7:32 | ... .init(...) | remote | | test.swift:9:5:9:34 | String(...) | local | | test.swift:10:5:12:24 | String(...) | local | | test.swift:13:5:15:28 | String(...) | local | diff --git a/unified/ql/test/library-tests/mad/test.swift b/unified/ql/test/library-tests/mad/test.swift index 8902f89187ee..bf895e5e9274 100644 --- a/unified/ql/test/library-tests/mad/test.swift +++ b/unified/ql/test/library-tests/mad/test.swift @@ -4,7 +4,7 @@ func test(url: URL, string: String) { String(contentsOf: url) // $ isSource=remote String(contentsOf: url, encoding: .utf8) // $ isSource=remote String(contentsOf: url, usedEncoding: .utf8) // $ isSource=remote - String.init(contentsOf: url) // $ MISSING: isSource=remote + String.init(contentsOf: url) // $ isSource=remote String(contentsOfFile: string) // $ isSource=local isSink=path-injection String( @@ -69,7 +69,7 @@ func testQualifiedConstructors( seedFilePath: String ) { _ = String.Index(encodedOffset: encodedOffset) // $ isSink=string-length - _ = String.Index.init(encodedOffset: encodedOffset) // $ MISSING: isSink=string-length + _ = String.Index.init(encodedOffset: encodedOffset) // $ isSink=string-length _ = Realm.Configuration( deleteRealmIfMigrationNeeded: false, @@ -85,8 +85,8 @@ func testQualifiedConstructors( _ = Realm.Configuration.init( deleteRealmIfMigrationNeeded: false, - encryptionKey: encryptionKey, // $ MISSING: isSink=encryption-key - fileURL: fileURL, // $ MISSING: isSink=path-injection + encryptionKey: encryptionKey, // $ isSink=encryption-key + fileURL: fileURL, // $ isSink=path-injection inMemoryIdentifier: nil, migrationBlock: nil, objectTypes: nil, From 3d5a0d49a37ae3449b0ebeb8f2d148630c09ccfc Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 24 Sep 2026 11:46:02 +0200 Subject: [PATCH 17/19] unified: Remove unused import --- unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll b/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll index 64320f671937..492ef6abc453 100644 --- a/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll +++ b/unified/ql/lib/codeql/unified/internal/mad/LegacyMaD.qll @@ -85,8 +85,6 @@ private predicate constructorCallSelector(CallExpr call, string name, string arg argLabels = getArgLabelsFromCall(call) } -private import codeql.unified.internal.NameBinding as NameBinding - private predicate isSubclassOfType(ClassLikeDeclaration cls, string typeName) { typeName = any(Selector s).getTypeString() and ( From 2b6c18736ecb97bcafac0bdd01207e7afd0bf289 Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 24 Sep 2026 13:56:38 +0200 Subject: [PATCH 18/19] unified: Fix issue with bad magic --- unified/ql/lib/codeql/unified/internal/dataflow/DataFlowNode.qll | 1 + 1 file changed, 1 insertion(+) diff --git a/unified/ql/lib/codeql/unified/internal/dataflow/DataFlowNode.qll b/unified/ql/lib/codeql/unified/internal/dataflow/DataFlowNode.qll index aeb662c3c236..0c92899205c2 100644 --- a/unified/ql/lib/codeql/unified/internal/dataflow/DataFlowNode.qll +++ b/unified/ql/lib/codeql/unified/internal/dataflow/DataFlowNode.qll @@ -321,6 +321,7 @@ class Node extends TDataFlowNode { * * The post-update node represents the updated state of the value held in this node, after it has been mutated by the surrounding assignment or call. */ + pragma[nomagic] Node getPostUpdateNode() { exists(Expr expr | this.isResultValue(expr) and From 935956c385ab005f4cb5626208fa6819c620f936 Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 24 Sep 2026 15:09:20 +0200 Subject: [PATCH 19/19] Update unified/ql/lib/codeql/unified/internal/FacadeAst.qll --- unified/ql/lib/codeql/unified/internal/FacadeAst.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unified/ql/lib/codeql/unified/internal/FacadeAst.qll b/unified/ql/lib/codeql/unified/internal/FacadeAst.qll index 1bd280ad8945..9020c167b798 100644 --- a/unified/ql/lib/codeql/unified/internal/FacadeAst.qll +++ b/unified/ql/lib/codeql/unified/internal/FacadeAst.qll @@ -269,7 +269,7 @@ module Unified { /** Gets the number of arguments passed to this call, not counting implicit arguments like receiver. */ int getNumberOfArguments() { result = count(this.getAnArgument()) } - /** Gets the number of arguments passed to this call, not counting implicit arguments like receiver. */ + /** Gets the number of positional arguments passed to this call. */ int getNumberOfPositionalArguments() { result = count(Argument arg | arg = this.getAnArgument() and arg.isPositional()) }