戴铭
戴铭
数组是有序集合 ```swift var a0: [Int] = [1, 10] a0.append(2) a0.remove(at: 0) print(a0) // [10, 2] let a1 = ["one", "two", "three"] let a2 = ["three", "four"] // 找两个集合的不同 let dif...
添加和读取剪贴板的方法如下: ```swift // 读取剪贴板内容 let s = NSPasteboard.general.string(forType: .string) guard let s = s else { return } print(s) // 设置剪贴板内容 let p = NSPasteboard.general p.declareTypes([.string], owner: nil) p.setString(s, forType:...
WwogICAgewogICAgICAgICJuYW1lIjoiU3dpZnRVSeaJqeWxlSIsCiAgICAgICAgImlkIjoyMTEyMjIxNjUxLAogICAgICAgICJyZXBvcyI6WwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJTd2lmdFVJWC9Td2lmdFVJWCIsCiAgICAgICAgICAgICAgICAiZGVzIjoi5omp5bGVIFN3aWZ0VUkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6IlNEV2ViSW1hZ2UvU0RXZWJJbWFnZVN3aWZ0VUkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImFwcHRla3N0dWRpb3MvQVNDb2xsZWN0aW9uVmlldyIsCiAgICAgICAgICAgICAgICAiZGVzIjoiU3dpZnRVSSBjb2xsZWN0aW9uIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJzaXRlbGluZS9Td2lmdFVJLUludHJvc3BlY3QiLAogICAgICAgICAgICAgICAgImRlcyI6IlN3aWZ0VUkg5byV5YWlIFVJS2l0IgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJBdmRMZWUvU3dpZnRVSUtpdFZpZXciLAogICAgICAgICAgICAgICAgImRlcyI6IuWcqCBTd2lmdFVJIOS4rSDkvb/nlKggVUlLaXQiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImRhbmllbHNhaWRpL1N3aWZ0VUlLaXQiLAogICAgICAgICAgICAgICAgImRlcyI6Iue7mSBTd2lmdFVJIOa3u+WKoOabtOWkmuWKn+iDvSIKICAgICAgICAgICAgfQogICAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICAgIm5hbWUiOiLmjqXlj6PlupTnlKgiLAogICAgICAgICJpZCI6MjExMjIyMTcxMCwKICAgICAgICAicmVwb3MiOlsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiYnBpc2Fuby9XZWF0aGVyIiwKICAgICAgICAgICAgICAgICJkZXMiOiLlpKnmsJTlupTnlKgiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6IkRpbWlsbGlhbi9Nb3ZpZVN3aWZ0VUkiLAogICAgICAgICAgICAgICAgImRlcyI6IueUteW9sSBNb3ZpZURCIOW6lOeUqCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiY2hvam5hYy9Ob3Rpb25Td2lmdCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiRGltaWxsaWFuL1JlZGRpdE9TIiwKICAgICAgICAgICAgICAgICJkZXMiOiJTd2lmdFVJIOWGmeeahCBSZWRkaXTlrqLmiLfnq68iCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImNhcnNvbi1rYXRyaS9yZWRkaXQtc3dpZnR1aSIsCiAgICAgICAgICAgICAgICAiZGVzIjoiU3dpZnRVSSDlhpnnmoQgUmVkZGl05a6i5oi356uvIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJEaW1pbGxpYW4vU3dpZnRITiIsCiAgICAgICAgICAgICAgICAiZGVzIjoiSGFja2VyIE5ld3Mg6ZiF6K+7IgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJ0YXRzdXowdS9FaFBhbmRhIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJEaW1pbGxpYW4vTW9ydHlVSSIsCiAgICAgICAgICAgICAgICAiZGVzIjoiR3JhcGhRTCArIFN3aWZ0VUkg5byA5Y+R55qE55Ge5YWL5ZKM6I6r6JKC5bqU55SoIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJGaW5iL1YyZXgtU3dpZnQiLAogICAgICAgICAgICAgICAgImRlcyI6IlYyRVgg5a6i5oi356uvIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJ2MmVyLWFwcC9pT1MiLAogICAgICAgICAgICAgICAgImRlcyI6IlYyRVgg5a6i5oi356uvIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJzaW5hd2VpYm9zZGsvd2VpYm9faW9zX3NkayIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoibWluaUxWL01OV2VpYm8iLAogICAgICAgICAgICAgICAgImRlcyI6IlN3aWZ0NSArIE1WVk0g5b6u5Y2a5a6i5oi356uvIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJuZXJkaXNoYnluYXR1cmUvb2N0b2tpdC5zd2lmdCIsCiAgICAgICAgICAgICAgICAiZGVzIjoiU3dpZnQgQVBJIENsaWVudCBmb3IgR2l0SHViIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJHaXRIYXdrQXBwL0dpdEhhd2siLAogICAgICAgICAgICAgICAgImRlcyI6ImlPUyBhcHAgZm9yIEdpdEh1YiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiZmFuZ3plc2hlbmcvZnJlZS1hcGkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6Im5lcmRzdXByZW1hY2lzdC9HcmFwaGFlbGxvIiwKICAgICAgICAgICAgICAgICJkZXMiOiJTd2lmdFVJIOS4reS9v+eUqCBHcmFwaFFMIOeahOW3peWFtyIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoibmVyZHN1cHJlbWFjaXN0L3RtZGIiLAogICAgICAgICAgICAgICAgImRlcyI6IkdyYXBoUUwg5YyF6KOF55S15b2x5pWw5o2u5o6l5Y+jIgogICAgICAgICAgICB9CiAgICAgICAgXQogICAgfSwKICAgIHsKICAgICAgICAibmFtZSI6Im1hY09TIiwKICAgICAgICAiaWQiOjIxMTIyMjE3MzUsCiAgICAgICAgInJlcG9zIjpbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImVvbmlzdC9GaWxlV2F0Y2hlciIsCiAgICAgICAgICAgICAgICAiZGVzIjoibWFjT1Mg5LiK55uR5ZCs5paH5Lu25Y+Y5YyWIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJ3YXlseWJheWUvWGNvZGVDbGVhbmVyLVN3aWZ0VUkiLAogICAgICAgICAgICAgICAgImRlcyI6Iua4heeQhiBYY29kZSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiZ2FvLXN1bi9ldWwiLAogICAgICAgICAgICAgICAgImRlcyI6IlN3aWZ0VUkg5YaZ55qEIG1hY09TIOeKtuaAgeebkeaOp+W3peWFtyIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiRGltaWxsaWFuL0FDSE5Ccm93c2VyVUkiLAogICAgICAgICAgICAgICAgImRlcyI6IlN3aWZ0VUkg5YaZ55qE5Yqo54mp5LmL5qOu5bCP5Yqp5omL56iL5bqPIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJsZXhydXMvUmVnRXhQbHVzIiwKICAgICAgICAgICAgICAgICJkZXMiOiLmraPliJnooajovr7lvI8iCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6InYyZXgvbGF1bmNoZXIiLAogICAgICAgICAgICAgICAgImRlcyI6IueUqOadpeWQr+WKqOmCo+S6m+acrOWcsOW8gOWPkeaXtumcgOimgeeahOWQhOenjei/m+eoi++8jOWPiuafpeeci+WFtui+k+WHuiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoibHVrYWtlcnIvUGluZSIsCiAgICAgICAgICAgICAgICAiZGVzIjoiTWFya2Rvd24g57yW6L6R5ZmoIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJyb290M25sL1N1cHBvcnRBcHAiLAogICAgICAgICAgICAgICAgImRlcyI6IuS8geS4muaUr+aMgSBtYWNPUyDova/ku7YiCiAgICAgICAgICAgIH0KICAgICAgICBdCiAgICB9LAogICAgewogICAgICAgICJuYW1lIjoi5bqU55SoIiwKICAgICAgICAiaWQiOjIxMTIyMzE3MDUsCiAgICAgICAgInJlcG9zIjpbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6InZpbmhueC9DbGVuZGFyIiwKICAgICAgICAgICAgICAgICJkZXMiOiJTd2lmdFVJIOWGmeeahOaXpeWOhuW6lOeUqCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiU3ZlblRpaWdpL1doYXRzTmV3S2l0IiwKICAgICAgICAgICAgICAgICJkZXMiOiLmrKLov47lsY8iCiAgICAgICAgICAgIH0KICAgICAgICBdCiAgICB9LAogICAgewogICAgICAgICJuYW1lIjoi5ri45oiPIiwKICAgICAgICAiaWQiOjIxMTIyMzE4MDcsCiAgICAgICAgInJlcG9zIjpbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6InBvaW50ZnJlZWNvL2lzb3dvcmRzIiwKICAgICAgICAgICAgICAgICJkZXMiOiLljZXor43mkJzntKLmuLjmiI8iCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6Im1pY2hlbHBlcmVpcmEvYXdlc29tZS1nYW1lcy1vZi1jb2RpbmciLAogICAgICAgICAgICAgICAgImRlcyI6IuaVmeS9oOWtpue8lueoi+eahOa4uOaIj+aUtumbhiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiT3BlbkVtdS9PcGVuRW11IiwKICAgICAgICAgICAgICAgICJkZXMiOiLop4bpopHmuLjmiI/mqKHmi5/lmagiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImpWaXJ1cy9zd2lmdHVpLTIwNDgiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImNocmlzbWFsdGJ5L2diLXN0dWRpbyIsCiAgICAgICAgICAgICAgICAiZGVzIjoi5ouW5pS+5byP5aSN5Y+k5ri45oiP5Yib5bu65ZmoIgogICAgICAgICAgICB9CiAgICAgICAgXQogICAgfSwKICAgIHsKICAgICAgICAibmFtZSI6IuaWsOaKgOacr+WxleekuiIsCiAgICAgICAgImlkIjoyMTEyMjIxOTAyLAogICAgICAgICJyZXBvcyI6WwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJKYWtlTGluL01vbWVudHMtU3dpZnRVSSIsCiAgICAgICAgICAgICAgICAiZGVzIjoiU3dpZnRVSeOAgUFzeW5j44CBQWN0b3IiCiAgICAgICAgICAgIH0KICAgICAgICBdCiAgICB9LAogICAgewogICAgICAgICJuYW1lIjoi5paw6bKc5LqLIiwKICAgICAgICAiaWQiOjIxMTIyMzEwNDMsCiAgICAgICAgInJlcG9zIjpbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6InJ1YW55Zi93ZWVrbHkiLAogICAgICAgICAgICAgICAgImRlcyI6IuenkeaKgOeIseWlveiAheWRqOWIiiIKICAgICAgICAgICAgfQogICAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICAgIm5hbWUiOiLogZrlkIgiLAogICAgICAgICJpZCI6MjExMjIyMTk0OCwKICAgICAgICAicmVwb3MiOlsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoidGltcWlhbi9jaGluZXNlLWluZGVwZW5kZW50LWJsb2dzIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJ2bG9uZG9uL2F3ZXNvbWUtc3dpZnR1aSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiaXZhbnZvcm9iZWkvU3dpZnRVSSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoia29uOWNodW5raXQvR2l0SHViLUNoaW5lc2UtVG9wLUNoYXJ0cyIsCiAgICAgICAgICAgICAgICAiZGVzIjoiR2l0SHVi5Lit5paH5o6S6KGM5qacIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJvbm15d2F5MTMzL2F3ZXNvbWUtc3dpZnR1aSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiSnVhbnBlL0Fib3V0LVN3aWZ0VUkiLAogICAgICAgICAgICAgICAgImRlcyI6Iuaxh+aAuyBTd2lmdFVJIOeahOi1hOaWmSIKICAgICAgICAgICAgfQogICAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICAgIm5hbWUiOiLnn6Xor4bnrqHnkIYiLAogICAgICAgICJpZCI6MjExMjI4MTkxMCwKICAgICAgICAicmVwb3MiOlsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiQXBwRmxvd3ktSU8vYXBwZmxvd3kiLAogICAgICAgICAgICAgICAgImRlcyI6IkZsdXR0ZXIg5ZKMIFJ1c3Qg5byA5Y+R55qE5byA5rqQIE5vdGlvbiIKICAgICAgICAgICAgfQogICAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICAgIm5hbWUiOiLmgKfog73lkozlt6XnqIvmnoTlu7oiLAogICAgICAgICJpZCI6MjExMjI0MTcxNCwKICAgICAgICAicmVwb3MiOlsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoicGVyaXBoZXJ5YXBwL3BlcmlwaGVyeSIsCiAgICAgICAgICAgICAgICAiZGVzIjoi5qOA5rWLIFN3aWZ0IOaXoOeUqOS7o+eggSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoibmFsZXhuL1ZpZXdJbnNwZWN0b3IiLAogICAgICAgICAgICAgICAgImRlcyI6IlN3aWZ0VUkgUnVudGltZSBpbnRyb3NwZWN0aW9uIOWSjCDljZXlhYPmtYvor5UiCiAgICAgICAgICAgIH0KICAgICAgICBdCiAgICB9LAogICAgewogICAgICAgICJuYW1lIjoi572R57ucIiwKICAgICAgICAiaWQiOjIxMTIyMzEwNDgsCiAgICAgICAgInJlcG9zIjpbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6IkxvamlpL0tub3QiLAogICAgICAgICAgICAgICAgImRlcyI6IuS9v+eUqCBTd2lmdE5JTyDlrp7njrAgSFRUUFMg5oqT5YyFIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJzd2lmdC1zZXJ2ZXIvYXN5bmMtaHR0cC1jbGllbnQiLAogICAgICAgICAgICAgICAgImRlcyI6IuS9v+eUqCBTd2lmdE5JTyDlvIDlj5HnmoQgSFRUUCDlrqLmiLfnq68iCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImtlYW4vR2V0IgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJhd2Vzb21lLXNlbGZob3N0ZWQvYXdlc29tZS1zZWxmaG9zdGVkIiwKICAgICAgICAgICAgICAgICJkZXMiOiLnvZHnu5zmnI3liqHlj4rkuIrpnaLnmoTlupTnlKgiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImRhbHRvbmlhbS9TdGFyc2NyZWFtIiwKICAgICAgICAgICAgICAgICJkZXMiOiJXZWJTb2NrZXQiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6InNoYWRvd3NvY2tzL1NoYWRvd3NvY2tzWC1ORyIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiY2Fyc29uLWthdHJpL3N3aWZ0LXJlcXVlc3QiLAogICAgICAgICAgICAgICAgImRlcyI6IuWjsOaYjuW8j+eahOe9kee7nOivt+axgiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiY2xvdWRyZXZlL0Nsb3VkcmV2ZSIsCiAgICAgICAgICAgICAgICAiZGVzIjoi5LqR5a2Y5YKo6YOo572yIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJhbGliYWJhL3hxdWljIiwKICAgICAgICAgICAgICAgICJkZXMiOiLpmL/ph4zlt7Tlt7Tlj5HluIPnmoQgWFFVSUMg5bqTIgogICAgICAgICAgICB9CiAgICAgICAgXQogICAgfSwKICAgIHsKICAgICAgICAibmFtZSI6IuWbvuW9oiIsCiAgICAgICAgImlkIjoyMTEyMjcxNTQ1LAogICAgICAgICJyZXBvcyI6WwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJsbHVkby9Td2lmdFN1bmJ1cnN0RGlhZ3JhbSIsCiAgICAgICAgICAgICAgICAiZGVzIjoiU3dpZnRVSSDlm77ooagiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImlteGlleWkvd2FpZnUyeC1pb3MiLAogICAgICAgICAgICAgICAgImRlcyI6IndhaWZ1MnggQ29yZSBNTCDliqjmvKvpo47moLzlm77niYfnmoTpq5jmuIXmuLLmn5MiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6Im1lY2lkL1N3aWZ0VUlDaGFydHMiLAogICAgICAgICAgICAgICAgImRlcyI6IuaUr+aMgSBTd2lmdFVJIOeahOeugOWNleeahOe6v+WbvuWSjOafseeKtuWbvuW6kyIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiVGVuY2VudC9saWJwYWciLAogICAgICAgICAgICAgICAgImRlcyI6IlBBR++8iFBvcnRhYmxlIEFuaW1hdGVkIEdyYXBoaWNz77yJ5a6e5pe25riy5p+T5bqT77yM5aSa5Liq5bmz5Y+w5riy5p+TQUXliqjnlLvjgIIiCiAgICAgICAgICAgIH0KICAgICAgICBdCiAgICB9LAogICAgewogICAgICAgICJuYW1lIjoi57O757ufIiwKICAgICAgICAiaWQiOjIxMTIyMzExMDEsCiAgICAgICAgInJlcG9zIjpbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6InNwZXZhbnMvc3dpZnQtcHJvamVjdDEiLAogICAgICAgICAgICAgICAgImRlcyI6IlN3aWZ057yW5YaZ5YaF5qC477yM5Y+v5ZyoIE1hYyDlkowgUEMg5ZCv5YqoIgogICAgICAgICAgICB9CiAgICAgICAgXQogICAgfSwKICAgIHsKICAgICAgICAibmFtZSI6IkFwcGxlIiwKICAgICAgICAiaWQiOjIxMTIyMTIwMDQsCiAgICAgICAgInJlcG9zIjpbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImFwcGxlL3N3aWZ0LWNvcmVsaWJzLWZvdW5kYXRpb24iCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImFwcGxlL3N3aWZ0LXBhY2thZ2UtbWFuYWdlciIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiYXBwbGUvc3dpZnQtbWFya2Rvd24iCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImFwcGxlL3NvdXJjZWtpdC1sc3AiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImFwcGxlL3N3aWZ0LW5pbyIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiYXBwbGUvc3dpZnQtc3ludGF4IiwKICAgICAgICAgICAgICAgICJkZXMiOiLop6PmnpDjgIHnlJ/miJDjgIHovazmjaIgU3dpZnQg5Luj56CBIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJhcHBsZS9zd2lmdC1jcnlwdG8iLAogICAgICAgICAgICAgICAgImRlcyI6IkNyeXB0b0tpdCDnmoTlvIDmupDlrp7njrAiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImFwcGxlL3N3aWZ0LWRyaXZlciIsCiAgICAgICAgICAgICAgICAiZGVzIjoi55SoIFN3aWZ0IOivreiogOmHjeaWsOWunueOsOeahOe8luivkeWZqOeahOmpseWKqOeoi+W6j+W6kyIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiYXBwbGUvc3dpZnQtbnVtZXJpY3MiLAogICAgICAgICAgICAgICAgImRlcyI6IueUqOeugOWNleeahOaWueW8j+eUqOa1rueCueWei+i/m+ihjOaVsOWAvOiuoeeulyIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiYXBwbGUvc3dpZnQtYXRvbWljcyIsCiAgICAgICAgICAgICAgICAiZGVzIjoiU3dpZnQg55qE5L2O57qn5Y6f5a2Q5pON5L2cIgogICAgICAgICAgICB9CiAgICAgICAgXQogICAgfSwKICAgIHsKICAgICAgICAibmFtZSI6IuW+heWIhuexuyIsCiAgICAgICAgImlkIjoyMTExMTExOTQ4LAogICAgICAgICJyZXBvcyI6WwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJwdWJsaWMtYXBpcy9wdWJsaWMtYXBpcyIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiaW5zaWRlZ3VpL1dXREMiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6InNpbmRyZXNvcmh1cy9BY3Rpb25zIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJ0cmltc3RyYXkvdGhlLWJvb2stb2Ytc2VjcmV0LWtub3dsZWRnZSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoicm9zc2FudC9hd2Vzb21lLW1hdGgiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6InJha3V0ZW50ZWNoL0FsdFN3aWZ0VUkiLAogICAgICAgICAgICAgICAgImRlcyI6IuexuyBTd2lmdFVJIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJneW1zaGFyay9pb3Mtc3RhY2sta2l0IiwKICAgICAgICAgICAgICAgICJkZXMiOiLnsbsgU3dpZnRVSSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiT3BlbkNvbWJpbmUvT3BlbkNvbWJpbmUiLAogICAgICAgICAgICAgICAgImRlcyI6IkNvbWJpbmUg55qE5byA5rqQ5a6e546wIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJDb21iaW5lQ29tbXVuaXR5L0NvbWJpbmVFeHQiLAogICAgICAgICAgICAgICAgImRlcyI6IuWvuSBDb21iaW5lIOeahOihpeWFhSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiUmVTd2lmdC9SZVN3aWZ0IiwKICAgICAgICAgICAgICAgICJkZXMiOiLljZXpobXpnaLnirbmgIHlkozmlbDmja7nrqHnkIYiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImRldmljZWtpdC9EZXZpY2VLaXQiLAogICAgICAgICAgICAgICAgImRlcyI6IlVJRGV2aWNlIOaYk+eUqOWwgeijhSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiaXZhbnNjaHVldHovU3dpZnRDaGFydHMiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6Im52enF6L0ZpbGVLaXQiLAogICAgICAgICAgICAgICAgImRlcyI6IuaWh+S7tuaTjeS9nCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiSm9oblN1bmRlbGwvRmlsZXMiLAogICAgICAgICAgICAgICAgImRlcyI6IuaWh+S7tuaTjeS9nCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoia3lsZWYvUGF0aEtpdCIsCiAgICAgICAgICAgICAgICAiZGVzIjoi5paH5Lu25pON5L2cIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJKb2huU3VuZGVsbC9QdWJsaXNoIiwKICAgICAgICAgICAgICAgICJkZXMiOiLpnZnmgIHnq5nngrnnlJ/miJDlmagiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImNhaXl1ZTE5OTMvSWNlQ3JlYW0iLAogICAgICAgICAgICAgICAgImRlcyI6IkNsb3VkS2l0IOWQjOatpSBSZWFsbSDmlbDmja7lupMiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6InRvcGhhdC9SaWNoVGV4dFZpZXciCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6InRuYW50b2thL2VkaGl0YSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoia2VpdGFvb3VjaGkvTWFya2Rvd25WaWV3IgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJqb2hueG5ndXllbi9Eb3duIiwKICAgICAgICAgICAgICAgICJkZXMiOiJmYXN0IE1hcmtkb3duIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJxZXVkZS9Td2lmdERvd24iLAogICAgICAgICAgICAgICAgImRlcyI6IlN3aWZ0IOWGmeeahOWPr+aNouS4u+mimOeahCBNYXJrZG93biDnvJbovpHlmajnu4Tku7YiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6InNoaWJhcG0vS29tb25kb3IiLAogICAgICAgICAgICAgICAgImRlcyI6IkdpdCBIb29rcyBmb3IgU3dpZnQgcHJvamVjdHMiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6IlN3aWZ0R2VuL1N3aWZ0R2VuIiwKICAgICAgICAgICAgICAgICJkZXMiOiLku6PnoIHnlJ/miJAiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6Imthc2tldGlzL25ldGZveCIsCiAgICAgICAgICAgICAgICAiZGVzIjoi6I635Y+W5omA5pyJ572R57uc6K+35rGCIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJCb2hkYW5Pcmxvdi9pT1MtRGV2ZWxvcGVyLVJvYWRtYXAiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImtpY2tzdGFydGVyL2lvcy1vc3MiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6IndvcmRwcmVzcy1tb2JpbGUvV29yZFByZXNzLWlPUyIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiam9zZWp1YW5xbS9WZXJzYVBsYXllciIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoibW96aWxsYS1tb2JpbGUvZmlyZWZveC1pb3MiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6IlBvc3RncmVzQXBwL1Bvc3RncmVzQXBwIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJNb3lhL01veWEiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6IktpdHVyYS9CbHVlU29ja2V0IgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJyaHVtbWVsbW9zZS9CbHVldG9vdGhLaXQiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6InJ1c2hpc2FuZ2FuaS9CaW9tZXRyaWNBdXRoZW50aWNhdGlvbiIsCiAgICAgICAgICAgICAgICAiZGVzIjoiRmFjZUlEIG9yIFRvdWNoSUQgYXV0aGVudGljYXRpb24iCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6Imtyenl6YW5vd3NraW0vQ3J5cHRvU3dpZnQiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6InRpbWRvbm5lbGx5L0FkdmFuY2UiLAogICAgICAgICAgICAgICAgImRlcyI6IlBoeXNpY3MtYmFzZWQgYW5pbWF0aW9ucyIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiTWVuZ1RvL1NwcmluZyIsCiAgICAgICAgICAgICAgICAiZGVzIjoi5Yqo55S7IgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJqYXRodS9VSUltYWdlQ29sb3JzIiwKICAgICAgICAgICAgICAgICJkZXMiOiLojrflj5blm77niYfkuLvmrKHpopzoibIiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6IkJyYWRMYXJzb24vR1BVSW1hZ2UzIiwKICAgICAgICAgICAgICAgICJkZXMiOiJNZXRhbCDlrp7njrAiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImV4eXRlL01hY2F3IiwKICAgICAgICAgICAgICAgICJkZXMiOiJTVkciCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImVmcmVtaWR6ZS9NYWduZXRpYyIsCiAgICAgICAgICAgICAgICAiZGVzIjoiU3ByaXRlS2l05rCU5rOh5pSv5oyBU3dpZnRVSSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiYW5hbG9nY29kZS9Td2lmdC1SYWRpby1Qcm8iLAogICAgICAgICAgICAgICAgImRlcyI6IueUteWPsOW6lOeUqCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoic3V6dWtpLTAwMDAvU0tQaG90b0Jyb3dzZXIiLAogICAgICAgICAgICAgICAgImRlcyI6IuWbvueJh+a1j+iniCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoicmF5d2VuZGVybGljaC9zd2lmdC1hbGdvcml0aG0tY2x1YiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiaHlwZXJvc2xvL0NhY2hlIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJzdW5zaGluZWpyL1N3aWZ0eVVzZXJEZWZhdWx0cyIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiTW9uaXRvckNvbnRyb2wvTW9uaXRvckNvbnRyb2wiLAogICAgICAgICAgICAgICAgImRlcyI6IuS6ruW6puWSjOWjsOmfs+aOp+WItiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoia3lsZWYvQ29tbWFuZGVyIiwKICAgICAgICAgICAgICAgICJkZXMiOiLlkb3ku6TooYwiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6IlJlYWN0aXZlQ29jb2EvUmVhY3RpdmVDb2NvYSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiQ2FydGhhZ2UvQ2FydGhhZ2UiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImRhbmllbGdpbmRpL0NoYXJ0cyIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiUXVpY2svUXVpY2siLAogICAgICAgICAgICAgICAgImRlcyI6Iua1i+ivleahhuaetiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiYmlsaWJpbGkvaWprcGxheWVyIiwKICAgICAgICAgICAgICAgICJkZXMiOiLmkq3mlL7lmagiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6InNjaGVsbGluZ2IvZG9zYm94LXB1cmUiLAogICAgICAgICAgICAgICAgImRlcyI6IkRPUyDmuLjmiI/mqKHmi5/lmagiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6InR3b3N0cmF3cy9IYWNraW5nV2l0aFN3aWZ0IiwKICAgICAgICAgICAgICAgICJkZXMiOiLnpLrkvovku6PnoIEiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImdsdXNoY2hlbmtvL2Zzbm90ZXMiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImNvdGVkaXRvci9Db3RFZGl0b3IiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6IkpvYW5LaW5nL0pLU3dpZnRFeHRlbnNpb24iLAogICAgICAgICAgICAgICAgImRlcyI6IlN3aWZ05bi455So5omp5bGV44CB57uE5Lu244CB5Y2P6K6uIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJpbmZpbnVtL2lPUy1OdXRzLUFuZC1Cb2x0cyIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiZ3Rva21hbi9FeHRlbnNpb25LaXQiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImpvaG5zdW5kZWxsL3B1Ymxpc2giLAogICAgICAgICAgICAgICAgImRlcyI6IueUqCBzd2lmdCDmnaXlhpnnvZHnq5kiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6Im1laGRpaGFkZWxpL2F3ZXNvbWUtc29mdHdhcmUtYXJjaGl0ZWN0dXJlIiwKICAgICAgICAgICAgICAgICJkZXMiOiLova/ku7bmnrbmnoQiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6Ik5BUktPWi9oYWNrZXItc2NyaXB0cyIsCiAgICAgICAgICAgICAgICAiZGVzIjoi56iL5bqP5ZGY55qE5rS76YO96K6p5py65Zmo5bmy55qE6ISa5pys77yI55yf5a6e5pWF5LqL77yJIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJuYWxleG4vY2xlYW4tYXJjaGl0ZWN0dXJlLXN3aWZ0dWkiLAogICAgICAgICAgICAgICAgImRlcyI6IuW5suWHgOWujOaVtOeahFN3aWZ0VUkrQ29tYmluZeS+i+WtkO+8jOWMheWQq+e9kee7nOWSjOWNleWFg+a1i+ivleetiSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiY2FyZWtpdC1hcHBsZS9DYXJlS2l0IiwKICAgICAgICAgICAgICAgICJkZXMiOiLkvb/nlKggU3dpZnRVSSDlvIDlj5HlgaXlurfnm7jlhbPnmoTlupMiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImNhcnNvbi1rYXRyaS9hd2Vzb21lLXJlc3VsdC1idWlsZGVycyIsCiAgICAgICAgICAgICAgICAiZGVzIjoiUmVzdWx0IEJ1aWxkZXJzIGF3ZXNvbWUiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6IkNheS1aaGFuZy9Td2lmdFNwZWVjaCIsCiAgICAgICAgICAgICAgICAiZGVzIjoi6Iu55p6c6K+t6KiA6K+G5Yir5bCB6KOF5bqT77yM5bey6YCC6YWNIFN3aWZ0VUkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6Ik5leHRMZXZlbC9OZXh0TGV2ZWwiLAogICAgICAgICAgICAgICAgImRlcyI6IuebuOacuiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiSGFybGV5LXhrL01hTGlhbmciLAogICAgICAgICAgICAgICAgImRlcyI6IuWfuuS6jiBNZXRhbCDnmoTmtoLpuKbnu5jlm77lupMiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImNoYW96aC9hd2Vzb21lLWJsb2NrY2hhaW4tY24iLAogICAgICAgICAgICAgICAgImRlcyI6IuWMuuWdl+mTviBhd2Vzb21lIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJSb2JvdHNBbmRQZW5jaWxzL1hjb2Rlc0FwcCIsCiAgICAgICAgICAgICAgICAiZGVzIjoiWGNvZGUg5aSa54mI5pys5a6J6KOFIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJXZVRyYW5zZmVyL01vY2tlciIsCiAgICAgICAgICAgICAgICAiZGVzIjoiTW9jayBBbGFtb2ZpcmUgYW5kIFVSTFNlc3Npb24iCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImdyZTRpeGluL1JlZHV4VUkiLAogICAgICAgICAgICAgICAgImRlcyI6IlN3aWZ0VUkgUmVkdXgg5p625p6EIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJaZWVaaWRlLzVHVUlzIiwKICAgICAgICAgICAgICAgICJkZXMiOiLlj6/ku6XliIbmnpDnqIvluo/nlKjkuoblk6rkupvlupPvvIznlKjkuoZMTFZNIG9iamR1bXAiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6InBvaW50ZnJlZWNvL2VwaXNvZGUtY29kZS1zYW1wbGVzIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJTd2lmdFBhY2thZ2VJbmRleC9QYWNrYWdlTGlzdCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoic2luZHJlc29yaHVzL2F3ZXNvbWUiLAogICAgICAgICAgICAgICAgImRlcyI6IuWGheWuueW5vyIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiZGtoYW1zaW5nL29wZW4tc291cmNlLWlvcy1hcHBzIiwKICAgICAgICAgICAgICAgICJkZXMiOiLlvIDmupDnmoTlrozmlbQgQXBwIOS+i+WtkCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiZnJ6aS9Nb2RlbDNEVmlldyIsCiAgICAgICAgICAgICAgICAiZGVzIjoi5q+r5LiN6LS55Yqb55qE5L2/55SoIFN3aWZ0VUkg5riy5p+TIDNkIG1vZGVscyIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiZmFpc2FsbWVtb24vaW9zLWNyYXNoLWR1bXAtYW5hbHlzaXMtYm9vayIsCiAgICAgICAgICAgICAgICAiZGVzIjoiaU9TIENyYXNoIER1bXAgQW5hbHlzaXMgQm9vayIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiZXh5dGUvU1ZHVmlldyIsCiAgICAgICAgICAgICAgICAiZGVzIjoi5pSv5oyBIFN3aWZ0VUkg55qEIFNWRyDop6PmnpDmuLLmn5Pop4blm74iCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImtyenlzenRvZnphYmxvY2tpL1NvdXJjZXJ5IiwKICAgICAgICAgICAgICAgICJkZXMiOiJTd2lmdCDlhYPnvJbnqIsiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6Implc3Nlc3F1aXJlcy9USUwiLAogICAgICAgICAgICAgICAgImRlcyI6IuWtpuS5oOeslOiusCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoibWFqZC9pcGF0b29sIiwKICAgICAgICAgICAgICAgICJkZXMiOiLkuIvovb0gaXBhIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJKb2huU3VuZGVsbC9JbmsiLAogICAgICAgICAgICAgICAgImRlcyI6Ik1hcmtkb3duIOino+aekOWZqCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoiS2l0dXJhL3N3aWZ0LWh0bWwtZW50aXRpZXMiLAogICAgICAgICAgICAgICAgImRlcyI6IkhUTUw1IOinhOiMg+Wtl+espue8lueggS/op6PnoIHlmagiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6IlRva2FtYWtVSS9Ub2thbWFrIiwKICAgICAgICAgICAgICAgICJkZXMiOiJTd2lmdFVJIOWFvOWuue+8jFdlYkFzc2VtYmx5IOaehOW7uiBIVE1MIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJyb2NrYnJ1bm8vU3dpZnRJbmZvIiwKICAgICAgICAgICAgICAgICJkZXMiOiLmj5Dlj5blkozliIbmnpDkuIDkuKppT1PlupTnlKgiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6IkNvcmVPZmZpY2UvQ29yZVhMU1giLAogICAgICAgICAgICAgICAgImRlcyI6IlN3aWZ057yW5YaZ55qERXhjZWznlLXlrZDooajmoLzvvIhYTFNY77yJ5qC85byP6Kej5p6Q5ZmoIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJDb3JlT2ZmaWNlL0NyeXB0b09mZmljZSIsCiAgICAgICAgICAgICAgICAiZGVzIjoiU3dpZnQg6Kej5p6QIE9mZmljZSBPcGVuIFhNTO+8iE9PWE1M77yJ5YyF5ousIHhsc3gsIGRvY3gsIHBwdHgiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImtldnF1aXJrL3NpbXBsZS5jc3MiLAogICAgICAgICAgICAgICAgImRlcyI6IueugOWNleWkp+aWueWfuuehgCBDU1Mg5qC35byPIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiJzaXZhbi9oZXRpIiwKICAgICAgICAgICAgICAgICJkZXMiOiLotavouY/vvIhow6h0w63vvInkuK3mlofmjpLniYgiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ImtyenlzenRvZnphYmxvY2tpL0taRmlsZVdhdGNoZXJzIiwKICAgICAgICAgICAgICAgICJkZXMiOiJTd2lmdOe8luWGmeeahOinguWvn+acrOWcsOaIluiAhee9kee7nOS4iu+8jOavlOWmgue9keebmOWSjEZUUOeahOaWh+S7tuWPmOWMliIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoibWFsY29tbWFjL1N3aWZ0RGF0ZSIsCiAgICAgICAgICAgICAgICAiZGVzIjoiU3dpZnTnvJblhpnnmoTml7bpl7Tml7bljLrvvIzml7bpl7Tmr5TovoPnrYnlpI3mnYLlpITnkIbnmoTljIXoo4UiCiAgICAgICAgICAgIH0KICAgICAgICBdCiAgICB9Cl0K
```swift struct ShareView: View { var s: String var body: some View { Menu { Button { let p = NSPasteboard.general p.declareTypes([.string], owner: nil) p.setString(s, forType: .string) } label: {...
WwogICAgewogICAgICAgICJuYW1lIjoi5Z+656GA5bqTIiwKICAgICAgICAiaWQiOjIyMDEyMDEwMTIsCiAgICAgICAgImlzc3VlcyI6WwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOjIyMDEyMDEwMTIsCiAgICAgICAgICAgICAgICAidGl0bGUiOiLml7bpl7QiLAogICAgICAgICAgICAgICAgIm51bWJlciI6MTIwCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6MjIwMTIwMTAxNywKICAgICAgICAgICAgICAgICJ0aXRsZSI6IuagvOW8j+WMliIsCiAgICAgICAgICAgICAgICAibnVtYmVyIjoxMjEKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoyMjAxMjAxMDE4LAogICAgICAgICAgICAgICAgInRpdGxlIjoi5bqm6YeP5YC8IiwKICAgICAgICAgICAgICAgICJudW1iZXIiOjEyMgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOjIyMDEyMDEwMTksCiAgICAgICAgICAgICAgICAidGl0bGUiOiJEYXRhIiwKICAgICAgICAgICAgICAgICJudW1iZXIiOjEyMwogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOjIyMDEyMDEwMjAsCiAgICAgICAgICAgICAgICAidGl0bGUiOiLmlofku7YiLAogICAgICAgICAgICAgICAgIm51bWJlciI6MTI0CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6MjIwMTIwMTAyMSwKICAgICAgICAgICAgICAgICJ0aXRsZSI6IlNjYW5uZXIiLAogICAgICAgICAgICAgICAgIm51bWJlciI6MTI1CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6MjIwMTIwMTAyMiwKICAgICAgICAgICAgICAgICJ0aXRsZSI6IkF0dHJpYnV0ZVN0cmluZyIsCiAgICAgICAgICAgICAgICAibnVtYmVyIjoxMjYKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoyMjAxMjAxMDIzLAogICAgICAgICAgICAgICAgInRpdGxlIjoi6ZqP5py6IiwKICAgICAgICAgICAgICAgICJudW1iZXIiOjEyNwogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOjIyMDEyMDE5MTEsCiAgICAgICAgICAgICAgICAidGl0bGUiOiJVc2VyRGVmYXVsdHMiLAogICAgICAgICAgICAgICAgIm51bWJlciI6MTI4CiAgICAgICAgICAgIH0KICAgICAgICBdCiAgICB9LAogICAgewogICAgICAgICJuYW1lIjoi5qih5byPIiwKICAgICAgICAiaWQiOjIxMTEyMzEzNDAsCiAgICAgICAgImlzc3VlcyI6WwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOjIxMTEyMzEzNDIsCiAgICAgICAgICAgICAgICAidGl0bGUiOiLljZXkvosiLAogICAgICAgICAgICAgICAgIm51bWJlciI6NDgKICAgICAgICAgICAgfQogICAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICAgIm5hbWUiOiLns7vnu58iLAogICAgICAgICJpZCI6MjExMTIzMTM0MSwKICAgICAgICAiaXNzdWVzIjpbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6MjExMjEwMTA1NSwKICAgICAgICAgICAgICAgICJ0aXRsZSI6Iuezu+e7n+WIpOaWrSIsCiAgICAgICAgICAgICAgICAibnVtYmVyIjoxMDYKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoyMTExMjMxMzQ0LAogICAgICAgICAgICAgICAgInRpdGxlIjoi54mI5pys5YW85a65IiwKICAgICAgICAgICAgICAgICJudW1iZXIiOjQ5CiAgICAgICAgICAgIH0KICAgICAgICBdCiAgICB9LAogICAgewogICAgICAgICJuYW1lIjoiQ29kYWJsZSIsCiAgICAgICAgImlkIjoyMTExMjMxNDEzLAogICAgICAgICJpc3N1ZXMiOlsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoyMTExMjMxNDE0LAogICAgICAgICAgICAgICAgInRpdGxlIjoiSlNPTiDmsqHmnIkgaWQg5a2X5q61IiwKICAgICAgICAgICAgICAgICJudW1iZXIiOjUzCiAgICAgICAgICAgIH0KICAgICAgICBdCiAgICB9LAogICAgewogICAgICAgICJuYW1lIjoi572R57ucIiwKICAgICAgICAiaWQiOjIxMTEyNjE4NDUsCiAgICAgICAgImlzc3VlcyI6WwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOjIxMTEyNjE4NDYsCiAgICAgICAgICAgICAgICAidGl0bGUiOiLnvZHnu5znirbmgIHmo4Dmn6UiLAogICAgICAgICAgICAgICAgIm51bWJlciI6ODkKICAgICAgICAgICAgfQogICAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICAgIm5hbWUiOiLliqjnlLsiLAogICAgICAgICJpZCI6MjExMjAyMTUxOSwKICAgICAgICAiaXNzdWVzIjpbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6MjExMjAyMTUyMCwKICAgICAgICAgICAgICAgICJ0aXRsZSI6IuW4g+WxgOWKqOeUuyIsCiAgICAgICAgICAgICAgICAibnVtYmVyIjo5MwogICAgICAgICAgICB9CiAgICAgICAgXQogICAgfSwKICAgIHsKICAgICAgICAibmFtZSI6IuWuieWFqCIsCiAgICAgICAgImlkIjoyMjAxMjAxOTE0LAogICAgICAgICJpc3N1ZXMiOlsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjoyMjAxMjAxOTEyLAogICAgICAgICAgICAgICAgInRpdGxlIjoiS2V5Y2hhaW4iLAogICAgICAgICAgICAgICAgIm51bWJlciI6MTI5CiAgICAgICAgICAgIH0KICAgICAgICBdCiAgICB9LAogICAgewogICAgICAgICJuYW1lIjoi5bel56iLIiwKICAgICAgICAiaWQiOjIyMDEyMDE5MTUsCiAgICAgICAgImlzc3VlcyI6WwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOjIyMDEyMDE5MTMsCiAgICAgICAgICAgICAgICAidGl0bGUiOiLnqIvluo/lhaXlj6PngrkiLAogICAgICAgICAgICAgICAgIm51bWJlciI6MTMwCiAgICAgICAgICAgIH0KICAgICAgICBdCiAgICB9Cl0K
Swift 允许全局编写 Swift 代码,实际上 clang 会自动将代码包进一个模拟 C 的函数中。Swift 也能够指定入口点,比如 @UIApplicationMain 或 @NSApplicationMain,UIKit 启动后生命周期管理是 AppDelegate 和 SceneDelegate,《 [Understanding the iOS 13 Scene Delegate](https://www.donnywals.com/understanding-the-ios-13-scene-delegate/) 》这篇有详细介绍。 @UIApplicationMain 和 @NSApplicationMain 会自动生成入口点。这些入口点都是平台相关的,Swift 发展来看是多平台的,这样在 Swift 5.3...
使用方法: ```swift let d1 = Data("keyChain github token".utf8) let service = "access-token" let account = "github" let q1 = [ kSecValueData: d1, kSecClass: kSecClassGenericPassword, kSecAttrService: service, kSecAttrAccount: account ] as...
使用方法如下: ```swift enum UDKey { static let k1 = "token" } let ud = UserDefaults.standard ud.set("xxxxxx", forKey: UDKey.k1) let tk = ud.string(forKey: UDKey.k1) print(tk ?? "") ```
用法: ```swift let ri = Int.random(in: 0..
效果如下:  代码如下: ```swift var aStrs = [AttributedString]() var aStr1 = AttributedString(""" 标题 正文内容,具体查看链接。 这里摘出第一个重点,还要强调的内容。 """) // 标题 let title = aStr1.range(of: "标题") guard let title = title else {...