Generated-output differences

quicktype output changed between the PR base and tested PR merge revisions.
← Back to the pull request
1test cases
2files differ
0modified
2new
0deleted
2,101changed lines
+2,101 −0insertions / deletions
Base 66df8a7480383ad7d4784464b395df83fd482c7f · PR merge ddd0e32bdf4b171bd4ea4cbdfed63ec3e0a00ed7 · Head 4630d529d6eb0c65ce92f7b8450d248f64b99fbd · raw patch
Test case

test/inputs/json/priority/blns-object.json

2 generated files · +2,101 −0
Aobjective-c-compiledefault / QTTopLevel.h+628 −0
@@ -0,0 +1,628 @@
1+// To parse this JSON:
2+//
3+// NSError *error;
4+// QTTopLevel *topLevel = [QTTopLevel fromJSON:json encoding:NSUTF8Encoding error:&error];
5+
6+#import <Foundation/Foundation.h>
7+
8+@class QTTopLevel;
9+@class QTA;
10+@class QTB;
11+@class QTC;
12+
13+NS_ASSUME_NONNULL_BEGIN
14+
15+#pragma mark - Top-level marshaling functions
16+
17+QTTopLevel *_Nullable QTTopLevelFromData(NSData *data, NSError **error);
18+QTTopLevel *_Nullable QTTopLevelFromJSON(NSString *json, NSStringEncoding encoding, NSError **error);
19+NSData *_Nullable QTTopLevelToData(QTTopLevel *topLevel, NSError **error);
20+NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding encoding, NSError **error);
21+
22+#pragma mark - Object interfaces
23+
24+@interface QTTopLevel : NSObject
25+@property (nonatomic, strong) QTA *a;
26+@property (nonatomic, strong) QTB *b;
27+@property (nonatomic, strong) QTC *c;
28+
29++ (_Nullable instancetype)fromJSON:(NSString *)json encoding:(NSStringEncoding)encoding error:(NSError *_Nullable *)error;
30++ (_Nullable instancetype)fromData:(NSData *)data error:(NSError *_Nullable *)error;
31+- (NSString *_Nullable)toJSON:(NSStringEncoding)encoding error:(NSError *_Nullable *)error;
32+- (NSData *_Nullable)toData:(NSError *_Nullable *)error;
33+@end
34+
35+@interface QTA : NSObject
36+@property (nonatomic, copy) NSString *a;
37+@property (nonatomic, copy) NSString *a0;
38+@property (nonatomic, copy) NSString *a000;
39+@property (nonatomic, copy) NSString *a0000;
40+@property (nonatomic, copy) NSString *a1;
41+@property (nonatomic, copy) NSString *a100000000;
42+@property (nonatomic, copy) NSString *a1E02;
43+@property (nonatomic, copy) NSString *aAlert123T;
44+@property (nonatomic, copy) NSString *aFalse;
45+@property (nonatomic, copy) NSString *aHrefJava123456781112ScriptJavascriptAlert1XXXA;
46+@property (nonatomic, copy) NSString *aHrefJavascriptX09JavascriptAlert1IDFuzzelement1TestA;
47+@property (nonatomic, copy) NSString *aHrefJavascriptX0AJavascriptAlert1IDFuzzelement1TestA;
48+@property (nonatomic, copy) NSString *aHrefJavascriptX3AJavascriptAlert1IDFuzzelement1TestA;
49+@property (nonatomic, copy) NSString *aHrefX01JavascriptJavascriptAlert1IDFuzzelement1TestA;
50+@property (nonatomic, copy) NSString *aHrefX05JavascriptJavascriptAlert1IDFuzzelement1TestA;
51+@property (nonatomic, copy) NSString *aHrefX08JavascriptJavascriptAlert1IDFuzzelement1TestA;
52+@property (nonatomic, copy) NSString *aHrefX09JavascriptJavascriptAlert1IDFuzzelement1TestA;
53+@property (nonatomic, copy) NSString *aHrefX0CjavascriptJavascriptAlert1IDFuzzelement1TestA;
54+@property (nonatomic, copy) NSString *aHrefX10JavascriptJavascriptAlert1IDFuzzelement1TestA;
55+@property (nonatomic, copy) NSString *aHrefX11JavascriptJavascriptAlert1IDFuzzelement1TestA;
56+@property (nonatomic, copy) NSString *aHrefX13JavascriptJavascriptAlert1IDFuzzelement1TestA;
57+@property (nonatomic, copy) NSString *aHrefX17JavascriptJavascriptAlert1IDFuzzelement1TestA;
58+@property (nonatomic, copy) NSString *aHrefX1FjavascriptJavascriptAlert1IDFuzzelement1TestA;
59+@property (nonatomic, copy) NSString *aHrefXC2XA0JavascriptJavascriptAlert1IDFuzzelement1TestA;
60+@property (nonatomic, copy) NSString *aHrefXE1X9AX80JavascriptJavascriptAlert1IDFuzzelement1TestA;
61+@property (nonatomic, copy) NSString *aHrefXE1XA0X8EjavascriptJavascriptAlert1IDFuzzelement1TestA;
62+@property (nonatomic, copy) NSString *aHrefXE2X80X83JavascriptJavascriptAlert1IDFuzzelement1TestA;
63+@property (nonatomic, copy) NSString *aHrefXE2X80X84JavascriptJavascriptAlert1IDFuzzelement1TestA;
64+@property (nonatomic, copy) NSString *aHrefXE2X80X86JavascriptJavascriptAlert1IDFuzzelement1TestA;
65+@property (nonatomic, copy) NSString *aHrefXE2X80X87JavascriptJavascriptAlert1IDFuzzelement1TestA;
66+@property (nonatomic, copy) NSString *aHrefXE2X80XA8JavascriptJavascriptAlert1IDFuzzelement1TestA;
67+@property (nonatomic, copy) NSString *aNil;
68+@property (nonatomic, copy) NSString *aTRUE;
69+@property (nonatomic, copy) NSString *aTest;
70+@property (nonatomic, copy) NSString *aTrue;
71+@property (nonatomic, copy) NSString *abcDivStyleXExpX00RessionJavascriptAlert1DEF;
72+@property (nonatomic, copy) NSString *abcDivStyleXExpX5CressionJavascriptAlert1DEF;
73+@property (nonatomic, copy) NSString *abcDivStyleXX09ExpressionJavascriptAlert1DEF;
74+@property (nonatomic, copy) NSString *abcDivStyleXX0BexpressionJavascriptAlert1DEF;
75+@property (nonatomic, copy) NSString *abcDivStyleXX20ExpressionJavascriptAlert1DEF;
76+@property (nonatomic, copy) NSString *abcDivStyleXX3AexpressionJavascriptAlert1DEF;
77+@property (nonatomic, copy) NSString *abcDivStyleXXC2XA0ExpressionJavascriptAlert1DEF;
78+@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X80ExpressionJavascriptAlert1DEF;
79+@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X84ExpressionJavascriptAlert1DEF;
80+@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X89ExpressionJavascriptAlert1DEF;
81+@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X8BexpressionJavascriptAlert1DEF;
82+@property (nonatomic, copy) NSString *alert123;
83+@property (nonatomic, copy) NSString *alert123T;
84+@property (nonatomic, copy) NSString *alertXSS;
85+@property (nonatomic, copy) NSString *andU200BZEROWIDTHSPACEWhichAreInTheCCategoriesButAreOften;
86+@property (nonatomic, copy) NSString *another;
87+@property (nonatomic, copy) NSString *arsenalCanal;
88+@property (nonatomic, copy) NSString *autofocusOnkeyupJavascriptAlert123;
89+@property (nonatomic, copy) NSString *aux;
90+@property (nonatomic, copy) NSString *changingLengthWhenLowercased;
91+@property (nonatomic, copy) NSString *charactersWhichIncreaseInLength2To3BytesWhenLowercased;
92+@property (nonatomic, copy) NSString *classic;
93+@property (nonatomic, copy) NSString *commandInjectionRuby;
94+@property (nonatomic, copy) NSString *d;
95+@property (nonatomic, copy) NSString *dickVanDyke;
96+@property (nonatomic, copy) NSString *drHermanILibshitz;
97+@property (nonatomic, copy) NSString *empty;
98+@property (nonatomic, copy) NSString *envHome;
99+@property (nonatomic, copy) NSString *etcHosts;
100+@property (nonatomic, copy) NSString *etcPasswd00;
101+@property (nonatomic, copy) NSString *fontsAndHaveANumberOfSpecialBehaviors;
102+@property (nonatomic, copy) NSString *fooValBar;
103+@property (nonatomic, copy) NSString *home;
104+@property (nonatomic, copy) NSString *humanInjection;
105+@property (nonatomic, copy) NSString *iNVOkINGTHEFÈẸLINGOFCHÁOS;
106+@property (nonatomic, copy) NSString *ifImgSrcXOnerrorJavascriptAlert1;
107+@property (nonatomic, copy) NSString *ifScriptJavascriptAlert1Script;
108+@property (nonatomic, copy) NSString *imgSRCJavAscriptAlertXSS;
109+@property (nonatomic, copy) NSString *imgSRCJavX0AAscriptAlertXSS;
110+@property (nonatomic, copy) NSString *imgSRCJavX0DAscriptAlertXSS;
111+@property (nonatomic, copy) NSString *imgSrc106971189711599114105112116589710810111411640398883833941;
112+@property (nonatomic, copy) NSString *imgSrcX09XOnerrorJavascriptAlert1;
113+@property (nonatomic, copy) NSString *imgSrcX11XOnerrorJavascriptAlert1;
114+@property (nonatomic, copy) NSString *imgSrcXOnerrorX00JavascriptAlert1;
115+@property (nonatomic, copy) NSString *imgSrcXOnerrorX09JavascriptAlert1;
116+@property (nonatomic, copy) NSString *imgSrcXX09OnerrorJavascriptAlert1;
117+@property (nonatomic, copy) NSString *imgSrcXX10OnerrorJavascriptAlert1;
118+@property (nonatomic, copy) NSString *imgSrcXX11OnerrorJavascriptAlert1;
119+@property (nonatomic, copy) NSString *imgSrcXX12OnerrorJavascriptAlert1;
120+@property (nonatomic, copy) NSString *imgSrcXX13OnerrorJavascriptAlert1;
121+@property (nonatomic, copy) NSString *imgSrcXxxXX00OnerrorJavascriptAlert1;
122+@property (nonatomic, copy) NSString *imgSrcXxxXX0BonerrorJavascriptAlert1;
123+@property (nonatomic, copy) NSString *imgSrcXxxXX2FonerrorJavascriptAlert1;
124+@property (nonatomic, copy) NSString *imgX00SrcXOnerrorAlert1;
125+@property (nonatomic, copy) NSString *imgX10SrcXOnerrorJavascriptAlert1;
126+@property (nonatomic, copy) NSString *imgX13SrcXOnerrorJavascriptAlert1;
127+@property (nonatomic, copy) NSString *imgX32SrcXOnerrorJavascriptAlert1;
128+@property (nonatomic, copy) NSString *imgX39SrcXOnerrorJavascriptAlert1;
129+@property (nonatomic, copy) NSString *inf;
130+@property (nonatomic, copy) NSString *infinity;
131+@property (nonatomic, copy) NSString *innocuousStringsWhichMayBeBlockedByProfanityFiltersHTTPSEnWikipediaOrgWikiScunthorpeProblem;
132+@property (nonatomic, assign) BOOL isDontMakeAMap;
133+@property (nonatomic, copy) NSString *jimmyClitheroe;
134+@property (nonatomic, copy) NSString *kernelExit1;
135+@property (nonatomic, copy) NSString *knownCVEsAndVulnerabilities;
136+@property (nonatomic, copy) NSString *lightwaterCountryPark;
137+@property (nonatomic, copy) NSString *lpt2;
138+@property (nonatomic, copy) NSString *lpt3;
139+@property (nonatomic, copy) NSString *lsAl;
140+@property (nonatomic, copy) NSString *msdosWindowsSpecialFilenames;
141+@property (nonatomic, copy) NSString *nonWhitespaceC1ControlsU0080ThroughU0084AndU0086ThroughU009F;
142+@property (nonatomic, copy) NSString *none;
143+@property (nonatomic, copy) NSString *null;
144+@property (nonatomic, copy) NSString *one;
145+@property (nonatomic, copy) NSString *one0;
146+@property (nonatomic, copy) NSString *one1;
147+@property (nonatomic, copy) NSString *onfocusJaVaSCriptAlert123Autofocus;
148+@property (nonatomic, copy) NSString *or11;
149+@property (nonatomic, copy) NSString *penistoneCommunityChurch;
150+@property (nonatomic, copy) NSString *perlEPrintIMGSRCJava0ScriptAlertXSSOut;
151+@property (nonatomic, copy) NSString *prn;
152+@property (nonatomic, copy) NSString *romansInSussexCoUk;
153+@property (nonatomic, copy) NSString *s;
154+@property (nonatomic, copy) NSString *sUnSU;
155+@property (nonatomic, copy) NSString *scScriptRiptAlert123ScScriptRipt;
156+@property (nonatomic, copy) NSString *scriptAlert123ScriptX;
157+@property (nonatomic, copy) NSString *scriptInjection;
158+@property (nonatomic, copy) NSString *scriptSRCHTTPHaCkersOrgXSSJSB;
159+@property (nonatomic, copy) NSString *scriptSRCHTTPHaCkersOrgXSSJSSCRIPT;
160+@property (nonatomic, copy) NSString *scriptScriptAlert123Script;
161+@property (nonatomic, copy) NSString *scriptX00JavascriptAlert1Script;
162+@property (nonatomic, copy) NSString *scriptX09TypeTextJavascriptJavascriptAlert1Script;
163+@property (nonatomic, copy) NSString *scriptX0CjavascriptAlert1Script;
164+@property (nonatomic, copy) NSString *scriptX0DjavascriptAlert1Script;
165+@property (nonatomic, copy) NSString *scriptX20TypeTextJavascriptJavascriptAlert1Script;
166+@property (nonatomic, copy) NSString *scriptX3EtypeTextJavascriptJavascriptAlert1Script;
167+@property (nonatomic, copy) NSString *scriptXC2X85JavascriptAlert1Script;
168+@property (nonatomic, copy) NSString *scriptXC2XA0JavascriptAlert1Script;
169+@property (nonatomic, copy) NSString *scriptXE1X9AX80JavascriptAlert1Script;
170+@property (nonatomic, copy) NSString *scriptXE1XA0X8EjavascriptAlert1Script;
171+@property (nonatomic, copy) NSString *scriptXE2X80X81JavascriptAlert1Script;
172+@property (nonatomic, copy) NSString *scriptXE2X80X86JavascriptAlert1Script;
173+@property (nonatomic, copy) NSString *scriptXE2X80X89JavascriptAlert1Script;
174+@property (nonatomic, copy) NSString *scriptXE2X81X9FjavascriptAlert1Script;
175+@property (nonatomic, copy) NSString *scriptXEFXBBXBFjavascriptAlert1Script;
176+@property (nonatomic, copy) NSString *scriptXF0X90X96X9AjavascriptAlert1Script;
177+@property (nonatomic, copy) NSString *scriptXSSSRCHTTPHaCkersOrgXSSJSSCRIPT;
178+@property (nonatomic, copy) NSString *some;
179+@property (nonatomic, copy) NSString *some0;
180+@property (nonatomic, copy) NSString *sqlInjection;
181+@property (nonatomic, copy) NSString *stringWhichCanRevealSystemFilesWhenParsedByABadlyConfiguredXMLParser;
182+@property (nonatomic, copy) NSString *stringsThatTestForKnownVulnerabilities;
183+@property (nonatomic, copy) NSString *stringsWhichCanBeAccidentallyExpandedIntoDifferentStringsIfEvaluatedInTheWrongContextEGUsedAsAPrintfFormatStringOrViaPERLOrShellEvalMightExposeSensitiveDataFromTheProgramDoingTheInterpolationOrMightJustRepresentTheWrongString;
184+@property (nonatomic, copy) NSString *stringsWhichCanCallSystemCommandsWithinRubyRailsApplications;
185+@property (nonatomic, copy) NSString *stringsWhichConsistsOfJapaneseStyleEmoticonsWhichArePopularOnTheWeb;
186+@property (nonatomic, copy) NSString *stringsWhichContainBoldItalicEtcVersionsOfNormalCharacters;
187+@property (nonatomic, copy) NSString *stringsWhichContainCommonUnicodeSymbolsEGSmartQuotes;
188+@property (nonatomic, copy) NSString *stringsWhichContainEmojiShouldBeTheSameBehaviorAsTwoByteCharactersButNotAlways;
189+@property (nonatomic, copy) NSString *stringsWhichContainMisplacedQuotationMarksCanCauseEncodingErrors;
190+@property (nonatomic, copy) NSString *stringsWhichContainUnicodeSubscriptsSuperscriptsCanCauseRenderingIssues;
191+@property (nonatomic, copy) NSString *stringsWhichCrashedIMessageInVariousVersionsOfIOS;
192+@property (nonatomic, copy) NSString *stringsWhichMayCauseHumanToReinterpretWorldview;
193+@property (nonatomic, copy) NSString *superBowlXXX;
194+@property (nonatomic, copy) NSString *test;
195+@property (nonatomic, copy) NSString *textareaScriptAlert123Script;
196+@property (nonatomic, copy) NSString *the;
197+@property (nonatomic, copy) NSString *the0;
198+@property (nonatomic, copy) NSString *the00;
199+@property (nonatomic, copy) NSString *the000;
200+@property (nonatomic, copy) NSString *the0000;
201+@property (nonatomic, copy) NSString *the00Ɩ;
202+@property (nonatomic, copy) NSString *the0X0;
203+@property (nonatomic, copy) NSString *the1;
204+@property (nonatomic, copy) NSString *the10;
205+@property (nonatomic, copy) NSString *the100;
206+@property (nonatomic, copy) NSString *the1000;
207+@property (nonatomic, copy) NSString *the100000;
208+@property (nonatomic, copy) NSString *the100000000;
209+@property (nonatomic, copy) NSString *the11;
210+@property (nonatomic, copy) NSString *the12;
211+@property (nonatomic, copy) NSString *the123456789012345678901234567890123456789;
212+@property (nonatomic, copy) NSString *the13;
213+@property (nonatomic, copy) NSString *the14;
214+@property (nonatomic, copy) NSString *the15;
215+@property (nonatomic, copy) NSString *the16;
216+@property (nonatomic, copy) NSString *the17;
217+@property (nonatomic, copy) NSString *the18;
218+@property (nonatomic, copy) NSString *the19;
219+@property (nonatomic, copy) NSString *the1DROPTABLEUsers;
220+@property (nonatomic, copy) NSString *the1E02;
221+@property (nonatomic, copy) NSString *the1E2;
222+@property (nonatomic, copy) NSString *the1Qnan;
223+@property (nonatomic, copy) NSString *the1Snan;
224+@property (nonatomic, copy) NSString *the2;
225+@property (nonatomic, copy) NSString *the20;
226+@property (nonatomic, copy) NSString *the21;
227+@property (nonatomic, copy) NSString *the22;
228+@property (nonatomic, copy) NSString *the23;
229+@property (nonatomic, copy) NSString *the3;
230+@property (nonatomic, copy) NSString *the4;
231+@property (nonatomic, copy) NSString *the5;
232+@property (nonatomic, copy) NSString *the6;
233+@property (nonatomic, copy) NSString *the7;
234+@property (nonatomic, copy) NSString *the8;
235+@property (nonatomic, copy) NSString *the9;
236+@property (nonatomic, copy) NSString *the999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999;
237+@property (nonatomic, copy) NSString *theFalse;
238+@property (nonatomic, copy) NSString *theNextTwoLinesMayAppearToBeBlankOrMojibakeInSomeViewers;
239+@property (nonatomic, copy) NSString *theQuicKBrownFoXBeeeep;
240+@property (nonatomic, copy) NSString *theTest;
241+@property (nonatomic, copy) NSString *the٠١٢٣٤٥٦٧٨٩;
242+@property (nonatomic, copy) NSString *twoByteCharacters;
243+@property (nonatomic, copy) NSString *u0000U000AOrU000DNULLFCR;
244+@property (nonatomic, copy) NSString *uOncopyAlertCopyMeU;
245+@property (nonatomic, copy) NSString *undef;
246+@property (nonatomic, copy) NSString *unicodeFont;
247+@property (nonatomic, copy) NSString *unicodeNumbers;
248+@property (nonatomic, copy) NSString *unwantedInterpolation;
249+@property (nonatomic, copy) NSString *xLsAl;
250+@property (nonatomic, copy) NSString *zḀḶGO;
251+@property (nonatomic, copy) NSString *ªº;
252+@property (nonatomic, copy) NSString *çIÂ;
253+@property (nonatomic, copy) NSString *œÁØ;
254+@property (nonatomic, copy) NSString *œØπ;
255+@property (nonatomic, copy) NSString *ʖ;
256+@property (nonatomic, copy) NSString *הָיְתָהTestالصفحاتالتّحول;
257+@property (nonatomic, copy) NSString *ثمنفسسقطتوبالتحديدجزيرتيباستخدامأندنوإذهناالستاروتنصيبكانأهّلايطاليابريطانيافرنساقدأخذسليمانإتفاقيةبينمايذكرالحدودأيبعدمعاملةبولنداالإطلاقعلإيو;
258+@property (nonatomic, copy) NSString *ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็;
259+@property (nonatomic, copy) NSString *ⱥ;
260+@property (nonatomic, copy) NSString *ⱦ;
261+@property (nonatomic, copy) NSString *パーティーへ行かないか;
262+@property (nonatomic, copy) NSString *和製漢語;
263+@property (nonatomic, copy) NSString *田中さんにあげて下さい;
264+@property (nonatomic, copy) NSString *fifl;
265+@property (nonatomic, copy) NSString *ィ;
266+@end
267+
268+@interface QTB : NSObject
269+@property (nonatomic, copy) NSString *aHrefHTTPFooBarXYAImgAltImgSrcXXOnerrorJavascriptAlert1A;
270+@property (nonatomic, copy) NSString *aHrefJavascriptX00JavascriptAlert1IDFuzzelement1TestA;
271+@property (nonatomic, copy) NSString *aHrefJavascriptX0DJavascriptAlert1IDFuzzelement1TestA;
272+@property (nonatomic, copy) NSString *aHrefX02JavascriptJavascriptAlert1IDFuzzelement1TestA;
273+@property (nonatomic, copy) NSString *aHrefX04JavascriptJavascriptAlert1IDFuzzelement1TestA;
274+@property (nonatomic, copy) NSString *aHrefX0AjavascriptJavascriptAlert1IDFuzzelement1TestA;
275+@property (nonatomic, copy) NSString *aHrefX0DjavascriptJavascriptAlert1IDFuzzelement1TestA;
276+@property (nonatomic, copy) NSString *aHrefX0EjavascriptJavascriptAlert1IDFuzzelement1TestA;
277+@property (nonatomic, copy) NSString *aHrefX0FjavascriptJavascriptAlert1IDFuzzelement1TestA;
278+@property (nonatomic, copy) NSString *aHrefX16JavascriptJavascriptAlert1IDFuzzelement1TestA;
279+@property (nonatomic, copy) NSString *aHrefX19JavascriptJavascriptAlert1IDFuzzelement1TestA;
280+@property (nonatomic, copy) NSString *aHrefX1AjavascriptJavascriptAlert1IDFuzzelement1TestA;
281+@property (nonatomic, copy) NSString *aHrefX1DjavascriptJavascriptAlert1IDFuzzelement1TestA;
282+@property (nonatomic, copy) NSString *aHrefX1EjavascriptJavascriptAlert1IDFuzzelement1TestA;
283+@property (nonatomic, copy) NSString *aHrefXE2X80X81JavascriptJavascriptAlert1IDFuzzelement1TestA;
284+@property (nonatomic, copy) NSString *aHrefXE2X80X82JavascriptJavascriptAlert1IDFuzzelement1TestA;
285+@property (nonatomic, copy) NSString *aHrefXE2X80XA9JavascriptJavascriptAlert1IDFuzzelement1TestA;
286+@property (nonatomic, copy) NSString *aHrefXE2X80XAFjavascriptJavascriptAlert1IDFuzzelement1TestA;
287+@property (nonatomic, copy) NSString *abcDivStyleXExpressionX5CJavascriptAlert1DEF;
288+@property (nonatomic, copy) NSString *abcDivStyleXX0AexpressionJavascriptAlert1DEF;
289+@property (nonatomic, copy) NSString *abcDivStyleXX0DexpressionJavascriptAlert1DEF;
290+@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X82ExpressionJavascriptAlert1DEF;
291+@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X83ExpressionJavascriptAlert1DEF;
292+@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X85ExpressionJavascriptAlert1DEF;
293+@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X87ExpressionJavascriptAlert1DEF;
294+@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X8AexpressionJavascriptAlert1DEF;
295+@property (nonatomic, copy) NSString *another;
296+@property (nonatomic, copy) NSString *appearInInput;
297+@property (nonatomic, copy) NSString *ath0;
298+@property (nonatomic, copy) NSString *autofocusOnkeyupJavascriptAlert123;
299+@property (nonatomic, copy) NSString *b;
300+@property (nonatomic, copy) NSString *b100000;
301+@property (nonatomic, copy) NSString *bFALSE;
302+@property (nonatomic, copy) NSString *bIMGSRCOnmouseoverAlertXxs;
303+@property (nonatomic, copy) NSString *bNIL;
304+@property (nonatomic, copy) NSString *bScriptAlert123Script;
305+@property (nonatomic, copy) NSString *bTouchTmpBlnsFail;
306+@property (nonatomic, copy) NSString *basement;
307+@property (nonatomic, copy) NSString *butNow20CforMyGreatestTrick8M;
308+@property (nonatomic, copy) NSString *byteOrderMarksUFEFFAndUFFFEEachOnItsOwnLine;
309+@property (nonatomic, copy) NSString *com1;
310+@property (nonatomic, copy) NSString *com3;
311+@property (nonatomic, copy) NSString *commonlyMisinterpretedAsAdditionalGraphicCharacters;
312+@property (nonatomic, copy) NSString *con;
313+@property (nonatomic, copy) NSString *contextsDividedIntoThreeGroupsBasedOnUSLayoutKeyboardPosition;
314+@property (nonatomic, copy) NSString *creditHTTPSTwitterCOMJifaStatus625776454479970304;
315+@property (nonatomic, copy) NSString *devNullTouchTmpBlnsFailEcho;
316+@property (nonatomic, copy) NSString *empty;
317+@property (nonatomic, copy) NSString *evalPutsHelloWorld;
318+@property (nonatomic, copy) NSString *expression;
319+@property (nonatomic, copy) NSString *file;
320+@property (nonatomic, copy) NSString *fileInclusion;
321+@property (nonatomic, copy) NSString *fooValBar;
322+@property (nonatomic, copy) NSString *generalCategoryCFInUnicode800;
323+@property (nonatomic, copy) NSString *hEWHOWAĮTSBEHINDTHEWALḼ;
324+@property (nonatomic, copy) NSString *help;
325+@property (nonatomic, copy) NSString *httpA3030;
326+@property (nonatomic, copy) NSString *iOSVulnerabilities;
327+@property (nonatomic, copy) NSString *ifYouReReadingThisYouVeBeenInAComaForAlmost20YearsNowWeReTryingANewTechniqueWeDonTKnowWhereThisMessageWillEndUpInYourDreamButWeHopeItWorksPleaseWakeUpWeMissYou;
328+@property (nonatomic, copy) NSString *iframeSrcHTTPHaCkersOrgScriptletHTML;
329+@property (nonatomic, copy) NSString *imgSRC14JavascriptAlertXSS;
330+@property (nonatomic, copy) NSString *imgSRCJavX09AscriptAlertXSS;
331+@property (nonatomic, copy) NSString *imgSRCOnmouseoverAlertXxs;
332+@property (nonatomic, copy) NSString *imgSRCX6AX61X76X61X73X63X72X69X70X74X3AX61X6CX65X72X74X28X27X58X53X53X27X29;
333+@property (nonatomic, copy) NSString *imgSrc00001060000097000011800000970000115000009900001140000105000011200001160000058000009700001080000101000011400001160000040000003900000880000083000008300000390000041;
334+@property (nonatomic, copy) NSString *imgSrcX00XOnerrorJavascriptAlert1;
335+@property (nonatomic, copy) NSString *imgSrcXOnerrorX11JavascriptAlert1;
336+@property (nonatomic, copy) NSString *imgSrcXOnerrorX12JavascriptAlert1;
337+@property (nonatomic, copy) NSString *imgSrcXxxXX0AonerrorJavascriptAlert1;
338+@property (nonatomic, copy) NSString *imgSrcXxxXX0ConerrorJavascriptAlert1;
339+@property (nonatomic, copy) NSString *imgSrcXxxXX0DonerrorJavascriptAlert1;
340+@property (nonatomic, copy) NSString *imgX00SrcXOnerrorJavascriptAlert1;
341+@property (nonatomic, copy) NSString *imgX11SrcXOnerrorJavascriptAlert1;
342+@property (nonatomic, copy) NSString *imgX12SrcXOnerrorJavascriptAlert1;
343+@property (nonatomic, copy) NSString *imgX47SrcXOnerrorJavascriptAlert1;
344+@property (nonatomic, copy) NSString *ircSpecificStrings;
345+@property (nonatomic, assign) BOOL isDontMakeAMap;
346+@property (nonatomic, copy) NSString *japaneseEmoticons;
347+@property (nonatomic, copy) NSString *kernelExecLsAl;
348+@property (nonatomic, copy) NSString *lindaCallahan;
349+@property (nonatomic, copy) NSString *nul;
350+@property (nonatomic, copy) NSString *null;
351+@property (nonatomic, copy) NSString *numericStrings;
352+@property (nonatomic, copy) NSString *oftenForbiddenToAppearInVariousTextBasedFileFormatsEGXML;
353+@property (nonatomic, copy) NSString *one;
354+@property (nonatomic, copy) NSString *onfocusJaVaSCriptAlert123Autofocus;
355+@property (nonatomic, copy) NSString *or111;
356+@property (nonatomic, copy) NSString *quotationMarks;
357+@property (nonatomic, copy) NSString *regionalIndicatorSymbols;
358+@property (nonatomic, copy) NSString *regionalIndicatorSymbolsCanBeDisplayedDifferentlyAcross;
359+@property (nonatomic, copy) NSString *reservedStrings;
360+@property (nonatomic, copy) NSString *scriptAlert123Script;
361+@property (nonatomic, copy) NSString *scriptAlert123ScriptX;
362+@property (nonatomic, copy) NSString *scriptAlertXSSSCRIPT;
363+@property (nonatomic, copy) NSString *scriptSRCHaCkersOrgJ;
364+@property (nonatomic, copy) NSString *scriptSrcJscriptSScript;
365+@property (nonatomic, copy) NSString *scriptX09JavascriptAlert1Script;
366+@property (nonatomic, copy) NSString *scriptX0AtypeTextJavascriptJavascriptAlert1Script;
367+@property (nonatomic, copy) NSString *scriptX0DtypeTextJavascriptJavascriptAlert1Script;
368+@property (nonatomic, copy) NSString *scriptX21JavascriptAlert1Script;
369+@property (nonatomic, copy) NSString *scriptX3BjavascriptAlert1Script;
370+@property (nonatomic, copy) NSString *scriptXE2X80X85JavascriptAlert1Script;
371+@property (nonatomic, copy) NSString *scriptXE2X80X87JavascriptAlert1Script;
372+@property (nonatomic, copy) NSString *scriptXE2X80X8AjavascriptAlert1Script;
373+@property (nonatomic, copy) NSString *scriptXE2X80XA8JavascriptAlert1Script;
374+@property (nonatomic, copy) NSString *scriptXE2X80XA9JavascriptAlert1Script;
375+@property (nonatomic, copy) NSString *scriptXE2X80XAFjavascriptAlert1Script;
376+@property (nonatomic, copy) NSString *scriptXE3X80X80JavascriptAlert1Script;
377+@property (nonatomic, copy) NSString *scunthorpeProblem;
378+@property (nonatomic, copy) NSString *some;
379+@property (nonatomic, copy) NSString *stringsThatMayOccurOnIRCClientsThatMakeSecurityProductsFreakOut;
380+@property (nonatomic, copy) NSString *stringsWhichAreReservedCharactersInMSDOSWindows;
381+@property (nonatomic, copy) NSString *stringsWhichAttemptToInvokeABenignScriptInjectionShowsVulnerabilityToXSS;
382+@property (nonatomic, copy) NSString *stringsWhichContainTextThatShouldBeRenderedRTLIfPossibleEGArabicHebrew;
383+@property (nonatomic, copy) NSString *stringsWhichContainTwoByteCharactersCanCauseRenderingIssuesOrCharacterLengthIssues;
384+@property (nonatomic, copy) NSString *stringsWhichContainUnicodeNumbersIfTheCodeIsLocalizedItShouldSeeTheInputAsNumeric;
385+@property (nonatomic, copy) NSString *stringsWhichMayBeUsedElsewhereInCode;
386+@property (nonatomic, copy) NSString *terminalEscapeCodes;
387+@property (nonatomic, copy) NSString *the;
388+@property (nonatomic, copy) NSString *the000;
389+@property (nonatomic, copy) NSString *the01000;
390+@property (nonatomic, copy) NSString *the08;
391+@property (nonatomic, copy) NSString *the09;
392+@property (nonatomic, copy) NSString *the0Xffffffffffffffff;
393+@property (nonatomic, copy) NSString *the1;
394+@property (nonatomic, copy) NSString *the100;
395+@property (nonatomic, copy) NSString *the1000;
396+@property (nonatomic, copy) NSString *the100000;
397+@property (nonatomic, copy) NSString *the100000000;
398+@property (nonatomic, copy) NSString *the1DROPTABLEUsers1;
399+@property (nonatomic, copy) NSString *the1Ind;
400+@property (nonatomic, copy) NSString *the1Inf;
401+@property (nonatomic, copy) NSString *the2;
402+@property (nonatomic, copy) NSString *the21474836481;
403+@property (nonatomic, copy) NSString *the22250738585072011E308;
404+@property (nonatomic, copy) NSString *the3;
405+@property (nonatomic, copy) NSString *theNextLineMayAppearToBeBlankMojibakeOrDingbatsInSomeViewers;
406+@property (nonatomic, copy) NSString *theNextLineMayAppearToBeBlankOrMojibakeInSomeViewers;
407+@property (nonatomic, copy) NSString *theNextLineMayBeFlaggedForTrailingWhitespaceInSomeViewers;
408+@property (nonatomic, copy) NSString *theScriptAlert123Script;
409+@property (nonatomic, copy) NSString *the123;
410+@property (nonatomic, copy) NSString *thisFileUnfortunatelyCannotExpressStringsContaining;
411+@property (nonatomic, copy) NSString *touchTmpBlnsFail;
412+@property (nonatomic, copy) NSString *touchTmpBlnsShellshock2Fail;
413+@property (nonatomic, copy) NSString *tysonGay;
414+@property (nonatomic, copy) NSString *unicodeSymbols;
415+@property (nonatomic, copy) NSString *x00ScriptJavascriptAlert1Script;
416+@property (nonatomic, copy) NSString *x3CscriptJavascriptAlert1Script;
417+@property (nonatomic, copy) NSString *åßƑÆ;
418+@property (nonatomic, copy) NSString *ɐnbᴉlɐⱯuƃɐɯƎɹolopꞱǝƎɹoqɐlꞱnꞱunpᴉpᴉɔuᴉɹodɯǝʇPoɯsnᴉǝOpPǝsꞱᴉlǝƂuᴉɔsᴉdᴉpɐɹnʇǝʇɔǝsuoɔꞱǝɯɐꞱᴉsɹolopƜnsdᴉƜǝɹo;
419+@property (nonatomic, copy) NSString *ωÇΜ;
420+@property (nonatomic, copy) NSString *ຈل͜ຈノヽຈل͜ຈノ;
421+@property (nonatomic, copy) NSString *ṱOINVOKèTHEHIVEMINDREPRESEǸTINGCHAOS;
422+@property (nonatomic, copy) NSString *社會科學院語學研究所;
423+@property (nonatomic, copy) NSString *部落格;
424+@property (nonatomic, copy) NSString *사회과학원어학연구소;
425+@property (nonatomic, copy) NSString *찦차를타고온펲시맨과쑛다리똠방각하;
426+@property (nonatomic, copy) NSString *ﷺ;
427+@property (nonatomic, copy) NSString *ロ_;
428+@end
429+
430+@interface QTC : NSObject
431+@property (nonatomic, copy) NSString *_1;
432+@property (nonatomic, copy) NSString *a;
433+@property (nonatomic, copy) NSString *aHrefX00JavascriptJavascriptAlert1IDFuzzelement1TestA;
434+@property (nonatomic, copy) NSString *aHrefX03JavascriptJavascriptAlert1IDFuzzelement1TestA;
435+@property (nonatomic, copy) NSString *aHrefX06JavascriptJavascriptAlert1IDFuzzelement1TestA;
436+@property (nonatomic, copy) NSString *aHrefX07JavascriptJavascriptAlert1IDFuzzelement1TestA;
437+@property (nonatomic, copy) NSString *aHrefX0BjavascriptJavascriptAlert1IDFuzzelement1TestA;
438+@property (nonatomic, copy) NSString *aHrefX12JavascriptJavascriptAlert1IDFuzzelement1TestA;
439+@property (nonatomic, copy) NSString *aHrefX14JavascriptJavascriptAlert1IDFuzzelement1TestA;
440+@property (nonatomic, copy) NSString *aHrefX15JavascriptJavascriptAlert1IDFuzzelement1TestA;
441+@property (nonatomic, copy) NSString *aHrefX18JavascriptJavascriptAlert1IDFuzzelement1TestA;
442+@property (nonatomic, copy) NSString *aHrefX1BjavascriptJavascriptAlert1IDFuzzelement1TestA;
443+@property (nonatomic, copy) NSString *aHrefX1CjavascriptJavascriptAlert1IDFuzzelement1TestA;
444+@property (nonatomic, copy) NSString *aHrefX20JavascriptJavascriptAlert1IDFuzzelement1TestA;
445+@property (nonatomic, copy) NSString *aHrefXE2X80X80JavascriptJavascriptAlert1IDFuzzelement1TestA;
446+@property (nonatomic, copy) NSString *aHrefXE2X80X85JavascriptJavascriptAlert1IDFuzzelement1TestA;
447+@property (nonatomic, copy) NSString *aHrefXE2X80X88JavascriptJavascriptAlert1IDFuzzelement1TestA;
448+@property (nonatomic, copy) NSString *aHrefXE2X80X89JavascriptJavascriptAlert1IDFuzzelement1TestA;
449+@property (nonatomic, copy) NSString *aHrefXE2X80X8AjavascriptJavascriptAlert1IDFuzzelement1TestA;
450+@property (nonatomic, copy) NSString *aHrefXE2X81X9FjavascriptJavascriptAlert1IDFuzzelement1TestA;
451+@property (nonatomic, copy) NSString *aHrefXE3X80X80JavascriptJavascriptAlert1IDFuzzelement1TestA;
452+@property (nonatomic, copy) NSString *abcDivStyleXExpressionX00JavascriptAlert1DEF;
453+@property (nonatomic, copy) NSString *abcDivStyleXX00ExpressionJavascriptAlert1DEF;
454+@property (nonatomic, copy) NSString *abcDivStyleXX0CexpressionJavascriptAlert1DEF;
455+@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X81ExpressionJavascriptAlert1DEF;
456+@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X86ExpressionJavascriptAlert1DEF;
457+@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X88ExpressionJavascriptAlert1DEF;
458+@property (nonatomic, copy) NSString *abcDivStyleXXE3X80X80ExpressionJavascriptAlert1DEF;
459+@property (nonatomic, copy) NSString *abcDivStyleXXEFXBBXBFexpressionJavascriptAlert1DEF;
460+@property (nonatomic, copy) NSString *andU007FDEL;
461+@property (nonatomic, copy) NSString *another;
462+@property (nonatomic, copy) NSString *asciiPunctuationAllOfTheseCharactersMayNeedToBeEscapedInSome;
463+@property (nonatomic, copy) NSString *bodyOnloadAlertXSS;
464+@property (nonatomic, copy) NSString *c;
465+@property (nonatomic, copy) NSString *c00;
466+@property (nonatomic, copy) NSString *c000;
467+@property (nonatomic, copy) NSString *c1;
468+@property (nonatomic, copy) NSString *c100;
469+@property (nonatomic, copy) NSString *c100000;
470+@property (nonatomic, copy) NSString *c100000000;
471+@property (nonatomic, copy) NSString *c1E02;
472+@property (nonatomic, copy) NSString *cScriptAlert123Script;
473+@property (nonatomic, copy) NSString *cTrue;
474+@property (nonatomic, copy) NSString *clock;
475+@property (nonatomic, copy) NSString *com2;
476+@property (nonatomic, copy) NSString *com4;
477+@property (nonatomic, copy) NSString *craigCockburnSoftwareSpecialist;
478+@property (nonatomic, copy) NSString *dccSendStartkeylogger000;
479+@property (nonatomic, copy) NSString *emoji;
480+@property (nonatomic, copy) NSString *empty;
481+@property (nonatomic, copy) NSString *evaluate;
482+@property (nonatomic, copy) NSString *fooValBar;
483+@property (nonatomic, copy) NSString *hasOwnProperty;
484+@property (nonatomic, copy) NSString *hornimanMuseum;
485+@property (nonatomic, copy) NSString *httpWWWCumQcCA;
486+@property (nonatomic, copy) NSString *iOnwheelAlert1ScrollOverMeI;
487+@property (nonatomic, copy) NSString *imgABCSrcDXEOnerrorFAlert1;
488+@property (nonatomic, copy) NSString *imgOnmouseoverAlertXxs;
489+@property (nonatomic, copy) NSString *imgSCRIPTAlertXSSSCRIPT;
490+@property (nonatomic, copy) NSString *imgSRCJavascriptAlertStringFromCharCode888383;
491+@property (nonatomic, copy) NSString *imgSRCJavascriptAlertXSS;
492+@property (nonatomic, copy) NSString *imgSrcOnerrorAltJavascriptAlert1;
493+@property (nonatomic, copy) NSString *imgSrcX10XOnerrorJavascriptAlert1;
494+@property (nonatomic, copy) NSString *imgSrcX12XOnerrorJavascriptAlert1;
495+@property (nonatomic, copy) NSString *imgSrcX13XOnerrorJavascriptAlert1;
496+@property (nonatomic, copy) NSString *imgSrcX32XOnerrorJavascriptAlert1;
497+@property (nonatomic, copy) NSString *imgSrcX47XOnerrorJavascriptAlert1;
498+@property (nonatomic, copy) NSString *imgSrcXOnerrorAlert123;
499+@property (nonatomic, copy) NSString *imgSrcXOnerrorX10JavascriptAlert1;
500+@property (nonatomic, copy) NSString *imgSrcXOnerrorX32JavascriptAlert1;
501+@property (nonatomic, copy) NSString *imgSrcXScriptJavascriptAlert1Script;
502+@property (nonatomic, copy) NSString *imgSrcXxxXX09OnerrorJavascriptAlert1;
503+@property (nonatomic, copy) NSString *imgSrcXxxXX20OnerrorJavascriptAlert1;
504+@property (nonatomic, copy) NSString *imgSrcXxxXX22OnerrorJavascriptAlert1;
505+@property (nonatomic, copy) NSString *imgSrcXxxXX27OnerrorJavascriptAlert1;
506+@property (nonatomic, copy) NSString *imgX11SrcXOnerrorJavascriptAlert1;
507+@property (nonatomic, copy) NSString *imgX34SrcXOnerrorJavascriptAlert1;
508+@property (nonatomic, copy) NSString *imgX47SrcXOnerrorJavascriptAlert1;
509+@property (nonatomic, copy) NSString *infinity;
510+@property (nonatomic, assign) BOOL isDontMakeAMap;
511+@property (nonatomic, copy) NSString *javaSCriptAlert123;
512+@property (nonatomic, copy) NSString *lpt1;
513+@property (nonatomic, copy) NSString *ltScriptGtAlert3912339LtScriptGt;
514+@property (nonatomic, copy) NSString *magnaCumLaude;
515+@property (nonatomic, copy) NSString *medievalErectionOfParapets;
516+@property (nonatomic, copy) NSString *mocha;
517+@property (nonatomic, copy) NSString *naN;
518+@property (nonatomic, copy) NSString *nonWhitespaceC0ControlsU0001ThroughU0008U000EThroughU001F;
519+@property (nonatomic, copy) NSString *null;
520+@property (nonatomic, copy) NSString *one;
521+@property (nonatomic, copy) NSString *one00;
522+@property (nonatomic, copy) NSString *one100000;
523+@property (nonatomic, copy) NSString *one100000000;
524+@property (nonatomic, copy) NSString *onfocusJaVaSCriptAlert123Autofocus;
525+@property (nonatomic, copy) NSString *orReusedForInternalDelimitersOnTheTheoryThatTheyShouldNever;
526+@property (nonatomic, copy) NSString *plaintext;
527+@property (nonatomic, copy) NSString *powerلُلُصّبُلُلصّبُررًॣॣH冗;
528+@property (nonatomic, copy) NSString *rightToLeftStrings;
529+@property (nonatomic, copy) NSString *rosesAre031Mred0MVioletsAre034MblueHopeYouEnjoyTerminalHue;
530+@property (nonatomic, copy) NSString *s;
531+@property (nonatomic, copy) NSString *scriptAlert123Script;
532+@property (nonatomic, copy) NSString *scriptAlert123ScriptX;
533+@property (nonatomic, copy) NSString *scriptJavascriptAlert1Script;
534+@property (nonatomic, copy) NSString *scriptScriptAlert123Script;
535+@property (nonatomic, copy) NSString *scriptSrcJscriptSScript;
536+@property (nonatomic, copy) NSString *scriptX0AjavascriptAlert1Script;
537+@property (nonatomic, copy) NSString *scriptX0BjavascriptAlert1Script;
538+@property (nonatomic, copy) NSString *scriptX0CtypeTextJavascriptJavascriptAlert1Script;
539+@property (nonatomic, copy) NSString *scriptX20JavascriptAlert1Script;
540+@property (nonatomic, copy) NSString *scriptX2BjavascriptAlert1Script;
541+@property (nonatomic, copy) NSString *scriptX2FtypeTextJavascriptJavascriptAlert1Script;
542+@property (nonatomic, copy) NSString *scriptX7EjavascriptAlert1Script;
543+@property (nonatomic, copy) NSString *scriptXE2X80X80JavascriptAlert1Script;
544+@property (nonatomic, copy) NSString *scriptXE2X80X82JavascriptAlert1Script;
545+@property (nonatomic, copy) NSString *scriptXE2X80X83JavascriptAlert1Script;
546+@property (nonatomic, copy) NSString *scriptXE2X80X84JavascriptAlert1Script;
547+@property (nonatomic, copy) NSString *scriptXE2X80X88JavascriptAlert1Script;
548+@property (nonatomic, copy) NSString *scriptXE2X80X8BjavascriptAlert1Script;
549+@property (nonatomic, copy) NSString *scriptXEFXBFXAEjavascriptAlert1Script;
550+@property (nonatomic, copy) NSString *scriptXEFXBFXBEjavascriptAlert1Script;
551+@property (nonatomic, copy) NSString *scunthorpeGeneralHospital;
552+@property (nonatomic, copy) NSString *serverCodeInjection;
553+@property (nonatomic, copy) NSString *shitakeMushrooms;
554+@property (nonatomic, copy) NSString *some;
555+@property (nonatomic, copy) NSString *some00;
556+@property (nonatomic, copy) NSString *specialCharacters;
557+@property (nonatomic, copy) NSString *srcJaVaSCriptPrompt132;
558+@property (nonatomic, copy) NSString *stringsWhichCanBeInterpretedAsNumeric;
559+@property (nonatomic, copy) NSString *stringsWhichCanCauseASQLInjectionIfInputsAreNotSanitized;
560+@property (nonatomic, copy) NSString *stringsWhichCanCauseUserToPullInFilesThatShouldNotBeAPartOfAWebServer;
561+@property (nonatomic, copy) NSString *stringsWhichCanCauseUserToRunCodeOnServerAsAPrivilegedUserCFHTTPSNewsYcombinatorCOMItemID7665153;
562+@property (nonatomic, copy) NSString *stringsWhichContainCorruptedTextTheCorruptionWillNotAppearInNonHTMLTextHoweverViaHTTPWWWEeemoNet;
563+@property (nonatomic, copy) NSString *stringsWhichContainUnicodeWithAnUpsidedownEffectViaHTTPWWWUpsidedowntextCOM;
564+@property (nonatomic, copy) NSString *stringsWhichContainUnicodeWithUnusualPropertiesEGRightToLeftOverrideCFHTTPWWWUnicodeOrgChartsPDFU2000PDF;
565+@property (nonatomic, copy) NSString *stringsWhichPunishTheFoolsWhoUseCatTypeOnThisFile;
566+@property (nonatomic, copy) NSString *svgScript1231Alert123Script;
567+@property (nonatomic, copy) NSString *systemLsAl;
568+@property (nonatomic, copy) NSString *systemTouchTmpBlnsFail;
569+@property (nonatomic, copy) NSString *test;
570+@property (nonatomic, copy) NSString *testTest;
571+@property (nonatomic, copy) NSString *the;
572+@property (nonatomic, copy) NSString *the00;
573+@property (nonatomic, copy) NSString *the000;
574+@property (nonatomic, copy) NSString *the0TouchTmpBlnsShellshock1Fail;
575+@property (nonatomic, copy) NSString *the0Xabad1Dea;
576+@property (nonatomic, copy) NSString *the0Xffffffff;
577+@property (nonatomic, copy) NSString *the0️;
578+@property (nonatomic, copy) NSString *the0️1️2️3️4️5️6️7️8️9️;
579+@property (nonatomic, copy) NSString *the1;
580+@property (nonatomic, copy) NSString *the10;
581+@property (nonatomic, copy) NSString *the100;
582+@property (nonatomic, copy) NSString *the100000;
583+@property (nonatomic, copy) NSString *the100000000;
584+@property (nonatomic, copy) NSString *the11;
585+@property (nonatomic, copy) NSString *the12;
586+@property (nonatomic, copy) NSString *the13;
587+@property (nonatomic, copy) NSString *the1E02;
588+@property (nonatomic, copy) NSString *the1E2;
589+@property (nonatomic, copy) NSString *the1Ind;
590+@property (nonatomic, copy) NSString *the2;
591+@property (nonatomic, copy) NSString *the3;
592+@property (nonatomic, copy) NSString *the4;
593+@property (nonatomic, copy) NSString *the5;
594+@property (nonatomic, copy) NSString *the6;
595+@property (nonatomic, copy) NSString *the7;
596+@property (nonatomic, copy) NSString *the8;
597+@property (nonatomic, copy) NSString *the9;
598+@property (nonatomic, copy) NSString *the92233720368547758081;
599+@property (nonatomic, copy) NSString *theScriptAlert123Script;
600+@property (nonatomic, copy) NSString *the١٢٣;
601+@property (nonatomic, copy) NSString *titleOnpropertychangeJavascriptAlert1TitleTitleTitle;
602+@property (nonatomic, copy) NSString *treatedAsWhitespaceInSomeContexts;
603+@property (nonatomic, copy) NSString *trickUnicode;
604+@property (nonatomic, copy) NSString *undefined;
605+@property (nonatomic, copy) NSString *unicodeAdditionalControlCharactersAllOfTheCharactersWith;
606+@property (nonatomic, copy) NSString *unicodeSubscriptSuperscriptAccents;
607+@property (nonatomic, copy) NSString *unicodeUpsidedown;
608+@property (nonatomic, copy) NSString *user;
609+@property (nonatomic, copy) NSString *version;
610+@property (nonatomic, copy) NSString *version800PlusU0009HTU000BVTU000CFFU0085NEL;
611+@property (nonatomic, copy) NSString *whitespaceAllOfTheCharactersWithCategoryZsZlOrZpInUnicode;
612+@property (nonatomic, copy) NSString *xmlVersion10EncodingISO88591DOCTYPEFooELEMENTFooANYENTITYXxeSYSTEMFileEtcPasswdFooXxeFoo;
613+@property (nonatomic, copy) NSString *xxeInjectionXML;
614+@property (nonatomic, copy) NSString *zalgoText;
615+@property (nonatomic, copy) NSString *zz;
616+@property (nonatomic, copy) NSString *åíîïÓôÒúæ;
617+@property (nonatomic, copy) NSString *ω;
618+@property (nonatomic, copy) NSString *ёђѓєѕіїјљњћќѝўџабвгдежзийклмнопрстуфхцчшщъыьэюЯабвгдежзийклмнопрстуфхцчшщъыьэюя;
619+@property (nonatomic, copy) NSString *בְּרֵאשִׁיתבָּרָאאֱלֹהִיםאֵתהַשָּׁמַיִםוְאֵתהָאָרֶץ;
620+@property (nonatomic, copy) NSString *مُنَاقَشَةُسُبُلِاِسْتِخْدَامِاللُّغَةِفِيالنُّظُمِالْقَائِمَةِوَفِيميَخُصَّالتَّطْبِيقَاتُالْحاسُوبِيَّةُ;
621+@property (nonatomic, copy) NSString *ṯHENEZPERDIANHIVḘMINḌǪFCḤAƠSZALGO;
622+@property (nonatomic, copy) NSString *ノº_ºノ;
623+@property (nonatomic, copy) NSString *울란바토르;
624+@property (nonatomic, copy) NSString *theQuickBrownFoxJumpsOverTheLazyDog;
625+@property (nonatomic, copy) NSString *ノಥ益ಥノ;
626+@end
627+
628+NS_ASSUME_NONNULL_END
Aobjective-c-compiledefault / QTTopLevel.m+1,473 −0
@@ -0,0 +1,1473 @@
1+#import "QTTopLevel.h"
2+
3+#define λ(decl, expr) (^(decl) { return (expr); })
4+
5+static id NSNullify(id _Nullable x) {
6+ return (x == nil || x == NSNull.null) ? NSNull.null : x;
7+}
8+
9+NS_ASSUME_NONNULL_BEGIN
10+
11+@interface QTTopLevel (JSONConversion)
12++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
13+- (NSDictionary *)JSONDictionary;
14+@end
15+
16+@interface QTA (JSONConversion)
17++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
18+- (NSDictionary *)JSONDictionary;
19+@end
20+
21+@interface QTB (JSONConversion)
22++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
23+- (NSDictionary *)JSONDictionary;
24+@end
25+
26+@interface QTC (JSONConversion)
27++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
28+- (NSDictionary *)JSONDictionary;
29+@end
30+
31+#pragma mark - JSON serialization
32+
33+QTTopLevel *_Nullable QTTopLevelFromData(NSData *data, NSError **error)
34+{
35+ @try {
36+ id json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:error];
37+ return *error ? nil : [QTTopLevel fromJSONDictionary:json];
38+ } @catch (NSException *exception) {
39+ *error = [NSError errorWithDomain:@"JSONSerialization" code:-1 userInfo:@{ @"exception": exception }];
40+ return nil;
41+ }
42+}
43+
44+QTTopLevel *_Nullable QTTopLevelFromJSON(NSString *json, NSStringEncoding encoding, NSError **error)
45+{
46+ return QTTopLevelFromData([json dataUsingEncoding:encoding], error);
47+}
48+
49+NSData *_Nullable QTTopLevelToData(QTTopLevel *topLevel, NSError **error)
50+{
51+ @try {
52+ id json = [topLevel JSONDictionary];
53+ NSData *data = [NSJSONSerialization dataWithJSONObject:json options:NSJSONWritingFragmentsAllowed error:error];
54+ return *error ? nil : data;
55+ } @catch (NSException *exception) {
56+ *error = [NSError errorWithDomain:@"JSONSerialization" code:-1 userInfo:@{ @"exception": exception }];
57+ return nil;
58+ }
59+}
60+
61+NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding encoding, NSError **error)
62+{
63+ NSData *data = QTTopLevelToData(topLevel, error);
64+ return data ? [[NSString alloc] initWithData:data encoding:encoding] : nil;
65+}
66+
67+@implementation QTTopLevel
68++ (NSDictionary<NSString *, NSString *> *)properties
69+{
70+ static NSDictionary<NSString *, NSString *> *properties;
71+ return properties = properties ? properties : @{
72+ @"a": @"a",
73+ @"b": @"b",
74+ @"c": @"c",
75+ };
76+}
77+
78++ (_Nullable instancetype)fromData:(NSData *)data error:(NSError *_Nullable *)error
79+{
80+ return QTTopLevelFromData(data, error);
81+}
82+
83++ (_Nullable instancetype)fromJSON:(NSString *)json encoding:(NSStringEncoding)encoding error:(NSError *_Nullable *)error
84+{
85+ return QTTopLevelFromJSON(json, encoding, error);
86+}
87+
88++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
89+{
90+ return [dict isKindOfClass:NSDictionary.class] ? [[QTTopLevel alloc] initWithJSONDictionary:dict] : nil;
91+}
92+
93+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
94+{
95+ if (self = [super init]) {
96+ if (![dict[@"a"] isKindOfClass:NSDictionary.class]) return nil;
97+ if (![dict[@"b"] isKindOfClass:NSDictionary.class]) return nil;
98+ if (![dict[@"c"] isKindOfClass:NSDictionary.class]) return nil;
99+ [self setValuesForKeysWithDictionary:dict];
100+ _a = [QTA fromJSONDictionary:(id)_a];
101+ if (!_a && dict[@"a"] && ![dict[@"a"] isKindOfClass:NSNull.class]) return nil;
102+ _b = [QTB fromJSONDictionary:(id)_b];
103+ if (!_b && dict[@"b"] && ![dict[@"b"] isKindOfClass:NSNull.class]) return nil;
104+ _c = [QTC fromJSONDictionary:(id)_c];
105+ if (!_c && dict[@"c"] && ![dict[@"c"] isKindOfClass:NSNull.class]) return nil;
106+ }
107+ return self;
108+}
109+
110+- (void)setValue:(nullable id)value forKey:(NSString *)key
111+{
112+ id resolved = QTTopLevel.properties[key];
113+ if (resolved) [super setValue:value forKey:resolved];
114+}
115+
116+- (void)setNilValueForKey:(NSString *)key
117+{
118+ id resolved = QTTopLevel.properties[key];
119+ if (resolved) [super setValue:@(0) forKey:resolved];
120+}
121+
122+- (NSDictionary *)JSONDictionary
123+{
124+ id dict = [[self dictionaryWithValuesForKeys:QTTopLevel.properties.allValues] mutableCopy];
125+
126+ [dict addEntriesFromDictionary:@{
127+ @"a": [_a JSONDictionary],
128+ @"b": [_b JSONDictionary],
129+ @"c": [_c JSONDictionary],
130+ }];
131+
132+ return dict;
133+}
134+
135+- (NSData *_Nullable)toData:(NSError *_Nullable *)error
136+{
137+ return QTTopLevelToData(self, error);
138+}
139+
140+- (NSString *_Nullable)toJSON:(NSStringEncoding)encoding error:(NSError *_Nullable *)error
141+{
142+ return QTTopLevelToJSON(self, encoding, error);
143+}
144+@end
145+
146+@implementation QTA
147++ (NSDictionary<NSString *, NSString *> *)properties
148+{
149+ static NSDictionary<NSString *, NSString *> *properties;
150+ return properties = properties ? properties : @{
151+ @"!@#$%^&*()`~": @"a",
152+ @"-0": @"a0",
153+ @"0,00": @"a000",
154+ @"0.0/0.0": @"a0000",
155+ @"-1": @"a1",
156+ @"1'000'000.00": @"a100000000",
157+ @"1E02": @"a1E02",
158+ @"';alert(123);t='": @"aAlert123T",
159+ @"False": @"aFalse",
160+ @"<a href=java&#1&#2&#3&#4&#5&#6&#7&#8&#11&#12script:javascript:alert(1)>XXX</a>": @"aHrefJava123456781112ScriptJavascriptAlert1XXXA",
161+ @"<a href=\"javascript\\x09:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefJavascriptX09JavascriptAlert1IDFuzzelement1TestA",
162+ @"<a href=\"javascript\\x0A:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefJavascriptX0AJavascriptAlert1IDFuzzelement1TestA",
163+ @"<a href=\"javascript\\x3A:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefJavascriptX3AJavascriptAlert1IDFuzzelement1TestA",
164+ @"<a href=\"\\x01javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX01JavascriptJavascriptAlert1IDFuzzelement1TestA",
165+ @"<a href=\"\\x05javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX05JavascriptJavascriptAlert1IDFuzzelement1TestA",
166+ @"<a href=\"\\x08javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX08JavascriptJavascriptAlert1IDFuzzelement1TestA",
167+ @"<a href=\"\\x09javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX09JavascriptJavascriptAlert1IDFuzzelement1TestA",
168+ @"<a href=\"\\x0Cjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX0CjavascriptJavascriptAlert1IDFuzzelement1TestA",
169+ @"<a href=\"\\x10javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX10JavascriptJavascriptAlert1IDFuzzelement1TestA",
170+ @"<a href=\"\\x11javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX11JavascriptJavascriptAlert1IDFuzzelement1TestA",
171+ @"<a href=\"\\x13javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX13JavascriptJavascriptAlert1IDFuzzelement1TestA",
172+ @"<a href=\"\\x17javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX17JavascriptJavascriptAlert1IDFuzzelement1TestA",
173+ @"<a href=\"\\x1Fjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX1FjavascriptJavascriptAlert1IDFuzzelement1TestA",
174+ @"<a href=\"\\xC2\\xA0javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXC2XA0JavascriptJavascriptAlert1IDFuzzelement1TestA",
175+ @"<a href=\"\\xE1\\x9A\\x80javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE1X9AX80JavascriptJavascriptAlert1IDFuzzelement1TestA",
176+ @"<a href=\"\\xE1\\xA0\\x8Ejavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE1XA0X8EjavascriptJavascriptAlert1IDFuzzelement1TestA",
177+ @"<a href=\"\\xE2\\x80\\x83javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X83JavascriptJavascriptAlert1IDFuzzelement1TestA",
178+ @"<a href=\"\\xE2\\x80\\x84javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X84JavascriptJavascriptAlert1IDFuzzelement1TestA",
179+ @"<a href=\"\\xE2\\x80\\x86javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X86JavascriptJavascriptAlert1IDFuzzelement1TestA",
180+ @"<a href=\"\\xE2\\x80\\x87javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X87JavascriptJavascriptAlert1IDFuzzelement1TestA",
181+ @"<a href=\"\\xE2\\x80\\xA8javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80XA8JavascriptJavascriptAlert1IDFuzzelement1TestA",
182+ @"nil": @"aNil",
183+ @"TRUE": @"aTRUE",
184+ @"\u202btest\u202b": @"aTest",
185+ @"True": @"aTrue",
186+ @"ABC<div style=\"x:exp\\x00ression(javascript:alert(1)\">DEF": @"abcDivStyleXExpX00RessionJavascriptAlert1DEF",
187+ @"ABC<div style=\"x:exp\\x5Cression(javascript:alert(1)\">DEF": @"abcDivStyleXExpX5CressionJavascriptAlert1DEF",
188+ @"ABC<div style=\"x:\\x09expression(javascript:alert(1)\">DEF": @"abcDivStyleXX09ExpressionJavascriptAlert1DEF",
189+ @"ABC<div style=\"x:\\x0Bexpression(javascript:alert(1)\">DEF": @"abcDivStyleXX0BexpressionJavascriptAlert1DEF",
190+ @"ABC<div style=\"x:\\x20expression(javascript:alert(1)\">DEF": @"abcDivStyleXX20ExpressionJavascriptAlert1DEF",
191+ @"ABC<div style=\"x\\x3Aexpression(javascript:alert(1)\">DEF": @"abcDivStyleXX3AexpressionJavascriptAlert1DEF",
192+ @"ABC<div style=\"x:\\xC2\\xA0expression(javascript:alert(1)\">DEF": @"abcDivStyleXXC2XA0ExpressionJavascriptAlert1DEF",
193+ @"ABC<div style=\"x:\\xE2\\x80\\x80expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X80ExpressionJavascriptAlert1DEF",
194+ @"ABC<div style=\"x:\\xE2\\x80\\x84expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X84ExpressionJavascriptAlert1DEF",
195+ @"ABC<div style=\"x:\\xE2\\x80\\x89expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X89ExpressionJavascriptAlert1DEF",
196+ @"ABC<div style=\"x:\\xE2\\x80\\x8Bexpression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X8BexpressionJavascriptAlert1DEF",
197+ @";alert(123);": @"alert123",
198+ @"\";alert(123);t=\"": @"alert123T",
199+ @"\\\";alert('XSS');//": @"alertXSS",
200+ @"# and U+200B (ZERO WIDTH SPACE), which are in the C categories but are often": @"andU200BZEROWIDTHSPACEWhichAreInTheCCategoriesButAreOften",
201+ @",": @"another",
202+ @"Arsenal canal": @"arsenalCanal",
203+ @"\" autofocus onkeyup=\"javascript:alert(123)": @"autofocusOnkeyupJavascriptAlert123",
204+ @"AUX": @"aux",
205+ @"#\tChanging length when lowercased": @"changingLengthWhenLowercased",
206+ @"#\tCharacters which increase in length (2 to 3 bytes) when lowercased": @"charactersWhichIncreaseInLength2To3BytesWhenLowercased",
207+ @"classic": @"classic",
208+ @"#\tCommand Injection (Ruby)": @"commandInjectionRuby",
209+ @"%d": @"d",
210+ @"Dick Van Dyke": @"dickVanDyke",
211+ @"Dr. Herman I. Libshitz": @"drHermanILibshitz",
212+ @" ": @"empty",
213+ @"$ENV{'HOME'}": @"envHome",
214+ @"../../../../../../../../../../../etc/hosts": @"etcHosts",
215+ @"../../../../../../../../../../../etc/passwd%00": @"etcPasswd00",
216+ @"# fonts, and have a number of special behaviors": @"fontsAndHaveANumberOfSpecialBehaviors",
217+ @"<foo val=`bar' />": @"fooValBar",
218+ @"$HOME": @"home",
219+ @"#\tHuman injection": @"humanInjection",
220+ @"̡͓̞ͅI̗̘̦͝n͇͇͙v̮̫ok̲̫̙͈i̖͙̭̹̠̞n̡̻̮̣̺g̲͈͙̭͙̬͎ ̰t͔̦h̞̲e̢̤ ͍̬̲͖f̴̘͕̣è͖ẹ̥̩l͖͔͚i͓͚̦͠n͖͍̗͓̳̮g͍ ̨o͚̪͡f̘̣̬ ̖̘͖̟͙̮c҉͔̫͖͓͇͖ͅh̵̤̣͚͔á̗̼͕ͅo̼̣̥s̱͈̺̖̦̻͢.̛̖̞̠̫̰": @"iNVOkINGTHEFÈẸLINGOFCHÁOS",
221+ @"<!--[if<img src=x onerror=javascript:alert(1)//]> -->": @"ifImgSrcXOnerrorJavascriptAlert1",
222+ @"<!--[if]><script>javascript:alert(1)</script -->": @"ifScriptJavascriptAlert1Script",
223+ @"<IMG SRC=\"jav ascript:alert('XSS');\">": @"imgSRCJavAscriptAlertXSS",
224+ @"<IMG SRC=\"jav&#x0A;ascript:alert('XSS');\">": @"imgSRCJavX0AAscriptAlertXSS",
225+ @"<IMG SRC=\"jav&#x0D;ascript:alert('XSS');\">": @"imgSRCJavX0DAscriptAlertXSS",
226+ @"<IMG SRC=&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#88;&#83;&#83;&#39;&#41;>": @"imgSrc106971189711599114105112116589710810111411640398883833941",
227+ @"<img src\\x09=x onerror=\"javascript:alert(1)\">": @"imgSrcX09XOnerrorJavascriptAlert1",
228+ @"<img src\\x11=x onerror=\"javascript:alert(1)\">": @"imgSrcX11XOnerrorJavascriptAlert1",
229+ @"<img src=x onerror=\\x00\"javascript:alert(1)\">": @"imgSrcXOnerrorX00JavascriptAlert1",
230+ @"<img src=x onerror=\\x09\"javascript:alert(1)\">": @"imgSrcXOnerrorX09JavascriptAlert1",
231+ @"<img src=x\\x09onerror=\"javascript:alert(1)\">": @"imgSrcXX09OnerrorJavascriptAlert1",
232+ @"<img src=x\\x10onerror=\"javascript:alert(1)\">": @"imgSrcXX10OnerrorJavascriptAlert1",
233+ @"<img src=x\\x11onerror=\"javascript:alert(1)\">": @"imgSrcXX11OnerrorJavascriptAlert1",
234+ @"<img src=x\\x12onerror=\"javascript:alert(1)\">": @"imgSrcXX12OnerrorJavascriptAlert1",
235+ @"<img src=x\\x13onerror=\"javascript:alert(1)\">": @"imgSrcXX13OnerrorJavascriptAlert1",
236+ @"`\"'><img src=xxx:x \\x00onerror=javascript:alert(1)>": @"imgSrcXxxXX00OnerrorJavascriptAlert1",
237+ @"`\"'><img src=xxx:x \\x0Bonerror=javascript:alert(1)>": @"imgSrcXxxXX0BonerrorJavascriptAlert1",
238+ @"`\"'><img src=xxx:x \\x2Fonerror=javascript:alert(1)>": @"imgSrcXxxXX2FonerrorJavascriptAlert1",
239+ @"<img \\x00src=x onerror=\"alert(1)\">": @"imgX00SrcXOnerrorAlert1",
240+ @"<img\\x10src=x onerror=\"javascript:alert(1)\">": @"imgX10SrcXOnerrorJavascriptAlert1",
241+ @"<img\\x13src=x onerror=\"javascript:alert(1)\">": @"imgX13SrcXOnerrorJavascriptAlert1",
242+ @"<img\\x32src=x onerror=\"javascript:alert(1)\">": @"imgX32SrcXOnerrorJavascriptAlert1",
243+ @"<img \\x39src=x onerror=\"javascript:alert(1)\">": @"imgX39SrcXOnerrorJavascriptAlert1",
244+ @"INF": @"inf",
245+ @"-Infinity": @"infinity",
246+ @"#\tInnocuous strings which may be blocked by profanity filters (https://en.wikipedia.org/wiki/Scunthorpe_problem)": @"innocuousStringsWhichMayBeBlockedByProfanityFiltersHTTPSEnWikipediaOrgWikiScunthorpeProblem",
247+ @"dontMakeAMap": @"isDontMakeAMap",
248+ @"Jimmy Clitheroe": @"jimmyClitheroe",
249+ @"Kernel.exit(1)": @"kernelExit1",
250+ @"#\tKnown CVEs and Vulnerabilities": @"knownCVEsAndVulnerabilities",
251+ @"Lightwater Country Park": @"lightwaterCountryPark",
252+ @"LPT2": @"lpt2",
253+ @"LPT3": @"lpt3",
254+ @"`ls -al /`": @"lsAl",
255+ @"#\tMSDOS/Windows Special Filenames": @"msdosWindowsSpecialFilenames",
256+ @"# Non-whitespace C1 controls: U+0080 through U+0084 and U+0086 through U+009F.": @"nonWhitespaceC1ControlsU0080ThroughU0084AndU0086ThroughU009F",
257+ @"None": @"none",
258+ @"(null)": @"null",
259+ @"'\"'": @"one",
260+ @"0": @"one0",
261+ @"1": @"one1",
262+ @" onfocus=JaVaSCript:alert(123) autofocus": @"onfocusJaVaSCriptAlert123Autofocus",
263+ @"' OR '1'='1": @"or11",
264+ @"Penistone Community Church": @"penistoneCommunityChurch",
265+ @"perl -e 'print \"<IMG SRC=java\\0script:alert(\\\"XSS\\\")>\";' > out": @"perlEPrintIMGSRCJava0ScriptAlertXSSOut",
266+ @"PRN": @"prn",
267+ @"RomansInSussex.co.uk": @"romansInSussexCoUk",
268+ @"%s": @"s",
269+ @"<<< %s(un='%s') = %u": @"sUnSU",
270+ @"<sc<script>ript>alert(123)</sc</script>ript>": @"scScriptRiptAlert123ScScriptRipt",
271+ @"\"><script>alert(123);</script x=\"": @"scriptAlert123ScriptX",
272+ @"#\tScript Injection": @"scriptInjection",
273+ @"<SCRIPT SRC=http://ha.ckers.org/xss.js?< B >": @"scriptSRCHTTPHaCkersOrgXSSJSB",
274+ @"<SCRIPT/SRC=\"http://ha.ckers.org/xss.js\"></SCRIPT>": @"scriptSRCHTTPHaCkersOrgXSSJSSCRIPT",
275+ @"</script><script>alert(123)</script>": @"scriptScriptAlert123Script",
276+ @"\"`'><script>\\x00javascript:alert(1)</script>": @"scriptX00JavascriptAlert1Script",
277+ @"<script\\x09type=\"text/javascript\">javascript:alert(1);</script>": @"scriptX09TypeTextJavascriptJavascriptAlert1Script",
278+ @"\"`'><script>\\x0Cjavascript:alert(1)</script>": @"scriptX0CjavascriptAlert1Script",
279+ @"\"`'><script>\\x0Djavascript:alert(1)</script>": @"scriptX0DjavascriptAlert1Script",
280+ @"<script\\x20type=\"text/javascript\">javascript:alert(1);</script>": @"scriptX20TypeTextJavascriptJavascriptAlert1Script",
281+ @"<script\\x3Etype=\"text/javascript\">javascript:alert(1);</script>": @"scriptX3EtypeTextJavascriptJavascriptAlert1Script",
282+ @"\"`'><script>\\xC2\\x85javascript:alert(1)</script>": @"scriptXC2X85JavascriptAlert1Script",
283+ @"\"`'><script>\\xC2\\xA0javascript:alert(1)</script>": @"scriptXC2XA0JavascriptAlert1Script",
284+ @"\"`'><script>\\xE1\\x9A\\x80javascript:alert(1)</script>": @"scriptXE1X9AX80JavascriptAlert1Script",
285+ @"\"`'><script>\\xE1\\xA0\\x8Ejavascript:alert(1)</script>": @"scriptXE1XA0X8EjavascriptAlert1Script",
286+ @"\"`'><script>\\xE2\\x80\\x81javascript:alert(1)</script>": @"scriptXE2X80X81JavascriptAlert1Script",
287+ @"\"`'><script>\\xE2\\x80\\x86javascript:alert(1)</script>": @"scriptXE2X80X86JavascriptAlert1Script",
288+ @"\"`'><script>\\xE2\\x80\\x89javascript:alert(1)</script>": @"scriptXE2X80X89JavascriptAlert1Script",
289+ @"\"`'><script>\\xE2\\x81\\x9Fjavascript:alert(1)</script>": @"scriptXE2X81X9FjavascriptAlert1Script",
290+ @"\"`'><script>\\xEF\\xBB\\xBFjavascript:alert(1)</script>": @"scriptXEFXBBXBFjavascriptAlert1Script",
291+ @"\"`'><script>\\xF0\\x90\\x96\\x9Ajavascript:alert(1)</script>": @"scriptXF0X90X96X9AjavascriptAlert1Script",
292+ @"<SCRIPT/XSS SRC=\"http://ha.ckers.org/xss.js\"></SCRIPT>": @"scriptXSSSRCHTTPHaCkersOrgXSSJSSCRIPT",
293+ @"(╯°□°)╯︵ ┻━┻)": @"some",
294+ @"{0}": @"some0",
295+ @"#\tSQL Injection": @"sqlInjection",
296+ @"#\tString which can reveal system files when parsed by a badly configured XML parser": @"stringWhichCanRevealSystemFilesWhenParsedByABadlyConfiguredXMLParser",
297+ @"#\tStrings that test for known vulnerabilities": @"stringsThatTestForKnownVulnerabilities",
298+ @"#\tStrings which can be accidentally expanded into different strings if evaluated in the wrong context, e.g. used as a printf format string or via Perl or shell eval. Might expose sensitive data from the program doing the interpolation, or might just represent the wrong string.": @"stringsWhichCanBeAccidentallyExpandedIntoDifferentStringsIfEvaluatedInTheWrongContextEGUsedAsAPrintfFormatStringOrViaPERLOrShellEvalMightExposeSensitiveDataFromTheProgramDoingTheInterpolationOrMightJustRepresentTheWrongString",
299+ @"#\tStrings which can call system commands within Ruby/Rails applications": @"stringsWhichCanCallSystemCommandsWithinRubyRailsApplications",
300+ @"#\tStrings which consists of Japanese-style emoticons which are popular on the web": @"stringsWhichConsistsOfJapaneseStyleEmoticonsWhichArePopularOnTheWeb",
301+ @"#\tStrings which contain bold/italic/etc. versions of normal characters": @"stringsWhichContainBoldItalicEtcVersionsOfNormalCharacters",
302+ @"#\tStrings which contain common unicode symbols (e.g. smart quotes)": @"stringsWhichContainCommonUnicodeSymbolsEGSmartQuotes",
303+ @"#\tStrings which contain Emoji; should be the same behavior as two-byte characters, but not always": @"stringsWhichContainEmojiShouldBeTheSameBehaviorAsTwoByteCharactersButNotAlways",
304+ @"#\tStrings which contain misplaced quotation marks; can cause encoding errors": @"stringsWhichContainMisplacedQuotationMarksCanCauseEncodingErrors",
305+ @"#\tStrings which contain unicode subscripts/superscripts; can cause rendering issues": @"stringsWhichContainUnicodeSubscriptsSuperscriptsCanCauseRenderingIssues",
306+ @"#\tStrings which crashed iMessage in various versions of iOS": @"stringsWhichCrashedIMessageInVariousVersionsOfIOS",
307+ @"#\tStrings which may cause human to reinterpret worldview": @"stringsWhichMayCauseHumanToReinterpretWorldview",
308+ @"Super Bowl XXX": @"superBowlXXX",
309+ @"\u202a\u202atest\u202a": @"test",
310+ @"</textarea><script>alert(123)</script>": @"textareaScriptAlert123Script",
311+ @"'": @"the",
312+ @"+0": @"the0",
313+ @"0..0": @"the00",
314+ @"0,0,0": @"the000",
315+ @"0,0/0,0": @"the0000",
316+ @"00˙Ɩ$-": @"the00Ɩ",
317+ @"0x0": @"the0X0",
318+ @",./;'[]\\-=": @"the1",
319+ @"1/0": @"the10",
320+ @"1.00": @"the100",
321+ @"1.0/0.0": @"the1000",
322+ @"1'000,00": @"the100000",
323+ @"1 000 000.00": @"the100000000",
324+ @"\U0001d47b\U0001d489\U0001d486 \U0001d492\U0001d496\U0001d48a\U0001d484\U0001d48c \U0001d483\U0001d493\U0001d490\U0001d498\U0001d48f \U0001d487\U0001d490\U0001d499 \U0001d48b\U0001d496\U0001d48e\U0001d491\U0001d494 \U0001d490\U0001d497\U0001d486\U0001d493 \U0001d495\U0001d489\U0001d486 \U0001d48d\U0001d482\U0001d49b\U0001d49a \U0001d485\U0001d490\U0001d488": @"the11",
325+ @"1/2": @"the12",
326+ @"123456789012345678901234567890123456789": @"the123456789012345678901234567890123456789",
327+ @"\U0001d4e3\U0001d4f1\U0001d4ee \U0001d4fa\U0001d4fe\U0001d4f2\U0001d4ec\U0001d4f4 \U0001d4eb\U0001d4fb\U0001d4f8\U0001d500\U0001d4f7 \U0001d4ef\U0001d4f8\U0001d501 \U0001d4f3\U0001d4fe\U0001d4f6\U0001d4f9\U0001d4fc \U0001d4f8\U0001d4ff\U0001d4ee\U0001d4fb \U0001d4fd\U0001d4f1\U0001d4ee \U0001d4f5\U0001d4ea\U0001d503\U0001d502 \U0001d4ed\U0001d4f8\U0001d4f0": @"the13",
328+ @"\U0001d57f\U0001d58d\U0001d58a \U0001d596\U0001d59a\U0001d58e\U0001d588\U0001d590 \U0001d587\U0001d597\U0001d594\U0001d59c\U0001d593 \U0001d58b\U0001d594\U0001d59d \U0001d58f\U0001d59a\U0001d592\U0001d595\U0001d598 \U0001d594\U0001d59b\U0001d58a\U0001d597 \U0001d599\U0001d58d\U0001d58a \U0001d591\U0001d586\U0001d59f\U0001d59e \U0001d589\U0001d594\U0001d58c": @"the14",
329+ @"\U0001f1fa\U0001f1f8\U0001f1f7\U0001f1fa\U0001f1f8 \U0001f1e6\U0001f1eb\U0001f1e6\U0001f1f2\U0001f1f8": @"the15",
330+ @"\U0001f1fa\U0001f1f8\U0001f1f7\U0001f1fa\U0001f1f8\U0001f1e6": @"the16",
331+ @"\U0001f1fa\U0001f1f8\U0001f1f7\U0001f1fa\U0001f1f8\U0001f1e6\U0001f1eb\U0001f1e6\U0001f1f2": @"the17",
332+ @"\U0001f469\U0001f3fd": @"the18",
333+ @"\U0001f6be \U0001f192 \U0001f193 \U0001f195 \U0001f196 \U0001f197 \U0001f199 \U0001f3e7": @"the19",
334+ @"1;DROP TABLE users": @"the1DROPTABLEUsers",
335+ @"-1E02": @"the1E02",
336+ @"1E2": @"the1E2",
337+ @"1#QNAN": @"the1Qnan",
338+ @"1#SNAN": @"the1Snan",
339+ @"-,": @"the2",
340+ @"﷽": @"the20",
341+ @"\ufeff": @"the21",
342+ @"゚・✿ヾ╲(。◕‿◕。)╱✿・゚": @"the22",
343+ @"\ufffe": @"the23",
344+ @"-.": @"the3",
345+ @"<>?:\"{}|_+": @"the4",
346+ @"\\": @"the5",
347+ @"\302\200\302\201\302\202\302\203\302\204\302\206\302\207\302\210\302\211\302\212\302\213\302\214\302\215\302\216\302\217\302\220\302\221\302\222\302\223\302\224\302\225\302\226\302\227\302\230\302\231\302\232\302\233\302\234\302\235\302\236\302\237": @"the6",
348+ @"\302\255\u0600\u0601\u0602\u0603\u0604\u0605\u061c\u06dd\u070f\u180e\u200b\u200c\u200d\u200e\u200f\u202a\u202b\u202c\u202d\u202e\u2060\u2061\u2062\u2063\u2064\u2066\u2067\u2068\u2069\u206a\u206b\u206c\u206d\u206e\u206f\ufeff\ufff9\ufffa\ufffb\U000110bd\U0001bca0\U0001bca1\U0001bca2\U0001bca3\U0001d173\U0001d174\U0001d175\U0001d176\U0001d177\U0001d178\U0001d179\U0001d17a\U000e0001\U000e0020\U000e0021\U000e0022\U000e0023\U000e0024\U000e0025\U000e0026\U000e0027\U000e0028\U000e0029\U000e002a\U000e002b\U000e002c\U000e002d\U000e002e\U000e002f\U000e0030\U000e0031\U000e0032\U000e0033\U000e0034\U000e0035\U000e0036\U000e0037\U000e0038\U000e0039\U000e003a\U000e003b\U000e003c\U000e003d\U000e003e\U000e003f\U000e0040\U000e0041\U000e0042\U000e0043\U000e0044\U000e0045\U000e0046\U000e0047\U000e0048\U000e0049\U000e004a\U000e004b\U000e004c\U000e004d\U000e004e\U000e004f\U000e0050\U000e0051\U000e0052\U000e0053\U000e0054\U000e0055\U000e0056\U000e0057\U000e0058\U000e0059\U000e005a\U000e005b\U000e005c\U000e005d\U000e005e\U000e005f\U000e0060\U000e0061\U000e0062\U000e0063\U000e0064\U000e0065\U000e0066\U000e0067\U000e0068\U000e0069\U000e006a\U000e006b\U000e006c\U000e006d\U000e006e\U000e006f\U000e0070\U000e0071\U000e0072\U000e0073\U000e0074\U000e0075\U000e0076\U000e0077\U000e0078\U000e0079\U000e007a\U000e007b\U000e007c\U000e007d\U000e007e\U000e007f": @"the7",
349+ @"₀₁₂": @"the8",
350+ @"⒯⒣⒠ ⒬⒰⒤⒞⒦ ⒝⒭⒪⒲⒩ ⒡⒪⒳ ⒥⒰⒨⒫⒮ ⒪⒱⒠⒭ ⒯⒣⒠ ⒧⒜⒵⒴ ⒟⒪⒢": @"the9",
351+ @"999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999": @"the999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999",
352+ @"false": @"theFalse",
353+ @"# The next two lines may appear to be blank or mojibake in some viewers.": @"theNextTwoLinesMayAppearToBeBlankOrMojibakeInSomeViewers",
354+ @"The quic\010\010\010\010\010\010k brown fo\007\007\007\007\007\007\007\007\007\007\007x... [Beeeep]": @"theQuicKBrownFoXBeeeep",
355+ @"\u2066test\u2067": @"theTest",
356+ @"٠١٢٣٤٥٦٧٨٩": @"the٠١٢٣٤٥٦٧٨٩",
357+ @"#\tTwo-Byte Characters": @"twoByteCharacters",
358+ @"# U+0000, U+000A, or U+000D (NUL, LF, CR).": @"u0000U000AOrU000DNULLFCR",
359+ @"<u oncopy=alert()> Copy me</u>": @"uOncopyAlertCopyMeU",
360+ @"undef": @"undef",
361+ @"#\tUnicode font": @"unicodeFont",
362+ @"#\tUnicode Numbers": @"unicodeNumbers",
363+ @"#\tUnwanted Interpolation": @"unwantedInterpolation",
364+ @"%x('ls -al /')": @"xLsAl",
365+ @"Z̮̞̠͙͔ͅḀ̗̞͈̻̗Ḷ͙͎̯̹̞͓G̻O̭̗̮": @"zḀḶGO",
366+ @"¡™£¢∞§¶•ªº–≠": @"ªº",
367+ @"¸˛Ç◊ı˜Â¯˘¿": @"çIÂ",
368+ @"Œ„´‰ˇÁ¨ˆØ∏”’": @"œÁØ",
369+ @"œ∑´®†¥¨ˆøπ“‘": @"œØπ",
370+ @"( ͡° ͜ʖ ͡°)": @"ʖ",
371+ @"הָיְתָהtestالصفحات التّحول": @"הָיְתָהTestالصفحاتالتّحول",
372+ @"ثم نفس سقطت وبالتحديد،, جزيرتي باستخدام أن دنو. إذ هنا؟ الستار وتنصيب كان. أهّل ايطاليا، بريطانيا-فرنسا قد أخذ. سليمان، إتفاقية بين ما, يذكر الحدود أي بعد, معاملة بولندا، الإطلاق عل إيو.": @"ثمنفسسقطتوبالتحديدجزيرتيباستخدامأندنوإذهناالستاروتنصيبكانأهّلايطاليابريطانيافرنساقدأخذسليمانإتفاقيةبينمايذكرالحدودأيبعدمعاملةبولنداالإطلاقعلإيو",
373+ @"ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็": @"ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็",
374+ @"Ⱥ": @"ⱥ",
375+ @"Ⱦ": @"ⱦ",
376+ @"パーティーへ行かないか": @"パーティーへ行かないか",
377+ @"和製漢語": @"和製漢語",
378+ @"田中さんにあげて下さい": @"田中さんにあげて下さい",
379+ @"`⁄€‹›fifl‡°·‚—±": @"fifl",
380+ @"`ィ(´∀`∩": @"ィ",
381+ };
382+}
383+
384++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
385+{
386+ return [dict isKindOfClass:NSDictionary.class] ? [[QTA alloc] initWithJSONDictionary:dict] : nil;
387+}
388+
389+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
390+{
391+ if (self = [super init]) {
392+ if (![dict[@"!@#$%^&*()`~"] isKindOfClass:NSString.class]) return nil;
393+ if (![dict[@"-0"] isKindOfClass:NSString.class]) return nil;
394+ if (![dict[@"0,00"] isKindOfClass:NSString.class]) return nil;
395+ if (![dict[@"0.0/0.0"] isKindOfClass:NSString.class]) return nil;
396+ if (![dict[@"-1"] isKindOfClass:NSString.class]) return nil;
397+ if (![dict[@"1'000'000.00"] isKindOfClass:NSString.class]) return nil;
398+ if (![dict[@"1E02"] isKindOfClass:NSString.class]) return nil;
399+ if (![dict[@"';alert(123);t='"] isKindOfClass:NSString.class]) return nil;
400+ if (![dict[@"False"] isKindOfClass:NSString.class]) return nil;
401+ if (![dict[@"<a href=java&#1&#2&#3&#4&#5&#6&#7&#8&#11&#12script:javascript:alert(1)>XXX</a>"] isKindOfClass:NSString.class]) return nil;
402+ if (![dict[@"<a href=\"javascript\\x09:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
403+ if (![dict[@"<a href=\"javascript\\x0A:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
404+ if (![dict[@"<a href=\"javascript\\x3A:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
405+ if (![dict[@"<a href=\"\\x01javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
406+ if (![dict[@"<a href=\"\\x05javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
407+ if (![dict[@"<a href=\"\\x08javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
408+ if (![dict[@"<a href=\"\\x09javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
409+ if (![dict[@"<a href=\"\\x0Cjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
410+ if (![dict[@"<a href=\"\\x10javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
411+ if (![dict[@"<a href=\"\\x11javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
412+ if (![dict[@"<a href=\"\\x13javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
413+ if (![dict[@"<a href=\"\\x17javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
414+ if (![dict[@"<a href=\"\\x1Fjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
415+ if (![dict[@"<a href=\"\\xC2\\xA0javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
416+ if (![dict[@"<a href=\"\\xE1\\x9A\\x80javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
417+ if (![dict[@"<a href=\"\\xE1\\xA0\\x8Ejavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
418+ if (![dict[@"<a href=\"\\xE2\\x80\\x83javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
419+ if (![dict[@"<a href=\"\\xE2\\x80\\x84javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
420+ if (![dict[@"<a href=\"\\xE2\\x80\\x86javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
421+ if (![dict[@"<a href=\"\\xE2\\x80\\x87javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
422+ if (![dict[@"<a href=\"\\xE2\\x80\\xA8javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
423+ if (![dict[@"nil"] isKindOfClass:NSString.class]) return nil;
424+ if (![dict[@"TRUE"] isKindOfClass:NSString.class]) return nil;
425+ if (![dict[@"\u202btest\u202b"] isKindOfClass:NSString.class]) return nil;
426+ if (![dict[@"True"] isKindOfClass:NSString.class]) return nil;
427+ if (![dict[@"ABC<div style=\"x:exp\\x00ression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
428+ if (![dict[@"ABC<div style=\"x:exp\\x5Cression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
429+ if (![dict[@"ABC<div style=\"x:\\x09expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
430+ if (![dict[@"ABC<div style=\"x:\\x0Bexpression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
431+ if (![dict[@"ABC<div style=\"x:\\x20expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
432+ if (![dict[@"ABC<div style=\"x\\x3Aexpression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
433+ if (![dict[@"ABC<div style=\"x:\\xC2\\xA0expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
434+ if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x80expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
435+ if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x84expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
436+ if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x89expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
437+ if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x8Bexpression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
438+ if (![dict[@";alert(123);"] isKindOfClass:NSString.class]) return nil;
439+ if (![dict[@"\";alert(123);t=\""] isKindOfClass:NSString.class]) return nil;
440+ if (![dict[@"\\\";alert('XSS');//"] isKindOfClass:NSString.class]) return nil;
441+ if (![dict[@"# and U+200B (ZERO WIDTH SPACE), which are in the C categories but are often"] isKindOfClass:NSString.class]) return nil;
442+ if (![dict[@","] isKindOfClass:NSString.class]) return nil;
443+ if (![dict[@"Arsenal canal"] isKindOfClass:NSString.class]) return nil;
444+ if (![dict[@"\" autofocus onkeyup=\"javascript:alert(123)"] isKindOfClass:NSString.class]) return nil;
445+ if (![dict[@"AUX"] isKindOfClass:NSString.class]) return nil;
446+ if (![dict[@"#\tChanging length when lowercased"] isKindOfClass:NSString.class]) return nil;
447+ if (![dict[@"#\tCharacters which increase in length (2 to 3 bytes) when lowercased"] isKindOfClass:NSString.class]) return nil;
448+ if (![dict[@"classic"] isKindOfClass:NSString.class]) return nil;
449+ if (![dict[@"#\tCommand Injection (Ruby)"] isKindOfClass:NSString.class]) return nil;
450+ if (![dict[@"%d"] isKindOfClass:NSString.class]) return nil;
451+ if (![dict[@"Dick Van Dyke"] isKindOfClass:NSString.class]) return nil;
452+ if (![dict[@"Dr. Herman I. Libshitz"] isKindOfClass:NSString.class]) return nil;
453+ if (![dict[@" "] isKindOfClass:NSString.class]) return nil;
454+ if (![dict[@"$ENV{'HOME'}"] isKindOfClass:NSString.class]) return nil;
455+ if (![dict[@"../../../../../../../../../../../etc/hosts"] isKindOfClass:NSString.class]) return nil;
456+ if (![dict[@"../../../../../../../../../../../etc/passwd%00"] isKindOfClass:NSString.class]) return nil;
457+ if (![dict[@"# fonts, and have a number of special behaviors"] isKindOfClass:NSString.class]) return nil;
458+ if (![dict[@"<foo val=`bar' />"] isKindOfClass:NSString.class]) return nil;
459+ if (![dict[@"$HOME"] isKindOfClass:NSString.class]) return nil;
460+ if (![dict[@"#\tHuman injection"] isKindOfClass:NSString.class]) return nil;
461+ if (![dict[@"̡͓̞ͅI̗̘̦͝n͇͇͙v̮̫ok̲̫̙͈i̖͙̭̹̠̞n̡̻̮̣̺g̲͈͙̭͙̬͎ ̰t͔̦h̞̲e̢̤ ͍̬̲͖f̴̘͕̣è͖ẹ̥̩l͖͔͚i͓͚̦͠n͖͍̗͓̳̮g͍ ̨o͚̪͡f̘̣̬ ̖̘͖̟͙̮c҉͔̫͖͓͇͖ͅh̵̤̣͚͔á̗̼͕ͅo̼̣̥s̱͈̺̖̦̻͢.̛̖̞̠̫̰"] isKindOfClass:NSString.class]) return nil;
462+ if (![dict[@"<!--[if<img src=x onerror=javascript:alert(1)//]> -->"] isKindOfClass:NSString.class]) return nil;
463+ if (![dict[@"<!--[if]><script>javascript:alert(1)</script -->"] isKindOfClass:NSString.class]) return nil;
464+ if (![dict[@"<IMG SRC=\"jav ascript:alert('XSS');\">"] isKindOfClass:NSString.class]) return nil;
465+ if (![dict[@"<IMG SRC=\"jav&#x0A;ascript:alert('XSS');\">"] isKindOfClass:NSString.class]) return nil;
466+ if (![dict[@"<IMG SRC=\"jav&#x0D;ascript:alert('XSS');\">"] isKindOfClass:NSString.class]) return nil;
467+ if (![dict[@"<IMG SRC=&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#88;&#83;&#83;&#39;&#41;>"] isKindOfClass:NSString.class]) return nil;
468+ if (![dict[@"<img src\\x09=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
469+ if (![dict[@"<img src\\x11=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
470+ if (![dict[@"<img src=x onerror=\\x00\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
471+ if (![dict[@"<img src=x onerror=\\x09\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
472+ if (![dict[@"<img src=x\\x09onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
473+ if (![dict[@"<img src=x\\x10onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
474+ if (![dict[@"<img src=x\\x11onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
475+ if (![dict[@"<img src=x\\x12onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
476+ if (![dict[@"<img src=x\\x13onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
477+ if (![dict[@"`\"'><img src=xxx:x \\x00onerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil;
478+ if (![dict[@"`\"'><img src=xxx:x \\x0Bonerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil;
479+ if (![dict[@"`\"'><img src=xxx:x \\x2Fonerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil;
480+ if (![dict[@"<img \\x00src=x onerror=\"alert(1)\">"] isKindOfClass:NSString.class]) return nil;
481+ if (![dict[@"<img\\x10src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
482+ if (![dict[@"<img\\x13src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
483+ if (![dict[@"<img\\x32src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
484+ if (![dict[@"<img \\x39src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
485+ if (![dict[@"INF"] isKindOfClass:NSString.class]) return nil;
486+ if (![dict[@"-Infinity"] isKindOfClass:NSString.class]) return nil;
487+ if (![dict[@"#\tInnocuous strings which may be blocked by profanity filters (https://en.wikipedia.org/wiki/Scunthorpe_problem)"] isKindOfClass:NSString.class]) return nil;
488+ if (![dict[@"dontMakeAMap"] isKindOfClass:NSNumber.class]) return nil;
489+ if (![dict[@"Jimmy Clitheroe"] isKindOfClass:NSString.class]) return nil;
490+ if (![dict[@"Kernel.exit(1)"] isKindOfClass:NSString.class]) return nil;
491+ if (![dict[@"#\tKnown CVEs and Vulnerabilities"] isKindOfClass:NSString.class]) return nil;
492+ if (![dict[@"Lightwater Country Park"] isKindOfClass:NSString.class]) return nil;
493+ if (![dict[@"LPT2"] isKindOfClass:NSString.class]) return nil;
494+ if (![dict[@"LPT3"] isKindOfClass:NSString.class]) return nil;
495+ if (![dict[@"`ls -al /`"] isKindOfClass:NSString.class]) return nil;
496+ if (![dict[@"#\tMSDOS/Windows Special Filenames"] isKindOfClass:NSString.class]) return nil;
497+ if (![dict[@"# Non-whitespace C1 controls: U+0080 through U+0084 and U+0086 through U+009F."] isKindOfClass:NSString.class]) return nil;
498+ if (![dict[@"None"] isKindOfClass:NSString.class]) return nil;
499+ if (![dict[@"(null)"] isKindOfClass:NSString.class]) return nil;
500+ if (![dict[@"'\"'"] isKindOfClass:NSString.class]) return nil;
501+ if (![dict[@"0"] isKindOfClass:NSString.class]) return nil;
502+ if (![dict[@"1"] isKindOfClass:NSString.class]) return nil;
503+ if (![dict[@" onfocus=JaVaSCript:alert(123) autofocus"] isKindOfClass:NSString.class]) return nil;
504+ if (![dict[@"' OR '1'='1"] isKindOfClass:NSString.class]) return nil;
505+ if (![dict[@"Penistone Community Church"] isKindOfClass:NSString.class]) return nil;
506+ if (![dict[@"perl -e 'print \"<IMG SRC=java\\0script:alert(\\\"XSS\\\")>\";' > out"] isKindOfClass:NSString.class]) return nil;
507+ if (![dict[@"PRN"] isKindOfClass:NSString.class]) return nil;
508+ if (![dict[@"RomansInSussex.co.uk"] isKindOfClass:NSString.class]) return nil;
509+ if (![dict[@"%s"] isKindOfClass:NSString.class]) return nil;
510+ if (![dict[@"<<< %s(un='%s') = %u"] isKindOfClass:NSString.class]) return nil;
511+ if (![dict[@"<sc<script>ript>alert(123)</sc</script>ript>"] isKindOfClass:NSString.class]) return nil;
512+ if (![dict[@"\"><script>alert(123);</script x=\""] isKindOfClass:NSString.class]) return nil;
513+ if (![dict[@"#\tScript Injection"] isKindOfClass:NSString.class]) return nil;
514+ if (![dict[@"<SCRIPT SRC=http://ha.ckers.org/xss.js?< B >"] isKindOfClass:NSString.class]) return nil;
515+ if (![dict[@"<SCRIPT/SRC=\"http://ha.ckers.org/xss.js\"></SCRIPT>"] isKindOfClass:NSString.class]) return nil;
516+ if (![dict[@"</script><script>alert(123)</script>"] isKindOfClass:NSString.class]) return nil;
517+ if (![dict[@"\"`'><script>\\x00javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
518+ if (![dict[@"<script\\x09type=\"text/javascript\">javascript:alert(1);</script>"] isKindOfClass:NSString.class]) return nil;
519+ if (![dict[@"\"`'><script>\\x0Cjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
520+ if (![dict[@"\"`'><script>\\x0Djavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
521+ if (![dict[@"<script\\x20type=\"text/javascript\">javascript:alert(1);</script>"] isKindOfClass:NSString.class]) return nil;
522+ if (![dict[@"<script\\x3Etype=\"text/javascript\">javascript:alert(1);</script>"] isKindOfClass:NSString.class]) return nil;
523+ if (![dict[@"\"`'><script>\\xC2\\x85javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
524+ if (![dict[@"\"`'><script>\\xC2\\xA0javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
525+ if (![dict[@"\"`'><script>\\xE1\\x9A\\x80javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
526+ if (![dict[@"\"`'><script>\\xE1\\xA0\\x8Ejavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
527+ if (![dict[@"\"`'><script>\\xE2\\x80\\x81javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
528+ if (![dict[@"\"`'><script>\\xE2\\x80\\x86javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
529+ if (![dict[@"\"`'><script>\\xE2\\x80\\x89javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
530+ if (![dict[@"\"`'><script>\\xE2\\x81\\x9Fjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
531+ if (![dict[@"\"`'><script>\\xEF\\xBB\\xBFjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
532+ if (![dict[@"\"`'><script>\\xF0\\x90\\x96\\x9Ajavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
533+ if (![dict[@"<SCRIPT/XSS SRC=\"http://ha.ckers.org/xss.js\"></SCRIPT>"] isKindOfClass:NSString.class]) return nil;
534+ if (![dict[@"(╯°□°)╯︵ ┻━┻)"] isKindOfClass:NSString.class]) return nil;
535+ if (![dict[@"{0}"] isKindOfClass:NSString.class]) return nil;
536+ if (![dict[@"#\tSQL Injection"] isKindOfClass:NSString.class]) return nil;
537+ if (![dict[@"#\tString which can reveal system files when parsed by a badly configured XML parser"] isKindOfClass:NSString.class]) return nil;
538+ if (![dict[@"#\tStrings that test for known vulnerabilities"] isKindOfClass:NSString.class]) return nil;
539+ if (![dict[@"#\tStrings which can be accidentally expanded into different strings if evaluated in the wrong context, e.g. used as a printf format string or via Perl or shell eval. Might expose sensitive data from the program doing the interpolation, or might just represent the wrong string."] isKindOfClass:NSString.class]) return nil;
540+ if (![dict[@"#\tStrings which can call system commands within Ruby/Rails applications"] isKindOfClass:NSString.class]) return nil;
541+ if (![dict[@"#\tStrings which consists of Japanese-style emoticons which are popular on the web"] isKindOfClass:NSString.class]) return nil;
542+ if (![dict[@"#\tStrings which contain bold/italic/etc. versions of normal characters"] isKindOfClass:NSString.class]) return nil;
543+ if (![dict[@"#\tStrings which contain common unicode symbols (e.g. smart quotes)"] isKindOfClass:NSString.class]) return nil;
544+ if (![dict[@"#\tStrings which contain Emoji; should be the same behavior as two-byte characters, but not always"] isKindOfClass:NSString.class]) return nil;
545+ if (![dict[@"#\tStrings which contain misplaced quotation marks; can cause encoding errors"] isKindOfClass:NSString.class]) return nil;
546+ if (![dict[@"#\tStrings which contain unicode subscripts/superscripts; can cause rendering issues"] isKindOfClass:NSString.class]) return nil;
547+ if (![dict[@"#\tStrings which crashed iMessage in various versions of iOS"] isKindOfClass:NSString.class]) return nil;
548+ if (![dict[@"#\tStrings which may cause human to reinterpret worldview"] isKindOfClass:NSString.class]) return nil;
549+ if (![dict[@"Super Bowl XXX"] isKindOfClass:NSString.class]) return nil;
550+ if (![dict[@"\u202a\u202atest\u202a"] isKindOfClass:NSString.class]) return nil;
551+ if (![dict[@"</textarea><script>alert(123)</script>"] isKindOfClass:NSString.class]) return nil;
552+ if (![dict[@"'"] isKindOfClass:NSString.class]) return nil;
553+ if (![dict[@"+0"] isKindOfClass:NSString.class]) return nil;
554+ if (![dict[@"0..0"] isKindOfClass:NSString.class]) return nil;
555+ if (![dict[@"0,0,0"] isKindOfClass:NSString.class]) return nil;
556+ if (![dict[@"0,0/0,0"] isKindOfClass:NSString.class]) return nil;
557+ if (![dict[@"00˙Ɩ$-"] isKindOfClass:NSString.class]) return nil;
558+ if (![dict[@"0x0"] isKindOfClass:NSString.class]) return nil;
559+ if (![dict[@",./;'[]\\-="] isKindOfClass:NSString.class]) return nil;
560+ if (![dict[@"1/0"] isKindOfClass:NSString.class]) return nil;
561+ if (![dict[@"1.00"] isKindOfClass:NSString.class]) return nil;
562+ if (![dict[@"1.0/0.0"] isKindOfClass:NSString.class]) return nil;
563+ if (![dict[@"1'000,00"] isKindOfClass:NSString.class]) return nil;
564+ if (![dict[@"1 000 000.00"] isKindOfClass:NSString.class]) return nil;
565+ if (![dict[@"\U0001d47b\U0001d489\U0001d486 \U0001d492\U0001d496\U0001d48a\U0001d484\U0001d48c \U0001d483\U0001d493\U0001d490\U0001d498\U0001d48f \U0001d487\U0001d490\U0001d499 \U0001d48b\U0001d496\U0001d48e\U0001d491\U0001d494 \U0001d490\U0001d497\U0001d486\U0001d493 \U0001d495\U0001d489\U0001d486 \U0001d48d\U0001d482\U0001d49b\U0001d49a \U0001d485\U0001d490\U0001d488"] isKindOfClass:NSString.class]) return nil;
566+ if (![dict[@"1/2"] isKindOfClass:NSString.class]) return nil;
567+ if (![dict[@"123456789012345678901234567890123456789"] isKindOfClass:NSString.class]) return nil;
568+ if (![dict[@"\U0001d4e3\U0001d4f1\U0001d4ee \U0001d4fa\U0001d4fe\U0001d4f2\U0001d4ec\U0001d4f4 \U0001d4eb\U0001d4fb\U0001d4f8\U0001d500\U0001d4f7 \U0001d4ef\U0001d4f8\U0001d501 \U0001d4f3\U0001d4fe\U0001d4f6\U0001d4f9\U0001d4fc \U0001d4f8\U0001d4ff\U0001d4ee\U0001d4fb \U0001d4fd\U0001d4f1\U0001d4ee \U0001d4f5\U0001d4ea\U0001d503\U0001d502 \U0001d4ed\U0001d4f8\U0001d4f0"] isKindOfClass:NSString.class]) return nil;
569+ if (![dict[@"\U0001d57f\U0001d58d\U0001d58a \U0001d596\U0001d59a\U0001d58e\U0001d588\U0001d590 \U0001d587\U0001d597\U0001d594\U0001d59c\U0001d593 \U0001d58b\U0001d594\U0001d59d \U0001d58f\U0001d59a\U0001d592\U0001d595\U0001d598 \U0001d594\U0001d59b\U0001d58a\U0001d597 \U0001d599\U0001d58d\U0001d58a \U0001d591\U0001d586\U0001d59f\U0001d59e \U0001d589\U0001d594\U0001d58c"] isKindOfClass:NSString.class]) return nil;
570+ if (![dict[@"\U0001f1fa\U0001f1f8\U0001f1f7\U0001f1fa\U0001f1f8 \U0001f1e6\U0001f1eb\U0001f1e6\U0001f1f2\U0001f1f8"] isKindOfClass:NSString.class]) return nil;
571+ if (![dict[@"\U0001f1fa\U0001f1f8\U0001f1f7\U0001f1fa\U0001f1f8\U0001f1e6"] isKindOfClass:NSString.class]) return nil;
572+ if (![dict[@"\U0001f1fa\U0001f1f8\U0001f1f7\U0001f1fa\U0001f1f8\U0001f1e6\U0001f1eb\U0001f1e6\U0001f1f2"] isKindOfClass:NSString.class]) return nil;
573+ if (![dict[@"\U0001f469\U0001f3fd"] isKindOfClass:NSString.class]) return nil;
574+ if (![dict[@"\U0001f6be \U0001f192 \U0001f193 \U0001f195 \U0001f196 \U0001f197 \U0001f199 \U0001f3e7"] isKindOfClass:NSString.class]) return nil;
575+ if (![dict[@"1;DROP TABLE users"] isKindOfClass:NSString.class]) return nil;
576+ if (![dict[@"-1E02"] isKindOfClass:NSString.class]) return nil;
577+ if (![dict[@"1E2"] isKindOfClass:NSString.class]) return nil;
578+ if (![dict[@"1#QNAN"] isKindOfClass:NSString.class]) return nil;
579+ if (![dict[@"1#SNAN"] isKindOfClass:NSString.class]) return nil;
580+ if (![dict[@"-,"] isKindOfClass:NSString.class]) return nil;
581+ if (![dict[@"﷽"] isKindOfClass:NSString.class]) return nil;
582+ if (![dict[@"\ufeff"] isKindOfClass:NSString.class]) return nil;
583+ if (![dict[@"゚・✿ヾ╲(。◕‿◕。)╱✿・゚"] isKindOfClass:NSString.class]) return nil;
584+ if (![dict[@"\ufffe"] isKindOfClass:NSString.class]) return nil;
585+ if (![dict[@"-."] isKindOfClass:NSString.class]) return nil;
586+ if (![dict[@"<>?:\"{}|_+"] isKindOfClass:NSString.class]) return nil;
587+ if (![dict[@"\\"] isKindOfClass:NSString.class]) return nil;
588+ if (![dict[@"\302\200\302\201\302\202\302\203\302\204\302\206\302\207\302\210\302\211\302\212\302\213\302\214\302\215\302\216\302\217\302\220\302\221\302\222\302\223\302\224\302\225\302\226\302\227\302\230\302\231\302\232\302\233\302\234\302\235\302\236\302\237"] isKindOfClass:NSString.class]) return nil;
589+ if (![dict[@"\302\255\u0600\u0601\u0602\u0603\u0604\u0605\u061c\u06dd\u070f\u180e\u200b\u200c\u200d\u200e\u200f\u202a\u202b\u202c\u202d\u202e\u2060\u2061\u2062\u2063\u2064\u2066\u2067\u2068\u2069\u206a\u206b\u206c\u206d\u206e\u206f\ufeff\ufff9\ufffa\ufffb\U000110bd\U0001bca0\U0001bca1\U0001bca2\U0001bca3\U0001d173\U0001d174\U0001d175\U0001d176\U0001d177\U0001d178\U0001d179\U0001d17a\U000e0001\U000e0020\U000e0021\U000e0022\U000e0023\U000e0024\U000e0025\U000e0026\U000e0027\U000e0028\U000e0029\U000e002a\U000e002b\U000e002c\U000e002d\U000e002e\U000e002f\U000e0030\U000e0031\U000e0032\U000e0033\U000e0034\U000e0035\U000e0036\U000e0037\U000e0038\U000e0039\U000e003a\U000e003b\U000e003c\U000e003d\U000e003e\U000e003f\U000e0040\U000e0041\U000e0042\U000e0043\U000e0044\U000e0045\U000e0046\U000e0047\U000e0048\U000e0049\U000e004a\U000e004b\U000e004c\U000e004d\U000e004e\U000e004f\U000e0050\U000e0051\U000e0052\U000e0053\U000e0054\U000e0055\U000e0056\U000e0057\U000e0058\U000e0059\U000e005a\U000e005b\U000e005c\U000e005d\U000e005e\U000e005f\U000e0060\U000e0061\U000e0062\U000e0063\U000e0064\U000e0065\U000e0066\U000e0067\U000e0068\U000e0069\U000e006a\U000e006b\U000e006c\U000e006d\U000e006e\U000e006f\U000e0070\U000e0071\U000e0072\U000e0073\U000e0074\U000e0075\U000e0076\U000e0077\U000e0078\U000e0079\U000e007a\U000e007b\U000e007c\U000e007d\U000e007e\U000e007f"] isKindOfClass:NSString.class]) return nil;
590+ if (![dict[@"₀₁₂"] isKindOfClass:NSString.class]) return nil;
591+ if (![dict[@"⒯⒣⒠ ⒬⒰⒤⒞⒦ ⒝⒭⒪⒲⒩ ⒡⒪⒳ ⒥⒰⒨⒫⒮ ⒪⒱⒠⒭ ⒯⒣⒠ ⒧⒜⒵⒴ ⒟⒪⒢"] isKindOfClass:NSString.class]) return nil;
592+ if (![dict[@"999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999"] isKindOfClass:NSString.class]) return nil;
593+ if (![dict[@"false"] isKindOfClass:NSString.class]) return nil;
594+ if (![dict[@"# The next two lines may appear to be blank or mojibake in some viewers."] isKindOfClass:NSString.class]) return nil;
595+ if (![dict[@"The quic\010\010\010\010\010\010k brown fo\007\007\007\007\007\007\007\007\007\007\007x... [Beeeep]"] isKindOfClass:NSString.class]) return nil;
596+ if (![dict[@"\u2066test\u2067"] isKindOfClass:NSString.class]) return nil;
597+ if (![dict[@"٠١٢٣٤٥٦٧٨٩"] isKindOfClass:NSString.class]) return nil;
598+ if (![dict[@"#\tTwo-Byte Characters"] isKindOfClass:NSString.class]) return nil;
599+ if (![dict[@"# U+0000, U+000A, or U+000D (NUL, LF, CR)."] isKindOfClass:NSString.class]) return nil;
600+ if (![dict[@"<u oncopy=alert()> Copy me</u>"] isKindOfClass:NSString.class]) return nil;
601+ if (![dict[@"undef"] isKindOfClass:NSString.class]) return nil;
602+ if (![dict[@"#\tUnicode font"] isKindOfClass:NSString.class]) return nil;
603+ if (![dict[@"#\tUnicode Numbers"] isKindOfClass:NSString.class]) return nil;
604+ if (![dict[@"#\tUnwanted Interpolation"] isKindOfClass:NSString.class]) return nil;
605+ if (![dict[@"%x('ls -al /')"] isKindOfClass:NSString.class]) return nil;
606+ if (![dict[@"Z̮̞̠͙͔ͅḀ̗̞͈̻̗Ḷ͙͎̯̹̞͓G̻O̭̗̮"] isKindOfClass:NSString.class]) return nil;
607+ if (![dict[@"¡™£¢∞§¶•ªº–≠"] isKindOfClass:NSString.class]) return nil;
608+ if (![dict[@"¸˛Ç◊ı˜Â¯˘¿"] isKindOfClass:NSString.class]) return nil;
609+ if (![dict[@"Œ„´‰ˇÁ¨ˆØ∏”’"] isKindOfClass:NSString.class]) return nil;
610+ if (![dict[@"œ∑´®†¥¨ˆøπ“‘"] isKindOfClass:NSString.class]) return nil;
611+ if (![dict[@"( ͡° ͜ʖ ͡°)"] isKindOfClass:NSString.class]) return nil;
612+ if (![dict[@"הָיְתָהtestالصفحات التّحول"] isKindOfClass:NSString.class]) return nil;
613+ if (![dict[@"ثم نفس سقطت وبالتحديد،, جزيرتي باستخدام أن دنو. إذ هنا؟ الستار وتنصيب كان. أهّل ايطاليا، بريطانيا-فرنسا قد أخذ. سليمان، إتفاقية بين ما, يذكر الحدود أي بعد, معاملة بولندا، الإطلاق عل إيو."] isKindOfClass:NSString.class]) return nil;
614+ if (![dict[@"ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็"] isKindOfClass:NSString.class]) return nil;
615+ if (![dict[@"Ⱥ"] isKindOfClass:NSString.class]) return nil;
616+ if (![dict[@"Ⱦ"] isKindOfClass:NSString.class]) return nil;
617+ if (![dict[@"パーティーへ行かないか"] isKindOfClass:NSString.class]) return nil;
618+ if (![dict[@"和製漢語"] isKindOfClass:NSString.class]) return nil;
619+ if (![dict[@"田中さんにあげて下さい"] isKindOfClass:NSString.class]) return nil;
620+ if (![dict[@"`⁄€‹›fifl‡°·‚—±"] isKindOfClass:NSString.class]) return nil;
621+ if (![dict[@"`ィ(´∀`∩"] isKindOfClass:NSString.class]) return nil;
622+ [self setValuesForKeysWithDictionary:dict];
623+ }
624+ return self;
625+}
626+
627+- (void)setValue:(nullable id)value forKey:(NSString *)key
628+{
629+ id resolved = QTA.properties[key];
630+ if (resolved) [super setValue:value forKey:resolved];
631+}
632+
633+- (void)setNilValueForKey:(NSString *)key
634+{
635+ id resolved = QTA.properties[key];
636+ if (resolved) [super setValue:@(0) forKey:resolved];
637+}
638+
639+- (NSDictionary *)JSONDictionary
640+{
641+ id dict = [[self dictionaryWithValuesForKeys:QTA.properties.allValues] mutableCopy];
642+
643+ for (id jsonName in QTA.properties) {
644+ id propertyName = QTA.properties[jsonName];
645+ if (![jsonName isEqualToString:propertyName]) {
646+ dict[jsonName] = dict[propertyName];
647+ [dict removeObjectForKey:propertyName];
648+ }
649+ }
650+
651+ [dict addEntriesFromDictionary:@{
652+ @"dontMakeAMap": _isDontMakeAMap ? @YES : @NO,
653+ }];
654+
655+ return dict;
656+}
657+@end
658+
659+@implementation QTB
660++ (NSDictionary<NSString *, NSString *> *)properties
661+{
662+ static NSDictionary<NSString *, NSString *> *properties;
663+ return properties = properties ? properties : @{
664+ @"<a href=http://foo.bar/#x=`y></a><img alt=\"`><img src=x:x onerror=javascript:alert(1)></a>\">": @"aHrefHTTPFooBarXYAImgAltImgSrcXXOnerrorJavascriptAlert1A",
665+ @"<a href=\"javascript\\x00:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefJavascriptX00JavascriptAlert1IDFuzzelement1TestA",
666+ @"<a href=\"javascript\\x0D:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefJavascriptX0DJavascriptAlert1IDFuzzelement1TestA",
667+ @"<a href=\"\\x02javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX02JavascriptJavascriptAlert1IDFuzzelement1TestA",
668+ @"<a href=\"\\x04javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX04JavascriptJavascriptAlert1IDFuzzelement1TestA",
669+ @"<a href=\"\\x0Ajavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX0AjavascriptJavascriptAlert1IDFuzzelement1TestA",
670+ @"<a href=\"\\x0Djavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX0DjavascriptJavascriptAlert1IDFuzzelement1TestA",
671+ @"<a href=\"\\x0Ejavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX0EjavascriptJavascriptAlert1IDFuzzelement1TestA",
672+ @"<a href=\"\\x0Fjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX0FjavascriptJavascriptAlert1IDFuzzelement1TestA",
673+ @"<a href=\"\\x16javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX16JavascriptJavascriptAlert1IDFuzzelement1TestA",
674+ @"<a href=\"\\x19javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX19JavascriptJavascriptAlert1IDFuzzelement1TestA",
675+ @"<a href=\"\\x1Ajavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX1AjavascriptJavascriptAlert1IDFuzzelement1TestA",
676+ @"<a href=\"\\x1Djavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX1DjavascriptJavascriptAlert1IDFuzzelement1TestA",
677+ @"<a href=\"\\x1Ejavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX1EjavascriptJavascriptAlert1IDFuzzelement1TestA",
678+ @"<a href=\"\\xE2\\x80\\x81javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X81JavascriptJavascriptAlert1IDFuzzelement1TestA",
679+ @"<a href=\"\\xE2\\x80\\x82javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X82JavascriptJavascriptAlert1IDFuzzelement1TestA",
680+ @"<a href=\"\\xE2\\x80\\xA9javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80XA9JavascriptJavascriptAlert1IDFuzzelement1TestA",
681+ @"<a href=\"\\xE2\\x80\\xAFjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80XAFjavascriptJavascriptAlert1IDFuzzelement1TestA",
682+ @"ABC<div style=\"x:expression\\x5C(javascript:alert(1)\">DEF": @"abcDivStyleXExpressionX5CJavascriptAlert1DEF",
683+ @"ABC<div style=\"x:\\x0Aexpression(javascript:alert(1)\">DEF": @"abcDivStyleXX0AexpressionJavascriptAlert1DEF",
684+ @"ABC<div style=\"x:\\x0Dexpression(javascript:alert(1)\">DEF": @"abcDivStyleXX0DexpressionJavascriptAlert1DEF",
685+ @"ABC<div style=\"x:\\xE2\\x80\\x82expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X82ExpressionJavascriptAlert1DEF",
686+ @"ABC<div style=\"x:\\xE2\\x80\\x83expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X83ExpressionJavascriptAlert1DEF",
687+ @"ABC<div style=\"x:\\xE2\\x80\\x85expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X85ExpressionJavascriptAlert1DEF",
688+ @"ABC<div style=\"x:\\xE2\\x80\\x87expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X87ExpressionJavascriptAlert1DEF",
689+ @"ABC<div style=\"x:\\xE2\\x80\\x8Aexpression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X8AexpressionJavascriptAlert1DEF",
690+ @"⁰⁴⁵₀₁₂": @"another",
691+ @"# appear in input.": @"appearInInput",
692+ @"+++ATH0": @"ath0",
693+ @"' autofocus onkeyup='javascript:alert(123)": @"autofocusOnkeyupJavascriptAlert123",
694+ @"\t\013\014 \302\205             \u200b\u2028\u2029   ": @"b",
695+ @"1'000.00": @"b100000",
696+ @"FALSE": @"bFALSE",
697+ @"<IMG SRC=# onmouseover=\"alert('xxs')\">": @"bIMGSRCOnmouseoverAlertXxs",
698+ @"NIL": @"bNIL",
699+ @"--><script>alert(123)</script>": @"bScriptAlert123Script",
700+ @"`touch /tmp/blns.fail`": @"bTouchTmpBlnsFail",
701+ @"basement": @"basement",
702+ @"But now...\033[20Cfor my greatest trick...\033[8m": @"butNow20CforMyGreatestTrick8M",
703+ @"# \"Byte order marks\", U+FEFF and U+FFFE, each on its own line.": @"byteOrderMarksUFEFFAndUFFFEEachOnItsOwnLine",
704+ @"COM1": @"com1",
705+ @"COM3": @"com3",
706+ @"# Commonly misinterpreted as additional graphic characters.": @"commonlyMisinterpretedAsAdditionalGraphicCharacters",
707+ @"CON": @"con",
708+ @"# contexts. Divided into three groups based on (US-layout) keyboard position.": @"contextsDividedIntoThreeGroupsBasedOnUSLayoutKeyboardPosition",
709+ @"#\tCredit: https://twitter.com/jifa/status/625776454479970304": @"creditHTTPSTwitterCOMJifaStatus625776454479970304",
710+ @"/dev/null; touch /tmp/blns.fail ; echo": @"devNullTouchTmpBlnsFailEcho",
711+ @"\001\002\003\004\005\006\007\010\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\177": @"empty",
712+ @"eval(\"puts 'hello world'\")": @"evalPutsHelloWorld",
713+ @"expression": @"expression",
714+ @"File:///": @"file",
715+ @"#\tFile Inclusion": @"fileInclusion",
716+ @"<foo val=”bar“ />": @"fooValBar",
717+ @"# general category Cf (in Unicode 8.0.0).": @"generalCategoryCFInUnicode800",
718+ @"̦H̬̤̗̤͝e͜ ̜̥̝̻͍̟́w̕h̖̯͓o̝͙̖͎̱̮ ҉̺̙̞̟͈W̷̼̭a̺̪͍į͈͕̭͙̯̜t̶̼̮s̘͙͖̕ ̠̫̠B̻͍͙͉̳ͅe̵h̵̬͇̫͙i̹͓̳̳̮͎̫̕n͟d̴̪̜̖ ̰͉̩͇͙̲͞ͅT͖̼͓̪͢h͏͓̮̻e̬̝̟ͅ ̤̹̝W͙̞̝͔͇͝ͅa͏͓͔̹̼̣l̴͔̰̤̟͔ḽ̫.͕": @"hEWHOWAĮTSBEHINDTHEWALḼ",
719+ @"--help": @"help",
720+ @"http://a/%%30%30": @"httpA3030",
721+ @"#\tiOS Vulnerabilities": @"iOSVulnerabilities",
722+ @"If you're reading this, you've been in a coma for almost 20 years now. We're trying a new technique. We don't know where this message will end up in your dream, but we hope it works. Please wake up, we miss you.": @"ifYouReReadingThisYouVeBeenInAComaForAlmost20YearsNowWeReTryingANewTechniqueWeDonTKnowWhereThisMessageWillEndUpInYourDreamButWeHopeItWorksPleaseWakeUpWeMissYou",
723+ @"<iframe src=http://ha.ckers.org/scriptlet.html <": @"iframeSrcHTTPHaCkersOrgScriptletHTML",
724+ @"<IMG SRC=\" &#14; javascript:alert('XSS');\">": @"imgSRC14JavascriptAlertXSS",
725+ @"<IMG SRC=\"jav&#x09;ascript:alert('XSS');\">": @"imgSRCJavX09AscriptAlertXSS",
726+ @"<IMG SRC= onmouseover=\"alert('xxs')\">": @"imgSRCOnmouseoverAlertXxs",
727+ @"<IMG SRC=&#x6A&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3A&#x61&#x6C&#x65&#x72&#x74&#x28&#x27&#x58&#x53&#x53&#x27&#x29>": @"imgSRCX6AX61X76X61X73X63X72X69X70X74X3AX61X6CX65X72X74X28X27X58X53X53X27X29",
728+ @"<IMG SRC=&#0000106&#0000097&#0000118&#0000097&#0000115&#0000099&#0000114&#0000105&#0000112&#0000116&#0000058&#0000097&#0000108&#0000101&#0000114&#0000116&#0000040&#0000039&#0000088&#0000083&#0000083&#0000039&#0000041>": @"imgSrc00001060000097000011800000970000115000009900001140000105000011200001160000058000009700001080000101000011400001160000040000003900000880000083000008300000390000041",
729+ @"<img src\\x00=x onerror=\"javascript:alert(1)\">": @"imgSrcX00XOnerrorJavascriptAlert1",
730+ @"<img src=x onerror=\\x11\"javascript:alert(1)\">": @"imgSrcXOnerrorX11JavascriptAlert1",
731+ @"<img src=x onerror=\\x12\"javascript:alert(1)\">": @"imgSrcXOnerrorX12JavascriptAlert1",
732+ @"`\"'><img src=xxx:x \\x0Aonerror=javascript:alert(1)>": @"imgSrcXxxXX0AonerrorJavascriptAlert1",
733+ @"`\"'><img src=xxx:x \\x0Conerror=javascript:alert(1)>": @"imgSrcXxxXX0ConerrorJavascriptAlert1",
734+ @"`\"'><img src=xxx:x \\x0Donerror=javascript:alert(1)>": @"imgSrcXxxXX0DonerrorJavascriptAlert1",
735+ @"<img \\x00src=x onerror=\"javascript:alert(1)\">": @"imgX00SrcXOnerrorJavascriptAlert1",
736+ @"<img \\x11src=x onerror=\"javascript:alert(1)\">": @"imgX11SrcXOnerrorJavascriptAlert1",
737+ @"<img \\x12src=x onerror=\"javascript:alert(1)\">": @"imgX12SrcXOnerrorJavascriptAlert1",
738+ @"<img \\x47src=x onerror=\"javascript:alert(1)\">": @"imgX47SrcXOnerrorJavascriptAlert1",
739+ @"# IRC specific strings": @"ircSpecificStrings",
740+ @"dontMakeAMap": @"isDontMakeAMap",
741+ @"#\tJapanese Emoticons": @"japaneseEmoticons",
742+ @"Kernel.exec(\"ls -al /\")": @"kernelExecLsAl",
743+ @"Linda Callahan": @"lindaCallahan",
744+ @"NUL": @"nul",
745+ @"null": @"null",
746+ @"#\tNumeric Strings": @"numericStrings",
747+ @"# Often forbidden to appear in various text-based file formats (e.g. XML),": @"oftenForbiddenToAppearInVariousTextBasedFileFormatsEGXML",
748+ @"#": @"one",
749+ @"\" onfocus=JaVaSCript:alert(123) autofocus": @"onfocusJaVaSCriptAlert123Autofocus",
750+ @"' OR 1=1 -- 1": @"or111",
751+ @"#\tQuotation Marks": @"quotationMarks",
752+ @"# Regional Indicator Symbols": @"regionalIndicatorSymbols",
753+ @"# Regional Indicator Symbols can be displayed differently across": @"regionalIndicatorSymbolsCanBeDisplayedDifferentlyAcross",
754+ @"#\tReserved Strings": @"reservedStrings",
755+ @"\"><script>alert(123)</script>": @"scriptAlert123Script",
756+ @"><script>alert(123);</script x=": @"scriptAlert123ScriptX",
757+ @"<<SCRIPT>alert(\"XSS\");//<</SCRIPT>": @"scriptAlertXSSSCRIPT",
758+ @"<SCRIPT SRC=//ha.ckers.org/.j>": @"scriptSRCHaCkersOrgJ",
759+ @"<script src=\"\\\\%(jscript)s\"></script>": @"scriptSrcJscriptSScript",
760+ @"\"`'><script>\\x09javascript:alert(1)</script>": @"scriptX09JavascriptAlert1Script",
761+ @"<script\\x0Atype=\"text/javascript\">javascript:alert(1);</script>": @"scriptX0AtypeTextJavascriptJavascriptAlert1Script",
762+ @"<script\\x0Dtype=\"text/javascript\">javascript:alert(1);</script>": @"scriptX0DtypeTextJavascriptJavascriptAlert1Script",
763+ @"\"`'><script>\\x21javascript:alert(1)</script>": @"scriptX21JavascriptAlert1Script",
764+ @"\"`'><script>\\x3Bjavascript:alert(1)</script>": @"scriptX3BjavascriptAlert1Script",
765+ @"\"`'><script>\\xE2\\x80\\x85javascript:alert(1)</script>": @"scriptXE2X80X85JavascriptAlert1Script",
766+ @"\"`'><script>\\xE2\\x80\\x87javascript:alert(1)</script>": @"scriptXE2X80X87JavascriptAlert1Script",
767+ @"\"`'><script>\\xE2\\x80\\x8Ajavascript:alert(1)</script>": @"scriptXE2X80X8AjavascriptAlert1Script",
768+ @"\"`'><script>\\xE2\\x80\\xA8javascript:alert(1)</script>": @"scriptXE2X80XA8JavascriptAlert1Script",
769+ @"\"`'><script>\\xE2\\x80\\xA9javascript:alert(1)</script>": @"scriptXE2X80XA9JavascriptAlert1Script",
770+ @"\"`'><script>\\xE2\\x80\\xAFjavascript:alert(1)</script>": @"scriptXE2X80XAFjavascriptAlert1Script",
771+ @"\"`'><script>\\xE3\\x80\\x80javascript:alert(1)</script>": @"scriptXE3X80X80JavascriptAlert1Script",
772+ @"#\tScunthorpe Problem": @"scunthorpeProblem",
773+ @"(。◕ ∀ ◕。)": @"some",
774+ @"# Strings that may occur on IRC clients that make security products freak out": @"stringsThatMayOccurOnIRCClientsThatMakeSecurityProductsFreakOut",
775+ @"#\tStrings which are reserved characters in MSDOS/Windows": @"stringsWhichAreReservedCharactersInMSDOSWindows",
776+ @"#\tStrings which attempt to invoke a benign script injection; shows vulnerability to XSS": @"stringsWhichAttemptToInvokeABenignScriptInjectionShowsVulnerabilityToXSS",
777+ @"#\tStrings which contain text that should be rendered RTL if possible (e.g. Arabic, Hebrew)": @"stringsWhichContainTextThatShouldBeRenderedRTLIfPossibleEGArabicHebrew",
778+ @"#\tStrings which contain two-byte characters: can cause rendering issues or character-length issues": @"stringsWhichContainTwoByteCharactersCanCauseRenderingIssuesOrCharacterLengthIssues",
779+ @"#\tStrings which contain unicode numbers; if the code is localized, it should see the input as numeric": @"stringsWhichContainUnicodeNumbersIfTheCodeIsLocalizedItShouldSeeTheInputAsNumeric",
780+ @"#\tStrings which may be used elsewhere in code": @"stringsWhichMayBeUsedElsewhereInCode",
781+ @"#\tTerminal escape codes": @"terminalEscapeCodes",
782+ @"\"": @"the",
783+ @"0.00": @"the000",
784+ @"01000": @"the01000",
785+ @"08": @"the08",
786+ @"09": @"the09",
787+ @"0xffffffffffffffff": @"the0Xffffffffffffffff",
788+ @"❤️ \U0001f494 \U0001f48c \U0001f495 \U0001f49e \U0001f493 \U0001f497 \U0001f496 \U0001f498 \U0001f49d \U0001f49f \U0001f49c \U0001f49b \U0001f49a \U0001f499": @"the1",
789+ @"$1.00": @"the100",
790+ @"1,0/0,0": @"the1000",
791+ @"1 000.00": @"the100000",
792+ @"1 000 000,00": @"the100000000",
793+ @"1'; DROP TABLE users-- 1": @"the1DROPTABLEUsers1",
794+ @"1#IND": @"the1Ind",
795+ @"1#INF": @"the1Inf",
796+ @"\U0001d54b\U0001d559\U0001d556 \U0001d562\U0001d566\U0001d55a\U0001d554\U0001d55c \U0001d553\U0001d563\U0001d560\U0001d568\U0001d55f \U0001d557\U0001d560\U0001d569 \U0001d55b\U0001d566\U0001d55e\U0001d561\U0001d564 \U0001d560\U0001d567\U0001d556\U0001d563 \U0001d565\U0001d559\U0001d556 \U0001d55d\U0001d552\U0001d56b\U0001d56a \U0001d555\U0001d560\U0001d558": @"the2",
797+ @"-2147483648/-1": @"the21474836481",
798+ @"2.2250738585072011e-308": @"the22250738585072011E308",
799+ @"\U0001f60d": @"the3",
800+ @"# The next line may appear to be blank, mojibake, or dingbats in some viewers.": @"theNextLineMayAppearToBeBlankMojibakeOrDingbatsInSomeViewers",
801+ @"# The next line may appear to be blank or mojibake in some viewers.": @"theNextLineMayAppearToBeBlankOrMojibakeInSomeViewers",
802+ @"# The next line may be flagged for \"trailing whitespace\" in some viewers.": @"theNextLineMayBeFlaggedForTrailingWhitespaceInSomeViewers",
803+ @"<script>alert(123)</script>": @"theScriptAlert123Script",
804+ @"123": @"the123",
805+ @"# This file unfortunately cannot express strings containing": @"thisFileUnfortunatelyCannotExpressStringsContaining",
806+ @"$(touch /tmp/blns.fail)": @"touchTmpBlnsFail",
807+ @"() { _; } >_[$($())] { touch /tmp/blns.shellshock2.fail; }": @"touchTmpBlnsShellshock2Fail",
808+ @"Tyson Gay": @"tysonGay",
809+ @"#\tUnicode Symbols": @"unicodeSymbols",
810+ @"'`\"><\\x00script>javascript:alert(1)</script>": @"x00ScriptJavascriptAlert1Script",
811+ @"'`\"><\\x3Cscript>javascript:alert(1)</script>": @"x3CscriptJavascriptAlert1Script",
812+ @"åß∂ƒ©˙∆˚¬…æ": @"åßƑÆ",
813+ @"˙ɐnbᴉlɐ ɐuƃɐɯ ǝɹolop ʇǝ ǝɹoqɐl ʇn ʇunpᴉpᴉɔuᴉ ɹodɯǝʇ poɯsnᴉǝ op pǝs 'ʇᴉlǝ ƃuᴉɔsᴉdᴉpɐ ɹnʇǝʇɔǝsuoɔ 'ʇǝɯɐ ʇᴉs ɹolop ɯnsdᴉ ɯǝɹo˥": @"ɐnbᴉlɐⱯuƃɐɯƎɹolopꞱǝƎɹoqɐlꞱnꞱunpᴉpᴉɔuᴉɹodɯǝʇPoɯsnᴉǝOpPǝsꞱᴉlǝƂuᴉɔsᴉdᴉpɐɹnʇǝʇɔǝsuoɔꞱǝɯɐꞱᴉsɹolopƜnsdᴉƜǝɹo",
814+ @"Ω≈ç√∫˜µ≤≥÷": @"ωÇΜ",
815+ @"ヽ༼ຈل͜ຈ༽ノ ヽ༼ຈل͜ຈ༽ノ": @"ຈل͜ຈノヽຈل͜ຈノ",
816+ @"Ṱ̺̺̕o͞ ̷i̲̬͇̪͙n̝̗͕v̟̜̘̦͟o̶̙̰̠kè͚̮̺̪̹̱̤ ̖t̝͕̳̣̻̪͞h̼͓̲̦̳̘̲e͇̣̰̦̬͎ ̢̼̻̱̘h͚͎͙̜̣̲ͅi̦̲̣̰̤v̻͍e̺̭̳̪̰-m̢iͅn̖̺̞̲̯̰d̵̼̟͙̩̼̘̳ ̞̥̱̳̭r̛̗̘e͙p͠r̼̞̻̭̗e̺̠̣͟s̘͇̳͍̝͉e͉̥̯̞̲͚̬͜ǹ̬͎͎̟̖͇̤t͍̬̤͓̼̭͘ͅi̪̱n͠g̴͉ ͏͉ͅc̬̟h͡a̫̻̯͘o̫̟̖͍̙̝͉s̗̦̲.̨̹͈̣": @"ṱOINVOKèTHEHIVEMINDREPRESEǸTINGCHAOS",
817+ @"社會科學院語學研究所": @"社會科學院語學研究所",
818+ @"部落格": @"部落格",
819+ @"사회과학원 어학연구소": @"사회과학원어학연구소",
820+ @"찦차를 타고 온 펲시맨과 쑛다리 똠방각하": @"찦차를타고온펲시맨과쑛다리똠방각하",
821+ @"ﷺ": @"ﷺ",
822+ @"__ロ(,_,*)": @"ロ_",
823+ };
824+}
825+
826++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
827+{
828+ return [dict isKindOfClass:NSDictionary.class] ? [[QTB alloc] initWithJSONDictionary:dict] : nil;
829+}
830+
831+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
832+{
833+ if (self = [super init]) {
834+ if (![dict[@"<a href=http://foo.bar/#x=`y></a><img alt=\"`><img src=x:x onerror=javascript:alert(1)></a>\">"] isKindOfClass:NSString.class]) return nil;
835+ if (![dict[@"<a href=\"javascript\\x00:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
836+ if (![dict[@"<a href=\"javascript\\x0D:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
837+ if (![dict[@"<a href=\"\\x02javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
838+ if (![dict[@"<a href=\"\\x04javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
839+ if (![dict[@"<a href=\"\\x0Ajavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
840+ if (![dict[@"<a href=\"\\x0Djavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
841+ if (![dict[@"<a href=\"\\x0Ejavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
842+ if (![dict[@"<a href=\"\\x0Fjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
843+ if (![dict[@"<a href=\"\\x16javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
844+ if (![dict[@"<a href=\"\\x19javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
845+ if (![dict[@"<a href=\"\\x1Ajavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
846+ if (![dict[@"<a href=\"\\x1Djavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
847+ if (![dict[@"<a href=\"\\x1Ejavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
848+ if (![dict[@"<a href=\"\\xE2\\x80\\x81javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
849+ if (![dict[@"<a href=\"\\xE2\\x80\\x82javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
850+ if (![dict[@"<a href=\"\\xE2\\x80\\xA9javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
851+ if (![dict[@"<a href=\"\\xE2\\x80\\xAFjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
852+ if (![dict[@"ABC<div style=\"x:expression\\x5C(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
853+ if (![dict[@"ABC<div style=\"x:\\x0Aexpression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
854+ if (![dict[@"ABC<div style=\"x:\\x0Dexpression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
855+ if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x82expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
856+ if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x83expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
857+ if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x85expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
858+ if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x87expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
859+ if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x8Aexpression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
860+ if (![dict[@"⁰⁴⁵₀₁₂"] isKindOfClass:NSString.class]) return nil;
861+ if (![dict[@"# appear in input."] isKindOfClass:NSString.class]) return nil;
862+ if (![dict[@"+++ATH0"] isKindOfClass:NSString.class]) return nil;
863+ if (![dict[@"' autofocus onkeyup='javascript:alert(123)"] isKindOfClass:NSString.class]) return nil;
864+ if (![dict[@"\t\013\014 \302\205             \u200b\u2028\u2029   "] isKindOfClass:NSString.class]) return nil;
865+ if (![dict[@"1'000.00"] isKindOfClass:NSString.class]) return nil;
866+ if (![dict[@"FALSE"] isKindOfClass:NSString.class]) return nil;
867+ if (![dict[@"<IMG SRC=# onmouseover=\"alert('xxs')\">"] isKindOfClass:NSString.class]) return nil;
868+ if (![dict[@"NIL"] isKindOfClass:NSString.class]) return nil;
869+ if (![dict[@"--><script>alert(123)</script>"] isKindOfClass:NSString.class]) return nil;
870+ if (![dict[@"`touch /tmp/blns.fail`"] isKindOfClass:NSString.class]) return nil;
871+ if (![dict[@"basement"] isKindOfClass:NSString.class]) return nil;
872+ if (![dict[@"But now...\033[20Cfor my greatest trick...\033[8m"] isKindOfClass:NSString.class]) return nil;
873+ if (![dict[@"# \"Byte order marks\", U+FEFF and U+FFFE, each on its own line."] isKindOfClass:NSString.class]) return nil;
874+ if (![dict[@"COM1"] isKindOfClass:NSString.class]) return nil;
875+ if (![dict[@"COM3"] isKindOfClass:NSString.class]) return nil;
876+ if (![dict[@"# Commonly misinterpreted as additional graphic characters."] isKindOfClass:NSString.class]) return nil;
877+ if (![dict[@"CON"] isKindOfClass:NSString.class]) return nil;
878+ if (![dict[@"# contexts. Divided into three groups based on (US-layout) keyboard position."] isKindOfClass:NSString.class]) return nil;
879+ if (![dict[@"#\tCredit: https://twitter.com/jifa/status/625776454479970304"] isKindOfClass:NSString.class]) return nil;
880+ if (![dict[@"/dev/null; touch /tmp/blns.fail ; echo"] isKindOfClass:NSString.class]) return nil;
881+ if (![dict[@"\001\002\003\004\005\006\007\010\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\177"] isKindOfClass:NSString.class]) return nil;
882+ if (![dict[@"eval(\"puts 'hello world'\")"] isKindOfClass:NSString.class]) return nil;
883+ if (![dict[@"expression"] isKindOfClass:NSString.class]) return nil;
884+ if (![dict[@"File:///"] isKindOfClass:NSString.class]) return nil;
885+ if (![dict[@"#\tFile Inclusion"] isKindOfClass:NSString.class]) return nil;
886+ if (![dict[@"<foo val=”bar“ />"] isKindOfClass:NSString.class]) return nil;
887+ if (![dict[@"# general category Cf (in Unicode 8.0.0)."] isKindOfClass:NSString.class]) return nil;
888+ if (![dict[@"̦H̬̤̗̤͝e͜ ̜̥̝̻͍̟́w̕h̖̯͓o̝͙̖͎̱̮ ҉̺̙̞̟͈W̷̼̭a̺̪͍į͈͕̭͙̯̜t̶̼̮s̘͙͖̕ ̠̫̠B̻͍͙͉̳ͅe̵h̵̬͇̫͙i̹͓̳̳̮͎̫̕n͟d̴̪̜̖ ̰͉̩͇͙̲͞ͅT͖̼͓̪͢h͏͓̮̻e̬̝̟ͅ ̤̹̝W͙̞̝͔͇͝ͅa͏͓͔̹̼̣l̴͔̰̤̟͔ḽ̫.͕"] isKindOfClass:NSString.class]) return nil;
889+ if (![dict[@"--help"] isKindOfClass:NSString.class]) return nil;
890+ if (![dict[@"http://a/%%30%30"] isKindOfClass:NSString.class]) return nil;
891+ if (![dict[@"#\tiOS Vulnerabilities"] isKindOfClass:NSString.class]) return nil;
892+ if (![dict[@"If you're reading this, you've been in a coma for almost 20 years now. We're trying a new technique. We don't know where this message will end up in your dream, but we hope it works. Please wake up, we miss you."] isKindOfClass:NSString.class]) return nil;
893+ if (![dict[@"<iframe src=http://ha.ckers.org/scriptlet.html <"] isKindOfClass:NSString.class]) return nil;
894+ if (![dict[@"<IMG SRC=\" &#14; javascript:alert('XSS');\">"] isKindOfClass:NSString.class]) return nil;
895+ if (![dict[@"<IMG SRC=\"jav&#x09;ascript:alert('XSS');\">"] isKindOfClass:NSString.class]) return nil;
896+ if (![dict[@"<IMG SRC= onmouseover=\"alert('xxs')\">"] isKindOfClass:NSString.class]) return nil;
897+ if (![dict[@"<IMG SRC=&#x6A&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3A&#x61&#x6C&#x65&#x72&#x74&#x28&#x27&#x58&#x53&#x53&#x27&#x29>"] isKindOfClass:NSString.class]) return nil;
898+ if (![dict[@"<IMG SRC=&#0000106&#0000097&#0000118&#0000097&#0000115&#0000099&#0000114&#0000105&#0000112&#0000116&#0000058&#0000097&#0000108&#0000101&#0000114&#0000116&#0000040&#0000039&#0000088&#0000083&#0000083&#0000039&#0000041>"] isKindOfClass:NSString.class]) return nil;
899+ if (![dict[@"<img src\\x00=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
900+ if (![dict[@"<img src=x onerror=\\x11\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
901+ if (![dict[@"<img src=x onerror=\\x12\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
902+ if (![dict[@"`\"'><img src=xxx:x \\x0Aonerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil;
903+ if (![dict[@"`\"'><img src=xxx:x \\x0Conerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil;
904+ if (![dict[@"`\"'><img src=xxx:x \\x0Donerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil;
905+ if (![dict[@"<img \\x00src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
906+ if (![dict[@"<img \\x11src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
907+ if (![dict[@"<img \\x12src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
908+ if (![dict[@"<img \\x47src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
909+ if (![dict[@"# IRC specific strings"] isKindOfClass:NSString.class]) return nil;
910+ if (![dict[@"dontMakeAMap"] isKindOfClass:NSNumber.class]) return nil;
911+ if (![dict[@"#\tJapanese Emoticons"] isKindOfClass:NSString.class]) return nil;
912+ if (![dict[@"Kernel.exec(\"ls -al /\")"] isKindOfClass:NSString.class]) return nil;
913+ if (![dict[@"Linda Callahan"] isKindOfClass:NSString.class]) return nil;
914+ if (![dict[@"NUL"] isKindOfClass:NSString.class]) return nil;
915+ if (![dict[@"null"] isKindOfClass:NSString.class]) return nil;
916+ if (![dict[@"#\tNumeric Strings"] isKindOfClass:NSString.class]) return nil;
917+ if (![dict[@"# Often forbidden to appear in various text-based file formats (e.g. XML),"] isKindOfClass:NSString.class]) return nil;
918+ if (![dict[@"#"] isKindOfClass:NSString.class]) return nil;
919+ if (![dict[@"\" onfocus=JaVaSCript:alert(123) autofocus"] isKindOfClass:NSString.class]) return nil;
920+ if (![dict[@"' OR 1=1 -- 1"] isKindOfClass:NSString.class]) return nil;
921+ if (![dict[@"#\tQuotation Marks"] isKindOfClass:NSString.class]) return nil;
922+ if (![dict[@"# Regional Indicator Symbols"] isKindOfClass:NSString.class]) return nil;
923+ if (![dict[@"# Regional Indicator Symbols can be displayed differently across"] isKindOfClass:NSString.class]) return nil;
924+ if (![dict[@"#\tReserved Strings"] isKindOfClass:NSString.class]) return nil;
925+ if (![dict[@"\"><script>alert(123)</script>"] isKindOfClass:NSString.class]) return nil;
926+ if (![dict[@"><script>alert(123);</script x="] isKindOfClass:NSString.class]) return nil;
927+ if (![dict[@"<<SCRIPT>alert(\"XSS\");//<</SCRIPT>"] isKindOfClass:NSString.class]) return nil;
928+ if (![dict[@"<SCRIPT SRC=//ha.ckers.org/.j>"] isKindOfClass:NSString.class]) return nil;
929+ if (![dict[@"<script src=\"\\\\%(jscript)s\"></script>"] isKindOfClass:NSString.class]) return nil;
930+ if (![dict[@"\"`'><script>\\x09javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
931+ if (![dict[@"<script\\x0Atype=\"text/javascript\">javascript:alert(1);</script>"] isKindOfClass:NSString.class]) return nil;
932+ if (![dict[@"<script\\x0Dtype=\"text/javascript\">javascript:alert(1);</script>"] isKindOfClass:NSString.class]) return nil;
933+ if (![dict[@"\"`'><script>\\x21javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
934+ if (![dict[@"\"`'><script>\\x3Bjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
935+ if (![dict[@"\"`'><script>\\xE2\\x80\\x85javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
936+ if (![dict[@"\"`'><script>\\xE2\\x80\\x87javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
937+ if (![dict[@"\"`'><script>\\xE2\\x80\\x8Ajavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
938+ if (![dict[@"\"`'><script>\\xE2\\x80\\xA8javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
939+ if (![dict[@"\"`'><script>\\xE2\\x80\\xA9javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
940+ if (![dict[@"\"`'><script>\\xE2\\x80\\xAFjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
941+ if (![dict[@"\"`'><script>\\xE3\\x80\\x80javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
942+ if (![dict[@"#\tScunthorpe Problem"] isKindOfClass:NSString.class]) return nil;
943+ if (![dict[@"(。◕ ∀ ◕。)"] isKindOfClass:NSString.class]) return nil;
944+ if (![dict[@"# Strings that may occur on IRC clients that make security products freak out"] isKindOfClass:NSString.class]) return nil;
945+ if (![dict[@"#\tStrings which are reserved characters in MSDOS/Windows"] isKindOfClass:NSString.class]) return nil;
946+ if (![dict[@"#\tStrings which attempt to invoke a benign script injection; shows vulnerability to XSS"] isKindOfClass:NSString.class]) return nil;
947+ if (![dict[@"#\tStrings which contain text that should be rendered RTL if possible (e.g. Arabic, Hebrew)"] isKindOfClass:NSString.class]) return nil;
948+ if (![dict[@"#\tStrings which contain two-byte characters: can cause rendering issues or character-length issues"] isKindOfClass:NSString.class]) return nil;
949+ if (![dict[@"#\tStrings which contain unicode numbers; if the code is localized, it should see the input as numeric"] isKindOfClass:NSString.class]) return nil;
950+ if (![dict[@"#\tStrings which may be used elsewhere in code"] isKindOfClass:NSString.class]) return nil;
951+ if (![dict[@"#\tTerminal escape codes"] isKindOfClass:NSString.class]) return nil;
952+ if (![dict[@"\""] isKindOfClass:NSString.class]) return nil;
953+ if (![dict[@"0.00"] isKindOfClass:NSString.class]) return nil;
954+ if (![dict[@"01000"] isKindOfClass:NSString.class]) return nil;
955+ if (![dict[@"08"] isKindOfClass:NSString.class]) return nil;
956+ if (![dict[@"09"] isKindOfClass:NSString.class]) return nil;
957+ if (![dict[@"0xffffffffffffffff"] isKindOfClass:NSString.class]) return nil;
958+ if (![dict[@"❤️ \U0001f494 \U0001f48c \U0001f495 \U0001f49e \U0001f493 \U0001f497 \U0001f496 \U0001f498 \U0001f49d \U0001f49f \U0001f49c \U0001f49b \U0001f49a \U0001f499"] isKindOfClass:NSString.class]) return nil;
959+ if (![dict[@"$1.00"] isKindOfClass:NSString.class]) return nil;
960+ if (![dict[@"1,0/0,0"] isKindOfClass:NSString.class]) return nil;
961+ if (![dict[@"1 000.00"] isKindOfClass:NSString.class]) return nil;
962+ if (![dict[@"1 000 000,00"] isKindOfClass:NSString.class]) return nil;
963+ if (![dict[@"1'; DROP TABLE users-- 1"] isKindOfClass:NSString.class]) return nil;
964+ if (![dict[@"1#IND"] isKindOfClass:NSString.class]) return nil;
965+ if (![dict[@"1#INF"] isKindOfClass:NSString.class]) return nil;
966+ if (![dict[@"\U0001d54b\U0001d559\U0001d556 \U0001d562\U0001d566\U0001d55a\U0001d554\U0001d55c \U0001d553\U0001d563\U0001d560\U0001d568\U0001d55f \U0001d557\U0001d560\U0001d569 \U0001d55b\U0001d566\U0001d55e\U0001d561\U0001d564 \U0001d560\U0001d567\U0001d556\U0001d563 \U0001d565\U0001d559\U0001d556 \U0001d55d\U0001d552\U0001d56b\U0001d56a \U0001d555\U0001d560\U0001d558"] isKindOfClass:NSString.class]) return nil;
967+ if (![dict[@"-2147483648/-1"] isKindOfClass:NSString.class]) return nil;
968+ if (![dict[@"2.2250738585072011e-308"] isKindOfClass:NSString.class]) return nil;
969+ if (![dict[@"\U0001f60d"] isKindOfClass:NSString.class]) return nil;
970+ if (![dict[@"# The next line may appear to be blank, mojibake, or dingbats in some viewers."] isKindOfClass:NSString.class]) return nil;
971+ if (![dict[@"# The next line may appear to be blank or mojibake in some viewers."] isKindOfClass:NSString.class]) return nil;
972+ if (![dict[@"# The next line may be flagged for \"trailing whitespace\" in some viewers."] isKindOfClass:NSString.class]) return nil;
973+ if (![dict[@"<script>alert(123)</script>"] isKindOfClass:NSString.class]) return nil;
974+ if (![dict[@"123"] isKindOfClass:NSString.class]) return nil;
975+ if (![dict[@"# This file unfortunately cannot express strings containing"] isKindOfClass:NSString.class]) return nil;
976+ if (![dict[@"$(touch /tmp/blns.fail)"] isKindOfClass:NSString.class]) return nil;
977+ if (![dict[@"() { _; } >_[$($())] { touch /tmp/blns.shellshock2.fail; }"] isKindOfClass:NSString.class]) return nil;
978+ if (![dict[@"Tyson Gay"] isKindOfClass:NSString.class]) return nil;
979+ if (![dict[@"#\tUnicode Symbols"] isKindOfClass:NSString.class]) return nil;
980+ if (![dict[@"'`\"><\\x00script>javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
981+ if (![dict[@"'`\"><\\x3Cscript>javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
982+ if (![dict[@"åß∂ƒ©˙∆˚¬…æ"] isKindOfClass:NSString.class]) return nil;
983+ if (![dict[@"˙ɐnbᴉlɐ ɐuƃɐɯ ǝɹolop ʇǝ ǝɹoqɐl ʇn ʇunpᴉpᴉɔuᴉ ɹodɯǝʇ poɯsnᴉǝ op pǝs 'ʇᴉlǝ ƃuᴉɔsᴉdᴉpɐ ɹnʇǝʇɔǝsuoɔ 'ʇǝɯɐ ʇᴉs ɹolop ɯnsdᴉ ɯǝɹo˥"] isKindOfClass:NSString.class]) return nil;
984+ if (![dict[@"Ω≈ç√∫˜µ≤≥÷"] isKindOfClass:NSString.class]) return nil;
985+ if (![dict[@"ヽ༼ຈل͜ຈ༽ノ ヽ༼ຈل͜ຈ༽ノ"] isKindOfClass:NSString.class]) return nil;
986+ if (![dict[@"Ṱ̺̺̕o͞ ̷i̲̬͇̪͙n̝̗͕v̟̜̘̦͟o̶̙̰̠kè͚̮̺̪̹̱̤ ̖t̝͕̳̣̻̪͞h̼͓̲̦̳̘̲e͇̣̰̦̬͎ ̢̼̻̱̘h͚͎͙̜̣̲ͅi̦̲̣̰̤v̻͍e̺̭̳̪̰-m̢iͅn̖̺̞̲̯̰d̵̼̟͙̩̼̘̳ ̞̥̱̳̭r̛̗̘e͙p͠r̼̞̻̭̗e̺̠̣͟s̘͇̳͍̝͉e͉̥̯̞̲͚̬͜ǹ̬͎͎̟̖͇̤t͍̬̤͓̼̭͘ͅi̪̱n͠g̴͉ ͏͉ͅc̬̟h͡a̫̻̯͘o̫̟̖͍̙̝͉s̗̦̲.̨̹͈̣"] isKindOfClass:NSString.class]) return nil;
987+ if (![dict[@"社會科學院語學研究所"] isKindOfClass:NSString.class]) return nil;
988+ if (![dict[@"部落格"] isKindOfClass:NSString.class]) return nil;
989+ if (![dict[@"사회과학원 어학연구소"] isKindOfClass:NSString.class]) return nil;
990+ if (![dict[@"찦차를 타고 온 펲시맨과 쑛다리 똠방각하"] isKindOfClass:NSString.class]) return nil;
991+ if (![dict[@"ﷺ"] isKindOfClass:NSString.class]) return nil;
992+ if (![dict[@"__ロ(,_,*)"] isKindOfClass:NSString.class]) return nil;
993+ [self setValuesForKeysWithDictionary:dict];
994+ }
995+ return self;
996+}
997+
998+- (void)setValue:(nullable id)value forKey:(NSString *)key
999+{
1000+ id resolved = QTB.properties[key];
1001+ if (resolved) [super setValue:value forKey:resolved];
1002+}
1003+
1004+- (void)setNilValueForKey:(NSString *)key
1005+{
1006+ id resolved = QTB.properties[key];
1007+ if (resolved) [super setValue:@(0) forKey:resolved];
1008+}
1009+
1010+- (NSDictionary *)JSONDictionary
1011+{
1012+ id dict = [[self dictionaryWithValuesForKeys:QTB.properties.allValues] mutableCopy];
1013+
1014+ for (id jsonName in QTB.properties) {
1015+ id propertyName = QTB.properties[jsonName];
1016+ if (![jsonName isEqualToString:propertyName]) {
1017+ dict[jsonName] = dict[propertyName];
1018+ [dict removeObjectForKey:propertyName];
1019+ }
1020+ }
1021+
1022+ [dict addEntriesFromDictionary:@{
1023+ @"dontMakeAMap": _isDontMakeAMap ? @YES : @NO,
1024+ }];
1025+
1026+ return dict;
1027+}
1028+@end
1029+
1030+@implementation QTC
1031++ (NSDictionary<NSString *, NSString *> *)properties
1032+{
1033+ static NSDictionary<NSString *, NSString *> *properties;
1034+ return properties = properties ? properties : @{
1035+ @"\U0002070e\U00020731\U00020779\U00020c53\U00020c78\U00020c96\U00020ccf": @"_1",
1036+ @"A:": @"a",
1037+ @"<a href=\"\\x00javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX00JavascriptJavascriptAlert1IDFuzzelement1TestA",
1038+ @"<a href=\"\\x03javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX03JavascriptJavascriptAlert1IDFuzzelement1TestA",
1039+ @"<a href=\"\\x06javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX06JavascriptJavascriptAlert1IDFuzzelement1TestA",
1040+ @"<a href=\"\\x07javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX07JavascriptJavascriptAlert1IDFuzzelement1TestA",
1041+ @"<a href=\"\\x0Bjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX0BjavascriptJavascriptAlert1IDFuzzelement1TestA",
1042+ @"<a href=\"\\x12javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX12JavascriptJavascriptAlert1IDFuzzelement1TestA",
1043+ @"<a href=\"\\x14javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX14JavascriptJavascriptAlert1IDFuzzelement1TestA",
1044+ @"<a href=\"\\x15javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX15JavascriptJavascriptAlert1IDFuzzelement1TestA",
1045+ @"<a href=\"\\x18javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX18JavascriptJavascriptAlert1IDFuzzelement1TestA",
1046+ @"<a href=\"\\x1Bjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX1BjavascriptJavascriptAlert1IDFuzzelement1TestA",
1047+ @"<a href=\"\\x1Cjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX1CjavascriptJavascriptAlert1IDFuzzelement1TestA",
1048+ @"<a href=\"\\x20javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX20JavascriptJavascriptAlert1IDFuzzelement1TestA",
1049+ @"<a href=\"\\xE2\\x80\\x80javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X80JavascriptJavascriptAlert1IDFuzzelement1TestA",
1050+ @"<a href=\"\\xE2\\x80\\x85javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X85JavascriptJavascriptAlert1IDFuzzelement1TestA",
1051+ @"<a href=\"\\xE2\\x80\\x88javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X88JavascriptJavascriptAlert1IDFuzzelement1TestA",
1052+ @"<a href=\"\\xE2\\x80\\x89javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X89JavascriptJavascriptAlert1IDFuzzelement1TestA",
1053+ @"<a href=\"\\xE2\\x80\\x8Ajavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X8AjavascriptJavascriptAlert1IDFuzzelement1TestA",
1054+ @"<a href=\"\\xE2\\x81\\x9Fjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X81X9FjavascriptJavascriptAlert1IDFuzzelement1TestA",
1055+ @"<a href=\"\\xE3\\x80\\x80javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE3X80X80JavascriptJavascriptAlert1IDFuzzelement1TestA",
1056+ @"ABC<div style=\"x:expression\\x00(javascript:alert(1)\">DEF": @"abcDivStyleXExpressionX00JavascriptAlert1DEF",
1057+ @"ABC<div style=\"x:\\x00expression(javascript:alert(1)\">DEF": @"abcDivStyleXX00ExpressionJavascriptAlert1DEF",
1058+ @"ABC<div style=\"x:\\x0Cexpression(javascript:alert(1)\">DEF": @"abcDivStyleXX0CexpressionJavascriptAlert1DEF",
1059+ @"ABC<div style=\"x:\\xE2\\x80\\x81expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X81ExpressionJavascriptAlert1DEF",
1060+ @"ABC<div style=\"x:\\xE2\\x80\\x86expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X86ExpressionJavascriptAlert1DEF",
1061+ @"ABC<div style=\"x:\\xE2\\x80\\x88expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X88ExpressionJavascriptAlert1DEF",
1062+ @"ABC<div style=\"x:\\xE3\\x80\\x80expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE3X80X80ExpressionJavascriptAlert1DEF",
1063+ @"ABC<div style=\"x:\\xEF\\xBB\\xBFexpression(javascript:alert(1)\">DEF": @"abcDivStyleXXEFXBBXBFexpressionJavascriptAlert1DEF",
1064+ @"# and U+007F (DEL)": @"andU007FDEL",
1065+ @"-": @"another",
1066+ @"# ASCII punctuation. All of these characters may need to be escaped in some": @"asciiPunctuationAllOfTheseCharactersMayNeedToBeEscapedInSome",
1067+ @"<BODY onload!#$%&()*~+-_.,:;?@[/|\\]^`=alert(\"XSS\")>": @"bodyOnloadAlertXSS",
1068+ @"\"'\"'\"''''\"": @"c",
1069+ @"-0.0": @"c00",
1070+ @"0.0/0": @"c000",
1071+ @"--1": @"c1",
1072+ @"-1.00": @"c100",
1073+ @"1,000.00": @"c100000",
1074+ @"1,000,000.00": @"c100000000",
1075+ @"1E+02": @"c1E02",
1076+ @"><script>alert(123)</script>": @"cScriptAlert123Script",
1077+ @"true": @"cTrue",
1078+ @"CLOCK$": @"clock",
1079+ @"COM2": @"com2",
1080+ @"COM4": @"com4",
1081+ @"Craig Cockburn, Software Specialist": @"craigCockburnSoftwareSpecialist",
1082+ @"DCC SEND STARTKEYLOGGER 0 0 0": @"dccSendStartkeylogger000",
1083+ @"#\tEmoji": @"emoji",
1084+ @"\"\"": @"empty",
1085+ @"evaluate": @"evaluate",
1086+ @"<foo val=“bar” />": @"fooValBar",
1087+ @"hasOwnProperty": @"hasOwnProperty",
1088+ @"Horniman Museum": @"hornimanMuseum",
1089+ @"http://www.cum.qc.ca/": @"httpWWWCumQcCA",
1090+ @"<i onwheel=alert(1)> Scroll over me </i>": @"iOnwheelAlert1ScrollOverMeI",
1091+ @"<img[a][b][c]src[d]=x[e]onerror=[f]\"alert(1)\">": @"imgABCSrcDXEOnerrorFAlert1",
1092+ @"<IMG onmouseover=\"alert('xxs')\">": @"imgOnmouseoverAlertXxs",
1093+ @"<IMG \"\"\"><SCRIPT>alert(\"XSS\")</SCRIPT>\">": @"imgSCRIPTAlertXSSSCRIPT",
1094+ @"<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>": @"imgSRCJavascriptAlertStringFromCharCode888383",
1095+ @"<IMG SRC=\"javascript:alert('XSS')\"": @"imgSRCJavascriptAlertXSS",
1096+ @"<img src onerror /\" '\"= alt=javascript:alert(1)//\">": @"imgSrcOnerrorAltJavascriptAlert1",
1097+ @"<img src\\x10=x onerror=\"javascript:alert(1)\">": @"imgSrcX10XOnerrorJavascriptAlert1",
1098+ @"<img src\\x12=x onerror=\"javascript:alert(1)\">": @"imgSrcX12XOnerrorJavascriptAlert1",
1099+ @"<img src\\x13=x onerror=\"javascript:alert(1)\">": @"imgSrcX13XOnerrorJavascriptAlert1",
1100+ @"<img src\\x32=x onerror=\"javascript:alert(1)\">": @"imgSrcX32XOnerrorJavascriptAlert1",
1101+ @"<img src\\x47=x onerror=\"javascript:alert(1)\">": @"imgSrcX47XOnerrorJavascriptAlert1",
1102+ @"<img src=x onerror=alert(123) />": @"imgSrcXOnerrorAlert123",
1103+ @"<img src=x onerror=\\x10\"javascript:alert(1)\">": @"imgSrcXOnerrorX10JavascriptAlert1",
1104+ @"<img src=x onerror=\\x32\"javascript:alert(1)\">": @"imgSrcXOnerrorX32JavascriptAlert1",
1105+ @"<img src=\"x` `<script>javascript:alert(1)</script>\"` `>": @"imgSrcXScriptJavascriptAlert1Script",
1106+ @"`\"'><img src=xxx:x \\x09onerror=javascript:alert(1)>": @"imgSrcXxxXX09OnerrorJavascriptAlert1",
1107+ @"`\"'><img src=xxx:x \\x20onerror=javascript:alert(1)>": @"imgSrcXxxXX20OnerrorJavascriptAlert1",
1108+ @"`\"'><img src=xxx:x \\x22onerror=javascript:alert(1)>": @"imgSrcXxxXX22OnerrorJavascriptAlert1",
1109+ @"`\"'><img src=xxx:x \\x27onerror=javascript:alert(1)>": @"imgSrcXxxXX27OnerrorJavascriptAlert1",
1110+ @"<img\\x11src=x onerror=\"javascript:alert(1)\">": @"imgX11SrcXOnerrorJavascriptAlert1",
1111+ @"<img \\x34src=x onerror=\"javascript:alert(1)\">": @"imgX34SrcXOnerrorJavascriptAlert1",
1112+ @"<img\\x47src=x onerror=\"javascript:alert(1)\">": @"imgX47SrcXOnerrorJavascriptAlert1",
1113+ @"Infinity": @"infinity",
1114+ @"dontMakeAMap": @"isDontMakeAMap",
1115+ @"JavaSCript:alert(123)": @"javaSCriptAlert123",
1116+ @"LPT1": @"lpt1",
1117+ @"&lt;script&gt;alert(&#39;123&#39;);&lt;/script&gt;": @"ltScriptGtAlert3912339LtScriptGt",
1118+ @"magna cum laude": @"magnaCumLaude",
1119+ @"medieval erection of parapets": @"medievalErectionOfParapets",
1120+ @"mocha": @"mocha",
1121+ @"NaN": @"naN",
1122+ @"# Non-whitespace C0 controls: U+0001 through U+0008, U+000E through U+001F,": @"nonWhitespaceC0ControlsU0001ThroughU0008U000EThroughU001F",
1123+ @"NULL": @"null",
1124+ @"%": @"one",
1125+ @"0,,0": @"one00",
1126+ @"1.000,00": @"one100000",
1127+ @"1.000.000,00": @"one100000000",
1128+ @"' onfocus=JaVaSCript:alert(123) autofocus": @"onfocusJaVaSCriptAlert123Autofocus",
1129+ @"# or reused for internal delimiters on the theory that they should never": @"orReusedForInternalDelimitersOnTheTheoryThatTheyShouldNever",
1130+ @"<plaintext>": @"plaintext",
1131+ @"Powerلُلُصّبُلُلصّبُررً ॣ ॣh ॣ ॣ冗": @"powerلُلُصّبُلُلصّبُررًॣॣH冗",
1132+ @"#\tRight-To-Left Strings": @"rightToLeftStrings",
1133+ @"Roses are \033[0;31mred\033[0m, violets are \033[0;34mblue. Hope you enjoy terminal hue": @"rosesAre031Mred0MVioletsAre034MblueHopeYouEnjoyTerminalHue",
1134+ @"%*.*s": @"s",
1135+ @"'><script>alert(123)</script>": @"scriptAlert123Script",
1136+ @"'><script>alert(123);</script x='": @"scriptAlert123ScriptX",
1137+ @"\"`'><script>-javascript:alert(1)</script>": @"scriptJavascriptAlert1Script",
1138+ @"< / script >< script >alert(123)< / script >": @"scriptScriptAlert123Script",
1139+ @"<script src=\"/\\%(jscript)s\"></script>": @"scriptSrcJscriptSScript",
1140+ @"\"`'><script>\\x0Ajavascript:alert(1)</script>": @"scriptX0AjavascriptAlert1Script",
1141+ @"\"`'><script>\\x0Bjavascript:alert(1)</script>": @"scriptX0BjavascriptAlert1Script",
1142+ @"<script\\x0Ctype=\"text/javascript\">javascript:alert(1);</script>": @"scriptX0CtypeTextJavascriptJavascriptAlert1Script",
1143+ @"\"`'><script>\\x20javascript:alert(1)</script>": @"scriptX20JavascriptAlert1Script",
1144+ @"\"`'><script>\\x2Bjavascript:alert(1)</script>": @"scriptX2BjavascriptAlert1Script",
1145+ @"<script\\x2Ftype=\"text/javascript\">javascript:alert(1);</script>": @"scriptX2FtypeTextJavascriptJavascriptAlert1Script",
1146+ @"\"`'><script>\\x7Ejavascript:alert(1)</script>": @"scriptX7EjavascriptAlert1Script",
1147+ @"\"`'><script>\\xE2\\x80\\x80javascript:alert(1)</script>": @"scriptXE2X80X80JavascriptAlert1Script",
1148+ @"\"`'><script>\\xE2\\x80\\x82javascript:alert(1)</script>": @"scriptXE2X80X82JavascriptAlert1Script",
1149+ @"\"`'><script>\\xE2\\x80\\x83javascript:alert(1)</script>": @"scriptXE2X80X83JavascriptAlert1Script",
1150+ @"\"`'><script>\\xE2\\x80\\x84javascript:alert(1)</script>": @"scriptXE2X80X84JavascriptAlert1Script",
1151+ @"\"`'><script>\\xE2\\x80\\x88javascript:alert(1)</script>": @"scriptXE2X80X88JavascriptAlert1Script",
1152+ @"\"`'><script>\\xE2\\x80\\x8Bjavascript:alert(1)</script>": @"scriptXE2X80X8BjavascriptAlert1Script",
1153+ @"\"`'><script>\\xEF\\xBF\\xAEjavascript:alert(1)</script>": @"scriptXEFXBFXAEjavascriptAlert1Script",
1154+ @"\"`'><script>\\xEF\\xBF\\xBEjavascript:alert(1)</script>": @"scriptXEFXBFXBEjavascriptAlert1Script",
1155+ @"Scunthorpe General Hospital": @"scunthorpeGeneralHospital",
1156+ @"#\tServer Code Injection": @"serverCodeInjection",
1157+ @"shitake mushrooms": @"shitakeMushrooms",
1158+ @"''": @"some",
1159+ @"0/0": @"some00",
1160+ @"#\tSpecial Characters": @"specialCharacters",
1161+ @"src=JaVaSCript:prompt(132)": @"srcJaVaSCriptPrompt132",
1162+ @"#\tStrings which can be interpreted as numeric": @"stringsWhichCanBeInterpretedAsNumeric",
1163+ @"#\tStrings which can cause a SQL injection if inputs are not sanitized": @"stringsWhichCanCauseASQLInjectionIfInputsAreNotSanitized",
1164+ @"#\tStrings which can cause user to pull in files that should not be a part of a web server": @"stringsWhichCanCauseUserToPullInFilesThatShouldNotBeAPartOfAWebServer",
1165+ @"#\tStrings which can cause user to run code on server as a privileged user (c.f. https://news.ycombinator.com/item?id=7665153)": @"stringsWhichCanCauseUserToRunCodeOnServerAsAPrivilegedUserCFHTTPSNewsYcombinatorCOMItemID7665153",
1166+ @"#\tStrings which contain \"corrupted\" text. The corruption will not appear in non-HTML text, however. (via http://www.eeemo.net)": @"stringsWhichContainCorruptedTextTheCorruptionWillNotAppearInNonHTMLTextHoweverViaHTTPWWWEeemoNet",
1167+ @"#\tStrings which contain unicode with an \"upsidedown\" effect (via http://www.upsidedowntext.com)": @"stringsWhichContainUnicodeWithAnUpsidedownEffectViaHTTPWWWUpsidedowntextCOM",
1168+ @"#\tStrings which contain unicode with unusual properties (e.g. Right-to-left override) (c.f. http://www.unicode.org/charts/PDF/U2000.pdf)": @"stringsWhichContainUnicodeWithUnusualPropertiesEGRightToLeftOverrideCFHTTPWWWUnicodeOrgChartsPDFU2000PDF",
1169+ @"#\tStrings which punish the fools who use cat/type on this file": @"stringsWhichPunishTheFoolsWhoUseCatTypeOnThisFile",
1170+ @"<svg><script>123<1>alert(123)</script>": @"svgScript1231Alert123Script",
1171+ @"System(\"ls -al /\")": @"systemLsAl",
1172+ @"@{[system \"touch /tmp/blns.fail\"]}": @"systemTouchTmpBlnsFail",
1173+ @"\u2029test\u2029": @"test",
1174+ @"test\u2060test\u202b": @"testTest",
1175+ @"\"''''\"'\"": @"the",
1176+ @"+0.0": @"the00",
1177+ @"0.0.0": @"the000",
1178+ @"() { 0; }; touch /tmp/blns.shellshock1.fail;": @"the0TouchTmpBlnsShellshock1Fail",
1179+ @"0xabad1dea": @"the0Xabad1Dea",
1180+ @"0xffffffff": @"the0Xffffffff",
1181+ @"\U0001f3f30\U0001f308️": @"the0️",
1182+ @"0️⃣ 1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣ 8️⃣ 9️⃣ \U0001f51f": @"the0️1️2️3️4️5️6️7️8️9️",
1183+ @"--": @"the1",
1184+ @"\U0001d683\U0001d691\U0001d68e \U0001d69a\U0001d69e\U0001d692\U0001d68c\U0001d694 \U0001d68b\U0001d69b\U0001d698\U0001d6a0\U0001d697 \U0001d68f\U0001d698\U0001d6a1 \U0001d693\U0001d69e\U0001d696\U0001d699\U0001d69c \U0001d698\U0001d69f\U0001d68e\U0001d69b \U0001d69d\U0001d691\U0001d68e \U0001d695\U0001d68a\U0001d6a3\U0001d6a2 \U0001d68d\U0001d698\U0001d690": @"the10",
1185+ @"-$1.00": @"the100",
1186+ @"1 000,00": @"the100000",
1187+ @"1'000'000,00": @"the100000000",
1188+ @"\U0001f435 \U0001f648 \U0001f649 \U0001f64a": @"the11",
1189+ @"-1/2": @"the12",
1190+ @"\U0001f47e \U0001f647 \U0001f481 \U0001f645 \U0001f646 \U0001f64b \U0001f64e \U0001f64d": @"the13",
1191+ @"-1E+02": @"the1E02",
1192+ @"-1E2": @"the1E2",
1193+ @"-1#IND": @"the1Ind",
1194+ @".": @"the2",
1195+ @"\\\\": @"the3",
1196+ @"_": @"the4",
1197+ @"⁰⁴⁵": @"the5",
1198+ @"⅛⅜⅝⅞": @"the6",
1199+ @"✋\U0001f3ff \U0001f4aa\U0001f3ff \U0001f450\U0001f3ff \U0001f64c\U0001f3ff \U0001f44f\U0001f3ff \U0001f64f\U0001f3ff": @"the7",
1200+ @"・( ̄∀ ̄)・:*:": @"the8",
1201+ @"\U0001d413\U0001d421\U0001d41e \U0001d42a\U0001d42e\U0001d422\U0001d41c\U0001d424 \U0001d41b\U0001d42b\U0001d428\U0001d430\U0001d427 \U0001d41f\U0001d428\U0001d431 \U0001d423\U0001d42e\U0001d426\U0001d429\U0001d42c \U0001d428\U0001d42f\U0001d41e\U0001d42b \U0001d42d\U0001d421\U0001d41e \U0001d425\U0001d41a\U0001d433\U0001d432 \U0001d41d\U0001d428\U0001d420": @"the9",
1202+ @"-9223372036854775808/-1": @"the92233720368547758081",
1203+ @"<script>alert(123)</script>": @"theScriptAlert123Script",
1204+ @"١٢٣": @"the١٢٣",
1205+ @"<title onpropertychange=javascript:alert(1)></title><title title=>": @"titleOnpropertychangeJavascriptAlert1TitleTitleTitle",
1206+ @"# treated as whitespace in some contexts.": @"treatedAsWhitespaceInSomeContexts",
1207+ @"#\tTrick Unicode": @"trickUnicode",
1208+ @"undefined": @"undefined",
1209+ @"# Unicode additional control characters: all of the characters with": @"unicodeAdditionalControlCharactersAllOfTheCharactersWith",
1210+ @"#\tUnicode Subscript/Superscript/Accents": @"unicodeSubscriptSuperscriptAccents",
1211+ @"#\tUnicode Upsidedown": @"unicodeUpsidedown",
1212+ @"$USER": @"user",
1213+ @"--version": @"version",
1214+ @"# version 8.0.0), plus U+0009 (HT), U+000B (VT), U+000C (FF), U+0085 (NEL),": @"version800PlusU0009HTU000BVTU000CFFU0085NEL",
1215+ @"# Whitespace: all of the characters with category Zs, Zl, or Zp (in Unicode": @"whitespaceAllOfTheCharactersWithCategoryZsZlOrZpInUnicode",
1216+ @"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><!DOCTYPE foo [ <!ELEMENT foo ANY ><!ENTITY xxe SYSTEM \"file:///etc/passwd\" >]><foo>&xxe;</foo>": @"xmlVersion10EncodingISO88591DOCTYPEFooELEMENTFooANYENTITYXxeSYSTEMFileEtcPasswdFooXxeFoo",
1217+ @"# XXE Injection (XML)": @"xxeInjectionXML",
1218+ @"#\tZalgo Text": @"zalgoText",
1219+ @"ZZ:": @"zz",
1220+ @"ÅÍÎÏ˝ÓÔ\uf8ffÒÚÆ☃": @"åíîïÓôÒúæ",
1221+ @",。・:*:・゜’( ☻ ω ☻ )。・:*:・゜’": @"ω",
1222+ @"ЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя": @"ёђѓєѕіїјљњћќѝўџабвгдежзийклмнопрстуфхцчшщъыьэюЯабвгдежзийклмнопрстуфхцчшщъыьэюя",
1223+ @"בְּרֵאשִׁית, בָּרָא אֱלֹהִים, אֵת הַשָּׁמַיִם, וְאֵת הָאָרֶץ": @"בְּרֵאשִׁיתבָּרָאאֱלֹהִיםאֵתהַשָּׁמַיִםוְאֵתהָאָרֶץ",
1224+ @"مُنَاقَشَةُ سُبُلِ اِسْتِخْدَامِ اللُّغَةِ فِي النُّظُمِ الْقَائِمَةِ وَفِيم يَخُصَّ التَّطْبِيقَاتُ الْحاسُوبِيَّةُ، ": @"مُنَاقَشَةُسُبُلِاِسْتِخْدَامِاللُّغَةِفِيالنُّظُمِالْقَائِمَةِوَفِيميَخُصَّالتَّطْبِيقَاتُالْحاسُوبِيَّةُ",
1225+ @"̗̺͖̹̯͓Ṯ̤͍̥͇͈h̲́e͏͓̼̗̙̼̣͔ ͇̜̱̠͓͍ͅN͕͠e̗̱z̘̝̜̺͙p̤̺̹͍̯͚e̠̻̠͜r̨̤͍̺̖͔̖̖d̠̟̭̬̝͟i̦͖̩͓͔̤a̠̗̬͉̙n͚͜ ̻̞̰͚ͅh̵͉i̳̞v̢͇ḙ͎͟-҉̭̩̼͔m̤̭̫i͕͇̝̦n̗͙ḍ̟ ̯̲͕͞ǫ̟̯̰̲͙̻̝f ̪̰̰̗̖̭̘͘c̦͍̲̞͍̩̙ḥ͚a̮͎̟̙͜ơ̩̹͎s̤.̝̝ ҉Z̡̖̜͖̰̣͉̜a͖̰͙̬͡l̲̫̳͍̩g̡̟̼̱͚̞̬ͅo̗͜.̟": @"ṯHENEZPERDIANHIVḘMINḌǪFCḤAƠSZALGO",
1226+ @"┬─┬ノ( º _ ºノ)": @"ノº_ºノ",
1227+ @"울란바토르": @"울란바토르",
1228+ @"The quick brown fox jumps over the lazy dog": @"theQuickBrownFoxJumpsOverTheLazyDog",
1229+ @"(ノಥ益ಥ)ノ\ufeff ┻━┻": @"ノಥ益ಥノ",
1230+ };
1231+}
1232+
1233++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
1234+{
1235+ return [dict isKindOfClass:NSDictionary.class] ? [[QTC alloc] initWithJSONDictionary:dict] : nil;
1236+}
1237+
1238+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
1239+{
1240+ if (self = [super init]) {
1241+ if (![dict[@"\U0002070e\U00020731\U00020779\U00020c53\U00020c78\U00020c96\U00020ccf"] isKindOfClass:NSString.class]) return nil;
1242+ if (![dict[@"A:"] isKindOfClass:NSString.class]) return nil;
1243+ if (![dict[@"<a href=\"\\x00javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
1244+ if (![dict[@"<a href=\"\\x03javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
1245+ if (![dict[@"<a href=\"\\x06javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
1246+ if (![dict[@"<a href=\"\\x07javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
1247+ if (![dict[@"<a href=\"\\x0Bjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
1248+ if (![dict[@"<a href=\"\\x12javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
1249+ if (![dict[@"<a href=\"\\x14javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
1250+ if (![dict[@"<a href=\"\\x15javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
1251+ if (![dict[@"<a href=\"\\x18javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
1252+ if (![dict[@"<a href=\"\\x1Bjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
1253+ if (![dict[@"<a href=\"\\x1Cjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
1254+ if (![dict[@"<a href=\"\\x20javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
1255+ if (![dict[@"<a href=\"\\xE2\\x80\\x80javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
1256+ if (![dict[@"<a href=\"\\xE2\\x80\\x85javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
1257+ if (![dict[@"<a href=\"\\xE2\\x80\\x88javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
1258+ if (![dict[@"<a href=\"\\xE2\\x80\\x89javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
1259+ if (![dict[@"<a href=\"\\xE2\\x80\\x8Ajavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
1260+ if (![dict[@"<a href=\"\\xE2\\x81\\x9Fjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
1261+ if (![dict[@"<a href=\"\\xE3\\x80\\x80javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil;
1262+ if (![dict[@"ABC<div style=\"x:expression\\x00(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
1263+ if (![dict[@"ABC<div style=\"x:\\x00expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
1264+ if (![dict[@"ABC<div style=\"x:\\x0Cexpression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
1265+ if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x81expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
1266+ if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x86expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
1267+ if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x88expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
1268+ if (![dict[@"ABC<div style=\"x:\\xE3\\x80\\x80expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
1269+ if (![dict[@"ABC<div style=\"x:\\xEF\\xBB\\xBFexpression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil;
1270+ if (![dict[@"# and U+007F (DEL)"] isKindOfClass:NSString.class]) return nil;
1271+ if (![dict[@"-"] isKindOfClass:NSString.class]) return nil;
1272+ if (![dict[@"# ASCII punctuation. All of these characters may need to be escaped in some"] isKindOfClass:NSString.class]) return nil;
1273+ if (![dict[@"<BODY onload!#$%&()*~+-_.,:;?@[/|\\]^`=alert(\"XSS\")>"] isKindOfClass:NSString.class]) return nil;
1274+ if (![dict[@"\"'\"'\"''''\""] isKindOfClass:NSString.class]) return nil;
1275+ if (![dict[@"-0.0"] isKindOfClass:NSString.class]) return nil;
1276+ if (![dict[@"0.0/0"] isKindOfClass:NSString.class]) return nil;
1277+ if (![dict[@"--1"] isKindOfClass:NSString.class]) return nil;
1278+ if (![dict[@"-1.00"] isKindOfClass:NSString.class]) return nil;
1279+ if (![dict[@"1,000.00"] isKindOfClass:NSString.class]) return nil;
1280+ if (![dict[@"1,000,000.00"] isKindOfClass:NSString.class]) return nil;
1281+ if (![dict[@"1E+02"] isKindOfClass:NSString.class]) return nil;
1282+ if (![dict[@"><script>alert(123)</script>"] isKindOfClass:NSString.class]) return nil;
1283+ if (![dict[@"true"] isKindOfClass:NSString.class]) return nil;
1284+ if (![dict[@"CLOCK$"] isKindOfClass:NSString.class]) return nil;
1285+ if (![dict[@"COM2"] isKindOfClass:NSString.class]) return nil;
1286+ if (![dict[@"COM4"] isKindOfClass:NSString.class]) return nil;
1287+ if (![dict[@"Craig Cockburn, Software Specialist"] isKindOfClass:NSString.class]) return nil;
1288+ if (![dict[@"DCC SEND STARTKEYLOGGER 0 0 0"] isKindOfClass:NSString.class]) return nil;
1289+ if (![dict[@"#\tEmoji"] isKindOfClass:NSString.class]) return nil;
1290+ if (![dict[@"\"\""] isKindOfClass:NSString.class]) return nil;
1291+ if (![dict[@"evaluate"] isKindOfClass:NSString.class]) return nil;
1292+ if (![dict[@"<foo val=“bar” />"] isKindOfClass:NSString.class]) return nil;
1293+ if (![dict[@"hasOwnProperty"] isKindOfClass:NSString.class]) return nil;
1294+ if (![dict[@"Horniman Museum"] isKindOfClass:NSString.class]) return nil;
1295+ if (![dict[@"http://www.cum.qc.ca/"] isKindOfClass:NSString.class]) return nil;
1296+ if (![dict[@"<i onwheel=alert(1)> Scroll over me </i>"] isKindOfClass:NSString.class]) return nil;
1297+ if (![dict[@"<img[a][b][c]src[d]=x[e]onerror=[f]\"alert(1)\">"] isKindOfClass:NSString.class]) return nil;
1298+ if (![dict[@"<IMG onmouseover=\"alert('xxs')\">"] isKindOfClass:NSString.class]) return nil;
1299+ if (![dict[@"<IMG \"\"\"><SCRIPT>alert(\"XSS\")</SCRIPT>\">"] isKindOfClass:NSString.class]) return nil;
1300+ if (![dict[@"<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>"] isKindOfClass:NSString.class]) return nil;
1301+ if (![dict[@"<IMG SRC=\"javascript:alert('XSS')\""] isKindOfClass:NSString.class]) return nil;
1302+ if (![dict[@"<img src onerror /\" '\"= alt=javascript:alert(1)//\">"] isKindOfClass:NSString.class]) return nil;
1303+ if (![dict[@"<img src\\x10=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
1304+ if (![dict[@"<img src\\x12=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
1305+ if (![dict[@"<img src\\x13=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
1306+ if (![dict[@"<img src\\x32=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
1307+ if (![dict[@"<img src\\x47=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
1308+ if (![dict[@"<img src=x onerror=alert(123) />"] isKindOfClass:NSString.class]) return nil;
1309+ if (![dict[@"<img src=x onerror=\\x10\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
1310+ if (![dict[@"<img src=x onerror=\\x32\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
1311+ if (![dict[@"<img src=\"x` `<script>javascript:alert(1)</script>\"` `>"] isKindOfClass:NSString.class]) return nil;
1312+ if (![dict[@"`\"'><img src=xxx:x \\x09onerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil;
1313+ if (![dict[@"`\"'><img src=xxx:x \\x20onerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil;
1314+ if (![dict[@"`\"'><img src=xxx:x \\x22onerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil;
1315+ if (![dict[@"`\"'><img src=xxx:x \\x27onerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil;
1316+ if (![dict[@"<img\\x11src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
1317+ if (![dict[@"<img \\x34src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
1318+ if (![dict[@"<img\\x47src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil;
1319+ if (![dict[@"Infinity"] isKindOfClass:NSString.class]) return nil;
1320+ if (![dict[@"dontMakeAMap"] isKindOfClass:NSNumber.class]) return nil;
1321+ if (![dict[@"JavaSCript:alert(123)"] isKindOfClass:NSString.class]) return nil;
1322+ if (![dict[@"LPT1"] isKindOfClass:NSString.class]) return nil;
1323+ if (![dict[@"&lt;script&gt;alert(&#39;123&#39;);&lt;/script&gt;"] isKindOfClass:NSString.class]) return nil;
1324+ if (![dict[@"magna cum laude"] isKindOfClass:NSString.class]) return nil;
1325+ if (![dict[@"medieval erection of parapets"] isKindOfClass:NSString.class]) return nil;
1326+ if (![dict[@"mocha"] isKindOfClass:NSString.class]) return nil;
1327+ if (![dict[@"NaN"] isKindOfClass:NSString.class]) return nil;
1328+ if (![dict[@"# Non-whitespace C0 controls: U+0001 through U+0008, U+000E through U+001F,"] isKindOfClass:NSString.class]) return nil;
1329+ if (![dict[@"NULL"] isKindOfClass:NSString.class]) return nil;
1330+ if (![dict[@"%"] isKindOfClass:NSString.class]) return nil;
1331+ if (![dict[@"0,,0"] isKindOfClass:NSString.class]) return nil;
1332+ if (![dict[@"1.000,00"] isKindOfClass:NSString.class]) return nil;
1333+ if (![dict[@"1.000.000,00"] isKindOfClass:NSString.class]) return nil;
1334+ if (![dict[@"' onfocus=JaVaSCript:alert(123) autofocus"] isKindOfClass:NSString.class]) return nil;
1335+ if (![dict[@"# or reused for internal delimiters on the theory that they should never"] isKindOfClass:NSString.class]) return nil;
1336+ if (![dict[@"<plaintext>"] isKindOfClass:NSString.class]) return nil;
1337+ if (![dict[@"Powerلُلُصّبُلُلصّبُررً ॣ ॣh ॣ ॣ冗"] isKindOfClass:NSString.class]) return nil;
1338+ if (![dict[@"#\tRight-To-Left Strings"] isKindOfClass:NSString.class]) return nil;
1339+ if (![dict[@"Roses are \033[0;31mred\033[0m, violets are \033[0;34mblue. Hope you enjoy terminal hue"] isKindOfClass:NSString.class]) return nil;
1340+ if (![dict[@"%*.*s"] isKindOfClass:NSString.class]) return nil;
1341+ if (![dict[@"'><script>alert(123)</script>"] isKindOfClass:NSString.class]) return nil;
1342+ if (![dict[@"'><script>alert(123);</script x='"] isKindOfClass:NSString.class]) return nil;
1343+ if (![dict[@"\"`'><script>-javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
1344+ if (![dict[@"< / script >< script >alert(123)< / script >"] isKindOfClass:NSString.class]) return nil;
1345+ if (![dict[@"<script src=\"/\\%(jscript)s\"></script>"] isKindOfClass:NSString.class]) return nil;
1346+ if (![dict[@"\"`'><script>\\x0Ajavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
1347+ if (![dict[@"\"`'><script>\\x0Bjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
1348+ if (![dict[@"<script\\x0Ctype=\"text/javascript\">javascript:alert(1);</script>"] isKindOfClass:NSString.class]) return nil;
1349+ if (![dict[@"\"`'><script>\\x20javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
1350+ if (![dict[@"\"`'><script>\\x2Bjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
1351+ if (![dict[@"<script\\x2Ftype=\"text/javascript\">javascript:alert(1);</script>"] isKindOfClass:NSString.class]) return nil;
1352+ if (![dict[@"\"`'><script>\\x7Ejavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
1353+ if (![dict[@"\"`'><script>\\xE2\\x80\\x80javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
1354+ if (![dict[@"\"`'><script>\\xE2\\x80\\x82javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
1355+ if (![dict[@"\"`'><script>\\xE2\\x80\\x83javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
1356+ if (![dict[@"\"`'><script>\\xE2\\x80\\x84javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
1357+ if (![dict[@"\"`'><script>\\xE2\\x80\\x88javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
1358+ if (![dict[@"\"`'><script>\\xE2\\x80\\x8Bjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
1359+ if (![dict[@"\"`'><script>\\xEF\\xBF\\xAEjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
1360+ if (![dict[@"\"`'><script>\\xEF\\xBF\\xBEjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil;
1361+ if (![dict[@"Scunthorpe General Hospital"] isKindOfClass:NSString.class]) return nil;
1362+ if (![dict[@"#\tServer Code Injection"] isKindOfClass:NSString.class]) return nil;
1363+ if (![dict[@"shitake mushrooms"] isKindOfClass:NSString.class]) return nil;
1364+ if (![dict[@"''"] isKindOfClass:NSString.class]) return nil;
1365+ if (![dict[@"0/0"] isKindOfClass:NSString.class]) return nil;
1366+ if (![dict[@"#\tSpecial Characters"] isKindOfClass:NSString.class]) return nil;
1367+ if (![dict[@"src=JaVaSCript:prompt(132)"] isKindOfClass:NSString.class]) return nil;
1368+ if (![dict[@"#\tStrings which can be interpreted as numeric"] isKindOfClass:NSString.class]) return nil;
1369+ if (![dict[@"#\tStrings which can cause a SQL injection if inputs are not sanitized"] isKindOfClass:NSString.class]) return nil;
1370+ if (![dict[@"#\tStrings which can cause user to pull in files that should not be a part of a web server"] isKindOfClass:NSString.class]) return nil;
1371+ if (![dict[@"#\tStrings which can cause user to run code on server as a privileged user (c.f. https://news.ycombinator.com/item?id=7665153)"] isKindOfClass:NSString.class]) return nil;
1372+ if (![dict[@"#\tStrings which contain \"corrupted\" text. The corruption will not appear in non-HTML text, however. (via http://www.eeemo.net)"] isKindOfClass:NSString.class]) return nil;
1373+ if (![dict[@"#\tStrings which contain unicode with an \"upsidedown\" effect (via http://www.upsidedowntext.com)"] isKindOfClass:NSString.class]) return nil;
1374+ if (![dict[@"#\tStrings which contain unicode with unusual properties (e.g. Right-to-left override) (c.f. http://www.unicode.org/charts/PDF/U2000.pdf)"] isKindOfClass:NSString.class]) return nil;
1375+ if (![dict[@"#\tStrings which punish the fools who use cat/type on this file"] isKindOfClass:NSString.class]) return nil;
1376+ if (![dict[@"<svg><script>123<1>alert(123)</script>"] isKindOfClass:NSString.class]) return nil;
1377+ if (![dict[@"System(\"ls -al /\")"] isKindOfClass:NSString.class]) return nil;
1378+ if (![dict[@"@{[system \"touch /tmp/blns.fail\"]}"] isKindOfClass:NSString.class]) return nil;
1379+ if (![dict[@"\u2029test\u2029"] isKindOfClass:NSString.class]) return nil;
1380+ if (![dict[@"test\u2060test\u202b"] isKindOfClass:NSString.class]) return nil;
1381+ if (![dict[@"\"''''\"'\""] isKindOfClass:NSString.class]) return nil;
1382+ if (![dict[@"+0.0"] isKindOfClass:NSString.class]) return nil;
1383+ if (![dict[@"0.0.0"] isKindOfClass:NSString.class]) return nil;
1384+ if (![dict[@"() { 0; }; touch /tmp/blns.shellshock1.fail;"] isKindOfClass:NSString.class]) return nil;
1385+ if (![dict[@"0xabad1dea"] isKindOfClass:NSString.class]) return nil;
1386+ if (![dict[@"0xffffffff"] isKindOfClass:NSString.class]) return nil;
1387+ if (![dict[@"\U0001f3f30\U0001f308️"] isKindOfClass:NSString.class]) return nil;
1388+ if (![dict[@"0️⃣ 1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣ 8️⃣ 9️⃣ \U0001f51f"] isKindOfClass:NSString.class]) return nil;
1389+ if (![dict[@"--"] isKindOfClass:NSString.class]) return nil;
1390+ if (![dict[@"\U0001d683\U0001d691\U0001d68e \U0001d69a\U0001d69e\U0001d692\U0001d68c\U0001d694 \U0001d68b\U0001d69b\U0001d698\U0001d6a0\U0001d697 \U0001d68f\U0001d698\U0001d6a1 \U0001d693\U0001d69e\U0001d696\U0001d699\U0001d69c \U0001d698\U0001d69f\U0001d68e\U0001d69b \U0001d69d\U0001d691\U0001d68e \U0001d695\U0001d68a\U0001d6a3\U0001d6a2 \U0001d68d\U0001d698\U0001d690"] isKindOfClass:NSString.class]) return nil;
1391+ if (![dict[@"-$1.00"] isKindOfClass:NSString.class]) return nil;
1392+ if (![dict[@"1 000,00"] isKindOfClass:NSString.class]) return nil;
1393+ if (![dict[@"1'000'000,00"] isKindOfClass:NSString.class]) return nil;
1394+ if (![dict[@"\U0001f435 \U0001f648 \U0001f649 \U0001f64a"] isKindOfClass:NSString.class]) return nil;
1395+ if (![dict[@"-1/2"] isKindOfClass:NSString.class]) return nil;
1396+ if (![dict[@"\U0001f47e \U0001f647 \U0001f481 \U0001f645 \U0001f646 \U0001f64b \U0001f64e \U0001f64d"] isKindOfClass:NSString.class]) return nil;
1397+ if (![dict[@"-1E+02"] isKindOfClass:NSString.class]) return nil;
1398+ if (![dict[@"-1E2"] isKindOfClass:NSString.class]) return nil;
1399+ if (![dict[@"-1#IND"] isKindOfClass:NSString.class]) return nil;
1400+ if (![dict[@"."] isKindOfClass:NSString.class]) return nil;
1401+ if (![dict[@"\\\\"] isKindOfClass:NSString.class]) return nil;
1402+ if (![dict[@"_"] isKindOfClass:NSString.class]) return nil;
1403+ if (![dict[@"⁰⁴⁵"] isKindOfClass:NSString.class]) return nil;
1404+ if (![dict[@"⅛⅜⅝⅞"] isKindOfClass:NSString.class]) return nil;
1405+ if (![dict[@"✋\U0001f3ff \U0001f4aa\U0001f3ff \U0001f450\U0001f3ff \U0001f64c\U0001f3ff \U0001f44f\U0001f3ff \U0001f64f\U0001f3ff"] isKindOfClass:NSString.class]) return nil;
1406+ if (![dict[@"・( ̄∀ ̄)・:*:"] isKindOfClass:NSString.class]) return nil;
1407+ if (![dict[@"\U0001d413\U0001d421\U0001d41e \U0001d42a\U0001d42e\U0001d422\U0001d41c\U0001d424 \U0001d41b\U0001d42b\U0001d428\U0001d430\U0001d427 \U0001d41f\U0001d428\U0001d431 \U0001d423\U0001d42e\U0001d426\U0001d429\U0001d42c \U0001d428\U0001d42f\U0001d41e\U0001d42b \U0001d42d\U0001d421\U0001d41e \U0001d425\U0001d41a\U0001d433\U0001d432 \U0001d41d\U0001d428\U0001d420"] isKindOfClass:NSString.class]) return nil;
1408+ if (![dict[@"-9223372036854775808/-1"] isKindOfClass:NSString.class]) return nil;
1409+ if (![dict[@"<script>alert(123)</script>"] isKindOfClass:NSString.class]) return nil;
1410+ if (![dict[@"١٢٣"] isKindOfClass:NSString.class]) return nil;
1411+ if (![dict[@"<title onpropertychange=javascript:alert(1)></title><title title=>"] isKindOfClass:NSString.class]) return nil;
1412+ if (![dict[@"# treated as whitespace in some contexts."] isKindOfClass:NSString.class]) return nil;
1413+ if (![dict[@"#\tTrick Unicode"] isKindOfClass:NSString.class]) return nil;
1414+ if (![dict[@"undefined"] isKindOfClass:NSString.class]) return nil;
1415+ if (![dict[@"# Unicode additional control characters: all of the characters with"] isKindOfClass:NSString.class]) return nil;
1416+ if (![dict[@"#\tUnicode Subscript/Superscript/Accents"] isKindOfClass:NSString.class]) return nil;
1417+ if (![dict[@"#\tUnicode Upsidedown"] isKindOfClass:NSString.class]) return nil;
1418+ if (![dict[@"$USER"] isKindOfClass:NSString.class]) return nil;
1419+ if (![dict[@"--version"] isKindOfClass:NSString.class]) return nil;
1420+ if (![dict[@"# version 8.0.0), plus U+0009 (HT), U+000B (VT), U+000C (FF), U+0085 (NEL),"] isKindOfClass:NSString.class]) return nil;
1421+ if (![dict[@"# Whitespace: all of the characters with category Zs, Zl, or Zp (in Unicode"] isKindOfClass:NSString.class]) return nil;
1422+ if (![dict[@"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><!DOCTYPE foo [ <!ELEMENT foo ANY ><!ENTITY xxe SYSTEM \"file:///etc/passwd\" >]><foo>&xxe;</foo>"] isKindOfClass:NSString.class]) return nil;
1423+ if (![dict[@"# XXE Injection (XML)"] isKindOfClass:NSString.class]) return nil;
1424+ if (![dict[@"#\tZalgo Text"] isKindOfClass:NSString.class]) return nil;
1425+ if (![dict[@"ZZ:"] isKindOfClass:NSString.class]) return nil;
1426+ if (![dict[@"ÅÍÎÏ˝ÓÔ\uf8ffÒÚÆ☃"] isKindOfClass:NSString.class]) return nil;
1427+ if (![dict[@",。・:*:・゜’( ☻ ω ☻ )。・:*:・゜’"] isKindOfClass:NSString.class]) return nil;
1428+ if (![dict[@"ЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"] isKindOfClass:NSString.class]) return nil;
1429+ if (![dict[@"בְּרֵאשִׁית, בָּרָא אֱלֹהִים, אֵת הַשָּׁמַיִם, וְאֵת הָאָרֶץ"] isKindOfClass:NSString.class]) return nil;
1430+ if (![dict[@"مُنَاقَشَةُ سُبُلِ اِسْتِخْدَامِ اللُّغَةِ فِي النُّظُمِ الْقَائِمَةِ وَفِيم يَخُصَّ التَّطْبِيقَاتُ الْحاسُوبِيَّةُ، "] isKindOfClass:NSString.class]) return nil;
1431+ if (![dict[@"̗̺͖̹̯͓Ṯ̤͍̥͇͈h̲́e͏͓̼̗̙̼̣͔ ͇̜̱̠͓͍ͅN͕͠e̗̱z̘̝̜̺͙p̤̺̹͍̯͚e̠̻̠͜r̨̤͍̺̖͔̖̖d̠̟̭̬̝͟i̦͖̩͓͔̤a̠̗̬͉̙n͚͜ ̻̞̰͚ͅh̵͉i̳̞v̢͇ḙ͎͟-҉̭̩̼͔m̤̭̫i͕͇̝̦n̗͙ḍ̟ ̯̲͕͞ǫ̟̯̰̲͙̻̝f ̪̰̰̗̖̭̘͘c̦͍̲̞͍̩̙ḥ͚a̮͎̟̙͜ơ̩̹͎s̤.̝̝ ҉Z̡̖̜͖̰̣͉̜a͖̰͙̬͡l̲̫̳͍̩g̡̟̼̱͚̞̬ͅo̗͜.̟"] isKindOfClass:NSString.class]) return nil;
1432+ if (![dict[@"┬─┬ノ( º _ ºノ)"] isKindOfClass:NSString.class]) return nil;
1433+ if (![dict[@"울란바토르"] isKindOfClass:NSString.class]) return nil;
1434+ if (![dict[@"The quick brown fox jumps over the lazy dog"] isKindOfClass:NSString.class]) return nil;
1435+ if (![dict[@"(ノಥ益ಥ)ノ\ufeff ┻━┻"] isKindOfClass:NSString.class]) return nil;
1436+ [self setValuesForKeysWithDictionary:dict];
1437+ }
1438+ return self;
1439+}
1440+
1441+- (void)setValue:(nullable id)value forKey:(NSString *)key
1442+{
1443+ id resolved = QTC.properties[key];
1444+ if (resolved) [super setValue:value forKey:resolved];
1445+}
1446+
1447+- (void)setNilValueForKey:(NSString *)key
1448+{
1449+ id resolved = QTC.properties[key];
1450+ if (resolved) [super setValue:@(0) forKey:resolved];
1451+}
1452+
1453+- (NSDictionary *)JSONDictionary
1454+{
1455+ id dict = [[self dictionaryWithValuesForKeys:QTC.properties.allValues] mutableCopy];
1456+
1457+ for (id jsonName in QTC.properties) {
1458+ id propertyName = QTC.properties[jsonName];
1459+ if (![jsonName isEqualToString:propertyName]) {
1460+ dict[jsonName] = dict[propertyName];
1461+ [dict removeObjectForKey:propertyName];
1462+ }
1463+ }
1464+
1465+ [dict addEntriesFromDictionary:@{
1466+ @"dontMakeAMap": _isDontMakeAMap ? @YES : @NO,
1467+ }];
1468+
1469+ return dict;
1470+}
1471+@end
1472+
1473+NS_ASSUME_NONNULL_END
No generated files match these filters.