update porting to new machine
[wikipedia-parser-hphp.git] / gen / php / Parser.cpp
blobce403c2ae163d895ffd5c2b76cd8f47a8a922a8a
2 #include <php/CoreParserFunctions.h>
3 #include <php/DateFormatter.h>
4 #include <php/LinkHolderArray.h>
5 #include <php/Parser.h>
6 #include <php/ParserOptions.h>
7 #include <php/ParserOutput.h>
8 #include <php/Preprocessor.h>
9 #include <php/Tidy.h>
10 #include <cpp/ext/ext.h>
12 namespace HPHP {
13 ///////////////////////////////////////////////////////////////////////////////
15 const StaticString k_DB_MASTER = "DB_MASTER";
16 const StaticString k_NS_MEDIAWIKI = "NS_MEDIAWIKI";
17 const StaticString k_NS_TEMPLATE = "NS_TEMPLATE";
18 const StaticString k_TS_MW = "TS_MW";
19 const StaticString k_TS_UNIX = "TS_UNIX";
20 const StaticString k_SFH_OBJECT_ARGS = "SFH_OBJECT_ARGS";
21 const StaticString k_SFH_NO_HASH = "SFH_NO_HASH";
23 /* preface starts */
24 inline Variant df_lambda_6(CVarRef aa, Variant &p0, Variant &p1, Variant &p2, Variant &p3) {
25 Variant a0; if (aa.is(KindOfArray)) a0 = aa;
26 p0 = a0.rvalAt(0);
27 p1 = a0.rvalAt(1);
28 p2 = a0.rvalAt(2);
29 p3 = a0.rvalAt(3);
30 return aa;
33 inline Variant df_lambda_7(CVarRef aa, Variant &p0, Variant &p1) {
34 Variant a0; if (aa.is(KindOfArray)) a0 = aa;
35 p0 = a0.rvalAt(0);
36 p1 = a0.rvalAt(1);
37 return aa;
40 inline Variant df_lambda_8(CVarRef aa, Variant &p0, Variant &p1) {
41 Variant a0; if (aa.is(KindOfArray)) a0 = aa;
42 p0 = a0.rvalAt(0);
43 p1 = a0.rvalAt(1);
44 return aa;
47 inline Variant df_lambda_9(CVarRef aa, Variant &p0, Variant &p1) {
48 Variant a0; if (aa.is(KindOfArray)) a0 = aa;
49 p0 = a0.rvalAt(0);
50 p1 = a0.rvalAt(1);
51 return aa;
54 inline Variant df_lambda_10(CVarRef aa, Variant &p0, Variant &p1) {
55 Variant a0; if (aa.is(KindOfArray)) a0 = aa;
56 p0 = a0.rvalAt(0);
57 p1 = a0.rvalAt(1);
58 return aa;
61 inline Variant df_lambda_11(CVarRef aa, Variant &p0, Variant &p1) {
62 Variant a0; if (aa.is(KindOfArray)) a0 = aa;
63 p0 = a0.rvalAt(0);
64 p1 = a0.rvalAt(1);
65 return aa;
68 inline Variant df_lambda_12(CVarRef aa, Variant &p0, Variant &p1) {
69 Variant a0; if (aa.is(KindOfArray)) a0 = aa;
70 p0 = a0.rvalAt(0);
71 p1 = a0.rvalAt(1);
72 return aa;
75 inline Variant df_lambda_13(CVarRef aa, Variant &p0, Variant &p1) {
76 Variant a0; if (aa.is(KindOfArray)) a0 = aa;
77 p0 = a0.rvalAt(0);
78 p1 = a0.rvalAt(1);
79 return aa;
82 inline Variant df_lambda_14(CVarRef aa, Variant &p0, Variant &p1) {
83 Variant a0; if (aa.is(KindOfArray)) a0 = aa;
84 p0 = a0.rvalAt(0);
85 p1 = a0.rvalAt(1);
86 return aa;
89 inline Variant df_lambda_15(CVarRef aa, Variant &p0, Variant &p1) {
90 Variant a0; if (aa.is(KindOfArray)) a0 = aa;
91 p0 = a0.rvalAt(0);
92 p1 = a0.rvalAt(1);
93 return aa;
96 inline Variant df_lambda_16(CVarRef aa, Variant &p0, Variant &p1) {
97 Variant a0; if (aa.is(KindOfArray)) a0 = aa;
98 p0 = a0.rvalAt(0);
99 p1 = a0.rvalAt(1);
100 return aa;
103 inline Variant df_lambda_17(CVarRef aa, Variant &p0, Variant &p1) {
104 Variant a0; if (aa.is(KindOfArray)) a0 = aa;
105 p0 = a0.rvalAt(0);
106 p1 = a0.rvalAt(1);
107 return aa;
110 inline Variant df_lambda_18(CVarRef aa, Variant &p0, Variant &p1) {
111 Variant a0; if (aa.is(KindOfArray)) a0 = aa;
112 p0 = a0.rvalAt(0);
113 p1 = a0.rvalAt(1);
114 return aa;
117 /* preface finishes */
118 /* SRC: Parser.php line 5183 */
119 Variant c_stripstate::os_get(const char *s, int64 hash) {
120 return c_ObjectData::os_get(s, hash);
122 Variant &c_stripstate::os_lval(const char *s, int64 hash) {
123 return c_ObjectData::os_lval(s, hash);
125 void c_stripstate::o_get(ArrayElementVec &props) const {
126 props.push_back(NEW(ArrayElement)("general", m_general.isReferenced() ? ref(m_general) : m_general));
127 props.push_back(NEW(ArrayElement)("nowiki", m_nowiki.isReferenced() ? ref(m_nowiki) : m_nowiki));
128 c_ObjectData::o_get(props);
130 bool c_stripstate::o_exists(CStrRef s, int64 hash) const {
131 if (hash < 0) hash = hash_string(s.data(), s.length());
132 switch (hash & 3) {
133 case 1:
134 HASH_EXISTS_STRING(0x78258C7EF69CF55DLL, nowiki, 6);
135 break;
136 case 3:
137 HASH_EXISTS_STRING(0x661B15A9C00F7127LL, general, 7);
138 break;
139 default:
140 break;
142 return c_ObjectData::o_exists(s, hash);
144 Variant c_stripstate::o_get(CStrRef s, int64 hash) {
145 if (hash < 0) hash = hash_string(s.data(), s.length());
146 switch (hash & 3) {
147 case 1:
148 HASH_RETURN_STRING(0x78258C7EF69CF55DLL, m_nowiki,
149 nowiki, 6);
150 break;
151 case 3:
152 HASH_RETURN_STRING(0x661B15A9C00F7127LL, m_general,
153 general, 7);
154 break;
155 default:
156 break;
158 return c_ObjectData::o_get(s, hash);
160 Variant c_stripstate::o_set(CStrRef s, int64 hash, CVarRef v,bool forInit /* = false */) {
161 if (hash < 0) hash = hash_string(s.data(), s.length());
162 switch (hash & 3) {
163 case 1:
164 HASH_SET_STRING(0x78258C7EF69CF55DLL, m_nowiki,
165 nowiki, 6);
166 break;
167 case 3:
168 HASH_SET_STRING(0x661B15A9C00F7127LL, m_general,
169 general, 7);
170 break;
171 default:
172 break;
174 return c_ObjectData::o_set(s, hash, v, forInit);
176 Variant &c_stripstate::o_lval(CStrRef s, int64 hash) {
177 if (hash < 0) hash = hash_string(s.data(), s.length());
178 switch (hash & 3) {
179 case 1:
180 HASH_RETURN_STRING(0x78258C7EF69CF55DLL, m_nowiki,
181 nowiki, 6);
182 break;
183 case 3:
184 HASH_RETURN_STRING(0x661B15A9C00F7127LL, m_general,
185 general, 7);
186 break;
187 default:
188 break;
190 return c_ObjectData::o_lval(s, hash);
192 Variant c_stripstate::os_constant(const char *s) {
193 return c_ObjectData::os_constant(s);
195 IMPLEMENT_CLASS(stripstate)
196 ObjectData *c_stripstate::create() {
197 init();
198 t___construct();
199 return this;
201 ObjectData *c_stripstate::dynCreate(CArrRef params, bool init /* = true */) {
202 if (init) {
203 return (create());
204 } else return this;
206 void c_stripstate::dynConstruct(CArrRef params) {
207 (t___construct());
209 ObjectData *c_stripstate::cloneImpl() {
210 c_stripstate *obj = NEW(c_stripstate)();
211 cloneSet(obj);
212 return obj;
214 void c_stripstate::cloneSet(c_stripstate *clone) {
215 clone->m_general = m_general.isReferenced() ? ref(m_general) : m_general;
216 clone->m_nowiki = m_nowiki.isReferenced() ? ref(m_nowiki) : m_nowiki;
217 ObjectData::cloneSet(clone);
219 Variant c_stripstate::o_invoke(const char *s, CArrRef params, int64 hash, bool fatal) {
220 if (hash < 0) hash = hash_string_i(s);
221 switch (hash & 7) {
222 case 1:
223 HASH_GUARD(0x2374179DF576FCA9LL, unstripnowiki) {
224 return (t_unstripnowiki(params.rvalAt(0)));
226 HASH_GUARD(0x695FA349798CF769LL, unstripgeneral) {
227 return (t_unstripgeneral(params.rvalAt(0)));
229 break;
230 case 3:
231 HASH_GUARD(0x540C7C6FAA3D937BLL, unstripboth) {
232 return (t_unstripboth(params.rvalAt(0)));
234 break;
235 case 7:
236 HASH_GUARD(0x0D31D0AC229C615FLL, __construct) {
237 return (t___construct(), null);
239 break;
240 default:
241 break;
243 return c_ObjectData::o_invoke(s, params, hash, fatal);
245 Variant c_stripstate::o_invoke_few_args(const char *s, int64 hash, int count, CVarRef a0, CVarRef a1, CVarRef a2, CVarRef a3, CVarRef a4, CVarRef a5) {
246 if (hash < 0) hash = hash_string_i(s);
247 switch (hash & 7) {
248 case 1:
249 HASH_GUARD(0x2374179DF576FCA9LL, unstripnowiki) {
250 return (t_unstripnowiki(a0));
252 HASH_GUARD(0x695FA349798CF769LL, unstripgeneral) {
253 return (t_unstripgeneral(a0));
255 break;
256 case 3:
257 HASH_GUARD(0x540C7C6FAA3D937BLL, unstripboth) {
258 return (t_unstripboth(a0));
260 break;
261 case 7:
262 HASH_GUARD(0x0D31D0AC229C615FLL, __construct) {
263 return (t___construct(), null);
265 break;
266 default:
267 break;
269 return c_ObjectData::o_invoke_few_args(s, hash, count, a0, a1, a2, a3, a4, a5);
271 Variant c_stripstate::os_invoke(const char *c, const char *s, CArrRef params, int64 hash, bool fatal) {
272 return c_ObjectData::os_invoke(c, s, params, hash, fatal);
274 Variant cw_stripstate$os_get(const char *s) {
275 return c_stripstate::os_get(s, -1);
277 Variant &cw_stripstate$os_lval(const char *s) {
278 return c_stripstate::os_lval(s, -1);
280 Variant cw_stripstate$os_constant(const char *s) {
281 return c_stripstate::os_constant(s);
283 Variant cw_stripstate$os_invoke(const char *c, const char *s, CArrRef params, bool fatal /* = true */) {
284 return c_stripstate::os_invoke(c, s, params, -1, fatal);
286 void c_stripstate::init() {
287 m_general = null;
288 m_nowiki = null;
290 /* SRC: Parser.php line 5186 */
291 void c_stripstate::t___construct() {
292 INSTANCE_METHOD_INJECTION(StripState, StripState::__construct);
293 bool oldInCtor = gasInCtor(true);
294 (m_general = LINE(5187,create_object("replacementarray", Array())));
295 (m_nowiki = LINE(5188,create_object("replacementarray", Array())));
296 gasInCtor(oldInCtor);
297 } /* function */
298 /* SRC: Parser.php line 5191 */
299 Variant c_stripstate::t_unstripgeneral(Variant v_text) {
300 INSTANCE_METHOD_INJECTION(StripState, StripState::unstripGeneral);
301 Variant v_oldText;
303 LINE(5192,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "StripState::unstripGeneral").create()), 0x0000000075359BAFLL));
305 LOOP_COUNTER(1);
306 do {
307 LOOP_COUNTER_CHECK(1);
309 (v_oldText = v_text);
310 (v_text = LINE(5195,m_general.o_invoke_few_args("replace", 0x42FAC655280A6146LL, 1, v_text)));
312 } while (!same(v_text, v_oldText));
314 LINE(5197,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "StripState::unstripGeneral").create()), 0x00000000B599F276LL));
315 return v_text;
316 } /* function */
317 /* SRC: Parser.php line 5201 */
318 Variant c_stripstate::t_unstripnowiki(Variant v_text) {
319 INSTANCE_METHOD_INJECTION(StripState, StripState::unstripNoWiki);
320 Variant v_oldText;
322 LINE(5202,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "StripState::unstripNoWiki").create()), 0x0000000075359BAFLL));
324 LOOP_COUNTER(2);
325 do {
326 LOOP_COUNTER_CHECK(2);
328 (v_oldText = v_text);
329 (v_text = LINE(5205,m_nowiki.o_invoke_few_args("replace", 0x42FAC655280A6146LL, 1, v_text)));
331 } while (!same(v_text, v_oldText));
333 LINE(5207,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "StripState::unstripNoWiki").create()), 0x00000000B599F276LL));
334 return v_text;
335 } /* function */
336 /* SRC: Parser.php line 5211 */
337 Variant c_stripstate::t_unstripboth(Variant v_text) {
338 INSTANCE_METHOD_INJECTION(StripState, StripState::unstripBoth);
339 Variant v_oldText;
341 LINE(5212,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "StripState::unstripBoth").create()), 0x0000000075359BAFLL));
343 LOOP_COUNTER(3);
344 do {
345 LOOP_COUNTER_CHECK(3);
347 (v_oldText = v_text);
348 (v_text = LINE(5215,m_general.o_invoke_few_args("replace", 0x42FAC655280A6146LL, 1, v_text)));
349 (v_text = LINE(5216,m_nowiki.o_invoke_few_args("replace", 0x42FAC655280A6146LL, 1, v_text)));
351 } while (!same(v_text, v_oldText));
353 LINE(5218,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "StripState::unstripBoth").create()), 0x00000000B599F276LL));
354 return v_text;
355 } /* function */
356 /* SRC: Parser.php line 46 */
357 const StaticString q_parser_VERSION = "1.6.4";
358 const int64 q_parser_SFH_NO_HASH = 1LL;
359 const int64 q_parser_SFH_OBJECT_ARGS = 2LL;
360 const StaticString q_parser_EXT_LINK_URL_CLASS = "[^][<>\"\\x00-\\x20\\x7F]";
361 const StaticString q_parser_EXT_IMAGE_REGEX = "/^(http:\\/\\/|https:\\/\\/)([^][<>\"\\x00-\\x20\\x7F]+)\n\t\t\\/([A-Za-z0-9_.,~%\\-+&;#*\?!=()@\\x80-\\xFF]+)\\.((\?i)gif|png|jpg|jpeg)$/Sx";
362 const int64 q_parser_COLON_STATE_TEXT = 0LL;
363 const int64 q_parser_COLON_STATE_TAG = 1LL;
364 const int64 q_parser_COLON_STATE_TAGSTART = 2LL;
365 const int64 q_parser_COLON_STATE_CLOSETAG = 3LL;
366 const int64 q_parser_COLON_STATE_TAGSLASH = 4LL;
367 const int64 q_parser_COLON_STATE_COMMENT = 5LL;
368 const int64 q_parser_COLON_STATE_COMMENTDASH = 6LL;
369 const int64 q_parser_COLON_STATE_COMMENTDASHDASH = 7LL;
370 const int64 q_parser_PTD_FOR_INCLUSION = 1LL;
371 const int64 q_parser_OT_HTML = 1LL;
372 const int64 q_parser_OT_WIKI = 2LL;
373 const int64 q_parser_OT_PREPROCESS = 3LL;
374 const int64 q_parser_OT_MSG = 3LL;
375 const StaticString q_parser_MARKER_SUFFIX = "-QINU\177";
376 Variant c_parser::os_get(const char *s, int64 hash) {
377 return c_ObjectData::os_get(s, hash);
379 Variant &c_parser::os_lval(const char *s, int64 hash) {
380 return c_ObjectData::os_lval(s, hash);
382 void c_parser::o_get(ArrayElementVec &props) const {
383 props.push_back(NEW(ArrayElement)("mTagHooks", m_mTagHooks.isReferenced() ? ref(m_mTagHooks) : m_mTagHooks));
384 props.push_back(NEW(ArrayElement)("mTransparentTagHooks", m_mTransparentTagHooks.isReferenced() ? ref(m_mTransparentTagHooks) : m_mTransparentTagHooks));
385 props.push_back(NEW(ArrayElement)("mFunctionHooks", m_mFunctionHooks.isReferenced() ? ref(m_mFunctionHooks) : m_mFunctionHooks));
386 props.push_back(NEW(ArrayElement)("mFunctionSynonyms", m_mFunctionSynonyms.isReferenced() ? ref(m_mFunctionSynonyms) : m_mFunctionSynonyms));
387 props.push_back(NEW(ArrayElement)("mVariables", m_mVariables.isReferenced() ? ref(m_mVariables) : m_mVariables));
388 props.push_back(NEW(ArrayElement)("mImageParams", m_mImageParams.isReferenced() ? ref(m_mImageParams) : m_mImageParams));
389 props.push_back(NEW(ArrayElement)("mImageParamsMagicArray", m_mImageParamsMagicArray.isReferenced() ? ref(m_mImageParamsMagicArray) : m_mImageParamsMagicArray));
390 props.push_back(NEW(ArrayElement)("mStripList", m_mStripList.isReferenced() ? ref(m_mStripList) : m_mStripList));
391 props.push_back(NEW(ArrayElement)("mMarkerIndex", m_mMarkerIndex.isReferenced() ? ref(m_mMarkerIndex) : m_mMarkerIndex));
392 props.push_back(NEW(ArrayElement)("mPreprocessor", m_mPreprocessor.isReferenced() ? ref(m_mPreprocessor) : m_mPreprocessor));
393 props.push_back(NEW(ArrayElement)("mExtLinkBracketedRegex", m_mExtLinkBracketedRegex.isReferenced() ? ref(m_mExtLinkBracketedRegex) : m_mExtLinkBracketedRegex));
394 props.push_back(NEW(ArrayElement)("mUrlProtocols", m_mUrlProtocols.isReferenced() ? ref(m_mUrlProtocols) : m_mUrlProtocols));
395 props.push_back(NEW(ArrayElement)("mDefaultStripList", m_mDefaultStripList.isReferenced() ? ref(m_mDefaultStripList) : m_mDefaultStripList));
396 props.push_back(NEW(ArrayElement)("mVarCache", m_mVarCache.isReferenced() ? ref(m_mVarCache) : m_mVarCache));
397 props.push_back(NEW(ArrayElement)("mConf", m_mConf.isReferenced() ? ref(m_mConf) : m_mConf));
398 props.push_back(NEW(ArrayElement)("mFunctionTagHooks", m_mFunctionTagHooks.isReferenced() ? ref(m_mFunctionTagHooks) : m_mFunctionTagHooks));
399 props.push_back(NEW(ArrayElement)("mOutput", m_mOutput.isReferenced() ? ref(m_mOutput) : m_mOutput));
400 props.push_back(NEW(ArrayElement)("mAutonumber", m_mAutonumber.isReferenced() ? ref(m_mAutonumber) : m_mAutonumber));
401 props.push_back(NEW(ArrayElement)("mDTopen", m_mDTopen.isReferenced() ? ref(m_mDTopen) : m_mDTopen));
402 props.push_back(NEW(ArrayElement)("mStripState", m_mStripState.isReferenced() ? ref(m_mStripState) : m_mStripState));
403 props.push_back(NEW(ArrayElement)("mIncludeCount", m_mIncludeCount.isReferenced() ? ref(m_mIncludeCount) : m_mIncludeCount));
404 props.push_back(NEW(ArrayElement)("mArgStack", m_mArgStack.isReferenced() ? ref(m_mArgStack) : m_mArgStack));
405 props.push_back(NEW(ArrayElement)("mLastSection", m_mLastSection.isReferenced() ? ref(m_mLastSection) : m_mLastSection));
406 props.push_back(NEW(ArrayElement)("mInPre", m_mInPre.isReferenced() ? ref(m_mInPre) : m_mInPre));
407 props.push_back(NEW(ArrayElement)("mLinkHolders", m_mLinkHolders.isReferenced() ? ref(m_mLinkHolders) : m_mLinkHolders));
408 props.push_back(NEW(ArrayElement)("mLinkID", m_mLinkID.isReferenced() ? ref(m_mLinkID) : m_mLinkID));
409 props.push_back(NEW(ArrayElement)("mIncludeSizes", m_mIncludeSizes.isReferenced() ? ref(m_mIncludeSizes) : m_mIncludeSizes));
410 props.push_back(NEW(ArrayElement)("mPPNodeCount", m_mPPNodeCount.isReferenced() ? ref(m_mPPNodeCount) : m_mPPNodeCount));
411 props.push_back(NEW(ArrayElement)("mDefaultSort", m_mDefaultSort.isReferenced() ? ref(m_mDefaultSort) : m_mDefaultSort));
412 props.push_back(NEW(ArrayElement)("mTplExpandCache", m_mTplExpandCache.isReferenced() ? ref(m_mTplExpandCache) : m_mTplExpandCache));
413 props.push_back(NEW(ArrayElement)("mTplRedirCache", m_mTplRedirCache.isReferenced() ? ref(m_mTplRedirCache) : m_mTplRedirCache));
414 props.push_back(NEW(ArrayElement)("mTplDomCache", m_mTplDomCache.isReferenced() ? ref(m_mTplDomCache) : m_mTplDomCache));
415 props.push_back(NEW(ArrayElement)("mHeadings", m_mHeadings.isReferenced() ? ref(m_mHeadings) : m_mHeadings));
416 props.push_back(NEW(ArrayElement)("mDoubleUnderscores", m_mDoubleUnderscores.isReferenced() ? ref(m_mDoubleUnderscores) : m_mDoubleUnderscores));
417 props.push_back(NEW(ArrayElement)("mExpensiveFunctionCount", m_mExpensiveFunctionCount.isReferenced() ? ref(m_mExpensiveFunctionCount) : m_mExpensiveFunctionCount));
418 props.push_back(NEW(ArrayElement)("mOptions", m_mOptions.isReferenced() ? ref(m_mOptions) : m_mOptions));
419 props.push_back(NEW(ArrayElement)("mTitle", m_mTitle.isReferenced() ? ref(m_mTitle) : m_mTitle));
420 props.push_back(NEW(ArrayElement)("mOutputType", m_mOutputType.isReferenced() ? ref(m_mOutputType) : m_mOutputType));
421 props.push_back(NEW(ArrayElement)("ot", m_ot.isReferenced() ? ref(m_ot) : m_ot));
422 props.push_back(NEW(ArrayElement)("mRevisionId", m_mRevisionId.isReferenced() ? ref(m_mRevisionId) : m_mRevisionId));
423 props.push_back(NEW(ArrayElement)("mRevisionTimestamp", m_mRevisionTimestamp.isReferenced() ? ref(m_mRevisionTimestamp) : m_mRevisionTimestamp));
424 props.push_back(NEW(ArrayElement)("mRevIdForTs", m_mRevIdForTs.isReferenced() ? ref(m_mRevIdForTs) : m_mRevIdForTs));
425 c_ObjectData::o_get(props);
427 bool c_parser::o_exists(CStrRef s, int64 hash) const {
428 if (hash < 0) hash = hash_string(s.data(), s.length());
429 switch (hash & 127) {
430 case 1:
431 HASH_EXISTS_STRING(0x17B591196693E481LL, mPPNodeCount, 12);
432 break;
433 case 6:
434 HASH_EXISTS_STRING(0x29A48DB6C6A9A306LL, mTransparentTagHooks, 20);
435 break;
436 case 13:
437 HASH_EXISTS_STRING(0x3BE32D09F769180DLL, mIncludeSizes, 13);
438 break;
439 case 14:
440 HASH_EXISTS_STRING(0x61D533DDE0E29D8ELL, mConf, 5);
441 break;
442 case 15:
443 HASH_EXISTS_STRING(0x078BB50DFD81B50FLL, mVariables, 10);
444 break;
445 case 18:
446 HASH_EXISTS_STRING(0x54CDA5D215104C92LL, mImageParamsMagicArray, 22);
447 break;
448 case 23:
449 HASH_EXISTS_STRING(0x79B0EDF6D034C797LL, mFunctionSynonyms, 17);
450 break;
451 case 30:
452 HASH_EXISTS_STRING(0x268656C76979C11ELL, mImageParams, 12);
453 break;
454 case 32:
455 HASH_EXISTS_STRING(0x1F6884F6D1BD5420LL, mTplDomCache, 12);
456 break;
457 case 36:
458 HASH_EXISTS_STRING(0x2D440400444AAAA4LL, mTagHooks, 9);
459 break;
460 case 37:
461 HASH_EXISTS_STRING(0x51106CF09F297525LL, mIncludeCount, 13);
462 break;
463 case 43:
464 HASH_EXISTS_STRING(0x0E51B7CA30E388ABLL, mDTopen, 7);
465 break;
466 case 47:
467 HASH_EXISTS_STRING(0x3A5EAF7D0A0A62AFLL, mOutputType, 11);
468 break;
469 case 48:
470 HASH_EXISTS_STRING(0x6017CB24F50048B0LL, mInPre, 6);
471 break;
472 case 49:
473 HASH_EXISTS_STRING(0x246A9B9AF3CF9F31LL, mMarkerIndex, 12);
474 break;
475 case 51:
476 HASH_EXISTS_STRING(0x23ADD91853701033LL, mFunctionHooks, 14);
477 break;
478 case 53:
479 HASH_EXISTS_STRING(0x0BF9A1BCA38BE1B5LL, mTplExpandCache, 15);
480 break;
481 case 65:
482 HASH_EXISTS_STRING(0x4DDE8DD427CE5241LL, mRevisionId, 11);
483 break;
484 case 69:
485 HASH_EXISTS_STRING(0x32D18CCCD8EDEA45LL, mDoubleUnderscores, 18);
486 break;
487 case 70:
488 HASH_EXISTS_STRING(0x040877553522A8C6LL, mStripList, 10);
489 break;
490 case 77:
491 HASH_EXISTS_STRING(0x48663D83DD673D4DLL, ot, 2);
492 break;
493 case 78:
494 HASH_EXISTS_STRING(0x65F5C1EF7BB90DCELL, mRevisionTimestamp, 18);
495 break;
496 case 79:
497 HASH_EXISTS_STRING(0x0521FE0F0419AF4FLL, mLinkHolders, 12);
498 break;
499 case 80:
500 HASH_EXISTS_STRING(0x7F7FE020D521DBD0LL, mOutput, 7);
501 break;
502 case 92:
503 HASH_EXISTS_STRING(0x3231E133A048DBDCLL, mExpensiveFunctionCount, 23);
504 break;
505 case 94:
506 HASH_EXISTS_STRING(0x22557F1A510D09DELL, mUrlProtocols, 13);
507 break;
508 case 97:
509 HASH_EXISTS_STRING(0x0ACBB98FE340E8E1LL, mPreprocessor, 13);
510 break;
511 case 98:
512 HASH_EXISTS_STRING(0x1AA92728432688E2LL, mAutonumber, 11);
513 break;
514 case 102:
515 HASH_EXISTS_STRING(0x62355D375852DB66LL, mLastSection, 12);
516 break;
517 case 105:
518 HASH_EXISTS_STRING(0x7207EA9A5BBFBF69LL, mStripState, 11);
519 HASH_EXISTS_STRING(0x79AC63B0E96DC6E9LL, mOptions, 8);
520 break;
521 case 106:
522 HASH_EXISTS_STRING(0x68120084F0DA35EALL, mFunctionTagHooks, 17);
523 HASH_EXISTS_STRING(0x4C804C46307BF0EALL, mTitle, 6);
524 break;
525 case 107:
526 HASH_EXISTS_STRING(0x1B2FB1E1A358AEEBLL, mVarCache, 9);
527 HASH_EXISTS_STRING(0x5EB895444FBC1E6BLL, mHeadings, 9);
528 break;
529 case 108:
530 HASH_EXISTS_STRING(0x00533A290681F3ECLL, mRevIdForTs, 11);
531 break;
532 case 114:
533 HASH_EXISTS_STRING(0x1C236AA02D253072LL, mArgStack, 9);
534 break;
535 case 115:
536 HASH_EXISTS_STRING(0x60D43FEB822D1C73LL, mDefaultStripList, 17);
537 HASH_EXISTS_STRING(0x2033A5C7AD350773LL, mDefaultSort, 12);
538 break;
539 case 117:
540 HASH_EXISTS_STRING(0x69D407F2FBC52275LL, mLinkID, 7);
541 break;
542 case 119:
543 HASH_EXISTS_STRING(0x627C20A98F61F877LL, mExtLinkBracketedRegex, 22);
544 break;
545 case 125:
546 HASH_EXISTS_STRING(0x43595FF2293B047DLL, mTplRedirCache, 14);
547 break;
548 default:
549 break;
551 return c_ObjectData::o_exists(s, hash);
553 Variant c_parser::o_get(CStrRef s, int64 hash) {
554 if (hash < 0) hash = hash_string(s.data(), s.length());
555 switch (hash & 127) {
556 case 1:
557 HASH_RETURN_STRING(0x17B591196693E481LL, m_mPPNodeCount,
558 mPPNodeCount, 12);
559 break;
560 case 6:
561 HASH_RETURN_STRING(0x29A48DB6C6A9A306LL, m_mTransparentTagHooks,
562 mTransparentTagHooks, 20);
563 break;
564 case 13:
565 HASH_RETURN_STRING(0x3BE32D09F769180DLL, m_mIncludeSizes,
566 mIncludeSizes, 13);
567 break;
568 case 14:
569 HASH_RETURN_STRING(0x61D533DDE0E29D8ELL, m_mConf,
570 mConf, 5);
571 break;
572 case 15:
573 HASH_RETURN_STRING(0x078BB50DFD81B50FLL, m_mVariables,
574 mVariables, 10);
575 break;
576 case 18:
577 HASH_RETURN_STRING(0x54CDA5D215104C92LL, m_mImageParamsMagicArray,
578 mImageParamsMagicArray, 22);
579 break;
580 case 23:
581 HASH_RETURN_STRING(0x79B0EDF6D034C797LL, m_mFunctionSynonyms,
582 mFunctionSynonyms, 17);
583 break;
584 case 30:
585 HASH_RETURN_STRING(0x268656C76979C11ELL, m_mImageParams,
586 mImageParams, 12);
587 break;
588 case 32:
589 HASH_RETURN_STRING(0x1F6884F6D1BD5420LL, m_mTplDomCache,
590 mTplDomCache, 12);
591 break;
592 case 36:
593 HASH_RETURN_STRING(0x2D440400444AAAA4LL, m_mTagHooks,
594 mTagHooks, 9);
595 break;
596 case 37:
597 HASH_RETURN_STRING(0x51106CF09F297525LL, m_mIncludeCount,
598 mIncludeCount, 13);
599 break;
600 case 43:
601 HASH_RETURN_STRING(0x0E51B7CA30E388ABLL, m_mDTopen,
602 mDTopen, 7);
603 break;
604 case 47:
605 HASH_RETURN_STRING(0x3A5EAF7D0A0A62AFLL, m_mOutputType,
606 mOutputType, 11);
607 break;
608 case 48:
609 HASH_RETURN_STRING(0x6017CB24F50048B0LL, m_mInPre,
610 mInPre, 6);
611 break;
612 case 49:
613 HASH_RETURN_STRING(0x246A9B9AF3CF9F31LL, m_mMarkerIndex,
614 mMarkerIndex, 12);
615 break;
616 case 51:
617 HASH_RETURN_STRING(0x23ADD91853701033LL, m_mFunctionHooks,
618 mFunctionHooks, 14);
619 break;
620 case 53:
621 HASH_RETURN_STRING(0x0BF9A1BCA38BE1B5LL, m_mTplExpandCache,
622 mTplExpandCache, 15);
623 break;
624 case 65:
625 HASH_RETURN_STRING(0x4DDE8DD427CE5241LL, m_mRevisionId,
626 mRevisionId, 11);
627 break;
628 case 69:
629 HASH_RETURN_STRING(0x32D18CCCD8EDEA45LL, m_mDoubleUnderscores,
630 mDoubleUnderscores, 18);
631 break;
632 case 70:
633 HASH_RETURN_STRING(0x040877553522A8C6LL, m_mStripList,
634 mStripList, 10);
635 break;
636 case 77:
637 HASH_RETURN_STRING(0x48663D83DD673D4DLL, m_ot,
638 ot, 2);
639 break;
640 case 78:
641 HASH_RETURN_STRING(0x65F5C1EF7BB90DCELL, m_mRevisionTimestamp,
642 mRevisionTimestamp, 18);
643 break;
644 case 79:
645 HASH_RETURN_STRING(0x0521FE0F0419AF4FLL, m_mLinkHolders,
646 mLinkHolders, 12);
647 break;
648 case 80:
649 HASH_RETURN_STRING(0x7F7FE020D521DBD0LL, m_mOutput,
650 mOutput, 7);
651 break;
652 case 92:
653 HASH_RETURN_STRING(0x3231E133A048DBDCLL, m_mExpensiveFunctionCount,
654 mExpensiveFunctionCount, 23);
655 break;
656 case 94:
657 HASH_RETURN_STRING(0x22557F1A510D09DELL, m_mUrlProtocols,
658 mUrlProtocols, 13);
659 break;
660 case 97:
661 HASH_RETURN_STRING(0x0ACBB98FE340E8E1LL, m_mPreprocessor,
662 mPreprocessor, 13);
663 break;
664 case 98:
665 HASH_RETURN_STRING(0x1AA92728432688E2LL, m_mAutonumber,
666 mAutonumber, 11);
667 break;
668 case 102:
669 HASH_RETURN_STRING(0x62355D375852DB66LL, m_mLastSection,
670 mLastSection, 12);
671 break;
672 case 105:
673 HASH_RETURN_STRING(0x7207EA9A5BBFBF69LL, m_mStripState,
674 mStripState, 11);
675 HASH_RETURN_STRING(0x79AC63B0E96DC6E9LL, m_mOptions,
676 mOptions, 8);
677 break;
678 case 106:
679 HASH_RETURN_STRING(0x68120084F0DA35EALL, m_mFunctionTagHooks,
680 mFunctionTagHooks, 17);
681 HASH_RETURN_STRING(0x4C804C46307BF0EALL, m_mTitle,
682 mTitle, 6);
683 break;
684 case 107:
685 HASH_RETURN_STRING(0x1B2FB1E1A358AEEBLL, m_mVarCache,
686 mVarCache, 9);
687 HASH_RETURN_STRING(0x5EB895444FBC1E6BLL, m_mHeadings,
688 mHeadings, 9);
689 break;
690 case 108:
691 HASH_RETURN_STRING(0x00533A290681F3ECLL, m_mRevIdForTs,
692 mRevIdForTs, 11);
693 break;
694 case 114:
695 HASH_RETURN_STRING(0x1C236AA02D253072LL, m_mArgStack,
696 mArgStack, 9);
697 break;
698 case 115:
699 HASH_RETURN_STRING(0x60D43FEB822D1C73LL, m_mDefaultStripList,
700 mDefaultStripList, 17);
701 HASH_RETURN_STRING(0x2033A5C7AD350773LL, m_mDefaultSort,
702 mDefaultSort, 12);
703 break;
704 case 117:
705 HASH_RETURN_STRING(0x69D407F2FBC52275LL, m_mLinkID,
706 mLinkID, 7);
707 break;
708 case 119:
709 HASH_RETURN_STRING(0x627C20A98F61F877LL, m_mExtLinkBracketedRegex,
710 mExtLinkBracketedRegex, 22);
711 break;
712 case 125:
713 HASH_RETURN_STRING(0x43595FF2293B047DLL, m_mTplRedirCache,
714 mTplRedirCache, 14);
715 break;
716 default:
717 break;
719 return c_ObjectData::o_get(s, hash);
721 Variant c_parser::o_set(CStrRef s, int64 hash, CVarRef v,bool forInit /* = false */) {
722 if (hash < 0) hash = hash_string(s.data(), s.length());
723 switch (hash & 127) {
724 case 1:
725 HASH_SET_STRING(0x17B591196693E481LL, m_mPPNodeCount,
726 mPPNodeCount, 12);
727 break;
728 case 6:
729 HASH_SET_STRING(0x29A48DB6C6A9A306LL, m_mTransparentTagHooks,
730 mTransparentTagHooks, 20);
731 break;
732 case 13:
733 HASH_SET_STRING(0x3BE32D09F769180DLL, m_mIncludeSizes,
734 mIncludeSizes, 13);
735 break;
736 case 14:
737 HASH_SET_STRING(0x61D533DDE0E29D8ELL, m_mConf,
738 mConf, 5);
739 break;
740 case 15:
741 HASH_SET_STRING(0x078BB50DFD81B50FLL, m_mVariables,
742 mVariables, 10);
743 break;
744 case 18:
745 HASH_SET_STRING(0x54CDA5D215104C92LL, m_mImageParamsMagicArray,
746 mImageParamsMagicArray, 22);
747 break;
748 case 23:
749 HASH_SET_STRING(0x79B0EDF6D034C797LL, m_mFunctionSynonyms,
750 mFunctionSynonyms, 17);
751 break;
752 case 30:
753 HASH_SET_STRING(0x268656C76979C11ELL, m_mImageParams,
754 mImageParams, 12);
755 break;
756 case 32:
757 HASH_SET_STRING(0x1F6884F6D1BD5420LL, m_mTplDomCache,
758 mTplDomCache, 12);
759 break;
760 case 36:
761 HASH_SET_STRING(0x2D440400444AAAA4LL, m_mTagHooks,
762 mTagHooks, 9);
763 break;
764 case 37:
765 HASH_SET_STRING(0x51106CF09F297525LL, m_mIncludeCount,
766 mIncludeCount, 13);
767 break;
768 case 43:
769 HASH_SET_STRING(0x0E51B7CA30E388ABLL, m_mDTopen,
770 mDTopen, 7);
771 break;
772 case 47:
773 HASH_SET_STRING(0x3A5EAF7D0A0A62AFLL, m_mOutputType,
774 mOutputType, 11);
775 break;
776 case 48:
777 HASH_SET_STRING(0x6017CB24F50048B0LL, m_mInPre,
778 mInPre, 6);
779 break;
780 case 49:
781 HASH_SET_STRING(0x246A9B9AF3CF9F31LL, m_mMarkerIndex,
782 mMarkerIndex, 12);
783 break;
784 case 51:
785 HASH_SET_STRING(0x23ADD91853701033LL, m_mFunctionHooks,
786 mFunctionHooks, 14);
787 break;
788 case 53:
789 HASH_SET_STRING(0x0BF9A1BCA38BE1B5LL, m_mTplExpandCache,
790 mTplExpandCache, 15);
791 break;
792 case 65:
793 HASH_SET_STRING(0x4DDE8DD427CE5241LL, m_mRevisionId,
794 mRevisionId, 11);
795 break;
796 case 69:
797 HASH_SET_STRING(0x32D18CCCD8EDEA45LL, m_mDoubleUnderscores,
798 mDoubleUnderscores, 18);
799 break;
800 case 70:
801 HASH_SET_STRING(0x040877553522A8C6LL, m_mStripList,
802 mStripList, 10);
803 break;
804 case 77:
805 HASH_SET_STRING(0x48663D83DD673D4DLL, m_ot,
806 ot, 2);
807 break;
808 case 78:
809 HASH_SET_STRING(0x65F5C1EF7BB90DCELL, m_mRevisionTimestamp,
810 mRevisionTimestamp, 18);
811 break;
812 case 79:
813 HASH_SET_STRING(0x0521FE0F0419AF4FLL, m_mLinkHolders,
814 mLinkHolders, 12);
815 break;
816 case 80:
817 HASH_SET_STRING(0x7F7FE020D521DBD0LL, m_mOutput,
818 mOutput, 7);
819 break;
820 case 92:
821 HASH_SET_STRING(0x3231E133A048DBDCLL, m_mExpensiveFunctionCount,
822 mExpensiveFunctionCount, 23);
823 break;
824 case 94:
825 HASH_SET_STRING(0x22557F1A510D09DELL, m_mUrlProtocols,
826 mUrlProtocols, 13);
827 break;
828 case 97:
829 HASH_SET_STRING(0x0ACBB98FE340E8E1LL, m_mPreprocessor,
830 mPreprocessor, 13);
831 break;
832 case 98:
833 HASH_SET_STRING(0x1AA92728432688E2LL, m_mAutonumber,
834 mAutonumber, 11);
835 break;
836 case 102:
837 HASH_SET_STRING(0x62355D375852DB66LL, m_mLastSection,
838 mLastSection, 12);
839 break;
840 case 105:
841 HASH_SET_STRING(0x7207EA9A5BBFBF69LL, m_mStripState,
842 mStripState, 11);
843 HASH_SET_STRING(0x79AC63B0E96DC6E9LL, m_mOptions,
844 mOptions, 8);
845 break;
846 case 106:
847 HASH_SET_STRING(0x68120084F0DA35EALL, m_mFunctionTagHooks,
848 mFunctionTagHooks, 17);
849 HASH_SET_STRING(0x4C804C46307BF0EALL, m_mTitle,
850 mTitle, 6);
851 break;
852 case 107:
853 HASH_SET_STRING(0x1B2FB1E1A358AEEBLL, m_mVarCache,
854 mVarCache, 9);
855 HASH_SET_STRING(0x5EB895444FBC1E6BLL, m_mHeadings,
856 mHeadings, 9);
857 break;
858 case 108:
859 HASH_SET_STRING(0x00533A290681F3ECLL, m_mRevIdForTs,
860 mRevIdForTs, 11);
861 break;
862 case 114:
863 HASH_SET_STRING(0x1C236AA02D253072LL, m_mArgStack,
864 mArgStack, 9);
865 break;
866 case 115:
867 HASH_SET_STRING(0x60D43FEB822D1C73LL, m_mDefaultStripList,
868 mDefaultStripList, 17);
869 HASH_SET_STRING(0x2033A5C7AD350773LL, m_mDefaultSort,
870 mDefaultSort, 12);
871 break;
872 case 117:
873 HASH_SET_STRING(0x69D407F2FBC52275LL, m_mLinkID,
874 mLinkID, 7);
875 break;
876 case 119:
877 HASH_SET_STRING(0x627C20A98F61F877LL, m_mExtLinkBracketedRegex,
878 mExtLinkBracketedRegex, 22);
879 break;
880 case 125:
881 HASH_SET_STRING(0x43595FF2293B047DLL, m_mTplRedirCache,
882 mTplRedirCache, 14);
883 break;
884 default:
885 break;
887 return c_ObjectData::o_set(s, hash, v, forInit);
889 Variant &c_parser::o_lval(CStrRef s, int64 hash) {
890 if (hash < 0) hash = hash_string(s.data(), s.length());
891 switch (hash & 127) {
892 case 1:
893 HASH_RETURN_STRING(0x17B591196693E481LL, m_mPPNodeCount,
894 mPPNodeCount, 12);
895 break;
896 case 6:
897 HASH_RETURN_STRING(0x29A48DB6C6A9A306LL, m_mTransparentTagHooks,
898 mTransparentTagHooks, 20);
899 break;
900 case 13:
901 HASH_RETURN_STRING(0x3BE32D09F769180DLL, m_mIncludeSizes,
902 mIncludeSizes, 13);
903 break;
904 case 14:
905 HASH_RETURN_STRING(0x61D533DDE0E29D8ELL, m_mConf,
906 mConf, 5);
907 break;
908 case 15:
909 HASH_RETURN_STRING(0x078BB50DFD81B50FLL, m_mVariables,
910 mVariables, 10);
911 break;
912 case 18:
913 HASH_RETURN_STRING(0x54CDA5D215104C92LL, m_mImageParamsMagicArray,
914 mImageParamsMagicArray, 22);
915 break;
916 case 23:
917 HASH_RETURN_STRING(0x79B0EDF6D034C797LL, m_mFunctionSynonyms,
918 mFunctionSynonyms, 17);
919 break;
920 case 30:
921 HASH_RETURN_STRING(0x268656C76979C11ELL, m_mImageParams,
922 mImageParams, 12);
923 break;
924 case 32:
925 HASH_RETURN_STRING(0x1F6884F6D1BD5420LL, m_mTplDomCache,
926 mTplDomCache, 12);
927 break;
928 case 36:
929 HASH_RETURN_STRING(0x2D440400444AAAA4LL, m_mTagHooks,
930 mTagHooks, 9);
931 break;
932 case 37:
933 HASH_RETURN_STRING(0x51106CF09F297525LL, m_mIncludeCount,
934 mIncludeCount, 13);
935 break;
936 case 43:
937 HASH_RETURN_STRING(0x0E51B7CA30E388ABLL, m_mDTopen,
938 mDTopen, 7);
939 break;
940 case 47:
941 HASH_RETURN_STRING(0x3A5EAF7D0A0A62AFLL, m_mOutputType,
942 mOutputType, 11);
943 break;
944 case 48:
945 HASH_RETURN_STRING(0x6017CB24F50048B0LL, m_mInPre,
946 mInPre, 6);
947 break;
948 case 49:
949 HASH_RETURN_STRING(0x246A9B9AF3CF9F31LL, m_mMarkerIndex,
950 mMarkerIndex, 12);
951 break;
952 case 51:
953 HASH_RETURN_STRING(0x23ADD91853701033LL, m_mFunctionHooks,
954 mFunctionHooks, 14);
955 break;
956 case 53:
957 HASH_RETURN_STRING(0x0BF9A1BCA38BE1B5LL, m_mTplExpandCache,
958 mTplExpandCache, 15);
959 break;
960 case 65:
961 HASH_RETURN_STRING(0x4DDE8DD427CE5241LL, m_mRevisionId,
962 mRevisionId, 11);
963 break;
964 case 69:
965 HASH_RETURN_STRING(0x32D18CCCD8EDEA45LL, m_mDoubleUnderscores,
966 mDoubleUnderscores, 18);
967 break;
968 case 70:
969 HASH_RETURN_STRING(0x040877553522A8C6LL, m_mStripList,
970 mStripList, 10);
971 break;
972 case 77:
973 HASH_RETURN_STRING(0x48663D83DD673D4DLL, m_ot,
974 ot, 2);
975 break;
976 case 78:
977 HASH_RETURN_STRING(0x65F5C1EF7BB90DCELL, m_mRevisionTimestamp,
978 mRevisionTimestamp, 18);
979 break;
980 case 79:
981 HASH_RETURN_STRING(0x0521FE0F0419AF4FLL, m_mLinkHolders,
982 mLinkHolders, 12);
983 break;
984 case 80:
985 HASH_RETURN_STRING(0x7F7FE020D521DBD0LL, m_mOutput,
986 mOutput, 7);
987 break;
988 case 92:
989 HASH_RETURN_STRING(0x3231E133A048DBDCLL, m_mExpensiveFunctionCount,
990 mExpensiveFunctionCount, 23);
991 break;
992 case 94:
993 HASH_RETURN_STRING(0x22557F1A510D09DELL, m_mUrlProtocols,
994 mUrlProtocols, 13);
995 break;
996 case 97:
997 HASH_RETURN_STRING(0x0ACBB98FE340E8E1LL, m_mPreprocessor,
998 mPreprocessor, 13);
999 break;
1000 case 98:
1001 HASH_RETURN_STRING(0x1AA92728432688E2LL, m_mAutonumber,
1002 mAutonumber, 11);
1003 break;
1004 case 102:
1005 HASH_RETURN_STRING(0x62355D375852DB66LL, m_mLastSection,
1006 mLastSection, 12);
1007 break;
1008 case 105:
1009 HASH_RETURN_STRING(0x7207EA9A5BBFBF69LL, m_mStripState,
1010 mStripState, 11);
1011 HASH_RETURN_STRING(0x79AC63B0E96DC6E9LL, m_mOptions,
1012 mOptions, 8);
1013 break;
1014 case 106:
1015 HASH_RETURN_STRING(0x68120084F0DA35EALL, m_mFunctionTagHooks,
1016 mFunctionTagHooks, 17);
1017 HASH_RETURN_STRING(0x4C804C46307BF0EALL, m_mTitle,
1018 mTitle, 6);
1019 break;
1020 case 107:
1021 HASH_RETURN_STRING(0x1B2FB1E1A358AEEBLL, m_mVarCache,
1022 mVarCache, 9);
1023 HASH_RETURN_STRING(0x5EB895444FBC1E6BLL, m_mHeadings,
1024 mHeadings, 9);
1025 break;
1026 case 108:
1027 HASH_RETURN_STRING(0x00533A290681F3ECLL, m_mRevIdForTs,
1028 mRevIdForTs, 11);
1029 break;
1030 case 114:
1031 HASH_RETURN_STRING(0x1C236AA02D253072LL, m_mArgStack,
1032 mArgStack, 9);
1033 break;
1034 case 115:
1035 HASH_RETURN_STRING(0x60D43FEB822D1C73LL, m_mDefaultStripList,
1036 mDefaultStripList, 17);
1037 HASH_RETURN_STRING(0x2033A5C7AD350773LL, m_mDefaultSort,
1038 mDefaultSort, 12);
1039 break;
1040 case 117:
1041 HASH_RETURN_STRING(0x69D407F2FBC52275LL, m_mLinkID,
1042 mLinkID, 7);
1043 break;
1044 case 119:
1045 HASH_RETURN_STRING(0x627C20A98F61F877LL, m_mExtLinkBracketedRegex,
1046 mExtLinkBracketedRegex, 22);
1047 break;
1048 case 125:
1049 HASH_RETURN_STRING(0x43595FF2293B047DLL, m_mTplRedirCache,
1050 mTplRedirCache, 14);
1051 break;
1052 default:
1053 break;
1055 return c_ObjectData::o_lval(s, hash);
1057 Variant c_parser::os_constant(const char *s) {
1058 int64 hash = hash_string(s);
1059 switch (hash & 63) {
1060 case 0:
1061 HASH_RETURN(0x7A3DEE794AAE0080LL, q_parser_COLON_STATE_COMMENTDASHDASH, COLON_STATE_COMMENTDASHDASH);
1062 break;
1063 case 3:
1064 HASH_RETURN(0x39454943C9F77183LL, q_parser_SFH_NO_HASH, SFH_NO_HASH);
1065 break;
1066 case 8:
1067 HASH_RETURN(0x53D3618CFDD02A88LL, q_parser_COLON_STATE_CLOSETAG, COLON_STATE_CLOSETAG);
1068 HASH_RETURN(0x6183A19A97D054C8LL, q_parser_PTD_FOR_INCLUSION, PTD_FOR_INCLUSION);
1069 break;
1070 case 12:
1071 HASH_RETURN(0x7C7C96A77F65158CLL, q_parser_SFH_OBJECT_ARGS, SFH_OBJECT_ARGS);
1072 break;
1073 case 13:
1074 HASH_RETURN(0x63DD546A4381040DLL, q_parser_OT_MSG, OT_MSG);
1075 break;
1076 case 21:
1077 HASH_RETURN(0x44687B3BB0AA9915LL, q_parser_COLON_STATE_TAGSTART, COLON_STATE_TAGSTART);
1078 break;
1079 case 24:
1080 HASH_RETURN(0x5E2B4F68FF786898LL, q_parser_OT_WIKI, OT_WIKI);
1081 break;
1082 case 25:
1083 HASH_RETURN(0x3299493D3953AF19LL, q_parser_MARKER_SUFFIX, MARKER_SUFFIX);
1084 break;
1085 case 27:
1086 HASH_RETURN(0x4835CF75ECA1675BLL, q_parser_COLON_STATE_TAG, COLON_STATE_TAG);
1087 break;
1088 case 38:
1089 HASH_RETURN(0x4585610E25B87326LL, q_parser_COLON_STATE_TAGSLASH, COLON_STATE_TAGSLASH);
1090 break;
1091 case 40:
1092 HASH_RETURN(0x753F5E8DD64BF868LL, q_parser_COLON_STATE_COMMENTDASH, COLON_STATE_COMMENTDASH);
1093 break;
1094 case 42:
1095 HASH_RETURN(0x5AE41239FF63D86ALL, q_parser_VERSION, VERSION);
1096 HASH_RETURN(0x53D1BB8BE4436E6ALL, q_parser_EXT_IMAGE_REGEX, EXT_IMAGE_REGEX);
1097 break;
1098 case 45:
1099 HASH_RETURN(0x5DADFDAB77C589ADLL, q_parser_COLON_STATE_COMMENT, COLON_STATE_COMMENT);
1100 break;
1101 case 48:
1102 HASH_RETURN(0x4C1D0C36632BDF70LL, q_parser_OT_HTML, OT_HTML);
1103 break;
1104 case 50:
1105 HASH_RETURN(0x38F0CBBBEA7F23F2LL, q_parser_COLON_STATE_TEXT, COLON_STATE_TEXT);
1106 break;
1107 case 56:
1108 HASH_RETURN(0x63F95DCAC9867D78LL, q_parser_EXT_LINK_URL_CLASS, EXT_LINK_URL_CLASS);
1109 break;
1110 case 58:
1111 HASH_RETURN(0x45EBC8EBC4C81F3ALL, q_parser_OT_PREPROCESS, OT_PREPROCESS);
1112 break;
1113 default:
1114 break;
1116 return c_ObjectData::os_constant(s);
1118 IMPLEMENT_CLASS(parser)
1119 ObjectData *c_parser::create(Variant v_conf // = ScalarArrays::sa_[0]
1121 init();
1122 t___construct(v_conf);
1123 return this;
1125 ObjectData *c_parser::dynCreate(CArrRef params, bool init /* = true */) {
1126 if (init) {
1127 int count = params.size();
1128 if (count <= 0) return (create());
1129 return (create(params.rvalAt(0)));
1130 } else return this;
1132 void c_parser::dynConstruct(CArrRef params) {
1133 int count = params.size();
1134 if (count <= 0) (t___construct());
1135 (t___construct(params.rvalAt(0)));
1137 void c_parser::destruct() {
1138 if (!inCtorDtor()) {
1139 incRefCount();
1140 try {
1141 t___destruct();
1142 } catch (...) { handle_destructor_exception();}
1145 ObjectData *c_parser::cloneImpl() {
1146 c_parser *obj = NEW(c_parser)();
1147 cloneSet(obj);
1148 return obj;
1150 void c_parser::cloneSet(c_parser *clone) {
1151 clone->m_mTagHooks = m_mTagHooks.isReferenced() ? ref(m_mTagHooks) : m_mTagHooks;
1152 clone->m_mTransparentTagHooks = m_mTransparentTagHooks.isReferenced() ? ref(m_mTransparentTagHooks) : m_mTransparentTagHooks;
1153 clone->m_mFunctionHooks = m_mFunctionHooks.isReferenced() ? ref(m_mFunctionHooks) : m_mFunctionHooks;
1154 clone->m_mFunctionSynonyms = m_mFunctionSynonyms.isReferenced() ? ref(m_mFunctionSynonyms) : m_mFunctionSynonyms;
1155 clone->m_mVariables = m_mVariables.isReferenced() ? ref(m_mVariables) : m_mVariables;
1156 clone->m_mImageParams = m_mImageParams.isReferenced() ? ref(m_mImageParams) : m_mImageParams;
1157 clone->m_mImageParamsMagicArray = m_mImageParamsMagicArray.isReferenced() ? ref(m_mImageParamsMagicArray) : m_mImageParamsMagicArray;
1158 clone->m_mStripList = m_mStripList.isReferenced() ? ref(m_mStripList) : m_mStripList;
1159 clone->m_mMarkerIndex = m_mMarkerIndex.isReferenced() ? ref(m_mMarkerIndex) : m_mMarkerIndex;
1160 clone->m_mPreprocessor = m_mPreprocessor.isReferenced() ? ref(m_mPreprocessor) : m_mPreprocessor;
1161 clone->m_mExtLinkBracketedRegex = m_mExtLinkBracketedRegex.isReferenced() ? ref(m_mExtLinkBracketedRegex) : m_mExtLinkBracketedRegex;
1162 clone->m_mUrlProtocols = m_mUrlProtocols.isReferenced() ? ref(m_mUrlProtocols) : m_mUrlProtocols;
1163 clone->m_mDefaultStripList = m_mDefaultStripList.isReferenced() ? ref(m_mDefaultStripList) : m_mDefaultStripList;
1164 clone->m_mVarCache = m_mVarCache.isReferenced() ? ref(m_mVarCache) : m_mVarCache;
1165 clone->m_mConf = m_mConf.isReferenced() ? ref(m_mConf) : m_mConf;
1166 clone->m_mFunctionTagHooks = m_mFunctionTagHooks.isReferenced() ? ref(m_mFunctionTagHooks) : m_mFunctionTagHooks;
1167 clone->m_mOutput = m_mOutput.isReferenced() ? ref(m_mOutput) : m_mOutput;
1168 clone->m_mAutonumber = m_mAutonumber.isReferenced() ? ref(m_mAutonumber) : m_mAutonumber;
1169 clone->m_mDTopen = m_mDTopen.isReferenced() ? ref(m_mDTopen) : m_mDTopen;
1170 clone->m_mStripState = m_mStripState.isReferenced() ? ref(m_mStripState) : m_mStripState;
1171 clone->m_mIncludeCount = m_mIncludeCount.isReferenced() ? ref(m_mIncludeCount) : m_mIncludeCount;
1172 clone->m_mArgStack = m_mArgStack.isReferenced() ? ref(m_mArgStack) : m_mArgStack;
1173 clone->m_mLastSection = m_mLastSection.isReferenced() ? ref(m_mLastSection) : m_mLastSection;
1174 clone->m_mInPre = m_mInPre.isReferenced() ? ref(m_mInPre) : m_mInPre;
1175 clone->m_mLinkHolders = m_mLinkHolders.isReferenced() ? ref(m_mLinkHolders) : m_mLinkHolders;
1176 clone->m_mLinkID = m_mLinkID.isReferenced() ? ref(m_mLinkID) : m_mLinkID;
1177 clone->m_mIncludeSizes = m_mIncludeSizes.isReferenced() ? ref(m_mIncludeSizes) : m_mIncludeSizes;
1178 clone->m_mPPNodeCount = m_mPPNodeCount.isReferenced() ? ref(m_mPPNodeCount) : m_mPPNodeCount;
1179 clone->m_mDefaultSort = m_mDefaultSort.isReferenced() ? ref(m_mDefaultSort) : m_mDefaultSort;
1180 clone->m_mTplExpandCache = m_mTplExpandCache.isReferenced() ? ref(m_mTplExpandCache) : m_mTplExpandCache;
1181 clone->m_mTplRedirCache = m_mTplRedirCache.isReferenced() ? ref(m_mTplRedirCache) : m_mTplRedirCache;
1182 clone->m_mTplDomCache = m_mTplDomCache.isReferenced() ? ref(m_mTplDomCache) : m_mTplDomCache;
1183 clone->m_mHeadings = m_mHeadings.isReferenced() ? ref(m_mHeadings) : m_mHeadings;
1184 clone->m_mDoubleUnderscores = m_mDoubleUnderscores.isReferenced() ? ref(m_mDoubleUnderscores) : m_mDoubleUnderscores;
1185 clone->m_mExpensiveFunctionCount = m_mExpensiveFunctionCount.isReferenced() ? ref(m_mExpensiveFunctionCount) : m_mExpensiveFunctionCount;
1186 clone->m_mOptions = m_mOptions.isReferenced() ? ref(m_mOptions) : m_mOptions;
1187 clone->m_mTitle = m_mTitle.isReferenced() ? ref(m_mTitle) : m_mTitle;
1188 clone->m_mOutputType = m_mOutputType.isReferenced() ? ref(m_mOutputType) : m_mOutputType;
1189 clone->m_ot = m_ot.isReferenced() ? ref(m_ot) : m_ot;
1190 clone->m_mRevisionId = m_mRevisionId.isReferenced() ? ref(m_mRevisionId) : m_mRevisionId;
1191 clone->m_mRevisionTimestamp = m_mRevisionTimestamp.isReferenced() ? ref(m_mRevisionTimestamp) : m_mRevisionTimestamp;
1192 clone->m_mRevIdForTs = m_mRevIdForTs.isReferenced() ? ref(m_mRevIdForTs) : m_mRevIdForTs;
1193 ObjectData::cloneSet(clone);
1195 Variant c_parser::o_invoke(const char *s, CArrRef params, int64 hash, bool fatal) {
1196 if (hash < 0) hash = hash_string_i(s);
1197 switch (hash & 63) {
1198 case 5:
1199 HASH_GUARD(0x04CA531DD3FB2705LL, attributestripcallback) {
1200 int count = params.size();
1201 if (count <= 1) return (t_attributestripcallback(ref(const_cast<Array&>(params).lvalAt(0))));
1202 return (t_attributestripcallback(ref(const_cast<Array&>(params).lvalAt(0)), params.rvalAt(1)));
1204 HASH_GUARD(0x298D74DE5F3B8B45LL, magiclinkcallback) {
1205 return (t_magiclinkcallback(params.rvalAt(0)));
1207 break;
1208 case 17:
1209 HASH_GUARD(0x333DE406BD9436D1LL, argsubstitution) {
1210 return (t_argsubstitution(params.rvalAt(0), params.rvalAt(1)));
1212 break;
1213 case 19:
1214 HASH_GUARD(0x6159C1C3A582E4D3LL, incrementexpensivefunctioncount) {
1215 return (t_incrementexpensivefunctioncount());
1217 break;
1218 case 20:
1219 HASH_GUARD(0x07B2DE5DC3BC16D4LL, setfunctionhook) {
1220 int count = params.size();
1221 if (count <= 2) return (t_setfunctionhook(params.rvalAt(0), params.rvalAt(1)));
1222 return (t_setfunctionhook(params.rvalAt(0), params.rvalAt(1), params.rvalAt(2)));
1224 HASH_GUARD(0x4AC114BB40027BD4LL, renderpretag) {
1225 return (t_renderpretag(params.rvalAt(0), params.rvalAt(1)));
1227 break;
1228 case 23:
1229 HASH_GUARD(0x7519C1FAF33D7857LL, getoutput) {
1230 return (t_getoutput());
1232 break;
1233 case 24:
1234 HASH_GUARD(0x1919E33A3EB87298LL, markerskipcallback) {
1235 return (t_markerskipcallback(params.rvalAt(0), params.rvalAt(1)));
1237 break;
1238 case 28:
1239 HASH_GUARD(0x6F53A1945EB13C5CLL, replaceunusualescapescallback) {
1240 return (ti_replaceunusualescapescallback(o_getClassName(), params.rvalAt(0)));
1242 break;
1243 case 30:
1244 HASH_GUARD(0x565D9E5A4801A09ELL, getcustomdefaultsort) {
1245 return (t_getcustomdefaultsort());
1247 break;
1248 case 31:
1249 HASH_GUARD(0x0D31D0AC229C615FLL, __construct) {
1250 int count = params.size();
1251 if (count <= 0) return (t___construct(), null);
1252 return (t___construct(params.rvalAt(0)), null);
1254 break;
1255 case 34:
1256 HASH_GUARD(0x0A4CA37F020D70E2LL, insertstripitem) {
1257 return (t_insertstripitem(params.rvalAt(0)));
1259 break;
1260 case 37:
1261 HASH_GUARD(0x443229B8642123A5LL, statelessfetchtemplate) {
1262 int count = params.size();
1263 if (count <= 1) return (ti_statelessfetchtemplate(o_getClassName(), params.rvalAt(0)));
1264 return (ti_statelessfetchtemplate(o_getClassName(), params.rvalAt(0), params.rvalAt(1)));
1266 break;
1267 case 39:
1268 HASH_GUARD(0x6EFD1FF8956DBC27LL, nextlinkid) {
1269 return (t_nextlinkid());
1271 break;
1272 case 41:
1273 HASH_GUARD(0x7D371E851A4798E9LL, extensionsubstitution) {
1274 return (t_extensionsubstitution(params.rvalAt(0), params.rvalAt(1)));
1276 HASH_GUARD(0x2374179DF576FCA9LL, unstripnowiki) {
1277 return (t_unstripnowiki(params.rvalAt(0), params.rvalAt(1)));
1279 break;
1280 case 43:
1281 HASH_GUARD(0x132FD54E0D0A99EBLL, title) {
1282 int count = params.size();
1283 if (count <= 0) return (t_title());
1284 return (t_title(params.rvalAt(0)));
1286 break;
1287 case 47:
1288 HASH_GUARD(0x3BBB4BCA49D08AEFLL, getfunctionlang) {
1289 return (t_getfunctionlang());
1291 HASH_GUARD(0x7E4180EEBEB7A62FLL, doquotes) {
1292 return (t_doquotes(params.rvalAt(0)));
1294 break;
1295 case 50:
1296 HASH_GUARD(0x0FE91E46B43AEF32LL, setdefaultsort) {
1297 return (t_setdefaultsort(params.rvalAt(0)), null);
1299 break;
1300 case 51:
1301 HASH_GUARD(0x7F974836AACC1EF3LL, __destruct) {
1302 return (t___destruct());
1304 break;
1305 case 53:
1306 HASH_GUARD(0x151B6C9D84BBC1F5LL, getstriplist) {
1307 return (t_getstriplist());
1309 HASH_GUARD(0x241A6011A10C7EF5LL, firstcallinit) {
1310 return (t_firstcallinit(), null);
1312 break;
1313 case 54:
1314 HASH_GUARD(0x37AA0C66F5C36136LL, replaceinternallinks2) {
1315 return (t_replaceinternallinks2(ref(const_cast<Array&>(params).lvalAt(0))));
1317 break;
1318 case 55:
1319 HASH_GUARD(0x392E383BDD5B10F7LL, bracesubstitution) {
1320 return (t_bracesubstitution(params.rvalAt(0), params.rvalAt(1)));
1322 break;
1323 case 57:
1324 HASH_GUARD(0x2040B36587CE56F9LL, getoptions) {
1325 return (t_getoptions());
1327 break;
1328 case 58:
1329 HASH_GUARD(0x655F4A045CA8303ALL, replacevariables) {
1330 int count = params.size();
1331 if (count <= 1) return (t_replacevariables(params.rvalAt(0)));
1332 if (count == 2) return (t_replacevariables(params.rvalAt(0), params.rvalAt(1)));
1333 return (t_replacevariables(params.rvalAt(0), params.rvalAt(1), params.rvalAt(2)));
1335 HASH_GUARD(0x39ADF3C1E6A55D3ALL, getdefaultsort) {
1336 return (t_getdefaultsort());
1338 HASH_GUARD(0x524D522D7D9607FALL, uniqprefix) {
1339 return (t_uniqprefix());
1341 break;
1342 default:
1343 break;
1345 return c_ObjectData::o_invoke(s, params, hash, fatal);
1347 Variant c_parser::o_invoke_few_args(const char *s, int64 hash, int count, CVarRef a0, CVarRef a1, CVarRef a2, CVarRef a3, CVarRef a4, CVarRef a5) {
1348 if (hash < 0) hash = hash_string_i(s);
1349 switch (hash & 63) {
1350 case 5:
1351 HASH_GUARD(0x04CA531DD3FB2705LL, attributestripcallback) {
1352 if (count <= 1) return (t_attributestripcallback(ref(a0)));
1353 return (t_attributestripcallback(ref(a0), a1));
1355 HASH_GUARD(0x298D74DE5F3B8B45LL, magiclinkcallback) {
1356 return (t_magiclinkcallback(a0));
1358 break;
1359 case 17:
1360 HASH_GUARD(0x333DE406BD9436D1LL, argsubstitution) {
1361 return (t_argsubstitution(a0, a1));
1363 break;
1364 case 19:
1365 HASH_GUARD(0x6159C1C3A582E4D3LL, incrementexpensivefunctioncount) {
1366 return (t_incrementexpensivefunctioncount());
1368 break;
1369 case 20:
1370 HASH_GUARD(0x07B2DE5DC3BC16D4LL, setfunctionhook) {
1371 if (count <= 2) return (t_setfunctionhook(a0, a1));
1372 return (t_setfunctionhook(a0, a1, a2));
1374 HASH_GUARD(0x4AC114BB40027BD4LL, renderpretag) {
1375 return (t_renderpretag(a0, a1));
1377 break;
1378 case 23:
1379 HASH_GUARD(0x7519C1FAF33D7857LL, getoutput) {
1380 return (t_getoutput());
1382 break;
1383 case 24:
1384 HASH_GUARD(0x1919E33A3EB87298LL, markerskipcallback) {
1385 return (t_markerskipcallback(a0, a1));
1387 break;
1388 case 28:
1389 HASH_GUARD(0x6F53A1945EB13C5CLL, replaceunusualescapescallback) {
1390 return (ti_replaceunusualescapescallback(o_getClassName(), a0));
1392 break;
1393 case 30:
1394 HASH_GUARD(0x565D9E5A4801A09ELL, getcustomdefaultsort) {
1395 return (t_getcustomdefaultsort());
1397 break;
1398 case 31:
1399 HASH_GUARD(0x0D31D0AC229C615FLL, __construct) {
1400 if (count <= 0) return (t___construct(), null);
1401 return (t___construct(a0), null);
1403 break;
1404 case 34:
1405 HASH_GUARD(0x0A4CA37F020D70E2LL, insertstripitem) {
1406 return (t_insertstripitem(a0));
1408 break;
1409 case 37:
1410 HASH_GUARD(0x443229B8642123A5LL, statelessfetchtemplate) {
1411 if (count <= 1) return (ti_statelessfetchtemplate(o_getClassName(), a0));
1412 return (ti_statelessfetchtemplate(o_getClassName(), a0, a1));
1414 break;
1415 case 39:
1416 HASH_GUARD(0x6EFD1FF8956DBC27LL, nextlinkid) {
1417 return (t_nextlinkid());
1419 break;
1420 case 41:
1421 HASH_GUARD(0x7D371E851A4798E9LL, extensionsubstitution) {
1422 return (t_extensionsubstitution(a0, a1));
1424 HASH_GUARD(0x2374179DF576FCA9LL, unstripnowiki) {
1425 return (t_unstripnowiki(a0, a1));
1427 break;
1428 case 43:
1429 HASH_GUARD(0x132FD54E0D0A99EBLL, title) {
1430 if (count <= 0) return (t_title());
1431 return (t_title(a0));
1433 break;
1434 case 47:
1435 HASH_GUARD(0x3BBB4BCA49D08AEFLL, getfunctionlang) {
1436 return (t_getfunctionlang());
1438 HASH_GUARD(0x7E4180EEBEB7A62FLL, doquotes) {
1439 return (t_doquotes(a0));
1441 break;
1442 case 50:
1443 HASH_GUARD(0x0FE91E46B43AEF32LL, setdefaultsort) {
1444 return (t_setdefaultsort(a0), null);
1446 break;
1447 case 51:
1448 HASH_GUARD(0x7F974836AACC1EF3LL, __destruct) {
1449 return (t___destruct());
1451 break;
1452 case 53:
1453 HASH_GUARD(0x151B6C9D84BBC1F5LL, getstriplist) {
1454 return (t_getstriplist());
1456 HASH_GUARD(0x241A6011A10C7EF5LL, firstcallinit) {
1457 return (t_firstcallinit(), null);
1459 break;
1460 case 54:
1461 HASH_GUARD(0x37AA0C66F5C36136LL, replaceinternallinks2) {
1462 return (t_replaceinternallinks2(ref(a0)));
1464 break;
1465 case 55:
1466 HASH_GUARD(0x392E383BDD5B10F7LL, bracesubstitution) {
1467 return (t_bracesubstitution(a0, a1));
1469 break;
1470 case 57:
1471 HASH_GUARD(0x2040B36587CE56F9LL, getoptions) {
1472 return (t_getoptions());
1474 break;
1475 case 58:
1476 HASH_GUARD(0x655F4A045CA8303ALL, replacevariables) {
1477 if (count <= 1) return (t_replacevariables(a0));
1478 if (count == 2) return (t_replacevariables(a0, a1));
1479 return (t_replacevariables(a0, a1, a2));
1481 HASH_GUARD(0x39ADF3C1E6A55D3ALL, getdefaultsort) {
1482 return (t_getdefaultsort());
1484 HASH_GUARD(0x524D522D7D9607FALL, uniqprefix) {
1485 return (t_uniqprefix());
1487 break;
1488 default:
1489 break;
1491 return c_ObjectData::o_invoke_few_args(s, hash, count, a0, a1, a2, a3, a4, a5);
1493 Variant c_parser::os_invoke(const char *c, const char *s, CArrRef params, int64 hash, bool fatal) {
1494 if (hash < 0) hash = hash_string_i(s);
1495 switch (hash & 3) {
1496 case 0:
1497 HASH_GUARD(0x6F53A1945EB13C5CLL, replaceunusualescapescallback) {
1498 return (ti_replaceunusualescapescallback(c, params.rvalAt(0)));
1500 break;
1501 case 1:
1502 HASH_GUARD(0x443229B8642123A5LL, statelessfetchtemplate) {
1503 int count = params.size();
1504 if (count <= 1) return (ti_statelessfetchtemplate(c, params.rvalAt(0)));
1505 return (ti_statelessfetchtemplate(c, params.rvalAt(0), params.rvalAt(1)));
1507 break;
1508 default:
1509 break;
1511 return c_ObjectData::os_invoke(c, s, params, hash, fatal);
1513 Variant cw_parser$os_get(const char *s) {
1514 return c_parser::os_get(s, -1);
1516 Variant &cw_parser$os_lval(const char *s) {
1517 return c_parser::os_lval(s, -1);
1519 Variant cw_parser$os_constant(const char *s) {
1520 return c_parser::os_constant(s);
1522 Variant cw_parser$os_invoke(const char *c, const char *s, CArrRef params, bool fatal /* = true */) {
1523 return c_parser::os_invoke(c, s, params, -1, fatal);
1525 void c_parser::init() {
1526 m_mTagHooks = null;
1527 m_mTransparentTagHooks = null;
1528 m_mFunctionHooks = null;
1529 m_mFunctionSynonyms = null;
1530 m_mVariables = null;
1531 m_mImageParams = null;
1532 m_mImageParamsMagicArray = null;
1533 m_mStripList = null;
1534 m_mMarkerIndex = null;
1535 m_mPreprocessor = null;
1536 m_mExtLinkBracketedRegex = null;
1537 m_mUrlProtocols = null;
1538 m_mDefaultStripList = null;
1539 m_mVarCache = null;
1540 m_mConf = null;
1541 m_mFunctionTagHooks = null;
1542 m_mOutput = null;
1543 m_mAutonumber = null;
1544 m_mDTopen = null;
1545 m_mStripState = null;
1546 m_mIncludeCount = null;
1547 m_mArgStack = null;
1548 m_mLastSection = null;
1549 m_mInPre = null;
1550 m_mLinkHolders = null;
1551 m_mLinkID = null;
1552 m_mIncludeSizes = null;
1553 m_mPPNodeCount = null;
1554 m_mDefaultSort = null;
1555 m_mTplExpandCache = null;
1556 m_mTplRedirCache = null;
1557 m_mTplDomCache = null;
1558 m_mHeadings = null;
1559 m_mDoubleUnderscores = null;
1560 m_mExpensiveFunctionCount = null;
1561 m_mOptions = null;
1562 m_mTitle = null;
1563 m_mOutputType = null;
1564 m_ot = null;
1565 m_mRevisionId = null;
1566 m_mRevisionTimestamp = null;
1567 m_mRevIdForTs = null;
1569 /* SRC: Parser.php line 125 */
1570 void c_parser::t___construct(Variant v_conf // = ScalarArrays::sa_[0]
1572 INSTANCE_METHOD_INJECTION(Parser, Parser::__construct);
1573 bool oldInCtor = gasInCtor(true);
1574 Variant eo_0;
1575 Variant eo_1;
1576 Variant eo_2;
1577 (m_mConf = v_conf);
1578 (m_mTagHooks = ScalarArrays::sa_[0]);
1579 (m_mTransparentTagHooks = ScalarArrays::sa_[0]);
1580 (m_mFunctionHooks = ScalarArrays::sa_[0]);
1581 (m_mFunctionTagHooks = ScalarArrays::sa_[0]);
1582 (m_mFunctionSynonyms = ScalarArrays::sa_[14]);
1583 (m_mDefaultStripList = (m_mStripList = ScalarArrays::sa_[15]));
1584 (m_mUrlProtocols = LINE(133,invoke_failed("wfurlprotocols", Array(), 0x00000000BD4BD4FELL)));
1585 (m_mExtLinkBracketedRegex = LINE(135,(assignCallTemp(eo_1, toString(LINE(134,invoke_failed("wfurlprotocols", Array(), 0x00000000BD4BD4FELL)))),concat3("/\\[(\\b(", eo_1, ")[^][<>\"\\x00-\\x20\\x7F]+) *([^\\]\\x0a\\x0d]*\?)\\]/S"))));
1586 (m_mVarCache = ScalarArrays::sa_[0]);
1587 if (isset(v_conf, "preprocessorClass", 0x6C85AB6061598171LL)) {
1588 (o_lval("mPreprocessorClass", 0x6E5AA590C9CC679ALL) = v_conf.rvalAt("preprocessorClass", 0x6C85AB6061598171LL));
1590 else if (LINE(139,x_extension_loaded("domxml"))) {
1591 LINE(141,invoke_failed("wfdebug", Array(ArrayInit(1).set(0, "Warning: you have the obsolete domxml extension for PHP. Please remove it!\n").create()), 0x00000000E441E905LL));
1592 (o_lval("mPreprocessorClass", 0x6E5AA590C9CC679ALL) = "Preprocessor_Hash");
1594 else if (LINE(143,x_extension_loaded("dom"))) {
1595 (o_lval("mPreprocessorClass", 0x6E5AA590C9CC679ALL) = "Preprocessor_DOM");
1597 else {
1598 (o_lval("mPreprocessorClass", 0x6E5AA590C9CC679ALL) = "Preprocessor_Hash");
1600 (m_mMarkerIndex = 0LL);
1601 (o_lval("mFirstCall", 0x017DA31DE741B5E9LL) = true);
1602 gasInCtor(oldInCtor);
1603 } /* function */
1604 /* SRC: Parser.php line 155 */
1605 Variant c_parser::t___destruct() {
1606 INSTANCE_METHOD_INJECTION(Parser, Parser::__destruct);
1607 setInDtor();
1608 DECLARE_GLOBAL_VARIABLES(g);
1609 Primitive v_name = 0;
1610 Variant v_value;
1612 if (t___isset("mLinkHolders")) {
1613 LINE(157,m_mLinkHolders.o_invoke_few_args("__destruct", 0x7F974836AACC1EF3LL, 0));
1616 LOOP_COUNTER(4);
1617 Variant map5 = ((Object)(this));
1618 for (ArrayIterPtr iter6 = map5.begin("parser"); !iter6->end(); iter6->next()) {
1619 LOOP_COUNTER_CHECK(4);
1620 v_value = iter6->second();
1621 v_name = iter6->first();
1623 t___unset(toString(v_name));
1627 return null;
1628 } /* function */
1629 /* SRC: Parser.php line 167 */
1630 void c_parser::t_firstcallinit() {
1631 INSTANCE_METHOD_INJECTION(Parser, Parser::firstCallInit);
1632 if (!(toBoolean(o_get("mFirstCall", 0x017DA31DE741B5E9LL)))) {
1633 return;
1635 (o_lval("mFirstCall", 0x017DA31DE741B5E9LL) = false);
1636 LINE(173,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::firstCallInit").create()), 0x0000000075359BAFLL));
1637 LINE(175,t_sethook("pre", Array(ArrayInit(2).set(0, ((Object)(this))).set(1, "renderPreTag").create())));
1638 LINE(176,c_coreparserfunctions::t_register(((Object)(this))));
1639 LINE(177,t_initialisevariables());
1640 LINE(179,invoke_failed("wfrunhooks", Array(ArrayInit(2).set(0, "ParserFirstCallInit").set(1, Array(ArrayInit(1).setRef(0, ref(this)).create())).create()), 0x00000000787A96B2LL));
1641 LINE(180,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::firstCallInit").create()), 0x00000000B599F276LL));
1642 } /* function */
1643 /* SRC: Parser.php line 188 */
1644 void c_parser::t_clearstate() {
1645 INSTANCE_METHOD_INJECTION(Parser, Parser::clearState);
1646 LINE(189,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::clearState").create()), 0x0000000075359BAFLL));
1647 if (toBoolean(o_get("mFirstCall", 0x017DA31DE741B5E9LL))) {
1648 LINE(191,o_root_invoke_few_args("firstCallInit", 0x241A6011A10C7EF5LL, 0));
1650 (m_mOutput = ((Object)(LINE(193,p_parseroutput(p_parseroutput(NEWOBJ(c_parseroutput)())->create())))));
1651 (m_mAutonumber = 0LL);
1652 (m_mLastSection = "");
1653 (m_mDTopen = false);
1654 (m_mIncludeCount = ScalarArrays::sa_[0]);
1655 (m_mStripState = ((Object)(LINE(198,p_stripstate(p_stripstate(NEWOBJ(c_stripstate)())->create())))));
1656 (m_mArgStack = false);
1657 (m_mInPre = false);
1658 (m_mLinkHolders = ((Object)(LINE(201,p_linkholderarray(p_linkholderarray(NEWOBJ(c_linkholderarray)())->create(((Object)(this))))))));
1659 (m_mLinkID = 0LL);
1660 (m_mRevisionTimestamp = (m_mRevisionId = null));
1661 (m_mVarCache = ScalarArrays::sa_[0]);
1662 (o_lval("mUniqPrefix", 0x22D00FA247E8311DLL) = concat("\177UNIQ", LINE(218,c_parser::t_getrandomstring())));
1663 (m_mTplExpandCache = (m_mTplRedirCache = (m_mTplDomCache = ScalarArrays::sa_[0])));
1664 (o_lval("mShowToc", 0x673E52F417D0192CLL) = true);
1665 (o_lval("mForceTocPosition", 0x00520DD93AF13A69LL) = false);
1666 (m_mIncludeSizes = ScalarArrays::sa_[16]);
1667 (m_mPPNodeCount = 0LL);
1668 (m_mDefaultSort = false);
1669 (m_mHeadings = ScalarArrays::sa_[0]);
1670 (m_mDoubleUnderscores = ScalarArrays::sa_[0]);
1671 (m_mExpensiveFunctionCount = 0LL);
1672 if (t___isset("mPreprocessor") && !same(m_mPreprocessor.o_get("parser", 0x18A8B9D71D4F2D02LL), ((Object)(this)))) {
1673 (m_mPreprocessor = null);
1675 LINE(241,invoke_failed("wfrunhooks", Array(ArrayInit(2).set(0, "ParserClearState").set(1, Array(ArrayInit(1).setRef(0, ref(this)).create())).create()), 0x00000000787A96B2LL));
1676 LINE(242,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::clearState").create()), 0x00000000B599F276LL));
1677 } /* function */
1678 /* SRC: Parser.php line 245 */
1679 void c_parser::t_setoutputtype(CVarRef v_ot) {
1680 INSTANCE_METHOD_INJECTION(Parser, Parser::setOutputType);
1681 (m_mOutputType = v_ot);
1682 (m_ot = Array(ArrayInit(3).set(0, "html", equal(v_ot, 1LL /* parser::OT_HTML */), 0x5CA91C812230855DLL).set(1, "wiki", equal(v_ot, 2LL /* parser::OT_WIKI */), 0x24648D2BCD794D21LL).set(2, "pre", equal(v_ot, 3LL /* parser::OT_PREPROCESS */), 0x633242EDD179FBACLL).create()));
1683 } /* function */
1684 /* SRC: Parser.php line 258 */
1685 void c_parser::t_settitle(Variant v_t) {
1686 INSTANCE_METHOD_INJECTION(Parser, Parser::setTitle);
1687 if (!(toBoolean(v_t)) || instanceOf(v_t, "FakeTitle")) {
1688 (v_t = LINE(260,throw_fatal("unknown class title", ((void*)NULL))));
1690 if (!same(LINE(262,x_strval(v_t.o_invoke_few_args("getFragment", 0x2354C40909546D77LL, 0))), "")) {
1691 (m_mTitle = f_clone(toObject(v_t)));
1692 LINE(265,m_mTitle.o_invoke_few_args("setFragment", 0x11122CE04748A038LL, 1, ""));
1694 else {
1695 (m_mTitle = v_t);
1697 } /* function */
1698 /* SRC: Parser.php line 276 */
1699 Variant c_parser::t_uniqprefix() {
1700 INSTANCE_METHOD_INJECTION(Parser, Parser::uniqPrefix);
1701 if (!(t___isset("mUniqPrefix"))) {
1702 return "";
1704 return o_get("mUniqPrefix", 0x22D00FA247E8311DLL);
1705 } /* function */
1706 /* SRC: Parser.php line 301 */
1707 Variant c_parser::t_parse(Variant v_text, CVarRef v_title, p_parseroptions v_options, bool v_linestart // = true
1708 , bool v_clearState // = true
1709 , CVarRef v_revid // = null_variant
1711 INSTANCE_METHOD_INJECTION(Parser, Parser::parse);
1712 Variant eo_0;
1713 Variant eo_1;
1714 Variant eo_2;
1715 Variant eo_3;
1716 Variant eo_4;
1717 DECLARE_GLOBAL_VARIABLES(g);
1718 Variant &gv_wgUseTidy __attribute__((__unused__)) = g->GV(wgUseTidy);
1719 Variant &gv_wgAlwaysUseTidy __attribute__((__unused__)) = g->GV(wgAlwaysUseTidy);
1720 Variant &gv_wgContLang __attribute__((__unused__)) = g->GV(wgContLang);
1721 Variant v_fname;
1722 Variant v_oldRevisionId;
1723 Variant v_oldRevisionTimestamp;
1724 Array v_fixtags;
1725 Variant v_uniq_prefix;
1726 Variant v_matches;
1727 Variant v_elements;
1728 Variant v_marker;
1729 Variant v_data;
1730 Variant v_element;
1731 Variant v_content;
1732 Variant v_params;
1733 Variant v_tag;
1734 String v_tagName;
1735 Variant v_output;
1736 Array v_tidyregs;
1737 Variant &gv_wgExpensiveParserFunctionLimit __attribute__((__unused__)) = g->GV(wgExpensiveParserFunctionLimit);
1738 Variant v_wgExpensiveParserFunctionLimit;
1739 Variant v_max;
1740 String v_PFreport;
1741 Variant v_limitReport;
1745 (v_fname = concat("Parser::parse-", toString(LINE(308,invoke_failed("wfgetcaller", Array(), 0x000000006DA04B19LL)))));
1746 LINE(309,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::parse").create()), 0x0000000075359BAFLL));
1747 LINE(310,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, ref(v_fname)).create()), 0x0000000075359BAFLL));
1748 if (v_clearState) {
1749 LINE(313,t_clearstate());
1751 (m_mOptions = ((Object)(v_options)));
1752 LINE(317,t_settitle(v_title));
1753 (v_oldRevisionId = m_mRevisionId);
1754 (v_oldRevisionTimestamp = m_mRevisionTimestamp);
1755 if (!same(v_revid, null)) {
1756 (m_mRevisionId = v_revid);
1757 (m_mRevisionTimestamp = null);
1759 LINE(324,t_setoutputtype(1LL /* parser::OT_HTML */));
1760 LINE(325,invoke_failed("wfrunhooks", Array(ArrayInit(2).set(0, "ParserBeforeStrip").set(1, Array(ArrayInit(3).setRef(0, ref(this)).setRef(1, ref(v_text)).setRef(2, ref(lval(m_mStripState))).create())).create()), 0x00000000787A96B2LL));
1761 LINE(327,invoke_failed("wfrunhooks", Array(ArrayInit(2).set(0, "ParserAfterStrip").set(1, Array(ArrayInit(3).setRef(0, ref(this)).setRef(1, ref(v_text)).setRef(2, ref(lval(m_mStripState))).create())).create()), 0x00000000787A96B2LL));
1762 (v_text = LINE(328,t_internalparse(v_text)));
1763 (v_text = LINE(329,m_mStripState.o_invoke_few_args("unstripGeneral", 0x695FA349798CF769LL, 1, v_text)));
1764 (v_fixtags = ScalarArrays::sa_[17]);
1765 (v_text = LINE(340,(assignCallTemp(eo_0, x_array_keys(v_fixtags)),assignCallTemp(eo_1, x_array_values(v_fixtags)),assignCallTemp(eo_2, v_text),x_preg_replace(eo_0, eo_1, eo_2))));
1766 (v_text = LINE(342,t_doblocklevels(v_text, v_linestart)));
1767 LINE(344,t_replacelinkholders(ref(v_text)));
1768 (v_text = LINE(350,gv_wgContLang.o_invoke_few_args("parserConvert", 0x3E3277B648A84B8BLL, 2, v_text, this)));
1769 (v_text = LINE(352,m_mStripState.o_invoke_few_args("unstripNoWiki", 0x2374179DF576FCA9LL, 1, v_text)));
1770 LINE(354,invoke_failed("wfrunhooks", Array(ArrayInit(2).set(0, "ParserBeforeTidy").set(1, Array(ArrayInit(2).setRef(0, ref(this)).setRef(1, ref(v_text)).create())).create()), 0x00000000787A96B2LL));
1771 (v_uniq_prefix = o_get("mUniqPrefix", 0x22D00FA247E8311DLL));
1772 (v_matches = ScalarArrays::sa_[0]);
1773 (v_elements = LINE(360,x_array_keys(m_mTransparentTagHooks)));
1774 (v_text = LINE(361,c_parser::t_extracttagsandparams(v_elements, v_text, ref(v_matches), v_uniq_prefix)));
1776 LOOP_COUNTER(7);
1777 for (ArrayIterPtr iter9 = v_matches.begin("parser"); !iter9->end(); iter9->next()) {
1778 LOOP_COUNTER_CHECK(7);
1779 v_data = iter9->second();
1780 v_marker = iter9->first();
1782 df_lambda_6(v_data, v_element, v_content, v_params, v_tag);
1783 (v_tagName = LINE(365,x_strtolower(toString(v_element))));
1784 if (isset(m_mTransparentTagHooks, v_tagName)) {
1785 (v_output = LINE(368,x_call_user_func_array(m_mTransparentTagHooks.rvalAt(v_tagName), Array(ArrayInit(3).set(0, v_content).set(1, v_params).set(2, ((Object)(this))).create()))));
1787 else {
1788 (v_output = v_tag);
1790 LINE(372,m_mStripState.o_get("general", 0x661B15A9C00F7127LL).o_invoke_few_args("setPair", 0x1CA93325C3BDD490LL, 2, v_marker, v_output));
1794 (v_text = LINE(374,m_mStripState.o_invoke_few_args("unstripGeneral", 0x695FA349798CF769LL, 1, v_text)));
1795 (v_text = LINE(376,throw_fatal("unknown class sanitizer", ((void*)NULL))));
1796 if ((toBoolean(gv_wgUseTidy) && toBoolean(m_mOptions.o_get("mTidy", 0x46AADA01E8915747LL))) || toBoolean(gv_wgAlwaysUseTidy)) {
1797 (v_text = LINE(379,c_mwtidy::t_tidy(v_text)));
1799 else {
1800 (v_tidyregs = ScalarArrays::sa_[18]);
1801 (v_text = LINE(405,(assignCallTemp(eo_0, LINE(403,x_array_keys(v_tidyregs))),assignCallTemp(eo_1, LINE(404,x_array_values(v_tidyregs))),assignCallTemp(eo_2, v_text),x_preg_replace(eo_0, eo_1, eo_2))));
1803 v_wgExpensiveParserFunctionLimit = ref(g->GV(wgExpensiveParserFunctionLimit));
1804 if (more(m_mExpensiveFunctionCount, v_wgExpensiveParserFunctionLimit)) {
1805 LINE(409,t_limitationwarn("expensive-parserfunction", m_mExpensiveFunctionCount, v_wgExpensiveParserFunctionLimit));
1807 LINE(412,invoke_failed("wfrunhooks", Array(ArrayInit(2).set(0, "ParserAfterTidy").set(1, Array(ArrayInit(2).setRef(0, ref(this)).setRef(1, ref(v_text)).create())).create()), 0x00000000787A96B2LL));
1808 if (toBoolean(LINE(415,m_mOptions.o_invoke_few_args("getEnableLimitReport", 0x22B0D101E5B6C279LL, 0)))) {
1809 v_wgExpensiveParserFunctionLimit = ref(g->GV(wgExpensiveParserFunctionLimit));
1810 (v_max = LINE(417,m_mOptions.o_invoke_few_args("getMaxIncludeSize", 0x5356D47AAA28FDF5LL, 0)));
1811 (v_PFreport = LINE(418,concat5("Expensive parser function count: ", toString(m_mExpensiveFunctionCount), "/", toString(v_wgExpensiveParserFunctionLimit), "\n")));
1812 (v_limitReport = LINE(424,(assignCallTemp(eo_1, LINE(421,concat5("Preprocessor node count: ", toString(m_mPPNodeCount), "/", toString(m_mOptions.o_get("mMaxPPNodeCount", 0x3DD526BE5013BD55LL)), "\n"))),assignCallTemp(eo_2, LINE(422,concat5("Post-expand include size: ", toString(m_mIncludeSizes.rvalAt("post-expand", 0x0A9E26E2CC92B3CCLL)), "/", toString(v_max), " bytes\n"))),assignCallTemp(eo_3, LINE(423,concat5("Template argument size: ", toString(m_mIncludeSizes.rvalAt("arg", 0x72E1EE0D651E56D8LL)), "/", toString(v_max), " bytes\n"))),assignCallTemp(eo_4, v_PFreport),concat5("NewPP limit report\n", eo_1, eo_2, eo_3, eo_4))));
1813 LINE(425,invoke_failed("wfrunhooks", Array(ArrayInit(2).set(0, "ParserLimitReport").set(1, Array(ArrayInit(2).set(0, ((Object)(this))).setRef(1, ref(v_limitReport)).create())).create()), 0x00000000787A96B2LL));
1814 concat_assign(v_text, LINE(426,concat3("\n<!-- \n", toString(v_limitReport), "-->\n")));
1816 LINE(428,m_mOutput.o_invoke_few_args("setText", 0x5C75DB446C2096A6LL, 1, v_text));
1817 (m_mRevisionId = v_oldRevisionId);
1818 (m_mRevisionTimestamp = v_oldRevisionTimestamp);
1819 LINE(431,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, ref(v_fname)).create()), 0x00000000B599F276LL));
1820 LINE(432,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::parse").create()), 0x00000000B599F276LL));
1821 return m_mOutput;
1822 } /* function */
1823 /* SRC: Parser.php line 446 */
1824 Variant c_parser::t_recursivetagparse(Variant v_text, CVarRef v_frame // = false
1826 INSTANCE_METHOD_INJECTION(Parser, Parser::recursiveTagParse);
1827 LINE(447,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::recursiveTagParse").create()), 0x0000000075359BAFLL));
1828 LINE(448,invoke_failed("wfrunhooks", Array(ArrayInit(2).set(0, "ParserBeforeStrip").set(1, Array(ArrayInit(3).setRef(0, ref(this)).setRef(1, ref(v_text)).setRef(2, ref(lval(m_mStripState))).create())).create()), 0x00000000787A96B2LL));
1829 LINE(449,invoke_failed("wfrunhooks", Array(ArrayInit(2).set(0, "ParserAfterStrip").set(1, Array(ArrayInit(3).setRef(0, ref(this)).setRef(1, ref(v_text)).setRef(2, ref(lval(m_mStripState))).create())).create()), 0x00000000787A96B2LL));
1830 (v_text = LINE(450,t_internalparse(v_text, false, v_frame)));
1831 LINE(451,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::recursiveTagParse").create()), 0x00000000B599F276LL));
1832 return v_text;
1833 } /* function */
1834 /* SRC: Parser.php line 459 */
1835 Variant c_parser::t_preprocess(Variant v_text, CVarRef v_title, CVarRef v_options, CVarRef v_revid // = null_variant
1837 INSTANCE_METHOD_INJECTION(Parser, Parser::preprocess);
1838 LINE(460,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::preprocess").create()), 0x0000000075359BAFLL));
1839 LINE(461,t_clearstate());
1840 LINE(462,t_setoutputtype(3LL /* parser::OT_PREPROCESS */));
1841 (m_mOptions = v_options);
1842 LINE(464,t_settitle(v_title));
1843 if (!same(v_revid, null)) {
1844 (m_mRevisionId = v_revid);
1846 LINE(468,invoke_failed("wfrunhooks", Array(ArrayInit(2).set(0, "ParserBeforeStrip").set(1, Array(ArrayInit(3).setRef(0, ref(this)).setRef(1, ref(v_text)).setRef(2, ref(lval(m_mStripState))).create())).create()), 0x00000000787A96B2LL));
1847 LINE(469,invoke_failed("wfrunhooks", Array(ArrayInit(2).set(0, "ParserAfterStrip").set(1, Array(ArrayInit(3).setRef(0, ref(this)).setRef(1, ref(v_text)).setRef(2, ref(lval(m_mStripState))).create())).create()), 0x00000000787A96B2LL));
1848 (v_text = LINE(470,t_replacevariables(v_text)));
1849 (v_text = LINE(471,m_mStripState.o_invoke_few_args("unstripBoth", 0x540C7C6FAA3D937BLL, 1, v_text)));
1850 LINE(472,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::preprocess").create()), 0x00000000B599F276LL));
1851 return v_text;
1852 } /* function */
1853 /* SRC: Parser.php line 482 */
1854 String c_parser::ti_getrandomstring(const char* cls) {
1855 STATIC_METHOD_INJECTION(Parser, Parser::getRandomString);
1856 return concat_rev(LINE(483,x_dechex(x_mt_rand(0LL, 2147483647LL))), x_dechex(x_mt_rand(0LL, 2147483647LL)));
1857 } /* function */
1858 /* SRC: Parser.php line 486 */
1859 Variant c_parser::t_gettitle() {
1860 INSTANCE_METHOD_INJECTION(Parser, Parser::getTitle);
1861 return ref(lval(m_mTitle));
1862 } /* function */
1863 /* SRC: Parser.php line 487 */
1864 Variant c_parser::t_getoptions() {
1865 INSTANCE_METHOD_INJECTION(Parser, Parser::getOptions);
1866 return m_mOptions;
1867 } /* function */
1868 /* SRC: Parser.php line 488 */
1869 Variant c_parser::t_getrevisionid() {
1870 INSTANCE_METHOD_INJECTION(Parser, Parser::getRevisionId);
1871 return m_mRevisionId;
1872 } /* function */
1873 /* SRC: Parser.php line 489 */
1874 Variant c_parser::t_getoutput() {
1875 INSTANCE_METHOD_INJECTION(Parser, Parser::getOutput);
1876 return m_mOutput;
1877 } /* function */
1878 /* SRC: Parser.php line 490 */
1879 Primitive c_parser::t_nextlinkid() {
1880 INSTANCE_METHOD_INJECTION(Parser, Parser::nextLinkID);
1881 return m_mLinkID++;
1882 } /* function */
1883 /* SRC: Parser.php line 492 */
1884 Variant c_parser::t_getfunctionlang() {
1885 INSTANCE_METHOD_INJECTION(Parser, Parser::getFunctionLang);
1886 DECLARE_GLOBAL_VARIABLES(g);
1887 Variant &gv_wgLang __attribute__((__unused__)) = g->GV(wgLang);
1888 Variant &gv_wgContLang __attribute__((__unused__)) = g->GV(wgContLang);
1889 Variant v_target;
1893 (v_target = LINE(495,m_mOptions.o_invoke_few_args("getTargetLanguage", 0x66650D0ADB29FEAALL, 0)));
1894 if (!same(v_target, null)) {
1895 return v_target;
1897 else {
1898 return toBoolean(LINE(499,m_mOptions.o_invoke_few_args("getInterfaceMessage", 0x47CB1D8AB54E1850LL, 0))) ? ((Variant)(gv_wgLang)) : ((Variant)(gv_wgContLang));
1900 return null;
1901 } /* function */
1902 /* SRC: Parser.php line 506 */
1903 Variant c_parser::t_getpreprocessor() {
1904 INSTANCE_METHOD_INJECTION(Parser, Parser::getPreprocessor);
1905 Variant v_class;
1907 if (!(t___isset("mPreprocessor"))) {
1908 (v_class = o_get("mPreprocessorClass", 0x6E5AA590C9CC679ALL));
1909 (m_mPreprocessor = LINE(509,create_object(toString(v_class), Array(ArrayInit(1).set(0, ref(this)).create()))));
1911 return m_mPreprocessor;
1912 } /* function */
1913 /* SRC: Parser.php line 532 */
1914 String c_parser::t_extracttagsandparams(CVarRef v_elements, Variant v_text, Variant v_matches, CVarRef v_uniq_prefix // = ""
1916 INSTANCE_METHOD_INJECTION(Parser, Parser::extractTagsAndParams);
1917 Variant eo_0;
1918 Variant eo_1;
1919 Variant eo_2;
1920 Variant eo_3;
1921 Variant eo_4;
1922 Variant eo_5;
1923 Variant eo_6;
1924 Variant eo_7;
1925 DECLARE_GLOBAL_VARIABLES(g);
1926 Variant &sv_n __attribute__((__unused__)) = g->sv_parser$$extracttagsandparams$$n.lvalAt(this->o_getClassName());
1927 Variant &inited_sv_n __attribute__((__unused__)) = g->inited_sv_parser$$extracttagsandparams$$n.lvalAt(this->o_getClassName());
1928 String v_stripped;
1929 String v_taglist;
1930 String v_start;
1931 Variant v_p;
1932 Variant v_element;
1933 Variant v_attributes;
1934 Variant v_close;
1935 Variant v_inside;
1936 String v_marker;
1937 Variant v_content;
1938 Variant v_tail;
1939 String v_end;
1940 Variant v_q;
1942 if (!inited_sv_n) {
1943 (sv_n = 1LL);
1944 inited_sv_n = true;
1946 (v_stripped = "");
1947 (v_matches = ScalarArrays::sa_[0]);
1948 (v_taglist = LINE(537,x_implode("|", v_elements)));
1949 (v_start = LINE(538,concat3("/<(", v_taglist, ")(\\s+[^>]*\?|\\s*\?)(\\/\?>)|<(!--)/i")));
1950 LOOP_COUNTER(10);
1952 while (!equal("", v_text)) {
1953 LOOP_COUNTER_CHECK(10);
1955 (v_p = LINE(541,x_preg_split(v_start, v_text, toInt32(2LL), toInt32(2LL) /* PREG_SPLIT_DELIM_CAPTURE */)));
1956 concat_assign(v_stripped, toString(v_p.rvalAt(0LL, 0x77CFA1EEF01BCA90LL)));
1957 if (less(LINE(543,x_count(v_p)), 5LL)) {
1958 break;
1960 if (more(LINE(546,x_count(v_p)), 5LL)) {
1961 (v_element = v_p.rvalAt(4LL, 0x6F2A25235E544A31LL));
1962 (v_attributes = "");
1963 (v_close = "");
1964 (v_inside = v_p.rvalAt(5LL, 0x350AEB726A15D700LL));
1966 else {
1967 (v_element = v_p.rvalAt(1LL, 0x5BCA7C69B794F8CELL));
1968 (v_attributes = v_p.rvalAt(2LL, 0x486AFCC090D5F98CLL));
1969 (v_close = v_p.rvalAt(3LL, 0x135FDDF6A6BFBBDDLL));
1970 (v_inside = v_p.rvalAt(4LL, 0x6F2A25235E544A31LL));
1972 (v_marker = LINE(560,(assignCallTemp(eo_0, toString(v_uniq_prefix)),assignCallTemp(eo_2, toString(v_element)),assignCallTemp(eo_4, (assignCallTemp(eo_7, sv_n++),x_sprintf(2, "%08X", Array(ArrayInit(1).set(0, eo_7).create())))),concat6(eo_0, "-", eo_2, "-", eo_4, "-QINU\177" /* parser::MARKER_SUFFIX */))));
1973 concat_assign(v_stripped, v_marker);
1974 if (same(v_close, "/>")) {
1975 setNull(v_content);
1976 (v_text = v_inside);
1977 setNull(v_tail);
1979 else {
1980 if (same(v_element, "!--")) {
1981 (v_end = "/(-->)/");
1983 else {
1984 (v_end = LINE(572,concat3("/(<\\/", toString(v_element), "\\s*>)/i")));
1986 (v_q = LINE(574,x_preg_split(v_end, v_inside, toInt32(2LL), toInt32(2LL) /* PREG_SPLIT_DELIM_CAPTURE */)));
1987 (v_content = v_q.rvalAt(0LL, 0x77CFA1EEF01BCA90LL));
1988 if (less(LINE(576,x_count(v_q)), 3LL)) {
1989 (v_tail = "");
1990 (v_text = "");
1992 else {
1993 (v_tail = v_q.rvalAt(1LL, 0x5BCA7C69B794F8CELL));
1994 (v_text = v_q.rvalAt(2LL, 0x486AFCC090D5F98CLL));
1997 v_matches.set(v_marker, ((assignCallTemp(eo_0, v_element),assignCallTemp(eo_1, v_content),assignCallTemp(eo_2, LINE(588,throw_fatal("unknown class sanitizer", ((void*)NULL)))),assignCallTemp(eo_3, LINE(589,concat6("<", toString(v_element), toString(v_attributes), toString(v_close), toString(v_content), toString(v_tail)))),Array(ArrayInit(4).set(0, eo_0).set(1, eo_1).set(2, eo_2).set(3, eo_3).create()))));
2001 return v_stripped;
2002 } /* function */
2003 /* SRC: Parser.php line 597 */
2004 Variant c_parser::t_getstriplist() {
2005 INSTANCE_METHOD_INJECTION(Parser, Parser::getStripList);
2006 DECLARE_GLOBAL_VARIABLES(g);
2007 Variant &gv_wgRawHtml __attribute__((__unused__)) = g->GV(wgRawHtml);
2008 Variant v_elements;
2010 (v_elements = m_mStripList);
2011 if (toBoolean(gv_wgRawHtml)) {
2012 v_elements.append(("html"));
2014 if (toBoolean(LINE(603,m_mOptions.o_invoke_few_args("getUseTeX", 0x2C2CE4CD607BE9D3LL, 0)))) {
2015 v_elements.append(("math"));
2017 return v_elements;
2018 } /* function */
2019 /* SRC: Parser.php line 612 */
2020 Variant c_parser::t_strip(CVarRef v_text, CVarRef v_state, bool v_stripcomments // = false
2021 , CArrRef v_dontstrip // = ScalarArrays::sa_[0]
2023 INSTANCE_METHOD_INJECTION(Parser, Parser::strip);
2024 return v_text;
2025 } /* function */
2026 /* SRC: Parser.php line 623 */
2027 Variant c_parser::t_unstrip(Variant v_text, Object v_state) {
2028 INSTANCE_METHOD_INJECTION(Parser, Parser::unstrip);
2029 return LINE(624,v_state->o_invoke_few_args("unstripGeneral", 0x695FA349798CF769LL, 1, v_text));
2030 } /* function */
2031 /* SRC: Parser.php line 633 */
2032 Variant c_parser::t_unstripnowiki(Variant v_text, CVarRef v_state) {
2033 INSTANCE_METHOD_INJECTION(Parser, Parser::unstripNoWiki);
2034 return LINE(634,toObject(v_state)->o_invoke_few_args("unstripNoWiki", 0x2374179DF576FCA9LL, 1, v_text));
2035 } /* function */
2036 /* SRC: Parser.php line 640 */
2037 Variant c_parser::t_unstripforhtml(Variant v_text) {
2038 INSTANCE_METHOD_INJECTION(Parser, Parser::unstripForHTML);
2039 return LINE(641,m_mStripState.o_invoke_few_args("unstripBoth", 0x540C7C6FAA3D937BLL, 1, v_text));
2040 } /* function */
2041 /* SRC: Parser.php line 651 */
2042 Variant c_parser::t_insertstripitem(Variant v_text) {
2043 INSTANCE_METHOD_INJECTION(Parser, Parser::insertStripItem);
2044 Variant v_rnd;
2046 (v_rnd = LINE(652,concat4(toString(o_get("mUniqPrefix", 0x22D00FA247E8311DLL)), "-item-", toString(m_mMarkerIndex), "--QINU\177")));
2047 m_mMarkerIndex++;
2048 LINE(654,m_mStripState.o_get("general", 0x661B15A9C00F7127LL).o_invoke_few_args("setPair", 0x1CA93325C3BDD490LL, 2, v_rnd, v_text));
2049 return v_rnd;
2050 } /* function */
2051 /* SRC: Parser.php line 662 */
2052 Variant c_parser::ti_tidy(const char* cls, CVarRef v_text) {
2053 STATIC_METHOD_INJECTION(Parser, Parser::tidy);
2054 LINE(663,invoke_failed("wfdeprecated", Array(ArrayInit(1).set(0, "Parser::tidy").create()), 0x000000004033CBCALL));
2055 return LINE(664,c_mwtidy::t_tidy(v_text));
2056 } /* function */
2057 /* SRC: Parser.php line 672 */
2058 Variant c_parser::t_dotablestuff(CVarRef v_text) {
2059 INSTANCE_METHOD_INJECTION(Parser, Parser::doTableStuff);
2060 Variant v_lines;
2061 Variant v_out;
2062 Variant v_td_history;
2063 Variant v_last_tag_history;
2064 Variant v_tr_history;
2065 Variant v_tr_attributes;
2066 Variant v_has_opened_tr;
2067 int64 v_indent_level = 0;
2068 Variant v_outLine;
2069 Variant v_line;
2070 Variant v_first_character;
2071 Variant v_matches;
2072 Variant v_attributes;
2073 Variant v_last_tag;
2074 Variant v_cells;
2075 Variant v_cell;
2076 String v_previous;
2077 Variant v_tr_after;
2078 Variant v_cell_data;
2080 LINE(673,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::doTableStuff").create()), 0x0000000075359BAFLL));
2081 (v_lines = LINE(675,throw_fatal("unknown class stringutils", ((void*)NULL))));
2082 (v_out = "");
2083 (v_td_history = ScalarArrays::sa_[0]);
2084 (v_last_tag_history = ScalarArrays::sa_[0]);
2085 (v_tr_history = ScalarArrays::sa_[0]);
2086 (v_tr_attributes = ScalarArrays::sa_[0]);
2087 (v_has_opened_tr = ScalarArrays::sa_[0]);
2088 (v_indent_level = 0LL);
2090 LOOP_COUNTER(11);
2091 for (ArrayIterPtr iter13 = v_lines.begin("parser"); !iter13->end(); iter13->next()) {
2092 LOOP_COUNTER_CHECK(11);
2093 v_outLine = iter13->second();
2095 (v_line = LINE(685,x_trim(toString(v_outLine))));
2096 if (equal(v_line, "")) {
2097 concat_assign(v_out, concat(toString(v_outLine), "\n"));
2098 continue;
2100 (v_first_character = v_line.rvalAt(0LL, 0x77CFA1EEF01BCA90LL));
2101 (v_matches = ScalarArrays::sa_[0]);
2102 if (toBoolean(LINE(694,x_preg_match("/^(:*)\\{\\|(.*)$/", toString(v_line), ref(v_matches))))) {
2103 (v_indent_level = toInt64(LINE(696,x_strlen(toString(v_matches.rvalAt(1LL, 0x5BCA7C69B794F8CELL))))));
2104 (v_attributes = LINE(698,m_mStripState.o_invoke_few_args("unstripBoth", 0x540C7C6FAA3D937BLL, 1, v_matches.refvalAt(2LL, 0x486AFCC090D5F98CLL))));
2105 (v_attributes = LINE(699,throw_fatal("unknown class sanitizer", ((void*)NULL))));
2106 (v_outLine = concat_rev(LINE(701,concat3("<table", toString(v_attributes), ">")), x_str_repeat("<dl><dd>", toInt32(v_indent_level))));
2107 LINE(702,x_array_push(2, ref(v_td_history), false));
2108 LINE(703,x_array_push(2, ref(v_last_tag_history), ""));
2109 LINE(704,x_array_push(2, ref(v_tr_history), false));
2110 LINE(705,x_array_push(2, ref(v_tr_attributes), ""));
2111 LINE(706,x_array_push(2, ref(v_has_opened_tr), false));
2113 else if (equal(LINE(707,x_count(v_td_history)), 0LL)) {
2114 concat_assign(v_out, concat(toString(v_outLine), "\n"));
2115 continue;
2117 else if (same(LINE(711,x_substr(toString(v_line), toInt32(0LL), toInt32(2LL))), "|}")) {
2118 (v_line = concat("</table>", toString(LINE(713,x_substr(toString(v_line), toInt32(2LL))))));
2119 (v_last_tag = LINE(714,x_array_pop(ref(v_last_tag_history))));
2120 if (!(toBoolean(LINE(716,x_array_pop(ref(v_has_opened_tr)))))) {
2121 (v_line = toString("<tr><td></td></tr>") + toString(v_line));
2123 if (toBoolean(LINE(720,x_array_pop(ref(v_tr_history))))) {
2124 (v_line = toString("</tr>") + toString(v_line));
2126 if (toBoolean(LINE(724,x_array_pop(ref(v_td_history))))) {
2127 (v_line = LINE(725,concat4("</", toString(v_last_tag), ">", toString(v_line))));
2129 LINE(727,x_array_pop(ref(v_tr_attributes)));
2130 (v_outLine = concat(toString(v_line), LINE(728,x_str_repeat("</dd></dl>", toInt32(v_indent_level)))));
2132 else if (same(LINE(729,x_substr(toString(v_line), toInt32(0LL), toInt32(2LL))), "|-")) {
2133 (v_line = LINE(731,x_preg_replace("#^\\|-+#", "", v_line)));
2134 (v_attributes = LINE(734,m_mStripState.o_invoke_few_args("unstripBoth", 0x540C7C6FAA3D937BLL, 1, v_line)));
2135 (v_attributes = LINE(735,throw_fatal("unknown class sanitizer", ((void*)NULL))));
2136 LINE(736,x_array_pop(ref(v_tr_attributes)));
2137 LINE(737,x_array_push(2, ref(v_tr_attributes), v_attributes));
2138 (v_line = "");
2139 (v_last_tag = LINE(740,x_array_pop(ref(v_last_tag_history))));
2140 LINE(741,x_array_pop(ref(v_has_opened_tr)));
2141 LINE(742,x_array_push(2, ref(v_has_opened_tr), true));
2142 if (toBoolean(LINE(744,x_array_pop(ref(v_tr_history))))) {
2143 (v_line = "</tr>");
2145 if (toBoolean(LINE(748,x_array_pop(ref(v_td_history))))) {
2146 (v_line = LINE(749,concat4("</", toString(v_last_tag), ">", toString(v_line))));
2148 (v_outLine = v_line);
2149 LINE(753,x_array_push(2, ref(v_tr_history), false));
2150 LINE(754,x_array_push(2, ref(v_td_history), false));
2151 LINE(755,x_array_push(2, ref(v_last_tag_history), ""));
2153 else if (same(v_first_character, "|") || same(v_first_character, "!") || same(LINE(757,x_substr(toString(v_line), toInt32(0LL), toInt32(2LL))), "|+")) {
2154 if (same(LINE(759,x_substr(toString(v_line), toInt32(0LL), toInt32(2LL))), "|+")) {
2155 (v_first_character = "+");
2156 (v_line = LINE(761,x_substr(toString(v_line), toInt32(1LL))));
2158 (v_line = LINE(764,x_substr(toString(v_line), toInt32(1LL))));
2159 if (same(v_first_character, "!")) {
2160 (v_line = LINE(767,x_str_replace("!!", "||", v_line)));
2162 (v_cells = LINE(774,throw_fatal("unknown class stringutils", ((void*)NULL))));
2163 (v_outLine = "");
2165 LOOP_COUNTER(14);
2166 for (ArrayIterPtr iter16 = v_cells.begin("parser"); !iter16->end(); iter16->next()) {
2167 LOOP_COUNTER_CHECK(14);
2168 v_cell = iter16->second();
2170 (v_previous = "");
2171 if (!same(v_first_character, "+")) {
2172 (v_tr_after = LINE(784,x_array_pop(ref(v_tr_attributes))));
2173 if (!(toBoolean(LINE(785,x_array_pop(ref(v_tr_history)))))) {
2174 (v_previous = LINE(786,concat3("<tr", toString(v_tr_after), ">\n")));
2176 LINE(788,x_array_push(2, ref(v_tr_history), true));
2177 LINE(789,x_array_push(2, ref(v_tr_attributes), ""));
2178 LINE(790,x_array_pop(ref(v_has_opened_tr)));
2179 LINE(791,x_array_push(2, ref(v_has_opened_tr), true));
2181 (v_last_tag = LINE(794,x_array_pop(ref(v_last_tag_history))));
2182 if (toBoolean(LINE(796,x_array_pop(ref(v_td_history))))) {
2183 (v_previous = LINE(797,concat4("</", toString(v_last_tag), ">", v_previous)));
2185 if (same(v_first_character, "|")) {
2186 (v_last_tag = "td");
2188 else if (same(v_first_character, "!")) {
2189 (v_last_tag = "th");
2191 else if (same(v_first_character, "+")) {
2192 (v_last_tag = "caption");
2194 else {
2195 (v_last_tag = "");
2197 LINE(810,x_array_push(2, ref(v_last_tag_history), v_last_tag));
2198 (v_cell_data = LINE(813,x_explode("|", toString(v_cell), toInt32(2LL))));
2199 if (!same(LINE(817,x_strpos(toString(v_cell_data.rvalAt(0LL, 0x77CFA1EEF01BCA90LL)), "[[")), false)) {
2200 (v_cell = LINE(818,concat5(v_previous, "<", toString(v_last_tag), ">", toString(v_cell))));
2202 else if (equal(LINE(819,x_count(v_cell_data)), 1LL)) (v_cell = LINE(820,concat5(v_previous, "<", toString(v_last_tag), ">", toString(v_cell_data.rvalAt(0LL, 0x77CFA1EEF01BCA90LL)))));
2203 else {
2204 (v_attributes = LINE(822,m_mStripState.o_invoke_few_args("unstripBoth", 0x540C7C6FAA3D937BLL, 1, v_cell_data.refvalAt(0LL, 0x77CFA1EEF01BCA90LL))));
2205 (v_attributes = LINE(823,throw_fatal("unknown class sanitizer", ((void*)NULL))));
2206 (v_cell = LINE(824,concat6(v_previous, "<", toString(v_last_tag), toString(v_attributes), ">", toString(v_cell_data.rvalAt(1LL, 0x5BCA7C69B794F8CELL)))));
2208 concat_assign(v_outLine, toString(v_cell));
2209 LINE(828,x_array_push(2, ref(v_td_history), true));
2214 concat_assign(v_out, concat(toString(v_outLine), "\n"));
2218 LOOP_COUNTER(17);
2220 while (more(LINE(835,x_count(v_td_history)), 0LL)) {
2221 LOOP_COUNTER_CHECK(17);
2223 if (toBoolean(LINE(837,x_array_pop(ref(v_td_history))))) {
2224 concat_assign(v_out, "</td>\n");
2226 if (toBoolean(LINE(840,x_array_pop(ref(v_tr_history))))) {
2227 concat_assign(v_out, "</tr>\n");
2229 if (!(toBoolean(LINE(843,x_array_pop(ref(v_has_opened_tr)))))) {
2230 concat_assign(v_out, "<tr><td></td></tr>\n");
2232 concat_assign(v_out, "</table>\n");
2236 if (same(LINE(851,x_substr(toString(v_out), toInt32(-1LL))), "\n")) {
2237 (v_out = LINE(852,x_substr(toString(v_out), toInt32(0LL), toInt32(-1LL))));
2239 if (same(v_out, "<table>\n<tr><td></td></tr>\n</table>")) {
2240 (v_out = "");
2242 LINE(860,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::doTableStuff").create()), 0x00000000B599F276LL));
2243 return v_out;
2244 } /* function */
2245 /* SRC: Parser.php line 871 */
2246 Variant c_parser::t_internalparse(Variant v_text, bool v_isMain // = true
2247 , CVarRef v_frame // = false
2249 INSTANCE_METHOD_INJECTION(Parser, Parser::internalParse);
2250 Variant eo_0;
2251 Variant eo_1;
2252 Variant eo_2;
2253 Variant eo_3;
2254 Variant v_origText;
2255 int64 v_flag = 0;
2256 Variant v_dom;
2257 Variant v_df;
2259 LINE(872,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::internalParse").create()), 0x0000000075359BAFLL));
2260 (v_origText = v_text);
2261 if (!(toBoolean(LINE(877,invoke_failed("wfrunhooks", Array(ArrayInit(2).set(0, "ParserBeforeInternalParse").set(1, Array(ArrayInit(3).setRef(0, ref(this)).setRef(1, ref(v_text)).setRef(2, ref(lval(m_mStripState))).create())).create()), 0x00000000787A96B2LL))))) {
2262 LINE(878,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::internalParse").create()), 0x00000000B599F276LL));
2263 return v_text;
2265 if (toBoolean(v_frame)) {
2266 if (!(toBoolean(toObject(v_frame).o_get("depth", 0x1AE700EECE6274C7LL)))) (v_flag = 0LL);
2267 else (v_flag = 1LL /* parser::PTD_FOR_INCLUSION */);
2268 (v_dom = LINE(890,t_preprocesstodom(v_text, v_flag)));
2269 (v_text = LINE(891,toObject(v_frame)->o_invoke_few_args("expand", 0x39B7BB05F05A37CDLL, 1, v_dom)));
2271 else {
2272 (v_text = LINE(895,t_replacevariables(v_text)));
2274 (v_text = LINE(898,(assignCallTemp(eo_0, v_text),assignCallTemp(eo_1, Array(ArrayInit(2).setRef(0, ref(this)).set(1, "attributeStripCallback").create())),assignCallTemp(eo_3, x_array_keys(m_mTransparentTagHooks)),throw_fatal("unknown class sanitizer", (x_array_keys(m_mTransparentTagHooks), (void*)NULL)))));
2275 LINE(899,invoke_failed("wfrunhooks", Array(ArrayInit(2).set(0, "InternalParseBeforeLinks").set(1, Array(ArrayInit(3).setRef(0, ref(this)).setRef(1, ref(v_text)).setRef(2, ref(lval(m_mStripState))).create())).create()), 0x00000000787A96B2LL));
2276 (v_text = LINE(905,t_dotablestuff(v_text)));
2277 (v_text = LINE(907,x_preg_replace("/(^|\\n)-----*/", "\\1<hr />", v_text)));
2278 (v_text = LINE(909,t_dodoubleunderscore(v_text)));
2279 (v_text = LINE(910,t_doheadings(v_text)));
2280 if (toBoolean(LINE(911,m_mOptions.o_invoke_few_args("getUseDynamicDates", 0x01659C897F5E99C1LL, 0)))) {
2281 (v_df = LINE(912,c_dateformatter::t_getinstance()));
2282 (v_text = (assignCallTemp(eo_0, ref(LINE(913,m_mOptions.o_invoke_few_args("getDateFormat", 0x6EF12DB3679FD689LL, 0)))),assignCallTemp(eo_1, ref(v_text)),v_df.o_invoke("reformat", Array(ArrayInit(2).set(0, eo_0).set(1, eo_1).create()), 0x59D9A29BB871E42ELL)));
2284 (v_text = LINE(915,t_doallquotes(v_text)));
2285 (v_text = LINE(916,t_replaceinternallinks(v_text)));
2286 (v_text = LINE(917,t_replaceexternallinks(v_text)));
2287 (v_text = LINE(921,x_str_replace(concat(toString(o_get("mUniqPrefix", 0x22D00FA247E8311DLL)), "NOPARSE"), "", v_text)));
2288 (v_text = LINE(923,t_domagiclinks(v_text)));
2289 (v_text = LINE(924,t_formatheadings(v_text, v_origText, v_isMain)));
2290 LINE(926,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::internalParse").create()), 0x00000000B599F276LL));
2291 return v_text;
2292 } /* function */
2293 /* SRC: Parser.php line 937 */
2294 Variant c_parser::t_domagiclinks(Variant v_text) {
2295 INSTANCE_METHOD_INJECTION(Parser, Parser::doMagicLinks);
2296 Variant v_prots;
2297 String v_urlChar;
2299 LINE(938,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::doMagicLinks").create()), 0x0000000075359BAFLL));
2300 (v_prots = m_mUrlProtocols);
2301 (v_urlChar = "[^][<>\"\\x00-\\x20\\x7F]" /* parser::EXT_LINK_URL_CLASS */);
2302 (v_text = LINE(952,x_preg_replace_callback(concat("!(\?: # Start cases\n\t\t\t\t(<a.*\?</a>) | # m[1]: Skip link text \n\t\t\t\t(<.*\?>) | # m[2]: Skip stuff inside HTML elements", concat5("\n\t\t\t\t(\\b(\?:", toString(v_prots), ")", v_urlChar, "+) | # m[3]: Free external links\n\t\t\t\t(\?:RFC|PMID)\\s+([0-9]+) | # m[4]: RFC or PMID, capture number\n\t\t\t\tISBN\\s+(\\b # m[5]: ISBN, capture number\n\t\t\t\t (\?: 97[89] [\\ \\-]\? )\? # optional 13-digit ISBN prefix\n\t\t\t\t (\?: [0-9] [\\ \\-]\? ){9} # 9 digits with opt. delimiters\n\t\t\t\t [0-9Xx] # check digit\n\t\t\t\t \\b)\n\t\t\t)!x")), Array(ArrayInit(2).setRef(0, ref(this)).set(1, "magicLinkCallback").create()), v_text)));
2303 LINE(953,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::doMagicLinks").create()), 0x00000000B599F276LL));
2304 return v_text;
2305 } /* function */
2306 /* SRC: Parser.php line 957 */
2307 Variant c_parser::t_magiclinkcallback(CVarRef v_m) {
2308 INSTANCE_METHOD_INJECTION(Parser, Parser::magicLinkCallback);
2309 Variant eo_0;
2310 Variant eo_1;
2311 Variant eo_2;
2312 String v_CssClass;
2313 String v_keyword;
2314 Variant v_urlmsg;
2315 Variant v_id;
2316 Variant v_url;
2317 Variant v_sk;
2318 Variant v_la;
2319 Variant v_isbn;
2320 String v_num;
2321 Variant v_titleObj;
2323 if (isset(v_m, 1LL, 0x5BCA7C69B794F8CELL) && !same(v_m.rvalAt(1LL, 0x5BCA7C69B794F8CELL), "")) {
2324 return v_m.rvalAt(0LL, 0x77CFA1EEF01BCA90LL);
2326 else if (isset(v_m, 2LL, 0x486AFCC090D5F98CLL) && !same(v_m.rvalAt(2LL, 0x486AFCC090D5F98CLL), "")) {
2327 return v_m.rvalAt(0LL, 0x77CFA1EEF01BCA90LL);
2329 else if (isset(v_m, 3LL, 0x135FDDF6A6BFBBDDLL) && !same(v_m.rvalAt(3LL, 0x135FDDF6A6BFBBDDLL), "")) {
2330 return LINE(966,t_makefreeexternallink(v_m.rvalAt(0LL, 0x77CFA1EEF01BCA90LL)));
2332 else if (isset(v_m, 4LL, 0x6F2A25235E544A31LL) && !same(v_m.rvalAt(4LL, 0x6F2A25235E544A31LL), "")) {
2333 (v_CssClass = "");
2334 if (same(LINE(970,x_substr(toString(v_m.rvalAt(0LL, 0x77CFA1EEF01BCA90LL)), toInt32(0LL), toInt32(3LL))), "RFC")) {
2335 (v_keyword = "RFC");
2336 (v_urlmsg = "rfcurl");
2337 (v_CssClass = "mw-magiclink-rfc");
2338 (v_id = v_m.rvalAt(4LL, 0x6F2A25235E544A31LL));
2340 else if (same(LINE(975,x_substr(toString(v_m.rvalAt(0LL, 0x77CFA1EEF01BCA90LL)), toInt32(0LL), toInt32(4LL))), "PMID")) {
2341 (v_keyword = "PMID");
2342 (v_urlmsg = "pubmedurl");
2343 (v_CssClass = "mw-magiclink-pmid");
2344 (v_id = v_m.rvalAt(4LL, 0x6F2A25235E544A31LL));
2346 else {
2347 throw_exception(LINE(982,create_object("mwexception", Array(ArrayInit(1).set(0, (assignCallTemp(eo_1, toString(x_substr(toString(v_m.rvalAt(0LL, 0x77CFA1EEF01BCA90LL)), toInt32(0LL), toInt32(20LL)))),concat3("Parser::magicLinkCallback: unrecognised match type \"", eo_1, "\""))).create()))));
2349 (v_url = LINE(984,invoke_failed("wfmsg", Array(ArrayInit(2).set(0, ref(v_urlmsg)).set(1, ref(v_id)).create()), 0x0000000002E29FB3LL)));
2350 (v_sk = LINE(985,m_mOptions.o_invoke_few_args("getSkin", 0x6C79601E06BA735FLL, 0)));
2351 (v_la = LINE(986,v_sk.o_invoke_few_args("getExternalLinkAttributes", 0x14ACE0578A57FD66LL, 1, toString("external ") + v_CssClass)));
2352 return concat_rev(LINE(987,concat6(toString(v_la), ">", v_keyword, " ", toString(v_id), "</a>")), concat3("<a href=\"", toString(v_url), "\""));
2354 else if (isset(v_m, 5LL, 0x350AEB726A15D700LL) && !same(v_m.rvalAt(5LL, 0x350AEB726A15D700LL), "")) {
2355 (v_isbn = v_m.rvalAt(5LL, 0x350AEB726A15D700LL));
2356 (v_num = LINE(995,x_strtr(toString(v_isbn), ScalarArrays::sa_[19])));
2357 (v_titleObj = LINE(996,throw_fatal("unknown class specialpage", ((void*)NULL))));
2358 return LINE(999,(assignCallTemp(eo_1, toString(LINE(998,v_titleObj.o_invoke_few_args("escapeLocalUrl", 0x0A4E2A99089C4842LL, 0)))),assignCallTemp(eo_2, LINE(999,concat3("\" class=\"internal mw-magiclink-isbn\">ISBN ", toString(v_isbn), "</a>"))),concat3("<a href=\"", eo_1, eo_2)));
2360 else {
2361 return v_m.rvalAt(0LL, 0x77CFA1EEF01BCA90LL);
2363 return null;
2364 } /* function */
2365 /* SRC: Parser.php line 1010 */
2366 String c_parser::t_makefreeexternallink(Variant v_url) {
2367 INSTANCE_METHOD_INJECTION(Parser, Parser::makeFreeExternalLink);
2368 Variant eo_0;
2369 Variant eo_1;
2370 Variant eo_2;
2371 Variant eo_3;
2372 Variant eo_4;
2373 Variant eo_5;
2374 DECLARE_GLOBAL_VARIABLES(g);
2375 Variant &gv_wgContLang __attribute__((__unused__)) = g->GV(wgContLang);
2376 Variant v_sk;
2377 String v_trail;
2378 Variant v_m2;
2379 String v_sep;
2380 Variant v_numSepChars;
2381 Variant v_text;
2382 Variant v_pasteurized;
2384 LINE(1012,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::makeFreeExternalLink").create()), 0x0000000075359BAFLL));
2385 (v_sk = LINE(1014,m_mOptions.o_invoke_few_args("getSkin", 0x6C79601E06BA735FLL, 0)));
2386 (v_trail = "");
2387 (v_m2 = ScalarArrays::sa_[0]);
2388 if (toBoolean(LINE(1021,x_preg_match("/&(lt|gt);/", toString(v_url), ref(v_m2), toInt32(256LL) /* PREG_OFFSET_CAPTURE */)))) {
2389 (v_trail = concat(toString(LINE(1022,x_substr(toString(v_url), toInt32(v_m2.rvalAt(0LL, 0x77CFA1EEF01BCA90LL).rvalAt(1LL, 0x5BCA7C69B794F8CELL))))), v_trail));
2390 (v_url = LINE(1023,x_substr(toString(v_url), toInt32(0LL), toInt32(v_m2.rvalAt(0LL, 0x77CFA1EEF01BCA90LL).rvalAt(1LL, 0x5BCA7C69B794F8CELL)))));
2392 (v_sep = ",;\\.:!\?");
2393 if (same(LINE(1029,x_strpos(toString(v_url), "(")), false)) {
2394 concat_assign(v_sep, ")");
2396 (v_numSepChars = LINE(1033,(assignCallTemp(eo_0, x_strrev(toString(v_url))),assignCallTemp(eo_1, v_sep),x_strspn(eo_0, eo_1))));
2397 if (toBoolean(v_numSepChars)) {
2398 (v_trail = concat(toString(LINE(1035,x_substr(toString(v_url), toInt32(negate(v_numSepChars))))), v_trail));
2399 (v_url = LINE(1036,x_substr(toString(v_url), toInt32(0LL), toInt32(negate(v_numSepChars)))));
2401 (v_url = LINE(1039,throw_fatal("unknown class sanitizer", ((void*)NULL))));
2402 (v_text = LINE(1042,t_maybemakeexternalimage(v_url)));
2403 if (same(v_text, false)) {
2404 (v_text = (assignCallTemp(eo_0, toObject(v_sk)),(assignCallTemp(eo_1, ref(v_url)),assignCallTemp(eo_2, ref(LINE(1045,gv_wgContLang.o_invoke_few_args("markNoConversion", 0x3AC6A984BC83E71BLL, 1, v_url)))),assignCallTemp(eo_5, ref(LINE(1046,t_getexternallinkattribs(v_url)))),eo_0.o_invoke("makeExternalLink", Array(ArrayInit(5).set(0, eo_1).set(1, eo_2).set(2, true).set(3, "free").set(4, eo_5).create()), 0x29CE649D13E77D3BLL))));
2405 (v_pasteurized = LINE(1049,c_parser::t_replaceunusualescapes(v_url)));
2406 LINE(1050,m_mOutput.o_invoke_few_args("addExternalLink", 0x3FE22FCE3F0B40E8LL, 1, v_pasteurized));
2408 LINE(1052,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::makeFreeExternalLink").create()), 0x00000000B599F276LL));
2409 return concat(toString(v_text), v_trail);
2410 } /* function */
2411 /* SRC: Parser.php line 1062 */
2412 Variant c_parser::t_doheadings(Variant v_text) {
2413 INSTANCE_METHOD_INJECTION(Parser, Parser::doHeadings);
2414 Variant eo_0;
2415 Variant eo_1;
2416 Variant eo_2;
2417 int64 v_i = 0;
2418 String v_h;
2420 LINE(1063,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::doHeadings").create()), 0x0000000075359BAFLL));
2422 LOOP_COUNTER(18);
2423 for ((v_i = 6LL); not_less(v_i, 1LL); --v_i) {
2424 LOOP_COUNTER_CHECK(18);
2426 (v_h = LINE(1065,x_str_repeat("=", toInt32(v_i))));
2427 (v_text = LINE(1067,(assignCallTemp(eo_0, LINE(1066,concat5("/^", v_h, "(.+)", v_h, "\\s*$/m"))),assignCallTemp(eo_1, LINE(1067,concat5("<h", toString(v_i), ">\\1</h", toString(v_i), ">"))),assignCallTemp(eo_2, v_text),x_preg_replace(eo_0, eo_1, eo_2))));
2431 LINE(1069,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::doHeadings").create()), 0x00000000B599F276LL));
2432 return v_text;
2433 } /* function */
2434 /* SRC: Parser.php line 1078 */
2435 Variant c_parser::t_doallquotes(CVarRef v_text) {
2436 INSTANCE_METHOD_INJECTION(Parser, Parser::doAllQuotes);
2437 Variant v_outtext;
2438 Variant v_lines;
2439 Variant v_line;
2441 LINE(1079,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::doAllQuotes").create()), 0x0000000075359BAFLL));
2442 (v_outtext = "");
2443 (v_lines = LINE(1081,throw_fatal("unknown class stringutils", ((void*)NULL))));
2445 LOOP_COUNTER(19);
2446 for (ArrayIterPtr iter21 = v_lines.begin("parser"); !iter21->end(); iter21->next()) {
2447 LOOP_COUNTER_CHECK(19);
2448 v_line = iter21->second();
2450 concat_assign(v_outtext, concat(toString(LINE(1083,t_doquotes(v_line))), "\n"));
2454 (v_outtext = LINE(1085,x_substr(toString(v_outtext), toInt32(0LL), toInt32(-1LL))));
2455 LINE(1086,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::doAllQuotes").create()), 0x00000000B599F276LL));
2456 return v_outtext;
2457 } /* function */
2458 /* SRC: Parser.php line 1093 */
2459 Variant c_parser::t_doquotes(CVarRef v_text) {
2460 INSTANCE_METHOD_INJECTION(Parser, Parser::doQuotes);
2461 Variant eo_0;
2462 Variant eo_1;
2463 Variant v_arr;
2464 int64 v_i = 0;
2465 int64 v_numbold = 0;
2466 int64 v_numitalics = 0;
2467 Variant v_r;
2468 int64 v_firstsingleletterword = 0;
2469 int64 v_firstmultiletterword = 0;
2470 int64 v_firstspace = 0;
2471 Variant v_x1;
2472 Variant v_x2;
2473 Variant v_output;
2474 Variant v_buffer;
2475 String v_state;
2477 (v_arr = LINE(1094,x_preg_split("/(''+)/", v_text, toInt32(-1LL), toInt32(2LL) /* PREG_SPLIT_DELIM_CAPTURE */)));
2478 if (equal(LINE(1095,x_count(v_arr)), 1LL)) return v_text;
2479 else {
2480 (v_i = 0LL);
2481 (v_numbold = 0LL);
2482 (v_numitalics = 0LL);
2484 LOOP_COUNTER(22);
2485 for (ArrayIterPtr iter24 = v_arr.begin("parser"); !iter24->end(); iter24->next()) {
2486 LOOP_COUNTER_CHECK(22);
2487 v_r = iter24->second();
2489 if (equal((modulo(v_i, 2LL)), 1LL)) {
2490 if (equal(LINE(1111,x_strlen(toString(v_arr.rvalAt(v_i)))), 4LL)) {
2491 concat_assign(lval(v_arr.lvalAt(v_i - 1LL)), "'");
2492 v_arr.set(v_i, ("'''"));
2494 else if (more(LINE(1118,x_strlen(toString(v_arr.rvalAt(v_i)))), 5LL)) {
2495 concat_assign(lval(v_arr.lvalAt(v_i - 1LL)), LINE(1120,(assignCallTemp(eo_1, toInt32(x_strlen(toString(v_arr.rvalAt(v_i))) - 5LL)),x_str_repeat("'", eo_1))));
2496 v_arr.set(v_i, ("'''''"));
2498 if (equal(LINE(1125,x_strlen(toString(v_arr.rvalAt(v_i)))), 2LL)) {
2499 v_numitalics++;
2501 else if (equal(LINE(1126,x_strlen(toString(v_arr.rvalAt(v_i)))), 3LL)) {
2502 v_numbold++;
2504 else if (equal(LINE(1127,x_strlen(toString(v_arr.rvalAt(v_i)))), 5LL)) {
2505 v_numitalics++;
2506 v_numbold++;
2509 v_i++;
2513 if ((equal(modulo(v_numbold, 2LL), 1LL)) && (equal(modulo(v_numitalics, 2LL), 1LL))) {
2514 (v_i = 0LL);
2515 (v_firstsingleletterword = -1LL);
2516 (v_firstmultiletterword = -1LL);
2517 (v_firstspace = -1LL);
2519 LOOP_COUNTER(25);
2520 for (ArrayIterPtr iter27 = v_arr.begin("parser"); !iter27->end(); iter27->next()) {
2521 LOOP_COUNTER_CHECK(25);
2522 v_r = iter27->second();
2524 if (((equal(modulo(v_i, 2LL), 1LL))) && ((equal(LINE(1144,x_strlen(toString(v_r))), 3LL)))) {
2525 (v_x1 = LINE(1146,x_substr(toString(v_arr.rvalAt(v_i - 1LL)), toInt32(-1LL))));
2526 (v_x2 = LINE(1147,x_substr(toString(v_arr.rvalAt(v_i - 1LL)), toInt32(-2LL), toInt32(1LL))));
2527 if (same(v_x1, " ")) {
2528 if (equal(v_firstspace, -1LL)) (v_firstspace = v_i);
2530 else if (same(v_x2, " ")) {
2531 if (equal(v_firstsingleletterword, -1LL)) (v_firstsingleletterword = v_i);
2533 else {
2534 if (equal(v_firstmultiletterword, -1LL)) (v_firstmultiletterword = v_i);
2537 v_i++;
2541 if (more(v_firstsingleletterword, -1LL)) {
2542 v_arr.set(v_firstsingleletterword, ("''"));
2543 concat_assign(lval(v_arr.lvalAt(v_firstsingleletterword - 1LL)), "'");
2545 else if (more(v_firstmultiletterword, -1LL)) {
2546 v_arr.set(v_firstmultiletterword, ("''"));
2547 concat_assign(lval(v_arr.lvalAt(v_firstmultiletterword - 1LL)), "'");
2549 else if (more(v_firstspace, -1LL)) {
2550 v_arr.set(v_firstspace, ("''"));
2551 concat_assign(lval(v_arr.lvalAt(v_firstspace - 1LL)), "'");
2554 (v_output = "");
2555 (v_buffer = "");
2556 (v_state = "");
2557 (v_i = 0LL);
2559 LOOP_COUNTER(28);
2560 for (ArrayIterPtr iter30 = v_arr.begin("parser"); !iter30->end(); iter30->next()) {
2561 LOOP_COUNTER_CHECK(28);
2562 v_r = iter30->second();
2564 if (equal((modulo(v_i, 2LL)), 0LL)) {
2565 if (same(v_state, "both")) concat_assign(v_buffer, toString(v_r));
2566 else concat_assign(v_output, toString(v_r));
2568 else {
2569 if (equal(LINE(1197,x_strlen(toString(v_r))), 2LL)) {
2570 if (same(v_state, "i")) {
2571 concat_assign(v_output, "</i>");
2572 (v_state = "");
2574 else if (same(v_state, "bi")) {
2575 concat_assign(v_output, "</i>");
2576 (v_state = "b");
2578 else if (same(v_state, "ib")) {
2579 concat_assign(v_output, "</b></i><b>");
2580 (v_state = "b");
2582 else if (same(v_state, "both")) {
2583 concat_assign(v_output, LINE(1206,concat3("<b><i>", toString(v_buffer), "</i>")));
2584 (v_state = "b");
2586 else {
2587 concat_assign(v_output, "<i>");
2588 concat_assign(v_state, "i");
2591 else if (equal(LINE(1210,x_strlen(toString(v_r))), 3LL)) {
2592 if (same(v_state, "b")) {
2593 concat_assign(v_output, "</b>");
2594 (v_state = "");
2596 else if (same(v_state, "bi")) {
2597 concat_assign(v_output, "</i></b><i>");
2598 (v_state = "i");
2600 else if (same(v_state, "ib")) {
2601 concat_assign(v_output, "</b>");
2602 (v_state = "i");
2604 else if (same(v_state, "both")) {
2605 concat_assign(v_output, LINE(1219,concat3("<i><b>", toString(v_buffer), "</b>")));
2606 (v_state = "i");
2608 else {
2609 concat_assign(v_output, "<b>");
2610 concat_assign(v_state, "b");
2613 else if (equal(LINE(1223,x_strlen(toString(v_r))), 5LL)) {
2614 if (same(v_state, "b")) {
2615 concat_assign(v_output, "</b><i>");
2616 (v_state = "i");
2618 else if (same(v_state, "i")) {
2619 concat_assign(v_output, "</i><b>");
2620 (v_state = "b");
2622 else if (same(v_state, "bi")) {
2623 concat_assign(v_output, "</i></b>");
2624 (v_state = "");
2626 else if (same(v_state, "ib")) {
2627 concat_assign(v_output, "</b></i>");
2628 (v_state = "");
2630 else if (same(v_state, "both")) {
2631 concat_assign(v_output, LINE(1234,concat3("<i><b>", toString(v_buffer), "</b></i>")));
2632 (v_state = "");
2634 else {
2635 (v_buffer = "");
2636 (v_state = "both");
2640 v_i++;
2644 if (same(v_state, "b") || same(v_state, "ib")) concat_assign(v_output, "</b>");
2645 if (same(v_state, "i") || same(v_state, "bi") || same(v_state, "ib")) concat_assign(v_output, "</i>");
2646 if (same(v_state, "bi")) concat_assign(v_output, "</b>");
2647 if (same(v_state, "both") && toBoolean(v_buffer)) concat_assign(v_output, LINE(1250,concat3("<b><i>", toString(v_buffer), "</i></b>")));
2648 return v_output;
2650 return null;
2651 } /* function */
2652 /* SRC: Parser.php line 1263 */
2653 Variant c_parser::t_replaceexternallinks(Variant v_text) {
2654 INSTANCE_METHOD_INJECTION(Parser, Parser::replaceExternalLinks);
2655 Variant eo_0;
2656 Variant eo_1;
2657 Variant eo_2;
2658 Variant eo_3;
2659 Variant eo_4;
2660 Variant eo_5;
2661 Variant eo_6;
2662 Variant eo_7;
2663 Variant eo_8;
2664 DECLARE_GLOBAL_VARIABLES(g);
2665 Variant &gv_wgContLang __attribute__((__unused__)) = g->GV(wgContLang);
2666 Variant v_sk;
2667 Variant v_bits;
2668 Variant v_s;
2669 int64 v_i = 0;
2670 Variant v_url;
2671 Variant v_protocol;
2672 Variant v_trail;
2673 Variant v_m2;
2674 Variant v_img;
2675 Variant v_dtrail;
2676 Variant v_linktype;
2677 Variant v_langObj;
2678 Variant v_pasteurized;
2680 LINE(1265,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::replaceExternalLinks").create()), 0x0000000075359BAFLL));
2681 (v_sk = LINE(1267,m_mOptions.o_invoke_few_args("getSkin", 0x6C79601E06BA735FLL, 0)));
2682 (v_bits = LINE(1269,x_preg_split(m_mExtLinkBracketedRegex, v_text, toInt32(-1LL), toInt32(2LL) /* PREG_SPLIT_DELIM_CAPTURE */)));
2683 (v_s = LINE(1270,x_array_shift(ref(v_bits))));
2684 (v_i = 0LL);
2685 LOOP_COUNTER(31);
2687 while (less(v_i, LINE(1273,x_count(v_bits)))) {
2688 LOOP_COUNTER_CHECK(31);
2690 (v_url = v_bits.rvalAt(v_i++));
2691 (v_protocol = v_bits.rvalAt(v_i++));
2692 (v_text = v_bits.rvalAt(v_i++));
2693 (v_trail = v_bits.rvalAt(v_i++));
2694 (v_m2 = ScalarArrays::sa_[0]);
2695 if (toBoolean(LINE(1283,x_preg_match("/&(lt|gt);/", toString(v_url), ref(v_m2), toInt32(256LL) /* PREG_OFFSET_CAPTURE */)))) {
2696 (v_text = LINE(1284,(assignCallTemp(eo_0, toString(x_substr(toString(v_url), toInt32(v_m2.rvalAt(0LL, 0x77CFA1EEF01BCA90LL).rvalAt(1LL, 0x5BCA7C69B794F8CELL))))),assignCallTemp(eo_2, toString(v_text)),concat3(eo_0, " ", eo_2))));
2697 (v_url = LINE(1285,x_substr(toString(v_url), toInt32(0LL), toInt32(v_m2.rvalAt(0LL, 0x77CFA1EEF01BCA90LL).rvalAt(1LL, 0x5BCA7C69B794F8CELL)))));
2699 (v_img = LINE(1290,t_maybemakeexternalimage(v_text)));
2700 if (!same(v_img, false)) {
2701 (v_text = v_img);
2703 (v_dtrail = "");
2704 (v_linktype = (same(v_text, v_url)) ? (("free")) : (("text")));
2705 if (equal(v_text, "")) {
2706 if (!same(LINE(1303,(assignCallTemp(eo_0, toString(invoke_failed("wfurlprotocols", Array(), 0x00000000BD4BD4FELL))),assignCallTemp(eo_1, (assignCallTemp(eo_2, toString(v_protocol)),assignCallTemp(eo_4, toInt32(x_strpos(toString(v_protocol), ":"))),x_substr(eo_2, toInt32(0LL), eo_4))),x_strpos(eo_0, eo_1))), false)) {
2707 (v_langObj = LINE(1304,t_getfunctionlang()));
2708 (v_text = LINE(1305,(assignCallTemp(eo_1, toString(v_langObj.o_invoke_few_args("formatNum", 0x0FEB8F5DDB8EBB5ALL, 1, ++m_mAutonumber))),concat3("[", eo_1, "]"))));
2709 (v_linktype = "autonumber");
2711 else {
2712 (v_text = LINE(1309,x_htmlspecialchars(toString(v_url))));
2713 (v_linktype = "free");
2716 else {
2717 df_lambda_7(LINE(1315,throw_fatal("unknown class linker", ((void*)NULL))), v_dtrail, v_trail);
2719 (v_text = LINE(1318,gv_wgContLang.o_invoke_few_args("markNoConversion", 0x3AC6A984BC83E71BLL, 1, v_text)));
2720 (v_url = LINE(1320,throw_fatal("unknown class sanitizer", ((void*)NULL))));
2721 concat_assign(v_s, LINE(1327,(assignCallTemp(eo_0, toString((assignCallTemp(eo_3, toObject(v_sk)),(assignCallTemp(eo_4, ref(v_url)),assignCallTemp(eo_5, ref(v_text)),assignCallTemp(eo_7, ref(v_linktype)),assignCallTemp(eo_8, ref(t_getexternallinkattribs(v_url))),eo_3.o_invoke("makeExternalLink", Array(ArrayInit(5).set(0, eo_4).set(1, eo_5).set(2, false).set(3, eo_7).set(4, eo_8).create()), 0x29CE649D13E77D3BLL))))),assignCallTemp(eo_1, toString(v_dtrail)),assignCallTemp(eo_2, toString(v_trail)),concat3(eo_0, eo_1, eo_2))));
2722 (v_pasteurized = LINE(1332,c_parser::t_replaceunusualescapes(v_url)));
2723 LINE(1333,m_mOutput.o_invoke_few_args("addExternalLink", 0x3FE22FCE3F0B40E8LL, 1, v_pasteurized));
2727 LINE(1336,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::replaceExternalLinks").create()), 0x00000000B599F276LL));
2728 return v_s;
2729 } /* function */
2730 /* SRC: Parser.php line 1350 */
2731 Variant c_parser::t_getexternallinkattribs(Variant v_url // = false
2733 INSTANCE_METHOD_INJECTION(Parser, Parser::getExternalLinkAttribs);
2734 DECLARE_GLOBAL_VARIABLES(g);
2735 Variant v_attribs;
2736 Variant &gv_wgNoFollowLinks __attribute__((__unused__)) = g->GV(wgNoFollowLinks);
2737 Variant v_wgNoFollowLinks;
2738 Variant &gv_wgNoFollowNsExceptions __attribute__((__unused__)) = g->GV(wgNoFollowNsExceptions);
2739 Variant v_wgNoFollowNsExceptions;
2740 Variant v_ns;
2741 Variant &gv_wgNoFollowDomainExceptions __attribute__((__unused__)) = g->GV(wgNoFollowDomainExceptions);
2742 Variant v_wgNoFollowDomainExceptions;
2743 Variant v_bits;
2744 Variant v_domain;
2746 (v_attribs = ScalarArrays::sa_[0]);
2748 v_wgNoFollowLinks = ref(g->GV(wgNoFollowLinks));
2749 v_wgNoFollowNsExceptions = ref(g->GV(wgNoFollowNsExceptions));
2751 (v_ns = LINE(1353,m_mTitle.o_invoke_few_args("getNamespace", 0x6DC05480D007D522LL, 0)));
2752 if (toBoolean(v_wgNoFollowLinks) && !(LINE(1354,x_in_array(v_ns, v_wgNoFollowNsExceptions)))) {
2753 v_attribs.set("rel", ("nofollow"), 0x234BFF7AE368CA91LL);
2754 v_wgNoFollowDomainExceptions = ref(g->GV(wgNoFollowDomainExceptions));
2755 if (toBoolean(v_wgNoFollowDomainExceptions)) {
2756 (v_bits = LINE(1359,invoke_failed("wfparseurl", Array(ArrayInit(1).set(0, ref(v_url)).create()), 0x00000000B00BED86LL)));
2757 if (LINE(1360,x_is_array(v_bits)) && isset(v_bits, "host", 0x5FFAEBBF2B227E19LL)) {
2759 LOOP_COUNTER(32);
2760 for (ArrayIterPtr iter34 = v_wgNoFollowDomainExceptions.begin("parser"); !iter34->end(); iter34->next()) {
2761 LOOP_COUNTER_CHECK(32);
2762 v_domain = iter34->second();
2764 if (equal(LINE(1362,x_substr(toString(v_bits.rvalAt("host", 0x5FFAEBBF2B227E19LL)), toInt32(negate(x_strlen(toString(v_domain)))))), v_domain)) {
2765 v_attribs.weakRemove("rel", 0x234BFF7AE368CA91LL);
2766 break;
2774 if (toBoolean(LINE(1371,m_mOptions.o_invoke_few_args("getExternalLinkTarget", 0x3CCD270F1E382832LL, 0)))) {
2775 v_attribs.set("target", (LINE(1372,m_mOptions.o_invoke_few_args("getExternalLinkTarget", 0x3CCD270F1E382832LL, 0))), 0x22F784C030DE5CB0LL);
2777 return v_attribs;
2778 } /* function */
2779 /* SRC: Parser.php line 1388 */
2780 Variant c_parser::ti_replaceunusualescapes(const char* cls, CVarRef v_url) {
2781 STATIC_METHOD_INJECTION(Parser, Parser::replaceUnusualEscapes);
2782 return LINE(1390,x_preg_replace_callback("/%[0-9A-Fa-f]{2}/", ScalarArrays::sa_[20], v_url));
2783 } /* function */
2784 /* SRC: Parser.php line 1399 */
2785 Variant c_parser::ti_replaceunusualescapescallback(const char* cls, CVarRef v_matches) {
2786 STATIC_METHOD_INJECTION(Parser, Parser::replaceUnusualEscapesCallback);
2787 String v_char;
2788 int64 v_ord = 0;
2790 (v_char = LINE(1400,x_urldecode(toString(v_matches.rvalAt(0LL, 0x77CFA1EEF01BCA90LL)))));
2791 (v_ord = LINE(1401,x_ord(v_char)));
2792 if (more(v_ord, 32LL) && less(v_ord, 127LL) && same(LINE(1403,x_strpos("<>\"#{}|\\^~[]`;/\?", v_char)), false)) {
2793 return v_char;
2795 else {
2796 return v_matches.rvalAt(0LL, 0x77CFA1EEF01BCA90LL);
2798 return null;
2799 } /* function */
2800 /* SRC: Parser.php line 1417 */
2801 Variant c_parser::t_maybemakeexternalimage(Variant v_url) {
2802 INSTANCE_METHOD_INJECTION(Parser, Parser::maybeMakeExternalImage);
2803 Variant eo_0;
2804 Variant eo_1;
2805 Variant eo_2;
2806 Variant eo_3;
2807 Variant eo_4;
2808 Variant v_sk;
2809 Variant v_imagesfrom;
2810 bool v_imagesexception = false;
2811 Variant v_text;
2812 bool v_imagematch = false;
2813 Variant v_match;
2814 Array v_whitelist;
2815 Variant v_entry;
2817 (v_sk = LINE(1418,m_mOptions.o_invoke_few_args("getSkin", 0x6C79601E06BA735FLL, 0)));
2818 (v_imagesfrom = LINE(1419,m_mOptions.o_invoke_few_args("getAllowExternalImagesFrom", 0x328637508AD8D9BELL, 0)));
2819 (v_imagesexception = !(empty(v_imagesfrom)));
2820 (v_text = false);
2821 if (v_imagesexception && LINE(1423,x_is_array(v_imagesfrom))) {
2822 (v_imagematch = false);
2824 LOOP_COUNTER(35);
2825 for (ArrayIterPtr iter37 = v_imagesfrom.begin("parser"); !iter37->end(); iter37->next()) {
2826 LOOP_COUNTER_CHECK(35);
2827 v_match = iter37->second();
2829 if (same(LINE(1426,x_strpos(toString(v_url), v_match)), 0LL)) {
2830 (v_imagematch = true);
2831 break;
2837 else if (v_imagesexception) {
2838 (v_imagematch = (same(LINE(1432,x_strpos(toString(v_url), v_imagesfrom)), 0LL)));
2840 else {
2841 (v_imagematch = false);
2843 if (toBoolean(LINE(1436,m_mOptions.o_invoke_few_args("getAllowExternalImages", 0x09A86C9F3335CAB7LL, 0))) || (v_imagesexception && v_imagematch)) {
2844 if (toBoolean(LINE(1438,x_preg_match("/^(http:\\/\\/|https:\\/\\/)([^][<>\"\\x00-\\x20\\x7F]+)\n\t\t\\/([A-Za-z0-9_.,~%\\-+&;#*\?!=()@\\x80-\\xFF]+)\\.((\?i)gif|png|jpg|jpeg)$/Sx" /* parser::EXT_IMAGE_REGEX */, toString(v_url))))) {
2845 (v_text = LINE(1440,v_sk.o_invoke_few_args("makeExternalImage", 0x5E12DD62300C6EFELL, 1, v_url)));
2848 if (!(toBoolean(v_text)) && toBoolean(LINE(1443,m_mOptions.o_invoke_few_args("getEnableImageWhitelist", 0x500FFF199D084BF7LL, 0))) && toBoolean(LINE(1444,x_preg_match("/^(http:\\/\\/|https:\\/\\/)([^][<>\"\\x00-\\x20\\x7F]+)\n\t\t\\/([A-Za-z0-9_.,~%\\-+&;#*\?!=()@\\x80-\\xFF]+)\\.((\?i)gif|png|jpg|jpeg)$/Sx" /* parser::EXT_IMAGE_REGEX */, toString(v_url))))) {
2849 (v_whitelist = LINE(1445,(assignCallTemp(eo_1, toString(invoke_failed("wfmsgforcontent", Array(ArrayInit(1).set(0, "external_image_whitelist").create()), 0x0000000033607CCALL))),x_explode("\n", eo_1))));
2851 LOOP_COUNTER(38);
2852 for (ArrayIter iter40 = v_whitelist.begin("parser"); !iter40.end(); ++iter40) {
2853 LOOP_COUNTER_CHECK(38);
2854 v_entry = iter40.second();
2856 if (same(LINE(1448,x_strpos(toString(v_entry), "#")), 0LL) || same(v_entry, "")) continue;
2857 if (toBoolean(LINE(1450,(assignCallTemp(eo_0, (assignCallTemp(eo_3, toString(x_str_replace("/", "\\/", v_entry))),concat3("/", eo_3, "/i"))),assignCallTemp(eo_1, toString(v_url)),x_preg_match(eo_0, eo_1))))) {
2858 (v_text = LINE(1452,v_sk.o_invoke_few_args("makeExternalImage", 0x5E12DD62300C6EFELL, 1, v_url)));
2859 break;
2865 return v_text;
2866 } /* function */
2867 /* SRC: Parser.php line 1466 */
2868 Variant c_parser::t_replaceinternallinks(Variant v_s) {
2869 INSTANCE_METHOD_INJECTION(Parser, Parser::replaceInternalLinks);
2870 LINE(1467,m_mLinkHolders.o_invoke_few_args("merge", 0x1C2E89C2A927FF7BLL, 1, o_root_invoke_few_args("replaceInternalLinks2", 0x37AA0C66F5C36136LL, 1, v_s)));
2871 return v_s;
2872 } /* function */
2873 /* SRC: Parser.php line 1477 */
2874 p_linkholderarray c_parser::t_replaceinternallinks2(Variant v_s) {
2875 INSTANCE_METHOD_INJECTION(Parser, Parser::replaceInternalLinks2);
2876 Variant eo_0;
2877 Variant eo_1;
2878 Variant eo_2;
2879 Variant eo_3;
2880 Variant eo_4;
2881 DECLARE_GLOBAL_VARIABLES(g);
2882 Variant &gv_wgContLang __attribute__((__unused__)) = g->GV(wgContLang);
2883 Variant &sv_tc __attribute__((__unused__)) = g->sv_parser$$replaceinternallinks2$$tc.lvalAt(this->o_getClassName());
2884 Variant &inited_sv_tc __attribute__((__unused__)) = g->inited_sv_parser$$replaceinternallinks2$$tc.lvalAt(this->o_getClassName());
2885 Variant &sv_e1 __attribute__((__unused__)) = g->sv_parser$$replaceinternallinks2$$e1.lvalAt(this->o_getClassName());
2886 Variant &inited_sv_e1 __attribute__((__unused__)) = g->inited_sv_parser$$replaceinternallinks2$$e1.lvalAt(this->o_getClassName());
2887 Variant &sv_e1_img __attribute__((__unused__)) = g->sv_parser$$replaceinternallinks2$$e1_img.lvalAt(this->o_getClassName());
2888 Variant &inited_sv_e1_img __attribute__((__unused__)) = g->inited_sv_parser$$replaceinternallinks2$$e1_img.lvalAt(this->o_getClassName());
2889 Variant v_sk;
2890 p_linkholderarray v_holders;
2891 Variant v_a;
2892 Variant v_line;
2893 Variant v_useLinkPrefixExtension;
2894 Variant v_e2;
2895 bool v_nottalk = false;
2896 Variant v_m;
2897 Variant v_first_prefix;
2898 Variant v_prefix;
2899 Variant v_selflink;
2900 Variant v_useSubpages;
2901 bool v_might_be_img = false;
2902 Variant v_text;
2903 Variant v_trail;
2904 Variant v_link;
2905 bool v_noforce = false;
2906 Variant v_nt;
2907 Variant v_ns;
2908 Variant v_iw;
2909 bool v_found = false;
2910 Variant v_next_line;
2911 bool v_wasblank = false;
2912 Variant v_sortkey;
2913 Variant v_time;
2914 Variant v_skip;
2916 LINE(1480,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2").create()), 0x0000000075359BAFLL));
2917 LINE(1482,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-setup").create()), 0x0000000075359BAFLL));
2919 if (!inited_sv_tc) {
2920 (sv_tc = false);
2921 inited_sv_tc = true;
2923 if (!inited_sv_e1) {
2924 (sv_e1 = null);
2925 inited_sv_e1 = true;
2927 if (!inited_sv_e1_img) {
2928 (sv_e1_img = null);
2929 inited_sv_e1_img = true;
2932 if (!(toBoolean(sv_tc))) {
2933 (sv_tc = concat(toString(LINE(1486,throw_fatal("unknown class title", ((void*)NULL)))), "#%"));
2934 (sv_e1 = LINE(1488,concat3("/^([", toString(sv_tc), "]+)(\?:\\|(.+\?))\?]](.*)$/sD")));
2935 (sv_e1_img = LINE(1490,concat3("/^([", toString(sv_tc), "]+)\\|(.*)$/sD")));
2937 (v_sk = LINE(1493,m_mOptions.o_invoke_few_args("getSkin", 0x6C79601E06BA735FLL, 0)));
2938 ((Object)((v_holders = ((Object)(LINE(1494,p_linkholderarray(p_linkholderarray(NEWOBJ(c_linkholderarray)())->create(((Object)(this))))))))));
2939 (v_a = LINE(1497,throw_fatal("unknown class stringutils", ((void*)NULL))));
2940 (v_s = LINE(1499,v_a.o_invoke_few_args("current", 0x5B3A4A72846B21DCLL, 0)));
2941 LINE(1500,v_a.o_invoke_few_args("next", 0x3C6D50F3BB8102B8LL, 0));
2942 (v_line = LINE(1501,v_a.o_invoke_few_args("current", 0x5B3A4A72846B21DCLL, 0)));
2943 (v_s = LINE(1502,x_substr(toString(v_s), toInt32(1LL))));
2944 (v_useLinkPrefixExtension = LINE(1504,gv_wgContLang.o_invoke_few_args("linkPrefixExtension", 0x015F50DA8CF83919LL, 0)));
2945 setNull(v_e2);
2946 if (toBoolean(v_useLinkPrefixExtension)) {
2947 (v_e2 = LINE(1509,invoke_failed("wfmsgforcontent", Array(ArrayInit(1).set(0, "linkprefix").create()), 0x0000000033607CCALL)));
2949 if (LINE(1512,x_is_null(m_mTitle))) {
2950 LINE(1513,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-setup").create()), 0x00000000B599F276LL));
2951 LINE(1514,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2").create()), 0x00000000B599F276LL));
2952 throw_exception(LINE(1515,create_object("mwexception", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2: $this->mTitle is null\n").create()))));
2954 (v_nottalk = !(toBoolean(LINE(1517,m_mTitle.o_invoke_few_args("isTalkPage", 0x761349917BE980CFLL, 0)))));
2955 if (toBoolean(v_useLinkPrefixExtension)) {
2956 (v_m = ScalarArrays::sa_[0]);
2957 if (toBoolean(LINE(1521,x_preg_match(toString(v_e2), toString(v_s), ref(v_m))))) {
2958 (v_first_prefix = v_m.rvalAt(2LL, 0x486AFCC090D5F98CLL));
2960 else {
2961 (v_first_prefix = false);
2964 else {
2965 (v_prefix = "");
2967 if (toBoolean(LINE(1530,gv_wgContLang.o_invoke_few_args("hasVariants", 0x5A1FD2E20BD8DBBBLL, 0)))) {
2968 (v_selflink = LINE(1531,gv_wgContLang.o_invoke_few_args("convertLinkToAllVariants", 0x276E1379FA1C5660LL, 1, m_mTitle.o_invoke_few_args("getPrefixedText", 0x33044BA725446A43LL, 0))));
2970 else {
2971 (v_selflink = Array(ArrayInit(1).set(0, LINE(1533,m_mTitle.o_invoke_few_args("getPrefixedText", 0x33044BA725446A43LL, 0))).create()));
2973 (v_useSubpages = LINE(1535,t_aresubpagesallowed()));
2974 LINE(1536,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-setup").create()), 0x00000000B599F276LL));
2976 LOOP_COUNTER(41);
2977 for (; !same(v_line, false) && !same(v_line, null); LINE(1539,v_a.o_invoke_few_args("next", 0x3C6D50F3BB8102B8LL, 0)), (v_line = v_a.o_invoke_few_args("current", 0x5B3A4A72846B21DCLL, 0))) {
2978 LOOP_COUNTER_CHECK(41);
2980 if (LINE(1541,v_holders->t_isbig())) {
2981 LINE(1544,v_holders->t_replace(ref(v_s)));
2982 LINE(1545,v_holders->t_clear());
2984 if (toBoolean(v_useLinkPrefixExtension)) {
2985 LINE(1549,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-prefixhandling").create()), 0x0000000075359BAFLL));
2986 if (toBoolean(LINE(1550,x_preg_match(toString(v_e2), toString(v_s), ref(v_m))))) {
2987 (v_prefix = v_m.rvalAt(2LL, 0x486AFCC090D5F98CLL));
2988 (v_s = v_m.rvalAt(1LL, 0x5BCA7C69B794F8CELL));
2990 else {
2991 (v_prefix = "");
2993 if (toBoolean(v_first_prefix)) {
2994 (v_prefix = v_first_prefix);
2995 (v_first_prefix = false);
2997 LINE(1561,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-prefixhandling").create()), 0x00000000B599F276LL));
2999 (v_might_be_img = false);
3000 LINE(1566,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-e1").create()), 0x0000000075359BAFLL));
3001 if (toBoolean(LINE(1567,x_preg_match(toString(sv_e1), toString(v_line), ref(v_m))))) {
3002 (v_text = v_m.rvalAt(2LL, 0x486AFCC090D5F98CLL));
3003 if (!same(v_text, "") && same(LINE(1578,x_substr(toString(v_m.rvalAt(3LL, 0x135FDDF6A6BFBBDDLL)), toInt32(0LL), toInt32(1LL))), "]") && !same(LINE(1579,x_strpos(toString(v_text), "[")), false)) {
3004 concat_assign(v_text, "]");
3005 v_m.set(3LL, (LINE(1583,x_substr(toString(v_m.rvalAt(3LL, 0x135FDDF6A6BFBBDDLL)), toInt32(1LL)))), 0x135FDDF6A6BFBBDDLL);
3007 if (!same(LINE(1586,x_strpos(toString(v_m.rvalAt(1LL, 0x5BCA7C69B794F8CELL)), "%")), false)) {
3008 v_m.set(1LL, (LINE(1588,(assignCallTemp(eo_2, x_urldecode(toString(v_m.rvalAt(1LL, 0x5BCA7C69B794F8CELL)))),x_str_replace(ScalarArrays::sa_[21], ScalarArrays::sa_[22], eo_2)))), 0x5BCA7C69B794F8CELL);
3010 (v_trail = v_m.rvalAt(3LL, 0x135FDDF6A6BFBBDDLL));
3012 else if (toBoolean(LINE(1591,x_preg_match(toString(sv_e1_img), toString(v_line), ref(v_m))))) {
3013 (v_might_be_img = true);
3014 (v_text = v_m.rvalAt(2LL, 0x486AFCC090D5F98CLL));
3015 if (!same(LINE(1594,x_strpos(toString(v_m.rvalAt(1LL, 0x5BCA7C69B794F8CELL)), "%")), false)) {
3016 v_m.set(1LL, (LINE(1595,x_urldecode(toString(v_m.rvalAt(1LL, 0x5BCA7C69B794F8CELL))))), 0x5BCA7C69B794F8CELL);
3018 (v_trail = "");
3020 else {
3021 concat_assign(v_s, LINE(1599,concat3(toString(v_prefix), "[[", toString(v_line))));
3022 LINE(1600,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-e1").create()), 0x00000000B599F276LL));
3023 continue;
3025 LINE(1603,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-e1").create()), 0x00000000B599F276LL));
3026 LINE(1604,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-misc").create()), 0x0000000075359BAFLL));
3027 if (toBoolean(LINE(1609,(assignCallTemp(eo_0, (assignCallTemp(eo_3, toString(invoke_failed("wfurlprotocols", Array(), 0x00000000BD4BD4FELL))),concat3("/^\\b(\?:", eo_3, ")/"))),assignCallTemp(eo_1, toString(v_m.rvalAt(1LL, 0x5BCA7C69B794F8CELL))),x_preg_match(eo_0, eo_1))))) {
3028 concat_assign(v_s, LINE(1610,concat3(toString(v_prefix), "[[", toString(v_line))));
3029 LINE(1611,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-misc").create()), 0x00000000B599F276LL));
3030 continue;
3032 if (toBoolean(v_useSubpages)) {
3033 (v_link = LINE(1617,t_maybedosubpagelink(v_m.rvalAt(1LL, 0x5BCA7C69B794F8CELL), ref(v_text))));
3035 else {
3036 (v_link = v_m.rvalAt(1LL, 0x5BCA7C69B794F8CELL));
3038 (v_noforce = (!same(LINE(1622,x_substr(toString(v_m.rvalAt(1LL, 0x5BCA7C69B794F8CELL)), toInt32(0LL), toInt32(1LL))), ":")));
3039 if (!(v_noforce)) {
3040 (v_link = LINE(1625,x_substr(toString(v_link), toInt32(1LL))));
3042 LINE(1628,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-misc").create()), 0x00000000B599F276LL));
3043 LINE(1629,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-title").create()), 0x0000000075359BAFLL));
3044 (v_nt = LINE(1630,throw_fatal("unknown class title", (m_mStripState.o_invoke_few_args("unstripNoWiki", 0x2374179DF576FCA9LL, 1, v_link), (void*)NULL))));
3045 if (same(v_nt, null)) {
3046 concat_assign(v_s, LINE(1632,concat3(toString(v_prefix), "[[", toString(v_line))));
3047 LINE(1633,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-title").create()), 0x00000000B599F276LL));
3048 continue;
3050 (v_ns = LINE(1637,v_nt.o_invoke_few_args("getNamespace", 0x6DC05480D007D522LL, 0)));
3051 (v_iw = LINE(1638,v_nt.o_invoke_few_args("getInterWiki", 0x04849D85488D825ELL, 0)));
3052 LINE(1639,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-title").create()), 0x00000000B599F276LL));
3053 if (v_might_be_img) {
3054 LINE(1642,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-might_be_img").create()), 0x0000000075359BAFLL));
3055 if (equal(v_ns, k_NS_FILE) && v_noforce) {
3056 (v_found = false);
3057 LOOP_COUNTER(42);
3059 while (true) {
3060 LOOP_COUNTER_CHECK(42);
3062 LINE(1647,v_a.o_invoke_few_args("next", 0x3C6D50F3BB8102B8LL, 0));
3063 (v_next_line = LINE(1648,v_a.o_invoke_few_args("current", 0x5B3A4A72846B21DCLL, 0)));
3064 if (same(v_next_line, false) || same(v_next_line, null)) {
3065 break;
3067 (v_m = LINE(1652,x_explode("]]", toString(v_next_line), toInt32(3LL))));
3068 if (equal(LINE(1653,x_count(v_m)), 3LL)) {
3069 (v_found = true);
3070 concat_assign(v_text, LINE(1656,concat4("[[", toString(v_m.rvalAt(0LL, 0x77CFA1EEF01BCA90LL)), "]]", toString(v_m.rvalAt(1LL, 0x5BCA7C69B794F8CELL)))));
3071 (v_trail = v_m.rvalAt(2LL, 0x486AFCC090D5F98CLL));
3072 break;
3074 else if (equal(LINE(1659,x_count(v_m)), 2LL)) {
3075 concat_assign(v_text, LINE(1661,concat4("[[", toString(v_m.rvalAt(0LL, 0x77CFA1EEF01BCA90LL)), "]]", toString(v_m.rvalAt(1LL, 0x5BCA7C69B794F8CELL)))));
3077 else {
3078 concat_assign(v_text, concat("[[", toString(v_next_line)));
3079 break;
3084 if (!(v_found)) {
3085 LINE(1671,v_holders->t_merge(o_root_invoke_few_args("replaceInternalLinks2", 0x37AA0C66F5C36136LL, 1, v_text)));
3086 concat_assign(v_s, LINE(1672,concat5(toString(v_prefix), "[[", toString(v_link), "|", toString(v_text))));
3087 LINE(1674,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-might_be_img").create()), 0x00000000B599F276LL));
3088 continue;
3091 else {
3092 concat_assign(v_s, LINE(1678,concat5(toString(v_prefix), "[[", toString(v_link), "|", toString(v_text))));
3093 LINE(1680,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-might_be_img").create()), 0x00000000B599F276LL));
3094 continue;
3096 LINE(1683,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-might_be_img").create()), 0x00000000B599F276LL));
3098 (v_wasblank = (equal("", v_text)));
3099 if (v_wasblank) (v_text = v_link);
3100 if (v_noforce) {
3101 LINE(1693,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-interwiki").create()), 0x0000000075359BAFLL));
3102 if (toBoolean(v_iw) && toBoolean(LINE(1694,m_mOptions.o_invoke_few_args("getInterwikiMagic", 0x269DAD3410FFF8C6LL, 0))) && v_nottalk && toBoolean(gv_wgContLang.o_invoke_few_args("getLanguageName", 0x3D24C2035027A7DELL, 1, v_iw))) {
3103 LINE(1695,m_mOutput.o_invoke_few_args("addLanguageLink", 0x657AED0066D1BEECLL, 1, v_nt.o_invoke_few_args("getFullText", 0x3200D2E195D7162ALL, 0)));
3104 (v_s = LINE(1696,x_rtrim(concat(toString(v_s), toString(v_prefix)))));
3105 concat_assign(v_s, toString(equal(LINE(1697,x_trim(toString(v_trail), "\n")), "") ? ((Variant)("")) : ((Variant)(concat(toString(v_prefix), toString(v_trail))))));
3106 LINE(1698,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-interwiki").create()), 0x00000000B599F276LL));
3107 continue;
3109 LINE(1701,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-interwiki").create()), 0x00000000B599F276LL));
3110 if (equal(v_ns, k_NS_FILE)) {
3111 LINE(1704,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-image").create()), 0x0000000075359BAFLL));
3112 if (!(toBoolean(LINE(1705,(assignCallTemp(eo_0, ref(v_nt.o_invoke_few_args("getDBkey", 0x7A72F137192AEF00LL, 0))),assignCallTemp(eo_1, ref(m_mTitle)),invoke_failed("wfisbadimage", Array(ArrayInit(2).set(0, eo_0).set(1, eo_1).create()), 0x00000000F72DE574LL)))))) {
3113 if (v_wasblank) {
3114 (v_text = "");
3116 else {
3117 (v_text = LINE(1716,t_replaceexternallinks(v_text)));
3118 LINE(1717,v_holders->t_merge(o_root_invoke_few_args("replaceInternalLinks2", 0x37AA0C66F5C36136LL, 1, v_text)));
3120 concat_assign(v_s, LINE(1720,(assignCallTemp(eo_0, toString(v_prefix)),assignCallTemp(eo_1, toString(t_armorlinks(t_makeimage(v_nt, v_text, ((Object)(v_holders)))))),assignCallTemp(eo_2, toString(v_trail)),concat3(eo_0, eo_1, eo_2))));
3122 LINE(1722,m_mOutput.o_invoke_few_args("addImage", 0x1026F251B81BD927LL, 1, v_nt.o_invoke_few_args("getDBkey", 0x7A72F137192AEF00LL, 0)));
3123 LINE(1723,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-image").create()), 0x00000000B599F276LL));
3124 continue;
3126 if (equal(v_ns, k_NS_CATEGORY)) {
3127 LINE(1729,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-category").create()), 0x0000000075359BAFLL));
3128 (v_s = LINE(1730,x_rtrim(concat(toString(v_s), "\n"))));
3129 if (v_wasblank) {
3130 (v_sortkey = LINE(1733,t_getdefaultsort()));
3132 else {
3133 (v_sortkey = v_text);
3135 (v_sortkey = LINE(1737,throw_fatal("unknown class sanitizer", ((void*)NULL))));
3136 (v_sortkey = LINE(1738,x_str_replace("\n", "", v_sortkey)));
3137 (v_sortkey = LINE(1739,gv_wgContLang.o_invoke_few_args("convertCategoryKey", 0x11AD19C1DBDF452ALL, 1, v_sortkey)));
3138 (assignCallTemp(eo_0, ref(LINE(1740,v_nt.o_invoke_few_args("getDBkey", 0x7A72F137192AEF00LL, 0)))),assignCallTemp(eo_1, ref(v_sortkey)),m_mOutput.o_invoke("addCategory", Array(ArrayInit(2).set(0, eo_0).set(1, eo_1).create()), 0x6DBAA9816B039793LL));
3139 concat_assign(v_s, toString(equal(LINE(1746,x_trim(concat(toString(v_prefix), toString(v_trail)), "\n")), "") ? ((Variant)("")) : ((Variant)(concat(toString(v_prefix), toString(v_trail))))));
3140 LINE(1748,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-category").create()), 0x00000000B599F276LL));
3141 continue;
3144 if (same(LINE(1754,v_nt.o_invoke_few_args("getFragment", 0x2354C40909546D77LL, 0)), "") && !equal(v_ns, k_NS_SPECIAL)) {
3145 if (LINE(1755,(assignCallTemp(eo_0, v_nt.o_invoke_few_args("getPrefixedText", 0x33044BA725446A43LL, 0)),assignCallTemp(eo_1, v_selflink),x_in_array(eo_0, eo_1, true)))) {
3146 concat_assign(v_s, concat(toString(v_prefix), toString(LINE(1756,v_sk.o_invoke_few_args("makeSelfLinkObj", 0x4D117586D20EE5FCLL, 4, v_nt, v_text, "", v_trail)))));
3147 continue;
3150 if (equal(v_ns, k_NS_MEDIA)) {
3151 LINE(1764,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-media").create()), 0x0000000075359BAFLL));
3152 (v_skip = (v_time = false));
3153 LINE(1767,invoke_failed("wfrunhooks", Array(ArrayInit(2).set(0, "BeforeParserMakeImageLinkObj").set(1, Array(ArrayInit(4).setRef(0, ref(this)).setRef(1, ref(v_nt)).setRef(2, ref(v_skip)).setRef(3, ref(v_time)).create())).create()), 0x00000000787A96B2LL));
3154 if (toBoolean(v_skip)) {
3155 (v_link = LINE(1769,v_sk.o_invoke_few_args("link", 0x230FE1D6EC599525LL, 1, v_nt)));
3157 else {
3158 (v_link = LINE(1771,v_sk.o_invoke_few_args("makeMediaLinkObj", 0x3781EB5896E49D3ELL, 3, v_nt, v_text, v_time)));
3160 concat_assign(v_s, LINE(1774,(assignCallTemp(eo_0, toString(v_prefix)),assignCallTemp(eo_1, toString(t_armorlinks(v_link))),assignCallTemp(eo_2, toString(v_trail)),concat3(eo_0, eo_1, eo_2))));
3161 LINE(1775,m_mOutput.o_invoke_few_args("addImage", 0x1026F251B81BD927LL, 1, v_nt.o_invoke_few_args("getDBkey", 0x7A72F137192AEF00LL, 0)));
3162 LINE(1776,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-media").create()), 0x00000000B599F276LL));
3163 continue;
3165 LINE(1780,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-always_known").create()), 0x0000000075359BAFLL));
3166 if (equal(v_iw, "") && toBoolean(LINE(1786,v_nt.o_invoke_few_args("isAlwaysKnown", 0x32DB35272B7DDB90LL, 0)))) {
3167 LINE(1787,m_mOutput.o_invoke_few_args("addLink", 0x5D10AC6ADCA895ACLL, 1, v_nt));
3168 concat_assign(v_s, LINE(1788,t_makeknownlinkholder(v_nt, v_text, "", v_trail, v_prefix)));
3170 else {
3171 concat_assign(v_s, LINE(1791,v_holders->t_makeholder(v_nt, v_text, "", v_trail, v_prefix)));
3173 LINE(1793,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2-always_known").create()), 0x00000000B599F276LL));
3177 LINE(1795,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::replaceInternalLinks2").create()), 0x00000000B599F276LL));
3178 return ((Object)(v_holders));
3179 } /* function */
3180 /* SRC: Parser.php line 1807 */
3181 Variant c_parser::t_makelinkholder(Variant v_nt, Variant v_text // = ""
3182 , Variant v_query // = ""
3183 , Variant v_trail // = ""
3184 , Variant v_prefix // = ""
3186 INSTANCE_METHOD_INJECTION(Parser, Parser::makeLinkHolder);
3187 return LINE(1808,m_mLinkHolders.o_invoke_few_args("makeHolder", 0x0B6C33D73053B0C5LL, 5, v_nt, v_text, v_query, v_trail, v_prefix));
3188 } /* function */
3189 /* SRC: Parser.php line 1825 */
3190 String c_parser::t_makeknownlinkholder(Variant v_nt, Variant v_text // = ""
3191 , Variant v_query // = ""
3192 , Variant v_trail // = ""
3193 , Variant v_prefix // = ""
3195 INSTANCE_METHOD_INJECTION(Parser, Parser::makeKnownLinkHolder);
3196 Variant v_inside;
3197 Variant v_sk;
3198 Variant v_link;
3200 df_lambda_8(LINE(1826,throw_fatal("unknown class linker", ((void*)NULL))), v_inside, v_trail);
3201 (v_sk = LINE(1827,m_mOptions.o_invoke_few_args("getSkin", 0x6C79601E06BA735FLL, 0)));
3202 (v_link = LINE(1829,v_sk.o_invoke_few_args("makeKnownLinkObj", 0x1C18E0A6D7DBDF99LL, 5, v_nt, v_text, v_query, v_inside, v_prefix)));
3203 return concat(toString(LINE(1830,t_armorlinks(v_link))), toString(v_trail));
3204 } /* function */
3205 /* SRC: Parser.php line 1843 */
3206 Variant c_parser::t_armorlinks(CVarRef v_text) {
3207 INSTANCE_METHOD_INJECTION(Parser, Parser::armorLinks);
3208 Variant eo_0;
3209 Variant eo_1;
3210 Variant eo_2;
3211 Variant eo_3;
3212 Variant eo_4;
3213 Variant eo_5;
3214 return LINE(1845,(assignCallTemp(eo_0, LINE(1844,(assignCallTemp(eo_4, toString(invoke_failed("wfurlprotocols", Array(), 0x00000000BD4BD4FELL))),concat3("/\\b(", eo_4, ")/")))),assignCallTemp(eo_1, toString(o_get("mUniqPrefix", 0x22D00FA247E8311DLL)) + toString("NOPARSE$1")),assignCallTemp(eo_2, v_text),x_preg_replace(eo_0, eo_1, eo_2)));
3215 } /* function */
3216 /* SRC: Parser.php line 1852 */
3217 Variant c_parser::t_aresubpagesallowed() {
3218 INSTANCE_METHOD_INJECTION(Parser, Parser::areSubpagesAllowed);
3219 return LINE(1854,throw_fatal("unknown class mwnamespace", (m_mTitle.o_invoke_few_args("getNamespace", 0x6DC05480D007D522LL, 0), (void*)NULL)));
3220 } /* function */
3221 /* SRC: Parser.php line 1864 */
3222 Variant c_parser::t_maybedosubpagelink(CVarRef v_target, Variant v_text) {
3223 INSTANCE_METHOD_INJECTION(Parser, Parser::maybeDoSubpageLink);
3224 return LINE(1865,throw_fatal("unknown class linker", ((void*)NULL)));
3225 } /* function */
3226 /* SRC: Parser.php line 1872 */
3227 String c_parser::t_closeparagraph() {
3228 INSTANCE_METHOD_INJECTION(Parser, Parser::closeParagraph);
3229 String v_result;
3231 (v_result = "");
3232 if (!equal("", m_mLastSection)) {
3233 (v_result = LINE(1875,concat3("</", toString(m_mLastSection), ">\n")));
3235 (m_mInPre = false);
3236 (m_mLastSection = "");
3237 return v_result;
3238 } /* function */
3239 /* SRC: Parser.php line 1884 */
3240 int64 c_parser::t_getcommon(CVarRef v_st1, CVarRef v_st2) {
3241 INSTANCE_METHOD_INJECTION(Parser, Parser::getCommon);
3242 int v_fl = 0;
3243 int v_shorter = 0;
3244 int64 v_i = 0;
3246 (v_fl = LINE(1885,x_strlen(toString(v_st1))));
3247 (v_shorter = LINE(1886,x_strlen(toString(v_st2))));
3248 if (less(v_fl, v_shorter)) {
3249 (v_shorter = v_fl);
3252 LOOP_COUNTER(43);
3253 for ((v_i = 0LL); less(v_i, v_shorter); ++v_i) {
3254 LOOP_COUNTER_CHECK(43);
3256 if (!equal(v_st1.rvalAt(v_i), v_st2.rvalAt(v_i))) {
3257 break;
3262 return v_i;
3263 } /* function */
3264 /* SRC: Parser.php line 1897 */
3265 String c_parser::t_openlist(CVarRef v_char) {
3266 INSTANCE_METHOD_INJECTION(Parser, Parser::openList);
3267 String v_result;
3269 (v_result = LINE(1898,t_closeparagraph()));
3270 if (same("*", v_char)) {
3271 concat_assign(v_result, "<ul><li>");
3273 else if (same("#", v_char)) {
3274 concat_assign(v_result, "<ol><li>");
3276 else if (same(":", v_char)) {
3277 concat_assign(v_result, "<dl><dd>");
3279 else if (same(";", v_char)) {
3280 concat_assign(v_result, "<dl><dt>");
3281 (m_mDTopen = true);
3283 else {
3284 (v_result = "<!-- ERR 1 -->");
3286 return v_result;
3287 } /* function */
3288 /* SRC: Parser.php line 1912 */
3289 String c_parser::t_nextitem(CVarRef v_char) {
3290 INSTANCE_METHOD_INJECTION(Parser, Parser::nextItem);
3291 String v_close;
3293 if (same("*", v_char) || same("#", v_char)) {
3294 return "</li><li>";
3296 else if (same(":", v_char) || same(";", v_char)) {
3297 (v_close = "</dd>");
3298 if (toBoolean(m_mDTopen)) {
3299 (v_close = "</dt>");
3301 if (same(";", v_char)) {
3302 (m_mDTopen = true);
3303 return concat(v_close, "<dt>");
3305 else {
3306 (m_mDTopen = false);
3307 return concat(v_close, "<dd>");
3310 return "<!-- ERR 2 -->";
3311 } /* function */
3312 /* SRC: Parser.php line 1928 */
3313 String c_parser::t_closelist(CVarRef v_char) {
3314 INSTANCE_METHOD_INJECTION(Parser, Parser::closeList);
3315 String v_text;
3317 if (same("*", v_char)) {
3318 (v_text = "</li></ul>");
3320 else if (same("#", v_char)) {
3321 (v_text = "</li></ol>");
3323 else if (same(":", v_char)) {
3324 if (toBoolean(m_mDTopen)) {
3325 (m_mDTopen = false);
3326 (v_text = "</dt></dl>");
3328 else {
3329 (v_text = "</dd></dl>");
3332 else {
3333 return "<!-- ERR 3 -->";
3335 return concat(v_text, "\n");
3336 } /* function */
3337 /* SRC: Parser.php line 1951 */
3338 Variant c_parser::t_doblocklevels(CVarRef v_text, bool v_linestart) {
3339 INSTANCE_METHOD_INJECTION(Parser, Parser::doBlockLevels);
3340 Variant eo_0;
3341 Variant eo_1;
3342 Variant v_textLines;
3343 Variant v_output;
3344 Variant v_lastPrefix;
3345 bool v_inBlockElem = false;
3346 Variant v_prefixLength;
3347 Variant v_paragraphStack;
3348 Variant v_oLine;
3349 int v_lastPrefixLength = 0;
3350 Variant v_preCloseMatch;
3351 Variant v_preOpenMatch;
3352 Variant v_prefix;
3353 Variant v_prefix2;
3354 Variant v_t;
3355 Variant v_t2;
3356 Variant v_term;
3357 int64 v_commonPrefixLength = 0;
3358 Variant v_char;
3359 Variant v_openmatch;
3360 Variant v_closematch;
3362 LINE(1952,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::doBlockLevels").create()), 0x0000000075359BAFLL));
3363 (v_textLines = LINE(1958,throw_fatal("unknown class stringutils", ((void*)NULL))));
3364 (v_lastPrefix = (v_output = ""));
3365 (m_mDTopen = (v_inBlockElem = false));
3366 (v_prefixLength = 0LL);
3367 (v_paragraphStack = false);
3369 LOOP_COUNTER(44);
3370 for (ArrayIterPtr iter46 = v_textLines.begin("parser"); !iter46->end(); iter46->next()) {
3371 LOOP_COUNTER_CHECK(44);
3372 v_oLine = iter46->second();
3374 if (!(v_linestart)) {
3375 concat_assign(v_output, toString(v_oLine));
3376 (v_linestart = true);
3377 continue;
3379 (v_lastPrefixLength = LINE(1977,x_strlen(toString(v_lastPrefix))));
3380 (v_preCloseMatch = LINE(1978,x_preg_match("/<\\/pre/i", toString(v_oLine))));
3381 (v_preOpenMatch = LINE(1979,x_preg_match("/<pre/i", toString(v_oLine))));
3382 if (!(toBoolean(m_mInPre))) {
3383 (v_prefixLength = LINE(1983,x_strspn(toString(v_oLine), "*#:;")));
3384 (v_prefix = LINE(1984,x_substr(toString(v_oLine), toInt32(0LL), toInt32(v_prefixLength))));
3385 (v_prefix2 = LINE(1990,x_str_replace(";", ":", v_prefix)));
3386 (v_t = LINE(1991,x_substr(toString(v_oLine), toInt32(v_prefixLength))));
3387 (m_mInPre = toBoolean(v_preOpenMatch));
3389 else {
3390 (v_prefixLength = 0LL);
3391 (v_prefix = (v_prefix2 = ""));
3392 (v_t = v_oLine);
3394 if (toBoolean(v_prefixLength) && same(v_lastPrefix, v_prefix2)) {
3395 concat_assign(v_output, LINE(2003,t_nextitem(x_substr(toString(v_prefix), toInt32(-1LL)))));
3396 (v_paragraphStack = false);
3397 if (same(LINE(2006,x_substr(toString(v_prefix), toInt32(-1LL))), ";")) {
3398 (v_term = (v_t2 = ""));
3399 if (!same(LINE(2012,t_findcolonnolinks(v_t, ref(v_term), ref(v_t2))), false)) {
3400 (v_t = v_t2);
3401 concat_assign(v_output, concat(toString(v_term), LINE(2014,t_nextitem(":"))));
3405 else if (toBoolean(v_prefixLength) || toBoolean(v_lastPrefixLength)) {
3406 (v_commonPrefixLength = LINE(2021,t_getcommon(v_prefix, v_lastPrefix)));
3407 (v_paragraphStack = false);
3408 LOOP_COUNTER(47);
3410 while (less(v_commonPrefixLength, v_lastPrefixLength)) {
3411 LOOP_COUNTER_CHECK(47);
3413 concat_assign(v_output, LINE(2026,t_closelist(v_lastPrefix.rvalAt(v_lastPrefixLength - 1LL))));
3414 --v_lastPrefixLength;
3418 if (not_more(v_prefixLength, v_commonPrefixLength) && more(v_commonPrefixLength, 0LL)) {
3419 concat_assign(v_output, LINE(2032,t_nextitem(v_prefix.rvalAt(v_commonPrefixLength - 1LL))));
3421 LOOP_COUNTER(48);
3423 while (more(v_prefixLength, v_commonPrefixLength)) {
3424 LOOP_COUNTER_CHECK(48);
3426 (v_char = LINE(2037,x_substr(toString(v_prefix), toInt32(v_commonPrefixLength), toInt32(1LL))));
3427 concat_assign(v_output, LINE(2038,t_openlist(v_char)));
3428 if (same(";", v_char)) {
3429 if (!same(LINE(2042,t_findcolonnolinks(v_t, ref(v_term), ref(v_t2))), false)) {
3430 (v_t = v_t2);
3431 concat_assign(v_output, concat(toString(v_term), LINE(2044,t_nextitem(":"))));
3434 ++v_commonPrefixLength;
3438 (v_lastPrefix = v_prefix2);
3440 if (equal(0LL, v_prefixLength)) {
3441 LINE(2054,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::doBlockLevels-paragraph").create()), 0x0000000075359BAFLL));
3442 (v_openmatch = LINE(2057,x_preg_match("/(\?:<table|<blockquote|<h1|<h2|<h3|<h4|<h5|<h6|<pre|<tr|<p|<ul|<ol|<li|<\\/tr|<\\/td|<\\/th)/iS", toString(v_t))));
3443 (v_closematch = LINE(2060,(assignCallTemp(eo_0, concat3("/(\?:<\\/table|<\\/blockquote|<\\/h1|<\\/h2|<\\/h3|<\\/h4|<\\/h5|<\\/h6|<td|<th|<\\/\?div|<hr|<\\/pre|<\\/p|", toString(o_get("mUniqPrefix", 0x22D00FA247E8311DLL)), "-pre|<\\/li|<\\/ul|<\\/ol|<\\/\?center)/iS")),assignCallTemp(eo_1, toString(v_t)),x_preg_match(eo_0, eo_1))));
3444 if ((toBoolean(v_openmatch)) || (toBoolean(v_closematch))) {
3445 (v_paragraphStack = false);
3446 concat_assign(v_output, LINE(2064,t_closeparagraph()));
3447 if ((toBoolean(v_preOpenMatch)) && (!(toBoolean(v_preCloseMatch)))) {
3448 (m_mInPre = true);
3450 if (toBoolean(v_closematch)) {
3451 (v_inBlockElem = false);
3453 else {
3454 (v_inBlockElem = true);
3457 else if (!(v_inBlockElem) && !(toBoolean(m_mInPre))) {
3458 if ((equal(" ", LINE(2074,x_substr(toString(v_t), toInt32(0LL), toInt32(1LL))))) && (((same(m_mLastSection, "pre")) || (!equal(x_trim(toString(v_t)), ""))))) {
3459 if (!same(m_mLastSection, "pre")) {
3460 (v_paragraphStack = false);
3461 concat_assign(v_output, concat(LINE(2078,t_closeparagraph()), "<pre>"));
3462 (m_mLastSection = "pre");
3464 (v_t = LINE(2081,x_substr(toString(v_t), toInt32(1LL))));
3466 else {
3467 if (equal("", LINE(2084,x_trim(toString(v_t))))) {
3468 if (toBoolean(v_paragraphStack)) {
3469 concat_assign(v_output, concat(toString(v_paragraphStack), "<br />"));
3470 (v_paragraphStack = false);
3471 (m_mLastSection = "p");
3473 else {
3474 if (!same(m_mLastSection, "p")) {
3475 concat_assign(v_output, LINE(2091,t_closeparagraph()));
3476 (m_mLastSection = "");
3477 (v_paragraphStack = "<p>");
3479 else {
3480 (v_paragraphStack = "</p><p>");
3484 else {
3485 if (toBoolean(v_paragraphStack)) {
3486 concat_assign(v_output, toString(v_paragraphStack));
3487 (v_paragraphStack = false);
3488 (m_mLastSection = "p");
3490 else if (!same(m_mLastSection, "p")) {
3491 concat_assign(v_output, concat(LINE(2104,t_closeparagraph()), "<p>"));
3492 (m_mLastSection = "p");
3497 LINE(2110,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::doBlockLevels-paragraph").create()), 0x00000000B599F276LL));
3499 if (toBoolean(v_preCloseMatch) && toBoolean(m_mInPre)) {
3500 (m_mInPre = false);
3502 if (same(v_paragraphStack, false)) {
3503 concat_assign(v_output, concat(toString(v_t), "\n"));
3508 LOOP_COUNTER(49);
3510 while (toBoolean(v_prefixLength)) {
3511 LOOP_COUNTER_CHECK(49);
3513 concat_assign(v_output, LINE(2121,t_closelist(v_prefix2.rvalAt(v_prefixLength - 1LL))));
3514 --v_prefixLength;
3518 if (!equal("", m_mLastSection)) {
3519 concat_assign(v_output, LINE(2125,concat3("</", toString(m_mLastSection), ">")));
3520 (m_mLastSection = "");
3522 LINE(2129,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::doBlockLevels").create()), 0x00000000B599F276LL));
3523 return v_output;
3524 } /* function */
3525 /* SRC: Parser.php line 2141 */
3526 Variant c_parser::t_findcolonnolinks(CVarRef v_str, Variant v_before, Variant v_after) {
3527 INSTANCE_METHOD_INJECTION(Parser, Parser::findColonNoLinks);
3528 Variant v_pos;
3529 Variant v_lt;
3530 int64 v_state = 0;
3531 int64 v_stack = 0;
3532 int v_len = 0;
3533 Variant v_i;
3534 Variant v_c;
3535 Variant v_colon;
3537 LINE(2142,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::findColonNoLinks").create()), 0x0000000075359BAFLL));
3538 (v_pos = LINE(2144,x_strpos(toString(v_str), ":")));
3539 if (same(v_pos, false)) {
3540 LINE(2147,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::findColonNoLinks").create()), 0x00000000B599F276LL));
3541 return false;
3543 (v_lt = LINE(2151,x_strpos(toString(v_str), "<")));
3544 if (same(v_lt, false) || more(v_lt, v_pos)) {
3545 (v_before = LINE(2154,x_substr(toString(v_str), toInt32(0LL), toInt32(v_pos))));
3546 (v_after = LINE(2155,x_substr(toString(v_str), toInt32(v_pos + 1LL))));
3547 LINE(2156,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::findColonNoLinks").create()), 0x00000000B599F276LL));
3548 return v_pos;
3550 (v_state = 0LL /* parser::COLON_STATE_TEXT */);
3551 (v_stack = 0LL);
3552 (v_len = LINE(2163,x_strlen(toString(v_str))));
3554 LOOP_COUNTER(50);
3555 for ((v_i = 0LL); less(v_i, v_len); v_i++) {
3556 LOOP_COUNTER_CHECK(50);
3558 (v_c = v_str.rvalAt(v_i));
3560 switch (v_state) {
3561 case 0LL:
3564 Variant tmp53 = (v_c);
3565 int tmp54 = -1;
3566 if (equal(tmp53, ("<"))) {
3567 tmp54 = 0;
3568 } else if (equal(tmp53, (":"))) {
3569 tmp54 = 1;
3570 } else if (true) {
3571 tmp54 = 2;
3573 switch (tmp54) {
3574 case 0:
3576 (v_state = 2LL /* parser::COLON_STATE_TAGSTART */);
3577 goto break52;
3579 case 1:
3581 if (equal(v_stack, 0LL)) {
3582 (v_before = LINE(2178,x_substr(toString(v_str), toInt32(0LL), toInt32(v_i))));
3583 (v_after = LINE(2179,x_substr(toString(v_str), toInt32(v_i + 1LL))));
3584 LINE(2180,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::findColonNoLinks").create()), 0x00000000B599F276LL));
3585 return v_i;
3587 goto break52;
3589 case 2:
3591 (v_colon = LINE(2187,x_strpos(toString(v_str), ":", toInt32(v_i))));
3592 if (same(v_colon, false)) {
3593 LINE(2190,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::findColonNoLinks").create()), 0x00000000B599F276LL));
3594 return false;
3596 (v_lt = LINE(2193,x_strpos(toString(v_str), "<", toInt32(v_i))));
3597 if (same(v_stack, 0LL)) {
3598 if (same(v_lt, false) || less(v_colon, v_lt)) {
3599 (v_before = LINE(2197,x_substr(toString(v_str), toInt32(0LL), toInt32(v_colon))));
3600 (v_after = LINE(2198,x_substr(toString(v_str), toInt32(v_colon + 1LL))));
3601 LINE(2199,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::findColonNoLinks").create()), 0x00000000B599F276LL));
3602 return v_i;
3605 if (same(v_lt, false)) {
3606 goto break51;
3608 (v_i = v_lt);
3609 (v_state = 2LL /* parser::COLON_STATE_TAGSTART */);
3612 break52:;
3614 break;
3616 case 1LL:
3619 Variant tmp56 = (v_c);
3620 int tmp57 = -1;
3621 if (equal(tmp56, (">"))) {
3622 tmp57 = 0;
3623 } else if (equal(tmp56, ("/"))) {
3624 tmp57 = 1;
3625 } else if (true) {
3626 tmp57 = 2;
3628 switch (tmp57) {
3629 case 0:
3631 v_stack++;
3632 (v_state = 0LL /* parser::COLON_STATE_TEXT */);
3633 goto break55;
3635 case 1:
3637 (v_state = 4LL /* parser::COLON_STATE_TAGSLASH */);
3638 goto break55;
3640 case 2:
3644 break55:;
3646 break;
3648 case 2LL:
3651 Variant tmp59 = (v_c);
3652 int tmp60 = -1;
3653 if (equal(tmp59, ("/"))) {
3654 tmp60 = 0;
3655 } else if (equal(tmp59, ("!"))) {
3656 tmp60 = 1;
3657 } else if (equal(tmp59, (">"))) {
3658 tmp60 = 2;
3659 } else if (true) {
3660 tmp60 = 3;
3662 switch (tmp60) {
3663 case 0:
3665 (v_state = 3LL /* parser::COLON_STATE_CLOSETAG */);
3666 goto break58;
3668 case 1:
3670 (v_state = 5LL /* parser::COLON_STATE_COMMENT */);
3671 goto break58;
3673 case 2:
3675 (v_state = 0LL /* parser::COLON_STATE_TEXT */);
3676 goto break58;
3678 case 3:
3680 (v_state = 1LL /* parser::COLON_STATE_TAG */);
3683 break58:;
3685 break;
3687 case 3LL:
3689 if (same(v_c, ">")) {
3690 v_stack--;
3691 if (less(v_stack, 0LL)) {
3692 LINE(2249,invoke_failed("wfdebug", Array(ArrayInit(1).set(0, "Parser::findColonNoLinks: Invalid input; too many close tags\n").create()), 0x00000000E441E905LL));
3693 LINE(2250,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::findColonNoLinks").create()), 0x00000000B599F276LL));
3694 return false;
3696 (v_state = 0LL /* parser::COLON_STATE_TEXT */);
3698 break;
3700 case 4LL:
3702 if (same(v_c, ">")) {
3703 (v_state = 0LL /* parser::COLON_STATE_TEXT */);
3705 else {
3706 (v_state = 1LL /* parser::COLON_STATE_TAG */);
3708 break;
3710 case 5LL:
3712 if (same(v_c, "-")) {
3713 (v_state = 6LL /* parser::COLON_STATE_COMMENTDASH */);
3715 break;
3717 case 6LL:
3719 if (same(v_c, "-")) {
3720 (v_state = 7LL /* parser::COLON_STATE_COMMENTDASHDASH */);
3722 else {
3723 (v_state = 5LL /* parser::COLON_STATE_COMMENT */);
3725 break;
3727 case 7LL:
3729 if (same(v_c, ">")) {
3730 (v_state = 0LL /* parser::COLON_STATE_TEXT */);
3732 else {
3733 (v_state = 5LL /* parser::COLON_STATE_COMMENT */);
3735 break;
3737 default:
3739 throw_exception(LINE(2285,create_object("mwexception", Array(ArrayInit(1).set(0, "State machine error in Parser::findColonNoLinks").create()))));
3742 break51:;
3747 if (more(v_stack, 0LL)) {
3748 LINE(2289,invoke_failed("wfdebug", Array(ArrayInit(1).set(0, concat("Parser::findColonNoLinks", concat5(": Invalid input; not enough close tags (stack ", toString(v_stack), ", state ", toString(v_state), ")\n"))).create()), 0x00000000E441E905LL));
3749 return false;
3751 LINE(2292,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::findColonNoLinks").create()), 0x00000000B599F276LL));
3752 return false;
3753 } /* function */
3754 /* SRC: Parser.php line 2301 */
3755 Variant c_parser::t_getvariablevalue(Variant v_index, Variant v_frame // = false
3757 INSTANCE_METHOD_INJECTION(Parser, Parser::getVariableValue);
3758 Variant eo_0;
3759 Variant eo_1;
3760 Variant eo_2;
3761 DECLARE_GLOBAL_VARIABLES(g);
3762 Variant &gv_wgContLang __attribute__((__unused__)) = g->GV(wgContLang);
3763 Variant &gv_wgSitename __attribute__((__unused__)) = g->GV(wgSitename);
3764 Variant &gv_wgServer __attribute__((__unused__)) = g->GV(wgServer);
3765 Variant &gv_wgServerName __attribute__((__unused__)) = g->GV(wgServerName);
3766 Variant &gv_wgScriptPath __attribute__((__unused__)) = g->GV(wgScriptPath);
3767 Variant &gv_wgStylePath __attribute__((__unused__)) = g->GV(wgStylePath);
3768 Variant v_ts;
3769 Variant &gv_wgLocaltimezone __attribute__((__unused__)) = g->GV(wgLocaltimezone);
3770 Variant v_oldtz;
3771 Variant v_localTimestamp;
3772 Variant v_localMonth;
3773 Variant v_localMonth1;
3774 Variant v_localMonthName;
3775 Variant v_localDay;
3776 Variant v_localDay2;
3777 Variant v_localDayOfWeek;
3778 String v_localWeek;
3779 Variant v_localYear;
3780 Variant v_localHour;
3781 Variant v_value;
3782 Variant v_talkPage;
3783 Variant v_subjPage;
3784 Variant &gv_wgContLanguageCode __attribute__((__unused__)) = g->GV(wgContLanguageCode);
3785 Variant v_wgContLanguageCode;
3786 Variant v_ret;
3792 if (toBoolean(LINE(2309,invoke_failed("wfrunhooks", Array(ArrayInit(2).set(0, "ParserGetVariableValueVarCache").set(1, Array(ArrayInit(2).setRef(0, ref(this)).setRef(1, ref(lval(m_mVarCache))).create())).create()), 0x00000000787A96B2LL)))) {
3793 if (isset(m_mVarCache, v_index)) {
3794 return m_mVarCache.rvalAt(v_index);
3797 (v_ts = LINE(2315,(assignCallTemp(eo_0, k_TS_UNIX),assignCallTemp(eo_1, ref(m_mOptions.o_invoke_few_args("getTimestamp", 0x7533D7D1FB463C81LL, 0))),invoke_failed("wftimestamp", Array(ArrayInit(2).set(0, eo_0).set(1, eo_1).create()), 0x00000000AADC1C20LL))));
3798 LINE(2316,invoke_failed("wfrunhooks", Array(ArrayInit(2).set(0, "ParserGetVariableValueTs").set(1, Array(ArrayInit(2).setRef(0, ref(this)).setRef(1, ref(v_ts)).create())).create()), 0x00000000787A96B2LL));
3799 if (isset(gv_wgLocaltimezone)) {
3800 (v_oldtz = LINE(2321,x_getenv("TZ")));
3801 LINE(2322,x_putenv(concat("TZ=", toString(gv_wgLocaltimezone))));
3803 LINE(2325,invoke_failed("wfsuppresswarnings", Array(), 0x00000000FCF68A6CLL));
3804 (v_localTimestamp = LINE(2326,x_date("YmdHis", toInt64(v_ts))));
3805 (v_localMonth = LINE(2327,x_date("m", toInt64(v_ts))));
3806 (v_localMonth1 = LINE(2328,x_date("n", toInt64(v_ts))));
3807 (v_localMonthName = LINE(2329,x_date("n", toInt64(v_ts))));
3808 (v_localDay = LINE(2330,x_date("j", toInt64(v_ts))));
3809 (v_localDay2 = LINE(2331,x_date("d", toInt64(v_ts))));
3810 (v_localDayOfWeek = LINE(2332,x_date("w", toInt64(v_ts))));
3811 (v_localWeek = LINE(2333,x_date("W", toInt64(v_ts))));
3812 (v_localYear = LINE(2334,x_date("Y", toInt64(v_ts))));
3813 (v_localHour = LINE(2335,x_date("H", toInt64(v_ts))));
3814 if (isset(gv_wgLocaltimezone)) {
3815 LINE(2337,x_putenv(concat("TZ=", toString(v_oldtz))));
3817 LINE(2339,invoke_failed("wfrestorewarnings", Array(), 0x000000001BD025E4LL));
3819 Variant tmp62 = (v_index);
3820 int tmp63 = -1;
3821 if (equal(tmp62, ("currentmonth"))) {
3822 tmp63 = 0;
3823 } else if (equal(tmp62, ("currentmonth1"))) {
3824 tmp63 = 1;
3825 } else if (equal(tmp62, ("currentmonthname"))) {
3826 tmp63 = 2;
3827 } else if (equal(tmp62, ("currentmonthnamegen"))) {
3828 tmp63 = 3;
3829 } else if (equal(tmp62, ("currentmonthabbrev"))) {
3830 tmp63 = 4;
3831 } else if (equal(tmp62, ("currentday"))) {
3832 tmp63 = 5;
3833 } else if (equal(tmp62, ("currentday2"))) {
3834 tmp63 = 6;
3835 } else if (equal(tmp62, ("localmonth"))) {
3836 tmp63 = 7;
3837 } else if (equal(tmp62, ("localmonth1"))) {
3838 tmp63 = 8;
3839 } else if (equal(tmp62, ("localmonthname"))) {
3840 tmp63 = 9;
3841 } else if (equal(tmp62, ("localmonthnamegen"))) {
3842 tmp63 = 10;
3843 } else if (equal(tmp62, ("localmonthabbrev"))) {
3844 tmp63 = 11;
3845 } else if (equal(tmp62, ("localday"))) {
3846 tmp63 = 12;
3847 } else if (equal(tmp62, ("localday2"))) {
3848 tmp63 = 13;
3849 } else if (equal(tmp62, ("pagename"))) {
3850 tmp63 = 14;
3851 } else if (equal(tmp62, ("pagenamee"))) {
3852 tmp63 = 15;
3853 } else if (equal(tmp62, ("fullpagename"))) {
3854 tmp63 = 16;
3855 } else if (equal(tmp62, ("fullpagenamee"))) {
3856 tmp63 = 17;
3857 } else if (equal(tmp62, ("subpagename"))) {
3858 tmp63 = 18;
3859 } else if (equal(tmp62, ("subpagenamee"))) {
3860 tmp63 = 19;
3861 } else if (equal(tmp62, ("basepagename"))) {
3862 tmp63 = 20;
3863 } else if (equal(tmp62, ("basepagenamee"))) {
3864 tmp63 = 21;
3865 } else if (equal(tmp62, ("talkpagename"))) {
3866 tmp63 = 22;
3867 } else if (equal(tmp62, ("talkpagenamee"))) {
3868 tmp63 = 23;
3869 } else if (equal(tmp62, ("subjectpagename"))) {
3870 tmp63 = 24;
3871 } else if (equal(tmp62, ("subjectpagenamee"))) {
3872 tmp63 = 25;
3873 } else if (equal(tmp62, ("revisionid"))) {
3874 tmp63 = 26;
3875 } else if (equal(tmp62, ("revisionday"))) {
3876 tmp63 = 27;
3877 } else if (equal(tmp62, ("revisionday2"))) {
3878 tmp63 = 28;
3879 } else if (equal(tmp62, ("revisionmonth"))) {
3880 tmp63 = 29;
3881 } else if (equal(tmp62, ("revisionyear"))) {
3882 tmp63 = 30;
3883 } else if (equal(tmp62, ("revisiontimestamp"))) {
3884 tmp63 = 31;
3885 } else if (equal(tmp62, ("revisionuser"))) {
3886 tmp63 = 32;
3887 } else if (equal(tmp62, ("namespace"))) {
3888 tmp63 = 33;
3889 } else if (equal(tmp62, ("namespacee"))) {
3890 tmp63 = 34;
3891 } else if (equal(tmp62, ("talkspace"))) {
3892 tmp63 = 35;
3893 } else if (equal(tmp62, ("talkspacee"))) {
3894 tmp63 = 36;
3895 } else if (equal(tmp62, ("subjectspace"))) {
3896 tmp63 = 37;
3897 } else if (equal(tmp62, ("subjectspacee"))) {
3898 tmp63 = 38;
3899 } else if (equal(tmp62, ("currentdayname"))) {
3900 tmp63 = 39;
3901 } else if (equal(tmp62, ("currentyear"))) {
3902 tmp63 = 40;
3903 } else if (equal(tmp62, ("currenttime"))) {
3904 tmp63 = 41;
3905 } else if (equal(tmp62, ("currenthour"))) {
3906 tmp63 = 42;
3907 } else if (equal(tmp62, ("currentweek"))) {
3908 tmp63 = 43;
3909 } else if (equal(tmp62, ("currentdow"))) {
3910 tmp63 = 44;
3911 } else if (equal(tmp62, ("localdayname"))) {
3912 tmp63 = 45;
3913 } else if (equal(tmp62, ("localyear"))) {
3914 tmp63 = 46;
3915 } else if (equal(tmp62, ("localtime"))) {
3916 tmp63 = 47;
3917 } else if (equal(tmp62, ("localhour"))) {
3918 tmp63 = 48;
3919 } else if (equal(tmp62, ("localweek"))) {
3920 tmp63 = 49;
3921 } else if (equal(tmp62, ("localdow"))) {
3922 tmp63 = 50;
3923 } else if (equal(tmp62, ("numberofarticles"))) {
3924 tmp63 = 51;
3925 } else if (equal(tmp62, ("numberoffiles"))) {
3926 tmp63 = 52;
3927 } else if (equal(tmp62, ("numberofusers"))) {
3928 tmp63 = 53;
3929 } else if (equal(tmp62, ("numberofactiveusers"))) {
3930 tmp63 = 54;
3931 } else if (equal(tmp62, ("numberofpages"))) {
3932 tmp63 = 55;
3933 } else if (equal(tmp62, ("numberofadmins"))) {
3934 tmp63 = 56;
3935 } else if (equal(tmp62, ("numberofedits"))) {
3936 tmp63 = 57;
3937 } else if (equal(tmp62, ("numberofviews"))) {
3938 tmp63 = 58;
3939 } else if (equal(tmp62, ("currenttimestamp"))) {
3940 tmp63 = 59;
3941 } else if (equal(tmp62, ("localtimestamp"))) {
3942 tmp63 = 60;
3943 } else if (equal(tmp62, ("currentversion"))) {
3944 tmp63 = 61;
3945 } else if (equal(tmp62, ("sitename"))) {
3946 tmp63 = 62;
3947 } else if (equal(tmp62, ("server"))) {
3948 tmp63 = 63;
3949 } else if (equal(tmp62, ("servername"))) {
3950 tmp63 = 64;
3951 } else if (equal(tmp62, ("scriptpath"))) {
3952 tmp63 = 65;
3953 } else if (equal(tmp62, ("directionmark"))) {
3954 tmp63 = 66;
3955 } else if (equal(tmp62, ("contentlanguage"))) {
3956 tmp63 = 67;
3957 } else if (true) {
3958 tmp63 = 68;
3960 switch (tmp63) {
3961 case 0:
3963 (v_value = LINE(2343,gv_wgContLang.o_invoke_few_args("formatNum", 0x0FEB8F5DDB8EBB5ALL, 1, x_gmdate("m", toInt64(v_ts)))));
3964 goto break61;
3966 case 1:
3968 (v_value = LINE(2346,gv_wgContLang.o_invoke_few_args("formatNum", 0x0FEB8F5DDB8EBB5ALL, 1, x_gmdate("n", toInt64(v_ts)))));
3969 goto break61;
3971 case 2:
3973 (v_value = LINE(2349,gv_wgContLang.o_invoke_few_args("getMonthName", 0x5DEDDA0E21068FE8LL, 1, x_gmdate("n", toInt64(v_ts)))));
3974 goto break61;
3976 case 3:
3978 (v_value = LINE(2352,gv_wgContLang.o_invoke_few_args("getMonthNameGen", 0x4A5939DD128D7FF8LL, 1, x_gmdate("n", toInt64(v_ts)))));
3979 goto break61;
3981 case 4:
3983 (v_value = LINE(2355,gv_wgContLang.o_invoke_few_args("getMonthAbbreviation", 0x75A1001EE20C7275LL, 1, x_gmdate("n", toInt64(v_ts)))));
3984 goto break61;
3986 case 5:
3988 (v_value = LINE(2358,gv_wgContLang.o_invoke_few_args("formatNum", 0x0FEB8F5DDB8EBB5ALL, 1, x_gmdate("j", toInt64(v_ts)))));
3989 goto break61;
3991 case 6:
3993 (v_value = LINE(2361,gv_wgContLang.o_invoke_few_args("formatNum", 0x0FEB8F5DDB8EBB5ALL, 1, x_gmdate("d", toInt64(v_ts)))));
3994 goto break61;
3996 case 7:
3998 (v_value = LINE(2364,gv_wgContLang.o_invoke_few_args("formatNum", 0x0FEB8F5DDB8EBB5ALL, 1, v_localMonth)));
3999 goto break61;
4001 case 8:
4003 (v_value = LINE(2367,gv_wgContLang.o_invoke_few_args("formatNum", 0x0FEB8F5DDB8EBB5ALL, 1, v_localMonth1)));
4004 goto break61;
4006 case 9:
4008 (v_value = LINE(2370,gv_wgContLang.o_invoke_few_args("getMonthName", 0x5DEDDA0E21068FE8LL, 1, v_localMonthName)));
4009 goto break61;
4011 case 10:
4013 (v_value = LINE(2373,gv_wgContLang.o_invoke_few_args("getMonthNameGen", 0x4A5939DD128D7FF8LL, 1, v_localMonthName)));
4014 goto break61;
4016 case 11:
4018 (v_value = LINE(2376,gv_wgContLang.o_invoke_few_args("getMonthAbbreviation", 0x75A1001EE20C7275LL, 1, v_localMonthName)));
4019 goto break61;
4021 case 12:
4023 (v_value = LINE(2379,gv_wgContLang.o_invoke_few_args("formatNum", 0x0FEB8F5DDB8EBB5ALL, 1, v_localDay)));
4024 goto break61;
4026 case 13:
4028 (v_value = LINE(2382,gv_wgContLang.o_invoke_few_args("formatNum", 0x0FEB8F5DDB8EBB5ALL, 1, v_localDay2)));
4029 goto break61;
4031 case 14:
4033 (v_value = LINE(2385,invoke_failed("wfescapewikitext", Array(ArrayInit(1).set(0, ref(m_mTitle.o_invoke_few_args("getText", 0x434CEBEC8FDBB880LL, 0))).create()), 0x00000000B3382909LL)));
4034 goto break61;
4036 case 15:
4038 (v_value = LINE(2388,m_mTitle.o_invoke_few_args("getPartialURL", 0x174317C1190941C3LL, 0)));
4039 goto break61;
4041 case 16:
4043 (v_value = LINE(2391,invoke_failed("wfescapewikitext", Array(ArrayInit(1).set(0, ref(m_mTitle.o_invoke_few_args("getPrefixedText", 0x33044BA725446A43LL, 0))).create()), 0x00000000B3382909LL)));
4044 goto break61;
4046 case 17:
4048 (v_value = LINE(2394,m_mTitle.o_invoke_few_args("getPrefixedURL", 0x087B6C631A0C440BLL, 0)));
4049 goto break61;
4051 case 18:
4053 (v_value = LINE(2397,invoke_failed("wfescapewikitext", Array(ArrayInit(1).set(0, ref(m_mTitle.o_invoke_few_args("getSubpageText", 0x01F4FD5FE8105897LL, 0))).create()), 0x00000000B3382909LL)));
4054 goto break61;
4056 case 19:
4058 (v_value = LINE(2400,m_mTitle.o_invoke_few_args("getSubpageUrlForm", 0x491DC72710364585LL, 0)));
4059 goto break61;
4061 case 20:
4063 (v_value = LINE(2403,invoke_failed("wfescapewikitext", Array(ArrayInit(1).set(0, ref(m_mTitle.o_invoke_few_args("getBaseText", 0x23DB8A9B7829E674LL, 0))).create()), 0x00000000B3382909LL)));
4064 goto break61;
4066 case 21:
4068 (v_value = LINE(2406,invoke_failed("wfurlencode", Array(ArrayInit(1).set(0, ref((assignCallTemp(eo_2, m_mTitle.o_invoke_few_args("getBaseText", 0x23DB8A9B7829E674LL, 0)),x_str_replace(" ", "_", eo_2)))).create()), 0x00000000BFE709E0LL)));
4069 goto break61;
4071 case 22:
4073 if (toBoolean(LINE(2409,m_mTitle.o_invoke_few_args("canTalk", 0x6F6C6847DA1689A2LL, 0)))) {
4074 (v_talkPage = LINE(2410,m_mTitle.o_invoke_few_args("getTalkPage", 0x58258DF57A9BDD12LL, 0)));
4075 (v_value = LINE(2411,invoke_failed("wfescapewikitext", Array(ArrayInit(1).set(0, ref(v_talkPage.o_invoke_few_args("getPrefixedText", 0x33044BA725446A43LL, 0))).create()), 0x00000000B3382909LL)));
4077 else {
4078 (v_value = "");
4080 goto break61;
4082 case 23:
4084 if (toBoolean(LINE(2417,m_mTitle.o_invoke_few_args("canTalk", 0x6F6C6847DA1689A2LL, 0)))) {
4085 (v_talkPage = LINE(2418,m_mTitle.o_invoke_few_args("getTalkPage", 0x58258DF57A9BDD12LL, 0)));
4086 (v_value = LINE(2419,v_talkPage.o_invoke_few_args("getPrefixedUrl", 0x087B6C631A0C440BLL, 0)));
4088 else {
4089 (v_value = "");
4091 goto break61;
4093 case 24:
4095 (v_subjPage = LINE(2425,m_mTitle.o_invoke_few_args("getSubjectPage", 0x366024925AE201F8LL, 0)));
4096 (v_value = LINE(2426,invoke_failed("wfescapewikitext", Array(ArrayInit(1).set(0, ref(v_subjPage.o_invoke_few_args("getPrefixedText", 0x33044BA725446A43LL, 0))).create()), 0x00000000B3382909LL)));
4097 goto break61;
4099 case 25:
4101 (v_subjPage = LINE(2429,m_mTitle.o_invoke_few_args("getSubjectPage", 0x366024925AE201F8LL, 0)));
4102 (v_value = LINE(2430,v_subjPage.o_invoke_few_args("getPrefixedUrl", 0x087B6C631A0C440BLL, 0)));
4103 goto break61;
4105 case 26:
4107 LINE(2435,m_mOutput.o_invoke_few_args("setFlag", 0x17EB983A0D55AFA3LL, 1, "vary-revision"));
4108 LINE(2436,invoke_failed("wfdebug", Array(ArrayInit(1).set(0, "Parser::getVariableValue: {{REVISIONID}} used, setting vary-revision...\n").create()), 0x00000000E441E905LL));
4109 (v_value = m_mRevisionId);
4110 goto break61;
4112 case 27:
4114 LINE(2442,m_mOutput.o_invoke_few_args("setFlag", 0x17EB983A0D55AFA3LL, 1, "vary-revision"));
4115 LINE(2443,invoke_failed("wfdebug", Array(ArrayInit(1).set(0, "Parser::getVariableValue: {{REVISIONDAY}} used, setting vary-revision...\n").create()), 0x00000000E441E905LL));
4116 (v_value = LINE(2444,x_intval((assignCallTemp(eo_0, toString(t_getrevisiontimestamp())),x_substr(eo_0, toInt32(6LL), toInt32(2LL))))));
4117 goto break61;
4119 case 28:
4121 LINE(2449,m_mOutput.o_invoke_few_args("setFlag", 0x17EB983A0D55AFA3LL, 1, "vary-revision"));
4122 LINE(2450,invoke_failed("wfdebug", Array(ArrayInit(1).set(0, "Parser::getVariableValue: {{REVISIONDAY2}} used, setting vary-revision...\n").create()), 0x00000000E441E905LL));
4123 (v_value = LINE(2451,(assignCallTemp(eo_0, toString(t_getrevisiontimestamp())),x_substr(eo_0, toInt32(6LL), toInt32(2LL)))));
4124 goto break61;
4126 case 29:
4128 LINE(2456,m_mOutput.o_invoke_few_args("setFlag", 0x17EB983A0D55AFA3LL, 1, "vary-revision"));
4129 LINE(2457,invoke_failed("wfdebug", Array(ArrayInit(1).set(0, "Parser::getVariableValue: {{REVISIONMONTH}} used, setting vary-revision...\n").create()), 0x00000000E441E905LL));
4130 (v_value = LINE(2458,x_intval((assignCallTemp(eo_0, toString(t_getrevisiontimestamp())),x_substr(eo_0, toInt32(4LL), toInt32(2LL))))));
4131 goto break61;
4133 case 30:
4135 LINE(2463,m_mOutput.o_invoke_few_args("setFlag", 0x17EB983A0D55AFA3LL, 1, "vary-revision"));
4136 LINE(2464,invoke_failed("wfdebug", Array(ArrayInit(1).set(0, "Parser::getVariableValue: {{REVISIONYEAR}} used, setting vary-revision...\n").create()), 0x00000000E441E905LL));
4137 (v_value = LINE(2465,(assignCallTemp(eo_0, toString(t_getrevisiontimestamp())),x_substr(eo_0, toInt32(0LL), toInt32(4LL)))));
4138 goto break61;
4140 case 31:
4142 LINE(2470,m_mOutput.o_invoke_few_args("setFlag", 0x17EB983A0D55AFA3LL, 1, "vary-revision"));
4143 LINE(2471,invoke_failed("wfdebug", Array(ArrayInit(1).set(0, "Parser::getVariableValue: {{REVISIONTIMESTAMP}} used, setting vary-revision...\n").create()), 0x00000000E441E905LL));
4144 (v_value = LINE(2472,t_getrevisiontimestamp()));
4145 goto break61;
4147 case 32:
4149 LINE(2477,m_mOutput.o_invoke_few_args("setFlag", 0x17EB983A0D55AFA3LL, 1, "vary-revision"));
4150 LINE(2478,invoke_failed("wfdebug", Array(ArrayInit(1).set(0, "Parser::getVariableValue: {{REVISIONUSER}} used, setting vary-revision...\n").create()), 0x00000000E441E905LL));
4151 (v_value = LINE(2479,t_getrevisionuser()));
4152 goto break61;
4154 case 33:
4156 (v_value = LINE(2482,(assignCallTemp(eo_2, gv_wgContLang.o_invoke_few_args("getNsText", 0x3A9D9935C2A87562LL, 1, m_mTitle.o_invoke_few_args("getNamespace", 0x6DC05480D007D522LL, 0))),x_str_replace("_", " ", eo_2))));
4157 goto break61;
4159 case 34:
4161 (v_value = LINE(2485,invoke_failed("wfurlencode", Array(ArrayInit(1).set(0, ref(gv_wgContLang.o_invoke_few_args("getNsText", 0x3A9D9935C2A87562LL, 1, m_mTitle.o_invoke_few_args("getNamespace", 0x6DC05480D007D522LL, 0)))).create()), 0x00000000BFE709E0LL)));
4162 goto break61;
4164 case 35:
4166 (v_value = toBoolean(LINE(2488,m_mTitle.o_invoke_few_args("canTalk", 0x6F6C6847DA1689A2LL, 0))) ? ((Variant)((assignCallTemp(eo_2, m_mTitle.o_invoke_few_args("getTalkNsText", 0x51ABF4A6AFECC524LL, 0)),x_str_replace("_", " ", eo_2)))) : ((Variant)("")));
4167 goto break61;
4169 case 36:
4171 (v_value = toBoolean(LINE(2491,m_mTitle.o_invoke_few_args("canTalk", 0x6F6C6847DA1689A2LL, 0))) ? ((Variant)(invoke_failed("wfurlencode", Array(ArrayInit(1).set(0, ref(m_mTitle.o_invoke_few_args("getTalkNsText", 0x51ABF4A6AFECC524LL, 0))).create()), 0x00000000BFE709E0LL))) : ((Variant)("")));
4172 goto break61;
4174 case 37:
4176 (v_value = LINE(2494,m_mTitle.o_invoke_few_args("getSubjectNsText", 0x601B23155AB888BDLL, 0)));
4177 goto break61;
4179 case 38:
4181 (v_value = (LINE(2497,invoke_failed("wfurlencode", Array(ArrayInit(1).set(0, ref(m_mTitle.o_invoke_few_args("getSubjectNsText", 0x601B23155AB888BDLL, 0))).create()), 0x00000000BFE709E0LL))));
4182 goto break61;
4184 case 39:
4186 (v_value = LINE(2500,gv_wgContLang.o_invoke_few_args("getWeekdayName", 0x0DEF9E6D61D4F31FLL, 1, (Variant)(x_gmdate("w", toInt64(v_ts))) + 1LL)));
4187 goto break61;
4189 case 40:
4191 (v_value = (assignCallTemp(eo_0, ref(LINE(2503,x_gmdate("Y", toInt64(v_ts))))),gv_wgContLang.o_invoke("formatNum", Array(ArrayInit(2).set(0, eo_0).set(1, true).create()), 0x0FEB8F5DDB8EBB5ALL)));
4192 goto break61;
4194 case 41:
4196 (v_value = (assignCallTemp(eo_0, ref(LINE(2506,invoke_failed("wftimestamp", Array(ArrayInit(2).set(0, k_TS_MW).set(1, ref(v_ts)).create()), 0x00000000AADC1C20LL)))),gv_wgContLang.o_invoke("time", Array(ArrayInit(3).set(0, eo_0).set(1, false).set(2, false).create()), 0x74ABB4A1E10BBBF7LL)));
4197 goto break61;
4199 case 42:
4201 (v_value = (assignCallTemp(eo_0, ref(LINE(2509,x_gmdate("H", toInt64(v_ts))))),gv_wgContLang.o_invoke("formatNum", Array(ArrayInit(2).set(0, eo_0).set(1, true).create()), 0x0FEB8F5DDB8EBB5ALL)));
4202 goto break61;
4204 case 43:
4206 (v_value = LINE(2514,gv_wgContLang.o_invoke_few_args("formatNum", 0x0FEB8F5DDB8EBB5ALL, 1, toInt64(x_gmdate("W", toInt64(v_ts))))));
4207 goto break61;
4209 case 44:
4211 (v_value = LINE(2517,gv_wgContLang.o_invoke_few_args("formatNum", 0x0FEB8F5DDB8EBB5ALL, 1, x_gmdate("w", toInt64(v_ts)))));
4212 goto break61;
4214 case 45:
4216 (v_value = LINE(2520,gv_wgContLang.o_invoke_few_args("getWeekdayName", 0x0DEF9E6D61D4F31FLL, 1, v_localDayOfWeek + 1LL)));
4217 goto break61;
4219 case 46:
4221 (v_value = LINE(2523,gv_wgContLang.o_invoke_few_args("formatNum", 0x0FEB8F5DDB8EBB5ALL, 2, v_localYear, true)));
4222 goto break61;
4224 case 47:
4226 (v_value = LINE(2526,gv_wgContLang.o_invoke_few_args("time", 0x74ABB4A1E10BBBF7LL, 3, v_localTimestamp, false, false)));
4227 goto break61;
4229 case 48:
4231 (v_value = LINE(2529,gv_wgContLang.o_invoke_few_args("formatNum", 0x0FEB8F5DDB8EBB5ALL, 2, v_localHour, true)));
4232 goto break61;
4234 case 49:
4236 (v_value = LINE(2534,gv_wgContLang.o_invoke_few_args("formatNum", 0x0FEB8F5DDB8EBB5ALL, 1, toInt64(v_localWeek))));
4237 goto break61;
4239 case 50:
4241 (v_value = LINE(2537,gv_wgContLang.o_invoke_few_args("formatNum", 0x0FEB8F5DDB8EBB5ALL, 1, v_localDayOfWeek)));
4242 goto break61;
4244 case 51:
4246 (v_value = LINE(2540,gv_wgContLang.o_invoke_few_args("formatNum", 0x0FEB8F5DDB8EBB5ALL, 1, throw_fatal("unknown class sitestats", ((void*)NULL)))));
4247 goto break61;
4249 case 52:
4251 (v_value = LINE(2543,gv_wgContLang.o_invoke_few_args("formatNum", 0x0FEB8F5DDB8EBB5ALL, 1, throw_fatal("unknown class sitestats", ((void*)NULL)))));
4252 goto break61;
4254 case 53:
4256 (v_value = LINE(2546,gv_wgContLang.o_invoke_few_args("formatNum", 0x0FEB8F5DDB8EBB5ALL, 1, throw_fatal("unknown class sitestats", ((void*)NULL)))));
4257 goto break61;
4259 case 54:
4261 (v_value = LINE(2549,gv_wgContLang.o_invoke_few_args("formatNum", 0x0FEB8F5DDB8EBB5ALL, 1, throw_fatal("unknown class sitestats", ((void*)NULL)))));
4262 goto break61;
4264 case 55:
4266 (v_value = LINE(2552,gv_wgContLang.o_invoke_few_args("formatNum", 0x0FEB8F5DDB8EBB5ALL, 1, throw_fatal("unknown class sitestats", ((void*)NULL)))));
4267 goto break61;
4269 case 56:
4271 (v_value = LINE(2555,gv_wgContLang.o_invoke_few_args("formatNum", 0x0FEB8F5DDB8EBB5ALL, 1, throw_fatal("unknown class sitestats", ((void*)NULL)))));
4272 goto break61;
4274 case 57:
4276 (v_value = LINE(2558,gv_wgContLang.o_invoke_few_args("formatNum", 0x0FEB8F5DDB8EBB5ALL, 1, throw_fatal("unknown class sitestats", ((void*)NULL)))));
4277 goto break61;
4279 case 58:
4281 (v_value = LINE(2561,gv_wgContLang.o_invoke_few_args("formatNum", 0x0FEB8F5DDB8EBB5ALL, 1, throw_fatal("unknown class sitestats", ((void*)NULL)))));
4282 goto break61;
4284 case 59:
4286 (v_value = LINE(2564,invoke_failed("wftimestamp", Array(ArrayInit(2).set(0, k_TS_MW).set(1, ref(v_ts)).create()), 0x00000000AADC1C20LL)));
4287 goto break61;
4289 case 60:
4291 (v_value = v_localTimestamp);
4292 goto break61;
4294 case 61:
4296 (v_value = LINE(2570,throw_fatal("unknown class specialversion", ((void*)NULL))));
4297 goto break61;
4299 case 62:
4301 return gv_wgSitename;
4303 case 63:
4305 return gv_wgServer;
4307 case 64:
4309 return gv_wgServerName;
4311 case 65:
4313 return gv_wgScriptPath;
4315 case 66:
4317 return LINE(2581,gv_wgContLang.o_invoke_few_args("getDirMark", 0x5BF4F4487797223BLL, 0));
4319 case 67:
4321 v_wgContLanguageCode = ref(g->GV(wgContLanguageCode));
4322 return v_wgContLanguageCode;
4324 case 68:
4326 setNull(v_ret);
4327 if (toBoolean(LINE(2587,invoke_failed("wfrunhooks", Array(ArrayInit(2).set(0, "ParserGetVariableValueSwitch").set(1, Array(ArrayInit(5).setRef(0, ref(this)).setRef(1, ref(lval(m_mVarCache))).setRef(2, ref(v_index)).setRef(3, ref(v_ret)).setRef(4, ref(v_frame)).create())).create()), 0x00000000787A96B2LL)))) return v_ret;
4328 else return null;
4331 break61:;
4333 if (toBoolean(v_index)) m_mVarCache.set(v_index, (v_value));
4334 return v_value;
4335 } /* function */
4336 /* SRC: Parser.php line 2604 */
4337 void c_parser::t_initialisevariables() {
4338 INSTANCE_METHOD_INJECTION(Parser, Parser::initialiseVariables);
4339 Variant v_variableIDs;
4341 LINE(2605,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::initialiseVariables").create()), 0x0000000075359BAFLL));
4342 (v_variableIDs = LINE(2606,throw_fatal("unknown class magicword", ((void*)NULL))));
4343 (m_mVariables = LINE(2608,create_object("magicwordarray", Array(ArrayInit(1).set(0, v_variableIDs).create()))));
4344 LINE(2609,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::initialiseVariables").create()), 0x00000000B599F276LL));
4345 } /* function */
4346 /* SRC: Parser.php line 2634 */
4347 Variant c_parser::t_preprocesstodom(Variant v_text, Variant v_flags // = 0LL
4349 INSTANCE_METHOD_INJECTION(Parser, Parser::preprocessToDom);
4350 Variant eo_0;
4351 Variant v_dom;
4353 (v_dom = (assignCallTemp(eo_0, toObject(LINE(2635,t_getpreprocessor()))),eo_0.o_invoke_few_args("preprocessToObj", 0x0BA55A9913645813LL, 2, v_text, v_flags)));
4354 return v_dom;
4355 } /* function */
4356 /* SRC: Parser.php line 2642 */
4357 Array c_parser::ti_splitwhitespace(const char* cls, CVarRef v_s) {
4358 STATIC_METHOD_INJECTION(Parser, Parser::splitWhitespace);
4359 Variant eo_0;
4360 Variant eo_1;
4361 Variant eo_2;
4362 String v_ltrimmed;
4363 Variant v_w1;
4364 String v_trimmed;
4365 Numeric v_diff = 0;
4366 Variant v_w2;
4368 (v_ltrimmed = LINE(2643,x_ltrim(toString(v_s))));
4369 (v_w1 = LINE(2644,(assignCallTemp(eo_0, toString(v_s)),assignCallTemp(eo_2, toInt32(minus_rev(x_strlen(v_ltrimmed), x_strlen(toString(v_s))))),x_substr(eo_0, toInt32(0LL), eo_2))));
4370 (v_trimmed = LINE(2645,x_rtrim(v_ltrimmed)));
4371 (v_diff = minus_rev(LINE(2646,x_strlen(v_trimmed)), x_strlen(v_ltrimmed)));
4372 if (more(v_diff, 0LL)) {
4373 (v_w2 = LINE(2648,x_substr(v_ltrimmed, toInt32(negate(v_diff)))));
4375 else {
4376 (v_w2 = "");
4378 return Array(ArrayInit(3).set(0, v_w1).set(1, v_trimmed).set(2, v_w2).create());
4379 } /* function */
4380 /* SRC: Parser.php line 2672 */
4381 Variant c_parser::t_replacevariables(Variant v_text, Variant v_frame // = false
4382 , CVarRef v_argsOnly // = false
4384 INSTANCE_METHOD_INJECTION(Parser, Parser::replaceVariables);
4385 Variant eo_0;
4386 Variant eo_1;
4387 Variant v_dom;
4388 Variant v_flags;
4390 if (less(LINE(2674,x_strlen(toString(v_text))), 1LL) || more_rev(m_mOptions.o_invoke_few_args("getMaxIncludeSize", 0x5356D47AAA28FDF5LL, 0), x_strlen(toString(v_text)))) {
4391 return v_text;
4393 LINE(2677,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::replaceVariables").create()), 0x0000000075359BAFLL));
4394 if (same(v_frame, false)) {
4395 (v_frame = (assignCallTemp(eo_0, toObject(LINE(2680,t_getpreprocessor()))),eo_0.o_invoke_few_args("newFrame", 0x787B6141D7721675LL, 0)));
4397 else if (!((instanceOf(v_frame, "PPFrame")))) {
4398 LINE(2682,invoke_failed("wfdebug", Array(ArrayInit(1).set(0, "Parser::replaceVariables called using plain parameters instead of a PPFrame instance. Creating custom frame.\n").create()), 0x00000000E441E905LL));
4399 (v_frame = (assignCallTemp(eo_1, toObject(LINE(2683,t_getpreprocessor()))),eo_1.o_invoke_few_args("newCustomFrame", 0x5A11FE5B629AF7A0LL, 1, v_frame)));
4401 (v_dom = LINE(2686,t_preprocesstodom(v_text)));
4402 (v_flags = toBoolean(v_argsOnly) ? ((2LL /* ppframe::NO_TEMPLATES */)) : ((0LL)));
4403 (v_text = LINE(2688,v_frame.o_invoke_few_args("expand", 0x39B7BB05F05A37CDLL, 2, v_dom, v_flags)));
4404 LINE(2690,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::replaceVariables").create()), 0x00000000B599F276LL));
4405 return v_text;
4406 } /* function */
4407 /* SRC: Parser.php line 2695 */
4408 Variant c_parser::ti_createassocargs(const char* cls, CArrRef v_args) {
4409 STATIC_METHOD_INJECTION(Parser, Parser::createAssocArgs);
4410 Variant v_assocArgs;
4411 int64 v_index = 0;
4412 Variant v_arg;
4413 Variant v_eqpos;
4414 String v_name;
4415 String v_value;
4417 (v_assocArgs = ScalarArrays::sa_[0]);
4418 (v_index = 1LL);
4420 LOOP_COUNTER(64);
4421 for (ArrayIter iter66 = v_args.begin("parser"); !iter66.end(); ++iter66) {
4422 LOOP_COUNTER_CHECK(64);
4423 v_arg = iter66.second();
4425 (v_eqpos = LINE(2699,x_strpos(toString(v_arg), "=")));
4426 if (same(v_eqpos, false)) {
4427 v_assocArgs.set(v_index++, (v_arg));
4429 else {
4430 (v_name = LINE(2703,x_trim(toString(x_substr(toString(v_arg), toInt32(0LL), toInt32(v_eqpos))))));
4431 (v_value = LINE(2704,x_trim(toString(x_substr(toString(v_arg), toInt32(v_eqpos + 1LL))))));
4432 if (same(v_value, false)) {
4433 (v_value = "");
4435 if (!same(v_name, false)) {
4436 v_assocArgs.set(v_name, (v_value));
4442 return v_assocArgs;
4443 } /* function */
4444 /* SRC: Parser.php line 2728 */
4445 void c_parser::t_limitationwarn(CStrRef v_limitationType, Variant v_current // = null
4446 , Variant v_max // = null
4448 INSTANCE_METHOD_INJECTION(Parser, Parser::limitationWarn);
4449 Variant v_warning;
4451 (v_warning = LINE(2730,invoke_failed("wfmsgext", Array(ArrayInit(4).set(0, v_limitationType + toString("-warning")).set(1, Array(ArrayInit(2).set(0, "parsemag").set(1, "escape").create())).set(2, ref(v_current)).set(3, ref(v_max)).create()), 0x000000001BB87306LL)));
4452 LINE(2731,m_mOutput.o_invoke_few_args("addWarning", 0x1E1ACEDC035034C5LL, 1, v_warning));
4453 LINE(2732,t_addtrackingcategory(v_limitationType + toString("-category")));
4454 } /* function */
4455 /* SRC: Parser.php line 2747 */
4456 Variant c_parser::t_bracesubstitution(Variant v_piece, Variant v_frame) {
4457 INSTANCE_METHOD_INJECTION(Parser, Parser::braceSubstitution);
4458 Variant eo_0;
4459 Variant eo_1;
4460 Variant eo_2;
4461 Variant eo_3;
4462 DECLARE_GLOBAL_VARIABLES(g);
4463 Variant &gv_wgContLang __attribute__((__unused__)) = g->GV(wgContLang);
4464 Variant v_wgContLang;
4465 Variant &gv_wgNonincludableNamespaces __attribute__((__unused__)) = g->GV(wgNonincludableNamespaces);
4466 Variant v_wgNonincludableNamespaces;
4467 Variant v_found;
4468 Variant v_nowiki;
4469 Variant v_isHTML;
4470 Variant v_forceRawInterwiki;
4471 Variant v_isChildObj;
4472 Variant v_isLocalObj;
4473 Variant v_title;
4474 Variant v_titleWithSpaces;
4475 Variant v_part1;
4476 Variant v_titleText;
4477 Variant v_originalTitle;
4478 Variant v_args;
4479 Variant v_mwSubst;
4480 Variant v_text;
4481 Variant v_id;
4482 Variant v_mwMsgnw;
4483 Variant v_mwMsg;
4484 Variant v_mwRaw;
4485 Variant v_colonPos;
4486 Variant v_function;
4487 Variant v_callback;
4488 Variant v_flags;
4489 Variant v_initialArgs;
4490 Variant v_funcArgs;
4491 Variant v_allArgs;
4492 Variant v_i;
4493 Variant v_result;
4494 Variant v_noparse;
4495 Variant v_preprocessFlags;
4496 Variant v_ns;
4497 Variant v_subpage;
4498 Variant v_limit;
4499 Variant v_newFrame;
4500 Variant v_ret;
4503 class VariableTable : public LVariableTable {
4504 public:
4505 Variant &v_piece; Variant &v_frame; Variant &v_wgContLang; Variant &v_wgNonincludableNamespaces; Variant &v_found; Variant &v_nowiki; Variant &v_isHTML; Variant &v_forceRawInterwiki; Variant &v_isChildObj; Variant &v_isLocalObj; Variant &v_title; Variant &v_titleWithSpaces; Variant &v_part1; Variant &v_titleText; Variant &v_originalTitle; Variant &v_args; Variant &v_mwSubst; Variant &v_text; Variant &v_id; Variant &v_mwMsgnw; Variant &v_mwMsg; Variant &v_mwRaw; Variant &v_colonPos; Variant &v_function; Variant &v_callback; Variant &v_flags; Variant &v_initialArgs; Variant &v_funcArgs; Variant &v_allArgs; Variant &v_i; Variant &v_result; Variant &v_noparse; Variant &v_preprocessFlags; Variant &v_ns; Variant &v_subpage; Variant &v_limit; Variant &v_newFrame; Variant &v_ret;
4506 VariableTable(Variant &r_piece, Variant &r_frame, Variant &r_wgContLang, Variant &r_wgNonincludableNamespaces, Variant &r_found, Variant &r_nowiki, Variant &r_isHTML, Variant &r_forceRawInterwiki, Variant &r_isChildObj, Variant &r_isLocalObj, Variant &r_title, Variant &r_titleWithSpaces, Variant &r_part1, Variant &r_titleText, Variant &r_originalTitle, Variant &r_args, Variant &r_mwSubst, Variant &r_text, Variant &r_id, Variant &r_mwMsgnw, Variant &r_mwMsg, Variant &r_mwRaw, Variant &r_colonPos, Variant &r_function, Variant &r_callback, Variant &r_flags, Variant &r_initialArgs, Variant &r_funcArgs, Variant &r_allArgs, Variant &r_i, Variant &r_result, Variant &r_noparse, Variant &r_preprocessFlags, Variant &r_ns, Variant &r_subpage, Variant &r_limit, Variant &r_newFrame, Variant &r_ret) : v_piece(r_piece), v_frame(r_frame), v_wgContLang(r_wgContLang), v_wgNonincludableNamespaces(r_wgNonincludableNamespaces), v_found(r_found), v_nowiki(r_nowiki), v_isHTML(r_isHTML), v_forceRawInterwiki(r_forceRawInterwiki), v_isChildObj(r_isChildObj), v_isLocalObj(r_isLocalObj), v_title(r_title), v_titleWithSpaces(r_titleWithSpaces), v_part1(r_part1), v_titleText(r_titleText), v_originalTitle(r_originalTitle), v_args(r_args), v_mwSubst(r_mwSubst), v_text(r_text), v_id(r_id), v_mwMsgnw(r_mwMsgnw), v_mwMsg(r_mwMsg), v_mwRaw(r_mwRaw), v_colonPos(r_colonPos), v_function(r_function), v_callback(r_callback), v_flags(r_flags), v_initialArgs(r_initialArgs), v_funcArgs(r_funcArgs), v_allArgs(r_allArgs), v_i(r_i), v_result(r_result), v_noparse(r_noparse), v_preprocessFlags(r_preprocessFlags), v_ns(r_ns), v_subpage(r_subpage), v_limit(r_limit), v_newFrame(r_newFrame), v_ret(r_ret) {}
4507 virtual Variant &getImpl(CStrRef str, int64 hash) {
4508 const char *s __attribute__((__unused__)) = str.data();
4509 if (hash < 0) hash = hash_string(s);
4510 switch (hash & 127) {
4511 case 2:
4512 HASH_RETURN(0x692E742321F80F02LL, v_mwSubst,
4513 mwSubst);
4514 break;
4515 case 4:
4516 HASH_RETURN(0x6D135A1F775A3C04LL, v_titleWithSpaces,
4517 titleWithSpaces);
4518 break;
4519 case 13:
4520 HASH_RETURN(0x6AFDA85728FAE70DLL, v_flags,
4521 flags);
4522 break;
4523 case 22:
4524 HASH_RETURN(0x49465865E679EB16LL, v_limit,
4525 limit);
4526 break;
4527 case 24:
4528 HASH_RETURN(0x0EB22EDA95766E98LL, v_i,
4530 break;
4531 case 30:
4532 HASH_RETURN(0x4AF7CD17F976719ELL, v_args,
4533 args);
4534 break;
4535 case 31:
4536 HASH_RETURN(0x2D577BEBE8CB9D1FLL, v_frame,
4537 frame);
4538 HASH_RETURN(0x5ABEE6C41B223D9FLL, v_isLocalObj,
4539 isLocalObj);
4540 break;
4541 case 37:
4542 HASH_RETURN(0x657E33B2AED298A5LL, v_newFrame,
4543 newFrame);
4544 break;
4545 case 49:
4546 HASH_RETURN(0x736D912A52403931LL, v_function,
4547 function);
4548 HASH_RETURN(0x334D179C1FC4A0B1LL, v_noparse,
4549 noparse);
4550 break;
4551 case 53:
4552 HASH_RETURN(0x35F1C44CD9562BB5LL, v_mwMsg,
4553 mwMsg);
4554 break;
4555 case 55:
4556 HASH_RETURN(0x665662C0C91B8BB7LL, v_part1,
4557 part1);
4558 break;
4559 case 59:
4560 HASH_RETURN(0x540FC99D08D7253BLL, v_forceRawInterwiki,
4561 forceRawInterwiki);
4562 break;
4563 case 67:
4564 HASH_RETURN(0x2A28A0084DD3A743LL, v_text,
4565 text);
4566 HASH_RETURN(0x59478C0CAAAA0643LL, v_allArgs,
4567 allArgs);
4568 break;
4569 case 70:
4570 HASH_RETURN(0x1E7DD8DF6E98F4C6LL, v_callback,
4571 callback);
4572 break;
4573 case 72:
4574 HASH_RETURN(0x599E3F67E2599248LL, v_result,
4575 result);
4576 break;
4577 case 74:
4578 HASH_RETURN(0x323EAC15D211984ALL, v_wgContLang,
4579 wgContLang);
4580 HASH_RETURN(0x753C6234141C8C4ALL, v_colonPos,
4581 colonPos);
4582 break;
4583 case 78:
4584 HASH_RETURN(0x41CC31743A0270CELL, v_found,
4585 found);
4586 break;
4587 case 79:
4588 HASH_RETURN(0x4EF072AC8484C74FLL, v_preprocessFlags,
4589 preprocessFlags);
4590 break;
4591 case 80:
4592 HASH_RETURN(0x7635B625A9ED35D0LL, v_subpage,
4593 subpage);
4594 break;
4595 case 82:
4596 HASH_RETURN(0x0B33F381563FAED2LL, v_isHTML,
4597 isHTML);
4598 break;
4599 case 85:
4600 HASH_RETURN(0x1341D4F88CD79F55LL, v_originalTitle,
4601 originalTitle);
4602 break;
4603 case 91:
4604 HASH_RETURN(0x7132B63767EAFEDBLL, v_piece,
4605 piece);
4606 break;
4607 case 93:
4608 HASH_RETURN(0x78258C7EF69CF55DLL, v_nowiki,
4609 nowiki);
4610 break;
4611 case 94:
4612 HASH_RETURN(0x402070269FCD7CDELL, v_isChildObj,
4613 isChildObj);
4614 break;
4615 case 96:
4616 HASH_RETURN(0x740962C1F3DF2EE0LL, v_initialArgs,
4617 initialArgs);
4618 break;
4619 case 98:
4620 HASH_RETURN(0x028B9FE0C4522BE2LL, v_id,
4621 id);
4622 break;
4623 case 108:
4624 HASH_RETURN(0x1DA25769DEC7D2ECLL, v_ns,
4625 ns);
4626 break;
4627 case 115:
4628 HASH_RETURN(0x1C01B949AD4C00F3LL, v_ret,
4629 ret);
4630 break;
4631 case 117:
4632 HASH_RETURN(0x43FBB2C4FE020BF5LL, v_wgNonincludableNamespaces,
4633 wgNonincludableNamespaces);
4634 break;
4635 case 118:
4636 HASH_RETURN(0x176B222D8CCA9476LL, v_mwMsgnw,
4637 mwMsgnw);
4638 HASH_RETURN(0x37B21F02C50936F6LL, v_funcArgs,
4639 funcArgs);
4640 break;
4641 case 120:
4642 HASH_RETURN(0x461172FD01925F78LL, v_titleText,
4643 titleText);
4644 break;
4645 case 122:
4646 HASH_RETURN(0x63C1D632E67611FALL, v_mwRaw,
4647 mwRaw);
4648 break;
4649 case 126:
4650 HASH_RETURN(0x66AD900A2301E2FELL, v_title,
4651 title);
4652 break;
4653 default:
4654 break;
4656 return lvalAt(str, hash);
4658 virtual bool exists(const char *s, int64 hash /* = -1 */) const {
4659 if (hash < 0) hash = hash_string(s);
4660 switch (hash & 127) {
4661 case 2:
4662 HASH_INITIALIZED(0x692E742321F80F02LL, v_mwSubst,
4663 mwSubst);
4664 break;
4665 case 4:
4666 HASH_INITIALIZED(0x6D135A1F775A3C04LL, v_titleWithSpaces,
4667 titleWithSpaces);
4668 break;
4669 case 13:
4670 HASH_INITIALIZED(0x6AFDA85728FAE70DLL, v_flags,
4671 flags);
4672 break;
4673 case 22:
4674 HASH_INITIALIZED(0x49465865E679EB16LL, v_limit,
4675 limit);
4676 break;
4677 case 24:
4678 HASH_INITIALIZED(0x0EB22EDA95766E98LL, v_i,
4680 break;
4681 case 30:
4682 HASH_INITIALIZED(0x4AF7CD17F976719ELL, v_args,
4683 args);
4684 break;
4685 case 31:
4686 HASH_INITIALIZED(0x2D577BEBE8CB9D1FLL, v_frame,
4687 frame);
4688 HASH_INITIALIZED(0x5ABEE6C41B223D9FLL, v_isLocalObj,
4689 isLocalObj);
4690 break;
4691 case 37:
4692 HASH_INITIALIZED(0x657E33B2AED298A5LL, v_newFrame,
4693 newFrame);
4694 break;
4695 case 49:
4696 HASH_INITIALIZED(0x736D912A52403931LL, v_function,
4697 function);
4698 HASH_INITIALIZED(0x334D179C1FC4A0B1LL, v_noparse,
4699 noparse);
4700 break;
4701 case 53:
4702 HASH_INITIALIZED(0x35F1C44CD9562BB5LL, v_mwMsg,
4703 mwMsg);
4704 break;
4705 case 55:
4706 HASH_INITIALIZED(0x665662C0C91B8BB7LL, v_part1,
4707 part1);
4708 break;
4709 case 59:
4710 HASH_INITIALIZED(0x540FC99D08D7253BLL, v_forceRawInterwiki,
4711 forceRawInterwiki);
4712 break;
4713 case 67:
4714 HASH_INITIALIZED(0x2A28A0084DD3A743LL, v_text,
4715 text);
4716 HASH_INITIALIZED(0x59478C0CAAAA0643LL, v_allArgs,
4717 allArgs);
4718 break;
4719 case 70:
4720 HASH_INITIALIZED(0x1E7DD8DF6E98F4C6LL, v_callback,
4721 callback);
4722 break;
4723 case 72:
4724 HASH_INITIALIZED(0x599E3F67E2599248LL, v_result,
4725 result);
4726 break;
4727 case 74:
4728 HASH_INITIALIZED(0x323EAC15D211984ALL, v_wgContLang,
4729 wgContLang);
4730 HASH_INITIALIZED(0x753C6234141C8C4ALL, v_colonPos,
4731 colonPos);
4732 break;
4733 case 78:
4734 HASH_INITIALIZED(0x41CC31743A0270CELL, v_found,
4735 found);
4736 break;
4737 case 79:
4738 HASH_INITIALIZED(0x4EF072AC8484C74FLL, v_preprocessFlags,
4739 preprocessFlags);
4740 break;
4741 case 80:
4742 HASH_INITIALIZED(0x7635B625A9ED35D0LL, v_subpage,
4743 subpage);
4744 break;
4745 case 82:
4746 HASH_INITIALIZED(0x0B33F381563FAED2LL, v_isHTML,
4747 isHTML);
4748 break;
4749 case 85:
4750 HASH_INITIALIZED(0x1341D4F88CD79F55LL, v_originalTitle,
4751 originalTitle);
4752 break;
4753 case 91:
4754 HASH_INITIALIZED(0x7132B63767EAFEDBLL, v_piece,
4755 piece);
4756 break;
4757 case 93:
4758 HASH_INITIALIZED(0x78258C7EF69CF55DLL, v_nowiki,
4759 nowiki);
4760 break;
4761 case 94:
4762 HASH_INITIALIZED(0x402070269FCD7CDELL, v_isChildObj,
4763 isChildObj);
4764 break;
4765 case 96:
4766 HASH_INITIALIZED(0x740962C1F3DF2EE0LL, v_initialArgs,
4767 initialArgs);
4768 break;
4769 case 98:
4770 HASH_INITIALIZED(0x028B9FE0C4522BE2LL, v_id,
4771 id);
4772 break;
4773 case 108:
4774 HASH_INITIALIZED(0x1DA25769DEC7D2ECLL, v_ns,
4775 ns);
4776 break;
4777 case 115:
4778 HASH_INITIALIZED(0x1C01B949AD4C00F3LL, v_ret,
4779 ret);
4780 break;
4781 case 117:
4782 HASH_INITIALIZED(0x43FBB2C4FE020BF5LL, v_wgNonincludableNamespaces,
4783 wgNonincludableNamespaces);
4784 break;
4785 case 118:
4786 HASH_INITIALIZED(0x176B222D8CCA9476LL, v_mwMsgnw,
4787 mwMsgnw);
4788 HASH_INITIALIZED(0x37B21F02C50936F6LL, v_funcArgs,
4789 funcArgs);
4790 break;
4791 case 120:
4792 HASH_INITIALIZED(0x461172FD01925F78LL, v_titleText,
4793 titleText);
4794 break;
4795 case 122:
4796 HASH_INITIALIZED(0x63C1D632E67611FALL, v_mwRaw,
4797 mwRaw);
4798 break;
4799 case 126:
4800 HASH_INITIALIZED(0x66AD900A2301E2FELL, v_title,
4801 title);
4802 break;
4803 default:
4804 break;
4806 return LVariableTable::exists(s, hash);
4808 } variableTable(v_piece, v_frame, v_wgContLang, v_wgNonincludableNamespaces, v_found, v_nowiki, v_isHTML, v_forceRawInterwiki, v_isChildObj, v_isLocalObj, v_title, v_titleWithSpaces, v_part1, v_titleText, v_originalTitle, v_args, v_mwSubst, v_text, v_id, v_mwMsgnw, v_mwMsg, v_mwRaw, v_colonPos, v_function, v_callback, v_flags, v_initialArgs, v_funcArgs, v_allArgs, v_i, v_result, v_noparse, v_preprocessFlags, v_ns, v_subpage, v_limit, v_newFrame, v_ret);
4809 LVariableTable* __attribute__((__unused__)) variables = &variableTable;
4811 v_wgContLang = ref(g->GV(wgContLang));
4812 v_wgNonincludableNamespaces = ref(g->GV(wgNonincludableNamespaces));
4814 LINE(2749,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::braceSubstitution").create()), 0x0000000075359BAFLL));
4815 LINE(2750,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::braceSubstitution-setup").create()), 0x0000000075359BAFLL));
4816 (v_found = false);
4817 (v_nowiki = false);
4818 (v_isHTML = false);
4819 (v_forceRawInterwiki = false);
4820 (v_isChildObj = false);
4821 (v_isLocalObj = false);
4822 setNull(v_title);
4823 (v_titleWithSpaces = LINE(2765,v_frame.o_invoke_few_args("expand", 0x39B7BB05F05A37CDLL, 1, v_piece.refvalAt("title", 0x66AD900A2301E2FELL))));
4824 (v_part1 = LINE(2766,x_trim(toString(v_titleWithSpaces))));
4825 (v_titleText = false);
4826 (v_originalTitle = v_part1);
4827 (v_args = (equal(null, v_piece.rvalAt("parts", 0x2708FDA74562AD8DLL))) ? ((Variant)(ScalarArrays::sa_[0])) : ((Variant)(v_piece.rvalAt("parts", 0x2708FDA74562AD8DLL))));
4828 LINE(2774,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::braceSubstitution-setup").create()), 0x00000000B599F276LL));
4829 LINE(2777,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::braceSubstitution-modifiers").create()), 0x0000000075359BAFLL));
4830 if (!(toBoolean(v_found))) {
4831 (v_mwSubst = LINE(2779,throw_fatal("unknown class magicword", ((void*)NULL))));
4832 if (logical_xor(toBoolean(LINE(2780,v_mwSubst.o_invoke_few_args("matchStartAndRemove", 0x2B81946BBA5E8685LL, 1, v_part1))), toBoolean(m_ot.rvalAt("wiki", 0x24648D2BCD794D21LL)))) {
4833 (v_text = LINE(2785,v_frame.o_invoke_few_args("virtualBracketedImplode", 0x409618A98590618BLL, 5, "{{", "|", "}}", v_titleWithSpaces, v_args)));
4834 (v_isLocalObj = true);
4835 (v_found = true);
4838 if (!(toBoolean(v_found)) && equal(LINE(2792,v_args.o_invoke_few_args("getLength", 0x41EB078EF92C44D4LL, 0)), 0LL)) {
4839 (v_id = LINE(2793,m_mVariables.o_invoke_few_args("matchStartToEnd", 0x4F70AC0C69CFEB19LL, 1, v_part1)));
4840 if (!same(v_id, false)) {
4841 (v_text = LINE(2795,t_getvariablevalue(v_id, v_frame)));
4842 if (more(LINE(2796,throw_fatal("unknown class magicword", ((void*)NULL))), -1LL)) (m_mOutput.o_lval("mContainsOldMagic", 0x517EDA759E438B97LL) = true);
4843 (v_found = true);
4846 if (!(toBoolean(v_found))) {
4847 (v_mwMsgnw = LINE(2805,throw_fatal("unknown class magicword", ((void*)NULL))));
4848 if (toBoolean(LINE(2806,v_mwMsgnw.o_invoke_few_args("matchStartAndRemove", 0x2B81946BBA5E8685LL, 1, v_part1)))) {
4849 (v_nowiki = true);
4851 else {
4852 (v_mwMsg = LINE(2810,throw_fatal("unknown class magicword", ((void*)NULL))));
4853 LINE(2811,v_mwMsg.o_invoke_few_args("matchStartAndRemove", 0x2B81946BBA5E8685LL, 1, v_part1));
4855 (v_mwRaw = LINE(2815,throw_fatal("unknown class magicword", ((void*)NULL))));
4856 if (toBoolean(LINE(2816,v_mwRaw.o_invoke_few_args("matchStartAndRemove", 0x2B81946BBA5E8685LL, 1, v_part1)))) {
4857 (v_forceRawInterwiki = true);
4860 LINE(2820,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::braceSubstitution-modifiers").create()), 0x00000000B599F276LL));
4861 if (!(toBoolean(v_found))) {
4862 LINE(2824,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::braceSubstitution-pfunc").create()), 0x0000000075359BAFLL));
4863 (v_colonPos = LINE(2826,x_strpos(toString(v_part1), ":")));
4864 if (!same(v_colonPos, false)) {
4865 (v_function = LINE(2829,x_substr(toString(v_part1), toInt32(0LL), toInt32(v_colonPos))));
4866 if (isset(m_mFunctionSynonyms.rvalAt(1LL, 0x5BCA7C69B794F8CELL), v_function)) {
4867 (v_function = m_mFunctionSynonyms.rvalAt(1LL, 0x5BCA7C69B794F8CELL).rvalAt(v_function));
4869 else {
4870 (v_function = LINE(2834,v_wgContLang.o_invoke_few_args("lc", 0x0191205BE4FF8F9CLL, 1, v_function)));
4871 if (isset(m_mFunctionSynonyms.rvalAt(0LL, 0x77CFA1EEF01BCA90LL), v_function)) {
4872 (v_function = m_mFunctionSynonyms.rvalAt(0LL, 0x77CFA1EEF01BCA90LL).rvalAt(v_function));
4874 else {
4875 (v_function = false);
4878 if (toBoolean(v_function)) {
4879 df_lambda_9(m_mFunctionHooks.rvalAt(v_function), v_callback, v_flags);
4880 (v_initialArgs = Array(ArrayInit(1).setRef(0, ref(this)).create()));
4881 (v_funcArgs = Array(ArrayInit(1).set(0, LINE(2844,x_trim(toString(x_substr(toString(v_part1), toInt32(v_colonPos + 1LL)))))).create()));
4882 if (toBoolean(bitwise_and(v_flags, k_SFH_OBJECT_ARGS))) {
4883 (v_allArgs = v_initialArgs);
4884 v_allArgs.append((v_frame));
4886 LOOP_COUNTER(67);
4887 for ((v_i = 0LL); less(v_i, LINE(2849,v_args.o_invoke_few_args("getLength", 0x41EB078EF92C44D4LL, 0))); v_i++) {
4888 LOOP_COUNTER_CHECK(67);
4890 v_funcArgs.append((LINE(2850,v_args.o_invoke_few_args("item", 0x0A41DBE0830902C6LL, 1, v_i))));
4894 v_allArgs.append((v_funcArgs));
4896 else {
4898 LOOP_COUNTER(68);
4899 for ((v_i = 0LL); less(v_i, LINE(2855,v_args.o_invoke_few_args("getLength", 0x41EB078EF92C44D4LL, 0))); v_i++) {
4900 LOOP_COUNTER_CHECK(68);
4902 v_funcArgs.append((LINE(2856,x_trim(toString(v_frame.o_invoke_few_args("expand", 0x39B7BB05F05A37CDLL, 1, v_args.o_invoke_few_args("item", 0x0A41DBE0830902C6LL, 1, v_i)))))));
4906 (v_allArgs = LINE(2858,x_array_merge(2, v_initialArgs, Array(ArrayInit(1).set(0, v_funcArgs).create()))));
4908 if (!(LINE(2862,x_is_callable(v_callback)))) {
4909 LINE(2863,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::braceSubstitution-pfunc").create()), 0x00000000B599F276LL));
4910 LINE(2864,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::braceSubstitution").create()), 0x00000000B599F276LL));
4911 throw_exception(LINE(2865,create_object("mwexception", Array(ArrayInit(1).set(0, concat3("Tag hook for ", toString(v_function), " is not callable\n")).create()))));
4913 (v_result = LINE(2867,x_call_user_func_array(v_callback, toArray(v_allArgs))));
4914 (v_found = true);
4915 (v_noparse = true);
4916 (v_preprocessFlags = 0LL);
4917 if (LINE(2872,x_is_array(v_result))) {
4918 if (isset(v_result, 0LL, 0x77CFA1EEF01BCA90LL)) {
4919 (v_text = v_result.rvalAt(0LL, 0x77CFA1EEF01BCA90LL));
4920 v_result.weakRemove(0LL, 0x77CFA1EEF01BCA90LL);
4922 LINE(2880,extract(variables, toArray(v_result)));
4924 else {
4925 (v_text = v_result);
4927 if (!(toBoolean(v_noparse))) {
4928 (v_text = LINE(2885,t_preprocesstodom(v_text, v_preprocessFlags)));
4929 (v_isChildObj = true);
4933 LINE(2890,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::braceSubstitution-pfunc").create()), 0x00000000B599F276LL));
4935 if (!(toBoolean(v_found))) {
4936 (v_ns = k_NS_TEMPLATE);
4937 (v_subpage = "");
4938 (v_part1 = LINE(2899,t_maybedosubpagelink(v_part1, ref(v_subpage))));
4939 if (!same(v_subpage, "")) {
4940 (v_ns = LINE(2901,m_mTitle.o_invoke_few_args("getNamespace", 0x6DC05480D007D522LL, 0)));
4942 (v_title = LINE(2903,throw_fatal("unknown class title", ((void*)NULL))));
4943 if (toBoolean(v_title)) {
4944 (v_titleText = LINE(2905,v_title.o_invoke_few_args("getPrefixedText", 0x33044BA725446A43LL, 0)));
4945 if (toBoolean(LINE(2907,v_wgContLang.o_invoke_few_args("hasVariants", 0x5A1FD2E20BD8DBBBLL, 0))) && equal(v_title.o_invoke_few_args("getArticleID", 0x094F8EE5A02782D6LL, 0), 0LL)) {
4946 LINE(2908,v_wgContLang.o_invoke_few_args("findVariantLink", 0x49C38CD942068A0ELL, 3, v_part1, v_title, true));
4948 (v_limit = LINE(2911,m_mOptions.o_invoke_few_args("getMaxTemplateDepth", 0x4C54B0BC426A6EE3LL, 0)));
4949 if (not_less(v_frame.o_get("depth", 0x1AE700EECE6274C7LL), v_limit)) {
4950 (v_found = true);
4951 (v_text = LINE(2914,(assignCallTemp(eo_1, toString(invoke_failed("wfmsgforcontent", Array(ArrayInit(2).set(0, "parser-template-recursion-depth-warning").set(1, ref(v_limit)).create()), 0x0000000033607CCALL))),concat3("<span class=\"error\">", eo_1, "</span>"))));
4955 if (!(toBoolean(v_found)) && toBoolean(v_title)) {
4956 LINE(2921,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::braceSubstitution-loadtpl").create()), 0x0000000075359BAFLL));
4957 if (!(toBoolean(LINE(2922,v_title.o_invoke_few_args("isExternal", 0x16F7C0178CF6E138LL, 0))))) {
4958 if (equal(LINE(2923,v_title.o_invoke_few_args("getNamespace", 0x6DC05480D007D522LL, 0)), k_NS_SPECIAL) && toBoolean(m_mOptions.o_invoke_few_args("getAllowSpecialInclusion", 0x6C9C5936F7FFEA1CLL, 0)) && toBoolean(m_ot.rvalAt("html", 0x5CA91C812230855DLL))) {
4959 (v_text = LINE(2924,throw_fatal("unknown class specialpage", ((void*)NULL))));
4960 if (LINE(2925,x_is_string(v_text))) {
4961 (v_found = true);
4962 (v_isHTML = true);
4963 LINE(2928,t_disablecache());
4966 else if (toBoolean(v_wgNonincludableNamespaces) && LINE(2930,(assignCallTemp(eo_0, v_title.o_invoke_few_args("getNamespace", 0x6DC05480D007D522LL, 0)),assignCallTemp(eo_1, v_wgNonincludableNamespaces),x_in_array(eo_0, eo_1)))) {
4967 (v_found = false);
4968 LINE(2932,invoke_failed("wfdebug", Array(ArrayInit(1).set(0, concat("Parser::braceSubstitution: template inclusion denied for ", toString(v_title.o_invoke_few_args("getPrefixedDBkey", 0x3E327BDC66DECDABLL, 0)))).create()), 0x00000000E441E905LL));
4970 else {
4971 df_lambda_10(LINE(2934,t_gettemplatedom(v_title)), v_text, v_title);
4972 if (!same(v_text, false)) {
4973 (v_found = true);
4974 (v_isChildObj = true);
4977 if (!(toBoolean(v_found)) && (toBoolean(m_ot.rvalAt("html", 0x5CA91C812230855DLL)) || toBoolean(m_ot.rvalAt("pre", 0x633242EDD179FBACLL)))) {
4978 (v_text = LINE(2943,concat3("[[:", toString(v_titleText), "]]")));
4979 (v_found = true);
4982 else if (toBoolean(LINE(2946,v_title.o_invoke_few_args("isTrans", 0x509FD18EA479DF87LL, 0)))) {
4983 if (toBoolean(m_ot.rvalAt("html", 0x5CA91C812230855DLL)) && !(toBoolean(v_forceRawInterwiki))) {
4984 (v_text = LINE(2949,t_interwikitransclude(v_title, "render")));
4985 (v_isHTML = true);
4987 else {
4988 (v_text = LINE(2952,t_interwikitransclude(v_title, "raw")));
4989 (v_text = LINE(2954,t_preprocesstodom(v_text, 1LL /* parser::PTD_FOR_INCLUSION */)));
4990 (v_isChildObj = true);
4992 (v_found = true);
4994 if (!(toBoolean(LINE(2962,v_frame.o_invoke_few_args("loopCheck", 0x7BA9911BE4A4175FLL, 1, v_title))))) {
4995 (v_found = true);
4996 (v_text = LINE(2964,(assignCallTemp(eo_1, toString(invoke_failed("wfmsgforcontent", Array(ArrayInit(2).set(0, "parser-template-loop-warning").set(1, ref(v_titleText)).create()), 0x0000000033607CCALL))),concat3("<span class=\"error\">", eo_1, "</span>"))));
4997 LINE(2965,invoke_failed("wfdebug", Array(ArrayInit(1).set(0, concat("Parser::braceSubstitution", concat3(": template loop broken at '", toString(v_titleText), "'\n"))).create()), 0x00000000E441E905LL));
4999 LINE(2967,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::braceSubstitution-loadtpl").create()), 0x00000000B599F276LL));
5001 if (!(toBoolean(v_found))) {
5002 (v_text = LINE(2973,v_frame.o_invoke_few_args("virtualBracketedImplode", 0x409618A98590618BLL, 5, "{{", "|", "}}", v_titleWithSpaces, v_args)));
5003 LINE(2974,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::braceSubstitution").create()), 0x00000000B599F276LL));
5004 return Array(ArrayInit(1).set(0, "object", v_text, 0x7F30BC4E222B1861LL).create());
5006 if (toBoolean(v_isChildObj)) {
5007 (v_newFrame = LINE(2981,v_frame.o_invoke_few_args("newChild", 0x7F4AB942B9CDE1BCLL, 2, v_args, v_title)));
5008 if (toBoolean(v_nowiki)) {
5009 (v_text = LINE(2984,v_newFrame.o_invoke_few_args("expand", 0x39B7BB05F05A37CDLL, 2, v_text, 27LL /* ppframe::RECOVER_ORIG */)));
5011 else if (!same(v_titleText, false) && toBoolean(LINE(2985,v_newFrame.o_invoke_few_args("isEmpty", 0x6359F42D5FC265E8LL, 0)))) {
5012 if (isset(m_mTplExpandCache, v_titleText)) {
5013 (v_text = m_mTplExpandCache.rvalAt(v_titleText));
5015 else {
5016 (v_text = LINE(2990,v_newFrame.o_invoke_few_args("expand", 0x39B7BB05F05A37CDLL, 1, v_text)));
5017 m_mTplExpandCache.set(v_titleText, (v_text));
5020 else {
5021 (v_text = LINE(2995,v_newFrame.o_invoke_few_args("expand", 0x39B7BB05F05A37CDLL, 1, v_text)));
5024 if (toBoolean(v_isLocalObj) && toBoolean(v_nowiki)) {
5025 (v_text = LINE(2999,v_frame.o_invoke_few_args("expand", 0x39B7BB05F05A37CDLL, 2, v_text, 27LL /* ppframe::RECOVER_ORIG */)));
5026 (v_isLocalObj = false);
5028 if (toBoolean(v_isHTML)) {
5029 (v_text = concat("\n\n", toString(LINE(3007,t_insertstripitem(v_text)))));
5031 else if (toBoolean(v_nowiki) && (toBoolean(m_ot.rvalAt("html", 0x5CA91C812230855DLL)) || toBoolean(m_ot.rvalAt("pre", 0x633242EDD179FBACLL)))) {
5032 (v_text = LINE(3011,invoke_failed("wfescapewikitext", Array(ArrayInit(1).set(0, ref(v_text)).create()), 0x00000000B3382909LL)));
5034 else if (LINE(3016,x_is_string(v_text)) && !(toBoolean(v_piece.rvalAt("lineStart", 0x0F84CB175598D0A5LL))) && toBoolean(x_preg_match("/^(\?:{\\||:|;|#|\\*)/", toString(v_text)))) {
5035 (v_text = concat("\n", toString(v_text)));
5037 if (LINE(3020,x_is_string(v_text)) && !(toBoolean((assignCallTemp(eo_1, x_strlen(toString(v_text))),t_incrementincludesize("post-expand", eo_1))))) {
5038 (v_text = LINE(3023,(assignCallTemp(eo_1, toString(v_originalTitle)),assignCallTemp(eo_3, toString(t_insertstripitem("<!-- WARNING: template omitted, post-expand include size too large -->"))),concat4("[[", eo_1, "]]", eo_3))));
5039 LINE(3024,t_limitationwarn("post-expand-template-inclusion"));
5041 if (toBoolean(v_isLocalObj)) {
5042 (v_ret = Array(ArrayInit(1).set(0, "object", v_text, 0x7F30BC4E222B1861LL).create()));
5044 else {
5045 (v_ret = Array(ArrayInit(1).set(0, "text", v_text, 0x2A28A0084DD3A743LL).create()));
5047 LINE(3033,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::braceSubstitution").create()), 0x00000000B599F276LL));
5048 return v_ret;
5049 } /* function */
5050 /* SRC: Parser.php line 3041 */
5051 Array c_parser::t_gettemplatedom(Variant v_title) {
5052 INSTANCE_METHOD_INJECTION(Parser, Parser::getTemplateDom);
5053 Variant eo_0;
5054 Variant eo_1;
5055 Variant v_cacheTitle;
5056 Variant v_titleText;
5057 Variant v_ns;
5058 Variant v_dbk;
5059 Variant v_text;
5060 Variant v_dom;
5061 Variant v_cdb;
5063 (v_cacheTitle = v_title);
5064 (v_titleText = LINE(3043,v_title.o_invoke_few_args("getPrefixedDBkey", 0x3E327BDC66DECDABLL, 0)));
5065 if (isset(m_mTplRedirCache, v_titleText)) {
5066 df_lambda_11(m_mTplRedirCache.rvalAt(v_titleText), v_ns, v_dbk);
5067 (v_title = LINE(3047,throw_fatal("unknown class title", ((void*)NULL))));
5068 (v_titleText = LINE(3048,v_title.o_invoke_few_args("getPrefixedDBkey", 0x3E327BDC66DECDABLL, 0)));
5070 if (isset(m_mTplDomCache, v_titleText)) {
5071 return Array(ArrayInit(2).set(0, m_mTplDomCache.rvalAt(v_titleText)).set(1, v_title).create());
5073 df_lambda_12(LINE(3055,t_fetchtemplateandtitle(v_title)), v_text, v_title);
5074 if (same(v_text, false)) {
5075 m_mTplDomCache.set(v_titleText, (false));
5076 return Array(ArrayInit(2).set(0, false).set(1, v_title).create());
5078 (v_dom = LINE(3062,t_preprocesstodom(v_text, 1LL /* parser::PTD_FOR_INCLUSION */)));
5079 m_mTplDomCache.set(v_titleText, (v_dom));
5080 if (!(toBoolean(LINE(3065,v_title.o_invoke_few_args("equals", 0x6E9F97FFEE61A498LL, 1, v_cacheTitle))))) {
5081 m_mTplRedirCache.set(LINE(3066,v_cacheTitle.o_invoke_few_args("getPrefixedDBkey", 0x3E327BDC66DECDABLL, 0)), ((assignCallTemp(eo_0, LINE(3067,v_title.o_invoke_few_args("getNamespace", 0x6DC05480D007D522LL, 0))),assignCallTemp(eo_1, (v_cdb = v_title.o_invoke_few_args("getDBkey", 0x7A72F137192AEF00LL, 0))),Array(ArrayInit(2).set(0, eo_0).set(1, eo_1).create()))));
5083 return Array(ArrayInit(2).set(0, v_dom).set(1, v_title).create());
5084 } /* function */
5085 /* SRC: Parser.php line 3076 */
5086 Array c_parser::t_fetchtemplateandtitle(CVarRef v_title) {
5087 INSTANCE_METHOD_INJECTION(Parser, Parser::fetchTemplateAndTitle);
5088 Variant v_templateCb;
5089 Variant v_stuff;
5090 Variant v_text;
5091 Variant v_finalTitle;
5092 Variant v_dep;
5094 (v_templateCb = LINE(3077,m_mOptions.o_invoke_few_args("getTemplateCallback", 0x4EDD9E12C4CE34F5LL, 0)));
5095 (v_stuff = LINE(3078,x_call_user_func(3, v_templateCb, Array(ArrayInit(2).set(0, v_title).set(1, ((Object)(this))).create()))));
5096 (v_text = v_stuff.rvalAt("text", 0x2A28A0084DD3A743LL));
5097 (v_finalTitle = isset(v_stuff, "finalTitle", 0x55CA175D2B13753ELL) ? ((Variant)(v_stuff.rvalAt("finalTitle", 0x55CA175D2B13753ELL))) : ((Variant)(v_title)));
5098 if (isset(v_stuff, "deps", 0x460EC09F3DCB8AC5LL)) {
5100 LOOP_COUNTER(69);
5101 Variant map70 = v_stuff.rvalAt("deps", 0x460EC09F3DCB8AC5LL);
5102 for (ArrayIterPtr iter71 = map70.begin("parser"); !iter71->end(); iter71->next()) {
5103 LOOP_COUNTER_CHECK(69);
5104 v_dep = iter71->second();
5106 LINE(3083,m_mOutput.o_invoke_few_args("addTemplate", 0x668299C8203F7926LL, 3, v_dep.refvalAt("title", 0x66AD900A2301E2FELL), v_dep.refvalAt("page_id", 0x1B27A324993FB16CLL), v_dep.refvalAt("rev_id", 0x60BB6026437DAFD3LL)));
5111 return Array(ArrayInit(2).set(0, v_text).set(1, v_finalTitle).create());
5112 } /* function */
5113 /* SRC: Parser.php line 3089 */
5114 Variant c_parser::t_fetchtemplate(CVarRef v_title) {
5115 INSTANCE_METHOD_INJECTION(Parser, Parser::fetchTemplate);
5116 Array v_rv;
5118 (v_rv = LINE(3090,t_fetchtemplateandtitle(v_title)));
5119 return v_rv.rvalAt(0LL, 0x77CFA1EEF01BCA90LL);
5120 } /* function */
5121 /* SRC: Parser.php line 3098 */
5122 Array c_parser::ti_statelessfetchtemplate(const char* cls, Variant v_title, CVarRef v_parser // = false
5124 STATIC_METHOD_INJECTION(Parser, Parser::statelessFetchTemplate);
5125 Variant eo_0;
5126 Variant eo_1;
5127 Variant eo_2;
5128 DECLARE_GLOBAL_VARIABLES(g);
5129 Variant v_skip;
5130 Variant v_text;
5131 Variant v_finalTitle;
5132 Array v_deps;
5133 int64 v_i = 0;
5134 Variant v_id;
5135 Variant v_rev;
5136 Variant v_rev_id;
5137 Variant v_linkCache;
5138 Variant &gv_wgContLang __attribute__((__unused__)) = g->GV(wgContLang);
5139 Variant v_wgContLang;
5140 Variant v_message;
5142 (v_text = (v_skip = false));
5143 (v_finalTitle = v_title);
5144 (v_deps = ScalarArrays::sa_[0]);
5146 LOOP_COUNTER(72);
5147 for ((v_i = 0LL); less(v_i, 2LL) && LINE(3104,x_is_object(v_title)); v_i++) {
5148 LOOP_COUNTER_CHECK(72);
5150 (v_id = false);
5151 LINE(3107,invoke_failed("wfrunhooks", Array(ArrayInit(2).set(0, "BeforeParserFetchTemplateAndtitle").set(1, Array(ArrayInit(4).set(0, v_parser).setRef(1, ref(v_title)).setRef(2, ref(v_skip)).setRef(3, ref(v_id)).create())).create()), 0x00000000787A96B2LL));
5152 if (toBoolean(v_skip)) {
5153 (v_text = false);
5154 v_deps.append(((assignCallTemp(eo_0, v_title),assignCallTemp(eo_1, LINE(3113,v_title.o_invoke_few_args("getArticleID", 0x094F8EE5A02782D6LL, 0))),Array(ArrayInit(3).set(0, "title", eo_0, 0x66AD900A2301E2FELL).set(1, "page_id", eo_1, 0x1B27A324993FB16CLL).set(2, "rev_id", null, 0x60BB6026437DAFD3LL).create()))));
5155 break;
5157 (v_rev = toBoolean(v_id) ? ((Variant)(LINE(3117,throw_fatal("unknown class revision", ((void*)NULL))))) : ((Variant)(throw_fatal("unknown class revision", ((void*)NULL)))));
5158 (v_rev_id = toBoolean(v_rev) ? ((Variant)(LINE(3118,v_rev.o_invoke_few_args("getId", 0x5ADBB1D3A7BA92B8LL, 0)))) : ((Variant)(0LL)));
5159 if (same(v_id, false) && !(toBoolean(v_rev))) {
5160 (v_linkCache = LINE(3121,throw_fatal("unknown class linkcache", ((void*)NULL))));
5161 LINE(3122,v_linkCache.o_invoke_few_args("addBadLinkObj", 0x6D7C22FD99A36EDBLL, 1, v_title));
5163 v_deps.append(((assignCallTemp(eo_0, v_title),assignCallTemp(eo_1, LINE(3127,v_title.o_invoke_few_args("getArticleID", 0x094F8EE5A02782D6LL, 0))),assignCallTemp(eo_2, v_rev_id),Array(ArrayInit(3).set(0, "title", eo_0, 0x66AD900A2301E2FELL).set(1, "page_id", eo_1, 0x1B27A324993FB16CLL).set(2, "rev_id", eo_2, 0x60BB6026437DAFD3LL).create()))));
5164 if (toBoolean(v_rev)) {
5165 (v_text = LINE(3131,v_rev.o_invoke_few_args("getText", 0x434CEBEC8FDBB880LL, 0)));
5167 else if (equal(LINE(3132,v_title.o_invoke_few_args("getNamespace", 0x6DC05480D007D522LL, 0)), k_NS_MEDIAWIKI)) {
5168 v_wgContLang = ref(g->GV(wgContLang));
5169 (v_message = LINE(3134,v_wgContLang.o_invoke_few_args("lcfirst", 0x7448B5BAF0B032B3LL, 1, v_title.o_invoke_few_args("getText", 0x434CEBEC8FDBB880LL, 0))));
5170 (v_text = LINE(3135,invoke_failed("wfmsgforcontentnotrans", Array(ArrayInit(1).set(0, ref(v_message)).create()), 0x00000000EBECF191LL)));
5171 if (toBoolean(LINE(3136,invoke_failed("wfemptymsg", Array(ArrayInit(2).set(0, ref(v_message)).set(1, ref(v_text)).create()), 0x00000000ACF08022LL)))) {
5172 (v_text = false);
5173 break;
5176 else {
5177 break;
5179 if (same(v_text, false)) {
5180 break;
5182 (v_finalTitle = v_title);
5183 (v_title = LINE(3148,throw_fatal("unknown class title", ((void*)NULL))));
5187 return Array(ArrayInit(3).set(0, "text", v_text, 0x2A28A0084DD3A743LL).set(1, "finalTitle", v_finalTitle, 0x55CA175D2B13753ELL).set(2, "deps", v_deps, 0x460EC09F3DCB8AC5LL).create());
5188 } /* function */
5189 /* SRC: Parser.php line 3159 */
5190 Variant c_parser::t_interwikitransclude(CVarRef v_title, CStrRef v_action) {
5191 INSTANCE_METHOD_INJECTION(Parser, Parser::interwikiTransclude);
5192 DECLARE_GLOBAL_VARIABLES(g);
5193 Variant &gv_wgEnableScaryTranscluding __attribute__((__unused__)) = g->GV(wgEnableScaryTranscluding);
5194 Variant v_url;
5196 if (!(toBoolean(gv_wgEnableScaryTranscluding))) return LINE(3163,invoke_failed("wfmsg", Array(ArrayInit(1).set(0, "scarytranscludedisabled").create()), 0x0000000002E29FB3LL));
5197 (v_url = LINE(3165,toObject(v_title)->o_invoke_few_args("getFullUrl", 0x4D03E4B69713A33BLL, 1, toString("action=") + v_action)));
5198 if (more(LINE(3167,x_strlen(toString(v_url))), 255LL)) return LINE(3168,invoke_failed("wfmsg", Array(ArrayInit(1).set(0, "scarytranscludetoolong").create()), 0x0000000002E29FB3LL));
5199 return LINE(3169,t_fetchscarytemplatemaybefromcache(v_url));
5200 } /* function */
5201 /* SRC: Parser.php line 3172 */
5202 Variant c_parser::t_fetchscarytemplatemaybefromcache(Variant v_url) {
5203 INSTANCE_METHOD_INJECTION(Parser, Parser::fetchScaryTemplateMaybeFromCache);
5204 Variant eo_0;
5205 Variant eo_1;
5206 Variant eo_2;
5207 Variant eo_3;
5208 Variant eo_4;
5209 DECLARE_GLOBAL_VARIABLES(g);
5210 Variant &gv_wgTranscludeCacheExpiry __attribute__((__unused__)) = g->GV(wgTranscludeCacheExpiry);
5211 Variant v_dbr;
5212 Variant v_tsCond;
5213 Variant v_obj;
5214 Variant v_text;
5215 Variant v_dbw;
5217 (v_dbr = LINE(3174,invoke_failed("wfgetdb", Array(ArrayInit(1).set(0, k_DB_SLAVE).create()), 0x000000002DA3FF23LL)));
5218 (v_tsCond = LINE(3175,v_dbr.o_invoke_few_args("timestamp", 0x04F76359D187BC06LL, 1, x_time() - gv_wgTranscludeCacheExpiry)));
5219 (v_obj = (assignCallTemp(eo_0, toObject(v_dbr)),LINE(3177,eo_0.o_invoke_few_args("selectRow", 0x7AA6FDEB2182F653LL, 3, "transcache", Array(ArrayInit(2).set(0, "tc_time").set(1, "tc_contents").create()), (assignCallTemp(eo_1, v_url),assignCallTemp(eo_2, concat("tc_time >= ", toString(v_dbr.o_invoke_few_args("addQuotes", 0x3D76A2E50E13EE4CLL, 1, v_tsCond)))),Array(ArrayInit(2).set(0, "tc_url", eo_1, 0x6AAC1850B24C76E9LL).set(1, eo_2).create()))))));
5220 if (toBoolean(v_obj)) {
5221 return v_obj.o_get("tc_contents", 0x0B5478C26AE4342DLL);
5223 (v_text = LINE(3182,throw_fatal("unknown class http", ((void*)NULL))));
5224 if (!(toBoolean(v_text))) return LINE(3184,invoke_failed("wfmsg", Array(ArrayInit(2).set(0, "scarytranscludefailed").set(1, ref(v_url)).create()), 0x0000000002E29FB3LL));
5225 (v_dbw = LINE(3186,invoke_failed("wfgetdb", Array(ArrayInit(1).set(0, k_DB_MASTER).create()), 0x000000002DA3FF23LL)));
5226 (assignCallTemp(eo_1, toObject(v_dbw)),LINE(3190,eo_1.o_invoke_few_args("replace", 0x42FAC655280A6146LL, 3, "transcache", Array(ArrayInit(1).set(0, "tc_url").create()), (assignCallTemp(eo_2, v_url),assignCallTemp(eo_3, LINE(3189,v_dbw.o_invoke_few_args("timestamp", 0x04F76359D187BC06LL, 1, x_time()))),assignCallTemp(eo_4, v_text),Array(ArrayInit(3).set(0, "tc_url", eo_2, 0x6AAC1850B24C76E9LL).set(1, "tc_time", eo_3, 0x0D1D3E8C72685FEALL).set(2, "tc_contents", eo_4, 0x0B5478C26AE4342DLL).create())))));
5227 return v_text;
5228 } /* function */
5229 /* SRC: Parser.php line 3199 */
5230 Array c_parser::t_argsubstitution(Variant v_piece, CVarRef v_frame) {
5231 INSTANCE_METHOD_INJECTION(Parser, Parser::argSubstitution);
5232 Variant eo_0;
5233 Variant eo_1;
5234 Variant eo_2;
5235 Variant v_error;
5236 Variant v_parts;
5237 Variant v_nameWithSpaces;
5238 Variant v_argName;
5239 Variant v_object;
5240 Variant v_text;
5241 Array v_ret;
5243 LINE(3200,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::argSubstitution").create()), 0x0000000075359BAFLL));
5244 (v_error = false);
5245 (v_parts = v_piece.rvalAt("parts", 0x2708FDA74562AD8DLL));
5246 (v_nameWithSpaces = LINE(3204,toObject(v_frame)->o_invoke_few_args("expand", 0x39B7BB05F05A37CDLL, 1, v_piece.refvalAt("title", 0x66AD900A2301E2FELL))));
5247 (v_argName = LINE(3205,x_trim(toString(v_nameWithSpaces))));
5248 (v_object = false);
5249 (v_text = LINE(3207,toObject(v_frame)->o_invoke_few_args("getArgument", 0x0A95A4780D41F7B8LL, 1, v_argName)));
5250 if (same(v_text, false) && more(LINE(3208,v_parts.o_invoke_few_args("getLength", 0x41EB078EF92C44D4LL, 0)), 0LL) && (toBoolean(m_ot.rvalAt("html", 0x5CA91C812230855DLL)) || toBoolean(m_ot.rvalAt("pre", 0x633242EDD179FBACLL)) || (toBoolean(m_ot.rvalAt("wiki", 0x24648D2BCD794D21LL)) && toBoolean(LINE(3212,toObject(v_frame)->o_invoke_few_args("isTemplate", 0x7CBE9654ADB6CFB9LL, 0)))))) {
5251 (v_object = (assignCallTemp(eo_0, toObject(LINE(3216,v_parts.o_invoke_few_args("item", 0x0A41DBE0830902C6LL, 1, 0LL)))),eo_0.o_invoke_few_args("getChildren", 0x732EC1BDA8EC520FLL, 0)));
5253 if (!(toBoolean((assignCallTemp(eo_2, LINE(3218,x_strlen(toString(v_text)))),t_incrementincludesize("arg", eo_2))))) {
5254 (v_error = "<!-- WARNING: argument omitted, expansion size too large -->");
5255 LINE(3220,t_limitationwarn("post-expand-template-argument"));
5257 if (same(v_text, false) && same(v_object, false)) {
5258 (v_object = LINE(3225,toObject(v_frame)->o_invoke_few_args("virtualBracketedImplode", 0x409618A98590618BLL, 5, "{{{", "|", "}}}", v_nameWithSpaces, v_parts)));
5260 if (!same(v_error, false)) {
5261 concat_assign(v_text, toString(v_error));
5263 if (!same(v_object, false)) {
5264 (v_ret = Array(ArrayInit(1).set(0, "object", v_object, 0x7F30BC4E222B1861LL).create()));
5266 else {
5267 (v_ret = Array(ArrayInit(1).set(0, "text", v_text, 0x2A28A0084DD3A743LL).create()));
5269 LINE(3236,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::argSubstitution").create()), 0x00000000B599F276LL));
5270 return v_ret;
5271 } /* function */
5272 /* SRC: Parser.php line 3252 */
5273 Variant c_parser::t_extensionsubstitution(Variant v_params, CVarRef v_frame) {
5274 INSTANCE_METHOD_INJECTION(Parser, Parser::extensionSubstitution);
5275 Variant eo_0;
5276 Variant eo_1;
5277 Variant eo_2;
5278 Variant eo_3;
5279 Variant eo_4;
5280 Variant eo_5;
5281 Variant eo_6;
5282 Variant eo_7;
5283 DECLARE_GLOBAL_VARIABLES(g);
5284 Variant &gv_wgRawHtml __attribute__((__unused__)) = g->GV(wgRawHtml);
5285 Variant &gv_wgContLang __attribute__((__unused__)) = g->GV(wgContLang);
5286 Variant v_name;
5287 Variant v_attrText;
5288 Variant v_content;
5289 Variant v_marker;
5290 bool v_isFunctionTag = false;
5291 Variant v_attributes;
5292 Variant v_output;
5293 Variant v_callback;
5294 Variant v_flags;
5295 Primitive v_attrName = 0;
5296 Variant v_attrValue;
5297 Variant v_close;
5301 (v_name = LINE(3255,toObject(v_frame)->o_invoke_few_args("expand", 0x39B7BB05F05A37CDLL, 1, v_params.refvalAt("name", 0x0BCDB293DC3CBDDCLL))));
5302 (v_attrText = !(isset(v_params, "attr", 0x64311A2C8443755DLL)) ? ((Variant)(null)) : ((Variant)(LINE(3256,toObject(v_frame)->o_invoke_few_args("expand", 0x39B7BB05F05A37CDLL, 1, v_params.refvalAt("attr", 0x64311A2C8443755DLL))))));
5303 (v_content = !(isset(v_params, "inner", 0x4F20D07BB803C1FELL)) ? ((Variant)(null)) : ((Variant)(LINE(3257,toObject(v_frame)->o_invoke_few_args("expand", 0x39B7BB05F05A37CDLL, 1, v_params.refvalAt("inner", 0x4F20D07BB803C1FELL))))));
5304 (v_marker = LINE(3259,(assignCallTemp(eo_0, toString(o_get("mUniqPrefix", 0x22D00FA247E8311DLL))),assignCallTemp(eo_2, toString(v_name)),assignCallTemp(eo_4, (assignCallTemp(eo_7, m_mMarkerIndex++),x_sprintf(2, "%08X", Array(ArrayInit(1).set(0, eo_7).create())))),concat6(eo_0, "-", eo_2, "-", eo_4, "-QINU\177" /* parser::MARKER_SUFFIX */))));
5305 (v_isFunctionTag = isset(m_mFunctionTagHooks, LINE(3261,x_strtolower(toString(v_name)))) && (toBoolean(m_ot.rvalAt("html", 0x5CA91C812230855DLL)) || toBoolean(m_ot.rvalAt("pre", 0x633242EDD179FBACLL))));
5306 if (toBoolean(m_ot.rvalAt("html", 0x5CA91C812230855DLL)) || v_isFunctionTag) {
5307 (v_name = LINE(3264,x_strtolower(toString(v_name))));
5308 (v_attributes = LINE(3265,throw_fatal("unknown class sanitizer", ((void*)NULL))));
5309 if (isset(v_params, "attributes", 0x3E5975BA0FC37E03LL)) {
5310 (v_attributes = v_attributes + v_params.rvalAt("attributes", 0x3E5975BA0FC37E03LL));
5313 Variant tmp74 = (v_name);
5314 int tmp75 = -1;
5315 if (equal(tmp74, ("html"))) {
5316 tmp75 = 0;
5317 } else if (equal(tmp74, ("nowiki"))) {
5318 tmp75 = 1;
5319 } else if (equal(tmp74, ("gallery"))) {
5320 tmp75 = 2;
5321 } else if (equal(tmp74, ("a"))) {
5322 tmp75 = 3;
5323 } else if (equal(tmp74, ("math"))) {
5324 tmp75 = 4;
5325 } else if (true) {
5326 tmp75 = 5;
5328 switch (tmp75) {
5329 case 0:
5331 if (toBoolean(gv_wgRawHtml)) {
5332 (v_output = v_content);
5333 goto break73;
5335 else {
5336 throw_exception(LINE(3275,create_object("mwexception", Array(ArrayInit(1).set(0, "<html> extension tag encountered unexpectedly").create()))));
5339 case 1:
5341 (v_content = LINE(3278,x_strtr(toString(v_content), ScalarArrays::sa_[23])));
5342 (v_output = LINE(3279,throw_fatal("unknown class xml", ((void*)NULL))));
5343 goto break73;
5345 case 2:
5347 (v_output = LINE(3282,t_renderimagegallery(v_content, v_attributes)));
5348 goto break73;
5350 case 3:
5352 (v_output = LINE(3285,t_renderhyperlink(v_content, v_attributes, v_frame)));
5353 goto break73;
5355 case 4:
5357 if (toBoolean(LINE(3288,m_mOptions.o_invoke_few_args("getUseTeX", 0x2C2CE4CD607BE9D3LL, 0)))) {
5358 (v_output = (assignCallTemp(eo_0, toObject(gv_wgContLang)),LINE(3290,eo_0.o_invoke_few_args("armourMath", 0x56A51C7B197A1253LL, 1, throw_fatal("unknown class mathrenderer", ((void*)NULL))))));
5359 goto break73;
5362 case 5:
5364 if (isset(m_mTagHooks, v_name)) {
5365 if (!(LINE(3297,x_is_callable(m_mTagHooks.rvalAt(v_name))))) {
5366 throw_exception(LINE(3298,create_object("mwexception", Array(ArrayInit(1).set(0, concat3("Tag hook for ", toString(v_name), " is not callable\n")).create()))));
5368 (v_output = LINE(3301,x_call_user_func_array(m_mTagHooks.rvalAt(v_name), Array(ArrayInit(4).set(0, v_content).set(1, v_attributes).set(2, ((Object)(this))).set(3, v_frame).create()))));
5370 else if (isset(m_mFunctionTagHooks, v_name)) {
5371 df_lambda_13(m_mFunctionTagHooks.rvalAt(v_name), v_callback, v_flags);
5372 if (!(LINE(3304,x_is_callable(v_callback)))) throw_exception(LINE(3305,create_object("mwexception", Array(ArrayInit(1).set(0, concat3("Tag hook for ", toString(v_name), " is not callable\n")).create()))));
5373 (v_output = LINE(3308,x_call_user_func_array(v_callback, Array(ArrayInit(4).setRef(0, ref(this)).set(1, v_frame).set(2, v_content).set(3, v_attributes).create()))));
5375 else {
5376 (v_output = LINE(3311,(assignCallTemp(eo_2, x_htmlspecialchars(toString(v_name))),concat3("<span class=\"error\">Invalid tag extension name: ", eo_2, "</span>"))));
5380 break73:;
5383 else {
5384 if (LINE(3315,x_is_null(v_attrText))) {
5385 (v_attrText = "");
5387 if (isset(v_params, "attributes", 0x3E5975BA0FC37E03LL)) {
5389 LOOP_COUNTER(76);
5390 Variant map77 = v_params.rvalAt("attributes", 0x3E5975BA0FC37E03LL);
5391 for (ArrayIterPtr iter78 = map77.begin("parser"); !iter78->end(); iter78->next()) {
5392 LOOP_COUNTER_CHECK(76);
5393 v_attrValue = iter78->second();
5394 v_attrName = iter78->first();
5396 concat_assign(v_attrText, concat(concat_rev(LINE(3321,x_htmlspecialchars(toString(v_attrValue))), LINE(3320,(assignCallTemp(eo_2, x_htmlspecialchars(toString(v_attrName))),concat3(" ", eo_2, "=\"")))), "\""));
5401 if (same(v_content, null)) {
5402 (v_output = LINE(3325,concat4("<", toString(v_name), toString(v_attrText), "/>")));
5404 else {
5405 (v_close = LINE(3327,x_is_null(v_params.rvalAt("close", 0x36B43082F052EC6BLL))) ? ((Variant)("")) : ((Variant)(toObject(v_frame)->o_invoke_few_args("expand", 0x39B7BB05F05A37CDLL, 1, v_params.refvalAt("close", 0x36B43082F052EC6BLL)))));
5406 (v_output = LINE(3328,concat6("<", toString(v_name), toString(v_attrText), ">", toString(v_content), toString(v_close))));
5409 if (v_isFunctionTag) {
5410 return v_output;
5412 else if (same(v_name, "html") || same(v_name, "nowiki")) {
5413 LINE(3335,m_mStripState.o_get("nowiki", 0x78258C7EF69CF55DLL).o_invoke_few_args("setPair", 0x1CA93325C3BDD490LL, 2, v_marker, v_output));
5415 else {
5416 LINE(3337,m_mStripState.o_get("general", 0x661B15A9C00F7127LL).o_invoke_few_args("setPair", 0x1CA93325C3BDD490LL, 2, v_marker, v_output));
5418 return v_marker;
5419 } /* function */
5420 /* SRC: Parser.php line 3349 */
5421 Variant c_parser::t_incrementincludesize(Variant v_type, int v_size) {
5422 INSTANCE_METHOD_INJECTION(Parser, Parser::incrementIncludeSize);
5423 if (more(m_mIncludeSizes.rvalAt(v_type) + v_size, LINE(3350,m_mOptions.o_invoke_few_args("getMaxIncludeSize", 0x5356D47AAA28FDF5LL, 1, v_type)))) {
5424 return false;
5426 else {
5427 lval(m_mIncludeSizes.lvalAt(v_type)) += v_size;
5428 return true;
5430 return null;
5431 } /* function */
5432 /* SRC: Parser.php line 3363 */
5433 bool c_parser::t_incrementexpensivefunctioncount() {
5434 INSTANCE_METHOD_INJECTION(Parser, Parser::incrementExpensiveFunctionCount);
5435 DECLARE_GLOBAL_VARIABLES(g);
5436 Variant &gv_wgExpensiveParserFunctionLimit __attribute__((__unused__)) = g->GV(wgExpensiveParserFunctionLimit);
5437 m_mExpensiveFunctionCount++;
5438 if (not_more(m_mExpensiveFunctionCount, gv_wgExpensiveParserFunctionLimit)) {
5439 return true;
5441 return false;
5442 } /* function */
5443 /* SRC: Parser.php line 3376 */
5444 Variant c_parser::t_dodoubleunderscore(Variant v_text) {
5445 INSTANCE_METHOD_INJECTION(Parser, Parser::doDoubleUnderscore);
5446 Variant v_mw;
5447 Variant v_mwa;
5449 LINE(3377,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::doDoubleUnderscore").create()), 0x0000000075359BAFLL));
5450 (v_mw = LINE(3379,throw_fatal("unknown class magicword", ((void*)NULL))));
5451 if (toBoolean(LINE(3380,v_mw.o_invoke_few_args("match", 0x2B8782BF7206E093LL, 1, v_text)))) {
5452 (o_lval("mShowToc", 0x673E52F417D0192CLL) = true);
5453 (o_lval("mForceTocPosition", 0x00520DD93AF13A69LL) = true);
5454 (v_text = LINE(3385,v_mw.o_invoke_few_args("replace", 0x42FAC655280A6146LL, 3, "<!--MWTOC-->", v_text, 1LL)));
5455 (v_text = LINE(3388,v_mw.o_invoke_few_args("replace", 0x42FAC655280A6146LL, 2, "", v_text)));
5457 (v_mwa = LINE(3392,throw_fatal("unknown class magicword", ((void*)NULL))));
5458 (m_mDoubleUnderscores = LINE(3393,v_mwa.o_invoke_few_args("matchAndRemove", 0x5D764C79A01CBB8ALL, 1, v_text)));
5459 if (isset(m_mDoubleUnderscores, "nogallery", 0x6F33D1D1CA81CAF8LL)) {
5460 (m_mOutput.o_lval("mNoGallery", 0x1A3DE12EE5312AF7LL) = true);
5462 if (isset(m_mDoubleUnderscores, "notoc", 0x5A0DBCCD1B31033ELL) && !(toBoolean(o_get("mForceTocPosition", 0x00520DD93AF13A69LL)))) {
5463 (o_lval("mShowToc", 0x673E52F417D0192CLL) = false);
5465 if (isset(m_mDoubleUnderscores, "hiddencat", 0x2C5B4188322C4B9DLL) && equal(LINE(3401,m_mTitle.o_invoke_few_args("getNamespace", 0x6DC05480D007D522LL, 0)), k_NS_CATEGORY)) {
5466 LINE(3402,m_mOutput.o_invoke_few_args("setProperty", 0x71FC9AA7F05A6BD3LL, 2, "hiddencat", "y"));
5467 LINE(3403,t_addtrackingcategory("hidden-category-category"));
5469 if (isset(m_mDoubleUnderscores, "noindex", 0x79A36E5D0F4C89CDLL) && toBoolean(LINE(3409,m_mTitle.o_invoke_few_args("canUseNoindex", 0x424D16BD430D23E2LL, 0)))) {
5470 LINE(3410,m_mOutput.o_invoke_few_args("setIndexPolicy", 0x78B79F97AFD45D1BLL, 1, "noindex"));
5471 LINE(3411,t_addtrackingcategory("noindex-category"));
5473 if (isset(m_mDoubleUnderscores, "index", 0x440D5888C0FF3081LL) && toBoolean(LINE(3413,m_mTitle.o_invoke_few_args("canUseNoindex", 0x424D16BD430D23E2LL, 0)))) {
5474 LINE(3414,m_mOutput.o_invoke_few_args("setIndexPolicy", 0x78B79F97AFD45D1BLL, 1, "index"));
5475 LINE(3415,t_addtrackingcategory("index-category"));
5477 LINE(3417,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::doDoubleUnderscore").create()), 0x00000000B599F276LL));
5478 return v_text;
5479 } /* function */
5480 /* SRC: Parser.php line 3427 */
5481 Variant c_parser::t_addtrackingcategory(Variant v_msg) {
5482 INSTANCE_METHOD_INJECTION(Parser, Parser::addTrackingCategory);
5483 Variant eo_0;
5484 Variant eo_1;
5485 Variant v_cat;
5486 Variant v_containerCategory;
5488 (v_cat = LINE(3428,invoke_failed("wfmsgforcontent", Array(ArrayInit(1).set(0, ref(v_msg)).create()), 0x0000000033607CCALL)));
5489 if (same(v_cat, "-")) return false;
5490 (v_containerCategory = LINE(3433,throw_fatal("unknown class title", ((void*)NULL))));
5491 if (toBoolean(v_containerCategory)) {
5492 (assignCallTemp(eo_0, ref(LINE(3435,v_containerCategory.o_invoke_few_args("getDBkey", 0x7A72F137192AEF00LL, 0)))),assignCallTemp(eo_1, ref(t_getdefaultsort())),m_mOutput.o_invoke("addCategory", Array(ArrayInit(2).set(0, eo_0).set(1, eo_1).create()), 0x6DBAA9816B039793LL));
5493 return true;
5495 else {
5496 LINE(3438,invoke_failed("wfdebug", Array(ArrayInit(1).set(0, concat("Parser::addTrackingCategory", concat3(": [[MediaWiki:", toString(v_msg), "]] is not a valid title!\n"))).create()), 0x00000000E441E905LL));
5497 return false;
5499 return null;
5500 } /* function */
5501 /* SRC: Parser.php line 3458 */
5502 Variant c_parser::t_formatheadings(CVarRef v_text, CVarRef v_origText, bool v_isMain // = true
5504 INSTANCE_METHOD_INJECTION(Parser, Parser::formatHeadings);
5505 Variant eo_0;
5506 Variant eo_1;
5507 Variant eo_2;
5508 Variant eo_3;
5509 Variant eo_4;
5510 DECLARE_GLOBAL_VARIABLES(g);
5511 Variant &gv_wgMaxTocLevel __attribute__((__unused__)) = g->GV(wgMaxTocLevel);
5512 Variant &gv_wgContLang __attribute__((__unused__)) = g->GV(wgContLang);
5513 Variant &gv_wgEnforceHtmlIds __attribute__((__unused__)) = g->GV(wgEnforceHtmlIds);
5514 Variant v_doNumberHeadings;
5515 Variant v_showEditLink;
5516 Variant v_matches;
5517 Variant v_numMatches;
5518 bool v_enoughToc = false;
5519 Variant v_sk;
5520 int64 v_headlineCount = 0;
5521 int64 v_numVisible = 0;
5522 Variant v_toc;
5523 Variant v_full;
5524 Variant v_head;
5525 Variant v_sublevelCount;
5526 Variant v_levelCount;
5527 Variant v_toclevel;
5528 Variant v_level;
5529 Variant v_prevlevel;
5530 Variant v_prevtoclevel;
5531 String v_markerRegex;
5532 Variant v_baseTitleText;
5533 Variant v_oldType;
5534 Variant v_frame;
5535 Variant v_root;
5536 Variant v_node;
5537 Variant v_byteOffset;
5538 Variant v_tocraw;
5539 Variant v_headline;
5540 bool v_isTemplate = false;
5541 Variant v_titleText;
5542 Variant v_sectionIndex;
5543 Variant v_numbering;
5544 Variant v_markerMatches;
5545 Variant v_serial;
5546 Variant v_i;
5547 int64 v_dot = 0;
5548 Variant v_safeHeadline;
5549 Variant v_tocline;
5550 Variant v_headlineHint;
5551 Variant v_legacyHeadline;
5552 String v_arrayKey;
5553 Variant v_legacyArrayKey;
5554 Variant v_refers;
5555 Variant v_anchor;
5556 Variant v_legacyAnchor;
5557 Variant v_bits;
5558 Variant v_editlink;
5559 Variant v_blocks;
5560 Variant v_block;
5564 (v_doNumberHeadings = LINE(3461,m_mOptions.o_invoke_few_args("getNumberHeadings", 0x24F0B1CAFFCAC26ELL, 0)));
5565 (v_showEditLink = LINE(3462,m_mOptions.o_invoke_few_args("getEditSection", 0x5F1B74D4BEBB6CD5LL, 0)));
5566 if (toBoolean(v_showEditLink) && !(toBoolean(LINE(3465,m_mTitle.o_invoke_few_args("quickUserCan", 0x643A7B8592BE5D21LL, 1, "edit"))))) {
5567 (v_showEditLink = 0LL);
5569 if (isset(m_mDoubleUnderscores, "noeditsection", 0x1801E39E12ED2434LL) || toBoolean(LINE(3470,m_mOptions.o_invoke_few_args("getIsPrintable", 0x6256ABE618956C3DLL, 0)))) {
5570 (v_showEditLink = 0LL);
5572 (v_matches = ScalarArrays::sa_[0]);
5573 (v_numMatches = LINE(3477,x_preg_match_all("/<H(\?P<level>[1-6])(\?P<attrib>.*\?>)(\?P<header>.*\?)<\\/H[1-6] *>/i", toString(v_text), ref(v_matches))));
5574 (v_enoughToc = toBoolean(o_get("mShowToc", 0x673E52F417D0192CLL)) && ((not_less(v_numMatches, 4LL)) || toBoolean(o_get("mForceTocPosition", 0x00520DD93AF13A69LL))));
5575 if (isset(m_mDoubleUnderscores, "newsectionlink", 0x101E6B0BB687547ELL)) {
5576 LINE(3487,m_mOutput.o_invoke_few_args("setNewSection", 0x7AAA4B3474D6F233LL, 1, true));
5578 if (isset(m_mDoubleUnderscores, "nonewsectionlink", 0x200499187756CDE0LL)) {
5579 LINE(3493,m_mOutput.o_invoke_few_args("hideNewSection", 0x3F7198F790CA3D5CLL, 1, true));
5581 if (isset(m_mDoubleUnderscores, "forcetoc", 0x51B4F107BB3551E3LL)) {
5582 (o_lval("mShowToc", 0x673E52F417D0192CLL) = true);
5583 (v_enoughToc = true);
5585 (v_sk = LINE(3504,m_mOptions.o_invoke_few_args("getSkin", 0x6C79601E06BA735FLL, 0)));
5586 (v_headlineCount = 0LL);
5587 (v_numVisible = 0LL);
5588 (v_toc = "");
5589 (v_full = "");
5590 (v_head = ScalarArrays::sa_[0]);
5591 (v_sublevelCount = ScalarArrays::sa_[0]);
5592 (v_levelCount = ScalarArrays::sa_[0]);
5593 (v_toclevel = 0LL);
5594 (v_level = 0LL);
5595 (v_prevlevel = 0LL);
5596 (v_toclevel = 0LL);
5597 (v_prevtoclevel = 0LL);
5598 (v_markerRegex = concat(toString(o_get("mUniqPrefix", 0x22D00FA247E8311DLL)) + toString("-h-(\\d+)-"), "-QINU\177" /* parser::MARKER_SUFFIX */));
5599 (v_baseTitleText = LINE(3523,m_mTitle.o_invoke_few_args("getPrefixedDBkey", 0x3E327BDC66DECDABLL, 0)));
5600 (v_oldType = m_mOutputType);
5601 LINE(3525,t_setoutputtype(2LL /* parser::OT_WIKI */));
5602 (v_frame = (assignCallTemp(eo_0, toObject(LINE(3526,t_getpreprocessor()))),eo_0.o_invoke_few_args("newFrame", 0x787B6141D7721675LL, 0)));
5603 (v_root = LINE(3527,t_preprocesstodom(v_origText)));
5604 (v_node = LINE(3528,v_root.o_invoke_few_args("getFirstChild", 0x050681239965E069LL, 0)));
5605 (v_byteOffset = 0LL);
5606 (v_tocraw = ScalarArrays::sa_[0]);
5608 LOOP_COUNTER(79);
5609 Variant map80 = v_matches.rvalAt(3LL, 0x135FDDF6A6BFBBDDLL);
5610 for (ArrayIterPtr iter81 = map80.begin("parser"); !iter81->end(); iter81->next()) {
5611 LOOP_COUNTER_CHECK(79);
5612 v_headline = iter81->second();
5614 (v_isTemplate = false);
5615 (v_titleText = false);
5616 (v_sectionIndex = false);
5617 (v_numbering = "");
5618 (v_markerMatches = ScalarArrays::sa_[0]);
5619 if (toBoolean(LINE(3538,(assignCallTemp(eo_1, concat3("/^", v_markerRegex, "/")),assignCallTemp(eo_2, toString(v_headline)),assignCallTemp(eo_3, ref(v_markerMatches)),x_preg_match(eo_1, eo_2, eo_3))))) {
5620 (v_serial = v_markerMatches.rvalAt(1LL, 0x5BCA7C69B794F8CELL));
5621 df_lambda_14(m_mHeadings.rvalAt(v_serial), v_titleText, v_sectionIndex);
5622 (v_isTemplate = (!equal(v_titleText, v_baseTitleText)));
5623 (v_headline = LINE(3542,(assignCallTemp(eo_1, concat3("/^", v_markerRegex, "/")),assignCallTemp(eo_3, v_headline),x_preg_replace(eo_1, "", eo_3))));
5625 if (toBoolean(v_toclevel)) {
5626 (v_prevlevel = v_level);
5627 (v_prevtoclevel = v_toclevel);
5629 (v_level = v_matches.rvalAt(1LL, 0x5BCA7C69B794F8CELL).rvalAt(v_headlineCount));
5630 if (more(v_level, v_prevlevel)) {
5631 v_toclevel++;
5632 v_sublevelCount.set(v_toclevel, (0LL));
5633 if (less(v_toclevel, gv_wgMaxTocLevel)) {
5634 (v_prevtoclevel = v_toclevel);
5635 concat_assign(v_toc, toString(LINE(3557,v_sk.o_invoke_few_args("tocIndent", 0x2FA99265082DB35BLL, 0))));
5636 v_numVisible++;
5639 else if (less(v_level, v_prevlevel) && more(v_toclevel, 1LL)) {
5641 LOOP_COUNTER(82);
5642 for ((v_i = v_toclevel); more(v_i, 0LL); v_i--) {
5643 LOOP_COUNTER_CHECK(82);
5645 if (equal(v_levelCount.rvalAt(v_i), v_level)) {
5646 (v_toclevel = v_i);
5647 break;
5649 else if (less(v_levelCount.rvalAt(v_i), v_level)) {
5650 (v_toclevel = v_i + 1LL);
5651 break;
5656 if (equal(v_i, 0LL)) (v_toclevel = 1LL);
5657 if (less(v_toclevel, gv_wgMaxTocLevel)) {
5658 if (less(v_prevtoclevel, gv_wgMaxTocLevel)) {
5659 concat_assign(v_toc, toString(LINE(3580,v_sk.o_invoke_few_args("tocUnindent", 0x093C3E54C9882291LL, 1, v_prevtoclevel - v_toclevel))));
5660 (v_prevtoclevel = v_toclevel);
5662 else {
5663 concat_assign(v_toc, toString(LINE(3583,v_sk.o_invoke_few_args("tocLineEnd", 0x797D6BBFCB435B39LL, 0))));
5667 else {
5668 if (less(v_toclevel, gv_wgMaxTocLevel)) {
5669 concat_assign(v_toc, toString(LINE(3590,v_sk.o_invoke_few_args("tocLineEnd", 0x797D6BBFCB435B39LL, 0))));
5672 v_levelCount.set(v_toclevel, (v_level));
5673 (silenceInc(), silenceDec(lval(v_sublevelCount.lvalAt(v_toclevel))++));
5674 (v_dot = 0LL);
5676 LOOP_COUNTER(83);
5677 for ((v_i = 1LL); not_more(v_i, v_toclevel); v_i++) {
5678 LOOP_COUNTER_CHECK(83);
5680 if (!(empty(v_sublevelCount, v_i))) {
5681 if (toBoolean(v_dot)) {
5682 concat_assign(v_numbering, ".");
5684 concat_assign(v_numbering, toString(LINE(3604,gv_wgContLang.o_invoke_few_args("formatNum", 0x0FEB8F5DDB8EBB5ALL, 1, v_sublevelCount.refvalAt(v_i)))));
5685 (v_dot = 1LL);
5690 (v_safeHeadline = LINE(3611,m_mStripState.o_invoke_few_args("unstripBoth", 0x540C7C6FAA3D937BLL, 1, v_headline)));
5691 (v_safeHeadline = LINE(3617,t_replacelinkholderstext(v_safeHeadline)));
5692 (v_tocline = LINE(3624,x_preg_replace(ScalarArrays::sa_[24], ScalarArrays::sa_[25], v_safeHeadline)));
5693 (v_tocline = LINE(3625,x_trim(toString(v_tocline))));
5694 (v_safeHeadline = LINE(3628,x_preg_replace("/<.*\?>/", "", v_safeHeadline)));
5695 (v_safeHeadline = LINE(3629,x_preg_replace("/[ _]+/", " ", v_safeHeadline)));
5696 (v_safeHeadline = LINE(3630,x_trim(toString(v_safeHeadline))));
5697 (v_headlineHint = v_safeHeadline);
5698 if (toBoolean(gv_wgEnforceHtmlIds)) {
5699 (v_legacyHeadline = false);
5700 (v_safeHeadline = LINE(3638,throw_fatal("unknown class sanitizer", ((void*)NULL))));
5702 else {
5703 (v_legacyHeadline = LINE(3651,throw_fatal("unknown class sanitizer", ((void*)NULL))));
5704 (v_safeHeadline = LINE(3652,throw_fatal("unknown class sanitizer", ((void*)NULL))));
5705 if (equal(v_legacyHeadline, v_safeHeadline)) {
5706 (v_legacyHeadline = false);
5708 else if (!equal(v_legacyHeadline, LINE(3658,throw_fatal("unknown class sanitizer", ((void*)NULL))))) {
5709 (v_legacyHeadline = false);
5712 (v_arrayKey = LINE(3670,x_strtolower(toString(v_safeHeadline))));
5713 if (same(v_legacyHeadline, false)) {
5714 (v_legacyArrayKey = false);
5716 else {
5717 (v_legacyArrayKey = LINE(3674,x_strtolower(toString(v_legacyHeadline))));
5719 if (isset(v_refers, v_arrayKey)) {
5720 lval(v_refers.lvalAt(v_arrayKey))++;
5722 else {
5723 v_refers.set(v_arrayKey, (1LL));
5725 if (isset(v_refers, v_legacyArrayKey)) {
5726 lval(v_refers.lvalAt(v_legacyArrayKey))++;
5728 else {
5729 v_refers.set(v_legacyArrayKey, (1LL));
5731 if (toBoolean(v_doNumberHeadings) && more(LINE(3690,x_count(v_matches.rvalAt(3LL, 0x135FDDF6A6BFBBDDLL))), 1LL)) {
5732 (v_headline = LINE(3692,concat3(toString(v_numbering), " ", toString(v_headline))));
5734 (v_anchor = v_safeHeadline);
5735 (v_legacyAnchor = v_legacyHeadline);
5736 if (more(v_refers.rvalAt(v_arrayKey), 1LL)) {
5737 concat_assign(v_anchor, concat("_", toString(v_refers.rvalAt(v_arrayKey))));
5739 if (!same(v_legacyHeadline, false) && more(v_refers.rvalAt(v_legacyArrayKey), 1LL)) {
5740 concat_assign(v_legacyAnchor, concat("_", toString(v_refers.rvalAt(v_legacyArrayKey))));
5742 if (v_enoughToc && (!(isset(gv_wgMaxTocLevel)) || less(v_toclevel, gv_wgMaxTocLevel))) {
5743 concat_assign(v_toc, toString((assignCallTemp(eo_1, toObject(v_sk)),LINE(3706,eo_1.o_invoke_few_args("tocLine", 0x452A70789058599DLL, 5, v_anchor, v_tocline, v_numbering, v_toclevel, (v_isTemplate ? ((Variant)(false)) : ((Variant)(v_sectionIndex))))))));
5745 LOOP_COUNTER(84);
5747 while (toBoolean(v_node) && !(v_isTemplate)) {
5748 LOOP_COUNTER_CHECK(84);
5750 if (same(LINE(3712,v_node.o_invoke_few_args("getName", 0x23F51CDECC198965LL, 0)), "h")) {
5751 (v_bits = LINE(3713,v_node.o_invoke_few_args("splitHeading", 0x0621AE2D22A1922DLL, 0)));
5752 if (equal(v_bits.rvalAt("i", 0x0EB22EDA95766E98LL), v_sectionIndex)) break;
5754 v_byteOffset += LINE(3718,x_mb_strlen(toString((assignCallTemp(eo_2, toObject(m_mStripState)),eo_2.o_invoke_few_args("unstripBoth", 0x540C7C6FAA3D937BLL, 1, v_frame.o_invoke_few_args("expand", 0x39B7BB05F05A37CDLL, 2, v_node, 27LL /* ppframe::RECOVER_ORIG */))))));
5755 (v_node = LINE(3719,v_node.o_invoke_few_args("getNextSibling", 0x4CB333CF2D880119LL, 0)));
5759 v_tocraw.append((Array(ArrayInit(8).set(0, "toclevel", v_toclevel, 0x5CD76FFB746050EDLL).set(1, "level", v_level, 0x26B910814038EBA3LL).set(2, "line", v_tocline, 0x21093C71DDF8728CLL).set(3, "number", v_numbering, 0x2E2E8BE57817A743LL).set(4, "index", concat((toString(v_isTemplate ? (("T-")) : (("")))), toString(v_sectionIndex)), 0x440D5888C0FF3081LL).set(5, "fromtitle", v_titleText, 0x3EDEEBB22A230184LL).set(6, "byteoffset", (v_isTemplate ? ((Variant)(null)) : ((Variant)(v_byteOffset))), 0x6C263FBE5174D9CDLL).set(7, "anchor", v_anchor, 0x07FC0405478F294FLL).create())));
5760 if (toBoolean(v_showEditLink) && !same(v_sectionIndex, false)) {
5761 if (v_isTemplate) {
5762 (v_editlink = (assignCallTemp(eo_3, ref(LINE(3737,throw_fatal("unknown class title", ((void*)NULL))))),assignCallTemp(eo_4, toString("T-") + toString(v_sectionIndex)),v_sk.o_invoke("doEditSectionLink", Array(ArrayInit(2).set(0, eo_3).set(1, eo_4).create()), 0x2F1D4ACEF0431135LL)));
5764 else {
5765 (v_editlink = LINE(3739,v_sk.o_invoke_few_args("doEditSectionLink", 0x2F1D4ACEF0431135LL, 3, m_mTitle, v_sectionIndex, v_headlineHint)));
5768 else {
5769 (v_editlink = "");
5771 v_head.set(v_headlineCount, ((assignCallTemp(eo_3, toObject(v_sk)),LINE(3746,eo_3.o_invoke_few_args("makeHeadline", 0x10AB357B787963CALL, 6, v_level, lval(v_matches.lvalAt("attrib", 0x66693EBBD88E0435LL)).refvalAt(v_headlineCount), v_anchor, v_headline, v_editlink, v_legacyAnchor)))));
5772 v_headlineCount++;
5776 LINE(3751,t_setoutputtype(v_oldType));
5777 if (less(v_numVisible, 1LL)) {
5778 (v_enoughToc = false);
5780 if (v_enoughToc) {
5781 if (more(v_prevtoclevel, 0LL) && less(v_prevtoclevel, gv_wgMaxTocLevel)) {
5782 concat_assign(v_toc, toString(LINE(3760,v_sk.o_invoke_few_args("tocUnindent", 0x093C3E54C9882291LL, 1, v_prevtoclevel - 1LL))));
5784 (v_toc = LINE(3762,v_sk.o_invoke_few_args("tocList", 0x505D07AA0C1375D5LL, 1, v_toc)));
5785 LINE(3763,m_mOutput.o_invoke_few_args("setTOCHTML", 0x7207F5C225B9E59CLL, 1, v_toc));
5787 if (v_isMain) {
5788 LINE(3767,m_mOutput.o_invoke_few_args("setSections", 0x6A6A6F940F0C36F5LL, 1, v_tocraw));
5790 (v_blocks = LINE(3772,x_preg_split("/<H[1-6].*\?>.*\?<\\/H[1-6]>/i", v_text)));
5791 (v_i = 0LL);
5793 LOOP_COUNTER(85);
5794 for (ArrayIterPtr iter87 = v_blocks.begin("parser"); !iter87->end(); iter87->next()) {
5795 LOOP_COUNTER_CHECK(85);
5796 v_block = iter87->second();
5798 if (toBoolean(v_showEditLink) && more(v_headlineCount, 0LL) && equal(v_i, 0LL) && !same(v_block, "\n")) {
5800 concat_assign(v_full, toString(v_block));
5801 if (v_enoughToc && !(toBoolean(v_i)) && v_isMain && !(toBoolean(o_get("mForceTocPosition", 0x00520DD93AF13A69LL)))) {
5802 (v_full = concat(toString(v_full), toString(v_toc)));
5804 if (!(empty(v_head, v_i))) {
5805 concat_assign(v_full, toString(v_head.rvalAt(v_i)));
5807 v_i++;
5811 if (toBoolean(o_get("mForceTocPosition", 0x00520DD93AF13A69LL))) {
5812 return LINE(3796,x_str_replace("<!--MWTOC-->", v_toc, v_full));
5814 else {
5815 return v_full;
5817 return null;
5818 } /* function */
5819 /* SRC: Parser.php line 3814 */
5820 Array c_parser::ti_mergesectiontrees(const char* cls, CArrRef v_tree1, CArrRef v_tree2, CVarRef v_section, Object v_title, CVarRef v_len2) {
5821 STATIC_METHOD_INJECTION(Parser, Parser::mergeSectionTrees);
5822 Variant eo_0;
5823 Variant eo_1;
5824 DECLARE_GLOBAL_VARIABLES(g);
5825 Variant &gv_wgContLang __attribute__((__unused__)) = g->GV(wgContLang);
5826 Array v_newTree;
5827 Variant v_targetLevel;
5828 bool v_merged = false;
5829 Variant v_lastLevel;
5830 int64 v_nextIndex = 0;
5831 Variant v_numbering;
5832 Variant v_titletext;
5833 Variant v_s;
5834 Variant v_s2;
5836 (v_newTree = ScalarArrays::sa_[0]);
5837 (v_targetLevel = false);
5838 (v_merged = false);
5839 (v_lastLevel = 1LL);
5840 (v_nextIndex = 1LL);
5841 (v_numbering = ScalarArrays::sa_[26]);
5842 (v_titletext = LINE(3822,v_title->o_invoke_few_args("getPrefixedDBkey", 0x3E327BDC66DECDABLL, 0)));
5844 LOOP_COUNTER(88);
5845 for (ArrayIter iter90 = v_tree1.begin("parser"); !iter90.end(); ++iter90) {
5846 LOOP_COUNTER_CHECK(88);
5847 v_s = iter90.second();
5849 if (!same(v_targetLevel, false)) {
5850 if (not_more(v_s.rvalAt("level", 0x26B910814038EBA3LL), v_targetLevel)) (v_targetLevel = false);
5851 else continue;
5853 if (!equal(v_s.rvalAt("index", 0x440D5888C0FF3081LL), v_section) || !equal(v_s.rvalAt("fromtitle", 0x3EDEEBB22A230184LL), v_titletext)) {
5854 LINE(3834,c_parser::t_incrementnumbering(ref(v_numbering), v_s.rvalAt("toclevel", 0x5CD76FFB746050EDLL), v_lastLevel));
5855 if (equal(v_s.rvalAt("fromtitle", 0x3EDEEBB22A230184LL), v_titletext)) {
5856 v_s.set("index", (v_nextIndex++), 0x440D5888C0FF3081LL);
5857 if (v_merged) lval(v_s.lvalAt("byteoffset", 0x6C263FBE5174D9CDLL)) += v_len2;
5859 v_s.set("number", (LINE(3844,(assignCallTemp(eo_1, x_array_map(2, Array(ArrayInit(2).set(0, gv_wgContLang).set(1, "formatnum").create()), v_numbering)),x_implode(".", eo_1)))), 0x2E2E8BE57817A743LL);
5860 (v_lastLevel = v_s.rvalAt("toclevel", 0x5CD76FFB746050EDLL));
5861 v_newTree.append((v_s));
5863 else {
5865 LOOP_COUNTER(91);
5866 for (ArrayIter iter93 = v_tree2.begin("parser"); !iter93.end(); ++iter93) {
5867 LOOP_COUNTER_CHECK(91);
5868 v_s2 = iter93.second();
5870 lval(v_s2.lvalAt("toclevel", 0x5CD76FFB746050EDLL)) += v_s.rvalAt("toclevel", 0x5CD76FFB746050EDLL) - 1LL;
5871 lval(v_s2.lvalAt("level", 0x26B910814038EBA3LL)) += v_s.rvalAt("level", 0x26B910814038EBA3LL) - 1LL;
5872 v_s2.set("index", (v_nextIndex++), 0x440D5888C0FF3081LL);
5873 lval(v_s2.lvalAt("byteoffset", 0x6C263FBE5174D9CDLL)) += v_s.rvalAt("byteoffset", 0x6C263FBE5174D9CDLL);
5874 LINE(3859,c_parser::t_incrementnumbering(ref(v_numbering), v_s2.rvalAt("toclevel", 0x5CD76FFB746050EDLL), v_lastLevel));
5875 v_s2.set("number", (LINE(3862,(assignCallTemp(eo_1, x_array_map(2, Array(ArrayInit(2).set(0, gv_wgContLang).set(1, "formatnum").create()), v_numbering)),x_implode(".", eo_1)))), 0x2E2E8BE57817A743LL);
5876 (v_lastLevel = v_s2.rvalAt("toclevel", 0x5CD76FFB746050EDLL));
5877 v_newTree.append((v_s2));
5881 (v_targetLevel = v_s.rvalAt("level", 0x26B910814038EBA3LL));
5882 (v_merged = true);
5887 return v_newTree;
5888 } /* function */
5889 /* SRC: Parser.php line 3880 */
5890 void c_parser::ti_incrementnumbering(const char* cls, Variant v_number, CVarRef v_level, CVarRef v_lastLevel) {
5891 STATIC_METHOD_INJECTION(Parser, Parser::incrementNumbering);
5892 DECLARE_GLOBAL_VARIABLES(g);
5893 Primitive v_key = 0;
5894 Variant v_unused;
5896 if (more(v_level, v_lastLevel)) v_number.set(v_level - 1LL, (1LL));
5897 else if (less(v_level, v_lastLevel)) {
5899 LOOP_COUNTER(94);
5900 for (ArrayIterPtr iter96 = v_number.begin("parser"); !iter96->end(); iter96->next()) {
5901 LOOP_COUNTER_CHECK(94);
5902 v_unused = iter96->second();
5903 v_key = iter96->first();
5904 if (not_less(v_key, v_level)) v_number.weakRemove(v_key);
5907 lval(v_number.lvalAt(v_level - 1LL))++;
5909 else lval(v_number.lvalAt(v_level - 1LL))++;
5910 } /* function */
5911 /* SRC: Parser.php line 3904 */
5912 Variant c_parser::t_presavetransform(Variant v_text, CVarRef v_title, CVarRef v_user, CVarRef v_options, bool v_clearState // = true
5914 INSTANCE_METHOD_INJECTION(Parser, Parser::preSaveTransform);
5915 Variant eo_0;
5916 Variant eo_1;
5917 Variant eo_2;
5918 Array v_pairs;
5920 (m_mOptions = v_options);
5921 LINE(3906,t_settitle(v_title));
5922 LINE(3907,t_setoutputtype(2LL /* parser::OT_WIKI */));
5923 if (v_clearState) {
5924 LINE(3910,t_clearstate());
5926 (v_pairs = ScalarArrays::sa_[27]);
5927 (v_text = LINE(3916,(assignCallTemp(eo_0, x_array_keys(v_pairs)),assignCallTemp(eo_1, x_array_values(v_pairs)),assignCallTemp(eo_2, v_text),x_str_replace(eo_0, eo_1, eo_2))));
5928 (v_text = LINE(3917,t_pstpass2(v_text, v_user)));
5929 (v_text = LINE(3918,m_mStripState.o_invoke_few_args("unstripBoth", 0x540C7C6FAA3D937BLL, 1, v_text)));
5930 return v_text;
5931 } /* function */
5932 /* SRC: Parser.php line 3926 */
5933 Variant c_parser::t_pstpass2(Variant v_text, Variant v_user) {
5934 INSTANCE_METHOD_INJECTION(Parser, Parser::pstPass2);
5935 Variant eo_0;
5936 Variant eo_1;
5937 Variant eo_2;
5938 DECLARE_GLOBAL_VARIABLES(g);
5939 Variant &gv_wgContLang __attribute__((__unused__)) = g->GV(wgContLang);
5940 Variant &gv_wgLocaltimezone __attribute__((__unused__)) = g->GV(wgLocaltimezone);
5941 Variant v_ts;
5942 Variant v_tz;
5943 Variant v_unixts;
5944 Variant v_oldtz;
5945 Variant v_key;
5946 Variant v_value;
5947 String v_d;
5948 Variant v_sigText;
5949 Variant &gv_wgLegalTitleChars __attribute__((__unused__)) = g->GV(wgLegalTitleChars);
5950 String v_tc;
5951 String v_nc;
5952 String v_p1;
5953 String v_p4;
5954 String v_p3;
5955 String v_p2;
5956 Variant v_t;
5957 Variant v_m;
5961 (v_ts = LINE(3936,m_mOptions.o_invoke_few_args("getTimestamp", 0x7533D7D1FB463C81LL, 0)));
5962 (v_tz = LINE(3937,invoke_failed("wfmsgforcontent", Array(ArrayInit(1).set(0, "timezone-utc").create()), 0x0000000033607CCALL)));
5963 if (isset(gv_wgLocaltimezone)) {
5964 (v_unixts = LINE(3939,invoke_failed("wftimestamp", Array(ArrayInit(2).set(0, k_TS_UNIX).set(1, ref(v_ts)).create()), 0x00000000AADC1C20LL)));
5965 (v_oldtz = LINE(3940,x_getenv("TZ")));
5966 LINE(3941,x_putenv(concat("TZ=", toString(gv_wgLocaltimezone))));
5967 (v_ts = LINE(3942,x_date("YmdHis", toInt64(v_unixts))));
5968 (v_tz = LINE(3943,x_date("T", toInt64(v_unixts))));
5969 (v_key = concat("timezone-", LINE(3949,x_strtolower(x_trim(toString(v_tz))))));
5970 (v_value = LINE(3950,invoke_failed("wfmsgforcontent", Array(ArrayInit(1).set(0, ref(v_key)).create()), 0x0000000033607CCALL)));
5971 if (!(toBoolean(LINE(3951,invoke_failed("wfemptymsg", Array(ArrayInit(2).set(0, ref(v_key)).set(1, ref(v_value)).create()), 0x00000000ACF08022LL))))) (v_tz = v_value);
5972 LINE(3953,x_putenv(concat("TZ=", toString(v_oldtz))));
5974 (v_d = concat_rev(LINE(3956,concat3(" (", toString(v_tz), ")")), toString(gv_wgContLang.o_invoke_few_args("timeanddate", 0x7A1040DE131E934BLL, 3, v_ts, false, false))));
5975 (v_text = LINE(3960,t_replacevariables(v_text)));
5976 (v_sigText = LINE(3963,t_getusersig(ref(v_user))));
5977 (v_text = LINE(3968,x_strtr(toString(v_text), (assignCallTemp(eo_0, v_d),assignCallTemp(eo_1, LINE(3966,concat3(toString(v_sigText), " ", v_d))),assignCallTemp(eo_2, v_sigText),Array(ArrayInit(3).set(0, "~~~~~", eo_0, 0x3D5058E7395417B2LL).set(1, "~~~~", eo_1, 0x691A9EDFAB83F804LL).set(2, "~~~", eo_2, 0x3C75BFED7FEA008DLL).create())))));
5978 (v_tc = LINE(3973,concat3("[", toString(gv_wgLegalTitleChars), "]")));
5979 (v_nc = "[ _0-9A-Za-z\\x80-\\xff-]");
5980 (v_p1 = concat("/\\[\\[(:\?", LINE(3976,concat6(v_nc, "+:|:|)(", v_tc, "+\?)( \\(", v_tc, "+\\))\\|]]/"))));
5981 (v_p4 = concat("/\\[\\[(:\?", LINE(3977,concat6(v_nc, "+:|:|)(", v_tc, "+\?)(\357\274\210", v_tc, "+\357\274\211)\\|]]/"))));
5982 (v_p3 = concat_rev(LINE(3978,concat6(v_tc, "+\?)( \\(", v_tc, "+\\)|)(, ", v_tc, "+|)\\|]]/")), concat3("/\\[\\[(:\?", v_nc, "+:|:|)(")));
5983 (v_p2 = LINE(3979,concat3("/\\[\\[\\|(", v_tc, "+)]]/")));
5984 (v_text = LINE(3982,x_preg_replace(v_p1, "[[\\1\\2\\3|\\2]]", v_text)));
5985 (v_text = LINE(3983,x_preg_replace(v_p4, "[[\\1\\2\\3|\\2]]", v_text)));
5986 (v_text = LINE(3984,x_preg_replace(v_p3, "[[\\1\\2\\3\\4|\\2]]", v_text)));
5987 (v_t = LINE(3986,m_mTitle.o_invoke_few_args("getText", 0x434CEBEC8FDBB880LL, 0)));
5988 (v_m = ScalarArrays::sa_[0]);
5989 if (toBoolean(LINE(3988,(assignCallTemp(eo_0, concat("/^(", concat6(v_nc, "+:|)", v_tc, "+\?( \\(", v_tc, "+\\))$/"))),assignCallTemp(eo_1, toString(v_t)),assignCallTemp(eo_2, ref(v_m)),x_preg_match(eo_0, eo_1, eo_2))))) {
5990 (v_text = LINE(3989,(assignCallTemp(eo_0, v_p2),assignCallTemp(eo_1, concat5("[[", toString(v_m.rvalAt(1, 0x5BCA7C69B794F8CELL)), "\\1", toString(v_m.rvalAt(2, 0x486AFCC090D5F98CLL)), "|\\1]]")),assignCallTemp(eo_2, v_text),x_preg_replace(eo_0, eo_1, eo_2))));
5992 else if (toBoolean(LINE(3990,(assignCallTemp(eo_0, concat("/^(", concat6(v_nc, "+:|)", v_tc, "+\?(, ", v_tc, "+|)$/"))),assignCallTemp(eo_1, toString(v_t)),assignCallTemp(eo_2, ref(v_m)),x_preg_match(eo_0, eo_1, eo_2)))) && !equal("", toString(v_m.rvalAt(1, 0x5BCA7C69B794F8CELL)) + toString(v_m.rvalAt(2, 0x486AFCC090D5F98CLL)))) {
5993 (v_text = LINE(3991,(assignCallTemp(eo_0, v_p2),assignCallTemp(eo_1, concat5("[[", toString(v_m.rvalAt(1, 0x5BCA7C69B794F8CELL)), "\\1", toString(v_m.rvalAt(2, 0x486AFCC090D5F98CLL)), "|\\1]]")),assignCallTemp(eo_2, v_text),x_preg_replace(eo_0, eo_1, eo_2))));
5995 else {
5996 (v_text = LINE(3994,x_preg_replace(v_p2, "[[\\1]]", v_text)));
5998 (v_text = LINE(3998,x_rtrim(toString(v_text))));
5999 return v_text;
6000 } /* function */
6001 /* SRC: Parser.php line 4012 */
6002 Variant c_parser::t_getusersig(Variant v_user, Variant v_nickname // = false
6003 , Variant v_fancySig // = null
6005 INSTANCE_METHOD_INJECTION(Parser, Parser::getUserSig);
6006 DECLARE_GLOBAL_VARIABLES(g);
6007 Variant &gv_wgMaxSigChars __attribute__((__unused__)) = g->GV(wgMaxSigChars);
6008 Variant v_username;
6009 Variant v_userText;
6010 Variant v_nickText;
6012 (v_username = LINE(4015,toObject(v_user)->o_invoke_few_args("getName", 0x23F51CDECC198965LL, 0)));
6013 if (same(v_nickname, false)) (v_nickname = LINE(4019,toObject(v_user)->o_invoke_few_args("getOption", 0x402DD1A85CAEA6C0LL, 1, "nickname")));
6014 if (LINE(4021,x_is_null(v_fancySig))) (v_fancySig = LINE(4022,toObject(v_user)->o_invoke_few_args("getBoolOption", 0x78BE72AD8722ADA5LL, 1, "fancysig")));
6015 (v_nickname = equal(v_nickname, null) ? ((Variant)(v_username)) : ((Variant)(v_nickname)));
6016 if (more(LINE(4026,x_mb_strlen(toString(v_nickname))), gv_wgMaxSigChars)) {
6017 (v_nickname = v_username);
6018 LINE(4028,invoke_failed("wfdebug", Array(ArrayInit(1).set(0, concat("Parser::getUserSig", concat3(": ", toString(v_username), " has overlong signature.\n"))).create()), 0x00000000E441E905LL));
6020 else if (!same(v_fancySig, false)) {
6021 if (!same(LINE(4031,t_validatesig(v_nickname)), false)) {
6022 return LINE(4033,t_cleansig(v_nickname, true));
6024 else {
6025 (v_nickname = v_username);
6026 LINE(4037,invoke_failed("wfdebug", Array(ArrayInit(1).set(0, concat("Parser::getUserSig", concat3(": ", toString(v_username), " has bad XML tags in signature.\n"))).create()), 0x00000000E441E905LL));
6029 (v_nickname = LINE(4042,t_cleansiginsig(v_nickname)));
6030 (v_userText = LINE(4045,invoke_failed("wfescapewikitext", Array(ArrayInit(1).set(0, ref(v_username)).create()), 0x00000000B3382909LL)));
6031 (v_nickText = LINE(4046,invoke_failed("wfescapewikitext", Array(ArrayInit(1).set(0, ref(v_nickname)).create()), 0x00000000B3382909LL)));
6032 if (toBoolean(LINE(4047,toObject(v_user)->o_invoke_few_args("isAnon", 0x1F729AB8C6F7FE1ALL, 0)))) {
6033 return LINE(4048,invoke_failed("wfmsgext", Array(ArrayInit(4).set(0, "signature-anon").set(1, Array(ArrayInit(2).set(0, "content").set(1, "parsemag").create())).set(2, ref(v_userText)).set(3, ref(v_nickText)).create()), 0x000000001BB87306LL));
6035 else {
6036 return LINE(4050,invoke_failed("wfmsgext", Array(ArrayInit(4).set(0, "signature").set(1, Array(ArrayInit(2).set(0, "content").set(1, "parsemag").create())).set(2, ref(v_userText)).set(3, ref(v_nickText)).create()), 0x000000001BB87306LL));
6038 return null;
6039 } /* function */
6040 /* SRC: Parser.php line 4060 */
6041 Variant c_parser::t_validatesig(CVarRef v_text) {
6042 INSTANCE_METHOD_INJECTION(Parser, Parser::validateSig);
6043 return (toBoolean(LINE(4061,throw_fatal("unknown class xml", ((void*)NULL)))) ? ((Variant)(v_text)) : ((Variant)(false)));
6044 } /* function */
6045 /* SRC: Parser.php line 4074 */
6046 Variant c_parser::t_cleansig(Variant v_text, bool v_parsing // = false
6048 INSTANCE_METHOD_INJECTION(Parser, Parser::cleanSig);
6049 Variant eo_0;
6050 Variant eo_1;
6051 Variant eo_2;
6052 DECLARE_GLOBAL_VARIABLES(g);
6053 Variant &gv_wgTitle __attribute__((__unused__)) = g->GV(wgTitle);
6054 Variant v_wgTitle;
6055 Variant v_substWord;
6056 String v_substRegex;
6057 String v_substText;
6058 Variant v_dom;
6059 Variant v_frame;
6061 if (!(v_parsing)) {
6062 v_wgTitle = ref(g->GV(wgTitle));
6063 LINE(4077,t_clearstate());
6064 LINE(4078,t_settitle(v_wgTitle));
6065 (m_mOptions = ((Object)(LINE(4079,p_parseroptions(p_parseroptions(NEWOBJ(c_parseroptions)())->create())))));
6066 (o_lval("setOutputType", 0x6AC9CEC755620241LL) = 3LL /* parser::OT_PREPROCESS */);
6068 if (!(toBoolean(LINE(4084,m_mOptions.o_invoke_few_args("getCleanSignatures", 0x49A4385734AC6E73LL, 0))))) {
6069 return v_text;
6071 (v_substWord = LINE(4090,throw_fatal("unknown class magicword", ((void*)NULL))));
6072 (v_substRegex = concat_rev(toString(LINE(4091,v_substWord.o_invoke_few_args("getRegexCase", 0x06D2F946031AE77ALL, 0))), (assignCallTemp(eo_1, toString(v_substWord.o_invoke_few_args("getBaseRegex", 0x784B3CC2A5690212LL, 0))),concat3("/\\{\\{(\?!(\?:", eo_1, "))/x"))));
6073 (v_substText = concat("{{", toString(LINE(4092,v_substWord.o_invoke_few_args("getSynonym", 0x389984D2586DEE52LL, 1, 0LL)))));
6074 (v_text = LINE(4094,x_preg_replace(v_substRegex, v_substText, v_text)));
6075 (v_text = LINE(4095,t_cleansiginsig(v_text)));
6076 (v_dom = LINE(4096,t_preprocesstodom(v_text)));
6077 (v_frame = (assignCallTemp(eo_0, toObject(LINE(4097,t_getpreprocessor()))),eo_0.o_invoke_few_args("newFrame", 0x787B6141D7721675LL, 0)));
6078 (v_text = LINE(4098,v_frame.o_invoke_few_args("expand", 0x39B7BB05F05A37CDLL, 1, v_dom)));
6079 if (!(v_parsing)) {
6080 (v_text = LINE(4101,m_mStripState.o_invoke_few_args("unstripBoth", 0x540C7C6FAA3D937BLL, 1, v_text)));
6082 return v_text;
6083 } /* function */
6084 /* SRC: Parser.php line 4112 */
6085 Variant c_parser::t_cleansiginsig(Variant v_text) {
6086 INSTANCE_METHOD_INJECTION(Parser, Parser::cleanSigInSig);
6087 (v_text = LINE(4113,x_preg_replace("/~{3,5}/", "", v_text)));
6088 return v_text;
6089 } /* function */
6090 /* SRC: Parser.php line 4122 */
6091 void c_parser::t_startexternalparse(Variant v_title, CVarRef v_options, CVarRef v_outputType, bool v_clearState // = true
6093 INSTANCE_METHOD_INJECTION(Parser, Parser::startExternalParse);
6094 LINE(4123,t_settitle(v_title));
6095 (m_mOptions = v_options);
6096 LINE(4125,t_setoutputtype(v_outputType));
6097 if (v_clearState) {
6098 LINE(4127,t_clearstate());
6100 } /* function */
6101 /* SRC: Parser.php line 4139 */
6102 Variant c_parser::t_transformmsg(Variant v_text, CVarRef v_options) {
6103 INSTANCE_METHOD_INJECTION(Parser, Parser::transformMsg);
6104 DECLARE_GLOBAL_VARIABLES(g);
6105 Variant &gv_wgTitle __attribute__((__unused__)) = g->GV(wgTitle);
6106 Variant &sv_executing __attribute__((__unused__)) = g->sv_parser$$transformmsg$$executing.lvalAt(this->o_getClassName());
6107 Variant &inited_sv_executing __attribute__((__unused__)) = g->inited_sv_parser$$transformmsg$$executing.lvalAt(this->o_getClassName());
6108 if (!inited_sv_executing) {
6109 (sv_executing = false);
6110 inited_sv_executing = true;
6112 if (toBoolean(sv_executing)) {
6113 return v_text;
6115 (sv_executing = true);
6116 LINE(4149,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::transformMsg").create()), 0x0000000075359BAFLL));
6117 (v_text = LINE(4150,t_preprocess(v_text, gv_wgTitle, v_options)));
6118 (sv_executing = false);
6119 LINE(4153,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::transformMsg").create()), 0x00000000B599F276LL));
6120 return v_text;
6121 } /* function */
6122 /* SRC: Parser.php line 4172 */
6123 Variant c_parser::t_sethook(String v_tag, CArrRef v_callback) {
6124 INSTANCE_METHOD_INJECTION(Parser, Parser::setHook);
6125 Variant v_oldVal;
6127 (v_tag = LINE(4173,x_strtolower(v_tag)));
6128 (v_oldVal = isset(m_mTagHooks, v_tag) ? ((Variant)(m_mTagHooks.rvalAt(v_tag))) : ((Variant)(null)));
6129 m_mTagHooks.set(v_tag, (v_callback));
6130 if (!(LINE(4176,x_in_array(v_tag, m_mStripList)))) {
6131 m_mStripList.append((v_tag));
6133 return v_oldVal;
6134 } /* function */
6135 /* SRC: Parser.php line 4183 */
6136 Variant c_parser::t_settransparenttaghook(String v_tag, CVarRef v_callback) {
6137 INSTANCE_METHOD_INJECTION(Parser, Parser::setTransparentTagHook);
6138 Variant v_oldVal;
6140 (v_tag = LINE(4184,x_strtolower(v_tag)));
6141 (v_oldVal = isset(m_mTransparentTagHooks, v_tag) ? ((Variant)(m_mTransparentTagHooks.rvalAt(v_tag))) : ((Variant)(null)));
6142 m_mTransparentTagHooks.set(v_tag, (v_callback));
6143 return v_oldVal;
6144 } /* function */
6145 /* SRC: Parser.php line 4194 */
6146 void c_parser::t_cleartaghooks() {
6147 INSTANCE_METHOD_INJECTION(Parser, Parser::clearTagHooks);
6148 (m_mTagHooks = ScalarArrays::sa_[0]);
6149 (m_mStripList = m_mDefaultStripList);
6150 } /* function */
6151 /* SRC: Parser.php line 4243 */
6152 Variant c_parser::t_setfunctionhook(CVarRef v_id, CVarRef v_callback, CVarRef v_flags // = 0LL
6154 INSTANCE_METHOD_INJECTION(Parser, Parser::setFunctionHook);
6155 DECLARE_GLOBAL_VARIABLES(g);
6156 Variant &gv_wgContLang __attribute__((__unused__)) = g->GV(wgContLang);
6157 Variant v_oldVal;
6158 Variant v_mw;
6159 Variant v_synonyms;
6160 int64 v_sensitive = 0;
6161 Variant v_syn;
6163 (v_oldVal = isset(m_mFunctionHooks, v_id) ? ((Variant)(m_mFunctionHooks.rvalAt(v_id).rvalAt(0LL, 0x77CFA1EEF01BCA90LL))) : ((Variant)(null)));
6164 m_mFunctionHooks.set(v_id, (Array(ArrayInit(2).set(0, v_callback).set(1, v_flags).create())));
6165 (v_mw = LINE(4250,throw_fatal("unknown class magicword", ((void*)NULL))));
6166 if (!(toBoolean(v_mw))) throw_exception(LINE(4252,create_object("mwexception", Array(ArrayInit(1).set(0, "Parser::setFunctionHook() expecting a magic word identifier.").create()))));
6167 (v_synonyms = LINE(4254,v_mw.o_invoke_few_args("getSynonyms", 0x44E19B4C6E0A744FLL, 0)));
6168 (v_sensitive = LINE(4255,x_intval(v_mw.o_invoke_few_args("isCaseSensitive", 0x6BB73460F5ADBF0DLL, 0))));
6170 LOOP_COUNTER(97);
6171 for (ArrayIterPtr iter99 = v_synonyms.begin("parser"); !iter99->end(); iter99->next()) {
6172 LOOP_COUNTER_CHECK(97);
6173 v_syn = iter99->second();
6175 if (!(toBoolean(v_sensitive))) {
6176 (v_syn = LINE(4260,gv_wgContLang.o_invoke_few_args("lc", 0x0191205BE4FF8F9CLL, 1, v_syn)));
6178 if (!((toBoolean(bitwise_and(v_flags, k_SFH_NO_HASH))))) {
6179 (v_syn = concat("#", toString(v_syn)));
6181 if (same(LINE(4267,x_substr(toString(v_syn), toInt32(-1LL), toInt32(1LL))), ":")) {
6182 (v_syn = LINE(4268,x_substr(toString(v_syn), toInt32(0LL), toInt32(-1LL))));
6184 lval(m_mFunctionSynonyms.lvalAt(v_sensitive)).set(v_syn, (v_id));
6188 return v_oldVal;
6189 } /* function */
6190 /* SRC: Parser.php line 4280 */
6191 Variant c_parser::t_getfunctionhooks() {
6192 INSTANCE_METHOD_INJECTION(Parser, Parser::getFunctionHooks);
6193 return LINE(4281,x_array_keys(m_mFunctionHooks));
6194 } /* function */
6195 /* SRC: Parser.php line 4289 */
6196 Variant c_parser::t_setfunctiontaghook(String v_tag, CVarRef v_callback, CVarRef v_flags) {
6197 INSTANCE_METHOD_INJECTION(Parser, Parser::setFunctionTagHook);
6198 Variant v_old;
6200 (v_tag = LINE(4290,x_strtolower(v_tag)));
6201 (v_old = isset(m_mFunctionTagHooks, v_tag) ? ((Variant)(m_mFunctionTagHooks.rvalAt(v_tag))) : ((Variant)(null)));
6202 m_mFunctionTagHooks.set(v_tag, (Array(ArrayInit(2).set(0, v_callback).set(1, v_flags).create())));
6203 if (!(LINE(4295,x_in_array(v_tag, m_mStripList)))) {
6204 m_mStripList.append((v_tag));
6206 return v_old;
6207 } /* function */
6208 /* SRC: Parser.php line 4308 */
6209 Variant c_parser::t_replacelinkholders(Variant v_text, int64 v_options // = 0LL
6211 INSTANCE_METHOD_INJECTION(Parser, Parser::replaceLinkHolders);
6212 return LINE(4309,m_mLinkHolders.o_invoke_few_args("replace", 0x42FAC655280A6146LL, 1, v_text));
6213 } /* function */
6214 /* SRC: Parser.php line 4318 */
6215 Variant c_parser::t_replacelinkholderstext(Variant v_text) {
6216 INSTANCE_METHOD_INJECTION(Parser, Parser::replaceLinkHoldersText);
6217 return LINE(4319,m_mLinkHolders.o_invoke_few_args("replaceText", 0x316E7B92ECA74146LL, 1, v_text));
6218 } /* function */
6219 /* SRC: Parser.php line 4325 */
6220 String c_parser::t_renderpretag(CVarRef v_text, Variant v_attribs) {
6221 INSTANCE_METHOD_INJECTION(Parser, Parser::renderPreTag);
6222 Variant v_content;
6224 (v_content = LINE(4327,throw_fatal("unknown class stringutils", ((void*)NULL))));
6225 (v_attribs = LINE(4329,throw_fatal("unknown class sanitizer", ((void*)NULL))));
6226 return concat(concat_rev(toString(LINE(4331,throw_fatal("unknown class xml", ((void*)NULL)))), toString(LINE(4330,throw_fatal("unknown class xml", ((void*)NULL))))), "</pre>");
6227 } /* function */
6228 /* SRC: Parser.php line 4339 */
6229 Variant c_parser::t_renderhyperlink(CVarRef v_text, Variant v_params, CVarRef v_frame // = false
6231 INSTANCE_METHOD_INJECTION(Parser, Parser::renderHyperlink);
6232 Variant eo_0;
6233 Variant eo_1;
6234 DECLARE_GLOBAL_VARIABLES(g);
6235 Primitive v_name = 0;
6236 Variant v_value;
6237 Variant v_whitelist;
6238 Variant v_content;
6239 Variant v_href;
6240 Variant v_sk;
6241 Variant v_html;
6244 LOOP_COUNTER(100);
6245 for (ArrayIterPtr iter102 = v_params.begin("parser"); !iter102->end(); iter102->next()) {
6246 LOOP_COUNTER_CHECK(100);
6247 v_value = iter102->second();
6248 v_name = iter102->first();
6250 v_params.set(v_name, (LINE(4341,t_replacevariables(v_value, v_frame))));
6254 (v_whitelist = LINE(4344,throw_fatal("unknown class sanitizer", ((void*)NULL))));
6255 (v_params = LINE(4345,throw_fatal("unknown class sanitizer", ((void*)NULL))));
6256 (v_content = (assignCallTemp(eo_0, LINE(4347,x_trim(toString(v_text)))),assignCallTemp(eo_1, v_frame),t_recursivetagparse(eo_0, eo_1)));
6257 if (isset(v_params, "href", 0x6268F8493692A594LL)) {
6258 (v_href = v_params.rvalAt("href", 0x6268F8493692A594LL));
6259 LINE(4351,m_mOutput.o_invoke_few_args("addExternalLink", 0x3FE22FCE3F0B40E8LL, 1, v_href));
6260 v_params.weakRemove("href", 0x6268F8493692A594LL);
6262 else {
6263 return concat_rev(toString(LINE(4355,throw_fatal("unknown class xml", ((void*)NULL)))), concat(toString(throw_fatal("unknown class xml", ((void*)NULL))), toString(v_content)));
6265 (v_sk = LINE(4358,m_mOptions.o_invoke_few_args("getSkin", 0x6C79601E06BA735FLL, 0)));
6266 (v_html = LINE(4359,v_sk.o_invoke_few_args("makeExternalLink", 0x29CE649D13E77D3BLL, 5, v_href, v_content, false, "", v_params)));
6267 return v_html;
6268 } /* function */
6269 /* SRC: Parser.php line 4373 */
6270 Variant c_parser::t_renderimagegallery(CVarRef v_text, Variant v_params) {
6271 INSTANCE_METHOD_INJECTION(Parser, Parser::renderImageGallery);
6272 Variant v_ig;
6273 Variant v_caption;
6274 Variant v_lines;
6275 Variant v_line;
6276 Variant v_matches;
6277 Variant v_tp;
6278 Variant v_nt;
6279 Variant v_label;
6280 Variant v_html;
6282 (v_ig = LINE(4374,create_object("imagegallery", Array())));
6283 LINE(4375,v_ig.o_invoke_few_args("setContextTitle", 0x715C3E5638D42EC2LL, 1, m_mTitle));
6284 LINE(4376,v_ig.o_invoke_few_args("setShowBytes", 0x0E49F4BE615F8AAELL, 1, false));
6285 LINE(4377,v_ig.o_invoke_few_args("setShowFilename", 0x51C3E2A67C228FB2LL, 1, false));
6286 LINE(4378,v_ig.o_invoke_few_args("setParser", 0x7C0461AE60A73E32LL, 1, this));
6287 LINE(4379,v_ig.o_invoke_few_args("setHideBadImages", 0x2748FD6B960E0216LL, 0));
6288 LINE(4380,v_ig.o_invoke_few_args("setAttributes", 0x4D430E2CD85B314FLL, 1, throw_fatal("unknown class sanitizer", ((void*)NULL))));
6289 LINE(4381,v_ig.o_invoke_few_args("useSkin", 0x7BB4997C486DBF00LL, 1, m_mOptions.o_invoke_few_args("getSkin", 0x6C79601E06BA735FLL, 0)));
6290 (v_ig.o_lval("mRevisionId", 0x4DDE8DD427CE5241LL) = m_mRevisionId);
6291 if (isset(v_params, "caption", 0x10826816B41AADFDLL)) {
6292 (v_caption = v_params.rvalAt("caption", 0x10826816B41AADFDLL));
6293 (v_caption = LINE(4386,x_htmlspecialchars(toString(v_caption))));
6294 (v_caption = LINE(4387,t_replaceinternallinks(v_caption)));
6295 LINE(4388,v_ig.o_invoke_few_args("setCaptionHtml", 0x289F9CA74CEDB630LL, 1, v_caption));
6297 if (isset(v_params, "perrow", 0x539812D4451C4CAALL)) {
6298 LINE(4391,v_ig.o_invoke_few_args("setPerRow", 0x528ABEBB0D8573D0LL, 1, v_params.refvalAt("perrow", 0x539812D4451C4CAALL)));
6300 if (isset(v_params, "widths", 0x5BB134DE7AC6735FLL)) {
6301 LINE(4394,v_ig.o_invoke_few_args("setWidths", 0x654010992C45CD8FLL, 1, v_params.refvalAt("widths", 0x5BB134DE7AC6735FLL)));
6303 if (isset(v_params, "heights", 0x3FD1AEF3EFB8D2BELL)) {
6304 LINE(4397,v_ig.o_invoke_few_args("setHeights", 0x39021A7987133C70LL, 1, v_params.refvalAt("heights", 0x3FD1AEF3EFB8D2BELL)));
6306 LINE(4400,invoke_failed("wfrunhooks", Array(ArrayInit(2).set(0, "BeforeParserrenderImageGallery").set(1, Array(ArrayInit(2).setRef(0, ref(this)).setRef(1, ref(v_ig)).create())).create()), 0x00000000787A96B2LL));
6307 (v_lines = LINE(4402,throw_fatal("unknown class stringutils", ((void*)NULL))));
6309 LOOP_COUNTER(103);
6310 for (ArrayIterPtr iter105 = v_lines.begin("parser"); !iter105->end(); iter105->next()) {
6311 LOOP_COUNTER_CHECK(103);
6312 v_line = iter105->second();
6314 (v_matches = ScalarArrays::sa_[0]);
6315 LINE(4407,x_preg_match("/^([^|]+)(\\|(.*))\?$/", toString(v_line), ref(v_matches)));
6316 if (equal(LINE(4409,x_count(v_matches)), 0LL)) {
6317 continue;
6319 if (!same(LINE(4413,x_strpos(toString(v_matches.rvalAt(0LL, 0x77CFA1EEF01BCA90LL)), "%")), false)) v_matches.set(1LL, (LINE(4414,x_urldecode(toString(v_matches.rvalAt(1LL, 0x5BCA7C69B794F8CELL))))), 0x5BCA7C69B794F8CELL);
6320 (v_tp = LINE(4415,throw_fatal("unknown class title", ((void*)NULL))));
6321 (v_nt = ref(v_tp));
6322 if (LINE(4417,x_is_null(v_nt))) {
6323 continue;
6325 if (isset(v_matches, 3LL, 0x135FDDF6A6BFBBDDLL)) {
6326 (v_label = v_matches.rvalAt(3LL, 0x135FDDF6A6BFBBDDLL));
6328 else {
6329 (v_label = "");
6331 (v_html = LINE(4427,t_recursivetagparse(x_trim(toString(v_label)))));
6332 LINE(4429,v_ig.o_invoke_few_args("add", 0x15D34462FC79458BLL, 2, v_nt, v_html));
6333 if (equal(LINE(4432,v_nt.o_invoke_few_args("getNamespace", 0x6DC05480D007D522LL, 0)), k_NS_FILE)) {
6334 LINE(4433,m_mOutput.o_invoke_few_args("addImage", 0x1026F251B81BD927LL, 1, v_nt.o_invoke_few_args("getDBkey", 0x7A72F137192AEF00LL, 0)));
6339 return LINE(4436,v_ig.o_invoke_few_args("toHTML", 0x112305CB9B1971A9LL, 0));
6340 } /* function */
6341 /* SRC: Parser.php line 4439 */
6342 Array c_parser::t_getimageparams(CVarRef v_handler) {
6343 INSTANCE_METHOD_INJECTION(Parser, Parser::getImageParams);
6344 DECLARE_GLOBAL_VARIABLES(g);
6345 Variant v_handlerClass;
6346 Variant &sv_internalParamNames __attribute__((__unused__)) = g->sv_parser$$getimageparams$$internalParamNames.lvalAt(this->o_getClassName());
6347 Variant &inited_sv_internalParamNames __attribute__((__unused__)) = g->inited_sv_parser$$getimageparams$$internalParamNames.lvalAt(this->o_getClassName());
6348 Variant v_internalParamNames;
6349 Variant &sv_internalParamMap __attribute__((__unused__)) = g->sv_parser$$getimageparams$$internalParamMap.lvalAt(this->o_getClassName());
6350 Variant &inited_sv_internalParamMap __attribute__((__unused__)) = g->inited_sv_parser$$getimageparams$$internalParamMap.lvalAt(this->o_getClassName());
6351 Variant v_internalParamMap;
6352 Primitive v_type = 0;
6353 Variant v_names;
6354 Variant v_name;
6355 Variant v_magicName;
6356 Variant v_paramMap;
6357 Variant v_handlerParamMap;
6358 Primitive v_magic = 0;
6359 Variant v_paramName;
6361 if (toBoolean(v_handler)) {
6362 (v_handlerClass = LINE(4441,x_get_class(v_handler)));
6364 else {
6365 (v_handlerClass = "");
6367 if (!(isset(m_mImageParams, v_handlerClass))) {
6368 v_internalParamNames = ref(sv_internalParamNames);
6369 if (!inited_sv_internalParamNames) {
6370 (v_internalParamNames = ScalarArrays::sa_[28]);
6371 inited_sv_internalParamNames = true;
6373 v_internalParamMap = ref(sv_internalParamMap);
6374 if (!inited_sv_internalParamMap) {
6375 (v_internalParamMap = null);
6376 inited_sv_internalParamMap = true;
6378 if (!(toBoolean(v_internalParamMap))) {
6379 (v_internalParamMap = ScalarArrays::sa_[0]);
6381 LOOP_COUNTER(106);
6382 for (ArrayIterPtr iter108 = v_internalParamNames.begin("parser"); !iter108->end(); iter108->next()) {
6383 LOOP_COUNTER_CHECK(106);
6384 v_names = iter108->second();
6385 v_type = iter108->first();
6388 LOOP_COUNTER(109);
6389 for (ArrayIterPtr iter111 = v_names.begin("parser"); !iter111->end(); iter111->next()) {
6390 LOOP_COUNTER_CHECK(109);
6391 v_name = iter111->second();
6393 (v_magicName = LINE(4459,x_str_replace("-", "_", toString("img_") + toString(v_name))));
6394 v_internalParamMap.set(v_magicName, (Array(ArrayInit(2).set(0, v_type).set(1, v_name).create())));
6402 (v_paramMap = v_internalParamMap);
6403 if (toBoolean(v_handler)) {
6404 (v_handlerParamMap = LINE(4468,toObject(v_handler)->o_invoke_few_args("getParamMap", 0x28D8A47A2E38229ALL, 0)));
6406 LOOP_COUNTER(112);
6407 for (ArrayIterPtr iter114 = v_handlerParamMap.begin("parser"); !iter114->end(); iter114->next()) {
6408 LOOP_COUNTER_CHECK(112);
6409 v_paramName = iter114->second();
6410 v_magic = iter114->first();
6412 v_paramMap.set(v_magic, (Array(ArrayInit(2).set(0, "handler").set(1, v_paramName).create())));
6417 m_mImageParams.set(v_handlerClass, (v_paramMap));
6418 m_mImageParamsMagicArray.set(v_handlerClass, (LINE(4474,create_object("magicwordarray", Array(ArrayInit(1).set(0, x_array_keys(v_paramMap)).create())))));
6420 return Array(ArrayInit(2).set(0, m_mImageParams.rvalAt(v_handlerClass)).set(1, m_mImageParamsMagicArray.rvalAt(v_handlerClass)).create());
6421 } /* function */
6422 /* SRC: Parser.php line 4485 */
6423 Variant c_parser::t_makeimage(Variant v_title, CVarRef v_options, CVarRef v_holders // = false
6425 INSTANCE_METHOD_INJECTION(Parser, Parser::makeImage);
6426 Variant eo_0;
6427 Variant eo_1;
6428 Variant eo_2;
6429 Variant v_parts;
6430 Variant v_sk;
6431 Variant v_descQuery;
6432 Variant v_time;
6433 Variant v_skip;
6434 Variant v_imagename;
6435 Variant v_file;
6436 Variant v_handler;
6437 Variant v_paramMap;
6438 Variant v_mwArray;
6439 Variant v_caption;
6440 Variant v_params;
6441 Variant v_part;
6442 Variant v_magicName;
6443 Variant v_value;
6444 Variant v_validated;
6445 Variant v_type;
6446 Variant v_paramName;
6447 Variant v_m;
6448 Variant v_width;
6449 Variant v_height;
6450 String v_chars;
6451 Variant v_prots;
6452 Variant v_linkTitle;
6453 bool v_imageIsFramed = false;
6454 Variant v_ret;
6456 (v_parts = LINE(4511,throw_fatal("unknown class stringutils", ((void*)NULL))));
6457 (v_sk = LINE(4512,m_mOptions.o_invoke_few_args("getSkin", 0x6C79601E06BA735FLL, 0)));
6458 (v_skip = (v_time = (v_descQuery = false)));
6459 LINE(4516,invoke_failed("wfrunhooks", Array(ArrayInit(2).set(0, "BeforeParserMakeImageLinkObj").set(1, Array(ArrayInit(5).setRef(0, ref(this)).setRef(1, ref(v_title)).setRef(2, ref(v_skip)).setRef(3, ref(v_time)).setRef(4, ref(v_descQuery)).create())).create()), 0x00000000787A96B2LL));
6460 if (toBoolean(v_skip)) {
6461 return LINE(4519,v_sk.o_invoke_few_args("link", 0x230FE1D6EC599525LL, 1, v_title));
6463 (v_imagename = LINE(4523,v_title.o_invoke_few_args("getDBkey", 0x7A72F137192AEF00LL, 0)));
6464 (v_file = LINE(4524,invoke_failed("wffindfile", Array(ArrayInit(2).set(0, ref(v_title)).set(1, Array(ArrayInit(1).set(0, "time", v_time, 0x46C13C417DE7E0A0LL).create())).create()), 0x000000008D7BE104LL)));
6465 (v_handler = toBoolean(v_file) ? ((Variant)(LINE(4526,v_file.o_invoke_few_args("getHandler", 0x179039CC09D3FA6FLL, 0)))) : ((Variant)(false)));
6466 df_lambda_15(LINE(4528,t_getimageparams(v_handler)), v_paramMap, v_mwArray);
6467 (v_caption = "");
6468 (v_params = ScalarArrays::sa_[29]);
6470 LOOP_COUNTER(115);
6471 for (ArrayIterPtr iter117 = v_parts.begin("parser"); !iter117->end(); iter117->next()) {
6472 LOOP_COUNTER_CHECK(115);
6473 v_part = iter117->second();
6475 (v_part = LINE(4535,x_trim(toString(v_part))));
6476 df_lambda_16(LINE(4536,v_mwArray.o_invoke_few_args("matchVariableStartToEnd", 0x26349809C1925B1FLL, 1, v_part)), v_magicName, v_value);
6477 (v_validated = false);
6478 if (isset(v_paramMap, v_magicName)) {
6479 df_lambda_17(v_paramMap.rvalAt(v_magicName), v_type, v_paramName);
6480 if (same(v_type, "handler") && same(v_paramName, "width")) {
6481 (v_m = ScalarArrays::sa_[0]);
6482 if (toBoolean(LINE(4546,x_preg_match("/^([0-9]*)x([0-9]*)\\s*(\?:px)\?\\s*$/", toString(v_value), ref(v_m))))) {
6483 (v_width = LINE(4547,x_intval(v_m.rvalAt(1LL, 0x5BCA7C69B794F8CELL))));
6484 (v_height = LINE(4548,x_intval(v_m.rvalAt(2LL, 0x486AFCC090D5F98CLL))));
6485 if (toBoolean(LINE(4549,v_handler.o_invoke_few_args("validateParam", 0x42F66BC0EDD952A0LL, 2, "width", v_width)))) {
6486 lval(v_params.lvalAt(v_type)).set("width", (v_width), 0x79CE5ED9259796ADLL);
6487 (v_validated = true);
6489 if (toBoolean(LINE(4553,v_handler.o_invoke_few_args("validateParam", 0x42F66BC0EDD952A0LL, 2, "height", v_height)))) {
6490 lval(v_params.lvalAt(v_type)).set("height", (v_height), 0x674F0FBB080B0779LL);
6491 (v_validated = true);
6494 else if (toBoolean(LINE(4557,x_preg_match("/^[0-9]*\\s*(\?:px)\?\\s*$/", toString(v_value))))) {
6495 (v_width = LINE(4558,x_intval(v_value)));
6496 if (toBoolean(LINE(4559,v_handler.o_invoke_few_args("validateParam", 0x42F66BC0EDD952A0LL, 2, "width", v_width)))) {
6497 lval(v_params.lvalAt(v_type)).set("width", (v_width), 0x79CE5ED9259796ADLL);
6498 (v_validated = true);
6502 else {
6503 if (same(v_type, "handler")) {
6504 (v_validated = LINE(4567,v_handler.o_invoke_few_args("validateParam", 0x42F66BC0EDD952A0LL, 2, v_paramName, v_value)));
6506 else {
6508 Variant tmp119 = (v_paramName);
6509 int tmp120 = -1;
6510 if (equal(tmp119, ("manualthumb"))) {
6511 tmp120 = 0;
6512 } else if (equal(tmp119, ("alt"))) {
6513 tmp120 = 1;
6514 } else if (equal(tmp119, ("link"))) {
6515 tmp120 = 2;
6516 } else if (true) {
6517 tmp120 = 3;
6519 switch (tmp120) {
6520 case 0:
6523 case 1:
6525 (v_validated = true);
6526 (v_value = LINE(4577,t_stripalttext(v_value, v_holders)));
6527 goto break118;
6529 case 2:
6531 (v_chars = "[^][<>\"\\x00-\\x20\\x7F]" /* parser::EXT_LINK_URL_CLASS */);
6532 (v_prots = m_mUrlProtocols);
6533 if (same(v_value, "")) {
6534 (v_paramName = "no-link");
6535 (v_value = true);
6536 (v_validated = true);
6538 else if (toBoolean(LINE(4586,(assignCallTemp(eo_0, concat3("/^", toString(v_prots), "/")),assignCallTemp(eo_1, toString(v_value)),x_preg_match(eo_0, eo_1))))) {
6539 if (toBoolean(LINE(4587,(assignCallTemp(eo_0, concat5("/^(", toString(v_prots), ")", v_chars, "+$/")),assignCallTemp(eo_1, toString(v_value)),assignCallTemp(eo_2, ref(v_m)),x_preg_match(eo_0, eo_1, eo_2))))) {
6540 (v_paramName = "link-url");
6541 LINE(4589,m_mOutput.o_invoke_few_args("addExternalLink", 0x3FE22FCE3F0B40E8LL, 1, v_value));
6542 (v_validated = true);
6545 else {
6546 (v_linkTitle = LINE(4593,throw_fatal("unknown class title", ((void*)NULL))));
6547 if (toBoolean(v_linkTitle)) {
6548 (v_paramName = "link-title");
6549 (v_value = v_linkTitle);
6550 LINE(4597,m_mOutput.o_invoke_few_args("addLink", 0x5D10AC6ADCA895ACLL, 1, v_linkTitle));
6551 (v_validated = true);
6554 goto break118;
6556 case 3:
6558 (v_validated = (same(v_value, false) || LINE(4604,x_is_numeric(x_trim(toString(v_value))))));
6561 break118:;
6564 if (toBoolean(v_validated)) {
6565 lval(v_params.lvalAt(v_type)).set(v_paramName, (v_value));
6569 if (!(toBoolean(v_validated))) {
6570 (v_caption = v_part);
6575 if (toBoolean(v_params.rvalAt("horizAlign", 0x0C9554788E4B4CB7LL))) {
6576 lval(v_params.lvalAt("frame", 0x2D577BEBE8CB9D1FLL)).set("align", (LINE(4620,x_key(ref(lval(v_params.lvalAt("horizAlign", 0x0C9554788E4B4CB7LL)))))), 0x0088E6A851076124LL);
6578 if (toBoolean(v_params.rvalAt("vertAlign", 0x58EF5364C4E21BF6LL))) {
6579 lval(v_params.lvalAt("frame", 0x2D577BEBE8CB9D1FLL)).set("valign", (LINE(4623,x_key(ref(lval(v_params.lvalAt("vertAlign", 0x58EF5364C4E21BF6LL)))))), 0x1AC1065EEC01D355LL);
6581 lval(v_params.lvalAt("frame", 0x2D577BEBE8CB9D1FLL)).set("caption", (v_caption), 0x10826816B41AADFDLL);
6582 (v_imageIsFramed = isset(v_params.rvalAt("frame", 0x2D577BEBE8CB9D1FLL), "frame", 0x2D577BEBE8CB9D1FLL) || isset(v_params.rvalAt("frame", 0x2D577BEBE8CB9D1FLL), "framed", 0x3AC627E741084D09LL) || isset(v_params.rvalAt("frame", 0x2D577BEBE8CB9D1FLL), "thumbnail", 0x0EA6B2C8F3B06CAFLL) || isset(v_params.rvalAt("frame", 0x2D577BEBE8CB9D1FLL), "manualthumb", 0x7049AB520F6C7D3ELL));
6583 if (v_imageIsFramed) {
6584 if (same(v_caption, "") && !(isset(v_params.rvalAt("frame", 0x2D577BEBE8CB9D1FLL), "alt", 0x2AB21AF4F5B8471BLL))) {
6585 lval(v_params.lvalAt("frame", 0x2D577BEBE8CB9D1FLL)).set("alt", (LINE(4654,v_title.o_invoke_few_args("getText", 0x434CEBEC8FDBB880LL, 0))), 0x2AB21AF4F5B8471BLL);
6588 else {
6589 if (!(isset(v_params.rvalAt("frame", 0x2D577BEBE8CB9D1FLL), "alt", 0x2AB21AF4F5B8471BLL))) {
6590 if (!same(v_caption, "")) {
6591 lval(v_params.lvalAt("frame", 0x2D577BEBE8CB9D1FLL)).set("alt", (LINE(4662,t_stripalttext(v_caption, v_holders))), 0x2AB21AF4F5B8471BLL);
6593 else {
6594 lval(v_params.lvalAt("frame", 0x2D577BEBE8CB9D1FLL)).set("alt", (LINE(4666,v_title.o_invoke_few_args("getText", 0x434CEBEC8FDBB880LL, 0))), 0x2AB21AF4F5B8471BLL);
6597 lval(v_params.lvalAt("frame", 0x2D577BEBE8CB9D1FLL)).set("title", (LINE(4670,t_stripalttext(v_caption, v_holders))), 0x66AD900A2301E2FELL);
6599 LINE(4673,invoke_failed("wfrunhooks", Array(ArrayInit(2).set(0, "ParserMakeImageParams").set(1, Array(ArrayInit(3).set(0, v_title).set(1, v_file).setRef(2, ref(v_params)).create())).create()), 0x00000000787A96B2LL));
6600 (v_ret = LINE(4676,v_sk.o_invoke_few_args("makeImageLink2", 0x7747CD213EA2EF9ELL, 6, v_title, v_file, v_params.refvalAt("frame", 0x2D577BEBE8CB9D1FLL), v_params.refvalAt("handler", 0x1D2C99E375514408LL), v_time, v_descQuery)));
6601 if (toBoolean(v_handler)) {
6602 LINE(4680,v_handler.o_invoke_few_args("parserTransformHook", 0x4F60908BC6CDD8C4LL, 2, this, v_file));
6604 return v_ret;
6605 } /* function */
6606 /* SRC: Parser.php line 4686 */
6607 Variant c_parser::t_stripalttext(Variant v_caption, CVarRef v_holders) {
6608 INSTANCE_METHOD_INJECTION(Parser, Parser::stripAltText);
6609 Variant v_tooltip;
6611 if (toBoolean(v_holders)) {
6612 (v_tooltip = LINE(4691,toObject(v_holders)->o_invoke_few_args("replaceText", 0x316E7B92ECA74146LL, 1, v_caption)));
6614 else {
6615 (v_tooltip = LINE(4693,t_replacelinkholderstext(v_caption)));
6617 (v_tooltip = LINE(4699,m_mStripState.o_invoke_few_args("unstripBoth", 0x540C7C6FAA3D937BLL, 1, v_tooltip)));
6618 (v_tooltip = LINE(4700,throw_fatal("unknown class sanitizer", ((void*)NULL))));
6619 return v_tooltip;
6620 } /* function */
6621 /* SRC: Parser.php line 4709 */
6622 void c_parser::t_disablecache() {
6623 INSTANCE_METHOD_INJECTION(Parser, Parser::disableCache);
6624 LINE(4710,invoke_failed("wfdebug", Array(ArrayInit(1).set(0, "Parser output marked as uncacheable.\n").create()), 0x00000000E441E905LL));
6625 (m_mOutput.o_lval("mCacheTime", 0x3A96E9F9BCC9D533LL) = -1LL);
6626 } /* function */
6627 /* SRC: Parser.php line 4722 */
6628 Variant c_parser::t_attributestripcallback(Variant v_text, CVarRef v_frame // = false
6630 INSTANCE_METHOD_INJECTION(Parser, Parser::attributeStripCallback);
6631 (v_text = LINE(4723,t_replacevariables(v_text, v_frame)));
6632 (v_text = LINE(4724,m_mStripState.o_invoke_few_args("unstripBoth", 0x540C7C6FAA3D937BLL, 1, v_text)));
6633 return v_text;
6634 } /* function */
6635 /* SRC: Parser.php line 4733 */
6636 Variant c_parser::t_title(Variant v_x // = null
6638 INSTANCE_METHOD_INJECTION(Parser, Parser::Title);
6639 return LINE(4733,invoke_failed("wfsetvar", Array(ArrayInit(2).set(0, ref(m_mTitle)).set(1, ref(v_x)).create()), 0x000000009E927E0BLL));
6640 } /* function */
6641 /* SRC: Parser.php line 4734 */
6642 Variant c_parser::t_options(Variant v_x // = null
6644 INSTANCE_METHOD_INJECTION(Parser, Parser::Options);
6645 return LINE(4734,invoke_failed("wfsetvar", Array(ArrayInit(2).set(0, ref(m_mOptions)).set(1, ref(v_x)).create()), 0x000000009E927E0BLL));
6646 } /* function */
6647 /* SRC: Parser.php line 4735 */
6648 Variant c_parser::t_outputtype(Variant v_x // = null
6650 INSTANCE_METHOD_INJECTION(Parser, Parser::OutputType);
6651 return LINE(4735,invoke_failed("wfsetvar", Array(ArrayInit(2).set(0, ref(m_mOutputType)).set(1, ref(v_x)).create()), 0x000000009E927E0BLL));
6652 } /* function */
6653 /* SRC: Parser.php line 4741 */
6654 Variant c_parser::t_gettags() {
6655 INSTANCE_METHOD_INJECTION(Parser, Parser::getTags);
6656 Variant eo_0;
6657 Variant eo_1;
6658 return LINE(4741,(assignCallTemp(eo_0, x_array_keys(m_mTransparentTagHooks)),assignCallTemp(eo_1, x_array_keys(m_mTagHooks)),x_array_merge(2, eo_0, Array(ArrayInit(1).set(0, eo_1).create()))));
6659 } /* function */
6660 /* SRC: Parser.php line 4770 */
6661 Variant c_parser::t_extractsections(CVarRef v_text, CVarRef v_section, CStrRef v_mode, CVarRef v_newText // = ""
6663 INSTANCE_METHOD_INJECTION(Parser, Parser::extractSections);
6664 Variant eo_0;
6665 DECLARE_GLOBAL_VARIABLES(g);
6666 Variant &gv_wgTitle __attribute__((__unused__)) = g->GV(wgTitle);
6667 Variant v_outText;
6668 Variant v_frame;
6669 int64 v_flags = 0;
6670 Variant v_sectionParts;
6671 Variant v_sectionIndex;
6672 Variant v_part;
6673 Variant v_root;
6674 Variant v_node;
6675 Variant v_targetLevel;
6676 Variant v_bits;
6677 Variant v_curLevel;
6679 LINE(4772,t_clearstate());
6680 LINE(4773,t_settitle(gv_wgTitle));
6681 (m_mOptions = ((Object)(LINE(4774,p_parseroptions(p_parseroptions(NEWOBJ(c_parseroptions)())->create())))));
6682 LINE(4775,t_setoutputtype(2LL /* parser::OT_WIKI */));
6683 (v_outText = "");
6684 (v_frame = (assignCallTemp(eo_0, toObject(LINE(4777,t_getpreprocessor()))),eo_0.o_invoke_few_args("newFrame", 0x787B6141D7721675LL, 0)));
6685 (v_flags = 0LL);
6686 (v_sectionParts = LINE(4781,x_explode("-", toString(v_section))));
6687 (v_sectionIndex = LINE(4782,x_array_pop(ref(v_sectionParts))));
6689 LOOP_COUNTER(121);
6690 for (ArrayIterPtr iter123 = v_sectionParts.begin("parser"); !iter123->end(); iter123->next()) {
6691 LOOP_COUNTER_CHECK(121);
6692 v_part = iter123->second();
6694 if (same(v_part, "T")) {
6695 v_flags |= 1LL /* parser::PTD_FOR_INCLUSION */;
6700 (v_root = LINE(4789,t_preprocesstodom(v_text, v_flags)));
6701 (v_node = LINE(4793,v_root.o_invoke_few_args("getFirstChild", 0x050681239965E069LL, 0)));
6702 if (equal(v_sectionIndex, 0LL)) {
6703 (v_targetLevel = 1000LL);
6705 else {
6706 LOOP_COUNTER(124);
6708 while (toBoolean(v_node)) {
6709 LOOP_COUNTER_CHECK(124);
6711 if (same(LINE(4801,v_node.o_invoke_few_args("getName", 0x23F51CDECC198965LL, 0)), "h")) {
6712 (v_bits = LINE(4802,v_node.o_invoke_few_args("splitHeading", 0x0621AE2D22A1922DLL, 0)));
6713 if (equal(v_bits.rvalAt("i", 0x0EB22EDA95766E98LL), v_sectionIndex)) {
6714 (v_targetLevel = v_bits.rvalAt("level", 0x26B910814038EBA3LL));
6715 break;
6718 if (same(v_mode, "replace")) {
6719 concat_assign(v_outText, toString(LINE(4809,v_frame.o_invoke_few_args("expand", 0x39B7BB05F05A37CDLL, 2, v_node, 27LL /* ppframe::RECOVER_ORIG */))));
6721 (v_node = LINE(4811,v_node.o_invoke_few_args("getNextSibling", 0x4CB333CF2D880119LL, 0)));
6726 if (!(toBoolean(v_node))) {
6727 if (same(v_mode, "get")) {
6728 return v_newText;
6730 else {
6731 return v_text;
6735 LOOP_COUNTER(125);
6736 do {
6737 LOOP_COUNTER_CHECK(125);
6739 if (same(LINE(4826,v_node.o_invoke_few_args("getName", 0x23F51CDECC198965LL, 0)), "h")) {
6740 (v_bits = LINE(4827,v_node.o_invoke_few_args("splitHeading", 0x0621AE2D22A1922DLL, 0)));
6741 (v_curLevel = v_bits.rvalAt("level", 0x26B910814038EBA3LL));
6742 if (!equal(v_bits.rvalAt("i", 0x0EB22EDA95766E98LL), v_sectionIndex) && not_more(v_curLevel, v_targetLevel)) {
6743 break;
6746 if (same(v_mode, "get")) {
6747 concat_assign(v_outText, toString(LINE(4834,v_frame.o_invoke_few_args("expand", 0x39B7BB05F05A37CDLL, 2, v_node, 27LL /* ppframe::RECOVER_ORIG */))));
6749 (v_node = LINE(4836,v_node.o_invoke_few_args("getNextSibling", 0x4CB333CF2D880119LL, 0)));
6751 } while (toBoolean(v_node));
6753 if (same(v_mode, "replace")) {
6754 if (!equal(v_newText, "")) {
6755 concat_assign(v_outText, concat(toString(v_newText), "\n\n"));
6757 LOOP_COUNTER(126);
6759 while (toBoolean(v_node)) {
6760 LOOP_COUNTER_CHECK(126);
6762 concat_assign(v_outText, toString(LINE(4850,v_frame.o_invoke_few_args("expand", 0x39B7BB05F05A37CDLL, 2, v_node, 27LL /* ppframe::RECOVER_ORIG */))));
6763 (v_node = LINE(4851,v_node.o_invoke_few_args("getNextSibling", 0x4CB333CF2D880119LL, 0)));
6768 if (LINE(4855,x_is_string(v_outText))) {
6769 (v_outText = LINE(4857,x_rtrim(toString(m_mStripState.o_invoke_few_args("unstripBoth", 0x540C7C6FAA3D937BLL, 1, v_outText)))));
6771 return v_outText;
6772 } /* function */
6773 /* SRC: Parser.php line 4875 */
6774 Variant c_parser::t_getsection(CVarRef v_text, CVarRef v_section, CStrRef v_deftext // = ""
6776 INSTANCE_METHOD_INJECTION(Parser, Parser::getSection);
6777 return LINE(4876,t_extractsections(v_text, v_section, "get", v_deftext));
6778 } /* function */
6779 /* SRC: Parser.php line 4879 */
6780 Variant c_parser::t_replacesection(CVarRef v_oldtext, CVarRef v_section, CVarRef v_text) {
6781 INSTANCE_METHOD_INJECTION(Parser, Parser::replaceSection);
6782 return LINE(4880,t_extractsections(v_oldtext, v_section, "replace", v_text));
6783 } /* function */
6784 /* SRC: Parser.php line 4887 */
6785 Variant c_parser::t_getrevisiontimestamp() {
6786 INSTANCE_METHOD_INJECTION(Parser, Parser::getRevisionTimestamp);
6787 Variant eo_0;
6788 DECLARE_GLOBAL_VARIABLES(g);
6789 Variant &gv_wgContLang __attribute__((__unused__)) = g->GV(wgContLang);
6790 Variant v_wgContLang;
6791 Variant v_dbr;
6792 Variant v_timestamp;
6794 if (LINE(4888,x_is_null(m_mRevisionTimestamp))) {
6795 LINE(4889,invoke_failed("wfprofilein", Array(ArrayInit(1).set(0, "Parser::getRevisionTimestamp").create()), 0x0000000075359BAFLL));
6796 v_wgContLang = ref(g->GV(wgContLang));
6797 (v_dbr = LINE(4891,invoke_failed("wfgetdb", Array(ArrayInit(1).set(0, k_DB_SLAVE).create()), 0x000000002DA3FF23LL)));
6798 (v_timestamp = (assignCallTemp(eo_0, toObject(v_dbr)),LINE(4893,eo_0.o_invoke_few_args("selectField", 0x7FEFEB72B2060BADLL, 4, "revision", "rev_timestamp", Array(ArrayInit(1).set(0, "rev_id", m_mRevisionId, 0x60BB6026437DAFD3LL).create()), "Parser::getRevisionTimestamp"))));
6799 (v_timestamp = LINE(4899,invoke_failed("wftimestamp", Array(ArrayInit(2).set(0, k_TS_MW).set(1, ref(v_timestamp)).create()), 0x00000000AADC1C20LL)));
6800 (m_mRevisionTimestamp = LINE(4907,v_wgContLang.o_invoke_few_args("userAdjust", 0x5F789F083D8E18B7LL, 2, v_timestamp, "")));
6801 LINE(4909,invoke_failed("wfprofileout", Array(ArrayInit(1).set(0, "Parser::getRevisionTimestamp").create()), 0x00000000B599F276LL));
6803 return m_mRevisionTimestamp;
6804 } /* function */
6805 /* SRC: Parser.php line 4917 */
6806 Variant c_parser::t_getrevisionuser() {
6807 INSTANCE_METHOD_INJECTION(Parser, Parser::getRevisionUser);
6808 DECLARE_GLOBAL_VARIABLES(g);
6809 Variant v_revision;
6810 Variant v_revuser;
6811 Variant &gv_wgUser __attribute__((__unused__)) = g->GV(wgUser);
6812 Variant v_wgUser;
6814 if (toBoolean(m_mRevisionId)) {
6815 (v_revision = LINE(4921,throw_fatal("unknown class revision", ((void*)NULL))));
6816 (v_revuser = LINE(4922,v_revision.o_invoke_few_args("getUserText", 0x66C3616EEC0044C1LL, 0)));
6818 else {
6819 v_wgUser = ref(g->GV(wgUser));
6820 (v_revuser = LINE(4925,v_wgUser.o_invoke_few_args("getName", 0x23F51CDECC198965LL, 0)));
6822 return v_revuser;
6823 } /* function */
6824 /* SRC: Parser.php line 4935 */
6825 void c_parser::t_setdefaultsort(CVarRef v_sort) {
6826 INSTANCE_METHOD_INJECTION(Parser, Parser::setDefaultSort);
6827 (m_mDefaultSort = v_sort);
6828 } /* function */
6829 /* SRC: Parser.php line 4945 */
6830 Variant c_parser::t_getdefaultsort() {
6831 INSTANCE_METHOD_INJECTION(Parser, Parser::getDefaultSort);
6832 DECLARE_GLOBAL_VARIABLES(g);
6833 Variant &gv_wgCategoryPrefixedDefaultSortkey __attribute__((__unused__)) = g->GV(wgCategoryPrefixedDefaultSortkey);
6834 if (!same(m_mDefaultSort, false)) {
6835 return m_mDefaultSort;
6837 else if (equal(LINE(4949,m_mTitle.o_invoke_few_args("getNamespace", 0x6DC05480D007D522LL, 0)), k_NS_CATEGORY) || !(toBoolean(gv_wgCategoryPrefixedDefaultSortkey))) {
6838 return LINE(4951,m_mTitle.o_invoke_few_args("getText", 0x434CEBEC8FDBB880LL, 0));
6840 else {
6841 return LINE(4953,m_mTitle.o_invoke_few_args("getPrefixedText", 0x33044BA725446A43LL, 0));
6843 return null;
6844 } /* function */
6845 /* SRC: Parser.php line 4963 */
6846 Variant c_parser::t_getcustomdefaultsort() {
6847 INSTANCE_METHOD_INJECTION(Parser, Parser::getCustomDefaultSort);
6848 return m_mDefaultSort;
6849 } /* function */
6850 /* SRC: Parser.php line 4972 */
6851 Variant c_parser::t_guesssectionnamefromwikitext(Variant v_text) {
6852 INSTANCE_METHOD_INJECTION(Parser, Parser::guessSectionNameFromWikiText);
6853 Variant eo_0;
6854 Variant eo_1;
6855 Variant eo_2;
6856 Variant v_headline;
6857 String v_sectionanchor;
6858 Array v_replacearray;
6860 (v_text = LINE(4974,t_stripsectionname(v_text)));
6861 (v_headline = LINE(4975,throw_fatal("unknown class sanitizer", ((void*)NULL))));
6862 (v_headline = LINE(4977,throw_fatal("unknown class stringutils", ((void*)NULL))));
6863 (v_headline = LINE(4978,x_trim(toString(v_headline))));
6864 (v_sectionanchor = concat("#", LINE(4979,x_urlencode(toString(x_str_replace(" ", "_", v_headline))))));
6865 (v_replacearray = ScalarArrays::sa_[30]);
6866 return LINE(4987,(assignCallTemp(eo_0, LINE(4985,x_array_keys(v_replacearray))),assignCallTemp(eo_1, LINE(4986,x_array_values(v_replacearray))),assignCallTemp(eo_2, v_sectionanchor),x_str_replace(eo_0, eo_1, eo_2)));
6867 } /* function */
6868 /* SRC: Parser.php line 5004 */
6869 Variant c_parser::t_stripsectionname(Variant v_text) {
6870 INSTANCE_METHOD_INJECTION(Parser, Parser::stripSectionName);
6871 Variant eo_0;
6872 Variant eo_1;
6873 Variant eo_2;
6874 Variant eo_3;
6875 Variant eo_4;
6876 Variant eo_5;
6877 (v_text = LINE(5006,x_preg_replace("/\\[\\[:\?([^[|]+)\\|([^[]+)\\]\\]/", "$2", v_text)));
6878 (v_text = LINE(5007,x_preg_replace("/\\[\\[:\?([^[]+)\\|\?\\]\\]/", "$1", v_text)));
6879 (v_text = LINE(5012,(assignCallTemp(eo_0, (assignCallTemp(eo_4, toString(invoke_failed("wfurlprotocols", Array(), 0x00000000BD4BD4FELL))),concat3("/\\[(\?:", eo_4, ")([^ ]+\?) ([^[]+)\\]/"))),assignCallTemp(eo_2, v_text),x_preg_replace(eo_0, "$2", eo_2))));
6880 (v_text = LINE(5015,t_doquotes(v_text)));
6881 (v_text = LINE(5018,throw_fatal("unknown class stringutils", ((void*)NULL))));
6882 return v_text;
6883 } /* function */
6884 /* SRC: Parser.php line 5022 */
6885 Variant c_parser::t_srvus(CVarRef v_text) {
6886 INSTANCE_METHOD_INJECTION(Parser, Parser::srvus);
6887 return LINE(5023,o_root_invoke_few_args("testSrvus", 0x2F64E335C4988CBDLL, 2, v_text, m_mOutputType));
6888 } /* function */
6889 /* SRC: Parser.php line 5029 */
6890 Variant c_parser::t_testsrvus(Variant v_text, Variant v_title, CVarRef v_options, int64 v_outputType // = 1LL /* parser::OT_HTML */
6892 INSTANCE_METHOD_INJECTION(Parser, Parser::testSrvus);
6893 LINE(5030,t_clearstate());
6894 if (!((instanceOf(v_title, "Title")))) {
6895 (v_title = LINE(5032,throw_fatal("unknown class title", ((void*)NULL))));
6897 (m_mTitle = v_title);
6898 (m_mOptions = v_options);
6899 LINE(5036,t_setoutputtype(v_outputType));
6900 (v_text = LINE(5037,t_replacevariables(v_text)));
6901 (v_text = LINE(5038,m_mStripState.o_invoke_few_args("unstripBoth", 0x540C7C6FAA3D937BLL, 1, v_text)));
6902 (v_text = LINE(5039,throw_fatal("unknown class sanitizer", ((void*)NULL))));
6903 return v_text;
6904 } /* function */
6905 /* SRC: Parser.php line 5043 */
6906 Variant c_parser::t_testpst(CVarRef v_text, Variant v_title, CVarRef v_options) {
6907 INSTANCE_METHOD_INJECTION(Parser, Parser::testPst);
6908 DECLARE_GLOBAL_VARIABLES(g);
6909 Variant &gv_wgUser __attribute__((__unused__)) = g->GV(wgUser);
6910 if (!((instanceOf(v_title, "Title")))) {
6911 (v_title = LINE(5046,throw_fatal("unknown class title", ((void*)NULL))));
6913 return LINE(5048,t_presavetransform(v_text, v_title, gv_wgUser, v_options));
6914 } /* function */
6915 /* SRC: Parser.php line 5051 */
6916 Variant c_parser::t_testpreprocess(CVarRef v_text, Variant v_title, CVarRef v_options) {
6917 INSTANCE_METHOD_INJECTION(Parser, Parser::testPreprocess);
6918 if (!((instanceOf(v_title, "Title")))) {
6919 (v_title = LINE(5053,throw_fatal("unknown class title", ((void*)NULL))));
6921 return LINE(5055,t_testsrvus(v_text, v_title, v_options, 3LL /* parser::OT_PREPROCESS */));
6922 } /* function */
6923 /* SRC: Parser.php line 5058 */
6924 String c_parser::t_markerskipcallback(CVarRef v_s, CVarRef v_callback) {
6925 INSTANCE_METHOD_INJECTION(Parser, Parser::markerSkipCallback);
6926 Variant eo_0;
6927 Variant eo_1;
6928 Variant v_i;
6929 String v_out;
6930 Variant v_markerStart;
6931 Variant v_markerEnd;
6933 (v_i = 0LL);
6934 (v_out = "");
6935 LOOP_COUNTER(127);
6937 while (less(v_i, LINE(5061,x_strlen(toString(v_s))))) {
6938 LOOP_COUNTER_CHECK(127);
6940 (v_markerStart = LINE(5062,x_strpos(toString(v_s), o_get("mUniqPrefix", 0x22D00FA247E8311DLL), toInt32(v_i))));
6941 if (same(v_markerStart, false)) {
6942 concat_assign(v_out, toString(LINE(5064,(assignCallTemp(eo_0, v_callback),assignCallTemp(eo_1, x_substr(toString(v_s), toInt32(v_i))),x_call_user_func(2, eo_0, Array(ArrayInit(1).set(0, eo_1).create()))))));
6943 break;
6945 else {
6946 concat_assign(v_out, toString(LINE(5067,(assignCallTemp(eo_0, v_callback),assignCallTemp(eo_1, x_substr(toString(v_s), toInt32(v_i), toInt32(v_markerStart - v_i))),x_call_user_func(2, eo_0, Array(ArrayInit(1).set(0, eo_1).create()))))));
6947 (v_markerEnd = LINE(5068,x_strpos(toString(v_s), "-QINU\177" /* parser::MARKER_SUFFIX */, toInt32(v_markerStart))));
6948 if (same(v_markerEnd, false)) {
6949 concat_assign(v_out, toString(LINE(5070,x_substr(toString(v_s), toInt32(v_markerStart)))));
6950 break;
6952 else {
6953 v_markerEnd += LINE(5073,x_strlen("-QINU\177" /* parser::MARKER_SUFFIX */));
6954 concat_assign(v_out, toString(LINE(5074,x_substr(toString(v_s), toInt32(v_markerStart), toInt32(v_markerEnd - v_markerStart)))));
6955 (v_i = v_markerEnd);
6961 return v_out;
6962 } /* function */
6963 /* SRC: Parser.php line 5082 */
6964 Variant c_parser::t_serialisehalfparsedtext(CVarRef v_text) {
6965 INSTANCE_METHOD_INJECTION(Parser, Parser::serialiseHalfParsedText);
6966 Variant eo_0;
6967 Variant eo_1;
6968 Variant eo_2;
6969 Variant eo_3;
6970 Variant eo_4;
6971 Variant v_data;
6972 p_stripstate v_stripState;
6973 Variant v_pos;
6974 Variant v_start_pos;
6975 Variant v_end_pos;
6976 Variant v_marker;
6977 Variant v_replaceArray;
6978 Variant v_stripText;
6979 Variant v_links;
6980 Variant v_ns;
6981 Variant v_trail;
6982 String v_key;
6984 (v_data = ScalarArrays::sa_[0]);
6985 v_data.set("text", (v_text), 0x2A28A0084DD3A743LL);
6986 ((Object)((v_stripState = ((Object)(LINE(5088,p_stripstate(p_stripstate(NEWOBJ(c_stripstate)())->create())))))));
6987 (v_pos = 0LL);
6988 LOOP_COUNTER(128);
6990 while ((toBoolean((v_start_pos = LINE(5090,x_strpos(toString(v_text), o_get("mUniqPrefix", 0x22D00FA247E8311DLL), toInt32(v_pos)))))) && (toBoolean((v_end_pos = x_strpos(toString(v_text), "-QINU\177" /* parser::MARKER_SUFFIX */, toInt32(v_pos)))))) {
6991 LOOP_COUNTER_CHECK(128);
6993 v_end_pos += LINE(5091,x_strlen("-QINU\177" /* parser::MARKER_SUFFIX */));
6994 (v_marker = LINE(5092,x_substr(toString(v_text), toInt32(v_start_pos), toInt32(v_end_pos - v_start_pos))));
6995 if (!(empty(m_mStripState.o_get("general", 0x661B15A9C00F7127LL).o_get("data", 0x30164401A9853128LL), v_marker))) {
6996 (v_replaceArray = v_stripState->m_general);
6997 (v_stripText = m_mStripState.o_get("general", 0x661B15A9C00F7127LL).o_get("data", 0x30164401A9853128LL).rvalAt(v_marker));
6999 else if (!(empty(m_mStripState.o_get("nowiki", 0x78258C7EF69CF55DLL).o_get("data", 0x30164401A9853128LL), v_marker))) {
7000 (v_replaceArray = v_stripState->m_nowiki);
7001 (v_stripText = m_mStripState.o_get("nowiki", 0x78258C7EF69CF55DLL).o_get("data", 0x30164401A9853128LL).rvalAt(v_marker));
7003 else {
7004 throw_exception(LINE(5101,create_object("mwexception", Array(ArrayInit(1).set(0, concat3("Hanging strip marker: '", toString(v_marker), "'.")).create()))));
7006 LINE(5104,v_replaceArray.o_invoke_few_args("setPair", 0x1CA93325C3BDD490LL, 2, v_marker, v_stripText));
7007 (v_pos = v_end_pos);
7011 v_data.set("stripstate", (((Object)(v_stripState))), 0x30D3F97724431EB9LL);
7012 (v_links = ScalarArrays::sa_[31]);
7013 (v_pos = 0LL);
7014 LOOP_COUNTER(129);
7016 while ((toBoolean((v_start_pos = LINE(5115,x_strpos(toString(v_text), "<!--LINK ", toInt32(v_pos))))))) {
7017 LOOP_COUNTER_CHECK(129);
7019 df_lambda_18(LINE(5116,(assignCallTemp(eo_1, toString((assignCallTemp(eo_3, toString(v_text)),assignCallTemp(eo_4, toInt32(v_start_pos + x_strlen("<!--LINK "))),x_substr(eo_3, eo_4)))),x_explode(":", eo_1, toInt32(2LL)))), v_ns, v_trail);
7020 (v_ns = LINE(5118,x_trim(toString(v_ns))));
7021 if (empty(v_links.rvalAt("internal", 0x575D95D69332A8ACLL), v_ns)) {
7022 lval(v_links.lvalAt("internal", 0x575D95D69332A8ACLL)).set(v_ns, (ScalarArrays::sa_[0]));
7024 (v_key = LINE(5123,x_trim(toString((assignCallTemp(eo_0, toString(v_trail)),assignCallTemp(eo_2, toInt32(x_strpos(toString(v_trail), "-->"))),x_substr(eo_0, toInt32(0LL), eo_2))))));
7025 lval(lval(v_links.lvalAt("internal", 0x575D95D69332A8ACLL)).lvalAt(v_ns)).append((m_mLinkHolders.o_get("internals", 0x69A9269F8FE824A3LL).rvalAt(v_ns).rvalAt(v_key)));
7026 (v_pos = v_start_pos + LINE(5125,x_strlen(concat5("<!--LINK ", toString(v_ns), ":", v_key, "-->"))));
7030 (v_pos = 0LL);
7031 LOOP_COUNTER(130);
7033 while ((toBoolean((v_start_pos = LINE(5131,x_strpos(toString(v_text), "<!--IWLINK ", toInt32(v_pos))))))) {
7034 LOOP_COUNTER_CHECK(130);
7036 (v_data = LINE(5132,x_substr(toString(v_text), toInt32(v_start_pos))));
7037 (v_key = LINE(5133,x_trim(toString((assignCallTemp(eo_0, toString(v_data)),assignCallTemp(eo_2, toInt32(x_strpos(toString(v_data), "-->"))),x_substr(eo_0, toInt32(0LL), eo_2))))));
7038 lval(v_links.lvalAt("interwiki", 0x148BE9CCAAA589D7LL)).append((m_mLinkHolders.o_get("interwiki", 0x148BE9CCAAA589D7LL).rvalAt(v_key)));
7039 (v_pos = v_start_pos + LINE(5135,x_strlen(concat3("<!--IWLINK ", v_key, "-->"))));
7043 v_data.set("linkholder", (v_links), 0x3D463C625DB39AA4LL);
7044 return v_data;
7045 } /* function */
7046 /* SRC: Parser.php line 5143 */
7047 Variant c_parser::t_unserialisehalfparsedtext(CVarRef v_data, Variant v_intPrefix // = null
7049 INSTANCE_METHOD_INJECTION(Parser, Parser::unserialiseHalfParsedText);
7050 Variant eo_0;
7051 Variant eo_1;
7052 Variant eo_2;
7053 Variant v_stripState;
7054 Variant v_text;
7055 Variant v_links;
7056 Primitive v_ns = 0;
7057 Variant v_nsLinks;
7058 Primitive v_key = 0;
7059 Variant v_entry;
7060 String v_newKey;
7062 if (!(toBoolean(v_intPrefix))) (v_intPrefix = LINE(5145,t_getrandomstring()));
7063 (v_stripState = v_data.rvalAt("stripstate", 0x30D3F97724431EB9LL));
7064 LINE(5149,m_mStripState.o_get("general", 0x661B15A9C00F7127LL).o_invoke_few_args("merge", 0x1C2E89C2A927FF7BLL, 1, v_stripState.o_lval("general", 0x661B15A9C00F7127LL)));
7065 LINE(5150,m_mStripState.o_get("nowiki", 0x78258C7EF69CF55DLL).o_invoke_few_args("merge", 0x1C2E89C2A927FF7BLL, 1, v_stripState.o_lval("nowiki", 0x78258C7EF69CF55DLL)));
7066 (v_text = v_data.rvalAt("text", 0x2A28A0084DD3A743LL));
7067 (v_links = v_data.rvalAt("linkholder", 0x3D463C625DB39AA4LL));
7069 LOOP_COUNTER(131);
7070 Variant map132 = v_links.rvalAt("internal", 0x575D95D69332A8ACLL);
7071 for (ArrayIterPtr iter133 = map132.begin("parser"); !iter133->end(); iter133->next()) {
7072 LOOP_COUNTER_CHECK(131);
7073 v_nsLinks = iter133->second();
7074 v_ns = iter133->first();
7077 LOOP_COUNTER(134);
7078 for (ArrayIterPtr iter136 = v_nsLinks.begin("parser"); !iter136->end(); iter136->next()) {
7079 LOOP_COUNTER_CHECK(134);
7080 v_entry = iter136->second();
7081 v_key = iter136->first();
7083 (v_newKey = LINE(5159,concat3(toString(v_intPrefix), "-", toString(v_key))));
7084 lval(lval(m_mLinkHolders.o_lval("internals", 0x69A9269F8FE824A3LL)).lvalAt(v_ns)).set(v_newKey, (v_entry));
7085 (v_text = LINE(5162,(assignCallTemp(eo_0, concat5("<!--LINK ", toString(v_ns), ":", toString(v_key), "-->")),assignCallTemp(eo_1, concat5("<!--LINK ", toString(v_ns), ":", v_newKey, "-->")),assignCallTemp(eo_2, v_text),x_str_replace(eo_0, eo_1, eo_2))));
7093 LOOP_COUNTER(137);
7094 Variant map138 = v_links.rvalAt("interwiki", 0x148BE9CCAAA589D7LL);
7095 for (ArrayIterPtr iter139 = map138.begin("parser"); !iter139->end(); iter139->next()) {
7096 LOOP_COUNTER_CHECK(137);
7097 v_entry = iter139->second();
7098 v_key = iter139->first();
7100 (v_newKey = LINE(5168,concat3(toString(v_intPrefix), "-", toString(v_key))));
7101 lval(m_mLinkHolders.o_lval("interwikis", 0x7FD8492E01593115LL)).set(v_newKey, (v_entry));
7102 (v_text = LINE(5171,(assignCallTemp(eo_0, concat3("<!--IWLINK ", toString(v_key), "-->")),assignCallTemp(eo_1, concat3("<!--IWLINK ", v_newKey, "-->")),assignCallTemp(eo_2, v_text),x_str_replace(eo_0, eo_1, eo_2))));
7106 return v_text;
7107 } /* function */
7108 /* SRC: Parser.php line 5227 */
7109 Variant c_onlyincludereplacer::os_get(const char *s, int64 hash) {
7110 return c_ObjectData::os_get(s, hash);
7112 Variant &c_onlyincludereplacer::os_lval(const char *s, int64 hash) {
7113 return c_ObjectData::os_lval(s, hash);
7115 void c_onlyincludereplacer::o_get(ArrayElementVec &props) const {
7116 props.push_back(NEW(ArrayElement)("output", m_output.isReferenced() ? ref(m_output) : m_output));
7117 c_ObjectData::o_get(props);
7119 bool c_onlyincludereplacer::o_exists(CStrRef s, int64 hash) const {
7120 if (hash < 0) hash = hash_string(s.data(), s.length());
7121 switch (hash & 1) {
7122 case 0:
7123 HASH_EXISTS_STRING(0x6F443E367A5DBB24LL, output, 6);
7124 break;
7125 default:
7126 break;
7128 return c_ObjectData::o_exists(s, hash);
7130 Variant c_onlyincludereplacer::o_get(CStrRef s, int64 hash) {
7131 if (hash < 0) hash = hash_string(s.data(), s.length());
7132 switch (hash & 1) {
7133 case 0:
7134 HASH_RETURN_STRING(0x6F443E367A5DBB24LL, m_output,
7135 output, 6);
7136 break;
7137 default:
7138 break;
7140 return c_ObjectData::o_get(s, hash);
7142 Variant c_onlyincludereplacer::o_set(CStrRef s, int64 hash, CVarRef v,bool forInit /* = false */) {
7143 if (hash < 0) hash = hash_string(s.data(), s.length());
7144 switch (hash & 1) {
7145 case 0:
7146 HASH_SET_STRING(0x6F443E367A5DBB24LL, m_output,
7147 output, 6);
7148 break;
7149 default:
7150 break;
7152 return c_ObjectData::o_set(s, hash, v, forInit);
7154 Variant &c_onlyincludereplacer::o_lval(CStrRef s, int64 hash) {
7155 if (hash < 0) hash = hash_string(s.data(), s.length());
7156 switch (hash & 1) {
7157 case 0:
7158 HASH_RETURN_STRING(0x6F443E367A5DBB24LL, m_output,
7159 output, 6);
7160 break;
7161 default:
7162 break;
7164 return c_ObjectData::o_lval(s, hash);
7166 Variant c_onlyincludereplacer::os_constant(const char *s) {
7167 return c_ObjectData::os_constant(s);
7169 IMPLEMENT_CLASS(onlyincludereplacer)
7170 ObjectData *c_onlyincludereplacer::cloneImpl() {
7171 c_onlyincludereplacer *obj = NEW(c_onlyincludereplacer)();
7172 cloneSet(obj);
7173 return obj;
7175 void c_onlyincludereplacer::cloneSet(c_onlyincludereplacer *clone) {
7176 clone->m_output = m_output.isReferenced() ? ref(m_output) : m_output;
7177 ObjectData::cloneSet(clone);
7179 Variant c_onlyincludereplacer::o_invoke(const char *s, CArrRef params, int64 hash, bool fatal) {
7180 if (hash < 0) hash = hash_string_i(s);
7181 switch (hash & 1) {
7182 case 0:
7183 HASH_GUARD(0x42FAC655280A6146LL, replace) {
7184 return (t_replace(params.rvalAt(0)), null);
7186 break;
7187 default:
7188 break;
7190 return c_ObjectData::o_invoke(s, params, hash, fatal);
7192 Variant c_onlyincludereplacer::o_invoke_few_args(const char *s, int64 hash, int count, CVarRef a0, CVarRef a1, CVarRef a2, CVarRef a3, CVarRef a4, CVarRef a5) {
7193 if (hash < 0) hash = hash_string_i(s);
7194 switch (hash & 1) {
7195 case 0:
7196 HASH_GUARD(0x42FAC655280A6146LL, replace) {
7197 return (t_replace(a0), null);
7199 break;
7200 default:
7201 break;
7203 return c_ObjectData::o_invoke_few_args(s, hash, count, a0, a1, a2, a3, a4, a5);
7205 Variant c_onlyincludereplacer::os_invoke(const char *c, const char *s, CArrRef params, int64 hash, bool fatal) {
7206 return c_ObjectData::os_invoke(c, s, params, hash, fatal);
7208 Variant cw_onlyincludereplacer$os_get(const char *s) {
7209 return c_onlyincludereplacer::os_get(s, -1);
7211 Variant &cw_onlyincludereplacer$os_lval(const char *s) {
7212 return c_onlyincludereplacer::os_lval(s, -1);
7214 Variant cw_onlyincludereplacer$os_constant(const char *s) {
7215 return c_onlyincludereplacer::os_constant(s);
7217 Variant cw_onlyincludereplacer$os_invoke(const char *c, const char *s, CArrRef params, bool fatal /* = true */) {
7218 return c_onlyincludereplacer::os_invoke(c, s, params, -1, fatal);
7220 void c_onlyincludereplacer::init() {
7221 m_output = "";
7223 /* SRC: Parser.php line 5230 */
7224 void c_onlyincludereplacer::t_replace(CVarRef v_matches) {
7225 INSTANCE_METHOD_INJECTION(OnlyIncludeReplacer, OnlyIncludeReplacer::replace);
7226 if (same(LINE(5231,x_substr(toString(v_matches.rvalAt(1LL, 0x5BCA7C69B794F8CELL)), toInt32(-1LL))), "\n")) {
7227 concat_assign(m_output, toString(LINE(5232,x_substr(toString(v_matches.rvalAt(1LL, 0x5BCA7C69B794F8CELL)), toInt32(0LL), toInt32(-1LL)))));
7229 else {
7230 concat_assign(m_output, toString(v_matches.rvalAt(1LL, 0x5BCA7C69B794F8CELL)));
7232 } /* function */
7233 Object co_stripstate(CArrRef params, bool init /* = true */) {
7234 return Object(p_stripstate(NEW(c_stripstate)())->dynCreate(params, init));
7236 Object co_parser(CArrRef params, bool init /* = true */) {
7237 return Object(p_parser(NEW(c_parser)())->dynCreate(params, init));
7239 Object co_onlyincludereplacer(CArrRef params, bool init /* = true */) {
7240 return Object(p_onlyincludereplacer(NEW(c_onlyincludereplacer)())->dynCreate(params, init));
7242 Variant pm_php$Parser_php(bool incOnce /* = false */, LVariableTable* variables /* = NULL */) {
7243 FUNCTION_INJECTION(run_init::Parser.php);
7245 DECLARE_GLOBAL_VARIABLES(g);
7246 bool &alreadyRun = g->run_pm_php$Parser_php;
7247 if (alreadyRun) { if (incOnce) return true;}
7248 else alreadyRun = true;
7249 if (!variables) variables = g;
7251 DECLARE_GLOBAL_VARIABLES(g);
7252 LVariableTable *gVariables __attribute__((__unused__)) = get_variable_table();
7253 return true;
7254 } /* function */
7256 ///////////////////////////////////////////////////////////////////////////////