From b66977b33e1ee32d46270ea634f107ab04c51b28 Mon Sep 17 00:00:00 2001 From: Mccc <> Date: Fri, 6 Dec 2024 11:23:04 +0800 Subject: [PATCH] =?UTF-8?q?Revert=20"=E4=BF=AE=E5=A4=8DiOS12=E4=B8=8A?= =?UTF-8?q?=E7=9A=84encode=E9=97=AE=E9=A2=98"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 9ab82ed85ae88fd8e183166f2c57a0621fd616c7. --- Example/Podfile.lock | 4 +- .../Local Podspecs/SmartCodable.podspec.json | 4 +- Example/Pods/Manifest.lock | 4 +- Example/Pods/Pods.xcodeproj/project.pbxproj | 928 +++++++++--------- .../SmartCodable/SmartCodable-Info.plist | 2 +- SmartCodable.podspec | 2 +- .../Classes/JSONValue/JSONParser.swift | 21 +- .../Classes/JSONValue/JSONValue.swift | 22 +- .../Classes/JSONValue/JSONWriter.swift | 352 ------- 9 files changed, 488 insertions(+), 851 deletions(-) delete mode 100644 SmartCodable/Classes/JSONValue/JSONWriter.swift diff --git a/Example/Podfile.lock b/Example/Podfile.lock index d400c75..a0d5fcd 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -8,7 +8,7 @@ PODS: - FBSnapshotTestCase/SwiftSupport (2.1.4): - FBSnapshotTestCase/Core - HandyJSON (5.0.0-beta.1) - - SmartCodable (4.3.1) + - SmartCodable (4.3.0-beta) - SnapKit (5.6.0) DEPENDENCIES: @@ -39,7 +39,7 @@ SPEC CHECKSUMS: CleanJSON: 910a36465ce4829e264a902ccf6d1455fdd9f980 FBSnapshotTestCase: 094f9f314decbabe373b87cc339bea235a63e07a HandyJSON: 582477127ab3ab65bd2e471815f1a7b846856978 - SmartCodable: ff1dbe00d0b52644fb0cdc8e90258591a9dd1cf4 + SmartCodable: 8985750f1bb521bf7f94ab898260d77f4dc32f24 SnapKit: e01d52ebb8ddbc333eefe2132acf85c8227d9c25 PODFILE CHECKSUM: 7f3af03f81934df0c035518074a7abbec8fa9d3f diff --git a/Example/Pods/Local Podspecs/SmartCodable.podspec.json b/Example/Pods/Local Podspecs/SmartCodable.podspec.json index bd87f74..60562b3 100644 --- a/Example/Pods/Local Podspecs/SmartCodable.podspec.json +++ b/Example/Pods/Local Podspecs/SmartCodable.podspec.json @@ -1,6 +1,6 @@ { "name": "SmartCodable", - "version": "4.3.1", + "version": "4.3.0-beta", "summary": "数据解析库", "homepage": "https://github.com/intsig171", "license": { @@ -12,7 +12,7 @@ }, "source": { "git": "https://github.com/intsig171/SmartCodable.git", - "tag": "4.3.1" + "tag": "4.3.0-beta" }, "platforms": { "ios": "11.0", diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index d400c75..a0d5fcd 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -8,7 +8,7 @@ PODS: - FBSnapshotTestCase/SwiftSupport (2.1.4): - FBSnapshotTestCase/Core - HandyJSON (5.0.0-beta.1) - - SmartCodable (4.3.1) + - SmartCodable (4.3.0-beta) - SnapKit (5.6.0) DEPENDENCIES: @@ -39,7 +39,7 @@ SPEC CHECKSUMS: CleanJSON: 910a36465ce4829e264a902ccf6d1455fdd9f980 FBSnapshotTestCase: 094f9f314decbabe373b87cc339bea235a63e07a HandyJSON: 582477127ab3ab65bd2e471815f1a7b846856978 - SmartCodable: ff1dbe00d0b52644fb0cdc8e90258591a9dd1cf4 + SmartCodable: 8985750f1bb521bf7f94ab898260d77f4dc32f24 SnapKit: e01d52ebb8ddbc333eefe2132acf85c8227d9c25 PODFILE CHECKSUM: 7f3af03f81934df0c035518074a7abbec8fa9d3f diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index f13a7a3..f90e1f2 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -14,76 +14,69 @@ 04637C70546B34F93C3A1D79C3F78B37 /* ConstraintDirectionalInsetTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = C53C2DBE2FECF12DA6C33264A027EC82 /* ConstraintDirectionalInsetTarget.swift */; }; 046632AA5E3B8F69BCE2BB01F7B84015 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57221B54D014471C3D3E1925EFC917C8 /* Foundation.framework */; }; 047D3D772E8DDA418069EFA573B36BD2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57221B54D014471C3D3E1925EFC917C8 /* Foundation.framework */; }; + 048A142BB6811C52B689CED962272328 /* LogItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C6FD547CB3C95AA2B6C5BC4AA5729A5 /* LogItem.swift */; }; 0591132B5EA1BE4DDA268D8A9C3D0421 /* LayoutConstraint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46D532B60E5A862BAED6B9ED6A3A06F7 /* LayoutConstraint.swift */; }; + 0685F8722EB3B3A448A709E41F08AB03 /* JSONEncoderImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9224B4149A703E066CE617BE68BD5765 /* JSONEncoderImpl.swift */; }; 06E43B4751069B47B3BD4AFD936A57E3 /* ConstraintPriority.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B1648D17E6B6A33B54A7906BC560E10 /* ConstraintPriority.swift */; }; 0833E66E7F19849322305D67777B77DB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57221B54D014471C3D3E1925EFC917C8 /* Foundation.framework */; }; - 084D108D436DA6B6B8FC9850D2086443 /* JSONWriter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D17FD3037F7B3F7671B2BADE43B66ED /* JSONWriter.swift */; }; - 096895C4EDA8FEC03C183D335A05FB23 /* JSONDecoderImpl+UnkeyedContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 033B089F82DF64A6114E65701A9A84F8 /* JSONDecoderImpl+UnkeyedContainer.swift */; }; 0B994CDC79B1AD3A7BE62490D27C60C8 /* ConstraintAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3DD3A510DCBD287B46973C5625A7FB1 /* ConstraintAttributes.swift */; }; + 0BD9AEE7C63D79CB5D7C5DAFCA2B1702 /* URLTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = A96A9755F10AEE7996C2DF74B9525ABE /* URLTransformer.swift */; }; 0F4D0B7B522466B970AA826F57343EFF /* DataTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC6DB121D8A9523A91FDAB8376BE09FD /* DataTransform.swift */; }; 121A1E851C4ED624C40C631C653B12A6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57221B54D014471C3D3E1925EFC917C8 /* Foundation.framework */; }; 123E6BAD784E74477DC5B5CFF0272759 /* AnyExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDD07779AA8B42688ED0FF74BACC5AA5 /* AnyExtensions.swift */; }; - 12739744FC59B2BA3D42F8216EEAFC41 /* Patcher+Transformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA6A1B68AFC338B3960A84421346BA2D /* Patcher+Transformer.swift */; }; - 133567F004C78914FB5205F5CC1B82EB /* SmartAny.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84FC4A0D1797B5871ADD16231E807718 /* SmartAny.swift */; }; + 1454F1E3D583CB295E1685A741781F76 /* JSONDecoderImpl+UnkeyedContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 844CE6BE5F6DFD8D3B7C4109FBDF37B6 /* JSONDecoderImpl+UnkeyedContainer.swift */; }; + 16CE5D7DE4EA429B2A4FE4C212318F6F /* SmartCaseDefaultable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 487FC6D5FA076528735E6C72BF0F7B74 /* SmartCaseDefaultable.swift */; }; 17B9A1C9CB9555CF5C3D70318BD98BFF /* BTBubble+Check.swift in Sources */ = {isa = PBXBuildFile; fileRef = 319CD0A8663A00A572B4418C10FE8894 /* BTBubble+Check.swift */; }; 183D8B3E057B885EA7DF9A8CDCCE9029 /* ConstraintMakerRelatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD311A04C42FFDF8D95E30DC09B7EA57 /* ConstraintMakerRelatable.swift */; }; 19BB09AF94BD545E40C2766045BDDD77 /* ExtendCustomBasicType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63337F29437FD6A05DCA6E50C4DF6945 /* ExtendCustomBasicType.swift */; }; 1A78E1104DB6D444ECAF63AB362C8115 /* Pods-SmartCodable_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E3F09186EE217FC9713BA39404EB7B24 /* Pods-SmartCodable_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1AC68B5CEE2AA4031ADDA01B4BFF3BB4 /* SmartKeyEncodingStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA604F68E8CAFBA4F058C1D8BF0EE02B /* SmartKeyEncodingStrategy.swift */; }; 1B14ABB3EBE1CF1E69D4E393ADE3E9E4 /* OtherExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7D0C8FFA3D3F1791A00D06DA9FB06C3 /* OtherExtension.swift */; }; 1B8CE6509886B2FF237F5844B9C64C8B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57221B54D014471C3D3E1925EFC917C8 /* Foundation.framework */; }; 1BACCB396E184BBE1534DA7B2537578F /* CleanJSONDecodingStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF34C278263A81DD03B77202C061698C /* CleanJSONDecodingStorage.swift */; }; - 1EAECB45CD9E83E62502BF2591144CEC /* DecodingError+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB38ADB32279317EB92A679387A36525 /* DecodingError+Extension.swift */; }; 1F84FE646CD1D7BAFFB58C243277AFF8 /* FBSnapshotTestCase-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7FF03B8E2DF800F666228FD3C0F9026B /* FBSnapshotTestCase-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1FD44D39173AC5531698B93939083652 /* URLTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22A1467BB3437DC256E5EE84BF199E84 /* URLTransformer.swift */; }; - 2044A038DBC8E19B813A430EA6D9B437 /* Patcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = BED04CDF8E4E52D254C5C8F89E30867A /* Patcher.swift */; }; 20B4141230DED5149833C6554AFC8EFB /* _CleanJSONDecoder+SingleValueDecodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DAD6DAD58F97DC6978669ECC1DCB217 /* _CleanJSONDecoder+SingleValueDecodingContainer.swift */; }; 220D6AC9B1B1EC8EFFB204F9C1EAC842 /* ConstraintMakerEditable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B3CBC4CFD3D5E9ABDC56DDC685EACE4 /* ConstraintMakerEditable.swift */; }; - 22734961CD0BD3FD8CFB2F6C356692A2 /* SmartSentinel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1D10B851C16AD7C977E90C34FBBDFE6 /* SmartSentinel.swift */; }; - 228004488926895425CDF2103D9A9380 /* SmartCodable-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 89387D349D98F221987B21CD9FD2509E /* SmartCodable-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 2307EFF154B93A7CF3BBD066F9D2479E /* Pods-SmartCodable_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E5FA84A6FC991F1497F1DC0F7EA5CAD8 /* Pods-SmartCodable_Tests-dummy.m */; }; - 23AAE2971CCC74E794AF2328EB65D836 /* JSONValue+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1EAB14035730D31B3EB58074287E4FC /* JSONValue+Extension.swift */; }; 24658CFD39BCB4586D56C427F8EA751D /* BuiltInBasicType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B6822011E346FDFA44C5A0CAB94482 /* BuiltInBasicType.swift */; }; - 24E70C36A7CB4CA5D9B6CB677F2D2728 /* JSONParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5966D17C006F5D41D102BE6BD83B178F /* JSONParser.swift */; }; 256558233B40ACA6818F143BBC5B8017 /* ConstraintViewDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = C958AC7215CB092EEC6FA33BD843AC29 /* ConstraintViewDSL.swift */; }; - 26564EBB9846B2FE850A0F62E775C8A8 /* JSONDecoderImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B89EA598C9073DF9F5DFA0ED4B1B48E /* JSONDecoderImpl.swift */; }; - 272DE28669A14695C4061276553DB045 /* SmartFlat.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76EE4E69006CE4D7E200C678B0FB3B9F /* SmartFlat.swift */; }; + 2634ED6D3DF68947E294EB5ABF954CD9 /* SmartDecodable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C65519E4A56E0CFE8B8EB8F77A80D8E /* SmartDecodable.swift */; }; 2878735FE61E1EEB4C493A8B8ED3DCAC /* EnumType.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC81D310210EE3584DF75E7C318F9318 /* EnumType.swift */; }; 2975A09730FD83DC0897129A11EA6585 /* SwiftSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 992A16CABA4C83CBEACADDABDE5021A8 /* SwiftSupport.swift */; }; - 2A142EAB062756F8F9CC1FE71B9610CA /* SafeDictionary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A8C0616AA7CF9108EACC820D024F465 /* SafeDictionary.swift */; }; 2B88C28DD20CBFA7B3AEB21A365197FE /* FBSnapshotTestController.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A29F6A0D45AF40A67824A0487C3A989 /* FBSnapshotTestController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2C716E5DC995E513D1022CA43394B285 /* Transformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE1EDB44EA74271C582EFDD9ED5046CE /* Transformer.swift */; }; + 2BABA99C97522114682D00B4B9CE2084 /* SmartJSONDecoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = C38D95DDE8138760A794FC6F454C5C8D /* SmartJSONDecoder.swift */; }; 2CB61F6FA511CAACB43A50DC3A82E0DD /* UIImage+Snapshot.m in Sources */ = {isa = PBXBuildFile; fileRef = 02B734C740F66C4CA7D3E58A2E3A71ED /* UIImage+Snapshot.m */; }; + 2E048B2C14492BBCF05F92B565FE8ED1 /* SmartCodable-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C12B7783A29EB07C2AE0513F4BC5793A /* SmartCodable-dummy.m */; }; 2ECCAC52EF4C74E1032E0BC646BBE5B9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57221B54D014471C3D3E1925EFC917C8 /* Foundation.framework */; }; - 2FAEC6A1B5A4C5237BB74BF75A8E5D61 /* SmartCodable-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 155A73EF92236991ADC77A86DC2B0216 /* SmartCodable-dummy.m */; }; 302638AD965D971A268A2114F7742607 /* CleanJSONUnkeyedDecodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39B2DBA2FFE481C74723D3D77C1C4151 /* CleanJSONUnkeyedDecodingContainer.swift */; }; 309C54EC9536180B960B9CB8EBD412E3 /* CustomDateFormatTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADDD58F0A7F5CBCD84256A572196E486 /* CustomDateFormatTransform.swift */; }; 30D475DF57C0C682A723231E7BCA0D14 /* FBSnapshotTestCasePlatform.m in Sources */ = {isa = PBXBuildFile; fileRef = B3CC75B7FCBD0A88F04962B84E46D054 /* FBSnapshotTestCasePlatform.m */; }; - 30D545828F37EA7B66B79AE86D507584 /* KeysMapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FCE53EF9EAA518B97A59677EAD6A5D2 /* KeysMapper.swift */; }; 31BBDE6D8EF669C30F5140D8058DCC76 /* CleanDecoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8F06552F963B43848600AFDC8043A19 /* CleanDecoder.swift */; }; 33BC540DE351661FAAA24950E165D4F1 /* MangledName.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B6AE0B9AEB52789C2BA9C70151E337A /* MangledName.swift */; }; - 35B1FBE57595C1A531B1D9FE909C4CC0 /* SmartDecodable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51B6C23C5815A8FBF8C6BFFB3BBF3AEA /* SmartDecodable.swift */; }; 361EA7ABBDD80F154DDC208D9CE920DD /* Deserializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E274A3EAC25DB6D5C25C3CBB604248B /* Deserializer.swift */; }; 3660B4F629053ABC3C1DF69366770289 /* ConstraintConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 077FF679DE0A788D695D32FCF72B1002 /* ConstraintConfig.swift */; }; - 36F46ABAAE95639A59E2D068CDB1C3E2 /* DateTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3477ED37FA2B23796E558133A3A6C34B /* DateTransformer.swift */; }; 373413256658309F9053CE22BF62077E /* UIImage+Snapshot.h in Headers */ = {isa = PBXBuildFile; fileRef = 60B0F726C42000735EC1B76226554746 /* UIImage+Snapshot.h */; settings = {ATTRIBUTES = (Private, ); }; }; 380F4FCB4A16A8BEE8C65EDDA025FEF3 /* _CleanJSONDecoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07ADF3C4B3DE46FA90A67725C575E757 /* _CleanJSONDecoder.swift */; }; 38B9D58E94D9C1CECD7E381C64A2329D /* UILayoutSupport+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F3C77A10532266D4C2017D4C5657D22 /* UILayoutSupport+Extensions.swift */; }; 3A030CA5A4DD41F59802F907A93F85DF /* HexColorTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36F93E9634821D816540140F7E1D6199 /* HexColorTransform.swift */; }; 3C53583CB1A5F4926491D8838F580074 /* BuiltInBridgeType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E920302DBA2124AFF869243E5CB6351 /* BuiltInBridgeType.swift */; }; + 3DFC7BD447865207753DCC11D7F7BFF6 /* Transformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EED235A212030C1289F685C29DBCA61 /* Transformer.swift */; }; + 3E7B38BCF992DC94140675B009003976 /* IgnoredKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4430D68D17A83EF9562C78A764F38698 /* IgnoredKey.swift */; }; 409FF499AEF8324ABFBA13C7A68D6349 /* BTBubble-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CAE8816531C7030F85857D829CF295C /* BTBubble-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 415DDC5AE04100F3017B28479985416B /* SafeDictionary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C2EBBA575674203681CA88681245D9C /* SafeDictionary.swift */; }; + 4291B84DF980A7F858C9250E361E1152 /* SmartEncodable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84D5B1A2555C2CD23DAEC7D114D2DCFE /* SmartEncodable.swift */; }; 42B6ACFCF650183030867CB3EF345E95 /* ConstraintMakerFinalizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB1035777F9D0FAD25F91B78CF571685 /* ConstraintMakerFinalizable.swift */; }; - 4637B829C0624EB76090FBF856E0C251 /* DecodingCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = D87779293C433C7E825B558FDE7CE54B /* DecodingCache.swift */; }; + 445EFD6A22E692ABA432D43356CDE89C /* DecodingError+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B9F506FCA48840DE6105539D99F1F51 /* DecodingError+Extension.swift */; }; 46BD19D7708E8AAA015506480ED796A5 /* BTPrint-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 926AFEC77F93BCAD652BB781C5D0AA8C /* BTPrint-dummy.m */; }; + 4AB4B731721A260628ADC7B258C9C9E1 /* JSONUnkeyedEncodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C91E3DAF9B4402C695FD80133DBB4D66 /* JSONUnkeyedEncodingContainer.swift */; }; 4BAD99B7394E225CEDBF94B8100BCC7F /* ConstraintRelation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 464FF18D590547BE7F4826907AFFE76D /* ConstraintRelation.swift */; }; - 4BFBCDFC9FF6D5CAED9A41ED84387A72 /* _SpecialTreatmentEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5162CB4F98F37A87A97125818F24512B /* _SpecialTreatmentEncoder.swift */; }; + 4CB7048A9A2EA5FAD1FB795619DBBC51 /* JSONValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52D276E5158A902D530CD64A969DEFE2 /* JSONValue.swift */; }; 4D9E3A4C588EA10E1B072DD95DF150E9 /* CleanJSON-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A370EE4D019ADFE65F2DC1FF9EDBA187 /* CleanJSON-dummy.m */; }; 4DA72FD7F1FB2C0449EDEF4B8A579807 /* ConstraintPriorityTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DBF99060B70E1B6830A780BA2524ADA /* ConstraintPriorityTarget.swift */; }; - 52F24A4FE94FBB51CDCE602561D46CAD /* LogCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D6904C04048BD3A2E9B80921993462F /* LogCache.swift */; }; + 5331E2D70D195DFA810B049A2E681613 /* DateTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1018291528DE7C221F8A61E3F4F2C281 /* DateTransformer.swift */; }; 5380454C48A12A6E376122ABD8096968 /* ConstraintDescription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7570803E9622B6523B3325B01B79E44B /* ConstraintDescription.swift */; }; - 547E7EF1A3DA3E561B4FEF7510CF9E41 /* JSONUnkeyedEncodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DF5CA96052CFD49E37C8F3895D6F622 /* JSONUnkeyedEncodingContainer.swift */; }; 5558B876B579BC1E79BD3D2B19148329 /* UIApplication+StrictKeyWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 233DAEDE45A5CF0A47B6462C8C9F92B4 /* UIApplication+StrictKeyWindow.h */; settings = {ATTRIBUTES = (Project, ); }; }; 55E51F45F1E157D3B4942BA7252C277E /* ConstraintRelatableTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1F4D4D87CBE3DA68AFC92D6F05636AF /* ConstraintRelatableTarget.swift */; }; + 56200A90E4D2621498A1D3B1DF2E2554 /* SmartPublished.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63B7AF1541DDEE29148AD4B96C157537 /* SmartPublished.swift */; }; 56A72F6D13D930C4A2568F24DEA33C8D /* ConstraintLayoutSupportDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F043A0A52D038042BE4B2E250F39C46 /* ConstraintLayoutSupportDSL.swift */; }; 56AC6DC6459AE47E7BC4AF06E5B148D2 /* ConstraintDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDEF3ACF04599EB1C214870D993C7153 /* ConstraintDSL.swift */; }; 56CAC06DB79E51F4ED416927D57C79A9 /* Measuable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D0C0E237F70C307DF23B940F50265F5 /* Measuable.swift */; }; @@ -97,48 +90,48 @@ 604D3C93C17978C23600EC415949AB64 /* ConstraintInsets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45DCF5151BEFE9D3018AFB99FE8F580F /* ConstraintInsets.swift */; }; 611CEF7FF1EF9EA1BCEF6C73EEE3ACCF /* ConstraintLayoutGuide.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70E88BDB3FDACE8F2B23F3247435107D /* ConstraintLayoutGuide.swift */; }; 61FCA0616CE6512DCA67D74562D6EA1D /* ReflectionHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = BAF69AF530FDB1A1819B8E00A3E4775A /* ReflectionHelper.swift */; }; - 625BCE2D53B6D00C37936C5CBBD36756 /* Cachable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C32DA472567097CA63E2CA9BC25E631E /* Cachable.swift */; }; - 625FFD4EE6C8565BDBC5A6F8C5739169 /* SmartColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC3140C5434B756320ACCE19D3051A73 /* SmartColor.swift */; }; + 627A98068E27FF3D5E78844516515AF1 /* JSONSingleValueEncodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0F450922780708B9541AD6A7A61410D /* JSONSingleValueEncodingContainer.swift */; }; 62C1A489E5C6414819815F3219B52FE8 /* URLTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 510325960A63C34B69B7173F76A69109 /* URLTransform.swift */; }; + 630DE6C3E85E7C565A7F0672300DB832 /* SmartSentinel.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFDFCFA070C53E5A4173B347FFB68911 /* SmartSentinel.swift */; }; 640CCE9C3A28AA3CA15510899F9140EE /* FBSnapshotTestCasePlatform.h in Headers */ = {isa = PBXBuildFile; fileRef = 87EF2DCAFAACA539DB4A58A75FC36303 /* FBSnapshotTestCasePlatform.h */; settings = {ATTRIBUTES = (Public, ); }; }; 67F1963AA7C9EDB78127AD5F566A4949 /* UIImage+Diff.h in Headers */ = {isa = PBXBuildFile; fileRef = D283527F80A00FBB2FF5776A4E3B27B2 /* UIImage+Diff.h */; settings = {ATTRIBUTES = (Private, ); }; }; 69DE75BA185BBAB5FDAA28321F3C849F /* ConstraintItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05DE8DDCC94E79120DAB11B9DBD24069 /* ConstraintItem.swift */; }; 6AC1B881BB319C89AD023A02CDC8FC3D /* ConstraintLayoutGuide+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5EE456287EB50E4B04F1A29EC19043B7 /* ConstraintLayoutGuide+Extensions.swift */; }; - 6C9770046E286AAE509F083D3B85B242 /* JSONSingleValueEncodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 918C2952B3A694AE4780A2882FEA5586 /* JSONSingleValueEncodingContainer.swift */; }; - 6CD576650BDAAA2F955471CA78716F92 /* SmartKeyDecodingStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66E2E2E4EE758586AE4B5283593B9331 /* SmartKeyDecodingStrategy.swift */; }; 6EAC8B6FA2D115DE708A58C601DD25E1 /* Constraint.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD91016CD3E4DB108E6B6B782539B2EC /* Constraint.swift */; }; - 722018FBCA9686E3ADF34FC41A73501F /* IgnoredKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = B661229FD9971281B1CE417B935DFD7E /* IgnoredKey.swift */; }; 731D27FC388519A4D24B52D2A29E11C8 /* Defaultable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 541A55046863031E15A9FA69EA99FE8E /* Defaultable.swift */; }; 74339C58AC4E5631FB8C0E662668A796 /* UIApplication+StrictKeyWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 87C56FECBDEE19803E1748DE1C16FBBA /* UIApplication+StrictKeyWindow.m */; }; 75A9C102F3A707CD1C58A32620CB97FB /* PrintFormat.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F9222551C78E09BFE29291610498A56 /* PrintFormat.swift */; }; - 763F83E0CA344D57980186AD3E5DBA54 /* JSONDecoderImpl+Unwrap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 523470A4D595E1EC59C815C53DC9CF01 /* JSONDecoderImpl+Unwrap.swift */; }; 78079FE3271F118CE83CFD8D5E4F8C21 /* TransformOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 746BABF0910774EB502DC3C4F232413D /* TransformOf.swift */; }; - 794D9199F34D382CF8CC6AB58B68C34B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57221B54D014471C3D3E1925EFC917C8 /* Foundation.framework */; }; 798C7D29511D498BDB7BEC4996708557 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7CB9011E862E377A63B0CA2058DCEB78 /* Configuration.swift */; }; 79C7D4E9901AA11C25F8C71F3E9DF612 /* Properties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0600D0B09DB5802D6B378850043ADD4D /* Properties.swift */; }; 79FCA569BCE23251EE345047D3A15EFB /* BTBubble+Draw.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8396A1DCA6FC67A7830D34F6F815289 /* BTBubble+Draw.swift */; }; 7AD2DE331157EFDE3B334048A5509E27 /* DecodingStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D804957148656B5405037FC4821F4DB /* DecodingStrategy.swift */; }; + 7C20CB4D32598EB8DC1CA32148EDC95B /* DataTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 964680D0DEB411E48560E6EA1308BBA1 /* DataTransformer.swift */; }; + 7C301F44CEAE3DE97B05A3D78AA83214 /* SmartAnyImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3C4F0FDD9321196F06FE0753028108F /* SmartAnyImpl.swift */; }; 7C67CBD15D9B5D0B7769B2F469478332 /* FBSnapshotTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = A11B531AF457EC4F99F06F115FDE0A45 /* FBSnapshotTestCase.m */; }; 7D9031DCB898CD9DE37C4BD4F3FC550D /* DateFormatterTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76F616A528D452098E003EDF888C54AC /* DateFormatterTransform.swift */; }; - 80B4C95EF35DBFB5D289EB6AD5D50457 /* EncodingCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBBDAE9601B839AB060BEFF788396B73 /* EncodingCache.swift */; }; + 807DC47184212EBBC7DA925026A86084 /* Patcher+Provider.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF57ABBF4AB784C9B328BD21A139C898 /* Patcher+Provider.swift */; }; + 815872EF86A5ECCD7A10F8A2F8F214FD /* SmartFlat.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9108626D433AB91CD2BBD227F0F5F101 /* SmartFlat.swift */; }; 846C97A8C420EFD9B8C4B77ADBB1E8F5 /* TransformType.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20ABA9C7B9C59A9D3A5EA7AB0215871 /* TransformType.swift */; }; + 84DE1F68AAD7608B90F722CDBA89C07C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57221B54D014471C3D3E1925EFC917C8 /* Foundation.framework */; }; 85913D5AC8449037C282EB84450592A1 /* CleanJSON-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C6D3430E32742C8A84D354226C873C6C /* CleanJSON-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 860335F9B4688E4C83AF27F4FCB910DF /* SmartUpdater.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4C481481BBE5337413ADE45E4580A7D /* SmartUpdater.swift */; }; 875A310EAF4D0C136C3FFFF5E0335BE4 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DA24A38BA9EE106B59E3D4C8DD1CE0E /* UIKit.framework */; }; - 87667AFE08FFF33269FB42AB4C37C45A /* LogItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40491AB375AEFF3B509F69415E9A44EF /* LogItem.swift */; }; 884DB7B8E20C199509BC5B9A17263113 /* BTBubble.swift in Sources */ = {isa = PBXBuildFile; fileRef = F09645CD0AE835FD6F2CC1C70F2768E6 /* BTBubble.swift */; }; + 8875A9F58001358AB91DF5544679328F /* JSONValue+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BD411298870436EF9D3DC204D3FD6AD /* JSONValue+Extension.swift */; }; + 88FD73CBB2F531EB71CDFD426DA4C761 /* Patcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45EBDB386C01C541AF2451CE917CDEDB /* Patcher.swift */; }; 8AE19756F0126FE92AF625E36F3D70FE /* UIImage+Compare.h in Headers */ = {isa = PBXBuildFile; fileRef = 60E0A4F5EA0780653EDE0A8F48FE2B14 /* UIImage+Compare.h */; settings = {ATTRIBUTES = (Private, ); }; }; 8B85D89911D50E1DEAF25D920B6F3C5F /* Pods-SmartCodable_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AB62CDC1D9A84669428234D73C264AF /* Pods-SmartCodable_Example-dummy.m */; }; 8C3394695CB4CCECD873D1384F4BA076 /* Export.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32B376CE8FE7B39265B74DCF06C524D2 /* Export.swift */; }; 8CD5DE204C3C5F6557878ADE2675A406 /* HelpingMapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4749570A46F497B425767CB4569ADF9 /* HelpingMapper.swift */; }; 8D72B695C7EF0186A0C0F1A18F944880 /* PropertyInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DCC7F0112605A85E8861B6A4E92D154 /* PropertyInfo.swift */; }; 8E181742809C6F03AE51D0F6E52E57DA /* BTPrint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68F996F21CE4381BFEAC8BDD8BC5E788 /* BTPrint.swift */; }; - 8E6A5365FE174B1F2298C6C99994CCF3 /* SmartUpdater.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF95E63E94508D503EF91C3979E7E53F /* SmartUpdater.swift */; }; - 8F39A7CA6AE3156496336936A24EC65C /* JSONKeyedEncodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F026D009D5A16B0EB96E9D9640B14F5 /* JSONKeyedEncodingContainer.swift */; }; 90087A9E35991CBA33825140C0A58757 /* CleanJSONKeyedDecodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DFBE39A8F2F3352B5AB28C6FFC990E7 /* CleanJSONKeyedDecodingContainer.swift */; }; 92CC91D4B6AF0B3E18068CCFBE36A3B7 /* BubbleTools.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE7E7A774098C77B700C918B4B303354 /* BubbleTools.swift */; }; 95E194A3AABB5407231E898B6686F73E /* ConstraintMakerRelatable+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC6BD8F9EB57322C72A42B7031485790 /* ConstraintMakerRelatable+Extensions.swift */; }; 96D8402B4AFC4AC7349F1B487D6EB08C /* Transformable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2852BF0E7B62CAF6AB4E994FD9DFF2DF /* Transformable.swift */; }; 98F570DA48370453D648BD526FDAAEAA /* LayoutConstraintItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D20FD964253D6C1E0040497B2CA5505E /* LayoutConstraintItem.swift */; }; + 9977413756D662A41D937690F2D6800F /* SmartCodable-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 178A9D186E98578941FE9B0BE84B475B /* SmartCodable-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9A6CCC7BCACBE8218126670E6B08EF9E /* BTPrint-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6226D5547537E7D1F86B312E2F57D4F0 /* BTPrint-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9C9548E8B4675954566202F7B87FF0E6 /* ConstraintConstantTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D588A73906F98B13FC731364A9247E2 /* ConstraintConstantTarget.swift */; }; 9D3C5E2F56838937146191468A893244 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E658F388F01C72599CA75537950B6095 /* XCTest.framework */; }; @@ -146,118 +139,124 @@ A03FDA8BC5741880B1EF11AFD248EF48 /* ConstraintOffsetTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFC3023119381C8AA8F1A4F4106F012A /* ConstraintOffsetTarget.swift */; }; A0BCC2B78BCA27EFAE901B4406942557 /* BTBubble-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A77DB2179984C4C073E5FC6BDCD19B77 /* BTBubble-dummy.m */; }; A0E5EC9E431A5BD01C4695BC6AE5DEDA /* ExtendCustomModelType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1287F892FF63395DDABB49A2F8C39A3B /* ExtendCustomModelType.swift */; }; + A184A6AD8E943ECDBD61BC42D030F77C /* JSONFuture.swift in Sources */ = {isa = PBXBuildFile; fileRef = 635DFDD78D3B48C16095B4A1042B13B8 /* JSONFuture.swift */; }; A2D6CC53EF61C755B77BBFF31B1F0E76 /* _CleanJSONDecoder+Decode.swift in Sources */ = {isa = PBXBuildFile; fileRef = A247AF8B486EBFFB5B5CED8A27FD6D94 /* _CleanJSONDecoder+Decode.swift */; }; - A3BEE29906485EEC224CA2EDD7978E8E /* DataTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC6B0D49BFFE1F673DE0D499AAE0FAB8 /* DataTransformer.swift */; }; A3E3AB7C765C21AE17B1E6EE6560040C /* SnapKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 96FC33890F5B9F948392563B47A573A0 /* SnapKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5834081BBDEA433F6B4BD8F0EE47317 /* ColorTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0B31F796B3F901D513B0DB1DC7CAF6F /* ColorTransformer.swift */; }; A5A8BF973BFE9C9304372A26C9F2E35B /* ConstraintMakerExtendable.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCBDA27A176AE2D1C34BA797339DE8BB /* ConstraintMakerExtendable.swift */; }; A5E849B00E179FB98F3A2CC91378245A /* DecodingError+CleanJSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9E5E84322D1072C445D51381EACDD7D /* DecodingError+CleanJSON.swift */; }; A674A2F3F5F0304A6524F702EA301B42 /* NSDecimalNumberTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD9C9CD93F7F692FE8121F7F78EE6DB8 /* NSDecimalNumberTransform.swift */; }; - A68A20041E0B60BE013798F925C550DC /* JSONDecoderImpl+SingleValueContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21AFA09203500AA39D2945046B979684 /* JSONDecoderImpl+SingleValueContainer.swift */; }; - A857817A062B32AC1E7D7AA326F18698 /* JSONFuture.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C555E5FE2484861474AE2FFD550D743 /* JSONFuture.swift */; }; - A9C8C93A116E426D989EB9C8609ECA61 /* JSONValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CDA7F82D0712E740E87005101153854 /* JSONValue.swift */; }; + A790758FAC80FA22D4BD03A8AF178951 /* SmartAny.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51B6C75F066FAA243895E9E3EB08B73C /* SmartAny.swift */; }; + A8605588EEF7472EF69BD4F81CE77D36 /* JSONKeyedEncodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C5F3E466D53DA58B6D49CA02369F254 /* JSONKeyedEncodingContainer.swift */; }; AA75627FBC8A28CB9F9E26CDE0062EFE /* Pods-SmartCodable_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6021C11E2C3E5FCDE30179E13E0E6452 /* Pods-SmartCodable_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AE94F4B2F792512272162C24C5CAD91E /* SmartAnyImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81B7D92956C46531487C540A5F209EAD /* SmartAnyImpl.swift */; }; + AD1EE7CC87C93332F5AD48923095813A /* _SpecialTreatmentEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BC595ECE107D44C6F4BF5ED399C4ADD /* _SpecialTreatmentEncoder.swift */; }; + AF112BDAC0882286832B70F2127E766C /* SmartCodable.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABE3271B97866AF6F870A5691943FC80 /* SmartCodable.swift */; }; B03B5579590D528CBA6D11FF638BC2AF /* Typealiases.swift in Sources */ = {isa = PBXBuildFile; fileRef = F324FE66E2BF9B4B5B507729C64FD069 /* Typealiases.swift */; }; - B145A4BEE40ECF8AF2C74C5F0586508B /* SmartJSONDecoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03664B53C0720F6FFC0D5517C0EF4798 /* SmartJSONDecoder.swift */; }; + B1A8F29247E0835CE3960D8B3D97DDC3 /* DecodingCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2A1EB64C98AA612AC7B0026CEA1E2A2 /* DecodingCache.swift */; }; + B3EB24F8E7B4FA97AA788233F48B6583 /* SmartJSONEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F18B3DF5DD02DF9D600AA829350ABCD /* SmartJSONEncoder.swift */; }; B43017FEC99D227D4CDD81DD2C27D9D9 /* ConstraintMakerPrioritizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EEAE2746CE46B4119A1EF4CB96853D4 /* ConstraintMakerPrioritizable.swift */; }; B52281F9F4340D4FC8ABB2FEB1FEC08E /* UIImage+Compare.m in Sources */ = {isa = PBXBuildFile; fileRef = C5688C4B8AAD0B0302EE6D8567AB0A03 /* UIImage+Compare.m */; }; + B54C0572EE09642087E444002BE3D7AE /* JSONDecoderImpl+KeyedContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A81CF3734C4F53838DA3AD603D13CA4 /* JSONDecoderImpl+KeyedContainer.swift */; }; B752F7C4BECB65894B1F49421049CE5F /* ConstraintView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFE40591DCBDB38549AD0FC756F3D616 /* ConstraintView.swift */; }; - BAB010FC049E014E07E4CBEDC2BF6396 /* SmartCodable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B05B4814F0678A05723C5F3155738B5 /* SmartCodable.swift */; }; + B88BD92288725C25C9069BE8483D35CD /* JSONDecoderImpl+SingleValueContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = E76975EB5B6D60E7201DA4513EA01251 /* JSONDecoderImpl+SingleValueContainer.swift */; }; BD47CB74CD9B2B4D2D942C9B65748DFB /* SnapKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 89305DC7AA8CF17C4DFF5582FDC4E381 /* SnapKit-dummy.m */; }; BD90F922C39E6EAEAD85EBD1F2363841 /* CodingKeysConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CDB55010FADC798A0E3768269292E5E /* CodingKeysConverter.swift */; }; BE432D00488E08C853DC689BE24C54F4 /* HandyJSON-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 26D82883F952766DDE67EB5398B66E76 /* HandyJSON-dummy.m */; }; - C0BBCC0CE9293DD2DD5682133AA2A1E9 /* LogContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = A73FCF3B5891253C6478A3D12CFDBE68 /* LogContainer.swift */; }; + BE4F7F3741230D0A5FB159CCC14536ED /* LogContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 199D025B9E1D1BEFD83DBCBF7BA20271 /* LogContainer.swift */; }; + C128BF84CECF246BF175DFC04C67A320 /* JSONParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 794428B9BFA06BC14B1F0E6535503210 /* JSONParser.swift */; }; + C23D870B9EDED2D187ADEB45C01C01DE /* SmartKeyEncodingStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB93516B5FEE2673DD4112C4C19269ED /* SmartKeyEncodingStrategy.swift */; }; + C303E4394549FED7AB7D44811C8C6F0E /* JSONDecoderImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A6ECDF95AF98721811CDB5260DE2F5C /* JSONDecoderImpl.swift */; }; C390C6005353FB986CB52F474CEF8588 /* FBSnapshotTestController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2CAD959505600831AE1B1760854D7178 /* FBSnapshotTestController.m */; }; C586DC95274CF5AABAD935AF549A8FB6 /* BTBubble+Location.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4475151C4A7FB0660C3CDE88C6863EEF /* BTBubble+Location.swift */; }; + C6020B099DB841D2B8D0AE2B63F111FE /* KeysMapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BD341AD5435F669B3FF16E1BE1CFE3E /* KeysMapper.swift */; }; C920144CE195D2198DAE63F2D976AADB /* HandyJSON-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 91D961BD3D7E5A4FD5EFC37B4EF49FD4 /* HandyJSON-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; C9F76407497DF0205D7460B36D22259F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3280BB5E7B57C31D41117A74F76E9DF3 /* QuartzCore.framework */; }; CA54C09A12400567AFFCB407EEB7E154 /* UIImage+Diff.m in Sources */ = {isa = PBXBuildFile; fileRef = 209CC75BF3B9E4EF12E2CCE8787F9095 /* UIImage+Diff.m */; }; CCCEE128C2F395CE7E3A13D343BC350B /* BTBubble+Animation.swift in Sources */ = {isa = PBXBuildFile; fileRef = C236F0CDFBBFF56E8E482E41A943E19E /* BTBubble+Animation.swift */; }; + CE905030CDD70D14B12169FBE0B07273 /* EncodingCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = D82F7F4161783431D206633B0570363A /* EncodingCache.swift */; }; CF7FAB0C5D474E379798F82E5DB4092B /* ContextDescriptorType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 796F5B9A676DF8041A953891F97BCA27 /* ContextDescriptorType.swift */; }; - DC892CA883C95756F98303007C57671D /* SmartJSONEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD248237346D4A9D1139F45B1056DAB /* SmartJSONEncoder.swift */; }; - DD4BA93D7BDF0219D80EC1EC40CCB596 /* SmartEncodable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09C78679325D24757653EA095F9DB066 /* SmartEncodable.swift */; }; + D028BE5D10696D2B2D97278E5C1E48F4 /* Cachable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68BAB753E2517C4180ACA27A811BE345 /* Cachable.swift */; }; + D7F34A490D99947186A2786FC5795A2C /* JSONDecoderImpl+Unwrap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D8974A6896BAEC05098DF2E66F51C2B /* JSONDecoderImpl+Unwrap.swift */; }; DE13D920EE02866495C19B6484C998DD /* BTBubbleConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 666C02C1B42B0868B4A816FBD07E22A6 /* BTBubbleConfig.swift */; }; DF493E247E463CAC344C15784C9EF5AC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57221B54D014471C3D3E1925EFC917C8 /* Foundation.framework */; }; E2EF09A2D0A87418F0628B2CFAD304D8 /* Metadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F1BBC050B82F2DBD3175EBCDBBAE1B6 /* Metadata.swift */; }; E7035A074129575E62A0136DD93D8E8F /* DateTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0FD0E02013F60456068DC82258C06AB1 /* DateTransform.swift */; }; E710A550162879CE918FC411CF567789 /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0965E60C4A8A6CB4CDB3FD2D5BF45433 /* Logger.swift */; }; - E83892BC498D15C301F3B3F425EEE241 /* SmartCaseDefaultable.swift in Sources */ = {isa = PBXBuildFile; fileRef = F85798E73883C3CB4ECFB41C332B52D1 /* SmartCaseDefaultable.swift */; }; E98DC8FB2578E76A812E0C94BA10E1B1 /* ConstraintDirectionalInsets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3803A342F79D0DBAEE0150E93A6B807B /* ConstraintDirectionalInsets.swift */; }; - EAFD5AC0DCF7826F96EE1ADA4878A295 /* SmartPublished.swift in Sources */ = {isa = PBXBuildFile; fileRef = E94AB5721847B230B33159C24B210CCB /* SmartPublished.swift */; }; ED71E932B7F30AD7CFD2A04968A2B5CC /* CBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 390DC8D2A8DB0DAB9CA70268C2F74AF4 /* CBridge.swift */; }; - EE61BB32D52007F8284773F7F7030A5C /* Patcher+Provider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07AA2986E59211D6FA2AC4D35D2A58EB /* Patcher+Provider.swift */; }; - EE73660F1E3072480E2C323EC4E60345 /* JSONDecoderImpl+KeyedContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 218A6785E745A0A71499860909D719E6 /* JSONDecoderImpl+KeyedContainer.swift */; }; + EE76195610D0B486934862F1B583A9A5 /* SmartKeyDecodingStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 745CCCC5179D7780155B11928DF9F880 /* SmartKeyDecodingStrategy.swift */; }; EEFF0A57765CB734CF01868904F56DA7 /* HandyJSON.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D31C1D12C0D9C516CE738486208A159 /* HandyJSON.h */; settings = {ATTRIBUTES = (Public, ); }; }; EF21586EC3DFF6097A58EEC87376A0C1 /* ConstraintLayoutGuideDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1245F46A35053D954B8985EFAFD068D7 /* ConstraintLayoutGuideDSL.swift */; }; F16D0BB1231D60CBF7B3AE25B92D0D74 /* EnumTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = C30DC42DFE9E9BEB719E4821761599C5 /* EnumTransform.swift */; }; + F21D876FE0E83818A9399C8D8FEE164A /* SmartColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1F2541C89A68637C51EDA21FBB5F44E /* SmartColor.swift */; }; F47FA5DC0D1BD01F21FEE05C02A165AD /* _CleanJSONDecoder+Unbox.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7BBDFD017622786401A39F6BD9686C8 /* _CleanJSONDecoder+Unbox.swift */; }; - F4EFFA3F4E60CDDFCFF6C1E8CB029BC0 /* JSONEncoderImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1BB33412B7E1A67F04BF3D69CA89652 /* JSONEncoderImpl.swift */; }; F7425A58E24926CCAC413F85D403B9FA /* FieldDescriptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ACD8767AB4E2B782160808FED94FADE /* FieldDescriptor.swift */; }; + F78659B8EF4ED63CBAFF926ACB79A252 /* LogCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3DC631E699AA29550F778204DEC0C81 /* LogCache.swift */; }; F7C0960CEEB8F0C18F4503B405EAC08F /* ConstraintMultiplierTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 551BC954C9673D937C2CA52B935158E1 /* ConstraintMultiplierTarget.swift */; }; F953AA9104BFE0C2DAD639EA60104A75 /* ConstraintView+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59BB800622705BC689D002AFE6C24643 /* ConstraintView+Extensions.swift */; }; F98E3202B0021DC8B2DB77256FBE5DD3 /* ISO8601DateTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = C57A6E8C38153E40B8497C02204DF7F4 /* ISO8601DateTransform.swift */; }; FAB03959C2357E325B19E08BC4775DAB /* ConstraintMaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A4757260F219342EC59610827085045 /* ConstraintMaker.swift */; }; + FB6786719995F4DAF7A0860BE19EA3AE /* ColorTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83DEE370AC60A6033C9847F779C346FF /* ColorTransformer.swift */; }; + FC6A9E289CD6EAD053A8901587B8CA81 /* Patcher+Transformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A2E4BF5241D8BF77811B89131F94EEE /* Patcher+Transformer.swift */; }; FEFE2DDEB18C3D76F500C974F166CD53 /* CaseDefaultable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBDE8674ED579EE94A0773028BD44AF1 /* CaseDefaultable.swift */; }; FF8307B7346F4D3BA13C11AECFE6EDD0 /* FBSnapshotTestCase.h in Headers */ = {isa = PBXBuildFile; fileRef = 20BC59163CF72AADA6459ADA846EBF1F /* FBSnapshotTestCase.h */; settings = {ATTRIBUTES = (Public, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 02B934EF082A92CCBF48CA4DB7845BBD /* PBXContainerItemProxy */ = { + 0861B8DDC7D3A547131E314A010C44A7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = BD33823B9D08265B6F1D35EC259EE307; remoteInfo = SmartCodable; }; - 1584CCA7C4859F224DFB9852AE00F8E2 /* PBXContainerItemProxy */ = { + 16FB723A3DD06758D146123C0D8539D0 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 86A81D2B2BFEFD93197A1D6C3C7EF60A; - remoteInfo = BTPrint; + remoteGlobalIDString = 300904838EEDDC3BB8242817D8F97CB6; + remoteInfo = CleanJSON; }; - 5496F6EBAD75B49DFD30483EE62E43AD /* PBXContainerItemProxy */ = { + 3A50D42E678AE643BB2CAEF046627042 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 19622742EBA51E823D6DAE3F8CDBFAD4; remoteInfo = SnapKit; }; - 8D4F801F1EC3076B332F6878A88D47FB /* PBXContainerItemProxy */ = { + 6DD2498BDAD565ACEE78DFBD7A7E9928 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 10D88C24864319FF583AD6D156896F32; remoteInfo = HandyJSON; }; - 9E34C15EE3E96CE52ADA7AAA0F2CB628 /* PBXContainerItemProxy */ = { + AAD925A22299C940A13FF16FF248902C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 98A98149697C80CEF8D5772791E92E66; - remoteInfo = FBSnapshotTestCase; + remoteGlobalIDString = 8ABBD9D5C40976C9B3FC1E227AAC109C; + remoteInfo = BTBubble; }; - B53EA5CAFFA0FC8A228BCF81404C39E4 /* PBXContainerItemProxy */ = { + D0836525F3676A79171E523EB8E217B6 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 300904838EEDDC3BB8242817D8F97CB6; - remoteInfo = CleanJSON; + remoteGlobalIDString = 98A98149697C80CEF8D5772791E92E66; + remoteInfo = FBSnapshotTestCase; }; - DE0BD8FF6086F1669DFFE2A7D3867D56 /* PBXContainerItemProxy */ = { + D2A74EF48A1BEBF5937E20BC241A2E54 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = B8474377209826CA7C2ADD548D40C1EA; - remoteInfo = "Pods-SmartCodable_Example"; + remoteGlobalIDString = 86A81D2B2BFEFD93197A1D6C3C7EF60A; + remoteInfo = BTPrint; }; - E26F1EBC27A81CF8024CF43B64EB8569 /* PBXContainerItemProxy */ = { + EAFEBF0E804E12BFFA50E4A13E610AE1 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 8ABBD9D5C40976C9B3FC1E227AAC109C; - remoteInfo = BTBubble; + remoteGlobalIDString = B8474377209826CA7C2ADD548D40C1EA; + remoteInfo = "Pods-SmartCodable_Example"; }; /* End PBXContainerItemProxy section */ @@ -265,40 +264,31 @@ 019BF859EEBE1D8469A3CE37606A8760 /* HandyJSON.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = HandyJSON.modulemap; sourceTree = ""; }; 02A4470686F2D00D08E538160531B64E /* BTBubble+Menu.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "BTBubble+Menu.swift"; path = "BTBubble/Classes/BTBubble+Menu.swift"; sourceTree = ""; }; 02B734C740F66C4CA7D3E58A2E3A71ED /* UIImage+Snapshot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Snapshot.m"; path = "FBSnapshotTestCase/Categories/UIImage+Snapshot.m"; sourceTree = ""; }; - 033B089F82DF64A6114E65701A9A84F8 /* JSONDecoderImpl+UnkeyedContainer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "JSONDecoderImpl+UnkeyedContainer.swift"; sourceTree = ""; }; - 03664B53C0720F6FFC0D5517C0EF4798 /* SmartJSONDecoder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartJSONDecoder.swift; sourceTree = ""; }; 05DE8DDCC94E79120DAB11B9DBD24069 /* ConstraintItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintItem.swift; path = Sources/ConstraintItem.swift; sourceTree = ""; }; 0600D0B09DB5802D6B378850043ADD4D /* Properties.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Properties.swift; path = Source/Properties.swift; sourceTree = ""; }; 077FF679DE0A788D695D32FCF72B1002 /* ConstraintConfig.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintConfig.swift; path = Sources/ConstraintConfig.swift; sourceTree = ""; }; - 07AA2986E59211D6FA2AC4D35D2A58EB /* Patcher+Provider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Patcher+Provider.swift"; sourceTree = ""; }; 07ADF3C4B3DE46FA90A67725C575E757 /* _CleanJSONDecoder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = _CleanJSONDecoder.swift; path = Sources/CleanJSON/_CleanJSONDecoder.swift; sourceTree = ""; }; 0965E60C4A8A6CB4CDB3FD2D5BF45433 /* Logger.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Logger.swift; path = Source/Logger.swift; sourceTree = ""; }; - 09C78679325D24757653EA095F9DB066 /* SmartEncodable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartEncodable.swift; sourceTree = ""; }; - 0A8C0616AA7CF9108EACC820D024F465 /* SafeDictionary.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SafeDictionary.swift; sourceTree = ""; }; + 0A6ECDF95AF98721811CDB5260DE2F5C /* JSONDecoderImpl.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = JSONDecoderImpl.swift; sourceTree = ""; }; 0B9662B4BE2283F2E38F7155D5266F8E /* Pods-SmartCodable_Tests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-SmartCodable_Tests"; path = Pods_SmartCodable_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 0CDA7F82D0712E740E87005101153854 /* JSONValue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = JSONValue.swift; sourceTree = ""; }; 0EE11E0147F987FD843DF343F4BEF9C5 /* SnapKit.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SnapKit.debug.xcconfig; sourceTree = ""; }; - 0EE1DE92831D33349BC6D75FF8B91642 /* SmartCodable.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SmartCodable.debug.xcconfig; sourceTree = ""; }; 0F043A0A52D038042BE4B2E250F39C46 /* ConstraintLayoutSupportDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutSupportDSL.swift; path = Sources/ConstraintLayoutSupportDSL.swift; sourceTree = ""; }; 0F3C77A10532266D4C2017D4C5657D22 /* UILayoutSupport+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UILayoutSupport+Extensions.swift"; path = "Sources/UILayoutSupport+Extensions.swift"; sourceTree = ""; }; 0F6C61A3718CAD5B727FA89E9A50D662 /* CleanJSON.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CleanJSON.debug.xcconfig; sourceTree = ""; }; 0FD0E02013F60456068DC82258C06AB1 /* DateTransform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DateTransform.swift; path = Source/DateTransform.swift; sourceTree = ""; }; + 1018291528DE7C221F8A61E3F4F2C281 /* DateTransformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DateTransformer.swift; sourceTree = ""; }; 1245F46A35053D954B8985EFAFD068D7 /* ConstraintLayoutGuideDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutGuideDSL.swift; path = Sources/ConstraintLayoutGuideDSL.swift; sourceTree = ""; }; 1287F892FF63395DDABB49A2F8C39A3B /* ExtendCustomModelType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExtendCustomModelType.swift; path = Source/ExtendCustomModelType.swift; sourceTree = ""; }; 12D66D4EBB5005BCB197AA15A08144D1 /* BTPrint.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BTPrint.release.xcconfig; sourceTree = ""; }; - 14A724DAEDC2B97E89CC77278069C104 /* SmartCodable-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SmartCodable-prefix.pch"; sourceTree = ""; }; - 155A73EF92236991ADC77A86DC2B0216 /* SmartCodable-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SmartCodable-dummy.m"; sourceTree = ""; }; + 178A9D186E98578941FE9B0BE84B475B /* SmartCodable-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SmartCodable-umbrella.h"; sourceTree = ""; }; + 199D025B9E1D1BEFD83DBCBF7BA20271 /* LogContainer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LogContainer.swift; sourceTree = ""; }; 1A2453FB81C81C62905E16C3FD41C15D /* JSONAdapter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JSONAdapter.swift; path = Sources/CleanJSON/JSONAdapter.swift; sourceTree = ""; }; + 1A81CF3734C4F53838DA3AD603D13CA4 /* JSONDecoderImpl+KeyedContainer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "JSONDecoderImpl+KeyedContainer.swift"; sourceTree = ""; }; 1ACD8767AB4E2B782160808FED94FADE /* FieldDescriptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FieldDescriptor.swift; path = Source/FieldDescriptor.swift; sourceTree = ""; }; - 1B89EA598C9073DF9F5DFA0ED4B1B48E /* JSONDecoderImpl.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = JSONDecoderImpl.swift; sourceTree = ""; }; 1DA24A38BA9EE106B59E3D4C8DD1CE0E /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; 1EE51CB52688C6956C3806BE1352E6A1 /* BTPrint.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BTPrint.debug.xcconfig; sourceTree = ""; }; - 1F026D009D5A16B0EB96E9D9640B14F5 /* JSONKeyedEncodingContainer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = JSONKeyedEncodingContainer.swift; sourceTree = ""; }; 209CC75BF3B9E4EF12E2CCE8787F9095 /* UIImage+Diff.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Diff.m"; path = "FBSnapshotTestCase/Categories/UIImage+Diff.m"; sourceTree = ""; }; 20BC59163CF72AADA6459ADA846EBF1F /* FBSnapshotTestCase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestCase.h; path = FBSnapshotTestCase/FBSnapshotTestCase.h; sourceTree = ""; }; - 218A6785E745A0A71499860909D719E6 /* JSONDecoderImpl+KeyedContainer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "JSONDecoderImpl+KeyedContainer.swift"; sourceTree = ""; }; - 21AFA09203500AA39D2945046B979684 /* JSONDecoderImpl+SingleValueContainer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "JSONDecoderImpl+SingleValueContainer.swift"; sourceTree = ""; }; - 22A1467BB3437DC256E5EE84BF199E84 /* URLTransformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = URLTransformer.swift; sourceTree = ""; }; 233DAEDE45A5CF0A47B6462C8C9F92B4 /* UIApplication+StrictKeyWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIApplication+StrictKeyWindow.h"; path = "FBSnapshotTestCase/Categories/UIApplication+StrictKeyWindow.h"; sourceTree = ""; }; 24562DC38CD0C27E5FCC2152077E3513 /* BTBubble-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BTBubble-prefix.pch"; sourceTree = ""; }; 2565E609AC51A4E4FCA81F2594C690F6 /* FBSnapshotTestCase.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FBSnapshotTestCase.debug.xcconfig; sourceTree = ""; }; @@ -306,134 +296,145 @@ 26D82883F952766DDE67EB5398B66E76 /* HandyJSON-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "HandyJSON-dummy.m"; sourceTree = ""; }; 274BB5419B8D40BD05519C560CFC077D /* BTBubble-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "BTBubble-Info.plist"; sourceTree = ""; }; 2852BF0E7B62CAF6AB4E994FD9DFF2DF /* Transformable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Transformable.swift; path = Source/Transformable.swift; sourceTree = ""; }; + 2BD341AD5435F669B3FF16E1BE1CFE3E /* KeysMapper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = KeysMapper.swift; sourceTree = ""; }; + 2C5F3E466D53DA58B6D49CA02369F254 /* JSONKeyedEncodingContainer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = JSONKeyedEncodingContainer.swift; sourceTree = ""; }; 2CAD959505600831AE1B1760854D7178 /* FBSnapshotTestController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestController.m; path = FBSnapshotTestCase/FBSnapshotTestController.m; sourceTree = ""; }; - 2D17FD3037F7B3F7671B2BADE43B66ED /* JSONWriter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = JSONWriter.swift; sourceTree = ""; }; 2D804957148656B5405037FC4821F4DB /* DecodingStrategy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DecodingStrategy.swift; path = Sources/CleanJSON/DecodingStrategy.swift; sourceTree = ""; }; + 2D82C310425E9E959CD9D681F43C73DB /* SmartCodable.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = SmartCodable.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 2DBF99060B70E1B6830A780BA2524ADA /* ConstraintPriorityTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintPriorityTarget.swift; path = Sources/ConstraintPriorityTarget.swift; sourceTree = ""; }; 2DCC7F0112605A85E8861B6A4E92D154 /* PropertyInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PropertyInfo.swift; path = Source/PropertyInfo.swift; sourceTree = ""; }; - 2DF5CA96052CFD49E37C8F3895D6F622 /* JSONUnkeyedEncodingContainer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = JSONUnkeyedEncodingContainer.swift; sourceTree = ""; }; 2E274A3EAC25DB6D5C25C3CBB604248B /* Deserializer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Deserializer.swift; path = Source/Deserializer.swift; sourceTree = ""; }; 2EBF008F9DBB55C9A18375B6B87D22A3 /* HandyJSON-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "HandyJSON-prefix.pch"; sourceTree = ""; }; 30C72CEDB9E9899CABE8976D237E6C74 /* ConstraintInsetTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintInsetTarget.swift; path = Sources/ConstraintInsetTarget.swift; sourceTree = ""; }; 319CD0A8663A00A572B4418C10FE8894 /* BTBubble+Check.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "BTBubble+Check.swift"; path = "BTBubble/Classes/BTBubble+Check.swift"; sourceTree = ""; }; 3280BB5E7B57C31D41117A74F76E9DF3 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; 32B376CE8FE7B39265B74DCF06C524D2 /* Export.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Export.swift; path = Source/Export.swift; sourceTree = ""; }; - 3477ED37FA2B23796E558133A3A6C34B /* DateTransformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DateTransformer.swift; sourceTree = ""; }; 36EE49CE4B82B9346139D56A516D1DB0 /* Pods-SmartCodable_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SmartCodable_Tests.debug.xcconfig"; sourceTree = ""; }; 36F93E9634821D816540140F7E1D6199 /* HexColorTransform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HexColorTransform.swift; path = Source/HexColorTransform.swift; sourceTree = ""; }; 3803A342F79D0DBAEE0150E93A6B807B /* ConstraintDirectionalInsets.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDirectionalInsets.swift; path = Sources/ConstraintDirectionalInsets.swift; sourceTree = ""; }; - 38E895FA612C35C52AD3DD3BE458ACF6 /* SmartCodable-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SmartCodable-Info.plist"; sourceTree = ""; }; 390DC8D2A8DB0DAB9CA70268C2F74AF4 /* CBridge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CBridge.swift; path = Source/CBridge.swift; sourceTree = ""; }; 39B2DBA2FFE481C74723D3D77C1C4151 /* CleanJSONUnkeyedDecodingContainer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CleanJSONUnkeyedDecodingContainer.swift; path = Sources/CleanJSON/CleanJSONUnkeyedDecodingContainer.swift; sourceTree = ""; }; 3A10F19A7083CCBB70471917A1BD6C04 /* SnapKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SnapKit.modulemap; sourceTree = ""; }; 3B1648D17E6B6A33B54A7906BC560E10 /* ConstraintPriority.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintPriority.swift; path = Sources/ConstraintPriority.swift; sourceTree = ""; }; + 3BD411298870436EF9D3DC204D3FD6AD /* JSONValue+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "JSONValue+Extension.swift"; sourceTree = ""; }; + 3C3128F1FE7F1807F89248B79D4316D9 /* SmartCodable-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SmartCodable-Info.plist"; sourceTree = ""; }; + 3C6FD547CB3C95AA2B6C5BC4AA5729A5 /* LogItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LogItem.swift; sourceTree = ""; }; 3E623AAE662B463FDDE8B268BDEA3E7B /* SmartCodable */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SmartCodable; path = SmartCodable.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3E6F38F38A655D1D2F8385D4A13D03BD /* FBSnapshotTestCase.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FBSnapshotTestCase.release.xcconfig; sourceTree = ""; }; 3EF66D087C187059D6E79CD68D3907BC /* Pods-SmartCodable_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-SmartCodable_Tests-acknowledgements.plist"; sourceTree = ""; }; - 40491AB375AEFF3B509F69415E9A44EF /* LogItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LogItem.swift; sourceTree = ""; }; + 401B50EE9846F3B76E6A65F4A84A8879 /* SmartCodable.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SmartCodable.release.xcconfig; sourceTree = ""; }; 418DA1AEA18C4A4A1E5D84FCB60DA427 /* Debugging.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Debugging.swift; path = Sources/Debugging.swift; sourceTree = ""; }; - 43EF6118CA1A7FD446BE01A4548145CF /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; 43FB1C7B536B80216B8B21E7440AEC8C /* Pods-SmartCodable_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-SmartCodable_Tests.modulemap"; sourceTree = ""; }; + 4430D68D17A83EF9562C78A764F38698 /* IgnoredKey.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = IgnoredKey.swift; sourceTree = ""; }; 4475151C4A7FB0660C3CDE88C6863EEF /* BTBubble+Location.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "BTBubble+Location.swift"; path = "BTBubble/Classes/BTBubble+Location.swift"; sourceTree = ""; }; 45DCF5151BEFE9D3018AFB99FE8F580F /* ConstraintInsets.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintInsets.swift; path = Sources/ConstraintInsets.swift; sourceTree = ""; }; + 45EBDB386C01C541AF2451CE917CDEDB /* Patcher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Patcher.swift; sourceTree = ""; }; 464021711643A3159A0B5B78CCC0347A /* Pods-SmartCodable_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-SmartCodable_Tests-acknowledgements.markdown"; sourceTree = ""; }; 464FF18D590547BE7F4826907AFFE76D /* ConstraintRelation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintRelation.swift; path = Sources/ConstraintRelation.swift; sourceTree = ""; }; 46D532B60E5A862BAED6B9ED6A3A06F7 /* LayoutConstraint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LayoutConstraint.swift; path = Sources/LayoutConstraint.swift; sourceTree = ""; }; + 487FC6D5FA076528735E6C72BF0F7B74 /* SmartCaseDefaultable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartCaseDefaultable.swift; sourceTree = ""; }; 4A29F6A0D45AF40A67824A0487C3A989 /* FBSnapshotTestController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestController.h; path = FBSnapshotTestCase/FBSnapshotTestController.h; sourceTree = ""; }; 4B3CBC4CFD3D5E9ABDC56DDC685EACE4 /* ConstraintMakerEditable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerEditable.swift; path = Sources/ConstraintMakerEditable.swift; sourceTree = ""; }; 4B882D619BB4F3DBCA3958CF51481D0F /* Pods-SmartCodable_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-SmartCodable_Example.modulemap"; sourceTree = ""; }; + 4C2EBBA575674203681CA88681245D9C /* SafeDictionary.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SafeDictionary.swift; sourceTree = ""; }; 4C4A4F11E0D54192FCD7E73E00FD2841 /* Pods-SmartCodable_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-SmartCodable_Tests-frameworks.sh"; sourceTree = ""; }; 4CAE8816531C7030F85857D829CF295C /* BTBubble-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BTBubble-umbrella.h"; sourceTree = ""; }; 4FD9F7D2497A25B05DF82AF7F12F84DF /* BTBubble.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BTBubble.debug.xcconfig; sourceTree = ""; }; 510325960A63C34B69B7173F76A69109 /* URLTransform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = URLTransform.swift; path = Source/URLTransform.swift; sourceTree = ""; }; - 5162CB4F98F37A87A97125818F24512B /* _SpecialTreatmentEncoder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = _SpecialTreatmentEncoder.swift; sourceTree = ""; }; - 51B6C23C5815A8FBF8C6BFFB3BBF3AEA /* SmartDecodable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartDecodable.swift; sourceTree = ""; }; - 523470A4D595E1EC59C815C53DC9CF01 /* JSONDecoderImpl+Unwrap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "JSONDecoderImpl+Unwrap.swift"; sourceTree = ""; }; + 51B6C75F066FAA243895E9E3EB08B73C /* SmartAny.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartAny.swift; sourceTree = ""; }; + 52D276E5158A902D530CD64A969DEFE2 /* JSONValue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = JSONValue.swift; sourceTree = ""; }; 537BE90B32A5F1814137F702A3A820F6 /* HandyJSON.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = HandyJSON.debug.xcconfig; sourceTree = ""; }; 541A55046863031E15A9FA69EA99FE8E /* Defaultable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Defaultable.swift; path = Sources/CleanJSON/Defaultable.swift; sourceTree = ""; }; 544353E196F6C41D2674EF54DDCED631 /* ConstraintLayoutSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutSupport.swift; path = Sources/ConstraintLayoutSupport.swift; sourceTree = ""; }; + 544CD7182D0088E797C25D6D1C8C0756 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; 54E6DE8DDA000868195FED827A109AD1 /* BTPrint-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BTPrint-prefix.pch"; sourceTree = ""; }; 551BC954C9673D937C2CA52B935158E1 /* ConstraintMultiplierTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMultiplierTarget.swift; path = Sources/ConstraintMultiplierTarget.swift; sourceTree = ""; }; 555C1F46B8C3D9749B4FADF32ED4458D /* CleanJSONKey.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CleanJSONKey.swift; path = Sources/CleanJSON/CleanJSONKey.swift; sourceTree = ""; }; 56F3BDAC789DF61F2D9350035669FEE3 /* CleanJSON-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "CleanJSON-Info.plist"; sourceTree = ""; }; 57221B54D014471C3D3E1925EFC917C8 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 5966D17C006F5D41D102BE6BD83B178F /* JSONParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = JSONParser.swift; sourceTree = ""; }; + 585D7BA67351926A54D86DD772CBB611 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; 59BB800622705BC689D002AFE6C24643 /* ConstraintView+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ConstraintView+Extensions.swift"; path = "Sources/ConstraintView+Extensions.swift"; sourceTree = ""; }; + 5B9F506FCA48840DE6105539D99F1F51 /* DecodingError+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "DecodingError+Extension.swift"; sourceTree = ""; }; 5C4F31330DFA99D699E4BDC8C3573D73 /* FBSnapshotTestCase */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = FBSnapshotTestCase; path = FBSnapshotTestCase.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5D1C54C47A2FE062765D133366160F7F /* Pods-SmartCodable_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-SmartCodable_Example-acknowledgements.plist"; sourceTree = ""; }; - 5D24E777C9745397E2AC40DD13AFCF5A /* SmartCodable.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = SmartCodable.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 5DAD6DAD58F97DC6978669ECC1DCB217 /* _CleanJSONDecoder+SingleValueDecodingContainer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "_CleanJSONDecoder+SingleValueDecodingContainer.swift"; path = "Sources/CleanJSON/_CleanJSONDecoder+SingleValueDecodingContainer.swift"; sourceTree = ""; }; 5EE456287EB50E4B04F1A29EC19043B7 /* ConstraintLayoutGuide+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ConstraintLayoutGuide+Extensions.swift"; path = "Sources/ConstraintLayoutGuide+Extensions.swift"; sourceTree = ""; }; 6021C11E2C3E5FCDE30179E13E0E6452 /* Pods-SmartCodable_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-SmartCodable_Example-umbrella.h"; sourceTree = ""; }; 60B0F726C42000735EC1B76226554746 /* UIImage+Snapshot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Snapshot.h"; path = "FBSnapshotTestCase/Categories/UIImage+Snapshot.h"; sourceTree = ""; }; 60E0A4F5EA0780653EDE0A8F48FE2B14 /* UIImage+Compare.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Compare.h"; path = "FBSnapshotTestCase/Categories/UIImage+Compare.h"; sourceTree = ""; }; 6170F13C22D7194151A678E232C31D12 /* Pods-SmartCodable_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SmartCodable_Example.release.xcconfig"; sourceTree = ""; }; - 617A9D6F44CE122BD389D45A8D54FF3D /* SmartCodable.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SmartCodable.release.xcconfig; sourceTree = ""; }; 6226D5547537E7D1F86B312E2F57D4F0 /* BTPrint-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BTPrint-umbrella.h"; sourceTree = ""; }; 63337F29437FD6A05DCA6E50C4DF6945 /* ExtendCustomBasicType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExtendCustomBasicType.swift; path = Source/ExtendCustomBasicType.swift; sourceTree = ""; }; + 635DFDD78D3B48C16095B4A1042B13B8 /* JSONFuture.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = JSONFuture.swift; sourceTree = ""; }; + 63B7AF1541DDEE29148AD4B96C157537 /* SmartPublished.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartPublished.swift; sourceTree = ""; }; 63D6FCCD448B91FE5083D3C830B09E34 /* BTPrint */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = BTPrint; path = BTPrint.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 666C02C1B42B0868B4A816FBD07E22A6 /* BTBubbleConfig.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BTBubbleConfig.swift; path = BTBubble/Classes/BTBubbleConfig.swift; sourceTree = ""; }; - 66E2E2E4EE758586AE4B5283593B9331 /* SmartKeyDecodingStrategy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartKeyDecodingStrategy.swift; sourceTree = ""; }; + 68BAB753E2517C4180ACA27A811BE345 /* Cachable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Cachable.swift; sourceTree = ""; }; 68F996F21CE4381BFEAC8BDD8BC5E788 /* BTPrint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BTPrint.swift; path = BTPrint/Classes/BTPrint.swift; sourceTree = ""; }; 6B6AE0B9AEB52789C2BA9C70151E337A /* MangledName.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MangledName.swift; path = Source/MangledName.swift; sourceTree = ""; }; - 6C555E5FE2484861474AE2FFD550D743 /* JSONFuture.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = JSONFuture.swift; sourceTree = ""; }; 6CDB55010FADC798A0E3768269292E5E /* CodingKeysConverter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CodingKeysConverter.swift; path = Sources/CleanJSON/CodingKeysConverter.swift; sourceTree = ""; }; 6CF935F6F0BF80B0C79325C2A66921C8 /* HandyJSON.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = HandyJSON.release.xcconfig; sourceTree = ""; }; 6DFBE39A8F2F3352B5AB28C6FFC990E7 /* CleanJSONKeyedDecodingContainer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CleanJSONKeyedDecodingContainer.swift; path = Sources/CleanJSON/CleanJSONKeyedDecodingContainer.swift; sourceTree = ""; }; - 6FCE53EF9EAA518B97A59677EAD6A5D2 /* KeysMapper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = KeysMapper.swift; sourceTree = ""; }; + 6F18B3DF5DD02DF9D600AA829350ABCD /* SmartJSONEncoder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartJSONEncoder.swift; sourceTree = ""; }; 6FD01EC1237ED966BE6C99E868971093 /* Serializer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Serializer.swift; path = Source/Serializer.swift; sourceTree = ""; }; 70E88BDB3FDACE8F2B23F3247435107D /* ConstraintLayoutGuide.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutGuide.swift; path = Sources/ConstraintLayoutGuide.swift; sourceTree = ""; }; 70EF9FF8800B0AA22F5E4FE76FECA8D7 /* Pods-SmartCodable_Example-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-SmartCodable_Example-Info.plist"; sourceTree = ""; }; + 745CCCC5179D7780155B11928DF9F880 /* SmartKeyDecodingStrategy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartKeyDecodingStrategy.swift; sourceTree = ""; }; 746BABF0910774EB502DC3C4F232413D /* TransformOf.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TransformOf.swift; path = Source/TransformOf.swift; sourceTree = ""; }; 7570803E9622B6523B3325B01B79E44B /* ConstraintDescription.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDescription.swift; path = Sources/ConstraintDescription.swift; sourceTree = ""; }; 767825513CDDC33C98AB0A7A3C9681D4 /* Pods-SmartCodable_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-SmartCodable_Example-frameworks.sh"; sourceTree = ""; }; - 76EE4E69006CE4D7E200C678B0FB3B9F /* SmartFlat.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartFlat.swift; sourceTree = ""; }; 76F616A528D452098E003EDF888C54AC /* DateFormatterTransform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DateFormatterTransform.swift; path = Source/DateFormatterTransform.swift; sourceTree = ""; }; + 794428B9BFA06BC14B1F0E6535503210 /* JSONParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = JSONParser.swift; sourceTree = ""; }; 796F5B9A676DF8041A953891F97BCA27 /* ContextDescriptorType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContextDescriptorType.swift; path = Source/ContextDescriptorType.swift; sourceTree = ""; }; - 7B05B4814F0678A05723C5F3155738B5 /* SmartCodable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartCodable.swift; sourceTree = ""; }; + 7A38ACF5E6FC3B52B1853212683D4E1C /* SmartCodable-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SmartCodable-prefix.pch"; sourceTree = ""; }; + 7C65519E4A56E0CFE8B8EB8F77A80D8E /* SmartDecodable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartDecodable.swift; sourceTree = ""; }; 7CB9011E862E377A63B0CA2058DCEB78 /* Configuration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Configuration.swift; path = Source/Configuration.swift; sourceTree = ""; }; 7D0C0E237F70C307DF23B940F50265F5 /* Measuable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Measuable.swift; path = Source/Measuable.swift; sourceTree = ""; }; 7D588A73906F98B13FC731364A9247E2 /* ConstraintConstantTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintConstantTarget.swift; path = Sources/ConstraintConstantTarget.swift; sourceTree = ""; }; + 7D8974A6896BAEC05098DF2E66F51C2B /* JSONDecoderImpl+Unwrap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "JSONDecoderImpl+Unwrap.swift"; sourceTree = ""; }; 7E920302DBA2124AFF869243E5CB6351 /* BuiltInBridgeType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BuiltInBridgeType.swift; path = Source/BuiltInBridgeType.swift; sourceTree = ""; }; 7EEAE2746CE46B4119A1EF4CB96853D4 /* ConstraintMakerPrioritizable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerPrioritizable.swift; path = Sources/ConstraintMakerPrioritizable.swift; sourceTree = ""; }; 7F1BBC050B82F2DBD3175EBCDBBAE1B6 /* Metadata.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Metadata.swift; path = Source/Metadata.swift; sourceTree = ""; }; 7F9222551C78E09BFE29291610498A56 /* PrintFormat.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PrintFormat.swift; path = BTPrint/Classes/PrintFormat.swift; sourceTree = ""; }; 7FF03B8E2DF800F666228FD3C0F9026B /* FBSnapshotTestCase-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSnapshotTestCase-umbrella.h"; sourceTree = ""; }; - 81B7D92956C46531487C540A5F209EAD /* SmartAnyImpl.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartAnyImpl.swift; sourceTree = ""; }; - 84FC4A0D1797B5871ADD16231E807718 /* SmartAny.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartAny.swift; sourceTree = ""; }; + 83DEE370AC60A6033C9847F779C346FF /* ColorTransformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ColorTransformer.swift; sourceTree = ""; }; + 844CE6BE5F6DFD8D3B7C4109FBDF37B6 /* JSONDecoderImpl+UnkeyedContainer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "JSONDecoderImpl+UnkeyedContainer.swift"; sourceTree = ""; }; + 84D5B1A2555C2CD23DAEC7D114D2DCFE /* SmartEncodable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartEncodable.swift; sourceTree = ""; }; 85D2CD4F67092C56E310282E114ADE5B /* Pods-SmartCodable_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-SmartCodable_Example-acknowledgements.markdown"; sourceTree = ""; }; 87C56FECBDEE19803E1748DE1C16FBBA /* UIApplication+StrictKeyWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIApplication+StrictKeyWindow.m"; path = "FBSnapshotTestCase/Categories/UIApplication+StrictKeyWindow.m"; sourceTree = ""; }; 87EF2DCAFAACA539DB4A58A75FC36303 /* FBSnapshotTestCasePlatform.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestCasePlatform.h; path = FBSnapshotTestCase/FBSnapshotTestCasePlatform.h; sourceTree = ""; }; 89305DC7AA8CF17C4DFF5582FDC4E381 /* SnapKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SnapKit-dummy.m"; sourceTree = ""; }; - 89387D349D98F221987B21CD9FD2509E /* SmartCodable-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SmartCodable-umbrella.h"; sourceTree = ""; }; 8D31C1D12C0D9C516CE738486208A159 /* HandyJSON.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HandyJSON.h; path = Source/HandyJSON.h; sourceTree = ""; }; - 8D6904C04048BD3A2E9B80921993462F /* LogCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LogCache.swift; sourceTree = ""; }; + 8EED235A212030C1289F685C29DBCA61 /* Transformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Transformer.swift; sourceTree = ""; }; + 9108626D433AB91CD2BBD227F0F5F101 /* SmartFlat.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartFlat.swift; sourceTree = ""; }; 9121AADFDAA9E940775A36390D6DDBC7 /* ToJSON.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ToJSON.swift; path = Sources/CleanJSON/ToJSON.swift; sourceTree = ""; }; - 918C2952B3A694AE4780A2882FEA5586 /* JSONSingleValueEncodingContainer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = JSONSingleValueEncodingContainer.swift; sourceTree = ""; }; 91D961BD3D7E5A4FD5EFC37B4EF49FD4 /* HandyJSON-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "HandyJSON-umbrella.h"; sourceTree = ""; }; + 9224B4149A703E066CE617BE68BD5765 /* JSONEncoderImpl.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = JSONEncoderImpl.swift; sourceTree = ""; }; 926AFEC77F93BCAD652BB781C5D0AA8C /* BTPrint-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "BTPrint-dummy.m"; sourceTree = ""; }; 93B6822011E346FDFA44C5A0CAB94482 /* BuiltInBasicType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BuiltInBasicType.swift; path = Source/BuiltInBasicType.swift; sourceTree = ""; }; - 963E1082E58E8C89BF62898F6EE182D1 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + 964680D0DEB411E48560E6EA1308BBA1 /* DataTransformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataTransformer.swift; sourceTree = ""; }; 96FC33890F5B9F948392563B47A573A0 /* SnapKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SnapKit-umbrella.h"; sourceTree = ""; }; 979486118B3E90C08386079D57962701 /* SnapKit */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SnapKit; path = SnapKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 992A16CABA4C83CBEACADDABDE5021A8 /* SwiftSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SwiftSupport.swift; path = FBSnapshotTestCase/SwiftSupport.swift; sourceTree = ""; }; + 9A2E4BF5241D8BF77811B89131F94EEE /* Patcher+Transformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Patcher+Transformer.swift"; sourceTree = ""; }; 9A4757260F219342EC59610827085045 /* ConstraintMaker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMaker.swift; path = Sources/ConstraintMaker.swift; sourceTree = ""; }; 9AB62CDC1D9A84669428234D73C264AF /* Pods-SmartCodable_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-SmartCodable_Example-dummy.m"; sourceTree = ""; }; + 9BC595ECE107D44C6F4BF5ED399C4ADD /* _SpecialTreatmentEncoder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = _SpecialTreatmentEncoder.swift; sourceTree = ""; }; 9D5AD1AE1022A579A49D4DE848C3C5D9 /* PointerType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PointerType.swift; path = Source/PointerType.swift; sourceTree = ""; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9EDA7FB9B8774CA143EE790ECF838CCE /* SmartCodable.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SmartCodable.modulemap; sourceTree = ""; }; A11B531AF457EC4F99F06F115FDE0A45 /* FBSnapshotTestCase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestCase.m; path = FBSnapshotTestCase/FBSnapshotTestCase.m; sourceTree = ""; }; A247AF8B486EBFFB5B5CED8A27FD6D94 /* _CleanJSONDecoder+Decode.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "_CleanJSONDecoder+Decode.swift"; path = "Sources/CleanJSON/_CleanJSONDecoder+Decode.swift"; sourceTree = ""; }; A370EE4D019ADFE65F2DC1FF9EDBA187 /* CleanJSON-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CleanJSON-dummy.m"; sourceTree = ""; }; A4CFCEB2A58CA7A3CB15E26DD28CA8D6 /* Pods-SmartCodable_Example */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-SmartCodable_Example"; path = Pods_SmartCodable_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A73FCF3B5891253C6478A3D12CFDBE68 /* LogContainer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LogContainer.swift; sourceTree = ""; }; A77DB2179984C4C073E5FC6BDCD19B77 /* BTBubble-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "BTBubble-dummy.m"; sourceTree = ""; }; A8396A1DCA6FC67A7830D34F6F815289 /* BTBubble+Draw.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "BTBubble+Draw.swift"; path = "BTBubble/Classes/BTBubble+Draw.swift"; sourceTree = ""; }; + A96A9755F10AEE7996C2DF74B9525ABE /* URLTransformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = URLTransformer.swift; sourceTree = ""; }; AB1035777F9D0FAD25F91B78CF571685 /* ConstraintMakerFinalizable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerFinalizable.swift; path = Sources/ConstraintMakerFinalizable.swift; sourceTree = ""; }; + ABE3271B97866AF6F870A5691943FC80 /* SmartCodable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartCodable.swift; sourceTree = ""; }; ADDD58F0A7F5CBCD84256A572196E486 /* CustomDateFormatTransform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CustomDateFormatTransform.swift; path = Source/CustomDateFormatTransform.swift; sourceTree = ""; }; - AE1EDB44EA74271C582EFDD9ED5046CE /* Transformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Transformer.swift; sourceTree = ""; }; + AE31D5F2B934BD7E9748913B3EB90A1F /* SmartCodable.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SmartCodable.modulemap; sourceTree = ""; }; + B05BE0E596907D498070C8AEC58CEFEA /* SmartCodable.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SmartCodable.debug.xcconfig; sourceTree = ""; }; B3CC75B7FCBD0A88F04962B84E46D054 /* FBSnapshotTestCasePlatform.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestCasePlatform.m; path = FBSnapshotTestCase/FBSnapshotTestCasePlatform.m; sourceTree = ""; }; - B661229FD9971281B1CE417B935DFD7E /* IgnoredKey.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = IgnoredKey.swift; sourceTree = ""; }; B66F7BC9A4DCD060099089C86B6DBC00 /* BTBubble */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = BTBubble; path = BTBubble.framework; sourceTree = BUILT_PRODUCTS_DIR; }; B884BE2A9A48EFA0DCB33348C5EECBCA /* BTBubble.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = BTBubble.modulemap; sourceTree = ""; }; B8F06552F963B43848600AFDC8043A19 /* CleanDecoder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CleanDecoder.swift; path = Sources/CleanJSON/CleanDecoder.swift; sourceTree = ""; }; @@ -441,13 +442,12 @@ B9E9FCD5E63CE808B8773D040F1E2BA8 /* FBSnapshotTestCase-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FBSnapshotTestCase-dummy.m"; sourceTree = ""; }; BAF69AF530FDB1A1819B8E00A3E4775A /* ReflectionHelper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ReflectionHelper.swift; path = Source/ReflectionHelper.swift; sourceTree = ""; }; BC6DB121D8A9523A91FDAB8376BE09FD /* DataTransform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DataTransform.swift; path = Source/DataTransform.swift; sourceTree = ""; }; - BED04CDF8E4E52D254C5C8F89E30867A /* Patcher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Patcher.swift; sourceTree = ""; }; BF34C278263A81DD03B77202C061698C /* CleanJSONDecodingStorage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CleanJSONDecodingStorage.swift; path = Sources/CleanJSON/CleanJSONDecodingStorage.swift; sourceTree = ""; }; - C1D10B851C16AD7C977E90C34FBBDFE6 /* SmartSentinel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartSentinel.swift; sourceTree = ""; }; + C12B7783A29EB07C2AE0513F4BC5793A /* SmartCodable-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SmartCodable-dummy.m"; sourceTree = ""; }; C236F0CDFBBFF56E8E482E41A943E19E /* BTBubble+Animation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "BTBubble+Animation.swift"; path = "BTBubble/Classes/BTBubble+Animation.swift"; sourceTree = ""; }; C2C99A53F71055734332736B13A49C28 /* SnapKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SnapKit-prefix.pch"; sourceTree = ""; }; C30DC42DFE9E9BEB719E4821761599C5 /* EnumTransform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EnumTransform.swift; path = Source/EnumTransform.swift; sourceTree = ""; }; - C32DA472567097CA63E2CA9BC25E631E /* Cachable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Cachable.swift; sourceTree = ""; }; + C38D95DDE8138760A794FC6F454C5C8D /* SmartJSONDecoder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartJSONDecoder.swift; sourceTree = ""; }; C4749570A46F497B425767CB4569ADF9 /* HelpingMapper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HelpingMapper.swift; path = Source/HelpingMapper.swift; sourceTree = ""; }; C4750BB7C125054792532A6CE7EFC1F8 /* BTPrint-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "BTPrint-Info.plist"; sourceTree = ""; }; C53C2DBE2FECF12DA6C33264A027EC82 /* ConstraintDirectionalInsetTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDirectionalInsetTarget.swift; path = Sources/ConstraintDirectionalInsetTarget.swift; sourceTree = ""; }; @@ -456,59 +456,57 @@ C57A6E8C38153E40B8497C02204DF7F4 /* ISO8601DateTransform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ISO8601DateTransform.swift; path = Source/ISO8601DateTransform.swift; sourceTree = ""; }; C6D3430E32742C8A84D354226C873C6C /* CleanJSON-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CleanJSON-umbrella.h"; sourceTree = ""; }; C7BBDFD017622786401A39F6BD9686C8 /* _CleanJSONDecoder+Unbox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "_CleanJSONDecoder+Unbox.swift"; path = "Sources/CleanJSON/_CleanJSONDecoder+Unbox.swift"; sourceTree = ""; }; + C91E3DAF9B4402C695FD80133DBB4D66 /* JSONUnkeyedEncodingContainer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = JSONUnkeyedEncodingContainer.swift; sourceTree = ""; }; C958AC7215CB092EEC6FA33BD843AC29 /* ConstraintViewDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintViewDSL.swift; path = Sources/ConstraintViewDSL.swift; sourceTree = ""; }; - CA604F68E8CAFBA4F058C1D8BF0EE02B /* SmartKeyEncodingStrategy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartKeyEncodingStrategy.swift; sourceTree = ""; }; - CC6B0D49BFFE1F673DE0D499AAE0FAB8 /* DataTransformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DataTransformer.swift; sourceTree = ""; }; CC6BD8F9EB57322C72A42B7031485790 /* ConstraintMakerRelatable+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ConstraintMakerRelatable+Extensions.swift"; path = "Sources/ConstraintMakerRelatable+Extensions.swift"; sourceTree = ""; }; CD54121DDA84872534168702B5F92950 /* HandyJSON */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = HandyJSON; path = HandyJSON.framework; sourceTree = BUILT_PRODUCTS_DIR; }; CDD07779AA8B42688ED0FF74BACC5AA5 /* AnyExtensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnyExtensions.swift; path = Source/AnyExtensions.swift; sourceTree = ""; }; CF572B5B26ACF0A775C07589992A5507 /* Pods-SmartCodable_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SmartCodable_Example.debug.xcconfig"; sourceTree = ""; }; CFC3023119381C8AA8F1A4F4106F012A /* ConstraintOffsetTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintOffsetTarget.swift; path = Sources/ConstraintOffsetTarget.swift; sourceTree = ""; }; + CFDFCFA070C53E5A4173B347FFB68911 /* SmartSentinel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartSentinel.swift; sourceTree = ""; }; CFE40591DCBDB38549AD0FC756F3D616 /* ConstraintView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintView.swift; path = Sources/ConstraintView.swift; sourceTree = ""; }; - D1EAB14035730D31B3EB58074287E4FC /* JSONValue+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "JSONValue+Extension.swift"; sourceTree = ""; }; + D1F2541C89A68637C51EDA21FBB5F44E /* SmartColor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartColor.swift; sourceTree = ""; }; D20FD964253D6C1E0040497B2CA5505E /* LayoutConstraintItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LayoutConstraintItem.swift; path = Sources/LayoutConstraintItem.swift; sourceTree = ""; }; D283527F80A00FBB2FF5776A4E3B27B2 /* UIImage+Diff.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Diff.h"; path = "FBSnapshotTestCase/Categories/UIImage+Diff.h"; sourceTree = ""; }; + D3DC631E699AA29550F778204DEC0C81 /* LogCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LogCache.swift; sourceTree = ""; }; D8123B10463E4148BBE847951CD834B0 /* BTBubble.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BTBubble.release.xcconfig; sourceTree = ""; }; - D87779293C433C7E825B558FDE7CE54B /* DecodingCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DecodingCache.swift; sourceTree = ""; }; + D82F7F4161783431D206633B0570363A /* EncodingCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EncodingCache.swift; sourceTree = ""; }; D9B8AA14A5BB1D0CE3A003CB6A566265 /* CleanJSON */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CleanJSON; path = CleanJSON.framework; sourceTree = BUILT_PRODUCTS_DIR; }; DB06E31B883A63C5DE4A5A6308F36C8F /* CleanJSONDecoder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CleanJSONDecoder.swift; path = Sources/CleanJSON/CleanJSONDecoder.swift; sourceTree = ""; }; - DC3140C5434B756320ACCE19D3051A73 /* SmartColor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartColor.swift; sourceTree = ""; }; DC816DCD26D7E20707BD2C4B66521329 /* FBSnapshotTestCase.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = FBSnapshotTestCase.modulemap; sourceTree = ""; }; DCD54B400F0BA763829F393B36FC4C7F /* CleanJSON.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = CleanJSON.modulemap; sourceTree = ""; }; DD91016CD3E4DB108E6B6B782539B2EC /* Constraint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Constraint.swift; path = Sources/Constraint.swift; sourceTree = ""; }; DDEF3ACF04599EB1C214870D993C7153 /* ConstraintDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDSL.swift; path = Sources/ConstraintDSL.swift; sourceTree = ""; }; E1687BCA2D5089035366568970461716 /* Pods-SmartCodable_Tests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-SmartCodable_Tests-Info.plist"; sourceTree = ""; }; - E1BB33412B7E1A67F04BF3D69CA89652 /* JSONEncoderImpl.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = JSONEncoderImpl.swift; sourceTree = ""; }; E20ABA9C7B9C59A9D3A5EA7AB0215871 /* TransformType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TransformType.swift; path = Source/TransformType.swift; sourceTree = ""; }; + E2A1EB64C98AA612AC7B0026CEA1E2A2 /* DecodingCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DecodingCache.swift; sourceTree = ""; }; E30EB7375ADE85CDDB7E41CEAB4FB6D5 /* BTPrint.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = BTPrint.modulemap; sourceTree = ""; }; + E3C4F0FDD9321196F06FE0753028108F /* SmartAnyImpl.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartAnyImpl.swift; sourceTree = ""; }; E3F09186EE217FC9713BA39404EB7B24 /* Pods-SmartCodable_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-SmartCodable_Tests-umbrella.h"; sourceTree = ""; }; + E4C481481BBE5337413ADE45E4580A7D /* SmartUpdater.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartUpdater.swift; sourceTree = ""; }; E5FA84A6FC991F1497F1DC0F7EA5CAD8 /* Pods-SmartCodable_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-SmartCodable_Tests-dummy.m"; sourceTree = ""; }; E658F388F01C72599CA75537950B6095 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; + E76975EB5B6D60E7201DA4513EA01251 /* JSONDecoderImpl+SingleValueContainer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "JSONDecoderImpl+SingleValueContainer.swift"; sourceTree = ""; }; E7D0C8FFA3D3F1791A00D06DA9FB06C3 /* OtherExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = OtherExtension.swift; path = Source/OtherExtension.swift; sourceTree = ""; }; - E94AB5721847B230B33159C24B210CCB /* SmartPublished.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartPublished.swift; sourceTree = ""; }; - EA6A1B68AFC338B3960A84421346BA2D /* Patcher+Transformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Patcher+Transformer.swift"; sourceTree = ""; }; - EAD248237346D4A9D1139F45B1056DAB /* SmartJSONEncoder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartJSONEncoder.swift; sourceTree = ""; }; - EBBDAE9601B839AB060BEFF788396B73 /* EncodingCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EncodingCache.swift; sourceTree = ""; }; EBDE8674ED579EE94A0773028BD44AF1 /* CaseDefaultable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CaseDefaultable.swift; path = Sources/CleanJSON/CaseDefaultable.swift; sourceTree = ""; }; EC81D310210EE3584DF75E7C318F9318 /* EnumType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EnumType.swift; path = Source/EnumType.swift; sourceTree = ""; }; EE3F9FF6983083751E8AF8D756034C35 /* Pods-SmartCodable_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SmartCodable_Tests.release.xcconfig"; sourceTree = ""; }; EE7E7A774098C77B700C918B4B303354 /* BubbleTools.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleTools.swift; path = BTBubble/Classes/BubbleTools.swift; sourceTree = ""; }; EEAB8D6BB2A7369CCEF3D49B4BB21A9D /* CleanJSON-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CleanJSON-prefix.pch"; sourceTree = ""; }; - EF95E63E94508D503EF91C3979E7E53F /* SmartUpdater.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartUpdater.swift; sourceTree = ""; }; F09645CD0AE835FD6F2CC1C70F2768E6 /* BTBubble.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BTBubble.swift; path = BTBubble/Classes/BTBubble.swift; sourceTree = ""; }; - F0B31F796B3F901D513B0DB1DC7CAF6F /* ColorTransformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ColorTransformer.swift; sourceTree = ""; }; + F0F450922780708B9541AD6A7A61410D /* JSONSingleValueEncodingContainer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = JSONSingleValueEncodingContainer.swift; sourceTree = ""; }; F1F4D4D87CBE3DA68AFC92D6F05636AF /* ConstraintRelatableTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintRelatableTarget.swift; path = Sources/ConstraintRelatableTarget.swift; sourceTree = ""; }; F324FE66E2BF9B4B5B507729C64FD069 /* Typealiases.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Typealiases.swift; path = Sources/Typealiases.swift; sourceTree = ""; }; F3DD3A510DCBD287B46973C5625A7FB1 /* ConstraintAttributes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintAttributes.swift; path = Sources/ConstraintAttributes.swift; sourceTree = ""; }; - F85798E73883C3CB4ECFB41C332B52D1 /* SmartCaseDefaultable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartCaseDefaultable.swift; sourceTree = ""; }; F8C4BD4F4718E6FA4AC7DEA7CFD13293 /* FBSnapshotTestCase-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSnapshotTestCase-prefix.pch"; sourceTree = ""; }; F9693744257055D6E8D886301B98967F /* SnapKit.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SnapKit.release.xcconfig; sourceTree = ""; }; FA5EA7509BA3790A709778D9D36944E7 /* HandyJSON-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "HandyJSON-Info.plist"; sourceTree = ""; }; - FB38ADB32279317EB92A679387A36525 /* DecodingError+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "DecodingError+Extension.swift"; sourceTree = ""; }; + FB93516B5FEE2673DD4112C4C19269ED /* SmartKeyEncodingStrategy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SmartKeyEncodingStrategy.swift; sourceTree = ""; }; FCBDA27A176AE2D1C34BA797339DE8BB /* ConstraintMakerExtendable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerExtendable.swift; path = Sources/ConstraintMakerExtendable.swift; sourceTree = ""; }; FD311A04C42FFDF8D95E30DC09B7EA57 /* ConstraintMakerRelatable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerRelatable.swift; path = Sources/ConstraintMakerRelatable.swift; sourceTree = ""; }; FD9C9CD93F7F692FE8121F7F78EE6DB8 /* NSDecimalNumberTransform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NSDecimalNumberTransform.swift; path = Source/NSDecimalNumberTransform.swift; sourceTree = ""; }; FF1E4A64EAB2DB18EB9CAD95399FE5C9 /* SnapKit-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SnapKit-Info.plist"; sourceTree = ""; }; + FF57ABBF4AB784C9B328BD21A139C898 /* Patcher+Provider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Patcher+Provider.swift"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -528,27 +526,27 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 50308E260B9FA8E4E237EF74B1479856 /* Frameworks */ = { + 4E21D14BA31A839323049E583CD68090 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 1B8CE6509886B2FF237F5844B9C64C8B /* Foundation.framework in Frameworks */, + 84DE1F68AAD7608B90F722CDBA89C07C /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 5BFADEC849BD22C6CD97E83544F3E6C1 /* Frameworks */ = { + 50308E260B9FA8E4E237EF74B1479856 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 5CCB87A1A86D7C03A5D678B262B37071 /* Foundation.framework in Frameworks */, + 1B8CE6509886B2FF237F5844B9C64C8B /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - B549C176219747CA0C2983710C936CF7 /* Frameworks */ = { + 5BFADEC849BD22C6CD97E83544F3E6C1 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 794D9199F34D382CF8CC6AB58B68C34B /* Foundation.framework in Frameworks */, + 5CCB87A1A86D7C03A5D678B262B37071 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -590,6 +588,28 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 0136B0678F15F809D466BEBB4972B508 /* SmartAny */ = { + isa = PBXGroup; + children = ( + 51B6C75F066FAA243895E9E3EB08B73C /* SmartAny.swift */, + E3C4F0FDD9321196F06FE0753028108F /* SmartAnyImpl.swift */, + ); + name = SmartAny; + path = SmartAny; + sourceTree = ""; + }; + 02851DC399F60BDEF04197824FE8E5AB /* SmartCodable */ = { + isa = PBXGroup; + children = ( + ABE3271B97866AF6F870A5691943FC80 /* SmartCodable.swift */, + 7C65519E4A56E0CFE8B8EB8F77A80D8E /* SmartDecodable.swift */, + 84D5B1A2555C2CD23DAEC7D114D2DCFE /* SmartEncodable.swift */, + E4C481481BBE5337413ADE45E4580A7D /* SmartUpdater.swift */, + ); + name = SmartCodable; + path = SmartCodable/Classes/SmartCodable; + sourceTree = ""; + }; 049FFF5761BF7F049DF9C98EFCC022EF /* FBSnapshotTestCase */ = { isa = PBXGroup; children = ( @@ -601,15 +621,19 @@ path = FBSnapshotTestCase; sourceTree = ""; }; - 06F46E11376742989424F0E439D535BA /* Container */ = { + 0D698ABBB3592D5DAFB0359F0914934B /* Support Files */ = { isa = PBXGroup; children = ( - 1F026D009D5A16B0EB96E9D9640B14F5 /* JSONKeyedEncodingContainer.swift */, - 918C2952B3A694AE4780A2882FEA5586 /* JSONSingleValueEncodingContainer.swift */, - 2DF5CA96052CFD49E37C8F3895D6F622 /* JSONUnkeyedEncodingContainer.swift */, + AE31D5F2B934BD7E9748913B3EB90A1F /* SmartCodable.modulemap */, + C12B7783A29EB07C2AE0513F4BC5793A /* SmartCodable-dummy.m */, + 3C3128F1FE7F1807F89248B79D4316D9 /* SmartCodable-Info.plist */, + 7A38ACF5E6FC3B52B1853212683D4E1C /* SmartCodable-prefix.pch */, + 178A9D186E98578941FE9B0BE84B475B /* SmartCodable-umbrella.h */, + B05BE0E596907D498070C8AEC58CEFEA /* SmartCodable.debug.xcconfig */, + 401B50EE9846F3B76E6A65F4A84A8879 /* SmartCodable.release.xcconfig */, ); - name = Container; - path = Container; + name = "Support Files"; + path = "Example/Pods/Target Support Files/SmartCodable"; sourceTree = ""; }; 0E4E1A9219322C33F239A78C7F5E2F3B /* SwiftSupport */ = { @@ -620,16 +644,6 @@ name = SwiftSupport; sourceTree = ""; }; - 135AA065B5D62A459A911BBD806B3A5E /* Impl */ = { - isa = PBXGroup; - children = ( - 5162CB4F98F37A87A97125818F24512B /* _SpecialTreatmentEncoder.swift */, - E1BB33412B7E1A67F04BF3D69CA89652 /* JSONEncoderImpl.swift */, - ); - name = Impl; - path = Impl; - sourceTree = ""; - }; 16C17349BA1B06E17DADE08F8DFF5502 /* Targets Support Files */ = { isa = PBXGroup; children = ( @@ -654,17 +668,18 @@ path = "../Target Support Files/BTPrint"; sourceTree = ""; }; - 26E5AE28914C98E0FFEA4A2027AD346F /* Sentinel */ = { + 2C3001410BBAE29D5CDB2A4C4574C664 /* JSONEncoder */ = { isa = PBXGroup; children = ( - 8D6904C04048BD3A2E9B80921993462F /* LogCache.swift */, - A73FCF3B5891253C6478A3D12CFDBE68 /* LogContainer.swift */, - 40491AB375AEFF3B509F69415E9A44EF /* LogItem.swift */, - 0A8C0616AA7CF9108EACC820D024F465 /* SafeDictionary.swift */, - C1D10B851C16AD7C977E90C34FBBDFE6 /* SmartSentinel.swift */, + D82F7F4161783431D206633B0570363A /* EncodingCache.swift */, + 635DFDD78D3B48C16095B4A1042B13B8 /* JSONFuture.swift */, + 6F18B3DF5DD02DF9D600AA829350ABCD /* SmartJSONEncoder.swift */, + FB93516B5FEE2673DD4112C4C19269ED /* SmartKeyEncodingStrategy.swift */, + 7C87562B0BD67DCFD95B361B3EE7D9D0 /* Container */, + 9A3A561580411995013E67C7C5C29252 /* Impl */, ); - name = Sentinel; - path = SmartCodable/Classes/Sentinel; + name = JSONEncoder; + path = SmartCodable/Classes/JSONEncoder; sourceTree = ""; }; 31D698C122DAC16CE786204DDC7267E6 /* Products */ = { @@ -683,20 +698,6 @@ name = Products; sourceTree = ""; }; - 35DD24CFA64209E3C75A29FAF2E3EB40 /* Decoder */ = { - isa = PBXGroup; - children = ( - D87779293C433C7E825B558FDE7CE54B /* DecodingCache.swift */, - FB38ADB32279317EB92A679387A36525 /* DecodingError+Extension.swift */, - 6FCE53EF9EAA518B97A59677EAD6A5D2 /* KeysMapper.swift */, - 03664B53C0720F6FFC0D5517C0EF4798 /* SmartJSONDecoder.swift */, - 66E2E2E4EE758586AE4B5283593B9331 /* SmartKeyDecodingStrategy.swift */, - EE9770A841CAC44133F6594B9C884D16 /* Impl */, - ); - name = Decoder; - path = Decoder; - sourceTree = ""; - }; 37704050BE514436D26A3EB63D42197C /* Support Files */ = { isa = PBXGroup; children = ( @@ -712,39 +713,6 @@ path = "../Target Support Files/HandyJSON"; sourceTree = ""; }; - 3B0CF92FF8123F127DDAA454DFC97999 /* SmartType */ = { - isa = PBXGroup; - children = ( - B661229FD9971281B1CE417B935DFD7E /* IgnoredKey.swift */, - F85798E73883C3CB4ECFB41C332B52D1 /* SmartCaseDefaultable.swift */, - DC3140C5434B756320ACCE19D3051A73 /* SmartColor.swift */, - 76EE4E69006CE4D7E200C678B0FB3B9F /* SmartFlat.swift */, - E94AB5721847B230B33159C24B210CCB /* SmartPublished.swift */, - 9F145B564C81945798F62EC833847A5B /* SmartAny */, - ); - name = SmartType; - path = SmartCodable/Classes/SmartType; - sourceTree = ""; - }; - 3B358D186C57D5728688852BA31DBB70 /* Pod */ = { - isa = PBXGroup; - children = ( - 43EF6118CA1A7FD446BE01A4548145CF /* LICENSE */, - 963E1082E58E8C89BF62898F6EE182D1 /* README.md */, - 5D24E777C9745397E2AC40DD13AFCF5A /* SmartCodable.podspec */, - ); - name = Pod; - sourceTree = ""; - }; - 415C47B1225B255926629DA251133050 /* Cache */ = { - isa = PBXGroup; - children = ( - C32DA472567097CA63E2CA9BC25E631E /* Cachable.swift */, - ); - name = Cache; - path = SmartCodable/Classes/Cache; - sourceTree = ""; - }; 4261FFE260332A8857E6A48C5BD8E0CB /* HandyJSON */ = { isa = PBXGroup; children = ( @@ -790,20 +758,6 @@ path = HandyJSON; sourceTree = ""; }; - 42A5EB6B93C4417364AADDD2C6C64C19 /* JSONEncoder */ = { - isa = PBXGroup; - children = ( - EBBDAE9601B839AB060BEFF788396B73 /* EncodingCache.swift */, - 6C555E5FE2484861474AE2FFD550D743 /* JSONFuture.swift */, - EAD248237346D4A9D1139F45B1056DAB /* SmartJSONEncoder.swift */, - CA604F68E8CAFBA4F058C1D8BF0EE02B /* SmartKeyEncodingStrategy.swift */, - 06F46E11376742989424F0E439D535BA /* Container */, - 135AA065B5D62A459A911BBD806B3A5E /* Impl */, - ); - name = JSONEncoder; - path = SmartCodable/Classes/JSONEncoder; - sourceTree = ""; - }; 47E83401A7A3D80C30C5C1DF7F4429F2 /* BTBubble */ = { isa = PBXGroup; children = ( @@ -821,13 +775,39 @@ path = BTBubble; sourceTree = ""; }; - 6FDD4C8E5CCD853880B947FCE26EBFD2 /* JSONValue */ = { + 4D40643110098AC03C1AD5F4AFEB4851 /* Transformer */ = { + isa = PBXGroup; + children = ( + 83DEE370AC60A6033C9847F779C346FF /* ColorTransformer.swift */, + 964680D0DEB411E48560E6EA1308BBA1 /* DataTransformer.swift */, + 1018291528DE7C221F8A61E3F4F2C281 /* DateTransformer.swift */, + 8EED235A212030C1289F685C29DBCA61 /* Transformer.swift */, + A96A9755F10AEE7996C2DF74B9525ABE /* URLTransformer.swift */, + ); + name = Transformer; + path = SmartCodable/Classes/Transformer; + sourceTree = ""; + }; + 5CD7C29E3B565B1E0EC44B8CE2214B95 /* SmartType */ = { + isa = PBXGroup; + children = ( + 4430D68D17A83EF9562C78A764F38698 /* IgnoredKey.swift */, + 487FC6D5FA076528735E6C72BF0F7B74 /* SmartCaseDefaultable.swift */, + D1F2541C89A68637C51EDA21FBB5F44E /* SmartColor.swift */, + 9108626D433AB91CD2BBD227F0F5F101 /* SmartFlat.swift */, + 63B7AF1541DDEE29148AD4B96C157537 /* SmartPublished.swift */, + 0136B0678F15F809D466BEBB4972B508 /* SmartAny */, + ); + name = SmartType; + path = SmartCodable/Classes/SmartType; + sourceTree = ""; + }; + 5D54DFDD9EFEB80B5CEF73667154C86E /* JSONValue */ = { isa = PBXGroup; children = ( - 5966D17C006F5D41D102BE6BD83B178F /* JSONParser.swift */, - 0CDA7F82D0712E740E87005101153854 /* JSONValue.swift */, - D1EAB14035730D31B3EB58074287E4FC /* JSONValue+Extension.swift */, - 2D17FD3037F7B3F7671B2BADE43B66ED /* JSONWriter.swift */, + 794428B9BFA06BC14B1F0E6535503210 /* JSONParser.swift */, + 52D276E5158A902D530CD64A969DEFE2 /* JSONValue.swift */, + 3BD411298870436EF9D3DC204D3FD6AD /* JSONValue+Extension.swift */, ); name = JSONValue; path = SmartCodable/Classes/JSONValue; @@ -836,11 +816,22 @@ 732A086ECC941D37A14E38C56E1A9B2A /* Development Pods */ = { isa = PBXGroup; children = ( - F5F7A7DAE9AA2F6C7034C5AFC983FE61 /* SmartCodable */, + A70C2343697B41880D1C7864CA8DCE97 /* SmartCodable */, ); name = "Development Pods"; sourceTree = ""; }; + 7C87562B0BD67DCFD95B361B3EE7D9D0 /* Container */ = { + isa = PBXGroup; + children = ( + 2C5F3E466D53DA58B6D49CA02369F254 /* JSONKeyedEncodingContainer.swift */, + F0F450922780708B9541AD6A7A61410D /* JSONSingleValueEncodingContainer.swift */, + C91E3DAF9B4402C695FD80133DBB4D66 /* JSONUnkeyedEncodingContainer.swift */, + ); + name = Container; + path = Container; + sourceTree = ""; + }; 7E972BBD4D0CAB239B62B38A7CFE09A9 /* Support Files */ = { isa = PBXGroup; children = ( @@ -856,6 +847,15 @@ path = "../Target Support Files/FBSnapshotTestCase"; sourceTree = ""; }; + 7FCB3D74C6EE95D0B3A49A75AFA05B5A /* Cache */ = { + isa = PBXGroup; + children = ( + 68BAB753E2517C4180ACA27A811BE345 /* Cachable.swift */, + ); + name = Cache; + path = SmartCodable/Classes/Cache; + sourceTree = ""; + }; 8589C51E960CB6893CA744448B6E7B26 /* Support Files */ = { isa = PBXGroup; children = ( @@ -871,26 +871,17 @@ path = "../Target Support Files/BTBubble"; sourceTree = ""; }; - 8FD9EE56724632490B0FCE4190A613AB /* SmartCodable */ = { + 88DB690B15211C5BE10D2C8CAA0E205D /* Impl */ = { isa = PBXGroup; children = ( - 7B05B4814F0678A05723C5F3155738B5 /* SmartCodable.swift */, - 51B6C23C5815A8FBF8C6BFFB3BBF3AEA /* SmartDecodable.swift */, - 09C78679325D24757653EA095F9DB066 /* SmartEncodable.swift */, - EF95E63E94508D503EF91C3979E7E53F /* SmartUpdater.swift */, + 0A6ECDF95AF98721811CDB5260DE2F5C /* JSONDecoderImpl.swift */, + 1A81CF3734C4F53838DA3AD603D13CA4 /* JSONDecoderImpl+KeyedContainer.swift */, + E76975EB5B6D60E7201DA4513EA01251 /* JSONDecoderImpl+SingleValueContainer.swift */, + 844CE6BE5F6DFD8D3B7C4109FBDF37B6 /* JSONDecoderImpl+UnkeyedContainer.swift */, + 7D8974A6896BAEC05098DF2E66F51C2B /* JSONDecoderImpl+Unwrap.swift */, ); - name = SmartCodable; - path = SmartCodable/Classes/SmartCodable; - sourceTree = ""; - }; - 98031BCB5D9A6241C6BBF90131EDC05F /* JSONDecoder */ = { - isa = PBXGroup; - children = ( - 35DD24CFA64209E3C75A29FAF2E3EB40 /* Decoder */, - E86ABEF8D90B8EA03504A1D843A6760A /* Patcher */, - ); - name = JSONDecoder; - path = SmartCodable/Classes/JSONDecoder; + name = Impl; + path = Impl; sourceTree = ""; }; 98C45354D057DFD460070868850871E7 /* Support Files */ = { @@ -908,50 +899,50 @@ path = "../Target Support Files/CleanJSON"; sourceTree = ""; }; - 9F145B564C81945798F62EC833847A5B /* SmartAny */ = { + 9A3A561580411995013E67C7C5C29252 /* Impl */ = { isa = PBXGroup; children = ( - 84FC4A0D1797B5871ADD16231E807718 /* SmartAny.swift */, - 81B7D92956C46531487C540A5F209EAD /* SmartAnyImpl.swift */, + 9BC595ECE107D44C6F4BF5ED399C4ADD /* _SpecialTreatmentEncoder.swift */, + 9224B4149A703E066CE617BE68BD5765 /* JSONEncoderImpl.swift */, ); - name = SmartAny; - path = SmartAny; + name = Impl; + path = Impl; sourceTree = ""; }; - ABE2458ADEE854E64128515E93328A5D /* Support Files */ = { + A70C2343697B41880D1C7864CA8DCE97 /* SmartCodable */ = { isa = PBXGroup; children = ( - 9EDA7FB9B8774CA143EE790ECF838CCE /* SmartCodable.modulemap */, - 155A73EF92236991ADC77A86DC2B0216 /* SmartCodable-dummy.m */, - 38E895FA612C35C52AD3DD3BE458ACF6 /* SmartCodable-Info.plist */, - 14A724DAEDC2B97E89CC77278069C104 /* SmartCodable-prefix.pch */, - 89387D349D98F221987B21CD9FD2509E /* SmartCodable-umbrella.h */, - 0EE1DE92831D33349BC6D75FF8B91642 /* SmartCodable.debug.xcconfig */, - 617A9D6F44CE122BD389D45A8D54FF3D /* SmartCodable.release.xcconfig */, + 7FCB3D74C6EE95D0B3A49A75AFA05B5A /* Cache */, + ECD51CE0FFBAD9A7764648C4E3D4026B /* JSONDecoder */, + 2C3001410BBAE29D5CDB2A4C4574C664 /* JSONEncoder */, + 5D54DFDD9EFEB80B5CEF73667154C86E /* JSONValue */, + AB6F8BCE1012AF1747674AE20444AE0A /* Pod */, + E0BB31D6BB4A9634E896F7F3AE107403 /* Sentinel */, + 02851DC399F60BDEF04197824FE8E5AB /* SmartCodable */, + 5CD7C29E3B565B1E0EC44B8CE2214B95 /* SmartType */, + 0D698ABBB3592D5DAFB0359F0914934B /* Support Files */, + 4D40643110098AC03C1AD5F4AFEB4851 /* Transformer */, ); - name = "Support Files"; - path = "Example/Pods/Target Support Files/SmartCodable"; + name = SmartCodable; + path = ../..; sourceTree = ""; }; - BA4F31F07263C99FC76E66D632A59F09 /* Frameworks */ = { + AB6F8BCE1012AF1747674AE20444AE0A /* Pod */ = { isa = PBXGroup; children = ( - FB2668559AE577E6E8078C0C291AD417 /* iOS */, + 585D7BA67351926A54D86DD772CBB611 /* LICENSE */, + 544CD7182D0088E797C25D6D1C8C0756 /* README.md */, + 2D82C310425E9E959CD9D681F43C73DB /* SmartCodable.podspec */, ); - name = Frameworks; + name = Pod; sourceTree = ""; }; - BB41F3BF602264B415EFE4FADAE9F1B7 /* Transformer */ = { + BA4F31F07263C99FC76E66D632A59F09 /* Frameworks */ = { isa = PBXGroup; children = ( - F0B31F796B3F901D513B0DB1DC7CAF6F /* ColorTransformer.swift */, - CC6B0D49BFFE1F673DE0D499AAE0FAB8 /* DataTransformer.swift */, - 3477ED37FA2B23796E558133A3A6C34B /* DateTransformer.swift */, - AE1EDB44EA74271C582EFDD9ED5046CE /* Transformer.swift */, - 22A1467BB3437DC256E5EE84BF199E84 /* URLTransformer.swift */, + FB2668559AE577E6E8078C0C291AD417 /* iOS */, ); - name = Transformer; - path = SmartCodable/Classes/Transformer; + name = Frameworks; sourceTree = ""; }; CCE6F2769C982E839E4E6CB9D554361C /* Pods-SmartCodable_Example */ = { @@ -1004,6 +995,20 @@ name = Core; sourceTree = ""; }; + D34ECDD6F26A5768E84E0C98A8D97E74 /* Decoder */ = { + isa = PBXGroup; + children = ( + E2A1EB64C98AA612AC7B0026CEA1E2A2 /* DecodingCache.swift */, + 5B9F506FCA48840DE6105539D99F1F51 /* DecodingError+Extension.swift */, + 2BD341AD5435F669B3FF16E1BE1CFE3E /* KeysMapper.swift */, + C38D95DDE8138760A794FC6F454C5C8D /* SmartJSONDecoder.swift */, + 745CCCC5179D7780155B11928DF9F880 /* SmartKeyDecodingStrategy.swift */, + 88DB690B15211C5BE10D2C8CAA0E205D /* Impl */, + ); + name = Decoder; + path = Decoder; + sourceTree = ""; + }; D5089C05AA8DF4AEE19DA89A217C7CD8 /* Support Files */ = { isa = PBXGroup; children = ( @@ -1065,28 +1070,38 @@ path = SnapKit; sourceTree = ""; }; - E86ABEF8D90B8EA03504A1D843A6760A /* Patcher */ = { + E0BB31D6BB4A9634E896F7F3AE107403 /* Sentinel */ = { isa = PBXGroup; children = ( - BED04CDF8E4E52D254C5C8F89E30867A /* Patcher.swift */, - 07AA2986E59211D6FA2AC4D35D2A58EB /* Patcher+Provider.swift */, - EA6A1B68AFC338B3960A84421346BA2D /* Patcher+Transformer.swift */, + D3DC631E699AA29550F778204DEC0C81 /* LogCache.swift */, + 199D025B9E1D1BEFD83DBCBF7BA20271 /* LogContainer.swift */, + 3C6FD547CB3C95AA2B6C5BC4AA5729A5 /* LogItem.swift */, + 4C2EBBA575674203681CA88681245D9C /* SafeDictionary.swift */, + CFDFCFA070C53E5A4173B347FFB68911 /* SmartSentinel.swift */, ); - name = Patcher; - path = Patcher; + name = Sentinel; + path = SmartCodable/Classes/Sentinel; sourceTree = ""; }; - EE9770A841CAC44133F6594B9C884D16 /* Impl */ = { + ECD51CE0FFBAD9A7764648C4E3D4026B /* JSONDecoder */ = { isa = PBXGroup; children = ( - 1B89EA598C9073DF9F5DFA0ED4B1B48E /* JSONDecoderImpl.swift */, - 218A6785E745A0A71499860909D719E6 /* JSONDecoderImpl+KeyedContainer.swift */, - 21AFA09203500AA39D2945046B979684 /* JSONDecoderImpl+SingleValueContainer.swift */, - 033B089F82DF64A6114E65701A9A84F8 /* JSONDecoderImpl+UnkeyedContainer.swift */, - 523470A4D595E1EC59C815C53DC9CF01 /* JSONDecoderImpl+Unwrap.swift */, + D34ECDD6F26A5768E84E0C98A8D97E74 /* Decoder */, + F0155372E63853E3F19668376637BC26 /* Patcher */, ); - name = Impl; - path = Impl; + name = JSONDecoder; + path = SmartCodable/Classes/JSONDecoder; + sourceTree = ""; + }; + F0155372E63853E3F19668376637BC26 /* Patcher */ = { + isa = PBXGroup; + children = ( + 45EBDB386C01C541AF2451CE917CDEDB /* Patcher.swift */, + FF57ABBF4AB784C9B328BD21A139C898 /* Patcher+Provider.swift */, + 9A2E4BF5241D8BF77811B89131F94EEE /* Patcher+Transformer.swift */, + ); + name = Patcher; + path = Patcher; sourceTree = ""; }; F02A47C6E8279678BBAFA51319D05818 /* BTPrint */ = { @@ -1100,24 +1115,6 @@ path = BTPrint; sourceTree = ""; }; - F5F7A7DAE9AA2F6C7034C5AFC983FE61 /* SmartCodable */ = { - isa = PBXGroup; - children = ( - 415C47B1225B255926629DA251133050 /* Cache */, - 98031BCB5D9A6241C6BBF90131EDC05F /* JSONDecoder */, - 42A5EB6B93C4417364AADDD2C6C64C19 /* JSONEncoder */, - 6FDD4C8E5CCD853880B947FCE26EBFD2 /* JSONValue */, - 3B358D186C57D5728688852BA31DBB70 /* Pod */, - 26E5AE28914C98E0FFEA4A2027AD346F /* Sentinel */, - 8FD9EE56724632490B0FCE4190A613AB /* SmartCodable */, - 3B0CF92FF8123F127DDAA454DFC97999 /* SmartType */, - ABE2458ADEE854E64128515E93328A5D /* Support Files */, - BB41F3BF602264B415EFE4FADAE9F1B7 /* Transformer */, - ); - name = SmartCodable; - path = ../..; - sourceTree = ""; - }; F6CB312492D55F536B99CE8051B6012A /* CleanJSON */ = { isa = PBXGroup; children = ( @@ -1204,6 +1201,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 64BDDEEF47220D5032B4A284B48A69C7 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 9977413756D662A41D937690F2D6800F /* SmartCodable-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 6C3C91A7C16EB76DB0CC1630F820D39C /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -1245,14 +1250,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - A5FE094323CEF3602B6D075C3CCD7C53 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 228004488926895425CDF2103D9A9380 /* SmartCodable-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; D4CF7A53AFE8275DDE075747E8245F97 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -1283,8 +1280,8 @@ buildRules = ( ); dependencies = ( - A36503B60D76F1779CF721203499DA4F /* PBXTargetDependency */, - 2C119BC4AEC89E30D555B38FC18C371B /* PBXTargetDependency */, + 8ACE8F3CCAAD63E2C5ED589B6ECD60FF /* PBXTargetDependency */, + 81B7EF864F13FEF2D6468E19DA07B7D6 /* PBXTargetDependency */, ); name = "Pods-SmartCodable_Tests"; productName = Pods_SmartCodable_Tests; @@ -1411,12 +1408,12 @@ buildRules = ( ); dependencies = ( - E403FF8866FC0951479AFE3300FFB02A /* PBXTargetDependency */, - B4EBE0CE3C0B18DF77929EE42B2C0C4B /* PBXTargetDependency */, - 36BBC9EB99A88C4BCB8F8069E2635C3F /* PBXTargetDependency */, - B83B9928CB5C20C09CB9DDBD561A1DFA /* PBXTargetDependency */, - 78A30A739F360280F0BB3E304480B4F5 /* PBXTargetDependency */, - A3A034A66135D5962AED86ADED27FC18 /* PBXTargetDependency */, + 8D1C064559043CFF4F295BF0C6BBFD1F /* PBXTargetDependency */, + 5851121E49511E096BC8A4C27658D4E6 /* PBXTargetDependency */, + 95C5DD470273062AEEB98F4DA114AC5C /* PBXTargetDependency */, + 0BBB9D4924F561F74BAF0D5C29516313 /* PBXTargetDependency */, + 0C4110AD88760BDA00EB0EE1A0446C76 /* PBXTargetDependency */, + A755444B21D4FD98C3F99BF36F55AC86 /* PBXTargetDependency */, ); name = "Pods-SmartCodable_Example"; productName = Pods_SmartCodable_Example; @@ -1425,12 +1422,12 @@ }; BD33823B9D08265B6F1D35EC259EE307 /* SmartCodable */ = { isa = PBXNativeTarget; - buildConfigurationList = 1EB80B506E43BD8A1360F5F342A204B9 /* Build configuration list for PBXNativeTarget "SmartCodable" */; + buildConfigurationList = 22DD10167A2B123780E154762912B52F /* Build configuration list for PBXNativeTarget "SmartCodable" */; buildPhases = ( - A5FE094323CEF3602B6D075C3CCD7C53 /* Headers */, - 871129A80F79107265B28DD6AED2E86A /* Sources */, - B549C176219747CA0C2983710C936CF7 /* Frameworks */, - C0013AE70C8B113B6F5EFA2A434FC75B /* Resources */, + 64BDDEEF47220D5032B4A284B48A69C7 /* Headers */, + F4B325887958C56982FE4ABB576C0163 /* Sources */, + 4E21D14BA31A839323049E583CD68090 /* Frameworks */, + 1C21B31657C857AE0563AECEB45F0803 /* Resources */, ); buildRules = ( ); @@ -1484,49 +1481,49 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 2886C17DCA290DD2A69809B2A11C7131 /* Resources */ = { + 1C21B31657C857AE0563AECEB45F0803 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 309E6D99CF592827D0313395BFE254BA /* Resources */ = { + 2886C17DCA290DD2A69809B2A11C7131 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 430B97B1FAF95E5BFF9DB5CFC91A5D7D /* Resources */ = { + 309E6D99CF592827D0313395BFE254BA /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 7BBEEC7A97C07C1990B46249A15F7AFF /* Resources */ = { + 430B97B1FAF95E5BFF9DB5CFC91A5D7D /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 820C67429A90336F5AF1C850DF03B1B9 /* Resources */ = { + 7BBEEC7A97C07C1990B46249A15F7AFF /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - B2F14DBF469CA27BCA557E279D69A1D6 /* Resources */ = { + 820C67429A90336F5AF1C850DF03B1B9 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - C0013AE70C8B113B6F5EFA2A434FC75B /* Resources */ = { + B2F14DBF469CA27BCA557E279D69A1D6 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -1645,62 +1642,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 871129A80F79107265B28DD6AED2E86A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4BFBCDFC9FF6D5CAED9A41ED84387A72 /* _SpecialTreatmentEncoder.swift in Sources */, - 625BCE2D53B6D00C37936C5CBBD36756 /* Cachable.swift in Sources */, - A5834081BBDEA433F6B4BD8F0EE47317 /* ColorTransformer.swift in Sources */, - A3BEE29906485EEC224CA2EDD7978E8E /* DataTransformer.swift in Sources */, - 36F46ABAAE95639A59E2D068CDB1C3E2 /* DateTransformer.swift in Sources */, - 4637B829C0624EB76090FBF856E0C251 /* DecodingCache.swift in Sources */, - 1EAECB45CD9E83E62502BF2591144CEC /* DecodingError+Extension.swift in Sources */, - 80B4C95EF35DBFB5D289EB6AD5D50457 /* EncodingCache.swift in Sources */, - 722018FBCA9686E3ADF34FC41A73501F /* IgnoredKey.swift in Sources */, - 26564EBB9846B2FE850A0F62E775C8A8 /* JSONDecoderImpl.swift in Sources */, - EE73660F1E3072480E2C323EC4E60345 /* JSONDecoderImpl+KeyedContainer.swift in Sources */, - A68A20041E0B60BE013798F925C550DC /* JSONDecoderImpl+SingleValueContainer.swift in Sources */, - 096895C4EDA8FEC03C183D335A05FB23 /* JSONDecoderImpl+UnkeyedContainer.swift in Sources */, - 763F83E0CA344D57980186AD3E5DBA54 /* JSONDecoderImpl+Unwrap.swift in Sources */, - F4EFFA3F4E60CDDFCFF6C1E8CB029BC0 /* JSONEncoderImpl.swift in Sources */, - A857817A062B32AC1E7D7AA326F18698 /* JSONFuture.swift in Sources */, - 8F39A7CA6AE3156496336936A24EC65C /* JSONKeyedEncodingContainer.swift in Sources */, - 24E70C36A7CB4CA5D9B6CB677F2D2728 /* JSONParser.swift in Sources */, - 6C9770046E286AAE509F083D3B85B242 /* JSONSingleValueEncodingContainer.swift in Sources */, - 547E7EF1A3DA3E561B4FEF7510CF9E41 /* JSONUnkeyedEncodingContainer.swift in Sources */, - A9C8C93A116E426D989EB9C8609ECA61 /* JSONValue.swift in Sources */, - 23AAE2971CCC74E794AF2328EB65D836 /* JSONValue+Extension.swift in Sources */, - 084D108D436DA6B6B8FC9850D2086443 /* JSONWriter.swift in Sources */, - 30D545828F37EA7B66B79AE86D507584 /* KeysMapper.swift in Sources */, - 52F24A4FE94FBB51CDCE602561D46CAD /* LogCache.swift in Sources */, - C0BBCC0CE9293DD2DD5682133AA2A1E9 /* LogContainer.swift in Sources */, - 87667AFE08FFF33269FB42AB4C37C45A /* LogItem.swift in Sources */, - 2044A038DBC8E19B813A430EA6D9B437 /* Patcher.swift in Sources */, - EE61BB32D52007F8284773F7F7030A5C /* Patcher+Provider.swift in Sources */, - 12739744FC59B2BA3D42F8216EEAFC41 /* Patcher+Transformer.swift in Sources */, - 2A142EAB062756F8F9CC1FE71B9610CA /* SafeDictionary.swift in Sources */, - 133567F004C78914FB5205F5CC1B82EB /* SmartAny.swift in Sources */, - AE94F4B2F792512272162C24C5CAD91E /* SmartAnyImpl.swift in Sources */, - E83892BC498D15C301F3B3F425EEE241 /* SmartCaseDefaultable.swift in Sources */, - BAB010FC049E014E07E4CBEDC2BF6396 /* SmartCodable.swift in Sources */, - 2FAEC6A1B5A4C5237BB74BF75A8E5D61 /* SmartCodable-dummy.m in Sources */, - 625FFD4EE6C8565BDBC5A6F8C5739169 /* SmartColor.swift in Sources */, - 35B1FBE57595C1A531B1D9FE909C4CC0 /* SmartDecodable.swift in Sources */, - DD4BA93D7BDF0219D80EC1EC40CCB596 /* SmartEncodable.swift in Sources */, - 272DE28669A14695C4061276553DB045 /* SmartFlat.swift in Sources */, - B145A4BEE40ECF8AF2C74C5F0586508B /* SmartJSONDecoder.swift in Sources */, - DC892CA883C95756F98303007C57671D /* SmartJSONEncoder.swift in Sources */, - 6CD576650BDAAA2F955471CA78716F92 /* SmartKeyDecodingStrategy.swift in Sources */, - 1AC68B5CEE2AA4031ADDA01B4BFF3BB4 /* SmartKeyEncodingStrategy.swift in Sources */, - EAFD5AC0DCF7826F96EE1ADA4878A295 /* SmartPublished.swift in Sources */, - 22734961CD0BD3FD8CFB2F6C356692A2 /* SmartSentinel.swift in Sources */, - 8E6A5365FE174B1F2298C6C99994CCF3 /* SmartUpdater.swift in Sources */, - 2C716E5DC995E513D1022CA43394B285 /* Transformer.swift in Sources */, - 1FD44D39173AC5531698B93939083652 /* URLTransformer.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; B186292004011247A56FAC41B9D6C6A2 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1770,56 +1711,111 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + F4B325887958C56982FE4ABB576C0163 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AD1EE7CC87C93332F5AD48923095813A /* _SpecialTreatmentEncoder.swift in Sources */, + D028BE5D10696D2B2D97278E5C1E48F4 /* Cachable.swift in Sources */, + FB6786719995F4DAF7A0860BE19EA3AE /* ColorTransformer.swift in Sources */, + 7C20CB4D32598EB8DC1CA32148EDC95B /* DataTransformer.swift in Sources */, + 5331E2D70D195DFA810B049A2E681613 /* DateTransformer.swift in Sources */, + B1A8F29247E0835CE3960D8B3D97DDC3 /* DecodingCache.swift in Sources */, + 445EFD6A22E692ABA432D43356CDE89C /* DecodingError+Extension.swift in Sources */, + CE905030CDD70D14B12169FBE0B07273 /* EncodingCache.swift in Sources */, + 3E7B38BCF992DC94140675B009003976 /* IgnoredKey.swift in Sources */, + C303E4394549FED7AB7D44811C8C6F0E /* JSONDecoderImpl.swift in Sources */, + B54C0572EE09642087E444002BE3D7AE /* JSONDecoderImpl+KeyedContainer.swift in Sources */, + B88BD92288725C25C9069BE8483D35CD /* JSONDecoderImpl+SingleValueContainer.swift in Sources */, + 1454F1E3D583CB295E1685A741781F76 /* JSONDecoderImpl+UnkeyedContainer.swift in Sources */, + D7F34A490D99947186A2786FC5795A2C /* JSONDecoderImpl+Unwrap.swift in Sources */, + 0685F8722EB3B3A448A709E41F08AB03 /* JSONEncoderImpl.swift in Sources */, + A184A6AD8E943ECDBD61BC42D030F77C /* JSONFuture.swift in Sources */, + A8605588EEF7472EF69BD4F81CE77D36 /* JSONKeyedEncodingContainer.swift in Sources */, + C128BF84CECF246BF175DFC04C67A320 /* JSONParser.swift in Sources */, + 627A98068E27FF3D5E78844516515AF1 /* JSONSingleValueEncodingContainer.swift in Sources */, + 4AB4B731721A260628ADC7B258C9C9E1 /* JSONUnkeyedEncodingContainer.swift in Sources */, + 4CB7048A9A2EA5FAD1FB795619DBBC51 /* JSONValue.swift in Sources */, + 8875A9F58001358AB91DF5544679328F /* JSONValue+Extension.swift in Sources */, + C6020B099DB841D2B8D0AE2B63F111FE /* KeysMapper.swift in Sources */, + F78659B8EF4ED63CBAFF926ACB79A252 /* LogCache.swift in Sources */, + BE4F7F3741230D0A5FB159CCC14536ED /* LogContainer.swift in Sources */, + 048A142BB6811C52B689CED962272328 /* LogItem.swift in Sources */, + 88FD73CBB2F531EB71CDFD426DA4C761 /* Patcher.swift in Sources */, + 807DC47184212EBBC7DA925026A86084 /* Patcher+Provider.swift in Sources */, + FC6A9E289CD6EAD053A8901587B8CA81 /* Patcher+Transformer.swift in Sources */, + 415DDC5AE04100F3017B28479985416B /* SafeDictionary.swift in Sources */, + A790758FAC80FA22D4BD03A8AF178951 /* SmartAny.swift in Sources */, + 7C301F44CEAE3DE97B05A3D78AA83214 /* SmartAnyImpl.swift in Sources */, + 16CE5D7DE4EA429B2A4FE4C212318F6F /* SmartCaseDefaultable.swift in Sources */, + AF112BDAC0882286832B70F2127E766C /* SmartCodable.swift in Sources */, + 2E048B2C14492BBCF05F92B565FE8ED1 /* SmartCodable-dummy.m in Sources */, + F21D876FE0E83818A9399C8D8FEE164A /* SmartColor.swift in Sources */, + 2634ED6D3DF68947E294EB5ABF954CD9 /* SmartDecodable.swift in Sources */, + 4291B84DF980A7F858C9250E361E1152 /* SmartEncodable.swift in Sources */, + 815872EF86A5ECCD7A10F8A2F8F214FD /* SmartFlat.swift in Sources */, + 2BABA99C97522114682D00B4B9CE2084 /* SmartJSONDecoder.swift in Sources */, + B3EB24F8E7B4FA97AA788233F48B6583 /* SmartJSONEncoder.swift in Sources */, + EE76195610D0B486934862F1B583A9A5 /* SmartKeyDecodingStrategy.swift in Sources */, + C23D870B9EDED2D187ADEB45C01C01DE /* SmartKeyEncodingStrategy.swift in Sources */, + 56200A90E4D2621498A1D3B1DF2E2554 /* SmartPublished.swift in Sources */, + 630DE6C3E85E7C565A7F0672300DB832 /* SmartSentinel.swift in Sources */, + 860335F9B4688E4C83AF27F4FCB910DF /* SmartUpdater.swift in Sources */, + 3DFC7BD447865207753DCC11D7F7BFF6 /* Transformer.swift in Sources */, + 0BD9AEE7C63D79CB5D7C5DAFCA2B1702 /* URLTransformer.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 2C119BC4AEC89E30D555B38FC18C371B /* PBXTargetDependency */ = { + 0BBB9D4924F561F74BAF0D5C29516313 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "Pods-SmartCodable_Example"; - target = B8474377209826CA7C2ADD548D40C1EA /* Pods-SmartCodable_Example */; - targetProxy = DE0BD8FF6086F1669DFFE2A7D3867D56 /* PBXContainerItemProxy */; - }; - 36BBC9EB99A88C4BCB8F8069E2635C3F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = CleanJSON; - target = 300904838EEDDC3BB8242817D8F97CB6 /* CleanJSON */; - targetProxy = B53EA5CAFFA0FC8A228BCF81404C39E4 /* PBXContainerItemProxy */; + name = HandyJSON; + target = 10D88C24864319FF583AD6D156896F32 /* HandyJSON */; + targetProxy = 6DD2498BDAD565ACEE78DFBD7A7E9928 /* PBXContainerItemProxy */; }; - 78A30A739F360280F0BB3E304480B4F5 /* PBXTargetDependency */ = { + 0C4110AD88760BDA00EB0EE1A0446C76 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = SmartCodable; target = BD33823B9D08265B6F1D35EC259EE307 /* SmartCodable */; - targetProxy = 02B934EF082A92CCBF48CA4DB7845BBD /* PBXContainerItemProxy */; - }; - A36503B60D76F1779CF721203499DA4F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = FBSnapshotTestCase; - target = 98A98149697C80CEF8D5772791E92E66 /* FBSnapshotTestCase */; - targetProxy = 9E34C15EE3E96CE52ADA7AAA0F2CB628 /* PBXContainerItemProxy */; + targetProxy = 0861B8DDC7D3A547131E314A010C44A7 /* PBXContainerItemProxy */; }; - A3A034A66135D5962AED86ADED27FC18 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SnapKit; - target = 19622742EBA51E823D6DAE3F8CDBFAD4 /* SnapKit */; - targetProxy = 5496F6EBAD75B49DFD30483EE62E43AD /* PBXContainerItemProxy */; - }; - B4EBE0CE3C0B18DF77929EE42B2C0C4B /* PBXTargetDependency */ = { + 5851121E49511E096BC8A4C27658D4E6 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = BTPrint; target = 86A81D2B2BFEFD93197A1D6C3C7EF60A /* BTPrint */; - targetProxy = 1584CCA7C4859F224DFB9852AE00F8E2 /* PBXContainerItemProxy */; + targetProxy = D2A74EF48A1BEBF5937E20BC241A2E54 /* PBXContainerItemProxy */; }; - B83B9928CB5C20C09CB9DDBD561A1DFA /* PBXTargetDependency */ = { + 81B7EF864F13FEF2D6468E19DA07B7D6 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = HandyJSON; - target = 10D88C24864319FF583AD6D156896F32 /* HandyJSON */; - targetProxy = 8D4F801F1EC3076B332F6878A88D47FB /* PBXContainerItemProxy */; + name = "Pods-SmartCodable_Example"; + target = B8474377209826CA7C2ADD548D40C1EA /* Pods-SmartCodable_Example */; + targetProxy = EAFEBF0E804E12BFFA50E4A13E610AE1 /* PBXContainerItemProxy */; + }; + 8ACE8F3CCAAD63E2C5ED589B6ECD60FF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = FBSnapshotTestCase; + target = 98A98149697C80CEF8D5772791E92E66 /* FBSnapshotTestCase */; + targetProxy = D0836525F3676A79171E523EB8E217B6 /* PBXContainerItemProxy */; }; - E403FF8866FC0951479AFE3300FFB02A /* PBXTargetDependency */ = { + 8D1C064559043CFF4F295BF0C6BBFD1F /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = BTBubble; target = 8ABBD9D5C40976C9B3FC1E227AAC109C /* BTBubble */; - targetProxy = E26F1EBC27A81CF8024CF43B64EB8569 /* PBXContainerItemProxy */; + targetProxy = AAD925A22299C940A13FF16FF248902C /* PBXContainerItemProxy */; + }; + 95C5DD470273062AEEB98F4DA114AC5C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = CleanJSON; + target = 300904838EEDDC3BB8242817D8F97CB6 /* CleanJSON */; + targetProxy = 16FB723A3DD06758D146123C0D8539D0 /* PBXContainerItemProxy */; + }; + A755444B21D4FD98C3F99BF36F55AC86 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SnapKit; + target = 19622742EBA51E823D6DAE3F8CDBFAD4 /* SnapKit */; + targetProxy = 3A50D42E678AE643BB2CAEF046627042 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -1855,38 +1851,6 @@ }; name = Release; }; - 1C74FF80BE2E2235C58D8236492D5A07 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 0EE1DE92831D33349BC6D75FF8B91642 /* SmartCodable.debug.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/SmartCodable/SmartCodable-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SmartCodable/SmartCodable-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/SmartCodable/SmartCodable.modulemap"; - PRODUCT_MODULE_NAME = SmartCodable; - PRODUCT_NAME = SmartCodable; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; 1D30A40E8BEDDA4A0CD0C3E03D28EFC6 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 2565E609AC51A4E4FCA81F2594C690F6 /* FBSnapshotTestCase.debug.xcconfig */; @@ -2111,9 +2075,9 @@ }; name = Release; }; - 61F49044D9AC35C47B2580DA6E3C300C /* Release */ = { + 6688C80B0CBE2F2015FBE8A08157FE38 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 617A9D6F44CE122BD389D45A8D54FF3D /* SmartCodable.release.xcconfig */; + baseConfigurationReference = 0EE11E0147F987FD843DF343F4BEF9C5 /* SnapKit.debug.xcconfig */; buildSettings = { ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_WEAK = NO; @@ -2125,28 +2089,27 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/SmartCodable/SmartCodable-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SmartCodable/SmartCodable-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/SnapKit/SnapKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/SnapKit/SnapKit-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/SmartCodable/SmartCodable.modulemap"; - PRODUCT_MODULE_NAME = SmartCodable; - PRODUCT_NAME = SmartCodable; + MODULEMAP_FILE = "Target Support Files/SnapKit/SnapKit.modulemap"; + PRODUCT_MODULE_NAME = SnapKit; + PRODUCT_NAME = SnapKit; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - 6688C80B0CBE2F2015FBE8A08157FE38 /* Debug */ = { + 84172B3DB591603B53B9C44024506C9A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0EE11E0147F987FD843DF343F4BEF9C5 /* SnapKit.debug.xcconfig */; + baseConfigurationReference = B05BE0E596907D498070C8AEC58CEFEA /* SmartCodable.debug.xcconfig */; buildSettings = { ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_WEAK = NO; @@ -2158,14 +2121,14 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/SnapKit/SnapKit-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SnapKit/SnapKit-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/SmartCodable/SmartCodable-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/SmartCodable/SmartCodable-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/SnapKit/SnapKit.modulemap"; - PRODUCT_MODULE_NAME = SnapKit; - PRODUCT_NAME = SnapKit; + MODULEMAP_FILE = "Target Support Files/SmartCodable/SmartCodable.modulemap"; + PRODUCT_MODULE_NAME = SmartCodable; + PRODUCT_NAME = SmartCodable; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; @@ -2505,6 +2468,39 @@ }; name = Release; }; + F446083B2098A4C30924E7E770BFD4A5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 401B50EE9846F3B76E6A65F4A84A8879 /* SmartCodable.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/SmartCodable/SmartCodable-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/SmartCodable/SmartCodable-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/SmartCodable/SmartCodable.modulemap"; + PRODUCT_MODULE_NAME = SmartCodable; + PRODUCT_NAME = SmartCodable; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; F5E44DDE34049B46EE697B0F57D32A4D /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = C548E3997850B2E10E6E8D21CACB81A3 /* CleanJSON.release.xcconfig */; @@ -2540,11 +2536,11 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 1EB80B506E43BD8A1360F5F342A204B9 /* Build configuration list for PBXNativeTarget "SmartCodable" */ = { + 22DD10167A2B123780E154762912B52F /* Build configuration list for PBXNativeTarget "SmartCodable" */ = { isa = XCConfigurationList; buildConfigurations = ( - 1C74FF80BE2E2235C58D8236492D5A07 /* Debug */, - 61F49044D9AC35C47B2580DA6E3C300C /* Release */, + 84172B3DB591603B53B9C44024506C9A /* Debug */, + F446083B2098A4C30924E7E770BFD4A5 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Example/Pods/Target Support Files/SmartCodable/SmartCodable-Info.plist b/Example/Pods/Target Support Files/SmartCodable/SmartCodable-Info.plist index 767ff66..166ebac 100644 --- a/Example/Pods/Target Support Files/SmartCodable/SmartCodable-Info.plist +++ b/Example/Pods/Target Support Files/SmartCodable/SmartCodable-Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 4.3.1 + 4.3.0 CFBundleSignature ???? CFBundleVersion diff --git a/SmartCodable.podspec b/SmartCodable.podspec index 9929e72..400d084 100644 --- a/SmartCodable.podspec +++ b/SmartCodable.podspec @@ -12,7 +12,7 @@ Pod::Spec.new do |s| s.name = 'SmartCodable' - s.version = '4.3.1' + s.version = '4.3.0' s.summary = '数据解析库' s.homepage = 'https://github.com/intsig171' diff --git a/SmartCodable/Classes/JSONValue/JSONParser.swift b/SmartCodable/Classes/JSONValue/JSONParser.swift index 6214189..92c0f7d 100644 --- a/SmartCodable/Classes/JSONValue/JSONParser.swift +++ b/SmartCodable/Classes/JSONValue/JSONParser.swift @@ -5,6 +5,7 @@ // Created by Mccc on 2024/5/17. // +import Foundation internal struct JSONParser { var reader: DocumentReader var depth: Int = 0 @@ -90,7 +91,7 @@ internal struct JSONParser { self.depth += 1 defer { depth -= 1 } - // parse first value or end immediately + // parse first value or end immediatly switch try reader.consumeWhitespace() { case ._space, ._return, ._newline, ._tab: preconditionFailure("Expected that all white space is consumed") @@ -633,7 +634,6 @@ extension UInt8 { internal static let _backslash = UInt8(ascii: "\\") } - extension Array where Element == UInt8 { internal static let _true = [UInt8(ascii: "t"), UInt8(ascii: "r"), UInt8(ascii: "u"), UInt8(ascii: "e")] @@ -641,20 +641,3 @@ extension Array where Element == UInt8 { internal static let _null = [UInt8(ascii: "n"), UInt8(ascii: "u"), UInt8(ascii: "l"), UInt8(ascii: "l")] } - -enum JSONError: Swift.Error, Equatable { - case cannotConvertInputDataToUTF8 - case unexpectedCharacter(ascii: UInt8, characterIndex: Int) - case unexpectedEndOfFile - case tooManyNestedArraysOrDictionaries(characterIndex: Int) - case invalidHexDigitSequence(String, index: Int) - case unexpectedEscapedCharacter(ascii: UInt8, in: String, index: Int) - case unescapedControlCharacterInString(ascii: UInt8, in: String, index: Int) - case expectedLowSurrogateUTF8SequenceAfterHighSurrogate(in: String, index: Int) - case couldNotCreateUnicodeScalarFromUInt32(in: String, index: Int, unicodeScalarValue: UInt32) - case numberWithLeadingZero(index: Int) - case numberIsNotRepresentableInSwift(parsed: String) - case singleFragmentFoundButNotAllowed - case invalidUTF8Sequence(Data, characterIndex: Int) -} - diff --git a/SmartCodable/Classes/JSONValue/JSONValue.swift b/SmartCodable/Classes/JSONValue/JSONValue.swift index c10d27d..5dc4af2 100644 --- a/SmartCodable/Classes/JSONValue/JSONValue.swift +++ b/SmartCodable/Classes/JSONValue/JSONValue.swift @@ -173,6 +173,22 @@ extension NSNumber { return nil } } +enum JSONError: Swift.Error, Equatable { + case cannotConvertInputDataToUTF8 + case unexpectedCharacter(ascii: UInt8, characterIndex: Int) + case unexpectedEndOfFile + case tooManyNestedArraysOrDictionaries(characterIndex: Int) + case invalidHexDigitSequence(String, index: Int) + case unexpectedEscapedCharacter(ascii: UInt8, in: String, index: Int) + case unescapedControlCharacterInString(ascii: UInt8, in: String, index: Int) + case expectedLowSurrogateUTF8SequenceAfterHighSurrogate(in: String, index: Int) + case couldNotCreateUnicodeScalarFromUInt32(in: String, index: Int, unicodeScalarValue: UInt32) + case numberWithLeadingZero(index: Int) + case numberIsNotRepresentableInSwift(parsed: String) + case singleFragmentFoundButNotAllowed + case invalidUTF8Sequence(Data, characterIndex: Int) +} + // for encdoe @@ -378,12 +394,6 @@ extension JSONValue { bytes.append(contentsOf: [._backslash, UInt8(ascii: "/")]) nextIndex = stringBytes.index(after: nextIndex) startCopyIndex = nextIndex - } else { - // 如果不满足条件,直接把字符添加到 bytes 中 - bytes.append(contentsOf: stringBytes[startCopyIndex ..< nextIndex]) - bytes.append(stringBytes[nextIndex]) - nextIndex = stringBytes.index(after: nextIndex) - startCopyIndex = nextIndex } default: diff --git a/SmartCodable/Classes/JSONValue/JSONWriter.swift b/SmartCodable/Classes/JSONValue/JSONWriter.swift deleted file mode 100644 index 23a8f85..0000000 --- a/SmartCodable/Classes/JSONValue/JSONWriter.swift +++ /dev/null @@ -1,352 +0,0 @@ -////===----------------------------------------------------------------------===// -//// -//// This source file is part of the Swift.org open source project -//// -//// Copyright (c) 2023 Apple Inc. and the Swift project authors -//// Licensed under Apache License v2.0 with Runtime Library Exception -//// -//// See https://swift.org/LICENSE.txt for license information -//// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -//// -////===----------------------------------------------------------------------===// -// -//internal struct JSONWriter { -// -// // Structures with container nesting deeper than this limit are not valid. -// private static let maximumRecursionDepth = 512 -// -// private var indent = 0 -// private let pretty: Bool -// private let sortedKeys: Bool -// private let withoutEscapingSlashes: Bool -// -// var bytes = [UInt8]() -// -// init(options: JSONEncoder.OutputFormatting) { -// pretty = options.contains(.prettyPrinted) -// sortedKeys = options.contains(.sortedKeys) -// withoutEscapingSlashes = options.contains(.withoutEscapingSlashes) -// } -// -// mutating func serializeJSON(_ value: JSONEncoderValue, depth: Int = 0) throws { -// switch value { -// case .string(let str): -// serializeString(str) -// case .bool(let boolValue): -// writer(boolValue ? "true" : "false") -// case .number(let numberStr): -// writer(contentsOf: numberStr.utf8) -// case .array(let array): -// try serializeArray(array, depth: depth + 1) -// case .nonPrettyDirectArray(let arrayRepresentation): -// writer(contentsOf: arrayRepresentation) -// case let .directArray(bytes, lengths): -// try serializePreformattedByteArray(bytes, lengths, depth: depth + 1) -// case .object(let object): -// try serializeObject(object, depth: depth + 1) -// case .null: -// writer("null") -// } -// } -// -// @inline(__always) -// mutating func writer(_ string: StaticString) { -// writer(pointer: string.utf8Start, count: string.utf8CodeUnitCount) -// } -// -// @inline(__always) -// mutating func writer(contentsOf sequence: S) where S.Element == UInt8 { -// bytes.append(contentsOf: sequence) -// } -// -// @inline(__always) -// mutating func writer(ascii: UInt8) { -// bytes.append(ascii) -// } -// -// @inline(__always) -// mutating func writer(pointer: UnsafePointer, count: Int) { -// bytes.append(contentsOf: UnsafeBufferPointer(start: pointer, count: count)) -// } -// -// // Shortcut for strings known not to require escapes, like numbers. -// @inline(__always) -// mutating func serializeSimpleStringContents(_ str: String) -> Int { -// let stringStart = self.bytes.endIndex -// var mutStr = str -// mutStr.withUTF8 { -// writer(contentsOf: $0) -// } -// let length = stringStart.distance(to: self.bytes.endIndex) -// return length -// } -// -// // Shortcut for strings known not to require escapes, like numbers. -// @inline(__always) -// mutating func serializeSimpleString(_ str: String) -> Int { -// writer(ascii: ._quote) -// defer { -// writer(ascii: ._quote) -// } -// return self.serializeSimpleStringContents(str) + 2 // +2 for quotes. -// } -// -// @inline(__always) -// mutating func serializeStringContents(_ str: String) -> Int { -// let unquotedStringStart = self.bytes.endIndex -// var mutStr = str -// mutStr.withUTF8 { -// -// @inline(__always) -// func appendAccumulatedBytes(from mark: UnsafePointer, to cursor: UnsafePointer, followedByContentsOf sequence: [UInt8]) { -// if cursor > mark { -// writer(pointer: mark, count: cursor-mark) -// } -// writer(contentsOf: sequence) -// } -// -// @inline(__always) -// func valueToASCII(_ value: UInt8) -> UInt8 { -// switch value { -// case 0 ... 9: -// return value &+ UInt8(ascii: "0") -// case 10 ... 15: -// return value &- 10 &+ UInt8(ascii: "a") -// default: -// preconditionFailure() -// } -// } -// -// var cursor = $0.baseAddress! -// let end = $0.baseAddress! + $0.count -// var mark = cursor -// while cursor < end { -// switch cursor.pointee { -// case ._quote: -// appendAccumulatedBytes(from: mark, to: cursor, followedByContentsOf: [._backslash, ._quote]) -// case ._backslash: -// appendAccumulatedBytes(from: mark, to: cursor, followedByContentsOf: [._backslash, ._backslash]) -// case ._slash where !withoutEscapingSlashes: -// appendAccumulatedBytes(from: mark, to: cursor, followedByContentsOf: [._backslash, ._forwardslash]) -// case 0x8: -// appendAccumulatedBytes(from: mark, to: cursor, followedByContentsOf: [._backslash, UInt8(ascii: "b")]) -// case 0xc: -// appendAccumulatedBytes(from: mark, to: cursor, followedByContentsOf: [._backslash, UInt8(ascii: "f")]) -// case ._newline: -// appendAccumulatedBytes(from: mark, to: cursor, followedByContentsOf: [._backslash, UInt8(ascii: "n")]) -// case ._return: -// appendAccumulatedBytes(from: mark, to: cursor, followedByContentsOf: [._backslash, UInt8(ascii: "r")]) -// case ._tab: -// appendAccumulatedBytes(from: mark, to: cursor, followedByContentsOf: [._backslash, UInt8(ascii: "t")]) -// case 0x0...0xf: -// appendAccumulatedBytes(from: mark, to: cursor, followedByContentsOf: [._backslash, UInt8(ascii: "u"), UInt8(ascii: "0"), UInt8(ascii: "0"), UInt8(ascii: "0")]) -// writer(ascii: valueToASCII(cursor.pointee)) -// case 0x10...0x1f: -// appendAccumulatedBytes(from: mark, to: cursor, followedByContentsOf: [._backslash, UInt8(ascii: "u"), UInt8(ascii: "0"), UInt8(ascii: "0")]) -// writer(ascii: valueToASCII(cursor.pointee / 16)) -// writer(ascii: valueToASCII(cursor.pointee % 16)) -// default: -// // Accumulate this byte -// cursor += 1 -// continue -// } -// -// cursor += 1 -// mark = cursor // Start accumulating bytes starting after this escaped byte. -// } -// -// appendAccumulatedBytes(from: mark, to: cursor, followedByContentsOf: []) -// } -// let unquotedStringLength = unquotedStringStart.distance(to: self.bytes.endIndex) -// return unquotedStringLength -// } -// -// @discardableResult -// mutating func serializeString(_ str: String) -> Int { -// writer(ascii: ._quote) -// defer { -// writer(ascii: ._quote) -// } -// return self.serializeStringContents(str) + 2 // +2 for quotes. -// -// } -// -// mutating func serializeArray(_ array: [JSONEncoderValue], depth: Int) throws { -// guard depth < Self.maximumRecursionDepth else { -// throw JSONError.tooManyNestedArraysOrDictionaries() -// } -// -// writer(ascii: ._openbracket) -// if pretty { -// writer(ascii: ._newline) -// incIndent() -// } -// -// var first = true -// for elem in array { -// if first { -// first = false -// } else if pretty { -// writer(contentsOf: [._comma, ._newline]) -// } else { -// writer(ascii: ._comma) -// } -// if pretty { -// writeIndent() -// } -// try serializeJSON(elem, depth: depth) -// } -// if pretty { -// writer(ascii: ._newline) -// decAndWriteIndent() -// } -// writer(ascii: ._closebracket) -// } -// -// mutating func serializePreformattedByteArray(_ bytes: [UInt8], _ lengths: [Int], depth: Int) throws { -// guard depth < Self.maximumRecursionDepth else { -// throw JSONError.tooManyNestedArraysOrDictionaries() -// } -// -// writer(ascii: ._openbracket) -// if pretty { -// writer(ascii: ._newline) -// incIndent() -// } -// -// var lowerBound: [UInt8].Index = bytes.startIndex -// -// var first = true -// for length in lengths { -// if first { -// first = false -// } else if pretty { -// writer(contentsOf: [._comma, ._newline]) -// } else { -// writer(ascii: ._comma) -// } -// if pretty { -// writeIndent() -// } -// -// // Do NOT call `serializeString` here! The input strings have already been formatted exactly as they need to be for direct JSON output, including any requisite quotes or escaped characters for strings. -// let upperBound = lowerBound + length -// writer(contentsOf: bytes[lowerBound ..< upperBound]) -// lowerBound = upperBound -// } -// if pretty { -// writer(ascii: ._newline) -// decAndWriteIndent() -// } -// writer(ascii: ._closebracket) -// } -// -// mutating func serializeObject(_ dict: [String:JSONEncoderValue], depth: Int) throws { -// guard depth < Self.maximumRecursionDepth else { -// throw JSONError.tooManyNestedArraysOrDictionaries() -// } -// -// writer(ascii: ._openbrace) -// if pretty { -// writer(ascii: ._newline) -// incIndent() -// if dict.count > 0 { -// writeIndent() -// } -// } -// -// var first = true -// -// func serializeObjectElement(key: String, value: JSONEncoderValue, depth: Int) throws { -// if first { -// first = false -// } else if pretty { -// writer(contentsOf: [._comma, ._newline]) -// writeIndent() -// } else { -// writer(ascii: ._comma) -// } -// serializeString(key) -// pretty ? writer(contentsOf: [._space, ._colon, ._space]) : writer(ascii: ._colon) -// try serializeJSON(value, depth: depth) -// } -// -// if sortedKeys { -// #if FOUNDATION_FRAMEWORK -// var compatibilitySorted = false -// if JSONEncoder.compatibility1 { -// // If applicable, use the old NSString-based sorting with appropriate options -// compatibilitySorted = true -// let nsKeysAndValues = dict.map { -// (key: $0.key as NSString, value: $0.value) -// } -// let elems = nsKeysAndValues.sorted(by: { a, b in -// let options: String.CompareOptions = [.numeric, .caseInsensitive, .forcedOrdering] -// let range = NSMakeRange(0, a.key.length) -// let locale = Locale.system -// return a.key.compare(b.key as String, options: options, range: range, locale: locale) == .orderedAscending -// }) -// for elem in elems { -// try serializeObjectElement(key: elem.key as String, value: elem.value, depth: depth) -// } -// } -// #else -// let compatibilitySorted = false -// #endif -// -// // If we didn't use the NSString-based compatibility sorting, sort lexicographically by the UTF-8 view -// if !compatibilitySorted { -// let elems = dict.sorted { a, b in -// a.key.utf8.lexicographicallyPrecedes(b.key.utf8) -// } -// for elem in elems { -// try serializeObjectElement(key: elem.key as String, value: elem.value, depth: depth) -// } -// } -// } else { -// for (key, value) in dict { -// try serializeObjectElement(key: key, value: value, depth: depth) -// } -// } -// -// if pretty { -// writer("\n") -// decAndWriteIndent() -// } -// writer("}") -// } -// -// mutating func incIndent() { -// indent += 1 -// } -// -// mutating func incAndWriteIndent() { -// indent += 1 -// writeIndent() -// } -// -// mutating func decAndWriteIndent() { -// indent -= 1 -// writeIndent() -// } -// -// mutating func writeIndent() { -// switch indent { -// case 0: break -// case 1: writer(" ") -// case 2: writer(" ") -// case 3: writer(" ") -// case 4: writer(" ") -// case 5: writer(" ") -// case 6: writer(" ") -// case 7: writer(" ") -// case 8: writer(" ") -// case 9: writer(" ") -// case 10: writer(" ") -// default: -// for _ in 0..