{"version":3,"file":"js/9296.js","mappings":"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,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,EAAG,OAAS,OAAS,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,GAC/B,MAAS,CAAC,OAAS,OAAS,EAAG,IAEnC,sBAAuB,CACnB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,QACtB,GAAM,CAAC,EAAG,OAAS,OAAS,QAC5B,GAAM,CAAC,EAAG,OAAS,OAAS,QAC5B,GAAM,CAAC,EAAG,OAAS,OAAS,QAC5B,GAAM,CAAC,EAAG,OAAS,OAAS,QAC5B,GAAM,CAAC,EAAG,OAAS,OAAS,QAC5B,GAAM,CAAC,OAAS,OAAS,MAAQ,QACjC,GAAM,CAAC,EAAG,OAAS,OAAS,QAC5B,GAAM,CAAC,EAAG,OAAS,OAAS,GAC5B,GAAM,CAAC,OAAS,OAAS,OAAS,QAClC,GAAM,CAAC,EAAG,OAAS,OAAS,QAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,QACtB,GAAM,CAAC,EAAG,OAAS,EAAG,QACtB,GAAM,CAAC,EAAG,OAAS,OAAS,QAC5B,GAAM,CAAC,EAAG,OAAS,OAAS,QAC5B,GAAM,CAAC,EAAG,OAAS,OAAS,QAC5B,GAAM,CAAC,OAAS,OAAS,EAAG,QAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,QACtB,GAAM,CAAC,EAAG,OAAS,KAAO,QAC1B,GAAM,CAAC,EAAG,OAAS,OAAS,GAC5B,GAAM,CAAC,EAAG,OAAS,OAAS,QAC5B,GAAM,CAAC,EAAG,OAAS,OAAS,GAC5B,GAAM,CAAC,EAAG,OAAS,OAAS,QAC5B,GAAM,CAAC,EAAG,OAAS,OAAS,QAC5B,GAAM,CAAC,OAAS,OAAS,OAAS,QAClC,GAAM,CAAC,EAAG,OAAS,OAAS,SAEhC,kBAAmB,CACf,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,EAAE,OAAS,OAAS,EAAG,GAC7B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,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GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,KAAQ,CAAC,EAAG,OAAS,OAAS,GAC9B,KAAQ,CAAC,EAAG,OAAS,OAAS,GAC9B,KAAQ,CAAC,EAAG,OAAS,EAAG,GACxB,KAAQ,CAAC,EAAG,OAAS,EAAG,GACxB,KAAQ,CAAC,EAAG,OAAS,EAAG,GACxB,KAAQ,CAAC,EAAG,OAAS,EAAG,GACxB,KAAQ,CAAC,OAAS,OAAS,EAAG,GAC9B,KAAQ,CAAC,OAAS,O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S,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,EAAG,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,KAAQ,CAAC,EAAG,OAAS,EAAG,GACxB,KAAQ,CAAC,EAAG,OAAS,EAAG,GACxB,KAAQ,CAAC,EAAG,OAAS,EAAG,I,wBCrtDhC,IAAIoR,EAAQ,EAAQ,OAChBJ,EAAa,EAAQ,OA8EzB,SAAS0hB,EAAe/oB,EAAO6mB,EAAOhX,GACb,kBAAV7P,IACPA,EAAQ,CAACA,IAEQ,kBAAV6mB,IACPA,EAAQ,CAAE1W,QAAS0W,IAWvB,IARA,IAAI5d,EAAO,CACPkH,QAAS0W,EAAM1W,QACfM,SAAUoW,EAAMpW,SAChB5C,gBAAkC/V,IAArB+uB,EAAMhZ,WAA4B,EAAIgZ,EAAMhZ,WACzDoC,gBAAiB4W,EAAM5W,cACvBG,gBAAiByW,EAAMzW,iBAAmB,EAC1CP,QAASA,GAEJlR,EAAI,EAAGA,EAAIqB,EAAM7I,SAAUwH,EAChCvI,EAAOC,QAAQ2J,EAAMrB,IAAMsK,CAEnC,CAGA8f,EAAe,SAAU,CACrB5Y,QAAS,EACTC,gBAAiB,IAClB,SAASX,EAASF,GACjB,IAAInY,EAAQmY,EAAK,GACb/C,EAAO+C,EAAK,GAChB,MAAO,CACH7V,KAAM,OACN8S,KAAMA,EACNpV,MAAOA,EAEf,IAGA2xB,EAAe,SAAU,CACrB5Y,QAAS,EACTM,SAAU,CAAC,QACX5C,WAAY,IACb,SAAS4B,EAASF,GACjB,IAII2B,EAJA1E,EAAO+C,EAAK,GAWhB,OALI2B,EADc,aAAd1E,EAAK9S,KACG8S,EAAKvV,MAEL,CAACuV,GAGN,CACH9S,KAAM,OACN8S,KAAM0E,EAEd,IAGA6X,EAAe,UAAW,CACtB5Y,QAAS,EACTF,eAAe,EACfpC,WAAY,EACZ4C,SAAU,CAAC,QAAS,cACrB,SAAShB,EAASF,GACjB,IAGI2B,EAHAhH,EAAQqF,EAAK,GACb/C,EAAO+C,EAAK,GAShB,OALI2B,EADc,aAAd1E,EAAK9S,KACG8S,EAAKvV,MAEL,CAACuV,GAGN,CACH9S,KAAM,QACNwQ,MAAOA,EAAMjT,MACbA,MAAOia,EAEf,IAGA6X,EAAe,aAAc,CACzB5Y,QAAS,IACV,SAASV,EAASF,GACjB,IAAI/C,EAAO+C,EAAK,GAChB,MAAO,CACH7V,KAAM,WACN8S,KAAMA,EAEd,IAGAuc,EAAe,cAAe,CAC1B5Y,QAAS,IACV,SAASV,EAASF,GACjB,IAAI/C,EAAO+C,EAAK,GAChB,MAAO,CACH7V,KAAM,YACN8S,KAAMA,EAEd,IAGAuc,EAAe,SAAU,CACrB5Y,QAAS,EACTC,gBAAiB,EACjBK,SAAU,CAAC,OAAQ,OAAQ,UAC5B,SAAShB,EAASF,GACjB,IAAI2F,EAAQ3F,EAAK,GACb6N,EAAQ7N,EAAK,GACb+D,EAAS/D,EAAK,GAClB,MAAO,CACH7V,KAAM,OACNwb,MAAOA,GAASA,EAAMje,MACtBmmB,MAAOA,EAAMnmB,MACbqc,OAAQA,EAAOrc,MAEvB,IAGA8xB,EAAe,UAAW,CACtB5Y,QAAS,IACV,SAASV,GACR,MAAO,CACH/V,KAAM,QAEd,IAEAqvB,EAAe,YAAa,CACxB5Y,QAAS,IACV,SAASV,EAASF,GACjB,IACI2B,EADA1E,EAAO+C,EAAK,GAQhB,OALI2B,EADc,aAAd1E,EAAK9S,KACG8S,EAAKvV,MAEL,CAACuV,GAGN,CACH9S,KAAM,UACNzC,MAAOia,EAEf,IAGA,IAAI8X,EAAiB,CACjB,SAAW,CAACtvB,KAAM,OAAWyQ,KAAM,GACnC,SAAW,CAACzQ,KAAM,OAAWyQ,KAAM,GACnC,UAAW,CAACzQ,KAAM,OAAWyQ,KAAM,GACnC,UAAW,CAACzQ,KAAM,OAAWyQ,KAAM,GACnC,SAAW,CAACzQ,KAAM,QAAWyQ,KAAM,GACnC,SAAW,CAACzQ,KAAM,QAAWyQ,KAAM,GACnC,UAAW,CAACzQ,KAAM,QAAWyQ,KAAM,GACnC,UAAW,CAACzQ,KAAM,QAAWyQ,KAAM,GACnC,SAAW,CAACzQ,KAAM,MAAWyQ,KAAM,GACnC,SAAW,CAACzQ,KAAM,MAAWyQ,KAAM,GACnC,UAAW,CAACzQ,KAAM,MAAWyQ,KAAM,GACnC,UAAW,CAACzQ,KAAM,MAAWyQ,KAAM,GACnC,QAAW,CAACzQ,KAAM,UAAWyQ,KAAM,GACnC,QAAW,CAACzQ,KAAM,UAAWyQ,KAAM,GACnC,SAAW,CAACzQ,KAAM,UAAWyQ,KAAM,GACnC,SAAW,CAACzQ,KAAM,UAAWyQ,KAAM,IAGnC6c,EAAa,CACb,IAAK,IAAK,IAAK,WAAY,IAAK,WAChC,MAAO,WAAY,MAAO,WAC1B,WAAY,WAAY,UAAW,UACnC,IAAK,IAAK,WAAY,WAAY,OAAQ,OAC1C,UAAW,UAAW,UAAW,UACjC,WAAY,WAAY,eAAgB,eACxC,IAAK,cACL,IAAK,SAAU,MAAO,SACtB,YAAa,YACb,cAAe,cACf,gBAAiB,gBACjB,KAGAiC,EAAc,CACd,QAAS,WACT,SAAU,WACV,SAAU,cAIdF,EAAe,CACX,SAAU,WAAY,SAAU,QAChC,UAAW,SAAU,WACrB,UAAW,UAAW,UAAW,UAAW,UAC5C,UAAW,UAAW,UAAW,UAAW,UAC5C,WAAY,WAAY,WAAY,WAAY,WAChD,UAAW,UAAW,UAAW,UAAW,UAC5C,SAAU,SAAU,SAAU,SAAU,SACxC,YAAa,YAAa,YAAa,YAAa,YACpD,YAAa,YAAa,YAAa,YAAa,YACpD,UAAW,UAAW,UACtB,UAAW,UAAW,UAAW,UAAW,UAC5C,UAAW,UAAW,UAAW,UACjC,WAAY,aACb,CACC5Y,QAAS,EACTF,eAAe,EACfpC,WAAY,IACb,SAAS4B,EAASF,GACjB,IACIkJ,EADAjM,EAAO+C,EAAK,GAQhB,OALIkJ,EADc,aAAdjM,EAAK9S,KACG8S,EAAKvV,MAEL,CAACuV,GAGN,CACH9S,KAAM,QACNwQ,MAAO,SAAWuF,EAAQ1C,SAAS5U,MAAM,GACzClB,MAAOwhB,EAEf,IAOAsQ,EAAe,CACX,WAAY,WAAY,WAAY,QAAS,QAAS,SACtD,QAAS,SAAU,QAAS,QAAS,QAAS,QAAS,QACvD,QAAS,OAAQ,OAAQ,QAAS,QAAS,QAAS,SACpD,QAAS,UACV,CACC5Y,QAAS,IACV,SAASV,GACR,MAAO,CACH/V,KAAM,KACN6U,QAAQ,EACR9H,QAAQ,EACR+F,KAAMiD,EAAQ1C,SAEtB,IAGAgc,EAAe,CACX,QAAS,QAAS,QAAS,QAAS,WAAY,WAAY,QAC5D,QAAS,OAAQ,SAClB,CACC5Y,QAAS,IACV,SAASV,GACR,MAAO,CACH/V,KAAM,KACN6U,QAAQ,EACR9H,QAAQ,EACR+F,KAAMiD,EAAQ1C,SAEtB,IAGAgc,EAAe,CACX,QAAS,SAAU,UAAW,UAC/B,CACC5Y,QAAS,IACV,SAASV,GACR,MAAO,CACH/V,KAAM,KACN6U,QAAQ,EACR9H,QAAQ,EACR+F,KAAMiD,EAAQ1C,SAEtB,IAGAgc,EAAe,CACX,WAAY,WAAY,aAAc,aAAc,WACpD,WAAY,UAAW,SAAU,QAAS,cAC1C,aAAc,YAAa,aAAc,cAC1C,CACC5Y,QAAS,IACV,SAASV,GACR,MAAO,CACH/V,KAAM,KACN6U,QAAQ,EACR9H,QAAQ,EACR+F,KAAMiD,EAAQ1C,SAEtB,IAGAgc,EAAe,CACX,UAAW,SAAU,UACrB,WAAY,UAAW,YACxB,CACC5Y,QAAS,EACTtC,WAAY,IACb,SAAS4B,EAASF,GACjB,IAEIuL,EAFAJ,EAAQnL,EAAK,GACbqL,EAAQrL,EAAK,GAEb+K,EAAY,KACZC,EAAa,KACbpQ,EAAO,OAEX,OAAQsF,EAAQ1C,UACZ,IAAK,UACL,IAAK,SACL,IAAK,UACD+N,GAAa,EACb,MACJ,IAAK,WACL,IAAK,UACL,IAAK,WACDA,GAAa,EACbR,EAAY,IACZC,EAAa,IACb,MACJ,QACI,MAAM,IAAI1U,MAAM,gCAGxB,OAAQ4J,EAAQ1C,UACZ,IAAK,UACL,IAAK,WACD5C,EAAO,UACP,MACJ,IAAK,UACL,IAAK,WACDA,EAAO,OACP,MAGR,MAAO,CACHzQ,KAAM,UACNghB,MAAOA,EACPE,MAAOA,EACPE,WAAYA,EACZR,UAAWA,EACXC,WAAYA,EACZpQ,KAAMA,EAEd,IAGA4e,EAAe,CAAC,SAAU,UAAW,CACjC5Y,QAAS,EACTF,eAAe,IAChB,SAASR,EAASF,GACjB,IAAI/C,EAAO+C,EAAK,GAChB,MAAO,CACH7V,KAAM+V,EAAQ1C,SAAS5U,MAAM,GAC7BqU,KAAMA,EAEd,IAGAuc,EAAe,CACX,SAAU,SAAU,UAAW,UAC/B,SAAU,SAAU,UAAW,UAC/B,SAAU,SAAU,UAAW,UAC/B,QAAU,QAAU,SAAW,SAC/B,SAAU,WACX,CACC5Y,QAAS,IACV,SAASV,EAASF,GACjB,IAAIkQ,EAAQlQ,EAAK,GACjB,IAAK9H,EAAMqI,SAASkX,EAAYvH,EAAMxoB,OAClC,MAAM,IAAIoQ,EACN,uBAAyBoY,EAAMxoB,MAAQ,YACnCwY,EAAQ1C,SAAW,IACvB0C,EAAQtE,MAAOsE,EAAQE,UAAU,IAKzC,MAAyB,WAArBF,EAAQ1C,UAA8C,YAArB0C,EAAQ1C,SAClC,CACHrT,KAAM,YACNzC,MAAOwoB,EAAMxoB,OAGV,CACHyC,KAAM,cACNyQ,KAAM6e,EAAevZ,EAAQ1C,UAAU5C,KACvC8N,UAAW+Q,EAAevZ,EAAQ1C,UAAUrT,KAC5CzC,MAAOwoB,EAAMxoB,MAGzB,IAGA8xB,EAAe,CACX,SAAU,eAAgB,iBAAkB,UAC5C,eAAgB,UAAW,UAAW,UAAW,SAAU,UAC5D,EAAG,MAINA,EAAe,CACX,iBAAkB,cAAe,gBACjC,uBACD,EAAG,MAENA,EAAe,CAEX,WAAY,WAAY,WAGxB,WAAY,YAAa,aAAc,YAAa,WACpD,WAGA,QAAS,SAAU,UACpB,CACC5Y,QAAS,EACTtC,WAAY,IACb,SAAS4B,EAASF,GACjB,IAAI/C,EAAO+C,EAAK,GACZN,EAAOQ,EAAQ1C,SAInB,OAHIkC,KAAQga,IACRha,EAAOga,EAAYha,IAEhB,CACHvV,KAAM,OACN2Q,KAAM4E,EAAK9W,MAAM,GACjBqU,KAAMA,EAEd,IAGAuc,EAAe,CACX,UAAW,UAAW,SAAU,UAAW,QAAS,UACpD,UAAW,QAAS,QAAS,SAG9B,CACC5Y,QAAS,IACV,SAASV,EAASF,GACjB,IAAIlB,EAAOkB,EAAK,GAChB,MAAO,CACH7V,KAAM,SACNqe,OAAQtI,EAAQ1C,SAChBsB,KAAMA,EAEd,IAGA0a,EAAe,CAAC,SAAU,YAAa,CACnC5Y,QAAS,IACV,SAASV,GACR,IAAIxC,EACJ,OAAQwC,EAAQ1C,UACZ,IAAK,SACDE,EAAc,SACd,MACJ,IAAK,WACDA,EAAc,UACd,MACJ,QACI,MAAM,IAAIpH,MAAM,sCAExB,MAAO,CACHnM,KAAM,QACNuT,YAAaA,EAErB,IAGA8b,EAAe,CAAC,OAAQ,QAAS,CAC7B5Y,QAAS,EACTC,gBAAiB,EACjBK,SAAU,CAAC,UACZ,SAAShB,EAASF,GACjB,IAAIpF,EAAOoF,EAAK,GAChB,MAAO,CACH7V,KAAM,KACNyQ,KAAMA,EAEd,IAGA4e,EAAe,CAAC,UAAW,SAAU,CACjC5Y,QAAS,EACTM,SAAU,CAAC,UACZ,SAAShB,EAASF,GACjB,IAAI2Z,EAAY3Z,EAAK,GACrB,GAAuB,aAAnB2Z,EAAUxvB,KACV,MAAM,IAAI2N,EACN,2BACAoI,EAAQtE,MAAOsE,EAAQE,UAAU,IAGzC,IADA,IAAIhW,EAAO,GACFgF,EAAI,EAAGA,EAAIuqB,EAAUjyB,MAAME,SAAUwH,EAC1ChF,GAAQuvB,EAAUjyB,MAAM0H,GAAG1H,MAE/B,MAAO,CACHyC,KAAM,cACNC,KAAMA,EACN0V,QAASI,EAAQE,UAAU,GAEnC,G,wBCzjBA,IAAIlI,EAAQ,EAAQ,OAOpB,SAASka,EAASjoB,EAAMya,GACpBtZ,KAAKnB,KAAOA,EACZmB,KAAKmrB,WAAa,CAAC,EACnBnrB,KAAKsZ,SAAWA,GAAY,EAChC,CA2DA,SAASsN,EAASzY,GACdnO,KAAKmO,KAAOA,CAChB,CAvDA2Y,EAAStlB,UAAUilB,aAAe,SAAS3nB,EAAM1C,GAC7C4D,KAAKmrB,WAAWrsB,GAAQ1C,CAC5B,EAKA0qB,EAAStlB,UAAU6L,OAAS,WACxB,IAAID,EAAOjP,SAASmwB,gBAChB,qCAAsCtuB,KAAKnB,MAE/C,IAAK,IAAI6oB,KAAQ1nB,KAAKmrB,WACdjuB,OAAOsE,UAAUd,eAAerD,KAAK2C,KAAKmrB,WAAYzD,IACtDta,EAAKqZ,aAAaiB,EAAM1nB,KAAKmrB,WAAWzD,IAIhD,IAAK,IAAI5jB,EAAI,EAAGA,EAAI9D,KAAKsZ,SAAShd,OAAQwH,IACtCsJ,EAAKE,YAAYtN,KAAKsZ,SAASxV,GAAGuJ,UAGtC,OAAOD,CACX,EAKA0Z,EAAStlB,UAAUmM,SAAW,WAC1B,IAAI0d,EAAS,IAAMrrB,KAAKnB,KAGxB,IAAK,IAAI6oB,KAAQ1nB,KAAKmrB,WACdjuB,OAAOsE,UAAUd,eAAerD,KAAK2C,KAAKmrB,WAAYzD,KACtD2D,GAAU,IAAM3D,EAAO,KACvB2D,GAAUze,EAAM0e,OAAOtrB,KAAKmrB,WAAWzD,IACvC2D,GAAU,KAIlBA,GAAU,IAEV,IAAK,IAAIvnB,EAAI,EAAGA,EAAI9D,KAAKsZ,SAAShd,OAAQwH,IACtCunB,GAAUrrB,KAAKsZ,SAASxV,GAAG6J,WAK/B,OAFA0d,GAAU,KAAOrrB,KAAKnB,KAAO,IAEtBwsB,CACX,EAYAzE,EAASplB,UAAU6L,OAAS,WACxB,OAAOlP,SAASutB,eAAe1rB,KAAKmO,KACxC,EAKAyY,EAASplB,UAAUmM,SAAW,WAC1B,OAAOf,EAAM0e,OAAOtrB,KAAKmO,KAC7B,EAEA5S,EAAOC,QAAU,CACbsrB,SAAUA,EACVF,SAAUA,E,oBCjGd,SAAS7V,EAAUlS,EAAMzC,EAAOgK,GAC5BpG,KAAKnB,KAAOA,EACZmB,KAAK5D,MAAQA,EACb4D,KAAKoG,KAAOA,CAChB,CAEA7K,EAAOC,QAAU,CACbuV,UAAWA,E,wBCLf,IAAID,EAAS,EAAQ,OAKjBnE,EAAY,SAAS4hB,EAASrhB,GAC9B,IAAI2H,EAAS,IAAI/D,EAAOyd,EAASrhB,GAEjC,OAAO2H,EAAOxD,OAClB,EAEA9V,EAAOC,QAAUmR,C,oBCOjB,SAAS6hB,EAAapoB,EAAMoJ,EAAMqD,EAAOwF,EAASvZ,GAC9CvD,EAAOC,QAAQ4K,GAAMtH,GAAQ,CACzB0Q,KAAMA,EACNqD,MAAOA,EACPwF,QAASA,EAEjB,CAXA9c,EAAOC,QAAU,CACbysB,KAAM,CAAC,EACP9Z,KAAM,CAAC,GAeX,IAijBIrK,EACA2qB,EAljBAxG,EAAO,OACP9Z,EAAO,OAGPugB,EAAO,OACPC,EAAM,MAGNzR,EAAS,SACTd,EAAM,MACN7X,EAAQ,QACR8R,EAAQ,QACR6F,EAAU,UACVS,EAAK,KACLtY,EAAO,OACPoY,EAAQ,QACRJ,EAAM,MACNG,EAAU,UACVL,EAAU,UAKdqS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,WACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,UACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,UACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,SACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,UACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,YACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,YACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,WACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,SACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,QACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,QACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,WACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,cACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,YACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,WACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,gBACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,gBACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,WACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,WACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,QACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,YACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,WACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,WACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,UAGxCmS,EAAavG,EAAMyG,EAAMjS,EAAO,IAAU,WAC1C+R,EAAavG,EAAMyG,EAAMjS,EAAO,IAAU,WAG1C+R,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,OAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,OAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,WAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,YAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,UAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,YAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,WAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,UAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,SAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,aAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,cAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,QAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,WAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,iBAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,QAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,eAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,QAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,eAG5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,SAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,UAG5CqS,EAAavG,EAAMyG,EAAMnqB,EAAO,IAAU,gBAC1CiqB,EAAavG,EAAMyG,EAAMrqB,EAAM,IAAU,gBACzCmqB,EAAavG,EAAMyG,EAAMnqB,EAAO,IAAU,YAC1CiqB,EAAavG,EAAMyG,EAAMrqB,EAAM,IAAU,YAGzCmqB,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,QACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,YACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,WACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,WACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,SACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,WACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,aACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,YACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,aACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,QACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,WAGxCoS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,mBACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,eACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,mBACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,oBACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,gBACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,oBACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,oBACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,wBACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,oBACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,wBACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,YACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,gBACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,aACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,mBACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,oBACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,aACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,mBACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,oBACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,aACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,qBACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,sBACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,aACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,uBAGxCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,WACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,eACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,WACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,UACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,WACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,eACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,WACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,cACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,WACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,aACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,cACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,iBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,UACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,eACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,UACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,YACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,YACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,mBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,qBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,eACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,kBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,gBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,mBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,UACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,eACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,WACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,UACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,WACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,eACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,WACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,cACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,WACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,aACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,cACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,iBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,WACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,oBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,eACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,YACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,oBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,sBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,gBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,eACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,kBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,gBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,mBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,YACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,cACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,cACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,gBACvCmS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,WACvCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,WAGvCoS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,gBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,iBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,gBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,iBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,qBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,qBAGvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,iBACvCmS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,YAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,kBAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,aAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,cAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,cAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,mBAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,aAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,SAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,UAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,UAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,UAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,eAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,mBAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,uBAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,iBAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,kBAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,aAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,oBAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,gBAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,SAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,YAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,cAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,YAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,SAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,aAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,SAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,eAG3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,UAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,YAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,WAG3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,aAC3CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,cAG3CqS,EAAavG,EAAM0G,EAAKtqB,EAAM,IAAU,cACxCmqB,EAAavG,EAAM0G,EAAKpqB,EAAO,IAAU,cACzCiqB,EAAavG,EAAM0G,EAAKtqB,EAAM,IAAU,cACxCmqB,EAAavG,EAAM0G,EAAKpqB,EAAO,IAAU,cAGzCiqB,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,UACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,cACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,iBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,aACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,gBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,cACvCmS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,aACvCoS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,SACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,aACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,eACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,gBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,cACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,kBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,mBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,aACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,eACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,eACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,YACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,cACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,iBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,iBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,aACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,gBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,qBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,oBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,WACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,YACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,gBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,gBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,YACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,YACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,UACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,cACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,gBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,YACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,eACvCmS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,YACvCoS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,SACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,aACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,eACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,gBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,YACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,YACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,eACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,cACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,iBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,eACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,YACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,cACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,iBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,iBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,aACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,gBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,sBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,qBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,WACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,cACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,mBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,aACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,eACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,eACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,uBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,eACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,iBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,wBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,aACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,YACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,WACvCmS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,SACvCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,SACvCoS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,WACvCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,UACxCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,WAGvCmS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,aACvCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,mBACvCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,SACvCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,SACvCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,oBACvCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,cACvCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,aACvCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,mBACvCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,YACvCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,YACvCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,oBACvCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,qBACvCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,gBACvCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,cACvCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,iBACvCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,gBACvCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,eACvCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,cACvCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,eACvCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,eACvCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,cAGvCoS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,oBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,mBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,oBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,qBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,gBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,sBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,mBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,mBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,uBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,oBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,qBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,SACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,gBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,mBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,qBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,cACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,yBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,sBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,qBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,uBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,oBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,oBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,qBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,sBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,SACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,oBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,oBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,sBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,qBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,aACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,iBACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,iBAEvCmS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,KAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAK,OACvCqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAK,OACvCqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAK,OACvCqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,WAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,WAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,WAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,cAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,WAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,WAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,WAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,YAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,QAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,QAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,WAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,aAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,SAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,SAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,WAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,SAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,UAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,SAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,SAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,cAC5CqS,EAAavG,EAAM0G,EAAKxS,EAAS,IAAU,gBAC3CqS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,WAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,UAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,WAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,WAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,aAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,UAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,SAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,WAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,UAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,WAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,YAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,QAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,QAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,QAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAK,aACvCsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,QAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,SAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,WAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,SAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,aAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,SAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,SAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,SAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,WAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,gBAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,cAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,WAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,YAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,cAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,YAC5CsS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,KACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAK,KACnCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,KACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,UACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,UACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,SACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,QACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,WACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,SACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,SACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,cACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,UACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,SACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,WACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,SACxCoS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,UAC5CqS,EAAavG,EAAMyG,EAAMrqB,EAAM,IAAK,KACpCmqB,EAAavG,EAAMyG,EAAMrqB,EAAM,IAAK,KACpCmqB,EAAavG,EAAMyG,EAAMrqB,EAAM,IAAU,YACzCmqB,EAAavG,EAAMyG,EAAMrqB,EAAM,IAAU,WACzCmqB,EAAavG,EAAMyG,EAAMrqB,EAAM,IAAU,WACzCmqB,EAAavG,EAAMyG,EAAMnqB,EAAO,IAAK,KACrCiqB,EAAavG,EAAMyG,EAAMnqB,EAAO,IAAK,KACrCiqB,EAAavG,EAAMyG,EAAMnqB,EAAO,IAAK,KACrCiqB,EAAavG,EAAMyG,EAAMnqB,EAAO,IAAK,KACrCiqB,EAAavG,EAAMyG,EAAMnqB,EAAO,IAAU,YAC1CiqB,EAAavG,EAAMyG,EAAMnqB,EAAO,IAAU,WAC1CiqB,EAAavG,EAAMyG,EAAMnqB,EAAO,IAAU,WAC1CiqB,EAAavG,EAAMyG,EAAMrS,EAAK,IAAK,KACnCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAK,KACnCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAK,KACnCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAK,KACnCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,YACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,UACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,QACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,SACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,UACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAK,QACnCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,QACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,WACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,YACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,YACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,cACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,cACxCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,eACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,eACvCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,YACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,eACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,QACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,SACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAK,QACnCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,QACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,SACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,gBACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,QACxCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,UACvCmS,EAAavG,EAAM0G,EAAKtS,EAAK,IAAU,UACvCmS,EAAavG,EAAMyG,EAAMlS,EAAS,KAAM,OACxCgS,EAAavG,EAAMyG,EAAMlS,EAAS,IAAU,OAC5CgS,EAAavG,EAAMyG,EAAMlS,EAAS,IAAU,KAC5CgS,EAAavG,EAAMyG,EAAMlS,EAAS,KAAM,OACxCgS,EAAavG,EAAMyG,EAAMlS,EAAS,KAAM,OACxCgS,EAAavG,EAAMyG,EAAMlS,EAAS,KAAM,OACxCgS,EAAavG,EAAMyG,EAAMlS,EAAS,KAAM,aACxCgS,EAAavG,EAAMyG,EAAMlS,EAAS,KAAM,WACxCgS,EAAavG,EAAMyG,EAAMlS,EAAS,KAAM,UACxCgS,EAAavG,EAAMyG,EAAMlS,EAAS,IAAU,WAC5CgS,EAAavG,EAAMyG,EAAMjS,EAAO,IAAK,KACrC+R,EAAavG,EAAMyG,EAAMjS,EAAO,IAAK,KACrC+R,EAAavG,EAAMyG,EAAMjS,EAAO,IAAK,WACrC+R,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,cACvCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,YACvCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,UACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,WACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,YACxCoS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,aAC5CqS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,YACxCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,iBACvCoS,EAAavG,EAAM0G,EAAKvS,EAAK,IAAU,YACvCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,mBACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,qBACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,YACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,aACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,UACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,kBACxCoS,EAAavG,EAAMyG,EAAMtS,EAAK,IAAU,mBACxCoS,EAAavG,EAAMyG,EAAMrqB,EAAM,IAAK,OACpCmqB,EAAavG,EAAMyG,EAAMnqB,EAAO,IAAK,OACrCiqB,EAAavG,EAAMyG,EAAMrqB,EAAM,IAAK,YACpCmqB,EAAavG,EAAMyG,EAAMnqB,EAAO,IAAK,YACrCiqB,EAAavG,EAAMyG,EAAMrqB,EAAM,IAAK,YACpCmqB,EAAavG,EAAMyG,EAAMnqB,EAAO,IAAK,YACrCiqB,EAAavG,EAAMyG,EAAMrqB,EAAM,IAAU,YACzCmqB,EAAavG,EAAMyG,EAAMnqB,EAAO,IAAU,YAC1CiqB,EAAavG,EAAMyG,EAAMrqB,EAAM,IAAU,WACzCmqB,EAAavG,EAAMyG,EAAMnqB,EAAO,IAAU,WAC1CiqB,EAAavG,EAAMyG,EAAMvS,EAAS,KAAM,eACxCqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,KAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,UAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,OAC5CqS,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,UAC5CqS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,aACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,aACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,eACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,eACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,iBACxCmS,EAAavG,EAAMyG,EAAMrS,EAAK,IAAU,iBACxCmS,EAAavG,EAAMA,EAAMtL,EAAI,IAAU,YACvC6R,EAAavG,EAAMA,EAAMtL,EAAI,IAAU,YACvC6R,EAAavG,EAAMA,EAAMtL,EAAI,IAAU,cACvC6R,EAAavG,EAAMA,EAAMtL,EAAI,IAAU,cACvC6R,EAAavG,EAAMA,EAAMtL,EAAI,IAAU,YACvC6R,EAAavG,EAAMA,EAAMtL,EAAI,IAAU,YACvC6R,EAAavG,EAAMA,EAAMtL,EAAI,IAAU,SACvC6R,EAAavG,EAAMA,EAAMtL,EAAI,IAAU,WACvC6R,EAAavG,EAAMA,EAAMtL,EAAI,IAAU,UACvC6R,EAAavG,EAAMA,EAAMtL,EAAI,IAAU,WACvC6R,EAAavG,EAAMA,EAAMtL,EAAI,IAAU,UACvC6R,EAAavG,EAAMA,EAAMtL,EAAI,IAAU,SACvC6R,EAAavG,EAAMA,EAAMtL,EAAI,IAAU,eACvC6R,EAAavG,EAAMA,EAAMtL,EAAI,IAAU,cACvC6R,EAAavG,EAAMA,EAAMtL,EAAI,IAAU,aACvC6R,EAAavG,EAAMA,EAAMtL,EAAI,IAAU,UACvC6R,EAAavG,EAAMA,EAAMtL,EAAI,IAAU,cACvC6R,EAAavG,EAAMA,EAAMtL,EAAI,IAAU,cACvC6R,EAAavG,EAAMyG,EAAMrY,EAAO,IAAU,WAC1CmY,EAAavG,EAAMyG,EAAMrY,EAAO,IAAU,WAC1CmY,EAAavG,EAAMyG,EAAMrY,EAAO,IAAU,WAC1CmY,EAAavG,EAAMyG,EAAMvS,EAAS,IAAU,WAC5CqS,EAAavG,EAAMyG,EAAMxR,EAAQ,IAAU,WAC3CsR,EAAavG,EAAMyG,EAAMxR,EAAQ,IAAU,WAC3CsR,EAAavG,EAAMyG,EAAMxR,EAAQ,IAAU,UAC3CsR,EAAavG,EAAMyG,EAAMxR,EAAQ,IAAU,WAC3CsR,EAAavG,EAAMyG,EAAMxR,EAAQ,IAAU,SAC3CsR,EAAavG,EAAMyG,EAAMxR,EAAQ,IAAU,WAC3CsR,EAAavG,EAAMyG,EAAMxR,EAAQ,IAAU,WAC3CsR,EAAavG,EAAMyG,EAAMxR,EAAQ,IAAU,SAC3CsR,EAAavG,EAAMyG,EAAMxR,EAAQ,IAAU,SAC3CsR,EAAavG,EAAMyG,EAAMxR,EAAQ,IAAU,SAC3CsR,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,WAC5CsS,EAAavG,EAAMyG,EAAMxS,EAAS,IAAU,WAE5CsS,EAAargB,EAAMugB,EAAMlS,EAAS,IAAU,OAC5CgS,EAAargB,EAAMugB,EAAMlS,EAAS,IAAU,KAC5CgS,EAAargB,EAAMugB,EAAMlS,EAAS,IAAU,KAO5C,IAAIoS,EAAkB,iBACtB,IAAK9qB,EAAI,EAAGA,EAAI8qB,EAAgBtyB,OAAQwH,IACpC2qB,EAAKG,EAAgB9nB,OAAOhD,GAC5B0qB,EAAavG,EAAMyG,EAAMvS,EAASsS,EAAIA,GAI1C,IAAII,EAAc,iCAClB,IAAK/qB,EAAI,EAAGA,EAAI+qB,EAAYvyB,OAAQwH,IAChC2qB,EAAKI,EAAY/nB,OAAOhD,GACxB0qB,EAAargB,EAAMugB,EAAMvS,EAASsS,EAAIA,GAI1C,IAAIK,EAAU,uDACd,IAAKhrB,EAAI,EAAGA,EAAIgrB,EAAQxyB,OAAQwH,IAC5B2qB,EAAKK,EAAQhoB,OAAOhD,GACpB0qB,EAAavG,EAAMyG,EAAMxS,EAASuS,EAAIA,GACtCD,EAAargB,EAAMugB,EAAMvS,EAASsS,EAAIA,E,oBCjmB1C,IAmEIM,EAnEAC,EAAgB9mB,MAAM1G,UAAUyJ,QAChCA,EAAU,SAASgkB,EAAM7V,GACzB,GAAY,MAAR6V,EACA,OAAQ,EAEZ,GAAID,GAAiBC,EAAKhkB,UAAY+jB,EAClC,OAAOC,EAAKhkB,QAAQmO,GAIxB,IAFA,IAAItV,EAAI,EACJ8C,EAAIqoB,EAAK3yB,OACNwH,EAAI8C,EAAG9C,IACV,GAAImrB,EAAKnrB,KAAOsV,EACZ,OAAOtV,EAGf,OAAQ,CACZ,EAKImR,EAAW,SAASga,EAAM7V,GAC1B,OAAgC,IAAzBnO,EAAQgkB,EAAM7V,EACzB,EAKIiI,EAAQ,SAAS6N,EAASC,GAC1B,YAAmBlyB,IAAZiyB,EAAwBC,EAAqBD,CACxD,EAIIE,EAAY,WACZ7D,EAAY,SAAS8D,GACrB,OAAOA,EAAIhX,QAAQ+W,EAAW,OAAOE,aACzC,EAEIC,EAAgB,CAChB,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAM,SACN,IAAK,UAGLC,EAAe,WAEnB,SAASC,EAAQ/gB,GACb,OAAO6gB,EAAc7gB,EACzB,CAQA,SAAS4c,EAAOnd,GACZ,OAAQ,GAAKA,GAAMkK,QAAQmX,EAAcC,EAC7C,CAOA,GAAwB,qBAAbtxB,SAA0B,CACjC,IAAIuxB,EAAWvxB,SAASE,cAAc,QAElC0wB,EADA,gBAAiBW,EACA,SAAStiB,EAAMe,GAC5Bf,EAAKuiB,YAAcxhB,CACvB,EAEiB,SAASf,EAAMe,GAC5Bf,EAAKwiB,UAAYzhB,CACrB,CAER,CAKA,SAASlB,EAAUG,GACf2hB,EAAe3hB,EAAM,GACzB,CAEA7R,EAAOC,QAAU,CACbyZ,SAAUA,EACVoM,MAAOA,EACPiK,OAAQA,EACRC,UAAWA,EACXtgB,QAASA,EACT8jB,eAAgBA,EAChB9hB,UAAWA,E,qCChGf,SAAS4iB,EAAO9mB,GACd,IAAI+mB,EAAU5nB,MAAM1G,UAAUlE,MAAMD,KAAKV,UAAW,GAUpD,OARAmzB,EAAQ5kB,SAAQ,SAAUnM,GACnBA,GAEL7B,OAAO8E,KAAKjD,GAAQmM,SAAQ,SAAUrO,GACpCkM,EAAIlM,GAAOkC,EAAOlC,EACpB,GACF,IAEOkM,CACT,CAEA,SAASgnB,EAAOhnB,GAAO,OAAO7L,OAAOsE,UAAUpE,SAASC,KAAK0L,EAAM,CACnE,SAASinB,EAASjnB,GAAO,MAAuB,oBAAhBgnB,EAAOhnB,EAA4B,CACnE,SAASnN,EAASmN,GAAO,MAAuB,oBAAhBgnB,EAAOhnB,EAA4B,CACnE,SAASknB,EAASlnB,GAAO,MAAuB,oBAAhBgnB,EAAOhnB,EAA4B,CACnE,SAASkI,EAAWlI,GAAO,MAAuB,sBAAhBgnB,EAAOhnB,EAA8B,CAGvE,SAASmnB,EAASb,GAAO,OAAOA,EAAIhX,QAAQ,uBAAwB,OAAS,CAK7E,IAAI8X,EAAiB,CACnBC,WAAW,EACXC,YAAY,EACZC,SAAS,GAIX,SAASC,EAAaxnB,GACpB,OAAO7L,OAAO8E,KAAK+G,GAAO,CAAC,GAAGynB,QAAO,SAAUC,EAAKtM,GAClD,OAAOsM,GAAON,EAAezvB,eAAeyjB,EAC9C,IAAG,EACL,CAGA,IAAIuM,EAAiB,CACnB,QAAS,CACPC,SAAU,SAAUxiB,EAAM1H,EAAKjG,GAC7B,IAAIowB,EAAOziB,EAAK7Q,MAAMmJ,GAQtB,OANKjG,EAAK2L,GAAG0kB,OAEXrwB,EAAK2L,GAAG0kB,KAAQ,IAAItmB,OAClB,UAAY/J,EAAK2L,GAAG2kB,SAAWtwB,EAAK2L,GAAG4kB,qBAAuBvwB,EAAK2L,GAAG6kB,SAAU,MAGhFxwB,EAAK2L,GAAG0kB,KAAK9X,KAAK6X,GACbA,EAAKliB,MAAMlO,EAAK2L,GAAG0kB,MAAM,GAAGv0B,OAE9B,CACT,GAEF,SAAW,QACX,OAAW,QACX,KAAW,CACTq0B,SAAU,SAAUxiB,EAAM1H,EAAKjG,GAC7B,IAAIowB,EAAOziB,EAAK7Q,MAAMmJ,GAkBtB,OAhBKjG,EAAK2L,GAAG8kB,UAEXzwB,EAAK2L,GAAG8kB,QAAW,IAAI1mB,OACrB,IACA/J,EAAK2L,GAAG2kB,SAGR,sBAAwBtwB,EAAK2L,GAAG+kB,WAAa,SAAW1wB,EAAK2L,GAAGglB,gBAAkB,IAClF3wB,EAAK2L,GAAGilB,SACR5wB,EAAK2L,GAAGklB,oBACR7wB,EAAK2L,GAAG6kB,SAER,MAIAxwB,EAAK2L,GAAG8kB,QAAQlY,KAAK6X,GAEnBnqB,GAAO,GAAuB,MAAlB0H,EAAK1H,EAAM,IACvBA,GAAO,GAAuB,MAAlB0H,EAAK1H,EAAM,GADqB,EAEzCmqB,EAAKliB,MAAMlO,EAAK2L,GAAG8kB,SAAS,GAAG30B,OAEjC,CACT,GAEF,UAAW,CACTq0B,SAAU,SAAUxiB,EAAM1H,EAAKjG,GAC7B,IAAIowB,EAAOziB,EAAK7Q,MAAMmJ,GAOtB,OALKjG,EAAK2L,GAAGmlB,SACX9wB,EAAK2L,GAAGmlB,OAAU,IAAI/mB,OACpB,IAAM/J,EAAK2L,GAAGolB,eAAiB,IAAM/wB,EAAK2L,GAAGqlB,gBAAiB,MAG9DhxB,EAAK2L,GAAGmlB,OAAOvY,KAAK6X,GACfA,EAAKliB,MAAMlO,EAAK2L,GAAGmlB,QAAQ,GAAGh1B,OAEhC,CACT,IAOAm1B,EAAkB,0VAGlBC,EAAe,8EAA8EpzB,MAAM,KAMvG,SAASqzB,EAAenxB,GACtBA,EAAKoxB,WAAa,EAClBpxB,EAAKqxB,eAAmB,EAC1B,CAEA,SAASC,EAAgB3lB,GACvB,OAAO,SAAUgC,EAAM1H,GACrB,IAAImqB,EAAOziB,EAAK7Q,MAAMmJ,GAEtB,OAAI0F,EAAG4M,KAAK6X,GACHA,EAAKliB,MAAMvC,GAAI,GAAG7P,OAEpB,CACT,CACF,CAEA,SAASy1B,IACP,OAAO,SAAUrjB,EAAOlO,GACtBA,EAAKwxB,UAAUtjB,EACjB,CACF,CAIA,SAASujB,EAAQzxB,GAGf,IAAI2L,EAAK3L,EAAK2L,GAAK0jB,EAAO,CAAC,EAAG,EAAQ,QAGlCqC,EAAO1xB,EAAK2xB,SAAS70B,QASzB,SAAS80B,EAAMC,GAAO,OAAOA,EAAIha,QAAQ,SAAUlM,EAAGmmB,SAAW,CAP5D9xB,EAAK+xB,mBACRL,EAAK9sB,KAAKqsB,GAEZS,EAAK9sB,KAAK+G,EAAGqmB,QAEbrmB,EAAGmmB,SAAWJ,EAAKhH,KAAK,KAIxB/e,EAAGsmB,YAAmBloB,OAAO6nB,EAAMjmB,EAAGumB,iBAAkB,KACxDvmB,EAAGwmB,WAAmBpoB,OAAO6nB,EAAMjmB,EAAGymB,gBAAiB,KACvDzmB,EAAG0mB,iBAAmBtoB,OAAO6nB,EAAMjmB,EAAG2mB,sBAAuB,KAC7D3mB,EAAG4mB,gBAAmBxoB,OAAO6nB,EAAMjmB,EAAG6mB,qBAAsB,KAM5D,IAAIC,EAAU,GAId,SAASC,EAAYp0B,EAAMuI,GACzB,MAAM,IAAI2D,MAAM,+BAAiClM,EAAO,MAAQuI,EAClE,CAJA7G,EAAK2yB,aAAe,CAAC,EAMrBj2B,OAAO8E,KAAKxB,EAAK4yB,aAAaloB,SAAQ,SAAUpM,GAC9C,IAAIuI,EAAM7G,EAAK4yB,YAAYt0B,GAG3B,GAAY,OAARuI,EAAJ,CAEA,IAAIgsB,EAAW,CAAE1C,SAAU,KAAM2C,KAAM,MAIvC,GAFA9yB,EAAK2yB,aAAar0B,GAAQu0B,EAEtBz3B,EAASyL,GAiBX,OAhBI4oB,EAAS5oB,EAAIspB,UACf0C,EAAS1C,SAAWmB,EAAgBzqB,EAAIspB,UAC/B1f,EAAW5J,EAAIspB,UACxB0C,EAAS1C,SAAWtpB,EAAIspB,SAExBuC,EAAYp0B,EAAMuI,QAGhB4J,EAAW5J,EAAI2qB,WACjBqB,EAASrB,UAAY3qB,EAAI2qB,UACf3qB,EAAI2qB,UAGdkB,EAAYp0B,EAAMuI,GAFlBgsB,EAASrB,UAAYD,KAQrB/B,EAAS3oB,GACX4rB,EAAQ7tB,KAAKtG,GAIfo0B,EAAYp0B,EAAMuI,EA/BU,CAgC9B,IAMA4rB,EAAQ/nB,SAAQ,SAAUqoB,GACnB/yB,EAAK2yB,aAAa3yB,EAAK4yB,YAAYG,MAMxC/yB,EAAK2yB,aAAaI,GAAO5C,SACvBnwB,EAAK2yB,aAAa3yB,EAAK4yB,YAAYG,IAAQ5C,SAC7CnwB,EAAK2yB,aAAaI,GAAOvB,UACvBxxB,EAAK2yB,aAAa3yB,EAAK4yB,YAAYG,IAAQvB,UAC/C,IAKAxxB,EAAK2yB,aAAa,IAAM,CAAExC,SAAU,KAAMqB,UAAWD,KAKrD,IAAIyB,EAAQt2B,OAAO8E,KAAKxB,EAAK2yB,cACRM,QAAO,SAAU30B,GAEhB,OAAOA,EAAKxC,OAAS,GAAKkE,EAAK2yB,aAAar0B,EAC9C,IACCsoB,IAAI8I,GACJhF,KAAK,KAE1B1qB,EAAK2L,GAAGunB,YAAgBnpB,OAAO,mBAAqB4B,EAAGwnB,SAAW,MAAQH,EAAQ,IAAK,KACvFhzB,EAAK2L,GAAGynB,cAAgBrpB,OAAO,mBAAqB4B,EAAGwnB,SAAW,MAAQH,EAAQ,IAAK,MAEvFhzB,EAAK2L,GAAG0nB,QAAgBtpB,OACE,IAAM/J,EAAK2L,GAAGunB,YAAY30B,OAA1B,MACMyB,EAAK2L,GAAG4mB,gBAAgBh0B,OAD9B,MAGA,KAM1B4yB,EAAenxB,EACjB,CAOA,SAASszB,EAAMtzB,EAAM6Z,GACnB,IAAInG,EAAQ1T,EAAKoxB,UACbnhB,EAAQjQ,EAAKuzB,eACb5lB,EAAQ3N,EAAKqxB,eAAev0B,MAAM4W,EAAOzD,GAO7CzQ,KAAKg0B,OAAYxzB,EAAKyzB,WAAW3E,cAMjCtvB,KAAKzD,MAAY2X,EAAQmG,EAMzBra,KAAKyK,UAAYgG,EAAM4J,EAMvBra,KAAKk0B,IAAY/lB,EAMjBnO,KAAKmO,KAAYA,EAMjBnO,KAAKm0B,IAAYhmB,CACnB,CAEA,SAASimB,EAAY5zB,EAAM6Z,GACzB,IAAI3L,EAAQ,IAAIolB,EAAMtzB,EAAM6Z,GAI5B,OAFA7Z,EAAK2yB,aAAazkB,EAAMslB,QAAQhC,UAAUtjB,EAAOlO,GAE1CkO,CACT,CAyCA,SAAS2lB,EAAUC,EAAStnB,GAC1B,KAAMhN,gBAAgBq0B,GACpB,OAAO,IAAIA,EAAUC,EAAStnB,GAG3BA,GACCujB,EAAa+D,KACftnB,EAAUsnB,EACVA,EAAU,CAAC,GAIft0B,KAAKu0B,SAAqB1E,EAAO,CAAC,EAAGM,EAAgBnjB,GAGrDhN,KAAK4xB,WAAsB,EAC3B5xB,KAAK+zB,gBAAsB,EAC3B/zB,KAAKi0B,WAAqB,GAC1Bj0B,KAAK6xB,eAAqB,GAE1B7xB,KAAKozB,YAAqBvD,EAAO,CAAC,EAAGa,EAAgB4D,GACrDt0B,KAAKmzB,aAAqB,CAAC,EAE3BnzB,KAAKmyB,SAAqBT,EAC1B1xB,KAAKuyB,mBAAqB,EAE1BvyB,KAAKmM,GAAK,CAAC,EAEX8lB,EAAQjyB,KACV,CAUAq0B,EAAU7yB,UAAU+J,IAAM,SAAayoB,EAAQQ,GAG7C,OAFAx0B,KAAKozB,YAAYY,GAAUQ,EAC3BvC,EAAQjyB,MACDA,IACT,EASAq0B,EAAU7yB,UAAU6J,IAAM,SAAa2B,GAErC,OADAhN,KAAKu0B,SAAW1E,EAAO7vB,KAAKu0B,SAAUvnB,GAC/BhN,IACT,EAQAq0B,EAAU7yB,UAAUuX,KAAO,SAAc5K,GAKvC,GAHAnO,KAAK6xB,eAAiB1jB,EACtBnO,KAAK4xB,WAAkB,GAElBzjB,EAAK7R,OAAU,OAAO,EAE3B,IAAIm4B,EAAGC,EAAIC,EAAIC,EAAKva,EAAO9Y,EAAM4K,EAAI0oB,EAASC,EAG9C,GAAI90B,KAAKmM,GAAGunB,YAAY3a,KAAK5K,GAAO,CAClChC,EAAKnM,KAAKmM,GAAGynB,cACbznB,EAAG1B,UAAY,EACf,MAA+B,QAAvBgqB,EAAItoB,EAAG9L,KAAK8N,IAElB,GADAymB,EAAM50B,KAAK+0B,aAAa5mB,EAAMsmB,EAAE,GAAItoB,EAAG1B,WACnCmqB,EAAK,CACP50B,KAAKi0B,WAAiBQ,EAAE,GACxBz0B,KAAK4xB,UAAiB6C,EAAEl4B,MAAQk4B,EAAE,GAAGn4B,OACrC0D,KAAK+zB,eAAiBU,EAAEl4B,MAAQk4B,EAAE,GAAGn4B,OAASs4B,EAC9C,KACF,CAEJ,CA2CA,OAzCI50B,KAAKu0B,SAASnE,WAAapwB,KAAKmzB,aAAa,WAE/C0B,EAAU1mB,EAAK6mB,OAAOh1B,KAAKmM,GAAG4mB,iBAC1B8B,GAAW,IAET70B,KAAK4xB,UAAY,GAAKiD,EAAU70B,KAAK4xB,YAC0D,QAA5F8C,EAAKvmB,EAAKO,MAAM1O,KAAKu0B,SAASjE,QAAUtwB,KAAKmM,GAAGwmB,WAAa3yB,KAAKmM,GAAG0mB,qBAExExY,EAAQqa,EAAGn4B,MAAQm4B,EAAG,GAAGp4B,QAErB0D,KAAK4xB,UAAY,GAAKvX,EAAQra,KAAK4xB,aACrC5xB,KAAKi0B,WAAiB,GACtBj0B,KAAK4xB,UAAiBvX,EACtBra,KAAK+zB,eAAiBW,EAAGn4B,MAAQm4B,EAAG,GAAGp4B,UAO7C0D,KAAKu0B,SAASlE,YAAcrwB,KAAKmzB,aAAa,aAEhD2B,EAAS3mB,EAAKlD,QAAQ,KAClB6pB,GAAU,GAGmC,QAA1CH,EAAKxmB,EAAKO,MAAM1O,KAAKmM,GAAGsmB,gBAE3BpY,EAAQsa,EAAGp4B,MAAQo4B,EAAG,GAAGr4B,OACzBiF,EAAQozB,EAAGp4B,MAAQo4B,EAAG,GAAGr4B,QAErB0D,KAAK4xB,UAAY,GAAKvX,EAAQra,KAAK4xB,WAClCvX,IAAUra,KAAK4xB,WAAarwB,EAAOvB,KAAK+zB,kBAC3C/zB,KAAKi0B,WAAiB,UACtBj0B,KAAK4xB,UAAiBvX,EACtBra,KAAK+zB,eAAiBxyB,KAMvBvB,KAAK4xB,WAAa,CAC3B,EAUAyC,EAAU7yB,UAAUqyB,QAAU,SAAiB1lB,GAC7C,OAAOnO,KAAKmM,GAAG0nB,QAAQ9a,KAAK5K,EAC9B,EAYAkmB,EAAU7yB,UAAUuzB,aAAe,SAAsB5mB,EAAM6lB,EAAQvtB,GAErE,OAAKzG,KAAKmzB,aAAaa,EAAO1E,eAGvBtvB,KAAKmzB,aAAaa,EAAO1E,eAAeqB,SAASxiB,EAAM1H,EAAKzG,MAF1D,CAGX,EAmBAq0B,EAAU7yB,UAAUkN,MAAQ,SAAeP,GACzC,IAAIkM,EAAQ,EAAG5V,EAAS,GAGpBzE,KAAK4xB,WAAa,GAAK5xB,KAAK6xB,iBAAmB1jB,IACjD1J,EAAOW,KAAKgvB,EAAYp0B,KAAMqa,IAC9BA,EAAQra,KAAK+zB,gBAIf,IAAInD,EAAOvW,EAAQlM,EAAK7Q,MAAM+c,GAASlM,EAGvC,MAAOnO,KAAK+Y,KAAK6X,GACfnsB,EAAOW,KAAKgvB,EAAYp0B,KAAMqa,IAE9BuW,EAAOA,EAAKtzB,MAAM0C,KAAK+zB,gBACvB1Z,GAASra,KAAK+zB,eAGhB,OAAItvB,EAAOnI,OACFmI,EAGF,IACT,EAkBA4vB,EAAU7yB,UAAU0wB,KAAO,SAAcjD,EAAMgG,GAG7C,OAFAhG,EAAO/mB,MAAMgtB,QAAQjG,GAAQA,EAAO,CAAEA,GAEjCgG,GAOLj1B,KAAKmyB,SAAWnyB,KAAKmyB,SAASzqB,OAAOunB,GACJkG,OACA1B,QAAO,SAAUv3B,EAAIk5B,EAAKC,GACzB,OAAOn5B,IAAOm5B,EAAID,EAAM,EAC1B,IACCE,UAEjCrD,EAAQjyB,MACDA,OAdLA,KAAKmyB,SAAWlD,EAAK3xB,QACrB0C,KAAKuyB,mBAAoB,EACzBN,EAAQjyB,MACDA,KAYX,EAOAq0B,EAAU7yB,UAAUwwB,UAAY,SAAmBtjB,GAK5CA,EAAMslB,SAAUtlB,EAAMylB,IAAM,UAAYzlB,EAAMylB,KAE9B,YAAjBzlB,EAAMslB,QAAyB,YAAYjb,KAAKrK,EAAMylB,OACxDzlB,EAAMylB,IAAM,UAAYzlB,EAAMylB,IAElC,EAGA54B,EAAOC,QAAU64B,C,qCC9mBjB,IAAIkB,EAAU/5B,EAAQ+5B,QAAU,EAAlB,cACVC,EAAUh6B,EAAQg6B,OAAS,EAAjB,cACVC,EAAUj6B,EAAQi6B,MAAR,gBACVC,EAAUl6B,EAAQk6B,MAAR,gBAGV/B,EAAWn4B,EAAQm4B,SAAW,CAAE8B,EAAOC,EAAOF,GAAStK,KAAK,KAG5DyK,EAAUn6B,EAAQm6B,QAAU,CAAEF,EAAOD,GAAStK,KAAK,KAKnD0K,EAA0B,aAAejC,EAAW,IAAM4B,EAAU,IAMpEM,EAAUr6B,EAAQq6B,QAEpB,yFAGFr6B,EAAQs1B,SAAc,YAAc6E,EAAU,eAE9C,IAAIvE,EAAW51B,EAAQ41B,SAErB,kFAEEC,EAAsB71B,EAAQ61B,oBAEhC,YAAcsC,EAAW,6BAA+BA,EAAW,KAEjE3C,EAAWx1B,EAAQw1B,SAErB,iBAGc2E,EAHd,sCAIoBA,EAJpB,wBAKoBA,EALpB,wBAMoBA,EANpB,wBAOoBA,EAPpB,yBAQoBA,EARpB,qBASiBC,EATjB,kCAeiBD,EAfjB,0CAiBiBA,EAjBjB,YAkBiBA,EAlBjB,gBAmBiBA,EAnBjB,iBAwBEpE,EAAiB/1B,EAAQ+1B,eAE3B,oCAEEiB,EAASh3B,EAAQg3B,OAEnB,wBAKErB,EAAkB31B,EAAQ21B,gBAG5B,MACEqB,EACA,IACAoD,EAHF,UAME1E,EAAa11B,EAAQ01B,WAEvB,MACEsB,EADF,OAGUoD,EAHV,QAQUA,EAAoB,aAAeA,EAAoB,UAAYA,EAR7E,KAWEE,EAAWt6B,EAAQs6B,SAErB,eAIgB5E,EAAa,SAAWC,EAJxC,KAOE4E,EAAiBv6B,EAAQu6B,eAE3B,MACEF,EADF,aAGgB3E,EAHhB,qBAME8E,EAAuBx6B,EAAQw6B,qBAEjC,YAAc9E,EAAa,oBAE7B11B,EAAQg2B,gBAENsE,EAAWzE,EAEb,IAAI4E,EAAwBz6B,EAAQy6B,sBAElCF,EAAiB1E,EAEnB71B,EAAQu1B,qBAEN+E,EAAW1E,EAAWC,EAExB,IAAI6E,EAA6B16B,EAAQ06B,2BAEvCH,EAAiB3E,EAAWC,EAE1B8E,EAAmC36B,EAAQ26B,iCAE7CH,EAAuB5E,EAAWC,EAOpC71B,EAAQw3B,oBAEN,sDAAwDW,EAAW,SAErEn4B,EAAQk3B,gBAEJ,cAAgBiD,EAAU,KAAOpE,EAAiB,IAAM0E,EAAwB,IAEpFz6B,EAAQo3B,eAGJ,kCAAoCe,EAApC,oBACoBuC,EAA6BlF,EAAW,IAEhEx1B,EAAQs3B,qBAGJ,kCAAoCa,EAApC,oBACoBwC,EAAmCnF,EAAW,G,iCC5JtEz1B,EAAOC,QAAU,SAAoB46B,GACnC,IAAIlG,EAAkBkG,EAAGxpB,MAAMsjB,SAC3BmG,EAAkBD,EAAGxpB,MAAMypB,eAK3BC,EAAmB,iBAEnBC,EAAmBH,EAAGxpB,MAAM4pB,IAAIC,QAAQh3B,EAAEV,OAC1C23B,EAAmBN,EAAGxpB,MAAM4pB,IAAIC,QAAQE,EAAE53B,OAG9C,SAAS63B,EAASC,EAAOC,EAAWC,EAASC,GAC3C,IAAIC,EAAOC,EAAOzI,EAAI0I,EAAYC,EAC9B3wB,EAAMowB,EAAMQ,OAAOP,GAAaD,EAAMS,OAAOR,GAC7C/vB,EAAM8vB,EAAMU,OAAOT,GAEvB,GAAIrwB,EAAM,GAAKM,EAAO,OAAO,EAE7B,GAAoC,KAAhC8vB,EAAM1yB,IAAI0C,WAAWJ,KAA0B,OAAO,EAC1D,GAAoC,KAAhCowB,EAAM1yB,IAAI0C,WAAWJ,KAA0B,OAAO,EAI1D,IAFA0wB,EAAa1wB,EAENA,EAAMM,EAAKN,IAAO,CAEvB,GADAgoB,EAAKoI,EAAM1yB,IAAI0C,WAAWJ,GACf,KAAPgoB,EACF,OAAO,EACF,GAAW,KAAPA,EAAqB,CAC9B2I,EAAW3wB,EACX,KACF,CAAkB,KAAPgoB,GACThoB,GAEJ,CAEA,QAAI2wB,EAAW,GAA4C,KAAvCP,EAAM1yB,IAAI0C,WAAWuwB,EAAW,QAIhDJ,IAEJC,EAAQJ,EAAM1yB,IAAI7G,MAAM65B,EAAYC,GAAU/e,QAAQ,SAAU,MAChE6e,EAAQL,EAAM1yB,IAAI7G,MAAM85B,EAAW,EAAGrwB,GAAKywB,OACtB,IAAjBP,EAAM36B,SACW,IAAjB46B,EAAM56B,SACLu6B,EAAMpiB,IAAIgjB,gBAAiBZ,EAAMpiB,IAAIgjB,cAAgB,CAAC,GAEP,qBAAzCZ,EAAMpiB,IAAIgjB,cAAc,IAAMR,KACvCJ,EAAMpiB,IAAIgjB,cAAc,IAAMR,GAASC,GAGzCL,EAAMtS,KAAOuS,EAAY,GAClB,KACT,CAGA,SAASY,EAAab,GACpB,IAAI/yB,EAAG6zB,EAAG/wB,EAAGgxB,EAAQC,EAAO1pB,EAAM2pB,EAAOrxB,EAAKsxB,EAAKtD,EAAGuD,EAASC,EAC3DC,EACAC,EAActB,EAAMe,OAExB,GAAKf,EAAMpiB,IAAIgjB,cAsBf,IApBAQ,EAAY,IAAI1tB,OAAO,MACrBrN,OAAO8E,KAAK60B,EAAMpiB,IAAIgjB,eAAerQ,KAAI,SAAU/C,GACjD,OAAOA,EAAE+T,OAAO,EAClB,IAAGjD,MAAK,SAAUt3B,EAAGC,GACnB,OAAOA,EAAExB,OAASuB,EAAEvB,MACtB,IAAG8qB,IAAI8I,GAAUhF,KAAK,KACxB,KAEA8M,EAAU,MAAQzB,EAAmB,IAAMG,EAC3B,KAAOJ,EAAYh4B,MAAM,IAAI8oB,IAAI8I,GAAUhF,KAAK,IADtD,MAEMhuB,OAAO8E,KAAK60B,EAAMpiB,IAAIgjB,eAAerQ,KAAI,SAAU/C,GACjD,OAAOA,EAAE+T,OAAO,EAClB,IAAGjD,MAAK,SAAUt3B,EAAGC,GACnB,OAAOA,EAAExB,OAASuB,EAAEvB,MACtB,IAAG8qB,IAAI8I,GAAUhF,KAAK,KAN5B,OAOQqL,EAAmB,IAAMG,EAC3B,KAAOJ,EAAYh4B,MAAM,IAAI8oB,IAAI8I,GAAUhF,KAAK,IAAM,KAEtE6M,EAAM,IAAIxtB,OAAOytB,EAAS,KAErBL,EAAI,EAAG/wB,EAAIuxB,EAAY77B,OAAQq7B,EAAI/wB,EAAG+wB,IACzC,GAA4B,WAAxBQ,EAAYR,GAAG94B,KAInB,IAHA+4B,EAASO,EAAYR,GAAGre,SAGnBxV,EAAI8zB,EAAOt7B,OAAS,EAAGwH,GAAK,EAAGA,IAElC,GADAo0B,EAAeN,EAAO9zB,GACI,SAAtBo0B,EAAar5B,OAEjB4H,EAAM,EACN0H,EAAO+pB,EAAaG,QACpBN,EAAIttB,UAAY,EAChBqtB,EAAQ,GAIHG,EAAUlf,KAAK5K,IAApB,CAEA,MAAQsmB,EAAIsD,EAAI13B,KAAK8N,IACfsmB,EAAEl4B,MAAQ,GAAKk4B,EAAE,GAAGn4B,OAAS,KAC/Bu7B,EAAgB,IAAIhB,EAAM3oB,MAAM,OAAQ,GAAI,GAC5C2pB,EAAMQ,QAAUlqB,EAAK7Q,MAAMmJ,EAAKguB,EAAEl4B,MAAQk4B,EAAE,GAAGn4B,QAC/Cw7B,EAAM1yB,KAAKyyB,IAGbA,EAAgB,IAAIhB,EAAM3oB,MAAM,YAAa,OAAQ,GACrD2pB,EAAMrsB,MAAU,CAAE,CAAE,QAASqrB,EAAMpiB,IAAIgjB,cAAc,IAAMhD,EAAE,MAC7DqD,EAAM1yB,KAAKyyB,GAEXA,EAAgB,IAAIhB,EAAM3oB,MAAM,OAAQ,GAAI,GAC5C2pB,EAAMQ,QAAU5D,EAAE,GAClBqD,EAAM1yB,KAAKyyB,GAEXA,EAAgB,IAAIhB,EAAM3oB,MAAM,aAAc,QAAS,GACvD4pB,EAAM1yB,KAAKyyB,GAEXE,EAAIttB,WAAagqB,EAAE,GAAGn4B,OACtBmK,EAAMsxB,EAAIttB,UAGPqtB,EAAMx7B,SAEPmK,EAAM0H,EAAK7R,SACbu7B,EAAgB,IAAIhB,EAAM3oB,MAAM,OAAQ,GAAI,GAC5C2pB,EAAMQ,QAAUlqB,EAAK7Q,MAAMmJ,GAC3BqxB,EAAM1yB,KAAKyyB,IAIbM,EAAYR,GAAGre,SAAWse,EAASvB,EAAeuB,EAAQ9zB,EAAGg0B,GAjCtB,CAoC7C,CAEA1B,EAAGkC,MAAMC,MAAMC,OAAO,YAAa,WAAY5B,EAAU,CAAE6B,IAAK,CAAE,YAAa,eAE/ErC,EAAG74B,KAAKg7B,MAAMG,MAAM,UAAW,eAAgBhB,EACjD,C,iCC9IAn8B,EAAOC,QAAU,SAAwB46B,GACvC,IAAIuC,EAAUvC,EAAGxpB,MAAM+rB,QAIvB,SAASC,EAAW/B,EAAOtS,GACzB,IAAI9d,EAAKoyB,EACL3kB,EAAQ2iB,EAAMQ,OAAO9S,GAAQsS,EAAMS,OAAO/S,GAC1Cxd,EAAM8vB,EAAMU,OAAOhT,GAEvB,OAAIrQ,GAASnN,GAAe,GAG5B8xB,EAAShC,EAAM1yB,IAAI0C,WAAWqN,KACf,MAAX2kB,GAAqC,KAAXA,GAAkC,GAEhEpyB,EAAMowB,EAAMiC,WAAW5kB,GAGnBA,IAAUzN,GAGVA,GAAOM,GAHkB,EAKtBmN,GACT,CAEA,SAAS6kB,EAAoBlC,EAAOzB,GAClC,IAAItxB,EAAG8C,EACHoyB,EAAQnC,EAAMmC,MAAQ,EAE1B,IAAKl1B,EAAIsxB,EAAM,EAAGxuB,EAAIiwB,EAAMe,OAAOt7B,OAAS,EAAGwH,EAAI8C,EAAG9C,IAChD+yB,EAAMe,OAAO9zB,GAAGk1B,QAAUA,GAAkC,mBAAzBnC,EAAMe,OAAO9zB,GAAGjF,OACrDg4B,EAAMe,OAAO9zB,EAAI,GAAGm1B,QAAS,EAC7BpC,EAAMe,OAAO9zB,GAAGm1B,QAAS,EACzBn1B,GAAK,EAGX,CAEA,SAASo1B,EAAQrC,EAAOC,EAAWC,EAASC,GAC1C,IAAIvI,EACA0K,EACAC,EACAC,EACAC,EACAC,EACAC,EACAzyB,EACA0yB,EACAvX,EACAwX,EACAC,EACAC,EACAC,EACAC,EACAC,EACAtzB,EACAuzB,EACAC,EACApC,EAEJ,GAAIb,EAEF,QAAIH,EAAMqD,SAAW,IACdtB,EAAW/B,EAAOC,IAAc,EAIzC,GADA2C,EAAW3C,EAAY,EACnB2C,GAAY1C,EAAW,OAAO,EAElC,GAAIF,EAAMsD,QAAQV,KAChBA,IACIA,GAAY1C,GAAW,OAAO,EAGpC,GAAIF,EAAMuD,OAAOX,GAAY5C,EAAMwD,UAAa,OAAO,EAEvD,GADAlB,EAAeP,EAAW/B,EAAO4C,GAC7BN,EAAe,EAAK,OAAO,EAG/BK,EAAa3C,EAAMe,OAAOt7B,OAC1B29B,GAAQ,EAERpC,EAAYhB,EAAMzxB,KAAK,UAAW,KAAM,GACxCyyB,EAAMzQ,IAAMmS,EAAY,CAAEzC,EAAW,GAMrCuC,EAASvC,EACTsC,EAASK,EASTa,EACA,OAAS,CAaP,IAZAN,GAAe,EAEfnC,EAAiBhB,EAAMzxB,KAAK,UAAW,KAAM,GAC7CyyB,EAAMzQ,IAAW,CAAEiS,EAAQA,GAE3BxB,EAAiBhB,EAAMzxB,KAAK,SAAU,GAAI,GAC1CyyB,EAAMzQ,IAAW,CAAEiS,EAAQA,GAC3BxB,EAAMQ,QAAWxB,EAAM0D,SAASlB,EAAQA,EAAS,EAAGxC,EAAMwD,WAAW,GAAO7C,OAC5EK,EAAMve,SAAW,GAEjBue,EAAiBhB,EAAMzxB,KAAK,WAAY,MAAO,KAEtC,CACPyyB,EAAYhB,EAAMzxB,KAAK,UAAW,KAAM,GACxCyyB,EAAMzQ,IAAMkS,EAAY,CAAEG,EAAU,GAEpChzB,EAAM0yB,EACNpyB,EAAM8vB,EAAMU,OAAO6B,GACnBlX,EAAS2U,EAAMuD,OAAOhB,GAAUD,GAAgBtC,EAAMQ,OAAO+B,GAAUvC,EAAMS,OAAO8B,IAEpF,MAAO3yB,EAAMM,EAAK,CAGhB,GAFA0nB,EAAKoI,EAAM1yB,IAAI0C,WAAWJ,IAEtBkyB,EAAQlK,GAOV,MANW,IAAPA,EACFvM,GAAU,EAAIA,EAAS,EAEvBA,IAMJzb,GACF,CAqCA,GAnCA0yB,EAAe1yB,EAEfszB,EAAWlD,EAAMoD,MACjBP,EAAc7C,EAAMqD,SACpBP,EAAY9C,EAAMwD,UAClBP,EAAYjD,EAAMS,OAAO8B,GACzBS,EAAYhD,EAAMuD,OAAOhB,GACzBQ,EAAgB/C,EAAM2D,WACtB3D,EAAMwD,UAAYxD,EAAMqD,SAAWrD,EAAMuD,OAAOhB,GAAU,EAC1DvC,EAAMS,OAAO8B,GAAUD,EAAetC,EAAMQ,OAAO+B,GACnDvC,EAAMuD,OAAOhB,GAAUlX,EACvB2U,EAAMoD,OAAQ,EACdpD,EAAM2D,WAAa,UAEnB3D,EAAMT,GAAGkC,MAAMmC,SAAS5D,EAAOuC,EAAQrC,GAAS,GAG3CF,EAAMoD,QAASD,IAClBC,GAAQ,GAIVD,EAAgBnD,EAAMtS,KAAO6U,EAAU,GAAKvC,EAAMsD,QAAQtD,EAAMtS,KAAO,GAEvEsS,EAAMS,OAAO8B,GAAUU,EACvBjD,EAAMuD,OAAOhB,GAAUS,EACvBhD,EAAMoD,MAAQF,EACdlD,EAAM2D,WAAaZ,EACnB/C,EAAMwD,UAAYV,EAClB9C,EAAMqD,SAAWR,EAEjB7B,EAAQhB,EAAMzxB,KAAK,WAAY,MAAO,GAEtCk0B,EAAU,GAAKG,EAAW5C,EAAMtS,KAE5BkV,GAAY1C,EAAW,MAAMuD,EAEjC,GAAIzD,EAAMuD,OAAOX,GAAY5C,EAAMwD,UAAa,MAAMC,EAEtD,GADAnB,EAAeP,EAAW/B,EAAO4C,GAC7BN,EAAe,EAAK,MAExBC,EAASK,CAIX,CAEA,GAAIA,GAAY1C,EAAW,MAG3B,GAFAsC,EAASI,EAEL5C,EAAMsD,QAAQd,GAAW,MAC7B,GAAIxC,EAAMuD,OAAOf,GAAUxC,EAAMwD,UAAa,MAG9C,GADAjB,EAASC,EAAS,EACdD,GAAUrC,EAAW,MAEzB,GADIF,EAAMsD,QAAQf,IAAWA,IACzBA,GAAUrC,EAAW,MAEzB,GAAIF,EAAMuD,OAAOhB,GAAUvC,EAAMwD,UAAa,MAE9C,GADAlB,EAAeP,EAAW/B,EAAOuC,GAC7BD,EAAe,EAAK,KAI1B,CAcA,OAXAtB,EAAQhB,EAAMzxB,KAAK,WAAY,MAAO,GAEtCm0B,EAAU,GAAKE,EAEf5C,EAAMtS,KAAOkV,EAGTQ,GACFlB,EAAoBlC,EAAO2C,IAGtB,CACT,CAGApD,EAAGkC,MAAMC,MAAMC,OAAO,YAAa,UAAWU,EAAS,CAAET,IAAK,CAAE,YAAa,YAAa,eAC5F,C,qCChOA,IAAIiC,EAAoB,EAAQ,OAC5BC,EAAoB,EAAQ,OAC5BC,EAAoB,EAAQ,OAC5BC,EAAoB,EAAQ,OAC5BC,EAAoB,EAAQ,OAGhCv/B,EAAOC,QAAU,SAAsB46B,EAAIppB,GACzC,IAAI+tB,EAAW,CACbC,KAAMN,EACNO,UAAWN,EACXO,QAAS,IAGPC,EAAOL,EAAe1E,EAAGxpB,MAAMijB,OAAO,CAAC,EAAGkL,EAAU/tB,GAAW,CAAC,IAEpEopB,EAAGgF,SAASC,MAAMC,MAAQV,EAE1BxE,EAAG74B,KAAKg7B,MAAMnzB,KAAK,QAASy1B,EAAczE,EAAI+E,EAAKH,KAAMG,EAAKF,UAAWE,EAAKI,OAAQJ,EAAKK,WAC7F,C,iCCTAjgC,EAAOC,QAAU,CACfigC,MAAkB,CAAE,MAAO,QAC3BC,MAAkB,CAAE,MAAO,QAC3BC,aAAkB,CAAE,MAAO,QAE3BC,SAAkB,CAAE,KAAM,OAC1BC,IAAkB,CAAE,MAAO,OAAQ,MAAO,QAC1CC,SAAkB,CAAE,KAAM,OAC1BC,MAAkB,CAAE,MACpBC,IAAkB,CAAE,MAAO,QAC3BC,SAAkB,CAAE,MAAO,MAAO,OAAQ,OAAQ,MAAO,QACzDC,IAAkB,CAAE,MAAO,OAAQ,MAAO,OAAQ,MAAO,OAAQ,MAAO,QACxEC,QAAkB,CAAE,KAAM,OAC1BC,SAAkB,CAAE,MAAO,OAC3BC,aAAkB,CAAE,KAAM,OAC1BC,WAAkB,CAAE,KAAM,MAAO,KAAM,OACvCC,KAAkB,CAAE,KAAM,OAC1BC,MAAkB,CAAE,KAAM,OAC1BC,OAAkB,CAAE,KAAM,OAC1BC,YAAkB,CAAE,MAAO,QAC3BC,IAAkB,CAAE,OAAQ,QAAS,KAAM,OAC3CC,iBAAkB,CAAE,KAAM,OAC1BC,WAAkB,CAAE,MAAO,OAC3BC,MAAkB,CAAE,MAAO,QAC3BC,YAAkB,CAAE,MAAO,QAC3BC,SAAkB,CAAE,KAAM,MAAO,KAAM,MAAO,KAAM,OACpDC,KAAkB,CAAE,KAAM,O,iCCjC5B,SAASC,EAAQ7N,GACf,OAAOA,EAAIhX,QAAQ,uBAAwB,OAC7C,CAGA9c,EAAOC,QAAU,SAAwBwR,GACvC,IACIiuB,EADAkC,EAAUnwB,EAAQguB,KAIlBhuB,EAAQkuB,QAAQ5+B,SAClB6gC,EAAUjgC,OAAO8E,KAAKm7B,GAAS3M,QAAO,SAAUC,EAAK5zB,GAInD,OAHImQ,EAAQkuB,QAAQjwB,QAAQpO,IAAQ,IAClC4zB,EAAI5zB,GAAOsgC,EAAQtgC,IAEd4zB,CACT,GAAG,CAAC,IAINwK,EAAY/9B,OAAO8E,KAAKgL,EAAQiuB,WAAWzK,QAAO,SAAUC,EAAK5zB,GAE/D,OAAKsgC,EAAQtgC,GAETqL,MAAMgtB,QAAQloB,EAAQiuB,UAAUp+B,KAClCmQ,EAAQiuB,UAAUp+B,GAAKqO,SAAQ,SAAUqoB,GACvC9C,EAAI8C,GAAS12B,CACf,IACO4zB,IAGTA,EAAIzjB,EAAQiuB,UAAUp+B,IAAQA,EACvB4zB,GAVqBA,CAW9B,GAAG,CAAC,GAGJ,IAAItrB,EAAQjI,OAAO8E,KAAKm7B,GACT/V,KAAI,SAAUtoB,GAAQ,MAAO,IAAMA,EAAO,GAAK,IAC/C4I,OAAOxK,OAAO8E,KAAKi5B,IACnB9F,OACAG,UACAlO,KAAI,SAAUtoB,GAAQ,OAAOo+B,EAAQp+B,EAAO,IAC5CosB,KAAK,KAChBqQ,EAAShxB,OAAOpF,GAChBq2B,EAAYjxB,OAAOpF,EAAO,KAE9B,MAAO,CACL61B,KAAMmC,EACNlC,UAAWA,EACXM,OAAQA,EACRC,UAAWA,EAEf,C,iCCxDAjgC,EAAOC,QAAU,SAAoBo8B,EAAQxC,GAC3C,OAAOwC,EAAOxC,GAAKiD,OACrB,C,iCCKA98B,EAAOC,QAAU,SAAqB46B,EAAI+G,EAASlC,EAAWM,EAAQC,GACpE,IAAInF,EAAiBD,EAAGxpB,MAAMypB,eAC1B+G,EAAMhH,EAAGxpB,MAAM4pB,IAAIC,QACnB4G,EAAO,IAAI9yB,OAAO,CAAE6yB,EAAIzG,EAAE53B,OAAQq+B,EAAI39B,EAAEV,OAAQq+B,EAAIE,GAAGv+B,QAASmsB,KAAK,MAEzE,SAASqS,EAAepvB,EAAM6qB,EAAO9qB,GACnC,IAAI2pB,EAAO2F,EAAW,EAAG1F,EAAQ,GA2CjC,OAzCA3pB,EAAKkK,QAAQmjB,GAAW,SAAU9sB,EAAOwT,EAAQ/d,GAC/C,IAAIs5B,EAEJ,GAAIxC,EAAUv6B,eAAegO,GAAQ,CAKnC,GAHA+uB,EAAaxC,EAAUvsB,GAGnBwT,EAAS,IAAMmb,EAAKtkB,KAAK5U,EAAI+d,EAAS,IACxC,OAIF,GAAIA,EAASxT,EAAMpS,OAAS6H,EAAI7H,SAAW+gC,EAAKtkB,KAAK5U,EAAI+d,EAASxT,EAAMpS,SACtE,MAEJ,MACEmhC,EAAa/uB,EAAMpR,MAAM,GAAI,GAI3B4kB,EAASsb,IACX3F,EAAgB,IAAI3pB,EAAM,OAAQ,GAAI,GACtC2pB,EAAMQ,QAAUlqB,EAAK7Q,MAAMkgC,EAAUtb,GACrC4V,EAAM1yB,KAAKyyB,IAGbA,EAAgB,IAAI3pB,EAAM,QAAS,GAAI,GACvC2pB,EAAMxM,OAAUoS,EAChB5F,EAAMQ,QAAU8E,EAAQM,GACxB3F,EAAM1yB,KAAKyyB,GAEX2F,EAAWtb,EAASxT,EAAMpS,MAC5B,IAEIkhC,EAAWrvB,EAAK7R,SAClBu7B,EAAgB,IAAI3pB,EAAM,OAAQ,GAAI,GACtC2pB,EAAMQ,QAAUlqB,EAAK7Q,MAAMkgC,GAC3B1F,EAAM1yB,KAAKyyB,IAGNC,CACT,CAEA,OAAO,SAAuBjB,GAC5B,IAAI/yB,EAAG6zB,EAAG/wB,EAAGgxB,EAAQC,EACjBM,EAActB,EAAMe,OACpB8F,EAAgB,EAEpB,IAAK/F,EAAI,EAAG/wB,EAAIuxB,EAAY77B,OAAQq7B,EAAI/wB,EAAG+wB,IACzC,GAA4B,WAAxBQ,EAAYR,GAAG94B,KAKnB,IAJA+4B,EAASO,EAAYR,GAAGre,SAInBxV,EAAI8zB,EAAOt7B,OAAS,EAAGwH,GAAK,EAAGA,IAClC+zB,EAAQD,EAAO9zB,GAEI,cAAf+zB,EAAMh5B,MAAuC,eAAfg5B,EAAMh5B,MACnB,SAAfg5B,EAAM8F,OAAmBD,GAAiB7F,EAAM+F,SAGnC,SAAf/F,EAAMh5B,MAAqC,IAAlB6+B,GAAuBnC,EAAOxiB,KAAK8e,EAAMQ,WAEpEF,EAAYR,GAAGre,SAAWse,EAASvB,EACjCuB,EAAQ9zB,EAAGy5B,EAAe1F,EAAMQ,QAASR,EAAMmB,MAAOnC,EAAM3oB,QAKtE,CACF,C,iCCjFA,SAAS2vB,EAAcjG,EAAQxC,GAC7B,IAAI0I,EAAIC,OAAOnG,EAAOxC,GAAK4I,KAAKz2B,GAAK,GAAGnK,WACpCmK,EAAK,QAAUu2B,EAInB,OAHIlG,EAAOxC,GAAK4I,KAAKC,MAAQ,IAC3B12B,GAAM,IAAMqwB,EAAOxC,GAAK4I,KAAKC,OAExB,yCAA2CH,EAAI,SAAWv2B,EAAK,MAAQu2B,EAAI,aACpF,CACA,SAASI,EAAqBtG,EAAQxC,EAAKpoB,GACzC,OAAQA,EAAQmxB,SAAW,iCAAmC,gCAAvD,4DAGT,CACA,SAASC,IACP,MAAO,qBACT,CACA,SAASC,EAAezG,EAAQxC,GAC9B,IAAI7tB,EAAKw2B,OAAOnG,EAAOxC,GAAK4I,KAAKz2B,GAAK,GAAGnK,WACzC,MAAO,aAAemK,EAAK,2BAC7B,CACA,SAAS+2B,IACP,MAAO,SACT,CACA,SAASC,EAAiB3G,EAAQxC,GAChC,IAAI0I,EAAIC,OAAOnG,EAAOxC,GAAK4I,KAAKz2B,GAAK,GAAGnK,WACpCmK,EAAK,QAAUu2B,EAInB,OAHIlG,EAAOxC,GAAK4I,KAAKC,MAAQ,IAC3B12B,GAAM,IAAMqwB,EAAOxC,GAAK4I,KAAKC,OAExB,cAAgB12B,EAAK,kCAC9B,CAKAhM,EAAOC,QAAU,SAAoB46B,GACnC,IAAIoI,EAAiBpI,EAAGqI,QAAQD,eAC5B7F,EAAUvC,EAAGxpB,MAAM+rB,QAUvB,SAAS+F,EAAa7H,EAAOC,EAAWC,EAASC,GAC/C,IAAI2H,EAAU7E,EAAWD,EAAWD,EAAenzB,EAAKwwB,EAAOY,EAC3D+G,EAAS1c,EAAQuM,EAAIoQ,EACrB3qB,EAAQ2iB,EAAMQ,OAAOP,GAAaD,EAAMS,OAAOR,GAC/C/vB,EAAM8vB,EAAMU,OAAOT,GAGvB,GAAI5iB,EAAQ,EAAInN,EAAO,OAAO,EAE9B,GAAoC,KAAhC8vB,EAAM1yB,IAAI0C,WAAWqN,GAA0B,OAAO,EAC1D,GAAwC,KAApC2iB,EAAM1yB,IAAI0C,WAAWqN,EAAQ,GAAsB,OAAO,EAE9D,IAAKzN,EAAMyN,EAAQ,EAAGzN,EAAMM,EAAKN,IAAO,CACtC,GAAkC,KAA9BowB,EAAM1yB,IAAI0C,WAAWJ,GAAiB,OAAO,EACjD,GAAkC,KAA9BowB,EAAM1yB,IAAI0C,WAAWJ,GACvB,KAEJ,CAEA,GAAIA,IAAQyN,EAAQ,EAAK,OAAO,EAChC,GAAIzN,EAAM,GAAKM,GAAuC,KAAhC8vB,EAAM1yB,IAAI0C,aAAaJ,GAAyB,OAAO,EAC7E,GAAIuwB,EAAU,OAAO,EACrBvwB,IAEKowB,EAAMpiB,IAAIqqB,YAAajI,EAAMpiB,IAAIqqB,UAAY,CAAC,GAC9CjI,EAAMpiB,IAAIqqB,UAAUC,OAAQlI,EAAMpiB,IAAIqqB,UAAUC,KAAO,CAAC,GAC7D9H,EAAQJ,EAAM1yB,IAAI7G,MAAM4W,EAAQ,EAAGzN,EAAM,GACzCowB,EAAMpiB,IAAIqqB,UAAUC,KAAK,IAAM9H,IAAU,EAEzCY,EAAc,IAAIhB,EAAM3oB,MAAM,0BAA2B,GAAI,GAC7D2pB,EAAMmG,KAAQ,CAAE/G,MAAOA,GACvBY,EAAMmB,MAAQnC,EAAMmC,QACpBnC,EAAMe,OAAOxyB,KAAKyyB,GAElB8G,EAAW9H,EAAMQ,OAAOP,GACxBgD,EAAYjD,EAAMS,OAAOR,GACzB+C,EAAYhD,EAAMuD,OAAOtD,GACzB8C,EAAgB/C,EAAM2D,WAEtBqE,EAAgBp4B,EAChBm4B,EAAU1c,EAAS2U,EAAMuD,OAAOtD,GAAarwB,GAAOowB,EAAMQ,OAAOP,GAAaD,EAAMS,OAAOR,IAE3F,MAAOrwB,EAAMM,EAAK,CAGhB,GAFA0nB,EAAKoI,EAAM1yB,IAAI0C,WAAWJ,IAEtBkyB,EAAQlK,GAOV,MANW,IAAPA,EACFvM,GAAU,EAAIA,EAAS,EAEvBA,IAMJzb,GACF,CAyBA,OAvBAowB,EAAMS,OAAOR,GAAarwB,EAAMo4B,EAChChI,EAAMuD,OAAOtD,GAAa5U,EAAS0c,EAEnC/H,EAAMQ,OAAOP,GAAa+H,EAC1BhI,EAAMwD,WAAa,EACnBxD,EAAM2D,WAAa,WAEf3D,EAAMuD,OAAOtD,GAAaD,EAAMwD,YAClCxD,EAAMuD,OAAOtD,IAAcD,EAAMwD,WAGnCxD,EAAMT,GAAGkC,MAAMmC,SAAS5D,EAAOC,EAAWC,GAAS,GAEnDF,EAAM2D,WAAaZ,EACnB/C,EAAMwD,WAAa,EACnBxD,EAAMS,OAAOR,GAAagD,EAC1BjD,EAAMuD,OAAOtD,GAAa+C,EAC1BhD,EAAMQ,OAAOP,GAAa6H,EAE1B9G,EAAc,IAAIhB,EAAM3oB,MAAM,2BAA4B,IAAK,GAC/D2pB,EAAMmB,QAAUnC,EAAMmC,MACtBnC,EAAMe,OAAOxyB,KAAKyyB,IAEX,CACT,CAGA,SAASmH,EAAgBnI,EAAOG,GAC9B,IAAIG,EACAC,EACA6H,EACApH,EACAD,EACA7wB,EAAM8vB,EAAMqI,OACZhrB,EAAQ2iB,EAAMpwB,IAElB,QAAIyN,EAAQ,GAAKnN,KACmB,KAAhC8vB,EAAM1yB,IAAI0C,WAAWqN,KACe,KAApC2iB,EAAM1yB,IAAI0C,WAAWqN,EAAQ,KAEjCijB,EAAajjB,EAAQ,EACrBkjB,EAAWoH,EAAe3H,EAAO3iB,EAAQ,KAGrCkjB,EAAW,KAKVJ,IACEH,EAAMpiB,IAAIqqB,YAAajI,EAAMpiB,IAAIqqB,UAAY,CAAC,GAC9CjI,EAAMpiB,IAAIqqB,UAAU7P,OAAQ4H,EAAMpiB,IAAIqqB,UAAU7P,KAAO,IAC5DgQ,EAAapI,EAAMpiB,IAAIqqB,UAAU7P,KAAK3yB,OAEtCu6B,EAAMT,GAAG+I,OAAO9tB,MACdwlB,EAAM1yB,IAAI7G,MAAM65B,EAAYC,GAC5BP,EAAMT,GACNS,EAAMpiB,IACNmjB,EAAS,IAGXC,EAAahB,EAAMzxB,KAAK,eAAgB,GAAI,GAC5CyyB,EAAMmG,KAAO,CAAEz2B,GAAI03B,GAEnBpI,EAAMpiB,IAAIqqB,UAAU7P,KAAKgQ,GAAc,CAAErH,OAAQA,IAGnDf,EAAMpwB,IAAM2wB,EAAW,EACvBP,EAAMqI,OAASn4B,GACR,KACT,CAGA,SAASq4B,EAAavI,EAAOG,GAC3B,IAAIC,EACAxwB,EACAw4B,EACAI,EACAxH,EACA9wB,EAAM8vB,EAAMqI,OACZhrB,EAAQ2iB,EAAMpwB,IAGlB,GAAIyN,EAAQ,EAAInN,EAAO,OAAO,EAE9B,IAAK8vB,EAAMpiB,IAAIqqB,YAAcjI,EAAMpiB,IAAIqqB,UAAUC,KAAQ,OAAO,EAChE,GAAoC,KAAhClI,EAAM1yB,IAAI0C,WAAWqN,GAA0B,OAAO,EAC1D,GAAwC,KAApC2iB,EAAM1yB,IAAI0C,WAAWqN,EAAQ,GAAsB,OAAO,EAE9D,IAAKzN,EAAMyN,EAAQ,EAAGzN,EAAMM,EAAKN,IAAO,CACtC,GAAkC,KAA9BowB,EAAM1yB,IAAI0C,WAAWJ,GAAiB,OAAO,EACjD,GAAkC,KAA9BowB,EAAM1yB,IAAI0C,WAAWJ,GAAiB,OAAO,EACjD,GAAkC,KAA9BowB,EAAM1yB,IAAI0C,WAAWJ,GACvB,KAEJ,CAEA,OAAIA,IAAQyN,EAAQ,MAChBzN,GAAOM,KACXN,IAEAwwB,EAAQJ,EAAM1yB,IAAI7G,MAAM4W,EAAQ,EAAGzN,EAAM,GACY,qBAA1CowB,EAAMpiB,IAAIqqB,UAAUC,KAAK,IAAM9H,KAErCD,IACEH,EAAMpiB,IAAIqqB,UAAU7P,OAAQ4H,EAAMpiB,IAAIqqB,UAAU7P,KAAO,IAExD4H,EAAMpiB,IAAIqqB,UAAUC,KAAK,IAAM9H,GAAS,GAC1CgI,EAAapI,EAAMpiB,IAAIqqB,UAAU7P,KAAK3yB,OACtCu6B,EAAMpiB,IAAIqqB,UAAU7P,KAAKgQ,GAAc,CAAEhI,MAAOA,EAAOqI,MAAO,GAC9DzI,EAAMpiB,IAAIqqB,UAAUC,KAAK,IAAM9H,GAASgI,GAExCA,EAAapI,EAAMpiB,IAAIqqB,UAAUC,KAAK,IAAM9H,GAG9CoI,EAAgBxI,EAAMpiB,IAAIqqB,UAAU7P,KAAKgQ,GAAYK,MACrDzI,EAAMpiB,IAAIqqB,UAAU7P,KAAKgQ,GAAYK,QAErCzH,EAAahB,EAAMzxB,KAAK,eAAgB,GAAI,GAC5CyyB,EAAMmG,KAAO,CAAEz2B,GAAI03B,EAAYhB,MAAOoB,IAGxCxI,EAAMpwB,IAAMA,EACZowB,EAAMqI,OAASn4B,GACR,IACT,CAGA,SAASw4B,EAAc1I,GACrB,IAAI/yB,EAAG8C,EAAG+wB,EAAGvT,EAAGob,EAAevQ,EAAM4I,EAAOD,EAAQ6H,EAASC,EACzDC,GAAY,EACZC,EAAY,CAAC,EAEjB,GAAK/I,EAAMpiB,IAAIqqB,YAEfjI,EAAMe,OAASf,EAAMe,OAAOnE,QAAO,SAASoM,GAC1C,MAAiB,4BAAbA,EAAIhhC,MACN8gC,GAAY,EACZF,EAAU,GACVC,EAAeG,EAAI7B,KAAK/G,OACjB,GAEQ,6BAAb4I,EAAIhhC,MACN8gC,GAAY,EAEZC,EAAU,IAAMF,GAAgBD,GACzB,IAELE,GAAaF,EAAQr6B,KAAKy6B,IACtBF,EACV,IAEK9I,EAAMpiB,IAAIqqB,UAAU7P,MAAzB,CAMA,IALAA,EAAO4H,EAAMpiB,IAAIqqB,UAAU7P,KAE3B4I,EAAQ,IAAIhB,EAAM3oB,MAAM,sBAAuB,GAAI,GACnD2oB,EAAMe,OAAOxyB,KAAKyyB,GAEb/zB,EAAI,EAAG8C,EAAIqoB,EAAK3yB,OAAQwH,EAAI8C,EAAG9C,IAAK,CAiCvC,IAhCA+zB,EAAa,IAAIhB,EAAM3oB,MAAM,gBAAiB,GAAI,GAClD2pB,EAAMmG,KAAO,CAAEz2B,GAAIzD,GACnB+yB,EAAMe,OAAOxyB,KAAKyyB,GAEd5I,EAAKnrB,GAAG8zB,QACVA,EAAS,GAETC,EAAiB,IAAIhB,EAAM3oB,MAAM,iBAAkB,IAAK,GACxD2pB,EAAMS,OAAW,EACjBV,EAAOxyB,KAAKyyB,GAEZA,EAAiB,IAAIhB,EAAM3oB,MAAM,SAAU,GAAI,GAC/C2pB,EAAMve,SAAW2V,EAAKnrB,GAAG8zB,OACzBC,EAAMQ,QAAW,GACjBT,EAAOxyB,KAAKyyB,GAEZA,EAAiB,IAAIhB,EAAM3oB,MAAM,kBAAmB,KAAM,GAC1D2pB,EAAMS,OAAW,EACjBV,EAAOxyB,KAAKyyB,IAEH5I,EAAKnrB,GAAGmzB,QACjBW,EAASgI,EAAU,IAAM3Q,EAAKnrB,GAAGmzB,QAGnCJ,EAAMe,OAASf,EAAMe,OAAOlwB,OAAOkwB,GAEjC4H,EADiD,oBAA/C3I,EAAMe,OAAOf,EAAMe,OAAOt7B,OAAS,GAAGuC,KACxBg4B,EAAMe,OAAO7iB,MAEb,KAGlBqP,EAAI6K,EAAKnrB,GAAGw7B,MAAQ,EAAIrQ,EAAKnrB,GAAGw7B,MAAQ,EACnC3H,EAAI,EAAGA,EAAIvT,EAAGuT,IACjBE,EAAa,IAAIhB,EAAM3oB,MAAM,kBAAmB,GAAI,GACpD2pB,EAAMmG,KAAO,CAAEz2B,GAAIzD,EAAGm6B,MAAOtG,GAC7Bd,EAAMe,OAAOxyB,KAAKyyB,GAGhB2H,GACF3I,EAAMe,OAAOxyB,KAAKo6B,GAGpB3H,EAAQ,IAAIhB,EAAM3oB,MAAM,iBAAkB,IAAK,GAC/C2oB,EAAMe,OAAOxyB,KAAKyyB,EACpB,CAEAA,EAAQ,IAAIhB,EAAM3oB,MAAM,uBAAwB,IAAK,GACrD2oB,EAAMe,OAAOxyB,KAAKyyB,EAtDuB,CAuD3C,CAjRAzB,EAAGgF,SAASC,MAAM+D,aAAwBvB,EAC1CzH,EAAGgF,SAASC,MAAMyE,oBAAwB5B,EAC1C9H,EAAGgF,SAASC,MAAM0E,qBAAwB3B,EAC1ChI,EAAGgF,SAASC,MAAM2E,cAAwB3B,EAC1CjI,EAAGgF,SAASC,MAAM4E,eAAwB3B,EAC1ClI,EAAGgF,SAASC,MAAM6E,gBAAwB3B,EA8Q1CnI,EAAGkC,MAAMC,MAAMC,OAAO,YAAa,eAAgBkG,EAAc,CAAEjG,IAAK,CAAE,YAAa,eACvFrC,EAAG+I,OAAO5G,MAAMG,MAAM,QAAS,kBAAmBsG,GAClD5I,EAAG+I,OAAO5G,MAAMG,MAAM,kBAAmB,eAAgB0G,GACzDhJ,EAAG74B,KAAKg7B,MAAMG,MAAM,SAAU,gBAAiB6G,EACjD,C,iCClUAhkC,EAAOC,QAAU,SAAoB46B,GAGnC,SAASqE,EAAS5D,EAAOG,GACvB,IAAIlzB,EAAGq8B,EAAStI,EAAOjD,EAAKnG,EACxBva,EAAQ2iB,EAAMpwB,IACdoyB,EAAShC,EAAM1yB,IAAI0C,WAAWqN,GAElC,GAAI8iB,EAAU,OAAO,EAErB,GAAe,KAAX6B,EAA0B,OAAO,EAMrC,GAJAsH,EAAUtJ,EAAMuJ,WAAWvJ,EAAMpwB,KAAK,GACtCmuB,EAAMuL,EAAQ7jC,OACdmyB,EAAK9nB,OAAO05B,aAAaxH,GAErBjE,EAAM,EAAK,OAAO,EAQtB,IANIA,EAAM,IACRiD,EAAgBhB,EAAMzxB,KAAK,OAAQ,GAAI,GACvCyyB,EAAMQ,QAAU5J,EAChBmG,KAGG9wB,EAAI,EAAGA,EAAI8wB,EAAK9wB,GAAK,EACxB+zB,EAAgBhB,EAAMzxB,KAAK,OAAQ,GAAI,GACvCyyB,EAAMQ,QAAU5J,EAAKA,EAErBoI,EAAM1K,WAAW/mB,KAAK,CACpByzB,OAAQA,EACRyH,KAAQx8B,EACR+zB,MAAQhB,EAAMe,OAAOt7B,OAAS,EAC9B08B,MAAQnC,EAAMmC,MACdvoB,KAAS,EACTpM,KAAQ87B,EAAQI,SAChBh8B,MAAQ47B,EAAQK,YAMpB,OAFA3J,EAAMpwB,KAAO05B,EAAQ7jC,QAEd,CACT,CAKA,SAASmkC,EAAY5J,GACnB,IAAI/yB,EAAG6zB,EACH+I,EACAC,EACA9I,EACA+I,EAAc,GACdzU,EAAa0K,EAAM1K,WACnBplB,EAAM8vB,EAAM1K,WAAW7vB,OAE3B,IAAKwH,EAAI,EAAGA,EAAIiD,EAAKjD,IACnB48B,EAAavU,EAAWroB,GAEE,KAAtB48B,EAAW7H,SAIS,IAApB6H,EAAWjwB,MAIfkwB,EAAWxU,EAAWuU,EAAWjwB,KAEjConB,EAAgBhB,EAAMe,OAAO8I,EAAW7I,OACxCA,EAAMh5B,KAAU,WAChBg5B,EAAM/xB,IAAU,MAChB+xB,EAAM+F,QAAU,EAChB/F,EAAMxM,OAAU,KAChBwM,EAAMQ,QAAU,GAEhBR,EAAgBhB,EAAMe,OAAO+I,EAAS9I,OACtCA,EAAMh5B,KAAU,YAChBg5B,EAAM/xB,IAAU,MAChB+xB,EAAM+F,SAAW,EACjB/F,EAAMxM,OAAU,KAChBwM,EAAMQ,QAAU,GAE8B,SAA1CxB,EAAMe,OAAO+I,EAAS9I,MAAQ,GAAGh5B,MACY,MAA7Cg4B,EAAMe,OAAO+I,EAAS9I,MAAQ,GAAGQ,SAEnCuI,EAAYx7B,KAAKu7B,EAAS9I,MAAQ,IAUtC,MAAO+I,EAAYtkC,OAAQ,CACzBwH,EAAI88B,EAAY7rB,MAChB4iB,EAAI7zB,EAAI,EAER,MAAO6zB,EAAId,EAAMe,OAAOt7B,QAAmC,cAAzBu6B,EAAMe,OAAOD,GAAG94B,KAChD84B,IAGFA,IAEI7zB,IAAM6zB,IACRE,EAAQhB,EAAMe,OAAOD,GACrBd,EAAMe,OAAOD,GAAKd,EAAMe,OAAO9zB,GAC/B+yB,EAAMe,OAAO9zB,GAAK+zB,EAEtB,CACF,CAEAzB,EAAG+I,OAAO5G,MAAMC,OAAO,WAAY,MAAOiC,GAC1CrE,EAAG+I,OAAO0B,OAAOrI,OAAO,WAAY,MAAOiI,EAC7C,C,qCC3GA,IAAI7jB,EAAQ,EAAQ,OAIpB,SAASkkB,EAAajK,EAAOpwB,GACzB,IAAIs6B,EAAUC,EACVj6B,EAAM8vB,EAAMqI,OACZqB,GAAW,EACXC,GAAY,EAehB,OAbAO,EAAWt6B,EAAM,EAAIowB,EAAM1yB,IAAI0C,WAAWJ,EAAM,IAAM,EACtDu6B,EAAWv6B,EAAM,GAAKM,EAAM8vB,EAAM1yB,IAAI0C,WAAWJ,EAAM,IAAM,GAI5C,KAAbs6B,GAA2C,IAAbA,GACzBC,GAAY,IAAiBA,GAAY,MAC9CR,GAAY,GAEC,KAAbQ,GAA2C,IAAbA,IAC9BT,GAAW,GAGR,CACHA,SAAUA,EACVC,UAAWA,EAEnB,CAEA,SAASS,EAAYpK,EAAOG,GACxB,IAAI9iB,EAAOxF,EAAOmpB,EAAO3hB,EAAKzP,EAE9B,GAA6B,MAAzBowB,EAAM1yB,IAAI0yB,EAAMpwB,KAAgB,OAAO,EAG3C,GADAyP,EAAM4qB,EAAajK,EAAOA,EAAMpwB,MAC3ByP,EAAIqqB,SAGL,OAFKvJ,IAAUH,EAAMqK,SAAW,KAChCrK,EAAMpwB,KAAO,GACN,EAOXyN,EAAQ2iB,EAAMpwB,IAAM,EACpBiI,EAAQwF,EACR,OAAqD,KAA5CxF,EAAQmoB,EAAM1yB,IAAI8G,QAAQ,IAAKyD,IAAgB,CAGpDjI,EAAMiI,EAAQ,EACd,MAA0B,OAAnBmoB,EAAM1yB,IAAIsC,GAAiBA,GAAO,EAGzC,IAAOiI,EAAQjI,GAAO,GAAM,EAAM,MAClCiI,GAAS,CACb,CAGA,OAAe,IAAXA,GACKsoB,IAAUH,EAAMqK,SAAW,KAChCrK,EAAMpwB,IAAMyN,GACL,GAIPxF,EAAQwF,IAAU,GACb8iB,IAAUH,EAAMqK,SAAW,MAChCrK,EAAMpwB,IAAMyN,EAAQ,GACb,IAIXgC,EAAM4qB,EAAajK,EAAOnoB,GACrBwH,EAAIsqB,WAMJxJ,IACDa,EAAgBhB,EAAMzxB,KAAK,cAAe,OAAQ,GAClDyyB,EAAMxM,OAAU,IAChBwM,EAAMQ,QAAUxB,EAAM1yB,IAAI7G,MAAM4W,EAAOxF,IAG3CmoB,EAAMpwB,IAAMiI,EAAQ,GACb,IAZEsoB,IAAUH,EAAMqK,SAAW,KAChCrK,EAAMpwB,IAAMyN,GACL,GAWf,CAEA,SAASitB,EAAWtK,EAAO3iB,EAAOzD,EAAKumB,GACnC,IAAIoK,EAAWC,EAAU9/B,EAAM+/B,EAAwBzJ,EAAf0J,GAAQ,EAC5C96B,EAAMowB,EAAMQ,OAAOnjB,GAAS2iB,EAAMS,OAAOpjB,GACzCnN,EAAM8vB,EAAMU,OAAOrjB,GAEvB,GAAGzN,EAAM,EAAIM,EAAM,OAAO,EAC1B,GAAgC,OAA7B8vB,EAAM1yB,IAAI7G,MAAMmJ,EAAIA,EAAI,GAAY,OAAO,EAK9C,GAHAA,GAAO,EACP26B,EAAYvK,EAAM1yB,IAAI7G,MAAMmJ,EAAIM,GAE7BiwB,EAAS,OAAO,EAOnB,IANgC,OAA7BoK,EAAU5J,OAAOl6B,OAAO,KAEvB8jC,EAAYA,EAAU5J,OAAOl6B,MAAM,GAAI,GACvCikC,GAAQ,GAGRhgC,EAAO2S,GAAQqtB,GAAQ,CAIvB,GAFAhgC,IAEGA,GAAQkP,EAAM,MAKjB,GAHAhK,EAAMowB,EAAMQ,OAAO91B,GAAMs1B,EAAMS,OAAO/1B,GACtCwF,EAAM8vB,EAAMU,OAAOh2B,GAEhBkF,EAAMM,GAAO8vB,EAAMS,OAAO/1B,GAAQs1B,EAAMwD,UAEvC,MAG2C,OAA5CxD,EAAM1yB,IAAI7G,MAAMmJ,EAAIM,GAAKywB,OAAOl6B,OAAO,KACtCgkC,EAAUzK,EAAM1yB,IAAI7G,MAAM,EAAEyJ,GAAKy6B,YAAY,MAC7CH,EAAWxK,EAAM1yB,IAAI7G,MAAMmJ,EAAI66B,GAC/BC,GAAQ,EAGhB,CAWA,OATA1K,EAAMtS,KAAOhjB,EAAO,EAEpBs2B,EAAQhB,EAAMzxB,KAAK,aAAc,OAAQ,GACzCyyB,EAAMS,OAAQ,EACdT,EAAMQ,SAAW+I,GAAaA,EAAU5J,OAAS4J,EAAY,KAAO,IAClEvK,EAAM0D,SAASrmB,EAAQ,EAAG3S,EAAMs1B,EAAMS,OAAOpjB,IAAQ,IACpDmtB,GAAYA,EAAS7J,OAAS6J,EAAW,IAC5CxJ,EAAMzQ,IAAM,CAAElT,EAAO2iB,EAAMtS,MAC3BsT,EAAMxM,OAAS,MACR,CACX,CAEA9vB,EAAOC,QAAU,SAAqB46B,EAAIppB,GAGtCA,EAAUA,GAAW,CAAC,EAGtB,IAAIy0B,EAAc,SAASC,GACvB10B,EAAQyJ,aAAc,EACtB,IACI,OAAOmG,EAAMlP,eAAeg0B,EAAO10B,EAKvC,CAHA,MAAMuD,GAEF,OADGvD,EAAQ8E,cAAetE,QAAQm0B,IAAIpxB,GAC/BmxB,CACX,CACJ,EAEIE,EAAiB,SAAShK,EAAQxC,GAClC,OAAOqM,EAAY7J,EAAOxC,GAAKiD,QACnC,EAEIwJ,EAAa,SAASH,GACtB10B,EAAQyJ,aAAc,EACtB,IACI,MAAO,MAAQmG,EAAMlP,eAAeg0B,EAAO10B,GAAW,MAK1D,CAHA,MAAMuD,GAEF,OADGvD,EAAQ8E,cAAetE,QAAQm0B,IAAIpxB,GAC/BmxB,CACX,CACJ,EAEII,EAAgB,SAASlK,EAAQxC,GACjC,OAAQyM,EAAWjK,EAAOxC,GAAKiD,SAAW,IAC9C,EAEAjC,EAAG+I,OAAO5G,MAAMG,MAAM,SAAU,cAAeuI,GAC/C7K,EAAGkC,MAAMC,MAAMG,MAAM,aAAc,aAAcyI,EAAY,CACzD1I,IAAK,CAAE,YAAa,YAAa,aAAc,UAEnDrC,EAAGgF,SAASC,MAAM4F,YAAcW,EAChCxL,EAAGgF,SAASC,MAAM8F,WAAaW,CACnC,C,iCCjMAvmC,EAAOC,QAAU,SAAoB46B,GAGnC,SAASqE,EAAS5D,EAAOG,GACvB,IAAIlzB,EAAGq8B,EAAStI,EAAOjD,EAAKnG,EACxBva,EAAQ2iB,EAAMpwB,IACdoyB,EAAShC,EAAM1yB,IAAI0C,WAAWqN,GAElC,GAAI8iB,EAAU,OAAO,EAErB,GAAe,KAAX6B,EAA0B,OAAO,EAMrC,GAJAsH,EAAUtJ,EAAMuJ,WAAWvJ,EAAMpwB,KAAK,GACtCmuB,EAAMuL,EAAQ7jC,OACdmyB,EAAK9nB,OAAO05B,aAAaxH,GAErBjE,EAAM,EAAK,OAAO,EAQtB,IANIA,EAAM,IACRiD,EAAgBhB,EAAMzxB,KAAK,OAAQ,GAAI,GACvCyyB,EAAMQ,QAAU5J,EAChBmG,KAGG9wB,EAAI,EAAGA,EAAI8wB,EAAK9wB,GAAK,EACxB+zB,EAAgBhB,EAAMzxB,KAAK,OAAQ,GAAI,GACvCyyB,EAAMQ,QAAU5J,EAAKA,EAErBoI,EAAM1K,WAAW/mB,KAAK,CACpByzB,OAAQA,EACRyH,KAAQx8B,EACR+zB,MAAQhB,EAAMe,OAAOt7B,OAAS,EAC9B08B,MAAQnC,EAAMmC,MACdvoB,KAAS,EACTpM,KAAQ87B,EAAQI,SAChBh8B,MAAQ47B,EAAQK,YAMpB,OAFA3J,EAAMpwB,KAAO05B,EAAQ7jC,QAEd,CACT,CAKA,SAASmkC,EAAY5J,GACnB,IAAI/yB,EAAG6zB,EACH+I,EACAC,EACA9I,EACA+I,EAAc,GACdzU,EAAa0K,EAAM1K,WACnBplB,EAAM8vB,EAAM1K,WAAW7vB,OAE3B,IAAKwH,EAAI,EAAGA,EAAIiD,EAAKjD,IACnB48B,EAAavU,EAAWroB,GAEE,KAAtB48B,EAAW7H,SAIS,IAApB6H,EAAWjwB,MAIfkwB,EAAWxU,EAAWuU,EAAWjwB,KAEjConB,EAAgBhB,EAAMe,OAAO8I,EAAW7I,OACxCA,EAAMh5B,KAAU,YAChBg5B,EAAM/xB,IAAU,OAChB+xB,EAAM+F,QAAU,EAChB/F,EAAMxM,OAAU,KAChBwM,EAAMQ,QAAU,GAEhBR,EAAgBhB,EAAMe,OAAO+I,EAAS9I,OACtCA,EAAMh5B,KAAU,aAChBg5B,EAAM/xB,IAAU,OAChB+xB,EAAM+F,SAAW,EACjB/F,EAAMxM,OAAU,KAChBwM,EAAMQ,QAAU,GAE8B,SAA1CxB,EAAMe,OAAO+I,EAAS9I,MAAQ,GAAGh5B,MACY,MAA7Cg4B,EAAMe,OAAO+I,EAAS9I,MAAQ,GAAGQ,SAEnCuI,EAAYx7B,KAAKu7B,EAAS9I,MAAQ,IAUtC,MAAO+I,EAAYtkC,OAAQ,CACzBwH,EAAI88B,EAAY7rB,MAChB4iB,EAAI7zB,EAAI,EAER,MAAO6zB,EAAId,EAAMe,OAAOt7B,QAAmC,eAAzBu6B,EAAMe,OAAOD,GAAG94B,KAChD84B,IAGFA,IAEI7zB,IAAM6zB,IACRE,EAAQhB,EAAMe,OAAOD,GACrBd,EAAMe,OAAOD,GAAKd,EAAMe,OAAO9zB,GAC/B+yB,EAAMe,OAAO9zB,GAAK+zB,EAEtB,CACF,CAEAzB,EAAG+I,OAAO5G,MAAMC,OAAO,WAAY,OAAQiC,GAC3CrE,EAAG+I,OAAO0B,OAAOrI,OAAO,WAAY,OAAQiI,EAC9C,C,iCClHA,IAAIsB,EAAc,8CAGlB,SAASxuB,EAAUsjB,EAAOG,GACxB,IAAIuK,EACAlJ,EACAR,EACA9wB,EAAM8vB,EAAMqI,OACZhrB,EAAQ2iB,EAAMpwB,IAElB,GAAoC,MAAhCowB,EAAM1yB,IAAI0C,WAAWqN,GAA0B,OAAO,EAC1D,GAAI8iB,EAAU,OAAO,EACrB,GAAI9iB,EAAQ,GAAKnN,EAAO,OAAO,EAE/B8vB,EAAMpwB,IAAMyN,EAAQ,EAEpB,MAAO2iB,EAAMpwB,IAAMM,EAAK,CACtB,GAAwC,MAApC8vB,EAAM1yB,IAAI0C,WAAWgwB,EAAMpwB,KAAsB,CACnD86B,GAAQ,EACR,KACF,CAEA1K,EAAMT,GAAG+I,OAAO6C,UAAUnL,EAC5B,CAEA,OAAK0K,GAASrtB,EAAQ,IAAM2iB,EAAMpwB,KAKlC4xB,EAAUxB,EAAM1yB,IAAI7G,MAAM4W,EAAQ,EAAG2iB,EAAMpwB,KAGvC4xB,EAAQ3pB,MAAM,uBAChBmoB,EAAMpwB,IAAMyN,GACL,IAIT2iB,EAAMqI,OAASrI,EAAMpwB,IACrBowB,EAAMpwB,IAAMyN,EAAQ,EAGpB2jB,EAAgBhB,EAAMzxB,KAAK,WAAY,MAAO,GAC9CyyB,EAAMxM,OAAU,IAEhBwM,EAAgBhB,EAAMzxB,KAAK,OAAQ,GAAI,GACvCyyB,EAAMQ,QAAUA,EAAQhgB,QAAQ0pB,EAAa,MAE7ClK,EAAgBhB,EAAMzxB,KAAK,YAAa,OAAQ,GAChDyyB,EAAMxM,OAAU,IAEhBwL,EAAMpwB,IAAMowB,EAAMqI,OAAS,EAC3BrI,EAAMqI,OAASn4B,GACR,KA5BL8vB,EAAMpwB,IAAMyN,GACL,EA4BX,CAGA3Y,EAAOC,QAAU,SAAoB46B,GACnCA,EAAG+I,OAAO5G,MAAMG,MAAM,WAAY,MAAOnlB,EAC3C,C,iCC5DA,IAAIwuB,EAAc,8CAElB,SAASzuB,EAAYujB,EAAOG,GAC1B,IAAIuK,EACAlJ,EACAR,EACA9wB,EAAM8vB,EAAMqI,OACZhrB,EAAQ2iB,EAAMpwB,IAElB,GAAoC,KAAhCowB,EAAM1yB,IAAI0C,WAAWqN,GAA0B,OAAO,EAC1D,GAAI8iB,EAAU,OAAO,EACrB,GAAI9iB,EAAQ,GAAKnN,EAAO,OAAO,EAE/B8vB,EAAMpwB,IAAMyN,EAAQ,EAEpB,MAAO2iB,EAAMpwB,IAAMM,EAAK,CACtB,GAAwC,KAApC8vB,EAAM1yB,IAAI0C,WAAWgwB,EAAMpwB,KAAsB,CACnD86B,GAAQ,EACR,KACF,CAEA1K,EAAMT,GAAG+I,OAAO6C,UAAUnL,EAC5B,CAEA,OAAK0K,GAASrtB,EAAQ,IAAM2iB,EAAMpwB,KAKlC4xB,EAAUxB,EAAM1yB,IAAI7G,MAAM4W,EAAQ,EAAG2iB,EAAMpwB,KAGvC4xB,EAAQ3pB,MAAM,uBAChBmoB,EAAMpwB,IAAMyN,GACL,IAIT2iB,EAAMqI,OAASrI,EAAMpwB,IACrBowB,EAAMpwB,IAAMyN,EAAQ,EAGpB2jB,EAAgBhB,EAAMzxB,KAAK,WAAY,MAAO,GAC9CyyB,EAAMxM,OAAU,IAEhBwM,EAAgBhB,EAAMzxB,KAAK,OAAQ,GAAI,GACvCyyB,EAAMQ,QAAUA,EAAQhgB,QAAQ0pB,EAAa,MAE7ClK,EAAgBhB,EAAMzxB,KAAK,YAAa,OAAQ,GAChDyyB,EAAMxM,OAAU,IAEhBwL,EAAMpwB,IAAMowB,EAAMqI,OAAS,EAC3BrI,EAAMqI,OAASn4B,GACR,KA5BL8vB,EAAMpwB,IAAMyN,GACL,EA4BX,CAGA3Y,EAAOC,QAAU,SAAoB46B,GACnCA,EAAG+I,OAAO5G,MAAMG,MAAM,WAAY,MAAOplB,EAC3C,C,oBC3DA,IAAI2uB,GAAoB,EACpBC,GAAkB,EAClBC,GAAgB,EAqBpB,SAASC,EAAQvK,EAAO/4B,EAAM1C,GAC7B,IAAIG,EAAQs7B,EAAMwK,UAAUvjC,GACxB4oB,EAAO,CAAC5oB,EAAM1C,GAEdG,EAAQ,EACXs7B,EAAMyK,SAAS5a,GAEfmQ,EAAMrsB,MAAMjP,GAASmrB,CAEvB,CAEA,SAAS6a,EAAY3K,EAAQr7B,GAE5B,IADA,IAAIimC,EAAc5K,EAAOr7B,GAAOy8B,MAAQ,EAC/Bl1B,EAAIvH,EAAQ,EAAGuH,GAAK,EAAGA,IAC/B,GAAI8zB,EAAO9zB,GAAGk1B,QAAUwJ,EACvB,OAAO1+B,EAGT,OAAQ,CACT,CAEA,SAAS2+B,EAAW7K,EAAQr7B,GAC3B,OAAOmmC,EAAS9K,EAAOr7B,KAChBomC,EAAY/K,EAAOr7B,EAAQ,KAC3BqmC,EAAWhL,EAAOr7B,EAAQ,KAC1BsmC,EAAuBjL,EAAOr7B,GACtC,CAEA,SAASumC,EAAQjL,EAAOkL,GAKvB,GAJAlL,EAAMve,SAASoM,QAAQsd,EAAanL,EAAOkL,IAC3ClL,EAAMve,SAAS,GAAG+e,QAAUR,EAAMve,SAAS,GAAG+e,QAAQ/6B,MAAM,GAC5Du6B,EAAMQ,QAAUR,EAAMQ,QAAQ/6B,MAAM,GAEhC4kC,EACH,GAAIC,EAAe,CAClBtK,EAAMve,SAASvE,MAGf,IAAIxN,EAAK,aAAehH,KAAK0G,KAAqB,IAAhB1G,KAAKkH,SAA4B,KACnEowB,EAAMve,SAAS,GAAG+e,QAAUR,EAAMve,SAAS,GAAG+e,QAAQ/6B,MAAM,GAAI,GAAK,QAAUiK,EAAK,KACpFswB,EAAMve,SAASlU,KAAK69B,EAAWpL,EAAMQ,QAAS9wB,EAAIw7B,GACnD,MACClL,EAAMve,SAASoM,QAAQwd,EAAWH,IAClClL,EAAMve,SAASlU,KAAK+9B,EAASJ,GAGhC,CAEA,SAASC,EAAanL,EAAOkL,GAC5B,IAAIK,EAAW,IAAIL,EAAiB,cAAe,GAAI,GACnDM,EAAepB,EAAoB,gBAAkB,GAMzD,OALsC,IAAlCpK,EAAMQ,QAAQptB,QAAQ,QACzBm4B,EAAS/K,QAAU,yCAA2CgL,EAAe,mBACjC,IAAlCxL,EAAMQ,QAAQptB,QAAQ,SAAmD,IAAlC4sB,EAAMQ,QAAQptB,QAAQ,UACvEm4B,EAAS/K,QAAU,oDAAsDgL,EAAe,oBAElFD,CACR,CAIA,SAASF,EAAWH,GACnB,IAAIlL,EAAQ,IAAIkL,EAAiB,cAAe,GAAI,GAEpD,OADAlL,EAAMQ,QAAU,UACTR,CACR,CAEA,SAASsL,EAASJ,GACjB,IAAIlL,EAAQ,IAAIkL,EAAiB,cAAe,GAAI,GAEpD,OADAlL,EAAMQ,QAAU,WACTR,CACR,CAEA,SAASoL,EAAW5K,EAAS9wB,EAAIw7B,GAChC,IAAIlL,EAAQ,IAAIkL,EAAiB,cAAe,GAAI,GAGpD,OAFAlL,EAAMQ,QAAU,4CAA8C9wB,EAAK,KAAO8wB,EAAU,WACpFR,EAAMrsB,MAAQ,CAAC,CAAC83B,IAAK/7B,IACdswB,CACR,CAEA,SAAS6K,EAAS7K,GAAS,MAAsB,WAAfA,EAAMh5B,IAAmB,CAC3D,SAAS8jC,EAAY9K,GAAS,MAAsB,mBAAfA,EAAMh5B,IAA2B,CACtE,SAAS+jC,EAAW/K,GAAS,MAAsB,mBAAfA,EAAMh5B,IAA2B,CAErE,SAASgkC,EAAuBhL,GAE/B,OAAyC,IAAlCA,EAAMQ,QAAQptB,QAAQ,SAAmD,IAAlC4sB,EAAMQ,QAAQptB,QAAQ,SAAmD,IAAlC4sB,EAAMQ,QAAQptB,QAAQ,OAC5G,CA1GA1P,EAAOC,QAAU,SAAS46B,EAAIppB,GACzBA,IACHi1B,GAAqBj1B,EAAQkuB,QAC7BgH,IAAoBl1B,EAAQiqB,MAC5BkL,IAAkBn1B,EAAQu2B,YAG3BnN,EAAG74B,KAAKg7B,MAAMG,MAAM,SAAU,qBAAqB,SAAS7B,GAE3D,IADA,IAAIe,EAASf,EAAMe,OACV9zB,EAAI,EAAGA,EAAI8zB,EAAOt7B,OAAQwH,IAC9B2+B,EAAW7K,EAAQ9zB,KACtBg/B,EAAQlL,EAAO9zB,GAAI+yB,EAAM3oB,OACzBk0B,EAAQxK,EAAO9zB,EAAE,GAAI,QAAS,kBAAqBm+B,EAAiC,GAAb,aACvEG,EAAQxK,EAAO2K,EAAY3K,EAAQ9zB,EAAE,IAAK,QAAS,sBAGtD,GACD,C,kCCxBA5G,OAAOe,eAAezC,EAAS,aAAc,CAC3CY,OAAO,IAETZ,EAAA,WAAkBgoC,EAElB,IAAIz5B,EAAS05B,EAAuB,EAAQ,QAExCC,EAASD,EAAuB,EAAQ,QAExCE,EAASF,EAAuB,EAAQ,QAE5C,SAASA,EAAuB16B,GAAO,OAAOA,GAAOA,EAAItN,WAAasN,EAAM,CAAE66B,QAAS76B,EAAO,CAE9F,SAAS86B,EAAQ96B,GAAwT,OAAtO86B,EAArD,oBAAXl8B,QAAoD,kBAApBA,OAAOm8B,SAAmC,SAAiB/6B,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXpB,QAAyBoB,EAAI9D,cAAgB0C,QAAUoB,IAAQpB,OAAOnG,UAAY,gBAAkBuH,CAAK,EAAY86B,EAAQ96B,EAAM,CAE9V,SAASg7B,EAAmB1O,GAAO,OAAO2O,EAAmB3O,IAAQ4O,EAAiB5O,IAAQ6O,GAAsB,CAEpH,SAASA,IAAuB,MAAM,IAAIvoC,UAAU,kDAAoD,CAExG,SAASsoC,EAAiBE,GAAQ,GAAIx8B,OAAOm8B,YAAY5mC,OAAOinC,IAAkD,uBAAzCjnC,OAAOsE,UAAUpE,SAASC,KAAK8mC,GAAgC,OAAOj8B,MAAMk8B,KAAKD,EAAO,CAEjK,SAASH,EAAmB3O,GAAO,GAAIntB,MAAMgtB,QAAQG,GAAM,CAAE,IAAK,IAAIvxB,EAAI,EAAGugC,EAAO,IAAIn8B,MAAMmtB,EAAI/4B,QAASwH,EAAIuxB,EAAI/4B,OAAQwH,IAAOugC,EAAKvgC,GAAKuxB,EAAIvxB,GAAM,OAAOugC,CAAM,CAAE,CAErK,SAASC,EAAcxkC,GAAU,IAAK,IAAIgE,EAAI,EAAGA,EAAInH,UAAUL,OAAQwH,IAAK,CAAE,IAAI/E,EAAyB,MAAhBpC,UAAUmH,GAAanH,UAAUmH,GAAK,CAAC,EAAOygC,EAAUrnC,OAAO8E,KAAKjD,GAAqD,oBAAjC7B,OAAOwO,wBAAwC64B,EAAUA,EAAQ78B,OAAOxK,OAAOwO,sBAAsB3M,GAAQ00B,QAAO,SAAU+Q,GAAO,OAAOtnC,OAAOuO,yBAAyB1M,EAAQylC,GAAK9+B,UAAY,MAAO6+B,EAAQr5B,SAAQ,SAAUrO,GAAO4nC,EAAgB3kC,EAAQjD,EAAKkC,EAAOlC,GAAO,GAAI,CAAE,OAAOiD,CAAQ,CAEhe,SAAS2kC,EAAgB17B,EAAKlM,EAAKT,GAAiK,OAApJS,KAAOkM,EAAO7L,OAAOe,eAAe8K,EAAKlM,EAAK,CAAET,MAAOA,EAAOsJ,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBmD,EAAIlM,GAAOT,EAAgB2M,CAAK,CAEhN,IAAI27B,EAAM,SACNC,EAAS,cAETC,EAA2B,WAAqC,EAEhEC,EAAa,CAAC,EACdC,EAAU,GAEV7b,EAAS,SAAgB8b,EAAQC,GACnC,OAAO,IAAI98B,MAAM88B,EAAM,GAAG9Z,KAAK6Z,EACjC,EAEIE,EAAW,SAAkBF,EAAQF,EAAYK,GACnD,IAAIroC,EAAMqoC,EAAUH,GAOpB,OALKF,EAAWhoC,KACdgoC,EAAWhoC,GAAO,GAGpBgoC,EAAWhoC,KACJA,GAAOgoC,EAAWhoC,GAAO,EAAI,IAAI6K,OAAOm9B,EAAWhoC,IAAQ,GACpE,EAEIsoC,EAAQ,WACV,OAAOb,EAAc,CAAC,EAAG,IAAIX,EAAOC,QAAQ,OAAQ,GAAI,GAAI,CAC1DvL,QAAS,KAEb,EAEI+M,EAAyB,SAAgCp4B,GAC3D,OAAIA,EAAQq4B,0BACH,CAACf,EAAc,CAAC,EAAG,IAAIX,EAAOC,QAAQ,YAAa,OAAQ,GAAI,CACpEp4B,MAAO,CAAC,CAAC,QAASwB,EAAQq4B,8BACxBf,EAAc,CAAC,EAAG,IAAIX,EAAOC,QAAQ,OAAQ,GAAI,GAAI,CACvDvL,QAASrrB,EAAQs4B,mBACf,IAAI3B,EAAOC,QAAQ,aAAc,QAAS,IAEvC,CAACU,EAAc,CAAC,EAAG,IAAIX,EAAOC,QAAQ,OAAQ,GAAI,GAAI,CAC3DvL,QAASrrB,EAAQs4B,mBAGvB,EAEIC,EAAmB,SAA0BC,EAAQx4B,EAAS4qB,EAAQxC,GACxE,IAAI5pB,EAAQ,GAEmB,MAA3BwB,EAAQy4B,iBACVj6B,EAAMpG,KAAK,CAAC,QAAS4H,EAAQy4B,kBAG/Bj6B,EAAMpG,KAAK,CAAC,OAAQ,IAAIsC,OAAO89B,KAE/B,IAAIE,EAAgBpB,EAAc,CAAC,EAAG,IAAIX,EAAOC,QAAQ,YAAa,IAAK,GAAI,CAC7Ep4B,MAAOA,IAGLm6B,EAAiB,IAAIhC,EAAOC,QAAQ,aAAc,KAAM,GAE5D,GAAI52B,EAAQ44B,wBACVhO,EAAOxC,EAAM,GAAG9b,SAASoM,QAAQggB,GACjC9N,EAAOxC,EAAM,GAAG9b,SAASlU,KAAKugC,OACzB,CACL,IAAIE,EAEAC,EAAa,CAACJ,GAAeh+B,OAAOq8B,EAAmBqB,EAAuBp4B,IAAW,CAAC24B,IAG1FI,EAAgB,CAClBC,MAAO,OACPC,KAAM,WAGJj5B,EAAQk5B,iBACVJ,EAAWC,GAAe/4B,EAAQm5B,mBAAmBhB,MAGtDU,EAAmBjO,EAAOxC,EAAM,GAAG9b,UAAUysB,EAAc/4B,EAAQm5B,mBAAmBnoC,MAAM6nC,EAAkB9B,EAAmB+B,GACpI,CACF,EAEIM,EAA2B,SAASA,EAAyBj5B,GAC/D,IAAIk5B,EAAS1pC,UAAUL,OAAS,QAAsBW,IAAjBN,UAAU,GAAmBA,UAAU,GAAK,EACjF,OAAOwQ,EAAKia,KAAI,SAAUkf,GACxB,IAAIC,EAAc,KACdn5B,EAAO,GAAG1F,OAAOuhB,EAAOsd,EAAaF,GAAS,KAElD,GAAIC,EAAKE,QAAQnO,QAAS,CACxB,IAAIoO,EAAuBH,EAAKE,QAAQnO,QAAQhgB,QAAQ,yBAA0B,MAClFjL,GAAQ,IAAM,IAAI1F,OAAO++B,EAAsB,OAAO/+B,OAAO4+B,EAAKE,QAAQhB,OAAQ,MACpF,MACEp4B,GAAQ,KAOV,OAJIk5B,EAAKxO,MAAMx7B,SACb8Q,GAAQg5B,EAAyBE,EAAKxO,MAAOuO,EAAS,IAGjDj5B,CACT,IAAG8d,KAAK,GACV,EAEIwb,EAA+B,SAAsCC,EAAU35B,GACjF,IAAIG,EAAO,CACT2qB,MAAO,IA2BT,OAxBA6O,EAASz7B,SAAQ,SAAUs7B,GACzB,KAAIA,EAAQxN,MAAQhsB,EAAQ45B,eAAiBJ,EAAQxN,MAAQhsB,EAAQ65B,cAArE,CAOA,IAHA,IAAI/iC,EAAI,EACJgjC,EAAW35B,EAERrJ,EAAI0iC,EAAQxN,MAAQhsB,EAAQ45B,cAAgB,EAAG9iC,IACtB,IAA1BgjC,EAAShP,MAAMx7B,QACjBwqC,EAAShP,MAAM1yB,KAAK,CAClBohC,QAAS,CAAC,EACV1O,MAAO,KAIXgP,EAAWA,EAAShP,MAAMgP,EAAShP,MAAMx7B,OAAS,GAGpDwqC,EAAShP,MAAM1yB,KAAK,CAClBohC,QAASA,EACT1O,MAAO,IAlBT,CAoBF,IACOsO,EAAyBj5B,EAAK2qB,MACvC,EAEA,SAAS0L,EAASpN,EAAIppB,GACpBA,EAAUs3B,EAAc,CACtByC,KAAK,EACLC,aAAc,iBACdJ,cAAe,EACfC,aAAc,EACdI,YAAa,KACbC,YAAY,EACZ5B,iBAAkB,IAClBa,kBAAkB,EAClBV,gBAAiB,oBACjB0B,UAAU,EACVjB,iBAAiB,EACjBb,0BAA2B,KAC3BO,yBAAyB,GACxB54B,GACH43B,GAA2B,EAAI76B,EAAO65B,SAASxN,GAE/CyO,EAAa,CAAC,EACdzO,EAAG74B,KAAKg7B,MAAMnzB,KAAK,YAAY,SAAUyxB,GACvC,IAAIe,EAASf,EAAMe,OAEf5qB,EAAQm6B,WACVtC,EAAa,CAAC,GAQhB,IALA,IAAIuC,EAAW,GACXC,EAAc,GACdC,EAAY,GACZpC,EAAuC,oBAApBl4B,EAAQu6B,SAA0Bv6B,EAAQu6B,SAAW7D,EAAOE,QAE1E9/B,EAAI,EAAGA,EAAI8zB,EAAOt7B,OAAQwH,IACjC,GAAuB,kBAAnB8zB,EAAO9zB,GAAGjF,KAAd,CAIA,IAAI2nC,EAAU5O,EAAO9zB,EAAI,GACrB0jC,EAAgB5P,EAAO9zB,GAE3B,GAAqB,WAAjB0iC,EAAQ3nC,KAAmB,CAC7B,IAAIw5B,OAAU,EAEVmO,EAAQltB,UAAYktB,EAAQltB,SAAShd,OAAS,GAAkC,cAA7BkqC,EAAQltB,SAAS,GAAGza,MAGzEw5B,EAAUmO,EAAQltB,SAAS,GAAG+e,QAC9BmO,EAAQiB,WAAaxC,EAAS5M,EAASwM,EAAYK,KAEnD7M,EAAUmO,EAAQnO,QAClBmO,EAAQiB,WAAaxC,EAASuB,EAAQltB,SAASkX,QAAO,SAAUC,EAAKrM,GACnE,OAAOqM,EAAMrM,EAAEiU,OACjB,GAAG,IAAKwM,EAAYK,IAGlBl4B,EAAQ06B,mBACVlB,EAAQiB,WAAaz6B,EAAQ06B,iBAAmBlB,EAAQiB,YAG1DL,EAAShiC,KAAK,CACZizB,QAASA,EACTmN,OAAQgB,EAAQiB,WAChBzO,OAAQwO,EAAc1hC,IAAIsyB,OAAO,EAAG,IAExC,CA7BA,CAmCF,GAHAiP,EAAcX,EAA6BU,EAAUp6B,GACrDs6B,EAAY1C,EAAyBvzB,MAAMg2B,EAAa,CAAC,GAE3B,WAA1BxD,EAAQyD,EAAU,KAA0C,qBAAtBA,EAAU,GAAGzoC,KAA6B,CAClF,IAAI2M,EAAQ87B,EAAU,GAAG97B,MAAQ87B,EAAU,GAAG97B,OAAS,GAE3B,MAAxBwB,EAAQg6B,cACVx7B,EAAMpG,KAAK,CAAC,QAAS4H,EAAQg6B,cAEjC,CAEAlC,EAAUF,EAAyBxJ,SAASvuB,OAAOy6B,EAAW1C,EAAyB53B,SAElD,oBAA1B6pB,EAAMpiB,IAAIwyB,YACnBpQ,EAAMpiB,IAAIwyB,YAAY5pC,UAAKJ,EAAWoqC,EAAaD,EAAUtC,GACrB,oBAAxB93B,EAAQi6B,YACxBj6B,EAAQi6B,YAAY5pC,UAAKJ,EAAWoqC,EAAaD,EAAUtC,GAChB,oBAA3B1O,EAAGppB,QAAQi6B,aAC3B7Q,EAAGppB,QAAQi6B,YAAY5pC,UAAKJ,EAAWoqC,EAAaD,EAAUtC,EAElE,IACA1O,EAAG+I,OAAO5G,MAAMG,MAAM,WAAY,OAAO,SAAU7B,EAAOG,GACxD,IAAIa,EACAnpB,EAEJ,OACoC,KAApCmoB,EAAM1yB,IAAI0C,WAAWgwB,EAAMpwB,MAAyD,KAAxCowB,EAAM1yB,IAAI0C,WAAWgwB,EAAMpwB,IAAM,KAC7EuwB,IAKAtoB,EAAQi2B,EAAOtkC,KAAKw2B,EAAM1yB,KAC1BuK,EAASA,EAAaA,EAAM+kB,QAAO,SAAUgB,GAC3C,OAAOA,CACT,IAFiB,KAIb/lB,EAAMpS,OAAS,KAKnBu7B,EAAQhB,EAAMzxB,KAAK,WAAY,MAAO,GACtCyyB,EAAMxM,OAASqZ,EACf7M,EAAQhB,EAAMzxB,KAAK,WAAY,GAAI,GACnCyyB,EAAQhB,EAAMzxB,KAAK,YAAa,OAAQ,GAExCyxB,EAAMpwB,IAAMowB,EAAMpwB,IAAM,GACjB,GACT,IAEA,IAAIkhC,EAAsBvR,EAAGgF,SAASC,MAAMuM,cAAgB,WAC1D,IAAK,IAAIC,EAAOlrC,UAAUL,OAAQoY,EAAO,IAAIxM,MAAM2/B,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EpzB,EAAKozB,GAAQnrC,UAAUmrC,GAGzB,IAAIlQ,EAASljB,EAAK,GACd0gB,EAAM1gB,EAAK,GACX1H,EAAU0H,EAAK,GACflU,EAAOkU,EAAK,GAChB,OAAOlU,EAAKunC,YAAYnQ,EAAQxC,EAAKpoB,EACvC,EAEAopB,EAAGgF,SAASC,MAAMuM,aAAe,WAC/B,IAAK,IAAII,EAAQrrC,UAAUL,OAAQoY,EAAO,IAAIxM,MAAM8/B,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFvzB,EAAKuzB,GAAStrC,UAAUsrC,GAG1B,IAAIrQ,EAASljB,EAAK,GACd0gB,EAAM1gB,EAAK,GACXlJ,EAAQosB,EAAOxC,GAAK5pB,MAAQosB,EAAOxC,GAAK5pB,OAAS,GACjDg6B,EAAS5N,EAAOxC,EAAM,GAAGqS,WAO7B,OANAj8B,EAAMpG,KAAK,CAAC,KAAMogC,IAEdx4B,EAAQk6B,YACV3B,EAAiBvnC,WAAM,EAAQ,CAACwnC,EAAQx4B,GAAStF,OAAOgN,IAGnDizB,EAAoB3pC,MAAMgC,KAAM0U,EACzC,EAEA0hB,EAAGgF,SAASC,MAAM6M,SAAW,WAC3B,MAAO,EACT,EAEA9R,EAAGgF,SAASC,MAAM8M,UAAY,WAC5B,MAAO,EACT,EAEA/R,EAAGgF,SAASC,MAAM+M,SAAW,WAC3B,MAAO,EACT,EAEIp7B,EAAQ+5B,MACV3Q,EAAGgF,SAASC,MAAM+M,SAAW,WAC3B,OAAOtD,CACT,EAEJ,C,oCCnUAvpC,EAAOC,QAAU,EAAjB,M,qCCEAD,EAAOC,QAAU,EAAjB,M,iCCCAD,EAAOC,QAAU,CACf,UACA,UACA,QACA,OACA,WACA,aACA,OACA,UACA,SACA,MACA,WACA,KACA,UACA,SACA,MACA,MACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,QACA,WACA,KACA,OACA,SACA,KACA,OACA,SACA,SACA,KACA,OACA,OACA,OACA,WACA,OACA,MACA,WACA,KACA,WACA,SACA,IACA,QACA,MACA,UACA,SACA,QACA,UACA,QACA,QACA,KACA,QACA,KACA,QACA,QACA,KACA,QACA,K,iCC9DF,IAAI6sC,EAAgB,6BAEhBC,EAAgB,yBAChBC,EAAgB,UAChBC,EAAgB,UAEhBC,EAAc,MAAQH,EAAW,IAAMC,EAAgB,IAAMC,EAAgB,IAE7Epd,EAAc,UAAYid,EAAY,eAAiBI,EAAa,MAEpEC,EAAc,2BAA6Btd,EAAY,aAEvDud,EAAc,mCACdC,EAAc,oDACdC,EAAc,cACdC,EAAc,qBACdC,EAAc,iCAEdC,EAAc,IAAIz+B,OAAO,OAASm+B,EAAW,IAAMC,EAAY,IAAMC,EACjD,IAAMC,EAAa,IAAMC,EAAc,IAAMC,EAAQ,KACzEE,EAAyB,IAAI1+B,OAAO,OAASm+B,EAAW,IAAMC,EAAY,KAE9EptC,EAAOC,QAAQ,EAAcwtC,EAC7BztC,EAAOC,QAAQ,EAAyBytC,C,qCCtBxC,SAASlZ,EAAOhnB,GAAO,OAAO7L,OAAOsE,UAAUpE,SAASC,KAAK0L,EAAM,CAEnE,SAASinB,EAASjnB,GAAO,MAAuB,oBAAhBgnB,EAAOhnB,EAA4B,CAEnE,IAAImgC,EAAkBhsC,OAAOsE,UAAUd,eAEvC,SAAShC,EAAImC,EAAQhE,GACnB,OAAOqsC,EAAgB7rC,KAAKwD,EAAQhE,EACtC,CAIA,SAASgzB,EAAO9mB,GACd,IAAI+mB,EAAU5nB,MAAM1G,UAAUlE,MAAMD,KAAKV,UAAW,GAcpD,OAZAmzB,EAAQ5kB,SAAQ,SAAUnM,GACxB,GAAKA,EAAL,CAEA,GAAsB,kBAAXA,EACT,MAAM,IAAIpD,UAAUoD,EAAS,kBAG/B7B,OAAO8E,KAAKjD,GAAQmM,SAAQ,SAAUrO,GACpCkM,EAAIlM,GAAOkC,EAAOlC,EACpB,GARuB,CASzB,IAEOkM,CACT,CAIA,SAASstB,EAAelyB,EAAKsC,EAAK0iC,GAChC,MAAO,GAAGzhC,OAAOvD,EAAI7G,MAAM,EAAGmJ,GAAM0iC,EAAahlC,EAAI7G,MAAMmJ,EAAM,GACnE,CAIA,SAAS2iC,EAAkBrrC,GAGzB,QAAIA,GAAK,OAAUA,GAAK,WAEpBA,GAAK,OAAUA,GAAK,SACH,SAAZ,MAAJA,IAA2C,SAAZ,MAAJA,OAE5BA,GAAK,GAAQA,GAAK,KACZ,KAANA,MACAA,GAAK,IAAQA,GAAK,QAClBA,GAAK,KAAQA,GAAK,QAElBA,EAAI,cAEV,CAEA,SAASsrC,EAActrC,GAErB,GAAIA,EAAI,MAAQ,CACdA,GAAK,MACL,IAAIurC,EAAa,OAAUvrC,GAAK,IAC5BwrC,EAAa,OAAc,KAAJxrC,GAE3B,OAAO4I,OAAO05B,aAAaiJ,EAAYC,EACzC,CACA,OAAO5iC,OAAO05B,aAAatiC,EAC7B,CAGA,IAAIyrC,EAAkB,8CAClBC,EAAkB,6BAClBC,EAAkB,IAAIn/B,OAAOi/B,EAAezqC,OAAS,IAAM0qC,EAAU1qC,OAAQ,MAE7E4qC,EAAyB,qCAEzBC,EAAW,EAAQ,OAEvB,SAASC,EAAqBn7B,EAAO5P,GACnC,IAAIgrC,EAAO,EAEX,OAAIprC,EAAIkrC,EAAU9qC,GACT8qC,EAAS9qC,GAGS,KAAvBA,EAAK+H,WAAW,IAAsB8iC,EAAuB5wB,KAAKja,KACpEgrC,EAAiC,MAA1BhrC,EAAK,GAAGwwB,cACbya,SAASjrC,EAAKxB,MAAM,GAAI,IAExBysC,SAASjrC,EAAKxB,MAAM,GAAI,IACtB8rC,EAAkBU,IACbT,EAAcS,GAIlBp7B,CACT,CAQA,SAASs7B,EAAW3a,GAClB,OAAIA,EAAIpkB,QAAQ,MAAQ,EAAYokB,EAC7BA,EAAIhX,QAAQmxB,EAAgB,KACrC,CAEA,SAASS,EAAY5a,GACnB,OAAIA,EAAIpkB,QAAQ,MAAQ,GAAKokB,EAAIpkB,QAAQ,KAAO,EAAYokB,EAErDA,EAAIhX,QAAQqxB,GAAiB,SAAUh7B,EAAOkd,EAASse,GAC5D,OAAIte,GACGie,EAAqBn7B,EAAOw7B,EACrC,GACF,CAIA,IAAIC,EAAsB,SACtBC,EAAyB,UACzBC,EAAoB,CACtB,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,UAGP,SAASC,EAAkB7b,GACzB,OAAO4b,EAAkB5b,EAC3B,CAEA,SAAS8b,EAAWlb,GAClB,OAAI8a,EAAoBpxB,KAAKsW,GACpBA,EAAIhX,QAAQ+xB,EAAwBE,GAEtCjb,CACT,CAIA,IAAImb,EAAmB,uBAEvB,SAASta,EAASb,GAChB,OAAOA,EAAIhX,QAAQmyB,EAAkB,OACvC,CAIA,SAAS7R,EAAQmR,GACf,OAAQA,GACN,KAAK,EACL,KAAK,GACH,OAAO,EAEX,OAAO,CACT,CAGA,SAASW,EAAaX,GACpB,GAAIA,GAAQ,MAAUA,GAAQ,KAAU,OAAO,EAC/C,OAAQA,GACN,KAAK,EACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,IACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,MACH,OAAO,EAEX,OAAO,CACT,CAKA,IAAIvT,EAAmB,EAAQ,OAG/B,SAASmU,EAAYjc,GACnB,OAAO8H,EAAiBxd,KAAK0V,EAC/B,CAUA,SAASkc,EAAelc,GACtB,OAAQA,GACN,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACH,OAAO,EACT,QACE,OAAO,EAEb,CAIA,SAASmc,EAAmBvb,GAI1B,OAAOA,EAAImI,OAAOnf,QAAQ,OAAQ,KAAKwyB,aACzC,CAQArvC,EAAQg7B,IAAsB,CAAC,EAC/Bh7B,EAAQg7B,IAAIsU,MAAZ,SACAtvC,EAAQg7B,IAAIC,QAAZ,SAEAj7B,EAAQq0B,OAAsBA,EAC9Br0B,EAAQw0B,SAAsBA,EAC9Bx0B,EAAQkD,IAAsBA,EAC9BlD,EAAQwuC,WAAsBA,EAC9BxuC,EAAQyuC,YAAsBA,EAC9BzuC,EAAQ4tC,kBAAsBA,EAC9B5tC,EAAQ6tC,cAAsBA,EAE9B7tC,EAAQ+uC,WAAsBA,EAC9B/uC,EAAQ66B,eAAsBA,EAC9B76B,EAAQm9B,QAAsBA,EAC9Bn9B,EAAQivC,aAAsBA,EAC9BjvC,EAAQmvC,eAAsBA,EAC9BnvC,EAAQkvC,YAAsBA,EAC9BlvC,EAAQ00B,SAAsBA,EAC9B10B,EAAQovC,mBAAsBA,C,qCC9Q9BpvC,EAAQgjC,eAAR,SACAhjC,EAAQuvC,qBAAuB,EAA/B,OACAvvC,EAAQwvC,eAAR,Q,qCCDA,IAAIrS,EAAc,iBACdsR,EAAc,qBAGlB1uC,EAAOC,QAAU,SAA8B6zB,EAAK5oB,EAAKM,GACvD,IAAI+iC,EAAM9Q,EACNiS,EAAQ,EACR/2B,EAAQzN,EACRhC,EAAS,CACPymC,IAAI,EACJzkC,IAAK,EACLwkC,MAAO,EACP5b,IAAK,IAGX,GAA4B,KAAxBA,EAAIxoB,WAAWJ,GAAuB,CACxCA,IACA,MAAOA,EAAMM,EAAK,CAEhB,GADA+iC,EAAOza,EAAIxoB,WAAWJ,GACT,KAATqjC,GAA0BnR,EAAQmR,GAAS,OAAOrlC,EACtD,GAAa,KAATqlC,EAIF,OAHArlC,EAAOgC,IAAMA,EAAM,EACnBhC,EAAO4qB,IAAM4a,EAAY5a,EAAI/xB,MAAM4W,EAAQ,EAAGzN,IAC9ChC,EAAOymC,IAAK,EACLzmC,EAEI,KAATqlC,GAAyBrjC,EAAM,EAAIM,EACrCN,GAAO,EAITA,GACF,CAGA,OAAOhC,CACT,CAIAu0B,EAAQ,EACR,MAAOvyB,EAAMM,EAAK,CAGhB,GAFA+iC,EAAOza,EAAIxoB,WAAWJ,GAET,KAATqjC,EAAiB,MAGrB,GAAIA,EAAO,IAAiB,MAATA,EAAiB,MAEpC,GAAa,KAATA,GAAyBrjC,EAAM,EAAIM,EACrCN,GAAO,MADT,CAKA,GAAa,KAATqjC,IACF9Q,IACIA,EAAQ,GAAK,MAGnB,GAAa,KAAT8Q,IACF9Q,IACIA,EAAQ,GAAK,MAGnBvyB,GAZA,CAaF,CAEA,OAAIyN,IAAUzN,IAEdhC,EAAO4qB,IAAM4a,EAAY5a,EAAI/xB,MAAM4W,EAAOzN,IAC1ChC,EAAOwmC,MAAQA,EACfxmC,EAAOgC,IAAMA,EACbhC,EAAOymC,IAAK,GALgBzmC,CAO9B,C,iCCxEAlJ,EAAOC,QAAU,SAAwBq7B,EAAO3iB,EAAOi3B,GACrD,IAAInS,EAAOuI,EAAO1I,EAAQuS,EACtBhU,GAAY,EACZrwB,EAAM8vB,EAAMqI,OACZmM,EAASxU,EAAMpwB,IAEnBowB,EAAMpwB,IAAMyN,EAAQ,EACpB8kB,EAAQ,EAER,MAAOnC,EAAMpwB,IAAMM,EAAK,CAEtB,GADA8xB,EAAShC,EAAM1yB,IAAI0C,WAAWgwB,EAAMpwB,KACrB,KAAXoyB,IACFG,IACc,IAAVA,GAAa,CACfuI,GAAQ,EACR,KACF,CAKF,GAFA6J,EAAUvU,EAAMpwB,IAChBowB,EAAMT,GAAG+I,OAAO6C,UAAUnL,GACX,KAAXgC,EACF,GAAIuS,IAAYvU,EAAMpwB,IAAM,EAE1BuyB,SACK,GAAImS,EAET,OADAtU,EAAMpwB,IAAM4kC,GACJ,CAGd,CASA,OAPI9J,IACFnK,EAAWP,EAAMpwB,KAInBowB,EAAMpwB,IAAM4kC,EAELjU,CACT,C,qCC1CA,IAAI6S,EAAc,qBAGlB1uC,EAAOC,QAAU,SAAwB6zB,EAAK5oB,EAAKM,GACjD,IAAI+iC,EACAjR,EACAoS,EAAQ,EACR/2B,EAAQzN,EACRhC,EAAS,CACPymC,IAAI,EACJzkC,IAAK,EACLwkC,MAAO,EACP5b,IAAK,IAGX,GAAI5oB,GAAOM,EAAO,OAAOtC,EAIzB,GAFAo0B,EAASxJ,EAAIxoB,WAAWJ,GAET,KAAXoyB,GAAsC,KAAXA,GAAsC,KAAXA,EAA2B,OAAOp0B,EAE5FgC,IAGe,KAAXoyB,IAAmBA,EAAS,IAEhC,MAAOpyB,EAAMM,EAAK,CAEhB,GADA+iC,EAAOza,EAAIxoB,WAAWJ,GAClBqjC,IAASjR,EAKX,OAJAp0B,EAAOgC,IAAMA,EAAM,EACnBhC,EAAOwmC,MAAQA,EACfxmC,EAAO4qB,IAAM4a,EAAY5a,EAAI/xB,MAAM4W,EAAQ,EAAGzN,IAC9ChC,EAAOymC,IAAK,EACLzmC,EACW,KAATqlC,EACTmB,IACkB,KAATnB,GAAyBrjC,EAAM,EAAIM,IAC5CN,IAC4B,KAAxB4oB,EAAIxoB,WAAWJ,IACjBwkC,KAIJxkC,GACF,CAEA,OAAOhC,CACT,C,qCC/CA,IAAImI,EAAe,EAAQ,OACvB6xB,EAAe,EAAQ,OACvB6M,EAAe,EAAQ,OACvBC,EAAe,EAAQ,OACvBC,EAAe,EAAQ,OACvBC,EAAe,EAAQ,OACvBpX,EAAe,EAAQ,OACvByW,EAAe,EAAQ,OACvBY,EAAe,EAAQ,MAGvBC,EAAS,CACX,QAAW,EAAQ,OACnBC,KAAM,EAAQ,KACdC,WAAY,EAAQ,OAYlBC,EAAe,oCACfC,EAAe,oCAEnB,SAASC,EAAa7X,GAEpB,IAAI9E,EAAM8E,EAAIqD,OAAOlI,cAErB,OAAOwc,EAAa/yB,KAAKsW,MAAQ0c,EAAahzB,KAAKsW,EACrD,CAKA,IAAI4c,EAAsB,CAAE,QAAS,SAAU,WAE/C,SAASC,EAAc/X,GACrB,IAAIgY,EAASrB,EAAMz5B,MAAM8iB,GAAK,GAE9B,GAAIgY,EAAOC,YAOJD,EAAOE,UAAYJ,EAAoBhhC,QAAQkhC,EAAOE,WAAa,GACtE,IACEF,EAAOC,SAAWV,EAASY,QAAQH,EAAOC,SACxB,CAAlB,MAAOG,GAAW,CAIxB,OAAOzB,EAAM0B,OAAO1B,EAAM2B,OAAON,GACnC,CAEA,SAASO,EAAkBvY,GACzB,IAAIgY,EAASrB,EAAMz5B,MAAM8iB,GAAK,GAE9B,GAAIgY,EAAOC,YAOJD,EAAOE,UAAYJ,EAAoBhhC,QAAQkhC,EAAOE,WAAa,GACtE,IACEF,EAAOC,SAAWV,EAASiB,UAAUR,EAAOC,SAC1B,CAAlB,MAAOG,GAAW,CAIxB,OAAOzB,EAAM8B,OAAO9B,EAAM2B,OAAON,GACnC,CAwIA,SAASU,EAAWC,EAAY9/B,GAC9B,KAAMhN,gBAAgB6sC,GACpB,OAAO,IAAIA,EAAWC,EAAY9/B,GAG/BA,GACEJ,EAAMojB,SAAS8c,KAClB9/B,EAAU8/B,GAAc,CAAC,EACzBA,EAAa,WAWjB9sC,KAAKm/B,OAAS,IAAIsM,EASlBzrC,KAAKs4B,MAAQ,IAAIkT,EASjBxrC,KAAKzC,KAAO,IAAIguC,EAuBhBvrC,KAAKo7B,SAAW,IAAIkQ,EASpBtrC,KAAK+sC,QAAU,IAAI1Y,EAiBnBr0B,KAAKgsC,aAAeA,EAQpBhsC,KAAKksC,cAAgBA,EAOrBlsC,KAAK0sC,kBAAoBA,EAWzB1sC,KAAK4M,MAAQA,EAQb5M,KAAKy+B,QAAUA,EAGfz+B,KAAKgN,QAAU,CAAC,EAChBhN,KAAKgtC,UAAUF,GAEX9/B,GAAWhN,KAAKqL,IAAI2B,EAC1B,CAsBA6/B,EAAWrrC,UAAU6J,IAAM,SAAU2B,GAEnC,OADAJ,EAAMijB,OAAO7vB,KAAKgN,QAASA,GACpBhN,IACT,EAaA6sC,EAAWrrC,UAAUwrC,UAAY,SAAUC,GACzC,IAAiBH,EAAbtsC,EAAOR,KAEX,GAAI4M,EAAMojB,SAASid,KACjBH,EAAaG,EACbA,EAAUtB,EAAOmB,IACZG,GAAW,MAAM,IAAIjiC,MAAM,+BAAiC8hC,EAAa,iBAGhF,IAAKG,EAAW,MAAM,IAAIjiC,MAAM,8CAchC,OAZIiiC,EAAQjgC,SAAWxM,EAAK6K,IAAI4hC,EAAQjgC,SAEpCigC,EAAQC,YACVhwC,OAAO8E,KAAKirC,EAAQC,YAAYhiC,SAAQ,SAAUpM,GAC5CmuC,EAAQC,WAAWpuC,GAAMu8B,OAC3B76B,EAAK1B,GAAMy5B,MAAM4U,WAAWF,EAAQC,WAAWpuC,GAAMu8B,OAEnD4R,EAAQC,WAAWpuC,GAAMsuC,QAC3B5sC,EAAK1B,GAAM+hC,OAAOsM,WAAWF,EAAQC,WAAWpuC,GAAMsuC,OAE1D,IAEKptC,IACT,EAoBA6sC,EAAWrrC,UAAU6rC,OAAS,SAAUpe,EAAMqe,GAC5C,IAAI7oC,EAAS,GAERyD,MAAMgtB,QAAQjG,KAASA,EAAO,CAAEA,IAErC,CAAE,OAAQ,QAAS,UAAW/jB,SAAQ,SAAUqiC,GAC9C9oC,EAASA,EAAOiD,OAAO1H,KAAKutC,GAAOhV,MAAM8U,OAAOpe,GAAM,GACxD,GAAGjvB,MAEHyE,EAASA,EAAOiD,OAAO1H,KAAKm/B,OAAO0B,OAAOwM,OAAOpe,GAAM,IAEvD,IAAIue,EAASve,EAAKwE,QAAO,SAAU30B,GAAQ,OAAO2F,EAAOwG,QAAQnM,GAAQ,CAAG,IAE5E,GAAI0uC,EAAOlxC,SAAWgxC,EACpB,MAAM,IAAItiC,MAAM,iDAAmDwiC,GAGrE,OAAOxtC,IACT,EAUA6sC,EAAWrrC,UAAUisC,QAAU,SAAUxe,EAAMqe,GAC7C,IAAI7oC,EAAS,GAERyD,MAAMgtB,QAAQjG,KAASA,EAAO,CAAEA,IAErC,CAAE,OAAQ,QAAS,UAAW/jB,SAAQ,SAAUqiC,GAC9C9oC,EAASA,EAAOiD,OAAO1H,KAAKutC,GAAOhV,MAAMkV,QAAQxe,GAAM,GACzD,GAAGjvB,MAEHyE,EAASA,EAAOiD,OAAO1H,KAAKm/B,OAAO0B,OAAO4M,QAAQxe,GAAM,IAExD,IAAIue,EAASve,EAAKwE,QAAO,SAAU30B,GAAQ,OAAO2F,EAAOwG,QAAQnM,GAAQ,CAAG,IAE5E,GAAI0uC,EAAOlxC,SAAWgxC,EACpB,MAAM,IAAItiC,MAAM,kDAAoDwiC,GAEtE,OAAOxtC,IACT,EAmBA6sC,EAAWrrC,UAAUksC,IAAM,SAAUC,GACnC,IAAIj5B,EAAO,CAAE1U,MAAO0H,OAAOQ,MAAM1G,UAAUlE,MAAMD,KAAKV,UAAW,IAEjE,OADAgxC,EAAO3vC,MAAM2vC,EAAQj5B,GACd1U,IACT,EAkBA6sC,EAAWrrC,UAAU6P,MAAQ,SAAUlN,EAAKsQ,GAC1C,IAAIoiB,EAAQ,IAAI72B,KAAKzC,KAAKqwC,MAAMzpC,EAAKnE,KAAMyU,GAI3C,OAFAzU,KAAKzC,KAAKswC,QAAQhX,GAEXA,EAAMe,MACf,EAcAiV,EAAWrrC,UAAUqL,OAAS,SAAU1I,EAAKsQ,GAG3C,OAFAA,EAAMA,GAAO,CAAC,EAEPzU,KAAKo7B,SAASvuB,OAAO7M,KAAKqR,MAAMlN,EAAKsQ,GAAMzU,KAAKgN,QAASyH,EAClE,EAYAo4B,EAAWrrC,UAAUssC,YAAc,SAAU3pC,EAAKsQ,GAChD,IAAIoiB,EAAQ,IAAI72B,KAAKzC,KAAKqwC,MAAMzpC,EAAKnE,KAAMyU,GAK3C,OAHAoiB,EAAMkX,YAAa,EACnB/tC,KAAKzC,KAAKswC,QAAQhX,GAEXA,EAAMe,MACf,EAWAiV,EAAWrrC,UAAUwsC,aAAe,SAAU7pC,EAAKsQ,GAGjD,OAFAA,EAAMA,GAAO,CAAC,EAEPzU,KAAKo7B,SAASvuB,OAAO7M,KAAK8tC,YAAY3pC,EAAKsQ,GAAMzU,KAAKgN,QAASyH,EACxE,EAGAlZ,EAAOC,QAAUqxC,C,qCCxjBjB,IAAIoB,EAAkB,EAAQ,OAG1BC,EAAS,CAGX,CAAE,QAAc,EAAQ,OAA6B,CAAE,YAAa,cACpE,CAAE,OAAc,EAAQ,QACxB,CAAE,QAAc,EAAQ,OAA6B,CAAE,YAAa,YAAa,aAAc,SAC/F,CAAE,aAAc,EAAQ,OAA6B,CAAE,YAAa,YAAa,SACjF,CAAE,KAAc,EAAQ,OAA6B,CAAE,YAAa,YAAa,aAAc,SAC/F,CAAE,OAAc,EAAQ,OAA6B,CAAE,YAAa,YAAa,eACjF,CAAE,YAAc,EAAQ,QACxB,CAAE,UAAc,EAAQ,OAA6B,CAAE,YAAa,YAAa,eACjF,CAAE,WAAc,EAAQ,QACxB,CAAE,aAAc,EAAQ,OAA6B,CAAE,YAAa,YAAa,eACjF,CAAE,YAAc,EAAQ,SAO1B,SAAS1C,IAMPxrC,KAAKu4B,MAAQ,IAAI0V,EAEjB,IAAK,IAAInqC,EAAI,EAAGA,EAAIoqC,EAAO5xC,OAAQwH,IACjC9D,KAAKu4B,MAAMnzB,KAAK8oC,EAAOpqC,GAAG,GAAIoqC,EAAOpqC,GAAG,GAAI,CAAE20B,KAAMyV,EAAOpqC,GAAG,IAAM,IAAIxG,SAE5E,CAKAkuC,EAAYhqC,UAAUi5B,SAAW,SAAU5D,EAAOC,EAAWC,GAC3D,IAAImU,EAAIpnC,EACJu3B,EAAQr7B,KAAKu4B,MAAM4V,SAAS,IAC5BvZ,EAAMyG,EAAM/+B,OACZioB,EAAOuS,EACPsX,GAAgB,EAChBC,EAAaxX,EAAMT,GAAGppB,QAAQqhC,WAElC,MAAO9pB,EAAOwS,EAAS,CAErB,GADAF,EAAMtS,KAAOA,EAAOsS,EAAMyX,eAAe/pB,GACrCA,GAAQwS,EAAW,MAIvB,GAAIF,EAAMuD,OAAO7V,GAAQsS,EAAMwD,UAAa,MAI5C,GAAIxD,EAAMmC,OAASqV,EAAY,CAC7BxX,EAAMtS,KAAOwS,EACb,KACF,CASA,IAAKjzB,EAAI,EAAGA,EAAI8wB,EAAK9wB,IAEnB,GADAonC,EAAK7P,EAAMv3B,GAAG+yB,EAAOtS,EAAMwS,GAAS,GAChCmU,EAAM,MAcZ,GATArU,EAAMoD,OAASmU,EAGXvX,EAAMsD,QAAQtD,EAAMtS,KAAO,KAC7B6pB,GAAgB,GAGlB7pB,EAAOsS,EAAMtS,KAETA,EAAOwS,GAAWF,EAAMsD,QAAQ5V,GAAO,CAKzC,GAJA6pB,GAAgB,EAChB7pB,IAGIA,EAAOwS,GAAgC,SAArBF,EAAM2D,YAAyB3D,EAAMsD,QAAQ5V,GAAS,MAC5EsS,EAAMtS,KAAOA,CACf,CACF,CACF,EAQAinB,EAAYhqC,UAAU6P,MAAQ,SAAUlN,EAAKiyB,EAAI3hB,EAAK85B,GACpD,IAAI1X,EAEC1yB,IAEL0yB,EAAQ,IAAI72B,KAAK4tC,MAAMzpC,EAAKiyB,EAAI3hB,EAAK85B,GAErCvuC,KAAKy6B,SAAS5D,EAAOA,EAAMtS,KAAMsS,EAAM2X,SACzC,EAGAhD,EAAYhqC,UAAUosC,MAAQ,EAAQ,OAGtCryC,EAAOC,QAAUgwC,C,qCCnHjB,IAAIyC,EAAS,EAAQ,OAGjBC,EAAS,CACX,CAAE,YAAkB,EAAQ,QAC5B,CAAE,QAAkB,EAAQ,QAC5B,CAAE,SAAkB,EAAQ,QAC5B,CAAE,UAAkB,EAAQ,QAC5B,CAAE,eAAkB,EAAQ,OAC5B,CAAE,cAAkB,EAAQ,SAO9B,SAASO,IAMPzuC,KAAKu4B,MAAQ,IAAI0V,EAEjB,IAAK,IAAInqC,EAAI,EAAGA,EAAIoqC,EAAO5xC,OAAQwH,IACjC9D,KAAKu4B,MAAMnzB,KAAK8oC,EAAOpqC,GAAG,GAAIoqC,EAAOpqC,GAAG,GAE5C,CAQA2qC,EAAKjtC,UAAUqsC,QAAU,SAAUhX,GACjC,IAAI/yB,EAAG8C,EAAGy0B,EAIV,IAFAA,EAAQr7B,KAAKu4B,MAAM4V,SAAS,IAEvBrqC,EAAI,EAAG8C,EAAIy0B,EAAM/+B,OAAQwH,EAAI8C,EAAG9C,IACnCu3B,EAAMv3B,GAAG+yB,EAEb,EAEA4X,EAAKjtC,UAAUosC,MAAQ,EAAQ,OAG/BryC,EAAOC,QAAUizC,C,qCCjDjB,IAAIR,EAAkB,EAAQ,OAM1BC,EAAS,CACX,CAAE,OAAmB,EAAQ,QAC7B,CAAE,UAAmB,EAAQ,QAC7B,CAAE,SAAmB,EAAQ,QAC7B,CAAE,YAAmB,EAAQ,QAC7B,CAAE,gBAAmB,YACrB,CAAE,WAAmB,YACrB,CAAE,OAAmB,EAAQ,QAC7B,CAAE,QAAmB,EAAQ,QAC7B,CAAE,WAAmB,EAAQ,QAC7B,CAAE,cAAmB,EAAQ,QAC7B,CAAE,SAAmB,EAAQ,SAG3BQ,EAAU,CACZ,CAAE,gBAAmB,EAAQ,QAC7B,CAAE,gBAAmB,YACrB,CAAE,WAAmB,YACrB,CAAE,gBAAmB,EAAQ,SAO/B,SAASjD,IACP,IAAI3nC,EASJ,IAFA9D,KAAKu4B,MAAQ,IAAI0V,EAEZnqC,EAAI,EAAGA,EAAIoqC,EAAO5xC,OAAQwH,IAC7B9D,KAAKu4B,MAAMnzB,KAAK8oC,EAAOpqC,GAAG,GAAIoqC,EAAOpqC,GAAG,IAW1C,IAFA9D,KAAK6gC,OAAS,IAAIoN,EAEbnqC,EAAI,EAAGA,EAAI4qC,EAAQpyC,OAAQwH,IAC9B9D,KAAK6gC,OAAOz7B,KAAKspC,EAAQ5qC,GAAG,GAAI4qC,EAAQ5qC,GAAG,GAE/C,CAMA2nC,EAAajqC,UAAUwgC,UAAY,SAAUnL,GAC3C,IAAIqU,EAAIpnC,EAAG2C,EAAMowB,EAAMpwB,IACnB40B,EAAQr7B,KAAKu4B,MAAM4V,SAAS,IAC5BvZ,EAAMyG,EAAM/+B,OACZ+xC,EAAaxX,EAAMT,GAAGppB,QAAQqhC,WAC9BM,EAAQ9X,EAAM8X,MAGlB,GAA0B,qBAAfA,EAAMloC,GAAjB,CAKA,GAAIowB,EAAMmC,MAAQqV,GAChB,IAAKvqC,EAAI,EAAGA,EAAI8wB,EAAK9wB,IASnB,GAJA+yB,EAAMmC,QACNkS,EAAK7P,EAAMv3B,GAAG+yB,GAAO,GACrBA,EAAMmC,QAEFkS,EAAM,WAcZrU,EAAMpwB,IAAMowB,EAAMqI,OAGfgM,GAAMrU,EAAMpwB,MACjBkoC,EAAMloC,GAAOowB,EAAMpwB,GA9BnB,MAFEowB,EAAMpwB,IAAMkoC,EAAMloC,EAiCtB,EAKAglC,EAAajqC,UAAUi5B,SAAW,SAAU5D,GAC1C,IAAIqU,EAAIpnC,EACJu3B,EAAQr7B,KAAKu4B,MAAM4V,SAAS,IAC5BvZ,EAAMyG,EAAM/+B,OACZmU,EAAMomB,EAAMqI,OACZmP,EAAaxX,EAAMT,GAAGppB,QAAQqhC,WAElC,MAAOxX,EAAMpwB,IAAMgK,EAAK,CAQtB,GAAIomB,EAAMmC,MAAQqV,EAChB,IAAKvqC,EAAI,EAAGA,EAAI8wB,EAAK9wB,IAEnB,GADAonC,EAAK7P,EAAMv3B,GAAG+yB,GAAO,GACjBqU,EAAM,MAId,GAAIA,GACF,GAAIrU,EAAMpwB,KAAOgK,EAAO,WAI1BomB,EAAMqK,SAAWrK,EAAM1yB,IAAI0yB,EAAMpwB,MACnC,CAEIowB,EAAMqK,SACRrK,EAAM+X,aAEV,EAQAnD,EAAajqC,UAAU6P,MAAQ,SAAUge,EAAK+G,EAAI3hB,EAAK85B,GACrD,IAAIzqC,EAAGu3B,EAAOzG,EACViC,EAAQ,IAAI72B,KAAK4tC,MAAMve,EAAK+G,EAAI3hB,EAAK85B,GAOzC,IALAvuC,KAAKy6B,SAAS5D,GAEdwE,EAAQr7B,KAAK6gC,OAAOsN,SAAS,IAC7BvZ,EAAMyG,EAAM/+B,OAEPwH,EAAI,EAAGA,EAAI8wB,EAAK9wB,IACnBu3B,EAAMv3B,GAAG+yB,EAEb,EAGA4U,EAAajqC,UAAUosC,MAAQ,EAAQ,OAGvCryC,EAAOC,QAAUiwC,C,gCC3KjBlwC,EAAOC,QAAU,CACfwR,QAAS,CACP6hC,MAAc,EACd1Q,UAAc,EACd2Q,QAAc,EACdC,WAAc,YACdhC,SAAc,EAGdiC,aAAc,EAOdC,OAAQ,OAQRC,UAAW,KAEXb,WAAc,IAGhBnB,WAAY,CAEV3vC,KAAM,CACJ89B,MAAO,CACL,YACA,QACA,WAIJ/C,MAAO,CACL+C,MAAO,CACL,aACA,OACA,QACA,UACA,KACA,aACA,WACA,OACA,YACA,cAIJ8D,OAAQ,CACN9D,MAAO,CACL,WACA,YACA,WACA,SACA,SACA,cACA,QACA,OACA,UACA,QAEF+R,OAAQ,CACN,gBACA,WACA,mB,iCCtER7xC,EAAOC,QAAU,CACfwR,QAAS,CACP6hC,MAAc,EACd1Q,UAAc,EACd2Q,QAAc,EACdC,WAAc,YACdhC,SAAc,EAGdiC,aAAc,EAOdC,OAAQ,OAQRC,UAAW,KAEXb,WAAc,KAGhBnB,WAAY,CAEV3vC,KAAM,CAAC,EACP+6B,MAAO,CAAC,EACR6G,OAAQ,CAAC,G,+BChCb5jC,EAAOC,QAAU,CACfwR,QAAS,CACP6hC,MAAc,EACd1Q,UAAc,EACd2Q,QAAc,EACdC,WAAc,YACdhC,SAAc,EAGdiC,aAAc,EAOdC,OAAQ,OAQRC,UAAW,KAEXb,WAAc,IAGhBnB,WAAY,CAEV3vC,KAAM,CACJ89B,MAAO,CACL,YACA,QACA,WAIJ/C,MAAO,CACL+C,MAAO,CACL,cAIJ8D,OAAQ,CACN9D,MAAO,CACL,QAEF+R,OAAQ,CACN,gBACA,mB,qCC/CR,IAAIvd,EAAkB,gBAClBoa,EAAkB,qBAClBM,EAAkB,oBAKlB4E,EAAgB,CAAC,EAkHrB,SAAS7D,IA8BPtrC,KAAKq7B,MAAQxL,EAAO,CAAC,EAAGsf,EAC1B,CA9IAA,EAAcC,YAAc,SAAUxX,EAAQxC,EAAKpoB,EAASyH,EAAK46B,GAC/D,IAAIxX,EAAQD,EAAOxC,GACf5pB,EAAQ6jC,EAAIC,YAAYzX,GAE5B,MAAQ,SAAWrsB,EAAQ,IAAMA,EAAQ,IAAM,IACvC++B,EAAW3S,EAAOxC,GAAKiD,SACvB,SACV,EAGA8W,EAAcI,WAAa,SAAU3X,EAAQxC,EAAKpoB,EAASyH,EAAK46B,GAC9D,IAAIxX,EAAQD,EAAOxC,GACf5pB,EAAQ6jC,EAAIC,YAAYzX,GAE5B,MAAQ,QAAUrsB,EAAQ,IAAMA,EAAQ,IAAM,UACtC++B,EAAW3S,EAAOxC,GAAKiD,SACvB,iBACV,EAGA8W,EAAcK,MAAQ,SAAU5X,EAAQxC,EAAKpoB,EAASyH,EAAK46B,GACzD,IAGII,EAAa3rC,EAAG4rC,EAAUC,EAH1B9X,EAAQD,EAAOxC,GACfuI,EAAO9F,EAAM8F,KAAOsM,EAAYpS,EAAM8F,MAAMnG,OAAS,GACrDoY,EAAW,GAaf,OAVIjS,IACFiS,EAAWjS,EAAKr/B,MAAM,QAAQ,IAI9BmxC,EADEziC,EAAQkiC,WACIliC,EAAQkiC,UAAUrX,EAAMQ,QAASuX,IAEjCrF,EAAW1S,EAAMQ,SAGG,IAAhCoX,EAAYxkC,QAAQ,QACfwkC,EAAc,KAMnB9R,GACF75B,EAAW+zB,EAAMwK,UAAU,SAC3BqN,EAAW7X,EAAMrsB,MAAQqsB,EAAMrsB,MAAMlO,QAAU,GAE3CwG,EAAI,EACN4rC,EAAStqC,KAAK,CAAE,QAAS4H,EAAQ+hC,WAAaa,IAE9CF,EAAS5rC,IAAM,IAAMkJ,EAAQ+hC,WAAaa,EAI5CD,EAAW,CACTnkC,MAAOkkC,GAGD,aAAeL,EAAIC,YAAYK,GAAY,IAC3CF,EACA,mBAIF,aAAeJ,EAAIC,YAAYzX,GAAS,IACxC4X,EACA,iBACV,EAGAN,EAAcU,MAAQ,SAAUjY,EAAQxC,EAAKpoB,EAASyH,EAAK46B,GACzD,IAAIxX,EAAQD,EAAOxC,GAUnB,OAHAyC,EAAMrsB,MAAMqsB,EAAMwK,UAAU,QAAQ,GAClCgN,EAAIS,mBAAmBjY,EAAMve,SAAUtM,EAASyH,GAE3C46B,EAAItH,YAAYnQ,EAAQxC,EAAKpoB,EACtC,EAGAmiC,EAAcY,UAAY,SAAUnY,EAAQxC,EAAKpoB,GAC/C,OAAOA,EAAQmxB,SAAW,WAAa,QACzC,EACAgR,EAAca,UAAY,SAAUpY,EAAQxC,EAAKpoB,GAC/C,OAAOA,EAAQ8hC,OAAU9hC,EAAQmxB,SAAW,WAAa,SAAY,IACvE,EAGAgR,EAAchhC,KAAO,SAAUypB,EAAQxC,GACrC,OAAOmV,EAAW3S,EAAOxC,GAAKiD,QAChC,EAGA8W,EAAcc,WAAa,SAAUrY,EAAQxC,GAC3C,OAAOwC,EAAOxC,GAAKiD,OACrB,EACA8W,EAAce,YAAc,SAAUtY,EAAQxC,GAC5C,OAAOwC,EAAOxC,GAAKiD,OACrB,EA+CAiT,EAAS9pC,UAAU8tC,YAAc,SAAqBzX,GACpD,IAAI/zB,EAAG8C,EAAGnC,EAEV,IAAKozB,EAAMrsB,MAAS,MAAO,GAI3B,IAFA/G,EAAS,GAEJX,EAAI,EAAG8C,EAAIixB,EAAMrsB,MAAMlP,OAAQwH,EAAI8C,EAAG9C,IACzCW,GAAU,IAAM8lC,EAAW1S,EAAMrsB,MAAM1H,GAAG,IAAM,KAAOymC,EAAW1S,EAAMrsB,MAAM1H,GAAG,IAAM,IAGzF,OAAOW,CACT,EAYA6mC,EAAS9pC,UAAUumC,YAAc,SAAqBnQ,EAAQxC,EAAKpoB,GACjE,IAAIoE,EACA3M,EAAS,GACT0rC,GAAS,EACTtY,EAAQD,EAAOxC,GAGnB,OAAIyC,EAAMoB,OACD,IAULpB,EAAMS,QAA4B,IAAnBT,EAAM+F,SAAkBxI,GAAOwC,EAAOxC,EAAM,GAAG6D,SAChEx0B,GAAU,MAIZA,KAA8B,IAAnBozB,EAAM+F,QAAiB,KAAO,KAAO/F,EAAM/xB,IAGtDrB,GAAUzE,KAAKsvC,YAAYzX,GAGL,IAAlBA,EAAM+F,SAAiB5wB,EAAQmxB,WACjC15B,GAAU,MAIRozB,EAAMS,QACR6X,GAAS,EAEa,IAAlBtY,EAAM+F,SACJxI,EAAM,EAAIwC,EAAOt7B,SACnB8U,EAAYwmB,EAAOxC,EAAM,IAEF,WAAnBhkB,EAAUvS,MAAqBuS,EAAU6nB,SAKX,IAAvB7nB,EAAUwsB,SAAkBxsB,EAAUtL,MAAQ+xB,EAAM/xB,OAF7DqqC,GAAS,KAWjB1rC,GAAU0rC,EAAS,MAAQ,IAEpB1rC,EACT,EAWA6mC,EAAS9pC,UAAUwsC,aAAe,SAAUpW,EAAQ5qB,EAASyH,GAK3D,IAJA,IAAI5V,EACA4F,EAAS,GACT42B,EAAQr7B,KAAKq7B,MAERv3B,EAAI,EAAG8wB,EAAMgD,EAAOt7B,OAAQwH,EAAI8wB,EAAK9wB,IAC5CjF,EAAO+4B,EAAO9zB,GAAGjF,KAEU,qBAAhBw8B,EAAMx8B,GACf4F,GAAU42B,EAAMx8B,GAAM+4B,EAAQ9zB,EAAGkJ,EAASyH,EAAKzU,MAE/CyE,GAAUzE,KAAK+nC,YAAYnQ,EAAQ9zB,EAAGkJ,GAI1C,OAAOvI,CACT,EAaA6mC,EAAS9pC,UAAUsuC,mBAAqB,SAAUlY,EAAQ5qB,EAASyH,GAGjE,IAFA,IAAIhQ,EAAS,GAEJX,EAAI,EAAG8wB,EAAMgD,EAAOt7B,OAAQwH,EAAI8wB,EAAK9wB,IACrB,SAAnB8zB,EAAO9zB,GAAGjF,KACZ4F,GAAUmzB,EAAO9zB,GAAGu0B,QACQ,UAAnBT,EAAO9zB,GAAGjF,OACnB4F,GAAUzE,KAAK8vC,mBAAmBlY,EAAO9zB,GAAGwV,SAAUtM,EAASyH,IAInE,OAAOhQ,CACT,EAYA6mC,EAAS9pC,UAAUqL,OAAS,SAAU+qB,EAAQ5qB,EAASyH,GACrD,IAAI3Q,EAAG8wB,EAAK/1B,EACR4F,EAAS,GACT42B,EAAQr7B,KAAKq7B,MAEjB,IAAKv3B,EAAI,EAAG8wB,EAAMgD,EAAOt7B,OAAQwH,EAAI8wB,EAAK9wB,IACxCjF,EAAO+4B,EAAO9zB,GAAGjF,KAEJ,WAATA,EACF4F,GAAUzE,KAAKguC,aAAapW,EAAO9zB,GAAGwV,SAAUtM,EAASyH,GACzB,qBAAhB4mB,EAAMx8B,GACtB4F,GAAU42B,EAAMzD,EAAO9zB,GAAGjF,MAAM+4B,EAAQ9zB,EAAGkJ,EAASyH,EAAKzU,MAEzDyE,GAAUzE,KAAK+nC,YAAYnQ,EAAQ9zB,EAAGkJ,EAASyH,GAInD,OAAOhQ,CACT,EAEAlJ,EAAOC,QAAU8vC,C,iCCzTjB,SAAS2C,IAUPjuC,KAAKowC,UAAY,GAOjBpwC,KAAKqwC,UAAY,IACnB,CAQApC,EAAMzsC,UAAU8uC,SAAW,SAAUxxC,GACnC,IAAK,IAAIgF,EAAI,EAAGA,EAAI9D,KAAKowC,UAAU9zC,OAAQwH,IACzC,GAAI9D,KAAKowC,UAAUtsC,GAAGhF,OAASA,EAC7B,OAAOgF,EAGX,OAAQ,CACV,EAKAmqC,EAAMzsC,UAAU+uC,YAAc,WAC5B,IAAI/vC,EAAOR,KACPwwC,EAAS,CAAE,IAGfhwC,EAAK4vC,UAAUllC,SAAQ,SAAU6R,GAC1BA,EAAKme,SAEVne,EAAK0b,IAAIvtB,SAAQ,SAAUulC,GACrBD,EAAOvlC,QAAQwlC,GAAW,GAC5BD,EAAOprC,KAAKqrC,EAEhB,GACF,IAEAjwC,EAAK6vC,UAAY,CAAC,EAElBG,EAAOtlC,SAAQ,SAAUqiC,GACvB/sC,EAAK6vC,UAAU9C,GAAS,GACxB/sC,EAAK4vC,UAAUllC,SAAQ,SAAU6R,GAC1BA,EAAKme,UAENqS,GAASxwB,EAAK0b,IAAIxtB,QAAQsiC,GAAS,GAEvC/sC,EAAK6vC,UAAU9C,GAAOnoC,KAAK2X,EAAKpf,IAClC,GACF,GACF,EA4BAswC,EAAMzsC,UAAUkvC,GAAK,SAAU5xC,EAAMnB,EAAIqP,GACvC,IAAIzQ,EAAQyD,KAAKswC,SAASxxC,GACtB6xC,EAAM3jC,GAAW,CAAC,EAEtB,IAAe,IAAXzQ,EAAgB,MAAM,IAAIyO,MAAM,0BAA4BlM,GAEhEkB,KAAKowC,UAAU7zC,GAAOoB,GAAKA,EAC3BqC,KAAKowC,UAAU7zC,GAAOk8B,IAAMkY,EAAIlY,KAAO,GACvCz4B,KAAKqwC,UAAY,IACnB,EA2BApC,EAAMzsC,UAAUg3B,OAAS,SAAUoY,EAAYC,EAAUlzC,EAAIqP,GAC3D,IAAIzQ,EAAQyD,KAAKswC,SAASM,GACtBD,EAAM3jC,GAAW,CAAC,EAEtB,IAAe,IAAXzQ,EAAgB,MAAM,IAAIyO,MAAM,0BAA4B4lC,GAEhE5wC,KAAKowC,UAAUnlB,OAAO1uB,EAAO,EAAG,CAC9BuC,KAAM+xC,EACN3V,SAAS,EACTv9B,GAAIA,EACJ86B,IAAKkY,EAAIlY,KAAO,KAGlBz4B,KAAKqwC,UAAY,IACnB,EA2BApC,EAAMzsC,UAAUk3B,MAAQ,SAAUoY,EAAWD,EAAUlzC,EAAIqP,GACzD,IAAIzQ,EAAQyD,KAAKswC,SAASQ,GACtBH,EAAM3jC,GAAW,CAAC,EAEtB,IAAe,IAAXzQ,EAAgB,MAAM,IAAIyO,MAAM,0BAA4B8lC,GAEhE9wC,KAAKowC,UAAUnlB,OAAO1uB,EAAQ,EAAG,EAAG,CAClCuC,KAAM+xC,EACN3V,SAAS,EACTv9B,GAAIA,EACJ86B,IAAKkY,EAAIlY,KAAO,KAGlBz4B,KAAKqwC,UAAY,IACnB,EAyBApC,EAAMzsC,UAAU4D,KAAO,SAAUyrC,EAAUlzC,EAAIqP,GAC7C,IAAI2jC,EAAM3jC,GAAW,CAAC,EAEtBhN,KAAKowC,UAAUhrC,KAAK,CAClBtG,KAAM+xC,EACN3V,SAAS,EACTv9B,GAAIA,EACJ86B,IAAKkY,EAAIlY,KAAO,KAGlBz4B,KAAKqwC,UAAY,IACnB,EAeApC,EAAMzsC,UAAU6rC,OAAS,SAAUpe,EAAMqe,GAClCplC,MAAMgtB,QAAQjG,KAASA,EAAO,CAAEA,IAErC,IAAIxqB,EAAS,GAeb,OAZAwqB,EAAK/jB,SAAQ,SAAUpM,GACrB,IAAIs2B,EAAMp1B,KAAKswC,SAASxxC,GAExB,GAAIs2B,EAAM,EAAG,CACX,GAAIkY,EAAiB,OACrB,MAAM,IAAItiC,MAAM,oCAAsClM,EACxD,CACAkB,KAAKowC,UAAUhb,GAAK8F,SAAU,EAC9Bz2B,EAAOW,KAAKtG,EACd,GAAGkB,MAEHA,KAAKqwC,UAAY,KACV5rC,CACT,EAaAwpC,EAAMzsC,UAAU2rC,WAAa,SAAUle,EAAMqe,GACtCplC,MAAMgtB,QAAQjG,KAASA,EAAO,CAAEA,IAErCjvB,KAAKowC,UAAUllC,SAAQ,SAAU6R,GAAQA,EAAKme,SAAU,CAAO,IAE/Dl7B,KAAKqtC,OAAOpe,EAAMqe,EACpB,EAeAW,EAAMzsC,UAAUisC,QAAU,SAAUxe,EAAMqe,GACnCplC,MAAMgtB,QAAQjG,KAASA,EAAO,CAAEA,IAErC,IAAIxqB,EAAS,GAeb,OAZAwqB,EAAK/jB,SAAQ,SAAUpM,GACrB,IAAIs2B,EAAMp1B,KAAKswC,SAASxxC,GAExB,GAAIs2B,EAAM,EAAG,CACX,GAAIkY,EAAiB,OACrB,MAAM,IAAItiC,MAAM,oCAAsClM,EACxD,CACAkB,KAAKowC,UAAUhb,GAAK8F,SAAU,EAC9Bz2B,EAAOW,KAAKtG,EACd,GAAGkB,MAEHA,KAAKqwC,UAAY,KACV5rC,CACT,EAYAwpC,EAAMzsC,UAAU2sC,SAAW,SAAU4C,GAMnC,OALuB,OAAnB/wC,KAAKqwC,WACPrwC,KAAKuwC,cAIAvwC,KAAKqwC,UAAUU,IAAc,EACtC,EAEAx1C,EAAOC,QAAUyyC,C,qCC3VjB,IAAItV,EAAU,iBAGdp9B,EAAOC,QAAU,SAAoBq7B,EAAOC,EAAWC,EAASC,GAC9D,IAAIyC,EAAUuX,EAAelX,EAAWD,EAAWoX,EAAWtX,EAAWC,EAAeqR,EAAOrM,EAAS1c,EAAQuM,EAC5GyiB,EAAiBrZ,EACjB/zB,EAAG8C,EAAGuqC,EACN1qC,EAAMowB,EAAMQ,OAAOP,GAAaD,EAAMS,OAAOR,GAC7C/vB,EAAM8vB,EAAMU,OAAOT,GAGvB,GAAoC,KAAhCD,EAAM1yB,IAAI0C,WAAWJ,KAA0B,OAAO,EAI1D,GAAIuwB,EAAU,OAAO,EAGa,KAA9BH,EAAM1yB,IAAI0C,WAAWJ,IAAiBA,IAE1CkzB,EAAY9C,EAAMwD,UAClBxD,EAAMwD,UAAY,EAGlBuE,EAAU1c,EAAS2U,EAAMuD,OAAOtD,GAAarwB,GAAOowB,EAAMQ,OAAOP,GAAaD,EAAMS,OAAOR,IAE3Fma,EAAY,CAAEpa,EAAMQ,OAAOP,IAC3BD,EAAMQ,OAAOP,GAAarwB,EAE1B,MAAOA,EAAMM,EAAK,CAGhB,GAFA0nB,EAAKoI,EAAM1yB,IAAI0C,WAAWJ,IAEtBkyB,EAAQlK,GAOV,MANW,IAAPA,EACFvM,GAAU,EAAIA,EAAS,EAEvBA,IAMJzb,GACF,CA8BA,IA5BAuqC,EAAgBvqC,GAAOM,EAEvB8yB,EAAY,CAAEhD,EAAMuD,OAAOtD,IAC3BD,EAAMuD,OAAOtD,GAAa5U,EAAS0c,EAEnC9E,EAAY,CAAEjD,EAAMS,OAAOR,IAC3BD,EAAMS,OAAOR,GAAarwB,EAAMowB,EAAMQ,OAAOP,GAE7Coa,EAAkBra,EAAMT,GAAGkC,MAAMC,MAAM4V,SAAS,cAoB3C1U,EAAW3C,EAAY,EAAG2C,EAAW1C,EAAS0C,IAAY,CAC7D,GAAI5C,EAAMuD,OAAOX,GAAYE,EAAa,MAK1C,GAHAlzB,EAAMowB,EAAMQ,OAAOoC,GAAY5C,EAAMS,OAAOmC,GAC5C1yB,EAAM8vB,EAAMU,OAAOkC,GAEfhzB,GAAOM,EAET,MAGF,GAAoC,KAAhC8vB,EAAM1yB,IAAI0C,WAAWJ,KAAzB,CAuCA,GAAIuqC,EAAiB,MAIrB,IADAG,GAAY,EACPrtC,EAAI,EAAG8C,EAAIsqC,EAAgB50C,OAAQwH,EAAI8C,EAAG9C,IAC7C,GAAIotC,EAAgBptC,GAAG+yB,EAAO4C,EAAU1C,GAAS,GAAO,CACtDoa,GAAY,EACZ,KACF,CAEF,GAAIA,EAAa,MAEjBF,EAAU7rC,KAAKyxB,EAAMQ,OAAOoC,IAC5BK,EAAU10B,KAAKyxB,EAAMS,OAAOmC,IAC5BI,EAAUz0B,KAAKyxB,EAAMuD,OAAOX,IAI5B5C,EAAMuD,OAAOX,IAAa,CArB1B,KApCA,CAIoC,KAA9B5C,EAAM1yB,IAAI0C,WAAWJ,IAAiBA,IAG1Cm4B,EAAU1c,EAAS2U,EAAMuD,OAAOX,GAAYhzB,GAAOowB,EAAMQ,OAAOoC,GAAY5C,EAAMS,OAAOmC,IAEzFwX,EAAU7rC,KAAKyxB,EAAMQ,OAAOoC,IAC5B5C,EAAMQ,OAAOoC,GAAYhzB,EAEzB,MAAOA,EAAMM,EAAK,CAGhB,GAFA0nB,EAAKoI,EAAM1yB,IAAI0C,WAAWJ,IAEtBkyB,EAAQlK,GAOV,MANW,IAAPA,EACFvM,GAAU,EAAIA,EAAS,EAEvBA,IAMJzb,GACF,CAEAuqC,EAAgBvqC,GAAOM,EAEvB8yB,EAAUz0B,KAAKyxB,EAAMuD,OAAOX,IAC5B5C,EAAMuD,OAAOX,GAAYvX,EAAS0c,EAElC9E,EAAU10B,KAAKyxB,EAAMS,OAAOmC,IAC5B5C,EAAMS,OAAOmC,GAAYhzB,EAAMowB,EAAMQ,OAAOoC,EAE9C,CAsBF,CAmBA,IAjBAG,EAAgB/C,EAAM2D,WACtB3D,EAAM2D,WAAa,aAEnB3C,EAAehB,EAAMzxB,KAAK,kBAAmB,aAAc,GAC3DyyB,EAAMxM,OAAS,IACfwM,EAAMzQ,IAAS6jB,EAAQ,CAAEnU,EAAW,GAEpCD,EAAMT,GAAGkC,MAAMmC,SAAS5D,EAAOC,EAAW2C,GAE1C5B,EAAehB,EAAMzxB,KAAK,mBAAoB,cAAe,GAC7DyyB,EAAMxM,OAAS,IAEfwL,EAAM2D,WAAaZ,EACnBqR,EAAM,GAAKpU,EAAMtS,KAIZzgB,EAAI,EAAGA,EAAIg2B,EAAUx9B,OAAQwH,IAChC+yB,EAAMQ,OAAOvzB,EAAIgzB,GAAama,EAAUntC,GACxC+yB,EAAMS,OAAOxzB,EAAIgzB,GAAagD,EAAUh2B,GACxC+yB,EAAMuD,OAAOt2B,EAAIgzB,GAAa+C,EAAU/1B,GAI1C,OAFA+yB,EAAMwD,UAAYV,GAEX,CACT,C,iCCxKAp+B,EAAOC,QAAU,SAAcq7B,EAAOC,EAAWC,GAC/C,IAAI0C,EAAU2X,EAAMvZ,EAAOwZ,EAAa,EAExC,GAAIxa,EAAMuD,OAAOtD,GAAaD,EAAMwD,UAAY,EAAK,OAAO,EAE5D+W,EAAO3X,EAAW3C,EAAY,EAE9B,MAAO2C,EAAW1C,EAChB,GAAIF,EAAMsD,QAAQV,GAAlB,CAKE,GAJA4X,IAIIA,GAAc,GAA0B,SAArBxa,EAAM2D,WAC3B,MAGFf,GAEF,KAXA,CAeA,GAFA4X,EAAa,IAETxa,EAAMuD,OAAOX,GAAY5C,EAAMwD,WAAa,GAKhD,MAJEZ,IACA2X,EAAO3X,CANT,CAkBF,OANA5C,EAAMtS,KAAO6sB,EAEbvZ,EAAgBhB,EAAMzxB,KAAK,aAAc,OAAQ,GACjDyyB,EAAMQ,QAAUxB,EAAM0D,SAASzD,EAAWsa,EAAM,EAAIva,EAAMwD,WAAW,GACrExC,EAAMzQ,IAAU,CAAE0P,EAAWD,EAAMtS,OAE5B,CACT,C,iCCtCAhpB,EAAOC,QAAU,SAAeq7B,EAAOC,EAAWC,EAASC,GACzD,IAAI6B,EAAQjE,EAAK0c,EAAQ7X,EAAU8X,EAAK1Z,EAAOxM,EAC3CmmB,GAAgB,EAChB/qC,EAAMowB,EAAMQ,OAAOP,GAAaD,EAAMS,OAAOR,GAC7C/vB,EAAM8vB,EAAMU,OAAOT,GAEvB,GAAIrwB,EAAM,EAAIM,EAAO,OAAO,EAI5B,GAFA8xB,EAAShC,EAAM1yB,IAAI0C,WAAWJ,GAEf,MAAXoyB,GAAqC,KAAXA,EAC5B,OAAO,EAST,GALA0Y,EAAM9qC,EACNA,EAAMowB,EAAM4a,UAAUhrC,EAAKoyB,GAE3BjE,EAAMnuB,EAAM8qC,EAER3c,EAAM,EAAK,OAAO,EAKtB,GAHAvJ,EAASwL,EAAM1yB,IAAI7G,MAAMi0C,EAAK9qC,GAC9B6qC,EAASza,EAAM1yB,IAAI7G,MAAMmJ,EAAKM,GAE1BuqC,EAAOrmC,QAAQ,MAAQ,EAAK,OAAO,EAGvC,GAAI+rB,EAAU,OAAO,EAKrB,IAFAyC,EAAW3C,IAEF,CAEP,GADA2C,IACIA,GAAY1C,EAGd,MAMF,GAHAtwB,EAAM8qC,EAAM1a,EAAMQ,OAAOoC,GAAY5C,EAAMS,OAAOmC,GAClD1yB,EAAM8vB,EAAMU,OAAOkC,GAEfhzB,EAAMM,GAAO8vB,EAAMuD,OAAOX,GAAY5C,EAAMwD,UAI9C,MAGF,GAAIxD,EAAM1yB,IAAI0C,WAAWJ,KAASoyB,MAE9BhC,EAAMuD,OAAOX,GAAY5C,EAAMwD,WAAa,KAKhD5zB,EAAMowB,EAAM4a,UAAUhrC,EAAKoyB,KAGvBpyB,EAAM8qC,EAAM3c,KAGhBnuB,EAAMowB,EAAMiC,WAAWryB,KAEnBA,EAAMM,MAAV,CAEAyqC,GAAgB,EAEhB,KAJ2B,CAK7B,CAaA,OAVA5c,EAAMiC,EAAMuD,OAAOtD,GAEnBD,EAAMtS,KAAOkV,GAAY+X,EAAgB,EAAI,GAE7C3Z,EAAgBhB,EAAMzxB,KAAK,QAAS,OAAQ,GAC5CyyB,EAAM8F,KAAU2T,EAChBzZ,EAAMQ,QAAUxB,EAAM0D,SAASzD,EAAY,EAAG2C,EAAU7E,GAAK,GAC7DiD,EAAMxM,OAAUA,EAChBwM,EAAMzQ,IAAU,CAAE0P,EAAWD,EAAMtS,OAE5B,CACT,C,qCCtFA,IAAIoU,EAAU,iBAGdp9B,EAAOC,QAAU,SAAiBq7B,EAAOC,EAAWC,EAASC,GAC3D,IAAIvI,EAAIuK,EAAO0Y,EAAK7Z,EAChBpxB,EAAMowB,EAAMQ,OAAOP,GAAaD,EAAMS,OAAOR,GAC7C/vB,EAAM8vB,EAAMU,OAAOT,GAIvB,GAFArI,EAAMoI,EAAM1yB,IAAI0C,WAAWJ,GAEhB,KAAPgoB,GAAsBhoB,GAAOM,EAAO,OAAO,EAG/CiyB,EAAQ,EACRvK,EAAKoI,EAAM1yB,IAAI0C,aAAaJ,GAC5B,MAAc,KAAPgoB,GAAsBhoB,EAAMM,GAAOiyB,GAAS,EACjDA,IACAvK,EAAKoI,EAAM1yB,IAAI0C,aAAaJ,GAG9B,QAAIuyB,EAAQ,GAAMvyB,EAAMM,GAAc,KAAP0nB,KAE3BuI,IAIJjwB,EAAM8vB,EAAM8a,eAAe5qC,EAAKN,GAChCirC,EAAM7a,EAAM+a,cAAc7qC,EAAK,GAAMN,GACjCirC,EAAMjrC,GAAOkyB,EAAQ9B,EAAM1yB,IAAI0C,WAAW6qC,EAAM,MAClD3qC,EAAM2qC,GAGR7a,EAAMtS,KAAOuS,EAAY,EAEzBe,EAAehB,EAAMzxB,KAAK,eAAgB,IAAMuB,OAAOqyB,GAAQ,GAC/DnB,EAAMxM,OAAS,WAAW/tB,MAAM,EAAG07B,GACnCnB,EAAMzQ,IAAS,CAAE0P,EAAWD,EAAMtS,MAElCsT,EAAiBhB,EAAMzxB,KAAK,SAAU,GAAI,GAC1CyyB,EAAMQ,QAAWxB,EAAM1yB,IAAI7G,MAAMmJ,EAAKM,GAAKywB,OAC3CK,EAAMzQ,IAAW,CAAE0P,EAAWD,EAAMtS,MACpCsT,EAAMve,SAAW,GAEjBue,EAAehB,EAAMzxB,KAAK,gBAAiB,IAAMuB,OAAOqyB,IAAS,GACjEnB,EAAMxM,OAAS,WAAW/tB,MAAM,EAAG07B,KAtBd,EAyBvB,C,qCC/CA,IAAIL,EAAU,iBAGdp9B,EAAOC,QAAU,SAAYq7B,EAAOC,EAAWC,EAASC,GACtD,IAAI6B,EAAQgZ,EAAKpjB,EAAIoJ,EACjBpxB,EAAMowB,EAAMQ,OAAOP,GAAaD,EAAMS,OAAOR,GAC7C/vB,EAAM8vB,EAAMU,OAAOT,GAKvB,GAHA+B,EAAShC,EAAM1yB,IAAI0C,WAAWJ,KAGf,KAAXoyB,GACW,KAAXA,GACW,KAAXA,EACF,OAAO,EAKTgZ,EAAM,EACN,MAAOprC,EAAMM,EAAK,CAEhB,GADA0nB,EAAKoI,EAAM1yB,IAAI0C,WAAWJ,KACtBgoB,IAAOoK,IAAWF,EAAQlK,GAAO,OAAO,EACxCA,IAAOoK,GAAUgZ,GACvB,CAEA,QAAIA,EAAM,KAEN7a,IAEJH,EAAMtS,KAAOuS,EAAY,EAEzBe,EAAehB,EAAMzxB,KAAK,KAAM,KAAM,GACtCyyB,EAAMzQ,IAAS,CAAE0P,EAAWD,EAAMtS,MAClCsT,EAAMxM,OAASnjB,MAAM2pC,EAAM,GAAG3mB,KAAKvkB,OAAO05B,aAAaxH,MANlC,EASvB,C,qCCpCA,IAAIiZ,EAAc,EAAQ,OACtB7I,EAAyB,WAKzB8I,EAAiB,CACnB,CAAE,oCAAqC,2BAA2B,GAClE,CAAE,QAAgB,OAAS,GAC3B,CAAE,OAAgB,OAAS,GAC3B,CAAE,WAAgB,KAAS,GAC3B,CAAE,eAAgB,SAAS,GAC3B,CAAE,IAAIxnC,OAAO,QAAUunC,EAAY5mB,KAAK,KAAO,mBAAoB,KAAM,MAAM,GAC/E,CAAE,IAAI3gB,OAAO0+B,EAAuBlqC,OAAS,SAAW,MAAM,IAIhExD,EAAOC,QAAU,SAAoBq7B,EAAOC,EAAWC,EAASC,GAC9D,IAAIlzB,EAAG21B,EAAU5B,EAAOma,EACpBvrC,EAAMowB,EAAMQ,OAAOP,GAAaD,EAAMS,OAAOR,GAC7C/vB,EAAM8vB,EAAMU,OAAOT,GAEvB,IAAKD,EAAMT,GAAGppB,QAAQ6hC,KAAQ,OAAO,EAErC,GAAkC,KAA9BhY,EAAM1yB,IAAI0C,WAAWJ,GAAwB,OAAO,EAIxD,IAFAurC,EAAWnb,EAAM1yB,IAAI7G,MAAMmJ,EAAKM,GAE3BjD,EAAI,EAAGA,EAAIiuC,EAAez1C,OAAQwH,IACrC,GAAIiuC,EAAejuC,GAAG,GAAGiV,KAAKi5B,GAAa,MAG7C,GAAIluC,IAAMiuC,EAAez1C,OAAU,OAAO,EAE1C,GAAI06B,EAEF,OAAO+a,EAAejuC,GAAG,GAO3B,GAJA21B,EAAW3C,EAAY,GAIlBib,EAAejuC,GAAG,GAAGiV,KAAKi5B,GAC7B,KAAOvY,EAAW1C,EAAS0C,IAAY,CACrC,GAAI5C,EAAMuD,OAAOX,GAAY5C,EAAMwD,UAAa,MAMhD,GAJA5zB,EAAMowB,EAAMQ,OAAOoC,GAAY5C,EAAMS,OAAOmC,GAC5C1yB,EAAM8vB,EAAMU,OAAOkC,GACnBuY,EAAWnb,EAAM1yB,IAAI7G,MAAMmJ,EAAKM,GAE5BgrC,EAAejuC,GAAG,GAAGiV,KAAKi5B,GAAW,CACf,IAApBA,EAAS11C,QAAgBm9B,IAC7B,KACF,CACF,CASF,OANA5C,EAAMtS,KAAOkV,EAEb5B,EAAgBhB,EAAMzxB,KAAK,aAAc,GAAI,GAC7CyyB,EAAMzQ,IAAU,CAAE0P,EAAW2C,GAC7B5B,EAAMQ,QAAUxB,EAAM0D,SAASzD,EAAW2C,EAAU5C,EAAMwD,WAAW,IAE9D,CACT,C,iCCjEA9+B,EAAOC,QAAU,SAAkBq7B,EAAOC,EAAWC,GAMnD,IALA,IAAIsB,EAAS8Y,EAAWrtC,EAAG8C,EAAGixB,EAAOpxB,EAAKM,EAAKiyB,EAAOH,EAClDY,EAAW3C,EAAY,EACvBoa,EAAkBra,EAAMT,GAAGkC,MAAMC,MAAM4V,SAAS,aAG7C1U,EAAW1C,IAAYF,EAAMsD,QAAQV,GAAWA,IAGrD,KAAI5C,EAAMuD,OAAOX,GAAY5C,EAAMwD,UAAY,GAA/C,CAKA,GAAIxD,EAAMuD,OAAOX,IAAa5C,EAAMwD,YAClC5zB,EAAMowB,EAAMQ,OAAOoC,GAAY5C,EAAMS,OAAOmC,GAC5C1yB,EAAM8vB,EAAMU,OAAOkC,GAEfhzB,EAAMM,IACR8xB,EAAShC,EAAM1yB,IAAI0C,WAAWJ,IAEf,KAAXoyB,GAAqC,KAAXA,KAC5BpyB,EAAMowB,EAAM4a,UAAUhrC,EAAKoyB,GAC3BpyB,EAAMowB,EAAMiC,WAAWryB,GAEnBA,GAAOM,KAAK,CACdiyB,EAAoB,KAAXH,EAAyB,EAAI,EACtC,KACF,CAMN,KAAIhC,EAAMuD,OAAOX,GAAY,GAA7B,CAIA,IADA0X,GAAY,EACPrtC,EAAI,EAAG8C,EAAIsqC,EAAgB50C,OAAQwH,EAAI8C,EAAG9C,IAC7C,GAAIotC,EAAgBptC,GAAG+yB,EAAO4C,EAAU1C,GAAS,GAAO,CACtDoa,GAAY,EACZ,KACF,CAEF,GAAIA,EAAa,KAV2B,CAzBkB,CAsChE,QAAKnY,IAKLX,EAAUxB,EAAM0D,SAASzD,EAAW2C,EAAU5C,EAAMwD,WAAW,GAAO7C,OAEtEX,EAAMtS,KAAOkV,EAAW,EAExB5B,EAAiBhB,EAAMzxB,KAAK,eAAgB,IAAMuB,OAAOqyB,GAAQ,GACjEnB,EAAMxM,OAAW1kB,OAAO05B,aAAaxH,GACrChB,EAAMzQ,IAAW,CAAE0P,EAAWD,EAAMtS,MAEpCsT,EAAiBhB,EAAMzxB,KAAK,SAAU,GAAI,GAC1CyyB,EAAMQ,QAAWA,EACjBR,EAAMzQ,IAAW,CAAE0P,EAAWD,EAAMtS,KAAO,GAC3CsT,EAAMve,SAAW,GAEjBue,EAAiBhB,EAAMzxB,KAAK,gBAAiB,IAAMuB,OAAOqyB,IAAS,GACnEnB,EAAMxM,OAAW1kB,OAAO05B,aAAaxH,IAE9B,EACT,C,qCCtEA,IAAIF,EAAU,iBAKd,SAASsZ,EAAqBpb,EAAOC,GACnC,IAAI+B,EAAQpyB,EAAKM,EAAK0nB,EAOtB,OALAhoB,EAAMowB,EAAMQ,OAAOP,GAAaD,EAAMS,OAAOR,GAC7C/vB,EAAM8vB,EAAMU,OAAOT,GAEnB+B,EAAShC,EAAM1yB,IAAI0C,WAAWJ,KAEf,KAAXoyB,GACW,KAAXA,GACW,KAAXA,GAIApyB,EAAMM,IACR0nB,EAAKoI,EAAM1yB,IAAI0C,WAAWJ,IAErBkyB,EAAQlK,KANL,EAYHhoB,CACT,CAIA,SAASyrC,EAAsBrb,EAAOC,GACpC,IAAIrI,EACAva,EAAQ2iB,EAAMQ,OAAOP,GAAaD,EAAMS,OAAOR,GAC/CrwB,EAAMyN,EACNnN,EAAM8vB,EAAMU,OAAOT,GAGvB,GAAIrwB,EAAM,GAAKM,EAAO,OAAQ,EAI9B,GAFA0nB,EAAKoI,EAAM1yB,IAAI0C,WAAWJ,KAEtBgoB,EAAK,IAAeA,EAAK,GAAe,OAAQ,EAEpD,OAAS,CAEP,GAAIhoB,GAAOM,EAAO,OAAQ,EAI1B,GAFA0nB,EAAKoI,EAAM1yB,IAAI0C,WAAWJ,OAEtBgoB,GAAM,IAAeA,GAAM,IAA/B,CAUA,GAAW,KAAPA,GAA6B,KAAPA,EACxB,MAGF,OAAQ,CAPR,CAHE,GAAIhoB,EAAMyN,GAAS,GAAM,OAAQ,CAWrC,CAGA,OAAIzN,EAAMM,IACR0nB,EAAKoI,EAAM1yB,IAAI0C,WAAWJ,IAErBkyB,EAAQlK,KAEH,EAGLhoB,CACT,CAEA,SAASsyB,EAAoBlC,EAAOzB,GAClC,IAAItxB,EAAG8C,EACHoyB,EAAQnC,EAAMmC,MAAQ,EAE1B,IAAKl1B,EAAIsxB,EAAM,EAAGxuB,EAAIiwB,EAAMe,OAAOt7B,OAAS,EAAGwH,EAAI8C,EAAG9C,IAChD+yB,EAAMe,OAAO9zB,GAAGk1B,QAAUA,GAAkC,mBAAzBnC,EAAMe,OAAO9zB,GAAGjF,OACrDg4B,EAAMe,OAAO9zB,EAAI,GAAGm1B,QAAS,EAC7BpC,EAAMe,OAAO9zB,GAAGm1B,QAAS,EACzBn1B,GAAK,EAGX,CAGAvI,EAAOC,QAAU,SAAcq7B,EAAOC,EAAWC,EAASC,GACxD,IAAIyC,EACAmF,EACA1c,EACAmkB,EACAvM,EACAH,EACAwY,EACApY,EACAH,EACA1lB,EACAk+B,EACA3jB,EACAhoB,EACAM,EACAsrC,EACAC,EACAC,EACAC,EACArZ,EACAK,EACAQ,EACAT,EACAD,EAEA4X,EACArZ,EACA/zB,EAAG8C,EAAGuqC,EAHNlX,GAAQ,EAMZ,IAAKmY,EAAiBF,EAAsBrb,EAAOC,KAAe,EAChE0b,GAAY,MACP,OAAKJ,EAAiBH,EAAqBpb,EAAOC,KAAe,GAGtE,OAAO,EAFP0b,GAAY,CAGd,CAMA,GAHAD,EAAiB1b,EAAM1yB,IAAI0C,WAAWurC,EAAiB,GAGnDpb,EAAU,OAAO,EAGrBwC,EAAa3C,EAAMe,OAAOt7B,OAEtBk2C,GACFt+B,EAAQ2iB,EAAMQ,OAAOP,GAAaD,EAAMS,OAAOR,GAC/Cwb,EAAcvU,OAAOlH,EAAM1yB,IAAIi0B,OAAOlkB,EAAOk+B,EAAiBl+B,EAAQ,IAEtE2jB,EAAchB,EAAMzxB,KAAK,oBAAqB,KAAM,GAChC,IAAhBktC,IACFza,EAAMrsB,MAAQ,CAAE,CAAE,QAAS8mC,MAI7Bza,EAAchB,EAAMzxB,KAAK,mBAAoB,KAAM,GAGrDyyB,EAAMzQ,IAASmS,EAAY,CAAEzC,EAAW,GACxCe,EAAMxM,OAAS1kB,OAAO05B,aAAakS,GAMnC9Y,EAAW3C,EACXkD,GAAe,EACfkX,EAAkBra,EAAMT,GAAGkC,MAAMC,MAAM4V,SAAS,QAEhD,MAAO1U,EAAW1C,EAAS,CACzBtwB,EAAM2rC,EACNrrC,EAAM8vB,EAAMU,OAAOkC,GAEnBmF,EAAU1c,EAAS2U,EAAMuD,OAAOX,GAAY2Y,GAAkBvb,EAAMQ,OAAOP,GAAaD,EAAMS,OAAOR,IAErG,MAAOrwB,EAAMM,EAAK,CAGhB,GAFA0nB,EAAKoI,EAAM1yB,IAAI0C,WAAWJ,IAEtBkyB,EAAQlK,GAOV,MANW,IAAPA,EACFvM,GAAU,EAAIA,EAAS,EAEvBA,IAMJzb,GACF,CAqEA,GAnEA0yB,EAAe1yB,EAIb4rC,EAFElZ,GAAgBpyB,EAEE,EAEAmb,EAAS0c,EAK3ByT,EAAoB,IAAKA,EAAoB,GAIjDhM,EAASzH,EAAUyT,EAGnBxa,EAAehB,EAAMzxB,KAAK,iBAAkB,KAAM,GAClDyyB,EAAMxM,OAAS1kB,OAAO05B,aAAakS,GACnC1a,EAAMzQ,IAASkS,EAAY,CAAExC,EAAW,GAExC6C,EAAY9C,EAAMwD,UAClBN,EAAWlD,EAAMoD,MACjBH,EAAYjD,EAAMS,OAAOR,GACzBqb,EAAatb,EAAMuD,OAAOtD,GAC1B8C,EAAgB/C,EAAM2D,WACtB3D,EAAMwD,UAAYgM,EAClBxP,EAAMoD,OAAQ,EACdpD,EAAM2D,WAAa,OACnB3D,EAAMS,OAAOR,GAAaqC,EAAetC,EAAMQ,OAAOP,GACtDD,EAAMuD,OAAOtD,GAAa5U,EAEtBiX,GAAgBpyB,GAAO8vB,EAAMsD,QAAQrD,EAAY,GAQnDD,EAAMtS,KAAOhkB,KAAKyG,IAAI6vB,EAAMtS,KAAO,EAAGwS,GAEtCF,EAAMT,GAAGkC,MAAMmC,SAAS5D,EAAOC,EAAWC,GAAS,GAIhDF,EAAMoD,QAASD,IAClBC,GAAQ,GAIVD,EAAgBnD,EAAMtS,KAAOuS,EAAa,GAAKD,EAAMsD,QAAQtD,EAAMtS,KAAO,GAE1EsS,EAAMwD,UAAYV,EAClB9C,EAAMS,OAAOR,GAAagD,EAC1BjD,EAAMuD,OAAOtD,GAAaqb,EAC1Btb,EAAMoD,MAAQF,EACdlD,EAAM2D,WAAaZ,EAEnB/B,EAAehB,EAAMzxB,KAAK,kBAAmB,MAAO,GACpDyyB,EAAMxM,OAAS1kB,OAAO05B,aAAakS,GAEnC9Y,EAAW3C,EAAYD,EAAMtS,KAC7B+U,EAAU,GAAKG,EACfN,EAAetC,EAAMQ,OAAOP,GAExB2C,GAAY1C,EAAW,MAE3B,GAAIF,EAAMsD,QAAQV,GAChB,MAMF,GAAI5C,EAAMuD,OAAOX,GAAY5C,EAAMwD,UAAa,MAIhD,IADA8W,GAAY,EACPrtC,EAAI,EAAG8C,EAAIsqC,EAAgB50C,OAAQwH,EAAI8C,EAAG9C,IAC7C,GAAIotC,EAAgBptC,GAAG+yB,EAAO4C,EAAU1C,GAAS,GAAO,CACtDoa,GAAY,EACZ,KACF,CAEF,GAAIA,EAAa,MAGjB,GAAIqB,GAEF,GADAJ,EAAiBF,EAAsBrb,EAAO4C,GAC1C2Y,EAAiB,EAAK,WAG1B,GADAA,EAAiBH,EAAqBpb,EAAO4C,GACzC2Y,EAAiB,EAAK,MAG5B,GAAIG,IAAmB1b,EAAM1yB,IAAI0C,WAAWurC,EAAiB,GAAM,KACrE,CAkBA,OAdEva,EADE2a,EACM3b,EAAMzxB,KAAK,qBAAsB,MAAO,GAExCyxB,EAAMzxB,KAAK,oBAAqB,MAAO,GAEjDyyB,EAAMxM,OAAS1kB,OAAO05B,aAAakS,GAEnChZ,EAAU,GAAKE,EACf5C,EAAMtS,KAAOkV,EAGTQ,GACFlB,EAAoBlC,EAAO2C,IAGtB,CACT,C,iCChTAj+B,EAAOC,QAAU,SAAmBq7B,EAAOC,GAOzC,IANA,IAAIuB,EAAS8Y,EAAWrtC,EAAG8C,EAAGixB,EAC1B4B,EAAW3C,EAAY,EACvBoa,EAAkBra,EAAMT,GAAGkC,MAAMC,MAAM4V,SAAS,aAChDpX,EAAUF,EAAM2X,QAGb/U,EAAW1C,IAAYF,EAAMsD,QAAQV,GAAWA,IAGrD,KAAI5C,EAAMuD,OAAOX,GAAY5C,EAAMwD,UAAY,MAG3CxD,EAAMuD,OAAOX,GAAY,GAA7B,CAIA,IADA0X,GAAY,EACPrtC,EAAI,EAAG8C,EAAIsqC,EAAgB50C,OAAQwH,EAAI8C,EAAG9C,IAC7C,GAAIotC,EAAgBptC,GAAG+yB,EAAO4C,EAAU1C,GAAS,GAAO,CACtDoa,GAAY,EACZ,KACF,CAEF,GAAIA,EAAa,KAV2B,CA2B9C,OAdA9Y,EAAUxB,EAAM0D,SAASzD,EAAW2C,EAAU5C,EAAMwD,WAAW,GAAO7C,OAEtEX,EAAMtS,KAAOkV,EAEb5B,EAAiBhB,EAAMzxB,KAAK,iBAAkB,IAAK,GACnDyyB,EAAMzQ,IAAW,CAAE0P,EAAWD,EAAMtS,MAEpCsT,EAAiBhB,EAAMzxB,KAAK,SAAU,GAAI,GAC1CyyB,EAAMQ,QAAWA,EACjBR,EAAMzQ,IAAW,CAAE0P,EAAWD,EAAMtS,MACpCsT,EAAMve,SAAW,GAEjBue,EAAiBhB,EAAMzxB,KAAK,kBAAmB,KAAM,IAE9C,CACT,C,qCC3CA,IAAI2lC,EAAuB,EAAQ,OAC/BC,EAAuB,EAAQ,OAC/BJ,EAAuB,4BACvBjS,EAAuB,iBAG3Bp9B,EAAOC,QAAU,SAAmBq7B,EAAOC,EAAW2b,EAAUzb,GAC9D,IAAIvI,EACAikB,EACAC,EACA5b,EACA6b,EACA9uC,EACA8C,EACAqwB,EACAG,EACAlhB,EACAhC,EACAmb,EACA8hB,EACAD,EACAha,EACA+T,EAAQ,EACRxkC,EAAMowB,EAAMQ,OAAOP,GAAaD,EAAMS,OAAOR,GAC7C/vB,EAAM8vB,EAAMU,OAAOT,GACnB2C,EAAW3C,EAAY,EAE3B,GAAkC,KAA9BD,EAAM1yB,IAAI0C,WAAWJ,GAAwB,OAAO,EAIxD,QAASA,EAAMM,EACb,GAAkC,KAA9B8vB,EAAM1yB,IAAI0C,WAAWJ,IACa,KAAlCowB,EAAM1yB,IAAI0C,WAAWJ,EAAM,GAAoB,CACjD,GAAIA,EAAM,IAAMM,EAAO,OAAO,EAC9B,GAAsC,KAAlC8vB,EAAM1yB,IAAI0C,WAAWJ,EAAM,GAAsB,OAAO,EAC5D,KACF,CAQF,IALAswB,EAAUF,EAAM2X,QAGhB0C,EAAkBra,EAAMT,GAAGkC,MAAMC,MAAM4V,SAAS,aAEzC1U,EAAW1C,IAAYF,EAAMsD,QAAQV,GAAWA,IAGrD,KAAI5C,EAAMuD,OAAOX,GAAY5C,EAAMwD,UAAY,MAG3CxD,EAAMuD,OAAOX,GAAY,GAA7B,CAIA,IADA0X,GAAY,EACPrtC,EAAI,EAAG8C,EAAIsqC,EAAgB50C,OAAQwH,EAAI8C,EAAG9C,IAC7C,GAAIotC,EAAgBptC,GAAG+yB,EAAO4C,EAAU1C,GAAS,GAAO,CACtDoa,GAAY,EACZ,KACF,CAEF,GAAIA,EAAa,KAV2B,CAgB9C,IAHA9hB,EAAMwH,EAAM0D,SAASzD,EAAW2C,EAAU5C,EAAMwD,WAAW,GAAO7C,OAClEzwB,EAAMsoB,EAAI/yB,OAELmK,EAAM,EAAGA,EAAMM,EAAKN,IAAO,CAE9B,GADAgoB,EAAKY,EAAIxoB,WAAWJ,GACT,KAAPgoB,EACF,OAAO,EACF,GAAW,KAAPA,EAAqB,CAC9B2I,EAAW3wB,EACX,KACF,CAAkB,KAAPgoB,EACTwc,IACgB,KAAPxc,IACThoB,IACIA,EAAMM,GAA+B,KAAxBsoB,EAAIxoB,WAAWJ,IAC9BwkC,IAGN,CAEA,GAAI7T,EAAW,GAAsC,KAAjC/H,EAAIxoB,WAAWuwB,EAAW,GAAsB,OAAO,EAI3E,IAAK3wB,EAAM2wB,EAAW,EAAG3wB,EAAMM,EAAKN,IAElC,GADAgoB,EAAKY,EAAIxoB,WAAWJ,GACT,KAAPgoB,EACFwc,SACK,IAAItS,EAAQlK,GAGjB,MAOJ,GADAvY,EAAM60B,EAAqB1b,EAAK5oB,EAAKM,IAChCmP,EAAIg1B,GAAM,OAAO,EAGtB,GADA0H,EAAO/b,EAAMT,GAAG8V,cAAch2B,EAAImZ,MAC7BwH,EAAMT,GAAG4V,aAAa4G,GAAS,OAAO,EAY3C,IAVAnsC,EAAMyP,EAAIzP,IACVwkC,GAAS/0B,EAAI+0B,MAGbyH,EAAajsC,EACbksC,EAAgB1H,EAIhB/2B,EAAQzN,EACDA,EAAMM,EAAKN,IAEhB,GADAgoB,EAAKY,EAAIxoB,WAAWJ,GACT,KAAPgoB,EACFwc,SACK,IAAItS,EAAQlK,GAGjB,MAMJvY,EAAM80B,EAAe3b,EAAK5oB,EAAKM,GAC3BN,EAAMM,GAAOmN,IAAUzN,GAAOyP,EAAIg1B,IACpChU,EAAQhhB,EAAImZ,IACZ5oB,EAAMyP,EAAIzP,IACVwkC,GAAS/0B,EAAI+0B,QAEb/T,EAAQ,GACRzwB,EAAMisC,EACNzH,EAAQ0H,GAIV,MAAOlsC,EAAMM,EAAK,CAEhB,GADA0nB,EAAKY,EAAIxoB,WAAWJ,IACfkyB,EAAQlK,GAAO,MACpBhoB,GACF,CAEA,GAAIA,EAAMM,GAA+B,KAAxBsoB,EAAIxoB,WAAWJ,IAC1BywB,EAAO,CAGTA,EAAQ,GACRzwB,EAAMisC,EACNzH,EAAQ0H,EACR,MAAOlsC,EAAMM,EAAK,CAEhB,GADA0nB,EAAKY,EAAIxoB,WAAWJ,IACfkyB,EAAQlK,GAAO,MACpBhoB,GACF,CACF,CAGF,QAAIA,EAAMM,GAA+B,KAAxBsoB,EAAIxoB,WAAWJ,MAKhCwwB,EAAQ2T,EAAmBvb,EAAI/xB,MAAM,EAAG85B,MACnCH,IAODD,IAEgC,qBAAzBH,EAAMpiB,IAAIo+B,aACnBhc,EAAMpiB,IAAIo+B,WAAa,CAAC,GAEiB,qBAAhChc,EAAMpiB,IAAIo+B,WAAW5b,KAC9BJ,EAAMpiB,IAAIo+B,WAAW5b,GAAS,CAAEC,MAAOA,EAAO0b,KAAMA,IAGtD/b,EAAMtS,KAAOuS,EAAYmU,EAAQ,IATZ,GAWvB,C,qCC1LA,IAAI/8B,EAAQ,EAAQ,OAChByqB,EAAU,iBAGd,SAASma,EAAW3uC,EAAKiyB,EAAI3hB,EAAKmjB,GAChC,IAAInJ,EAAI/nB,EAAGwN,EAAOzN,EAAKmuB,EAAKyR,EAAQnkB,EAAQ6wB,EAuC5C,IArCA/yC,KAAKmE,IAAMA,EAGXnE,KAAKo2B,GAASA,EAEdp2B,KAAKyU,IAAMA,EAMXzU,KAAK43B,OAASA,EAEd53B,KAAKq3B,OAAS,GACdr3B,KAAKu3B,OAAS,GACdv3B,KAAKs3B,OAAS,GACdt3B,KAAKo6B,OAAS,GAGdp6B,KAAKq6B,UAAa,EAElBr6B,KAAKukB,KAAa,EAClBvkB,KAAKwuC,QAAa,EAClBxuC,KAAKi6B,OAAa,EAClBj6B,KAAKw6B,WAAa,OAClBx6B,KAAKk6B,UAAc,EAEnBl6B,KAAKg5B,MAAQ,EAGbh5B,KAAKyE,OAAS,GAIdiC,EAAI1G,KAAKmE,IACT4uC,GAAe,EAEV7+B,EAAQzN,EAAM4/B,EAASnkB,EAAS,EAAG0S,EAAMluB,EAAEpK,OAAQmK,EAAMmuB,EAAKnuB,IAAO,CAGxE,GAFAgoB,EAAK/nB,EAAEG,WAAWJ,IAEbssC,EAAc,CACjB,GAAIpa,EAAQlK,GAAK,CACf4X,IAEW,IAAP5X,EACFvM,GAAU,EAAIA,EAAS,EAEvBA,IAEF,QACF,CACE6wB,GAAe,CAEnB,CAEW,KAAPtkB,GAAehoB,IAAQmuB,EAAM,IACpB,KAAPnG,GAAehoB,IACnBzG,KAAKq3B,OAAOjyB,KAAK8O,GACjBlU,KAAKu3B,OAAOnyB,KAAKqB,GACjBzG,KAAKs3B,OAAOlyB,KAAKihC,GACjBrmC,KAAKo6B,OAAOh1B,KAAK8c,GAEjB6wB,GAAe,EACf1M,EAAS,EACTnkB,EAAS,EACThO,EAAQzN,EAAM,EAElB,CAGAzG,KAAKq3B,OAAOjyB,KAAKsB,EAAEpK,QACnB0D,KAAKu3B,OAAOnyB,KAAKsB,EAAEpK,QACnB0D,KAAKs3B,OAAOlyB,KAAK,GACjBpF,KAAKo6B,OAAOh1B,KAAK,GAEjBpF,KAAKwuC,QAAUxuC,KAAKq3B,OAAO/6B,OAAS,CACtC,CAIAw2C,EAAWtxC,UAAU4D,KAAO,SAAUvG,EAAMiH,EAAK83B,GAC/C,IAAI/F,EAAQ,IAAI3pB,EAAMrP,EAAMiH,EAAK83B,GAQjC,OAPA/F,EAAMS,OAAQ,EAEVsF,EAAU,GAAK59B,KAAKg5B,QACxBnB,EAAMmB,MAAQh5B,KAAKg5B,MACf4E,EAAU,GAAK59B,KAAKg5B,QAExBh5B,KAAK43B,OAAOxyB,KAAKyyB,GACVA,CACT,EAEAib,EAAWtxC,UAAU24B,QAAU,SAAiB5V,GAC9C,OAAOvkB,KAAKq3B,OAAO9S,GAAQvkB,KAAKs3B,OAAO/S,IAASvkB,KAAKu3B,OAAOhT,EAC9D,EAEAuuB,EAAWtxC,UAAU8sC,eAAiB,SAAwBlK,GAC5D,IAAK,IAAIr9B,EAAM/G,KAAKwuC,QAASpK,EAAOr9B,EAAKq9B,IACvC,GAAIpkC,KAAKq3B,OAAO+M,GAAQpkC,KAAKs3B,OAAO8M,GAAQpkC,KAAKu3B,OAAO6M,GACtD,MAGJ,OAAOA,CACT,EAGA0O,EAAWtxC,UAAUs3B,WAAa,SAAoBryB,GAGpD,IAFA,IAAIgoB,EAEK1nB,EAAM/G,KAAKmE,IAAI7H,OAAQmK,EAAMM,EAAKN,IAEzC,GADAgoB,EAAKzuB,KAAKmE,IAAI0C,WAAWJ,IACpBkyB,EAAQlK,GAAO,MAEtB,OAAOhoB,CACT,EAGAqsC,EAAWtxC,UAAUmwC,eAAiB,SAAwBlrC,EAAKO,GACjE,GAAIP,GAAOO,EAAO,OAAOP,EAEzB,MAAOA,EAAMO,EACX,IAAK2xB,EAAQ34B,KAAKmE,IAAI0C,aAAaJ,IAAS,OAAOA,EAAM,EAE3D,OAAOA,CACT,EAGAqsC,EAAWtxC,UAAUiwC,UAAY,SAAmBhrC,EAAKqjC,GACvD,IAAK,IAAI/iC,EAAM/G,KAAKmE,IAAI7H,OAAQmK,EAAMM,EAAKN,IACzC,GAAIzG,KAAKmE,IAAI0C,WAAWJ,KAASqjC,EAAQ,MAE3C,OAAOrjC,CACT,EAGAqsC,EAAWtxC,UAAUowC,cAAgB,SAAuBnrC,EAAKqjC,EAAM9iC,GACrE,GAAIP,GAAOO,EAAO,OAAOP,EAEzB,MAAOA,EAAMO,EACX,GAAI8iC,IAAS9pC,KAAKmE,IAAI0C,aAAaJ,GAAQ,OAAOA,EAAM,EAE1D,OAAOA,CACT,EAGAqsC,EAAWtxC,UAAU+4B,SAAW,SAAkB/pB,EAAOC,EAAK41B,EAAQ2M,GACpE,IAAIlvC,EAAGmvC,EAAYxkB,EAAIykB,EAAO9B,EAAM+B,EAAOC,EACvC7uB,EAAO/T,EAEX,GAAIA,GAASC,EACX,MAAO,GAKT,IAFA0iC,EAAQ,IAAIjrC,MAAMuI,EAAMD,GAEnB1M,EAAI,EAAGygB,EAAO9T,EAAK8T,IAAQzgB,IAAK,CACnCmvC,EAAa,EACbG,EAAYF,EAAQlzC,KAAKq3B,OAAO9S,GAI9B6sB,EAFE7sB,EAAO,EAAI9T,GAAOuiC,EAEbhzC,KAAKu3B,OAAOhT,GAAQ,EAEpBvkB,KAAKu3B,OAAOhT,GAGrB,MAAO2uB,EAAQ9B,GAAQ6B,EAAa5M,EAAQ,CAG1C,GAFA5X,EAAKzuB,KAAKmE,IAAI0C,WAAWqsC,GAErBva,EAAQlK,GACC,IAAPA,EACFwkB,GAAc,EAAIA,EAAa,EAE/BA,QAEG,MAAIC,EAAQE,EAAYpzC,KAAKs3B,OAAO/S,IAIzC,MAFA0uB,GAGF,CAEAC,GACF,CAEAC,EAAMrvC,GAAK9D,KAAKmE,IAAI7G,MAAM41C,EAAO9B,EACnC,CAEA,OAAO+B,EAAMjoB,KAAK,GACpB,EAGA4nB,EAAWtxC,UAAU0M,MAAQA,EAG7B3S,EAAOC,QAAUs3C,C,iCCzMjB,SAASO,EAAQxc,EAAOtS,GACtB,IAAI9d,EAAMowB,EAAMQ,OAAO9S,GAAQsS,EAAMwD,UACjCtzB,EAAM8vB,EAAMU,OAAOhT,GAEvB,OAAOsS,EAAM1yB,IAAIi0B,OAAO3xB,EAAKM,EAAMN,EACrC,CAEA,SAAS6sC,EAAajkB,GACpB,IAGIZ,EAHAhqB,EAAS,GACTgC,EAAM,EACNM,EAAMsoB,EAAI/yB,OAEVi3C,EAAU,EACVjS,EAAU,EACVkS,GAAa,EACbC,EAAe,EAEnBhlB,EAAMY,EAAIxoB,WAAWJ,GAErB,MAAOA,EAAMM,EACA,KAAP0nB,GAAuB8kB,EAAU,IAAM,GACzCC,GAAcA,EACdC,EAAehtC,GACC,MAAPgoB,GAAuB8kB,EAAU,IAAM,GAAOC,EAGvC,KAAP/kB,EACT8kB,IAEAA,EAAU,GALV9uC,EAAOW,KAAKiqB,EAAIqkB,UAAUpS,EAAS76B,IACnC66B,EAAU76B,EAAM,GAOlBA,IAIIA,IAAQM,GAAOysC,IACjBA,GAAa,EACb/sC,EAAMgtC,EAAe,GAGvBhlB,EAAKY,EAAIxoB,WAAWJ,GAKtB,OAFAhC,EAAOW,KAAKiqB,EAAIqkB,UAAUpS,IAEnB78B,CACT,CAGAlJ,EAAOC,QAAU,SAAeq7B,EAAOC,EAAWC,EAASC,GACzD,IAAIvI,EAAIujB,EAAUvrC,EAAK3C,EAAG21B,EAAUka,EAASC,EAAa/b,EACtDgc,EAAQzvB,EAAG0vB,EAAYC,EAG3B,GAAIjd,EAAY,EAAIC,EAAW,OAAO,EAItC,GAFA0C,EAAW3C,EAAY,EAEnBD,EAAMuD,OAAOX,GAAY5C,EAAMwD,UAAa,OAAO,EAKvD,GADA5zB,EAAMowB,EAAMQ,OAAOoC,GAAY5C,EAAMS,OAAOmC,GACxChzB,GAAOowB,EAAMU,OAAOkC,GAAa,OAAO,EAG5C,GADAhL,EAAKoI,EAAM1yB,IAAI0C,WAAWJ,GACf,MAAPgoB,GAA6B,KAAPA,GAA6B,KAAPA,EAAsB,OAAO,EAG7E,GADAujB,EAAWqB,EAAQxc,EAAOC,EAAY,IACjC,YAAY/d,KAAKi5B,GAAa,OAAO,EAI1C,IAFA2B,EAAU3B,EAAS1zC,MAAM,KACzBu1C,EAAS,GACJ/vC,EAAI,EAAGA,EAAI6vC,EAAQr3C,OAAQwH,IAAK,CAEnC,GADAsgB,EAAIuvB,EAAQ7vC,GAAG0zB,QACVpT,EAAG,CAGN,GAAU,IAANtgB,GAAWA,IAAM6vC,EAAQr3C,OAAS,EACpC,SAEA,OAAO,CAEX,CAEA,IAAK,WAAWyc,KAAKqL,GAAM,OAAO,EACC,KAA/BA,EAAEvd,WAAWud,EAAE9nB,OAAS,GAC1Bu3C,EAAOzuC,KAAyB,KAApBgf,EAAEvd,WAAW,GAAqB,SAAW,SAC5B,KAApBud,EAAEvd,WAAW,GACtBgtC,EAAOzuC,KAAK,QAEZyuC,EAAOzuC,KAAK,GAEhB,CAGA,GADA4sC,EAAWqB,EAAQxc,EAAOC,GAAWU,QACN,IAA3Bwa,EAAS/mC,QAAQ,KAAe,OAAO,EAM3C,GALA0oC,EAAUL,EAAatB,EAAS35B,QAAQ,WAAY,KAIpDu7B,EAAcD,EAAQr3C,OAClBs3C,EAAcC,EAAOv3C,OAAU,OAAO,EAE1C,GAAI06B,EAAU,OAAO,EAWrB,IATAa,EAAYhB,EAAMzxB,KAAK,aAAc,QAAS,GAC9CyyB,EAAMzQ,IAAM0sB,EAAa,CAAEhd,EAAW,GAEtCe,EAAYhB,EAAMzxB,KAAK,aAAc,QAAS,GAC9CyyB,EAAMzQ,IAAM,CAAE0P,EAAWA,EAAY,GAErCe,EAAYhB,EAAMzxB,KAAK,UAAW,KAAM,GACxCyyB,EAAMzQ,IAAM,CAAE0P,EAAWA,EAAY,GAEhChzB,EAAI,EAAGA,EAAI6vC,EAAQr3C,OAAQwH,IAC9B+zB,EAAiBhB,EAAMzxB,KAAK,UAAW,KAAM,GAC7CyyB,EAAMzQ,IAAW,CAAE0P,EAAWA,EAAY,GACtC+c,EAAO/vC,KACT+zB,EAAMrsB,MAAS,CAAE,CAAE,QAAS,cAAgBqoC,EAAO/vC,MAGrD+zB,EAAiBhB,EAAMzxB,KAAK,SAAU,GAAI,GAC1CyyB,EAAMQ,QAAWsb,EAAQ7vC,GAAG0zB,OAC5BK,EAAMzQ,IAAW,CAAE0P,EAAWA,EAAY,GAC1Ce,EAAMve,SAAW,GAEjBue,EAAiBhB,EAAMzxB,KAAK,WAAY,MAAO,GASjD,IANAyyB,EAAYhB,EAAMzxB,KAAK,WAAY,MAAO,GAC1CyyB,EAAYhB,EAAMzxB,KAAK,cAAe,SAAU,GAEhDyyB,EAAYhB,EAAMzxB,KAAK,aAAc,QAAS,GAC9CyyB,EAAMzQ,IAAM2sB,EAAa,CAAEjd,EAAY,EAAG,GAErC2C,EAAW3C,EAAY,EAAG2C,EAAW1C,EAAS0C,IAAY,CAC7D,GAAI5C,EAAMuD,OAAOX,GAAY5C,EAAMwD,UAAa,MAGhD,GADA2X,EAAWqB,EAAQxc,EAAO4C,IACK,IAA3BuY,EAAS/mC,QAAQ,KAAe,MAOpC,IAHA0oC,EAAUL,EAAatB,EAAS35B,QAAQ,cAAe,KAEvDwf,EAAQhB,EAAMzxB,KAAK,UAAW,KAAM,GAC/BtB,EAAI,EAAGA,EAAI8vC,EAAa9vC,IAC3B+zB,EAAiBhB,EAAMzxB,KAAK,UAAW,KAAM,GACzCyuC,EAAO/vC,KACT+zB,EAAMrsB,MAAS,CAAE,CAAE,QAAS,cAAgBqoC,EAAO/vC,MAGrD+zB,EAAiBhB,EAAMzxB,KAAK,SAAU,GAAI,GAC1CyyB,EAAMQ,QAAWsb,EAAQ7vC,GAAK6vC,EAAQ7vC,GAAG0zB,OAAS,GAClDK,EAAMve,SAAW,GAEjBue,EAAiBhB,EAAMzxB,KAAK,WAAY,MAAO,GAEjDyyB,EAAQhB,EAAMzxB,KAAK,WAAY,MAAO,EACxC,CAMA,OALAyyB,EAAQhB,EAAMzxB,KAAK,cAAe,SAAU,GAC5CyyB,EAAQhB,EAAMzxB,KAAK,cAAe,SAAU,GAE5C0uC,EAAW,GAAKC,EAAW,GAAKta,EAChC5C,EAAMtS,KAAOkV,GACN,CACT,C,iCC1KAl+B,EAAOC,QAAU,SAAeq7B,GAC9B,IAAIgB,EAEAhB,EAAMkX,YACRlW,EAAiB,IAAIhB,EAAM3oB,MAAM,SAAU,GAAI,GAC/C2pB,EAAMQ,QAAWxB,EAAM1yB,IACvB0zB,EAAMzQ,IAAW,CAAE,EAAG,GACtByQ,EAAMve,SAAW,GACjBud,EAAMe,OAAOxyB,KAAKyyB,IAElBhB,EAAMT,GAAGkC,MAAMjnB,MAAMwlB,EAAM1yB,IAAK0yB,EAAMT,GAAIS,EAAMpiB,IAAKoiB,EAAMe,OAE/D,C,iCCbAr8B,EAAOC,QAAU,SAAgBq7B,GAC/B,IAA2BgJ,EAAK/7B,EAAG8C,EAA/BgxB,EAASf,EAAMe,OAGnB,IAAK9zB,EAAI,EAAG8C,EAAIgxB,EAAOt7B,OAAQwH,EAAI8C,EAAG9C,IACpC+7B,EAAMjI,EAAO9zB,GACI,WAAb+7B,EAAIhhC,MACNg4B,EAAMT,GAAG+I,OAAO9tB,MAAMwuB,EAAIxH,QAASxB,EAAMT,GAAIS,EAAMpiB,IAAKorB,EAAIvmB,SAGlE,C,qCCLA,IAAI+c,EAAiB,wBAGrB,SAAS2d,EAAW3kB,GAClB,MAAO,YAAYtW,KAAKsW,EAC1B,CACA,SAAS4kB,EAAY5kB,GACnB,MAAO,aAAatW,KAAKsW,EAC3B,CAGA9zB,EAAOC,QAAU,SAAiBq7B,GAChC,IAAI/yB,EAAG6zB,EAAG/wB,EAAGgxB,EAAQC,EAAOK,EAAcJ,EAAOoc,EAAI/lC,EAAM1H,EAAK66B,EAC5DtI,EAAOmb,EAAehgB,EAAKigB,EAASC,EAEpCC,EADAnc,EAActB,EAAMe,OAGxB,GAAKf,EAAMT,GAAGppB,QAAQ+/B,QAEtB,IAAKpV,EAAI,EAAG/wB,EAAIuxB,EAAY77B,OAAQq7B,EAAI/wB,EAAG+wB,IACzC,GAA4B,WAAxBQ,EAAYR,GAAG94B,MACdg4B,EAAMT,GAAG2W,QAAQlZ,QAAQsE,EAAYR,GAAGU,SAU7C,IANAT,EAASO,EAAYR,GAAGre,SAExB66B,EAAgB,EAIXrwC,EAAI8zB,EAAOt7B,OAAS,EAAGwH,GAAK,EAAGA,IAIlC,GAHAo0B,EAAeN,EAAO9zB,GAGI,eAAtBo0B,EAAar5B,MAiBjB,GAR0B,gBAAtBq5B,EAAar5B,OACXm1C,EAAW9b,EAAaG,UAAY8b,EAAgB,GACtDA,IAEEF,EAAY/b,EAAaG,UAC3B8b,OAGAA,EAAgB,IAEM,SAAtBjc,EAAar5B,MAAmBg4B,EAAMT,GAAG2W,QAAQh0B,KAAKmf,EAAaG,SAAU,CAU/E,IARAlqB,EAAO+pB,EAAaG,QACpBic,EAAQzd,EAAMT,GAAG2W,QAAQr+B,MAAMP,GAG/B2pB,EAAQ,GACRkB,EAAQd,EAAac,MACrBsI,EAAU,EAEL4S,EAAK,EAAGA,EAAKI,EAAMh4C,OAAQ43C,IAE9B/f,EAAMmgB,EAAMJ,GAAI/f,IAChBigB,EAAUvd,EAAMT,GAAG8V,cAAc/X,GAC5B0C,EAAMT,GAAG4V,aAAaoI,KAE3BC,EAAUC,EAAMJ,GAAI/lC,KAWlBkmC,EALGC,EAAMJ,GAAIlgB,OAEiB,YAArBsgB,EAAMJ,GAAIlgB,QAAyB,YAAYjb,KAAKs7B,GAGnDxd,EAAMT,GAAGsW,kBAAkB2H,GAF3Bxd,EAAMT,GAAGsW,kBAAkB,UAAY2H,GAASh8B,QAAQ,WAAY,IAFpEwe,EAAMT,GAAGsW,kBAAkB,UAAY2H,GAASh8B,QAAQ,aAAc,IAOlF5R,EAAM6tC,EAAMJ,GAAI33C,MAEZkK,EAAM66B,IACRzJ,EAAgB,IAAIhB,EAAM3oB,MAAM,OAAQ,GAAI,GAC5C2pB,EAAMQ,QAAUlqB,EAAK7Q,MAAMgkC,EAAS76B,GACpCoxB,EAAMmB,MAAUA,EAChBlB,EAAM1yB,KAAKyyB,IAGbA,EAAgB,IAAIhB,EAAM3oB,MAAM,YAAa,IAAK,GAClD2pB,EAAMrsB,MAAU,CAAE,CAAE,OAAQ4oC,IAC5Bvc,EAAMmB,MAAUA,IAChBnB,EAAMxM,OAAU,UAChBwM,EAAM8F,KAAU,OAChB7F,EAAM1yB,KAAKyyB,GAEXA,EAAgB,IAAIhB,EAAM3oB,MAAM,OAAQ,GAAI,GAC5C2pB,EAAMQ,QAAUgc,EAChBxc,EAAMmB,MAAUA,EAChBlB,EAAM1yB,KAAKyyB,GAEXA,EAAgB,IAAIhB,EAAM3oB,MAAM,aAAc,KAAM,GACpD2pB,EAAMmB,QAAYA,EAClBnB,EAAMxM,OAAU,UAChBwM,EAAM8F,KAAU,OAChB7F,EAAM1yB,KAAKyyB,GAEXyJ,EAAUgT,EAAMJ,GAAIzpC,WAElB62B,EAAUnzB,EAAK7R,SACjBu7B,EAAgB,IAAIhB,EAAM3oB,MAAM,OAAQ,GAAI,GAC5C2pB,EAAMQ,QAAUlqB,EAAK7Q,MAAMgkC,GAC3BzJ,EAAMmB,MAAUA,EAChBlB,EAAM1yB,KAAKyyB,IAIbM,EAAYR,GAAGre,SAAWse,EAASvB,EAAeuB,EAAQ9zB,EAAGg0B,EAC/D,MAvFA,CACEh0B,IACA,MAAO8zB,EAAO9zB,GAAGk1B,QAAUd,EAAac,OAA4B,cAAnBpB,EAAO9zB,GAAGjF,KACzDiF,GAGJ,CAoFN,C,iCC/HA,IAAIywC,EAAe,sCACfC,EAAe,UAGnBj5C,EAAOC,QAAU,SAAgBq7B,GAC/B,IAAIxH,EAGJA,EAAMwH,EAAM1yB,IAAIkU,QAAQk8B,EAAa,MAGrCllB,EAAMA,EAAIhX,QAAQm8B,EAAS,KAE3B3d,EAAM1yB,IAAMkrB,CACd,C,gCCFA,IAAIolB,EAAU,+BAIVC,EAAsB,kBAEtBC,EAAiB,mBACjBC,EAAc,CAChB72C,EAAG,IACH+iB,EAAG,IACH+zB,EAAG,IACHC,GAAI,KAGN,SAASC,EAAUrmC,EAAO5P,GACxB,OAAO81C,EAAY91C,EAAKwwB,cAC1B,CAEA,SAAS0lB,EAAeC,GACtB,IAAInxC,EAAG+zB,EAEP,IAAK/zB,EAAImxC,EAAa34C,OAAS,EAAGwH,GAAK,EAAGA,IACxC+zB,EAAQod,EAAanxC,GACF,SAAf+zB,EAAMh5B,OACRg5B,EAAMQ,QAAUR,EAAMQ,QAAQhgB,QAAQs8B,EAAgBI,GAG5D,CAEA,SAASG,EAAaD,GACpB,IAAInxC,EAAG+zB,EAEP,IAAK/zB,EAAImxC,EAAa34C,OAAS,EAAGwH,GAAK,EAAGA,IACxC+zB,EAAQod,EAAanxC,GACF,SAAf+zB,EAAMh5B,MACJ41C,EAAQ17B,KAAK8e,EAAMQ,WACrBR,EAAMQ,QAAUR,EAAMQ,QACThgB,QAAQ,OAAQ,KAGhBA,QAAQ,UAAW,KAAKA,QAAQ,WAAY,QAC5CA,QAAQ,cAAe,UAAUA,QAAQ,SAAU,KAEnDA,QAAQ,wBAAyB,SAEjCA,QAAQ,mBAAoB,SAC5BA,QAAQ,2BAA4B,SAIzD,CAGA9c,EAAOC,QAAU,SAAiBq7B,GAChC,IAAIse,EAEJ,GAAKte,EAAMT,GAAGppB,QAAQgiC,YAEtB,IAAKmG,EAASte,EAAMe,OAAOt7B,OAAS,EAAG64C,GAAU,EAAGA,IAEhB,WAA9Bte,EAAMe,OAAOud,GAAQt2C,OAErB61C,EAAoB37B,KAAK8d,EAAMe,OAAOud,GAAQ9c,UAChD2c,EAAene,EAAMe,OAAOud,GAAQ77B,UAGlCm7B,EAAQ17B,KAAK8d,EAAMe,OAAOud,GAAQ9c,UACpC6c,EAAare,EAAMe,OAAOud,GAAQ77B,UAIxC,C,qCCnFA,IAAImxB,EAAiB,sBACjBC,EAAiB,qBACjBC,EAAiB,wBAEjByK,EAAgB,OAChBC,EAAW,QACXC,EAAa,IAGjB,SAASC,EAAUlmB,EAAK9yB,EAAOkyB,GAC7B,OAAOY,EAAI+I,OAAO,EAAG77B,GAASkyB,EAAKY,EAAI+I,OAAO77B,EAAQ,EACxD,CAEA,SAASi5C,EAAgB5d,EAAQf,GAC/B,IAAI/yB,EAAG+zB,EAAO1pB,EAAMiW,EAAG3d,EAAKM,EAAK0uC,EAAWnP,EAAMoP,EAAU1U,EACxD2U,EAAiBC,EAAiBC,EAAkBC,EACpDC,EAASC,EAAUre,EAAGse,EAAUC,EAAOC,EAAWC,EAItD,IAFAF,EAAQ,GAEHpyC,EAAI,EAAGA,EAAI8zB,EAAOt7B,OAAQwH,IAAK,CAKlC,IAJA+zB,EAAQD,EAAO9zB,GAEf2xC,EAAY7d,EAAO9zB,GAAGk1B,MAEjBrB,EAAIue,EAAM55C,OAAS,EAAGq7B,GAAK,EAAGA,IACjC,GAAIue,EAAMve,GAAGqB,OAASyc,EAAa,MAIrC,GAFAS,EAAM55C,OAASq7B,EAAI,EAEA,SAAfE,EAAMh5B,KAAV,CAEAsP,EAAO0pB,EAAMQ,QACb5xB,EAAM,EACNM,EAAMoH,EAAK7R,OAGXg+B,EACA,MAAO7zB,EAAMM,EAAK,CAGhB,GAFAsuC,EAAS5qC,UAAYhE,EACrB2d,EAAIixB,EAASh1C,KAAK8N,IACbiW,EAAK,MAWV,GATA2xB,EAAUC,GAAW,EACrBvvC,EAAM2d,EAAE7nB,MAAQ,EAChB05C,EAAqB,MAAT7xB,EAAE,GAKdsxB,EAAW,GAEPtxB,EAAE7nB,MAAQ,GAAK,EACjBm5C,EAAWvnC,EAAKtH,WAAWud,EAAE7nB,MAAQ,QAErC,IAAKo7B,EAAI7zB,EAAI,EAAG6zB,GAAK,EAAGA,IACtB,GAAuB,SAAnBC,EAAOD,GAAG94B,KAAd,CAEA62C,EAAW9d,EAAOD,GAAGU,QAAQxxB,WAAW+wB,EAAOD,GAAGU,QAAQ/7B,OAAS,GACnE,KAH2C,CAY/C,GAFA0kC,EAAW,GAEPv6B,EAAMM,EACRi6B,EAAW7yB,EAAKtH,WAAWJ,QAE3B,IAAKkxB,EAAI7zB,EAAI,EAAG6zB,EAAIC,EAAOt7B,OAAQq7B,IACjC,GAAuB,SAAnBC,EAAOD,GAAG94B,KAAd,CAEAmiC,EAAWpJ,EAAOD,GAAGU,QAAQxxB,WAAW,GACxC,KAH2C,CA0C/C,GAnCA8uC,EAAkBhL,EAAe+K,IAAahL,EAAY/jC,OAAO05B,aAAaqV,IAC9EE,EAAkBjL,EAAe3J,IAAa0J,EAAY/jC,OAAO05B,aAAaW,IAE9E6U,EAAmBpL,EAAaiL,GAChCI,EAAmBrL,EAAazJ,GAE5B8U,EACFC,GAAU,EACDH,IACHC,GAAoBF,IACxBI,GAAU,IAIVF,EACFG,GAAW,EACFL,IACHG,GAAoBF,IACxBI,GAAW,IAIE,KAAbhV,GAAsC,MAAT5c,EAAE,IAC7BsxB,GAAY,IAAgBA,GAAY,KAE1CM,EAAWD,GAAU,GAIrBA,GAAWC,IAEbD,GAAU,EACVC,EAAWJ,GAGRG,GAAYC,EAAjB,CAQA,GAAIA,EAEF,IAAKre,EAAIue,EAAM55C,OAAS,EAAGq7B,GAAK,EAAGA,IAAK,CAEtC,GADA2O,EAAO4P,EAAMve,GACTue,EAAMve,GAAGqB,MAAQyc,EAAa,MAClC,GAAInP,EAAK+P,SAAWJ,GAAYC,EAAMve,GAAGqB,QAAUyc,EAAW,CAC5DnP,EAAO4P,EAAMve,GAETse,GACFE,EAAYtf,EAAMT,GAAGppB,QAAQiiC,OAAO,GACpCmH,EAAavf,EAAMT,GAAGppB,QAAQiiC,OAAO,KAErCkH,EAAYtf,EAAMT,GAAGppB,QAAQiiC,OAAO,GACpCmH,EAAavf,EAAMT,GAAGppB,QAAQiiC,OAAO,IAMvCpX,EAAMQ,QAAUkd,EAAU1d,EAAMQ,QAASjU,EAAE7nB,MAAO65C,GAClDxe,EAAO0O,EAAKzO,OAAOQ,QAAUkd,EAC3B3d,EAAO0O,EAAKzO,OAAOQ,QAASiO,EAAK7/B,IAAK0vC,GAExC1vC,GAAO2vC,EAAW95C,OAAS,EACvBgqC,EAAKzO,QAAU/zB,IAAK2C,GAAO0vC,EAAU75C,OAAS,GAElD6R,EAAO0pB,EAAMQ,QACbtxB,EAAMoH,EAAK7R,OAEX45C,EAAM55C,OAASq7B,EACf,SAAS2C,CACX,CACF,CAGEyb,EACFG,EAAM9wC,KAAK,CACTyyB,MAAO/zB,EACP2C,IAAK2d,EAAE7nB,MACP85C,OAAQJ,EACRjd,MAAOyc,IAEAO,GAAYC,IACrBpe,EAAMQ,QAAUkd,EAAU1d,EAAMQ,QAASjU,EAAE7nB,MAAO+4C,GA7CpD,MAJMW,IACFpe,EAAMQ,QAAUkd,EAAU1d,EAAMQ,QAASjU,EAAE7nB,MAAO+4C,GAkDxD,CAzIuC,CA0IzC,CACF,CAGA/5C,EAAOC,QAAU,SAAqBq7B,GAEpC,IAAIse,EAEJ,GAAKte,EAAMT,GAAGppB,QAAQgiC,YAEtB,IAAKmG,EAASte,EAAMe,OAAOt7B,OAAS,EAAG64C,GAAU,EAAGA,IAEhB,WAA9Bte,EAAMe,OAAOud,GAAQt2C,MACpBu2C,EAAcr8B,KAAK8d,EAAMe,OAAOud,GAAQ9c,UAI7Cmd,EAAgB3e,EAAMe,OAAOud,GAAQ77B,SAAUud,EAEnD,C,qCC5LA,IAAI3oB,EAAQ,EAAQ,OAGpB,SAASooC,EAAUnyC,EAAKiyB,EAAI3hB,GAC1BzU,KAAKmE,IAAMA,EACXnE,KAAKyU,IAAMA,EACXzU,KAAK43B,OAAS,GACd53B,KAAK+tC,YAAa,EAClB/tC,KAAKo2B,GAAKA,CACZ,CAGAkgB,EAAU90C,UAAU0M,MAAQA,EAG5B3S,EAAOC,QAAU86C,C,iCCbjB,IAAIC,EAAc,2IACdC,EAAc,uDAGlBj7C,EAAOC,QAAU,SAAkBq7B,EAAOG,GACxC,IAAIpG,EAAM6lB,EAAWC,EAAYviB,EAAKigB,EAASvc,EAC3CpxB,EAAMowB,EAAMpwB,IAEhB,OAAkC,KAA9BowB,EAAM1yB,IAAI0C,WAAWJ,KAEzBmqB,EAAOiG,EAAM1yB,IAAI7G,MAAMmJ,KAEnBmqB,EAAK3lB,QAAQ,KAAO,KAEpBurC,EAAYz9B,KAAK6X,IACnB6lB,EAAY7lB,EAAKliB,MAAM8nC,GAEvBriB,EAAMsiB,EAAU,GAAGn5C,MAAM,GAAI,GAC7B82C,EAAUvd,EAAMT,GAAG8V,cAAc/X,KAC5B0C,EAAMT,GAAG4V,aAAaoI,KAEtBpd,IACHa,EAAgBhB,EAAMzxB,KAAK,YAAa,IAAK,GAC7CyyB,EAAMrsB,MAAU,CAAE,CAAE,OAAQ4oC,IAC5Bvc,EAAMxM,OAAU,WAChBwM,EAAM8F,KAAU,OAEhB9F,EAAgBhB,EAAMzxB,KAAK,OAAQ,GAAI,GACvCyyB,EAAMQ,QAAUxB,EAAMT,GAAGsW,kBAAkBvY,GAE3C0D,EAAgBhB,EAAMzxB,KAAK,aAAc,KAAM,GAC/CyyB,EAAMxM,OAAU,WAChBwM,EAAM8F,KAAU,QAGlB9G,EAAMpwB,KAAOgwC,EAAU,GAAGn6C,QACnB,MAGLi6C,EAASx9B,KAAK6X,KAChB8lB,EAAa9lB,EAAKliB,MAAM6nC,GAExBpiB,EAAMuiB,EAAW,GAAGp5C,MAAM,GAAI,GAC9B82C,EAAUvd,EAAMT,GAAG8V,cAAc,UAAY/X,KACxC0C,EAAMT,GAAG4V,aAAaoI,KAEtBpd,IACHa,EAAgBhB,EAAMzxB,KAAK,YAAa,IAAK,GAC7CyyB,EAAMrsB,MAAU,CAAE,CAAE,OAAQ4oC,IAC5Bvc,EAAMxM,OAAU,WAChBwM,EAAM8F,KAAU,OAEhB9F,EAAgBhB,EAAMzxB,KAAK,OAAQ,GAAI,GACvCyyB,EAAMQ,QAAUxB,EAAMT,GAAGsW,kBAAkBvY,GAE3C0D,EAAgBhB,EAAMzxB,KAAK,aAAc,KAAM,GAC/CyyB,EAAMxM,OAAU,WAChBwM,EAAM8F,KAAU,QAGlB9G,EAAMpwB,KAAOiwC,EAAW,GAAGp6C,QACpB,KAIX,C,iCCnEAf,EAAOC,QAAU,SAAkBq7B,EAAOG,GACxC,IAAI9iB,EAAOnN,EAAK8xB,EAAQ8d,EAAYC,EAAU/e,EAC1CpxB,EAAMowB,EAAMpwB,IACZgoB,EAAKoI,EAAM1yB,IAAI0C,WAAWJ,GAE9B,GAAW,KAAPgoB,EAAsB,OAAO,EAEjCva,EAAQzN,EACRA,IACAM,EAAM8vB,EAAMqI,OAEZ,MAAOz4B,EAAMM,GAAqC,KAA9B8vB,EAAM1yB,IAAI0C,WAAWJ,GAAwBA,IAEjEoyB,EAAShC,EAAM1yB,IAAI7G,MAAM4W,EAAOzN,GAEhCkwC,EAAaC,EAAWnwC,EAExB,OAA4D,KAApDkwC,EAAa9f,EAAM1yB,IAAI8G,QAAQ,IAAK2rC,IAAmB,CAC7DA,EAAWD,EAAa,EAExB,MAAOC,EAAW7vC,GAA0C,KAAnC8vB,EAAM1yB,IAAI0C,WAAW+vC,GAA6BA,IAE3E,GAAIA,EAAWD,IAAe9d,EAAOv8B,OASnC,OARK06B,IACHa,EAAgBhB,EAAMzxB,KAAK,cAAe,OAAQ,GAClDyyB,EAAMxM,OAAUwN,EAChBhB,EAAMQ,QAAUxB,EAAM1yB,IAAI7G,MAAMmJ,EAAKkwC,GACXt+B,QAAQ,UAAW,KACnBmf,QAE5BX,EAAMpwB,IAAMmwC,GACL,CAEX,CAIA,OAFK5f,IAAUH,EAAMqK,SAAWrI,GAChChC,EAAMpwB,KAAOoyB,EAAOv8B,QACb,CACT,C,iCCrCAf,EAAOC,QAAU,SAAoBq7B,GACnC,IAAI/yB,EAAG6zB,EAAGkf,EAAWC,EACjB3qB,EAAa0K,EAAM1K,WACnBplB,EAAM8vB,EAAM1K,WAAW7vB,OAE3B,IAAKwH,EAAI,EAAGA,EAAIiD,EAAKjD,IAGnB,GAFA+yC,EAAY1qB,EAAWroB,GAElB+yC,EAAUtyC,MAAf,CAEAozB,EAAI7zB,EAAI+yC,EAAUvW,KAAO,EAEzB,MAAO3I,GAAK,EAAG,CAGb,GAFAmf,EAAY3qB,EAAWwL,GAEnBmf,EAAUzyC,MACVyyC,EAAUje,SAAWge,EAAUhe,QAC/Bie,EAAUrmC,IAAM,GAChBqmC,EAAU9d,QAAU6d,EAAU7d,MAAO,CAEvC6d,EAAUvW,KAAOx8B,EAAI6zB,EACrBkf,EAAUxyC,MAAO,EACjByyC,EAAUrmC,IAAO3M,EACjBgzC,EAAUxW,KAAO,EACjB,KACF,CAEA3I,GAAKmf,EAAUxW,KAAO,CACxB,CApBkC,CAsBtC,C,iCC5BA/kC,EAAOC,QAAQ,EAAW,SAAkBq7B,EAAOG,GACjD,IAAIlzB,EAAGq8B,EAAStI,EACZ3jB,EAAQ2iB,EAAMpwB,IACdoyB,EAAShC,EAAM1yB,IAAI0C,WAAWqN,GAElC,GAAI8iB,EAAU,OAAO,EAErB,GAAe,KAAX6B,GAAsC,KAAXA,EAA2B,OAAO,EAIjE,IAFAsH,EAAUtJ,EAAMuJ,WAAWvJ,EAAMpwB,IAAgB,KAAXoyB,GAEjC/0B,EAAI,EAAGA,EAAIq8B,EAAQ7jC,OAAQwH,IAC9B+zB,EAAgBhB,EAAMzxB,KAAK,OAAQ,GAAI,GACvCyyB,EAAMQ,QAAU1xB,OAAO05B,aAAaxH,GAEpChC,EAAM1K,WAAW/mB,KAAK,CAGpByzB,OAAQA,EASRyH,KAAQx8B,EAIR+zB,MAAQhB,EAAMe,OAAOt7B,OAAS,EAI9B08B,MAAQnC,EAAMmC,MAKdvoB,KAAS,EAKTpM,KAAQ87B,EAAQI,SAChBh8B,MAAQ47B,EAAQK,YAMpB,OAFA3J,EAAMpwB,KAAO05B,EAAQ7jC,QAEd,CACT,EAKAf,EAAOC,QAAQ,EAAc,SAAkBq7B,GAC7C,IAAI/yB,EACA48B,EACAC,EACA9I,EACApJ,EACAsoB,EACA5qB,EAAa0K,EAAM1K,WACnBplB,EAAM8vB,EAAM1K,WAAW7vB,OAE3B,IAAKwH,EAAI,EAAGA,EAAIiD,EAAKjD,IACnB48B,EAAavU,EAAWroB,GAEE,KAAtB48B,EAAW7H,QAAgD,KAAtB6H,EAAW7H,SAK5B,IAApB6H,EAAWjwB,MAIfkwB,EAAWxU,EAAWuU,EAAWjwB,KAOjCsmC,EAAWjzC,EAAI,EAAIiD,GACRolB,EAAWroB,EAAI,GAAG2M,MAAQiwB,EAAWjwB,IAAM,GAC3C0b,EAAWroB,EAAI,GAAG+zB,QAAU6I,EAAW7I,MAAQ,GAC/C1L,EAAWuU,EAAWjwB,IAAM,GAAGonB,QAAU8I,EAAS9I,MAAQ,GAC1D1L,EAAWroB,EAAI,GAAG+0B,SAAW6H,EAAW7H,OAEnDpK,EAAK9nB,OAAO05B,aAAaK,EAAW7H,QAEpChB,EAAgBhB,EAAMe,OAAO8I,EAAW7I,OACxCA,EAAMh5B,KAAUk4C,EAAW,cAAgB,UAC3Clf,EAAM/xB,IAAUixC,EAAW,SAAW,KACtClf,EAAM+F,QAAU,EAChB/F,EAAMxM,OAAU0rB,EAAWtoB,EAAKA,EAAKA,EACrCoJ,EAAMQ,QAAU,GAEhBR,EAAgBhB,EAAMe,OAAO+I,EAAS9I,OACtCA,EAAMh5B,KAAUk4C,EAAW,eAAiB,WAC5Clf,EAAM/xB,IAAUixC,EAAW,SAAW,KACtClf,EAAM+F,SAAW,EACjB/F,EAAMxM,OAAU0rB,EAAWtoB,EAAKA,EAAKA,EACrCoJ,EAAMQ,QAAU,GAEZ0e,IACFlgB,EAAMe,OAAOzL,EAAWroB,EAAI,GAAG+zB,OAAOQ,QAAU,GAChDxB,EAAMe,OAAOzL,EAAWuU,EAAWjwB,IAAM,GAAGonB,OAAOQ,QAAU,GAC7Dv0B,KAGN,C,qCCtHA,IAAI8lC,EAAoB,EAAQ,OAC5BlrC,EAAoB,aACpB0qC,EAAoB,2BACpBC,EAAoB,uBAGpB2N,EAAa,uCACbC,EAAa,4BAGjB17C,EAAOC,QAAU,SAAgBq7B,EAAOG,GACtC,IAAIvI,EAAIqb,EAAMp7B,EAAOjI,EAAMowB,EAAMpwB,IAAKM,EAAM8vB,EAAMqI,OAElD,GAAkC,KAA9BrI,EAAM1yB,IAAI0C,WAAWJ,GAAwB,OAAO,EAExD,GAAIA,EAAM,EAAIM,EAGZ,GAFA0nB,EAAKoI,EAAM1yB,IAAI0C,WAAWJ,EAAM,GAErB,KAAPgoB,GAEF,GADA/f,EAAQmoB,EAAM1yB,IAAI7G,MAAMmJ,GAAKiI,MAAMsoC,GAC/BtoC,EAMF,OALKsoB,IACH8S,EAAqC,MAA9Bp7B,EAAM,GAAG,GAAG4gB,cAAwBya,SAASr7B,EAAM,GAAGpR,MAAM,GAAI,IAAMysC,SAASr7B,EAAM,GAAI,IAChGmoB,EAAMqK,SAAWkI,EAAkBU,GAAQT,EAAcS,GAAQT,EAAc,QAEjFxS,EAAMpwB,KAAOiI,EAAM,GAAGpS,QACf,OAIT,GADAoS,EAAQmoB,EAAM1yB,IAAI7G,MAAMmJ,GAAKiI,MAAMuoC,GAC/BvoC,GACEhQ,EAAIkrC,EAAUl7B,EAAM,IAGtB,OAFKsoB,IAAUH,EAAMqK,SAAW0I,EAASl7B,EAAM,KAC/CmoB,EAAMpwB,KAAOiI,EAAM,GAAGpS,QACf,EAQf,OAFK06B,IAAUH,EAAMqK,SAAW,KAChCrK,EAAMpwB,OACC,CACT,C,qCCvCA,IAJA,IAAIkyB,EAAU,iBAEVue,EAAU,GAELpzC,EAAI,EAAGA,EAAI,IAAKA,IAAOozC,EAAQ9xC,KAAK,GAE7C,qCACG9G,MAAM,IAAI4M,SAAQ,SAAUujB,GAAMyoB,EAAQzoB,EAAG5nB,WAAW,IAAM,CAAG,IAGpEtL,EAAOC,QAAU,SAAgBq7B,EAAOG,GACtC,IAAIvI,EAAIhoB,EAAMowB,EAAMpwB,IAAKM,EAAM8vB,EAAMqI,OAErC,GAAkC,KAA9BrI,EAAM1yB,IAAI0C,WAAWJ,GAAwB,OAAO,EAIxD,GAFAA,IAEIA,EAAMM,EAAK,CAGb,GAFA0nB,EAAKoI,EAAM1yB,IAAI0C,WAAWJ,GAEtBgoB,EAAK,KAAuB,IAAhByoB,EAAQzoB,GAGtB,OAFKuI,IAAUH,EAAMqK,SAAWrK,EAAM1yB,IAAIsC,IAC1CowB,EAAMpwB,KAAO,GACN,EAGT,GAAW,KAAPgoB,EAAa,CACVuI,GACHH,EAAMzxB,KAAK,YAAa,KAAM,GAGhCqB,IAEA,MAAOA,EAAMM,EAAK,CAEhB,GADA0nB,EAAKoI,EAAM1yB,IAAI0C,WAAWJ,IACrBkyB,EAAQlK,GAAO,MACpBhoB,GACF,CAGA,OADAowB,EAAMpwB,IAAMA,GACL,CACT,CACF,CAIA,OAFKuwB,IAAUH,EAAMqK,SAAW,MAChCrK,EAAMpwB,OACC,CACT,C,qCC9CA,IAAIuiC,EAAc,WAGlB,SAASmO,EAAS1oB,GAEhB,IAAI2oB,EAAU,GAAL3oB,EACT,OAAQ2oB,GAAM,IAAiBA,GAAM,GACvC,CAGA77C,EAAOC,QAAU,SAAqBq7B,EAAOG,GAC3C,IAAIvI,EAAI/f,EAAO3H,EAAK8wB,EAChBpxB,EAAMowB,EAAMpwB,IAEhB,QAAKowB,EAAMT,GAAGppB,QAAQ6hC,OAGtB9nC,EAAM8vB,EAAMqI,SACsB,KAA9BrI,EAAM1yB,IAAI0C,WAAWJ,IACrBA,EAAM,GAAKM,KAKf0nB,EAAKoI,EAAM1yB,IAAI0C,WAAWJ,EAAM,KACrB,KAAPgoB,GACO,KAAPA,GACO,KAAPA,IACC0oB,EAAS1oB,MAId/f,EAAQmoB,EAAM1yB,IAAI7G,MAAMmJ,GAAKiI,MAAMs6B,KAC9Bt6B,IAEAsoB,IACHa,EAAgBhB,EAAMzxB,KAAK,cAAe,GAAI,GAC9CyyB,EAAMQ,QAAUxB,EAAM1yB,IAAI7G,MAAMmJ,EAAKA,EAAMiI,EAAM,GAAGpS,SAEtDu6B,EAAMpwB,KAAOiI,EAAM,GAAGpS,QACf,KACT,C,qCC1CA,IAAIkiC,EAAuB,EAAQ,OAC/BuM,EAAuB,EAAQ,OAC/BC,EAAuB,EAAQ,OAC/BJ,EAAuB,4BACvBjS,EAAuB,iBAG3Bp9B,EAAOC,QAAU,SAAeq7B,EAAOG,GACrC,IAAIxrB,EACAs+B,EACAzR,EACApB,EACAG,EACAD,EACA1wB,EACA4wC,EACAnhC,EACAghB,EACAW,EACAD,EACA1jB,EACA0+B,EAAO,GACPvH,EAASxU,EAAMpwB,IACfM,EAAM8vB,EAAMqI,OAEhB,GAAwC,KAApCrI,EAAM1yB,IAAI0C,WAAWgwB,EAAMpwB,KAAwB,OAAO,EAC9D,GAA4C,KAAxCowB,EAAM1yB,IAAI0C,WAAWgwB,EAAMpwB,IAAM,GAAsB,OAAO,EAMlE,GAJA0wB,EAAaN,EAAMpwB,IAAM,EACzB2wB,EAAWoH,EAAe3H,EAAOA,EAAMpwB,IAAM,GAAG,GAG5C2wB,EAAW,EAAK,OAAO,EAG3B,GADA3wB,EAAM2wB,EAAW,EACb3wB,EAAMM,GAAqC,KAA9B8vB,EAAM1yB,IAAI0C,WAAWJ,GAAsB,CAQ1D,IADAA,IACOA,EAAMM,EAAKN,IAEhB,GADAqjC,EAAOjT,EAAM1yB,IAAI0C,WAAWJ,IACvBkyB,EAAQmR,IAAkB,KAATA,EAAiB,MAEzC,GAAIrjC,GAAOM,EAAO,OAAO,EAkBzB,IAdAmN,EAAQzN,EACRyP,EAAM60B,EAAqBlU,EAAM1yB,IAAKsC,EAAKowB,EAAMqI,QAC7ChpB,EAAIg1B,KACN0H,EAAO/b,EAAMT,GAAG8V,cAAch2B,EAAImZ,KAC9BwH,EAAMT,GAAG4V,aAAa4G,GACxBnsC,EAAMyP,EAAIzP,IAEVmsC,EAAO,IAMX1+B,EAAQzN,EACDA,EAAMM,EAAKN,IAEhB,GADAqjC,EAAOjT,EAAM1yB,IAAI0C,WAAWJ,IACvBkyB,EAAQmR,IAAkB,KAATA,EAAiB,MAMzC,GADA5zB,EAAM80B,EAAenU,EAAM1yB,IAAKsC,EAAKowB,EAAMqI,QACvCz4B,EAAMM,GAAOmN,IAAUzN,GAAOyP,EAAIg1B,IAMpC,IALAhU,EAAQhhB,EAAImZ,IACZ5oB,EAAMyP,EAAIzP,IAIHA,EAAMM,EAAKN,IAEhB,GADAqjC,EAAOjT,EAAM1yB,IAAI0C,WAAWJ,IACvBkyB,EAAQmR,IAAkB,KAATA,EAAiB,WAGzC5S,EAAQ,GAGV,GAAIzwB,GAAOM,GAAqC,KAA9B8vB,EAAM1yB,IAAI0C,WAAWJ,GAErC,OADAowB,EAAMpwB,IAAM4kC,GACL,EAET5kC,GACF,KAAO,CAIL,GAAoC,qBAAzBowB,EAAMpiB,IAAIo+B,WAA8B,OAAO,EAmB1D,GAjBIpsC,EAAMM,GAAqC,KAA9B8vB,EAAM1yB,IAAI0C,WAAWJ,IACpCyN,EAAQzN,EAAM,EACdA,EAAM+3B,EAAe3H,EAAOpwB,GACxBA,GAAO,EACTwwB,EAAQJ,EAAM1yB,IAAI7G,MAAM4W,EAAOzN,KAE/BA,EAAM2wB,EAAW,GAGnB3wB,EAAM2wB,EAAW,EAKdH,IAASA,EAAQJ,EAAM1yB,IAAI7G,MAAM65B,EAAYC,IAElDigB,EAAMxgB,EAAMpiB,IAAIo+B,WAAWjI,EAAmB3T,KACzCogB,EAEH,OADAxgB,EAAMpwB,IAAM4kC,GACL,EAETuH,EAAOyE,EAAIzE,KACX1b,EAAQmgB,EAAIngB,KACd,CA4BA,OAtBKF,IACHqB,EAAUxB,EAAM1yB,IAAI7G,MAAM65B,EAAYC,GAEtCP,EAAMT,GAAG+I,OAAO9tB,MACdgnB,EACAxB,EAAMT,GACNS,EAAMpiB,IACNmjB,EAAS,IAGXC,EAAiBhB,EAAMzxB,KAAK,QAAS,MAAO,GAC5CyyB,EAAMrsB,MAAWA,EAAQ,CAAE,CAAE,MAAOonC,GAAQ,CAAE,MAAO,KACrD/a,EAAMve,SAAWse,EACjBC,EAAMQ,QAAWA,EAEbnB,GACF1rB,EAAMpG,KAAK,CAAE,QAAS8xB,KAI1BL,EAAMpwB,IAAMA,EACZowB,EAAMqI,OAASn4B,GACR,CACT,C,qCCtJA,IAAIy3B,EAAuB,EAAQ,OAC/BuM,EAAuB,EAAQ,OAC/BC,EAAuB,EAAQ,OAC/BJ,EAAuB,4BACvBjS,EAAuB,iBAG3Bp9B,EAAOC,QAAU,SAAcq7B,EAAOG,GACpC,IAAIxrB,EACAs+B,EACA7S,EACAG,EACAD,EACA1wB,EACAyP,EACAmhC,EACAngB,EACAW,EACA+a,EAAO,GACPvH,EAASxU,EAAMpwB,IACfM,EAAM8vB,EAAMqI,OACZhrB,EAAQ2iB,EAAMpwB,IAElB,GAAwC,KAApCowB,EAAM1yB,IAAI0C,WAAWgwB,EAAMpwB,KAAwB,OAAO,EAM9D,GAJA0wB,EAAaN,EAAMpwB,IAAM,EACzB2wB,EAAWoH,EAAe3H,EAAOA,EAAMpwB,KAAK,GAGxC2wB,EAAW,EAAK,OAAO,EAG3B,GADA3wB,EAAM2wB,EAAW,EACb3wB,EAAMM,GAAqC,KAA9B8vB,EAAM1yB,IAAI0C,WAAWJ,GAAsB,CAQ1D,IADAA,IACOA,EAAMM,EAAKN,IAEhB,GADAqjC,EAAOjT,EAAM1yB,IAAI0C,WAAWJ,IACvBkyB,EAAQmR,IAAkB,KAATA,EAAiB,MAEzC,GAAIrjC,GAAOM,EAAO,OAAO,EAkBzB,IAdAmN,EAAQzN,EACRyP,EAAM60B,EAAqBlU,EAAM1yB,IAAKsC,EAAKowB,EAAMqI,QAC7ChpB,EAAIg1B,KACN0H,EAAO/b,EAAMT,GAAG8V,cAAch2B,EAAImZ,KAC9BwH,EAAMT,GAAG4V,aAAa4G,GACxBnsC,EAAMyP,EAAIzP,IAEVmsC,EAAO,IAMX1+B,EAAQzN,EACDA,EAAMM,EAAKN,IAEhB,GADAqjC,EAAOjT,EAAM1yB,IAAI0C,WAAWJ,IACvBkyB,EAAQmR,IAAkB,KAATA,EAAiB,MAMzC,GADA5zB,EAAM80B,EAAenU,EAAM1yB,IAAKsC,EAAKowB,EAAMqI,QACvCz4B,EAAMM,GAAOmN,IAAUzN,GAAOyP,EAAIg1B,IAMpC,IALAhU,EAAQhhB,EAAImZ,IACZ5oB,EAAMyP,EAAIzP,IAIHA,EAAMM,EAAKN,IAEhB,GADAqjC,EAAOjT,EAAM1yB,IAAI0C,WAAWJ,IACvBkyB,EAAQmR,IAAkB,KAATA,EAAiB,WAGzC5S,EAAQ,GAGV,GAAIzwB,GAAOM,GAAqC,KAA9B8vB,EAAM1yB,IAAI0C,WAAWJ,GAErC,OADAowB,EAAMpwB,IAAM4kC,GACL,EAET5kC,GACF,KAAO,CAIL,GAAoC,qBAAzBowB,EAAMpiB,IAAIo+B,WAA8B,OAAO,EAmB1D,GAjBIpsC,EAAMM,GAAqC,KAA9B8vB,EAAM1yB,IAAI0C,WAAWJ,IACpCyN,EAAQzN,EAAM,EACdA,EAAM+3B,EAAe3H,EAAOpwB,GACxBA,GAAO,EACTwwB,EAAQJ,EAAM1yB,IAAI7G,MAAM4W,EAAOzN,KAE/BA,EAAM2wB,EAAW,GAGnB3wB,EAAM2wB,EAAW,EAKdH,IAASA,EAAQJ,EAAM1yB,IAAI7G,MAAM65B,EAAYC,IAElDigB,EAAMxgB,EAAMpiB,IAAIo+B,WAAWjI,EAAmB3T,KACzCogB,EAEH,OADAxgB,EAAMpwB,IAAM4kC,GACL,EAETuH,EAAOyE,EAAIzE,KACX1b,EAAQmgB,EAAIngB,KACd,CAuBA,OAjBKF,IACHH,EAAMpwB,IAAM0wB,EACZN,EAAMqI,OAAS9H,EAEfS,EAAehB,EAAMzxB,KAAK,YAAa,IAAK,GAC5CyyB,EAAMrsB,MAASA,EAAQ,CAAE,CAAE,OAAQonC,IAC/B1b,GACF1rB,EAAMpG,KAAK,CAAE,QAAS8xB,IAGxBL,EAAMT,GAAG+I,OAAO1E,SAAS5D,GAEzBgB,EAAehB,EAAMzxB,KAAK,aAAc,KAAM,IAGhDyxB,EAAMpwB,IAAMA,EACZowB,EAAMqI,OAASn4B,GACR,CACT,C,iCC9IAxL,EAAOC,QAAU,SAAiBq7B,EAAOG,GACvC,IAAIsgB,EAAMvwC,EAAKN,EAAMowB,EAAMpwB,IAE3B,GAAkC,KAA9BowB,EAAM1yB,IAAI0C,WAAWJ,GAAyB,OAAO,EAEzD6wC,EAAOzgB,EAAMqK,QAAQ5kC,OAAS,EAC9ByK,EAAM8vB,EAAMqI,OAMPlI,IACCsgB,GAAQ,GAAwC,KAAnCzgB,EAAMqK,QAAQr6B,WAAWywC,GACpCA,GAAQ,GAA4C,KAAvCzgB,EAAMqK,QAAQr6B,WAAWywC,EAAO,IAC/CzgB,EAAMqK,QAAUrK,EAAMqK,QAAQ7oB,QAAQ,MAAO,IAC7Cwe,EAAMzxB,KAAK,YAAa,KAAM,KAE9ByxB,EAAMqK,QAAUrK,EAAMqK,QAAQ5jC,MAAM,GAAI,GACxCu5B,EAAMzxB,KAAK,YAAa,KAAM,IAIhCyxB,EAAMzxB,KAAK,YAAa,KAAM,IAIlCqB,IAGA,MAAOA,EAAMM,GAAqC,KAA9B8vB,EAAM1yB,IAAI0C,WAAWJ,GAAiBA,IAG1D,OADAowB,EAAMpwB,IAAMA,GACL,CACT,C,qCCjCA,IAAIyH,EAAiB,EAAQ,OACzBu8B,EAAiB,sBACjBC,EAAiB,qBACjBC,EAAiB,wBAGrB,SAAS4M,EAAYpzC,EAAKiyB,EAAI3hB,EAAK85B,GACjCvuC,KAAKmE,IAAMA,EACXnE,KAAKyU,IAAMA,EACXzU,KAAKo2B,GAAKA,EACVp2B,KAAK43B,OAAS2W,EAEdvuC,KAAKyG,IAAM,EACXzG,KAAKk/B,OAASl/B,KAAKmE,IAAI7H,OACvB0D,KAAKg5B,MAAQ,EACbh5B,KAAKkhC,QAAU,GACflhC,KAAKw3C,aAAe,EAEpBx3C,KAAK2uC,MAAQ,CAAC,EAGd3uC,KAAKmsB,WAAa,EACpB,CAKAorB,EAAY/1C,UAAUotC,YAAc,WAClC,IAAI/W,EAAQ,IAAI3pB,EAAM,OAAQ,GAAI,GAKlC,OAJA2pB,EAAMQ,QAAUr4B,KAAKkhC,QACrBrJ,EAAMmB,MAAQh5B,KAAKw3C,aACnBx3C,KAAK43B,OAAOxyB,KAAKyyB,GACjB73B,KAAKkhC,QAAU,GACRrJ,CACT,EAMA0f,EAAY/1C,UAAU4D,KAAO,SAAUvG,EAAMiH,EAAK83B,GAC5C59B,KAAKkhC,SACPlhC,KAAK4uC,cAGP,IAAI/W,EAAQ,IAAI3pB,EAAMrP,EAAMiH,EAAK83B,GAQjC,OANIA,EAAU,GAAK59B,KAAKg5B,QACxBnB,EAAMmB,MAAQh5B,KAAKg5B,MACf4E,EAAU,GAAK59B,KAAKg5B,QAExBh5B,KAAKw3C,aAAex3C,KAAKg5B,MACzBh5B,KAAK43B,OAAOxyB,KAAKyyB,GACVA,CACT,EASA0f,EAAY/1C,UAAU4+B,WAAa,SAAUlsB,EAAOujC,GAClD,IAAiB/B,EAAU1U,EAAU1B,EAAOiB,EAAUC,EAClDqV,EAAkBF,EAClBG,EAAkBF,EAFlBnvC,EAAMyN,EAGNwjC,GAAgB,EAChBC,GAAiB,EACjB5wC,EAAM/G,KAAKk/B,OACXrG,EAAS74B,KAAKmE,IAAI0C,WAAWqN,GAGjCwhC,EAAWxhC,EAAQ,EAAIlU,KAAKmE,IAAI0C,WAAWqN,EAAQ,GAAK,GAExD,MAAOzN,EAAMM,GAAO/G,KAAKmE,IAAI0C,WAAWJ,KAASoyB,EAAUpyB,IAqC3D,OAnCA64B,EAAQ74B,EAAMyN,EAGd8sB,EAAWv6B,EAAMM,EAAM/G,KAAKmE,IAAI0C,WAAWJ,GAAO,GAElDkvC,EAAkBhL,EAAe+K,IAAahL,EAAY/jC,OAAO05B,aAAaqV,IAC9EE,EAAkBjL,EAAe3J,IAAa0J,EAAY/jC,OAAO05B,aAAaW,IAE9E6U,EAAmBpL,EAAaiL,GAChCI,EAAmBrL,EAAazJ,GAE5B8U,EACF4B,GAAgB,EACP9B,IACHC,GAAoBF,IACxB+B,GAAgB,IAIhB7B,EACF8B,GAAiB,EACRhC,IACHG,GAAoBF,IACxB+B,GAAiB,IAIhBF,GAIHlX,EAAYmX,EACZlX,EAAYmX,IAJZpX,EAAYmX,KAAoBC,GAAkBhC,GAClDnV,EAAYmX,KAAoBD,GAAkB9B,IAM7C,CACLrV,SAAWA,EACXC,UAAWA,EACXlkC,OAAWgjC,EAEf,EAIAiY,EAAY/1C,UAAU0M,MAAQA,EAG9B3S,EAAOC,QAAU+7C,C,iCC1HjBh8C,EAAOC,QAAQ,EAAW,SAAuBq7B,EAAOG,GACtD,IAAIlzB,EAAGq8B,EAAStI,EAAOjD,EAAKnG,EACxBva,EAAQ2iB,EAAMpwB,IACdoyB,EAAShC,EAAM1yB,IAAI0C,WAAWqN,GAElC,GAAI8iB,EAAU,OAAO,EAErB,GAAe,MAAX6B,EAA0B,OAAO,EAMrC,GAJAsH,EAAUtJ,EAAMuJ,WAAWvJ,EAAMpwB,KAAK,GACtCmuB,EAAMuL,EAAQ7jC,OACdmyB,EAAK9nB,OAAO05B,aAAaxH,GAErBjE,EAAM,EAAK,OAAO,EAQtB,IANIA,EAAM,IACRiD,EAAgBhB,EAAMzxB,KAAK,OAAQ,GAAI,GACvCyyB,EAAMQ,QAAU5J,EAChBmG,KAGG9wB,EAAI,EAAGA,EAAI8wB,EAAK9wB,GAAK,EACxB+zB,EAAgBhB,EAAMzxB,KAAK,OAAQ,GAAI,GACvCyyB,EAAMQ,QAAU5J,EAAKA,EAErBoI,EAAM1K,WAAW/mB,KAAK,CACpByzB,OAAQA,EACRyH,KAAQx8B,EACR+zB,MAAQhB,EAAMe,OAAOt7B,OAAS,EAC9B08B,MAAQnC,EAAMmC,MACdvoB,KAAS,EACTpM,KAAQ87B,EAAQI,SAChBh8B,MAAQ47B,EAAQK,YAMpB,OAFA3J,EAAMpwB,KAAO05B,EAAQ7jC,QAEd,CACT,EAKAf,EAAOC,QAAQ,EAAc,SAAuBq7B,GAClD,IAAI/yB,EAAG6zB,EACH+I,EACAC,EACA9I,EACA+I,EAAc,GACdzU,EAAa0K,EAAM1K,WACnBplB,EAAM8vB,EAAM1K,WAAW7vB,OAE3B,IAAKwH,EAAI,EAAGA,EAAIiD,EAAKjD,IACnB48B,EAAavU,EAAWroB,GAEE,MAAtB48B,EAAW7H,SAIS,IAApB6H,EAAWjwB,MAIfkwB,EAAWxU,EAAWuU,EAAWjwB,KAEjConB,EAAgBhB,EAAMe,OAAO8I,EAAW7I,OACxCA,EAAMh5B,KAAU,SAChBg5B,EAAM/xB,IAAU,IAChB+xB,EAAM+F,QAAU,EAChB/F,EAAMxM,OAAU,KAChBwM,EAAMQ,QAAU,GAEhBR,EAAgBhB,EAAMe,OAAO+I,EAAS9I,OACtCA,EAAMh5B,KAAU,UAChBg5B,EAAM/xB,IAAU,IAChB+xB,EAAM+F,SAAW,EACjB/F,EAAMxM,OAAU,KAChBwM,EAAMQ,QAAU,GAE8B,SAA1CxB,EAAMe,OAAO+I,EAAS9I,MAAQ,GAAGh5B,MACY,MAA7Cg4B,EAAMe,OAAO+I,EAAS9I,MAAQ,GAAGQ,SAEnCuI,EAAYx7B,KAAKu7B,EAAS9I,MAAQ,IAUtC,MAAO+I,EAAYtkC,OAAQ,CACzBwH,EAAI88B,EAAY7rB,MAChB4iB,EAAI7zB,EAAI,EAER,MAAO6zB,EAAId,EAAMe,OAAOt7B,QAAmC,YAAzBu6B,EAAMe,OAAOD,GAAG94B,KAChD84B,IAGFA,IAEI7zB,IAAM6zB,IACRE,EAAQhB,EAAMe,OAAOD,GACrBd,EAAMe,OAAOD,GAAKd,EAAMe,OAAO9zB,GAC/B+yB,EAAMe,OAAO9zB,GAAK+zB,EAEtB,CACF,C,iCCvGA,SAAS+f,EAAiBnpB,GACxB,OAAQA,GACN,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,IACL,KAAK,IACL,KAAK,IACH,OAAO,EACT,QACE,OAAO,EAEb,CAEAlzB,EAAOC,QAAU,SAAcq7B,EAAOG,GACpC,IAAIvwB,EAAMowB,EAAMpwB,IAEhB,MAAOA,EAAMowB,EAAMqI,SAAW0Y,EAAiB/gB,EAAM1yB,IAAI0C,WAAWJ,IAClEA,IAGF,OAAIA,IAAQowB,EAAMpwB,MAEbuwB,IAAUH,EAAMqK,SAAWrK,EAAM1yB,IAAI7G,MAAMu5B,EAAMpwB,IAAKA,IAE3DowB,EAAMpwB,IAAMA,GAEL,EACT,C,iCCrDAlL,EAAOC,QAAU,SAAuBq7B,GACtC,IAAIghB,EAAMzG,EACNpY,EAAQ,EACRpB,EAASf,EAAMe,OACf7wB,EAAM8vB,EAAMe,OAAOt7B,OAEvB,IAAKu7C,EAAOzG,EAAO,EAAGyG,EAAO9wC,EAAK8wC,IAEhC7e,GAASpB,EAAOigB,GAAMja,QACtBhG,EAAOigB,GAAM7e,MAAQA,EAEK,SAAtBpB,EAAOigB,GAAMh5C,MACbg5C,EAAO,EAAI9wC,GACe,SAA1B6wB,EAAOigB,EAAO,GAAGh5C,KAGnB+4B,EAAOigB,EAAO,GAAGxf,QAAUT,EAAOigB,GAAMxf,QAAUT,EAAOigB,EAAO,GAAGxf,SAE/Dwf,IAASzG,IAAQxZ,EAAOwZ,GAAQxZ,EAAOigB,IAE3CzG,KAIAyG,IAASzG,IACXxZ,EAAOt7B,OAAS80C,EAEpB,C,iCClBA,SAASljC,EAAMrP,EAAMiH,EAAK83B,GAMxB59B,KAAKnB,KAAWA,EAOhBmB,KAAK8F,IAAWA,EAOhB9F,KAAKwL,MAAW,KAOhBxL,KAAKonB,IAAW,KAWhBpnB,KAAK49B,QAAWA,EAOhB59B,KAAKg5B,MAAW,EAOhBh5B,KAAKsZ,SAAW,KAQhBtZ,KAAKq4B,QAAW,GAOhBr4B,KAAKqrB,OAAW,GAOhBrrB,KAAK29B,KAAW,GAOhB39B,KAAKg+B,KAAW,KAQhBh+B,KAAKs4B,OAAW,EAQhBt4B,KAAKi5B,QAAW,CAClB,CAQA/qB,EAAM1M,UAAU6gC,UAAY,SAAmBvjC,GAC7C,IAAI0M,EAAO1H,EAAG8wB,EAEd,IAAK50B,KAAKwL,MAAS,OAAQ,EAI3B,IAFAA,EAAQxL,KAAKwL,MAER1H,EAAI,EAAG8wB,EAAMppB,EAAMlP,OAAQwH,EAAI8wB,EAAK9wB,IACvC,GAAI0H,EAAM1H,GAAG,KAAOhF,EAAQ,OAAOgF,EAErC,OAAQ,CACV,EAQAoK,EAAM1M,UAAU8gC,SAAW,SAAkBwV,GACvC93C,KAAKwL,MACPxL,KAAKwL,MAAMpG,KAAK0yC,GAEhB93C,KAAKwL,MAAQ,CAAEssC,EAEnB,EAQA5pC,EAAM1M,UAAU4gC,QAAU,SAAiBtjC,EAAM1C,GAC/C,IAAIg5B,EAAMp1B,KAAKqiC,UAAUvjC,GACrBg5C,EAAW,CAAEh5C,EAAM1C,GAEnBg5B,EAAM,EACRp1B,KAAKsiC,SAASwV,GAEd93C,KAAKwL,MAAM4pB,GAAO0iB,CAEtB,EAQA5pC,EAAM1M,UAAUu2C,QAAU,SAAiBj5C,GACzC,IAAIs2B,EAAMp1B,KAAKqiC,UAAUvjC,GAAO1C,EAAQ,KAIxC,OAHIg5B,GAAO,IACTh5B,EAAQ4D,KAAKwL,MAAM4pB,GAAK,IAEnBh5B,CACT,EASA8R,EAAM1M,UAAUw2C,SAAW,SAAkBl5C,EAAM1C,GACjD,IAAIg5B,EAAMp1B,KAAKqiC,UAAUvjC,GAErBs2B,EAAM,EACRp1B,KAAKsiC,SAAS,CAAExjC,EAAM1C,IAEtB4D,KAAKwL,MAAM4pB,GAAK,GAAKp1B,KAAKwL,MAAM4pB,GAAK,GAAK,IAAMh5B,CAEpD,EAGAb,EAAOC,QAAU0S,C,oBCpMjB,SAAS+pC,EAAe9rC,GAEtB,IAAKA,EAAG+rC,qBAAsB,CAI5B,IAAIn5C,EAASoN,EAAGpN,OAAS,MAGrBqN,EAAQ,KAAOD,EAAGE,WAAa,IAAM,KAAOF,EAAGG,UAAY,IAAM,KAAOH,EAAGgsC,QAAU,IAAM,IAK/FhsC,EAAG+rC,qBAAuB,IAAI3tC,OAAOxL,EAAQqN,EAC/C,CACA,OAAOD,EAAG+rC,oBACZ,CAEA,SAASpqC,EAAQ3B,EAAIkjB,EAAK5oB,GACxB,GAAI0F,EAAG5N,QAAU4N,EAAGisC,OAClB,MAAM,IAAIptC,MAAM,uDAElB,IAAIqtC,EAAQJ,EAAe9rC,GAC3BksC,EAAM5tC,UAAYhE,EAClB,IAAIiI,EAAQ2pC,EAAMh4C,KAAKgvB,GAGvB,OAA+B,MAA3B3gB,EAAMA,EAAMpS,OAAS,IAEvBoS,EAAMpS,OAASoS,EAAMpS,OAAS,EACvBoS,GAEA,IAEX,CAEAnT,EAAOC,QAAUsS,C,iCC/BjB,IAAIwqC,EAAc,CAAC,EAEnB,SAASC,EAAeC,GACtB,IAAI10C,EAAG2qB,EAAIkgB,EAAQ2J,EAAYE,GAC/B,GAAI7J,EAAS,OAAOA,EAIpB,IAFAA,EAAQ2J,EAAYE,GAAW,GAE1B10C,EAAI,EAAGA,EAAI,IAAKA,IACnB2qB,EAAK9nB,OAAO05B,aAAav8B,GACzB6qC,EAAMvpC,KAAKqpB,GAGb,IAAK3qB,EAAI,EAAGA,EAAI00C,EAAQl8C,OAAQwH,IAC9B2qB,EAAK+pB,EAAQ3xC,WAAW/C,GACxB6qC,EAAMlgB,GAAM,KAAO,IAAMA,EAAGrxB,SAAS,IAAIytC,eAAevtC,OAAO,GAGjE,OAAOqxC,CACT,CAKA,SAAS/B,EAAO7H,EAAQyT,GACtB,IAAI7J,EAQJ,MANuB,kBAAZ6J,IACTA,EAAU5L,EAAO6L,cAGnB9J,EAAQ4J,EAAeC,GAEhBzT,EAAO1sB,QAAQ,qBAAqB,SAASqgC,GAClD,IAAI50C,EAAG8C,EAAG+xC,EAAIC,EAAIC,EAAIC,EAAIC,EACtBt0C,EAAS,GAEb,IAAKX,EAAI,EAAG8C,EAAI8xC,EAAIp8C,OAAQwH,EAAI8C,EAAG9C,GAAK,EACtC60C,EAAK5O,SAAS2O,EAAIp7C,MAAMwG,EAAI,EAAGA,EAAI,GAAI,IAEnC60C,EAAK,IACPl0C,GAAUkqC,EAAMgK,GAIE,OAAV,IAALA,IAAwB70C,EAAI,EAAI8C,IAEnCgyC,EAAK7O,SAAS2O,EAAIp7C,MAAMwG,EAAI,EAAGA,EAAI,GAAI,IAEnB,OAAV,IAAL80C,KACHG,EAAQJ,GAAM,EAAK,KAAe,GAALC,EAG3Bn0C,GADEs0C,EAAM,IACE,KAEApyC,OAAO05B,aAAa0Y,GAGhCj1C,GAAK,GAKW,OAAV,IAAL60C,IAAwB70C,EAAI,EAAI8C,IAEnCgyC,EAAK7O,SAAS2O,EAAIp7C,MAAMwG,EAAI,EAAGA,EAAI,GAAI,IACvC+0C,EAAK9O,SAAS2O,EAAIp7C,MAAMwG,EAAI,EAAGA,EAAI,GAAI,IAEnB,OAAV,IAAL80C,IAAuC,OAAV,IAALC,KAC3BE,EAAQJ,GAAM,GAAM,MAAYC,GAAM,EAAK,KAAe,GAALC,EAGnDp0C,GADEs0C,EAAM,MAAUA,GAAO,OAAUA,GAAO,MAChC,MAEApyC,OAAO05B,aAAa0Y,GAGhCj1C,GAAK,GAKW,OAAV,IAAL60C,IAAwB70C,EAAI,EAAI8C,IAEnCgyC,EAAK7O,SAAS2O,EAAIp7C,MAAMwG,EAAI,EAAGA,EAAI,GAAI,IACvC+0C,EAAK9O,SAAS2O,EAAIp7C,MAAMwG,EAAI,EAAGA,EAAI,GAAI,IACvCg1C,EAAK/O,SAAS2O,EAAIp7C,MAAMwG,EAAI,GAAIA,EAAI,IAAK,IAErB,OAAV,IAAL80C,IAAuC,OAAV,IAALC,IAAuC,OAAV,IAALC,KACnDC,EAAQJ,GAAM,GAAM,QAAcC,GAAM,GAAM,OAAaC,GAAM,EAAK,KAAe,GAALC,EAE5EC,EAAM,OAAWA,EAAM,QACzBt0C,GAAU,QAEVs0C,GAAO,MACPt0C,GAAUkC,OAAO05B,aAAa,OAAU0Y,GAAO,IAAK,OAAgB,KAANA,KAGhEj1C,GAAK,GAKTW,GAAU,IAGZ,OAAOA,CACT,GACF,CAGAmoC,EAAO6L,aAAiB,cACxB7L,EAAOoM,eAAiB,GAGxBz9C,EAAOC,QAAUoxC,C,iCCrHjB,IAAIqM,EAAc,CAAC,EAMnB,SAASC,EAAeV,GACtB,IAAI10C,EAAG2qB,EAAIkgB,EAAQsK,EAAYT,GAC/B,GAAI7J,EAAS,OAAOA,EAIpB,IAFAA,EAAQsK,EAAYT,GAAW,GAE1B10C,EAAI,EAAGA,EAAI,IAAKA,IACnB2qB,EAAK9nB,OAAO05B,aAAav8B,GAErB,cAAciV,KAAK0V,GAErBkgB,EAAMvpC,KAAKqpB,GAEXkgB,EAAMvpC,KAAK,KAAO,IAAMtB,EAAE1G,SAAS,IAAIytC,eAAevtC,OAAO,IAIjE,IAAKwG,EAAI,EAAGA,EAAI00C,EAAQl8C,OAAQwH,IAC9B6qC,EAAM6J,EAAQ3xC,WAAW/C,IAAM00C,EAAQ10C,GAGzC,OAAO6qC,CACT,CAUA,SAASnC,EAAOzH,EAAQyT,EAASW,GAC/B,IAAIr1C,EAAG8C,EAAGkjC,EAAMsP,EAAUzK,EACtBlqC,EAAS,GAcb,IAZuB,kBAAZ+zC,IAETW,EAAeX,EACfA,EAAUhM,EAAOiM,cAGQ,qBAAhBU,IACTA,GAAc,GAGhBxK,EAAQuK,EAAeV,GAElB10C,EAAI,EAAG8C,EAAIm+B,EAAOzoC,OAAQwH,EAAI8C,EAAG9C,IAGpC,GAFAgmC,EAAO/E,EAAOl+B,WAAW/C,GAErBq1C,GAAwB,KAATrP,GAAyBhmC,EAAI,EAAI8C,GAC9C,iBAAiBmS,KAAKgsB,EAAOznC,MAAMwG,EAAI,EAAGA,EAAI,IAChDW,GAAUsgC,EAAOznC,MAAMwG,EAAGA,EAAI,GAC9BA,GAAK,OAKT,GAAIgmC,EAAO,IACTrlC,GAAUkqC,EAAM7E,QAIlB,GAAIA,GAAQ,OAAUA,GAAQ,MAA9B,CACE,GAAIA,GAAQ,OAAUA,GAAQ,OAAUhmC,EAAI,EAAI8C,IAC9CwyC,EAAWrU,EAAOl+B,WAAW/C,EAAI,GAC7Bs1C,GAAY,OAAUA,GAAY,OAAQ,CAC5C30C,GAAU40C,mBAAmBtU,EAAOjhC,GAAKihC,EAAOjhC,EAAI,IACpDA,IACA,QACF,CAEFW,GAAU,WAEZ,MAEAA,GAAU40C,mBAAmBtU,EAAOjhC,IAGtC,OAAOW,CACT,CAEA+nC,EAAOiM,aAAiB,uBACxBjM,EAAOwM,eAAiB,YAGxBz9C,EAAOC,QAAUgxC,C,gCC7FjBjxC,EAAOC,QAAU,SAAgB24B,GAC/B,IAAI1vB,EAAS,GAkBb,OAhBAA,GAAU0vB,EAAIkY,UAAY,GAC1B5nC,GAAU0vB,EAAImlB,QAAU,KAAO,GAC/B70C,GAAU0vB,EAAIolB,KAAOplB,EAAIolB,KAAO,IAAM,GAElCplB,EAAIiY,WAA2C,IAA/BjY,EAAIiY,SAASnhC,QAAQ,KAEvCxG,GAAU,IAAM0vB,EAAIiY,SAAW,IAE/B3nC,GAAU0vB,EAAIiY,UAAY,GAG5B3nC,GAAU0vB,EAAIqlB,KAAO,IAAMrlB,EAAIqlB,KAAO,GACtC/0C,GAAU0vB,EAAIslB,UAAY,GAC1Bh1C,GAAU0vB,EAAIa,QAAU,GACxBvwB,GAAU0vB,EAAIulB,MAAQ,GAEfj1C,CACT,C,qCCrBAlJ,EAAOC,QAAQgxC,OAAS,EAAxB,OACAjxC,EAAOC,QAAQoxC,OAAS,EAAxB,OACArxC,EAAOC,QAAQixC,OAAS,EAAxB,MACAlxC,EAAOC,QAAQ6V,MAAf,O,gCCuCA,SAASsoC,IACP35C,KAAKqsC,SAAW,KAChBrsC,KAAKs5C,QAAU,KACft5C,KAAKu5C,KAAO,KACZv5C,KAAKw5C,KAAO,KACZx5C,KAAKosC,SAAW,KAChBpsC,KAAK05C,KAAO,KACZ15C,KAAKg1B,OAAS,KACdh1B,KAAKy5C,SAAW,IAClB,CAMA,IAAIG,EAAkB,oBAClBC,EAAc,WAGdC,EAAoB,qCAIpBC,EAAS,CAAE,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,MAGhDC,EAAS,CAAE,IAAK,IAAK,IAAK,KAAM,IAAK,KAAMtyC,OAAOqyC,GAGlDE,EAAa,CAAE,KAAOvyC,OAAOsyC,GAK7BE,EAAe,CAAE,IAAK,IAAK,IAAK,IAAK,KAAMxyC,OAAOuyC,GAClDE,EAAkB,CAAE,IAAK,IAAK,KAC9BC,EAAiB,IACjBC,EAAsB,yBACtBC,EAAoB,+BAIpBC,EAAmB,CACjB,YAAc,EACd,eAAe,GAGjBC,EAAkB,CAChB,MAAQ,EACR,OAAS,EACT,KAAO,EACP,QAAU,EACV,MAAQ,EACR,SAAS,EACT,UAAU,EACV,QAAQ,EACR,WAAW,EACX,SAAS,GAIf,SAASC,EAAStmB,EAAKumB,GACrB,GAAIvmB,GAAOA,aAAewlB,EAAO,OAAOxlB,EAExC,IAAIwmB,EAAI,IAAIhB,EAEZ,OADAgB,EAAEtpC,MAAM8iB,EAAKumB,GACNC,CACT,CAEAhB,EAAIn4C,UAAU6P,MAAQ,SAAS8iB,EAAKumB,GAClC,IAAI52C,EAAG8C,EAAGg0C,EAAYC,EAAKvB,EACvBwB,EAAO3mB,EAMX,GAFA2mB,EAAOA,EAAKtjB,QAEPkjB,GAA+C,IAA1BvmB,EAAI71B,MAAM,KAAKhC,OAAc,CAErD,IAAIy+C,EAAajB,EAAkBz5C,KAAKy6C,GACxC,GAAIC,EAKF,OAJA/6C,KAAKy5C,SAAWsB,EAAW,GACvBA,EAAW,KACb/6C,KAAKg1B,OAAS+lB,EAAW,IAEpB/6C,IAEX,CAEA,IAAI4C,EAAQg3C,EAAgBv5C,KAAKy6C,GAoBjC,GAnBIl4C,IACFA,EAAQA,EAAM,GACdg4C,EAAah4C,EAAM0sB,cACnBtvB,KAAKqsC,SAAWzpC,EAChBk4C,EAAOA,EAAK1iB,OAAOx1B,EAAMtG,UAOvBo+C,GAAqB93C,GAASk4C,EAAKpsC,MAAM,2BAC3C4qC,EAAgC,OAAtBwB,EAAK1iB,OAAO,EAAG,IACrBkhB,GAAa12C,GAAS23C,EAAiB33C,KACzCk4C,EAAOA,EAAK1iB,OAAO,GACnBp4B,KAAKs5C,SAAU,KAIdiB,EAAiB33C,KACjB02C,GAAY12C,IAAU43C,EAAgB53C,IAAU,CAkBnD,IAUI22C,EAAMyB,EAVNC,GAAW,EACf,IAAKn3C,EAAI,EAAGA,EAAIq2C,EAAgB79C,OAAQwH,IACtC+2C,EAAMC,EAAK7vC,QAAQkvC,EAAgBr2C,KACtB,IAAT+2C,KAA4B,IAAbI,GAAkBJ,EAAMI,KACzCA,EAAUJ,GA0Bd,IAjBEG,GAFe,IAAbC,EAEOH,EAAKtZ,YAAY,KAIjBsZ,EAAKtZ,YAAY,IAAKyZ,IAKjB,IAAZD,IACFzB,EAAOuB,EAAKx9C,MAAM,EAAG09C,GACrBF,EAAOA,EAAKx9C,MAAM09C,EAAS,GAC3Bh7C,KAAKu5C,KAAOA,GAId0B,GAAW,EACNn3C,EAAI,EAAGA,EAAIo2C,EAAa59C,OAAQwH,IACnC+2C,EAAMC,EAAK7vC,QAAQivC,EAAap2C,KACnB,IAAT+2C,KAA4B,IAAbI,GAAkBJ,EAAMI,KACzCA,EAAUJ,IAIG,IAAbI,IACFA,EAAUH,EAAKx+C,QAGS,MAAtBw+C,EAAKG,EAAU,IAAcA,IACjC,IAAIC,EAAOJ,EAAKx9C,MAAM,EAAG29C,GACzBH,EAAOA,EAAKx9C,MAAM29C,GAGlBj7C,KAAKm7C,UAAUD,GAIfl7C,KAAKosC,SAAWpsC,KAAKosC,UAAY,GAIjC,IAAIgP,EAAoC,MAArBp7C,KAAKosC,SAAS,IACe,MAA5CpsC,KAAKosC,SAASpsC,KAAKosC,SAAS9vC,OAAS,GAGzC,IAAK8+C,EAAc,CACjB,IAAIC,EAAYr7C,KAAKosC,SAAS9tC,MAAM,MACpC,IAAKwF,EAAI,EAAG8C,EAAIy0C,EAAU/+C,OAAQwH,EAAI8C,EAAG9C,IAAK,CAC5C,IAAIw3C,EAAOD,EAAUv3C,GACrB,GAAKw3C,IACAA,EAAK5sC,MAAM2rC,GAAsB,CAEpC,IADA,IAAIkB,EAAU,GACL5jB,EAAI,EAAGxT,EAAIm3B,EAAKh/C,OAAQq7B,EAAIxT,EAAGwT,IAClC2jB,EAAKz0C,WAAW8wB,GAAK,IAIvB4jB,GAAW,IAEXA,GAAWD,EAAK3jB,GAIpB,IAAK4jB,EAAQ7sC,MAAM2rC,GAAsB,CACvC,IAAImB,EAAaH,EAAU/9C,MAAM,EAAGwG,GAChC23C,EAAUJ,EAAU/9C,MAAMwG,EAAI,GAC9B43C,EAAMJ,EAAK5sC,MAAM4rC,GACjBoB,IACFF,EAAWp2C,KAAKs2C,EAAI,IACpBD,EAAQ/1B,QAAQg2B,EAAI,KAElBD,EAAQn/C,SACVw+C,EAAOW,EAAQvwB,KAAK,KAAO4vB,GAE7B96C,KAAKosC,SAAWoP,EAAWtwB,KAAK,KAChC,KACF,CACF,CACF,CACF,CAEIlrB,KAAKosC,SAAS9vC,OAAS89C,IACzBp6C,KAAKosC,SAAW,IAKdgP,IACFp7C,KAAKosC,SAAWpsC,KAAKosC,SAAShU,OAAO,EAAGp4B,KAAKosC,SAAS9vC,OAAS,GAEnE,CAGA,IAAIo9C,EAAOoB,EAAK7vC,QAAQ,MACV,IAAVyuC,IAEF15C,KAAK05C,KAAOoB,EAAK1iB,OAAOshB,GACxBoB,EAAOA,EAAKx9C,MAAM,EAAGo8C,IAEvB,IAAIiC,EAAKb,EAAK7vC,QAAQ,KAWtB,OAVY,IAAR0wC,IACF37C,KAAKg1B,OAAS8lB,EAAK1iB,OAAOujB,GAC1Bb,EAAOA,EAAKx9C,MAAM,EAAGq+C,IAEnBb,IAAQ96C,KAAKy5C,SAAWqB,GACxBN,EAAgBI,IAChB56C,KAAKosC,WAAapsC,KAAKy5C,WACzBz5C,KAAKy5C,SAAW,IAGXz5C,IACT,EAEA25C,EAAIn4C,UAAU25C,UAAY,SAASD,GACjC,IAAI1B,EAAOK,EAAYx5C,KAAK66C,GACxB1B,IACFA,EAAOA,EAAK,GACC,MAATA,IACFx5C,KAAKw5C,KAAOA,EAAKphB,OAAO,IAE1B8iB,EAAOA,EAAK9iB,OAAO,EAAG8iB,EAAK5+C,OAASk9C,EAAKl9C,SAEvC4+C,IAAQl7C,KAAKosC,SAAW8O,EAC9B,EAEA3/C,EAAOC,QAAUi/C,C,wOCpTjB,MAAMmB,EAAS,WAGTpoC,EAAO,GACPqoC,EAAO,EACPC,EAAO,GACPnjC,EAAO,GACPojC,EAAO,IACPC,EAAc,GACdC,EAAW,IACXrgC,EAAY,IAGZsgC,EAAgB,QAChBC,EAAgB,aAChBC,EAAkB,4BAGlBC,EAAS,CACd,SAAY,kDACZ,YAAa,iDACb,gBAAiB,iBAIZC,EAAgB9oC,EAAOqoC,EACvB30C,EAAQ3G,KAAK2G,MACbq1C,EAAqB51C,OAAO05B,aAUlC,SAAS9vB,EAAM1R,GACd,MAAM,IAAI29C,WAAWH,EAAOx9C,GAC7B,CAUA,SAASuoB,EAAI7K,EAAO5e,GACnB,MAAM8G,EAAS,GACf,IAAInI,EAASigB,EAAMjgB,OACnB,MAAOA,IACNmI,EAAOnI,GAAUqB,EAAG4e,EAAMjgB,IAE3B,OAAOmI,CACR,CAYA,SAASg4C,EAAU1X,EAAQpnC,GAC1B,MAAM++C,EAAQ3X,EAAOzmC,MAAM,KAC3B,IAAImG,EAAS,GACTi4C,EAAMpgD,OAAS,IAGlBmI,EAASi4C,EAAM,GAAK,IACpB3X,EAAS2X,EAAM,IAGhB3X,EAASA,EAAO1sB,QAAQ+jC,EAAiB,KACzC,MAAMO,EAAS5X,EAAOzmC,MAAM,KACtBs+C,EAAUx1B,EAAIu1B,EAAQh/C,GAAIutB,KAAK,KACrC,OAAOzmB,EAASm4C,CACjB,CAeA,SAASC,EAAW9X,GACnB,MAAMrhB,EAAS,GACf,IAAIo5B,EAAU,EACd,MAAMxgD,EAASyoC,EAAOzoC,OACtB,MAAOwgD,EAAUxgD,EAAQ,CACxB,MAAMF,EAAQ2oC,EAAOl+B,WAAWi2C,KAChC,GAAI1gD,GAAS,OAAUA,GAAS,OAAU0gD,EAAUxgD,EAAQ,CAE3D,MAAMygD,EAAQhY,EAAOl+B,WAAWi2C,KACR,QAAX,MAARC,GACJr5B,EAAOte,OAAe,KAARhJ,IAAkB,KAAe,KAAR2gD,GAAiB,QAIxDr5B,EAAOte,KAAKhJ,GACZ0gD,IAEF,MACCp5B,EAAOte,KAAKhJ,EAEd,CACA,OAAOsnB,CACR,CAUA,MAAMs5B,EAAazgC,GAAS5V,OAAO0iC,iBAAiB9sB,GAW9C0gC,EAAe,SAASC,GAC7B,OAAIA,EAAY,GAAO,GACfA,EAAY,GAEhBA,EAAY,GAAO,GACfA,EAAY,GAEhBA,EAAY,GAAO,GACfA,EAAY,GAEb1pC,CACR,EAaM2pC,EAAe,SAASC,EAAOC,GAGpC,OAAOD,EAAQ,GAAK,IAAMA,EAAQ,MAAgB,GAARC,IAAc,EACzD,EAOMC,EAAQ,SAASC,EAAOC,EAAWC,GACxC,IAAIt5B,EAAI,EAGR,IAFAo5B,EAAQE,EAAYv2C,EAAMq2C,EAAQxB,GAAQwB,GAAS,EACnDA,GAASr2C,EAAMq2C,EAAQC,GACOD,EAAQjB,EAAgBR,GAAQ,EAAG33B,GAAK3Q,EACrE+pC,EAAQr2C,EAAMq2C,EAAQjB,GAEvB,OAAOp1C,EAAMid,GAAKm4B,EAAgB,GAAKiB,GAASA,EAAQ5kC,GACzD,EASMi0B,EAAS,SAAS5+B,GAEvB,MAAM0V,EAAS,GACTg6B,EAAc1vC,EAAM1R,OAC1B,IAAIwH,EAAI,EACJg6B,EAAIme,EACJ0B,EAAO3B,EAMP4B,EAAQ5vC,EAAMwzB,YAAY5lB,GAC1BgiC,EAAQ,IACXA,EAAQ,GAGT,IAAK,IAAIjmB,EAAI,EAAGA,EAAIimB,IAASjmB,EAExB3pB,EAAMnH,WAAW8wB,IAAM,KAC1BpnB,EAAM,aAEPmT,EAAOte,KAAK4I,EAAMnH,WAAW8wB,IAM9B,IAAK,IAAIp7B,EAAQqhD,EAAQ,EAAIA,EAAQ,EAAI,EAAGrhD,EAAQmhD,GAAwC,CAO3F,IAAIG,EAAO/5C,EACX,IAAK,IAAIg6C,EAAI,EAAG35B,EAAI3Q,GAA0B2Q,GAAK3Q,EAAM,CAEpDjX,GAASmhD,GACZntC,EAAM,iBAGP,MAAM6sC,EAAQH,EAAajvC,EAAMnH,WAAWtK,OAExC6gD,GAAS5pC,GAAQ4pC,EAAQl2C,GAAO00C,EAAS93C,GAAKg6C,KACjDvtC,EAAM,YAGPzM,GAAKs5C,EAAQU,EACb,MAAM15B,EAAID,GAAKw5B,EAAO9B,EAAQ13B,GAAKw5B,EAAO7B,EAAOA,EAAO33B,EAAIw5B,EAE5D,GAAIP,EAAQh5B,EACX,MAGD,MAAM25B,EAAavqC,EAAO4Q,EACtB05B,EAAI52C,EAAM00C,EAASmC,IACtBxtC,EAAM,YAGPutC,GAAKC,CAEN,CAEA,MAAM9+C,EAAMykB,EAAOpnB,OAAS,EAC5BqhD,EAAOL,EAAMx5C,EAAI+5C,EAAM5+C,EAAa,GAAR4+C,GAIxB32C,EAAMpD,EAAI7E,GAAO28C,EAAS9d,GAC7BvtB,EAAM,YAGPutB,GAAK52B,EAAMpD,EAAI7E,GACf6E,GAAK7E,EAGLykB,EAAOuH,OAAOnnB,IAAK,EAAGg6B,EAEvB,CAEA,OAAOn3B,OAAO0iC,iBAAiB3lB,EAChC,EASM8oB,EAAS,SAASx+B,GACvB,MAAM0V,EAAS,GAGf1V,EAAQ6uC,EAAW7uC,GAGnB,IAAI0vC,EAAc1vC,EAAM1R,OAGpBwhC,EAAIme,EACJsB,EAAQ,EACRI,EAAO3B,EAGX,IAAK,MAAMgC,KAAgBhwC,EACtBgwC,EAAe,KAClBt6B,EAAOte,KAAKm3C,EAAmByB,IAIjC,IAAIC,EAAcv6B,EAAOpnB,OACrB4hD,EAAiBD,EAMjBA,GACHv6B,EAAOte,KAAKwW,GAIb,MAAOsiC,EAAiBR,EAAa,CAIpC,IAAIjpB,EAAImnB,EACR,IAAK,MAAMoC,KAAgBhwC,EACtBgwC,GAAgBlgB,GAAKkgB,EAAevpB,IACvCA,EAAIupB,GAMN,MAAMG,EAAwBD,EAAiB,EAC3CzpB,EAAIqJ,EAAI52B,GAAO00C,EAAS2B,GAASY,IACpC5tC,EAAM,YAGPgtC,IAAU9oB,EAAIqJ,GAAKqgB,EACnBrgB,EAAIrJ,EAEJ,IAAK,MAAMupB,KAAgBhwC,EAI1B,GAHIgwC,EAAelgB,KAAOyf,EAAQ3B,GACjCrrC,EAAM,YAEHytC,GAAgBlgB,EAAG,CAEtB,IAAIsgB,EAAIb,EACR,IAAK,IAAIp5B,EAAI3Q,GAA0B2Q,GAAK3Q,EAAM,CACjD,MAAM4Q,EAAID,GAAKw5B,EAAO9B,EAAQ13B,GAAKw5B,EAAO7B,EAAOA,EAAO33B,EAAIw5B,EAC5D,GAAIS,EAAIh6B,EACP,MAED,MAAMi6B,EAAUD,EAAIh6B,EACd25B,EAAavqC,EAAO4Q,EAC1BV,EAAOte,KACNm3C,EAAmBY,EAAa/4B,EAAIi6B,EAAUN,EAAY,KAE3DK,EAAIl3C,EAAMm3C,EAAUN,EACrB,CAEAr6B,EAAOte,KAAKm3C,EAAmBY,EAAaiB,EAAG,KAC/CT,EAAOL,EAAMC,EAAOY,EAAuBD,GAAkBD,GAC7DV,EAAQ,IACNW,CACH,GAGCX,IACAzf,CAEH,CACA,OAAOpa,EAAOwH,KAAK,GACpB,EAaMyhB,EAAY,SAAS3+B,GAC1B,OAAOyuC,EAAUzuC,GAAO,SAAS+2B,GAChC,OAAOmX,EAAcnjC,KAAKgsB,GACvB6H,EAAO7H,EAAOznC,MAAM,GAAGgyB,eACvByV,CACJ,GACD,EAaMuH,EAAU,SAASt+B,GACxB,OAAOyuC,EAAUzuC,GAAO,SAAS+2B,GAChC,OAAOoX,EAAcpjC,KAAKgsB,GACvB,OAASyH,EAAOzH,GAChBA,CACJ,GACD,EAKM2G,EAAW,CAMhB,QAAW,QAQX,KAAQ,CACP,OAAUmR,EACV,OAAUG,GAEX,OAAUpQ,EACV,OAAUJ,EACV,QAAWF,EACX,UAAaK,GAId,c,oBCxbApxC,EAAOC,QAAQ,oB,oBCAfD,EAAOC,QAAQ,uN,oBCAfD,EAAOC,QAAQ,o2D,oBCAfD,EAAOC,QAAQ,0D,qCCEfA,EAAQ8iD,IAAM,EAAd,OACA9iD,EAAQ8hC,GAAR,SACA9hC,EAAQ+iD,GAAR,SACA/iD,EAAQiE,EAAR,SACAjE,EAAQm7B,EAAR,Q,oBCNAp7B,EAAOC,QAAQ,kI,qBCAd,SAAUupB,GACR,aA0BA,IAdA,IAAIy5B,EAAkB,CAAC,KAAM,EAAG,CAAC,GAC7BC,EAAkB,GAClBC,EAAQ,MAAQC,EAAQ,KAAQC,EAAQ,KAAQC,EAAQ,KAAQC,EAAS,GAAIC,EAAS,GAAIC,EAAS,GACnGC,EAASF,EAASC,EAClBE,EAASJ,EAASG,EAElBE,EAAQ,SAASC,EAAIC,GACtBr/C,KAAKs/C,UAAYF,EACjBp/C,KAAKq/C,QAAUA,CAClB,EAGI1Q,EAAQ,CAAC,EACT4Q,EAAe,GACVz7C,EAAI,EAAGA,GAAK,MAAQA,EAC1By7C,EAAaz7C,GAAK,EAGrB,SAAS07C,EAAUj+C,EAAM69C,EAAIK,GAC1B,IAAIC,EAAM/Q,EAAMyQ,GAOhB,OANIM,IACDA,EAAMn+C,EAAK69C,EAAIK,GACVC,EAAIL,WAAaE,EAAcH,GAAM,EAAK,KAAQX,IACpD9P,EAAMyQ,GAAMM,IAGXA,CACV,CAEA,SAASC,EAASp+C,EAAM69C,EAAIK,GACzB,IAAI/F,EAAY,MAAL0F,EACPQ,EAAQT,EAAMU,MAAMnG,IAAS,CAAC,EAC9B54C,EAAI8+C,EAAMR,GACd,OAAW,IAAID,EAAMC,EAAdt+C,GAAqC09C,EAC/C,CACA,SAASsB,EAAWv+C,EAAM69C,EAAIK,GAC3B,OAASA,EAAcl+C,EAAK69C,EAAIK,GAAe,IAAIN,EAAMC,EAAI,KAChE,CACA,SAASW,EAAkBx+C,EAAM69C,EAAIK,GAClC,IAAI9nB,EACJ,GAAGynB,EAAKT,GAAUA,EAAQG,GAAUM,GAAMA,EAAKV,GAAWA,EAAQQ,EAASE,EACxE,OAAO79C,EAAK69C,EAAIK,GAEnB,GAAGd,GAASS,GAAMA,EAAKT,EAAQG,EAAO,CACnC,IAAI/gD,EAAI,CAAC,EACLyV,GAAQ4rC,EAAKT,GAASI,EAC1B,IAAKpnB,EAAI,EAAGA,EAAIonB,IAAUpnB,EACvB55B,EAAE6gD,EAAQjnB,GAAK+mB,EAAQM,GAAUrnB,EAAInkB,GAExC,OAAO,IAAI2rC,EAAMC,EAAI,CAAC,CAAC,CAACrhD,GAC3B,CAEA,IAAIiiD,EAASZ,EAAKV,EACduB,EAASD,EAAShB,EAClBK,EAAU,GACd,GAAc,IAAXY,EACAZ,EAAQ,GAAK,CAACX,EAAQsB,EAASC,EAAQpB,EAAQoB,QAI/C,IAFAZ,EAAQ,GAAK,CAACV,EAAQp+C,KAAK2G,MAAM84C,EAASf,GAASL,EAAQr+C,KAAK2G,MAAO84C,EAASf,EAAUD,IAC1FK,EAAQ,GAAK,CAAC,EACT1nB,EAAI,EAAGA,EAAIqnB,IAAUrnB,EACvB0nB,EAAQ,GAAGR,EAAQlnB,GAAKynB,EAAKznB,EAGnC,OAAO,IAAIwnB,EAAMC,EAAIC,EACxB,CACA,SAASa,EAAa3+C,EAAM69C,EAAIK,GAC7B,OAAOL,EAAK,IAAM,MAAQA,GAAMA,EAAK,MAAQ,IAAID,EAAMC,EAAIZ,GAAmBj9C,EAAK69C,EAAIK,EAC1F,CAEA,IAAIU,EAAa,CAACD,EAAcV,EAAWM,EAAYC,EAAmBJ,GAE1ER,EAAM9e,aAAe8f,EAAWC,aAAY,SAAU7+C,EAAM8+C,GACzD,OAAO,SAAUjB,EAAIK,GAClB,OAAOY,EAAS9+C,EAAM69C,EAAIK,EAC7B,CACH,GAAG,MAEHN,EAAMmB,gBAAkB,SAASlB,GAC9B,OAAOA,GAAM,OAAUA,GAAM,KAChC,EACAD,EAAMoB,eAAiB,SAASnB,GAC7B,OAAOA,GAAM,OAAUA,GAAM,KAChC,EAEAD,EAAM39C,UAAUg/C,YAAc,WACvBxgD,KAAKq/C,UACNr/C,KAAKq/C,QAAUF,EAAM9e,aAAargC,KAAKs/C,WAAW,GAAMD,QAE9D,EAEAF,EAAM39C,UAAUpE,SAAW,WACxB,GAAG4C,KAAKs/C,UAAY,MACjB,OAAO34C,OAAO05B,aAAargC,KAAKs/C,WAEhC,IAAIj7B,EAAIrkB,KAAKs/C,UAAY,MACzB,OAAO34C,OAAO05B,aAAa9/B,KAAK2G,MAAMmd,EAAI,MAAS,MAAQA,EAAI,KAAQ,MAE7E,EAEA86B,EAAM39C,UAAUi/C,UAAY,WAEzB,OADAzgD,KAAKwgD,cACExgD,KAAKq/C,QAAQ,IAAM,IAC7B,EAEAF,EAAM39C,UAAUk/C,gBAAkB,WAE/B,OADA1gD,KAAKwgD,gBACIxgD,KAAKq/C,QAAQ,IAAyB,IAAlBr/C,KAAKq/C,QAAQ,EAC7C,EACAF,EAAM39C,UAAUm/C,UAAY,WAEzB,OADA3gD,KAAKwgD,gBACIxgD,KAAKq/C,QAAQ,IAAyB,IAAlBr/C,KAAKq/C,QAAQ,EAC7C,EACAF,EAAM39C,UAAUo/C,kBAAoB,WAEjC,OADA5gD,KAAKwgD,cACIxgD,KAAKq/C,QAAQ,GAAwB,IAAlBr/C,KAAKq/C,QAAQ,GAAa,CACzD,EACAF,EAAM39C,UAAUq/C,aAAe,SAASC,GAErC,GADA9gD,KAAKwgD,eACDxgD,KAAKq/C,QAAQ,GACd,OAAO,KAEV,IAAID,EAAKp/C,KAAKq/C,QAAQ,GAAGyB,EAAUxB,WACnC,OAAOF,EAAKD,EAAM9e,aAAa+e,GAAM,IACxC,EAEA,IAAI2B,EAAgB,SAAS1xB,GAC1BrvB,KAAKqvB,IAAMA,EACXrvB,KAAKghD,OAAS,CACjB,EACAD,EAAcv/C,UAAUD,KAAO,WAC5B,GAAKvB,KAAKqvB,KAAOrvB,KAAKghD,OAAShhD,KAAKqvB,IAAI/yB,OAAO,CAC5C,IACI2kD,EADA7B,EAAKp/C,KAAKqvB,IAAIxoB,WAAW7G,KAAKghD,UAMlC,OAJG7B,EAAMmB,gBAAgBlB,IAAOp/C,KAAKghD,OAAShhD,KAAKqvB,IAAI/yB,QAAU6iD,EAAMoB,eAAgBU,EAAIjhD,KAAKqvB,IAAIxoB,WAAW7G,KAAKghD,WACjH5B,EAAqB,MAAfA,EAAK,QAAmB6B,EAAG,OAAU,QACzCjhD,KAAKghD,QAEH7B,EAAM9e,aAAa+e,EAC7B,CAEG,OADAp/C,KAAKqvB,IAAM,KACJ,IAEb,EAEA,IAAI6xB,EAAuB,SAASxlD,EAAIylD,GACrCnhD,KAAKtE,GAAKA,EACVsE,KAAKohD,UAAYD,EACjBnhD,KAAKqhD,OAAS,EACjB,EAEAH,EAAqB1/C,UAAUD,KAAO,WACnC,SAAS+/C,EAAgBH,EAAMI,GAC5B,IAAIC,EAASD,EAAMd,YACnB,IAAKe,GAAYL,GAAQI,EAAMb,kBAQ5B,MAAO,CAACa,GANR,IADA,IAAI7B,EAAM,GACF57C,EAAI,EAAGA,EAAI09C,EAAOllD,SAAUwH,EAAE,CACnC,IAAIjG,EAAIyjD,EAAgBH,EAAMhC,EAAM9e,aAAamhB,EAAO19C,KACvD47C,EAAMA,EAAIh4C,OAAO7J,EACrB,CACA,OAAO6hD,CAIb,CACA,GAA0B,IAAvB1/C,KAAKqhD,OAAO/kD,OAAa,CACzB,IAAIilD,EAAQvhD,KAAKtE,GAAG6F,OACpB,IAAIggD,EACD,OAAO,KAEVvhD,KAAKqhD,OAASC,EAAgBthD,KAAKohD,UAAWG,EACjD,CACA,OAAOvhD,KAAKqhD,OAAOhnC,OACtB,EAEA,IAAIonC,EAAiB,SAAS/lD,GAC3BsE,KAAKtE,GAAKA,EACVsE,KAAKqhD,OAAS,EACjB,EAEAI,EAAejgD,UAAUD,KAAO,WAC7B,IAAImgD,EACJ,GAA0B,IAAvB1hD,KAAKqhD,OAAO/kD,OACZ,EAAE,CACC,IAAIilD,EAAQvhD,KAAKtE,GAAG6F,OACpB,IAAIggD,EACD,MAEHG,EAAKH,EAAMX,oBACX,IAAIe,EAAQ3hD,KAAKqhD,OAAO/kD,OACxB,GAAU,IAAPolD,EACA,KAAMC,EAAQ,IAAKA,EAAM,CACtB,IAAIC,EAAS5hD,KAAKqhD,OAAOM,EAAQ,GAC7BE,EAAMD,EAAOhB,oBACjB,GAAGiB,GAAOH,EACP,KAEN,CAEH1hD,KAAKqhD,OAAOp2B,OAAO02B,EAAO,EAAGJ,EAChC,OAAe,IAAPG,GAEX,OAAO1hD,KAAKqhD,OAAOhnC,OACtB,EAEA,IAAIynC,EAAe,SAASpmD,GACzBsE,KAAKtE,GAAKA,EACVsE,KAAK+hD,QAAU,GACf/hD,KAAKqhD,OAAS,GACdrhD,KAAKgiD,UAAY,IACpB,EAEAF,EAAatgD,UAAUD,KAAO,WAC3B,MAA6B,IAAvBvB,KAAKqhD,OAAO/kD,OAAa,CAC5B,IAAIilD,EAAQvhD,KAAKtE,GAAG6F,OACpB,IAAIggD,EAAM,CACPvhD,KAAKqhD,OAASrhD,KAAK+hD,QACnB/hD,KAAK+hD,QAAU,GACf,KACH,CACA,GAA2B,IAAxB/hD,KAAK+hD,QAAQzlD,OACb0D,KAAKgiD,UAAYT,EAAMX,oBACvB5gD,KAAK+hD,QAAQ38C,KAAKm8C,OACd,CACJ,IAAIU,EAAUjiD,KAAK+hD,QAAQ,GACvBG,EAAYD,EAAQpB,aAAaU,GACjCG,EAAKH,EAAMX,oBACVsB,IAAcliD,KAAKgiD,UAAYN,GAAyB,IAAnB1hD,KAAKgiD,WAC5ChiD,KAAK+hD,QAAQ,GAAKG,GAER,IAAPR,IACA1hD,KAAKqhD,OAASrhD,KAAK+hD,QACnB/hD,KAAK+hD,QAAU,IAElB/hD,KAAKgiD,UAAYN,EACjB1hD,KAAK+hD,QAAQ38C,KAAKm8C,GAExB,CACH,CACA,OAAOvhD,KAAKqhD,OAAOhnC,OACtB,EAEA,IAAI8nC,EAAiB,SAAS/7C,EAAMipB,GACjC,OAAOjpB,GACJ,IAAK,MACF,OAAO,IAAIq7C,EAAe,IAAIP,EAAqB,IAAIH,EAAc1xB,IAAM,IAC9E,IAAK,OACF,OAAO,IAAIoyB,EAAe,IAAIP,EAAqB,IAAIH,EAAc1xB,IAAM,IAC9E,IAAK,MACF,OAAO,IAAIyyB,EAAa,IAAIL,EAAe,IAAIP,EAAqB,IAAIH,EAAc1xB,IAAM,KAC/F,IAAK,OACF,OAAO,IAAIyyB,EAAa,IAAIL,EAAe,IAAIP,EAAqB,IAAIH,EAAc1xB,IAAM,KAElG,MAAMjpB,EAAO,aAChB,EACI4rB,EAAY,SAAS5rB,EAAMipB,GAC5B,IAEIkyB,EAFA7lD,EAAKymD,EAAe/7C,EAAMipB,GAC1BqwB,EAAM,GAEV,MAAS6B,EAAQ7lD,EAAG6F,OACjBm+C,GAAO6B,EAAMnkD,WAEhB,OAAOsiD,CACV,EAGA,SAAS0C,EAAI/yB,GACV,OAAO2C,EAAU,MAAO3C,EAC3B,CAEA,SAASgzB,EAAKhzB,GACX,OAAO2C,EAAU,OAAQ3C,EAC5B,CAEA,SAASizB,EAAIjzB,GACV,OAAO2C,EAAU,MAAO3C,EAC3B,CAEA,SAASkzB,EAAKlzB,GACX,OAAO2C,EAAU,OAAQ3C,EAC5B,CAGH8vB,EAAMU,MAAM,CACZ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,OAC9sK,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,MAAM,CAAC,CAAC,MAC9rG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,MAC/lC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,IAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,MACx4F,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,OACxxD,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAC3mB,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAC3+B,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAC5b,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAC9mB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,MACnhB,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,MACvR,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,IACtU,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,IACzQ,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,QAClQ,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,MACvP,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,MAC1qB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAC7R,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAClL,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAC/C,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,MACvS,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAC3I,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IACrH,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IACpC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,MAC3C,KAAK,CAAC,KAAK,CAAC,CAAC,MACb,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MACrC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MACvT,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAC7mB,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAC/T,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAC/yE,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,OACzrI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,IAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,IAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,IAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,KAAK,KAAK,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,GAAG,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,QACxzK,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAC//C,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,KAAK,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,QACrrE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,OACx8C,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAC5B,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,MAClpF,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAC9H,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,MAC5E,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,MACjc,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,MAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,KAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,MAC1rI,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC,MAAM,OAAO,MAC7xF,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,MACphE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,KAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,MACj5K,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,GAAG,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,MAAM,KAAK,MAAM,CAAC,CAAC,IAAI,MAAM,KAAK,MAAM,CAAC,CAAC,IAAI,MAAM,KAAK,MAAM,CAAC,CAAC,IAAI,MAAM,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAA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AC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,OAAO,QAAQ,KAAK,OAAO,CAAC,CAAC,OAAO,QAAQ,KAAK,OAAO,CAAC,CAAC,OAAO,QAAQ,KAAK,OAAO,CAAC,CAAC,OAAO,QAAQ,KAAK,OAAO,CAAC,CAAC,OAAO,QAAQ,KAAK,OAAO,CAAC,CAAC,OAAO,QAAQ,MACzxB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,MAC5C,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,KAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,MACr5I,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,MACz5I,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,MAC7oJ,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,MAChsJ,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,MACpG,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,MACtwF,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,MAAM,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,MACzlD,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,OAAO,KAAK,OAAO,CAAC,CAAC,MAAM,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,OAAO,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,OAAO,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,OAAO,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,OAAO,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,OAAO,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,OAAO,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,OAAO,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,OAAO,CAAC,CAAC,MAAM,MAAM,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,OAAO,MACvyC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,OAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAC/xI,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,OAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,MAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SACj0Q,KAAM,CAAC,KAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,MAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,UAC1sH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,MACriI,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,MACniM,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,MAAM,MAC7yK,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,MACxhI,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,OAKhoI,IAAI2C,EAAQ,CACTF,IAAKA,EACLF,IAAKA,EACLG,KAAMA,EACNF,KAAMA,GAON9mD,EAAOC,QAAUgnD,EAkCnBA,EAAMC,aAAc,EAEhB97C,OAAOnF,UAAUwwB,YACnB90B,OAAOe,eAAe0I,OAAOnF,UAAW,YAAa,CAClDkE,YAAY,EACZC,cAAc,EACdC,UAAU,EACVxJ,MAAO,WAEJ,IAAIizB,EAAM,GAAKrvB,KACX0iD,OAAwBzlD,IAAjBN,UAAU,GAAmB,MAAQA,UAAU,GAE1D,GAAa,OAATqD,WAA0B/C,IAAT+C,KAClB,MAAM,IAAIrE,UAAU,yBAA2BuB,OAAOsE,UAAUpE,SAASC,KAAK2C,OAGjF,GAAa,QAAT0iD,EACD,OAAOF,EAAMF,IAAIjzB,GACb,GAAa,QAATqzB,EACR,OAAOF,EAAMJ,IAAI/yB,GACb,GAAa,SAATqzB,EACR,OAAOF,EAAMD,KAAKlzB,GACd,GAAa,SAATqzB,EACR,OAAOF,EAAMH,KAAKhzB,GAElB,MAAM,IAAImtB,WAAW,+BAAiCkG,EAE5D,IAGHF,EAAMC,aAAc,EAE1B,EAncA,E,wBCAAlnD,EAAOC,QAAU,EAAjB,M,sBCcAA,EAAQmnD,EAAI,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,KAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,MAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,MAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,O,sBCFx/uHnnD,EAAQonD,EAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,O,sBCAjtZpnD,EAAQqnD,EAAI,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ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","sources":["webpack://sbs.vison/./node_modules/babel-runtime/core-js/get-iterator.js","webpack://sbs.vison/./node_modules/babel-runtime/core-js/object/keys.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/fn/get-iterator.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/fn/object/keys.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_classof.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-sap.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator-method.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.keys.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js","webpack://sbs.vison/./node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js","webpack://sbs.vison/./node_modules/clone/clone.js","webpack://sbs.vison/./node_modules/katex/katex.js","webpack://sbs.vison/./node_modules/katex/src/Lexer.js","webpack://sbs.vison/./node_modules/katex/src/Options.js","webpack://sbs.vison/./node_modules/katex/src/ParseError.js","webpack://sbs.vison/./node_modules/katex/src/Parser.js","webpack://sbs.vison/./node_modules/katex/src/Settings.js","webpack://sbs.vison/./node_modules/katex/src/Style.js","webpack://sbs.vison/./node_modules/katex/src/buildCommon.js","webpack://sbs.vison/./node_modules/katex/src/buildHTML.js","webpack://sbs.vison/./node_modules/katex/src/buildMathML.js","webpack://sbs.vison/./node_modules/katex/src/buildTree.js","webpack://sbs.vison/./node_modules/katex/src/delimiter.js","webpack://sbs.vison/./node_modules/katex/src/domTree.js","webpack://sbs.vison/./node_modules/katex/src/environments.js","webpack://sbs.vison/./node_modules/katex/src/fontMetrics.js","webpack://sbs.vison/./node_modules/katex/src/fontMetricsData.js","webpack://sbs.vison/./node_modules/katex/src/functions.js","webpack://sbs.vison/./node_modules/katex/src/mathMLTree.js","webpack://sbs.vison/./node_modules/katex/src/parseData.js","webpack://sbs.vison/./node_modules/katex/src/parseTree.js","webpack://sbs.vison/./node_modules/katex/src/symbols.js","webpack://sbs.vison/./node_modules/katex/src/utils.js","webpack://sbs.vison/./node_modules/linkify-it/index.js","webpack://sbs.vison/./node_modules/linkify-it/lib/re.js","webpack://sbs.vison/./node_modules/markdown-it-abbr/index.js","webpack://sbs.vison/./node_modules/markdown-it-deflist/index.js","webpack://sbs.vison/./node_modules/markdown-it-emoji/index.js","webpack://sbs.vison/./node_modules/markdown-it-emoji/lib/data/shortcuts.js","webpack://sbs.vison/./node_modules/markdown-it-emoji/lib/normalize_opts.js","webpack://sbs.vison/./node_modules/markdown-it-emoji/lib/render.js","webpack://sbs.vison/./node_modules/markdown-it-emoji/lib/replace.js","webpack://sbs.vison/./node_modules/markdown-it-footnote/index.js","webpack://sbs.vison/./node_modules/markdown-it-ins/index.js","webpack://sbs.vison/./node_modules/markdown-it-katex/index.js","webpack://sbs.vison/./node_modules/markdown-it-mark/index.js","webpack://sbs.vison/./node_modules/markdown-it-sub/index.js","webpack://sbs.vison/./node_modules/markdown-it-sup/index.js","webpack://sbs.vison/./node_modules/markdown-it-task-lists/index.js","webpack://sbs.vison/./node_modules/markdown-it-toc-and-anchor/dist/index.js","webpack://sbs.vison/./node_modules/markdown-it/index.js","webpack://sbs.vison/./node_modules/markdown-it/lib/common/entities.js","webpack://sbs.vison/./node_modules/markdown-it/lib/common/html_blocks.js","webpack://sbs.vison/./node_modules/markdown-it/lib/common/html_re.js","webpack://sbs.vison/./node_modules/markdown-it/lib/common/utils.js","webpack://sbs.vison/./node_modules/markdown-it/lib/helpers/index.js","webpack://sbs.vison/./node_modules/markdown-it/lib/helpers/parse_link_destination.js","webpack://sbs.vison/./node_modules/markdown-it/lib/helpers/parse_link_label.js","webpack://sbs.vison/./node_modules/markdown-it/lib/helpers/parse_link_title.js","webpack://sbs.vison/./node_modules/markdown-it/lib/index.js","webpack://sbs.vison/./node_modules/markdown-it/lib/parser_block.js","webpack://sbs.vison/./node_modules/markdown-it/lib/parser_core.js","webpack://sbs.vison/./node_modules/markdown-it/lib/parser_inline.js","webpack://sbs.vison/./node_modules/markdown-it/lib/presets/commonmark.js","webpack://sbs.vison/./node_modules/markdown-it/lib/presets/default.js","webpack://sbs.vison/./node_modules/markdown-it/lib/presets/zero.js","webpack://sbs.vison/./node_modules/markdown-it/lib/renderer.js","webpack://sbs.vison/./node_modules/markdown-it/lib/ruler.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_block/blockquote.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_block/code.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_block/fence.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_block/heading.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_block/hr.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_block/html_block.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_block/lheading.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_block/list.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_block/paragraph.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_block/reference.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_block/state_block.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_block/table.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_core/block.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_core/inline.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_core/linkify.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_core/normalize.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_core/replacements.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_core/smartquotes.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_core/state_core.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_inline/autolink.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_inline/backticks.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_inline/balance_pairs.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_inline/emphasis.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_inline/entity.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_inline/escape.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_inline/html_inline.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_inline/image.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_inline/link.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_inline/newline.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_inline/state_inline.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_inline/strikethrough.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_inline/text.js","webpack://sbs.vison/./node_modules/markdown-it/lib/rules_inline/text_collapse.js","webpack://sbs.vison/./node_modules/markdown-it/lib/token.js","webpack://sbs.vison/./node_modules/match-at/lib/matchAt.js","webpack://sbs.vison/./node_modules/mdurl/decode.js","webpack://sbs.vison/./node_modules/mdurl/encode.js","webpack://sbs.vison/./node_modules/mdurl/format.js","webpack://sbs.vison/./node_modules/mdurl/index.js","webpack://sbs.vison/./node_modules/mdurl/parse.js","webpack://sbs.vison/./node_modules/punycode/punycode.es6.js","webpack://sbs.vison/./node_modules/uc.micro/categories/Cc/regex.js","webpack://sbs.vison/./node_modules/uc.micro/categories/Cf/regex.js","webpack://sbs.vison/./node_modules/uc.micro/categories/P/regex.js","webpack://sbs.vison/./node_modules/uc.micro/categories/Z/regex.js","webpack://sbs.vison/./node_modules/uc.micro/index.js","webpack://sbs.vison/./node_modules/uc.micro/properties/Any/regex.js","webpack://sbs.vison/./node_modules/unorm/lib/unorm.js","webpack://sbs.vison/./node_modules/uslug/index.js","webpack://sbs.vison/./node_modules/uslug/lib/L.js","webpack://sbs.vison/./node_modules/uslug/lib/M.js","webpack://sbs.vison/./node_modules/uslug/lib/N.js","webpack://sbs.vison/./node_modules/uslug/lib/Z.js","webpack://sbs.vison/./node_modules/uslug/lib/uslug.js","webpack://sbs.vison/./node_modules/vue-markdown/dist/vue-markdown.common.js"],"sourcesContent":["module.exports = { \"default\": require(\"core-js/library/fn/get-iterator\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/keys\"), __esModule: true };","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');\n","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","module.exports = function () { /* empty */ };\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = true;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","module.exports = require('./_hide');\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var anObject = require('./_an-object');\nvar get = require('./core.get-iterator-method');\nmodule.exports = require('./_core').getIterator = function (it) {\n var iterFn = get(it);\n if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","var clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n","/* eslint no-console:0 */\n/**\n * This is the main entry point for KaTeX. Here, we expose functions for\n * rendering expressions either to DOM nodes or to markup strings.\n *\n * We also expose the ParseError class to check if errors thrown from KaTeX are\n * errors in the expression, or errors in javascript handling.\n */\n\nvar ParseError = require(\"./src/ParseError\");\nvar Settings = require(\"./src/Settings\");\n\nvar buildTree = require(\"./src/buildTree\");\nvar parseTree = require(\"./src/parseTree\");\nvar utils = require(\"./src/utils\");\n\n/**\n * Parse and build an expression, and place that expression in the DOM node\n * given.\n */\nvar render = function(expression, baseNode, options) {\n utils.clearNode(baseNode);\n\n var settings = new Settings(options);\n\n var tree = parseTree(expression, settings);\n var node = buildTree(tree, expression, settings).toNode();\n\n baseNode.appendChild(node);\n};\n\n// KaTeX's styles don't work properly in quirks mode. Print out an error, and\n// disable rendering.\nif (typeof document !== \"undefined\") {\n if (document.compatMode !== \"CSS1Compat\") {\n typeof console !== \"undefined\" && console.warn(\n \"Warning: KaTeX doesn't work in quirks mode. Make sure your \" +\n \"website has a suitable doctype.\");\n\n render = function() {\n throw new ParseError(\"KaTeX doesn't work in quirks mode.\");\n };\n }\n}\n\n/**\n * Parse and build an expression, and return the markup for that.\n */\nvar renderToString = function(expression, options) {\n var settings = new Settings(options);\n\n var tree = parseTree(expression, settings);\n return buildTree(tree, expression, settings).toMarkup();\n};\n\n/**\n * Parse an expression and return the parse tree.\n */\nvar generateParseTree = function(expression, options) {\n var settings = new Settings(options);\n return parseTree(expression, settings);\n};\n\nmodule.exports = {\n render: render,\n renderToString: renderToString,\n /**\n * NOTE: This method is not currently recommended for public use.\n * The internal tree representation is unstable and is very likely\n * to change. Use at your own risk.\n */\n __parse: generateParseTree,\n ParseError: ParseError,\n};\n","/**\n * The Lexer class handles tokenizing the input in various ways. Since our\n * parser expects us to be able to backtrack, the lexer allows lexing from any\n * given starting point.\n *\n * Its main exposed function is the `lex` function, which takes a position to\n * lex from and a type of token to lex. It defers to the appropriate `_innerLex`\n * function.\n *\n * The various `_innerLex` functions perform the actual lexing of different\n * kinds.\n */\n\nvar matchAt = require(\"match-at\");\n\nvar ParseError = require(\"./ParseError\");\n\n// The main lexer class\nfunction Lexer(input) {\n this._input = input;\n}\n\n// The resulting token returned from `lex`.\nfunction Token(text, data, position) {\n this.text = text;\n this.data = data;\n this.position = position;\n}\n\n/* The following tokenRegex\n * - matches typical whitespace (but not NBSP etc.) using its first group\n * - matches symbol combinations which result in a single output character\n * - does not match any control character \\x00-\\x1f except whitespace\n * - does not match a bare backslash\n * - matches any ASCII character except those just mentioned\n * - does not match the BMP private use area \\uE000-\\uF8FF\n * - does not match bare surrogate code units\n * - matches any BMP character except for those just described\n * - matches any valid Unicode surrogate pair\n * - matches a backslash followed by one or more letters\n * - matches a backslash followed by any BMP character, including newline\n * Just because the Lexer matches something doesn't mean it's valid input:\n * If there is no matching function or symbol definition, the Parser will\n * still reject the input.\n */\nvar tokenRegex = new RegExp(\n \"([ \\r\\n\\t]+)|(\" + // whitespace\n \"---?\" + // special combinations\n \"|[!-\\\\[\\\\]-\\u2027\\u202A-\\uD7FF\\uF900-\\uFFFF]\" + // single codepoint\n \"|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]\" + // surrogate pair\n \"|\\\\\\\\(?:[a-zA-Z]+|[^\\uD800-\\uDFFF])\" + // function name\n \")\"\n);\n\nvar whitespaceRegex = /\\s*/;\n\n/**\n * This function lexes a single normal token. It takes a position and\n * whether it should completely ignore whitespace or not.\n */\nLexer.prototype._innerLex = function(pos, ignoreWhitespace) {\n var input = this._input;\n if (pos === input.length) {\n return new Token(\"EOF\", null, pos);\n }\n var match = matchAt(tokenRegex, input, pos);\n if (match === null) {\n throw new ParseError(\n \"Unexpected character: '\" + input[pos] + \"'\",\n this, pos);\n } else if (match[2]) { // matched non-whitespace\n return new Token(match[2], null, pos + match[2].length);\n } else if (ignoreWhitespace) {\n return this._innerLex(pos + match[1].length, true);\n } else { // concatenate whitespace to a single space\n return new Token(\" \", null, pos + match[1].length);\n }\n};\n\n// A regex to match a CSS color (like #ffffff or BlueViolet)\nvar cssColor = /#[a-z0-9]+|[a-z]+/i;\n\n/**\n * This function lexes a CSS color.\n */\nLexer.prototype._innerLexColor = function(pos) {\n var input = this._input;\n\n // Ignore whitespace\n var whitespace = matchAt(whitespaceRegex, input, pos)[0];\n pos += whitespace.length;\n\n var match;\n if ((match = matchAt(cssColor, input, pos))) {\n // If we look like a color, return a color\n return new Token(match[0], null, pos + match[0].length);\n } else {\n throw new ParseError(\"Invalid color\", this, pos);\n }\n};\n\n// A regex to match a dimension. Dimensions look like\n// \"1.2em\" or \".4pt\" or \"1 ex\"\nvar sizeRegex = /(-?)\\s*(\\d+(?:\\.\\d*)?|\\.\\d+)\\s*([a-z]{2})/;\n\n/**\n * This function lexes a dimension.\n */\nLexer.prototype._innerLexSize = function(pos) {\n var input = this._input;\n\n // Ignore whitespace\n var whitespace = matchAt(whitespaceRegex, input, pos)[0];\n pos += whitespace.length;\n\n var match;\n if ((match = matchAt(sizeRegex, input, pos))) {\n var unit = match[3];\n // We only currently handle \"em\" and \"ex\" units\n if (unit !== \"em\" && unit !== \"ex\") {\n throw new ParseError(\"Invalid unit: '\" + unit + \"'\", this, pos);\n }\n return new Token(match[0], {\n number: +(match[1] + match[2]),\n unit: unit,\n }, pos + match[0].length);\n }\n\n throw new ParseError(\"Invalid size\", this, pos);\n};\n\n/**\n * This function lexes a string of whitespace.\n */\nLexer.prototype._innerLexWhitespace = function(pos) {\n var input = this._input;\n\n var whitespace = matchAt(whitespaceRegex, input, pos)[0];\n pos += whitespace.length;\n\n return new Token(whitespace[0], null, pos);\n};\n\n/**\n * This function lexes a single token starting at `pos` and of the given mode.\n * Based on the mode, we defer to one of the `_innerLex` functions.\n */\nLexer.prototype.lex = function(pos, mode) {\n if (mode === \"math\") {\n return this._innerLex(pos, true);\n } else if (mode === \"text\") {\n return this._innerLex(pos, false);\n } else if (mode === \"color\") {\n return this._innerLexColor(pos);\n } else if (mode === \"size\") {\n return this._innerLexSize(pos);\n } else if (mode === \"whitespace\") {\n return this._innerLexWhitespace(pos);\n }\n};\n\nmodule.exports = Lexer;\n","/**\n * This file contains information about the options that the Parser carries\n * around with it while parsing. Data is held in an `Options` object, and when\n * recursing, a new `Options` object can be created with the `.with*` and\n * `.reset` functions.\n */\n\n/**\n * This is the main options class. It contains the style, size, color, and font\n * of the current parse level. It also contains the style and size of the parent\n * parse level, so size changes can be handled efficiently.\n *\n * Each of the `.with*` and `.reset` functions passes its current style and size\n * as the parentStyle and parentSize of the new options class, so parent\n * handling is taken care of automatically.\n */\nfunction Options(data) {\n this.style = data.style;\n this.color = data.color;\n this.size = data.size;\n this.phantom = data.phantom;\n this.font = data.font;\n\n if (data.parentStyle === undefined) {\n this.parentStyle = data.style;\n } else {\n this.parentStyle = data.parentStyle;\n }\n\n if (data.parentSize === undefined) {\n this.parentSize = data.size;\n } else {\n this.parentSize = data.parentSize;\n }\n}\n\n/**\n * Returns a new options object with the same properties as \"this\". Properties\n * from \"extension\" will be copied to the new options object.\n */\nOptions.prototype.extend = function(extension) {\n var data = {\n style: this.style,\n size: this.size,\n color: this.color,\n parentStyle: this.style,\n parentSize: this.size,\n phantom: this.phantom,\n font: this.font,\n };\n\n for (var key in extension) {\n if (extension.hasOwnProperty(key)) {\n data[key] = extension[key];\n }\n }\n\n return new Options(data);\n};\n\n/**\n * Create a new options object with the given style.\n */\nOptions.prototype.withStyle = function(style) {\n return this.extend({\n style: style,\n });\n};\n\n/**\n * Create a new options object with the given size.\n */\nOptions.prototype.withSize = function(size) {\n return this.extend({\n size: size,\n });\n};\n\n/**\n * Create a new options object with the given color.\n */\nOptions.prototype.withColor = function(color) {\n return this.extend({\n color: color,\n });\n};\n\n/**\n * Create a new options object with \"phantom\" set to true.\n */\nOptions.prototype.withPhantom = function() {\n return this.extend({\n phantom: true,\n });\n};\n\n/**\n * Create a new options objects with the give font.\n */\nOptions.prototype.withFont = function(font) {\n return this.extend({\n font: font,\n });\n};\n\n/**\n * Create a new options object with the same style, size, and color. This is\n * used so that parent style and size changes are handled correctly.\n */\nOptions.prototype.reset = function() {\n return this.extend({});\n};\n\n/**\n * A map of color names to CSS colors.\n * TODO(emily): Remove this when we have real macros\n */\nvar colorMap = {\n \"katex-blue\": \"#6495ed\",\n \"katex-orange\": \"#ffa500\",\n \"katex-pink\": \"#ff00af\",\n \"katex-red\": \"#df0030\",\n \"katex-green\": \"#28ae7b\",\n \"katex-gray\": \"gray\",\n \"katex-purple\": \"#9d38bd\",\n \"katex-blueA\": \"#c7e9f1\",\n \"katex-blueB\": \"#9cdceb\",\n \"katex-blueC\": \"#58c4dd\",\n \"katex-blueD\": \"#29abca\",\n \"katex-blueE\": \"#1c758a\",\n \"katex-tealA\": \"#acead7\",\n \"katex-tealB\": \"#76ddc0\",\n \"katex-tealC\": \"#5cd0b3\",\n \"katex-tealD\": \"#55c1a7\",\n \"katex-tealE\": \"#49a88f\",\n \"katex-greenA\": \"#c9e2ae\",\n \"katex-greenB\": \"#a6cf8c\",\n \"katex-greenC\": \"#83c167\",\n \"katex-greenD\": \"#77b05d\",\n \"katex-greenE\": \"#699c52\",\n \"katex-goldA\": \"#f7c797\",\n \"katex-goldB\": \"#f9b775\",\n \"katex-goldC\": \"#f0ac5f\",\n \"katex-goldD\": \"#e1a158\",\n \"katex-goldE\": \"#c78d46\",\n \"katex-redA\": \"#f7a1a3\",\n \"katex-redB\": \"#ff8080\",\n \"katex-redC\": \"#fc6255\",\n \"katex-redD\": \"#e65a4c\",\n \"katex-redE\": \"#cf5044\",\n \"katex-maroonA\": \"#ecabc1\",\n \"katex-maroonB\": \"#ec92ab\",\n \"katex-maroonC\": \"#c55f73\",\n \"katex-maroonD\": \"#a24d61\",\n \"katex-maroonE\": \"#94424f\",\n \"katex-purpleA\": \"#caa3e8\",\n \"katex-purpleB\": \"#b189c6\",\n \"katex-purpleC\": \"#9a72ac\",\n \"katex-purpleD\": \"#715582\",\n \"katex-purpleE\": \"#644172\",\n \"katex-mintA\": \"#f5f9e8\",\n \"katex-mintB\": \"#edf2df\",\n \"katex-mintC\": \"#e0e5cc\",\n \"katex-grayA\": \"#fdfdfd\",\n \"katex-grayB\": \"#f7f7f7\",\n \"katex-grayC\": \"#eeeeee\",\n \"katex-grayD\": \"#dddddd\",\n \"katex-grayE\": \"#cccccc\",\n \"katex-grayF\": \"#aaaaaa\",\n \"katex-grayG\": \"#999999\",\n \"katex-grayH\": \"#555555\",\n \"katex-grayI\": \"#333333\",\n \"katex-kaBlue\": \"#314453\",\n \"katex-kaGreen\": \"#639b24\",\n};\n\n/**\n * Gets the CSS color of the current options object, accounting for the\n * `colorMap`.\n */\nOptions.prototype.getColor = function() {\n if (this.phantom) {\n return \"transparent\";\n } else {\n return colorMap[this.color] || this.color;\n }\n};\n\nmodule.exports = Options;\n","/**\n * This is the ParseError class, which is the main error thrown by KaTeX\n * functions when something has gone wrong. This is used to distinguish internal\n * errors from errors in the expression that the user provided.\n */\nfunction ParseError(message, lexer, position) {\n var error = \"KaTeX parse error: \" + message;\n\n if (lexer !== undefined && position !== undefined) {\n // If we have the input and a position, make the error a bit fancier\n\n // Prepend some information\n error += \" at position \" + position + \": \";\n\n // Get the input\n var input = lexer._input;\n // Insert a combining underscore at the correct position\n input = input.slice(0, position) + \"\\u0332\" +\n input.slice(position);\n\n // Extract some context from the input and add it to the error\n var begin = Math.max(0, position - 15);\n var end = position + 15;\n error += input.slice(begin, end);\n }\n\n // Some hackery to make ParseError a prototype of Error\n // See http://stackoverflow.com/a/8460753\n var self = new Error(error);\n self.name = \"ParseError\";\n self.__proto__ = ParseError.prototype;\n\n self.position = position;\n return self;\n}\n\n// More hackery\nParseError.prototype.__proto__ = Error.prototype;\n\nmodule.exports = ParseError;\n","/* eslint no-constant-condition:0 */\nvar functions = require(\"./functions\");\nvar environments = require(\"./environments\");\nvar Lexer = require(\"./Lexer\");\nvar symbols = require(\"./symbols\");\nvar utils = require(\"./utils\");\n\nvar parseData = require(\"./parseData\");\nvar ParseError = require(\"./ParseError\");\n\n/**\n * This file contains the parser used to parse out a TeX expression from the\n * input. Since TeX isn't context-free, standard parsers don't work particularly\n * well.\n *\n * The strategy of this parser is as such:\n *\n * The main functions (the `.parse...` ones) take a position in the current\n * parse string to parse tokens from. The lexer (found in Lexer.js, stored at\n * this.lexer) also supports pulling out tokens at arbitrary places. When\n * individual tokens are needed at a position, the lexer is called to pull out a\n * token, which is then used.\n *\n * The parser has a property called \"mode\" indicating the mode that\n * the parser is currently in. Currently it has to be one of \"math\" or\n * \"text\", which denotes whether the current environment is a math-y\n * one or a text-y one (e.g. inside \\text). Currently, this serves to\n * limit the functions which can be used in text mode.\n *\n * The main functions then return an object which contains the useful data that\n * was parsed at its given point, and a new position at the end of the parsed\n * data. The main functions can call each other and continue the parsing by\n * using the returned position as a new starting point.\n *\n * There are also extra `.handle...` functions, which pull out some reused\n * functionality into self-contained functions.\n *\n * The earlier functions return ParseNodes.\n * The later functions (which are called deeper in the parse) sometimes return\n * ParseFuncOrArgument, which contain a ParseNode as well as some data about\n * whether the parsed object is a function which is missing some arguments, or a\n * standalone object which can be used as an argument to another function.\n */\n\n/**\n * Main Parser class\n */\nfunction Parser(input, settings) {\n // Make a new lexer\n this.lexer = new Lexer(input);\n // Store the settings for use in parsing\n this.settings = settings;\n}\n\nvar ParseNode = parseData.ParseNode;\n\n/**\n * An initial function (without its arguments), or an argument to a function.\n * The `result` argument should be a ParseNode.\n */\nfunction ParseFuncOrArgument(result, isFunction) {\n this.result = result;\n // Is this a function (i.e. is it something defined in functions.js)?\n this.isFunction = isFunction;\n}\n\n/**\n * Checks a result to make sure it has the right type, and throws an\n * appropriate error otherwise.\n *\n * @param {boolean=} consume whether to consume the expected token,\n * defaults to true\n */\nParser.prototype.expect = function(text, consume) {\n if (this.nextToken.text !== text) {\n throw new ParseError(\n \"Expected '\" + text + \"', got '\" + this.nextToken.text + \"'\",\n this.lexer, this.nextToken.position\n );\n }\n if (consume !== false) {\n this.consume();\n }\n};\n\n/**\n * Considers the current look ahead token as consumed,\n * and fetches the one after that as the new look ahead.\n */\nParser.prototype.consume = function() {\n this.pos = this.nextToken.position;\n this.nextToken = this.lexer.lex(this.pos, this.mode);\n};\n\n/**\n * Main parsing function, which parses an entire input.\n *\n * @return {?Array.}\n */\nParser.prototype.parse = function() {\n // Try to parse the input\n this.mode = \"math\";\n this.pos = 0;\n this.nextToken = this.lexer.lex(this.pos, this.mode);\n var parse = this.parseInput();\n return parse;\n};\n\n/**\n * Parses an entire input tree.\n */\nParser.prototype.parseInput = function() {\n // Parse an expression\n var expression = this.parseExpression(false);\n // If we succeeded, make sure there's an EOF at the end\n this.expect(\"EOF\", false);\n return expression;\n};\n\nvar endOfExpression = [\"}\", \"\\\\end\", \"\\\\right\", \"&\", \"\\\\\\\\\", \"\\\\cr\"];\n\n/**\n * Parses an \"expression\", which is a list of atoms.\n *\n * @param {boolean} breakOnInfix Should the parsing stop when we hit infix\n * nodes? This happens when functions have higher precendence\n * than infix nodes in implicit parses.\n *\n * @param {?string} breakOnToken The token that the expression should end with,\n * or `null` if something else should end the expression.\n *\n * @return {ParseNode}\n */\nParser.prototype.parseExpression = function(breakOnInfix, breakOnToken) {\n var body = [];\n // Keep adding atoms to the body until we can't parse any more atoms (either\n // we reached the end, a }, or a \\right)\n while (true) {\n var lex = this.nextToken;\n var pos = this.pos;\n if (endOfExpression.indexOf(lex.text) !== -1) {\n break;\n }\n if (breakOnToken && lex.text === breakOnToken) {\n break;\n }\n var atom = this.parseAtom();\n if (!atom) {\n if (!this.settings.throwOnError && lex.text[0] === \"\\\\\") {\n var errorNode = this.handleUnsupportedCmd();\n body.push(errorNode);\n\n pos = lex.position;\n continue;\n }\n\n break;\n }\n if (breakOnInfix && atom.type === \"infix\") {\n // rewind so we can parse the infix atom again\n this.pos = pos;\n this.nextToken = lex;\n break;\n }\n body.push(atom);\n }\n return this.handleInfixNodes(body);\n};\n\n/**\n * Rewrites infix operators such as \\over with corresponding commands such\n * as \\frac.\n *\n * There can only be one infix operator per group. If there's more than one\n * then the expression is ambiguous. This can be resolved by adding {}.\n *\n * @returns {Array}\n */\nParser.prototype.handleInfixNodes = function(body) {\n var overIndex = -1;\n var funcName;\n\n for (var i = 0; i < body.length; i++) {\n var node = body[i];\n if (node.type === \"infix\") {\n if (overIndex !== -1) {\n throw new ParseError(\"only one infix operator per group\",\n this.lexer, -1);\n }\n overIndex = i;\n funcName = node.value.replaceWith;\n }\n }\n\n if (overIndex !== -1) {\n var numerNode;\n var denomNode;\n\n var numerBody = body.slice(0, overIndex);\n var denomBody = body.slice(overIndex + 1);\n\n if (numerBody.length === 1 && numerBody[0].type === \"ordgroup\") {\n numerNode = numerBody[0];\n } else {\n numerNode = new ParseNode(\"ordgroup\", numerBody, this.mode);\n }\n\n if (denomBody.length === 1 && denomBody[0].type === \"ordgroup\") {\n denomNode = denomBody[0];\n } else {\n denomNode = new ParseNode(\"ordgroup\", denomBody, this.mode);\n }\n\n var value = this.callFunction(\n funcName, [numerNode, denomNode], null);\n return [new ParseNode(value.type, value, this.mode)];\n } else {\n return body;\n }\n};\n\n// The greediness of a superscript or subscript\nvar SUPSUB_GREEDINESS = 1;\n\n/**\n * Handle a subscript or superscript with nice errors.\n */\nParser.prototype.handleSupSubscript = function(name) {\n var symbol = this.nextToken.text;\n var symPos = this.pos;\n this.consume();\n var group = this.parseGroup();\n\n if (!group) {\n if (!this.settings.throwOnError && this.nextToken.text[0] === \"\\\\\") {\n return this.handleUnsupportedCmd();\n } else {\n throw new ParseError(\n \"Expected group after '\" + symbol + \"'\",\n this.lexer,\n symPos + 1\n );\n }\n } else if (group.isFunction) {\n // ^ and _ have a greediness, so handle interactions with functions'\n // greediness\n var funcGreediness = functions[group.result].greediness;\n if (funcGreediness > SUPSUB_GREEDINESS) {\n return this.parseFunction(group);\n } else {\n throw new ParseError(\n \"Got function '\" + group.result + \"' with no arguments \" +\n \"as \" + name,\n this.lexer, symPos + 1);\n }\n } else {\n return group.result;\n }\n};\n\n/**\n * Converts the textual input of an unsupported command into a text node\n * contained within a color node whose color is determined by errorColor\n */\nParser.prototype.handleUnsupportedCmd = function() {\n var text = this.nextToken.text;\n var textordArray = [];\n\n for (var i = 0; i < text.length; i++) {\n textordArray.push(new ParseNode(\"textord\", text[i], \"text\"));\n }\n\n var textNode = new ParseNode(\n \"text\",\n {\n body: textordArray,\n type: \"text\",\n },\n this.mode);\n\n var colorNode = new ParseNode(\n \"color\",\n {\n color: this.settings.errorColor,\n value: [textNode],\n type: \"color\",\n },\n this.mode);\n\n this.consume();\n return colorNode;\n};\n\n/**\n * Parses a group with optional super/subscripts.\n *\n * @return {?ParseNode}\n */\nParser.prototype.parseAtom = function() {\n // The body of an atom is an implicit group, so that things like\n // \\left(x\\right)^2 work correctly.\n var base = this.parseImplicitGroup();\n\n // In text mode, we don't have superscripts or subscripts\n if (this.mode === \"text\") {\n return base;\n }\n\n // Note that base may be empty (i.e. null) at this point.\n\n var superscript;\n var subscript;\n while (true) {\n // Lex the first token\n var lex = this.nextToken;\n\n if (lex.text === \"\\\\limits\" || lex.text === \"\\\\nolimits\") {\n // We got a limit control\n if (!base || base.type !== \"op\") {\n throw new ParseError(\n \"Limit controls must follow a math operator\",\n this.lexer, this.pos);\n } else {\n var limits = lex.text === \"\\\\limits\";\n base.value.limits = limits;\n base.value.alwaysHandleSupSub = true;\n }\n this.consume();\n } else if (lex.text === \"^\") {\n // We got a superscript start\n if (superscript) {\n throw new ParseError(\n \"Double superscript\", this.lexer, this.pos);\n }\n superscript = this.handleSupSubscript(\"superscript\");\n } else if (lex.text === \"_\") {\n // We got a subscript start\n if (subscript) {\n throw new ParseError(\n \"Double subscript\", this.lexer, this.pos);\n }\n subscript = this.handleSupSubscript(\"subscript\");\n } else if (lex.text === \"'\") {\n // We got a prime\n var prime = new ParseNode(\"textord\", \"\\\\prime\", this.mode);\n\n // Many primes can be grouped together, so we handle this here\n var primes = [prime];\n this.consume();\n // Keep lexing tokens until we get something that's not a prime\n while (this.nextToken.text === \"'\") {\n // For each one, add another prime to the list\n primes.push(prime);\n this.consume();\n }\n // Put them into an ordgroup as the superscript\n superscript = new ParseNode(\"ordgroup\", primes, this.mode);\n } else {\n // If it wasn't ^, _, or ', stop parsing super/subscripts\n break;\n }\n }\n\n if (superscript || subscript) {\n // If we got either a superscript or subscript, create a supsub\n return new ParseNode(\"supsub\", {\n base: base,\n sup: superscript,\n sub: subscript,\n }, this.mode);\n } else {\n // Otherwise return the original body\n return base;\n }\n};\n\n// A list of the size-changing functions, for use in parseImplicitGroup\nvar sizeFuncs = [\n \"\\\\tiny\", \"\\\\scriptsize\", \"\\\\footnotesize\", \"\\\\small\", \"\\\\normalsize\",\n \"\\\\large\", \"\\\\Large\", \"\\\\LARGE\", \"\\\\huge\", \"\\\\Huge\",\n];\n\n// A list of the style-changing functions, for use in parseImplicitGroup\nvar styleFuncs = [\n \"\\\\displaystyle\", \"\\\\textstyle\", \"\\\\scriptstyle\", \"\\\\scriptscriptstyle\",\n];\n\n/**\n * Parses an implicit group, which is a group that starts at the end of a\n * specified, and ends right before a higher explicit group ends, or at EOL. It\n * is used for functions that appear to affect the current style, like \\Large or\n * \\textrm, where instead of keeping a style we just pretend that there is an\n * implicit grouping after it until the end of the group. E.g.\n * small text {\\Large large text} small text again\n * It is also used for \\left and \\right to get the correct grouping.\n *\n * @return {?ParseNode}\n */\nParser.prototype.parseImplicitGroup = function() {\n var start = this.parseSymbol();\n\n if (start == null) {\n // If we didn't get anything we handle, fall back to parseFunction\n return this.parseFunction();\n }\n\n var func = start.result;\n var body;\n\n if (func === \"\\\\left\") {\n // If we see a left:\n // Parse the entire left function (including the delimiter)\n var left = this.parseFunction(start);\n // Parse out the implicit body\n body = this.parseExpression(false);\n // Check the next token\n this.expect(\"\\\\right\", false);\n var right = this.parseFunction();\n return new ParseNode(\"leftright\", {\n body: body,\n left: left.value.value,\n right: right.value.value,\n }, this.mode);\n } else if (func === \"\\\\begin\") {\n // begin...end is similar to left...right\n var begin = this.parseFunction(start);\n var envName = begin.value.name;\n if (!environments.hasOwnProperty(envName)) {\n throw new ParseError(\n \"No such environment: \" + envName,\n this.lexer, begin.value.namepos);\n }\n // Build the environment object. Arguments and other information will\n // be made available to the begin and end methods using properties.\n var env = environments[envName];\n var args = this.parseArguments(\"\\\\begin{\" + envName + \"}\", env);\n var context = {\n mode: this.mode,\n envName: envName,\n parser: this,\n lexer: this.lexer,\n positions: args.pop(),\n };\n var result = env.handler(context, args);\n this.expect(\"\\\\end\", false);\n var end = this.parseFunction();\n if (end.value.name !== envName) {\n throw new ParseError(\n \"Mismatch: \\\\begin{\" + envName + \"} matched \" +\n \"by \\\\end{\" + end.value.name + \"}\",\n this.lexer /* , end.value.namepos */);\n // TODO: Add position to the above line and adjust test case,\n // requires #385 to get merged first\n }\n result.position = end.position;\n return result;\n } else if (utils.contains(sizeFuncs, func)) {\n // If we see a sizing function, parse out the implict body\n body = this.parseExpression(false);\n return new ParseNode(\"sizing\", {\n // Figure out what size to use based on the list of functions above\n size: \"size\" + (utils.indexOf(sizeFuncs, func) + 1),\n value: body,\n }, this.mode);\n } else if (utils.contains(styleFuncs, func)) {\n // If we see a styling function, parse out the implict body\n body = this.parseExpression(true);\n return new ParseNode(\"styling\", {\n // Figure out what style to use by pulling out the style from\n // the function name\n style: func.slice(1, func.length - 5),\n value: body,\n }, this.mode);\n } else {\n // Defer to parseFunction if it's not a function we handle\n return this.parseFunction(start);\n }\n};\n\n/**\n * Parses an entire function, including its base and all of its arguments.\n * The base might either have been parsed already, in which case\n * it is provided as an argument, or it's the next group in the input.\n *\n * @param {ParseFuncOrArgument=} baseGroup optional as described above\n * @return {?ParseNode}\n */\nParser.prototype.parseFunction = function(baseGroup) {\n if (!baseGroup) {\n baseGroup = this.parseGroup();\n }\n\n if (baseGroup) {\n if (baseGroup.isFunction) {\n var func = baseGroup.result;\n var funcData = functions[func];\n if (this.mode === \"text\" && !funcData.allowedInText) {\n throw new ParseError(\n \"Can't use function '\" + func + \"' in text mode\",\n this.lexer, baseGroup.position);\n }\n\n var args = this.parseArguments(func, funcData);\n var result = this.callFunction(func, args, args.pop());\n return new ParseNode(result.type, result, this.mode);\n } else {\n return baseGroup.result;\n }\n } else {\n return null;\n }\n};\n\n/**\n * Call a function handler with a suitable context and arguments.\n */\nParser.prototype.callFunction = function(name, args, positions) {\n var context = {\n funcName: name,\n parser: this,\n lexer: this.lexer,\n positions: positions,\n };\n return functions[name].handler(context, args);\n};\n\n/**\n * Parses the arguments of a function or environment\n *\n * @param {string} func \"\\name\" or \"\\begin{name}\"\n * @param {{numArgs:number,numOptionalArgs:number|undefined}} funcData\n * @return the array of arguments, with the list of positions as last element\n */\nParser.prototype.parseArguments = function(func, funcData) {\n var totalArgs = funcData.numArgs + funcData.numOptionalArgs;\n if (totalArgs === 0) {\n return [[this.pos]];\n }\n\n var baseGreediness = funcData.greediness;\n var positions = [this.pos];\n var args = [];\n\n for (var i = 0; i < totalArgs; i++) {\n var argType = funcData.argTypes && funcData.argTypes[i];\n var arg;\n if (i < funcData.numOptionalArgs) {\n if (argType) {\n arg = this.parseSpecialGroup(argType, true);\n } else {\n arg = this.parseOptionalGroup();\n }\n if (!arg) {\n args.push(null);\n positions.push(this.pos);\n continue;\n }\n } else {\n if (argType) {\n arg = this.parseSpecialGroup(argType);\n } else {\n arg = this.parseGroup();\n }\n if (!arg) {\n if (!this.settings.throwOnError &&\n this.nextToken.text[0] === \"\\\\\") {\n arg = new ParseFuncOrArgument(\n this.handleUnsupportedCmd(this.nextToken.text),\n false);\n } else {\n throw new ParseError(\n \"Expected group after '\" + func + \"'\",\n this.lexer, this.pos);\n }\n }\n }\n var argNode;\n if (arg.isFunction) {\n var argGreediness =\n functions[arg.result].greediness;\n if (argGreediness > baseGreediness) {\n argNode = this.parseFunction(arg);\n } else {\n throw new ParseError(\n \"Got function '\" + arg.result + \"' as \" +\n \"argument to '\" + func + \"'\",\n this.lexer, this.pos - 1);\n }\n } else {\n argNode = arg.result;\n }\n args.push(argNode);\n positions.push(this.pos);\n }\n\n args.push(positions);\n\n return args;\n};\n\n\n/**\n * Parses a group when the mode is changing. Takes a position, a new mode, and\n * an outer mode that is used to parse the outside.\n *\n * @return {?ParseFuncOrArgument}\n */\nParser.prototype.parseSpecialGroup = function(innerMode, optional) {\n var outerMode = this.mode;\n // Handle `original` argTypes\n if (innerMode === \"original\") {\n innerMode = outerMode;\n }\n\n if (innerMode === \"color\" || innerMode === \"size\") {\n // color and size modes are special because they should have braces and\n // should only lex a single symbol inside\n var openBrace = this.nextToken;\n if (optional && openBrace.text !== \"[\") {\n // optional arguments should return null if they don't exist\n return null;\n }\n // The call to expect will lex the token after the '{' in inner mode\n this.mode = innerMode;\n this.expect(optional ? \"[\" : \"{\");\n var inner = this.nextToken;\n this.mode = outerMode;\n var data;\n if (innerMode === \"color\") {\n data = inner.text;\n } else {\n data = inner.data;\n }\n this.consume(); // consume the token stored in inner\n this.expect(optional ? \"]\" : \"}\");\n return new ParseFuncOrArgument(\n new ParseNode(innerMode, data, outerMode),\n false);\n } else if (innerMode === \"text\") {\n // text mode is special because it should ignore the whitespace before\n // it\n var whitespace = this.lexer.lex(this.pos, \"whitespace\");\n this.pos = whitespace.position;\n }\n\n // By the time we get here, innerMode is one of \"text\" or \"math\".\n // We switch the mode of the parser, recurse, then restore the old mode.\n this.mode = innerMode;\n this.nextToken = this.lexer.lex(this.pos, innerMode);\n var res;\n if (optional) {\n res = this.parseOptionalGroup();\n } else {\n res = this.parseGroup();\n }\n this.mode = outerMode;\n this.nextToken = this.lexer.lex(this.pos, outerMode);\n return res;\n};\n\n/**\n * Parses a group, which is either a single nucleus (like \"x\") or an expression\n * in braces (like \"{x+y}\")\n *\n * @return {?ParseFuncOrArgument}\n */\nParser.prototype.parseGroup = function() {\n // Try to parse an open brace\n if (this.nextToken.text === \"{\") {\n // If we get a brace, parse an expression\n this.consume();\n var expression = this.parseExpression(false);\n // Make sure we get a close brace\n this.expect(\"}\");\n return new ParseFuncOrArgument(\n new ParseNode(\"ordgroup\", expression, this.mode),\n false);\n } else {\n // Otherwise, just return a nucleus\n return this.parseSymbol();\n }\n};\n\n/**\n * Parses a group, which is an expression in brackets (like \"[x+y]\")\n *\n * @return {?ParseFuncOrArgument}\n */\nParser.prototype.parseOptionalGroup = function() {\n // Try to parse an open bracket\n if (this.nextToken.text === \"[\") {\n // If we get a brace, parse an expression\n this.consume();\n var expression = this.parseExpression(false, \"]\");\n // Make sure we get a close bracket\n this.expect(\"]\");\n return new ParseFuncOrArgument(\n new ParseNode(\"ordgroup\", expression, this.mode),\n false);\n } else {\n // Otherwise, return null,\n return null;\n }\n};\n\n/**\n * Parse a single symbol out of the string. Here, we handle both the functions\n * we have defined, as well as the single character symbols\n *\n * @return {?ParseFuncOrArgument}\n */\nParser.prototype.parseSymbol = function() {\n var nucleus = this.nextToken;\n\n if (functions[nucleus.text]) {\n this.consume();\n // If there exists a function with this name, we return the function and\n // say that it is a function.\n return new ParseFuncOrArgument(\n nucleus.text,\n true);\n } else if (symbols[this.mode][nucleus.text]) {\n this.consume();\n // Otherwise if this is a no-argument function, find the type it\n // corresponds to in the symbols map\n return new ParseFuncOrArgument(\n new ParseNode(symbols[this.mode][nucleus.text].group,\n nucleus.text, this.mode),\n false);\n } else {\n return null;\n }\n};\n\nParser.prototype.ParseNode = ParseNode;\n\nmodule.exports = Parser;\n","/**\n * This is a module for storing settings passed into KaTeX. It correctly handles\n * default settings.\n */\n\n/**\n * Helper function for getting a default value if the value is undefined\n */\nfunction get(option, defaultValue) {\n return option === undefined ? defaultValue : option;\n}\n\n/**\n * The main Settings object\n *\n * The current options stored are:\n * - displayMode: Whether the expression should be typeset by default in\n * textstyle or displaystyle (default false)\n */\nfunction Settings(options) {\n // allow null options\n options = options || {};\n this.displayMode = get(options.displayMode, false);\n this.throwOnError = get(options.throwOnError, true);\n this.errorColor = get(options.errorColor, \"#cc0000\");\n}\n\nmodule.exports = Settings;\n","/**\n * This file contains information and classes for the various kinds of styles\n * used in TeX. It provides a generic `Style` class, which holds information\n * about a specific style. It then provides instances of all the different kinds\n * of styles possible, and provides functions to move between them and get\n * information about them.\n */\n\n/**\n * The main style class. Contains a unique id for the style, a size (which is\n * the same for cramped and uncramped version of a style), a cramped flag, and a\n * size multiplier, which gives the size difference between a style and\n * textstyle.\n */\nfunction Style(id, size, multiplier, cramped) {\n this.id = id;\n this.size = size;\n this.cramped = cramped;\n this.sizeMultiplier = multiplier;\n}\n\n/**\n * Get the style of a superscript given a base in the current style.\n */\nStyle.prototype.sup = function() {\n return styles[sup[this.id]];\n};\n\n/**\n * Get the style of a subscript given a base in the current style.\n */\nStyle.prototype.sub = function() {\n return styles[sub[this.id]];\n};\n\n/**\n * Get the style of a fraction numerator given the fraction in the current\n * style.\n */\nStyle.prototype.fracNum = function() {\n return styles[fracNum[this.id]];\n};\n\n/**\n * Get the style of a fraction denominator given the fraction in the current\n * style.\n */\nStyle.prototype.fracDen = function() {\n return styles[fracDen[this.id]];\n};\n\n/**\n * Get the cramped version of a style (in particular, cramping a cramped style\n * doesn't change the style).\n */\nStyle.prototype.cramp = function() {\n return styles[cramp[this.id]];\n};\n\n/**\n * HTML class name, like \"displaystyle cramped\"\n */\nStyle.prototype.cls = function() {\n return sizeNames[this.size] + (this.cramped ? \" cramped\" : \" uncramped\");\n};\n\n/**\n * HTML Reset class name, like \"reset-textstyle\"\n */\nStyle.prototype.reset = function() {\n return resetNames[this.size];\n};\n\n// IDs of the different styles\nvar D = 0;\nvar Dc = 1;\nvar T = 2;\nvar Tc = 3;\nvar S = 4;\nvar Sc = 5;\nvar SS = 6;\nvar SSc = 7;\n\n// String names for the different sizes\nvar sizeNames = [\n \"displaystyle textstyle\",\n \"textstyle\",\n \"scriptstyle\",\n \"scriptscriptstyle\",\n];\n\n// Reset names for the different sizes\nvar resetNames = [\n \"reset-textstyle\",\n \"reset-textstyle\",\n \"reset-scriptstyle\",\n \"reset-scriptscriptstyle\",\n];\n\n// Instances of the different styles\nvar styles = [\n new Style(D, 0, 1.0, false),\n new Style(Dc, 0, 1.0, true),\n new Style(T, 1, 1.0, false),\n new Style(Tc, 1, 1.0, true),\n new Style(S, 2, 0.7, false),\n new Style(Sc, 2, 0.7, true),\n new Style(SS, 3, 0.5, false),\n new Style(SSc, 3, 0.5, true),\n];\n\n// Lookup tables for switching from one style to another\nvar sup = [S, Sc, S, Sc, SS, SSc, SS, SSc];\nvar sub = [Sc, Sc, Sc, Sc, SSc, SSc, SSc, SSc];\nvar fracNum = [T, Tc, S, Sc, SS, SSc, SS, SSc];\nvar fracDen = [Tc, Tc, Sc, Sc, SSc, SSc, SSc, SSc];\nvar cramp = [Dc, Dc, Tc, Tc, Sc, Sc, SSc, SSc];\n\n// We only export some of the styles. Also, we don't export the `Style` class so\n// no more styles can be generated.\nmodule.exports = {\n DISPLAY: styles[D],\n TEXT: styles[T],\n SCRIPT: styles[S],\n SCRIPTSCRIPT: styles[SS],\n};\n","/* eslint no-console:0 */\n/**\n * This module contains general functions that can be used for building\n * different kinds of domTree nodes in a consistent manner.\n */\n\nvar domTree = require(\"./domTree\");\nvar fontMetrics = require(\"./fontMetrics\");\nvar symbols = require(\"./symbols\");\nvar utils = require(\"./utils\");\n\nvar greekCapitals = [\n \"\\\\Gamma\",\n \"\\\\Delta\",\n \"\\\\Theta\",\n \"\\\\Lambda\",\n \"\\\\Xi\",\n \"\\\\Pi\",\n \"\\\\Sigma\",\n \"\\\\Upsilon\",\n \"\\\\Phi\",\n \"\\\\Psi\",\n \"\\\\Omega\",\n];\n\nvar dotlessLetters = [\n \"\\u0131\", // dotless i, \\imath\n \"\\u0237\", // dotless j, \\jmath\n];\n\n/**\n * Makes a symbolNode after translation via the list of symbols in symbols.js.\n * Correctly pulls out metrics for the character, and optionally takes a list of\n * classes to be attached to the node.\n */\nvar makeSymbol = function(value, style, mode, color, classes) {\n // Replace the value with its replaced value from symbol.js\n if (symbols[mode][value] && symbols[mode][value].replace) {\n value = symbols[mode][value].replace;\n }\n\n var metrics = fontMetrics.getCharacterMetrics(value, style);\n\n var symbolNode;\n if (metrics) {\n symbolNode = new domTree.symbolNode(\n value, metrics.height, metrics.depth, metrics.italic, metrics.skew,\n classes);\n } else {\n // TODO(emily): Figure out a good way to only print this in development\n typeof console !== \"undefined\" && console.warn(\n \"No character metrics for '\" + value + \"' in style '\" +\n style + \"'\");\n symbolNode = new domTree.symbolNode(value, 0, 0, 0, 0, classes);\n }\n\n if (color) {\n symbolNode.style.color = color;\n }\n\n return symbolNode;\n};\n\n/**\n * Makes a symbol in Main-Regular or AMS-Regular.\n * Used for rel, bin, open, close, inner, and punct.\n */\nvar mathsym = function(value, mode, color, classes) {\n // Decide what font to render the symbol in by its entry in the symbols\n // table.\n // Have a special case for when the value = \\ because the \\ is used as a\n // textord in unsupported command errors but cannot be parsed as a regular\n // text ordinal and is therefore not present as a symbol in the symbols\n // table for text\n if (value === \"\\\\\" || symbols[mode][value].font === \"main\") {\n return makeSymbol(value, \"Main-Regular\", mode, color, classes);\n } else {\n return makeSymbol(\n value, \"AMS-Regular\", mode, color, classes.concat([\"amsrm\"]));\n }\n};\n\n/**\n * Makes a symbol in the default font for mathords and textords.\n */\nvar mathDefault = function(value, mode, color, classes, type) {\n if (type === \"mathord\") {\n return mathit(value, mode, color, classes);\n } else if (type === \"textord\") {\n return makeSymbol(\n value, \"Main-Regular\", mode, color, classes.concat([\"mathrm\"]));\n } else {\n throw new Error(\"unexpected type: \" + type + \" in mathDefault\");\n }\n};\n\n/**\n * Makes a symbol in the italic math font.\n */\nvar mathit = function(value, mode, color, classes) {\n if (/[0-9]/.test(value.charAt(0)) ||\n // glyphs for \\imath and \\jmath do not exist in Math-Italic so we\n // need to use Main-Italic instead\n utils.contains(dotlessLetters, value) ||\n utils.contains(greekCapitals, value)) {\n return makeSymbol(\n value, \"Main-Italic\", mode, color, classes.concat([\"mainit\"]));\n } else {\n return makeSymbol(\n value, \"Math-Italic\", mode, color, classes.concat([\"mathit\"]));\n }\n};\n\n/**\n * Makes either a mathord or textord in the correct font and color.\n */\nvar makeOrd = function(group, options, type) {\n var mode = group.mode;\n var value = group.value;\n if (symbols[mode][value] && symbols[mode][value].replace) {\n value = symbols[mode][value].replace;\n }\n\n var classes = [\"mord\"];\n var color = options.getColor();\n\n var font = options.font;\n if (font) {\n if (font === \"mathit\" || utils.contains(dotlessLetters, value)) {\n return mathit(value, mode, color, classes);\n } else {\n var fontName = fontMap[font].fontName;\n if (fontMetrics.getCharacterMetrics(value, fontName)) {\n return makeSymbol(\n value, fontName, mode, color, classes.concat([font]));\n } else {\n return mathDefault(value, mode, color, classes, type);\n }\n }\n } else {\n return mathDefault(value, mode, color, classes, type);\n }\n};\n\n/**\n * Calculate the height, depth, and maxFontSize of an element based on its\n * children.\n */\nvar sizeElementFromChildren = function(elem) {\n var height = 0;\n var depth = 0;\n var maxFontSize = 0;\n\n if (elem.children) {\n for (var i = 0; i < elem.children.length; i++) {\n if (elem.children[i].height > height) {\n height = elem.children[i].height;\n }\n if (elem.children[i].depth > depth) {\n depth = elem.children[i].depth;\n }\n if (elem.children[i].maxFontSize > maxFontSize) {\n maxFontSize = elem.children[i].maxFontSize;\n }\n }\n }\n\n elem.height = height;\n elem.depth = depth;\n elem.maxFontSize = maxFontSize;\n};\n\n/**\n * Makes a span with the given list of classes, list of children, and color.\n */\nvar makeSpan = function(classes, children, color) {\n var span = new domTree.span(classes, children);\n\n sizeElementFromChildren(span);\n\n if (color) {\n span.style.color = color;\n }\n\n return span;\n};\n\n/**\n * Makes a document fragment with the given list of children.\n */\nvar makeFragment = function(children) {\n var fragment = new domTree.documentFragment(children);\n\n sizeElementFromChildren(fragment);\n\n return fragment;\n};\n\n/**\n * Makes an element placed in each of the vlist elements to ensure that each\n * element has the same max font size. To do this, we create a zero-width space\n * with the correct font size.\n */\nvar makeFontSizer = function(options, fontSize) {\n var fontSizeInner = makeSpan([], [new domTree.symbolNode(\"\\u200b\")]);\n fontSizeInner.style.fontSize =\n (fontSize / options.style.sizeMultiplier) + \"em\";\n\n var fontSizer = makeSpan(\n [\"fontsize-ensurer\", \"reset-\" + options.size, \"size5\"],\n [fontSizeInner]);\n\n return fontSizer;\n};\n\n/**\n * Makes a vertical list by stacking elements and kerns on top of each other.\n * Allows for many different ways of specifying the positioning method.\n *\n * Arguments:\n * - children: A list of child or kern nodes to be stacked on top of each other\n * (i.e. the first element will be at the bottom, and the last at\n * the top). Element nodes are specified as\n * {type: \"elem\", elem: node}\n * while kern nodes are specified as\n * {type: \"kern\", size: size}\n * - positionType: The method by which the vlist should be positioned. Valid\n * values are:\n * - \"individualShift\": The children list only contains elem\n * nodes, and each node contains an extra\n * \"shift\" value of how much it should be\n * shifted (note that shifting is always\n * moving downwards). positionData is\n * ignored.\n * - \"top\": The positionData specifies the topmost point of\n * the vlist (note this is expected to be a height,\n * so positive values move up)\n * - \"bottom\": The positionData specifies the bottommost point\n * of the vlist (note this is expected to be a\n * depth, so positive values move down\n * - \"shift\": The vlist will be positioned such that its\n * baseline is positionData away from the baseline\n * of the first child. Positive values move\n * downwards.\n * - \"firstBaseline\": The vlist will be positioned such that\n * its baseline is aligned with the\n * baseline of the first child.\n * positionData is ignored. (this is\n * equivalent to \"shift\" with\n * positionData=0)\n * - positionData: Data used in different ways depending on positionType\n * - options: An Options object\n *\n */\nvar makeVList = function(children, positionType, positionData, options) {\n var depth;\n var currPos;\n var i;\n if (positionType === \"individualShift\") {\n var oldChildren = children;\n children = [oldChildren[0]];\n\n // Add in kerns to the list of children to get each element to be\n // shifted to the correct specified shift\n depth = -oldChildren[0].shift - oldChildren[0].elem.depth;\n currPos = depth;\n for (i = 1; i < oldChildren.length; i++) {\n var diff = -oldChildren[i].shift - currPos -\n oldChildren[i].elem.depth;\n var size = diff -\n (oldChildren[i - 1].elem.height +\n oldChildren[i - 1].elem.depth);\n\n currPos = currPos + diff;\n\n children.push({type: \"kern\", size: size});\n children.push(oldChildren[i]);\n }\n } else if (positionType === \"top\") {\n // We always start at the bottom, so calculate the bottom by adding up\n // all the sizes\n var bottom = positionData;\n for (i = 0; i < children.length; i++) {\n if (children[i].type === \"kern\") {\n bottom -= children[i].size;\n } else {\n bottom -= children[i].elem.height + children[i].elem.depth;\n }\n }\n depth = bottom;\n } else if (positionType === \"bottom\") {\n depth = -positionData;\n } else if (positionType === \"shift\") {\n depth = -children[0].elem.depth - positionData;\n } else if (positionType === \"firstBaseline\") {\n depth = -children[0].elem.depth;\n } else {\n depth = 0;\n }\n\n // Make the fontSizer\n var maxFontSize = 0;\n for (i = 0; i < children.length; i++) {\n if (children[i].type === \"elem\") {\n maxFontSize = Math.max(maxFontSize, children[i].elem.maxFontSize);\n }\n }\n var fontSizer = makeFontSizer(options, maxFontSize);\n\n // Create a new list of actual children at the correct offsets\n var realChildren = [];\n currPos = depth;\n for (i = 0; i < children.length; i++) {\n if (children[i].type === \"kern\") {\n currPos += children[i].size;\n } else {\n var child = children[i].elem;\n\n var shift = -child.depth - currPos;\n currPos += child.height + child.depth;\n\n var childWrap = makeSpan([], [fontSizer, child]);\n childWrap.height -= shift;\n childWrap.depth += shift;\n childWrap.style.top = shift + \"em\";\n\n realChildren.push(childWrap);\n }\n }\n\n // Add in an element at the end with no offset to fix the calculation of\n // baselines in some browsers (namely IE, sometimes safari)\n var baselineFix = makeSpan(\n [\"baseline-fix\"], [fontSizer, new domTree.symbolNode(\"\\u200b\")]);\n realChildren.push(baselineFix);\n\n var vlist = makeSpan([\"vlist\"], realChildren);\n // Fix the final height and depth, in case there were kerns at the ends\n // since the makeSpan calculation won't take that in to account.\n vlist.height = Math.max(currPos, vlist.height);\n vlist.depth = Math.max(-depth, vlist.depth);\n return vlist;\n};\n\n// A table of size -> font size for the different sizing functions\nvar sizingMultiplier = {\n size1: 0.5,\n size2: 0.7,\n size3: 0.8,\n size4: 0.9,\n size5: 1.0,\n size6: 1.2,\n size7: 1.44,\n size8: 1.73,\n size9: 2.07,\n size10: 2.49,\n};\n\n// A map of spacing functions to their attributes, like size and corresponding\n// CSS class\nvar spacingFunctions = {\n \"\\\\qquad\": {\n size: \"2em\",\n className: \"qquad\",\n },\n \"\\\\quad\": {\n size: \"1em\",\n className: \"quad\",\n },\n \"\\\\enspace\": {\n size: \"0.5em\",\n className: \"enspace\",\n },\n \"\\\\;\": {\n size: \"0.277778em\",\n className: \"thickspace\",\n },\n \"\\\\:\": {\n size: \"0.22222em\",\n className: \"mediumspace\",\n },\n \"\\\\,\": {\n size: \"0.16667em\",\n className: \"thinspace\",\n },\n \"\\\\!\": {\n size: \"-0.16667em\",\n className: \"negativethinspace\",\n },\n};\n\n/**\n * Maps TeX font commands to objects containing:\n * - variant: string used for \"mathvariant\" attribute in buildMathML.js\n * - fontName: the \"style\" parameter to fontMetrics.getCharacterMetrics\n */\n// A map between tex font commands an MathML mathvariant attribute values\nvar fontMap = {\n // styles\n \"mathbf\": {\n variant: \"bold\",\n fontName: \"Main-Bold\",\n },\n \"mathrm\": {\n variant: \"normal\",\n fontName: \"Main-Regular\",\n },\n\n // \"mathit\" is missing because it requires the use of two fonts: Main-Italic\n // and Math-Italic. This is handled by a special case in makeOrd which ends\n // up calling mathit.\n\n // families\n \"mathbb\": {\n variant: \"double-struck\",\n fontName: \"AMS-Regular\",\n },\n \"mathcal\": {\n variant: \"script\",\n fontName: \"Caligraphic-Regular\",\n },\n \"mathfrak\": {\n variant: \"fraktur\",\n fontName: \"Fraktur-Regular\",\n },\n \"mathscr\": {\n variant: \"script\",\n fontName: \"Script-Regular\",\n },\n \"mathsf\": {\n variant: \"sans-serif\",\n fontName: \"SansSerif-Regular\",\n },\n \"mathtt\": {\n variant: \"monospace\",\n fontName: \"Typewriter-Regular\",\n },\n};\n\nmodule.exports = {\n fontMap: fontMap,\n makeSymbol: makeSymbol,\n mathsym: mathsym,\n makeSpan: makeSpan,\n makeFragment: makeFragment,\n makeVList: makeVList,\n makeOrd: makeOrd,\n sizingMultiplier: sizingMultiplier,\n spacingFunctions: spacingFunctions,\n};\n","/* eslint no-console:0 */\n/**\n * This file does the main work of building a domTree structure from a parse\n * tree. The entry point is the `buildHTML` function, which takes a parse tree.\n * Then, the buildExpression, buildGroup, and various groupTypes functions are\n * called, to produce a final HTML tree.\n */\n\nvar ParseError = require(\"./ParseError\");\nvar Style = require(\"./Style\");\n\nvar buildCommon = require(\"./buildCommon\");\nvar delimiter = require(\"./delimiter\");\nvar domTree = require(\"./domTree\");\nvar fontMetrics = require(\"./fontMetrics\");\nvar utils = require(\"./utils\");\n\nvar makeSpan = buildCommon.makeSpan;\n\n/**\n * Take a list of nodes, build them in order, and return a list of the built\n * nodes. This function handles the `prev` node correctly, and passes the\n * previous element from the list as the prev of the next element.\n */\nvar buildExpression = function(expression, options, prev) {\n var groups = [];\n for (var i = 0; i < expression.length; i++) {\n var group = expression[i];\n groups.push(buildGroup(group, options, prev));\n prev = group;\n }\n return groups;\n};\n\n// List of types used by getTypeOfGroup,\n// see https://github.com/Khan/KaTeX/wiki/Examining-TeX#group-types\nvar groupToType = {\n mathord: \"mord\",\n textord: \"mord\",\n bin: \"mbin\",\n rel: \"mrel\",\n text: \"mord\",\n open: \"mopen\",\n close: \"mclose\",\n inner: \"minner\",\n genfrac: \"mord\",\n array: \"mord\",\n spacing: \"mord\",\n punct: \"mpunct\",\n ordgroup: \"mord\",\n op: \"mop\",\n katex: \"mord\",\n overline: \"mord\",\n underline: \"mord\",\n rule: \"mord\",\n leftright: \"minner\",\n sqrt: \"mord\",\n accent: \"mord\",\n};\n\n/**\n * Gets the final math type of an expression, given its group type. This type is\n * used to determine spacing between elements, and affects bin elements by\n * causing them to change depending on what types are around them. This type\n * must be attached to the outermost node of an element as a CSS class so that\n * spacing with its surrounding elements works correctly.\n *\n * Some elements can be mapped one-to-one from group type to math type, and\n * those are listed in the `groupToType` table.\n *\n * Others (usually elements that wrap around other elements) often have\n * recursive definitions, and thus call `getTypeOfGroup` on their inner\n * elements.\n */\nvar getTypeOfGroup = function(group) {\n if (group == null) {\n // Like when typesetting $^3$\n return groupToType.mathord;\n } else if (group.type === \"supsub\") {\n return getTypeOfGroup(group.value.base);\n } else if (group.type === \"llap\" || group.type === \"rlap\") {\n return getTypeOfGroup(group.value);\n } else if (group.type === \"color\") {\n return getTypeOfGroup(group.value.value);\n } else if (group.type === \"sizing\") {\n return getTypeOfGroup(group.value.value);\n } else if (group.type === \"styling\") {\n return getTypeOfGroup(group.value.value);\n } else if (group.type === \"delimsizing\") {\n return groupToType[group.value.delimType];\n } else {\n return groupToType[group.type];\n }\n};\n\n/**\n * Sometimes, groups perform special rules when they have superscripts or\n * subscripts attached to them. This function lets the `supsub` group know that\n * its inner element should handle the superscripts and subscripts instead of\n * handling them itself.\n */\nvar shouldHandleSupSub = function(group, options) {\n if (!group) {\n return false;\n } else if (group.type === \"op\") {\n // Operators handle supsubs differently when they have limits\n // (e.g. `\\displaystyle\\sum_2^3`)\n return group.value.limits &&\n (options.style.size === Style.DISPLAY.size ||\n group.value.alwaysHandleSupSub);\n } else if (group.type === \"accent\") {\n return isCharacterBox(group.value.base);\n } else {\n return null;\n }\n};\n\n/**\n * Sometimes we want to pull out the innermost element of a group. In most\n * cases, this will just be the group itself, but when ordgroups and colors have\n * a single element, we want to pull that out.\n */\nvar getBaseElem = function(group) {\n if (!group) {\n return false;\n } else if (group.type === \"ordgroup\") {\n if (group.value.length === 1) {\n return getBaseElem(group.value[0]);\n } else {\n return group;\n }\n } else if (group.type === \"color\") {\n if (group.value.value.length === 1) {\n return getBaseElem(group.value.value[0]);\n } else {\n return group;\n }\n } else {\n return group;\n }\n};\n\n/**\n * TeXbook algorithms often reference \"character boxes\", which are simply groups\n * with a single character in them. To decide if something is a character box,\n * we find its innermost group, and see if it is a single character.\n */\nvar isCharacterBox = function(group) {\n var baseElem = getBaseElem(group);\n\n // These are all they types of groups which hold single characters\n return baseElem.type === \"mathord\" ||\n baseElem.type === \"textord\" ||\n baseElem.type === \"bin\" ||\n baseElem.type === \"rel\" ||\n baseElem.type === \"inner\" ||\n baseElem.type === \"open\" ||\n baseElem.type === \"close\" ||\n baseElem.type === \"punct\";\n};\n\nvar makeNullDelimiter = function(options) {\n return makeSpan([\n \"sizing\", \"reset-\" + options.size, \"size5\",\n options.style.reset(), Style.TEXT.cls(),\n \"nulldelimiter\",\n ]);\n};\n\n/**\n * This is a map of group types to the function used to handle that type.\n * Simpler types come at the beginning, while complicated types come afterwards.\n */\nvar groupTypes = {};\n\ngroupTypes.mathord = function(group, options, prev) {\n return buildCommon.makeOrd(group, options, \"mathord\");\n};\n\ngroupTypes.textord = function(group, options, prev) {\n return buildCommon.makeOrd(group, options, \"textord\");\n};\n\ngroupTypes.bin = function(group, options, prev) {\n var className = \"mbin\";\n // Pull out the most recent element. Do some special handling to find\n // things at the end of a \\color group. Note that we don't use the same\n // logic for ordgroups (which count as ords).\n var prevAtom = prev;\n while (prevAtom && prevAtom.type === \"color\") {\n var atoms = prevAtom.value.value;\n prevAtom = atoms[atoms.length - 1];\n }\n // See TeXbook pg. 442-446, Rules 5 and 6, and the text before Rule 19.\n // Here, we determine whether the bin should turn into an ord. We\n // currently only apply Rule 5.\n if (!prev || utils.contains([\"mbin\", \"mopen\", \"mrel\", \"mop\", \"mpunct\"],\n getTypeOfGroup(prevAtom))) {\n group.type = \"textord\";\n className = \"mord\";\n }\n\n return buildCommon.mathsym(\n group.value, group.mode, options.getColor(), [className]);\n};\n\ngroupTypes.rel = function(group, options, prev) {\n return buildCommon.mathsym(\n group.value, group.mode, options.getColor(), [\"mrel\"]);\n};\n\ngroupTypes.open = function(group, options, prev) {\n return buildCommon.mathsym(\n group.value, group.mode, options.getColor(), [\"mopen\"]);\n};\n\ngroupTypes.close = function(group, options, prev) {\n return buildCommon.mathsym(\n group.value, group.mode, options.getColor(), [\"mclose\"]);\n};\n\ngroupTypes.inner = function(group, options, prev) {\n return buildCommon.mathsym(\n group.value, group.mode, options.getColor(), [\"minner\"]);\n};\n\ngroupTypes.punct = function(group, options, prev) {\n return buildCommon.mathsym(\n group.value, group.mode, options.getColor(), [\"mpunct\"]);\n};\n\ngroupTypes.ordgroup = function(group, options, prev) {\n return makeSpan(\n [\"mord\", options.style.cls()],\n buildExpression(group.value, options.reset())\n );\n};\n\ngroupTypes.text = function(group, options, prev) {\n return makeSpan([\"text\", \"mord\", options.style.cls()],\n buildExpression(group.value.body, options.reset()));\n};\n\ngroupTypes.color = function(group, options, prev) {\n var elements = buildExpression(\n group.value.value,\n options.withColor(group.value.color),\n prev\n );\n\n // \\color isn't supposed to affect the type of the elements it contains.\n // To accomplish this, we wrap the results in a fragment, so the inner\n // elements will be able to directly interact with their neighbors. For\n // example, `\\color{red}{2 +} 3` has the same spacing as `2 + 3`\n return new buildCommon.makeFragment(elements);\n};\n\ngroupTypes.supsub = function(group, options, prev) {\n // Superscript and subscripts are handled in the TeXbook on page\n // 445-446, rules 18(a-f).\n\n // Here is where we defer to the inner group if it should handle\n // superscripts and subscripts itself.\n if (shouldHandleSupSub(group.value.base, options)) {\n return groupTypes[group.value.base.type](group, options, prev);\n }\n\n var base = buildGroup(group.value.base, options.reset());\n var supmid;\n var submid;\n var sup;\n var sub;\n\n if (group.value.sup) {\n sup = buildGroup(group.value.sup,\n options.withStyle(options.style.sup()));\n supmid = makeSpan(\n [options.style.reset(), options.style.sup().cls()], [sup]);\n }\n\n if (group.value.sub) {\n sub = buildGroup(group.value.sub,\n options.withStyle(options.style.sub()));\n submid = makeSpan(\n [options.style.reset(), options.style.sub().cls()], [sub]);\n }\n\n // Rule 18a\n var supShift;\n var subShift;\n if (isCharacterBox(group.value.base)) {\n supShift = 0;\n subShift = 0;\n } else {\n supShift = base.height - fontMetrics.metrics.supDrop;\n subShift = base.depth + fontMetrics.metrics.subDrop;\n }\n\n // Rule 18c\n var minSupShift;\n if (options.style === Style.DISPLAY) {\n minSupShift = fontMetrics.metrics.sup1;\n } else if (options.style.cramped) {\n minSupShift = fontMetrics.metrics.sup3;\n } else {\n minSupShift = fontMetrics.metrics.sup2;\n }\n\n // scriptspace is a font-size-independent size, so scale it\n // appropriately\n var multiplier = Style.TEXT.sizeMultiplier *\n options.style.sizeMultiplier;\n var scriptspace =\n (0.5 / fontMetrics.metrics.ptPerEm) / multiplier + \"em\";\n\n var supsub;\n if (!group.value.sup) {\n // Rule 18b\n subShift = Math.max(\n subShift, fontMetrics.metrics.sub1,\n sub.height - 0.8 * fontMetrics.metrics.xHeight);\n\n supsub = buildCommon.makeVList([\n {type: \"elem\", elem: submid},\n ], \"shift\", subShift, options);\n\n supsub.children[0].style.marginRight = scriptspace;\n\n // Subscripts shouldn't be shifted by the base's italic correction.\n // Account for that by shifting the subscript back the appropriate\n // amount. Note we only do this when the base is a single symbol.\n if (base instanceof domTree.symbolNode) {\n supsub.children[0].style.marginLeft = -base.italic + \"em\";\n }\n } else if (!group.value.sub) {\n // Rule 18c, d\n supShift = Math.max(supShift, minSupShift,\n sup.depth + 0.25 * fontMetrics.metrics.xHeight);\n\n supsub = buildCommon.makeVList([\n {type: \"elem\", elem: supmid},\n ], \"shift\", -supShift, options);\n\n supsub.children[0].style.marginRight = scriptspace;\n } else {\n supShift = Math.max(\n supShift, minSupShift,\n sup.depth + 0.25 * fontMetrics.metrics.xHeight);\n subShift = Math.max(subShift, fontMetrics.metrics.sub2);\n\n var ruleWidth = fontMetrics.metrics.defaultRuleThickness;\n\n // Rule 18e\n if ((supShift - sup.depth) - (sub.height - subShift) <\n 4 * ruleWidth) {\n subShift = 4 * ruleWidth - (supShift - sup.depth) + sub.height;\n var psi = 0.8 * fontMetrics.metrics.xHeight -\n (supShift - sup.depth);\n if (psi > 0) {\n supShift += psi;\n subShift -= psi;\n }\n }\n\n supsub = buildCommon.makeVList([\n {type: \"elem\", elem: submid, shift: subShift},\n {type: \"elem\", elem: supmid, shift: -supShift},\n ], \"individualShift\", null, options);\n\n // See comment above about subscripts not being shifted\n if (base instanceof domTree.symbolNode) {\n supsub.children[0].style.marginLeft = -base.italic + \"em\";\n }\n\n supsub.children[0].style.marginRight = scriptspace;\n supsub.children[1].style.marginRight = scriptspace;\n }\n\n return makeSpan([getTypeOfGroup(group.value.base)],\n [base, supsub]);\n};\n\ngroupTypes.genfrac = function(group, options, prev) {\n // Fractions are handled in the TeXbook on pages 444-445, rules 15(a-e).\n // Figure out what style this fraction should be in based on the\n // function used\n var fstyle = options.style;\n if (group.value.size === \"display\") {\n fstyle = Style.DISPLAY;\n } else if (group.value.size === \"text\") {\n fstyle = Style.TEXT;\n }\n\n var nstyle = fstyle.fracNum();\n var dstyle = fstyle.fracDen();\n\n var numer = buildGroup(group.value.numer, options.withStyle(nstyle));\n var numerreset = makeSpan([fstyle.reset(), nstyle.cls()], [numer]);\n\n var denom = buildGroup(group.value.denom, options.withStyle(dstyle));\n var denomreset = makeSpan([fstyle.reset(), dstyle.cls()], [denom]);\n\n var ruleWidth;\n if (group.value.hasBarLine) {\n ruleWidth = fontMetrics.metrics.defaultRuleThickness /\n options.style.sizeMultiplier;\n } else {\n ruleWidth = 0;\n }\n\n // Rule 15b\n var numShift;\n var clearance;\n var denomShift;\n if (fstyle.size === Style.DISPLAY.size) {\n numShift = fontMetrics.metrics.num1;\n if (ruleWidth > 0) {\n clearance = 3 * ruleWidth;\n } else {\n clearance = 7 * fontMetrics.metrics.defaultRuleThickness;\n }\n denomShift = fontMetrics.metrics.denom1;\n } else {\n if (ruleWidth > 0) {\n numShift = fontMetrics.metrics.num2;\n clearance = ruleWidth;\n } else {\n numShift = fontMetrics.metrics.num3;\n clearance = 3 * fontMetrics.metrics.defaultRuleThickness;\n }\n denomShift = fontMetrics.metrics.denom2;\n }\n\n var frac;\n if (ruleWidth === 0) {\n // Rule 15c\n var candiateClearance =\n (numShift - numer.depth) - (denom.height - denomShift);\n if (candiateClearance < clearance) {\n numShift += 0.5 * (clearance - candiateClearance);\n denomShift += 0.5 * (clearance - candiateClearance);\n }\n\n frac = buildCommon.makeVList([\n {type: \"elem\", elem: denomreset, shift: denomShift},\n {type: \"elem\", elem: numerreset, shift: -numShift},\n ], \"individualShift\", null, options);\n } else {\n // Rule 15d\n var axisHeight = fontMetrics.metrics.axisHeight;\n\n if ((numShift - numer.depth) - (axisHeight + 0.5 * ruleWidth) <\n clearance) {\n numShift +=\n clearance - ((numShift - numer.depth) -\n (axisHeight + 0.5 * ruleWidth));\n }\n\n if ((axisHeight - 0.5 * ruleWidth) - (denom.height - denomShift) <\n clearance) {\n denomShift +=\n clearance - ((axisHeight - 0.5 * ruleWidth) -\n (denom.height - denomShift));\n }\n\n var mid = makeSpan(\n [options.style.reset(), Style.TEXT.cls(), \"frac-line\"]);\n // Manually set the height of the line because its height is\n // created in CSS\n mid.height = ruleWidth;\n\n var midShift = -(axisHeight - 0.5 * ruleWidth);\n\n frac = buildCommon.makeVList([\n {type: \"elem\", elem: denomreset, shift: denomShift},\n {type: \"elem\", elem: mid, shift: midShift},\n {type: \"elem\", elem: numerreset, shift: -numShift},\n ], \"individualShift\", null, options);\n }\n\n // Since we manually change the style sometimes (with \\dfrac or \\tfrac),\n // account for the possible size change here.\n frac.height *= fstyle.sizeMultiplier / options.style.sizeMultiplier;\n frac.depth *= fstyle.sizeMultiplier / options.style.sizeMultiplier;\n\n // Rule 15e\n var delimSize;\n if (fstyle.size === Style.DISPLAY.size) {\n delimSize = fontMetrics.metrics.delim1;\n } else {\n delimSize = fontMetrics.metrics.getDelim2(fstyle);\n }\n\n var leftDelim;\n var rightDelim;\n if (group.value.leftDelim == null) {\n leftDelim = makeNullDelimiter(options);\n } else {\n leftDelim = delimiter.customSizedDelim(\n group.value.leftDelim, delimSize, true,\n options.withStyle(fstyle), group.mode);\n }\n if (group.value.rightDelim == null) {\n rightDelim = makeNullDelimiter(options);\n } else {\n rightDelim = delimiter.customSizedDelim(\n group.value.rightDelim, delimSize, true,\n options.withStyle(fstyle), group.mode);\n }\n\n return makeSpan(\n [\"mord\", options.style.reset(), fstyle.cls()],\n [leftDelim, makeSpan([\"mfrac\"], [frac]), rightDelim],\n options.getColor());\n};\n\ngroupTypes.array = function(group, options, prev) {\n var r;\n var c;\n var nr = group.value.body.length;\n var nc = 0;\n var body = new Array(nr);\n\n // Horizontal spacing\n var pt = 1 / fontMetrics.metrics.ptPerEm;\n var arraycolsep = 5 * pt; // \\arraycolsep in article.cls\n\n // Vertical spacing\n var baselineskip = 12 * pt; // see size10.clo\n // Default \\arraystretch from lttab.dtx\n // TODO(gagern): may get redefined once we have user-defined macros\n var arraystretch = utils.deflt(group.value.arraystretch, 1);\n var arrayskip = arraystretch * baselineskip;\n var arstrutHeight = 0.7 * arrayskip; // \\strutbox in ltfsstrc.dtx and\n var arstrutDepth = 0.3 * arrayskip; // \\@arstrutbox in lttab.dtx\n\n var totalHeight = 0;\n for (r = 0; r < group.value.body.length; ++r) {\n var inrow = group.value.body[r];\n var height = arstrutHeight; // \\@array adds an \\@arstrut\n var depth = arstrutDepth; // to each tow (via the template)\n\n if (nc < inrow.length) {\n nc = inrow.length;\n }\n\n var outrow = new Array(inrow.length);\n for (c = 0; c < inrow.length; ++c) {\n var elt = buildGroup(inrow[c], options);\n if (depth < elt.depth) {\n depth = elt.depth;\n }\n if (height < elt.height) {\n height = elt.height;\n }\n outrow[c] = elt;\n }\n\n var gap = 0;\n if (group.value.rowGaps[r]) {\n gap = group.value.rowGaps[r].value;\n switch (gap.unit) {\n case \"em\":\n gap = gap.number;\n break;\n case \"ex\":\n gap = gap.number * fontMetrics.metrics.emPerEx;\n break;\n default:\n console.error(\"Can't handle unit \" + gap.unit);\n gap = 0;\n }\n if (gap > 0) { // \\@argarraycr\n gap += arstrutDepth;\n if (depth < gap) {\n depth = gap; // \\@xargarraycr\n }\n gap = 0;\n }\n }\n\n outrow.height = height;\n outrow.depth = depth;\n totalHeight += height;\n outrow.pos = totalHeight;\n totalHeight += depth + gap; // \\@yargarraycr\n body[r] = outrow;\n }\n\n var offset = totalHeight / 2 + fontMetrics.metrics.axisHeight;\n var colDescriptions = group.value.cols || [];\n var cols = [];\n var colSep;\n var colDescrNum;\n for (c = 0, colDescrNum = 0;\n // Continue while either there are more columns or more column\n // descriptions, so trailing separators don't get lost.\n c < nc || colDescrNum < colDescriptions.length;\n ++c, ++colDescrNum) {\n\n var colDescr = colDescriptions[colDescrNum] || {};\n\n var firstSeparator = true;\n while (colDescr.type === \"separator\") {\n // If there is more than one separator in a row, add a space\n // between them.\n if (!firstSeparator) {\n colSep = makeSpan([\"arraycolsep\"], []);\n colSep.style.width =\n fontMetrics.metrics.doubleRuleSep + \"em\";\n cols.push(colSep);\n }\n\n if (colDescr.separator === \"|\") {\n var separator = makeSpan(\n [\"vertical-separator\"],\n []);\n separator.style.height = totalHeight + \"em\";\n separator.style.verticalAlign =\n -(totalHeight - offset) + \"em\";\n\n cols.push(separator);\n } else {\n throw new ParseError(\n \"Invalid separator type: \" + colDescr.separator);\n }\n\n colDescrNum++;\n colDescr = colDescriptions[colDescrNum] || {};\n firstSeparator = false;\n }\n\n if (c >= nc) {\n continue;\n }\n\n var sepwidth;\n if (c > 0 || group.value.hskipBeforeAndAfter) {\n sepwidth = utils.deflt(colDescr.pregap, arraycolsep);\n if (sepwidth !== 0) {\n colSep = makeSpan([\"arraycolsep\"], []);\n colSep.style.width = sepwidth + \"em\";\n cols.push(colSep);\n }\n }\n\n var col = [];\n for (r = 0; r < nr; ++r) {\n var row = body[r];\n var elem = row[c];\n if (!elem) {\n continue;\n }\n var shift = row.pos - offset;\n elem.depth = row.depth;\n elem.height = row.height;\n col.push({type: \"elem\", elem: elem, shift: shift});\n }\n\n col = buildCommon.makeVList(col, \"individualShift\", null, options);\n col = makeSpan(\n [\"col-align-\" + (colDescr.align || \"c\")],\n [col]);\n cols.push(col);\n\n if (c < nc - 1 || group.value.hskipBeforeAndAfter) {\n sepwidth = utils.deflt(colDescr.postgap, arraycolsep);\n if (sepwidth !== 0) {\n colSep = makeSpan([\"arraycolsep\"], []);\n colSep.style.width = sepwidth + \"em\";\n cols.push(colSep);\n }\n }\n }\n body = makeSpan([\"mtable\"], cols);\n return makeSpan([\"mord\"], [body], options.getColor());\n};\n\ngroupTypes.spacing = function(group, options, prev) {\n if (group.value === \"\\\\ \" || group.value === \"\\\\space\" ||\n group.value === \" \" || group.value === \"~\") {\n // Spaces are generated by adding an actual space. Each of these\n // things has an entry in the symbols table, so these will be turned\n // into appropriate outputs.\n return makeSpan(\n [\"mord\", \"mspace\"],\n [buildCommon.mathsym(group.value, group.mode)]\n );\n } else {\n // Other kinds of spaces are of arbitrary width. We use CSS to\n // generate these.\n return makeSpan(\n [\"mord\", \"mspace\",\n buildCommon.spacingFunctions[group.value].className]);\n }\n};\n\ngroupTypes.llap = function(group, options, prev) {\n var inner = makeSpan(\n [\"inner\"], [buildGroup(group.value.body, options.reset())]);\n var fix = makeSpan([\"fix\"], []);\n return makeSpan(\n [\"llap\", options.style.cls()], [inner, fix]);\n};\n\ngroupTypes.rlap = function(group, options, prev) {\n var inner = makeSpan(\n [\"inner\"], [buildGroup(group.value.body, options.reset())]);\n var fix = makeSpan([\"fix\"], []);\n return makeSpan(\n [\"rlap\", options.style.cls()], [inner, fix]);\n};\n\ngroupTypes.op = function(group, options, prev) {\n // Operators are handled in the TeXbook pg. 443-444, rule 13(a).\n var supGroup;\n var subGroup;\n var hasLimits = false;\n if (group.type === \"supsub\" ) {\n // If we have limits, supsub will pass us its group to handle. Pull\n // out the superscript and subscript and set the group to the op in\n // its base.\n supGroup = group.value.sup;\n subGroup = group.value.sub;\n group = group.value.base;\n hasLimits = true;\n }\n\n // Most operators have a large successor symbol, but these don't.\n var noSuccessor = [\n \"\\\\smallint\",\n ];\n\n var large = false;\n if (options.style.size === Style.DISPLAY.size &&\n group.value.symbol &&\n !utils.contains(noSuccessor, group.value.body)) {\n\n // Most symbol operators get larger in displaystyle (rule 13)\n large = true;\n }\n\n var base;\n var baseShift = 0;\n var slant = 0;\n if (group.value.symbol) {\n // If this is a symbol, create the symbol.\n var style = large ? \"Size2-Regular\" : \"Size1-Regular\";\n base = buildCommon.makeSymbol(\n group.value.body, style, \"math\", options.getColor(),\n [\"op-symbol\", large ? \"large-op\" : \"small-op\", \"mop\"]);\n\n // Shift the symbol so its center lies on the axis (rule 13). It\n // appears that our fonts have the centers of the symbols already\n // almost on the axis, so these numbers are very small. Note we\n // don't actually apply this here, but instead it is used either in\n // the vlist creation or separately when there are no limits.\n baseShift = (base.height - base.depth) / 2 -\n fontMetrics.metrics.axisHeight *\n options.style.sizeMultiplier;\n\n // The slant of the symbol is just its italic correction.\n slant = base.italic;\n } else {\n // Otherwise, this is a text operator. Build the text from the\n // operator's name.\n // TODO(emily): Add a space in the middle of some of these\n // operators, like \\limsup\n var output = [];\n for (var i = 1; i < group.value.body.length; i++) {\n output.push(buildCommon.mathsym(group.value.body[i], group.mode));\n }\n base = makeSpan([\"mop\"], output, options.getColor());\n }\n\n if (hasLimits) {\n // IE 8 clips \\int if it is in a display: inline-block. We wrap it\n // in a new span so it is an inline, and works.\n base = makeSpan([], [base]);\n\n var supmid;\n var supKern;\n var submid;\n var subKern;\n // We manually have to handle the superscripts and subscripts. This,\n // aside from the kern calculations, is copied from supsub.\n if (supGroup) {\n var sup = buildGroup(\n supGroup, options.withStyle(options.style.sup()));\n supmid = makeSpan(\n [options.style.reset(), options.style.sup().cls()], [sup]);\n\n supKern = Math.max(\n fontMetrics.metrics.bigOpSpacing1,\n fontMetrics.metrics.bigOpSpacing3 - sup.depth);\n }\n\n if (subGroup) {\n var sub = buildGroup(\n subGroup, options.withStyle(options.style.sub()));\n submid = makeSpan(\n [options.style.reset(), options.style.sub().cls()],\n [sub]);\n\n subKern = Math.max(\n fontMetrics.metrics.bigOpSpacing2,\n fontMetrics.metrics.bigOpSpacing4 - sub.height);\n }\n\n // Build the final group as a vlist of the possible subscript, base,\n // and possible superscript.\n var finalGroup;\n var top;\n var bottom;\n if (!supGroup) {\n top = base.height - baseShift;\n\n finalGroup = buildCommon.makeVList([\n {type: \"kern\", size: fontMetrics.metrics.bigOpSpacing5},\n {type: \"elem\", elem: submid},\n {type: \"kern\", size: subKern},\n {type: \"elem\", elem: base},\n ], \"top\", top, options);\n\n // Here, we shift the limits by the slant of the symbol. Note\n // that we are supposed to shift the limits by 1/2 of the slant,\n // but since we are centering the limits adding a full slant of\n // margin will shift by 1/2 that.\n finalGroup.children[0].style.marginLeft = -slant + \"em\";\n } else if (!subGroup) {\n bottom = base.depth + baseShift;\n\n finalGroup = buildCommon.makeVList([\n {type: \"elem\", elem: base},\n {type: \"kern\", size: supKern},\n {type: \"elem\", elem: supmid},\n {type: \"kern\", size: fontMetrics.metrics.bigOpSpacing5},\n ], \"bottom\", bottom, options);\n\n // See comment above about slants\n finalGroup.children[1].style.marginLeft = slant + \"em\";\n } else if (!supGroup && !subGroup) {\n // This case probably shouldn't occur (this would mean the\n // supsub was sending us a group with no superscript or\n // subscript) but be safe.\n return base;\n } else {\n bottom = fontMetrics.metrics.bigOpSpacing5 +\n submid.height + submid.depth +\n subKern +\n base.depth + baseShift;\n\n finalGroup = buildCommon.makeVList([\n {type: \"kern\", size: fontMetrics.metrics.bigOpSpacing5},\n {type: \"elem\", elem: submid},\n {type: \"kern\", size: subKern},\n {type: \"elem\", elem: base},\n {type: \"kern\", size: supKern},\n {type: \"elem\", elem: supmid},\n {type: \"kern\", size: fontMetrics.metrics.bigOpSpacing5},\n ], \"bottom\", bottom, options);\n\n // See comment above about slants\n finalGroup.children[0].style.marginLeft = -slant + \"em\";\n finalGroup.children[2].style.marginLeft = slant + \"em\";\n }\n\n return makeSpan([\"mop\", \"op-limits\"], [finalGroup]);\n } else {\n if (group.value.symbol) {\n base.style.top = baseShift + \"em\";\n }\n\n return base;\n }\n};\n\ngroupTypes.katex = function(group, options, prev) {\n // The KaTeX logo. The offsets for the K and a were chosen to look\n // good, but the offsets for the T, E, and X were taken from the\n // definition of \\TeX in TeX (see TeXbook pg. 356)\n var k = makeSpan(\n [\"k\"], [buildCommon.mathsym(\"K\", group.mode)]);\n var a = makeSpan(\n [\"a\"], [buildCommon.mathsym(\"A\", group.mode)]);\n\n a.height = (a.height + 0.2) * 0.75;\n a.depth = (a.height - 0.2) * 0.75;\n\n var t = makeSpan(\n [\"t\"], [buildCommon.mathsym(\"T\", group.mode)]);\n var e = makeSpan(\n [\"e\"], [buildCommon.mathsym(\"E\", group.mode)]);\n\n e.height = (e.height - 0.2155);\n e.depth = (e.depth + 0.2155);\n\n var x = makeSpan(\n [\"x\"], [buildCommon.mathsym(\"X\", group.mode)]);\n\n return makeSpan(\n [\"katex-logo\", \"mord\"], [k, a, t, e, x], options.getColor());\n};\n\ngroupTypes.overline = function(group, options, prev) {\n // Overlines are handled in the TeXbook pg 443, Rule 9.\n\n // Build the inner group in the cramped style.\n var innerGroup = buildGroup(group.value.body,\n options.withStyle(options.style.cramp()));\n\n var ruleWidth = fontMetrics.metrics.defaultRuleThickness /\n options.style.sizeMultiplier;\n\n // Create the line above the body\n var line = makeSpan(\n [options.style.reset(), Style.TEXT.cls(), \"overline-line\"]);\n line.height = ruleWidth;\n line.maxFontSize = 1.0;\n\n // Generate the vlist, with the appropriate kerns\n var vlist = buildCommon.makeVList([\n {type: \"elem\", elem: innerGroup},\n {type: \"kern\", size: 3 * ruleWidth},\n {type: \"elem\", elem: line},\n {type: \"kern\", size: ruleWidth},\n ], \"firstBaseline\", null, options);\n\n return makeSpan([\"overline\", \"mord\"], [vlist], options.getColor());\n};\n\ngroupTypes.underline = function(group, options, prev) {\n // Underlines are handled in the TeXbook pg 443, Rule 10.\n\n // Build the inner group.\n var innerGroup = buildGroup(group.value.body, options);\n\n var ruleWidth = fontMetrics.metrics.defaultRuleThickness /\n options.style.sizeMultiplier;\n\n // Create the line above the body\n var line = makeSpan(\n [options.style.reset(), Style.TEXT.cls(), \"underline-line\"]);\n line.height = ruleWidth;\n line.maxFontSize = 1.0;\n\n // Generate the vlist, with the appropriate kerns\n var vlist = buildCommon.makeVList([\n {type: \"kern\", size: ruleWidth},\n {type: \"elem\", elem: line},\n {type: \"kern\", size: 3 * ruleWidth},\n {type: \"elem\", elem: innerGroup},\n ], \"top\", innerGroup.height, options);\n\n return makeSpan([\"underline\", \"mord\"], [vlist], options.getColor());\n};\n\ngroupTypes.sqrt = function(group, options, prev) {\n // Square roots are handled in the TeXbook pg. 443, Rule 11.\n\n // First, we do the same steps as in overline to build the inner group\n // and line\n var inner = buildGroup(group.value.body,\n options.withStyle(options.style.cramp()));\n\n var ruleWidth = fontMetrics.metrics.defaultRuleThickness /\n options.style.sizeMultiplier;\n\n var line = makeSpan(\n [options.style.reset(), Style.TEXT.cls(), \"sqrt-line\"], [],\n options.getColor());\n line.height = ruleWidth;\n line.maxFontSize = 1.0;\n\n var phi = ruleWidth;\n if (options.style.id < Style.TEXT.id) {\n phi = fontMetrics.metrics.xHeight;\n }\n\n // Calculate the clearance between the body and line\n var lineClearance = ruleWidth + phi / 4;\n\n var innerHeight =\n (inner.height + inner.depth) * options.style.sizeMultiplier;\n var minDelimiterHeight = innerHeight + lineClearance + ruleWidth;\n\n // Create a \\surd delimiter of the required minimum size\n var delim = makeSpan([\"sqrt-sign\"], [\n delimiter.customSizedDelim(\"\\\\surd\", minDelimiterHeight,\n false, options, group.mode)],\n options.getColor());\n\n var delimDepth = (delim.height + delim.depth) - ruleWidth;\n\n // Adjust the clearance based on the delimiter size\n if (delimDepth > inner.height + inner.depth + lineClearance) {\n lineClearance =\n (lineClearance + delimDepth - inner.height - inner.depth) / 2;\n }\n\n // Shift the delimiter so that its top lines up with the top of the line\n var delimShift = -(inner.height + lineClearance + ruleWidth) + delim.height;\n delim.style.top = delimShift + \"em\";\n delim.height -= delimShift;\n delim.depth += delimShift;\n\n // We add a special case here, because even when `inner` is empty, we\n // still get a line. So, we use a simple heuristic to decide if we\n // should omit the body entirely. (note this doesn't work for something\n // like `\\sqrt{\\rlap{x}}`, but if someone is doing that they deserve for\n // it not to work.\n var body;\n if (inner.height === 0 && inner.depth === 0) {\n body = makeSpan();\n } else {\n body = buildCommon.makeVList([\n {type: \"elem\", elem: inner},\n {type: \"kern\", size: lineClearance},\n {type: \"elem\", elem: line},\n {type: \"kern\", size: ruleWidth},\n ], \"firstBaseline\", null, options);\n }\n\n if (!group.value.index) {\n return makeSpan([\"sqrt\", \"mord\"], [delim, body]);\n } else {\n // Handle the optional root index\n\n // The index is always in scriptscript style\n var root = buildGroup(\n group.value.index,\n options.withStyle(Style.SCRIPTSCRIPT));\n var rootWrap = makeSpan(\n [options.style.reset(), Style.SCRIPTSCRIPT.cls()],\n [root]);\n\n // Figure out the height and depth of the inner part\n var innerRootHeight = Math.max(delim.height, body.height);\n var innerRootDepth = Math.max(delim.depth, body.depth);\n\n // The amount the index is shifted by. This is taken from the TeX\n // source, in the definition of `\\r@@t`.\n var toShift = 0.6 * (innerRootHeight - innerRootDepth);\n\n // Build a VList with the superscript shifted up correctly\n var rootVList = buildCommon.makeVList(\n [{type: \"elem\", elem: rootWrap}],\n \"shift\", -toShift, options);\n // Add a class surrounding it so we can add on the appropriate\n // kerning\n var rootVListWrap = makeSpan([\"root\"], [rootVList]);\n\n return makeSpan([\"sqrt\", \"mord\"], [rootVListWrap, delim, body]);\n }\n};\n\ngroupTypes.sizing = function(group, options, prev) {\n // Handle sizing operators like \\Huge. Real TeX doesn't actually allow\n // these functions inside of math expressions, so we do some special\n // handling.\n var inner = buildExpression(group.value.value,\n options.withSize(group.value.size), prev);\n\n var span = makeSpan([\"mord\"],\n [makeSpan([\"sizing\", \"reset-\" + options.size, group.value.size,\n options.style.cls()],\n inner)]);\n\n // Calculate the correct maxFontSize manually\n var fontSize = buildCommon.sizingMultiplier[group.value.size];\n span.maxFontSize = fontSize * options.style.sizeMultiplier;\n\n return span;\n};\n\ngroupTypes.styling = function(group, options, prev) {\n // Style changes are handled in the TeXbook on pg. 442, Rule 3.\n\n // Figure out what style we're changing to.\n var style = {\n \"display\": Style.DISPLAY,\n \"text\": Style.TEXT,\n \"script\": Style.SCRIPT,\n \"scriptscript\": Style.SCRIPTSCRIPT,\n };\n\n var newStyle = style[group.value.style];\n\n // Build the inner expression in the new style.\n var inner = buildExpression(\n group.value.value, options.withStyle(newStyle), prev);\n\n return makeSpan([options.style.reset(), newStyle.cls()], inner);\n};\n\ngroupTypes.font = function(group, options, prev) {\n var font = group.value.font;\n return buildGroup(group.value.body, options.withFont(font), prev);\n};\n\ngroupTypes.delimsizing = function(group, options, prev) {\n var delim = group.value.value;\n\n if (delim === \".\") {\n // Empty delimiters still count as elements, even though they don't\n // show anything.\n return makeSpan([groupToType[group.value.delimType]]);\n }\n\n // Use delimiter.sizedDelim to generate the delimiter.\n return makeSpan(\n [groupToType[group.value.delimType]],\n [delimiter.sizedDelim(\n delim, group.value.size, options, group.mode)]);\n};\n\ngroupTypes.leftright = function(group, options, prev) {\n // Build the inner expression\n var inner = buildExpression(group.value.body, options.reset());\n\n var innerHeight = 0;\n var innerDepth = 0;\n\n // Calculate its height and depth\n for (var i = 0; i < inner.length; i++) {\n innerHeight = Math.max(inner[i].height, innerHeight);\n innerDepth = Math.max(inner[i].depth, innerDepth);\n }\n\n // The size of delimiters is the same, regardless of what style we are\n // in. Thus, to correctly calculate the size of delimiter we need around\n // a group, we scale down the inner size based on the size.\n innerHeight *= options.style.sizeMultiplier;\n innerDepth *= options.style.sizeMultiplier;\n\n var leftDelim;\n if (group.value.left === \".\") {\n // Empty delimiters in \\left and \\right make null delimiter spaces.\n leftDelim = makeNullDelimiter(options);\n } else {\n // Otherwise, use leftRightDelim to generate the correct sized\n // delimiter.\n leftDelim = delimiter.leftRightDelim(\n group.value.left, innerHeight, innerDepth, options,\n group.mode);\n }\n // Add it to the beginning of the expression\n inner.unshift(leftDelim);\n\n var rightDelim;\n // Same for the right delimiter\n if (group.value.right === \".\") {\n rightDelim = makeNullDelimiter(options);\n } else {\n rightDelim = delimiter.leftRightDelim(\n group.value.right, innerHeight, innerDepth, options,\n group.mode);\n }\n // Add it to the end of the expression.\n inner.push(rightDelim);\n\n return makeSpan(\n [\"minner\", options.style.cls()], inner, options.getColor());\n};\n\ngroupTypes.rule = function(group, options, prev) {\n // Make an empty span for the rule\n var rule = makeSpan([\"mord\", \"rule\"], [], options.getColor());\n\n // Calculate the shift, width, and height of the rule, and account for units\n var shift = 0;\n if (group.value.shift) {\n shift = group.value.shift.number;\n if (group.value.shift.unit === \"ex\") {\n shift *= fontMetrics.metrics.xHeight;\n }\n }\n\n var width = group.value.width.number;\n if (group.value.width.unit === \"ex\") {\n width *= fontMetrics.metrics.xHeight;\n }\n\n var height = group.value.height.number;\n if (group.value.height.unit === \"ex\") {\n height *= fontMetrics.metrics.xHeight;\n }\n\n // The sizes of rules are absolute, so make it larger if we are in a\n // smaller style.\n shift /= options.style.sizeMultiplier;\n width /= options.style.sizeMultiplier;\n height /= options.style.sizeMultiplier;\n\n // Style the rule to the right size\n rule.style.borderRightWidth = width + \"em\";\n rule.style.borderTopWidth = height + \"em\";\n rule.style.bottom = shift + \"em\";\n\n // Record the height and width\n rule.width = width;\n rule.height = height + shift;\n rule.depth = -shift;\n\n return rule;\n};\n\ngroupTypes.accent = function(group, options, prev) {\n // Accents are handled in the TeXbook pg. 443, rule 12.\n var base = group.value.base;\n\n var supsubGroup;\n if (group.type === \"supsub\") {\n // If our base is a character box, and we have superscripts and\n // subscripts, the supsub will defer to us. In particular, we want\n // to attach the superscripts and subscripts to the inner body (so\n // that the position of the superscripts and subscripts won't be\n // affected by the height of the accent). We accomplish this by\n // sticking the base of the accent into the base of the supsub, and\n // rendering that, while keeping track of where the accent is.\n\n // The supsub group is the group that was passed in\n var supsub = group;\n // The real accent group is the base of the supsub group\n group = supsub.value.base;\n // The character box is the base of the accent group\n base = group.value.base;\n // Stick the character box into the base of the supsub group\n supsub.value.base = base;\n\n // Rerender the supsub group with its new base, and store that\n // result.\n supsubGroup = buildGroup(\n supsub, options.reset(), prev);\n }\n\n // Build the base group\n var body = buildGroup(\n base, options.withStyle(options.style.cramp()));\n\n // Calculate the skew of the accent. This is based on the line \"If the\n // nucleus is not a single character, let s = 0; otherwise set s to the\n // kern amount for the nucleus followed by the \\skewchar of its font.\"\n // Note that our skew metrics are just the kern between each character\n // and the skewchar.\n var skew;\n if (isCharacterBox(base)) {\n // If the base is a character box, then we want the skew of the\n // innermost character. To do that, we find the innermost character:\n var baseChar = getBaseElem(base);\n // Then, we render its group to get the symbol inside it\n var baseGroup = buildGroup(\n baseChar, options.withStyle(options.style.cramp()));\n // Finally, we pull the skew off of the symbol.\n skew = baseGroup.skew;\n // Note that we now throw away baseGroup, because the layers we\n // removed with getBaseElem might contain things like \\color which\n // we can't get rid of.\n // TODO(emily): Find a better way to get the skew\n } else {\n skew = 0;\n }\n\n // calculate the amount of space between the body and the accent\n var clearance = Math.min(body.height, fontMetrics.metrics.xHeight);\n\n // Build the accent\n var accent = buildCommon.makeSymbol(\n group.value.accent, \"Main-Regular\", \"math\", options.getColor());\n // Remove the italic correction of the accent, because it only serves to\n // shift the accent over to a place we don't want.\n accent.italic = 0;\n\n // The \\vec character that the fonts use is a combining character, and\n // thus shows up much too far to the left. To account for this, we add a\n // specific class which shifts the accent over to where we want it.\n // TODO(emily): Fix this in a better way, like by changing the font\n var vecClass = group.value.accent === \"\\\\vec\" ? \"accent-vec\" : null;\n\n var accentBody = makeSpan([\"accent-body\", vecClass], [\n makeSpan([], [accent])]);\n\n accentBody = buildCommon.makeVList([\n {type: \"elem\", elem: body},\n {type: \"kern\", size: -clearance},\n {type: \"elem\", elem: accentBody},\n ], \"firstBaseline\", null, options);\n\n // Shift the accent over by the skew. Note we shift by twice the skew\n // because we are centering the accent, so by adding 2*skew to the left,\n // we shift it to the right by 1*skew.\n accentBody.children[1].style.marginLeft = 2 * skew + \"em\";\n\n var accentWrap = makeSpan([\"mord\", \"accent\"], [accentBody]);\n\n if (supsubGroup) {\n // Here, we replace the \"base\" child of the supsub with our newly\n // generated accent.\n supsubGroup.children[0] = accentWrap;\n\n // Since we don't rerun the height calculation after replacing the\n // accent, we manually recalculate height.\n supsubGroup.height = Math.max(accentWrap.height, supsubGroup.height);\n\n // Accents should always be ords, even when their innards are not.\n supsubGroup.classes[0] = \"mord\";\n\n return supsubGroup;\n } else {\n return accentWrap;\n }\n};\n\ngroupTypes.phantom = function(group, options, prev) {\n var elements = buildExpression(\n group.value.value,\n options.withPhantom(),\n prev\n );\n\n // \\phantom isn't supposed to affect the elements it contains.\n // See \"color\" for more details.\n return new buildCommon.makeFragment(elements);\n};\n\n/**\n * buildGroup is the function that takes a group and calls the correct groupType\n * function for it. It also handles the interaction of size and style changes\n * between parents and children.\n */\nvar buildGroup = function(group, options, prev) {\n if (!group) {\n return makeSpan();\n }\n\n if (groupTypes[group.type]) {\n // Call the groupTypes function\n var groupNode = groupTypes[group.type](group, options, prev);\n var multiplier;\n\n // If the style changed between the parent and the current group,\n // account for the size difference\n if (options.style !== options.parentStyle) {\n multiplier = options.style.sizeMultiplier /\n options.parentStyle.sizeMultiplier;\n\n groupNode.height *= multiplier;\n groupNode.depth *= multiplier;\n }\n\n // If the size changed between the parent and the current group, account\n // for that size difference.\n if (options.size !== options.parentSize) {\n multiplier = buildCommon.sizingMultiplier[options.size] /\n buildCommon.sizingMultiplier[options.parentSize];\n\n groupNode.height *= multiplier;\n groupNode.depth *= multiplier;\n }\n\n return groupNode;\n } else {\n throw new ParseError(\n \"Got group of unknown type: '\" + group.type + \"'\");\n }\n};\n\n/**\n * Take an entire parse tree, and build it into an appropriate set of HTML\n * nodes.\n */\nvar buildHTML = function(tree, options) {\n // buildExpression is destructive, so we need to make a clone\n // of the incoming tree so that it isn't accidentally changed\n tree = JSON.parse(JSON.stringify(tree));\n\n // Build the expression contained in the tree\n var expression = buildExpression(tree, options);\n var body = makeSpan([\"base\", options.style.cls()], expression);\n\n // Add struts, which ensure that the top of the HTML element falls at the\n // height of the expression, and the bottom of the HTML element falls at the\n // depth of the expression.\n var topStrut = makeSpan([\"strut\"]);\n var bottomStrut = makeSpan([\"strut\", \"bottom\"]);\n\n topStrut.style.height = body.height + \"em\";\n bottomStrut.style.height = (body.height + body.depth) + \"em\";\n // We'd like to use `vertical-align: top` but in IE 9 this lowers the\n // baseline of the box to the bottom of this strut (instead staying in the\n // normal place) so we use an absolute value for vertical-align instead\n bottomStrut.style.verticalAlign = -body.depth + \"em\";\n\n // Wrap the struts and body together\n var htmlNode = makeSpan([\"katex-html\"], [topStrut, bottomStrut, body]);\n\n htmlNode.setAttribute(\"aria-hidden\", \"true\");\n\n return htmlNode;\n};\n\nmodule.exports = buildHTML;\n","/**\n * This file converts a parse tree into a cooresponding MathML tree. The main\n * entry point is the `buildMathML` function, which takes a parse tree from the\n * parser.\n */\n\nvar buildCommon = require(\"./buildCommon\");\nvar fontMetrics = require(\"./fontMetrics\");\nvar mathMLTree = require(\"./mathMLTree\");\nvar ParseError = require(\"./ParseError\");\nvar symbols = require(\"./symbols\");\nvar utils = require(\"./utils\");\n\nvar makeSpan = buildCommon.makeSpan;\nvar fontMap = buildCommon.fontMap;\n\n/**\n * Takes a symbol and converts it into a MathML text node after performing\n * optional replacement from symbols.js.\n */\nvar makeText = function(text, mode) {\n if (symbols[mode][text] && symbols[mode][text].replace) {\n text = symbols[mode][text].replace;\n }\n\n return new mathMLTree.TextNode(text);\n};\n\n/**\n * Returns the math variant as a string or null if none is required.\n */\nvar getVariant = function(group, options) {\n var font = options.font;\n if (!font) {\n return null;\n }\n\n var mode = group.mode;\n if (font === \"mathit\") {\n return \"italic\";\n }\n\n var value = group.value;\n if (utils.contains([\"\\\\imath\", \"\\\\jmath\"], value)) {\n return null;\n }\n\n if (symbols[mode][value] && symbols[mode][value].replace) {\n value = symbols[mode][value].replace;\n }\n\n var fontName = fontMap[font].fontName;\n if (fontMetrics.getCharacterMetrics(value, fontName)) {\n return fontMap[options.font].variant;\n }\n\n return null;\n};\n\n/**\n * Functions for handling the different types of groups found in the parse\n * tree. Each function should take a parse group and return a MathML node.\n */\nvar groupTypes = {};\n\ngroupTypes.mathord = function(group, options) {\n var node = new mathMLTree.MathNode(\n \"mi\",\n [makeText(group.value, group.mode)]);\n\n var variant = getVariant(group, options);\n if (variant) {\n node.setAttribute(\"mathvariant\", variant);\n }\n return node;\n};\n\ngroupTypes.textord = function(group, options) {\n var text = makeText(group.value, group.mode);\n\n var variant = getVariant(group, options) || \"normal\";\n\n var node;\n if (/[0-9]/.test(group.value)) {\n // TODO(kevinb) merge adjacent nodes\n // do it as a post processing step\n node = new mathMLTree.MathNode(\"mn\", [text]);\n if (options.font) {\n node.setAttribute(\"mathvariant\", variant);\n }\n } else {\n node = new mathMLTree.MathNode(\"mi\", [text]);\n node.setAttribute(\"mathvariant\", variant);\n }\n\n return node;\n};\n\ngroupTypes.bin = function(group) {\n var node = new mathMLTree.MathNode(\n \"mo\", [makeText(group.value, group.mode)]);\n\n return node;\n};\n\ngroupTypes.rel = function(group) {\n var node = new mathMLTree.MathNode(\n \"mo\", [makeText(group.value, group.mode)]);\n\n return node;\n};\n\ngroupTypes.open = function(group) {\n var node = new mathMLTree.MathNode(\n \"mo\", [makeText(group.value, group.mode)]);\n\n return node;\n};\n\ngroupTypes.close = function(group) {\n var node = new mathMLTree.MathNode(\n \"mo\", [makeText(group.value, group.mode)]);\n\n return node;\n};\n\ngroupTypes.inner = function(group) {\n var node = new mathMLTree.MathNode(\n \"mo\", [makeText(group.value, group.mode)]);\n\n return node;\n};\n\ngroupTypes.punct = function(group) {\n var node = new mathMLTree.MathNode(\n \"mo\", [makeText(group.value, group.mode)]);\n\n node.setAttribute(\"separator\", \"true\");\n\n return node;\n};\n\ngroupTypes.ordgroup = function(group, options) {\n var inner = buildExpression(group.value, options);\n\n var node = new mathMLTree.MathNode(\"mrow\", inner);\n\n return node;\n};\n\ngroupTypes.text = function(group, options) {\n var inner = buildExpression(group.value.body, options);\n\n var node = new mathMLTree.MathNode(\"mtext\", inner);\n\n return node;\n};\n\ngroupTypes.color = function(group, options) {\n var inner = buildExpression(group.value.value, options);\n\n var node = new mathMLTree.MathNode(\"mstyle\", inner);\n\n node.setAttribute(\"mathcolor\", group.value.color);\n\n return node;\n};\n\ngroupTypes.supsub = function(group, options) {\n var children = [buildGroup(group.value.base, options)];\n\n if (group.value.sub) {\n children.push(buildGroup(group.value.sub, options));\n }\n\n if (group.value.sup) {\n children.push(buildGroup(group.value.sup, options));\n }\n\n var nodeType;\n if (!group.value.sub) {\n nodeType = \"msup\";\n } else if (!group.value.sup) {\n nodeType = \"msub\";\n } else {\n nodeType = \"msubsup\";\n }\n\n var node = new mathMLTree.MathNode(nodeType, children);\n\n return node;\n};\n\ngroupTypes.genfrac = function(group, options) {\n var node = new mathMLTree.MathNode(\n \"mfrac\",\n [buildGroup(group.value.numer, options),\n buildGroup(group.value.denom, options)]);\n\n if (!group.value.hasBarLine) {\n node.setAttribute(\"linethickness\", \"0px\");\n }\n\n if (group.value.leftDelim != null || group.value.rightDelim != null) {\n var withDelims = [];\n\n if (group.value.leftDelim != null) {\n var leftOp = new mathMLTree.MathNode(\n \"mo\", [new mathMLTree.TextNode(group.value.leftDelim)]);\n\n leftOp.setAttribute(\"fence\", \"true\");\n\n withDelims.push(leftOp);\n }\n\n withDelims.push(node);\n\n if (group.value.rightDelim != null) {\n var rightOp = new mathMLTree.MathNode(\n \"mo\", [new mathMLTree.TextNode(group.value.rightDelim)]);\n\n rightOp.setAttribute(\"fence\", \"true\");\n\n withDelims.push(rightOp);\n }\n\n var outerNode = new mathMLTree.MathNode(\"mrow\", withDelims);\n\n return outerNode;\n }\n\n return node;\n};\n\ngroupTypes.array = function(group, options) {\n return new mathMLTree.MathNode(\n \"mtable\", group.value.body.map(function(row) {\n return new mathMLTree.MathNode(\n \"mtr\", row.map(function(cell) {\n return new mathMLTree.MathNode(\n \"mtd\", [buildGroup(cell, options)]);\n }));\n }));\n};\n\ngroupTypes.sqrt = function(group, options) {\n var node;\n if (group.value.index) {\n node = new mathMLTree.MathNode(\n \"mroot\", [\n buildGroup(group.value.body, options),\n buildGroup(group.value.index, options),\n ]);\n } else {\n node = new mathMLTree.MathNode(\n \"msqrt\", [buildGroup(group.value.body, options)]);\n }\n\n return node;\n};\n\ngroupTypes.leftright = function(group, options) {\n var inner = buildExpression(group.value.body, options);\n\n if (group.value.left !== \".\") {\n var leftNode = new mathMLTree.MathNode(\n \"mo\", [makeText(group.value.left, group.mode)]);\n\n leftNode.setAttribute(\"fence\", \"true\");\n\n inner.unshift(leftNode);\n }\n\n if (group.value.right !== \".\") {\n var rightNode = new mathMLTree.MathNode(\n \"mo\", [makeText(group.value.right, group.mode)]);\n\n rightNode.setAttribute(\"fence\", \"true\");\n\n inner.push(rightNode);\n }\n\n var outerNode = new mathMLTree.MathNode(\"mrow\", inner);\n\n return outerNode;\n};\n\ngroupTypes.accent = function(group, options) {\n var accentNode = new mathMLTree.MathNode(\n \"mo\", [makeText(group.value.accent, group.mode)]);\n\n var node = new mathMLTree.MathNode(\n \"mover\",\n [buildGroup(group.value.base, options),\n accentNode]);\n\n node.setAttribute(\"accent\", \"true\");\n\n return node;\n};\n\ngroupTypes.spacing = function(group) {\n var node;\n\n if (group.value === \"\\\\ \" || group.value === \"\\\\space\" ||\n group.value === \" \" || group.value === \"~\") {\n node = new mathMLTree.MathNode(\n \"mtext\", [new mathMLTree.TextNode(\"\\u00a0\")]);\n } else {\n node = new mathMLTree.MathNode(\"mspace\");\n\n node.setAttribute(\n \"width\", buildCommon.spacingFunctions[group.value].size);\n }\n\n return node;\n};\n\ngroupTypes.op = function(group) {\n var node;\n\n // TODO(emily): handle big operators using the `largeop` attribute\n\n if (group.value.symbol) {\n // This is a symbol. Just add the symbol.\n node = new mathMLTree.MathNode(\n \"mo\", [makeText(group.value.body, group.mode)]);\n } else {\n // This is a text operator. Add all of the characters from the\n // operator's name.\n // TODO(emily): Add a space in the middle of some of these\n // operators, like \\limsup.\n node = new mathMLTree.MathNode(\n \"mi\", [new mathMLTree.TextNode(group.value.body.slice(1))]);\n }\n\n return node;\n};\n\ngroupTypes.katex = function(group) {\n var node = new mathMLTree.MathNode(\n \"mtext\", [new mathMLTree.TextNode(\"KaTeX\")]);\n\n return node;\n};\n\ngroupTypes.font = function(group, options) {\n var font = group.value.font;\n return buildGroup(group.value.body, options.withFont(font));\n};\n\ngroupTypes.delimsizing = function(group) {\n var children = [];\n\n if (group.value.value !== \".\") {\n children.push(makeText(group.value.value, group.mode));\n }\n\n var node = new mathMLTree.MathNode(\"mo\", children);\n\n if (group.value.delimType === \"open\" ||\n group.value.delimType === \"close\") {\n // Only some of the delimsizing functions act as fences, and they\n // return \"open\" or \"close\" delimTypes.\n node.setAttribute(\"fence\", \"true\");\n } else {\n // Explicitly disable fencing if it's not a fence, to override the\n // defaults.\n node.setAttribute(\"fence\", \"false\");\n }\n\n return node;\n};\n\ngroupTypes.styling = function(group, options) {\n var inner = buildExpression(group.value.value, options);\n\n var node = new mathMLTree.MathNode(\"mstyle\", inner);\n\n var styleAttributes = {\n \"display\": [\"0\", \"true\"],\n \"text\": [\"0\", \"false\"],\n \"script\": [\"1\", \"false\"],\n \"scriptscript\": [\"2\", \"false\"],\n };\n\n var attr = styleAttributes[group.value.style];\n\n node.setAttribute(\"scriptlevel\", attr[0]);\n node.setAttribute(\"displaystyle\", attr[1]);\n\n return node;\n};\n\ngroupTypes.sizing = function(group, options) {\n var inner = buildExpression(group.value.value, options);\n\n var node = new mathMLTree.MathNode(\"mstyle\", inner);\n\n // TODO(emily): This doesn't produce the correct size for nested size\n // changes, because we don't keep state of what style we're currently\n // in, so we can't reset the size to normal before changing it. Now\n // that we're passing an options parameter we should be able to fix\n // this.\n node.setAttribute(\n \"mathsize\", buildCommon.sizingMultiplier[group.value.size] + \"em\");\n\n return node;\n};\n\ngroupTypes.overline = function(group, options) {\n var operator = new mathMLTree.MathNode(\n \"mo\", [new mathMLTree.TextNode(\"\\u203e\")]);\n operator.setAttribute(\"stretchy\", \"true\");\n\n var node = new mathMLTree.MathNode(\n \"mover\",\n [buildGroup(group.value.body, options),\n operator]);\n node.setAttribute(\"accent\", \"true\");\n\n return node;\n};\n\ngroupTypes.underline = function(group, options) {\n var operator = new mathMLTree.MathNode(\n \"mo\", [new mathMLTree.TextNode(\"\\u203e\")]);\n operator.setAttribute(\"stretchy\", \"true\");\n\n var node = new mathMLTree.MathNode(\n \"munder\",\n [buildGroup(group.value.body, options),\n operator]);\n node.setAttribute(\"accentunder\", \"true\");\n\n return node;\n};\n\ngroupTypes.rule = function(group) {\n // TODO(emily): Figure out if there's an actual way to draw black boxes\n // in MathML.\n var node = new mathMLTree.MathNode(\"mrow\");\n\n return node;\n};\n\ngroupTypes.llap = function(group, options) {\n var node = new mathMLTree.MathNode(\n \"mpadded\", [buildGroup(group.value.body, options)]);\n\n node.setAttribute(\"lspace\", \"-1width\");\n node.setAttribute(\"width\", \"0px\");\n\n return node;\n};\n\ngroupTypes.rlap = function(group, options) {\n var node = new mathMLTree.MathNode(\n \"mpadded\", [buildGroup(group.value.body, options)]);\n\n node.setAttribute(\"width\", \"0px\");\n\n return node;\n};\n\ngroupTypes.phantom = function(group, options, prev) {\n var inner = buildExpression(group.value.value, options);\n return new mathMLTree.MathNode(\"mphantom\", inner);\n};\n\n/**\n * Takes a list of nodes, builds them, and returns a list of the generated\n * MathML nodes. A little simpler than the HTML version because we don't do any\n * previous-node handling.\n */\nvar buildExpression = function(expression, options) {\n var groups = [];\n for (var i = 0; i < expression.length; i++) {\n var group = expression[i];\n groups.push(buildGroup(group, options));\n }\n return groups;\n};\n\n/**\n * Takes a group from the parser and calls the appropriate groupTypes function\n * on it to produce a MathML node.\n */\nvar buildGroup = function(group, options) {\n if (!group) {\n return new mathMLTree.MathNode(\"mrow\");\n }\n\n if (groupTypes[group.type]) {\n // Call the groupTypes function\n return groupTypes[group.type](group, options);\n } else {\n throw new ParseError(\n \"Got group of unknown type: '\" + group.type + \"'\");\n }\n};\n\n/**\n * Takes a full parse tree and settings and builds a MathML representation of\n * it. In particular, we put the elements from building the parse tree into a\n * tag so we can also include that TeX source as an annotation.\n *\n * Note that we actually return a domTree element with a `` inside it so\n * we can do appropriate styling.\n */\nvar buildMathML = function(tree, texExpression, options) {\n var expression = buildExpression(tree, options);\n\n // Wrap up the expression in an mrow so it is presented in the semantics\n // tag correctly.\n var wrapper = new mathMLTree.MathNode(\"mrow\", expression);\n\n // Build a TeX annotation of the source\n var annotation = new mathMLTree.MathNode(\n \"annotation\", [new mathMLTree.TextNode(texExpression)]);\n\n annotation.setAttribute(\"encoding\", \"application/x-tex\");\n\n var semantics = new mathMLTree.MathNode(\n \"semantics\", [wrapper, annotation]);\n\n var math = new mathMLTree.MathNode(\"math\", [semantics]);\n\n // You can't style nodes, so we wrap the node in a span.\n return makeSpan([\"katex-mathml\"], [math]);\n};\n\nmodule.exports = buildMathML;\n","var buildHTML = require(\"./buildHTML\");\nvar buildMathML = require(\"./buildMathML\");\nvar buildCommon = require(\"./buildCommon\");\nvar Options = require(\"./Options\");\nvar Settings = require(\"./Settings\");\nvar Style = require(\"./Style\");\n\nvar makeSpan = buildCommon.makeSpan;\n\nvar buildTree = function(tree, expression, settings) {\n settings = settings || new Settings({});\n\n var startStyle = Style.TEXT;\n if (settings.displayMode) {\n startStyle = Style.DISPLAY;\n }\n\n // Setup the default options\n var options = new Options({\n style: startStyle,\n size: \"size5\",\n });\n\n // `buildHTML` sometimes messes with the parse tree (like turning bins ->\n // ords), so we build the MathML version first.\n var mathMLNode = buildMathML(tree, expression, options);\n var htmlNode = buildHTML(tree, options);\n\n var katexNode = makeSpan([\"katex\"], [\n mathMLNode, htmlNode,\n ]);\n\n if (settings.displayMode) {\n return makeSpan([\"katex-display\"], [katexNode]);\n } else {\n return katexNode;\n }\n};\n\nmodule.exports = buildTree;\n","/**\n * This file deals with creating delimiters of various sizes. The TeXbook\n * discusses these routines on page 441-442, in the \"Another subroutine sets box\n * x to a specified variable delimiter\" paragraph.\n *\n * There are three main routines here. `makeSmallDelim` makes a delimiter in the\n * normal font, but in either text, script, or scriptscript style.\n * `makeLargeDelim` makes a delimiter in textstyle, but in one of the Size1,\n * Size2, Size3, or Size4 fonts. `makeStackedDelim` makes a delimiter out of\n * smaller pieces that are stacked on top of one another.\n *\n * The functions take a parameter `center`, which determines if the delimiter\n * should be centered around the axis.\n *\n * Then, there are three exposed functions. `sizedDelim` makes a delimiter in\n * one of the given sizes. This is used for things like `\\bigl`.\n * `customSizedDelim` makes a delimiter with a given total height+depth. It is\n * called in places like `\\sqrt`. `leftRightDelim` makes an appropriate\n * delimiter which surrounds an expression of a given height an depth. It is\n * used in `\\left` and `\\right`.\n */\n\nvar ParseError = require(\"./ParseError\");\nvar Style = require(\"./Style\");\n\nvar buildCommon = require(\"./buildCommon\");\nvar fontMetrics = require(\"./fontMetrics\");\nvar symbols = require(\"./symbols\");\nvar utils = require(\"./utils\");\n\nvar makeSpan = buildCommon.makeSpan;\n\n/**\n * Get the metrics for a given symbol and font, after transformation (i.e.\n * after following replacement from symbols.js)\n */\nvar getMetrics = function(symbol, font) {\n if (symbols.math[symbol] && symbols.math[symbol].replace) {\n return fontMetrics.getCharacterMetrics(\n symbols.math[symbol].replace, font);\n } else {\n return fontMetrics.getCharacterMetrics(\n symbol, font);\n }\n};\n\n/**\n * Builds a symbol in the given font size (note size is an integer)\n */\nvar mathrmSize = function(value, size, mode) {\n return buildCommon.makeSymbol(value, \"Size\" + size + \"-Regular\", mode);\n};\n\n/**\n * Puts a delimiter span in a given style, and adds appropriate height, depth,\n * and maxFontSizes.\n */\nvar styleWrap = function(delim, toStyle, options) {\n var span = makeSpan(\n [\"style-wrap\", options.style.reset(), toStyle.cls()], [delim]);\n\n var multiplier = toStyle.sizeMultiplier / options.style.sizeMultiplier;\n\n span.height *= multiplier;\n span.depth *= multiplier;\n span.maxFontSize = toStyle.sizeMultiplier;\n\n return span;\n};\n\n/**\n * Makes a small delimiter. This is a delimiter that comes in the Main-Regular\n * font, but is restyled to either be in textstyle, scriptstyle, or\n * scriptscriptstyle.\n */\nvar makeSmallDelim = function(delim, style, center, options, mode) {\n var text = buildCommon.makeSymbol(delim, \"Main-Regular\", mode);\n\n var span = styleWrap(text, style, options);\n\n if (center) {\n var shift =\n (1 - options.style.sizeMultiplier / style.sizeMultiplier) *\n fontMetrics.metrics.axisHeight;\n\n span.style.top = shift + \"em\";\n span.height -= shift;\n span.depth += shift;\n }\n\n return span;\n};\n\n/**\n * Makes a large delimiter. This is a delimiter that comes in the Size1, Size2,\n * Size3, or Size4 fonts. It is always rendered in textstyle.\n */\nvar makeLargeDelim = function(delim, size, center, options, mode) {\n var inner = mathrmSize(delim, size, mode);\n\n var span = styleWrap(\n makeSpan([\"delimsizing\", \"size\" + size],\n [inner], options.getColor()),\n Style.TEXT, options);\n\n if (center) {\n var shift = (1 - options.style.sizeMultiplier) *\n fontMetrics.metrics.axisHeight;\n\n span.style.top = shift + \"em\";\n span.height -= shift;\n span.depth += shift;\n }\n\n return span;\n};\n\n/**\n * Make an inner span with the given offset and in the given font. This is used\n * in `makeStackedDelim` to make the stacking pieces for the delimiter.\n */\nvar makeInner = function(symbol, font, mode) {\n var sizeClass;\n // Apply the correct CSS class to choose the right font.\n if (font === \"Size1-Regular\") {\n sizeClass = \"delim-size1\";\n } else if (font === \"Size4-Regular\") {\n sizeClass = \"delim-size4\";\n }\n\n var inner = makeSpan(\n [\"delimsizinginner\", sizeClass],\n [makeSpan([], [buildCommon.makeSymbol(symbol, font, mode)])]);\n\n // Since this will be passed into `makeVList` in the end, wrap the element\n // in the appropriate tag that VList uses.\n return {type: \"elem\", elem: inner};\n};\n\n/**\n * Make a stacked delimiter out of a given delimiter, with the total height at\n * least `heightTotal`. This routine is mentioned on page 442 of the TeXbook.\n */\nvar makeStackedDelim = function(delim, heightTotal, center, options, mode) {\n // There are four parts, the top, an optional middle, a repeated part, and a\n // bottom.\n var top;\n var middle;\n var repeat;\n var bottom;\n top = repeat = bottom = delim;\n middle = null;\n // Also keep track of what font the delimiters are in\n var font = \"Size1-Regular\";\n\n // We set the parts and font based on the symbol. Note that we use\n // '\\u23d0' instead of '|' and '\\u2016' instead of '\\\\|' for the\n // repeats of the arrows\n if (delim === \"\\\\uparrow\") {\n repeat = bottom = \"\\u23d0\";\n } else if (delim === \"\\\\Uparrow\") {\n repeat = bottom = \"\\u2016\";\n } else if (delim === \"\\\\downarrow\") {\n top = repeat = \"\\u23d0\";\n } else if (delim === \"\\\\Downarrow\") {\n top = repeat = \"\\u2016\";\n } else if (delim === \"\\\\updownarrow\") {\n top = \"\\\\uparrow\";\n repeat = \"\\u23d0\";\n bottom = \"\\\\downarrow\";\n } else if (delim === \"\\\\Updownarrow\") {\n top = \"\\\\Uparrow\";\n repeat = \"\\u2016\";\n bottom = \"\\\\Downarrow\";\n } else if (delim === \"[\" || delim === \"\\\\lbrack\") {\n top = \"\\u23a1\";\n repeat = \"\\u23a2\";\n bottom = \"\\u23a3\";\n font = \"Size4-Regular\";\n } else if (delim === \"]\" || delim === \"\\\\rbrack\") {\n top = \"\\u23a4\";\n repeat = \"\\u23a5\";\n bottom = \"\\u23a6\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\lfloor\") {\n repeat = top = \"\\u23a2\";\n bottom = \"\\u23a3\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\lceil\") {\n top = \"\\u23a1\";\n repeat = bottom = \"\\u23a2\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\rfloor\") {\n repeat = top = \"\\u23a5\";\n bottom = \"\\u23a6\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\rceil\") {\n top = \"\\u23a4\";\n repeat = bottom = \"\\u23a5\";\n font = \"Size4-Regular\";\n } else if (delim === \"(\") {\n top = \"\\u239b\";\n repeat = \"\\u239c\";\n bottom = \"\\u239d\";\n font = \"Size4-Regular\";\n } else if (delim === \")\") {\n top = \"\\u239e\";\n repeat = \"\\u239f\";\n bottom = \"\\u23a0\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\{\" || delim === \"\\\\lbrace\") {\n top = \"\\u23a7\";\n middle = \"\\u23a8\";\n bottom = \"\\u23a9\";\n repeat = \"\\u23aa\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\}\" || delim === \"\\\\rbrace\") {\n top = \"\\u23ab\";\n middle = \"\\u23ac\";\n bottom = \"\\u23ad\";\n repeat = \"\\u23aa\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\lgroup\") {\n top = \"\\u23a7\";\n bottom = \"\\u23a9\";\n repeat = \"\\u23aa\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\rgroup\") {\n top = \"\\u23ab\";\n bottom = \"\\u23ad\";\n repeat = \"\\u23aa\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\lmoustache\") {\n top = \"\\u23a7\";\n bottom = \"\\u23ad\";\n repeat = \"\\u23aa\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\rmoustache\") {\n top = \"\\u23ab\";\n bottom = \"\\u23a9\";\n repeat = \"\\u23aa\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\surd\") {\n top = \"\\ue001\";\n bottom = \"\\u23b7\";\n repeat = \"\\ue000\";\n font = \"Size4-Regular\";\n }\n\n // Get the metrics of the four sections\n var topMetrics = getMetrics(top, font);\n var topHeightTotal = topMetrics.height + topMetrics.depth;\n var repeatMetrics = getMetrics(repeat, font);\n var repeatHeightTotal = repeatMetrics.height + repeatMetrics.depth;\n var bottomMetrics = getMetrics(bottom, font);\n var bottomHeightTotal = bottomMetrics.height + bottomMetrics.depth;\n var middleHeightTotal = 0;\n var middleFactor = 1;\n if (middle !== null) {\n var middleMetrics = getMetrics(middle, font);\n middleHeightTotal = middleMetrics.height + middleMetrics.depth;\n middleFactor = 2; // repeat symmetrically above and below middle\n }\n\n // Calcuate the minimal height that the delimiter can have.\n // It is at least the size of the top, bottom, and optional middle combined.\n var minHeight = topHeightTotal + bottomHeightTotal + middleHeightTotal;\n\n // Compute the number of copies of the repeat symbol we will need\n var repeatCount = Math.ceil(\n (heightTotal - minHeight) / (middleFactor * repeatHeightTotal));\n\n // Compute the total height of the delimiter including all the symbols\n var realHeightTotal =\n minHeight + repeatCount * middleFactor * repeatHeightTotal;\n\n // The center of the delimiter is placed at the center of the axis. Note\n // that in this context, \"center\" means that the delimiter should be\n // centered around the axis in the current style, while normally it is\n // centered around the axis in textstyle.\n var axisHeight = fontMetrics.metrics.axisHeight;\n if (center) {\n axisHeight *= options.style.sizeMultiplier;\n }\n // Calculate the depth\n var depth = realHeightTotal / 2 - axisHeight;\n\n // Now, we start building the pieces that will go into the vlist\n\n // Keep a list of the inner pieces\n var inners = [];\n\n // Add the bottom symbol\n inners.push(makeInner(bottom, font, mode));\n\n var i;\n if (middle === null) {\n // Add that many symbols\n for (i = 0; i < repeatCount; i++) {\n inners.push(makeInner(repeat, font, mode));\n }\n } else {\n // When there is a middle bit, we need the middle part and two repeated\n // sections\n for (i = 0; i < repeatCount; i++) {\n inners.push(makeInner(repeat, font, mode));\n }\n inners.push(makeInner(middle, font, mode));\n for (i = 0; i < repeatCount; i++) {\n inners.push(makeInner(repeat, font, mode));\n }\n }\n\n // Add the top symbol\n inners.push(makeInner(top, font, mode));\n\n // Finally, build the vlist\n var inner = buildCommon.makeVList(inners, \"bottom\", depth, options);\n\n return styleWrap(\n makeSpan([\"delimsizing\", \"mult\"], [inner], options.getColor()),\n Style.TEXT, options);\n};\n\n// There are three kinds of delimiters, delimiters that stack when they become\n// too large\nvar stackLargeDelimiters = [\n \"(\", \")\", \"[\", \"\\\\lbrack\", \"]\", \"\\\\rbrack\",\n \"\\\\{\", \"\\\\lbrace\", \"\\\\}\", \"\\\\rbrace\",\n \"\\\\lfloor\", \"\\\\rfloor\", \"\\\\lceil\", \"\\\\rceil\",\n \"\\\\surd\",\n];\n\n// delimiters that always stack\nvar stackAlwaysDelimiters = [\n \"\\\\uparrow\", \"\\\\downarrow\", \"\\\\updownarrow\",\n \"\\\\Uparrow\", \"\\\\Downarrow\", \"\\\\Updownarrow\",\n \"|\", \"\\\\|\", \"\\\\vert\", \"\\\\Vert\",\n \"\\\\lvert\", \"\\\\rvert\", \"\\\\lVert\", \"\\\\rVert\",\n \"\\\\lgroup\", \"\\\\rgroup\", \"\\\\lmoustache\", \"\\\\rmoustache\",\n];\n\n// and delimiters that never stack\nvar stackNeverDelimiters = [\n \"<\", \">\", \"\\\\langle\", \"\\\\rangle\", \"/\", \"\\\\backslash\", \"\\\\lt\", \"\\\\gt\",\n];\n\n// Metrics of the different sizes. Found by looking at TeX's output of\n// $\\bigl| // \\Bigl| \\biggl| \\Biggl| \\showlists$\n// Used to create stacked delimiters of appropriate sizes in makeSizedDelim.\nvar sizeToMaxHeight = [0, 1.2, 1.8, 2.4, 3.0];\n\n/**\n * Used to create a delimiter of a specific size, where `size` is 1, 2, 3, or 4.\n */\nvar makeSizedDelim = function(delim, size, options, mode) {\n // < and > turn into \\langle and \\rangle in delimiters\n if (delim === \"<\" || delim === \"\\\\lt\") {\n delim = \"\\\\langle\";\n } else if (delim === \">\" || delim === \"\\\\gt\") {\n delim = \"\\\\rangle\";\n }\n\n // Sized delimiters are never centered.\n if (utils.contains(stackLargeDelimiters, delim) ||\n utils.contains(stackNeverDelimiters, delim)) {\n return makeLargeDelim(delim, size, false, options, mode);\n } else if (utils.contains(stackAlwaysDelimiters, delim)) {\n return makeStackedDelim(\n delim, sizeToMaxHeight[size], false, options, mode);\n } else {\n throw new ParseError(\"Illegal delimiter: '\" + delim + \"'\");\n }\n};\n\n/**\n * There are three different sequences of delimiter sizes that the delimiters\n * follow depending on the kind of delimiter. This is used when creating custom\n * sized delimiters to decide whether to create a small, large, or stacked\n * delimiter.\n *\n * In real TeX, these sequences aren't explicitly defined, but are instead\n * defined inside the font metrics. Since there are only three sequences that\n * are possible for the delimiters that TeX defines, it is easier to just encode\n * them explicitly here.\n */\n\n// Delimiters that never stack try small delimiters and large delimiters only\nvar stackNeverDelimiterSequence = [\n {type: \"small\", style: Style.SCRIPTSCRIPT},\n {type: \"small\", style: Style.SCRIPT},\n {type: \"small\", style: Style.TEXT},\n {type: \"large\", size: 1},\n {type: \"large\", size: 2},\n {type: \"large\", size: 3},\n {type: \"large\", size: 4},\n];\n\n// Delimiters that always stack try the small delimiters first, then stack\nvar stackAlwaysDelimiterSequence = [\n {type: \"small\", style: Style.SCRIPTSCRIPT},\n {type: \"small\", style: Style.SCRIPT},\n {type: \"small\", style: Style.TEXT},\n {type: \"stack\"},\n];\n\n// Delimiters that stack when large try the small and then large delimiters, and\n// stack afterwards\nvar stackLargeDelimiterSequence = [\n {type: \"small\", style: Style.SCRIPTSCRIPT},\n {type: \"small\", style: Style.SCRIPT},\n {type: \"small\", style: Style.TEXT},\n {type: \"large\", size: 1},\n {type: \"large\", size: 2},\n {type: \"large\", size: 3},\n {type: \"large\", size: 4},\n {type: \"stack\"},\n];\n\n/**\n * Get the font used in a delimiter based on what kind of delimiter it is.\n */\nvar delimTypeToFont = function(type) {\n if (type.type === \"small\") {\n return \"Main-Regular\";\n } else if (type.type === \"large\") {\n return \"Size\" + type.size + \"-Regular\";\n } else if (type.type === \"stack\") {\n return \"Size4-Regular\";\n }\n};\n\n/**\n * Traverse a sequence of types of delimiters to decide what kind of delimiter\n * should be used to create a delimiter of the given height+depth.\n */\nvar traverseSequence = function(delim, height, sequence, options) {\n // Here, we choose the index we should start at in the sequences. In smaller\n // sizes (which correspond to larger numbers in style.size) we start earlier\n // in the sequence. Thus, scriptscript starts at index 3-3=0, script starts\n // at index 3-2=1, text starts at 3-1=2, and display starts at min(2,3-0)=2\n var start = Math.min(2, 3 - options.style.size);\n for (var i = start; i < sequence.length; i++) {\n if (sequence[i].type === \"stack\") {\n // This is always the last delimiter, so we just break the loop now.\n break;\n }\n\n var metrics = getMetrics(delim, delimTypeToFont(sequence[i]));\n var heightDepth = metrics.height + metrics.depth;\n\n // Small delimiters are scaled down versions of the same font, so we\n // account for the style change size.\n\n if (sequence[i].type === \"small\") {\n heightDepth *= sequence[i].style.sizeMultiplier;\n }\n\n // Check if the delimiter at this size works for the given height.\n if (heightDepth > height) {\n return sequence[i];\n }\n }\n\n // If we reached the end of the sequence, return the last sequence element.\n return sequence[sequence.length - 1];\n};\n\n/**\n * Make a delimiter of a given height+depth, with optional centering. Here, we\n * traverse the sequences, and create a delimiter that the sequence tells us to.\n */\nvar makeCustomSizedDelim = function(delim, height, center, options, mode) {\n if (delim === \"<\" || delim === \"\\\\lt\") {\n delim = \"\\\\langle\";\n } else if (delim === \">\" || delim === \"\\\\gt\") {\n delim = \"\\\\rangle\";\n }\n\n // Decide what sequence to use\n var sequence;\n if (utils.contains(stackNeverDelimiters, delim)) {\n sequence = stackNeverDelimiterSequence;\n } else if (utils.contains(stackLargeDelimiters, delim)) {\n sequence = stackLargeDelimiterSequence;\n } else {\n sequence = stackAlwaysDelimiterSequence;\n }\n\n // Look through the sequence\n var delimType = traverseSequence(delim, height, sequence, options);\n\n // Depending on the sequence element we decided on, call the appropriate\n // function.\n if (delimType.type === \"small\") {\n return makeSmallDelim(delim, delimType.style, center, options, mode);\n } else if (delimType.type === \"large\") {\n return makeLargeDelim(delim, delimType.size, center, options, mode);\n } else if (delimType.type === \"stack\") {\n return makeStackedDelim(delim, height, center, options, mode);\n }\n};\n\n/**\n * Make a delimiter for use with `\\left` and `\\right`, given a height and depth\n * of an expression that the delimiters surround.\n */\nvar makeLeftRightDelim = function(delim, height, depth, options, mode) {\n // We always center \\left/\\right delimiters, so the axis is always shifted\n var axisHeight =\n fontMetrics.metrics.axisHeight * options.style.sizeMultiplier;\n\n // Taken from TeX source, tex.web, function make_left_right\n var delimiterFactor = 901;\n var delimiterExtend = 5.0 / fontMetrics.metrics.ptPerEm;\n\n var maxDistFromAxis = Math.max(\n height - axisHeight, depth + axisHeight);\n\n var totalHeight = Math.max(\n // In real TeX, calculations are done using integral values which are\n // 65536 per pt, or 655360 per em. So, the division here truncates in\n // TeX but doesn't here, producing different results. If we wanted to\n // exactly match TeX's calculation, we could do\n // Math.floor(655360 * maxDistFromAxis / 500) *\n // delimiterFactor / 655360\n // (To see the difference, compare\n // x^{x^{\\left(\\rule{0.1em}{0.68em}\\right)}}\n // in TeX and KaTeX)\n maxDistFromAxis / 500 * delimiterFactor,\n 2 * maxDistFromAxis - delimiterExtend);\n\n // Finally, we defer to `makeCustomSizedDelim` with our calculated total\n // height\n return makeCustomSizedDelim(delim, totalHeight, true, options, mode);\n};\n\nmodule.exports = {\n sizedDelim: makeSizedDelim,\n customSizedDelim: makeCustomSizedDelim,\n leftRightDelim: makeLeftRightDelim,\n};\n","/**\n * These objects store the data about the DOM nodes we create, as well as some\n * extra data. They can then be transformed into real DOM nodes with the\n * `toNode` function or HTML markup using `toMarkup`. They are useful for both\n * storing extra properties on the nodes, as well as providing a way to easily\n * work with the DOM.\n *\n * Similar functions for working with MathML nodes exist in mathMLTree.js.\n */\n\nvar utils = require(\"./utils\");\n\n/**\n * Create an HTML className based on a list of classes. In addition to joining\n * with spaces, we also remove null or empty classes.\n */\nvar createClass = function(classes) {\n classes = classes.slice();\n for (var i = classes.length - 1; i >= 0; i--) {\n if (!classes[i]) {\n classes.splice(i, 1);\n }\n }\n\n return classes.join(\" \");\n};\n\n/**\n * This node represents a span node, with a className, a list of children, and\n * an inline style. It also contains information about its height, depth, and\n * maxFontSize.\n */\nfunction span(classes, children, height, depth, maxFontSize, style) {\n this.classes = classes || [];\n this.children = children || [];\n this.height = height || 0;\n this.depth = depth || 0;\n this.maxFontSize = maxFontSize || 0;\n this.style = style || {};\n this.attributes = {};\n}\n\n/**\n * Sets an arbitrary attribute on the span. Warning: use this wisely. Not all\n * browsers support attributes the same, and having too many custom attributes\n * is probably bad.\n */\nspan.prototype.setAttribute = function(attribute, value) {\n this.attributes[attribute] = value;\n};\n\n/**\n * Convert the span into an HTML node\n */\nspan.prototype.toNode = function() {\n var span = document.createElement(\"span\");\n\n // Apply the class\n span.className = createClass(this.classes);\n\n // Apply inline styles\n for (var style in this.style) {\n if (Object.prototype.hasOwnProperty.call(this.style, style)) {\n span.style[style] = this.style[style];\n }\n }\n\n // Apply attributes\n for (var attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n span.setAttribute(attr, this.attributes[attr]);\n }\n }\n\n // Append the children, also as HTML nodes\n for (var i = 0; i < this.children.length; i++) {\n span.appendChild(this.children[i].toNode());\n }\n\n return span;\n};\n\n/**\n * Convert the span into an HTML markup string\n */\nspan.prototype.toMarkup = function() {\n var markup = \"\";\n\n // Add the markup of the children, also as markup\n for (var i = 0; i < this.children.length; i++) {\n markup += this.children[i].toMarkup();\n }\n\n markup += \"\";\n\n return markup;\n};\n\n/**\n * This node represents a document fragment, which contains elements, but when\n * placed into the DOM doesn't have any representation itself. Thus, it only\n * contains children and doesn't have any HTML properties. It also keeps track\n * of a height, depth, and maxFontSize.\n */\nfunction documentFragment(children, height, depth, maxFontSize) {\n this.children = children || [];\n this.height = height || 0;\n this.depth = depth || 0;\n this.maxFontSize = maxFontSize || 0;\n}\n\n/**\n * Convert the fragment into a node\n */\ndocumentFragment.prototype.toNode = function() {\n // Create a fragment\n var frag = document.createDocumentFragment();\n\n // Append the children\n for (var i = 0; i < this.children.length; i++) {\n frag.appendChild(this.children[i].toNode());\n }\n\n return frag;\n};\n\n/**\n * Convert the fragment into HTML markup\n */\ndocumentFragment.prototype.toMarkup = function() {\n var markup = \"\";\n\n // Simply concatenate the markup for the children together\n for (var i = 0; i < this.children.length; i++) {\n markup += this.children[i].toMarkup();\n }\n\n return markup;\n};\n\n/**\n * A symbol node contains information about a single symbol. It either renders\n * to a single text node, or a span with a single text node in it, depending on\n * whether it has CSS classes, styles, or needs italic correction.\n */\nfunction symbolNode(value, height, depth, italic, skew, classes, style) {\n this.value = value || \"\";\n this.height = height || 0;\n this.depth = depth || 0;\n this.italic = italic || 0;\n this.skew = skew || 0;\n this.classes = classes || [];\n this.style = style || {};\n this.maxFontSize = 0;\n}\n\n/**\n * Creates a text node or span from a symbol node. Note that a span is only\n * created if it is needed.\n */\nsymbolNode.prototype.toNode = function() {\n var node = document.createTextNode(this.value);\n var span = null;\n\n if (this.italic > 0) {\n span = document.createElement(\"span\");\n span.style.marginRight = this.italic + \"em\";\n }\n\n if (this.classes.length > 0) {\n span = span || document.createElement(\"span\");\n span.className = createClass(this.classes);\n }\n\n for (var style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n span = span || document.createElement(\"span\");\n span.style[style] = this.style[style];\n }\n }\n\n if (span) {\n span.appendChild(node);\n return span;\n } else {\n return node;\n }\n};\n\n/**\n * Creates markup for a symbol node.\n */\nsymbolNode.prototype.toMarkup = function() {\n // TODO(alpert): More duplication than I'd like from\n // span.prototype.toMarkup and symbolNode.prototype.toNode...\n var needsSpan = false;\n\n var markup = \" 0) {\n styles += \"margin-right:\" + this.italic + \"em;\";\n }\n for (var style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n styles += utils.hyphenate(style) + \":\" + this.style[style] + \";\";\n }\n }\n\n if (styles) {\n needsSpan = true;\n markup += \" style=\\\"\" + utils.escape(styles) + \"\\\"\";\n }\n\n var escaped = utils.escape(this.value);\n if (needsSpan) {\n markup += \">\";\n markup += escaped;\n markup += \"\";\n return markup;\n } else {\n return escaped;\n }\n};\n\nmodule.exports = {\n span: span,\n documentFragment: documentFragment,\n symbolNode: symbolNode,\n};\n","/* eslint no-constant-condition:0 */\nvar fontMetrics = require(\"./fontMetrics\");\nvar parseData = require(\"./parseData\");\nvar ParseError = require(\"./ParseError\");\n\nvar ParseNode = parseData.ParseNode;\n\n/**\n * Parse the body of the environment, with rows delimited by \\\\ and\n * columns delimited by &, and create a nested list in row-major order\n * with one group per cell.\n */\nfunction parseArray(parser, result) {\n var row = [];\n var body = [row];\n var rowGaps = [];\n while (true) {\n var cell = parser.parseExpression(false, null);\n row.push(new ParseNode(\"ordgroup\", cell, parser.mode));\n var next = parser.nextToken.text;\n if (next === \"&\") {\n parser.consume();\n } else if (next === \"\\\\end\") {\n break;\n } else if (next === \"\\\\\\\\\" || next === \"\\\\cr\") {\n var cr = parser.parseFunction();\n rowGaps.push(cr.value.size);\n row = [];\n body.push(row);\n } else {\n // TODO: Clean up the following hack once #385 got merged\n var pos = Math.min(parser.pos + 1, parser.lexer._input.length);\n throw new ParseError(\"Expected & or \\\\\\\\ or \\\\end\",\n parser.lexer, pos);\n }\n }\n result.body = body;\n result.rowGaps = rowGaps;\n return new ParseNode(result.type, result, parser.mode);\n}\n\n/*\n * An environment definition is very similar to a function definition:\n * it is declared with a name or a list of names, a set of properties\n * and a handler containing the actual implementation.\n *\n * The properties include:\n * - numArgs: The number of arguments after the \\begin{name} function.\n * - argTypes: (optional) Just like for a function\n * - allowedInText: (optional) Whether or not the environment is allowed inside\n * text mode (default false) (not enforced yet)\n * - numOptionalArgs: (optional) Just like for a function\n * A bare number instead of that object indicates the numArgs value.\n *\n * The handler function will receive two arguments\n * - context: information and references provided by the parser\n * - args: an array of arguments passed to \\begin{name}\n * The context contains the following properties:\n * - envName: the name of the environment, one of the listed names.\n * - parser: the parser object\n * - lexer: the lexer object\n * - positions: the positions associated with these arguments from args.\n * The handler must return a ParseResult.\n */\n\nfunction defineEnvironment(names, props, handler) {\n if (typeof names === \"string\") {\n names = [names];\n }\n if (typeof props === \"number\") {\n props = { numArgs: props };\n }\n // Set default values of environments\n var data = {\n numArgs: props.numArgs || 0,\n argTypes: props.argTypes,\n greediness: 1,\n allowedInText: !!props.allowedInText,\n numOptionalArgs: props.numOptionalArgs || 0,\n handler: handler,\n };\n for (var i = 0; i < names.length; ++i) {\n module.exports[names[i]] = data;\n }\n}\n\n// Arrays are part of LaTeX, defined in lttab.dtx so its documentation\n// is part of the source2e.pdf file of LaTeX2e source documentation.\ndefineEnvironment(\"array\", {\n numArgs: 1,\n}, function(context, args) {\n var colalign = args[0];\n colalign = colalign.value.map ? colalign.value : [colalign];\n var cols = colalign.map(function(node) {\n var ca = node.value;\n if (\"lcr\".indexOf(ca) !== -1) {\n return {\n type: \"align\",\n align: ca,\n };\n } else if (ca === \"|\") {\n return {\n type: \"separator\",\n separator: \"|\",\n };\n }\n throw new ParseError(\n \"Unknown column alignment: \" + node.value,\n context.lexer, context.positions[1]);\n });\n var res = {\n type: \"array\",\n cols: cols,\n hskipBeforeAndAfter: true, // \\@preamble in lttab.dtx\n };\n res = parseArray(context.parser, res);\n return res;\n});\n\n// The matrix environments of amsmath builds on the array environment\n// of LaTeX, which is discussed above.\ndefineEnvironment([\n \"matrix\",\n \"pmatrix\",\n \"bmatrix\",\n \"Bmatrix\",\n \"vmatrix\",\n \"Vmatrix\",\n], {\n}, function(context) {\n var delimiters = {\n \"matrix\": null,\n \"pmatrix\": [\"(\", \")\"],\n \"bmatrix\": [\"[\", \"]\"],\n \"Bmatrix\": [\"\\\\{\", \"\\\\}\"],\n \"vmatrix\": [\"|\", \"|\"],\n \"Vmatrix\": [\"\\\\Vert\", \"\\\\Vert\"],\n }[context.envName];\n var res = {\n type: \"array\",\n hskipBeforeAndAfter: false, // \\hskip -\\arraycolsep in amsmath\n };\n res = parseArray(context.parser, res);\n if (delimiters) {\n res = new ParseNode(\"leftright\", {\n body: [res],\n left: delimiters[0],\n right: delimiters[1],\n }, context.mode);\n }\n return res;\n});\n\n// A cases environment (in amsmath.sty) is almost equivalent to\n// \\def\\arraystretch{1.2}%\n// \\left\\{\\begin{array}{@{}l@{\\quad}l@{}} … \\end{array}\\right.\ndefineEnvironment(\"cases\", {\n}, function(context) {\n var res = {\n type: \"array\",\n arraystretch: 1.2,\n cols: [{\n type: \"align\",\n align: \"l\",\n pregap: 0,\n postgap: fontMetrics.metrics.quad,\n }, {\n type: \"align\",\n align: \"l\",\n pregap: 0,\n postgap: 0,\n }],\n };\n res = parseArray(context.parser, res);\n res = new ParseNode(\"leftright\", {\n body: [res],\n left: \"\\\\{\",\n right: \".\",\n }, context.mode);\n return res;\n});\n\n// An aligned environment is like the align* environment\n// except it operates within math mode.\n// Note that we assume \\nomallineskiplimit to be zero,\n// so that \\strut@ is the same as \\strut.\ndefineEnvironment(\"aligned\", {\n}, function(context) {\n var res = {\n type: \"array\",\n cols: [],\n };\n res = parseArray(context.parser, res);\n var emptyGroup = new ParseNode(\"ordgroup\", [], context.mode);\n var numCols = 0;\n res.value.body.forEach(function(row) {\n var i;\n for (i = 1; i < row.length; i += 2) {\n row[i].value.unshift(emptyGroup);\n }\n if (numCols < row.length) {\n numCols = row.length;\n }\n });\n for (var i = 0; i < numCols; ++i) {\n var align = \"r\";\n var pregap = 0;\n if (i % 2 === 1) {\n align = \"l\";\n } else if (i > 0) {\n pregap = 2; // one \\qquad between columns\n }\n res.value.cols[i] = {\n type: \"align\",\n align: align,\n pregap: pregap,\n postgap: 0,\n };\n }\n return res;\n});\n","/* eslint no-unused-vars:0 */\n\nvar Style = require(\"./Style\");\n\n/**\n * This file contains metrics regarding fonts and individual symbols. The sigma\n * and xi variables, as well as the metricMap map contain data extracted from\n * TeX, TeX font metrics, and the TTF files. These data are then exposed via the\n * `metrics` variable and the getCharacterMetrics function.\n */\n\n// These font metrics are extracted from TeX by using\n// \\font\\a=cmmi10\n// \\showthe\\fontdimenX\\a\n// where X is the corresponding variable number. These correspond to the font\n// parameters of the symbol fonts. In TeX, there are actually three sets of\n// dimensions, one for each of textstyle, scriptstyle, and scriptscriptstyle,\n// but we only use the textstyle ones, and scale certain dimensions accordingly.\n// See the TeXbook, page 441.\nvar sigma1 = 0.025;\nvar sigma2 = 0;\nvar sigma3 = 0;\nvar sigma4 = 0;\nvar sigma5 = 0.431;\nvar sigma6 = 1;\nvar sigma7 = 0;\nvar sigma8 = 0.677;\nvar sigma9 = 0.394;\nvar sigma10 = 0.444;\nvar sigma11 = 0.686;\nvar sigma12 = 0.345;\nvar sigma13 = 0.413;\nvar sigma14 = 0.363;\nvar sigma15 = 0.289;\nvar sigma16 = 0.150;\nvar sigma17 = 0.247;\nvar sigma18 = 0.386;\nvar sigma19 = 0.050;\nvar sigma20 = 2.390;\nvar sigma21 = 1.01;\nvar sigma21Script = 0.81;\nvar sigma21ScriptScript = 0.71;\nvar sigma22 = 0.250;\n\n// These font metrics are extracted from TeX by using\n// \\font\\a=cmex10\n// \\showthe\\fontdimenX\\a\n// where X is the corresponding variable number. These correspond to the font\n// parameters of the extension fonts (family 3). See the TeXbook, page 441.\nvar xi1 = 0;\nvar xi2 = 0;\nvar xi3 = 0;\nvar xi4 = 0;\nvar xi5 = 0.431;\nvar xi6 = 1;\nvar xi7 = 0;\nvar xi8 = 0.04;\nvar xi9 = 0.111;\nvar xi10 = 0.166;\nvar xi11 = 0.2;\nvar xi12 = 0.6;\nvar xi13 = 0.1;\n\n// This value determines how large a pt is, for metrics which are defined in\n// terms of pts.\n// This value is also used in katex.less; if you change it make sure the values\n// match.\nvar ptPerEm = 10.0;\n\n// The space between adjacent `|` columns in an array definition. From\n// `\\showthe\\doublerulesep` in LaTeX.\nvar doubleRuleSep = 2.0 / ptPerEm;\n\n/**\n * This is just a mapping from common names to real metrics\n */\nvar metrics = {\n xHeight: sigma5,\n quad: sigma6,\n num1: sigma8,\n num2: sigma9,\n num3: sigma10,\n denom1: sigma11,\n denom2: sigma12,\n sup1: sigma13,\n sup2: sigma14,\n sup3: sigma15,\n sub1: sigma16,\n sub2: sigma17,\n supDrop: sigma18,\n subDrop: sigma19,\n axisHeight: sigma22,\n defaultRuleThickness: xi8,\n bigOpSpacing1: xi9,\n bigOpSpacing2: xi10,\n bigOpSpacing3: xi11,\n bigOpSpacing4: xi12,\n bigOpSpacing5: xi13,\n ptPerEm: ptPerEm,\n emPerEx: sigma5 / sigma6,\n doubleRuleSep: doubleRuleSep,\n\n // TODO(alpert): Missing parallel structure here. We should probably add\n // style-specific metrics for all of these.\n delim1: sigma20,\n getDelim2: function(style) {\n if (style.size === Style.TEXT.size) {\n return sigma21;\n } else if (style.size === Style.SCRIPT.size) {\n return sigma21Script;\n } else if (style.size === Style.SCRIPTSCRIPT.size) {\n return sigma21ScriptScript;\n }\n throw new Error(\"Unexpected style size: \" + style.size);\n },\n};\n\n// This map contains a mapping from font name and character code to character\n// metrics, including height, depth, italic correction, and skew (kern from the\n// character to the corresponding \\skewchar)\n// This map is generated via `make metrics`. It should not be changed manually.\nvar metricMap = require(\"./fontMetricsData\");\n\n/**\n * This function is a convenience function for looking up information in the\n * metricMap table. It takes a character as a string, and a style.\n *\n * Note: the `width` property may be undefined if fontMetricsData.js wasn't\n * built using `Make extended_metrics`.\n */\nvar getCharacterMetrics = function(character, style) {\n var metrics = metricMap[style][character.charCodeAt(0)];\n if (metrics) {\n return {\n depth: metrics[0],\n height: metrics[1],\n italic: metrics[2],\n skew: metrics[3],\n width: metrics[4],\n };\n }\n};\n\nmodule.exports = {\n metrics: metrics,\n getCharacterMetrics: getCharacterMetrics,\n};\n","module.exports = {\n \"AMS-Regular\": {\n \"65\": [0, 0.68889, 0, 0],\n \"66\": [0, 0.68889, 0, 0],\n \"67\": [0, 0.68889, 0, 0],\n \"68\": [0, 0.68889, 0, 0],\n \"69\": [0, 0.68889, 0, 0],\n \"70\": [0, 0.68889, 0, 0],\n \"71\": [0, 0.68889, 0, 0],\n \"72\": [0, 0.68889, 0, 0],\n \"73\": [0, 0.68889, 0, 0],\n \"74\": [0.16667, 0.68889, 0, 0],\n \"75\": [0, 0.68889, 0, 0],\n \"76\": [0, 0.68889, 0, 0],\n \"77\": [0, 0.68889, 0, 0],\n \"78\": [0, 0.68889, 0, 0],\n \"79\": [0.16667, 0.68889, 0, 0],\n \"80\": [0, 0.68889, 0, 0],\n \"81\": [0.16667, 0.68889, 0, 0],\n \"82\": [0, 0.68889, 0, 0],\n \"83\": [0, 0.68889, 0, 0],\n \"84\": [0, 0.68889, 0, 0],\n \"85\": [0, 0.68889, 0, 0],\n \"86\": [0, 0.68889, 0, 0],\n \"87\": [0, 0.68889, 0, 0],\n \"88\": [0, 0.68889, 0, 0],\n \"89\": [0, 0.68889, 0, 0],\n \"90\": [0, 0.68889, 0, 0],\n \"107\": [0, 0.68889, 0, 0],\n \"165\": [0, 0.675, 0.025, 0],\n \"174\": [0.15559, 0.69224, 0, 0],\n \"240\": [0, 0.68889, 0, 0],\n \"295\": [0, 0.68889, 0, 0],\n \"710\": [0, 0.825, 0, 0],\n \"732\": [0, 0.9, 0, 0],\n \"770\": [0, 0.825, 0, 0],\n \"771\": [0, 0.9, 0, 0],\n \"989\": [0.08167, 0.58167, 0, 0],\n \"1008\": [0, 0.43056, 0.04028, 0],\n \"8245\": [0, 0.54986, 0, 0],\n \"8463\": [0, 0.68889, 0, 0],\n \"8487\": [0, 0.68889, 0, 0],\n \"8498\": [0, 0.68889, 0, 0],\n \"8502\": [0, 0.68889, 0, 0],\n \"8503\": [0, 0.68889, 0, 0],\n \"8504\": [0, 0.68889, 0, 0],\n \"8513\": [0, 0.68889, 0, 0],\n \"8592\": [-0.03598, 0.46402, 0, 0],\n \"8594\": [-0.03598, 0.46402, 0, 0],\n \"8602\": [-0.13313, 0.36687, 0, 0],\n \"8603\": [-0.13313, 0.36687, 0, 0],\n \"8606\": [0.01354, 0.52239, 0, 0],\n \"8608\": [0.01354, 0.52239, 0, 0],\n \"8610\": [0.01354, 0.52239, 0, 0],\n \"8611\": [0.01354, 0.52239, 0, 0],\n \"8619\": [0, 0.54986, 0, 0],\n \"8620\": [0, 0.54986, 0, 0],\n \"8621\": [-0.13313, 0.37788, 0, 0],\n \"8622\": [-0.13313, 0.36687, 0, 0],\n \"8624\": [0, 0.69224, 0, 0],\n \"8625\": [0, 0.69224, 0, 0],\n \"8630\": [0, 0.43056, 0, 0],\n \"8631\": [0, 0.43056, 0, 0],\n \"8634\": [0.08198, 0.58198, 0, 0],\n \"8635\": [0.08198, 0.58198, 0, 0],\n \"8638\": [0.19444, 0.69224, 0, 0],\n \"8639\": [0.19444, 0.69224, 0, 0],\n \"8642\": [0.19444, 0.69224, 0, 0],\n \"8643\": [0.19444, 0.69224, 0, 0],\n \"8644\": [0.1808, 0.675, 0, 0],\n \"8646\": [0.1808, 0.675, 0, 0],\n \"8647\": [0.1808, 0.675, 0, 0],\n \"8648\": [0.19444, 0.69224, 0, 0],\n \"8649\": [0.1808, 0.675, 0, 0],\n \"8650\": [0.19444, 0.69224, 0, 0],\n \"8651\": [0.01354, 0.52239, 0, 0],\n \"8652\": [0.01354, 0.52239, 0, 0],\n \"8653\": [-0.13313, 0.36687, 0, 0],\n \"8654\": [-0.13313, 0.36687, 0, 0],\n \"8655\": [-0.13313, 0.36687, 0, 0],\n \"8666\": [0.13667, 0.63667, 0, 0],\n \"8667\": [0.13667, 0.63667, 0, 0],\n \"8669\": [-0.13313, 0.37788, 0, 0],\n \"8672\": [-0.064, 0.437, 0, 0],\n \"8674\": [-0.064, 0.437, 0, 0],\n \"8705\": [0, 0.825, 0, 0],\n \"8708\": [0, 0.68889, 0, 0],\n \"8709\": [0.08167, 0.58167, 0, 0],\n \"8717\": [0, 0.43056, 0, 0],\n \"8722\": [-0.03598, 0.46402, 0, 0],\n \"8724\": [0.08198, 0.69224, 0, 0],\n \"8726\": [0.08167, 0.58167, 0, 0],\n \"8733\": [0, 0.69224, 0, 0],\n \"8736\": [0, 0.69224, 0, 0],\n \"8737\": [0, 0.69224, 0, 0],\n \"8738\": [0.03517, 0.52239, 0, 0],\n \"8739\": [0.08167, 0.58167, 0, 0],\n \"8740\": [0.25142, 0.74111, 0, 0],\n \"8741\": [0.08167, 0.58167, 0, 0],\n \"8742\": [0.25142, 0.74111, 0, 0],\n \"8756\": [0, 0.69224, 0, 0],\n \"8757\": [0, 0.69224, 0, 0],\n \"8764\": [-0.13313, 0.36687, 0, 0],\n \"8765\": [-0.13313, 0.37788, 0, 0],\n \"8769\": [-0.13313, 0.36687, 0, 0],\n \"8770\": [-0.03625, 0.46375, 0, 0],\n \"8774\": [0.30274, 0.79383, 0, 0],\n \"8776\": [-0.01688, 0.48312, 0, 0],\n \"8778\": [0.08167, 0.58167, 0, 0],\n \"8782\": [0.06062, 0.54986, 0, 0],\n \"8783\": [0.06062, 0.54986, 0, 0],\n \"8785\": [0.08198, 0.58198, 0, 0],\n \"8786\": [0.08198, 0.58198, 0, 0],\n \"8787\": [0.08198, 0.58198, 0, 0],\n \"8790\": [0, 0.69224, 0, 0],\n \"8791\": [0.22958, 0.72958, 0, 0],\n \"8796\": [0.08198, 0.91667, 0, 0],\n \"8806\": [0.25583, 0.75583, 0, 0],\n \"8807\": [0.25583, 0.75583, 0, 0],\n \"8808\": [0.25142, 0.75726, 0, 0],\n \"8809\": [0.25142, 0.75726, 0, 0],\n \"8812\": [0.25583, 0.75583, 0, 0],\n \"8814\": [0.20576, 0.70576, 0, 0],\n \"8815\": [0.20576, 0.70576, 0, 0],\n \"8816\": [0.30274, 0.79383, 0, 0],\n \"8817\": [0.30274, 0.79383, 0, 0],\n \"8818\": [0.22958, 0.72958, 0, 0],\n \"8819\": [0.22958, 0.72958, 0, 0],\n \"8822\": [0.1808, 0.675, 0, 0],\n \"8823\": [0.1808, 0.675, 0, 0],\n \"8828\": [0.13667, 0.63667, 0, 0],\n \"8829\": [0.13667, 0.63667, 0, 0],\n \"8830\": [0.22958, 0.72958, 0, 0],\n \"8831\": [0.22958, 0.72958, 0, 0],\n \"8832\": [0.20576, 0.70576, 0, 0],\n \"8833\": [0.20576, 0.70576, 0, 0],\n \"8840\": [0.30274, 0.79383, 0, 0],\n \"8841\": [0.30274, 0.79383, 0, 0],\n \"8842\": [0.13597, 0.63597, 0, 0],\n \"8843\": [0.13597, 0.63597, 0, 0],\n \"8847\": [0.03517, 0.54986, 0, 0],\n \"8848\": [0.03517, 0.54986, 0, 0],\n \"8858\": [0.08198, 0.58198, 0, 0],\n \"8859\": [0.08198, 0.58198, 0, 0],\n \"8861\": [0.08198, 0.58198, 0, 0],\n \"8862\": [0, 0.675, 0, 0],\n \"8863\": [0, 0.675, 0, 0],\n \"8864\": [0, 0.675, 0, 0],\n \"8865\": [0, 0.675, 0, 0],\n \"8872\": [0, 0.69224, 0, 0],\n \"8873\": [0, 0.69224, 0, 0],\n \"8874\": [0, 0.69224, 0, 0],\n \"8876\": [0, 0.68889, 0, 0],\n \"8877\": [0, 0.68889, 0, 0],\n \"8878\": [0, 0.68889, 0, 0],\n \"8879\": [0, 0.68889, 0, 0],\n \"8882\": [0.03517, 0.54986, 0, 0],\n \"8883\": [0.03517, 0.54986, 0, 0],\n \"8884\": [0.13667, 0.63667, 0, 0],\n \"8885\": [0.13667, 0.63667, 0, 0],\n \"8888\": [0, 0.54986, 0, 0],\n \"8890\": [0.19444, 0.43056, 0, 0],\n \"8891\": [0.19444, 0.69224, 0, 0],\n \"8892\": [0.19444, 0.69224, 0, 0],\n \"8901\": [0, 0.54986, 0, 0],\n \"8903\": [0.08167, 0.58167, 0, 0],\n \"8905\": [0.08167, 0.58167, 0, 0],\n \"8906\": [0.08167, 0.58167, 0, 0],\n \"8907\": [0, 0.69224, 0, 0],\n \"8908\": [0, 0.69224, 0, 0],\n \"8909\": [-0.03598, 0.46402, 0, 0],\n \"8910\": [0, 0.54986, 0, 0],\n \"8911\": [0, 0.54986, 0, 0],\n \"8912\": [0.03517, 0.54986, 0, 0],\n \"8913\": [0.03517, 0.54986, 0, 0],\n \"8914\": [0, 0.54986, 0, 0],\n \"8915\": [0, 0.54986, 0, 0],\n \"8916\": [0, 0.69224, 0, 0],\n \"8918\": [0.0391, 0.5391, 0, 0],\n \"8919\": [0.0391, 0.5391, 0, 0],\n \"8920\": [0.03517, 0.54986, 0, 0],\n \"8921\": [0.03517, 0.54986, 0, 0],\n \"8922\": [0.38569, 0.88569, 0, 0],\n \"8923\": [0.38569, 0.88569, 0, 0],\n \"8926\": [0.13667, 0.63667, 0, 0],\n \"8927\": [0.13667, 0.63667, 0, 0],\n \"8928\": [0.30274, 0.79383, 0, 0],\n \"8929\": [0.30274, 0.79383, 0, 0],\n \"8934\": [0.23222, 0.74111, 0, 0],\n \"8935\": [0.23222, 0.74111, 0, 0],\n \"8936\": [0.23222, 0.74111, 0, 0],\n \"8937\": [0.23222, 0.74111, 0, 0],\n \"8938\": [0.20576, 0.70576, 0, 0],\n \"8939\": [0.20576, 0.70576, 0, 0],\n \"8940\": [0.30274, 0.79383, 0, 0],\n \"8941\": [0.30274, 0.79383, 0, 0],\n \"8994\": [0.19444, 0.69224, 0, 0],\n \"8995\": [0.19444, 0.69224, 0, 0],\n \"9416\": [0.15559, 0.69224, 0, 0],\n \"9484\": [0, 0.69224, 0, 0],\n \"9488\": [0, 0.69224, 0, 0],\n \"9492\": [0, 0.37788, 0, 0],\n \"9496\": [0, 0.37788, 0, 0],\n \"9585\": [0.19444, 0.68889, 0, 0],\n \"9586\": [0.19444, 0.74111, 0, 0],\n \"9632\": [0, 0.675, 0, 0],\n \"9633\": [0, 0.675, 0, 0],\n \"9650\": [0, 0.54986, 0, 0],\n \"9651\": [0, 0.54986, 0, 0],\n \"9654\": [0.03517, 0.54986, 0, 0],\n \"9660\": [0, 0.54986, 0, 0],\n \"9661\": [0, 0.54986, 0, 0],\n \"9664\": [0.03517, 0.54986, 0, 0],\n \"9674\": [0.11111, 0.69224, 0, 0],\n \"9733\": [0.19444, 0.69224, 0, 0],\n \"10003\": [0, 0.69224, 0, 0],\n \"10016\": [0, 0.69224, 0, 0],\n \"10731\": [0.11111, 0.69224, 0, 0],\n \"10846\": [0.19444, 0.75583, 0, 0],\n \"10877\": [0.13667, 0.63667, 0, 0],\n \"10878\": [0.13667, 0.63667, 0, 0],\n \"10885\": [0.25583, 0.75583, 0, 0],\n \"10886\": [0.25583, 0.75583, 0, 0],\n \"10887\": [0.13597, 0.63597, 0, 0],\n \"10888\": [0.13597, 0.63597, 0, 0],\n \"10889\": [0.26167, 0.75726, 0, 0],\n \"10890\": [0.26167, 0.75726, 0, 0],\n \"10891\": [0.48256, 0.98256, 0, 0],\n \"10892\": [0.48256, 0.98256, 0, 0],\n \"10901\": [0.13667, 0.63667, 0, 0],\n \"10902\": [0.13667, 0.63667, 0, 0],\n \"10933\": [0.25142, 0.75726, 0, 0],\n \"10934\": [0.25142, 0.75726, 0, 0],\n \"10935\": [0.26167, 0.75726, 0, 0],\n \"10936\": [0.26167, 0.75726, 0, 0],\n \"10937\": [0.26167, 0.75726, 0, 0],\n \"10938\": [0.26167, 0.75726, 0, 0],\n \"10949\": [0.25583, 0.75583, 0, 0],\n \"10950\": [0.25583, 0.75583, 0, 0],\n \"10955\": [0.28481, 0.79383, 0, 0],\n \"10956\": [0.28481, 0.79383, 0, 0],\n \"57350\": [0.08167, 0.58167, 0, 0],\n \"57351\": [0.08167, 0.58167, 0, 0],\n \"57352\": [0.08167, 0.58167, 0, 0],\n \"57353\": [0, 0.43056, 0.04028, 0],\n \"57356\": [0.25142, 0.75726, 0, 0],\n \"57357\": [0.25142, 0.75726, 0, 0],\n \"57358\": [0.41951, 0.91951, 0, 0],\n \"57359\": [0.30274, 0.79383, 0, 0],\n \"57360\": [0.30274, 0.79383, 0, 0],\n \"57361\": [0.41951, 0.91951, 0, 0],\n \"57366\": [0.25142, 0.75726, 0, 0],\n \"57367\": [0.25142, 0.75726, 0, 0],\n \"57368\": [0.25142, 0.75726, 0, 0],\n \"57369\": [0.25142, 0.75726, 0, 0],\n \"57370\": [0.13597, 0.63597, 0, 0],\n \"57371\": [0.13597, 0.63597, 0, 0],\n },\n \"Caligraphic-Regular\": {\n \"48\": [0, 0.43056, 0, 0],\n \"49\": [0, 0.43056, 0, 0],\n \"50\": [0, 0.43056, 0, 0],\n \"51\": [0.19444, 0.43056, 0, 0],\n \"52\": [0.19444, 0.43056, 0, 0],\n \"53\": [0.19444, 0.43056, 0, 0],\n \"54\": [0, 0.64444, 0, 0],\n \"55\": [0.19444, 0.43056, 0, 0],\n \"56\": [0, 0.64444, 0, 0],\n \"57\": [0.19444, 0.43056, 0, 0],\n \"65\": [0, 0.68333, 0, 0.19445],\n \"66\": [0, 0.68333, 0.03041, 0.13889],\n \"67\": [0, 0.68333, 0.05834, 0.13889],\n \"68\": [0, 0.68333, 0.02778, 0.08334],\n \"69\": [0, 0.68333, 0.08944, 0.11111],\n \"70\": [0, 0.68333, 0.09931, 0.11111],\n \"71\": [0.09722, 0.68333, 0.0593, 0.11111],\n \"72\": [0, 0.68333, 0.00965, 0.11111],\n \"73\": [0, 0.68333, 0.07382, 0],\n \"74\": [0.09722, 0.68333, 0.18472, 0.16667],\n \"75\": [0, 0.68333, 0.01445, 0.05556],\n \"76\": [0, 0.68333, 0, 0.13889],\n \"77\": [0, 0.68333, 0, 0.13889],\n \"78\": [0, 0.68333, 0.14736, 0.08334],\n \"79\": [0, 0.68333, 0.02778, 0.11111],\n \"80\": [0, 0.68333, 0.08222, 0.08334],\n \"81\": [0.09722, 0.68333, 0, 0.11111],\n \"82\": [0, 0.68333, 0, 0.08334],\n \"83\": [0, 0.68333, 0.075, 0.13889],\n \"84\": [0, 0.68333, 0.25417, 0],\n \"85\": [0, 0.68333, 0.09931, 0.08334],\n \"86\": [0, 0.68333, 0.08222, 0],\n \"87\": [0, 0.68333, 0.08222, 0.08334],\n \"88\": [0, 0.68333, 0.14643, 0.13889],\n \"89\": [0.09722, 0.68333, 0.08222, 0.08334],\n \"90\": [0, 0.68333, 0.07944, 0.13889],\n },\n \"Fraktur-Regular\": {\n \"33\": [0, 0.69141, 0, 0],\n \"34\": [0, 0.69141, 0, 0],\n \"38\": [0, 0.69141, 0, 0],\n \"39\": [0, 0.69141, 0, 0],\n \"40\": [0.24982, 0.74947, 0, 0],\n \"41\": [0.24982, 0.74947, 0, 0],\n \"42\": [0, 0.62119, 0, 0],\n \"43\": [0.08319, 0.58283, 0, 0],\n \"44\": [0, 0.10803, 0, 0],\n \"45\": [0.08319, 0.58283, 0, 0],\n \"46\": [0, 0.10803, 0, 0],\n \"47\": [0.24982, 0.74947, 0, 0],\n \"48\": [0, 0.47534, 0, 0],\n \"49\": [0, 0.47534, 0, 0],\n \"50\": [0, 0.47534, 0, 0],\n \"51\": [0.18906, 0.47534, 0, 0],\n \"52\": [0.18906, 0.47534, 0, 0],\n \"53\": [0.18906, 0.47534, 0, 0],\n \"54\": [0, 0.69141, 0, 0],\n \"55\": [0.18906, 0.47534, 0, 0],\n \"56\": [0, 0.69141, 0, 0],\n \"57\": [0.18906, 0.47534, 0, 0],\n \"58\": [0, 0.47534, 0, 0],\n \"59\": [0.12604, 0.47534, 0, 0],\n \"61\": [-0.13099, 0.36866, 0, 0],\n \"63\": [0, 0.69141, 0, 0],\n \"65\": [0, 0.69141, 0, 0],\n \"66\": [0, 0.69141, 0, 0],\n \"67\": [0, 0.69141, 0, 0],\n \"68\": [0, 0.69141, 0, 0],\n \"69\": [0, 0.69141, 0, 0],\n \"70\": [0.12604, 0.69141, 0, 0],\n \"71\": [0, 0.69141, 0, 0],\n \"72\": [0.06302, 0.69141, 0, 0],\n \"73\": [0, 0.69141, 0, 0],\n \"74\": [0.12604, 0.69141, 0, 0],\n \"75\": [0, 0.69141, 0, 0],\n \"76\": [0, 0.69141, 0, 0],\n \"77\": [0, 0.69141, 0, 0],\n \"78\": [0, 0.69141, 0, 0],\n \"79\": [0, 0.69141, 0, 0],\n \"80\": [0.18906, 0.69141, 0, 0],\n \"81\": [0.03781, 0.69141, 0, 0],\n \"82\": [0, 0.69141, 0, 0],\n \"83\": [0, 0.69141, 0, 0],\n \"84\": [0, 0.69141, 0, 0],\n \"85\": [0, 0.69141, 0, 0],\n \"86\": [0, 0.69141, 0, 0],\n \"87\": [0, 0.69141, 0, 0],\n \"88\": [0, 0.69141, 0, 0],\n \"89\": [0.18906, 0.69141, 0, 0],\n \"90\": [0.12604, 0.69141, 0, 0],\n \"91\": [0.24982, 0.74947, 0, 0],\n \"93\": [0.24982, 0.74947, 0, 0],\n \"94\": [0, 0.69141, 0, 0],\n \"97\": [0, 0.47534, 0, 0],\n \"98\": [0, 0.69141, 0, 0],\n \"99\": [0, 0.47534, 0, 0],\n \"100\": [0, 0.62119, 0, 0],\n \"101\": [0, 0.47534, 0, 0],\n \"102\": [0.18906, 0.69141, 0, 0],\n \"103\": [0.18906, 0.47534, 0, 0],\n \"104\": [0.18906, 0.69141, 0, 0],\n \"105\": [0, 0.69141, 0, 0],\n \"106\": [0, 0.69141, 0, 0],\n \"107\": [0, 0.69141, 0, 0],\n \"108\": [0, 0.69141, 0, 0],\n \"109\": [0, 0.47534, 0, 0],\n \"110\": [0, 0.47534, 0, 0],\n \"111\": [0, 0.47534, 0, 0],\n \"112\": [0.18906, 0.52396, 0, 0],\n \"113\": [0.18906, 0.47534, 0, 0],\n \"114\": [0, 0.47534, 0, 0],\n \"115\": [0, 0.47534, 0, 0],\n \"116\": [0, 0.62119, 0, 0],\n \"117\": [0, 0.47534, 0, 0],\n \"118\": [0, 0.52396, 0, 0],\n \"119\": [0, 0.52396, 0, 0],\n \"120\": [0.18906, 0.47534, 0, 0],\n \"121\": [0.18906, 0.47534, 0, 0],\n \"122\": [0.18906, 0.47534, 0, 0],\n \"8216\": [0, 0.69141, 0, 0],\n \"8217\": [0, 0.69141, 0, 0],\n \"58112\": [0, 0.62119, 0, 0],\n \"58113\": [0, 0.62119, 0, 0],\n \"58114\": [0.18906, 0.69141, 0, 0],\n \"58115\": [0.18906, 0.69141, 0, 0],\n \"58116\": [0.18906, 0.47534, 0, 0],\n \"58117\": [0, 0.69141, 0, 0],\n \"58118\": [0, 0.62119, 0, 0],\n \"58119\": [0, 0.47534, 0, 0],\n },\n \"Main-Bold\": {\n \"33\": [0, 0.69444, 0, 0],\n \"34\": [0, 0.69444, 0, 0],\n \"35\": [0.19444, 0.69444, 0, 0],\n \"36\": [0.05556, 0.75, 0, 0],\n \"37\": [0.05556, 0.75, 0, 0],\n \"38\": [0, 0.69444, 0, 0],\n \"39\": [0, 0.69444, 0, 0],\n \"40\": [0.25, 0.75, 0, 0],\n \"41\": [0.25, 0.75, 0, 0],\n \"42\": [0, 0.75, 0, 0],\n \"43\": [0.13333, 0.63333, 0, 0],\n \"44\": [0.19444, 0.15556, 0, 0],\n \"45\": [0, 0.44444, 0, 0],\n \"46\": [0, 0.15556, 0, 0],\n \"47\": [0.25, 0.75, 0, 0],\n \"48\": [0, 0.64444, 0, 0],\n \"49\": [0, 0.64444, 0, 0],\n \"50\": [0, 0.64444, 0, 0],\n \"51\": [0, 0.64444, 0, 0],\n \"52\": [0, 0.64444, 0, 0],\n \"53\": [0, 0.64444, 0, 0],\n \"54\": [0, 0.64444, 0, 0],\n \"55\": [0, 0.64444, 0, 0],\n \"56\": [0, 0.64444, 0, 0],\n \"57\": [0, 0.64444, 0, 0],\n \"58\": [0, 0.44444, 0, 0],\n \"59\": [0.19444, 0.44444, 0, 0],\n \"60\": [0.08556, 0.58556, 0, 0],\n \"61\": [-0.10889, 0.39111, 0, 0],\n \"62\": [0.08556, 0.58556, 0, 0],\n \"63\": [0, 0.69444, 0, 0],\n \"64\": [0, 0.69444, 0, 0],\n \"65\": [0, 0.68611, 0, 0],\n \"66\": [0, 0.68611, 0, 0],\n \"67\": [0, 0.68611, 0, 0],\n \"68\": [0, 0.68611, 0, 0],\n \"69\": [0, 0.68611, 0, 0],\n \"70\": [0, 0.68611, 0, 0],\n \"71\": [0, 0.68611, 0, 0],\n \"72\": [0, 0.68611, 0, 0],\n \"73\": [0, 0.68611, 0, 0],\n \"74\": [0, 0.68611, 0, 0],\n \"75\": [0, 0.68611, 0, 0],\n \"76\": [0, 0.68611, 0, 0],\n \"77\": [0, 0.68611, 0, 0],\n \"78\": [0, 0.68611, 0, 0],\n \"79\": [0, 0.68611, 0, 0],\n \"80\": [0, 0.68611, 0, 0],\n \"81\": [0.19444, 0.68611, 0, 0],\n \"82\": [0, 0.68611, 0, 0],\n \"83\": [0, 0.68611, 0, 0],\n \"84\": [0, 0.68611, 0, 0],\n \"85\": [0, 0.68611, 0, 0],\n \"86\": [0, 0.68611, 0.01597, 0],\n \"87\": [0, 0.68611, 0.01597, 0],\n \"88\": [0, 0.68611, 0, 0],\n \"89\": [0, 0.68611, 0.02875, 0],\n \"90\": [0, 0.68611, 0, 0],\n \"91\": [0.25, 0.75, 0, 0],\n \"92\": [0.25, 0.75, 0, 0],\n \"93\": [0.25, 0.75, 0, 0],\n \"94\": [0, 0.69444, 0, 0],\n \"95\": [0.31, 0.13444, 0.03194, 0],\n \"96\": [0, 0.69444, 0, 0],\n \"97\": [0, 0.44444, 0, 0],\n \"98\": [0, 0.69444, 0, 0],\n \"99\": [0, 0.44444, 0, 0],\n \"100\": [0, 0.69444, 0, 0],\n \"101\": [0, 0.44444, 0, 0],\n \"102\": [0, 0.69444, 0.10903, 0],\n \"103\": [0.19444, 0.44444, 0.01597, 0],\n \"104\": [0, 0.69444, 0, 0],\n \"105\": [0, 0.69444, 0, 0],\n \"106\": [0.19444, 0.69444, 0, 0],\n \"107\": [0, 0.69444, 0, 0],\n \"108\": [0, 0.69444, 0, 0],\n \"109\": [0, 0.44444, 0, 0],\n \"110\": [0, 0.44444, 0, 0],\n \"111\": [0, 0.44444, 0, 0],\n \"112\": [0.19444, 0.44444, 0, 0],\n \"113\": [0.19444, 0.44444, 0, 0],\n \"114\": [0, 0.44444, 0, 0],\n \"115\": [0, 0.44444, 0, 0],\n \"116\": [0, 0.63492, 0, 0],\n \"117\": [0, 0.44444, 0, 0],\n \"118\": [0, 0.44444, 0.01597, 0],\n \"119\": [0, 0.44444, 0.01597, 0],\n \"120\": [0, 0.44444, 0, 0],\n \"121\": [0.19444, 0.44444, 0.01597, 0],\n \"122\": [0, 0.44444, 0, 0],\n \"123\": [0.25, 0.75, 0, 0],\n \"124\": [0.25, 0.75, 0, 0],\n \"125\": [0.25, 0.75, 0, 0],\n \"126\": [0.35, 0.34444, 0, 0],\n \"168\": [0, 0.69444, 0, 0],\n \"172\": [0, 0.44444, 0, 0],\n \"175\": [0, 0.59611, 0, 0],\n \"176\": [0, 0.69444, 0, 0],\n \"177\": [0.13333, 0.63333, 0, 0],\n \"180\": [0, 0.69444, 0, 0],\n \"215\": [0.13333, 0.63333, 0, 0],\n \"247\": [0.13333, 0.63333, 0, 0],\n \"305\": [0, 0.44444, 0, 0],\n \"567\": [0.19444, 0.44444, 0, 0],\n \"710\": [0, 0.69444, 0, 0],\n \"711\": [0, 0.63194, 0, 0],\n \"713\": [0, 0.59611, 0, 0],\n \"714\": [0, 0.69444, 0, 0],\n \"715\": [0, 0.69444, 0, 0],\n \"728\": [0, 0.69444, 0, 0],\n \"729\": [0, 0.69444, 0, 0],\n \"730\": [0, 0.69444, 0, 0],\n \"732\": [0, 0.69444, 0, 0],\n \"768\": [0, 0.69444, 0, 0],\n \"769\": [0, 0.69444, 0, 0],\n \"770\": [0, 0.69444, 0, 0],\n \"771\": [0, 0.69444, 0, 0],\n \"772\": [0, 0.59611, 0, 0],\n \"774\": [0, 0.69444, 0, 0],\n \"775\": [0, 0.69444, 0, 0],\n \"776\": [0, 0.69444, 0, 0],\n \"778\": [0, 0.69444, 0, 0],\n \"779\": [0, 0.69444, 0, 0],\n \"780\": [0, 0.63194, 0, 0],\n \"824\": [0.19444, 0.69444, 0, 0],\n \"915\": [0, 0.68611, 0, 0],\n \"916\": [0, 0.68611, 0, 0],\n \"920\": [0, 0.68611, 0, 0],\n \"923\": [0, 0.68611, 0, 0],\n \"926\": [0, 0.68611, 0, 0],\n \"928\": [0, 0.68611, 0, 0],\n \"931\": [0, 0.68611, 0, 0],\n \"933\": [0, 0.68611, 0, 0],\n \"934\": [0, 0.68611, 0, 0],\n \"936\": [0, 0.68611, 0, 0],\n \"937\": [0, 0.68611, 0, 0],\n \"8211\": [0, 0.44444, 0.03194, 0],\n \"8212\": [0, 0.44444, 0.03194, 0],\n \"8216\": [0, 0.69444, 0, 0],\n \"8217\": [0, 0.69444, 0, 0],\n \"8220\": [0, 0.69444, 0, 0],\n \"8221\": [0, 0.69444, 0, 0],\n \"8224\": [0.19444, 0.69444, 0, 0],\n \"8225\": [0.19444, 0.69444, 0, 0],\n \"8242\": [0, 0.55556, 0, 0],\n \"8407\": [0, 0.72444, 0.15486, 0],\n \"8463\": [0, 0.69444, 0, 0],\n \"8465\": [0, 0.69444, 0, 0],\n \"8467\": [0, 0.69444, 0, 0],\n \"8472\": [0.19444, 0.44444, 0, 0],\n \"8476\": [0, 0.69444, 0, 0],\n \"8501\": [0, 0.69444, 0, 0],\n \"8592\": [-0.10889, 0.39111, 0, 0],\n \"8593\": [0.19444, 0.69444, 0, 0],\n \"8594\": [-0.10889, 0.39111, 0, 0],\n \"8595\": [0.19444, 0.69444, 0, 0],\n \"8596\": [-0.10889, 0.39111, 0, 0],\n \"8597\": [0.25, 0.75, 0, 0],\n \"8598\": [0.19444, 0.69444, 0, 0],\n \"8599\": [0.19444, 0.69444, 0, 0],\n \"8600\": [0.19444, 0.69444, 0, 0],\n \"8601\": [0.19444, 0.69444, 0, 0],\n \"8636\": [-0.10889, 0.39111, 0, 0],\n \"8637\": [-0.10889, 0.39111, 0, 0],\n \"8640\": [-0.10889, 0.39111, 0, 0],\n \"8641\": [-0.10889, 0.39111, 0, 0],\n \"8656\": [-0.10889, 0.39111, 0, 0],\n \"8657\": [0.19444, 0.69444, 0, 0],\n \"8658\": [-0.10889, 0.39111, 0, 0],\n \"8659\": [0.19444, 0.69444, 0, 0],\n \"8660\": [-0.10889, 0.39111, 0, 0],\n \"8661\": [0.25, 0.75, 0, 0],\n \"8704\": [0, 0.69444, 0, 0],\n \"8706\": [0, 0.69444, 0.06389, 0],\n \"8707\": [0, 0.69444, 0, 0],\n \"8709\": [0.05556, 0.75, 0, 0],\n \"8711\": [0, 0.68611, 0, 0],\n \"8712\": [0.08556, 0.58556, 0, 0],\n \"8715\": [0.08556, 0.58556, 0, 0],\n \"8722\": [0.13333, 0.63333, 0, 0],\n \"8723\": [0.13333, 0.63333, 0, 0],\n \"8725\": [0.25, 0.75, 0, 0],\n \"8726\": [0.25, 0.75, 0, 0],\n \"8727\": [-0.02778, 0.47222, 0, 0],\n \"8728\": [-0.02639, 0.47361, 0, 0],\n \"8729\": [-0.02639, 0.47361, 0, 0],\n \"8730\": [0.18, 0.82, 0, 0],\n \"8733\": [0, 0.44444, 0, 0],\n \"8734\": [0, 0.44444, 0, 0],\n \"8736\": [0, 0.69224, 0, 0],\n \"8739\": [0.25, 0.75, 0, 0],\n \"8741\": [0.25, 0.75, 0, 0],\n \"8743\": [0, 0.55556, 0, 0],\n \"8744\": [0, 0.55556, 0, 0],\n \"8745\": [0, 0.55556, 0, 0],\n \"8746\": [0, 0.55556, 0, 0],\n \"8747\": [0.19444, 0.69444, 0.12778, 0],\n \"8764\": [-0.10889, 0.39111, 0, 0],\n \"8768\": [0.19444, 0.69444, 0, 0],\n \"8771\": [0.00222, 0.50222, 0, 0],\n \"8776\": [0.02444, 0.52444, 0, 0],\n \"8781\": [0.00222, 0.50222, 0, 0],\n \"8801\": [0.00222, 0.50222, 0, 0],\n \"8804\": [0.19667, 0.69667, 0, 0],\n \"8805\": [0.19667, 0.69667, 0, 0],\n \"8810\": [0.08556, 0.58556, 0, 0],\n \"8811\": [0.08556, 0.58556, 0, 0],\n \"8826\": [0.08556, 0.58556, 0, 0],\n \"8827\": [0.08556, 0.58556, 0, 0],\n \"8834\": [0.08556, 0.58556, 0, 0],\n \"8835\": [0.08556, 0.58556, 0, 0],\n \"8838\": [0.19667, 0.69667, 0, 0],\n \"8839\": [0.19667, 0.69667, 0, 0],\n \"8846\": [0, 0.55556, 0, 0],\n \"8849\": [0.19667, 0.69667, 0, 0],\n \"8850\": [0.19667, 0.69667, 0, 0],\n \"8851\": [0, 0.55556, 0, 0],\n \"8852\": [0, 0.55556, 0, 0],\n \"8853\": [0.13333, 0.63333, 0, 0],\n \"8854\": [0.13333, 0.63333, 0, 0],\n \"8855\": [0.13333, 0.63333, 0, 0],\n \"8856\": [0.13333, 0.63333, 0, 0],\n \"8857\": [0.13333, 0.63333, 0, 0],\n \"8866\": [0, 0.69444, 0, 0],\n \"8867\": [0, 0.69444, 0, 0],\n \"8868\": [0, 0.69444, 0, 0],\n \"8869\": [0, 0.69444, 0, 0],\n \"8900\": [-0.02639, 0.47361, 0, 0],\n \"8901\": [-0.02639, 0.47361, 0, 0],\n \"8902\": [-0.02778, 0.47222, 0, 0],\n \"8968\": [0.25, 0.75, 0, 0],\n \"8969\": [0.25, 0.75, 0, 0],\n \"8970\": [0.25, 0.75, 0, 0],\n \"8971\": [0.25, 0.75, 0, 0],\n \"8994\": [-0.13889, 0.36111, 0, 0],\n \"8995\": [-0.13889, 0.36111, 0, 0],\n \"9651\": [0.19444, 0.69444, 0, 0],\n \"9657\": [-0.02778, 0.47222, 0, 0],\n \"9661\": [0.19444, 0.69444, 0, 0],\n \"9667\": [-0.02778, 0.47222, 0, 0],\n \"9711\": [0.19444, 0.69444, 0, 0],\n \"9824\": [0.12963, 0.69444, 0, 0],\n \"9825\": [0.12963, 0.69444, 0, 0],\n \"9826\": [0.12963, 0.69444, 0, 0],\n \"9827\": [0.12963, 0.69444, 0, 0],\n \"9837\": [0, 0.75, 0, 0],\n \"9838\": [0.19444, 0.69444, 0, 0],\n \"9839\": [0.19444, 0.69444, 0, 0],\n \"10216\": [0.25, 0.75, 0, 0],\n \"10217\": [0.25, 0.75, 0, 0],\n \"10815\": [0, 0.68611, 0, 0],\n \"10927\": [0.19667, 0.69667, 0, 0],\n \"10928\": [0.19667, 0.69667, 0, 0],\n },\n \"Main-Italic\": {\n \"33\": [0, 0.69444, 0.12417, 0],\n \"34\": [0, 0.69444, 0.06961, 0],\n \"35\": [0.19444, 0.69444, 0.06616, 0],\n \"37\": [0.05556, 0.75, 0.13639, 0],\n \"38\": [0, 0.69444, 0.09694, 0],\n \"39\": [0, 0.69444, 0.12417, 0],\n \"40\": [0.25, 0.75, 0.16194, 0],\n \"41\": [0.25, 0.75, 0.03694, 0],\n \"42\": [0, 0.75, 0.14917, 0],\n \"43\": [0.05667, 0.56167, 0.03694, 0],\n \"44\": [0.19444, 0.10556, 0, 0],\n \"45\": [0, 0.43056, 0.02826, 0],\n \"46\": [0, 0.10556, 0, 0],\n \"47\": [0.25, 0.75, 0.16194, 0],\n \"48\": [0, 0.64444, 0.13556, 0],\n \"49\": [0, 0.64444, 0.13556, 0],\n \"50\": [0, 0.64444, 0.13556, 0],\n \"51\": [0, 0.64444, 0.13556, 0],\n \"52\": [0.19444, 0.64444, 0.13556, 0],\n \"53\": [0, 0.64444, 0.13556, 0],\n \"54\": [0, 0.64444, 0.13556, 0],\n \"55\": [0.19444, 0.64444, 0.13556, 0],\n \"56\": [0, 0.64444, 0.13556, 0],\n \"57\": [0, 0.64444, 0.13556, 0],\n \"58\": [0, 0.43056, 0.0582, 0],\n \"59\": [0.19444, 0.43056, 0.0582, 0],\n \"61\": [-0.13313, 0.36687, 0.06616, 0],\n \"63\": [0, 0.69444, 0.1225, 0],\n \"64\": [0, 0.69444, 0.09597, 0],\n \"65\": [0, 0.68333, 0, 0],\n \"66\": [0, 0.68333, 0.10257, 0],\n \"67\": [0, 0.68333, 0.14528, 0],\n \"68\": [0, 0.68333, 0.09403, 0],\n \"69\": [0, 0.68333, 0.12028, 0],\n \"70\": [0, 0.68333, 0.13305, 0],\n \"71\": [0, 0.68333, 0.08722, 0],\n \"72\": [0, 0.68333, 0.16389, 0],\n \"73\": [0, 0.68333, 0.15806, 0],\n \"74\": [0, 0.68333, 0.14028, 0],\n \"75\": [0, 0.68333, 0.14528, 0],\n \"76\": [0, 0.68333, 0, 0],\n \"77\": [0, 0.68333, 0.16389, 0],\n \"78\": [0, 0.68333, 0.16389, 0],\n \"79\": [0, 0.68333, 0.09403, 0],\n \"80\": [0, 0.68333, 0.10257, 0],\n \"81\": [0.19444, 0.68333, 0.09403, 0],\n \"82\": [0, 0.68333, 0.03868, 0],\n \"83\": [0, 0.68333, 0.11972, 0],\n \"84\": [0, 0.68333, 0.13305, 0],\n \"85\": [0, 0.68333, 0.16389, 0],\n \"86\": [0, 0.68333, 0.18361, 0],\n \"87\": [0, 0.68333, 0.18361, 0],\n \"88\": [0, 0.68333, 0.15806, 0],\n \"89\": [0, 0.68333, 0.19383, 0],\n \"90\": [0, 0.68333, 0.14528, 0],\n \"91\": [0.25, 0.75, 0.1875, 0],\n \"93\": [0.25, 0.75, 0.10528, 0],\n \"94\": [0, 0.69444, 0.06646, 0],\n \"95\": [0.31, 0.12056, 0.09208, 0],\n \"97\": [0, 0.43056, 0.07671, 0],\n \"98\": [0, 0.69444, 0.06312, 0],\n \"99\": [0, 0.43056, 0.05653, 0],\n \"100\": [0, 0.69444, 0.10333, 0],\n \"101\": [0, 0.43056, 0.07514, 0],\n \"102\": [0.19444, 0.69444, 0.21194, 0],\n \"103\": [0.19444, 0.43056, 0.08847, 0],\n \"104\": [0, 0.69444, 0.07671, 0],\n \"105\": [0, 0.65536, 0.1019, 0],\n \"106\": [0.19444, 0.65536, 0.14467, 0],\n \"107\": [0, 0.69444, 0.10764, 0],\n \"108\": [0, 0.69444, 0.10333, 0],\n \"109\": [0, 0.43056, 0.07671, 0],\n \"110\": [0, 0.43056, 0.07671, 0],\n \"111\": [0, 0.43056, 0.06312, 0],\n \"112\": [0.19444, 0.43056, 0.06312, 0],\n \"113\": [0.19444, 0.43056, 0.08847, 0],\n \"114\": [0, 0.43056, 0.10764, 0],\n \"115\": [0, 0.43056, 0.08208, 0],\n \"116\": [0, 0.61508, 0.09486, 0],\n \"117\": [0, 0.43056, 0.07671, 0],\n \"118\": [0, 0.43056, 0.10764, 0],\n \"119\": [0, 0.43056, 0.10764, 0],\n \"120\": [0, 0.43056, 0.12042, 0],\n \"121\": [0.19444, 0.43056, 0.08847, 0],\n \"122\": [0, 0.43056, 0.12292, 0],\n \"126\": [0.35, 0.31786, 0.11585, 0],\n \"163\": [0, 0.69444, 0, 0],\n \"305\": [0, 0.43056, 0, 0.02778],\n \"567\": [0.19444, 0.43056, 0, 0.08334],\n \"768\": [0, 0.69444, 0, 0],\n \"769\": [0, 0.69444, 0.09694, 0],\n \"770\": [0, 0.69444, 0.06646, 0],\n \"771\": [0, 0.66786, 0.11585, 0],\n \"772\": [0, 0.56167, 0.10333, 0],\n \"774\": [0, 0.69444, 0.10806, 0],\n \"775\": [0, 0.66786, 0.11752, 0],\n \"776\": [0, 0.66786, 0.10474, 0],\n \"778\": [0, 0.69444, 0, 0],\n \"779\": [0, 0.69444, 0.1225, 0],\n \"780\": [0, 0.62847, 0.08295, 0],\n \"915\": [0, 0.68333, 0.13305, 0],\n \"916\": [0, 0.68333, 0, 0],\n \"920\": [0, 0.68333, 0.09403, 0],\n \"923\": [0, 0.68333, 0, 0],\n \"926\": [0, 0.68333, 0.15294, 0],\n \"928\": [0, 0.68333, 0.16389, 0],\n \"931\": [0, 0.68333, 0.12028, 0],\n \"933\": [0, 0.68333, 0.11111, 0],\n \"934\": [0, 0.68333, 0.05986, 0],\n \"936\": [0, 0.68333, 0.11111, 0],\n \"937\": [0, 0.68333, 0.10257, 0],\n \"8211\": [0, 0.43056, 0.09208, 0],\n \"8212\": [0, 0.43056, 0.09208, 0],\n \"8216\": [0, 0.69444, 0.12417, 0],\n \"8217\": [0, 0.69444, 0.12417, 0],\n \"8220\": [0, 0.69444, 0.1685, 0],\n \"8221\": [0, 0.69444, 0.06961, 0],\n \"8463\": [0, 0.68889, 0, 0],\n },\n \"Main-Regular\": {\n \"32\": [0, 0, 0, 0],\n \"33\": [0, 0.69444, 0, 0],\n \"34\": [0, 0.69444, 0, 0],\n \"35\": [0.19444, 0.69444, 0, 0],\n \"36\": [0.05556, 0.75, 0, 0],\n \"37\": [0.05556, 0.75, 0, 0],\n \"38\": [0, 0.69444, 0, 0],\n \"39\": [0, 0.69444, 0, 0],\n \"40\": [0.25, 0.75, 0, 0],\n \"41\": [0.25, 0.75, 0, 0],\n \"42\": [0, 0.75, 0, 0],\n \"43\": [0.08333, 0.58333, 0, 0],\n \"44\": [0.19444, 0.10556, 0, 0],\n \"45\": [0, 0.43056, 0, 0],\n \"46\": [0, 0.10556, 0, 0],\n \"47\": [0.25, 0.75, 0, 0],\n \"48\": [0, 0.64444, 0, 0],\n \"49\": [0, 0.64444, 0, 0],\n \"50\": [0, 0.64444, 0, 0],\n \"51\": [0, 0.64444, 0, 0],\n \"52\": [0, 0.64444, 0, 0],\n \"53\": [0, 0.64444, 0, 0],\n \"54\": [0, 0.64444, 0, 0],\n \"55\": [0, 0.64444, 0, 0],\n \"56\": [0, 0.64444, 0, 0],\n \"57\": [0, 0.64444, 0, 0],\n \"58\": [0, 0.43056, 0, 0],\n \"59\": [0.19444, 0.43056, 0, 0],\n \"60\": [0.0391, 0.5391, 0, 0],\n \"61\": [-0.13313, 0.36687, 0, 0],\n \"62\": [0.0391, 0.5391, 0, 0],\n \"63\": [0, 0.69444, 0, 0],\n \"64\": [0, 0.69444, 0, 0],\n \"65\": [0, 0.68333, 0, 0],\n \"66\": [0, 0.68333, 0, 0],\n \"67\": [0, 0.68333, 0, 0],\n \"68\": [0, 0.68333, 0, 0],\n \"69\": [0, 0.68333, 0, 0],\n \"70\": [0, 0.68333, 0, 0],\n \"71\": [0, 0.68333, 0, 0],\n \"72\": [0, 0.68333, 0, 0],\n \"73\": [0, 0.68333, 0, 0],\n \"74\": [0, 0.68333, 0, 0],\n \"75\": [0, 0.68333, 0, 0],\n \"76\": [0, 0.68333, 0, 0],\n \"77\": [0, 0.68333, 0, 0],\n \"78\": [0, 0.68333, 0, 0],\n \"79\": [0, 0.68333, 0, 0],\n \"80\": [0, 0.68333, 0, 0],\n \"81\": [0.19444, 0.68333, 0, 0],\n \"82\": [0, 0.68333, 0, 0],\n \"83\": [0, 0.68333, 0, 0],\n \"84\": [0, 0.68333, 0, 0],\n \"85\": [0, 0.68333, 0, 0],\n \"86\": [0, 0.68333, 0.01389, 0],\n \"87\": [0, 0.68333, 0.01389, 0],\n \"88\": [0, 0.68333, 0, 0],\n \"89\": [0, 0.68333, 0.025, 0],\n \"90\": [0, 0.68333, 0, 0],\n \"91\": [0.25, 0.75, 0, 0],\n \"92\": [0.25, 0.75, 0, 0],\n \"93\": [0.25, 0.75, 0, 0],\n \"94\": [0, 0.69444, 0, 0],\n \"95\": [0.31, 0.12056, 0.02778, 0],\n \"96\": [0, 0.69444, 0, 0],\n \"97\": [0, 0.43056, 0, 0],\n \"98\": [0, 0.69444, 0, 0],\n \"99\": [0, 0.43056, 0, 0],\n \"100\": [0, 0.69444, 0, 0],\n \"101\": [0, 0.43056, 0, 0],\n \"102\": [0, 0.69444, 0.07778, 0],\n \"103\": [0.19444, 0.43056, 0.01389, 0],\n \"104\": [0, 0.69444, 0, 0],\n \"105\": [0, 0.66786, 0, 0],\n \"106\": [0.19444, 0.66786, 0, 0],\n \"107\": [0, 0.69444, 0, 0],\n \"108\": [0, 0.69444, 0, 0],\n \"109\": [0, 0.43056, 0, 0],\n \"110\": [0, 0.43056, 0, 0],\n \"111\": [0, 0.43056, 0, 0],\n \"112\": [0.19444, 0.43056, 0, 0],\n \"113\": [0.19444, 0.43056, 0, 0],\n \"114\": [0, 0.43056, 0, 0],\n \"115\": [0, 0.43056, 0, 0],\n \"116\": [0, 0.61508, 0, 0],\n \"117\": [0, 0.43056, 0, 0],\n \"118\": [0, 0.43056, 0.01389, 0],\n \"119\": [0, 0.43056, 0.01389, 0],\n \"120\": [0, 0.43056, 0, 0],\n \"121\": [0.19444, 0.43056, 0.01389, 0],\n \"122\": [0, 0.43056, 0, 0],\n \"123\": [0.25, 0.75, 0, 0],\n \"124\": [0.25, 0.75, 0, 0],\n \"125\": [0.25, 0.75, 0, 0],\n \"126\": [0.35, 0.31786, 0, 0],\n \"160\": [0, 0, 0, 0],\n \"168\": [0, 0.66786, 0, 0],\n \"172\": [0, 0.43056, 0, 0],\n \"175\": [0, 0.56778, 0, 0],\n \"176\": [0, 0.69444, 0, 0],\n \"177\": [0.08333, 0.58333, 0, 0],\n \"180\": [0, 0.69444, 0, 0],\n \"215\": [0.08333, 0.58333, 0, 0],\n \"247\": [0.08333, 0.58333, 0, 0],\n \"305\": [0, 0.43056, 0, 0],\n \"567\": [0.19444, 0.43056, 0, 0],\n \"710\": [0, 0.69444, 0, 0],\n \"711\": [0, 0.62847, 0, 0],\n \"713\": [0, 0.56778, 0, 0],\n \"714\": [0, 0.69444, 0, 0],\n \"715\": [0, 0.69444, 0, 0],\n \"728\": [0, 0.69444, 0, 0],\n \"729\": [0, 0.66786, 0, 0],\n \"730\": [0, 0.69444, 0, 0],\n \"732\": [0, 0.66786, 0, 0],\n \"768\": [0, 0.69444, 0, 0],\n \"769\": [0, 0.69444, 0, 0],\n \"770\": [0, 0.69444, 0, 0],\n \"771\": [0, 0.66786, 0, 0],\n \"772\": [0, 0.56778, 0, 0],\n \"774\": [0, 0.69444, 0, 0],\n \"775\": [0, 0.66786, 0, 0],\n \"776\": [0, 0.66786, 0, 0],\n \"778\": [0, 0.69444, 0, 0],\n \"779\": [0, 0.69444, 0, 0],\n \"780\": [0, 0.62847, 0, 0],\n \"824\": [0.19444, 0.69444, 0, 0],\n \"915\": [0, 0.68333, 0, 0],\n \"916\": [0, 0.68333, 0, 0],\n \"920\": [0, 0.68333, 0, 0],\n \"923\": [0, 0.68333, 0, 0],\n \"926\": [0, 0.68333, 0, 0],\n \"928\": [0, 0.68333, 0, 0],\n \"931\": [0, 0.68333, 0, 0],\n \"933\": [0, 0.68333, 0, 0],\n \"934\": [0, 0.68333, 0, 0],\n \"936\": [0, 0.68333, 0, 0],\n \"937\": [0, 0.68333, 0, 0],\n \"8211\": [0, 0.43056, 0.02778, 0],\n \"8212\": [0, 0.43056, 0.02778, 0],\n \"8216\": [0, 0.69444, 0, 0],\n \"8217\": [0, 0.69444, 0, 0],\n \"8220\": [0, 0.69444, 0, 0],\n \"8221\": [0, 0.69444, 0, 0],\n \"8224\": [0.19444, 0.69444, 0, 0],\n \"8225\": [0.19444, 0.69444, 0, 0],\n \"8230\": [0, 0.12, 0, 0],\n \"8242\": [0, 0.55556, 0, 0],\n \"8407\": [0, 0.71444, 0.15382, 0],\n \"8463\": [0, 0.68889, 0, 0],\n \"8465\": [0, 0.69444, 0, 0],\n \"8467\": [0, 0.69444, 0, 0.11111],\n \"8472\": [0.19444, 0.43056, 0, 0.11111],\n \"8476\": [0, 0.69444, 0, 0],\n \"8501\": [0, 0.69444, 0, 0],\n \"8592\": [-0.13313, 0.36687, 0, 0],\n \"8593\": [0.19444, 0.69444, 0, 0],\n \"8594\": [-0.13313, 0.36687, 0, 0],\n \"8595\": [0.19444, 0.69444, 0, 0],\n \"8596\": [-0.13313, 0.36687, 0, 0],\n \"8597\": [0.25, 0.75, 0, 0],\n \"8598\": [0.19444, 0.69444, 0, 0],\n \"8599\": [0.19444, 0.69444, 0, 0],\n \"8600\": [0.19444, 0.69444, 0, 0],\n \"8601\": [0.19444, 0.69444, 0, 0],\n \"8614\": [0.011, 0.511, 0, 0],\n \"8617\": [0.011, 0.511, 0, 0],\n \"8618\": [0.011, 0.511, 0, 0],\n \"8636\": [-0.13313, 0.36687, 0, 0],\n \"8637\": [-0.13313, 0.36687, 0, 0],\n \"8640\": [-0.13313, 0.36687, 0, 0],\n \"8641\": [-0.13313, 0.36687, 0, 0],\n \"8652\": [0.011, 0.671, 0, 0],\n \"8656\": [-0.13313, 0.36687, 0, 0],\n \"8657\": [0.19444, 0.69444, 0, 0],\n \"8658\": [-0.13313, 0.36687, 0, 0],\n \"8659\": [0.19444, 0.69444, 0, 0],\n \"8660\": [-0.13313, 0.36687, 0, 0],\n \"8661\": [0.25, 0.75, 0, 0],\n \"8704\": [0, 0.69444, 0, 0],\n \"8706\": [0, 0.69444, 0.05556, 0.08334],\n \"8707\": [0, 0.69444, 0, 0],\n \"8709\": [0.05556, 0.75, 0, 0],\n \"8711\": [0, 0.68333, 0, 0],\n \"8712\": [0.0391, 0.5391, 0, 0],\n \"8715\": [0.0391, 0.5391, 0, 0],\n \"8722\": [0.08333, 0.58333, 0, 0],\n \"8723\": [0.08333, 0.58333, 0, 0],\n \"8725\": [0.25, 0.75, 0, 0],\n \"8726\": [0.25, 0.75, 0, 0],\n \"8727\": [-0.03472, 0.46528, 0, 0],\n \"8728\": [-0.05555, 0.44445, 0, 0],\n \"8729\": [-0.05555, 0.44445, 0, 0],\n \"8730\": [0.2, 0.8, 0, 0],\n \"8733\": [0, 0.43056, 0, 0],\n \"8734\": [0, 0.43056, 0, 0],\n \"8736\": [0, 0.69224, 0, 0],\n \"8739\": [0.25, 0.75, 0, 0],\n \"8741\": [0.25, 0.75, 0, 0],\n \"8743\": [0, 0.55556, 0, 0],\n \"8744\": [0, 0.55556, 0, 0],\n \"8745\": [0, 0.55556, 0, 0],\n \"8746\": [0, 0.55556, 0, 0],\n \"8747\": [0.19444, 0.69444, 0.11111, 0],\n \"8764\": [-0.13313, 0.36687, 0, 0],\n \"8768\": [0.19444, 0.69444, 0, 0],\n \"8771\": [-0.03625, 0.46375, 0, 0],\n \"8773\": [-0.022, 0.589, 0, 0],\n \"8776\": [-0.01688, 0.48312, 0, 0],\n \"8781\": [-0.03625, 0.46375, 0, 0],\n \"8784\": [-0.133, 0.67, 0, 0],\n \"8800\": [0.215, 0.716, 0, 0],\n \"8801\": [-0.03625, 0.46375, 0, 0],\n \"8804\": [0.13597, 0.63597, 0, 0],\n \"8805\": [0.13597, 0.63597, 0, 0],\n \"8810\": [0.0391, 0.5391, 0, 0],\n \"8811\": [0.0391, 0.5391, 0, 0],\n \"8826\": [0.0391, 0.5391, 0, 0],\n \"8827\": [0.0391, 0.5391, 0, 0],\n \"8834\": [0.0391, 0.5391, 0, 0],\n \"8835\": [0.0391, 0.5391, 0, 0],\n \"8838\": [0.13597, 0.63597, 0, 0],\n \"8839\": [0.13597, 0.63597, 0, 0],\n \"8846\": [0, 0.55556, 0, 0],\n \"8849\": [0.13597, 0.63597, 0, 0],\n \"8850\": [0.13597, 0.63597, 0, 0],\n \"8851\": [0, 0.55556, 0, 0],\n \"8852\": [0, 0.55556, 0, 0],\n \"8853\": [0.08333, 0.58333, 0, 0],\n \"8854\": [0.08333, 0.58333, 0, 0],\n \"8855\": [0.08333, 0.58333, 0, 0],\n \"8856\": [0.08333, 0.58333, 0, 0],\n \"8857\": [0.08333, 0.58333, 0, 0],\n \"8866\": [0, 0.69444, 0, 0],\n \"8867\": [0, 0.69444, 0, 0],\n \"8868\": [0, 0.69444, 0, 0],\n \"8869\": [0, 0.69444, 0, 0],\n \"8872\": [0.249, 0.75, 0, 0],\n \"8900\": [-0.05555, 0.44445, 0, 0],\n \"8901\": [-0.05555, 0.44445, 0, 0],\n \"8902\": [-0.03472, 0.46528, 0, 0],\n \"8904\": [0.005, 0.505, 0, 0],\n \"8942\": [0.03, 0.9, 0, 0],\n \"8943\": [-0.19, 0.31, 0, 0],\n \"8945\": [-0.1, 0.82, 0, 0],\n \"8968\": [0.25, 0.75, 0, 0],\n \"8969\": [0.25, 0.75, 0, 0],\n \"8970\": [0.25, 0.75, 0, 0],\n \"8971\": [0.25, 0.75, 0, 0],\n \"8994\": [-0.14236, 0.35764, 0, 0],\n \"8995\": [-0.14236, 0.35764, 0, 0],\n \"9136\": [0.244, 0.744, 0, 0],\n \"9137\": [0.244, 0.744, 0, 0],\n \"9651\": [0.19444, 0.69444, 0, 0],\n \"9657\": [-0.03472, 0.46528, 0, 0],\n \"9661\": [0.19444, 0.69444, 0, 0],\n \"9667\": [-0.03472, 0.46528, 0, 0],\n \"9711\": [0.19444, 0.69444, 0, 0],\n \"9824\": [0.12963, 0.69444, 0, 0],\n \"9825\": [0.12963, 0.69444, 0, 0],\n \"9826\": [0.12963, 0.69444, 0, 0],\n \"9827\": [0.12963, 0.69444, 0, 0],\n \"9837\": [0, 0.75, 0, 0],\n \"9838\": [0.19444, 0.69444, 0, 0],\n \"9839\": [0.19444, 0.69444, 0, 0],\n \"10216\": [0.25, 0.75, 0, 0],\n \"10217\": [0.25, 0.75, 0, 0],\n \"10222\": [0.244, 0.744, 0, 0],\n \"10223\": [0.244, 0.744, 0, 0],\n \"10229\": [0.011, 0.511, 0, 0],\n \"10230\": [0.011, 0.511, 0, 0],\n \"10231\": [0.011, 0.511, 0, 0],\n \"10232\": [0.024, 0.525, 0, 0],\n \"10233\": [0.024, 0.525, 0, 0],\n \"10234\": [0.024, 0.525, 0, 0],\n \"10236\": [0.011, 0.511, 0, 0],\n \"10815\": [0, 0.68333, 0, 0],\n \"10927\": [0.13597, 0.63597, 0, 0],\n \"10928\": [0.13597, 0.63597, 0, 0],\n },\n \"Math-BoldItalic\": {\n \"47\": [0.19444, 0.69444, 0, 0],\n \"65\": [0, 0.68611, 0, 0],\n \"66\": [0, 0.68611, 0.04835, 0],\n \"67\": [0, 0.68611, 0.06979, 0],\n \"68\": [0, 0.68611, 0.03194, 0],\n \"69\": [0, 0.68611, 0.05451, 0],\n \"70\": [0, 0.68611, 0.15972, 0],\n \"71\": [0, 0.68611, 0, 0],\n \"72\": [0, 0.68611, 0.08229, 0],\n \"73\": [0, 0.68611, 0.07778, 0],\n \"74\": [0, 0.68611, 0.10069, 0],\n \"75\": [0, 0.68611, 0.06979, 0],\n \"76\": [0, 0.68611, 0, 0],\n \"77\": [0, 0.68611, 0.11424, 0],\n \"78\": [0, 0.68611, 0.11424, 0],\n \"79\": [0, 0.68611, 0.03194, 0],\n \"80\": [0, 0.68611, 0.15972, 0],\n \"81\": [0.19444, 0.68611, 0, 0],\n \"82\": [0, 0.68611, 0.00421, 0],\n \"83\": [0, 0.68611, 0.05382, 0],\n \"84\": [0, 0.68611, 0.15972, 0],\n \"85\": [0, 0.68611, 0.11424, 0],\n \"86\": [0, 0.68611, 0.25555, 0],\n \"87\": [0, 0.68611, 0.15972, 0],\n \"88\": [0, 0.68611, 0.07778, 0],\n \"89\": [0, 0.68611, 0.25555, 0],\n \"90\": [0, 0.68611, 0.06979, 0],\n \"97\": [0, 0.44444, 0, 0],\n \"98\": [0, 0.69444, 0, 0],\n \"99\": [0, 0.44444, 0, 0],\n \"100\": [0, 0.69444, 0, 0],\n \"101\": [0, 0.44444, 0, 0],\n \"102\": [0.19444, 0.69444, 0.11042, 0],\n \"103\": [0.19444, 0.44444, 0.03704, 0],\n \"104\": [0, 0.69444, 0, 0],\n \"105\": [0, 0.69326, 0, 0],\n \"106\": [0.19444, 0.69326, 0.0622, 0],\n \"107\": [0, 0.69444, 0.01852, 0],\n \"108\": [0, 0.69444, 0.0088, 0],\n \"109\": [0, 0.44444, 0, 0],\n \"110\": [0, 0.44444, 0, 0],\n \"111\": [0, 0.44444, 0, 0],\n \"112\": [0.19444, 0.44444, 0, 0],\n \"113\": [0.19444, 0.44444, 0.03704, 0],\n \"114\": [0, 0.44444, 0.03194, 0],\n \"115\": [0, 0.44444, 0, 0],\n \"116\": [0, 0.63492, 0, 0],\n \"117\": [0, 0.44444, 0, 0],\n \"118\": [0, 0.44444, 0.03704, 0],\n \"119\": [0, 0.44444, 0.02778, 0],\n \"120\": [0, 0.44444, 0, 0],\n \"121\": [0.19444, 0.44444, 0.03704, 0],\n \"122\": [0, 0.44444, 0.04213, 0],\n \"915\": [0, 0.68611, 0.15972, 0],\n \"916\": [0, 0.68611, 0, 0],\n \"920\": [0, 0.68611, 0.03194, 0],\n \"923\": [0, 0.68611, 0, 0],\n \"926\": [0, 0.68611, 0.07458, 0],\n \"928\": [0, 0.68611, 0.08229, 0],\n \"931\": [0, 0.68611, 0.05451, 0],\n \"933\": [0, 0.68611, 0.15972, 0],\n \"934\": [0, 0.68611, 0, 0],\n \"936\": [0, 0.68611, 0.11653, 0],\n \"937\": [0, 0.68611, 0.04835, 0],\n \"945\": [0, 0.44444, 0, 0],\n \"946\": [0.19444, 0.69444, 0.03403, 0],\n \"947\": [0.19444, 0.44444, 0.06389, 0],\n \"948\": [0, 0.69444, 0.03819, 0],\n \"949\": [0, 0.44444, 0, 0],\n \"950\": [0.19444, 0.69444, 0.06215, 0],\n \"951\": [0.19444, 0.44444, 0.03704, 0],\n \"952\": [0, 0.69444, 0.03194, 0],\n \"953\": [0, 0.44444, 0, 0],\n \"954\": [0, 0.44444, 0, 0],\n \"955\": [0, 0.69444, 0, 0],\n \"956\": [0.19444, 0.44444, 0, 0],\n \"957\": [0, 0.44444, 0.06898, 0],\n \"958\": [0.19444, 0.69444, 0.03021, 0],\n \"959\": [0, 0.44444, 0, 0],\n \"960\": [0, 0.44444, 0.03704, 0],\n \"961\": [0.19444, 0.44444, 0, 0],\n \"962\": [0.09722, 0.44444, 0.07917, 0],\n \"963\": [0, 0.44444, 0.03704, 0],\n \"964\": [0, 0.44444, 0.13472, 0],\n \"965\": [0, 0.44444, 0.03704, 0],\n \"966\": [0.19444, 0.44444, 0, 0],\n \"967\": [0.19444, 0.44444, 0, 0],\n \"968\": [0.19444, 0.69444, 0.03704, 0],\n \"969\": [0, 0.44444, 0.03704, 0],\n \"977\": [0, 0.69444, 0, 0],\n \"981\": [0.19444, 0.69444, 0, 0],\n \"982\": [0, 0.44444, 0.03194, 0],\n \"1009\": [0.19444, 0.44444, 0, 0],\n \"1013\": [0, 0.44444, 0, 0],\n },\n \"Math-Italic\": {\n \"47\": [0.19444, 0.69444, 0, 0],\n \"65\": [0, 0.68333, 0, 0.13889],\n \"66\": [0, 0.68333, 0.05017, 0.08334],\n \"67\": [0, 0.68333, 0.07153, 0.08334],\n \"68\": [0, 0.68333, 0.02778, 0.05556],\n \"69\": [0, 0.68333, 0.05764, 0.08334],\n \"70\": [0, 0.68333, 0.13889, 0.08334],\n \"71\": [0, 0.68333, 0, 0.08334],\n \"72\": [0, 0.68333, 0.08125, 0.05556],\n \"73\": [0, 0.68333, 0.07847, 0.11111],\n \"74\": [0, 0.68333, 0.09618, 0.16667],\n \"75\": [0, 0.68333, 0.07153, 0.05556],\n \"76\": [0, 0.68333, 0, 0.02778],\n \"77\": [0, 0.68333, 0.10903, 0.08334],\n \"78\": [0, 0.68333, 0.10903, 0.08334],\n \"79\": [0, 0.68333, 0.02778, 0.08334],\n \"80\": [0, 0.68333, 0.13889, 0.08334],\n \"81\": [0.19444, 0.68333, 0, 0.08334],\n \"82\": [0, 0.68333, 0.00773, 0.08334],\n \"83\": [0, 0.68333, 0.05764, 0.08334],\n \"84\": [0, 0.68333, 0.13889, 0.08334],\n \"85\": [0, 0.68333, 0.10903, 0.02778],\n \"86\": [0, 0.68333, 0.22222, 0],\n \"87\": [0, 0.68333, 0.13889, 0],\n \"88\": [0, 0.68333, 0.07847, 0.08334],\n \"89\": [0, 0.68333, 0.22222, 0],\n \"90\": [0, 0.68333, 0.07153, 0.08334],\n \"97\": [0, 0.43056, 0, 0],\n \"98\": [0, 0.69444, 0, 0],\n \"99\": [0, 0.43056, 0, 0.05556],\n \"100\": [0, 0.69444, 0, 0.16667],\n \"101\": [0, 0.43056, 0, 0.05556],\n \"102\": [0.19444, 0.69444, 0.10764, 0.16667],\n \"103\": [0.19444, 0.43056, 0.03588, 0.02778],\n \"104\": [0, 0.69444, 0, 0],\n \"105\": [0, 0.65952, 0, 0],\n \"106\": [0.19444, 0.65952, 0.05724, 0],\n \"107\": [0, 0.69444, 0.03148, 0],\n \"108\": [0, 0.69444, 0.01968, 0.08334],\n \"109\": [0, 0.43056, 0, 0],\n \"110\": [0, 0.43056, 0, 0],\n \"111\": [0, 0.43056, 0, 0.05556],\n \"112\": [0.19444, 0.43056, 0, 0.08334],\n \"113\": [0.19444, 0.43056, 0.03588, 0.08334],\n \"114\": [0, 0.43056, 0.02778, 0.05556],\n \"115\": [0, 0.43056, 0, 0.05556],\n \"116\": [0, 0.61508, 0, 0.08334],\n \"117\": [0, 0.43056, 0, 0.02778],\n \"118\": [0, 0.43056, 0.03588, 0.02778],\n \"119\": [0, 0.43056, 0.02691, 0.08334],\n \"120\": [0, 0.43056, 0, 0.02778],\n \"121\": [0.19444, 0.43056, 0.03588, 0.05556],\n \"122\": [0, 0.43056, 0.04398, 0.05556],\n \"915\": [0, 0.68333, 0.13889, 0.08334],\n \"916\": [0, 0.68333, 0, 0.16667],\n \"920\": [0, 0.68333, 0.02778, 0.08334],\n \"923\": [0, 0.68333, 0, 0.16667],\n \"926\": [0, 0.68333, 0.07569, 0.08334],\n \"928\": [0, 0.68333, 0.08125, 0.05556],\n \"931\": [0, 0.68333, 0.05764, 0.08334],\n \"933\": [0, 0.68333, 0.13889, 0.05556],\n \"934\": [0, 0.68333, 0, 0.08334],\n \"936\": [0, 0.68333, 0.11, 0.05556],\n \"937\": [0, 0.68333, 0.05017, 0.08334],\n \"945\": [0, 0.43056, 0.0037, 0.02778],\n \"946\": [0.19444, 0.69444, 0.05278, 0.08334],\n \"947\": [0.19444, 0.43056, 0.05556, 0],\n \"948\": [0, 0.69444, 0.03785, 0.05556],\n \"949\": [0, 0.43056, 0, 0.08334],\n \"950\": [0.19444, 0.69444, 0.07378, 0.08334],\n \"951\": [0.19444, 0.43056, 0.03588, 0.05556],\n \"952\": [0, 0.69444, 0.02778, 0.08334],\n \"953\": [0, 0.43056, 0, 0.05556],\n \"954\": [0, 0.43056, 0, 0],\n \"955\": [0, 0.69444, 0, 0],\n \"956\": [0.19444, 0.43056, 0, 0.02778],\n \"957\": [0, 0.43056, 0.06366, 0.02778],\n \"958\": [0.19444, 0.69444, 0.04601, 0.11111],\n \"959\": [0, 0.43056, 0, 0.05556],\n \"960\": [0, 0.43056, 0.03588, 0],\n \"961\": [0.19444, 0.43056, 0, 0.08334],\n \"962\": [0.09722, 0.43056, 0.07986, 0.08334],\n \"963\": [0, 0.43056, 0.03588, 0],\n \"964\": [0, 0.43056, 0.1132, 0.02778],\n \"965\": [0, 0.43056, 0.03588, 0.02778],\n \"966\": [0.19444, 0.43056, 0, 0.08334],\n \"967\": [0.19444, 0.43056, 0, 0.05556],\n \"968\": [0.19444, 0.69444, 0.03588, 0.11111],\n \"969\": [0, 0.43056, 0.03588, 0],\n \"977\": [0, 0.69444, 0, 0.08334],\n \"981\": [0.19444, 0.69444, 0, 0.08334],\n \"982\": [0, 0.43056, 0.02778, 0],\n \"1009\": [0.19444, 0.43056, 0, 0.08334],\n \"1013\": [0, 0.43056, 0, 0.05556],\n },\n \"Math-Regular\": {\n \"65\": [0, 0.68333, 0, 0.13889],\n \"66\": [0, 0.68333, 0.05017, 0.08334],\n \"67\": [0, 0.68333, 0.07153, 0.08334],\n \"68\": [0, 0.68333, 0.02778, 0.05556],\n \"69\": [0, 0.68333, 0.05764, 0.08334],\n \"70\": [0, 0.68333, 0.13889, 0.08334],\n \"71\": [0, 0.68333, 0, 0.08334],\n \"72\": [0, 0.68333, 0.08125, 0.05556],\n \"73\": [0, 0.68333, 0.07847, 0.11111],\n \"74\": [0, 0.68333, 0.09618, 0.16667],\n \"75\": [0, 0.68333, 0.07153, 0.05556],\n \"76\": [0, 0.68333, 0, 0.02778],\n \"77\": [0, 0.68333, 0.10903, 0.08334],\n \"78\": [0, 0.68333, 0.10903, 0.08334],\n \"79\": [0, 0.68333, 0.02778, 0.08334],\n \"80\": [0, 0.68333, 0.13889, 0.08334],\n \"81\": [0.19444, 0.68333, 0, 0.08334],\n \"82\": [0, 0.68333, 0.00773, 0.08334],\n \"83\": [0, 0.68333, 0.05764, 0.08334],\n \"84\": [0, 0.68333, 0.13889, 0.08334],\n \"85\": [0, 0.68333, 0.10903, 0.02778],\n \"86\": [0, 0.68333, 0.22222, 0],\n \"87\": [0, 0.68333, 0.13889, 0],\n \"88\": [0, 0.68333, 0.07847, 0.08334],\n \"89\": [0, 0.68333, 0.22222, 0],\n \"90\": [0, 0.68333, 0.07153, 0.08334],\n \"97\": [0, 0.43056, 0, 0],\n \"98\": [0, 0.69444, 0, 0],\n \"99\": [0, 0.43056, 0, 0.05556],\n \"100\": [0, 0.69444, 0, 0.16667],\n \"101\": [0, 0.43056, 0, 0.05556],\n \"102\": [0.19444, 0.69444, 0.10764, 0.16667],\n \"103\": [0.19444, 0.43056, 0.03588, 0.02778],\n \"104\": [0, 0.69444, 0, 0],\n \"105\": [0, 0.65952, 0, 0],\n \"106\": [0.19444, 0.65952, 0.05724, 0],\n \"107\": [0, 0.69444, 0.03148, 0],\n \"108\": [0, 0.69444, 0.01968, 0.08334],\n \"109\": [0, 0.43056, 0, 0],\n \"110\": [0, 0.43056, 0, 0],\n \"111\": [0, 0.43056, 0, 0.05556],\n \"112\": [0.19444, 0.43056, 0, 0.08334],\n \"113\": [0.19444, 0.43056, 0.03588, 0.08334],\n \"114\": [0, 0.43056, 0.02778, 0.05556],\n \"115\": [0, 0.43056, 0, 0.05556],\n \"116\": [0, 0.61508, 0, 0.08334],\n \"117\": [0, 0.43056, 0, 0.02778],\n \"118\": [0, 0.43056, 0.03588, 0.02778],\n \"119\": [0, 0.43056, 0.02691, 0.08334],\n \"120\": [0, 0.43056, 0, 0.02778],\n \"121\": [0.19444, 0.43056, 0.03588, 0.05556],\n \"122\": [0, 0.43056, 0.04398, 0.05556],\n \"915\": [0, 0.68333, 0.13889, 0.08334],\n \"916\": [0, 0.68333, 0, 0.16667],\n \"920\": [0, 0.68333, 0.02778, 0.08334],\n \"923\": [0, 0.68333, 0, 0.16667],\n \"926\": [0, 0.68333, 0.07569, 0.08334],\n \"928\": [0, 0.68333, 0.08125, 0.05556],\n \"931\": [0, 0.68333, 0.05764, 0.08334],\n \"933\": [0, 0.68333, 0.13889, 0.05556],\n \"934\": [0, 0.68333, 0, 0.08334],\n \"936\": [0, 0.68333, 0.11, 0.05556],\n \"937\": [0, 0.68333, 0.05017, 0.08334],\n \"945\": [0, 0.43056, 0.0037, 0.02778],\n \"946\": [0.19444, 0.69444, 0.05278, 0.08334],\n \"947\": [0.19444, 0.43056, 0.05556, 0],\n \"948\": [0, 0.69444, 0.03785, 0.05556],\n \"949\": [0, 0.43056, 0, 0.08334],\n \"950\": [0.19444, 0.69444, 0.07378, 0.08334],\n \"951\": [0.19444, 0.43056, 0.03588, 0.05556],\n \"952\": [0, 0.69444, 0.02778, 0.08334],\n \"953\": [0, 0.43056, 0, 0.05556],\n \"954\": [0, 0.43056, 0, 0],\n \"955\": [0, 0.69444, 0, 0],\n \"956\": [0.19444, 0.43056, 0, 0.02778],\n \"957\": [0, 0.43056, 0.06366, 0.02778],\n \"958\": [0.19444, 0.69444, 0.04601, 0.11111],\n \"959\": [0, 0.43056, 0, 0.05556],\n \"960\": [0, 0.43056, 0.03588, 0],\n \"961\": [0.19444, 0.43056, 0, 0.08334],\n \"962\": [0.09722, 0.43056, 0.07986, 0.08334],\n \"963\": [0, 0.43056, 0.03588, 0],\n \"964\": [0, 0.43056, 0.1132, 0.02778],\n \"965\": [0, 0.43056, 0.03588, 0.02778],\n \"966\": [0.19444, 0.43056, 0, 0.08334],\n \"967\": [0.19444, 0.43056, 0, 0.05556],\n \"968\": [0.19444, 0.69444, 0.03588, 0.11111],\n \"969\": [0, 0.43056, 0.03588, 0],\n \"977\": [0, 0.69444, 0, 0.08334],\n \"981\": [0.19444, 0.69444, 0, 0.08334],\n \"982\": [0, 0.43056, 0.02778, 0],\n \"1009\": [0.19444, 0.43056, 0, 0.08334],\n \"1013\": [0, 0.43056, 0, 0.05556],\n },\n \"SansSerif-Regular\": {\n \"33\": [0, 0.69444, 0, 0],\n \"34\": [0, 0.69444, 0, 0],\n \"35\": [0.19444, 0.69444, 0, 0],\n \"36\": [0.05556, 0.75, 0, 0],\n \"37\": [0.05556, 0.75, 0, 0],\n \"38\": [0, 0.69444, 0, 0],\n \"39\": [0, 0.69444, 0, 0],\n \"40\": [0.25, 0.75, 0, 0],\n \"41\": [0.25, 0.75, 0, 0],\n \"42\": [0, 0.75, 0, 0],\n \"43\": [0.08333, 0.58333, 0, 0],\n \"44\": [0.125, 0.08333, 0, 0],\n \"45\": [0, 0.44444, 0, 0],\n \"46\": [0, 0.08333, 0, 0],\n \"47\": [0.25, 0.75, 0, 0],\n \"48\": [0, 0.65556, 0, 0],\n \"49\": [0, 0.65556, 0, 0],\n \"50\": [0, 0.65556, 0, 0],\n \"51\": [0, 0.65556, 0, 0],\n \"52\": [0, 0.65556, 0, 0],\n \"53\": [0, 0.65556, 0, 0],\n \"54\": [0, 0.65556, 0, 0],\n \"55\": [0, 0.65556, 0, 0],\n \"56\": [0, 0.65556, 0, 0],\n \"57\": [0, 0.65556, 0, 0],\n \"58\": [0, 0.44444, 0, 0],\n \"59\": [0.125, 0.44444, 0, 0],\n \"61\": [-0.13, 0.37, 0, 0],\n \"63\": [0, 0.69444, 0, 0],\n \"64\": [0, 0.69444, 0, 0],\n \"65\": [0, 0.69444, 0, 0],\n \"66\": [0, 0.69444, 0, 0],\n \"67\": [0, 0.69444, 0, 0],\n \"68\": [0, 0.69444, 0, 0],\n \"69\": [0, 0.69444, 0, 0],\n \"70\": [0, 0.69444, 0, 0],\n \"71\": [0, 0.69444, 0, 0],\n \"72\": [0, 0.69444, 0, 0],\n \"73\": [0, 0.69444, 0, 0],\n \"74\": [0, 0.69444, 0, 0],\n \"75\": [0, 0.69444, 0, 0],\n \"76\": [0, 0.69444, 0, 0],\n \"77\": [0, 0.69444, 0, 0],\n \"78\": [0, 0.69444, 0, 0],\n \"79\": [0, 0.69444, 0, 0],\n \"80\": [0, 0.69444, 0, 0],\n \"81\": [0.125, 0.69444, 0, 0],\n \"82\": [0, 0.69444, 0, 0],\n \"83\": [0, 0.69444, 0, 0],\n \"84\": [0, 0.69444, 0, 0],\n \"85\": [0, 0.69444, 0, 0],\n \"86\": [0, 0.69444, 0.01389, 0],\n \"87\": [0, 0.69444, 0.01389, 0],\n \"88\": [0, 0.69444, 0, 0],\n \"89\": [0, 0.69444, 0.025, 0],\n \"90\": [0, 0.69444, 0, 0],\n \"91\": [0.25, 0.75, 0, 0],\n \"93\": [0.25, 0.75, 0, 0],\n \"94\": [0, 0.69444, 0, 0],\n \"95\": [0.35, 0.09444, 0.02778, 0],\n \"97\": [0, 0.44444, 0, 0],\n \"98\": [0, 0.69444, 0, 0],\n \"99\": [0, 0.44444, 0, 0],\n \"100\": [0, 0.69444, 0, 0],\n \"101\": [0, 0.44444, 0, 0],\n \"102\": [0, 0.69444, 0.06944, 0],\n \"103\": [0.19444, 0.44444, 0.01389, 0],\n \"104\": [0, 0.69444, 0, 0],\n \"105\": [0, 0.67937, 0, 0],\n \"106\": [0.19444, 0.67937, 0, 0],\n \"107\": [0, 0.69444, 0, 0],\n \"108\": [0, 0.69444, 0, 0],\n \"109\": [0, 0.44444, 0, 0],\n \"110\": [0, 0.44444, 0, 0],\n \"111\": [0, 0.44444, 0, 0],\n \"112\": [0.19444, 0.44444, 0, 0],\n \"113\": [0.19444, 0.44444, 0, 0],\n \"114\": [0, 0.44444, 0.01389, 0],\n \"115\": [0, 0.44444, 0, 0],\n \"116\": [0, 0.57143, 0, 0],\n \"117\": [0, 0.44444, 0, 0],\n \"118\": [0, 0.44444, 0.01389, 0],\n \"119\": [0, 0.44444, 0.01389, 0],\n \"120\": [0, 0.44444, 0, 0],\n \"121\": [0.19444, 0.44444, 0.01389, 0],\n \"122\": [0, 0.44444, 0, 0],\n \"126\": [0.35, 0.32659, 0, 0],\n \"305\": [0, 0.44444, 0, 0],\n \"567\": [0.19444, 0.44444, 0, 0],\n \"768\": [0, 0.69444, 0, 0],\n \"769\": [0, 0.69444, 0, 0],\n \"770\": [0, 0.69444, 0, 0],\n \"771\": [0, 0.67659, 0, 0],\n \"772\": [0, 0.60889, 0, 0],\n \"774\": [0, 0.69444, 0, 0],\n \"775\": [0, 0.67937, 0, 0],\n \"776\": [0, 0.67937, 0, 0],\n \"778\": [0, 0.69444, 0, 0],\n \"779\": [0, 0.69444, 0, 0],\n \"780\": [0, 0.63194, 0, 0],\n \"915\": [0, 0.69444, 0, 0],\n \"916\": [0, 0.69444, 0, 0],\n \"920\": [0, 0.69444, 0, 0],\n \"923\": [0, 0.69444, 0, 0],\n \"926\": [0, 0.69444, 0, 0],\n \"928\": [0, 0.69444, 0, 0],\n \"931\": [0, 0.69444, 0, 0],\n \"933\": [0, 0.69444, 0, 0],\n \"934\": [0, 0.69444, 0, 0],\n \"936\": [0, 0.69444, 0, 0],\n \"937\": [0, 0.69444, 0, 0],\n \"8211\": [0, 0.44444, 0.02778, 0],\n \"8212\": [0, 0.44444, 0.02778, 0],\n \"8216\": [0, 0.69444, 0, 0],\n \"8217\": [0, 0.69444, 0, 0],\n \"8220\": [0, 0.69444, 0, 0],\n \"8221\": [0, 0.69444, 0, 0],\n },\n \"Script-Regular\": {\n \"65\": [0, 0.7, 0.22925, 0],\n \"66\": [0, 0.7, 0.04087, 0],\n \"67\": [0, 0.7, 0.1689, 0],\n \"68\": [0, 0.7, 0.09371, 0],\n \"69\": [0, 0.7, 0.18583, 0],\n \"70\": [0, 0.7, 0.13634, 0],\n \"71\": [0, 0.7, 0.17322, 0],\n \"72\": [0, 0.7, 0.29694, 0],\n \"73\": [0, 0.7, 0.19189, 0],\n \"74\": [0.27778, 0.7, 0.19189, 0],\n \"75\": [0, 0.7, 0.31259, 0],\n \"76\": [0, 0.7, 0.19189, 0],\n \"77\": [0, 0.7, 0.15981, 0],\n \"78\": [0, 0.7, 0.3525, 0],\n \"79\": [0, 0.7, 0.08078, 0],\n \"80\": [0, 0.7, 0.08078, 0],\n \"81\": [0, 0.7, 0.03305, 0],\n \"82\": [0, 0.7, 0.06259, 0],\n \"83\": [0, 0.7, 0.19189, 0],\n \"84\": [0, 0.7, 0.29087, 0],\n \"85\": [0, 0.7, 0.25815, 0],\n \"86\": [0, 0.7, 0.27523, 0],\n \"87\": [0, 0.7, 0.27523, 0],\n \"88\": [0, 0.7, 0.26006, 0],\n \"89\": [0, 0.7, 0.2939, 0],\n \"90\": [0, 0.7, 0.24037, 0],\n },\n \"Size1-Regular\": {\n \"40\": [0.35001, 0.85, 0, 0],\n \"41\": [0.35001, 0.85, 0, 0],\n \"47\": [0.35001, 0.85, 0, 0],\n \"91\": [0.35001, 0.85, 0, 0],\n \"92\": [0.35001, 0.85, 0, 0],\n \"93\": [0.35001, 0.85, 0, 0],\n \"123\": [0.35001, 0.85, 0, 0],\n \"125\": [0.35001, 0.85, 0, 0],\n \"710\": [0, 0.72222, 0, 0],\n \"732\": [0, 0.72222, 0, 0],\n \"770\": [0, 0.72222, 0, 0],\n \"771\": [0, 0.72222, 0, 0],\n \"8214\": [-0.00099, 0.601, 0, 0],\n \"8593\": [1e-05, 0.6, 0, 0],\n \"8595\": [1e-05, 0.6, 0, 0],\n \"8657\": [1e-05, 0.6, 0, 0],\n \"8659\": [1e-05, 0.6, 0, 0],\n \"8719\": [0.25001, 0.75, 0, 0],\n \"8720\": [0.25001, 0.75, 0, 0],\n \"8721\": [0.25001, 0.75, 0, 0],\n \"8730\": [0.35001, 0.85, 0, 0],\n \"8739\": [-0.00599, 0.606, 0, 0],\n \"8741\": [-0.00599, 0.606, 0, 0],\n \"8747\": [0.30612, 0.805, 0.19445, 0],\n \"8748\": [0.306, 0.805, 0.19445, 0],\n \"8749\": [0.306, 0.805, 0.19445, 0],\n \"8750\": [0.30612, 0.805, 0.19445, 0],\n \"8896\": [0.25001, 0.75, 0, 0],\n \"8897\": [0.25001, 0.75, 0, 0],\n \"8898\": [0.25001, 0.75, 0, 0],\n \"8899\": [0.25001, 0.75, 0, 0],\n \"8968\": [0.35001, 0.85, 0, 0],\n \"8969\": [0.35001, 0.85, 0, 0],\n \"8970\": [0.35001, 0.85, 0, 0],\n \"8971\": [0.35001, 0.85, 0, 0],\n \"9168\": [-0.00099, 0.601, 0, 0],\n \"10216\": [0.35001, 0.85, 0, 0],\n \"10217\": [0.35001, 0.85, 0, 0],\n \"10752\": [0.25001, 0.75, 0, 0],\n \"10753\": [0.25001, 0.75, 0, 0],\n \"10754\": [0.25001, 0.75, 0, 0],\n \"10756\": [0.25001, 0.75, 0, 0],\n \"10758\": [0.25001, 0.75, 0, 0],\n },\n \"Size2-Regular\": {\n \"40\": [0.65002, 1.15, 0, 0],\n \"41\": [0.65002, 1.15, 0, 0],\n \"47\": [0.65002, 1.15, 0, 0],\n \"91\": [0.65002, 1.15, 0, 0],\n \"92\": [0.65002, 1.15, 0, 0],\n \"93\": [0.65002, 1.15, 0, 0],\n \"123\": [0.65002, 1.15, 0, 0],\n \"125\": [0.65002, 1.15, 0, 0],\n \"710\": [0, 0.75, 0, 0],\n \"732\": [0, 0.75, 0, 0],\n \"770\": [0, 0.75, 0, 0],\n \"771\": [0, 0.75, 0, 0],\n \"8719\": [0.55001, 1.05, 0, 0],\n \"8720\": [0.55001, 1.05, 0, 0],\n \"8721\": [0.55001, 1.05, 0, 0],\n \"8730\": [0.65002, 1.15, 0, 0],\n \"8747\": [0.86225, 1.36, 0.44445, 0],\n \"8748\": [0.862, 1.36, 0.44445, 0],\n \"8749\": [0.862, 1.36, 0.44445, 0],\n \"8750\": [0.86225, 1.36, 0.44445, 0],\n \"8896\": [0.55001, 1.05, 0, 0],\n \"8897\": [0.55001, 1.05, 0, 0],\n \"8898\": [0.55001, 1.05, 0, 0],\n \"8899\": [0.55001, 1.05, 0, 0],\n \"8968\": [0.65002, 1.15, 0, 0],\n \"8969\": [0.65002, 1.15, 0, 0],\n \"8970\": [0.65002, 1.15, 0, 0],\n \"8971\": [0.65002, 1.15, 0, 0],\n \"10216\": [0.65002, 1.15, 0, 0],\n \"10217\": [0.65002, 1.15, 0, 0],\n \"10752\": [0.55001, 1.05, 0, 0],\n \"10753\": [0.55001, 1.05, 0, 0],\n \"10754\": [0.55001, 1.05, 0, 0],\n \"10756\": [0.55001, 1.05, 0, 0],\n \"10758\": [0.55001, 1.05, 0, 0],\n },\n \"Size3-Regular\": {\n \"40\": [0.95003, 1.45, 0, 0],\n \"41\": [0.95003, 1.45, 0, 0],\n \"47\": [0.95003, 1.45, 0, 0],\n \"91\": [0.95003, 1.45, 0, 0],\n \"92\": [0.95003, 1.45, 0, 0],\n \"93\": [0.95003, 1.45, 0, 0],\n \"123\": [0.95003, 1.45, 0, 0],\n \"125\": [0.95003, 1.45, 0, 0],\n \"710\": [0, 0.75, 0, 0],\n \"732\": [0, 0.75, 0, 0],\n \"770\": [0, 0.75, 0, 0],\n \"771\": [0, 0.75, 0, 0],\n \"8730\": [0.95003, 1.45, 0, 0],\n \"8968\": [0.95003, 1.45, 0, 0],\n \"8969\": [0.95003, 1.45, 0, 0],\n \"8970\": [0.95003, 1.45, 0, 0],\n \"8971\": [0.95003, 1.45, 0, 0],\n \"10216\": [0.95003, 1.45, 0, 0],\n \"10217\": [0.95003, 1.45, 0, 0],\n },\n \"Size4-Regular\": {\n \"40\": [1.25003, 1.75, 0, 0],\n \"41\": [1.25003, 1.75, 0, 0],\n \"47\": [1.25003, 1.75, 0, 0],\n \"91\": [1.25003, 1.75, 0, 0],\n \"92\": [1.25003, 1.75, 0, 0],\n \"93\": [1.25003, 1.75, 0, 0],\n \"123\": [1.25003, 1.75, 0, 0],\n \"125\": [1.25003, 1.75, 0, 0],\n \"710\": [0, 0.825, 0, 0],\n \"732\": [0, 0.825, 0, 0],\n \"770\": [0, 0.825, 0, 0],\n \"771\": [0, 0.825, 0, 0],\n \"8730\": [1.25003, 1.75, 0, 0],\n \"8968\": [1.25003, 1.75, 0, 0],\n \"8969\": [1.25003, 1.75, 0, 0],\n \"8970\": [1.25003, 1.75, 0, 0],\n \"8971\": [1.25003, 1.75, 0, 0],\n \"9115\": [0.64502, 1.155, 0, 0],\n \"9116\": [1e-05, 0.6, 0, 0],\n \"9117\": [0.64502, 1.155, 0, 0],\n \"9118\": [0.64502, 1.155, 0, 0],\n \"9119\": [1e-05, 0.6, 0, 0],\n \"9120\": [0.64502, 1.155, 0, 0],\n \"9121\": [0.64502, 1.155, 0, 0],\n \"9122\": [-0.00099, 0.601, 0, 0],\n \"9123\": [0.64502, 1.155, 0, 0],\n \"9124\": [0.64502, 1.155, 0, 0],\n \"9125\": [-0.00099, 0.601, 0, 0],\n \"9126\": [0.64502, 1.155, 0, 0],\n \"9127\": [1e-05, 0.9, 0, 0],\n \"9128\": [0.65002, 1.15, 0, 0],\n \"9129\": [0.90001, 0, 0, 0],\n \"9130\": [0, 0.3, 0, 0],\n \"9131\": [1e-05, 0.9, 0, 0],\n \"9132\": [0.65002, 1.15, 0, 0],\n \"9133\": [0.90001, 0, 0, 0],\n \"9143\": [0.88502, 0.915, 0, 0],\n \"10216\": [1.25003, 1.75, 0, 0],\n \"10217\": [1.25003, 1.75, 0, 0],\n \"57344\": [-0.00499, 0.605, 0, 0],\n \"57345\": [-0.00499, 0.605, 0, 0],\n \"57680\": [0, 0.12, 0, 0],\n \"57681\": [0, 0.12, 0, 0],\n \"57682\": [0, 0.12, 0, 0],\n \"57683\": [0, 0.12, 0, 0],\n },\n \"Typewriter-Regular\": {\n \"33\": [0, 0.61111, 0, 0],\n \"34\": [0, 0.61111, 0, 0],\n \"35\": [0, 0.61111, 0, 0],\n \"36\": [0.08333, 0.69444, 0, 0],\n \"37\": [0.08333, 0.69444, 0, 0],\n \"38\": [0, 0.61111, 0, 0],\n \"39\": [0, 0.61111, 0, 0],\n \"40\": [0.08333, 0.69444, 0, 0],\n \"41\": [0.08333, 0.69444, 0, 0],\n \"42\": [0, 0.52083, 0, 0],\n \"43\": [-0.08056, 0.53055, 0, 0],\n \"44\": [0.13889, 0.125, 0, 0],\n \"45\": [-0.08056, 0.53055, 0, 0],\n \"46\": [0, 0.125, 0, 0],\n \"47\": [0.08333, 0.69444, 0, 0],\n \"48\": [0, 0.61111, 0, 0],\n \"49\": [0, 0.61111, 0, 0],\n \"50\": [0, 0.61111, 0, 0],\n \"51\": [0, 0.61111, 0, 0],\n \"52\": [0, 0.61111, 0, 0],\n \"53\": [0, 0.61111, 0, 0],\n \"54\": [0, 0.61111, 0, 0],\n \"55\": [0, 0.61111, 0, 0],\n \"56\": [0, 0.61111, 0, 0],\n \"57\": [0, 0.61111, 0, 0],\n \"58\": [0, 0.43056, 0, 0],\n \"59\": [0.13889, 0.43056, 0, 0],\n \"60\": [-0.05556, 0.55556, 0, 0],\n \"61\": [-0.19549, 0.41562, 0, 0],\n \"62\": [-0.05556, 0.55556, 0, 0],\n \"63\": [0, 0.61111, 0, 0],\n \"64\": [0, 0.61111, 0, 0],\n \"65\": [0, 0.61111, 0, 0],\n \"66\": [0, 0.61111, 0, 0],\n \"67\": [0, 0.61111, 0, 0],\n \"68\": [0, 0.61111, 0, 0],\n \"69\": [0, 0.61111, 0, 0],\n \"70\": [0, 0.61111, 0, 0],\n \"71\": [0, 0.61111, 0, 0],\n \"72\": [0, 0.61111, 0, 0],\n \"73\": [0, 0.61111, 0, 0],\n \"74\": [0, 0.61111, 0, 0],\n \"75\": [0, 0.61111, 0, 0],\n \"76\": [0, 0.61111, 0, 0],\n \"77\": [0, 0.61111, 0, 0],\n \"78\": [0, 0.61111, 0, 0],\n \"79\": [0, 0.61111, 0, 0],\n \"80\": [0, 0.61111, 0, 0],\n \"81\": [0.13889, 0.61111, 0, 0],\n \"82\": [0, 0.61111, 0, 0],\n \"83\": [0, 0.61111, 0, 0],\n \"84\": [0, 0.61111, 0, 0],\n \"85\": [0, 0.61111, 0, 0],\n \"86\": [0, 0.61111, 0, 0],\n \"87\": [0, 0.61111, 0, 0],\n \"88\": [0, 0.61111, 0, 0],\n \"89\": [0, 0.61111, 0, 0],\n \"90\": [0, 0.61111, 0, 0],\n \"91\": [0.08333, 0.69444, 0, 0],\n \"92\": [0.08333, 0.69444, 0, 0],\n \"93\": [0.08333, 0.69444, 0, 0],\n \"94\": [0, 0.61111, 0, 0],\n \"95\": [0.09514, 0, 0, 0],\n \"96\": [0, 0.61111, 0, 0],\n \"97\": [0, 0.43056, 0, 0],\n \"98\": [0, 0.61111, 0, 0],\n \"99\": [0, 0.43056, 0, 0],\n \"100\": [0, 0.61111, 0, 0],\n \"101\": [0, 0.43056, 0, 0],\n \"102\": [0, 0.61111, 0, 0],\n \"103\": [0.22222, 0.43056, 0, 0],\n \"104\": [0, 0.61111, 0, 0],\n \"105\": [0, 0.61111, 0, 0],\n \"106\": [0.22222, 0.61111, 0, 0],\n \"107\": [0, 0.61111, 0, 0],\n \"108\": [0, 0.61111, 0, 0],\n \"109\": [0, 0.43056, 0, 0],\n \"110\": [0, 0.43056, 0, 0],\n \"111\": [0, 0.43056, 0, 0],\n \"112\": [0.22222, 0.43056, 0, 0],\n \"113\": [0.22222, 0.43056, 0, 0],\n \"114\": [0, 0.43056, 0, 0],\n \"115\": [0, 0.43056, 0, 0],\n \"116\": [0, 0.55358, 0, 0],\n \"117\": [0, 0.43056, 0, 0],\n \"118\": [0, 0.43056, 0, 0],\n \"119\": [0, 0.43056, 0, 0],\n \"120\": [0, 0.43056, 0, 0],\n \"121\": [0.22222, 0.43056, 0, 0],\n \"122\": [0, 0.43056, 0, 0],\n \"123\": [0.08333, 0.69444, 0, 0],\n \"124\": [0.08333, 0.69444, 0, 0],\n \"125\": [0.08333, 0.69444, 0, 0],\n \"126\": [0, 0.61111, 0, 0],\n \"127\": [0, 0.61111, 0, 0],\n \"305\": [0, 0.43056, 0, 0],\n \"567\": [0.22222, 0.43056, 0, 0],\n \"768\": [0, 0.61111, 0, 0],\n \"769\": [0, 0.61111, 0, 0],\n \"770\": [0, 0.61111, 0, 0],\n \"771\": [0, 0.61111, 0, 0],\n \"772\": [0, 0.56555, 0, 0],\n \"774\": [0, 0.61111, 0, 0],\n \"776\": [0, 0.61111, 0, 0],\n \"778\": [0, 0.61111, 0, 0],\n \"780\": [0, 0.56597, 0, 0],\n \"915\": [0, 0.61111, 0, 0],\n \"916\": [0, 0.61111, 0, 0],\n \"920\": [0, 0.61111, 0, 0],\n \"923\": [0, 0.61111, 0, 0],\n \"926\": [0, 0.61111, 0, 0],\n \"928\": [0, 0.61111, 0, 0],\n \"931\": [0, 0.61111, 0, 0],\n \"933\": [0, 0.61111, 0, 0],\n \"934\": [0, 0.61111, 0, 0],\n \"936\": [0, 0.61111, 0, 0],\n \"937\": [0, 0.61111, 0, 0],\n \"2018\": [0, 0.61111, 0, 0],\n \"2019\": [0, 0.61111, 0, 0],\n \"8242\": [0, 0.61111, 0, 0],\n },\n};\n","var utils = require(\"./utils\");\nvar ParseError = require(\"./ParseError\");\n\n/* This file contains a list of functions that we parse, identified by\n * the calls to defineFunction.\n *\n * The first argument to defineFunction is a single name or a list of names.\n * All functions named in such a list will share a single implementation.\n *\n * Each declared function can have associated properties, which\n * include the following:\n *\n * - numArgs: The number of arguments the function takes.\n * If this is the only property, it can be passed as a number\n * instead of an element of a properties object.\n * - argTypes: (optional) An array corresponding to each argument of the\n * function, giving the type of argument that should be parsed. Its\n * length should be equal to `numArgs + numOptionalArgs`. Valid\n * types:\n * - \"size\": A size-like thing, such as \"1em\" or \"5ex\"\n * - \"color\": An html color, like \"#abc\" or \"blue\"\n * - \"original\": The same type as the environment that the\n * function being parsed is in (e.g. used for the\n * bodies of functions like \\color where the first\n * argument is special and the second argument is\n * parsed normally)\n * Other possible types (probably shouldn't be used)\n * - \"text\": Text-like (e.g. \\text)\n * - \"math\": Normal math\n * If undefined, this will be treated as an appropriate length\n * array of \"original\" strings\n * - greediness: (optional) The greediness of the function to use ungrouped\n * arguments.\n *\n * E.g. if you have an expression\n * \\sqrt \\frac 1 2\n * since \\frac has greediness=2 vs \\sqrt's greediness=1, \\frac\n * will use the two arguments '1' and '2' as its two arguments,\n * then that whole function will be used as the argument to\n * \\sqrt. On the other hand, the expressions\n * \\frac \\frac 1 2 3\n * and\n * \\frac \\sqrt 1 2\n * will fail because \\frac and \\frac have equal greediness\n * and \\sqrt has a lower greediness than \\frac respectively. To\n * make these parse, we would have to change them to:\n * \\frac {\\frac 1 2} 3\n * and\n * \\frac {\\sqrt 1} 2\n *\n * The default value is `1`\n * - allowedInText: (optional) Whether or not the function is allowed inside\n * text mode (default false)\n * - numOptionalArgs: (optional) The number of optional arguments the function\n * should parse. If the optional arguments aren't found,\n * `null` will be passed to the handler in their place.\n * (default 0)\n *\n * The last argument is that implementation, the handler for the function(s).\n * It is called to handle these functions and their arguments.\n * It receives two arguments:\n * - context contains information and references provided by the parser\n * - args is an array of arguments obtained from TeX input\n * The context contains the following properties:\n * - funcName: the text (i.e. name) of the function, including \\\n * - parser: the parser object\n * - lexer: the lexer object\n * - positions: the positions in the overall string of the function\n * and the arguments.\n * The latter three should only be used to produce error messages.\n *\n * The function should return an object with the following keys:\n * - type: The type of element that this is. This is then used in\n * buildHTML/buildMathML to determine which function\n * should be called to build this node into a DOM node\n * Any other data can be added to the object, which will be passed\n * in to the function in buildHTML/buildMathML as `group.value`.\n */\n\nfunction defineFunction(names, props, handler) {\n if (typeof names === \"string\") {\n names = [names];\n }\n if (typeof props === \"number\") {\n props = { numArgs: props };\n }\n // Set default values of functions\n var data = {\n numArgs: props.numArgs,\n argTypes: props.argTypes,\n greediness: (props.greediness === undefined) ? 1 : props.greediness,\n allowedInText: !!props.allowedInText,\n numOptionalArgs: props.numOptionalArgs || 0,\n handler: handler,\n };\n for (var i = 0; i < names.length; ++i) {\n module.exports[names[i]] = data;\n }\n}\n\n// A normal square root\ndefineFunction(\"\\\\sqrt\", {\n numArgs: 1,\n numOptionalArgs: 1,\n}, function(context, args) {\n var index = args[0];\n var body = args[1];\n return {\n type: \"sqrt\",\n body: body,\n index: index,\n };\n});\n\n// Some non-mathy text\ndefineFunction(\"\\\\text\", {\n numArgs: 1,\n argTypes: [\"text\"],\n greediness: 2,\n}, function(context, args) {\n var body = args[0];\n // Since the corresponding buildHTML/buildMathML function expects a\n // list of elements, we normalize for different kinds of arguments\n // TODO(emily): maybe this should be done somewhere else\n var inner;\n if (body.type === \"ordgroup\") {\n inner = body.value;\n } else {\n inner = [body];\n }\n\n return {\n type: \"text\",\n body: inner,\n };\n});\n\n// A two-argument custom color\ndefineFunction(\"\\\\color\", {\n numArgs: 2,\n allowedInText: true,\n greediness: 3,\n argTypes: [\"color\", \"original\"],\n}, function(context, args) {\n var color = args[0];\n var body = args[1];\n // Normalize the different kinds of bodies (see \\text above)\n var inner;\n if (body.type === \"ordgroup\") {\n inner = body.value;\n } else {\n inner = [body];\n }\n\n return {\n type: \"color\",\n color: color.value,\n value: inner,\n };\n});\n\n// An overline\ndefineFunction(\"\\\\overline\", {\n numArgs: 1,\n}, function(context, args) {\n var body = args[0];\n return {\n type: \"overline\",\n body: body,\n };\n});\n\n// An underline\ndefineFunction(\"\\\\underline\", {\n numArgs: 1,\n}, function(context, args) {\n var body = args[0];\n return {\n type: \"underline\",\n body: body,\n };\n});\n\n// A box of the width and height\ndefineFunction(\"\\\\rule\", {\n numArgs: 2,\n numOptionalArgs: 1,\n argTypes: [\"size\", \"size\", \"size\"],\n}, function(context, args) {\n var shift = args[0];\n var width = args[1];\n var height = args[2];\n return {\n type: \"rule\",\n shift: shift && shift.value,\n width: width.value,\n height: height.value,\n };\n});\n\n// A KaTeX logo\ndefineFunction(\"\\\\KaTeX\", {\n numArgs: 0,\n}, function(context) {\n return {\n type: \"katex\",\n };\n});\n\ndefineFunction(\"\\\\phantom\", {\n numArgs: 1,\n}, function(context, args) {\n var body = args[0];\n var inner;\n if (body.type === \"ordgroup\") {\n inner = body.value;\n } else {\n inner = [body];\n }\n\n return {\n type: \"phantom\",\n value: inner,\n };\n});\n\n// Extra data needed for the delimiter handler down below\nvar delimiterSizes = {\n \"\\\\bigl\" : {type: \"open\", size: 1},\n \"\\\\Bigl\" : {type: \"open\", size: 2},\n \"\\\\biggl\": {type: \"open\", size: 3},\n \"\\\\Biggl\": {type: \"open\", size: 4},\n \"\\\\bigr\" : {type: \"close\", size: 1},\n \"\\\\Bigr\" : {type: \"close\", size: 2},\n \"\\\\biggr\": {type: \"close\", size: 3},\n \"\\\\Biggr\": {type: \"close\", size: 4},\n \"\\\\bigm\" : {type: \"rel\", size: 1},\n \"\\\\Bigm\" : {type: \"rel\", size: 2},\n \"\\\\biggm\": {type: \"rel\", size: 3},\n \"\\\\Biggm\": {type: \"rel\", size: 4},\n \"\\\\big\" : {type: \"textord\", size: 1},\n \"\\\\Big\" : {type: \"textord\", size: 2},\n \"\\\\bigg\" : {type: \"textord\", size: 3},\n \"\\\\Bigg\" : {type: \"textord\", size: 4},\n};\n\nvar delimiters = [\n \"(\", \")\", \"[\", \"\\\\lbrack\", \"]\", \"\\\\rbrack\",\n \"\\\\{\", \"\\\\lbrace\", \"\\\\}\", \"\\\\rbrace\",\n \"\\\\lfloor\", \"\\\\rfloor\", \"\\\\lceil\", \"\\\\rceil\",\n \"<\", \">\", \"\\\\langle\", \"\\\\rangle\", \"\\\\lt\", \"\\\\gt\",\n \"\\\\lvert\", \"\\\\rvert\", \"\\\\lVert\", \"\\\\rVert\",\n \"\\\\lgroup\", \"\\\\rgroup\", \"\\\\lmoustache\", \"\\\\rmoustache\",\n \"/\", \"\\\\backslash\",\n \"|\", \"\\\\vert\", \"\\\\|\", \"\\\\Vert\",\n \"\\\\uparrow\", \"\\\\Uparrow\",\n \"\\\\downarrow\", \"\\\\Downarrow\",\n \"\\\\updownarrow\", \"\\\\Updownarrow\",\n \".\",\n];\n\nvar fontAliases = {\n \"\\\\Bbb\": \"\\\\mathbb\",\n \"\\\\bold\": \"\\\\mathbf\",\n \"\\\\frak\": \"\\\\mathfrak\",\n};\n\n// Single-argument color functions\ndefineFunction([\n \"\\\\blue\", \"\\\\orange\", \"\\\\pink\", \"\\\\red\",\n \"\\\\green\", \"\\\\gray\", \"\\\\purple\",\n \"\\\\blueA\", \"\\\\blueB\", \"\\\\blueC\", \"\\\\blueD\", \"\\\\blueE\",\n \"\\\\tealA\", \"\\\\tealB\", \"\\\\tealC\", \"\\\\tealD\", \"\\\\tealE\",\n \"\\\\greenA\", \"\\\\greenB\", \"\\\\greenC\", \"\\\\greenD\", \"\\\\greenE\",\n \"\\\\goldA\", \"\\\\goldB\", \"\\\\goldC\", \"\\\\goldD\", \"\\\\goldE\",\n \"\\\\redA\", \"\\\\redB\", \"\\\\redC\", \"\\\\redD\", \"\\\\redE\",\n \"\\\\maroonA\", \"\\\\maroonB\", \"\\\\maroonC\", \"\\\\maroonD\", \"\\\\maroonE\",\n \"\\\\purpleA\", \"\\\\purpleB\", \"\\\\purpleC\", \"\\\\purpleD\", \"\\\\purpleE\",\n \"\\\\mintA\", \"\\\\mintB\", \"\\\\mintC\",\n \"\\\\grayA\", \"\\\\grayB\", \"\\\\grayC\", \"\\\\grayD\", \"\\\\grayE\",\n \"\\\\grayF\", \"\\\\grayG\", \"\\\\grayH\", \"\\\\grayI\",\n \"\\\\kaBlue\", \"\\\\kaGreen\",\n], {\n numArgs: 1,\n allowedInText: true,\n greediness: 3,\n}, function(context, args) {\n var body = args[0];\n var atoms;\n if (body.type === \"ordgroup\") {\n atoms = body.value;\n } else {\n atoms = [body];\n }\n\n return {\n type: \"color\",\n color: \"katex-\" + context.funcName.slice(1),\n value: atoms,\n };\n});\n\n// There are 2 flags for operators; whether they produce limits in\n// displaystyle, and whether they are symbols and should grow in\n// displaystyle. These four groups cover the four possible choices.\n\n// No limits, not symbols\ndefineFunction([\n \"\\\\arcsin\", \"\\\\arccos\", \"\\\\arctan\", \"\\\\arg\", \"\\\\cos\", \"\\\\cosh\",\n \"\\\\cot\", \"\\\\coth\", \"\\\\csc\", \"\\\\deg\", \"\\\\dim\", \"\\\\exp\", \"\\\\hom\",\n \"\\\\ker\", \"\\\\lg\", \"\\\\ln\", \"\\\\log\", \"\\\\sec\", \"\\\\sin\", \"\\\\sinh\",\n \"\\\\tan\", \"\\\\tanh\",\n], {\n numArgs: 0,\n}, function(context) {\n return {\n type: \"op\",\n limits: false,\n symbol: false,\n body: context.funcName,\n };\n});\n\n// Limits, not symbols\ndefineFunction([\n \"\\\\det\", \"\\\\gcd\", \"\\\\inf\", \"\\\\lim\", \"\\\\liminf\", \"\\\\limsup\", \"\\\\max\",\n \"\\\\min\", \"\\\\Pr\", \"\\\\sup\",\n], {\n numArgs: 0,\n}, function(context) {\n return {\n type: \"op\",\n limits: true,\n symbol: false,\n body: context.funcName,\n };\n});\n\n// No limits, symbols\ndefineFunction([\n \"\\\\int\", \"\\\\iint\", \"\\\\iiint\", \"\\\\oint\",\n], {\n numArgs: 0,\n}, function(context) {\n return {\n type: \"op\",\n limits: false,\n symbol: true,\n body: context.funcName,\n };\n});\n\n// Limits, symbols\ndefineFunction([\n \"\\\\coprod\", \"\\\\bigvee\", \"\\\\bigwedge\", \"\\\\biguplus\", \"\\\\bigcap\",\n \"\\\\bigcup\", \"\\\\intop\", \"\\\\prod\", \"\\\\sum\", \"\\\\bigotimes\",\n \"\\\\bigoplus\", \"\\\\bigodot\", \"\\\\bigsqcup\", \"\\\\smallint\",\n], {\n numArgs: 0,\n}, function(context) {\n return {\n type: \"op\",\n limits: true,\n symbol: true,\n body: context.funcName,\n };\n});\n\n// Fractions\ndefineFunction([\n \"\\\\dfrac\", \"\\\\frac\", \"\\\\tfrac\",\n \"\\\\dbinom\", \"\\\\binom\", \"\\\\tbinom\",\n], {\n numArgs: 2,\n greediness: 2,\n}, function(context, args) {\n var numer = args[0];\n var denom = args[1];\n var hasBarLine;\n var leftDelim = null;\n var rightDelim = null;\n var size = \"auto\";\n\n switch (context.funcName) {\n case \"\\\\dfrac\":\n case \"\\\\frac\":\n case \"\\\\tfrac\":\n hasBarLine = true;\n break;\n case \"\\\\dbinom\":\n case \"\\\\binom\":\n case \"\\\\tbinom\":\n hasBarLine = false;\n leftDelim = \"(\";\n rightDelim = \")\";\n break;\n default:\n throw new Error(\"Unrecognized genfrac command\");\n }\n\n switch (context.funcName) {\n case \"\\\\dfrac\":\n case \"\\\\dbinom\":\n size = \"display\";\n break;\n case \"\\\\tfrac\":\n case \"\\\\tbinom\":\n size = \"text\";\n break;\n }\n\n return {\n type: \"genfrac\",\n numer: numer,\n denom: denom,\n hasBarLine: hasBarLine,\n leftDelim: leftDelim,\n rightDelim: rightDelim,\n size: size,\n };\n});\n\n// Left and right overlap functions\ndefineFunction([\"\\\\llap\", \"\\\\rlap\"], {\n numArgs: 1,\n allowedInText: true,\n}, function(context, args) {\n var body = args[0];\n return {\n type: context.funcName.slice(1),\n body: body,\n };\n});\n\n// Delimiter functions\ndefineFunction([\n \"\\\\bigl\", \"\\\\Bigl\", \"\\\\biggl\", \"\\\\Biggl\",\n \"\\\\bigr\", \"\\\\Bigr\", \"\\\\biggr\", \"\\\\Biggr\",\n \"\\\\bigm\", \"\\\\Bigm\", \"\\\\biggm\", \"\\\\Biggm\",\n \"\\\\big\", \"\\\\Big\", \"\\\\bigg\", \"\\\\Bigg\",\n \"\\\\left\", \"\\\\right\",\n], {\n numArgs: 1,\n}, function(context, args) {\n var delim = args[0];\n if (!utils.contains(delimiters, delim.value)) {\n throw new ParseError(\n \"Invalid delimiter: '\" + delim.value + \"' after '\" +\n context.funcName + \"'\",\n context.lexer, context.positions[1]);\n }\n\n // \\left and \\right are caught somewhere in Parser.js, which is\n // why this data doesn't match what is in buildHTML.\n if (context.funcName === \"\\\\left\" || context.funcName === \"\\\\right\") {\n return {\n type: \"leftright\",\n value: delim.value,\n };\n } else {\n return {\n type: \"delimsizing\",\n size: delimiterSizes[context.funcName].size,\n delimType: delimiterSizes[context.funcName].type,\n value: delim.value,\n };\n }\n});\n\n// Sizing functions (handled in Parser.js explicitly, hence no handler)\ndefineFunction([\n \"\\\\tiny\", \"\\\\scriptsize\", \"\\\\footnotesize\", \"\\\\small\",\n \"\\\\normalsize\", \"\\\\large\", \"\\\\Large\", \"\\\\LARGE\", \"\\\\huge\", \"\\\\Huge\",\n], 0, null);\n\n// Style changing functions (handled in Parser.js explicitly, hence no\n// handler)\ndefineFunction([\n \"\\\\displaystyle\", \"\\\\textstyle\", \"\\\\scriptstyle\",\n \"\\\\scriptscriptstyle\",\n], 0, null);\n\ndefineFunction([\n // styles\n \"\\\\mathrm\", \"\\\\mathit\", \"\\\\mathbf\",\n\n // families\n \"\\\\mathbb\", \"\\\\mathcal\", \"\\\\mathfrak\", \"\\\\mathscr\", \"\\\\mathsf\",\n \"\\\\mathtt\",\n\n // aliases\n \"\\\\Bbb\", \"\\\\bold\", \"\\\\frak\",\n], {\n numArgs: 1,\n greediness: 2,\n}, function(context, args) {\n var body = args[0];\n var func = context.funcName;\n if (func in fontAliases) {\n func = fontAliases[func];\n }\n return {\n type: \"font\",\n font: func.slice(1),\n body: body,\n };\n});\n\n// Accents\ndefineFunction([\n \"\\\\acute\", \"\\\\grave\", \"\\\\ddot\", \"\\\\tilde\", \"\\\\bar\", \"\\\\breve\",\n \"\\\\check\", \"\\\\hat\", \"\\\\vec\", \"\\\\dot\",\n // We don't support expanding accents yet\n // \"\\\\widetilde\", \"\\\\widehat\"\n], {\n numArgs: 1,\n}, function(context, args) {\n var base = args[0];\n return {\n type: \"accent\",\n accent: context.funcName,\n base: base,\n };\n});\n\n// Infix generalized fractions\ndefineFunction([\"\\\\over\", \"\\\\choose\"], {\n numArgs: 0,\n}, function(context) {\n var replaceWith;\n switch (context.funcName) {\n case \"\\\\over\":\n replaceWith = \"\\\\frac\";\n break;\n case \"\\\\choose\":\n replaceWith = \"\\\\binom\";\n break;\n default:\n throw new Error(\"Unrecognized infix genfrac command\");\n }\n return {\n type: \"infix\",\n replaceWith: replaceWith,\n };\n});\n\n// Row breaks for aligned data\ndefineFunction([\"\\\\\\\\\", \"\\\\cr\"], {\n numArgs: 0,\n numOptionalArgs: 1,\n argTypes: [\"size\"],\n}, function(context, args) {\n var size = args[0];\n return {\n type: \"cr\",\n size: size,\n };\n});\n\n// Environment delimiters\ndefineFunction([\"\\\\begin\", \"\\\\end\"], {\n numArgs: 1,\n argTypes: [\"text\"],\n}, function(context, args) {\n var nameGroup = args[0];\n if (nameGroup.type !== \"ordgroup\") {\n throw new ParseError(\n \"Invalid environment name\",\n context.lexer, context.positions[1]);\n }\n var name = \"\";\n for (var i = 0; i < nameGroup.value.length; ++i) {\n name += nameGroup.value[i].value;\n }\n return {\n type: \"environment\",\n name: name,\n namepos: context.positions[1],\n };\n});\n","/**\n * These objects store data about MathML nodes. This is the MathML equivalent\n * of the types in domTree.js. Since MathML handles its own rendering, and\n * since we're mainly using MathML to improve accessibility, we don't manage\n * any of the styling state that the plain DOM nodes do.\n *\n * The `toNode` and `toMarkup` functions work simlarly to how they do in\n * domTree.js, creating namespaced DOM nodes and HTML text markup respectively.\n */\n\nvar utils = require(\"./utils\");\n\n/**\n * This node represents a general purpose MathML node of any type. The\n * constructor requires the type of node to create (for example, `\"mo\"` or\n * `\"mspace\"`, corresponding to `` and `` tags).\n */\nfunction MathNode(type, children) {\n this.type = type;\n this.attributes = {};\n this.children = children || [];\n}\n\n/**\n * Sets an attribute on a MathML node. MathML depends on attributes to convey a\n * semantic content, so this is used heavily.\n */\nMathNode.prototype.setAttribute = function(name, value) {\n this.attributes[name] = value;\n};\n\n/**\n * Converts the math node into a MathML-namespaced DOM element.\n */\nMathNode.prototype.toNode = function() {\n var node = document.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\", this.type);\n\n for (var attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n node.setAttribute(attr, this.attributes[attr]);\n }\n }\n\n for (var i = 0; i < this.children.length; i++) {\n node.appendChild(this.children[i].toNode());\n }\n\n return node;\n};\n\n/**\n * Converts the math node into an HTML markup string.\n */\nMathNode.prototype.toMarkup = function() {\n var markup = \"<\" + this.type;\n\n // Add the attributes\n for (var attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n markup += \" \" + attr + \"=\\\"\";\n markup += utils.escape(this.attributes[attr]);\n markup += \"\\\"\";\n }\n }\n\n markup += \">\";\n\n for (var i = 0; i < this.children.length; i++) {\n markup += this.children[i].toMarkup();\n }\n\n markup += \"\";\n\n return markup;\n};\n\n/**\n * This node represents a piece of text.\n */\nfunction TextNode(text) {\n this.text = text;\n}\n\n/**\n * Converts the text node into a DOM text node.\n */\nTextNode.prototype.toNode = function() {\n return document.createTextNode(this.text);\n};\n\n/**\n * Converts the text node into HTML markup (which is just the text itself).\n */\nTextNode.prototype.toMarkup = function() {\n return utils.escape(this.text);\n};\n\nmodule.exports = {\n MathNode: MathNode,\n TextNode: TextNode,\n};\n","/**\n * The resulting parse tree nodes of the parse tree.\n */\nfunction ParseNode(type, value, mode) {\n this.type = type;\n this.value = value;\n this.mode = mode;\n}\n\nmodule.exports = {\n ParseNode: ParseNode,\n};\n\n","/**\n * Provides a single function for parsing an expression using a Parser\n * TODO(emily): Remove this\n */\n\nvar Parser = require(\"./Parser\");\n\n/**\n * Parses an expression using a Parser, then returns the parsed result.\n */\nvar parseTree = function(toParse, settings) {\n var parser = new Parser(toParse, settings);\n\n return parser.parse();\n};\n\nmodule.exports = parseTree;\n","/**\n * This file holds a list of all no-argument functions and single-character\n * symbols (like 'a' or ';').\n *\n * For each of the symbols, there are three properties they can have:\n * - font (required): the font to be used for this symbol. Either \"main\" (the\n normal font), or \"ams\" (the ams fonts).\n * - group (required): the ParseNode group type the symbol should have (i.e.\n \"textord\", \"mathord\", etc).\n See https://github.com/Khan/KaTeX/wiki/Examining-TeX#group-types\n * - replace: the character that this symbol or function should be\n * replaced with (i.e. \"\\phi\" has a replace value of \"\\u03d5\", the phi\n * character in the main font).\n *\n * The outermost map in the table indicates what mode the symbols should be\n * accepted in (e.g. \"math\" or \"text\").\n */\n\nmodule.exports = {\n math: {},\n text: {},\n};\n\nfunction defineSymbol(mode, font, group, replace, name) {\n module.exports[mode][name] = {\n font: font,\n group: group,\n replace: replace,\n };\n}\n\n// Some abbreviations for commonly used strings.\n// This helps minify the code, and also spotting typos using jshint.\n\n// modes:\nvar math = \"math\";\nvar text = \"text\";\n\n// fonts:\nvar main = \"main\";\nvar ams = \"ams\";\n\n// groups:\nvar accent = \"accent\";\nvar bin = \"bin\";\nvar close = \"close\";\nvar inner = \"inner\";\nvar mathord = \"mathord\";\nvar op = \"op\";\nvar open = \"open\";\nvar punct = \"punct\";\nvar rel = \"rel\";\nvar spacing = \"spacing\";\nvar textord = \"textord\";\n\n// Now comes the symbol table\n\n// Relation Symbols\ndefineSymbol(math, main, rel, \"\\u2261\", \"\\\\equiv\");\ndefineSymbol(math, main, rel, \"\\u227a\", \"\\\\prec\");\ndefineSymbol(math, main, rel, \"\\u227b\", \"\\\\succ\");\ndefineSymbol(math, main, rel, \"\\u223c\", \"\\\\sim\");\ndefineSymbol(math, main, rel, \"\\u22a5\", \"\\\\perp\");\ndefineSymbol(math, main, rel, \"\\u2aaf\", \"\\\\preceq\");\ndefineSymbol(math, main, rel, \"\\u2ab0\", \"\\\\succeq\");\ndefineSymbol(math, main, rel, \"\\u2243\", \"\\\\simeq\");\ndefineSymbol(math, main, rel, \"\\u2223\", \"\\\\mid\");\ndefineSymbol(math, main, rel, \"\\u226a\", \"\\\\ll\");\ndefineSymbol(math, main, rel, \"\\u226b\", \"\\\\gg\");\ndefineSymbol(math, main, rel, \"\\u224d\", \"\\\\asymp\");\ndefineSymbol(math, main, rel, \"\\u2225\", \"\\\\parallel\");\ndefineSymbol(math, main, rel, \"\\u22c8\", \"\\\\bowtie\");\ndefineSymbol(math, main, rel, \"\\u2323\", \"\\\\smile\");\ndefineSymbol(math, main, rel, \"\\u2291\", \"\\\\sqsubseteq\");\ndefineSymbol(math, main, rel, \"\\u2292\", \"\\\\sqsupseteq\");\ndefineSymbol(math, main, rel, \"\\u2250\", \"\\\\doteq\");\ndefineSymbol(math, main, rel, \"\\u2322\", \"\\\\frown\");\ndefineSymbol(math, main, rel, \"\\u220b\", \"\\\\ni\");\ndefineSymbol(math, main, rel, \"\\u221d\", \"\\\\propto\");\ndefineSymbol(math, main, rel, \"\\u22a2\", \"\\\\vdash\");\ndefineSymbol(math, main, rel, \"\\u22a3\", \"\\\\dashv\");\ndefineSymbol(math, main, rel, \"\\u220b\", \"\\\\owns\");\n\n// Punctuation\ndefineSymbol(math, main, punct, \"\\u002e\", \"\\\\ldotp\");\ndefineSymbol(math, main, punct, \"\\u22c5\", \"\\\\cdotp\");\n\n// Misc Symbols\ndefineSymbol(math, main, textord, \"\\u0023\", \"\\\\#\");\ndefineSymbol(math, main, textord, \"\\u0026\", \"\\\\&\");\ndefineSymbol(math, main, textord, \"\\u2135\", \"\\\\aleph\");\ndefineSymbol(math, main, textord, \"\\u2200\", \"\\\\forall\");\ndefineSymbol(math, main, textord, \"\\u210f\", \"\\\\hbar\");\ndefineSymbol(math, main, textord, \"\\u2203\", \"\\\\exists\");\ndefineSymbol(math, main, textord, \"\\u2207\", \"\\\\nabla\");\ndefineSymbol(math, main, textord, \"\\u266d\", \"\\\\flat\");\ndefineSymbol(math, main, textord, \"\\u2113\", \"\\\\ell\");\ndefineSymbol(math, main, textord, \"\\u266e\", \"\\\\natural\");\ndefineSymbol(math, main, textord, \"\\u2663\", \"\\\\clubsuit\");\ndefineSymbol(math, main, textord, \"\\u2118\", \"\\\\wp\");\ndefineSymbol(math, main, textord, \"\\u266f\", \"\\\\sharp\");\ndefineSymbol(math, main, textord, \"\\u2662\", \"\\\\diamondsuit\");\ndefineSymbol(math, main, textord, \"\\u211c\", \"\\\\Re\");\ndefineSymbol(math, main, textord, \"\\u2661\", \"\\\\heartsuit\");\ndefineSymbol(math, main, textord, \"\\u2111\", \"\\\\Im\");\ndefineSymbol(math, main, textord, \"\\u2660\", \"\\\\spadesuit\");\n\n// Math and Text\ndefineSymbol(math, main, textord, \"\\u2020\", \"\\\\dag\");\ndefineSymbol(math, main, textord, \"\\u2021\", \"\\\\ddag\");\n\n// Large Delimiters\ndefineSymbol(math, main, close, \"\\u23b1\", \"\\\\rmoustache\");\ndefineSymbol(math, main, open, \"\\u23b0\", \"\\\\lmoustache\");\ndefineSymbol(math, main, close, \"\\u27ef\", \"\\\\rgroup\");\ndefineSymbol(math, main, open, \"\\u27ee\", \"\\\\lgroup\");\n\n// Binary Operators\ndefineSymbol(math, main, bin, \"\\u2213\", \"\\\\mp\");\ndefineSymbol(math, main, bin, \"\\u2296\", \"\\\\ominus\");\ndefineSymbol(math, main, bin, \"\\u228e\", \"\\\\uplus\");\ndefineSymbol(math, main, bin, \"\\u2293\", \"\\\\sqcap\");\ndefineSymbol(math, main, bin, \"\\u2217\", \"\\\\ast\");\ndefineSymbol(math, main, bin, \"\\u2294\", \"\\\\sqcup\");\ndefineSymbol(math, main, bin, \"\\u25ef\", \"\\\\bigcirc\");\ndefineSymbol(math, main, bin, \"\\u2219\", \"\\\\bullet\");\ndefineSymbol(math, main, bin, \"\\u2021\", \"\\\\ddagger\");\ndefineSymbol(math, main, bin, \"\\u2240\", \"\\\\wr\");\ndefineSymbol(math, main, bin, \"\\u2a3f\", \"\\\\amalg\");\n\n// Arrow Symbols\ndefineSymbol(math, main, rel, \"\\u27f5\", \"\\\\longleftarrow\");\ndefineSymbol(math, main, rel, \"\\u21d0\", \"\\\\Leftarrow\");\ndefineSymbol(math, main, rel, \"\\u27f8\", \"\\\\Longleftarrow\");\ndefineSymbol(math, main, rel, \"\\u27f6\", \"\\\\longrightarrow\");\ndefineSymbol(math, main, rel, \"\\u21d2\", \"\\\\Rightarrow\");\ndefineSymbol(math, main, rel, \"\\u27f9\", \"\\\\Longrightarrow\");\ndefineSymbol(math, main, rel, \"\\u2194\", \"\\\\leftrightarrow\");\ndefineSymbol(math, main, rel, \"\\u27f7\", \"\\\\longleftrightarrow\");\ndefineSymbol(math, main, rel, \"\\u21d4\", \"\\\\Leftrightarrow\");\ndefineSymbol(math, main, rel, \"\\u27fa\", \"\\\\Longleftrightarrow\");\ndefineSymbol(math, main, rel, \"\\u21a6\", \"\\\\mapsto\");\ndefineSymbol(math, main, rel, \"\\u27fc\", \"\\\\longmapsto\");\ndefineSymbol(math, main, rel, \"\\u2197\", \"\\\\nearrow\");\ndefineSymbol(math, main, rel, \"\\u21a9\", \"\\\\hookleftarrow\");\ndefineSymbol(math, main, rel, \"\\u21aa\", \"\\\\hookrightarrow\");\ndefineSymbol(math, main, rel, \"\\u2198\", \"\\\\searrow\");\ndefineSymbol(math, main, rel, \"\\u21bc\", \"\\\\leftharpoonup\");\ndefineSymbol(math, main, rel, \"\\u21c0\", \"\\\\rightharpoonup\");\ndefineSymbol(math, main, rel, \"\\u2199\", \"\\\\swarrow\");\ndefineSymbol(math, main, rel, \"\\u21bd\", \"\\\\leftharpoondown\");\ndefineSymbol(math, main, rel, \"\\u21c1\", \"\\\\rightharpoondown\");\ndefineSymbol(math, main, rel, \"\\u2196\", \"\\\\nwarrow\");\ndefineSymbol(math, main, rel, \"\\u21cc\", \"\\\\rightleftharpoons\");\n\n// AMS Negated Binary Relations\ndefineSymbol(math, ams, rel, \"\\u226e\", \"\\\\nless\");\ndefineSymbol(math, ams, rel, \"\\ue010\", \"\\\\nleqslant\");\ndefineSymbol(math, ams, rel, \"\\ue011\", \"\\\\nleqq\");\ndefineSymbol(math, ams, rel, \"\\u2a87\", \"\\\\lneq\");\ndefineSymbol(math, ams, rel, \"\\u2268\", \"\\\\lneqq\");\ndefineSymbol(math, ams, rel, \"\\ue00c\", \"\\\\lvertneqq\");\ndefineSymbol(math, ams, rel, \"\\u22e6\", \"\\\\lnsim\");\ndefineSymbol(math, ams, rel, \"\\u2a89\", \"\\\\lnapprox\");\ndefineSymbol(math, ams, rel, \"\\u2280\", \"\\\\nprec\");\ndefineSymbol(math, ams, rel, \"\\u22e0\", \"\\\\npreceq\");\ndefineSymbol(math, ams, rel, \"\\u22e8\", \"\\\\precnsim\");\ndefineSymbol(math, ams, rel, \"\\u2ab9\", \"\\\\precnapprox\");\ndefineSymbol(math, ams, rel, \"\\u2241\", \"\\\\nsim\");\ndefineSymbol(math, ams, rel, \"\\ue006\", \"\\\\nshortmid\");\ndefineSymbol(math, ams, rel, \"\\u2224\", \"\\\\nmid\");\ndefineSymbol(math, ams, rel, \"\\u22ac\", \"\\\\nvdash\");\ndefineSymbol(math, ams, rel, \"\\u22ad\", \"\\\\nvDash\");\ndefineSymbol(math, ams, rel, \"\\u22ea\", \"\\\\ntriangleleft\");\ndefineSymbol(math, ams, rel, \"\\u22ec\", \"\\\\ntrianglelefteq\");\ndefineSymbol(math, ams, rel, \"\\u228a\", \"\\\\subsetneq\");\ndefineSymbol(math, ams, rel, \"\\ue01a\", \"\\\\varsubsetneq\");\ndefineSymbol(math, ams, rel, \"\\u2acb\", \"\\\\subsetneqq\");\ndefineSymbol(math, ams, rel, \"\\ue017\", \"\\\\varsubsetneqq\");\ndefineSymbol(math, ams, rel, \"\\u226f\", \"\\\\ngtr\");\ndefineSymbol(math, ams, rel, \"\\ue00f\", \"\\\\ngeqslant\");\ndefineSymbol(math, ams, rel, \"\\ue00e\", \"\\\\ngeqq\");\ndefineSymbol(math, ams, rel, \"\\u2a88\", \"\\\\gneq\");\ndefineSymbol(math, ams, rel, \"\\u2269\", \"\\\\gneqq\");\ndefineSymbol(math, ams, rel, \"\\ue00d\", \"\\\\gvertneqq\");\ndefineSymbol(math, ams, rel, \"\\u22e7\", \"\\\\gnsim\");\ndefineSymbol(math, ams, rel, \"\\u2a8a\", \"\\\\gnapprox\");\ndefineSymbol(math, ams, rel, \"\\u2281\", \"\\\\nsucc\");\ndefineSymbol(math, ams, rel, \"\\u22e1\", \"\\\\nsucceq\");\ndefineSymbol(math, ams, rel, \"\\u22e9\", \"\\\\succnsim\");\ndefineSymbol(math, ams, rel, \"\\u2aba\", \"\\\\succnapprox\");\ndefineSymbol(math, ams, rel, \"\\u2246\", \"\\\\ncong\");\ndefineSymbol(math, ams, rel, \"\\ue007\", \"\\\\nshortparallel\");\ndefineSymbol(math, ams, rel, \"\\u2226\", \"\\\\nparallel\");\ndefineSymbol(math, ams, rel, \"\\u22af\", \"\\\\nVDash\");\ndefineSymbol(math, ams, rel, \"\\u22eb\", \"\\\\ntriangleright\");\ndefineSymbol(math, ams, rel, \"\\u22ed\", \"\\\\ntrianglerighteq\");\ndefineSymbol(math, ams, rel, \"\\ue018\", \"\\\\nsupseteqq\");\ndefineSymbol(math, ams, rel, \"\\u228b\", \"\\\\supsetneq\");\ndefineSymbol(math, ams, rel, \"\\ue01b\", \"\\\\varsupsetneq\");\ndefineSymbol(math, ams, rel, \"\\u2acc\", \"\\\\supsetneqq\");\ndefineSymbol(math, ams, rel, \"\\ue019\", \"\\\\varsupsetneqq\");\ndefineSymbol(math, ams, rel, \"\\u22ae\", \"\\\\nVdash\");\ndefineSymbol(math, ams, rel, \"\\u2ab5\", \"\\\\precneqq\");\ndefineSymbol(math, ams, rel, \"\\u2ab6\", \"\\\\succneqq\");\ndefineSymbol(math, ams, rel, \"\\ue016\", \"\\\\nsubseteqq\");\ndefineSymbol(math, ams, bin, \"\\u22b4\", \"\\\\unlhd\");\ndefineSymbol(math, ams, bin, \"\\u22b5\", \"\\\\unrhd\");\n\n// AMS Negated Arrows\ndefineSymbol(math, ams, rel, \"\\u219a\", \"\\\\nleftarrow\");\ndefineSymbol(math, ams, rel, \"\\u219b\", \"\\\\nrightarrow\");\ndefineSymbol(math, ams, rel, \"\\u21cd\", \"\\\\nLeftarrow\");\ndefineSymbol(math, ams, rel, \"\\u21cf\", \"\\\\nRightarrow\");\ndefineSymbol(math, ams, rel, \"\\u21ae\", \"\\\\nleftrightarrow\");\ndefineSymbol(math, ams, rel, \"\\u21ce\", \"\\\\nLeftrightarrow\");\n\n// AMS Misc\ndefineSymbol(math, ams, rel, \"\\u25b3\", \"\\\\vartriangle\");\ndefineSymbol(math, ams, textord, \"\\u210f\", \"\\\\hslash\");\ndefineSymbol(math, ams, textord, \"\\u25bd\", \"\\\\triangledown\");\ndefineSymbol(math, ams, textord, \"\\u25ca\", \"\\\\lozenge\");\ndefineSymbol(math, ams, textord, \"\\u24c8\", \"\\\\circledS\");\ndefineSymbol(math, ams, textord, \"\\u00ae\", \"\\\\circledR\");\ndefineSymbol(math, ams, textord, \"\\u2221\", \"\\\\measuredangle\");\ndefineSymbol(math, ams, textord, \"\\u2204\", \"\\\\nexists\");\ndefineSymbol(math, ams, textord, \"\\u2127\", \"\\\\mho\");\ndefineSymbol(math, ams, textord, \"\\u2132\", \"\\\\Finv\");\ndefineSymbol(math, ams, textord, \"\\u2141\", \"\\\\Game\");\ndefineSymbol(math, ams, textord, \"\\u006b\", \"\\\\Bbbk\");\ndefineSymbol(math, ams, textord, \"\\u2035\", \"\\\\backprime\");\ndefineSymbol(math, ams, textord, \"\\u25b2\", \"\\\\blacktriangle\");\ndefineSymbol(math, ams, textord, \"\\u25bc\", \"\\\\blacktriangledown\");\ndefineSymbol(math, ams, textord, \"\\u25a0\", \"\\\\blacksquare\");\ndefineSymbol(math, ams, textord, \"\\u29eb\", \"\\\\blacklozenge\");\ndefineSymbol(math, ams, textord, \"\\u2605\", \"\\\\bigstar\");\ndefineSymbol(math, ams, textord, \"\\u2222\", \"\\\\sphericalangle\");\ndefineSymbol(math, ams, textord, \"\\u2201\", \"\\\\complement\");\ndefineSymbol(math, ams, textord, \"\\u00f0\", \"\\\\eth\");\ndefineSymbol(math, ams, textord, \"\\u2571\", \"\\\\diagup\");\ndefineSymbol(math, ams, textord, \"\\u2572\", \"\\\\diagdown\");\ndefineSymbol(math, ams, textord, \"\\u25a1\", \"\\\\square\");\ndefineSymbol(math, ams, textord, \"\\u25a1\", \"\\\\Box\");\ndefineSymbol(math, ams, textord, \"\\u25ca\", \"\\\\Diamond\");\ndefineSymbol(math, ams, textord, \"\\u00a5\", \"\\\\yen\");\ndefineSymbol(math, ams, textord, \"\\u2713\", \"\\\\checkmark\");\n\n// AMS Hebrew\ndefineSymbol(math, ams, textord, \"\\u2136\", \"\\\\beth\");\ndefineSymbol(math, ams, textord, \"\\u2138\", \"\\\\daleth\");\ndefineSymbol(math, ams, textord, \"\\u2137\", \"\\\\gimel\");\n\n// AMS Greek\ndefineSymbol(math, ams, textord, \"\\u03dd\", \"\\\\digamma\");\ndefineSymbol(math, ams, textord, \"\\u03f0\", \"\\\\varkappa\");\n\n// AMS Delimiters\ndefineSymbol(math, ams, open, \"\\u250c\", \"\\\\ulcorner\");\ndefineSymbol(math, ams, close, \"\\u2510\", \"\\\\urcorner\");\ndefineSymbol(math, ams, open, \"\\u2514\", \"\\\\llcorner\");\ndefineSymbol(math, ams, close, \"\\u2518\", \"\\\\lrcorner\");\n\n// AMS Binary Relations\ndefineSymbol(math, ams, rel, \"\\u2266\", \"\\\\leqq\");\ndefineSymbol(math, ams, rel, \"\\u2a7d\", \"\\\\leqslant\");\ndefineSymbol(math, ams, rel, \"\\u2a95\", \"\\\\eqslantless\");\ndefineSymbol(math, ams, rel, \"\\u2272\", \"\\\\lesssim\");\ndefineSymbol(math, ams, rel, \"\\u2a85\", \"\\\\lessapprox\");\ndefineSymbol(math, ams, rel, \"\\u224a\", \"\\\\approxeq\");\ndefineSymbol(math, ams, bin, \"\\u22d6\", \"\\\\lessdot\");\ndefineSymbol(math, ams, rel, \"\\u22d8\", \"\\\\lll\");\ndefineSymbol(math, ams, rel, \"\\u2276\", \"\\\\lessgtr\");\ndefineSymbol(math, ams, rel, \"\\u22da\", \"\\\\lesseqgtr\");\ndefineSymbol(math, ams, rel, \"\\u2a8b\", \"\\\\lesseqqgtr\");\ndefineSymbol(math, ams, rel, \"\\u2251\", \"\\\\doteqdot\");\ndefineSymbol(math, ams, rel, \"\\u2253\", \"\\\\risingdotseq\");\ndefineSymbol(math, ams, rel, \"\\u2252\", \"\\\\fallingdotseq\");\ndefineSymbol(math, ams, rel, \"\\u223d\", \"\\\\backsim\");\ndefineSymbol(math, ams, rel, \"\\u22cd\", \"\\\\backsimeq\");\ndefineSymbol(math, ams, rel, \"\\u2ac5\", \"\\\\subseteqq\");\ndefineSymbol(math, ams, rel, \"\\u22d0\", \"\\\\Subset\");\ndefineSymbol(math, ams, rel, \"\\u228f\", \"\\\\sqsubset\");\ndefineSymbol(math, ams, rel, \"\\u227c\", \"\\\\preccurlyeq\");\ndefineSymbol(math, ams, rel, \"\\u22de\", \"\\\\curlyeqprec\");\ndefineSymbol(math, ams, rel, \"\\u227e\", \"\\\\precsim\");\ndefineSymbol(math, ams, rel, \"\\u2ab7\", \"\\\\precapprox\");\ndefineSymbol(math, ams, rel, \"\\u22b2\", \"\\\\vartriangleleft\");\ndefineSymbol(math, ams, rel, \"\\u22b4\", \"\\\\trianglelefteq\");\ndefineSymbol(math, ams, rel, \"\\u22a8\", \"\\\\vDash\");\ndefineSymbol(math, ams, rel, \"\\u22aa\", \"\\\\Vvdash\");\ndefineSymbol(math, ams, rel, \"\\u2323\", \"\\\\smallsmile\");\ndefineSymbol(math, ams, rel, \"\\u2322\", \"\\\\smallfrown\");\ndefineSymbol(math, ams, rel, \"\\u224f\", \"\\\\bumpeq\");\ndefineSymbol(math, ams, rel, \"\\u224e\", \"\\\\Bumpeq\");\ndefineSymbol(math, ams, rel, \"\\u2267\", \"\\\\geqq\");\ndefineSymbol(math, ams, rel, \"\\u2a7e\", \"\\\\geqslant\");\ndefineSymbol(math, ams, rel, \"\\u2a96\", \"\\\\eqslantgtr\");\ndefineSymbol(math, ams, rel, \"\\u2273\", \"\\\\gtrsim\");\ndefineSymbol(math, ams, rel, \"\\u2a86\", \"\\\\gtrapprox\");\ndefineSymbol(math, ams, bin, \"\\u22d7\", \"\\\\gtrdot\");\ndefineSymbol(math, ams, rel, \"\\u22d9\", \"\\\\ggg\");\ndefineSymbol(math, ams, rel, \"\\u2277\", \"\\\\gtrless\");\ndefineSymbol(math, ams, rel, \"\\u22db\", \"\\\\gtreqless\");\ndefineSymbol(math, ams, rel, \"\\u2a8c\", \"\\\\gtreqqless\");\ndefineSymbol(math, ams, rel, \"\\u2256\", \"\\\\eqcirc\");\ndefineSymbol(math, ams, rel, \"\\u2257\", \"\\\\circeq\");\ndefineSymbol(math, ams, rel, \"\\u225c\", \"\\\\triangleq\");\ndefineSymbol(math, ams, rel, \"\\u223c\", \"\\\\thicksim\");\ndefineSymbol(math, ams, rel, \"\\u2248\", \"\\\\thickapprox\");\ndefineSymbol(math, ams, rel, \"\\u2ac6\", \"\\\\supseteqq\");\ndefineSymbol(math, ams, rel, \"\\u22d1\", \"\\\\Supset\");\ndefineSymbol(math, ams, rel, \"\\u2290\", \"\\\\sqsupset\");\ndefineSymbol(math, ams, rel, \"\\u227d\", \"\\\\succcurlyeq\");\ndefineSymbol(math, ams, rel, \"\\u22df\", \"\\\\curlyeqsucc\");\ndefineSymbol(math, ams, rel, \"\\u227f\", \"\\\\succsim\");\ndefineSymbol(math, ams, rel, \"\\u2ab8\", \"\\\\succapprox\");\ndefineSymbol(math, ams, rel, \"\\u22b3\", \"\\\\vartriangleright\");\ndefineSymbol(math, ams, rel, \"\\u22b5\", \"\\\\trianglerighteq\");\ndefineSymbol(math, ams, rel, \"\\u22a9\", \"\\\\Vdash\");\ndefineSymbol(math, ams, rel, \"\\u2223\", \"\\\\shortmid\");\ndefineSymbol(math, ams, rel, \"\\u2225\", \"\\\\shortparallel\");\ndefineSymbol(math, ams, rel, \"\\u226c\", \"\\\\between\");\ndefineSymbol(math, ams, rel, \"\\u22d4\", \"\\\\pitchfork\");\ndefineSymbol(math, ams, rel, \"\\u221d\", \"\\\\varpropto\");\ndefineSymbol(math, ams, rel, \"\\u25c0\", \"\\\\blacktriangleleft\");\ndefineSymbol(math, ams, rel, \"\\u2234\", \"\\\\therefore\");\ndefineSymbol(math, ams, rel, \"\\u220d\", \"\\\\backepsilon\");\ndefineSymbol(math, ams, rel, \"\\u25b6\", \"\\\\blacktriangleright\");\ndefineSymbol(math, ams, rel, \"\\u2235\", \"\\\\because\");\ndefineSymbol(math, ams, rel, \"\\u22d8\", \"\\\\llless\");\ndefineSymbol(math, ams, rel, \"\\u22d9\", \"\\\\gggtr\");\ndefineSymbol(math, ams, bin, \"\\u22b2\", \"\\\\lhd\");\ndefineSymbol(math, ams, bin, \"\\u22b3\", \"\\\\rhd\");\ndefineSymbol(math, ams, rel, \"\\u2242\", \"\\\\eqsim\");\ndefineSymbol(math, main, rel, \"\\u22c8\", \"\\\\Join\");\ndefineSymbol(math, ams, rel, \"\\u2251\", \"\\\\Doteq\");\n\n// AMS Binary Operators\ndefineSymbol(math, ams, bin, \"\\u2214\", \"\\\\dotplus\");\ndefineSymbol(math, ams, bin, \"\\u2216\", \"\\\\smallsetminus\");\ndefineSymbol(math, ams, bin, \"\\u22d2\", \"\\\\Cap\");\ndefineSymbol(math, ams, bin, \"\\u22d3\", \"\\\\Cup\");\ndefineSymbol(math, ams, bin, \"\\u2a5e\", \"\\\\doublebarwedge\");\ndefineSymbol(math, ams, bin, \"\\u229f\", \"\\\\boxminus\");\ndefineSymbol(math, ams, bin, \"\\u229e\", \"\\\\boxplus\");\ndefineSymbol(math, ams, bin, \"\\u22c7\", \"\\\\divideontimes\");\ndefineSymbol(math, ams, bin, \"\\u22c9\", \"\\\\ltimes\");\ndefineSymbol(math, ams, bin, \"\\u22ca\", \"\\\\rtimes\");\ndefineSymbol(math, ams, bin, \"\\u22cb\", \"\\\\leftthreetimes\");\ndefineSymbol(math, ams, bin, \"\\u22cc\", \"\\\\rightthreetimes\");\ndefineSymbol(math, ams, bin, \"\\u22cf\", \"\\\\curlywedge\");\ndefineSymbol(math, ams, bin, \"\\u22ce\", \"\\\\curlyvee\");\ndefineSymbol(math, ams, bin, \"\\u229d\", \"\\\\circleddash\");\ndefineSymbol(math, ams, bin, \"\\u229b\", \"\\\\circledast\");\ndefineSymbol(math, ams, bin, \"\\u22c5\", \"\\\\centerdot\");\ndefineSymbol(math, ams, bin, \"\\u22ba\", \"\\\\intercal\");\ndefineSymbol(math, ams, bin, \"\\u22d2\", \"\\\\doublecap\");\ndefineSymbol(math, ams, bin, \"\\u22d3\", \"\\\\doublecup\");\ndefineSymbol(math, ams, bin, \"\\u22a0\", \"\\\\boxtimes\");\n\n// AMS Arrows\ndefineSymbol(math, ams, rel, \"\\u21e2\", \"\\\\dashrightarrow\");\ndefineSymbol(math, ams, rel, \"\\u21e0\", \"\\\\dashleftarrow\");\ndefineSymbol(math, ams, rel, \"\\u21c7\", \"\\\\leftleftarrows\");\ndefineSymbol(math, ams, rel, \"\\u21c6\", \"\\\\leftrightarrows\");\ndefineSymbol(math, ams, rel, \"\\u21da\", \"\\\\Lleftarrow\");\ndefineSymbol(math, ams, rel, \"\\u219e\", \"\\\\twoheadleftarrow\");\ndefineSymbol(math, ams, rel, \"\\u21a2\", \"\\\\leftarrowtail\");\ndefineSymbol(math, ams, rel, \"\\u21ab\", \"\\\\looparrowleft\");\ndefineSymbol(math, ams, rel, \"\\u21cb\", \"\\\\leftrightharpoons\");\ndefineSymbol(math, ams, rel, \"\\u21b6\", \"\\\\curvearrowleft\");\ndefineSymbol(math, ams, rel, \"\\u21ba\", \"\\\\circlearrowleft\");\ndefineSymbol(math, ams, rel, \"\\u21b0\", \"\\\\Lsh\");\ndefineSymbol(math, ams, rel, \"\\u21c8\", \"\\\\upuparrows\");\ndefineSymbol(math, ams, rel, \"\\u21bf\", \"\\\\upharpoonleft\");\ndefineSymbol(math, ams, rel, \"\\u21c3\", \"\\\\downharpoonleft\");\ndefineSymbol(math, ams, rel, \"\\u22b8\", \"\\\\multimap\");\ndefineSymbol(math, ams, rel, \"\\u21ad\", \"\\\\leftrightsquigarrow\");\ndefineSymbol(math, ams, rel, \"\\u21c9\", \"\\\\rightrightarrows\");\ndefineSymbol(math, ams, rel, \"\\u21c4\", \"\\\\rightleftarrows\");\ndefineSymbol(math, ams, rel, \"\\u21a0\", \"\\\\twoheadrightarrow\");\ndefineSymbol(math, ams, rel, \"\\u21a3\", \"\\\\rightarrowtail\");\ndefineSymbol(math, ams, rel, \"\\u21ac\", \"\\\\looparrowright\");\ndefineSymbol(math, ams, rel, \"\\u21b7\", \"\\\\curvearrowright\");\ndefineSymbol(math, ams, rel, \"\\u21bb\", \"\\\\circlearrowright\");\ndefineSymbol(math, ams, rel, \"\\u21b1\", \"\\\\Rsh\");\ndefineSymbol(math, ams, rel, \"\\u21ca\", \"\\\\downdownarrows\");\ndefineSymbol(math, ams, rel, \"\\u21be\", \"\\\\upharpoonright\");\ndefineSymbol(math, ams, rel, \"\\u21c2\", \"\\\\downharpoonright\");\ndefineSymbol(math, ams, rel, \"\\u21dd\", \"\\\\rightsquigarrow\");\ndefineSymbol(math, ams, rel, \"\\u21dd\", \"\\\\leadsto\");\ndefineSymbol(math, ams, rel, \"\\u21db\", \"\\\\Rrightarrow\");\ndefineSymbol(math, ams, rel, \"\\u21be\", \"\\\\restriction\");\n\ndefineSymbol(math, main, textord, \"\\u2018\", \"`\");\ndefineSymbol(math, main, textord, \"$\", \"\\\\$\");\ndefineSymbol(math, main, textord, \"%\", \"\\\\%\");\ndefineSymbol(math, main, textord, \"_\", \"\\\\_\");\ndefineSymbol(math, main, textord, \"\\u2220\", \"\\\\angle\");\ndefineSymbol(math, main, textord, \"\\u221e\", \"\\\\infty\");\ndefineSymbol(math, main, textord, \"\\u2032\", \"\\\\prime\");\ndefineSymbol(math, main, textord, \"\\u25b3\", \"\\\\triangle\");\ndefineSymbol(math, main, textord, \"\\u0393\", \"\\\\Gamma\");\ndefineSymbol(math, main, textord, \"\\u0394\", \"\\\\Delta\");\ndefineSymbol(math, main, textord, \"\\u0398\", \"\\\\Theta\");\ndefineSymbol(math, main, textord, \"\\u039b\", \"\\\\Lambda\");\ndefineSymbol(math, main, textord, \"\\u039e\", \"\\\\Xi\");\ndefineSymbol(math, main, textord, \"\\u03a0\", \"\\\\Pi\");\ndefineSymbol(math, main, textord, \"\\u03a3\", \"\\\\Sigma\");\ndefineSymbol(math, main, textord, \"\\u03a5\", \"\\\\Upsilon\");\ndefineSymbol(math, main, textord, \"\\u03a6\", \"\\\\Phi\");\ndefineSymbol(math, main, textord, \"\\u03a8\", \"\\\\Psi\");\ndefineSymbol(math, main, textord, \"\\u03a9\", \"\\\\Omega\");\ndefineSymbol(math, main, textord, \"\\u00ac\", \"\\\\neg\");\ndefineSymbol(math, main, textord, \"\\u00ac\", \"\\\\lnot\");\ndefineSymbol(math, main, textord, \"\\u22a4\", \"\\\\top\");\ndefineSymbol(math, main, textord, \"\\u22a5\", \"\\\\bot\");\ndefineSymbol(math, main, textord, \"\\u2205\", \"\\\\emptyset\");\ndefineSymbol(math, ams, textord, \"\\u2205\", \"\\\\varnothing\");\ndefineSymbol(math, main, mathord, \"\\u03b1\", \"\\\\alpha\");\ndefineSymbol(math, main, mathord, \"\\u03b2\", \"\\\\beta\");\ndefineSymbol(math, main, mathord, \"\\u03b3\", \"\\\\gamma\");\ndefineSymbol(math, main, mathord, \"\\u03b4\", \"\\\\delta\");\ndefineSymbol(math, main, mathord, \"\\u03f5\", \"\\\\epsilon\");\ndefineSymbol(math, main, mathord, \"\\u03b6\", \"\\\\zeta\");\ndefineSymbol(math, main, mathord, \"\\u03b7\", \"\\\\eta\");\ndefineSymbol(math, main, mathord, \"\\u03b8\", \"\\\\theta\");\ndefineSymbol(math, main, mathord, \"\\u03b9\", \"\\\\iota\");\ndefineSymbol(math, main, mathord, \"\\u03ba\", \"\\\\kappa\");\ndefineSymbol(math, main, mathord, \"\\u03bb\", \"\\\\lambda\");\ndefineSymbol(math, main, mathord, \"\\u03bc\", \"\\\\mu\");\ndefineSymbol(math, main, mathord, \"\\u03bd\", \"\\\\nu\");\ndefineSymbol(math, main, mathord, \"\\u03be\", \"\\\\xi\");\ndefineSymbol(math, main, mathord, \"o\", \"\\\\omicron\");\ndefineSymbol(math, main, mathord, \"\\u03c0\", \"\\\\pi\");\ndefineSymbol(math, main, mathord, \"\\u03c1\", \"\\\\rho\");\ndefineSymbol(math, main, mathord, \"\\u03c3\", \"\\\\sigma\");\ndefineSymbol(math, main, mathord, \"\\u03c4\", \"\\\\tau\");\ndefineSymbol(math, main, mathord, \"\\u03c5\", \"\\\\upsilon\");\ndefineSymbol(math, main, mathord, \"\\u03d5\", \"\\\\phi\");\ndefineSymbol(math, main, mathord, \"\\u03c7\", \"\\\\chi\");\ndefineSymbol(math, main, mathord, \"\\u03c8\", \"\\\\psi\");\ndefineSymbol(math, main, mathord, \"\\u03c9\", \"\\\\omega\");\ndefineSymbol(math, main, mathord, \"\\u03b5\", \"\\\\varepsilon\");\ndefineSymbol(math, main, mathord, \"\\u03d1\", \"\\\\vartheta\");\ndefineSymbol(math, main, mathord, \"\\u03d6\", \"\\\\varpi\");\ndefineSymbol(math, main, mathord, \"\\u03f1\", \"\\\\varrho\");\ndefineSymbol(math, main, mathord, \"\\u03c2\", \"\\\\varsigma\");\ndefineSymbol(math, main, mathord, \"\\u03c6\", \"\\\\varphi\");\ndefineSymbol(math, main, bin, \"\\u2217\", \"*\");\ndefineSymbol(math, main, bin, \"+\", \"+\");\ndefineSymbol(math, main, bin, \"\\u2212\", \"-\");\ndefineSymbol(math, main, bin, \"\\u22c5\", \"\\\\cdot\");\ndefineSymbol(math, main, bin, \"\\u2218\", \"\\\\circ\");\ndefineSymbol(math, main, bin, \"\\u00f7\", \"\\\\div\");\ndefineSymbol(math, main, bin, \"\\u00b1\", \"\\\\pm\");\ndefineSymbol(math, main, bin, \"\\u00d7\", \"\\\\times\");\ndefineSymbol(math, main, bin, \"\\u2229\", \"\\\\cap\");\ndefineSymbol(math, main, bin, \"\\u222a\", \"\\\\cup\");\ndefineSymbol(math, main, bin, \"\\u2216\", \"\\\\setminus\");\ndefineSymbol(math, main, bin, \"\\u2227\", \"\\\\land\");\ndefineSymbol(math, main, bin, \"\\u2228\", \"\\\\lor\");\ndefineSymbol(math, main, bin, \"\\u2227\", \"\\\\wedge\");\ndefineSymbol(math, main, bin, \"\\u2228\", \"\\\\vee\");\ndefineSymbol(math, main, textord, \"\\u221a\", \"\\\\surd\");\ndefineSymbol(math, main, open, \"(\", \"(\");\ndefineSymbol(math, main, open, \"[\", \"[\");\ndefineSymbol(math, main, open, \"\\u27e8\", \"\\\\langle\");\ndefineSymbol(math, main, open, \"\\u2223\", \"\\\\lvert\");\ndefineSymbol(math, main, open, \"\\u2225\", \"\\\\lVert\");\ndefineSymbol(math, main, close, \")\", \")\");\ndefineSymbol(math, main, close, \"]\", \"]\");\ndefineSymbol(math, main, close, \"?\", \"?\");\ndefineSymbol(math, main, close, \"!\", \"!\");\ndefineSymbol(math, main, close, \"\\u27e9\", \"\\\\rangle\");\ndefineSymbol(math, main, close, \"\\u2223\", \"\\\\rvert\");\ndefineSymbol(math, main, close, \"\\u2225\", \"\\\\rVert\");\ndefineSymbol(math, main, rel, \"=\", \"=\");\ndefineSymbol(math, main, rel, \"<\", \"<\");\ndefineSymbol(math, main, rel, \">\", \">\");\ndefineSymbol(math, main, rel, \":\", \":\");\ndefineSymbol(math, main, rel, \"\\u2248\", \"\\\\approx\");\ndefineSymbol(math, main, rel, \"\\u2245\", \"\\\\cong\");\ndefineSymbol(math, main, rel, \"\\u2265\", \"\\\\ge\");\ndefineSymbol(math, main, rel, \"\\u2265\", \"\\\\geq\");\ndefineSymbol(math, main, rel, \"\\u2190\", \"\\\\gets\");\ndefineSymbol(math, main, rel, \">\", \"\\\\gt\");\ndefineSymbol(math, main, rel, \"\\u2208\", \"\\\\in\");\ndefineSymbol(math, main, rel, \"\\u2209\", \"\\\\notin\");\ndefineSymbol(math, main, rel, \"\\u2282\", \"\\\\subset\");\ndefineSymbol(math, main, rel, \"\\u2283\", \"\\\\supset\");\ndefineSymbol(math, main, rel, \"\\u2286\", \"\\\\subseteq\");\ndefineSymbol(math, main, rel, \"\\u2287\", \"\\\\supseteq\");\ndefineSymbol(math, ams, rel, \"\\u2288\", \"\\\\nsubseteq\");\ndefineSymbol(math, ams, rel, \"\\u2289\", \"\\\\nsupseteq\");\ndefineSymbol(math, main, rel, \"\\u22a8\", \"\\\\models\");\ndefineSymbol(math, main, rel, \"\\u2190\", \"\\\\leftarrow\");\ndefineSymbol(math, main, rel, \"\\u2264\", \"\\\\le\");\ndefineSymbol(math, main, rel, \"\\u2264\", \"\\\\leq\");\ndefineSymbol(math, main, rel, \"<\", \"\\\\lt\");\ndefineSymbol(math, main, rel, \"\\u2260\", \"\\\\ne\");\ndefineSymbol(math, main, rel, \"\\u2260\", \"\\\\neq\");\ndefineSymbol(math, main, rel, \"\\u2192\", \"\\\\rightarrow\");\ndefineSymbol(math, main, rel, \"\\u2192\", \"\\\\to\");\ndefineSymbol(math, ams, rel, \"\\u2271\", \"\\\\ngeq\");\ndefineSymbol(math, ams, rel, \"\\u2270\", \"\\\\nleq\");\ndefineSymbol(math, main, spacing, null, \"\\\\!\");\ndefineSymbol(math, main, spacing, \"\\u00a0\", \"\\\\ \");\ndefineSymbol(math, main, spacing, \"\\u00a0\", \"~\");\ndefineSymbol(math, main, spacing, null, \"\\\\,\");\ndefineSymbol(math, main, spacing, null, \"\\\\:\");\ndefineSymbol(math, main, spacing, null, \"\\\\;\");\ndefineSymbol(math, main, spacing, null, \"\\\\enspace\");\ndefineSymbol(math, main, spacing, null, \"\\\\qquad\");\ndefineSymbol(math, main, spacing, null, \"\\\\quad\");\ndefineSymbol(math, main, spacing, \"\\u00a0\", \"\\\\space\");\ndefineSymbol(math, main, punct, \",\", \",\");\ndefineSymbol(math, main, punct, \";\", \";\");\ndefineSymbol(math, main, punct, \":\", \"\\\\colon\");\ndefineSymbol(math, ams, bin, \"\\u22bc\", \"\\\\barwedge\");\ndefineSymbol(math, ams, bin, \"\\u22bb\", \"\\\\veebar\");\ndefineSymbol(math, main, bin, \"\\u2299\", \"\\\\odot\");\ndefineSymbol(math, main, bin, \"\\u2295\", \"\\\\oplus\");\ndefineSymbol(math, main, bin, \"\\u2297\", \"\\\\otimes\");\ndefineSymbol(math, main, textord, \"\\u2202\", \"\\\\partial\");\ndefineSymbol(math, main, bin, \"\\u2298\", \"\\\\oslash\");\ndefineSymbol(math, ams, bin, \"\\u229a\", \"\\\\circledcirc\");\ndefineSymbol(math, ams, bin, \"\\u22a1\", \"\\\\boxdot\");\ndefineSymbol(math, main, bin, \"\\u25b3\", \"\\\\bigtriangleup\");\ndefineSymbol(math, main, bin, \"\\u25bd\", \"\\\\bigtriangledown\");\ndefineSymbol(math, main, bin, \"\\u2020\", \"\\\\dagger\");\ndefineSymbol(math, main, bin, \"\\u22c4\", \"\\\\diamond\");\ndefineSymbol(math, main, bin, \"\\u22c6\", \"\\\\star\");\ndefineSymbol(math, main, bin, \"\\u25c3\", \"\\\\triangleleft\");\ndefineSymbol(math, main, bin, \"\\u25b9\", \"\\\\triangleright\");\ndefineSymbol(math, main, open, \"{\", \"\\\\{\");\ndefineSymbol(math, main, close, \"}\", \"\\\\}\");\ndefineSymbol(math, main, open, \"{\", \"\\\\lbrace\");\ndefineSymbol(math, main, close, \"}\", \"\\\\rbrace\");\ndefineSymbol(math, main, open, \"[\", \"\\\\lbrack\");\ndefineSymbol(math, main, close, \"]\", \"\\\\rbrack\");\ndefineSymbol(math, main, open, \"\\u230a\", \"\\\\lfloor\");\ndefineSymbol(math, main, close, \"\\u230b\", \"\\\\rfloor\");\ndefineSymbol(math, main, open, \"\\u2308\", \"\\\\lceil\");\ndefineSymbol(math, main, close, \"\\u2309\", \"\\\\rceil\");\ndefineSymbol(math, main, textord, \"\\\\\", \"\\\\backslash\");\ndefineSymbol(math, main, textord, \"\\u2223\", \"|\");\ndefineSymbol(math, main, textord, \"\\u2223\", \"\\\\vert\");\ndefineSymbol(math, main, textord, \"\\u2225\", \"\\\\|\");\ndefineSymbol(math, main, textord, \"\\u2225\", \"\\\\Vert\");\ndefineSymbol(math, main, rel, \"\\u2191\", \"\\\\uparrow\");\ndefineSymbol(math, main, rel, \"\\u21d1\", \"\\\\Uparrow\");\ndefineSymbol(math, main, rel, \"\\u2193\", \"\\\\downarrow\");\ndefineSymbol(math, main, rel, \"\\u21d3\", \"\\\\Downarrow\");\ndefineSymbol(math, main, rel, \"\\u2195\", \"\\\\updownarrow\");\ndefineSymbol(math, main, rel, \"\\u21d5\", \"\\\\Updownarrow\");\ndefineSymbol(math, math, op, \"\\u2210\", \"\\\\coprod\");\ndefineSymbol(math, math, op, \"\\u22c1\", \"\\\\bigvee\");\ndefineSymbol(math, math, op, \"\\u22c0\", \"\\\\bigwedge\");\ndefineSymbol(math, math, op, \"\\u2a04\", \"\\\\biguplus\");\ndefineSymbol(math, math, op, \"\\u22c2\", \"\\\\bigcap\");\ndefineSymbol(math, math, op, \"\\u22c3\", \"\\\\bigcup\");\ndefineSymbol(math, math, op, \"\\u222b\", \"\\\\int\");\ndefineSymbol(math, math, op, \"\\u222b\", \"\\\\intop\");\ndefineSymbol(math, math, op, \"\\u222c\", \"\\\\iint\");\ndefineSymbol(math, math, op, \"\\u222d\", \"\\\\iiint\");\ndefineSymbol(math, math, op, \"\\u220f\", \"\\\\prod\");\ndefineSymbol(math, math, op, \"\\u2211\", \"\\\\sum\");\ndefineSymbol(math, math, op, \"\\u2a02\", \"\\\\bigotimes\");\ndefineSymbol(math, math, op, \"\\u2a01\", \"\\\\bigoplus\");\ndefineSymbol(math, math, op, \"\\u2a00\", \"\\\\bigodot\");\ndefineSymbol(math, math, op, \"\\u222e\", \"\\\\oint\");\ndefineSymbol(math, math, op, \"\\u2a06\", \"\\\\bigsqcup\");\ndefineSymbol(math, math, op, \"\\u222b\", \"\\\\smallint\");\ndefineSymbol(math, main, inner, \"\\u2026\", \"\\\\ldots\");\ndefineSymbol(math, main, inner, \"\\u22ef\", \"\\\\cdots\");\ndefineSymbol(math, main, inner, \"\\u22f1\", \"\\\\ddots\");\ndefineSymbol(math, main, textord, \"\\u22ee\", \"\\\\vdots\");\ndefineSymbol(math, main, accent, \"\\u00b4\", \"\\\\acute\");\ndefineSymbol(math, main, accent, \"\\u0060\", \"\\\\grave\");\ndefineSymbol(math, main, accent, \"\\u00a8\", \"\\\\ddot\");\ndefineSymbol(math, main, accent, \"\\u007e\", \"\\\\tilde\");\ndefineSymbol(math, main, accent, \"\\u00af\", \"\\\\bar\");\ndefineSymbol(math, main, accent, \"\\u02d8\", \"\\\\breve\");\ndefineSymbol(math, main, accent, \"\\u02c7\", \"\\\\check\");\ndefineSymbol(math, main, accent, \"\\u005e\", \"\\\\hat\");\ndefineSymbol(math, main, accent, \"\\u20d7\", \"\\\\vec\");\ndefineSymbol(math, main, accent, \"\\u02d9\", \"\\\\dot\");\ndefineSymbol(math, main, mathord, \"\\u0131\", \"\\\\imath\");\ndefineSymbol(math, main, mathord, \"\\u0237\", \"\\\\jmath\");\n\ndefineSymbol(text, main, spacing, \"\\u00a0\", \"\\\\ \");\ndefineSymbol(text, main, spacing, \"\\u00a0\", \" \");\ndefineSymbol(text, main, spacing, \"\\u00a0\", \"~\");\n\n// There are lots of symbols which are the same, so we add them in afterwards.\nvar i;\nvar ch;\n\n// All of these are textords in math mode\nvar mathTextSymbols = \"0123456789/@.\\\"\";\nfor (i = 0; i < mathTextSymbols.length; i++) {\n ch = mathTextSymbols.charAt(i);\n defineSymbol(math, main, textord, ch, ch);\n}\n\n// All of these are textords in text mode\nvar textSymbols = \"0123456789`!@*()-=+[]'\\\";:?/.,\";\nfor (i = 0; i < textSymbols.length; i++) {\n ch = textSymbols.charAt(i);\n defineSymbol(text, main, textord, ch, ch);\n}\n\n// All of these are textords in text mode, and mathords in math mode\nvar letters = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\";\nfor (i = 0; i < letters.length; i++) {\n ch = letters.charAt(i);\n defineSymbol(math, main, mathord, ch, ch);\n defineSymbol(text, main, textord, ch, ch);\n}\n","/**\n * This file contains a list of utility functions which are useful in other\n * files.\n */\n\n/**\n * Provide an `indexOf` function which works in IE8, but defers to native if\n * possible.\n */\nvar nativeIndexOf = Array.prototype.indexOf;\nvar indexOf = function(list, elem) {\n if (list == null) {\n return -1;\n }\n if (nativeIndexOf && list.indexOf === nativeIndexOf) {\n return list.indexOf(elem);\n }\n var i = 0;\n var l = list.length;\n for (; i < l; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n return -1;\n};\n\n/**\n * Return whether an element is contained in a list\n */\nvar contains = function(list, elem) {\n return indexOf(list, elem) !== -1;\n};\n\n/**\n * Provide a default value if a setting is undefined\n */\nvar deflt = function(setting, defaultIfUndefined) {\n return setting === undefined ? defaultIfUndefined : setting;\n};\n\n// hyphenate and escape adapted from Facebook's React under Apache 2 license\n\nvar uppercase = /([A-Z])/g;\nvar hyphenate = function(str) {\n return str.replace(uppercase, \"-$1\").toLowerCase();\n};\n\nvar ESCAPE_LOOKUP = {\n \"&\": \"&\",\n \">\": \">\",\n \"<\": \"<\",\n \"\\\"\": \""\",\n \"'\": \"'\",\n};\n\nvar ESCAPE_REGEX = /[&><\"']/g;\n\nfunction escaper(match) {\n return ESCAPE_LOOKUP[match];\n}\n\n/**\n * Escapes text to prevent scripting attacks.\n *\n * @param {*} text Text value to escape.\n * @return {string} An escaped string.\n */\nfunction escape(text) {\n return (\"\" + text).replace(ESCAPE_REGEX, escaper);\n}\n\n/**\n * A function to set the text content of a DOM element in all supported\n * browsers. Note that we don't define this if there is no document.\n */\nvar setTextContent;\nif (typeof document !== \"undefined\") {\n var testNode = document.createElement(\"span\");\n if (\"textContent\" in testNode) {\n setTextContent = function(node, text) {\n node.textContent = text;\n };\n } else {\n setTextContent = function(node, text) {\n node.innerText = text;\n };\n }\n}\n\n/**\n * A function to clear a node.\n */\nfunction clearNode(node) {\n setTextContent(node, \"\");\n}\n\nmodule.exports = {\n contains: contains,\n deflt: deflt,\n escape: escape,\n hyphenate: hyphenate,\n indexOf: indexOf,\n setTextContent: setTextContent,\n clearNode: clearNode,\n};\n","'use strict';\n\n\n////////////////////////////////////////////////////////////////////////////////\n// Helpers\n\n// Merge objects\n//\nfunction assign(obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n\n sources.forEach(function (source) {\n if (!source) { return; }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key];\n });\n });\n\n return obj;\n}\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\nfunction isString(obj) { return _class(obj) === '[object String]'; }\nfunction isObject(obj) { return _class(obj) === '[object Object]'; }\nfunction isRegExp(obj) { return _class(obj) === '[object RegExp]'; }\nfunction isFunction(obj) { return _class(obj) === '[object Function]'; }\n\n\nfunction escapeRE(str) { return str.replace(/[.?*+^$[\\]\\\\(){}|-]/g, '\\\\$&'); }\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nvar defaultOptions = {\n fuzzyLink: true,\n fuzzyEmail: true,\n fuzzyIP: false\n};\n\n\nfunction isOptionsObj(obj) {\n return Object.keys(obj || {}).reduce(function (acc, k) {\n return acc || defaultOptions.hasOwnProperty(k);\n }, false);\n}\n\n\nvar defaultSchemas = {\n 'http:': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.http = new RegExp(\n '^\\\\/\\\\/' + self.re.src_auth + self.re.src_host_port_strict + self.re.src_path, 'i'\n );\n }\n if (self.re.http.test(tail)) {\n return tail.match(self.re.http)[0].length;\n }\n return 0;\n }\n },\n 'https:': 'http:',\n 'ftp:': 'http:',\n '//': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.no_http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.no_http = new RegExp(\n '^' +\n self.re.src_auth +\n // Don't allow single-level domains, because of false positives like '//test'\n // with code comments\n '(?:localhost|(?:(?:' + self.re.src_domain + ')\\\\.)+' + self.re.src_domain_root + ')' +\n self.re.src_port +\n self.re.src_host_terminator +\n self.re.src_path,\n\n 'i'\n );\n }\n\n if (self.re.no_http.test(tail)) {\n // should not be `://` & `///`, that protects from errors in protocol name\n if (pos >= 3 && text[pos - 3] === ':') { return 0; }\n if (pos >= 3 && text[pos - 3] === '/') { return 0; }\n return tail.match(self.re.no_http)[0].length;\n }\n return 0;\n }\n },\n 'mailto:': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.mailto) {\n self.re.mailto = new RegExp(\n '^' + self.re.src_email_name + '@' + self.re.src_host_strict, 'i'\n );\n }\n if (self.re.mailto.test(tail)) {\n return tail.match(self.re.mailto)[0].length;\n }\n return 0;\n }\n }\n};\n\n/*eslint-disable max-len*/\n\n// RE pattern for 2-character tlds (autogenerated by ./support/tlds_2char_gen.js)\nvar tlds_2ch_src_re = 'a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]';\n\n// DON'T try to make PRs with changes. Extend TLDs with LinkifyIt.tlds() instead\nvar tlds_default = 'biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф'.split('|');\n\n/*eslint-enable max-len*/\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction resetScanCache(self) {\n self.__index__ = -1;\n self.__text_cache__ = '';\n}\n\nfunction createValidator(re) {\n return function (text, pos) {\n var tail = text.slice(pos);\n\n if (re.test(tail)) {\n return tail.match(re)[0].length;\n }\n return 0;\n };\n}\n\nfunction createNormalizer() {\n return function (match, self) {\n self.normalize(match);\n };\n}\n\n// Schemas compiler. Build regexps.\n//\nfunction compile(self) {\n\n // Load & clone RE patterns.\n var re = self.re = assign({}, require('./lib/re'));\n\n // Define dynamic patterns\n var tlds = self.__tlds__.slice();\n\n if (!self.__tlds_replaced__) {\n tlds.push(tlds_2ch_src_re);\n }\n tlds.push(re.src_xn);\n\n re.src_tlds = tlds.join('|');\n\n function untpl(tpl) { return tpl.replace('%TLDS%', re.src_tlds); }\n\n re.email_fuzzy = RegExp(untpl(re.tpl_email_fuzzy), 'i');\n re.link_fuzzy = RegExp(untpl(re.tpl_link_fuzzy), 'i');\n re.link_no_ip_fuzzy = RegExp(untpl(re.tpl_link_no_ip_fuzzy), 'i');\n re.host_fuzzy_test = RegExp(untpl(re.tpl_host_fuzzy_test), 'i');\n\n //\n // Compile each schema\n //\n\n var aliases = [];\n\n self.__compiled__ = {}; // Reset compiled data\n\n function schemaError(name, val) {\n throw new Error('(LinkifyIt) Invalid schema \"' + name + '\": ' + val);\n }\n\n Object.keys(self.__schemas__).forEach(function (name) {\n var val = self.__schemas__[name];\n\n // skip disabled methods\n if (val === null) { return; }\n\n var compiled = { validate: null, link: null };\n\n self.__compiled__[name] = compiled;\n\n if (isObject(val)) {\n if (isRegExp(val.validate)) {\n compiled.validate = createValidator(val.validate);\n } else if (isFunction(val.validate)) {\n compiled.validate = val.validate;\n } else {\n schemaError(name, val);\n }\n\n if (isFunction(val.normalize)) {\n compiled.normalize = val.normalize;\n } else if (!val.normalize) {\n compiled.normalize = createNormalizer();\n } else {\n schemaError(name, val);\n }\n\n return;\n }\n\n if (isString(val)) {\n aliases.push(name);\n return;\n }\n\n schemaError(name, val);\n });\n\n //\n // Compile postponed aliases\n //\n\n aliases.forEach(function (alias) {\n if (!self.__compiled__[self.__schemas__[alias]]) {\n // Silently fail on missed schemas to avoid errons on disable.\n // schemaError(alias, self.__schemas__[alias]);\n return;\n }\n\n self.__compiled__[alias].validate =\n self.__compiled__[self.__schemas__[alias]].validate;\n self.__compiled__[alias].normalize =\n self.__compiled__[self.__schemas__[alias]].normalize;\n });\n\n //\n // Fake record for guessed links\n //\n self.__compiled__[''] = { validate: null, normalize: createNormalizer() };\n\n //\n // Build schema condition\n //\n var slist = Object.keys(self.__compiled__)\n .filter(function (name) {\n // Filter disabled & fake schemas\n return name.length > 0 && self.__compiled__[name];\n })\n .map(escapeRE)\n .join('|');\n // (?!_) cause 1.5x slowdown\n self.re.schema_test = RegExp('(^|(?!_)(?:[><]|' + re.src_ZPCc + '))(' + slist + ')', 'i');\n self.re.schema_search = RegExp('(^|(?!_)(?:[><]|' + re.src_ZPCc + '))(' + slist + ')', 'ig');\n\n self.re.pretest = RegExp(\n '(' + self.re.schema_test.source + ')|' +\n '(' + self.re.host_fuzzy_test.source + ')|' +\n '@',\n 'i');\n\n //\n // Cleanup\n //\n\n resetScanCache(self);\n}\n\n/**\n * class Match\n *\n * Match result. Single element of array, returned by [[LinkifyIt#match]]\n **/\nfunction Match(self, shift) {\n var start = self.__index__,\n end = self.__last_index__,\n text = self.__text_cache__.slice(start, end);\n\n /**\n * Match#schema -> String\n *\n * Prefix (protocol) for matched string.\n **/\n this.schema = self.__schema__.toLowerCase();\n /**\n * Match#index -> Number\n *\n * First position of matched string.\n **/\n this.index = start + shift;\n /**\n * Match#lastIndex -> Number\n *\n * Next position after matched string.\n **/\n this.lastIndex = end + shift;\n /**\n * Match#raw -> String\n *\n * Matched string.\n **/\n this.raw = text;\n /**\n * Match#text -> String\n *\n * Notmalized text of matched string.\n **/\n this.text = text;\n /**\n * Match#url -> String\n *\n * Normalized url of matched string.\n **/\n this.url = text;\n}\n\nfunction createMatch(self, shift) {\n var match = new Match(self, shift);\n\n self.__compiled__[match.schema].normalize(match, self);\n\n return match;\n}\n\n\n/**\n * class LinkifyIt\n **/\n\n/**\n * new LinkifyIt(schemas, options)\n * - schemas (Object): Optional. Additional schemas to validate (prefix/validator)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Creates new linkifier instance with optional additional schemas.\n * Can be called without `new` keyword for convenience.\n *\n * By default understands:\n *\n * - `http(s)://...` , `ftp://...`, `mailto:...` & `//...` links\n * - \"fuzzy\" links and emails (example.com, foo@bar.com).\n *\n * `schemas` is an object, where each key/value describes protocol/rule:\n *\n * - __key__ - link prefix (usually, protocol name with `:` at the end, `skype:`\n * for example). `linkify-it` makes shure that prefix is not preceeded with\n * alphanumeric char and symbols. Only whitespaces and punctuation allowed.\n * - __value__ - rule to check tail after link prefix\n * - _String_ - just alias to existing rule\n * - _Object_\n * - _validate_ - validator function (should return matched length on success),\n * or `RegExp`.\n * - _normalize_ - optional function to normalize text & url of matched result\n * (for example, for @twitter mentions).\n *\n * `options`:\n *\n * - __fuzzyLink__ - recognige URL-s without `http(s):` prefix. Default `true`.\n * - __fuzzyIP__ - allow IPs in fuzzy links above. Can conflict with some texts\n * like version numbers. Default `false`.\n * - __fuzzyEmail__ - recognize emails without `mailto:` prefix.\n *\n **/\nfunction LinkifyIt(schemas, options) {\n if (!(this instanceof LinkifyIt)) {\n return new LinkifyIt(schemas, options);\n }\n\n if (!options) {\n if (isOptionsObj(schemas)) {\n options = schemas;\n schemas = {};\n }\n }\n\n this.__opts__ = assign({}, defaultOptions, options);\n\n // Cache last tested result. Used to skip repeating steps on next `match` call.\n this.__index__ = -1;\n this.__last_index__ = -1; // Next scan position\n this.__schema__ = '';\n this.__text_cache__ = '';\n\n this.__schemas__ = assign({}, defaultSchemas, schemas);\n this.__compiled__ = {};\n\n this.__tlds__ = tlds_default;\n this.__tlds_replaced__ = false;\n\n this.re = {};\n\n compile(this);\n}\n\n\n/** chainable\n * LinkifyIt#add(schema, definition)\n * - schema (String): rule name (fixed pattern prefix)\n * - definition (String|RegExp|Object): schema definition\n *\n * Add new rule definition. See constructor description for details.\n **/\nLinkifyIt.prototype.add = function add(schema, definition) {\n this.__schemas__[schema] = definition;\n compile(this);\n return this;\n};\n\n\n/** chainable\n * LinkifyIt#set(options)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Set recognition options for links without schema.\n **/\nLinkifyIt.prototype.set = function set(options) {\n this.__opts__ = assign(this.__opts__, options);\n return this;\n};\n\n\n/**\n * LinkifyIt#test(text) -> Boolean\n *\n * Searches linkifiable pattern and returns `true` on success or `false` on fail.\n **/\nLinkifyIt.prototype.test = function test(text) {\n // Reset scan cache\n this.__text_cache__ = text;\n this.__index__ = -1;\n\n if (!text.length) { return false; }\n\n var m, ml, me, len, shift, next, re, tld_pos, at_pos;\n\n // try to scan for link with schema - that's the most simple rule\n if (this.re.schema_test.test(text)) {\n re = this.re.schema_search;\n re.lastIndex = 0;\n while ((m = re.exec(text)) !== null) {\n len = this.testSchemaAt(text, m[2], re.lastIndex);\n if (len) {\n this.__schema__ = m[2];\n this.__index__ = m.index + m[1].length;\n this.__last_index__ = m.index + m[0].length + len;\n break;\n }\n }\n }\n\n if (this.__opts__.fuzzyLink && this.__compiled__['http:']) {\n // guess schemaless links\n tld_pos = text.search(this.re.host_fuzzy_test);\n if (tld_pos >= 0) {\n // if tld is located after found link - no need to check fuzzy pattern\n if (this.__index__ < 0 || tld_pos < this.__index__) {\n if ((ml = text.match(this.__opts__.fuzzyIP ? this.re.link_fuzzy : this.re.link_no_ip_fuzzy)) !== null) {\n\n shift = ml.index + ml[1].length;\n\n if (this.__index__ < 0 || shift < this.__index__) {\n this.__schema__ = '';\n this.__index__ = shift;\n this.__last_index__ = ml.index + ml[0].length;\n }\n }\n }\n }\n }\n\n if (this.__opts__.fuzzyEmail && this.__compiled__['mailto:']) {\n // guess schemaless emails\n at_pos = text.indexOf('@');\n if (at_pos >= 0) {\n // We can't skip this check, because this cases are possible:\n // 192.168.1.1@gmail.com, my.in@example.com\n if ((me = text.match(this.re.email_fuzzy)) !== null) {\n\n shift = me.index + me[1].length;\n next = me.index + me[0].length;\n\n if (this.__index__ < 0 || shift < this.__index__ ||\n (shift === this.__index__ && next > this.__last_index__)) {\n this.__schema__ = 'mailto:';\n this.__index__ = shift;\n this.__last_index__ = next;\n }\n }\n }\n }\n\n return this.__index__ >= 0;\n};\n\n\n/**\n * LinkifyIt#pretest(text) -> Boolean\n *\n * Very quick check, that can give false positives. Returns true if link MAY BE\n * can exists. Can be used for speed optimization, when you need to check that\n * link NOT exists.\n **/\nLinkifyIt.prototype.pretest = function pretest(text) {\n return this.re.pretest.test(text);\n};\n\n\n/**\n * LinkifyIt#testSchemaAt(text, name, position) -> Number\n * - text (String): text to scan\n * - name (String): rule (schema) name\n * - position (Number): text offset to check from\n *\n * Similar to [[LinkifyIt#test]] but checks only specific protocol tail exactly\n * at given position. Returns length of found pattern (0 on fail).\n **/\nLinkifyIt.prototype.testSchemaAt = function testSchemaAt(text, schema, pos) {\n // If not supported schema check requested - terminate\n if (!this.__compiled__[schema.toLowerCase()]) {\n return 0;\n }\n return this.__compiled__[schema.toLowerCase()].validate(text, pos, this);\n};\n\n\n/**\n * LinkifyIt#match(text) -> Array|null\n *\n * Returns array of found link descriptions or `null` on fail. We strongly\n * recommend to use [[LinkifyIt#test]] first, for best speed.\n *\n * ##### Result match description\n *\n * - __schema__ - link schema, can be empty for fuzzy links, or `//` for\n * protocol-neutral links.\n * - __index__ - offset of matched text\n * - __lastIndex__ - index of next char after mathch end\n * - __raw__ - matched text\n * - __text__ - normalized text\n * - __url__ - link, generated from matched text\n **/\nLinkifyIt.prototype.match = function match(text) {\n var shift = 0, result = [];\n\n // Try to take previous element from cache, if .test() called before\n if (this.__index__ >= 0 && this.__text_cache__ === text) {\n result.push(createMatch(this, shift));\n shift = this.__last_index__;\n }\n\n // Cut head if cache was used\n var tail = shift ? text.slice(shift) : text;\n\n // Scan string until end reached\n while (this.test(tail)) {\n result.push(createMatch(this, shift));\n\n tail = tail.slice(this.__last_index__);\n shift += this.__last_index__;\n }\n\n if (result.length) {\n return result;\n }\n\n return null;\n};\n\n\n/** chainable\n * LinkifyIt#tlds(list [, keepOld]) -> this\n * - list (Array): list of tlds\n * - keepOld (Boolean): merge with current list if `true` (`false` by default)\n *\n * Load (or merge) new tlds list. Those are user for fuzzy links (without prefix)\n * to avoid false positives. By default this algorythm used:\n *\n * - hostname with any 2-letter root zones are ok.\n * - biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф\n * are ok.\n * - encoded (`xn--...`) root zones are ok.\n *\n * If list is replaced, then exact match for 2-chars root zones will be checked.\n **/\nLinkifyIt.prototype.tlds = function tlds(list, keepOld) {\n list = Array.isArray(list) ? list : [ list ];\n\n if (!keepOld) {\n this.__tlds__ = list.slice();\n this.__tlds_replaced__ = true;\n compile(this);\n return this;\n }\n\n this.__tlds__ = this.__tlds__.concat(list)\n .sort()\n .filter(function (el, idx, arr) {\n return el !== arr[idx - 1];\n })\n .reverse();\n\n compile(this);\n return this;\n};\n\n/**\n * LinkifyIt#normalize(match)\n *\n * Default normalizer (if schema does not define it's own).\n **/\nLinkifyIt.prototype.normalize = function normalize(match) {\n\n // Do minimal possible changes by default. Need to collect feedback prior\n // to move forward https://github.com/markdown-it/linkify-it/issues/1\n\n if (!match.schema) { match.url = 'http://' + match.url; }\n\n if (match.schema === 'mailto:' && !/^mailto:/i.test(match.url)) {\n match.url = 'mailto:' + match.url;\n }\n};\n\n\nmodule.exports = LinkifyIt;\n","'use strict';\n\n// Use direct extract instead of `regenerate` to reduse browserified size\nvar src_Any = exports.src_Any = require('uc.micro/properties/Any/regex').source;\nvar src_Cc = exports.src_Cc = require('uc.micro/categories/Cc/regex').source;\nvar src_Z = exports.src_Z = require('uc.micro/categories/Z/regex').source;\nvar src_P = exports.src_P = require('uc.micro/categories/P/regex').source;\n\n// \\p{\\Z\\P\\Cc\\CF} (white spaces + control + format + punctuation)\nvar src_ZPCc = exports.src_ZPCc = [ src_Z, src_P, src_Cc ].join('|');\n\n// \\p{\\Z\\Cc} (white spaces + control)\nvar src_ZCc = exports.src_ZCc = [ src_Z, src_Cc ].join('|');\n\n// All possible word characters (everything without punctuation, spaces & controls)\n// Defined via punctuation & spaces to save space\n// Should be something like \\p{\\L\\N\\S\\M} (\\w but without `_`)\nvar src_pseudo_letter = '(?:(?!>|<|' + src_ZPCc + ')' + src_Any + ')';\n// The same as abothe but without [0-9]\n// var src_pseudo_letter_non_d = '(?:(?![0-9]|' + src_ZPCc + ')' + src_Any + ')';\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar src_ip4 = exports.src_ip4 =\n\n '(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)';\n\n// Prohibit [@/] in user/pass to avoid wrong domain fetch.\nexports.src_auth = '(?:(?:(?!' + src_ZCc + '|[@/]).)+@)?';\n\nvar src_port = exports.src_port =\n\n '(?::(?:6(?:[0-4]\\\\d{3}|5(?:[0-4]\\\\d{2}|5(?:[0-2]\\\\d|3[0-5])))|[1-5]?\\\\d{1,4}))?';\n\nvar src_host_terminator = exports.src_host_terminator =\n\n '(?=$|>|<|' + src_ZPCc + ')(?!-|_|:\\\\d|\\\\.-|\\\\.(?!$|' + src_ZPCc + '))';\n\nvar src_path = exports.src_path =\n\n '(?:' +\n '[/?#]' +\n '(?:' +\n '(?!' + src_ZCc + '|[()[\\\\]{}.,\"\\'?!\\\\-<>]).|' +\n '\\\\[(?:(?!' + src_ZCc + '|\\\\]).)*\\\\]|' +\n '\\\\((?:(?!' + src_ZCc + '|[)]).)*\\\\)|' +\n '\\\\{(?:(?!' + src_ZCc + '|[}]).)*\\\\}|' +\n '\\\\\"(?:(?!' + src_ZCc + '|[\"]).)+\\\\\"|' +\n \"\\\\'(?:(?!\" + src_ZCc + \"|[']).)+\\\\'|\" +\n \"\\\\'(?=\" + src_pseudo_letter + ').|' + // allow `I'm_king` if no pair found\n '\\\\.{2,3}[a-zA-Z0-9%/]|' + // github has ... in commit range links. Restrict to\n // - english\n // - percent-encoded\n // - parts of file path\n // until more examples found.\n '\\\\.(?!' + src_ZCc + '|[.]).|' +\n '\\\\-(?!--(?:[^-]|$))(?:-*)|' + // `---` => long dash, terminate\n '\\\\,(?!' + src_ZCc + ').|' + // allow `,,,` in paths\n '\\\\!(?!' + src_ZCc + '|[!]).|' +\n '\\\\?(?!' + src_ZCc + '|[?]).' +\n ')+' +\n '|\\\\/' +\n ')?';\n\nvar src_email_name = exports.src_email_name =\n\n '[\\\\-;:&=\\\\+\\\\$,\\\\\"\\\\.a-zA-Z0-9_]+';\n\nvar src_xn = exports.src_xn =\n\n 'xn--[a-z0-9\\\\-]{1,59}';\n\n// More to read about domain names\n// http://serverfault.com/questions/638260/\n\nvar src_domain_root = exports.src_domain_root =\n\n // Allow letters & digits (http://test1)\n '(?:' +\n src_xn +\n '|' +\n src_pseudo_letter + '{1,63}' +\n ')';\n\nvar src_domain = exports.src_domain =\n\n '(?:' +\n src_xn +\n '|' +\n '(?:' + src_pseudo_letter + ')' +\n '|' +\n // don't allow `--` in domain names, because:\n // - that can conflict with markdown — / –\n // - nobody use those anyway\n '(?:' + src_pseudo_letter + '(?:-(?!-)|' + src_pseudo_letter + '){0,61}' + src_pseudo_letter + ')' +\n ')';\n\nvar src_host = exports.src_host =\n\n '(?:' +\n // Don't need IP check, because digits are already allowed in normal domain names\n // src_ip4 +\n // '|' +\n '(?:(?:(?:' + src_domain + ')\\\\.)*' + src_domain_root + ')' +\n ')';\n\nvar tpl_host_fuzzy = exports.tpl_host_fuzzy =\n\n '(?:' +\n src_ip4 +\n '|' +\n '(?:(?:(?:' + src_domain + ')\\\\.)+(?:%TLDS%))' +\n ')';\n\nvar tpl_host_no_ip_fuzzy = exports.tpl_host_no_ip_fuzzy =\n\n '(?:(?:(?:' + src_domain + ')\\\\.)+(?:%TLDS%))';\n\nexports.src_host_strict =\n\n src_host + src_host_terminator;\n\nvar tpl_host_fuzzy_strict = exports.tpl_host_fuzzy_strict =\n\n tpl_host_fuzzy + src_host_terminator;\n\nexports.src_host_port_strict =\n\n src_host + src_port + src_host_terminator;\n\nvar tpl_host_port_fuzzy_strict = exports.tpl_host_port_fuzzy_strict =\n\n tpl_host_fuzzy + src_port + src_host_terminator;\n\nvar tpl_host_port_no_ip_fuzzy_strict = exports.tpl_host_port_no_ip_fuzzy_strict =\n\n tpl_host_no_ip_fuzzy + src_port + src_host_terminator;\n\n\n////////////////////////////////////////////////////////////////////////////////\n// Main rules\n\n// Rude test fuzzy links by host, for quick deny\nexports.tpl_host_fuzzy_test =\n\n 'localhost|www\\\\.|\\\\.\\\\d{1,3}\\\\.|(?:\\\\.(?:%TLDS%)(?:' + src_ZPCc + '|>|$))';\n\nexports.tpl_email_fuzzy =\n\n '(^|<|>|\\\\(|' + src_ZCc + ')(' + src_email_name + '@' + tpl_host_fuzzy_strict + ')';\n\nexports.tpl_link_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|]|' + src_ZPCc + '))' +\n '((?![$+<=>^`|])' + tpl_host_port_fuzzy_strict + src_path + ')';\n\nexports.tpl_link_no_ip_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|]|' + src_ZPCc + '))' +\n '((?![$+<=>^`|])' + tpl_host_port_no_ip_fuzzy_strict + src_path + ')';\n","// Enclose abbreviations in tags\n//\n'use strict';\n\n\nmodule.exports = function sub_plugin(md) {\n var escapeRE = md.utils.escapeRE,\n arrayReplaceAt = md.utils.arrayReplaceAt;\n\n // ASCII characters in Cc, Sc, Sm, Sk categories we should terminate on;\n // you can check character classes here:\n // http://www.unicode.org/Public/UNIDATA/UnicodeData.txt\n var OTHER_CHARS = ' \\r\\n$+<=>^`|~';\n\n var UNICODE_PUNCT_RE = md.utils.lib.ucmicro.P.source;\n var UNICODE_SPACE_RE = md.utils.lib.ucmicro.Z.source;\n\n\n function abbr_def(state, startLine, endLine, silent) {\n var label, title, ch, labelStart, labelEnd,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n if (pos + 2 >= max) { return false; }\n\n if (state.src.charCodeAt(pos++) !== 0x2A/* * */) { return false; }\n if (state.src.charCodeAt(pos++) !== 0x5B/* [ */) { return false; }\n\n labelStart = pos;\n\n for (; pos < max; pos++) {\n ch = state.src.charCodeAt(pos);\n if (ch === 0x5B /* [ */) {\n return false;\n } else if (ch === 0x5D /* ] */) {\n labelEnd = pos;\n break;\n } else if (ch === 0x5C /* \\ */) {\n pos++;\n }\n }\n\n if (labelEnd < 0 || state.src.charCodeAt(labelEnd + 1) !== 0x3A/* : */) {\n return false;\n }\n\n if (silent) { return true; }\n\n label = state.src.slice(labelStart, labelEnd).replace(/\\\\(.)/g, '$1');\n title = state.src.slice(labelEnd + 2, max).trim();\n if (label.length === 0) { return false; }\n if (title.length === 0) { return false; }\n if (!state.env.abbreviations) { state.env.abbreviations = {}; }\n // prepend ':' to avoid conflict with Object.prototype members\n if (typeof state.env.abbreviations[':' + label] === 'undefined') {\n state.env.abbreviations[':' + label] = title;\n }\n\n state.line = startLine + 1;\n return true;\n }\n\n\n function abbr_replace(state) {\n var i, j, l, tokens, token, text, nodes, pos, reg, m, regText, regSimple,\n currentToken,\n blockTokens = state.tokens;\n\n if (!state.env.abbreviations) { return; }\n\n regSimple = new RegExp('(?:' +\n Object.keys(state.env.abbreviations).map(function (x) {\n return x.substr(1);\n }).sort(function (a, b) {\n return b.length - a.length;\n }).map(escapeRE).join('|') +\n ')');\n\n regText = '(^|' + UNICODE_PUNCT_RE + '|' + UNICODE_SPACE_RE +\n '|[' + OTHER_CHARS.split('').map(escapeRE).join('') + '])'\n + '(' + Object.keys(state.env.abbreviations).map(function (x) {\n return x.substr(1);\n }).sort(function (a, b) {\n return b.length - a.length;\n }).map(escapeRE).join('|') + ')'\n + '($|' + UNICODE_PUNCT_RE + '|' + UNICODE_SPACE_RE +\n '|[' + OTHER_CHARS.split('').map(escapeRE).join('') + '])';\n\n reg = new RegExp(regText, 'g');\n\n for (j = 0, l = blockTokens.length; j < l; j++) {\n if (blockTokens[j].type !== 'inline') { continue; }\n tokens = blockTokens[j].children;\n\n // We scan from the end, to keep position when new tags added.\n for (i = tokens.length - 1; i >= 0; i--) {\n currentToken = tokens[i];\n if (currentToken.type !== 'text') { continue; }\n\n pos = 0;\n text = currentToken.content;\n reg.lastIndex = 0;\n nodes = [];\n\n // fast regexp run to determine whether there are any abbreviated words\n // in the current token\n if (!regSimple.test(text)) { continue; }\n\n while ((m = reg.exec(text))) {\n if (m.index > 0 || m[1].length > 0) {\n token = new state.Token('text', '', 0);\n token.content = text.slice(pos, m.index + m[1].length);\n nodes.push(token);\n }\n\n token = new state.Token('abbr_open', 'abbr', 1);\n token.attrs = [ [ 'title', state.env.abbreviations[':' + m[2]] ] ];\n nodes.push(token);\n\n token = new state.Token('text', '', 0);\n token.content = m[2];\n nodes.push(token);\n\n token = new state.Token('abbr_close', 'abbr', -1);\n nodes.push(token);\n\n reg.lastIndex -= m[3].length;\n pos = reg.lastIndex;\n }\n\n if (!nodes.length) { continue; }\n\n if (pos < text.length) {\n token = new state.Token('text', '', 0);\n token.content = text.slice(pos);\n nodes.push(token);\n }\n\n // replace current node\n blockTokens[j].children = tokens = arrayReplaceAt(tokens, i, nodes);\n }\n }\n }\n\n md.block.ruler.before('reference', 'abbr_def', abbr_def, { alt: [ 'paragraph', 'reference' ] });\n\n md.core.ruler.after('linkify', 'abbr_replace', abbr_replace);\n};\n","// Process definition lists\n//\n'use strict';\n\n\nmodule.exports = function deflist_plugin(md) {\n var isSpace = md.utils.isSpace;\n\n // Search `[:~][\\n ]`, returns next pos after marker on success\n // or -1 on fail.\n function skipMarker(state, line) {\n var pos, marker,\n start = state.bMarks[line] + state.tShift[line],\n max = state.eMarks[line];\n\n if (start >= max) { return -1; }\n\n // Check bullet\n marker = state.src.charCodeAt(start++);\n if (marker !== 0x7E/* ~ */ && marker !== 0x3A/* : */) { return -1; }\n\n pos = state.skipSpaces(start);\n\n // require space after \":\"\n if (start === pos) { return -1; }\n\n // no empty definitions, e.g. \" : \"\n if (pos >= max) { return -1; }\n\n return start;\n }\n\n function markTightParagraphs(state, idx) {\n var i, l,\n level = state.level + 2;\n\n for (i = idx + 2, l = state.tokens.length - 2; i < l; i++) {\n if (state.tokens[i].level === level && state.tokens[i].type === 'paragraph_open') {\n state.tokens[i + 2].hidden = true;\n state.tokens[i].hidden = true;\n i += 2;\n }\n }\n }\n\n function deflist(state, startLine, endLine, silent) {\n var ch,\n contentStart,\n ddLine,\n dtLine,\n itemLines,\n listLines,\n listTokIdx,\n max,\n nextLine,\n offset,\n oldDDIndent,\n oldIndent,\n oldParentType,\n oldSCount,\n oldTShift,\n oldTight,\n pos,\n prevEmptyEnd,\n tight,\n token;\n\n if (silent) {\n // quirk: validation mode validates a dd block only, not a whole deflist\n if (state.ddIndent < 0) { return false; }\n return skipMarker(state, startLine) >= 0;\n }\n\n nextLine = startLine + 1;\n if (nextLine >= endLine) { return false; }\n\n if (state.isEmpty(nextLine)) {\n nextLine++;\n if (nextLine >= endLine) { return false; }\n }\n\n if (state.sCount[nextLine] < state.blkIndent) { return false; }\n contentStart = skipMarker(state, nextLine);\n if (contentStart < 0) { return false; }\n\n // Start list\n listTokIdx = state.tokens.length;\n tight = true;\n\n token = state.push('dl_open', 'dl', 1);\n token.map = listLines = [ startLine, 0 ];\n\n //\n // Iterate list items\n //\n\n dtLine = startLine;\n ddLine = nextLine;\n\n // One definition list can contain multiple DTs,\n // and one DT can be followed by multiple DDs.\n //\n // Thus, there is two loops here, and label is\n // needed to break out of the second one\n //\n /*eslint no-labels:0,block-scoped-var:0*/\n OUTER:\n for (;;) {\n prevEmptyEnd = false;\n\n token = state.push('dt_open', 'dt', 1);\n token.map = [ dtLine, dtLine ];\n\n token = state.push('inline', '', 0);\n token.map = [ dtLine, dtLine ];\n token.content = state.getLines(dtLine, dtLine + 1, state.blkIndent, false).trim();\n token.children = [];\n\n token = state.push('dt_close', 'dt', -1);\n\n for (;;) {\n token = state.push('dd_open', 'dd', 1);\n token.map = itemLines = [ nextLine, 0 ];\n\n pos = contentStart;\n max = state.eMarks[ddLine];\n offset = state.sCount[ddLine] + contentStart - (state.bMarks[ddLine] + state.tShift[ddLine]);\n\n while (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (isSpace(ch)) {\n if (ch === 0x09) {\n offset += 4 - offset % 4;\n } else {\n offset++;\n }\n } else {\n break;\n }\n\n pos++;\n }\n\n contentStart = pos;\n\n oldTight = state.tight;\n oldDDIndent = state.ddIndent;\n oldIndent = state.blkIndent;\n oldTShift = state.tShift[ddLine];\n oldSCount = state.sCount[ddLine];\n oldParentType = state.parentType;\n state.blkIndent = state.ddIndent = state.sCount[ddLine] + 2;\n state.tShift[ddLine] = contentStart - state.bMarks[ddLine];\n state.sCount[ddLine] = offset;\n state.tight = true;\n state.parentType = 'deflist';\n\n state.md.block.tokenize(state, ddLine, endLine, true);\n\n // If any of list item is tight, mark list as tight\n if (!state.tight || prevEmptyEnd) {\n tight = false;\n }\n // Item become loose if finish with empty line,\n // but we should filter last element, because it means list finish\n prevEmptyEnd = (state.line - ddLine) > 1 && state.isEmpty(state.line - 1);\n\n state.tShift[ddLine] = oldTShift;\n state.sCount[ddLine] = oldSCount;\n state.tight = oldTight;\n state.parentType = oldParentType;\n state.blkIndent = oldIndent;\n state.ddIndent = oldDDIndent;\n\n token = state.push('dd_close', 'dd', -1);\n\n itemLines[1] = nextLine = state.line;\n\n if (nextLine >= endLine) { break OUTER; }\n\n if (state.sCount[nextLine] < state.blkIndent) { break OUTER; }\n contentStart = skipMarker(state, nextLine);\n if (contentStart < 0) { break; }\n\n ddLine = nextLine;\n\n // go to the next loop iteration:\n // insert DD tag and repeat checking\n }\n\n if (nextLine >= endLine) { break; }\n dtLine = nextLine;\n\n if (state.isEmpty(dtLine)) { break; }\n if (state.sCount[dtLine] < state.blkIndent) { break; }\n\n ddLine = dtLine + 1;\n if (ddLine >= endLine) { break; }\n if (state.isEmpty(ddLine)) { ddLine++; }\n if (ddLine >= endLine) { break; }\n\n if (state.sCount[ddLine] < state.blkIndent) { break; }\n contentStart = skipMarker(state, ddLine);\n if (contentStart < 0) { break; }\n\n // go to the next loop iteration:\n // insert DT and DD tags and repeat checking\n }\n\n // Finilize list\n token = state.push('dl_close', 'dl', -1);\n\n listLines[1] = nextLine;\n\n state.line = nextLine;\n\n // mark paragraphs tight if needed\n if (tight) {\n markTightParagraphs(state, listTokIdx);\n }\n\n return true;\n }\n\n\n md.block.ruler.before('paragraph', 'deflist', deflist, { alt: [ 'paragraph', 'reference', 'blockquote' ] });\n};\n","'use strict';\n\n\nvar emojies_defs = require('./lib/data/full.json');\nvar emojies_shortcuts = require('./lib/data/shortcuts');\nvar emoji_html = require('./lib/render');\nvar emoji_replace = require('./lib/replace');\nvar normalize_opts = require('./lib/normalize_opts');\n\n\nmodule.exports = function emoji_plugin(md, options) {\n var defaults = {\n defs: emojies_defs,\n shortcuts: emojies_shortcuts,\n enabled: []\n };\n\n var opts = normalize_opts(md.utils.assign({}, defaults, options || {}));\n\n md.renderer.rules.emoji = emoji_html;\n\n md.core.ruler.push('emoji', emoji_replace(md, opts.defs, opts.shortcuts, opts.scanRE, opts.replaceRE));\n};\n","// Emoticons -> Emoji mapping.\n//\n// (!) Some patterns skipped, to avoid collisions\n// without increase matcher complicity. Than can change in future.\n//\n// Places to look for more emoticons info:\n//\n// - http://en.wikipedia.org/wiki/List_of_emoticons#Western\n// - https://github.com/wooorm/emoticon/blob/master/Support.md\n// - http://factoryjoe.com/projects/emoticons/\n//\n'use strict';\n\nmodule.exports = {\n angry: [ '>:(', '>:-(' ],\n blush: [ ':\")', ':-\")' ],\n broken_heart: [ '= 0) {\n acc[key] = emojies[key];\n }\n return acc;\n }, {});\n }\n\n // Flatten shortcuts to simple object: { alias: emoji_name }\n shortcuts = Object.keys(options.shortcuts).reduce(function (acc, key) {\n // Skip aliases for filtered emojies, to reduce regexp\n if (!emojies[key]) { return acc; }\n\n if (Array.isArray(options.shortcuts[key])) {\n options.shortcuts[key].forEach(function (alias) {\n acc[alias] = key;\n });\n return acc;\n }\n\n acc[options.shortcuts[key]] = key;\n return acc;\n }, {});\n\n // Compile regexp\n var names = Object.keys(emojies)\n .map(function (name) { return ':' + name + ':'; })\n .concat(Object.keys(shortcuts))\n .sort()\n .reverse()\n .map(function (name) { return quoteRE(name); })\n .join('|');\n var scanRE = RegExp(names);\n var replaceRE = RegExp(names, 'g');\n\n return {\n defs: emojies,\n shortcuts: shortcuts,\n scanRE: scanRE,\n replaceRE: replaceRE\n };\n};\n","'use strict';\n\nmodule.exports = function emoji_html(tokens, idx /*, options, env */) {\n return tokens[idx].content;\n};\n","// Emojies & shortcuts replacement logic.\n//\n// Note: In theory, it could be faster to parse :smile: in inline chain and\n// leave only shortcuts here. But, who care...\n//\n\n'use strict';\n\n\nmodule.exports = function create_rule(md, emojies, shortcuts, scanRE, replaceRE) {\n var arrayReplaceAt = md.utils.arrayReplaceAt,\n ucm = md.utils.lib.ucmicro,\n ZPCc = new RegExp([ ucm.Z.source, ucm.P.source, ucm.Cc.source ].join('|'));\n\n function splitTextToken(text, level, Token) {\n var token, last_pos = 0, nodes = [];\n\n text.replace(replaceRE, function (match, offset, src) {\n var emoji_name;\n // Validate emoji name\n if (shortcuts.hasOwnProperty(match)) {\n // replace shortcut with full name\n emoji_name = shortcuts[match];\n\n // Don't allow letters before any shortcut (as in no \":/\" in http://)\n if (offset > 0 && !ZPCc.test(src[offset - 1])) {\n return;\n }\n\n // Don't allow letters after any shortcut\n if (offset + match.length < src.length && !ZPCc.test(src[offset + match.length])) {\n return;\n }\n } else {\n emoji_name = match.slice(1, -1);\n }\n\n // Add new tokens to pending list\n if (offset > last_pos) {\n token = new Token('text', '', 0);\n token.content = text.slice(last_pos, offset);\n nodes.push(token);\n }\n\n token = new Token('emoji', '', 0);\n token.markup = emoji_name;\n token.content = emojies[emoji_name];\n nodes.push(token);\n\n last_pos = offset + match.length;\n });\n\n if (last_pos < text.length) {\n token = new Token('text', '', 0);\n token.content = text.slice(last_pos);\n nodes.push(token);\n }\n\n return nodes;\n }\n\n return function emoji_replace(state) {\n var i, j, l, tokens, token,\n blockTokens = state.tokens,\n autolinkLevel = 0;\n\n for (j = 0, l = blockTokens.length; j < l; j++) {\n if (blockTokens[j].type !== 'inline') { continue; }\n tokens = blockTokens[j].children;\n\n // We scan from the end, to keep position when new tags added.\n // Use reversed logic in links start/end match\n for (i = tokens.length - 1; i >= 0; i--) {\n token = tokens[i];\n\n if (token.type === 'link_open' || token.type === 'link_close') {\n if (token.info === 'auto') { autolinkLevel -= token.nesting; }\n }\n\n if (token.type === 'text' && autolinkLevel === 0 && scanRE.test(token.content)) {\n // replace current node\n blockTokens[j].children = tokens = arrayReplaceAt(\n tokens, i, splitTextToken(token.content, token.level, state.Token)\n );\n }\n }\n }\n };\n};\n","// Process footnotes\n//\n'use strict';\n\n////////////////////////////////////////////////////////////////////////////////\n// Renderer partials\n\nfunction _footnote_ref(tokens, idx) {\n var n = Number(tokens[idx].meta.id + 1).toString();\n var id = 'fnref' + n;\n if (tokens[idx].meta.subId > 0) {\n id += ':' + tokens[idx].meta.subId;\n }\n return '[' + n + ']';\n}\nfunction _footnote_block_open(tokens, idx, options) {\n return (options.xhtmlOut ? '
\\n' : '
\\n') +\n '
\\n' +\n '
    \\n';\n}\nfunction _footnote_block_close() {\n return '
\\n
\\n';\n}\nfunction _footnote_open(tokens, idx) {\n var id = Number(tokens[idx].meta.id + 1).toString();\n return '
  • ';\n}\nfunction _footnote_close() {\n return '
  • \\n';\n}\nfunction _footnote_anchor(tokens, idx) {\n var n = Number(tokens[idx].meta.id + 1).toString();\n var id = 'fnref' + n;\n if (tokens[idx].meta.subId > 0) {\n id += ':' + tokens[idx].meta.subId;\n }\n return ' \\u21a9'; /* ↩ */\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nmodule.exports = function sub_plugin(md) {\n var parseLinkLabel = md.helpers.parseLinkLabel,\n isSpace = md.utils.isSpace;\n\n md.renderer.rules.footnote_ref = _footnote_ref;\n md.renderer.rules.footnote_block_open = _footnote_block_open;\n md.renderer.rules.footnote_block_close = _footnote_block_close;\n md.renderer.rules.footnote_open = _footnote_open;\n md.renderer.rules.footnote_close = _footnote_close;\n md.renderer.rules.footnote_anchor = _footnote_anchor;\n\n // Process footnote block definition\n function footnote_def(state, startLine, endLine, silent) {\n var oldBMark, oldTShift, oldSCount, oldParentType, pos, label, token,\n initial, offset, ch, posAfterColon,\n start = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n // line should be at least 5 chars - \"[^x]:\"\n if (start + 4 > max) { return false; }\n\n if (state.src.charCodeAt(start) !== 0x5B/* [ */) { return false; }\n if (state.src.charCodeAt(start + 1) !== 0x5E/* ^ */) { return false; }\n\n for (pos = start + 2; pos < max; pos++) {\n if (state.src.charCodeAt(pos) === 0x20) { return false; }\n if (state.src.charCodeAt(pos) === 0x5D /* ] */) {\n break;\n }\n }\n\n if (pos === start + 2) { return false; } // no empty footnote labels\n if (pos + 1 >= max || state.src.charCodeAt(++pos) !== 0x3A /* : */) { return false; }\n if (silent) { return true; }\n pos++;\n\n if (!state.env.footnotes) { state.env.footnotes = {}; }\n if (!state.env.footnotes.refs) { state.env.footnotes.refs = {}; }\n label = state.src.slice(start + 2, pos - 2);\n state.env.footnotes.refs[':' + label] = -1;\n\n token = new state.Token('footnote_reference_open', '', 1);\n token.meta = { label: label };\n token.level = state.level++;\n state.tokens.push(token);\n\n oldBMark = state.bMarks[startLine];\n oldTShift = state.tShift[startLine];\n oldSCount = state.sCount[startLine];\n oldParentType = state.parentType;\n\n posAfterColon = pos;\n initial = offset = state.sCount[startLine] + pos - (state.bMarks[startLine] + state.tShift[startLine]);\n\n while (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (isSpace(ch)) {\n if (ch === 0x09) {\n offset += 4 - offset % 4;\n } else {\n offset++;\n }\n } else {\n break;\n }\n\n pos++;\n }\n\n state.tShift[startLine] = pos - posAfterColon;\n state.sCount[startLine] = offset - initial;\n\n state.bMarks[startLine] = posAfterColon;\n state.blkIndent += 4;\n state.parentType = 'footnote';\n\n if (state.sCount[startLine] < state.blkIndent) {\n state.sCount[startLine] += state.blkIndent;\n }\n\n state.md.block.tokenize(state, startLine, endLine, true);\n\n state.parentType = oldParentType;\n state.blkIndent -= 4;\n state.tShift[startLine] = oldTShift;\n state.sCount[startLine] = oldSCount;\n state.bMarks[startLine] = oldBMark;\n\n token = new state.Token('footnote_reference_close', '', -1);\n token.level = --state.level;\n state.tokens.push(token);\n\n return true;\n }\n\n // Process inline footnotes (^[...])\n function footnote_inline(state, silent) {\n var labelStart,\n labelEnd,\n footnoteId,\n token,\n tokens,\n max = state.posMax,\n start = state.pos;\n\n if (start + 2 >= max) { return false; }\n if (state.src.charCodeAt(start) !== 0x5E/* ^ */) { return false; }\n if (state.src.charCodeAt(start + 1) !== 0x5B/* [ */) { return false; }\n\n labelStart = start + 2;\n labelEnd = parseLinkLabel(state, start + 1);\n\n // parser failed to find ']', so it's not a valid note\n if (labelEnd < 0) { return false; }\n\n // We found the end of the link, and know for a fact it's a valid link;\n // so all that's left to do is to call tokenizer.\n //\n if (!silent) {\n if (!state.env.footnotes) { state.env.footnotes = {}; }\n if (!state.env.footnotes.list) { state.env.footnotes.list = []; }\n footnoteId = state.env.footnotes.list.length;\n\n state.md.inline.parse(\n state.src.slice(labelStart, labelEnd),\n state.md,\n state.env,\n tokens = []\n );\n\n token = state.push('footnote_ref', '', 0);\n token.meta = { id: footnoteId };\n\n state.env.footnotes.list[footnoteId] = { tokens: tokens };\n }\n\n state.pos = labelEnd + 1;\n state.posMax = max;\n return true;\n }\n\n // Process footnote references ([^...])\n function footnote_ref(state, silent) {\n var label,\n pos,\n footnoteId,\n footnoteSubId,\n token,\n max = state.posMax,\n start = state.pos;\n\n // should be at least 4 chars - \"[^x]\"\n if (start + 3 > max) { return false; }\n\n if (!state.env.footnotes || !state.env.footnotes.refs) { return false; }\n if (state.src.charCodeAt(start) !== 0x5B/* [ */) { return false; }\n if (state.src.charCodeAt(start + 1) !== 0x5E/* ^ */) { return false; }\n\n for (pos = start + 2; pos < max; pos++) {\n if (state.src.charCodeAt(pos) === 0x20) { return false; }\n if (state.src.charCodeAt(pos) === 0x0A) { return false; }\n if (state.src.charCodeAt(pos) === 0x5D /* ] */) {\n break;\n }\n }\n\n if (pos === start + 2) { return false; } // no empty footnote labels\n if (pos >= max) { return false; }\n pos++;\n\n label = state.src.slice(start + 2, pos - 1);\n if (typeof state.env.footnotes.refs[':' + label] === 'undefined') { return false; }\n\n if (!silent) {\n if (!state.env.footnotes.list) { state.env.footnotes.list = []; }\n\n if (state.env.footnotes.refs[':' + label] < 0) {\n footnoteId = state.env.footnotes.list.length;\n state.env.footnotes.list[footnoteId] = { label: label, count: 0 };\n state.env.footnotes.refs[':' + label] = footnoteId;\n } else {\n footnoteId = state.env.footnotes.refs[':' + label];\n }\n\n footnoteSubId = state.env.footnotes.list[footnoteId].count;\n state.env.footnotes.list[footnoteId].count++;\n\n token = state.push('footnote_ref', '', 0);\n token.meta = { id: footnoteId, subId: footnoteSubId };\n }\n\n state.pos = pos;\n state.posMax = max;\n return true;\n }\n\n // Glue footnote tokens to end of token stream\n function footnote_tail(state) {\n var i, l, j, t, lastParagraph, list, token, tokens, current, currentLabel,\n insideRef = false,\n refTokens = {};\n\n if (!state.env.footnotes) { return; }\n\n state.tokens = state.tokens.filter(function(tok) {\n if (tok.type === 'footnote_reference_open') {\n insideRef = true;\n current = [];\n currentLabel = tok.meta.label;\n return false;\n }\n if (tok.type === 'footnote_reference_close') {\n insideRef = false;\n // prepend ':' to avoid conflict with Object.prototype members\n refTokens[':' + currentLabel] = current;\n return false;\n }\n if (insideRef) { current.push(tok); }\n return !insideRef;\n });\n\n if (!state.env.footnotes.list) { return; }\n list = state.env.footnotes.list;\n\n token = new state.Token('footnote_block_open', '', 1);\n state.tokens.push(token);\n\n for (i = 0, l = list.length; i < l; i++) {\n token = new state.Token('footnote_open', '', 1);\n token.meta = { id: i };\n state.tokens.push(token);\n\n if (list[i].tokens) {\n tokens = [];\n\n token = new state.Token('paragraph_open', 'p', 1);\n token.block = true;\n tokens.push(token);\n\n token = new state.Token('inline', '', 0);\n token.children = list[i].tokens;\n token.content = '';\n tokens.push(token);\n\n token = new state.Token('paragraph_close', 'p', -1);\n token.block = true;\n tokens.push(token);\n\n } else if (list[i].label) {\n tokens = refTokens[':' + list[i].label];\n }\n\n state.tokens = state.tokens.concat(tokens);\n if (state.tokens[state.tokens.length - 1].type === 'paragraph_close') {\n lastParagraph = state.tokens.pop();\n } else {\n lastParagraph = null;\n }\n\n t = list[i].count > 0 ? list[i].count : 1;\n for (j = 0; j < t; j++) {\n token = new state.Token('footnote_anchor', '', 0);\n token.meta = { id: i, subId: j };\n state.tokens.push(token);\n }\n\n if (lastParagraph) {\n state.tokens.push(lastParagraph);\n }\n\n token = new state.Token('footnote_close', '', -1);\n state.tokens.push(token);\n }\n\n token = new state.Token('footnote_block_close', '', -1);\n state.tokens.push(token);\n }\n\n md.block.ruler.before('reference', 'footnote_def', footnote_def, { alt: [ 'paragraph', 'reference' ] });\n md.inline.ruler.after('image', 'footnote_inline', footnote_inline);\n md.inline.ruler.after('footnote_inline', 'footnote_ref', footnote_ref);\n md.core.ruler.after('inline', 'footnote_tail', footnote_tail);\n};\n","'use strict';\n\n\nmodule.exports = function ins_plugin(md) {\n // Insert each marker as a separate text token, and add it to delimiter list\n //\n function tokenize(state, silent) {\n var i, scanned, token, len, ch,\n start = state.pos,\n marker = state.src.charCodeAt(start);\n\n if (silent) { return false; }\n\n if (marker !== 0x2B/* + */) { return false; }\n\n scanned = state.scanDelims(state.pos, true);\n len = scanned.length;\n ch = String.fromCharCode(marker);\n\n if (len < 2) { return false; }\n\n if (len % 2) {\n token = state.push('text', '', 0);\n token.content = ch;\n len--;\n }\n\n for (i = 0; i < len; i += 2) {\n token = state.push('text', '', 0);\n token.content = ch + ch;\n\n state.delimiters.push({\n marker: marker,\n jump: i,\n token: state.tokens.length - 1,\n level: state.level,\n end: -1,\n open: scanned.can_open,\n close: scanned.can_close\n });\n }\n\n state.pos += scanned.length;\n\n return true;\n }\n\n\n // Walk through delimiter list and replace text tokens with tags\n //\n function postProcess(state) {\n var i, j,\n startDelim,\n endDelim,\n token,\n loneMarkers = [],\n delimiters = state.delimiters,\n max = state.delimiters.length;\n\n for (i = 0; i < max; i++) {\n startDelim = delimiters[i];\n\n if (startDelim.marker !== 0x2B/* + */) {\n continue;\n }\n\n if (startDelim.end === -1) {\n continue;\n }\n\n endDelim = delimiters[startDelim.end];\n\n token = state.tokens[startDelim.token];\n token.type = 'ins_open';\n token.tag = 'ins';\n token.nesting = 1;\n token.markup = '++';\n token.content = '';\n\n token = state.tokens[endDelim.token];\n token.type = 'ins_close';\n token.tag = 'ins';\n token.nesting = -1;\n token.markup = '++';\n token.content = '';\n\n if (state.tokens[endDelim.token - 1].type === 'text' &&\n state.tokens[endDelim.token - 1].content === '+') {\n\n loneMarkers.push(endDelim.token - 1);\n }\n }\n\n // If a marker sequence has an odd number of characters, it's splitted\n // like this: `~~~~~` -> `~` + `~~` + `~~`, leaving one marker at the\n // start of the sequence.\n //\n // So, we have to move all those markers after subsequent s_close tags.\n //\n while (loneMarkers.length) {\n i = loneMarkers.pop();\n j = i + 1;\n\n while (j < state.tokens.length && state.tokens[j].type === 'ins_close') {\n j++;\n }\n\n j--;\n\n if (i !== j) {\n token = state.tokens[j];\n state.tokens[j] = state.tokens[i];\n state.tokens[i] = token;\n }\n }\n }\n\n md.inline.ruler.before('emphasis', 'ins', tokenize);\n md.inline.ruler2.before('emphasis', 'ins', postProcess);\n};\n","/* Process inline math */\n/*\nLike markdown-it-simplemath, this is a stripped down, simplified version of:\nhttps://github.com/runarberg/markdown-it-math\n\nIt differs in that it takes (a subset of) LaTeX as input and relies on KaTeX\nfor rendering output.\n*/\n\n/*jslint node: true */\n'use strict';\n\nvar katex = require('katex');\n\n// Test if potential opening or closing delimieter\n// Assumes that there is a \"$\" at state.src[pos]\nfunction isValidDelim(state, pos) {\n var prevChar, nextChar,\n max = state.posMax,\n can_open = true,\n can_close = true;\n\n prevChar = pos > 0 ? state.src.charCodeAt(pos - 1) : -1;\n nextChar = pos + 1 <= max ? state.src.charCodeAt(pos + 1) : -1;\n\n // Check non-whitespace conditions for opening and closing, and\n // check that closing delimeter isn't followed by a number\n if (prevChar === 0x20/* \" \" */ || prevChar === 0x09/* \\t */ ||\n (nextChar >= 0x30/* \"0\" */ && nextChar <= 0x39/* \"9\" */)) {\n can_close = false;\n }\n if (nextChar === 0x20/* \" \" */ || nextChar === 0x09/* \\t */) {\n can_open = false;\n }\n\n return {\n can_open: can_open,\n can_close: can_close\n };\n}\n\nfunction math_inline(state, silent) {\n var start, match, token, res, pos, esc_count;\n\n if (state.src[state.pos] !== \"$\") { return false; }\n\n res = isValidDelim(state, state.pos);\n if (!res.can_open) {\n if (!silent) { state.pending += \"$\"; }\n state.pos += 1;\n return true;\n }\n\n // First check for and bypass all properly escaped delimieters\n // This loop will assume that the first leading backtick can not\n // be the first character in state.src, which is known since\n // we have found an opening delimieter already.\n start = state.pos + 1;\n match = start;\n while ( (match = state.src.indexOf(\"$\", match)) !== -1) {\n // Found potential $, look for escapes, pos will point to\n // first non escape when complete\n pos = match - 1;\n while (state.src[pos] === \"\\\\\") { pos -= 1; }\n\n // Even number of escapes, potential closing delimiter found\n if ( ((match - pos) % 2) == 1 ) { break; }\n match += 1;\n }\n\n // No closing delimter found. Consume $ and continue.\n if (match === -1) {\n if (!silent) { state.pending += \"$\"; }\n state.pos = start;\n return true;\n }\n\n // Check if we have empty content, ie: $$. Do not parse.\n if (match - start === 0) {\n if (!silent) { state.pending += \"$$\"; }\n state.pos = start + 1;\n return true;\n }\n\n // Check for valid closing delimiter\n res = isValidDelim(state, match);\n if (!res.can_close) {\n if (!silent) { state.pending += \"$\"; }\n state.pos = start;\n return true;\n }\n\n if (!silent) {\n token = state.push('math_inline', 'math', 0);\n token.markup = \"$\";\n token.content = state.src.slice(start, match);\n }\n\n state.pos = match + 1;\n return true;\n}\n\nfunction math_block(state, start, end, silent){\n var firstLine, lastLine, next, lastPos, found = false, token,\n pos = state.bMarks[start] + state.tShift[start],\n max = state.eMarks[start]\n\n if(pos + 2 > max){ return false; }\n if(state.src.slice(pos,pos+2)!=='$$'){ return false; }\n\n pos += 2;\n firstLine = state.src.slice(pos,max);\n\n if(silent){ return true; }\n if(firstLine.trim().slice(-2)==='$$'){\n // Single line expression\n firstLine = firstLine.trim().slice(0, -2);\n found = true;\n }\n\n for(next = start; !found; ){\n\n next++;\n\n if(next >= end){ break; }\n\n pos = state.bMarks[next]+state.tShift[next];\n max = state.eMarks[next];\n\n if(pos < max && state.tShift[next] < state.blkIndent){\n // non-empty line with negative indent should stop the list:\n break;\n }\n\n if(state.src.slice(pos,max).trim().slice(-2)==='$$'){\n lastPos = state.src.slice(0,max).lastIndexOf('$$');\n lastLine = state.src.slice(pos,lastPos);\n found = true;\n }\n\n }\n\n state.line = next + 1;\n\n token = state.push('math_block', 'math', 0);\n token.block = true;\n token.content = (firstLine && firstLine.trim() ? firstLine + '\\n' : '')\n + state.getLines(start + 1, next, state.tShift[start], true)\n + (lastLine && lastLine.trim() ? lastLine : '');\n token.map = [ start, state.line ];\n token.markup = '$$';\n return true;\n}\n\nmodule.exports = function math_plugin(md, options) {\n // Default options\n\n options = options || {};\n\n // set KaTeX as the renderer for markdown-it-simplemath\n var katexInline = function(latex){\n options.displayMode = false;\n try{\n return katex.renderToString(latex, options);\n }\n catch(error){\n if(options.throwOnError){ console.log(error); }\n return latex;\n }\n };\n\n var inlineRenderer = function(tokens, idx){\n return katexInline(tokens[idx].content);\n };\n\n var katexBlock = function(latex){\n options.displayMode = true;\n try{\n return \"

    \" + katex.renderToString(latex, options) + \"

    \";\n }\n catch(error){\n if(options.throwOnError){ console.log(error); }\n return latex;\n }\n }\n\n var blockRenderer = function(tokens, idx){\n return katexBlock(tokens[idx].content) + '\\n';\n }\n\n md.inline.ruler.after('escape', 'math_inline', math_inline);\n md.block.ruler.after('blockquote', 'math_block', math_block, {\n alt: [ 'paragraph', 'reference', 'blockquote', 'list' ]\n });\n md.renderer.rules.math_inline = inlineRenderer;\n md.renderer.rules.math_block = blockRenderer;\n};\n","'use strict';\n\n\nmodule.exports = function ins_plugin(md) {\n // Insert each marker as a separate text token, and add it to delimiter list\n //\n function tokenize(state, silent) {\n var i, scanned, token, len, ch,\n start = state.pos,\n marker = state.src.charCodeAt(start);\n\n if (silent) { return false; }\n\n if (marker !== 0x3D/* = */) { return false; }\n\n scanned = state.scanDelims(state.pos, true);\n len = scanned.length;\n ch = String.fromCharCode(marker);\n\n if (len < 2) { return false; }\n\n if (len % 2) {\n token = state.push('text', '', 0);\n token.content = ch;\n len--;\n }\n\n for (i = 0; i < len; i += 2) {\n token = state.push('text', '', 0);\n token.content = ch + ch;\n\n state.delimiters.push({\n marker: marker,\n jump: i,\n token: state.tokens.length - 1,\n level: state.level,\n end: -1,\n open: scanned.can_open,\n close: scanned.can_close\n });\n }\n\n state.pos += scanned.length;\n\n return true;\n }\n\n\n // Walk through delimiter list and replace text tokens with tags\n //\n function postProcess(state) {\n var i, j,\n startDelim,\n endDelim,\n token,\n loneMarkers = [],\n delimiters = state.delimiters,\n max = state.delimiters.length;\n\n for (i = 0; i < max; i++) {\n startDelim = delimiters[i];\n\n if (startDelim.marker !== 0x3D/* = */) {\n continue;\n }\n\n if (startDelim.end === -1) {\n continue;\n }\n\n endDelim = delimiters[startDelim.end];\n\n token = state.tokens[startDelim.token];\n token.type = 'mark_open';\n token.tag = 'mark';\n token.nesting = 1;\n token.markup = '==';\n token.content = '';\n\n token = state.tokens[endDelim.token];\n token.type = 'mark_close';\n token.tag = 'mark';\n token.nesting = -1;\n token.markup = '==';\n token.content = '';\n\n if (state.tokens[endDelim.token - 1].type === 'text' &&\n state.tokens[endDelim.token - 1].content === '=') {\n\n loneMarkers.push(endDelim.token - 1);\n }\n }\n\n // If a marker sequence has an odd number of characters, it's splitted\n // like this: `~~~~~` -> `~` + `~~` + `~~`, leaving one marker at the\n // start of the sequence.\n //\n // So, we have to move all those markers after subsequent s_close tags.\n //\n while (loneMarkers.length) {\n i = loneMarkers.pop();\n j = i + 1;\n\n while (j < state.tokens.length && state.tokens[j].type === 'mark_close') {\n j++;\n }\n\n j--;\n\n if (i !== j) {\n token = state.tokens[j];\n state.tokens[j] = state.tokens[i];\n state.tokens[i] = token;\n }\n }\n }\n\n md.inline.ruler.before('emphasis', 'mark', tokenize);\n md.inline.ruler2.before('emphasis', 'mark', postProcess);\n};\n","// Process ~subscript~\n\n'use strict';\n\n// same as UNESCAPE_MD_RE plus a space\nvar UNESCAPE_RE = /\\\\([ \\\\!\"#$%&'()*+,.\\/:;<=>?@[\\]^_`{|}~-])/g;\n\n\nfunction subscript(state, silent) {\n var found,\n content,\n token,\n max = state.posMax,\n start = state.pos;\n\n if (state.src.charCodeAt(start) !== 0x7E/* ~ */) { return false; }\n if (silent) { return false; } // don't run any pairs in validation mode\n if (start + 2 >= max) { return false; }\n\n state.pos = start + 1;\n\n while (state.pos < max) {\n if (state.src.charCodeAt(state.pos) === 0x7E/* ~ */) {\n found = true;\n break;\n }\n\n state.md.inline.skipToken(state);\n }\n\n if (!found || start + 1 === state.pos) {\n state.pos = start;\n return false;\n }\n\n content = state.src.slice(start + 1, state.pos);\n\n // don't allow unescaped spaces/newlines inside\n if (content.match(/(^|[^\\\\])(\\\\\\\\)*\\s/)) {\n state.pos = start;\n return false;\n }\n\n // found!\n state.posMax = state.pos;\n state.pos = start + 1;\n\n // Earlier we checked !silent, but this implementation does not need it\n token = state.push('sub_open', 'sub', 1);\n token.markup = '~';\n\n token = state.push('text', '', 0);\n token.content = content.replace(UNESCAPE_RE, '$1');\n\n token = state.push('sub_close', 'sub', -1);\n token.markup = '~';\n\n state.pos = state.posMax + 1;\n state.posMax = max;\n return true;\n}\n\n\nmodule.exports = function sub_plugin(md) {\n md.inline.ruler.after('emphasis', 'sub', subscript);\n};\n","// Process ^superscript^\n\n'use strict';\n\n// same as UNESCAPE_MD_RE plus a space\nvar UNESCAPE_RE = /\\\\([ \\\\!\"#$%&'()*+,.\\/:;<=>?@[\\]^_`{|}~-])/g;\n\nfunction superscript(state, silent) {\n var found,\n content,\n token,\n max = state.posMax,\n start = state.pos;\n\n if (state.src.charCodeAt(start) !== 0x5E/* ^ */) { return false; }\n if (silent) { return false; } // don't run any pairs in validation mode\n if (start + 2 >= max) { return false; }\n\n state.pos = start + 1;\n\n while (state.pos < max) {\n if (state.src.charCodeAt(state.pos) === 0x5E/* ^ */) {\n found = true;\n break;\n }\n\n state.md.inline.skipToken(state);\n }\n\n if (!found || start + 1 === state.pos) {\n state.pos = start;\n return false;\n }\n\n content = state.src.slice(start + 1, state.pos);\n\n // don't allow unescaped spaces/newlines inside\n if (content.match(/(^|[^\\\\])(\\\\\\\\)*\\s/)) {\n state.pos = start;\n return false;\n }\n\n // found!\n state.posMax = state.pos;\n state.pos = start + 1;\n\n // Earlier we checked !silent, but this implementation does not need it\n token = state.push('sup_open', 'sup', 1);\n token.markup = '^';\n\n token = state.push('text', '', 0);\n token.content = content.replace(UNESCAPE_RE, '$1');\n\n token = state.push('sup_close', 'sup', -1);\n token.markup = '^';\n\n state.pos = state.posMax + 1;\n state.posMax = max;\n return true;\n}\n\n\nmodule.exports = function sup_plugin(md) {\n md.inline.ruler.after('emphasis', 'sup', superscript);\n};\n","// Markdown-it plugin to render GitHub-style task lists; see\n//\n// https://github.com/blog/1375-task-lists-in-gfm-issues-pulls-comments\n// https://github.com/blog/1825-task-lists-in-all-markdown-documents\n\nvar disableCheckboxes = true;\nvar useLabelWrapper = false;\nvar useLabelAfter = false;\n\nmodule.exports = function(md, options) {\n\tif (options) {\n\t\tdisableCheckboxes = !options.enabled;\n\t\tuseLabelWrapper = !!options.label;\n\t\tuseLabelAfter = !!options.labelAfter;\n\t}\n\n\tmd.core.ruler.after('inline', 'github-task-lists', function(state) {\n\t\tvar tokens = state.tokens;\n\t\tfor (var i = 2; i < tokens.length; i++) {\n\t\t\tif (isTodoItem(tokens, i)) {\n\t\t\t\ttodoify(tokens[i], state.Token);\n\t\t\t\tattrSet(tokens[i-2], 'class', 'task-list-item' + (!disableCheckboxes ? ' enabled' : ''));\n\t\t\t\tattrSet(tokens[parentToken(tokens, i-2)], 'class', 'contains-task-list');\n\t\t\t}\n\t\t}\n\t});\n};\n\nfunction attrSet(token, name, value) {\n\tvar index = token.attrIndex(name);\n\tvar attr = [name, value];\n\n\tif (index < 0) {\n\t\ttoken.attrPush(attr);\n\t} else {\n\t\ttoken.attrs[index] = attr;\n\t}\n}\n\nfunction parentToken(tokens, index) {\n\tvar targetLevel = tokens[index].level - 1;\n\tfor (var i = index - 1; i >= 0; i--) {\n\t\tif (tokens[i].level === targetLevel) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n}\n\nfunction isTodoItem(tokens, index) {\n\treturn isInline(tokens[index]) &&\n\t isParagraph(tokens[index - 1]) &&\n\t isListItem(tokens[index - 2]) &&\n\t startsWithTodoMarkdown(tokens[index]);\n}\n\nfunction todoify(token, TokenConstructor) {\n\ttoken.children.unshift(makeCheckbox(token, TokenConstructor));\n\ttoken.children[1].content = token.children[1].content.slice(3);\n\ttoken.content = token.content.slice(3);\n\n\tif (useLabelWrapper) {\n\t\tif (useLabelAfter) {\n\t\t\ttoken.children.pop();\n\n\t\t\t// Use large random number as id property of the checkbox.\n\t\t\tvar id = 'task-item-' + Math.ceil(Math.random() * (10000 * 1000) - 1000);\n\t\t\ttoken.children[0].content = token.children[0].content.slice(0, -1) + ' id=\"' + id + '\">';\n\t\t\ttoken.children.push(afterLabel(token.content, id, TokenConstructor));\n\t\t} else {\n\t\t\ttoken.children.unshift(beginLabel(TokenConstructor));\n\t\t\ttoken.children.push(endLabel(TokenConstructor));\n\t\t}\n\t}\n}\n\nfunction makeCheckbox(token, TokenConstructor) {\n\tvar checkbox = new TokenConstructor('html_inline', '', 0);\n\tvar disabledAttr = disableCheckboxes ? ' disabled=\"\" ' : '';\n\tif (token.content.indexOf('[ ] ') === 0) {\n\t\tcheckbox.content = '';\n\t} else if (token.content.indexOf('[x] ') === 0 || token.content.indexOf('[X] ') === 0) {\n\t\tcheckbox.content = '';\n\t}\n\treturn checkbox;\n}\n\n// these next two functions are kind of hacky; probably should really be a\n// true block-level token with .tag=='label'\nfunction beginLabel(TokenConstructor) {\n\tvar token = new TokenConstructor('html_inline', '', 0);\n\ttoken.content = '';\n\treturn token;\n}\n\nfunction afterLabel(content, id, TokenConstructor) {\n\tvar token = new TokenConstructor('html_inline', '', 0);\n\ttoken.content = '';\n\ttoken.attrs = [{for: id}];\n\treturn token;\n}\n\nfunction isInline(token) { return token.type === 'inline'; }\nfunction isParagraph(token) { return token.type === 'paragraph_open'; }\nfunction isListItem(token) { return token.type === 'list_item_open'; }\n\nfunction startsWithTodoMarkdown(token) {\n\t// leading whitespace in a list item is already trimmed off by markdown-it\n\treturn token.content.indexOf('[ ] ') === 0 || token.content.indexOf('[x] ') === 0 || token.content.indexOf('[X] ') === 0;\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\n\nvar _clone = _interopRequireDefault(require(\"clone\"));\n\nvar _uslug = _interopRequireDefault(require(\"uslug\"));\n\nvar _token = _interopRequireDefault(require(\"markdown-it/lib/token\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar TOC = \"@[toc]\";\nvar TOC_RE = /^@\\[toc\\]/im;\n\nvar markdownItSecondInstance = function markdownItSecondInstance() {};\n\nvar headingIds = {};\nvar tocHtml = \"\";\n\nvar repeat = function repeat(string, num) {\n return new Array(num + 1).join(string);\n};\n\nvar makeSafe = function makeSafe(string, headingIds, slugifyFn) {\n var key = slugifyFn(string); // slugify\n\n if (!headingIds[key]) {\n headingIds[key] = 0;\n }\n\n headingIds[key]++;\n return key + (headingIds[key] > 1 ? \"-\".concat(headingIds[key]) : \"\");\n};\n\nvar space = function space() {\n return _objectSpread({}, new _token.default(\"text\", \"\", 0), {\n content: \" \"\n });\n};\n\nvar renderAnchorLinkSymbol = function renderAnchorLinkSymbol(options) {\n if (options.anchorLinkSymbolClassName) {\n return [_objectSpread({}, new _token.default(\"span_open\", \"span\", 1), {\n attrs: [[\"class\", options.anchorLinkSymbolClassName]]\n }), _objectSpread({}, new _token.default(\"text\", \"\", 0), {\n content: options.anchorLinkSymbol\n }), new _token.default(\"span_close\", \"span\", -1)];\n } else {\n return [_objectSpread({}, new _token.default(\"text\", \"\", 0), {\n content: options.anchorLinkSymbol\n })];\n }\n};\n\nvar renderAnchorLink = function renderAnchorLink(anchor, options, tokens, idx) {\n var attrs = [];\n\n if (options.anchorClassName != null) {\n attrs.push([\"class\", options.anchorClassName]);\n }\n\n attrs.push([\"href\", \"#\".concat(anchor)]);\n\n var openLinkToken = _objectSpread({}, new _token.default(\"link_open\", \"a\", 1), {\n attrs: attrs\n });\n\n var closeLinkToken = new _token.default(\"link_close\", \"a\", -1);\n\n if (options.wrapHeadingTextInAnchor) {\n tokens[idx + 1].children.unshift(openLinkToken);\n tokens[idx + 1].children.push(closeLinkToken);\n } else {\n var _tokens$children;\n\n var linkTokens = [openLinkToken].concat(_toConsumableArray(renderAnchorLinkSymbol(options)), [closeLinkToken]); // `push` or `unshift` according to anchorLinkBefore option\n // space is at the opposite side.\n\n var actionOnArray = {\n false: \"push\",\n true: \"unshift\"\n }; // insert space between anchor link and heading ?\n\n if (options.anchorLinkSpace) {\n linkTokens[actionOnArray[!options.anchorLinkBefore]](space());\n }\n\n (_tokens$children = tokens[idx + 1].children)[actionOnArray[options.anchorLinkBefore]].apply(_tokens$children, _toConsumableArray(linkTokens));\n }\n};\n\nvar treeToMarkdownBulletList = function treeToMarkdownBulletList(tree) {\n var indent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return tree.map(function (item) {\n var indentation = \" \";\n var node = \"\".concat(repeat(indentation, indent), \"*\");\n\n if (item.heading.content) {\n var contentWithoutAnchor = item.heading.content.replace(/\\[([^\\]]*)\\]\\([^)]*\\)/g, \"$1\");\n node += \" \" + \"[\".concat(contentWithoutAnchor, \"](#\").concat(item.heading.anchor, \")\\n\");\n } else {\n node += \"\\n\";\n }\n\n if (item.nodes.length) {\n node += treeToMarkdownBulletList(item.nodes, indent + 1);\n }\n\n return node;\n }).join(\"\");\n};\n\nvar generateTocMarkdownFromArray = function generateTocMarkdownFromArray(headings, options) {\n var tree = {\n nodes: []\n }; // create an ast\n\n headings.forEach(function (heading) {\n if (heading.level < options.tocFirstLevel || heading.level > options.tocLastLevel) {\n return;\n }\n\n var i = 1;\n var lastItem = tree;\n\n for (; i < heading.level - options.tocFirstLevel + 1; i++) {\n if (lastItem.nodes.length === 0) {\n lastItem.nodes.push({\n heading: {},\n nodes: []\n });\n }\n\n lastItem = lastItem.nodes[lastItem.nodes.length - 1];\n }\n\n lastItem.nodes.push({\n heading: heading,\n nodes: []\n });\n });\n return treeToMarkdownBulletList(tree.nodes);\n};\n\nfunction _default(md, options) {\n options = _objectSpread({\n toc: true,\n tocClassName: \"markdownIt-TOC\",\n tocFirstLevel: 1,\n tocLastLevel: 6,\n tocCallback: null,\n anchorLink: true,\n anchorLinkSymbol: \"#\",\n anchorLinkBefore: true,\n anchorClassName: \"markdownIt-Anchor\",\n resetIds: true,\n anchorLinkSpace: true,\n anchorLinkSymbolClassName: null,\n wrapHeadingTextInAnchor: false\n }, options);\n markdownItSecondInstance = (0, _clone.default)(md); // initialize key ids for each instance\n\n headingIds = {};\n md.core.ruler.push(\"init_toc\", function (state) {\n var tokens = state.tokens; // reset key ids for each document\n\n if (options.resetIds) {\n headingIds = {};\n }\n\n var tocArray = [];\n var tocMarkdown = \"\";\n var tocTokens = [];\n var slugifyFn = typeof options.slugify === \"function\" && options.slugify || _uslug.default;\n\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].type !== \"heading_close\") {\n continue;\n }\n\n var heading = tokens[i - 1];\n var heading_close = tokens[i];\n\n if (heading.type === \"inline\") {\n var content = void 0;\n\n if (heading.children && heading.children.length > 0 && heading.children[0].type === \"link_open\") {\n // headings that contain links have to be processed\n // differently since nested links aren't allowed in markdown\n content = heading.children[1].content;\n heading._tocAnchor = makeSafe(content, headingIds, slugifyFn);\n } else {\n content = heading.content;\n heading._tocAnchor = makeSafe(heading.children.reduce(function (acc, t) {\n return acc + t.content;\n }, \"\"), headingIds, slugifyFn);\n }\n\n if (options.anchorLinkPrefix) {\n heading._tocAnchor = options.anchorLinkPrefix + heading._tocAnchor;\n }\n\n tocArray.push({\n content: content,\n anchor: heading._tocAnchor,\n level: +heading_close.tag.substr(1, 1)\n });\n }\n }\n\n tocMarkdown = generateTocMarkdownFromArray(tocArray, options);\n tocTokens = markdownItSecondInstance.parse(tocMarkdown, {}); // Adding tocClassName to 'ul' element\n\n if (_typeof(tocTokens[0]) === \"object\" && tocTokens[0].type === \"bullet_list_open\") {\n var attrs = tocTokens[0].attrs = tocTokens[0].attrs || [];\n\n if (options.tocClassName != null) {\n attrs.push([\"class\", options.tocClassName]);\n }\n }\n\n tocHtml = markdownItSecondInstance.renderer.render(tocTokens, markdownItSecondInstance.options);\n\n if (typeof state.env.tocCallback === \"function\") {\n state.env.tocCallback.call(undefined, tocMarkdown, tocArray, tocHtml);\n } else if (typeof options.tocCallback === \"function\") {\n options.tocCallback.call(undefined, tocMarkdown, tocArray, tocHtml);\n } else if (typeof md.options.tocCallback === \"function\") {\n md.options.tocCallback.call(undefined, tocMarkdown, tocArray, tocHtml);\n }\n });\n md.inline.ruler.after(\"emphasis\", \"toc\", function (state, silent) {\n var token;\n var match;\n\n if ( // Reject if the token does not start with @[\n state.src.charCodeAt(state.pos) !== 0x40 || state.src.charCodeAt(state.pos + 1) !== 0x5b || // Don’t run any pairs in validation mode\n silent) {\n return false;\n } // Detect TOC markdown\n\n\n match = TOC_RE.exec(state.src);\n match = !match ? [] : match.filter(function (m) {\n return m;\n });\n\n if (match.length < 1) {\n return false;\n } // Build content\n\n\n token = state.push(\"toc_open\", \"toc\", 1);\n token.markup = TOC;\n token = state.push(\"toc_body\", \"\", 0);\n token = state.push(\"toc_close\", \"toc\", -1); // Update pos so the parser can continue\n\n state.pos = state.pos + 6;\n return true;\n });\n\n var originalHeadingOpen = md.renderer.rules.heading_open || function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var tokens = args[0],\n idx = args[1],\n options = args[2],\n self = args[4];\n return self.renderToken(tokens, idx, options);\n };\n\n md.renderer.rules.heading_open = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var tokens = args[0],\n idx = args[1];\n var attrs = tokens[idx].attrs = tokens[idx].attrs || [];\n var anchor = tokens[idx + 1]._tocAnchor;\n attrs.push([\"id\", anchor]);\n\n if (options.anchorLink) {\n renderAnchorLink.apply(void 0, [anchor, options].concat(args));\n }\n\n return originalHeadingOpen.apply(this, args);\n };\n\n md.renderer.rules.toc_open = function () {\n return \"\";\n };\n\n md.renderer.rules.toc_close = function () {\n return \"\";\n };\n\n md.renderer.rules.toc_body = function () {\n return \"\";\n };\n\n if (options.toc) {\n md.renderer.rules.toc_body = function () {\n return tocHtml;\n };\n }\n}","'use strict';\n\n\nmodule.exports = require('./lib/');\n","// HTML5 entities map: { name -> utf16string }\n//\n'use strict';\n\n/*eslint quotes:0*/\nmodule.exports = require('entities/maps/entities.json');\n","// List of valid html blocks names, accorting to commonmark spec\n// http://jgm.github.io/CommonMark/spec.html#html-blocks\n\n'use strict';\n\n\nmodule.exports = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'meta',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'pre',\n 'section',\n 'source',\n 'title',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n];\n","// Regexps to match html elements\n\n'use strict';\n\nvar attr_name = '[a-zA-Z_:][a-zA-Z0-9:._-]*';\n\nvar unquoted = '[^\"\\'=<>`\\\\x00-\\\\x20]+';\nvar single_quoted = \"'[^']*'\";\nvar double_quoted = '\"[^\"]*\"';\n\nvar attr_value = '(?:' + unquoted + '|' + single_quoted + '|' + double_quoted + ')';\n\nvar attribute = '(?:\\\\s+' + attr_name + '(?:\\\\s*=\\\\s*' + attr_value + ')?)';\n\nvar open_tag = '<[A-Za-z][A-Za-z0-9\\\\-]*' + attribute + '*\\\\s*\\\\/?>';\n\nvar close_tag = '<\\\\/[A-Za-z][A-Za-z0-9\\\\-]*\\\\s*>';\nvar comment = '|';\nvar processing = '<[?].*?[?]>';\nvar declaration = ']*>';\nvar cdata = '';\n\nvar HTML_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + '|' + comment +\n '|' + processing + '|' + declaration + '|' + cdata + ')');\nvar HTML_OPEN_CLOSE_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + ')');\n\nmodule.exports.HTML_TAG_RE = HTML_TAG_RE;\nmodule.exports.HTML_OPEN_CLOSE_TAG_RE = HTML_OPEN_CLOSE_TAG_RE;\n","// Utilities\n//\n'use strict';\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction isString(obj) { return _class(obj) === '[object String]'; }\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction has(object, key) {\n return _hasOwnProperty.call(object, key);\n}\n\n// Merge objects\n//\nfunction assign(obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n\n sources.forEach(function (source) {\n if (!source) { return; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be object');\n }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key];\n });\n });\n\n return obj;\n}\n\n// Remove element from array and put another array at those position.\n// Useful for some operations with tokens\nfunction arrayReplaceAt(src, pos, newElements) {\n return [].concat(src.slice(0, pos), newElements, src.slice(pos + 1));\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction isValidEntityCode(c) {\n /*eslint no-bitwise:0*/\n // broken sequence\n if (c >= 0xD800 && c <= 0xDFFF) { return false; }\n // never used\n if (c >= 0xFDD0 && c <= 0xFDEF) { return false; }\n if ((c & 0xFFFF) === 0xFFFF || (c & 0xFFFF) === 0xFFFE) { return false; }\n // control codes\n if (c >= 0x00 && c <= 0x08) { return false; }\n if (c === 0x0B) { return false; }\n if (c >= 0x0E && c <= 0x1F) { return false; }\n if (c >= 0x7F && c <= 0x9F) { return false; }\n // out of range\n if (c > 0x10FFFF) { return false; }\n return true;\n}\n\nfunction fromCodePoint(c) {\n /*eslint no-bitwise:0*/\n if (c > 0xffff) {\n c -= 0x10000;\n var surrogate1 = 0xd800 + (c >> 10),\n surrogate2 = 0xdc00 + (c & 0x3ff);\n\n return String.fromCharCode(surrogate1, surrogate2);\n }\n return String.fromCharCode(c);\n}\n\n\nvar UNESCAPE_MD_RE = /\\\\([!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~])/g;\nvar ENTITY_RE = /&([a-z#][a-z0-9]{1,31});/gi;\nvar UNESCAPE_ALL_RE = new RegExp(UNESCAPE_MD_RE.source + '|' + ENTITY_RE.source, 'gi');\n\nvar DIGITAL_ENTITY_TEST_RE = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i;\n\nvar entities = require('./entities');\n\nfunction replaceEntityPattern(match, name) {\n var code = 0;\n\n if (has(entities, name)) {\n return entities[name];\n }\n\n if (name.charCodeAt(0) === 0x23/* # */ && DIGITAL_ENTITY_TEST_RE.test(name)) {\n code = name[1].toLowerCase() === 'x' ?\n parseInt(name.slice(2), 16)\n :\n parseInt(name.slice(1), 10);\n if (isValidEntityCode(code)) {\n return fromCodePoint(code);\n }\n }\n\n return match;\n}\n\n/*function replaceEntities(str) {\n if (str.indexOf('&') < 0) { return str; }\n\n return str.replace(ENTITY_RE, replaceEntityPattern);\n}*/\n\nfunction unescapeMd(str) {\n if (str.indexOf('\\\\') < 0) { return str; }\n return str.replace(UNESCAPE_MD_RE, '$1');\n}\n\nfunction unescapeAll(str) {\n if (str.indexOf('\\\\') < 0 && str.indexOf('&') < 0) { return str; }\n\n return str.replace(UNESCAPE_ALL_RE, function (match, escaped, entity) {\n if (escaped) { return escaped; }\n return replaceEntityPattern(match, entity);\n });\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar HTML_ESCAPE_TEST_RE = /[&<>\"]/;\nvar HTML_ESCAPE_REPLACE_RE = /[&<>\"]/g;\nvar HTML_REPLACEMENTS = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"'\n};\n\nfunction replaceUnsafeChar(ch) {\n return HTML_REPLACEMENTS[ch];\n}\n\nfunction escapeHtml(str) {\n if (HTML_ESCAPE_TEST_RE.test(str)) {\n return str.replace(HTML_ESCAPE_REPLACE_RE, replaceUnsafeChar);\n }\n return str;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar REGEXP_ESCAPE_RE = /[.?*+^$[\\]\\\\(){}|-]/g;\n\nfunction escapeRE(str) {\n return str.replace(REGEXP_ESCAPE_RE, '\\\\$&');\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction isSpace(code) {\n switch (code) {\n case 0x09:\n case 0x20:\n return true;\n }\n return false;\n}\n\n// Zs (unicode class) || [\\t\\f\\v\\r\\n]\nfunction isWhiteSpace(code) {\n if (code >= 0x2000 && code <= 0x200A) { return true; }\n switch (code) {\n case 0x09: // \\t\n case 0x0A: // \\n\n case 0x0B: // \\v\n case 0x0C: // \\f\n case 0x0D: // \\r\n case 0x20:\n case 0xA0:\n case 0x1680:\n case 0x202F:\n case 0x205F:\n case 0x3000:\n return true;\n }\n return false;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n/*eslint-disable max-len*/\nvar UNICODE_PUNCT_RE = require('uc.micro/categories/P/regex');\n\n// Currently without astral characters support.\nfunction isPunctChar(ch) {\n return UNICODE_PUNCT_RE.test(ch);\n}\n\n\n// Markdown ASCII punctuation characters.\n//\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\n//\n// Don't confuse with unicode punctuation !!! It lacks some chars in ascii range.\n//\nfunction isMdAsciiPunct(ch) {\n switch (ch) {\n case 0x21/* ! */:\n case 0x22/* \" */:\n case 0x23/* # */:\n case 0x24/* $ */:\n case 0x25/* % */:\n case 0x26/* & */:\n case 0x27/* ' */:\n case 0x28/* ( */:\n case 0x29/* ) */:\n case 0x2A/* * */:\n case 0x2B/* + */:\n case 0x2C/* , */:\n case 0x2D/* - */:\n case 0x2E/* . */:\n case 0x2F/* / */:\n case 0x3A/* : */:\n case 0x3B/* ; */:\n case 0x3C/* < */:\n case 0x3D/* = */:\n case 0x3E/* > */:\n case 0x3F/* ? */:\n case 0x40/* @ */:\n case 0x5B/* [ */:\n case 0x5C/* \\ */:\n case 0x5D/* ] */:\n case 0x5E/* ^ */:\n case 0x5F/* _ */:\n case 0x60/* ` */:\n case 0x7B/* { */:\n case 0x7C/* | */:\n case 0x7D/* } */:\n case 0x7E/* ~ */:\n return true;\n default:\n return false;\n }\n}\n\n// Hepler to unify [reference labels].\n//\nfunction normalizeReference(str) {\n // use .toUpperCase() instead of .toLowerCase()\n // here to avoid a conflict with Object.prototype\n // members (most notably, `__proto__`)\n return str.trim().replace(/\\s+/g, ' ').toUpperCase();\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n// Re-export libraries commonly used in both markdown-it and its plugins,\n// so plugins won't have to depend on them explicitly, which reduces their\n// bundled size (e.g. a browser build).\n//\nexports.lib = {};\nexports.lib.mdurl = require('mdurl');\nexports.lib.ucmicro = require('uc.micro');\n\nexports.assign = assign;\nexports.isString = isString;\nexports.has = has;\nexports.unescapeMd = unescapeMd;\nexports.unescapeAll = unescapeAll;\nexports.isValidEntityCode = isValidEntityCode;\nexports.fromCodePoint = fromCodePoint;\n// exports.replaceEntities = replaceEntities;\nexports.escapeHtml = escapeHtml;\nexports.arrayReplaceAt = arrayReplaceAt;\nexports.isSpace = isSpace;\nexports.isWhiteSpace = isWhiteSpace;\nexports.isMdAsciiPunct = isMdAsciiPunct;\nexports.isPunctChar = isPunctChar;\nexports.escapeRE = escapeRE;\nexports.normalizeReference = normalizeReference;\n","// Just a shortcut for bulk export\n'use strict';\n\n\nexports.parseLinkLabel = require('./parse_link_label');\nexports.parseLinkDestination = require('./parse_link_destination');\nexports.parseLinkTitle = require('./parse_link_title');\n","// Parse link destination\n//\n'use strict';\n\n\nvar isSpace = require('../common/utils').isSpace;\nvar unescapeAll = require('../common/utils').unescapeAll;\n\n\nmodule.exports = function parseLinkDestination(str, pos, max) {\n var code, level,\n lines = 0,\n start = pos,\n result = {\n ok: false,\n pos: 0,\n lines: 0,\n str: ''\n };\n\n if (str.charCodeAt(pos) === 0x3C /* < */) {\n pos++;\n while (pos < max) {\n code = str.charCodeAt(pos);\n if (code === 0x0A /* \\n */ || isSpace(code)) { return result; }\n if (code === 0x3E /* > */) {\n result.pos = pos + 1;\n result.str = unescapeAll(str.slice(start + 1, pos));\n result.ok = true;\n return result;\n }\n if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos += 2;\n continue;\n }\n\n pos++;\n }\n\n // no closing '>'\n return result;\n }\n\n // this should be ... } else { ... branch\n\n level = 0;\n while (pos < max) {\n code = str.charCodeAt(pos);\n\n if (code === 0x20) { break; }\n\n // ascii control characters\n if (code < 0x20 || code === 0x7F) { break; }\n\n if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos += 2;\n continue;\n }\n\n if (code === 0x28 /* ( */) {\n level++;\n if (level > 1) { break; }\n }\n\n if (code === 0x29 /* ) */) {\n level--;\n if (level < 0) { break; }\n }\n\n pos++;\n }\n\n if (start === pos) { return result; }\n\n result.str = unescapeAll(str.slice(start, pos));\n result.lines = lines;\n result.pos = pos;\n result.ok = true;\n return result;\n};\n","// Parse link label\n//\n// this function assumes that first character (\"[\") already matches;\n// returns the end of the label\n//\n'use strict';\n\nmodule.exports = function parseLinkLabel(state, start, disableNested) {\n var level, found, marker, prevPos,\n labelEnd = -1,\n max = state.posMax,\n oldPos = state.pos;\n\n state.pos = start + 1;\n level = 1;\n\n while (state.pos < max) {\n marker = state.src.charCodeAt(state.pos);\n if (marker === 0x5D /* ] */) {\n level--;\n if (level === 0) {\n found = true;\n break;\n }\n }\n\n prevPos = state.pos;\n state.md.inline.skipToken(state);\n if (marker === 0x5B /* [ */) {\n if (prevPos === state.pos - 1) {\n // increase level if we find text `[`, which is not a part of any token\n level++;\n } else if (disableNested) {\n state.pos = oldPos;\n return -1;\n }\n }\n }\n\n if (found) {\n labelEnd = state.pos;\n }\n\n // restore old state\n state.pos = oldPos;\n\n return labelEnd;\n};\n","// Parse link title\n//\n'use strict';\n\n\nvar unescapeAll = require('../common/utils').unescapeAll;\n\n\nmodule.exports = function parseLinkTitle(str, pos, max) {\n var code,\n marker,\n lines = 0,\n start = pos,\n result = {\n ok: false,\n pos: 0,\n lines: 0,\n str: ''\n };\n\n if (pos >= max) { return result; }\n\n marker = str.charCodeAt(pos);\n\n if (marker !== 0x22 /* \" */ && marker !== 0x27 /* ' */ && marker !== 0x28 /* ( */) { return result; }\n\n pos++;\n\n // if opening marker is \"(\", switch it to closing marker \")\"\n if (marker === 0x28) { marker = 0x29; }\n\n while (pos < max) {\n code = str.charCodeAt(pos);\n if (code === marker) {\n result.pos = pos + 1;\n result.lines = lines;\n result.str = unescapeAll(str.slice(start + 1, pos));\n result.ok = true;\n return result;\n } else if (code === 0x0A) {\n lines++;\n } else if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos++;\n if (str.charCodeAt(pos) === 0x0A) {\n lines++;\n }\n }\n\n pos++;\n }\n\n return result;\n};\n","// Main parser class\n\n'use strict';\n\n\nvar utils = require('./common/utils');\nvar helpers = require('./helpers');\nvar Renderer = require('./renderer');\nvar ParserCore = require('./parser_core');\nvar ParserBlock = require('./parser_block');\nvar ParserInline = require('./parser_inline');\nvar LinkifyIt = require('linkify-it');\nvar mdurl = require('mdurl');\nvar punycode = require('punycode');\n\n\nvar config = {\n 'default': require('./presets/default'),\n zero: require('./presets/zero'),\n commonmark: require('./presets/commonmark')\n};\n\n////////////////////////////////////////////////////////////////////////////////\n//\n// This validator can prohibit more than really needed to prevent XSS. It's a\n// tradeoff to keep code simple and to be secure by default.\n//\n// If you need different setup - override validator method as you wish. Or\n// replace it with dummy function and use external sanitizer.\n//\n\nvar BAD_PROTO_RE = /^(vbscript|javascript|file|data):/;\nvar GOOD_DATA_RE = /^data:image\\/(gif|png|jpeg|webp);/;\n\nfunction validateLink(url) {\n // url should be normalized at this point, and existing entities are decoded\n var str = url.trim().toLowerCase();\n\n return BAD_PROTO_RE.test(str) ? (GOOD_DATA_RE.test(str) ? true : false) : true;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nvar RECODE_HOSTNAME_FOR = [ 'http:', 'https:', 'mailto:' ];\n\nfunction normalizeLink(url) {\n var parsed = mdurl.parse(url, true);\n\n if (parsed.hostname) {\n // Encode hostnames in urls like:\n // `http://host/`, `https://host/`, `mailto:user@host`, `//host/`\n //\n // We don't encode unknown schemas, because it's likely that we encode\n // something we shouldn't (e.g. `skype:name` treated as `skype:host`)\n //\n if (!parsed.protocol || RECODE_HOSTNAME_FOR.indexOf(parsed.protocol) >= 0) {\n try {\n parsed.hostname = punycode.toASCII(parsed.hostname);\n } catch (er) { /**/ }\n }\n }\n\n return mdurl.encode(mdurl.format(parsed));\n}\n\nfunction normalizeLinkText(url) {\n var parsed = mdurl.parse(url, true);\n\n if (parsed.hostname) {\n // Encode hostnames in urls like:\n // `http://host/`, `https://host/`, `mailto:user@host`, `//host/`\n //\n // We don't encode unknown schemas, because it's likely that we encode\n // something we shouldn't (e.g. `skype:name` treated as `skype:host`)\n //\n if (!parsed.protocol || RECODE_HOSTNAME_FOR.indexOf(parsed.protocol) >= 0) {\n try {\n parsed.hostname = punycode.toUnicode(parsed.hostname);\n } catch (er) { /**/ }\n }\n }\n\n return mdurl.decode(mdurl.format(parsed));\n}\n\n\n/**\n * class MarkdownIt\n *\n * Main parser/renderer class.\n *\n * ##### Usage\n *\n * ```javascript\n * // node.js, \"classic\" way:\n * var MarkdownIt = require('markdown-it'),\n * md = new MarkdownIt();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // node.js, the same, but with sugar:\n * var md = require('markdown-it')();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // browser without AMD, added to \"window\" on script load\n * // Note, there are no dash.\n * var md = window.markdownit();\n * var result = md.render('# markdown-it rulezz!');\n * ```\n *\n * Single line rendering, without paragraph wrap:\n *\n * ```javascript\n * var md = require('markdown-it')();\n * var result = md.renderInline('__markdown-it__ rulezz!');\n * ```\n **/\n\n/**\n * new MarkdownIt([presetName, options])\n * - presetName (String): optional, `commonmark` / `zero`\n * - options (Object)\n *\n * Creates parser instanse with given config. Can be called without `new`.\n *\n * ##### presetName\n *\n * MarkdownIt provides named presets as a convenience to quickly\n * enable/disable active syntax rules and options for common use cases.\n *\n * - [\"commonmark\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/commonmark.js) -\n * configures parser to strict [CommonMark](http://commonmark.org/) mode.\n * - [default](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/default.js) -\n * similar to GFM, used when no preset name given. Enables all available rules,\n * but still without html, typographer & autolinker.\n * - [\"zero\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/zero.js) -\n * all rules disabled. Useful to quickly setup your config via `.enable()`.\n * For example, when you need only `bold` and `italic` markup and nothing else.\n *\n * ##### options:\n *\n * - __html__ - `false`. Set `true` to enable HTML tags in source. Be careful!\n * That's not safe! You may need external sanitizer to protect output from XSS.\n * It's better to extend features via plugins, instead of enabling HTML.\n * - __xhtmlOut__ - `false`. Set `true` to add '/' when closing single tags\n * (`
    `). This is needed only for full CommonMark compatibility. In real\n * world you will need HTML output.\n * - __breaks__ - `false`. Set `true` to convert `\\n` in paragraphs into `
    `.\n * - __langPrefix__ - `language-`. CSS language class prefix for fenced blocks.\n * Can be useful for external highlighters.\n * - __linkify__ - `false`. Set `true` to autoconvert URL-like text to links.\n * - __typographer__ - `false`. Set `true` to enable [some language-neutral\n * replacement](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/replacements.js) +\n * quotes beautification (smartquotes).\n * - __quotes__ - `“”‘’`, String or Array. Double + single quotes replacement\n * pairs, when typographer enabled and smartquotes on. For example, you can\n * use `'«»„“'` for Russian, `'„“‚‘'` for German, and\n * `['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›']` for French (including nbsp).\n * - __highlight__ - `null`. Highlighter function for fenced code blocks.\n * Highlighter `function (str, lang)` should return escaped HTML. It can also\n * return empty string if the source was not changed and should be escaped\n * externaly. If result starts with `):\n *\n * ```javascript\n * var hljs = require('highlight.js') // https://highlightjs.org/\n *\n * // Actual default values\n * var md = require('markdown-it')({\n * highlight: function (str, lang) {\n * if (lang && hljs.getLanguage(lang)) {\n * try {\n * return '
    ' +\n *                hljs.highlight(lang, str, true).value +\n *                '
    ';\n * } catch (__) {}\n * }\n *\n * return '
    ' + md.utils.escapeHtml(str) + '
    ';\n * }\n * });\n * ```\n *\n **/\nfunction MarkdownIt(presetName, options) {\n if (!(this instanceof MarkdownIt)) {\n return new MarkdownIt(presetName, options);\n }\n\n if (!options) {\n if (!utils.isString(presetName)) {\n options = presetName || {};\n presetName = 'default';\n }\n }\n\n /**\n * MarkdownIt#inline -> ParserInline\n *\n * Instance of [[ParserInline]]. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.inline = new ParserInline();\n\n /**\n * MarkdownIt#block -> ParserBlock\n *\n * Instance of [[ParserBlock]]. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.block = new ParserBlock();\n\n /**\n * MarkdownIt#core -> Core\n *\n * Instance of [[Core]] chain executor. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.core = new ParserCore();\n\n /**\n * MarkdownIt#renderer -> Renderer\n *\n * Instance of [[Renderer]]. Use it to modify output look. Or to add rendering\n * rules for new token types, generated by plugins.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * function myToken(tokens, idx, options, env, self) {\n * //...\n * return result;\n * };\n *\n * md.renderer.rules['my_token'] = myToken\n * ```\n *\n * See [[Renderer]] docs and [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.js).\n **/\n this.renderer = new Renderer();\n\n /**\n * MarkdownIt#linkify -> LinkifyIt\n *\n * [linkify-it](https://github.com/markdown-it/linkify-it) instance.\n * Used by [linkify](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/linkify.js)\n * rule.\n **/\n this.linkify = new LinkifyIt();\n\n /**\n * MarkdownIt#validateLink(url) -> Boolean\n *\n * Link validation function. CommonMark allows too much in links. By default\n * we disable `javascript:`, `vbscript:`, `file:` schemas, and almost all `data:...` schemas\n * except some embedded image types.\n *\n * You can change this behaviour:\n *\n * ```javascript\n * var md = require('markdown-it')();\n * // enable everything\n * md.validateLink = function () { return true; }\n * ```\n **/\n this.validateLink = validateLink;\n\n /**\n * MarkdownIt#normalizeLink(url) -> String\n *\n * Function used to encode link url to a machine-readable format,\n * which includes url-encoding, punycode, etc.\n **/\n this.normalizeLink = normalizeLink;\n\n /**\n * MarkdownIt#normalizeLinkText(url) -> String\n *\n * Function used to decode link url to a human-readable format`\n **/\n this.normalizeLinkText = normalizeLinkText;\n\n\n // Expose utils & helpers for easy acces from plugins\n\n /**\n * MarkdownIt#utils -> utils\n *\n * Assorted utility functions, useful to write plugins. See details\n * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/common/utils.js).\n **/\n this.utils = utils;\n\n /**\n * MarkdownIt#helpers -> helpers\n *\n * Link components parser functions, useful to write plugins. See details\n * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/helpers).\n **/\n this.helpers = helpers;\n\n\n this.options = {};\n this.configure(presetName);\n\n if (options) { this.set(options); }\n}\n\n\n/** chainable\n * MarkdownIt.set(options)\n *\n * Set parser options (in the same format as in constructor). Probably, you\n * will never need it, but you can change options after constructor call.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n * .set({ html: true, breaks: true })\n * .set({ typographer, true });\n * ```\n *\n * __Note:__ To achieve the best possible performance, don't modify a\n * `markdown-it` instance options on the fly. If you need multiple configurations\n * it's best to create multiple instances and initialize each with separate\n * config.\n **/\nMarkdownIt.prototype.set = function (options) {\n utils.assign(this.options, options);\n return this;\n};\n\n\n/** chainable, internal\n * MarkdownIt.configure(presets)\n *\n * Batch load of all options and compenent settings. This is internal method,\n * and you probably will not need it. But if you with - see available presets\n * and data structure [here](https://github.com/markdown-it/markdown-it/tree/master/lib/presets)\n *\n * We strongly recommend to use presets instead of direct config loads. That\n * will give better compatibility with next versions.\n **/\nMarkdownIt.prototype.configure = function (presets) {\n var self = this, presetName;\n\n if (utils.isString(presets)) {\n presetName = presets;\n presets = config[presetName];\n if (!presets) { throw new Error('Wrong `markdown-it` preset \"' + presetName + '\", check name'); }\n }\n\n if (!presets) { throw new Error('Wrong `markdown-it` preset, can\\'t be empty'); }\n\n if (presets.options) { self.set(presets.options); }\n\n if (presets.components) {\n Object.keys(presets.components).forEach(function (name) {\n if (presets.components[name].rules) {\n self[name].ruler.enableOnly(presets.components[name].rules);\n }\n if (presets.components[name].rules2) {\n self[name].ruler2.enableOnly(presets.components[name].rules2);\n }\n });\n }\n return this;\n};\n\n\n/** chainable\n * MarkdownIt.enable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to enable\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable list or rules. It will automatically find appropriate components,\n * containing rules with given names. If rule not found, and `ignoreInvalid`\n * not set - throws exception.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n * .enable(['sub', 'sup'])\n * .disable('smartquotes');\n * ```\n **/\nMarkdownIt.prototype.enable = function (list, ignoreInvalid) {\n var result = [];\n\n if (!Array.isArray(list)) { list = [ list ]; }\n\n [ 'core', 'block', 'inline' ].forEach(function (chain) {\n result = result.concat(this[chain].ruler.enable(list, true));\n }, this);\n\n result = result.concat(this.inline.ruler2.enable(list, true));\n\n var missed = list.filter(function (name) { return result.indexOf(name) < 0; });\n\n if (missed.length && !ignoreInvalid) {\n throw new Error('MarkdownIt. Failed to enable unknown rule(s): ' + missed);\n }\n\n return this;\n};\n\n\n/** chainable\n * MarkdownIt.disable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * The same as [[MarkdownIt.enable]], but turn specified rules off.\n **/\nMarkdownIt.prototype.disable = function (list, ignoreInvalid) {\n var result = [];\n\n if (!Array.isArray(list)) { list = [ list ]; }\n\n [ 'core', 'block', 'inline' ].forEach(function (chain) {\n result = result.concat(this[chain].ruler.disable(list, true));\n }, this);\n\n result = result.concat(this.inline.ruler2.disable(list, true));\n\n var missed = list.filter(function (name) { return result.indexOf(name) < 0; });\n\n if (missed.length && !ignoreInvalid) {\n throw new Error('MarkdownIt. Failed to disable unknown rule(s): ' + missed);\n }\n return this;\n};\n\n\n/** chainable\n * MarkdownIt.use(plugin, params)\n *\n * Load specified plugin with given params into current parser instance.\n * It's just a sugar to call `plugin(md, params)` with curring.\n *\n * ##### Example\n *\n * ```javascript\n * var iterator = require('markdown-it-for-inline');\n * var md = require('markdown-it')()\n * .use(iterator, 'foo_replace', 'text', function (tokens, idx) {\n * tokens[idx].content = tokens[idx].content.replace(/foo/g, 'bar');\n * });\n * ```\n **/\nMarkdownIt.prototype.use = function (plugin /*, params, ... */) {\n var args = [ this ].concat(Array.prototype.slice.call(arguments, 1));\n plugin.apply(plugin, args);\n return this;\n};\n\n\n/** internal\n * MarkdownIt.parse(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Parse input string and returns list of block tokens (special token type\n * \"inline\" will contain list of inline tokens). You should not call this\n * method directly, until you write custom renderer (for example, to produce\n * AST).\n *\n * `env` is used to pass data between \"distributed\" rules and return additional\n * metadata like reference info, needed for the renderer. It also can be used to\n * inject data in specific cases. Usually, you will be ok to pass `{}`,\n * and then pass updated object to renderer.\n **/\nMarkdownIt.prototype.parse = function (src, env) {\n var state = new this.core.State(src, this, env);\n\n this.core.process(state);\n\n return state.tokens;\n};\n\n\n/**\n * MarkdownIt.render(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Render markdown string into html. It does all magic for you :).\n *\n * `env` can be used to inject additional metadata (`{}` by default).\n * But you will not need it with high probability. See also comment\n * in [[MarkdownIt.parse]].\n **/\nMarkdownIt.prototype.render = function (src, env) {\n env = env || {};\n\n return this.renderer.render(this.parse(src, env), this.options, env);\n};\n\n\n/** internal\n * MarkdownIt.parseInline(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * The same as [[MarkdownIt.parse]] but skip all block rules. It returns the\n * block tokens list with the single `inline` element, containing parsed inline\n * tokens in `children` property. Also updates `env` object.\n **/\nMarkdownIt.prototype.parseInline = function (src, env) {\n var state = new this.core.State(src, this, env);\n\n state.inlineMode = true;\n this.core.process(state);\n\n return state.tokens;\n};\n\n\n/**\n * MarkdownIt.renderInline(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Similar to [[MarkdownIt.render]] but for single paragraph content. Result\n * will NOT be wrapped into `

    ` tags.\n **/\nMarkdownIt.prototype.renderInline = function (src, env) {\n env = env || {};\n\n return this.renderer.render(this.parseInline(src, env), this.options, env);\n};\n\n\nmodule.exports = MarkdownIt;\n","/** internal\n * class ParserBlock\n *\n * Block-level tokenizer.\n **/\n'use strict';\n\n\nvar Ruler = require('./ruler');\n\n\nvar _rules = [\n // First 2 params - rule name & source. Secondary array - list of rules,\n // which can be terminated by this one.\n [ 'table', require('./rules_block/table'), [ 'paragraph', 'reference' ] ],\n [ 'code', require('./rules_block/code') ],\n [ 'fence', require('./rules_block/fence'), [ 'paragraph', 'reference', 'blockquote', 'list' ] ],\n [ 'blockquote', require('./rules_block/blockquote'), [ 'paragraph', 'reference', 'list' ] ],\n [ 'hr', require('./rules_block/hr'), [ 'paragraph', 'reference', 'blockquote', 'list' ] ],\n [ 'list', require('./rules_block/list'), [ 'paragraph', 'reference', 'blockquote' ] ],\n [ 'reference', require('./rules_block/reference') ],\n [ 'heading', require('./rules_block/heading'), [ 'paragraph', 'reference', 'blockquote' ] ],\n [ 'lheading', require('./rules_block/lheading') ],\n [ 'html_block', require('./rules_block/html_block'), [ 'paragraph', 'reference', 'blockquote' ] ],\n [ 'paragraph', require('./rules_block/paragraph') ]\n];\n\n\n/**\n * new ParserBlock()\n **/\nfunction ParserBlock() {\n /**\n * ParserBlock#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of block rules.\n **/\n this.ruler = new Ruler();\n\n for (var i = 0; i < _rules.length; i++) {\n this.ruler.push(_rules[i][0], _rules[i][1], { alt: (_rules[i][2] || []).slice() });\n }\n}\n\n\n// Generate tokens for input range\n//\nParserBlock.prototype.tokenize = function (state, startLine, endLine) {\n var ok, i,\n rules = this.ruler.getRules(''),\n len = rules.length,\n line = startLine,\n hasEmptyLines = false,\n maxNesting = state.md.options.maxNesting;\n\n while (line < endLine) {\n state.line = line = state.skipEmptyLines(line);\n if (line >= endLine) { break; }\n\n // Termination condition for nested calls.\n // Nested calls currently used for blockquotes & lists\n if (state.sCount[line] < state.blkIndent) { break; }\n\n // If nesting level exceeded - skip tail to the end. That's not ordinary\n // situation and we should not care about content.\n if (state.level >= maxNesting) {\n state.line = endLine;\n break;\n }\n\n // Try all possible rules.\n // On success, rule should:\n //\n // - update `state.line`\n // - update `state.tokens`\n // - return true\n\n for (i = 0; i < len; i++) {\n ok = rules[i](state, line, endLine, false);\n if (ok) { break; }\n }\n\n // set state.tight iff we had an empty line before current tag\n // i.e. latest empty line should not count\n state.tight = !hasEmptyLines;\n\n // paragraph might \"eat\" one newline after it in nested lists\n if (state.isEmpty(state.line - 1)) {\n hasEmptyLines = true;\n }\n\n line = state.line;\n\n if (line < endLine && state.isEmpty(line)) {\n hasEmptyLines = true;\n line++;\n\n // two empty lines should stop the parser in list mode\n if (line < endLine && state.parentType === 'list' && state.isEmpty(line)) { break; }\n state.line = line;\n }\n }\n};\n\n\n/**\n * ParserBlock.parse(str, md, env, outTokens)\n *\n * Process input string and push block tokens into `outTokens`\n **/\nParserBlock.prototype.parse = function (src, md, env, outTokens) {\n var state;\n\n if (!src) { return; }\n\n state = new this.State(src, md, env, outTokens);\n\n this.tokenize(state, state.line, state.lineMax);\n};\n\n\nParserBlock.prototype.State = require('./rules_block/state_block');\n\n\nmodule.exports = ParserBlock;\n","/** internal\n * class Core\n *\n * Top-level rules executor. Glues block/inline parsers and does intermediate\n * transformations.\n **/\n'use strict';\n\n\nvar Ruler = require('./ruler');\n\n\nvar _rules = [\n [ 'normalize', require('./rules_core/normalize') ],\n [ 'block', require('./rules_core/block') ],\n [ 'inline', require('./rules_core/inline') ],\n [ 'linkify', require('./rules_core/linkify') ],\n [ 'replacements', require('./rules_core/replacements') ],\n [ 'smartquotes', require('./rules_core/smartquotes') ]\n];\n\n\n/**\n * new Core()\n **/\nfunction Core() {\n /**\n * Core#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of core rules.\n **/\n this.ruler = new Ruler();\n\n for (var i = 0; i < _rules.length; i++) {\n this.ruler.push(_rules[i][0], _rules[i][1]);\n }\n}\n\n\n/**\n * Core.process(state)\n *\n * Executes core chain rules.\n **/\nCore.prototype.process = function (state) {\n var i, l, rules;\n\n rules = this.ruler.getRules('');\n\n for (i = 0, l = rules.length; i < l; i++) {\n rules[i](state);\n }\n};\n\nCore.prototype.State = require('./rules_core/state_core');\n\n\nmodule.exports = Core;\n","/** internal\n * class ParserInline\n *\n * Tokenizes paragraph content.\n **/\n'use strict';\n\n\nvar Ruler = require('./ruler');\n\n\n////////////////////////////////////////////////////////////////////////////////\n// Parser rules\n\nvar _rules = [\n [ 'text', require('./rules_inline/text') ],\n [ 'newline', require('./rules_inline/newline') ],\n [ 'escape', require('./rules_inline/escape') ],\n [ 'backticks', require('./rules_inline/backticks') ],\n [ 'strikethrough', require('./rules_inline/strikethrough').tokenize ],\n [ 'emphasis', require('./rules_inline/emphasis').tokenize ],\n [ 'link', require('./rules_inline/link') ],\n [ 'image', require('./rules_inline/image') ],\n [ 'autolink', require('./rules_inline/autolink') ],\n [ 'html_inline', require('./rules_inline/html_inline') ],\n [ 'entity', require('./rules_inline/entity') ]\n];\n\nvar _rules2 = [\n [ 'balance_pairs', require('./rules_inline/balance_pairs') ],\n [ 'strikethrough', require('./rules_inline/strikethrough').postProcess ],\n [ 'emphasis', require('./rules_inline/emphasis').postProcess ],\n [ 'text_collapse', require('./rules_inline/text_collapse') ]\n];\n\n\n/**\n * new ParserInline()\n **/\nfunction ParserInline() {\n var i;\n\n /**\n * ParserInline#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of inline rules.\n **/\n this.ruler = new Ruler();\n\n for (i = 0; i < _rules.length; i++) {\n this.ruler.push(_rules[i][0], _rules[i][1]);\n }\n\n /**\n * ParserInline#ruler2 -> Ruler\n *\n * [[Ruler]] instance. Second ruler used for post-processing\n * (e.g. in emphasis-like rules).\n **/\n this.ruler2 = new Ruler();\n\n for (i = 0; i < _rules2.length; i++) {\n this.ruler2.push(_rules2[i][0], _rules2[i][1]);\n }\n}\n\n\n// Skip single token by running all rules in validation mode;\n// returns `true` if any rule reported success\n//\nParserInline.prototype.skipToken = function (state) {\n var ok, i, pos = state.pos,\n rules = this.ruler.getRules(''),\n len = rules.length,\n maxNesting = state.md.options.maxNesting,\n cache = state.cache;\n\n\n if (typeof cache[pos] !== 'undefined') {\n state.pos = cache[pos];\n return;\n }\n\n if (state.level < maxNesting) {\n for (i = 0; i < len; i++) {\n // Increment state.level and decrement it later to limit recursion.\n // It's harmless to do here, because no tokens are created. But ideally,\n // we'd need a separate private state variable for this purpose.\n //\n state.level++;\n ok = rules[i](state, true);\n state.level--;\n\n if (ok) { break; }\n }\n } else {\n // Too much nesting, just skip until the end of the paragraph.\n //\n // NOTE: this will cause links to behave incorrectly in the following case,\n // when an amount of `[` is exactly equal to `maxNesting + 1`:\n //\n // [[[[[[[[[[[[[[[[[[[[[foo]()\n //\n // TODO: remove this workaround when CM standard will allow nested links\n // (we can replace it by preventing links from being parsed in\n // validation mode)\n //\n state.pos = state.posMax;\n }\n\n if (!ok) { state.pos++; }\n cache[pos] = state.pos;\n};\n\n\n// Generate tokens for input range\n//\nParserInline.prototype.tokenize = function (state) {\n var ok, i,\n rules = this.ruler.getRules(''),\n len = rules.length,\n end = state.posMax,\n maxNesting = state.md.options.maxNesting;\n\n while (state.pos < end) {\n // Try all possible rules.\n // On success, rule should:\n //\n // - update `state.pos`\n // - update `state.tokens`\n // - return true\n\n if (state.level < maxNesting) {\n for (i = 0; i < len; i++) {\n ok = rules[i](state, false);\n if (ok) { break; }\n }\n }\n\n if (ok) {\n if (state.pos >= end) { break; }\n continue;\n }\n\n state.pending += state.src[state.pos++];\n }\n\n if (state.pending) {\n state.pushPending();\n }\n};\n\n\n/**\n * ParserInline.parse(str, md, env, outTokens)\n *\n * Process input string and push inline tokens into `outTokens`\n **/\nParserInline.prototype.parse = function (str, md, env, outTokens) {\n var i, rules, len;\n var state = new this.State(str, md, env, outTokens);\n\n this.tokenize(state);\n\n rules = this.ruler2.getRules('');\n len = rules.length;\n\n for (i = 0; i < len; i++) {\n rules[i](state);\n }\n};\n\n\nParserInline.prototype.State = require('./rules_inline/state_inline');\n\n\nmodule.exports = ParserInline;\n","// Commonmark default options\n\n'use strict';\n\n\nmodule.exports = {\n options: {\n html: true, // Enable HTML tags in source\n xhtmlOut: true, // Use '/' to close single tags (
    )\n breaks: false, // Convert '\\n' in paragraphs into
    \n langPrefix: 'language-', // CSS language prefix for fenced blocks\n linkify: false, // autoconvert URL-like texts to links\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with )\n breaks: false, // Convert '\\n' in paragraphs into
    \n langPrefix: 'language-', // CSS language prefix for fenced blocks\n linkify: false, // autoconvert URL-like texts to links\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with )\n breaks: false, // Convert '\\n' in paragraphs into
    \n langPrefix: 'language-', // CSS language prefix for fenced blocks\n linkify: false, // autoconvert URL-like texts to links\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with ' +\n escapeHtml(tokens[idx].content) +\n '';\n};\n\n\ndefault_rules.code_block = function (tokens, idx, options, env, slf) {\n var token = tokens[idx],\n attrs = slf.renderAttrs(token);\n\n return '' +\n escapeHtml(tokens[idx].content) +\n '\\n';\n};\n\n\ndefault_rules.fence = function (tokens, idx, options, env, slf) {\n var token = tokens[idx],\n info = token.info ? unescapeAll(token.info).trim() : '',\n langName = '',\n highlighted, i, tmpAttrs, tmpToken;\n\n if (info) {\n langName = info.split(/\\s+/g)[0];\n }\n\n if (options.highlight) {\n highlighted = options.highlight(token.content, langName) || escapeHtml(token.content);\n } else {\n highlighted = escapeHtml(token.content);\n }\n\n if (highlighted.indexOf(''\n + highlighted\n + '\\n';\n }\n\n\n return '

    '\n        + highlighted\n        + '
    \\n';\n};\n\n\ndefault_rules.image = function (tokens, idx, options, env, slf) {\n var token = tokens[idx];\n\n // \"alt\" attr MUST be set, even if empty. Because it's mandatory and\n // should be placed on proper position for tests.\n //\n // Replace content with actual value\n\n token.attrs[token.attrIndex('alt')][1] =\n slf.renderInlineAsText(token.children, options, env);\n\n return slf.renderToken(tokens, idx, options);\n};\n\n\ndefault_rules.hardbreak = function (tokens, idx, options /*, env */) {\n return options.xhtmlOut ? '
    \\n' : '
    \\n';\n};\ndefault_rules.softbreak = function (tokens, idx, options /*, env */) {\n return options.breaks ? (options.xhtmlOut ? '
    \\n' : '
    \\n') : '\\n';\n};\n\n\ndefault_rules.text = function (tokens, idx /*, options, env */) {\n return escapeHtml(tokens[idx].content);\n};\n\n\ndefault_rules.html_block = function (tokens, idx /*, options, env */) {\n return tokens[idx].content;\n};\ndefault_rules.html_inline = function (tokens, idx /*, options, env */) {\n return tokens[idx].content;\n};\n\n\n/**\n * new Renderer()\n *\n * Creates new [[Renderer]] instance and fill [[Renderer#rules]] with defaults.\n **/\nfunction Renderer() {\n\n /**\n * Renderer#rules -> Object\n *\n * Contains render rules for tokens. Can be updated and extended.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.renderer.rules.strong_open = function () { return ''; };\n * md.renderer.rules.strong_close = function () { return ''; };\n *\n * var result = md.renderInline(...);\n * ```\n *\n * Each rule is called as independed static function with fixed signature:\n *\n * ```javascript\n * function my_token_render(tokens, idx, options, env, renderer) {\n * // ...\n * return renderedHTML;\n * }\n * ```\n *\n * See [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.js)\n * for more details and examples.\n **/\n this.rules = assign({}, default_rules);\n}\n\n\n/**\n * Renderer.renderAttrs(token) -> String\n *\n * Render token attributes to string.\n **/\nRenderer.prototype.renderAttrs = function renderAttrs(token) {\n var i, l, result;\n\n if (!token.attrs) { return ''; }\n\n result = '';\n\n for (i = 0, l = token.attrs.length; i < l; i++) {\n result += ' ' + escapeHtml(token.attrs[i][0]) + '=\"' + escapeHtml(token.attrs[i][1]) + '\"';\n }\n\n return result;\n};\n\n\n/**\n * Renderer.renderToken(tokens, idx, options) -> String\n * - tokens (Array): list of tokens\n * - idx (Numbed): token index to render\n * - options (Object): params of parser instance\n *\n * Default token renderer. Can be overriden by custom function\n * in [[Renderer#rules]].\n **/\nRenderer.prototype.renderToken = function renderToken(tokens, idx, options) {\n var nextToken,\n result = '',\n needLf = false,\n token = tokens[idx];\n\n // Tight list paragraphs\n if (token.hidden) {\n return '';\n }\n\n // Insert a newline between hidden paragraph and subsequent opening\n // block-level tag.\n //\n // For example, here we should insert a newline before blockquote:\n // - a\n // >\n //\n if (token.block && token.nesting !== -1 && idx && tokens[idx - 1].hidden) {\n result += '\\n';\n }\n\n // Add token name, e.g. ``.\n //\n needLf = false;\n }\n }\n }\n }\n\n result += needLf ? '>\\n' : '>';\n\n return result;\n};\n\n\n/**\n * Renderer.renderInline(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to renter\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * The same as [[Renderer.render]], but for single token of `inline` type.\n **/\nRenderer.prototype.renderInline = function (tokens, options, env) {\n var type,\n result = '',\n rules = this.rules;\n\n for (var i = 0, len = tokens.length; i < len; i++) {\n type = tokens[i].type;\n\n if (typeof rules[type] !== 'undefined') {\n result += rules[type](tokens, i, options, env, this);\n } else {\n result += this.renderToken(tokens, i, options);\n }\n }\n\n return result;\n};\n\n\n/** internal\n * Renderer.renderInlineAsText(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to renter\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * Special kludge for image `alt` attributes to conform CommonMark spec.\n * Don't try to use it! Spec requires to show `alt` content with stripped markup,\n * instead of simple escaping.\n **/\nRenderer.prototype.renderInlineAsText = function (tokens, options, env) {\n var result = '';\n\n for (var i = 0, len = tokens.length; i < len; i++) {\n if (tokens[i].type === 'text') {\n result += tokens[i].content;\n } else if (tokens[i].type === 'image') {\n result += this.renderInlineAsText(tokens[i].children, options, env);\n }\n }\n\n return result;\n};\n\n\n/**\n * Renderer.render(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to renter\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * Takes token stream and generates HTML. Probably, you will never need to call\n * this method directly.\n **/\nRenderer.prototype.render = function (tokens, options, env) {\n var i, len, type,\n result = '',\n rules = this.rules;\n\n for (i = 0, len = tokens.length; i < len; i++) {\n type = tokens[i].type;\n\n if (type === 'inline') {\n result += this.renderInline(tokens[i].children, options, env);\n } else if (typeof rules[type] !== 'undefined') {\n result += rules[tokens[i].type](tokens, i, options, env, this);\n } else {\n result += this.renderToken(tokens, i, options, env);\n }\n }\n\n return result;\n};\n\nmodule.exports = Renderer;\n","/**\n * class Ruler\n *\n * Helper class, used by [[MarkdownIt#core]], [[MarkdownIt#block]] and\n * [[MarkdownIt#inline]] to manage sequences of functions (rules):\n *\n * - keep rules in defined order\n * - assign the name to each rule\n * - enable/disable rules\n * - add/replace rules\n * - allow assign rules to additional named chains (in the same)\n * - cacheing lists of active rules\n *\n * You will not need use this class directly until write plugins. For simple\n * rules control use [[MarkdownIt.disable]], [[MarkdownIt.enable]] and\n * [[MarkdownIt.use]].\n **/\n'use strict';\n\n\n/**\n * new Ruler()\n **/\nfunction Ruler() {\n // List of added rules. Each element is:\n //\n // {\n // name: XXX,\n // enabled: Boolean,\n // fn: Function(),\n // alt: [ name2, name3 ]\n // }\n //\n this.__rules__ = [];\n\n // Cached rule chains.\n //\n // First level - chain name, '' for default.\n // Second level - diginal anchor for fast filtering by charcodes.\n //\n this.__cache__ = null;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Helper methods, should not be used directly\n\n\n// Find rule index by name\n//\nRuler.prototype.__find__ = function (name) {\n for (var i = 0; i < this.__rules__.length; i++) {\n if (this.__rules__[i].name === name) {\n return i;\n }\n }\n return -1;\n};\n\n\n// Build rules lookup cache\n//\nRuler.prototype.__compile__ = function () {\n var self = this;\n var chains = [ '' ];\n\n // collect unique names\n self.__rules__.forEach(function (rule) {\n if (!rule.enabled) { return; }\n\n rule.alt.forEach(function (altName) {\n if (chains.indexOf(altName) < 0) {\n chains.push(altName);\n }\n });\n });\n\n self.__cache__ = {};\n\n chains.forEach(function (chain) {\n self.__cache__[chain] = [];\n self.__rules__.forEach(function (rule) {\n if (!rule.enabled) { return; }\n\n if (chain && rule.alt.indexOf(chain) < 0) { return; }\n\n self.__cache__[chain].push(rule.fn);\n });\n });\n};\n\n\n/**\n * Ruler.at(name, fn [, options])\n * - name (String): rule name to replace.\n * - fn (Function): new rule function.\n * - options (Object): new rule options (not mandatory).\n *\n * Replace rule by name with new function & options. Throws error if name not\n * found.\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * Replace existing typorgapher replacement rule with new one:\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.at('replacements', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.at = function (name, fn, options) {\n var index = this.__find__(name);\n var opt = options || {};\n\n if (index === -1) { throw new Error('Parser rule not found: ' + name); }\n\n this.__rules__[index].fn = fn;\n this.__rules__[index].alt = opt.alt || [];\n this.__cache__ = null;\n};\n\n\n/**\n * Ruler.before(beforeName, ruleName, fn [, options])\n * - beforeName (String): new rule will be added before this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain before one with given name. See also\n * [[Ruler.after]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.block.ruler.before('paragraph', 'my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.before = function (beforeName, ruleName, fn, options) {\n var index = this.__find__(beforeName);\n var opt = options || {};\n\n if (index === -1) { throw new Error('Parser rule not found: ' + beforeName); }\n\n this.__rules__.splice(index, 0, {\n name: ruleName,\n enabled: true,\n fn: fn,\n alt: opt.alt || []\n });\n\n this.__cache__ = null;\n};\n\n\n/**\n * Ruler.after(afterName, ruleName, fn [, options])\n * - afterName (String): new rule will be added after this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain after one with given name. See also\n * [[Ruler.before]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.inline.ruler.after('text', 'my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.after = function (afterName, ruleName, fn, options) {\n var index = this.__find__(afterName);\n var opt = options || {};\n\n if (index === -1) { throw new Error('Parser rule not found: ' + afterName); }\n\n this.__rules__.splice(index + 1, 0, {\n name: ruleName,\n enabled: true,\n fn: fn,\n alt: opt.alt || []\n });\n\n this.__cache__ = null;\n};\n\n/**\n * Ruler.push(ruleName, fn [, options])\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Push new rule to the end of chain. See also\n * [[Ruler.before]], [[Ruler.after]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.push('my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.push = function (ruleName, fn, options) {\n var opt = options || {};\n\n this.__rules__.push({\n name: ruleName,\n enabled: true,\n fn: fn,\n alt: opt.alt || []\n });\n\n this.__cache__ = null;\n};\n\n\n/**\n * Ruler.enable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to enable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.disable]], [[Ruler.enableOnly]].\n **/\nRuler.prototype.enable = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [ list ]; }\n\n var result = [];\n\n // Search by name and enable\n list.forEach(function (name) {\n var idx = this.__find__(name);\n\n if (idx < 0) {\n if (ignoreInvalid) { return; }\n throw new Error('Rules manager: invalid rule name ' + name);\n }\n this.__rules__[idx].enabled = true;\n result.push(name);\n }, this);\n\n this.__cache__ = null;\n return result;\n};\n\n\n/**\n * Ruler.enableOnly(list [, ignoreInvalid])\n * - list (String|Array): list of rule names to enable (whitelist).\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names, and disable everything else. If any rule name\n * not found - throw Error. Errors can be disabled by second param.\n *\n * See also [[Ruler.disable]], [[Ruler.enable]].\n **/\nRuler.prototype.enableOnly = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [ list ]; }\n\n this.__rules__.forEach(function (rule) { rule.enabled = false; });\n\n this.enable(list, ignoreInvalid);\n};\n\n\n/**\n * Ruler.disable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Disable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.enable]], [[Ruler.enableOnly]].\n **/\nRuler.prototype.disable = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [ list ]; }\n\n var result = [];\n\n // Search by name and disable\n list.forEach(function (name) {\n var idx = this.__find__(name);\n\n if (idx < 0) {\n if (ignoreInvalid) { return; }\n throw new Error('Rules manager: invalid rule name ' + name);\n }\n this.__rules__[idx].enabled = false;\n result.push(name);\n }, this);\n\n this.__cache__ = null;\n return result;\n};\n\n\n/**\n * Ruler.getRules(chainName) -> Array\n *\n * Return array of active functions (rules) for given chain name. It analyzes\n * rules configuration, compiles caches if not exists and returns result.\n *\n * Default chain name is `''` (empty string). It can't be skipped. That's\n * done intentionally, to keep signature monomorphic for high speed.\n **/\nRuler.prototype.getRules = function (chainName) {\n if (this.__cache__ === null) {\n this.__compile__();\n }\n\n // Chain can be empty, if rules disabled. But we still have to return Array.\n return this.__cache__[chainName] || [];\n};\n\nmodule.exports = Ruler;\n","// Block quotes\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function blockquote(state, startLine, endLine, silent) {\n var nextLine, lastLineEmpty, oldTShift, oldSCount, oldBMarks, oldIndent, oldParentType, lines, initial, offset, ch,\n terminatorRules, token,\n i, l, terminate,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n // check the block quote marker\n if (state.src.charCodeAt(pos++) !== 0x3E/* > */) { return false; }\n\n // we know that it's going to be a valid blockquote,\n // so no point trying to find the end of it in silent mode\n if (silent) { return true; }\n\n // skip one optional space (but not tab, check cmark impl) after '>'\n if (state.src.charCodeAt(pos) === 0x20) { pos++; }\n\n oldIndent = state.blkIndent;\n state.blkIndent = 0;\n\n // skip spaces after \">\" and re-calculate offset\n initial = offset = state.sCount[startLine] + pos - (state.bMarks[startLine] + state.tShift[startLine]);\n\n oldBMarks = [ state.bMarks[startLine] ];\n state.bMarks[startLine] = pos;\n\n while (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (isSpace(ch)) {\n if (ch === 0x09) {\n offset += 4 - offset % 4;\n } else {\n offset++;\n }\n } else {\n break;\n }\n\n pos++;\n }\n\n lastLineEmpty = pos >= max;\n\n oldSCount = [ state.sCount[startLine] ];\n state.sCount[startLine] = offset - initial;\n\n oldTShift = [ state.tShift[startLine] ];\n state.tShift[startLine] = pos - state.bMarks[startLine];\n\n terminatorRules = state.md.block.ruler.getRules('blockquote');\n\n // Search the end of the block\n //\n // Block ends with either:\n // 1. an empty line outside:\n // ```\n // > test\n //\n // ```\n // 2. an empty line inside:\n // ```\n // >\n // test\n // ```\n // 3. another tag\n // ```\n // > test\n // - - -\n // ```\n for (nextLine = startLine + 1; nextLine < endLine; nextLine++) {\n if (state.sCount[nextLine] < oldIndent) { break; }\n\n pos = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n\n if (pos >= max) {\n // Case 1: line is not inside the blockquote, and this line is empty.\n break;\n }\n\n if (state.src.charCodeAt(pos++) === 0x3E/* > */) {\n // This line is inside the blockquote.\n\n // skip one optional space (but not tab, check cmark impl) after '>'\n if (state.src.charCodeAt(pos) === 0x20) { pos++; }\n\n // skip spaces after \">\" and re-calculate offset\n initial = offset = state.sCount[nextLine] + pos - (state.bMarks[nextLine] + state.tShift[nextLine]);\n\n oldBMarks.push(state.bMarks[nextLine]);\n state.bMarks[nextLine] = pos;\n\n while (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (isSpace(ch)) {\n if (ch === 0x09) {\n offset += 4 - offset % 4;\n } else {\n offset++;\n }\n } else {\n break;\n }\n\n pos++;\n }\n\n lastLineEmpty = pos >= max;\n\n oldSCount.push(state.sCount[nextLine]);\n state.sCount[nextLine] = offset - initial;\n\n oldTShift.push(state.tShift[nextLine]);\n state.tShift[nextLine] = pos - state.bMarks[nextLine];\n continue;\n }\n\n // Case 2: line is not inside the blockquote, and the last line was empty.\n if (lastLineEmpty) { break; }\n\n // Case 3: another tag found.\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) { break; }\n\n oldBMarks.push(state.bMarks[nextLine]);\n oldTShift.push(state.tShift[nextLine]);\n oldSCount.push(state.sCount[nextLine]);\n\n // A negative indentation means that this is a paragraph continuation\n //\n state.sCount[nextLine] = -1;\n }\n\n oldParentType = state.parentType;\n state.parentType = 'blockquote';\n\n token = state.push('blockquote_open', 'blockquote', 1);\n token.markup = '>';\n token.map = lines = [ startLine, 0 ];\n\n state.md.block.tokenize(state, startLine, nextLine);\n\n token = state.push('blockquote_close', 'blockquote', -1);\n token.markup = '>';\n\n state.parentType = oldParentType;\n lines[1] = state.line;\n\n // Restore original tShift; this might not be necessary since the parser\n // has already been here, but just to make sure we can do that.\n for (i = 0; i < oldTShift.length; i++) {\n state.bMarks[i + startLine] = oldBMarks[i];\n state.tShift[i + startLine] = oldTShift[i];\n state.sCount[i + startLine] = oldSCount[i];\n }\n state.blkIndent = oldIndent;\n\n return true;\n};\n","// Code block (4 spaces padded)\n\n'use strict';\n\n\nmodule.exports = function code(state, startLine, endLine/*, silent*/) {\n var nextLine, last, token, emptyLines = 0;\n\n if (state.sCount[startLine] - state.blkIndent < 4) { return false; }\n\n last = nextLine = startLine + 1;\n\n while (nextLine < endLine) {\n if (state.isEmpty(nextLine)) {\n emptyLines++;\n\n // workaround for lists: 2 blank lines should terminate indented\n // code block, but not fenced code block\n if (emptyLines >= 2 && state.parentType === 'list') {\n break;\n }\n\n nextLine++;\n continue;\n }\n\n emptyLines = 0;\n\n if (state.sCount[nextLine] - state.blkIndent >= 4) {\n nextLine++;\n last = nextLine;\n continue;\n }\n break;\n }\n\n state.line = last;\n\n token = state.push('code_block', 'code', 0);\n token.content = state.getLines(startLine, last, 4 + state.blkIndent, true);\n token.map = [ startLine, state.line ];\n\n return true;\n};\n","// fences (``` lang, ~~~ lang)\n\n'use strict';\n\n\nmodule.exports = function fence(state, startLine, endLine, silent) {\n var marker, len, params, nextLine, mem, token, markup,\n haveEndMarker = false,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n if (pos + 3 > max) { return false; }\n\n marker = state.src.charCodeAt(pos);\n\n if (marker !== 0x7E/* ~ */ && marker !== 0x60 /* ` */) {\n return false;\n }\n\n // scan marker length\n mem = pos;\n pos = state.skipChars(pos, marker);\n\n len = pos - mem;\n\n if (len < 3) { return false; }\n\n markup = state.src.slice(mem, pos);\n params = state.src.slice(pos, max);\n\n if (params.indexOf('`') >= 0) { return false; }\n\n // Since start is found, we can report success here in validation mode\n if (silent) { return true; }\n\n // search end of block\n nextLine = startLine;\n\n for (;;) {\n nextLine++;\n if (nextLine >= endLine) {\n // unclosed block should be autoclosed by end of document.\n // also block seems to be autoclosed by end of parent\n break;\n }\n\n pos = mem = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n\n if (pos < max && state.sCount[nextLine] < state.blkIndent) {\n // non-empty line with negative indent should stop the list:\n // - ```\n // test\n break;\n }\n\n if (state.src.charCodeAt(pos) !== marker) { continue; }\n\n if (state.sCount[nextLine] - state.blkIndent >= 4) {\n // closing fence should be indented less than 4 spaces\n continue;\n }\n\n pos = state.skipChars(pos, marker);\n\n // closing code fence must be at least as long as the opening one\n if (pos - mem < len) { continue; }\n\n // make sure tail has spaces only\n pos = state.skipSpaces(pos);\n\n if (pos < max) { continue; }\n\n haveEndMarker = true;\n // found!\n break;\n }\n\n // If a fence has heading spaces, they should be removed from its inner block\n len = state.sCount[startLine];\n\n state.line = nextLine + (haveEndMarker ? 1 : 0);\n\n token = state.push('fence', 'code', 0);\n token.info = params;\n token.content = state.getLines(startLine + 1, nextLine, len, true);\n token.markup = markup;\n token.map = [ startLine, state.line ];\n\n return true;\n};\n","// heading (#, ##, ...)\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function heading(state, startLine, endLine, silent) {\n var ch, level, tmp, token,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n ch = state.src.charCodeAt(pos);\n\n if (ch !== 0x23/* # */ || pos >= max) { return false; }\n\n // count heading level\n level = 1;\n ch = state.src.charCodeAt(++pos);\n while (ch === 0x23/* # */ && pos < max && level <= 6) {\n level++;\n ch = state.src.charCodeAt(++pos);\n }\n\n if (level > 6 || (pos < max && ch !== 0x20/* space */)) { return false; }\n\n if (silent) { return true; }\n\n // Let's cut tails like ' ### ' from the end of string\n\n max = state.skipSpacesBack(max, pos);\n tmp = state.skipCharsBack(max, 0x23, pos); // #\n if (tmp > pos && isSpace(state.src.charCodeAt(tmp - 1))) {\n max = tmp;\n }\n\n state.line = startLine + 1;\n\n token = state.push('heading_open', 'h' + String(level), 1);\n token.markup = '########'.slice(0, level);\n token.map = [ startLine, state.line ];\n\n token = state.push('inline', '', 0);\n token.content = state.src.slice(pos, max).trim();\n token.map = [ startLine, state.line ];\n token.children = [];\n\n token = state.push('heading_close', 'h' + String(level), -1);\n token.markup = '########'.slice(0, level);\n\n return true;\n};\n","// Horizontal rule\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function hr(state, startLine, endLine, silent) {\n var marker, cnt, ch, token,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n marker = state.src.charCodeAt(pos++);\n\n // Check hr marker\n if (marker !== 0x2A/* * */ &&\n marker !== 0x2D/* - */ &&\n marker !== 0x5F/* _ */) {\n return false;\n }\n\n // markers can be mixed with spaces, but there should be at least 3 of them\n\n cnt = 1;\n while (pos < max) {\n ch = state.src.charCodeAt(pos++);\n if (ch !== marker && !isSpace(ch)) { return false; }\n if (ch === marker) { cnt++; }\n }\n\n if (cnt < 3) { return false; }\n\n if (silent) { return true; }\n\n state.line = startLine + 1;\n\n token = state.push('hr', 'hr', 0);\n token.map = [ startLine, state.line ];\n token.markup = Array(cnt + 1).join(String.fromCharCode(marker));\n\n return true;\n};\n","// HTML block\n\n'use strict';\n\n\nvar block_names = require('../common/html_blocks');\nvar HTML_OPEN_CLOSE_TAG_RE = require('../common/html_re').HTML_OPEN_CLOSE_TAG_RE;\n\n// An array of opening and corresponding closing sequences for html tags,\n// last argument defines whether it can terminate a paragraph or not\n//\nvar HTML_SEQUENCES = [\n [ /^<(script|pre|style)(?=(\\s|>|$))/i, /<\\/(script|pre|style)>/i, true ],\n [ /^/, true ],\n [ /^<\\?/, /\\?>/, true ],\n [ /^/, true ],\n [ /^/, true ],\n [ new RegExp('^|$))', 'i'), /^$/, true ],\n [ new RegExp(HTML_OPEN_CLOSE_TAG_RE.source + '\\\\s*$'), /^$/, false ]\n];\n\n\nmodule.exports = function html_block(state, startLine, endLine, silent) {\n var i, nextLine, token, lineText,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n if (!state.md.options.html) { return false; }\n\n if (state.src.charCodeAt(pos) !== 0x3C/* < */) { return false; }\n\n lineText = state.src.slice(pos, max);\n\n for (i = 0; i < HTML_SEQUENCES.length; i++) {\n if (HTML_SEQUENCES[i][0].test(lineText)) { break; }\n }\n\n if (i === HTML_SEQUENCES.length) { return false; }\n\n if (silent) {\n // true if this sequence can be a terminator, false otherwise\n return HTML_SEQUENCES[i][2];\n }\n\n nextLine = startLine + 1;\n\n // If we are here - we detected HTML block.\n // Let's roll down till block end.\n if (!HTML_SEQUENCES[i][1].test(lineText)) {\n for (; nextLine < endLine; nextLine++) {\n if (state.sCount[nextLine] < state.blkIndent) { break; }\n\n pos = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n lineText = state.src.slice(pos, max);\n\n if (HTML_SEQUENCES[i][1].test(lineText)) {\n if (lineText.length !== 0) { nextLine++; }\n break;\n }\n }\n }\n\n state.line = nextLine;\n\n token = state.push('html_block', '', 0);\n token.map = [ startLine, nextLine ];\n token.content = state.getLines(startLine, nextLine, state.blkIndent, true);\n\n return true;\n};\n","// lheading (---, ===)\n\n'use strict';\n\n\nmodule.exports = function lheading(state, startLine, endLine/*, silent*/) {\n var content, terminate, i, l, token, pos, max, level, marker,\n nextLine = startLine + 1,\n terminatorRules = state.md.block.ruler.getRules('paragraph');\n\n // jump line-by-line until empty one or EOF\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { continue; }\n\n //\n // Check for underline in setext header\n //\n if (state.sCount[nextLine] >= state.blkIndent) {\n pos = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n\n if (pos < max) {\n marker = state.src.charCodeAt(pos);\n\n if (marker === 0x2D/* - */ || marker === 0x3D/* = */) {\n pos = state.skipChars(pos, marker);\n pos = state.skipSpaces(pos);\n\n if (pos >= max) {\n level = (marker === 0x3D/* = */ ? 1 : 2);\n break;\n }\n }\n }\n }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { continue; }\n\n // Some tags can terminate paragraph without empty line.\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) { break; }\n }\n\n if (!level) {\n // Didn't find valid underline\n return false;\n }\n\n content = state.getLines(startLine, nextLine, state.blkIndent, false).trim();\n\n state.line = nextLine + 1;\n\n token = state.push('heading_open', 'h' + String(level), 1);\n token.markup = String.fromCharCode(marker);\n token.map = [ startLine, state.line ];\n\n token = state.push('inline', '', 0);\n token.content = content;\n token.map = [ startLine, state.line - 1 ];\n token.children = [];\n\n token = state.push('heading_close', 'h' + String(level), -1);\n token.markup = String.fromCharCode(marker);\n\n return true;\n};\n","// Lists\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\n// Search `[-+*][\\n ]`, returns next pos arter marker on success\n// or -1 on fail.\nfunction skipBulletListMarker(state, startLine) {\n var marker, pos, max, ch;\n\n pos = state.bMarks[startLine] + state.tShift[startLine];\n max = state.eMarks[startLine];\n\n marker = state.src.charCodeAt(pos++);\n // Check bullet\n if (marker !== 0x2A/* * */ &&\n marker !== 0x2D/* - */ &&\n marker !== 0x2B/* + */) {\n return -1;\n }\n\n if (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (!isSpace(ch)) {\n // \" -test \" - is not a list item\n return -1;\n }\n }\n\n return pos;\n}\n\n// Search `\\d+[.)][\\n ]`, returns next pos arter marker on success\n// or -1 on fail.\nfunction skipOrderedListMarker(state, startLine) {\n var ch,\n start = state.bMarks[startLine] + state.tShift[startLine],\n pos = start,\n max = state.eMarks[startLine];\n\n // List marker should have at least 2 chars (digit + dot)\n if (pos + 1 >= max) { return -1; }\n\n ch = state.src.charCodeAt(pos++);\n\n if (ch < 0x30/* 0 */ || ch > 0x39/* 9 */) { return -1; }\n\n for (;;) {\n // EOL -> fail\n if (pos >= max) { return -1; }\n\n ch = state.src.charCodeAt(pos++);\n\n if (ch >= 0x30/* 0 */ && ch <= 0x39/* 9 */) {\n\n // List marker should have no more than 9 digits\n // (prevents integer overflow in browsers)\n if (pos - start >= 10) { return -1; }\n\n continue;\n }\n\n // found valid marker\n if (ch === 0x29/* ) */ || ch === 0x2e/* . */) {\n break;\n }\n\n return -1;\n }\n\n\n if (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (!isSpace(ch)) {\n // \" 1.test \" - is not a list item\n return -1;\n }\n }\n return pos;\n}\n\nfunction markTightParagraphs(state, idx) {\n var i, l,\n level = state.level + 2;\n\n for (i = idx + 2, l = state.tokens.length - 2; i < l; i++) {\n if (state.tokens[i].level === level && state.tokens[i].type === 'paragraph_open') {\n state.tokens[i + 2].hidden = true;\n state.tokens[i].hidden = true;\n i += 2;\n }\n }\n}\n\n\nmodule.exports = function list(state, startLine, endLine, silent) {\n var nextLine,\n initial,\n offset,\n indent,\n oldTShift,\n oldIndent,\n oldLIndent,\n oldTight,\n oldParentType,\n start,\n posAfterMarker,\n ch,\n pos,\n max,\n indentAfterMarker,\n markerValue,\n markerCharCode,\n isOrdered,\n contentStart,\n listTokIdx,\n prevEmptyEnd,\n listLines,\n itemLines,\n tight = true,\n terminatorRules,\n token,\n i, l, terminate;\n\n // Detect list type and position after marker\n if ((posAfterMarker = skipOrderedListMarker(state, startLine)) >= 0) {\n isOrdered = true;\n } else if ((posAfterMarker = skipBulletListMarker(state, startLine)) >= 0) {\n isOrdered = false;\n } else {\n return false;\n }\n\n // We should terminate list on style change. Remember first one to compare.\n markerCharCode = state.src.charCodeAt(posAfterMarker - 1);\n\n // For validation mode we can terminate immediately\n if (silent) { return true; }\n\n // Start list\n listTokIdx = state.tokens.length;\n\n if (isOrdered) {\n start = state.bMarks[startLine] + state.tShift[startLine];\n markerValue = Number(state.src.substr(start, posAfterMarker - start - 1));\n\n token = state.push('ordered_list_open', 'ol', 1);\n if (markerValue !== 1) {\n token.attrs = [ [ 'start', markerValue ] ];\n }\n\n } else {\n token = state.push('bullet_list_open', 'ul', 1);\n }\n\n token.map = listLines = [ startLine, 0 ];\n token.markup = String.fromCharCode(markerCharCode);\n\n //\n // Iterate list items\n //\n\n nextLine = startLine;\n prevEmptyEnd = false;\n terminatorRules = state.md.block.ruler.getRules('list');\n\n while (nextLine < endLine) {\n pos = posAfterMarker;\n max = state.eMarks[nextLine];\n\n initial = offset = state.sCount[nextLine] + posAfterMarker - (state.bMarks[startLine] + state.tShift[startLine]);\n\n while (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (isSpace(ch)) {\n if (ch === 0x09) {\n offset += 4 - offset % 4;\n } else {\n offset++;\n }\n } else {\n break;\n }\n\n pos++;\n }\n\n contentStart = pos;\n\n if (contentStart >= max) {\n // trimming space in \"- \\n 3\" case, indent is 1 here\n indentAfterMarker = 1;\n } else {\n indentAfterMarker = offset - initial;\n }\n\n // If we have more than 4 spaces, the indent is 1\n // (the rest is just indented code block)\n if (indentAfterMarker > 4) { indentAfterMarker = 1; }\n\n // \" - test\"\n // ^^^^^ - calculating total length of this thing\n indent = initial + indentAfterMarker;\n\n // Run subparser & write tokens\n token = state.push('list_item_open', 'li', 1);\n token.markup = String.fromCharCode(markerCharCode);\n token.map = itemLines = [ startLine, 0 ];\n\n oldIndent = state.blkIndent;\n oldTight = state.tight;\n oldTShift = state.tShift[startLine];\n oldLIndent = state.sCount[startLine];\n oldParentType = state.parentType;\n state.blkIndent = indent;\n state.tight = true;\n state.parentType = 'list';\n state.tShift[startLine] = contentStart - state.bMarks[startLine];\n state.sCount[startLine] = offset;\n\n if (contentStart >= max && state.isEmpty(startLine + 1)) {\n // workaround for this case\n // (list item is empty, list terminates before \"foo\"):\n // ~~~~~~~~\n // -\n //\n // foo\n // ~~~~~~~~\n state.line = Math.min(state.line + 2, endLine);\n } else {\n state.md.block.tokenize(state, startLine, endLine, true);\n }\n\n // If any of list item is tight, mark list as tight\n if (!state.tight || prevEmptyEnd) {\n tight = false;\n }\n // Item become loose if finish with empty line,\n // but we should filter last element, because it means list finish\n prevEmptyEnd = (state.line - startLine) > 1 && state.isEmpty(state.line - 1);\n\n state.blkIndent = oldIndent;\n state.tShift[startLine] = oldTShift;\n state.sCount[startLine] = oldLIndent;\n state.tight = oldTight;\n state.parentType = oldParentType;\n\n token = state.push('list_item_close', 'li', -1);\n token.markup = String.fromCharCode(markerCharCode);\n\n nextLine = startLine = state.line;\n itemLines[1] = nextLine;\n contentStart = state.bMarks[startLine];\n\n if (nextLine >= endLine) { break; }\n\n if (state.isEmpty(nextLine)) {\n break;\n }\n\n //\n // Try to check if list is terminated or continued.\n //\n if (state.sCount[nextLine] < state.blkIndent) { break; }\n\n // fail if terminating block found\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) { break; }\n\n // fail if list has another type\n if (isOrdered) {\n posAfterMarker = skipOrderedListMarker(state, nextLine);\n if (posAfterMarker < 0) { break; }\n } else {\n posAfterMarker = skipBulletListMarker(state, nextLine);\n if (posAfterMarker < 0) { break; }\n }\n\n if (markerCharCode !== state.src.charCodeAt(posAfterMarker - 1)) { break; }\n }\n\n // Finilize list\n if (isOrdered) {\n token = state.push('ordered_list_close', 'ol', -1);\n } else {\n token = state.push('bullet_list_close', 'ul', -1);\n }\n token.markup = String.fromCharCode(markerCharCode);\n\n listLines[1] = nextLine;\n state.line = nextLine;\n\n // mark paragraphs tight if needed\n if (tight) {\n markTightParagraphs(state, listTokIdx);\n }\n\n return true;\n};\n","// Paragraph\n\n'use strict';\n\n\nmodule.exports = function paragraph(state, startLine/*, endLine*/) {\n var content, terminate, i, l, token,\n nextLine = startLine + 1,\n terminatorRules = state.md.block.ruler.getRules('paragraph'),\n endLine = state.lineMax;\n\n // jump line-by-line until empty one or EOF\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { continue; }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { continue; }\n\n // Some tags can terminate paragraph without empty line.\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) { break; }\n }\n\n content = state.getLines(startLine, nextLine, state.blkIndent, false).trim();\n\n state.line = nextLine;\n\n token = state.push('paragraph_open', 'p', 1);\n token.map = [ startLine, state.line ];\n\n token = state.push('inline', '', 0);\n token.content = content;\n token.map = [ startLine, state.line ];\n token.children = [];\n\n token = state.push('paragraph_close', 'p', -1);\n\n return true;\n};\n","'use strict';\n\n\nvar parseLinkDestination = require('../helpers/parse_link_destination');\nvar parseLinkTitle = require('../helpers/parse_link_title');\nvar normalizeReference = require('../common/utils').normalizeReference;\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function reference(state, startLine, _endLine, silent) {\n var ch,\n destEndPos,\n destEndLineNo,\n endLine,\n href,\n i,\n l,\n label,\n labelEnd,\n res,\n start,\n str,\n terminate,\n terminatorRules,\n title,\n lines = 0,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine],\n nextLine = startLine + 1;\n\n if (state.src.charCodeAt(pos) !== 0x5B/* [ */) { return false; }\n\n // Simple check to quickly interrupt scan on [link](url) at the start of line.\n // Can be useful on practice: https://github.com/markdown-it/markdown-it/issues/54\n while (++pos < max) {\n if (state.src.charCodeAt(pos) === 0x5D /* ] */ &&\n state.src.charCodeAt(pos - 1) !== 0x5C/* \\ */) {\n if (pos + 1 === max) { return false; }\n if (state.src.charCodeAt(pos + 1) !== 0x3A/* : */) { return false; }\n break;\n }\n }\n\n endLine = state.lineMax;\n\n // jump line-by-line until empty one or EOF\n terminatorRules = state.md.block.ruler.getRules('reference');\n\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { continue; }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { continue; }\n\n // Some tags can terminate paragraph without empty line.\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) { break; }\n }\n\n str = state.getLines(startLine, nextLine, state.blkIndent, false).trim();\n max = str.length;\n\n for (pos = 1; pos < max; pos++) {\n ch = str.charCodeAt(pos);\n if (ch === 0x5B /* [ */) {\n return false;\n } else if (ch === 0x5D /* ] */) {\n labelEnd = pos;\n break;\n } else if (ch === 0x0A /* \\n */) {\n lines++;\n } else if (ch === 0x5C /* \\ */) {\n pos++;\n if (pos < max && str.charCodeAt(pos) === 0x0A) {\n lines++;\n }\n }\n }\n\n if (labelEnd < 0 || str.charCodeAt(labelEnd + 1) !== 0x3A/* : */) { return false; }\n\n // [label]: destination 'title'\n // ^^^ skip optional whitespace here\n for (pos = labelEnd + 2; pos < max; pos++) {\n ch = str.charCodeAt(pos);\n if (ch === 0x0A) {\n lines++;\n } else if (isSpace(ch)) {\n /*eslint no-empty:0*/\n } else {\n break;\n }\n }\n\n // [label]: destination 'title'\n // ^^^^^^^^^^^ parse this\n res = parseLinkDestination(str, pos, max);\n if (!res.ok) { return false; }\n\n href = state.md.normalizeLink(res.str);\n if (!state.md.validateLink(href)) { return false; }\n\n pos = res.pos;\n lines += res.lines;\n\n // save cursor state, we could require to rollback later\n destEndPos = pos;\n destEndLineNo = lines;\n\n // [label]: destination 'title'\n // ^^^ skipping those spaces\n start = pos;\n for (; pos < max; pos++) {\n ch = str.charCodeAt(pos);\n if (ch === 0x0A) {\n lines++;\n } else if (isSpace(ch)) {\n /*eslint no-empty:0*/\n } else {\n break;\n }\n }\n\n // [label]: destination 'title'\n // ^^^^^^^ parse this\n res = parseLinkTitle(str, pos, max);\n if (pos < max && start !== pos && res.ok) {\n title = res.str;\n pos = res.pos;\n lines += res.lines;\n } else {\n title = '';\n pos = destEndPos;\n lines = destEndLineNo;\n }\n\n // skip trailing spaces until the rest of the line\n while (pos < max) {\n ch = str.charCodeAt(pos);\n if (!isSpace(ch)) { break; }\n pos++;\n }\n\n if (pos < max && str.charCodeAt(pos) !== 0x0A) {\n if (title) {\n // garbage at the end of the line after title,\n // but it could still be a valid reference if we roll back\n title = '';\n pos = destEndPos;\n lines = destEndLineNo;\n while (pos < max) {\n ch = str.charCodeAt(pos);\n if (!isSpace(ch)) { break; }\n pos++;\n }\n }\n }\n\n if (pos < max && str.charCodeAt(pos) !== 0x0A) {\n // garbage at the end of the line\n return false;\n }\n\n label = normalizeReference(str.slice(1, labelEnd));\n if (!label) {\n // CommonMark 0.20 disallows empty labels\n return false;\n }\n\n // Reference can not terminate anything. This check is for safety only.\n /*istanbul ignore if*/\n if (silent) { return true; }\n\n if (typeof state.env.references === 'undefined') {\n state.env.references = {};\n }\n if (typeof state.env.references[label] === 'undefined') {\n state.env.references[label] = { title: title, href: href };\n }\n\n state.line = startLine + lines + 1;\n return true;\n};\n","// Parser state class\n\n'use strict';\n\nvar Token = require('../token');\nvar isSpace = require('../common/utils').isSpace;\n\n\nfunction StateBlock(src, md, env, tokens) {\n var ch, s, start, pos, len, indent, offset, indent_found;\n\n this.src = src;\n\n // link to parser instance\n this.md = md;\n\n this.env = env;\n\n //\n // Internal state vartiables\n //\n\n this.tokens = tokens;\n\n this.bMarks = []; // line begin offsets for fast jumps\n this.eMarks = []; // line end offsets for fast jumps\n this.tShift = []; // offsets of the first non-space characters (tabs not expanded)\n this.sCount = []; // indents for each line (tabs expanded)\n\n // block parser variables\n this.blkIndent = 0; // required block content indent\n // (for example, if we are in list)\n this.line = 0; // line index in src\n this.lineMax = 0; // lines count\n this.tight = false; // loose/tight mode for lists\n this.parentType = 'root'; // if `list`, block parser stops on two newlines\n this.ddIndent = -1; // indent of the current dd block (-1 if there isn't any)\n\n this.level = 0;\n\n // renderer\n this.result = '';\n\n // Create caches\n // Generate markers.\n s = this.src;\n indent_found = false;\n\n for (start = pos = indent = offset = 0, len = s.length; pos < len; pos++) {\n ch = s.charCodeAt(pos);\n\n if (!indent_found) {\n if (isSpace(ch)) {\n indent++;\n\n if (ch === 0x09) {\n offset += 4 - offset % 4;\n } else {\n offset++;\n }\n continue;\n } else {\n indent_found = true;\n }\n }\n\n if (ch === 0x0A || pos === len - 1) {\n if (ch !== 0x0A) { pos++; }\n this.bMarks.push(start);\n this.eMarks.push(pos);\n this.tShift.push(indent);\n this.sCount.push(offset);\n\n indent_found = false;\n indent = 0;\n offset = 0;\n start = pos + 1;\n }\n }\n\n // Push fake entry to simplify cache bounds checks\n this.bMarks.push(s.length);\n this.eMarks.push(s.length);\n this.tShift.push(0);\n this.sCount.push(0);\n\n this.lineMax = this.bMarks.length - 1; // don't count last fake line\n}\n\n// Push new token to \"stream\".\n//\nStateBlock.prototype.push = function (type, tag, nesting) {\n var token = new Token(type, tag, nesting);\n token.block = true;\n\n if (nesting < 0) { this.level--; }\n token.level = this.level;\n if (nesting > 0) { this.level++; }\n\n this.tokens.push(token);\n return token;\n};\n\nStateBlock.prototype.isEmpty = function isEmpty(line) {\n return this.bMarks[line] + this.tShift[line] >= this.eMarks[line];\n};\n\nStateBlock.prototype.skipEmptyLines = function skipEmptyLines(from) {\n for (var max = this.lineMax; from < max; from++) {\n if (this.bMarks[from] + this.tShift[from] < this.eMarks[from]) {\n break;\n }\n }\n return from;\n};\n\n// Skip spaces from given position.\nStateBlock.prototype.skipSpaces = function skipSpaces(pos) {\n var ch;\n\n for (var max = this.src.length; pos < max; pos++) {\n ch = this.src.charCodeAt(pos);\n if (!isSpace(ch)) { break; }\n }\n return pos;\n};\n\n// Skip spaces from given position in reverse.\nStateBlock.prototype.skipSpacesBack = function skipSpacesBack(pos, min) {\n if (pos <= min) { return pos; }\n\n while (pos > min) {\n if (!isSpace(this.src.charCodeAt(--pos))) { return pos + 1; }\n }\n return pos;\n};\n\n// Skip char codes from given position\nStateBlock.prototype.skipChars = function skipChars(pos, code) {\n for (var max = this.src.length; pos < max; pos++) {\n if (this.src.charCodeAt(pos) !== code) { break; }\n }\n return pos;\n};\n\n// Skip char codes reverse from given position - 1\nStateBlock.prototype.skipCharsBack = function skipCharsBack(pos, code, min) {\n if (pos <= min) { return pos; }\n\n while (pos > min) {\n if (code !== this.src.charCodeAt(--pos)) { return pos + 1; }\n }\n return pos;\n};\n\n// cut lines range from source.\nStateBlock.prototype.getLines = function getLines(begin, end, indent, keepLastLF) {\n var i, lineIndent, ch, first, last, queue, lineStart,\n line = begin;\n\n if (begin >= end) {\n return '';\n }\n\n queue = new Array(end - begin);\n\n for (i = 0; line < end; line++, i++) {\n lineIndent = 0;\n lineStart = first = this.bMarks[line];\n\n if (line + 1 < end || keepLastLF) {\n // No need for bounds check because we have fake entry on tail.\n last = this.eMarks[line] + 1;\n } else {\n last = this.eMarks[line];\n }\n\n while (first < last && lineIndent < indent) {\n ch = this.src.charCodeAt(first);\n\n if (isSpace(ch)) {\n if (ch === 0x09) {\n lineIndent += 4 - lineIndent % 4;\n } else {\n lineIndent++;\n }\n } else if (first - lineStart < this.tShift[line]) {\n // patched tShift masked characters to look like spaces (blockquotes, list markers)\n lineIndent++;\n } else {\n break;\n }\n\n first++;\n }\n\n queue[i] = this.src.slice(first, last);\n }\n\n return queue.join('');\n};\n\n// re-export Token class to use in block rules\nStateBlock.prototype.Token = Token;\n\n\nmodule.exports = StateBlock;\n","// GFM table, non-standard\n\n'use strict';\n\n\nfunction getLine(state, line) {\n var pos = state.bMarks[line] + state.blkIndent,\n max = state.eMarks[line];\n\n return state.src.substr(pos, max - pos);\n}\n\nfunction escapedSplit(str) {\n var result = [],\n pos = 0,\n max = str.length,\n ch,\n escapes = 0,\n lastPos = 0,\n backTicked = false,\n lastBackTick = 0;\n\n ch = str.charCodeAt(pos);\n\n while (pos < max) {\n if (ch === 0x60/* ` */ && (escapes % 2 === 0)) {\n backTicked = !backTicked;\n lastBackTick = pos;\n } else if (ch === 0x7c/* | */ && (escapes % 2 === 0) && !backTicked) {\n result.push(str.substring(lastPos, pos));\n lastPos = pos + 1;\n } else if (ch === 0x5c/* \\ */) {\n escapes++;\n } else {\n escapes = 0;\n }\n\n pos++;\n\n // If there was an un-closed backtick, go back to just after\n // the last backtick, but as if it was a normal character\n if (pos === max && backTicked) {\n backTicked = false;\n pos = lastBackTick + 1;\n }\n\n ch = str.charCodeAt(pos);\n }\n\n result.push(str.substring(lastPos));\n\n return result;\n}\n\n\nmodule.exports = function table(state, startLine, endLine, silent) {\n var ch, lineText, pos, i, nextLine, columns, columnCount, token,\n aligns, t, tableLines, tbodyLines;\n\n // should have at least three lines\n if (startLine + 2 > endLine) { return false; }\n\n nextLine = startLine + 1;\n\n if (state.sCount[nextLine] < state.blkIndent) { return false; }\n\n // first character of the second line should be '|' or '-'\n\n pos = state.bMarks[nextLine] + state.tShift[nextLine];\n if (pos >= state.eMarks[nextLine]) { return false; }\n\n ch = state.src.charCodeAt(pos);\n if (ch !== 0x7C/* | */ && ch !== 0x2D/* - */ && ch !== 0x3A/* : */) { return false; }\n\n lineText = getLine(state, startLine + 1);\n if (!/^[-:| ]+$/.test(lineText)) { return false; }\n\n columns = lineText.split('|');\n aligns = [];\n for (i = 0; i < columns.length; i++) {\n t = columns[i].trim();\n if (!t) {\n // allow empty columns before and after table, but not in between columns;\n // e.g. allow ` |---| `, disallow ` ---||--- `\n if (i === 0 || i === columns.length - 1) {\n continue;\n } else {\n return false;\n }\n }\n\n if (!/^:?-+:?$/.test(t)) { return false; }\n if (t.charCodeAt(t.length - 1) === 0x3A/* : */) {\n aligns.push(t.charCodeAt(0) === 0x3A/* : */ ? 'center' : 'right');\n } else if (t.charCodeAt(0) === 0x3A/* : */) {\n aligns.push('left');\n } else {\n aligns.push('');\n }\n }\n\n lineText = getLine(state, startLine).trim();\n if (lineText.indexOf('|') === -1) { return false; }\n columns = escapedSplit(lineText.replace(/^\\||\\|$/g, ''));\n\n // header row will define an amount of columns in the entire table,\n // and align row shouldn't be smaller than that (the rest of the rows can)\n columnCount = columns.length;\n if (columnCount > aligns.length) { return false; }\n\n if (silent) { return true; }\n\n token = state.push('table_open', 'table', 1);\n token.map = tableLines = [ startLine, 0 ];\n\n token = state.push('thead_open', 'thead', 1);\n token.map = [ startLine, startLine + 1 ];\n\n token = state.push('tr_open', 'tr', 1);\n token.map = [ startLine, startLine + 1 ];\n\n for (i = 0; i < columns.length; i++) {\n token = state.push('th_open', 'th', 1);\n token.map = [ startLine, startLine + 1 ];\n if (aligns[i]) {\n token.attrs = [ [ 'style', 'text-align:' + aligns[i] ] ];\n }\n\n token = state.push('inline', '', 0);\n token.content = columns[i].trim();\n token.map = [ startLine, startLine + 1 ];\n token.children = [];\n\n token = state.push('th_close', 'th', -1);\n }\n\n token = state.push('tr_close', 'tr', -1);\n token = state.push('thead_close', 'thead', -1);\n\n token = state.push('tbody_open', 'tbody', 1);\n token.map = tbodyLines = [ startLine + 2, 0 ];\n\n for (nextLine = startLine + 2; nextLine < endLine; nextLine++) {\n if (state.sCount[nextLine] < state.blkIndent) { break; }\n\n lineText = getLine(state, nextLine);\n if (lineText.indexOf('|') === -1) { break; }\n\n // keep spaces at beginning of line to indicate an empty first cell, but\n // strip trailing whitespace\n columns = escapedSplit(lineText.replace(/^\\||\\|\\s*$/g, ''));\n\n token = state.push('tr_open', 'tr', 1);\n for (i = 0; i < columnCount; i++) {\n token = state.push('td_open', 'td', 1);\n if (aligns[i]) {\n token.attrs = [ [ 'style', 'text-align:' + aligns[i] ] ];\n }\n\n token = state.push('inline', '', 0);\n token.content = columns[i] ? columns[i].trim() : '';\n token.children = [];\n\n token = state.push('td_close', 'td', -1);\n }\n token = state.push('tr_close', 'tr', -1);\n }\n token = state.push('tbody_close', 'tbody', -1);\n token = state.push('table_close', 'table', -1);\n\n tableLines[1] = tbodyLines[1] = nextLine;\n state.line = nextLine;\n return true;\n};\n","'use strict';\n\n\nmodule.exports = function block(state) {\n var token;\n\n if (state.inlineMode) {\n token = new state.Token('inline', '', 0);\n token.content = state.src;\n token.map = [ 0, 1 ];\n token.children = [];\n state.tokens.push(token);\n } else {\n state.md.block.parse(state.src, state.md, state.env, state.tokens);\n }\n};\n","'use strict';\n\nmodule.exports = function inline(state) {\n var tokens = state.tokens, tok, i, l;\n\n // Parse inlines\n for (i = 0, l = tokens.length; i < l; i++) {\n tok = tokens[i];\n if (tok.type === 'inline') {\n state.md.inline.parse(tok.content, state.md, state.env, tok.children);\n }\n }\n};\n","// Replace link-like texts with link nodes.\n//\n// Currently restricted by `md.validateLink()` to http/https/ftp\n//\n'use strict';\n\n\nvar arrayReplaceAt = require('../common/utils').arrayReplaceAt;\n\n\nfunction isLinkOpen(str) {\n return /^\\s]/i.test(str);\n}\nfunction isLinkClose(str) {\n return /^<\\/a\\s*>/i.test(str);\n}\n\n\nmodule.exports = function linkify(state) {\n var i, j, l, tokens, token, currentToken, nodes, ln, text, pos, lastPos,\n level, htmlLinkLevel, url, fullUrl, urlText,\n blockTokens = state.tokens,\n links;\n\n if (!state.md.options.linkify) { return; }\n\n for (j = 0, l = blockTokens.length; j < l; j++) {\n if (blockTokens[j].type !== 'inline' ||\n !state.md.linkify.pretest(blockTokens[j].content)) {\n continue;\n }\n\n tokens = blockTokens[j].children;\n\n htmlLinkLevel = 0;\n\n // We scan from the end, to keep position when new tags added.\n // Use reversed logic in links start/end match\n for (i = tokens.length - 1; i >= 0; i--) {\n currentToken = tokens[i];\n\n // Skip content of markdown links\n if (currentToken.type === 'link_close') {\n i--;\n while (tokens[i].level !== currentToken.level && tokens[i].type !== 'link_open') {\n i--;\n }\n continue;\n }\n\n // Skip content of html tag links\n if (currentToken.type === 'html_inline') {\n if (isLinkOpen(currentToken.content) && htmlLinkLevel > 0) {\n htmlLinkLevel--;\n }\n if (isLinkClose(currentToken.content)) {\n htmlLinkLevel++;\n }\n }\n if (htmlLinkLevel > 0) { continue; }\n\n if (currentToken.type === 'text' && state.md.linkify.test(currentToken.content)) {\n\n text = currentToken.content;\n links = state.md.linkify.match(text);\n\n // Now split string to nodes\n nodes = [];\n level = currentToken.level;\n lastPos = 0;\n\n for (ln = 0; ln < links.length; ln++) {\n\n url = links[ln].url;\n fullUrl = state.md.normalizeLink(url);\n if (!state.md.validateLink(fullUrl)) { continue; }\n\n urlText = links[ln].text;\n\n // Linkifier might send raw hostnames like \"example.com\", where url\n // starts with domain name. So we prepend http:// in those cases,\n // and remove it afterwards.\n //\n if (!links[ln].schema) {\n urlText = state.md.normalizeLinkText('http://' + urlText).replace(/^http:\\/\\//, '');\n } else if (links[ln].schema === 'mailto:' && !/^mailto:/i.test(urlText)) {\n urlText = state.md.normalizeLinkText('mailto:' + urlText).replace(/^mailto:/, '');\n } else {\n urlText = state.md.normalizeLinkText(urlText);\n }\n\n pos = links[ln].index;\n\n if (pos > lastPos) {\n token = new state.Token('text', '', 0);\n token.content = text.slice(lastPos, pos);\n token.level = level;\n nodes.push(token);\n }\n\n token = new state.Token('link_open', 'a', 1);\n token.attrs = [ [ 'href', fullUrl ] ];\n token.level = level++;\n token.markup = 'linkify';\n token.info = 'auto';\n nodes.push(token);\n\n token = new state.Token('text', '', 0);\n token.content = urlText;\n token.level = level;\n nodes.push(token);\n\n token = new state.Token('link_close', 'a', -1);\n token.level = --level;\n token.markup = 'linkify';\n token.info = 'auto';\n nodes.push(token);\n\n lastPos = links[ln].lastIndex;\n }\n if (lastPos < text.length) {\n token = new state.Token('text', '', 0);\n token.content = text.slice(lastPos);\n token.level = level;\n nodes.push(token);\n }\n\n // replace current node\n blockTokens[j].children = tokens = arrayReplaceAt(tokens, i, nodes);\n }\n }\n }\n};\n","// Normalize input string\n\n'use strict';\n\n\nvar NEWLINES_RE = /\\r[\\n\\u0085]?|[\\u2424\\u2028\\u0085]/g;\nvar NULL_RE = /\\u0000/g;\n\n\nmodule.exports = function inline(state) {\n var str;\n\n // Normalize newlines\n str = state.src.replace(NEWLINES_RE, '\\n');\n\n // Replace NULL characters\n str = str.replace(NULL_RE, '\\uFFFD');\n\n state.src = str;\n};\n","// Simple typographyc replacements\n//\n// (c) (C) → ©\n// (tm) (TM) → ™\n// (r) (R) → ®\n// +- → ±\n// (p) (P) -> §\n// ... → … (also ?.... → ?.., !.... → !..)\n// ???????? → ???, !!!!! → !!!, `,,` → `,`\n// -- → –, --- → —\n//\n'use strict';\n\n// TODO:\n// - fractionals 1/2, 1/4, 3/4 -> ½, ¼, ¾\n// - miltiplication 2 x 4 -> 2 × 4\n\nvar RARE_RE = /\\+-|\\.\\.|\\?\\?\\?\\?|!!!!|,,|--/;\n\n// Workaround for phantomjs - need regex without /g flag,\n// or root check will fail every second time\nvar SCOPED_ABBR_TEST_RE = /\\((c|tm|r|p)\\)/i;\n\nvar SCOPED_ABBR_RE = /\\((c|tm|r|p)\\)/ig;\nvar SCOPED_ABBR = {\n c: '©',\n r: '®',\n p: '§',\n tm: '™'\n};\n\nfunction replaceFn(match, name) {\n return SCOPED_ABBR[name.toLowerCase()];\n}\n\nfunction replace_scoped(inlineTokens) {\n var i, token;\n\n for (i = inlineTokens.length - 1; i >= 0; i--) {\n token = inlineTokens[i];\n if (token.type === 'text') {\n token.content = token.content.replace(SCOPED_ABBR_RE, replaceFn);\n }\n }\n}\n\nfunction replace_rare(inlineTokens) {\n var i, token;\n\n for (i = inlineTokens.length - 1; i >= 0; i--) {\n token = inlineTokens[i];\n if (token.type === 'text') {\n if (RARE_RE.test(token.content)) {\n token.content = token.content\n .replace(/\\+-/g, '±')\n // .., ..., ....... -> …\n // but ?..... & !..... -> ?.. & !..\n .replace(/\\.{2,}/g, '…').replace(/([?!])…/g, '$1..')\n .replace(/([?!]){4,}/g, '$1$1$1').replace(/,{2,}/g, ',')\n // em-dash\n .replace(/(^|[^-])---([^-]|$)/mg, '$1\\u2014$2')\n // en-dash\n .replace(/(^|\\s)--(\\s|$)/mg, '$1\\u2013$2')\n .replace(/(^|[^-\\s])--([^-\\s]|$)/mg, '$1\\u2013$2');\n }\n }\n }\n}\n\n\nmodule.exports = function replace(state) {\n var blkIdx;\n\n if (!state.md.options.typographer) { return; }\n\n for (blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n\n if (state.tokens[blkIdx].type !== 'inline') { continue; }\n\n if (SCOPED_ABBR_TEST_RE.test(state.tokens[blkIdx].content)) {\n replace_scoped(state.tokens[blkIdx].children);\n }\n\n if (RARE_RE.test(state.tokens[blkIdx].content)) {\n replace_rare(state.tokens[blkIdx].children);\n }\n\n }\n};\n","// Convert straight quotation marks to typographic ones\n//\n'use strict';\n\n\nvar isWhiteSpace = require('../common/utils').isWhiteSpace;\nvar isPunctChar = require('../common/utils').isPunctChar;\nvar isMdAsciiPunct = require('../common/utils').isMdAsciiPunct;\n\nvar QUOTE_TEST_RE = /['\"]/;\nvar QUOTE_RE = /['\"]/g;\nvar APOSTROPHE = '\\u2019'; /* ’ */\n\n\nfunction replaceAt(str, index, ch) {\n return str.substr(0, index) + ch + str.substr(index + 1);\n}\n\nfunction process_inlines(tokens, state) {\n var i, token, text, t, pos, max, thisLevel, item, lastChar, nextChar,\n isLastPunctChar, isNextPunctChar, isLastWhiteSpace, isNextWhiteSpace,\n canOpen, canClose, j, isSingle, stack, openQuote, closeQuote;\n\n stack = [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n\n thisLevel = tokens[i].level;\n\n for (j = stack.length - 1; j >= 0; j--) {\n if (stack[j].level <= thisLevel) { break; }\n }\n stack.length = j + 1;\n\n if (token.type !== 'text') { continue; }\n\n text = token.content;\n pos = 0;\n max = text.length;\n\n /*eslint no-labels:0,block-scoped-var:0*/\n OUTER:\n while (pos < max) {\n QUOTE_RE.lastIndex = pos;\n t = QUOTE_RE.exec(text);\n if (!t) { break; }\n\n canOpen = canClose = true;\n pos = t.index + 1;\n isSingle = (t[0] === \"'\");\n\n // Find previous character,\n // default to space if it's the beginning of the line\n //\n lastChar = 0x20;\n\n if (t.index - 1 >= 0) {\n lastChar = text.charCodeAt(t.index - 1);\n } else {\n for (j = i - 1; j >= 0; j--) {\n if (tokens[j].type !== 'text') { continue; }\n\n lastChar = tokens[j].content.charCodeAt(tokens[j].content.length - 1);\n break;\n }\n }\n\n // Find next character,\n // default to space if it's the end of the line\n //\n nextChar = 0x20;\n\n if (pos < max) {\n nextChar = text.charCodeAt(pos);\n } else {\n for (j = i + 1; j < tokens.length; j++) {\n if (tokens[j].type !== 'text') { continue; }\n\n nextChar = tokens[j].content.charCodeAt(0);\n break;\n }\n }\n\n isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctChar(String.fromCharCode(lastChar));\n isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctChar(String.fromCharCode(nextChar));\n\n isLastWhiteSpace = isWhiteSpace(lastChar);\n isNextWhiteSpace = isWhiteSpace(nextChar);\n\n if (isNextWhiteSpace) {\n canOpen = false;\n } else if (isNextPunctChar) {\n if (!(isLastWhiteSpace || isLastPunctChar)) {\n canOpen = false;\n }\n }\n\n if (isLastWhiteSpace) {\n canClose = false;\n } else if (isLastPunctChar) {\n if (!(isNextWhiteSpace || isNextPunctChar)) {\n canClose = false;\n }\n }\n\n if (nextChar === 0x22 /* \" */ && t[0] === '\"') {\n if (lastChar >= 0x30 /* 0 */ && lastChar <= 0x39 /* 9 */) {\n // special case: 1\"\" - count first quote as an inch\n canClose = canOpen = false;\n }\n }\n\n if (canOpen && canClose) {\n // treat this as the middle of the word\n canOpen = false;\n canClose = isNextPunctChar;\n }\n\n if (!canOpen && !canClose) {\n // middle of word\n if (isSingle) {\n token.content = replaceAt(token.content, t.index, APOSTROPHE);\n }\n continue;\n }\n\n if (canClose) {\n // this could be a closing quote, rewind the stack to get a match\n for (j = stack.length - 1; j >= 0; j--) {\n item = stack[j];\n if (stack[j].level < thisLevel) { break; }\n if (item.single === isSingle && stack[j].level === thisLevel) {\n item = stack[j];\n\n if (isSingle) {\n openQuote = state.md.options.quotes[2];\n closeQuote = state.md.options.quotes[3];\n } else {\n openQuote = state.md.options.quotes[0];\n closeQuote = state.md.options.quotes[1];\n }\n\n // replace token.content *before* tokens[item.token].content,\n // because, if they are pointing at the same token, replaceAt\n // could mess up indices when quote length != 1\n token.content = replaceAt(token.content, t.index, closeQuote);\n tokens[item.token].content = replaceAt(\n tokens[item.token].content, item.pos, openQuote);\n\n pos += closeQuote.length - 1;\n if (item.token === i) { pos += openQuote.length - 1; }\n\n text = token.content;\n max = text.length;\n\n stack.length = j;\n continue OUTER;\n }\n }\n }\n\n if (canOpen) {\n stack.push({\n token: i,\n pos: t.index,\n single: isSingle,\n level: thisLevel\n });\n } else if (canClose && isSingle) {\n token.content = replaceAt(token.content, t.index, APOSTROPHE);\n }\n }\n }\n}\n\n\nmodule.exports = function smartquotes(state) {\n /*eslint max-depth:0*/\n var blkIdx;\n\n if (!state.md.options.typographer) { return; }\n\n for (blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n\n if (state.tokens[blkIdx].type !== 'inline' ||\n !QUOTE_TEST_RE.test(state.tokens[blkIdx].content)) {\n continue;\n }\n\n process_inlines(state.tokens[blkIdx].children, state);\n }\n};\n","// Core state object\n//\n'use strict';\n\nvar Token = require('../token');\n\n\nfunction StateCore(src, md, env) {\n this.src = src;\n this.env = env;\n this.tokens = [];\n this.inlineMode = false;\n this.md = md; // link to parser instance\n}\n\n// re-export Token class to use in core rules\nStateCore.prototype.Token = Token;\n\n\nmodule.exports = StateCore;\n","// Process autolinks ''\n\n'use strict';\n\n\n/*eslint max-len:0*/\nvar EMAIL_RE = /^<([a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/;\nvar AUTOLINK_RE = /^<([a-zA-Z][a-zA-Z0-9+.\\-]{1,31}):([^<>\\x00-\\x20]*)>/;\n\n\nmodule.exports = function autolink(state, silent) {\n var tail, linkMatch, emailMatch, url, fullUrl, token,\n pos = state.pos;\n\n if (state.src.charCodeAt(pos) !== 0x3C/* < */) { return false; }\n\n tail = state.src.slice(pos);\n\n if (tail.indexOf('>') < 0) { return false; }\n\n if (AUTOLINK_RE.test(tail)) {\n linkMatch = tail.match(AUTOLINK_RE);\n\n url = linkMatch[0].slice(1, -1);\n fullUrl = state.md.normalizeLink(url);\n if (!state.md.validateLink(fullUrl)) { return false; }\n\n if (!silent) {\n token = state.push('link_open', 'a', 1);\n token.attrs = [ [ 'href', fullUrl ] ];\n token.markup = 'autolink';\n token.info = 'auto';\n\n token = state.push('text', '', 0);\n token.content = state.md.normalizeLinkText(url);\n\n token = state.push('link_close', 'a', -1);\n token.markup = 'autolink';\n token.info = 'auto';\n }\n\n state.pos += linkMatch[0].length;\n return true;\n }\n\n if (EMAIL_RE.test(tail)) {\n emailMatch = tail.match(EMAIL_RE);\n\n url = emailMatch[0].slice(1, -1);\n fullUrl = state.md.normalizeLink('mailto:' + url);\n if (!state.md.validateLink(fullUrl)) { return false; }\n\n if (!silent) {\n token = state.push('link_open', 'a', 1);\n token.attrs = [ [ 'href', fullUrl ] ];\n token.markup = 'autolink';\n token.info = 'auto';\n\n token = state.push('text', '', 0);\n token.content = state.md.normalizeLinkText(url);\n\n token = state.push('link_close', 'a', -1);\n token.markup = 'autolink';\n token.info = 'auto';\n }\n\n state.pos += emailMatch[0].length;\n return true;\n }\n\n return false;\n};\n","// Parse backticks\n\n'use strict';\n\nmodule.exports = function backtick(state, silent) {\n var start, max, marker, matchStart, matchEnd, token,\n pos = state.pos,\n ch = state.src.charCodeAt(pos);\n\n if (ch !== 0x60/* ` */) { return false; }\n\n start = pos;\n pos++;\n max = state.posMax;\n\n while (pos < max && state.src.charCodeAt(pos) === 0x60/* ` */) { pos++; }\n\n marker = state.src.slice(start, pos);\n\n matchStart = matchEnd = pos;\n\n while ((matchStart = state.src.indexOf('`', matchEnd)) !== -1) {\n matchEnd = matchStart + 1;\n\n while (matchEnd < max && state.src.charCodeAt(matchEnd) === 0x60/* ` */) { matchEnd++; }\n\n if (matchEnd - matchStart === marker.length) {\n if (!silent) {\n token = state.push('code_inline', 'code', 0);\n token.markup = marker;\n token.content = state.src.slice(pos, matchStart)\n .replace(/[ \\n]+/g, ' ')\n .trim();\n }\n state.pos = matchEnd;\n return true;\n }\n }\n\n if (!silent) { state.pending += marker; }\n state.pos += marker.length;\n return true;\n};\n","// For each opening emphasis-like marker find a matching closing one\n//\n'use strict';\n\n\nmodule.exports = function link_pairs(state) {\n var i, j, lastDelim, currDelim,\n delimiters = state.delimiters,\n max = state.delimiters.length;\n\n for (i = 0; i < max; i++) {\n lastDelim = delimiters[i];\n\n if (!lastDelim.close) { continue; }\n\n j = i - lastDelim.jump - 1;\n\n while (j >= 0) {\n currDelim = delimiters[j];\n\n if (currDelim.open &&\n currDelim.marker === lastDelim.marker &&\n currDelim.end < 0 &&\n currDelim.level === lastDelim.level) {\n\n lastDelim.jump = i - j;\n lastDelim.open = false;\n currDelim.end = i;\n currDelim.jump = 0;\n break;\n }\n\n j -= currDelim.jump + 1;\n }\n }\n};\n","// Process *this* and _that_\n//\n'use strict';\n\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nmodule.exports.tokenize = function emphasis(state, silent) {\n var i, scanned, token,\n start = state.pos,\n marker = state.src.charCodeAt(start);\n\n if (silent) { return false; }\n\n if (marker !== 0x5F /* _ */ && marker !== 0x2A /* * */) { return false; }\n\n scanned = state.scanDelims(state.pos, marker === 0x2A);\n\n for (i = 0; i < scanned.length; i++) {\n token = state.push('text', '', 0);\n token.content = String.fromCharCode(marker);\n\n state.delimiters.push({\n // Char code of the starting marker (number).\n //\n marker: marker,\n\n // An amount of characters before this one that's equivalent to\n // current one. In plain English: if this delimiter does not open\n // an emphasis, neither do previous `jump` characters.\n //\n // Used to skip sequences like \"*****\" in one step, for 1st asterisk\n // value will be 0, for 2nd it's 1 and so on.\n //\n jump: i,\n\n // A position of the token this delimiter corresponds to.\n //\n token: state.tokens.length - 1,\n\n // Token level.\n //\n level: state.level,\n\n // If this delimiter is matched as a valid opener, `end` will be\n // equal to its position, otherwise it's `-1`.\n //\n end: -1,\n\n // Boolean flags that determine if this delimiter could open or close\n // an emphasis.\n //\n open: scanned.can_open,\n close: scanned.can_close\n });\n }\n\n state.pos += scanned.length;\n\n return true;\n};\n\n\n// Walk through delimiter list and replace text tokens with tags\n//\nmodule.exports.postProcess = function emphasis(state) {\n var i,\n startDelim,\n endDelim,\n token,\n ch,\n isStrong,\n delimiters = state.delimiters,\n max = state.delimiters.length;\n\n for (i = 0; i < max; i++) {\n startDelim = delimiters[i];\n\n if (startDelim.marker !== 0x5F/* _ */ && startDelim.marker !== 0x2A/* * */) {\n continue;\n }\n\n // Process only opening markers\n if (startDelim.end === -1) {\n continue;\n }\n\n endDelim = delimiters[startDelim.end];\n\n // If the next delimiter has the same marker and is adjacent to this one,\n // merge those into one strong delimiter.\n //\n // `whatever` -> `whatever`\n //\n isStrong = i + 1 < max &&\n delimiters[i + 1].end === startDelim.end - 1 &&\n delimiters[i + 1].token === startDelim.token + 1 &&\n delimiters[startDelim.end - 1].token === endDelim.token - 1 &&\n delimiters[i + 1].marker === startDelim.marker;\n\n ch = String.fromCharCode(startDelim.marker);\n\n token = state.tokens[startDelim.token];\n token.type = isStrong ? 'strong_open' : 'em_open';\n token.tag = isStrong ? 'strong' : 'em';\n token.nesting = 1;\n token.markup = isStrong ? ch + ch : ch;\n token.content = '';\n\n token = state.tokens[endDelim.token];\n token.type = isStrong ? 'strong_close' : 'em_close';\n token.tag = isStrong ? 'strong' : 'em';\n token.nesting = -1;\n token.markup = isStrong ? ch + ch : ch;\n token.content = '';\n\n if (isStrong) {\n state.tokens[delimiters[i + 1].token].content = '';\n state.tokens[delimiters[startDelim.end - 1].token].content = '';\n i++;\n }\n }\n};\n","// Process html entity - {, ¯, ", ...\n\n'use strict';\n\nvar entities = require('../common/entities');\nvar has = require('../common/utils').has;\nvar isValidEntityCode = require('../common/utils').isValidEntityCode;\nvar fromCodePoint = require('../common/utils').fromCodePoint;\n\n\nvar DIGITAL_RE = /^&#((?:x[a-f0-9]{1,8}|[0-9]{1,8}));/i;\nvar NAMED_RE = /^&([a-z][a-z0-9]{1,31});/i;\n\n\nmodule.exports = function entity(state, silent) {\n var ch, code, match, pos = state.pos, max = state.posMax;\n\n if (state.src.charCodeAt(pos) !== 0x26/* & */) { return false; }\n\n if (pos + 1 < max) {\n ch = state.src.charCodeAt(pos + 1);\n\n if (ch === 0x23 /* # */) {\n match = state.src.slice(pos).match(DIGITAL_RE);\n if (match) {\n if (!silent) {\n code = match[1][0].toLowerCase() === 'x' ? parseInt(match[1].slice(1), 16) : parseInt(match[1], 10);\n state.pending += isValidEntityCode(code) ? fromCodePoint(code) : fromCodePoint(0xFFFD);\n }\n state.pos += match[0].length;\n return true;\n }\n } else {\n match = state.src.slice(pos).match(NAMED_RE);\n if (match) {\n if (has(entities, match[1])) {\n if (!silent) { state.pending += entities[match[1]]; }\n state.pos += match[0].length;\n return true;\n }\n }\n }\n }\n\n if (!silent) { state.pending += '&'; }\n state.pos++;\n return true;\n};\n","// Proceess escaped chars and hardbreaks\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\nvar ESCAPED = [];\n\nfor (var i = 0; i < 256; i++) { ESCAPED.push(0); }\n\n'\\\\!\"#$%&\\'()*+,./:;<=>?@[]^_`{|}~-'\n .split('').forEach(function (ch) { ESCAPED[ch.charCodeAt(0)] = 1; });\n\n\nmodule.exports = function escape(state, silent) {\n var ch, pos = state.pos, max = state.posMax;\n\n if (state.src.charCodeAt(pos) !== 0x5C/* \\ */) { return false; }\n\n pos++;\n\n if (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (ch < 256 && ESCAPED[ch] !== 0) {\n if (!silent) { state.pending += state.src[pos]; }\n state.pos += 2;\n return true;\n }\n\n if (ch === 0x0A) {\n if (!silent) {\n state.push('hardbreak', 'br', 0);\n }\n\n pos++;\n // skip leading whitespaces from next line\n while (pos < max) {\n ch = state.src.charCodeAt(pos);\n if (!isSpace(ch)) { break; }\n pos++;\n }\n\n state.pos = pos;\n return true;\n }\n }\n\n if (!silent) { state.pending += '\\\\'; }\n state.pos++;\n return true;\n};\n","// Process html tags\n\n'use strict';\n\n\nvar HTML_TAG_RE = require('../common/html_re').HTML_TAG_RE;\n\n\nfunction isLetter(ch) {\n /*eslint no-bitwise:0*/\n var lc = ch | 0x20; // to lower case\n return (lc >= 0x61/* a */) && (lc <= 0x7a/* z */);\n}\n\n\nmodule.exports = function html_inline(state, silent) {\n var ch, match, max, token,\n pos = state.pos;\n\n if (!state.md.options.html) { return false; }\n\n // Check start\n max = state.posMax;\n if (state.src.charCodeAt(pos) !== 0x3C/* < */ ||\n pos + 2 >= max) {\n return false;\n }\n\n // Quick fail on second char\n ch = state.src.charCodeAt(pos + 1);\n if (ch !== 0x21/* ! */ &&\n ch !== 0x3F/* ? */ &&\n ch !== 0x2F/* / */ &&\n !isLetter(ch)) {\n return false;\n }\n\n match = state.src.slice(pos).match(HTML_TAG_RE);\n if (!match) { return false; }\n\n if (!silent) {\n token = state.push('html_inline', '', 0);\n token.content = state.src.slice(pos, pos + match[0].length);\n }\n state.pos += match[0].length;\n return true;\n};\n","// Process ![image]( \"title\")\n\n'use strict';\n\nvar parseLinkLabel = require('../helpers/parse_link_label');\nvar parseLinkDestination = require('../helpers/parse_link_destination');\nvar parseLinkTitle = require('../helpers/parse_link_title');\nvar normalizeReference = require('../common/utils').normalizeReference;\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function image(state, silent) {\n var attrs,\n code,\n content,\n label,\n labelEnd,\n labelStart,\n pos,\n ref,\n res,\n title,\n token,\n tokens,\n start,\n href = '',\n oldPos = state.pos,\n max = state.posMax;\n\n if (state.src.charCodeAt(state.pos) !== 0x21/* ! */) { return false; }\n if (state.src.charCodeAt(state.pos + 1) !== 0x5B/* [ */) { return false; }\n\n labelStart = state.pos + 2;\n labelEnd = parseLinkLabel(state, state.pos + 1, false);\n\n // parser failed to find ']', so it's not a valid link\n if (labelEnd < 0) { return false; }\n\n pos = labelEnd + 1;\n if (pos < max && state.src.charCodeAt(pos) === 0x28/* ( */) {\n //\n // Inline link\n //\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n pos++;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n if (pos >= max) { return false; }\n\n // [link]( \"title\" )\n // ^^^^^^ parsing link destination\n start = pos;\n res = parseLinkDestination(state.src, pos, state.posMax);\n if (res.ok) {\n href = state.md.normalizeLink(res.str);\n if (state.md.validateLink(href)) {\n pos = res.pos;\n } else {\n href = '';\n }\n }\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n start = pos;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n\n // [link]( \"title\" )\n // ^^^^^^^ parsing link title\n res = parseLinkTitle(state.src, pos, state.posMax);\n if (pos < max && start !== pos && res.ok) {\n title = res.str;\n pos = res.pos;\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n } else {\n title = '';\n }\n\n if (pos >= max || state.src.charCodeAt(pos) !== 0x29/* ) */) {\n state.pos = oldPos;\n return false;\n }\n pos++;\n } else {\n //\n // Link reference\n //\n if (typeof state.env.references === 'undefined') { return false; }\n\n if (pos < max && state.src.charCodeAt(pos) === 0x5B/* [ */) {\n start = pos + 1;\n pos = parseLinkLabel(state, pos);\n if (pos >= 0) {\n label = state.src.slice(start, pos++);\n } else {\n pos = labelEnd + 1;\n }\n } else {\n pos = labelEnd + 1;\n }\n\n // covers label === '' and label === undefined\n // (collapsed reference link and shortcut reference link respectively)\n if (!label) { label = state.src.slice(labelStart, labelEnd); }\n\n ref = state.env.references[normalizeReference(label)];\n if (!ref) {\n state.pos = oldPos;\n return false;\n }\n href = ref.href;\n title = ref.title;\n }\n\n //\n // We found the end of the link, and know for a fact it's a valid link;\n // so all that's left to do is to call tokenizer.\n //\n if (!silent) {\n content = state.src.slice(labelStart, labelEnd);\n\n state.md.inline.parse(\n content,\n state.md,\n state.env,\n tokens = []\n );\n\n token = state.push('image', 'img', 0);\n token.attrs = attrs = [ [ 'src', href ], [ 'alt', '' ] ];\n token.children = tokens;\n token.content = content;\n\n if (title) {\n attrs.push([ 'title', title ]);\n }\n }\n\n state.pos = pos;\n state.posMax = max;\n return true;\n};\n","// Process [link]( \"stuff\")\n\n'use strict';\n\nvar parseLinkLabel = require('../helpers/parse_link_label');\nvar parseLinkDestination = require('../helpers/parse_link_destination');\nvar parseLinkTitle = require('../helpers/parse_link_title');\nvar normalizeReference = require('../common/utils').normalizeReference;\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function link(state, silent) {\n var attrs,\n code,\n label,\n labelEnd,\n labelStart,\n pos,\n res,\n ref,\n title,\n token,\n href = '',\n oldPos = state.pos,\n max = state.posMax,\n start = state.pos;\n\n if (state.src.charCodeAt(state.pos) !== 0x5B/* [ */) { return false; }\n\n labelStart = state.pos + 1;\n labelEnd = parseLinkLabel(state, state.pos, true);\n\n // parser failed to find ']', so it's not a valid link\n if (labelEnd < 0) { return false; }\n\n pos = labelEnd + 1;\n if (pos < max && state.src.charCodeAt(pos) === 0x28/* ( */) {\n //\n // Inline link\n //\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n pos++;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n if (pos >= max) { return false; }\n\n // [link]( \"title\" )\n // ^^^^^^ parsing link destination\n start = pos;\n res = parseLinkDestination(state.src, pos, state.posMax);\n if (res.ok) {\n href = state.md.normalizeLink(res.str);\n if (state.md.validateLink(href)) {\n pos = res.pos;\n } else {\n href = '';\n }\n }\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n start = pos;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n\n // [link]( \"title\" )\n // ^^^^^^^ parsing link title\n res = parseLinkTitle(state.src, pos, state.posMax);\n if (pos < max && start !== pos && res.ok) {\n title = res.str;\n pos = res.pos;\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n } else {\n title = '';\n }\n\n if (pos >= max || state.src.charCodeAt(pos) !== 0x29/* ) */) {\n state.pos = oldPos;\n return false;\n }\n pos++;\n } else {\n //\n // Link reference\n //\n if (typeof state.env.references === 'undefined') { return false; }\n\n if (pos < max && state.src.charCodeAt(pos) === 0x5B/* [ */) {\n start = pos + 1;\n pos = parseLinkLabel(state, pos);\n if (pos >= 0) {\n label = state.src.slice(start, pos++);\n } else {\n pos = labelEnd + 1;\n }\n } else {\n pos = labelEnd + 1;\n }\n\n // covers label === '' and label === undefined\n // (collapsed reference link and shortcut reference link respectively)\n if (!label) { label = state.src.slice(labelStart, labelEnd); }\n\n ref = state.env.references[normalizeReference(label)];\n if (!ref) {\n state.pos = oldPos;\n return false;\n }\n href = ref.href;\n title = ref.title;\n }\n\n //\n // We found the end of the link, and know for a fact it's a valid link;\n // so all that's left to do is to call tokenizer.\n //\n if (!silent) {\n state.pos = labelStart;\n state.posMax = labelEnd;\n\n token = state.push('link_open', 'a', 1);\n token.attrs = attrs = [ [ 'href', href ] ];\n if (title) {\n attrs.push([ 'title', title ]);\n }\n\n state.md.inline.tokenize(state);\n\n token = state.push('link_close', 'a', -1);\n }\n\n state.pos = pos;\n state.posMax = max;\n return true;\n};\n","// Proceess '\\n'\n\n'use strict';\n\nmodule.exports = function newline(state, silent) {\n var pmax, max, pos = state.pos;\n\n if (state.src.charCodeAt(pos) !== 0x0A/* \\n */) { return false; }\n\n pmax = state.pending.length - 1;\n max = state.posMax;\n\n // ' \\n' -> hardbreak\n // Lookup in pending chars is bad practice! Don't copy to other rules!\n // Pending string is stored in concat mode, indexed lookups will cause\n // convertion to flat mode.\n if (!silent) {\n if (pmax >= 0 && state.pending.charCodeAt(pmax) === 0x20) {\n if (pmax >= 1 && state.pending.charCodeAt(pmax - 1) === 0x20) {\n state.pending = state.pending.replace(/ +$/, '');\n state.push('hardbreak', 'br', 0);\n } else {\n state.pending = state.pending.slice(0, -1);\n state.push('softbreak', 'br', 0);\n }\n\n } else {\n state.push('softbreak', 'br', 0);\n }\n }\n\n pos++;\n\n // skip heading spaces for next line\n while (pos < max && state.src.charCodeAt(pos) === 0x20) { pos++; }\n\n state.pos = pos;\n return true;\n};\n","// Inline parser state\n\n'use strict';\n\n\nvar Token = require('../token');\nvar isWhiteSpace = require('../common/utils').isWhiteSpace;\nvar isPunctChar = require('../common/utils').isPunctChar;\nvar isMdAsciiPunct = require('../common/utils').isMdAsciiPunct;\n\n\nfunction StateInline(src, md, env, outTokens) {\n this.src = src;\n this.env = env;\n this.md = md;\n this.tokens = outTokens;\n\n this.pos = 0;\n this.posMax = this.src.length;\n this.level = 0;\n this.pending = '';\n this.pendingLevel = 0;\n\n this.cache = {}; // Stores { start: end } pairs. Useful for backtrack\n // optimization of pairs parse (emphasis, strikes).\n\n this.delimiters = []; // Emphasis-like delimiters\n}\n\n\n// Flush pending text\n//\nStateInline.prototype.pushPending = function () {\n var token = new Token('text', '', 0);\n token.content = this.pending;\n token.level = this.pendingLevel;\n this.tokens.push(token);\n this.pending = '';\n return token;\n};\n\n\n// Push new token to \"stream\".\n// If pending text exists - flush it as text token\n//\nStateInline.prototype.push = function (type, tag, nesting) {\n if (this.pending) {\n this.pushPending();\n }\n\n var token = new Token(type, tag, nesting);\n\n if (nesting < 0) { this.level--; }\n token.level = this.level;\n if (nesting > 0) { this.level++; }\n\n this.pendingLevel = this.level;\n this.tokens.push(token);\n return token;\n};\n\n\n// Scan a sequence of emphasis-like markers, and determine whether\n// it can start an emphasis sequence or end an emphasis sequence.\n//\n// - start - position to scan from (it should point at a valid marker);\n// - canSplitWord - determine if these markers can be found inside a word\n//\nStateInline.prototype.scanDelims = function (start, canSplitWord) {\n var pos = start, lastChar, nextChar, count, can_open, can_close,\n isLastWhiteSpace, isLastPunctChar,\n isNextWhiteSpace, isNextPunctChar,\n left_flanking = true,\n right_flanking = true,\n max = this.posMax,\n marker = this.src.charCodeAt(start);\n\n // treat beginning of the line as a whitespace\n lastChar = start > 0 ? this.src.charCodeAt(start - 1) : 0x20;\n\n while (pos < max && this.src.charCodeAt(pos) === marker) { pos++; }\n\n count = pos - start;\n\n // treat end of the line as a whitespace\n nextChar = pos < max ? this.src.charCodeAt(pos) : 0x20;\n\n isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctChar(String.fromCharCode(lastChar));\n isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctChar(String.fromCharCode(nextChar));\n\n isLastWhiteSpace = isWhiteSpace(lastChar);\n isNextWhiteSpace = isWhiteSpace(nextChar);\n\n if (isNextWhiteSpace) {\n left_flanking = false;\n } else if (isNextPunctChar) {\n if (!(isLastWhiteSpace || isLastPunctChar)) {\n left_flanking = false;\n }\n }\n\n if (isLastWhiteSpace) {\n right_flanking = false;\n } else if (isLastPunctChar) {\n if (!(isNextWhiteSpace || isNextPunctChar)) {\n right_flanking = false;\n }\n }\n\n if (!canSplitWord) {\n can_open = left_flanking && (!right_flanking || isLastPunctChar);\n can_close = right_flanking && (!left_flanking || isNextPunctChar);\n } else {\n can_open = left_flanking;\n can_close = right_flanking;\n }\n\n return {\n can_open: can_open,\n can_close: can_close,\n length: count\n };\n};\n\n\n// re-export Token class to use in block rules\nStateInline.prototype.Token = Token;\n\n\nmodule.exports = StateInline;\n","// ~~strike through~~\n//\n'use strict';\n\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nmodule.exports.tokenize = function strikethrough(state, silent) {\n var i, scanned, token, len, ch,\n start = state.pos,\n marker = state.src.charCodeAt(start);\n\n if (silent) { return false; }\n\n if (marker !== 0x7E/* ~ */) { return false; }\n\n scanned = state.scanDelims(state.pos, true);\n len = scanned.length;\n ch = String.fromCharCode(marker);\n\n if (len < 2) { return false; }\n\n if (len % 2) {\n token = state.push('text', '', 0);\n token.content = ch;\n len--;\n }\n\n for (i = 0; i < len; i += 2) {\n token = state.push('text', '', 0);\n token.content = ch + ch;\n\n state.delimiters.push({\n marker: marker,\n jump: i,\n token: state.tokens.length - 1,\n level: state.level,\n end: -1,\n open: scanned.can_open,\n close: scanned.can_close\n });\n }\n\n state.pos += scanned.length;\n\n return true;\n};\n\n\n// Walk through delimiter list and replace text tokens with tags\n//\nmodule.exports.postProcess = function strikethrough(state) {\n var i, j,\n startDelim,\n endDelim,\n token,\n loneMarkers = [],\n delimiters = state.delimiters,\n max = state.delimiters.length;\n\n for (i = 0; i < max; i++) {\n startDelim = delimiters[i];\n\n if (startDelim.marker !== 0x7E/* ~ */) {\n continue;\n }\n\n if (startDelim.end === -1) {\n continue;\n }\n\n endDelim = delimiters[startDelim.end];\n\n token = state.tokens[startDelim.token];\n token.type = 's_open';\n token.tag = 's';\n token.nesting = 1;\n token.markup = '~~';\n token.content = '';\n\n token = state.tokens[endDelim.token];\n token.type = 's_close';\n token.tag = 's';\n token.nesting = -1;\n token.markup = '~~';\n token.content = '';\n\n if (state.tokens[endDelim.token - 1].type === 'text' &&\n state.tokens[endDelim.token - 1].content === '~') {\n\n loneMarkers.push(endDelim.token - 1);\n }\n }\n\n // If a marker sequence has an odd number of characters, it's splitted\n // like this: `~~~~~` -> `~` + `~~` + `~~`, leaving one marker at the\n // start of the sequence.\n //\n // So, we have to move all those markers after subsequent s_close tags.\n //\n while (loneMarkers.length) {\n i = loneMarkers.pop();\n j = i + 1;\n\n while (j < state.tokens.length && state.tokens[j].type === 's_close') {\n j++;\n }\n\n j--;\n\n if (i !== j) {\n token = state.tokens[j];\n state.tokens[j] = state.tokens[i];\n state.tokens[i] = token;\n }\n }\n};\n","// Skip text characters for text token, place those to pending buffer\n// and increment current pos\n\n'use strict';\n\n\n// Rule to skip pure text\n// '{}$%@~+=:' reserved for extentions\n\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n\n// !!!! Don't confuse with \"Markdown ASCII Punctuation\" chars\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\nfunction isTerminatorChar(ch) {\n switch (ch) {\n case 0x0A/* \\n */:\n case 0x21/* ! */:\n case 0x23/* # */:\n case 0x24/* $ */:\n case 0x25/* % */:\n case 0x26/* & */:\n case 0x2A/* * */:\n case 0x2B/* + */:\n case 0x2D/* - */:\n case 0x3A/* : */:\n case 0x3C/* < */:\n case 0x3D/* = */:\n case 0x3E/* > */:\n case 0x40/* @ */:\n case 0x5B/* [ */:\n case 0x5C/* \\ */:\n case 0x5D/* ] */:\n case 0x5E/* ^ */:\n case 0x5F/* _ */:\n case 0x60/* ` */:\n case 0x7B/* { */:\n case 0x7D/* } */:\n case 0x7E/* ~ */:\n return true;\n default:\n return false;\n }\n}\n\nmodule.exports = function text(state, silent) {\n var pos = state.pos;\n\n while (pos < state.posMax && !isTerminatorChar(state.src.charCodeAt(pos))) {\n pos++;\n }\n\n if (pos === state.pos) { return false; }\n\n if (!silent) { state.pending += state.src.slice(state.pos, pos); }\n\n state.pos = pos;\n\n return true;\n};\n\n// Alternative implementation, for memory.\n//\n// It costs 10% of performance, but allows extend terminators list, if place it\n// to `ParcerInline` property. Probably, will switch to it sometime, such\n// flexibility required.\n\n/*\nvar TERMINATOR_RE = /[\\n!#$%&*+\\-:<=>@[\\\\\\]^_`{}~]/;\n\nmodule.exports = function text(state, silent) {\n var pos = state.pos,\n idx = state.src.slice(pos).search(TERMINATOR_RE);\n\n // first char is terminator -> empty text\n if (idx === 0) { return false; }\n\n // no terminator -> text till end of string\n if (idx < 0) {\n if (!silent) { state.pending += state.src.slice(pos); }\n state.pos = state.src.length;\n return true;\n }\n\n if (!silent) { state.pending += state.src.slice(pos, pos + idx); }\n\n state.pos += idx;\n\n return true;\n};*/\n","// Merge adjacent text nodes into one, and re-calculate all token levels\n//\n'use strict';\n\n\nmodule.exports = function text_collapse(state) {\n var curr, last,\n level = 0,\n tokens = state.tokens,\n max = state.tokens.length;\n\n for (curr = last = 0; curr < max; curr++) {\n // re-calculate levels\n level += tokens[curr].nesting;\n tokens[curr].level = level;\n\n if (tokens[curr].type === 'text' &&\n curr + 1 < max &&\n tokens[curr + 1].type === 'text') {\n\n // collapse two adjacent text nodes\n tokens[curr + 1].content = tokens[curr].content + tokens[curr + 1].content;\n } else {\n if (curr !== last) { tokens[last] = tokens[curr]; }\n\n last++;\n }\n }\n\n if (curr !== last) {\n tokens.length = last;\n }\n};\n","// Token class\n\n'use strict';\n\n\n/**\n * class Token\n **/\n\n/**\n * new Token(type, tag, nesting)\n *\n * Create new token and fill passed properties.\n **/\nfunction Token(type, tag, nesting) {\n /**\n * Token#type -> String\n *\n * Type of the token (string, e.g. \"paragraph_open\")\n **/\n this.type = type;\n\n /**\n * Token#tag -> String\n *\n * html tag name, e.g. \"p\"\n **/\n this.tag = tag;\n\n /**\n * Token#attrs -> Array\n *\n * Html attributes. Format: `[ [ name1, value1 ], [ name2, value2 ] ]`\n **/\n this.attrs = null;\n\n /**\n * Token#map -> Array\n *\n * Source map info. Format: `[ line_begin, line_end ]`\n **/\n this.map = null;\n\n /**\n * Token#nesting -> Number\n *\n * Level change (number in {-1, 0, 1} set), where:\n *\n * - `1` means the tag is opening\n * - `0` means the tag is self-closing\n * - `-1` means the tag is closing\n **/\n this.nesting = nesting;\n\n /**\n * Token#level -> Number\n *\n * nesting level, the same as `state.level`\n **/\n this.level = 0;\n\n /**\n * Token#children -> Array\n *\n * An array of child nodes (inline and img tokens)\n **/\n this.children = null;\n\n /**\n * Token#content -> String\n *\n * In a case of self-closing tag (code, html, fence, etc.),\n * it has contents of this tag.\n **/\n this.content = '';\n\n /**\n * Token#markup -> String\n *\n * '*' or '_' for emphasis, fence string for fence, etc.\n **/\n this.markup = '';\n\n /**\n * Token#info -> String\n *\n * fence infostring\n **/\n this.info = '';\n\n /**\n * Token#meta -> Object\n *\n * A place for plugins to store an arbitrary data\n **/\n this.meta = null;\n\n /**\n * Token#block -> Boolean\n *\n * True for block-level tokens, false for inline tokens.\n * Used in renderer to calculate line breaks\n **/\n this.block = false;\n\n /**\n * Token#hidden -> Boolean\n *\n * If it's true, ignore this element when rendering. Used for tight lists\n * to hide paragraphs.\n **/\n this.hidden = false;\n}\n\n\n/**\n * Token.attrIndex(name) -> Number\n *\n * Search attribute index by name.\n **/\nToken.prototype.attrIndex = function attrIndex(name) {\n var attrs, i, len;\n\n if (!this.attrs) { return -1; }\n\n attrs = this.attrs;\n\n for (i = 0, len = attrs.length; i < len; i++) {\n if (attrs[i][0] === name) { return i; }\n }\n return -1;\n};\n\n\n/**\n * Token.attrPush(attrData)\n *\n * Add `[ name, value ]` attribute to list. Init attrs if necessary\n **/\nToken.prototype.attrPush = function attrPush(attrData) {\n if (this.attrs) {\n this.attrs.push(attrData);\n } else {\n this.attrs = [ attrData ];\n }\n};\n\n\n/**\n * Token.attrSet(name, value)\n *\n * Set `name` attribute to `value`. Override old value if exists.\n **/\nToken.prototype.attrSet = function attrSet(name, value) {\n var idx = this.attrIndex(name),\n attrData = [ name, value ];\n\n if (idx < 0) {\n this.attrPush(attrData);\n } else {\n this.attrs[idx] = attrData;\n }\n};\n\n\n/**\n * Token.attrGet(name)\n *\n * Get the value of attribute `name`, or null if it does not exist.\n **/\nToken.prototype.attrGet = function attrGet(name) {\n var idx = this.attrIndex(name), value = null;\n if (idx >= 0) {\n value = this.attrs[idx][1];\n }\n return value;\n};\n\n\n/**\n * Token.attrJoin(name, value)\n *\n * Join value to existing attribute via space. Or create new attribute if not\n * exists. Useful to operate with token classes.\n **/\nToken.prototype.attrJoin = function attrJoin(name, value) {\n var idx = this.attrIndex(name);\n\n if (idx < 0) {\n this.attrPush([ name, value ]);\n } else {\n this.attrs[idx][1] = this.attrs[idx][1] + ' ' + value;\n }\n};\n\n\nmodule.exports = Token;\n","function getRelocatable(re) {\n // In the future, this could use a WeakMap instead of an expando.\n if (!re.__matchAtRelocatable) {\n // Disjunctions are the lowest-precedence operator, so we can make any\n // pattern match the empty string by appending `|()` to it:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-patterns\n var source = re.source + '|()';\n\n // We always make the new regex global.\n var flags = 'g' + (re.ignoreCase ? 'i' : '') + (re.multiline ? 'm' : '') + (re.unicode ? 'u' : '')\n // sticky (/.../y) doesn't make sense in conjunction with our relocation\n // logic, so we ignore it here.\n ;\n\n re.__matchAtRelocatable = new RegExp(source, flags);\n }\n return re.__matchAtRelocatable;\n}\n\nfunction matchAt(re, str, pos) {\n if (re.global || re.sticky) {\n throw new Error('matchAt(...): Only non-global regexes are supported');\n }\n var reloc = getRelocatable(re);\n reloc.lastIndex = pos;\n var match = reloc.exec(str);\n // Last capturing group is our sentinel that indicates whether the regex\n // matched at the given location.\n if (match[match.length - 1] == null) {\n // Original regex matched.\n match.length = match.length - 1;\n return match;\n } else {\n return null;\n }\n}\n\nmodule.exports = matchAt;","\n'use strict';\n\n\n/* eslint-disable no-bitwise */\n\nvar decodeCache = {};\n\nfunction getDecodeCache(exclude) {\n var i, ch, cache = decodeCache[exclude];\n if (cache) { return cache; }\n\n cache = decodeCache[exclude] = [];\n\n for (i = 0; i < 128; i++) {\n ch = String.fromCharCode(i);\n cache.push(ch);\n }\n\n for (i = 0; i < exclude.length; i++) {\n ch = exclude.charCodeAt(i);\n cache[ch] = '%' + ('0' + ch.toString(16).toUpperCase()).slice(-2);\n }\n\n return cache;\n}\n\n\n// Decode percent-encoded string.\n//\nfunction decode(string, exclude) {\n var cache;\n\n if (typeof exclude !== 'string') {\n exclude = decode.defaultChars;\n }\n\n cache = getDecodeCache(exclude);\n\n return string.replace(/(%[a-f0-9]{2})+/gi, function(seq) {\n var i, l, b1, b2, b3, b4, chr,\n result = '';\n\n for (i = 0, l = seq.length; i < l; i += 3) {\n b1 = parseInt(seq.slice(i + 1, i + 3), 16);\n\n if (b1 < 0x80) {\n result += cache[b1];\n continue;\n }\n\n if ((b1 & 0xE0) === 0xC0 && (i + 3 < l)) {\n // 110xxxxx 10xxxxxx\n b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n\n if ((b2 & 0xC0) === 0x80) {\n chr = ((b1 << 6) & 0x7C0) | (b2 & 0x3F);\n\n if (chr < 0x80) {\n result += '\\ufffd\\ufffd';\n } else {\n result += String.fromCharCode(chr);\n }\n\n i += 3;\n continue;\n }\n }\n\n if ((b1 & 0xF0) === 0xE0 && (i + 6 < l)) {\n // 1110xxxx 10xxxxxx 10xxxxxx\n b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n b3 = parseInt(seq.slice(i + 7, i + 9), 16);\n\n if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80) {\n chr = ((b1 << 12) & 0xF000) | ((b2 << 6) & 0xFC0) | (b3 & 0x3F);\n\n if (chr < 0x800 || (chr >= 0xD800 && chr <= 0xDFFF)) {\n result += '\\ufffd\\ufffd\\ufffd';\n } else {\n result += String.fromCharCode(chr);\n }\n\n i += 6;\n continue;\n }\n }\n\n if ((b1 & 0xF8) === 0xF0 && (i + 9 < l)) {\n // 111110xx 10xxxxxx 10xxxxxx 10xxxxxx\n b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n b3 = parseInt(seq.slice(i + 7, i + 9), 16);\n b4 = parseInt(seq.slice(i + 10, i + 12), 16);\n\n if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80 && (b4 & 0xC0) === 0x80) {\n chr = ((b1 << 18) & 0x1C0000) | ((b2 << 12) & 0x3F000) | ((b3 << 6) & 0xFC0) | (b4 & 0x3F);\n\n if (chr < 0x10000 || chr > 0x10FFFF) {\n result += '\\ufffd\\ufffd\\ufffd\\ufffd';\n } else {\n chr -= 0x10000;\n result += String.fromCharCode(0xD800 + (chr >> 10), 0xDC00 + (chr & 0x3FF));\n }\n\n i += 9;\n continue;\n }\n }\n\n result += '\\ufffd';\n }\n\n return result;\n });\n}\n\n\ndecode.defaultChars = ';/?:@&=+$,#';\ndecode.componentChars = '';\n\n\nmodule.exports = decode;\n","\n'use strict';\n\n\nvar encodeCache = {};\n\n\n// Create a lookup array where anything but characters in `chars` string\n// and alphanumeric chars is percent-encoded.\n//\nfunction getEncodeCache(exclude) {\n var i, ch, cache = encodeCache[exclude];\n if (cache) { return cache; }\n\n cache = encodeCache[exclude] = [];\n\n for (i = 0; i < 128; i++) {\n ch = String.fromCharCode(i);\n\n if (/^[0-9a-z]$/i.test(ch)) {\n // always allow unencoded alphanumeric characters\n cache.push(ch);\n } else {\n cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));\n }\n }\n\n for (i = 0; i < exclude.length; i++) {\n cache[exclude.charCodeAt(i)] = exclude[i];\n }\n\n return cache;\n}\n\n\n// Encode unsafe characters with percent-encoding, skipping already\n// encoded sequences.\n//\n// - string - string to encode\n// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)\n// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)\n//\nfunction encode(string, exclude, keepEscaped) {\n var i, l, code, nextCode, cache,\n result = '';\n\n if (typeof exclude !== 'string') {\n // encode(string, keepEscaped)\n keepEscaped = exclude;\n exclude = encode.defaultChars;\n }\n\n if (typeof keepEscaped === 'undefined') {\n keepEscaped = true;\n }\n\n cache = getEncodeCache(exclude);\n\n for (i = 0, l = string.length; i < l; i++) {\n code = string.charCodeAt(i);\n\n if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {\n if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n result += string.slice(i, i + 3);\n i += 2;\n continue;\n }\n }\n\n if (code < 128) {\n result += cache[code];\n continue;\n }\n\n if (code >= 0xD800 && code <= 0xDFFF) {\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n nextCode = string.charCodeAt(i + 1);\n if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n result += encodeURIComponent(string[i] + string[i + 1]);\n i++;\n continue;\n }\n }\n result += '%EF%BF%BD';\n continue;\n }\n\n result += encodeURIComponent(string[i]);\n }\n\n return result;\n}\n\nencode.defaultChars = \";/?:@&=+$,-_.!~*'()#\";\nencode.componentChars = \"-_.!~*'()\";\n\n\nmodule.exports = encode;\n","\n'use strict';\n\n\nmodule.exports = function format(url) {\n var result = '';\n\n result += url.protocol || '';\n result += url.slashes ? '//' : '';\n result += url.auth ? url.auth + '@' : '';\n\n if (url.hostname && url.hostname.indexOf(':') !== -1) {\n // ipv6 address\n result += '[' + url.hostname + ']';\n } else {\n result += url.hostname || '';\n }\n\n result += url.port ? ':' + url.port : '';\n result += url.pathname || '';\n result += url.search || '';\n result += url.hash || '';\n\n return result;\n};\n","'use strict';\n\n\nmodule.exports.encode = require('./encode');\nmodule.exports.decode = require('./decode');\nmodule.exports.format = require('./format');\nmodule.exports.parse = require('./parse');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n//\n// Changes from joyent/node:\n//\n// 1. No leading slash in paths,\n// e.g. in `url.parse('http://foo?bar')` pathname is ``, not `/`\n//\n// 2. Backslashes are not replaced with slashes,\n// so `http:\\\\example.org\\` is treated like a relative path\n//\n// 3. Trailing colon is treated like a part of the path,\n// i.e. in `http://example.org:foo` pathname is `:foo`\n//\n// 4. Nothing is URL-encoded in the resulting object,\n// (in joyent/node some chars in auth and paths are encoded)\n//\n// 5. `url.parse()` does not have `parseQueryString` argument\n//\n// 6. Removed extraneous result properties: `host`, `path`, `query`, etc.,\n// which can be constructed using other parts of the url.\n//\n\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.pathname = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = [ '<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t' ],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = [ '{', '}', '|', '\\\\', '^', '`' ].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = [ '\\'' ].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = [ '%', '/', '?', ';', '#' ].concat(autoEscape),\n hostEndingChars = [ '/', '?', '#' ],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n /* eslint-disable no-script-url */\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n };\n /* eslint-enable no-script-url */\n\nfunction urlParse(url, slashesDenoteHost) {\n if (url && url instanceof Url) { return url; }\n\n var u = new Url();\n u.parse(url, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, slashesDenoteHost) {\n var i, l, lowerProto, hec, slashes,\n rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n lowerProto = proto.toLowerCase();\n this.protocol = proto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (i = 0; i < hostEndingChars.length; i++) {\n hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {\n hostEnd = hec;\n }\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = auth;\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (i = 0; i < nonHostChars.length; i++) {\n hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {\n hostEnd = hec;\n }\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1) {\n hostEnd = rest.length;\n }\n\n if (rest[hostEnd - 1] === ':') { hostEnd--; }\n var host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost(host);\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) { continue; }\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n }\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n }\n }\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n rest = rest.slice(0, qm);\n }\n if (rest) { this.pathname = rest; }\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '';\n }\n\n return this;\n};\n\nUrl.prototype.parseHost = function(host) {\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) { this.hostname = host; }\n};\n\nmodule.exports = urlParse;\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see \n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport { ucs2decode, ucs2encode, decode, encode, toASCII, toUnicode };\nexport default punycode;\n","module.exports=/[\\0-\\x1F\\x7F-\\x9F]/","module.exports=/[\\xAD\\u0600-\\u0605\\u061C\\u06DD\\u070F\\u08E2\\u180E\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\uFEFF\\uFFF9-\\uFFFB]|\\uD804[\\uDCBD\\uDCCD]|\\uD82F[\\uDCA0-\\uDCA3]|\\uD834[\\uDD73-\\uDD7A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F]/","module.exports=/[!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4E\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD803[\\uDF55-\\uDF59]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDC4B-\\uDC4F\\uDC5B\\uDC5D\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDE60-\\uDE6C\\uDF3C-\\uDF3E]|\\uD806[\\uDC3B\\uDE3F-\\uDE46\\uDE9A-\\uDE9C\\uDE9E-\\uDEA2]|\\uD807[\\uDC41-\\uDC45\\uDC70\\uDC71\\uDEF7\\uDEF8]|\\uD809[\\uDC70-\\uDC74]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD81B[\\uDE97-\\uDE9A]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]|\\uD83A[\\uDD5E\\uDD5F]/","module.exports=/[ \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/","'use strict';\n\nexports.Any = require('./properties/Any/regex');\nexports.Cc = require('./categories/Cc/regex');\nexports.Cf = require('./categories/Cf/regex');\nexports.P = require('./categories/P/regex');\nexports.Z = require('./categories/Z/regex');\n","module.exports=/[\\0-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/","(function (root) {\n \"use strict\";\n\n/***** unorm.js *****/\n\n/*\n * UnicodeNormalizer 1.0.0\n * Copyright (c) 2008 Matsuza\n * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.\n * $Date: 2008-06-05 16:44:17 +0200 (Thu, 05 Jun 2008) $\n * $Rev: 13309 $\n */\n\n var DEFAULT_FEATURE = [null, 0, {}];\n var CACHE_THRESHOLD = 10;\n var SBase = 0xAC00, LBase = 0x1100, VBase = 0x1161, TBase = 0x11A7, LCount = 19, VCount = 21, TCount = 28;\n var NCount = VCount * TCount; // 588\n var SCount = LCount * NCount; // 11172\n\n var UChar = function(cp, feature){\n this.codepoint = cp;\n this.feature = feature;\n };\n\n // Strategies\n var cache = {};\n var cacheCounter = [];\n for (var i = 0; i <= 0xFF; ++i){\n cacheCounter[i] = 0;\n }\n\n function fromCache(next, cp, needFeature){\n var ret = cache[cp];\n if(!ret){\n ret = next(cp, needFeature);\n if(!!ret.feature && ++cacheCounter[(cp >> 8) & 0xFF] > CACHE_THRESHOLD){\n cache[cp] = ret;\n }\n }\n return ret;\n }\n\n function fromData(next, cp, needFeature){\n var hash = cp & 0xFF00;\n var dunit = UChar.udata[hash] || {};\n var f = dunit[cp];\n return f ? new UChar(cp, f) : new UChar(cp, DEFAULT_FEATURE);\n }\n function fromCpOnly(next, cp, needFeature){\n return !!needFeature ? next(cp, needFeature) : new UChar(cp, null);\n }\n function fromRuleBasedJamo(next, cp, needFeature){\n var j;\n if(cp < LBase || (LBase + LCount <= cp && cp < SBase) || (SBase + SCount < cp)){\n return next(cp, needFeature);\n }\n if(LBase <= cp && cp < LBase + LCount){\n var c = {};\n var base = (cp - LBase) * VCount;\n for (j = 0; j < VCount; ++j){\n c[VBase + j] = SBase + TCount * (j + base);\n }\n return new UChar(cp, [,,c]);\n }\n\n var SIndex = cp - SBase;\n var TIndex = SIndex % TCount;\n var feature = [];\n if(TIndex !== 0){\n feature[0] = [SBase + SIndex - TIndex, TBase + TIndex];\n } else {\n feature[0] = [LBase + Math.floor(SIndex / NCount), VBase + Math.floor((SIndex % NCount) / TCount)];\n feature[2] = {};\n for (j = 1; j < TCount; ++j){\n feature[2][TBase + j] = cp + j;\n }\n }\n return new UChar(cp, feature);\n }\n function fromCpFilter(next, cp, needFeature){\n return cp < 60 || 13311 < cp && cp < 42607 ? new UChar(cp, DEFAULT_FEATURE) : next(cp, needFeature);\n }\n\n var strategies = [fromCpFilter, fromCache, fromCpOnly, fromRuleBasedJamo, fromData];\n\n UChar.fromCharCode = strategies.reduceRight(function (next, strategy) {\n return function (cp, needFeature) {\n return strategy(next, cp, needFeature);\n };\n }, null);\n\n UChar.isHighSurrogate = function(cp){\n return cp >= 0xD800 && cp <= 0xDBFF;\n };\n UChar.isLowSurrogate = function(cp){\n return cp >= 0xDC00 && cp <= 0xDFFF;\n };\n\n UChar.prototype.prepFeature = function(){\n if(!this.feature){\n this.feature = UChar.fromCharCode(this.codepoint, true).feature;\n }\n };\n\n UChar.prototype.toString = function(){\n if(this.codepoint < 0x10000){\n return String.fromCharCode(this.codepoint);\n } else {\n var x = this.codepoint - 0x10000;\n return String.fromCharCode(Math.floor(x / 0x400) + 0xD800, x % 0x400 + 0xDC00);\n }\n };\n\n UChar.prototype.getDecomp = function(){\n this.prepFeature();\n return this.feature[0] || null;\n };\n\n UChar.prototype.isCompatibility = function(){\n this.prepFeature();\n return !!this.feature[1] && (this.feature[1] & (1 << 8));\n };\n UChar.prototype.isExclude = function(){\n this.prepFeature();\n return !!this.feature[1] && (this.feature[1] & (1 << 9));\n };\n UChar.prototype.getCanonicalClass = function(){\n this.prepFeature();\n return !!this.feature[1] ? (this.feature[1] & 0xff) : 0;\n };\n UChar.prototype.getComposite = function(following){\n this.prepFeature();\n if(!this.feature[2]){\n return null;\n }\n var cp = this.feature[2][following.codepoint];\n return cp ? UChar.fromCharCode(cp) : null;\n };\n\n var UCharIterator = function(str){\n this.str = str;\n this.cursor = 0;\n };\n UCharIterator.prototype.next = function(){\n if(!!this.str && this.cursor < this.str.length){\n var cp = this.str.charCodeAt(this.cursor++);\n var d;\n if(UChar.isHighSurrogate(cp) && this.cursor < this.str.length && UChar.isLowSurrogate((d = this.str.charCodeAt(this.cursor)))){\n cp = (cp - 0xD800) * 0x400 + (d -0xDC00) + 0x10000;\n ++this.cursor;\n }\n return UChar.fromCharCode(cp);\n } else {\n this.str = null;\n return null;\n }\n };\n\n var RecursDecompIterator = function(it, cano){\n this.it = it;\n this.canonical = cano;\n this.resBuf = [];\n };\n\n RecursDecompIterator.prototype.next = function(){\n function recursiveDecomp(cano, uchar){\n var decomp = uchar.getDecomp();\n if(!!decomp && !(cano && uchar.isCompatibility())){\n var ret = [];\n for(var i = 0; i < decomp.length; ++i){\n var a = recursiveDecomp(cano, UChar.fromCharCode(decomp[i]));\n ret = ret.concat(a);\n }\n return ret;\n } else {\n return [uchar];\n }\n }\n if(this.resBuf.length === 0){\n var uchar = this.it.next();\n if(!uchar){\n return null;\n }\n this.resBuf = recursiveDecomp(this.canonical, uchar);\n }\n return this.resBuf.shift();\n };\n\n var DecompIterator = function(it){\n this.it = it;\n this.resBuf = [];\n };\n\n DecompIterator.prototype.next = function(){\n var cc;\n if(this.resBuf.length === 0){\n do{\n var uchar = this.it.next();\n if(!uchar){\n break;\n }\n cc = uchar.getCanonicalClass();\n var inspt = this.resBuf.length;\n if(cc !== 0){\n for(; inspt > 0; --inspt){\n var uchar2 = this.resBuf[inspt - 1];\n var cc2 = uchar2.getCanonicalClass();\n if(cc2 <= cc){\n break;\n }\n }\n }\n this.resBuf.splice(inspt, 0, uchar);\n } while(cc !== 0);\n }\n return this.resBuf.shift();\n };\n\n var CompIterator = function(it){\n this.it = it;\n this.procBuf = [];\n this.resBuf = [];\n this.lastClass = null;\n };\n\n CompIterator.prototype.next = function(){\n while(this.resBuf.length === 0){\n var uchar = this.it.next();\n if(!uchar){\n this.resBuf = this.procBuf;\n this.procBuf = [];\n break;\n }\n if(this.procBuf.length === 0){\n this.lastClass = uchar.getCanonicalClass();\n this.procBuf.push(uchar);\n } else {\n var starter = this.procBuf[0];\n var composite = starter.getComposite(uchar);\n var cc = uchar.getCanonicalClass();\n if(!!composite && (this.lastClass < cc || this.lastClass === 0)){\n this.procBuf[0] = composite;\n } else {\n if(cc === 0){\n this.resBuf = this.procBuf;\n this.procBuf = [];\n }\n this.lastClass = cc;\n this.procBuf.push(uchar);\n }\n }\n }\n return this.resBuf.shift();\n };\n\n var createIterator = function(mode, str){\n switch(mode){\n case \"NFD\":\n return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true));\n case \"NFKD\":\n return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false));\n case \"NFC\":\n return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true)));\n case \"NFKC\":\n return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false)));\n }\n throw mode + \" is invalid\";\n };\n var normalize = function(mode, str){\n var it = createIterator(mode, str);\n var ret = \"\";\n var uchar;\n while(!!(uchar = it.next())){\n ret += uchar.toString();\n }\n return ret;\n };\n\n /* API functions */\n function nfd(str){\n return normalize(\"NFD\", str);\n }\n\n function nfkd(str){\n return normalize(\"NFKD\", str);\n }\n\n function nfc(str){\n return normalize(\"NFC\", str);\n }\n\n function nfkc(str){\n return normalize(\"NFKC\", str);\n }\n\n/* Unicode data */\nUChar.udata={\n0:{60:[,,{824:8814}],61:[,,{824:8800}],62:[,,{824:8815}],65:[,,{768:192,769:193,770:194,771:195,772:256,774:258,775:550,776:196,777:7842,778:197,780:461,783:512,785:514,803:7840,805:7680,808:260}],66:[,,{775:7682,803:7684,817:7686}],67:[,,{769:262,770:264,775:266,780:268,807:199}],68:[,,{775:7690,780:270,803:7692,807:7696,813:7698,817:7694}],69:[,,{768:200,769:201,770:202,771:7868,772:274,774:276,775:278,776:203,777:7866,780:282,783:516,785:518,803:7864,807:552,808:280,813:7704,816:7706}],70:[,,{775:7710}],71:[,,{769:500,770:284,772:7712,774:286,775:288,780:486,807:290}],72:[,,{770:292,775:7714,776:7718,780:542,803:7716,807:7720,814:7722}],73:[,,{768:204,769:205,770:206,771:296,772:298,774:300,775:304,776:207,777:7880,780:463,783:520,785:522,803:7882,808:302,816:7724}],74:[,,{770:308}],75:[,,{769:7728,780:488,803:7730,807:310,817:7732}],76:[,,{769:313,780:317,803:7734,807:315,813:7740,817:7738}],77:[,,{769:7742,775:7744,803:7746}],78:[,,{768:504,769:323,771:209,775:7748,780:327,803:7750,807:325,813:7754,817:7752}],79:[,,{768:210,769:211,770:212,771:213,772:332,774:334,775:558,776:214,777:7886,779:336,780:465,783:524,785:526,795:416,803:7884,808:490}],80:[,,{769:7764,775:7766}],82:[,,{769:340,775:7768,780:344,783:528,785:530,803:7770,807:342,817:7774}],83:[,,{769:346,770:348,775:7776,780:352,803:7778,806:536,807:350}],84:[,,{775:7786,780:356,803:7788,806:538,807:354,813:7792,817:7790}],85:[,,{768:217,769:218,770:219,771:360,772:362,774:364,776:220,777:7910,778:366,779:368,780:467,783:532,785:534,795:431,803:7908,804:7794,808:370,813:7798,816:7796}],86:[,,{771:7804,803:7806}],87:[,,{768:7808,769:7810,770:372,775:7814,776:7812,803:7816}],88:[,,{775:7818,776:7820}],89:[,,{768:7922,769:221,770:374,771:7928,772:562,775:7822,776:376,777:7926,803:7924}],90:[,,{769:377,770:7824,775:379,780:381,803:7826,817:7828}],97:[,,{768:224,769:225,770:226,771:227,772:257,774:259,775:551,776:228,777:7843,778:229,780:462,783:513,785:515,803:7841,805:7681,808:261}],98:[,,{775:7683,803:7685,817:7687}],99:[,,{769:263,770:265,775:267,780:269,807:231}],100:[,,{775:7691,780:271,803:7693,807:7697,813:7699,817:7695}],101:[,,{768:232,769:233,770:234,771:7869,772:275,774:277,775:279,776:235,777:7867,780:283,783:517,785:519,803:7865,807:553,808:281,813:7705,816:7707}],102:[,,{775:7711}],103:[,,{769:501,770:285,772:7713,774:287,775:289,780:487,807:291}],104:[,,{770:293,775:7715,776:7719,780:543,803:7717,807:7721,814:7723,817:7830}],105:[,,{768:236,769:237,770:238,771:297,772:299,774:301,776:239,777:7881,780:464,783:521,785:523,803:7883,808:303,816:7725}],106:[,,{770:309,780:496}],107:[,,{769:7729,780:489,803:7731,807:311,817:7733}],108:[,,{769:314,780:318,803:7735,807:316,813:7741,817:7739}],109:[,,{769:7743,775:7745,803:7747}],110:[,,{768:505,769:324,771:241,775:7749,780:328,803:7751,807:326,813:7755,817:7753}],111:[,,{768:242,769:243,770:244,771:245,772:333,774:335,775:559,776:246,777:7887,779:337,780:466,783:525,785:527,795:417,803:7885,808:491}],112:[,,{769:7765,775:7767}],114:[,,{769:341,775:7769,780:345,783:529,785:531,803:7771,807:343,817:7775}],115:[,,{769:347,770:349,775:7777,780:353,803:7779,806:537,807:351}],116:[,,{775:7787,776:7831,780:357,803:7789,806:539,807:355,813:7793,817:7791}],117:[,,{768:249,769:250,770:251,771:361,772:363,774:365,776:252,777:7911,778:367,779:369,780:468,783:533,785:535,795:432,803:7909,804:7795,808:371,813:7799,816:7797}],118:[,,{771:7805,803:7807}],119:[,,{768:7809,769:7811,770:373,775:7815,776:7813,778:7832,803:7817}],120:[,,{775:7819,776:7821}],121:[,,{768:7923,769:253,770:375,771:7929,772:563,775:7823,776:255,777:7927,778:7833,803:7925}],122:[,,{769:378,770:7825,775:380,780:382,803:7827,817:7829}],160:[[32],256],168:[[32,776],256,{768:8173,769:901,834:8129}],170:[[97],256],175:[[32,772],256],178:[[50],256],179:[[51],256],180:[[32,769],256],181:[[956],256],184:[[32,807],256],185:[[49],256],186:[[111],256],188:[[49,8260,52],256],189:[[49,8260,50],256],190:[[51,8260,52],256],192:[[65,768]],193:[[65,769]],194:[[65,770],,{768:7846,769:7844,771:7850,777:7848}],195:[[65,771]],196:[[65,776],,{772:478}],197:[[65,778],,{769:506}],198:[,,{769:508,772:482}],199:[[67,807],,{769:7688}],200:[[69,768]],201:[[69,769]],202:[[69,770],,{768:7872,769:7870,771:7876,777:7874}],203:[[69,776]],204:[[73,768]],205:[[73,769]],206:[[73,770]],207:[[73,776],,{769:7726}],209:[[78,771]],210:[[79,768]],211:[[79,769]],212:[[79,770],,{768:7890,769:7888,771:7894,777:7892}],213:[[79,771],,{769:7756,772:556,776:7758}],214:[[79,776],,{772:554}],216:[,,{769:510}],217:[[85,768]],218:[[85,769]],219:[[85,770]],220:[[85,776],,{768:475,769:471,772:469,780:473}],221:[[89,769]],224:[[97,768]],225:[[97,769]],226:[[97,770],,{768:7847,769:7845,771:7851,777:7849}],227:[[97,771]],228:[[97,776],,{772:479}],229:[[97,778],,{769:507}],230:[,,{769:509,772:483}],231:[[99,807],,{769:7689}],232:[[101,768]],233:[[101,769]],234:[[101,770],,{768:7873,769:7871,771:7877,777:7875}],235:[[101,776]],236:[[105,768]],237:[[105,769]],238:[[105,770]],239:[[105,776],,{769:7727}],241:[[110,771]],242:[[111,768]],243:[[111,769]],244:[[111,770],,{768:7891,769:7889,771:7895,777:7893}],245:[[111,771],,{769:7757,772:557,776:7759}],246:[[111,776],,{772:555}],248:[,,{769:511}],249:[[117,768]],250:[[117,769]],251:[[117,770]],252:[[117,776],,{768:476,769:472,772:470,780:474}],253:[[121,769]],255:[[121,776]]},\n256:{256:[[65,772]],257:[[97,772]],258:[[65,774],,{768:7856,769:7854,771:7860,777:7858}],259:[[97,774],,{768:7857,769:7855,771:7861,777:7859}],260:[[65,808]],261:[[97,808]],262:[[67,769]],263:[[99,769]],264:[[67,770]],265:[[99,770]],266:[[67,775]],267:[[99,775]],268:[[67,780]],269:[[99,780]],270:[[68,780]],271:[[100,780]],274:[[69,772],,{768:7700,769:7702}],275:[[101,772],,{768:7701,769:7703}],276:[[69,774]],277:[[101,774]],278:[[69,775]],279:[[101,775]],280:[[69,808]],281:[[101,808]],282:[[69,780]],283:[[101,780]],284:[[71,770]],285:[[103,770]],286:[[71,774]],287:[[103,774]],288:[[71,775]],289:[[103,775]],290:[[71,807]],291:[[103,807]],292:[[72,770]],293:[[104,770]],296:[[73,771]],297:[[105,771]],298:[[73,772]],299:[[105,772]],300:[[73,774]],301:[[105,774]],302:[[73,808]],303:[[105,808]],304:[[73,775]],306:[[73,74],256],307:[[105,106],256],308:[[74,770]],309:[[106,770]],310:[[75,807]],311:[[107,807]],313:[[76,769]],314:[[108,769]],315:[[76,807]],316:[[108,807]],317:[[76,780]],318:[[108,780]],319:[[76,183],256],320:[[108,183],256],323:[[78,769]],324:[[110,769]],325:[[78,807]],326:[[110,807]],327:[[78,780]],328:[[110,780]],329:[[700,110],256],332:[[79,772],,{768:7760,769:7762}],333:[[111,772],,{768:7761,769:7763}],334:[[79,774]],335:[[111,774]],336:[[79,779]],337:[[111,779]],340:[[82,769]],341:[[114,769]],342:[[82,807]],343:[[114,807]],344:[[82,780]],345:[[114,780]],346:[[83,769],,{775:7780}],347:[[115,769],,{775:7781}],348:[[83,770]],349:[[115,770]],350:[[83,807]],351:[[115,807]],352:[[83,780],,{775:7782}],353:[[115,780],,{775:7783}],354:[[84,807]],355:[[116,807]],356:[[84,780]],357:[[116,780]],360:[[85,771],,{769:7800}],361:[[117,771],,{769:7801}],362:[[85,772],,{776:7802}],363:[[117,772],,{776:7803}],364:[[85,774]],365:[[117,774]],366:[[85,778]],367:[[117,778]],368:[[85,779]],369:[[117,779]],370:[[85,808]],371:[[117,808]],372:[[87,770]],373:[[119,770]],374:[[89,770]],375:[[121,770]],376:[[89,776]],377:[[90,769]],378:[[122,769]],379:[[90,775]],380:[[122,775]],381:[[90,780]],382:[[122,780]],383:[[115],256,{775:7835}],416:[[79,795],,{768:7900,769:7898,771:7904,777:7902,803:7906}],417:[[111,795],,{768:7901,769:7899,771:7905,777:7903,803:7907}],431:[[85,795],,{768:7914,769:7912,771:7918,777:7916,803:7920}],432:[[117,795],,{768:7915,769:7913,771:7919,777:7917,803:7921}],439:[,,{780:494}],452:[[68,381],256],453:[[68,382],256],454:[[100,382],256],455:[[76,74],256],456:[[76,106],256],457:[[108,106],256],458:[[78,74],256],459:[[78,106],256],460:[[110,106],256],461:[[65,780]],462:[[97,780]],463:[[73,780]],464:[[105,780]],465:[[79,780]],466:[[111,780]],467:[[85,780]],468:[[117,780]],469:[[220,772]],470:[[252,772]],471:[[220,769]],472:[[252,769]],473:[[220,780]],474:[[252,780]],475:[[220,768]],476:[[252,768]],478:[[196,772]],479:[[228,772]],480:[[550,772]],481:[[551,772]],482:[[198,772]],483:[[230,772]],486:[[71,780]],487:[[103,780]],488:[[75,780]],489:[[107,780]],490:[[79,808],,{772:492}],491:[[111,808],,{772:493}],492:[[490,772]],493:[[491,772]],494:[[439,780]],495:[[658,780]],496:[[106,780]],497:[[68,90],256],498:[[68,122],256],499:[[100,122],256],500:[[71,769]],501:[[103,769]],504:[[78,768]],505:[[110,768]],506:[[197,769]],507:[[229,769]],508:[[198,769]],509:[[230,769]],510:[[216,769]],511:[[248,769]],66045:[,220]},\n512:{512:[[65,783]],513:[[97,783]],514:[[65,785]],515:[[97,785]],516:[[69,783]],517:[[101,783]],518:[[69,785]],519:[[101,785]],520:[[73,783]],521:[[105,783]],522:[[73,785]],523:[[105,785]],524:[[79,783]],525:[[111,783]],526:[[79,785]],527:[[111,785]],528:[[82,783]],529:[[114,783]],530:[[82,785]],531:[[114,785]],532:[[85,783]],533:[[117,783]],534:[[85,785]],535:[[117,785]],536:[[83,806]],537:[[115,806]],538:[[84,806]],539:[[116,806]],542:[[72,780]],543:[[104,780]],550:[[65,775],,{772:480}],551:[[97,775],,{772:481}],552:[[69,807],,{774:7708}],553:[[101,807],,{774:7709}],554:[[214,772]],555:[[246,772]],556:[[213,772]],557:[[245,772]],558:[[79,775],,{772:560}],559:[[111,775],,{772:561}],560:[[558,772]],561:[[559,772]],562:[[89,772]],563:[[121,772]],658:[,,{780:495}],688:[[104],256],689:[[614],256],690:[[106],256],691:[[114],256],692:[[633],256],693:[[635],256],694:[[641],256],695:[[119],256],696:[[121],256],728:[[32,774],256],729:[[32,775],256],730:[[32,778],256],731:[[32,808],256],732:[[32,771],256],733:[[32,779],256],736:[[611],256],737:[[108],256],738:[[115],256],739:[[120],256],740:[[661],256],66272:[,220]},\n768:{768:[,230],769:[,230],770:[,230],771:[,230],772:[,230],773:[,230],774:[,230],775:[,230],776:[,230,{769:836}],777:[,230],778:[,230],779:[,230],780:[,230],781:[,230],782:[,230],783:[,230],784:[,230],785:[,230],786:[,230],787:[,230],788:[,230],789:[,232],790:[,220],791:[,220],792:[,220],793:[,220],794:[,232],795:[,216],796:[,220],797:[,220],798:[,220],799:[,220],800:[,220],801:[,202],802:[,202],803:[,220],804:[,220],805:[,220],806:[,220],807:[,202],808:[,202],809:[,220],810:[,220],811:[,220],812:[,220],813:[,220],814:[,220],815:[,220],816:[,220],817:[,220],818:[,220],819:[,220],820:[,1],821:[,1],822:[,1],823:[,1],824:[,1],825:[,220],826:[,220],827:[,220],828:[,220],829:[,230],830:[,230],831:[,230],832:[[768],230],833:[[769],230],834:[,230],835:[[787],230],836:[[776,769],230],837:[,240],838:[,230],839:[,220],840:[,220],841:[,220],842:[,230],843:[,230],844:[,230],845:[,220],846:[,220],848:[,230],849:[,230],850:[,230],851:[,220],852:[,220],853:[,220],854:[,220],855:[,230],856:[,232],857:[,220],858:[,220],859:[,230],860:[,233],861:[,234],862:[,234],863:[,233],864:[,234],865:[,234],866:[,233],867:[,230],868:[,230],869:[,230],870:[,230],871:[,230],872:[,230],873:[,230],874:[,230],875:[,230],876:[,230],877:[,230],878:[,230],879:[,230],884:[[697]],890:[[32,837],256],894:[[59]],900:[[32,769],256],901:[[168,769]],902:[[913,769]],903:[[183]],904:[[917,769]],905:[[919,769]],906:[[921,769]],908:[[927,769]],910:[[933,769]],911:[[937,769]],912:[[970,769]],913:[,,{768:8122,769:902,772:8121,774:8120,787:7944,788:7945,837:8124}],917:[,,{768:8136,769:904,787:7960,788:7961}],919:[,,{768:8138,769:905,787:7976,788:7977,837:8140}],921:[,,{768:8154,769:906,772:8153,774:8152,776:938,787:7992,788:7993}],927:[,,{768:8184,769:908,787:8008,788:8009}],929:[,,{788:8172}],933:[,,{768:8170,769:910,772:8169,774:8168,776:939,788:8025}],937:[,,{768:8186,769:911,787:8040,788:8041,837:8188}],938:[[921,776]],939:[[933,776]],940:[[945,769],,{837:8116}],941:[[949,769]],942:[[951,769],,{837:8132}],943:[[953,769]],944:[[971,769]],945:[,,{768:8048,769:940,772:8113,774:8112,787:7936,788:7937,834:8118,837:8115}],949:[,,{768:8050,769:941,787:7952,788:7953}],951:[,,{768:8052,769:942,787:7968,788:7969,834:8134,837:8131}],953:[,,{768:8054,769:943,772:8145,774:8144,776:970,787:7984,788:7985,834:8150}],959:[,,{768:8056,769:972,787:8000,788:8001}],961:[,,{787:8164,788:8165}],965:[,,{768:8058,769:973,772:8161,774:8160,776:971,787:8016,788:8017,834:8166}],969:[,,{768:8060,769:974,787:8032,788:8033,834:8182,837:8179}],970:[[953,776],,{768:8146,769:912,834:8151}],971:[[965,776],,{768:8162,769:944,834:8167}],972:[[959,769]],973:[[965,769]],974:[[969,769],,{837:8180}],976:[[946],256],977:[[952],256],978:[[933],256,{769:979,776:980}],979:[[978,769]],980:[[978,776]],981:[[966],256],982:[[960],256],1008:[[954],256],1009:[[961],256],1010:[[962],256],1012:[[920],256],1013:[[949],256],1017:[[931],256],66422:[,230],66423:[,230],66424:[,230],66425:[,230],66426:[,230]},\n1024:{1024:[[1045,768]],1025:[[1045,776]],1027:[[1043,769]],1030:[,,{776:1031}],1031:[[1030,776]],1036:[[1050,769]],1037:[[1048,768]],1038:[[1059,774]],1040:[,,{774:1232,776:1234}],1043:[,,{769:1027}],1045:[,,{768:1024,774:1238,776:1025}],1046:[,,{774:1217,776:1244}],1047:[,,{776:1246}],1048:[,,{768:1037,772:1250,774:1049,776:1252}],1049:[[1048,774]],1050:[,,{769:1036}],1054:[,,{776:1254}],1059:[,,{772:1262,774:1038,776:1264,779:1266}],1063:[,,{776:1268}],1067:[,,{776:1272}],1069:[,,{776:1260}],1072:[,,{774:1233,776:1235}],1075:[,,{769:1107}],1077:[,,{768:1104,774:1239,776:1105}],1078:[,,{774:1218,776:1245}],1079:[,,{776:1247}],1080:[,,{768:1117,772:1251,774:1081,776:1253}],1081:[[1080,774]],1082:[,,{769:1116}],1086:[,,{776:1255}],1091:[,,{772:1263,774:1118,776:1265,779:1267}],1095:[,,{776:1269}],1099:[,,{776:1273}],1101:[,,{776:1261}],1104:[[1077,768]],1105:[[1077,776]],1107:[[1075,769]],1110:[,,{776:1111}],1111:[[1110,776]],1116:[[1082,769]],1117:[[1080,768]],1118:[[1091,774]],1140:[,,{783:1142}],1141:[,,{783:1143}],1142:[[1140,783]],1143:[[1141,783]],1155:[,230],1156:[,230],1157:[,230],1158:[,230],1159:[,230],1217:[[1046,774]],1218:[[1078,774]],1232:[[1040,774]],1233:[[1072,774]],1234:[[1040,776]],1235:[[1072,776]],1238:[[1045,774]],1239:[[1077,774]],1240:[,,{776:1242}],1241:[,,{776:1243}],1242:[[1240,776]],1243:[[1241,776]],1244:[[1046,776]],1245:[[1078,776]],1246:[[1047,776]],1247:[[1079,776]],1250:[[1048,772]],1251:[[1080,772]],1252:[[1048,776]],1253:[[1080,776]],1254:[[1054,776]],1255:[[1086,776]],1256:[,,{776:1258}],1257:[,,{776:1259}],1258:[[1256,776]],1259:[[1257,776]],1260:[[1069,776]],1261:[[1101,776]],1262:[[1059,772]],1263:[[1091,772]],1264:[[1059,776]],1265:[[1091,776]],1266:[[1059,779]],1267:[[1091,779]],1268:[[1063,776]],1269:[[1095,776]],1272:[[1067,776]],1273:[[1099,776]]},\n1280:{1415:[[1381,1410],256],1425:[,220],1426:[,230],1427:[,230],1428:[,230],1429:[,230],1430:[,220],1431:[,230],1432:[,230],1433:[,230],1434:[,222],1435:[,220],1436:[,230],1437:[,230],1438:[,230],1439:[,230],1440:[,230],1441:[,230],1442:[,220],1443:[,220],1444:[,220],1445:[,220],1446:[,220],1447:[,220],1448:[,230],1449:[,230],1450:[,220],1451:[,230],1452:[,230],1453:[,222],1454:[,228],1455:[,230],1456:[,10],1457:[,11],1458:[,12],1459:[,13],1460:[,14],1461:[,15],1462:[,16],1463:[,17],1464:[,18],1465:[,19],1466:[,19],1467:[,20],1468:[,21],1469:[,22],1471:[,23],1473:[,24],1474:[,25],1476:[,230],1477:[,220],1479:[,18]},\n1536:{1552:[,230],1553:[,230],1554:[,230],1555:[,230],1556:[,230],1557:[,230],1558:[,230],1559:[,230],1560:[,30],1561:[,31],1562:[,32],1570:[[1575,1619]],1571:[[1575,1620]],1572:[[1608,1620]],1573:[[1575,1621]],1574:[[1610,1620]],1575:[,,{1619:1570,1620:1571,1621:1573}],1608:[,,{1620:1572}],1610:[,,{1620:1574}],1611:[,27],1612:[,28],1613:[,29],1614:[,30],1615:[,31],1616:[,32],1617:[,33],1618:[,34],1619:[,230],1620:[,230],1621:[,220],1622:[,220],1623:[,230],1624:[,230],1625:[,230],1626:[,230],1627:[,230],1628:[,220],1629:[,230],1630:[,230],1631:[,220],1648:[,35],1653:[[1575,1652],256],1654:[[1608,1652],256],1655:[[1735,1652],256],1656:[[1610,1652],256],1728:[[1749,1620]],1729:[,,{1620:1730}],1730:[[1729,1620]],1746:[,,{1620:1747}],1747:[[1746,1620]],1749:[,,{1620:1728}],1750:[,230],1751:[,230],1752:[,230],1753:[,230],1754:[,230],1755:[,230],1756:[,230],1759:[,230],1760:[,230],1761:[,230],1762:[,230],1763:[,220],1764:[,230],1767:[,230],1768:[,230],1770:[,220],1771:[,230],1772:[,230],1773:[,220]},\n1792:{1809:[,36],1840:[,230],1841:[,220],1842:[,230],1843:[,230],1844:[,220],1845:[,230],1846:[,230],1847:[,220],1848:[,220],1849:[,220],1850:[,230],1851:[,220],1852:[,220],1853:[,230],1854:[,220],1855:[,230],1856:[,230],1857:[,230],1858:[,220],1859:[,230],1860:[,220],1861:[,230],1862:[,220],1863:[,230],1864:[,220],1865:[,230],1866:[,230],2027:[,230],2028:[,230],2029:[,230],2030:[,230],2031:[,230],2032:[,230],2033:[,230],2034:[,220],2035:[,230]},\n2048:{2070:[,230],2071:[,230],2072:[,230],2073:[,230],2075:[,230],2076:[,230],2077:[,230],2078:[,230],2079:[,230],2080:[,230],2081:[,230],2082:[,230],2083:[,230],2085:[,230],2086:[,230],2087:[,230],2089:[,230],2090:[,230],2091:[,230],2092:[,230],2093:[,230],2137:[,220],2138:[,220],2139:[,220],2276:[,230],2277:[,230],2278:[,220],2279:[,230],2280:[,230],2281:[,220],2282:[,230],2283:[,230],2284:[,230],2285:[,220],2286:[,220],2287:[,220],2288:[,27],2289:[,28],2290:[,29],2291:[,230],2292:[,230],2293:[,230],2294:[,220],2295:[,230],2296:[,230],2297:[,220],2298:[,220],2299:[,230],2300:[,230],2301:[,230],2302:[,230],2303:[,230]},\n2304:{2344:[,,{2364:2345}],2345:[[2344,2364]],2352:[,,{2364:2353}],2353:[[2352,2364]],2355:[,,{2364:2356}],2356:[[2355,2364]],2364:[,7],2381:[,9],2385:[,230],2386:[,220],2387:[,230],2388:[,230],2392:[[2325,2364],512],2393:[[2326,2364],512],2394:[[2327,2364],512],2395:[[2332,2364],512],2396:[[2337,2364],512],2397:[[2338,2364],512],2398:[[2347,2364],512],2399:[[2351,2364],512],2492:[,7],2503:[,,{2494:2507,2519:2508}],2507:[[2503,2494]],2508:[[2503,2519]],2509:[,9],2524:[[2465,2492],512],2525:[[2466,2492],512],2527:[[2479,2492],512]},\n2560:{2611:[[2610,2620],512],2614:[[2616,2620],512],2620:[,7],2637:[,9],2649:[[2582,2620],512],2650:[[2583,2620],512],2651:[[2588,2620],512],2654:[[2603,2620],512],2748:[,7],2765:[,9],68109:[,220],68111:[,230],68152:[,230],68153:[,1],68154:[,220],68159:[,9],68325:[,230],68326:[,220]},\n2816:{2876:[,7],2887:[,,{2878:2891,2902:2888,2903:2892}],2888:[[2887,2902]],2891:[[2887,2878]],2892:[[2887,2903]],2893:[,9],2908:[[2849,2876],512],2909:[[2850,2876],512],2962:[,,{3031:2964}],2964:[[2962,3031]],3014:[,,{3006:3018,3031:3020}],3015:[,,{3006:3019}],3018:[[3014,3006]],3019:[[3015,3006]],3020:[[3014,3031]],3021:[,9]},\n3072:{3142:[,,{3158:3144}],3144:[[3142,3158]],3149:[,9],3157:[,84],3158:[,91],3260:[,7],3263:[,,{3285:3264}],3264:[[3263,3285]],3270:[,,{3266:3274,3285:3271,3286:3272}],3271:[[3270,3285]],3272:[[3270,3286]],3274:[[3270,3266],,{3285:3275}],3275:[[3274,3285]],3277:[,9]},\n3328:{3398:[,,{3390:3402,3415:3404}],3399:[,,{3390:3403}],3402:[[3398,3390]],3403:[[3399,3390]],3404:[[3398,3415]],3405:[,9],3530:[,9],3545:[,,{3530:3546,3535:3548,3551:3550}],3546:[[3545,3530]],3548:[[3545,3535],,{3530:3549}],3549:[[3548,3530]],3550:[[3545,3551]]},\n3584:{3635:[[3661,3634],256],3640:[,103],3641:[,103],3642:[,9],3656:[,107],3657:[,107],3658:[,107],3659:[,107],3763:[[3789,3762],256],3768:[,118],3769:[,118],3784:[,122],3785:[,122],3786:[,122],3787:[,122],3804:[[3755,3737],256],3805:[[3755,3745],256]},\n3840:{3852:[[3851],256],3864:[,220],3865:[,220],3893:[,220],3895:[,220],3897:[,216],3907:[[3906,4023],512],3917:[[3916,4023],512],3922:[[3921,4023],512],3927:[[3926,4023],512],3932:[[3931,4023],512],3945:[[3904,4021],512],3953:[,129],3954:[,130],3955:[[3953,3954],512],3956:[,132],3957:[[3953,3956],512],3958:[[4018,3968],512],3959:[[4018,3969],256],3960:[[4019,3968],512],3961:[[4019,3969],256],3962:[,130],3963:[,130],3964:[,130],3965:[,130],3968:[,130],3969:[[3953,3968],512],3970:[,230],3971:[,230],3972:[,9],3974:[,230],3975:[,230],3987:[[3986,4023],512],3997:[[3996,4023],512],4002:[[4001,4023],512],4007:[[4006,4023],512],4012:[[4011,4023],512],4025:[[3984,4021],512],4038:[,220]},\n4096:{4133:[,,{4142:4134}],4134:[[4133,4142]],4151:[,7],4153:[,9],4154:[,9],4237:[,220],4348:[[4316],256],69702:[,9],69759:[,9],69785:[,,{69818:69786}],69786:[[69785,69818]],69787:[,,{69818:69788}],69788:[[69787,69818]],69797:[,,{69818:69803}],69803:[[69797,69818]],69817:[,9],69818:[,7]},\n4352:{69888:[,230],69889:[,230],69890:[,230],69934:[[69937,69927]],69935:[[69938,69927]],69937:[,,{69927:69934}],69938:[,,{69927:69935}],69939:[,9],69940:[,9],70003:[,7],70080:[,9]},\n4608:{70197:[,9],70198:[,7],70377:[,7],70378:[,9]},\n4864:{4957:[,230],4958:[,230],4959:[,230],70460:[,7],70471:[,,{70462:70475,70487:70476}],70475:[[70471,70462]],70476:[[70471,70487]],70477:[,9],70502:[,230],70503:[,230],70504:[,230],70505:[,230],70506:[,230],70507:[,230],70508:[,230],70512:[,230],70513:[,230],70514:[,230],70515:[,230],70516:[,230]},\n5120:{70841:[,,{70832:70844,70842:70843,70845:70846}],70843:[[70841,70842]],70844:[[70841,70832]],70846:[[70841,70845]],70850:[,9],70851:[,7]},\n5376:{71096:[,,{71087:71098}],71097:[,,{71087:71099}],71098:[[71096,71087]],71099:[[71097,71087]],71103:[,9],71104:[,7]},\n5632:{71231:[,9],71350:[,9],71351:[,7]},\n5888:{5908:[,9],5940:[,9],6098:[,9],6109:[,230]},\n6144:{6313:[,228]},\n6400:{6457:[,222],6458:[,230],6459:[,220]},\n6656:{6679:[,230],6680:[,220],6752:[,9],6773:[,230],6774:[,230],6775:[,230],6776:[,230],6777:[,230],6778:[,230],6779:[,230],6780:[,230],6783:[,220],6832:[,230],6833:[,230],6834:[,230],6835:[,230],6836:[,230],6837:[,220],6838:[,220],6839:[,220],6840:[,220],6841:[,220],6842:[,220],6843:[,230],6844:[,230],6845:[,220]},\n6912:{6917:[,,{6965:6918}],6918:[[6917,6965]],6919:[,,{6965:6920}],6920:[[6919,6965]],6921:[,,{6965:6922}],6922:[[6921,6965]],6923:[,,{6965:6924}],6924:[[6923,6965]],6925:[,,{6965:6926}],6926:[[6925,6965]],6929:[,,{6965:6930}],6930:[[6929,6965]],6964:[,7],6970:[,,{6965:6971}],6971:[[6970,6965]],6972:[,,{6965:6973}],6973:[[6972,6965]],6974:[,,{6965:6976}],6975:[,,{6965:6977}],6976:[[6974,6965]],6977:[[6975,6965]],6978:[,,{6965:6979}],6979:[[6978,6965]],6980:[,9],7019:[,230],7020:[,220],7021:[,230],7022:[,230],7023:[,230],7024:[,230],7025:[,230],7026:[,230],7027:[,230],7082:[,9],7083:[,9],7142:[,7],7154:[,9],7155:[,9]},\n7168:{7223:[,7],7376:[,230],7377:[,230],7378:[,230],7380:[,1],7381:[,220],7382:[,220],7383:[,220],7384:[,220],7385:[,220],7386:[,230],7387:[,230],7388:[,220],7389:[,220],7390:[,220],7391:[,220],7392:[,230],7394:[,1],7395:[,1],7396:[,1],7397:[,1],7398:[,1],7399:[,1],7400:[,1],7405:[,220],7412:[,230],7416:[,230],7417:[,230]},\n7424:{7468:[[65],256],7469:[[198],256],7470:[[66],256],7472:[[68],256],7473:[[69],256],7474:[[398],256],7475:[[71],256],7476:[[72],256],7477:[[73],256],7478:[[74],256],7479:[[75],256],7480:[[76],256],7481:[[77],256],7482:[[78],256],7484:[[79],256],7485:[[546],256],7486:[[80],256],7487:[[82],256],7488:[[84],256],7489:[[85],256],7490:[[87],256],7491:[[97],256],7492:[[592],256],7493:[[593],256],7494:[[7426],256],7495:[[98],256],7496:[[100],256],7497:[[101],256],7498:[[601],256],7499:[[603],256],7500:[[604],256],7501:[[103],256],7503:[[107],256],7504:[[109],256],7505:[[331],256],7506:[[111],256],7507:[[596],256],7508:[[7446],256],7509:[[7447],256],7510:[[112],256],7511:[[116],256],7512:[[117],256],7513:[[7453],256],7514:[[623],256],7515:[[118],256],7516:[[7461],256],7517:[[946],256],7518:[[947],256],7519:[[948],256],7520:[[966],256],7521:[[967],256],7522:[[105],256],7523:[[114],256],7524:[[117],256],7525:[[118],256],7526:[[946],256],7527:[[947],256],7528:[[961],256],7529:[[966],256],7530:[[967],256],7544:[[1085],256],7579:[[594],256],7580:[[99],256],7581:[[597],256],7582:[[240],256],7583:[[604],256],7584:[[102],256],7585:[[607],256],7586:[[609],256],7587:[[613],256],7588:[[616],256],7589:[[617],256],7590:[[618],256],7591:[[7547],256],7592:[[669],256],7593:[[621],256],7594:[[7557],256],7595:[[671],256],7596:[[625],256],7597:[[624],256],7598:[[626],256],7599:[[627],256],7600:[[628],256],7601:[[629],256],7602:[[632],256],7603:[[642],256],7604:[[643],256],7605:[[427],256],7606:[[649],256],7607:[[650],256],7608:[[7452],256],7609:[[651],256],7610:[[652],256],7611:[[122],256],7612:[[656],256],7613:[[657],256],7614:[[658],256],7615:[[952],256],7616:[,230],7617:[,230],7618:[,220],7619:[,230],7620:[,230],7621:[,230],7622:[,230],7623:[,230],7624:[,230],7625:[,230],7626:[,220],7627:[,230],7628:[,230],7629:[,234],7630:[,214],7631:[,220],7632:[,202],7633:[,230],7634:[,230],7635:[,230],7636:[,230],7637:[,230],7638:[,230],7639:[,230],7640:[,230],7641:[,230],7642:[,230],7643:[,230],7644:[,230],7645:[,230],7646:[,230],7647:[,230],7648:[,230],7649:[,230],7650:[,230],7651:[,230],7652:[,230],7653:[,230],7654:[,230],7655:[,230],7656:[,230],7657:[,230],7658:[,230],7659:[,230],7660:[,230],7661:[,230],7662:[,230],7663:[,230],7664:[,230],7665:[,230],7666:[,230],7667:[,230],7668:[,230],7669:[,230],7676:[,233],7677:[,220],7678:[,230],7679:[,220]},\n7680:{7680:[[65,805]],7681:[[97,805]],7682:[[66,775]],7683:[[98,775]],7684:[[66,803]],7685:[[98,803]],7686:[[66,817]],7687:[[98,817]],7688:[[199,769]],7689:[[231,769]],7690:[[68,775]],7691:[[100,775]],7692:[[68,803]],7693:[[100,803]],7694:[[68,817]],7695:[[100,817]],7696:[[68,807]],7697:[[100,807]],7698:[[68,813]],7699:[[100,813]],7700:[[274,768]],7701:[[275,768]],7702:[[274,769]],7703:[[275,769]],7704:[[69,813]],7705:[[101,813]],7706:[[69,816]],7707:[[101,816]],7708:[[552,774]],7709:[[553,774]],7710:[[70,775]],7711:[[102,775]],7712:[[71,772]],7713:[[103,772]],7714:[[72,775]],7715:[[104,775]],7716:[[72,803]],7717:[[104,803]],7718:[[72,776]],7719:[[104,776]],7720:[[72,807]],7721:[[104,807]],7722:[[72,814]],7723:[[104,814]],7724:[[73,816]],7725:[[105,816]],7726:[[207,769]],7727:[[239,769]],7728:[[75,769]],7729:[[107,769]],7730:[[75,803]],7731:[[107,803]],7732:[[75,817]],7733:[[107,817]],7734:[[76,803],,{772:7736}],7735:[[108,803],,{772:7737}],7736:[[7734,772]],7737:[[7735,772]],7738:[[76,817]],7739:[[108,817]],7740:[[76,813]],7741:[[108,813]],7742:[[77,769]],7743:[[109,769]],7744:[[77,775]],7745:[[109,775]],7746:[[77,803]],7747:[[109,803]],7748:[[78,775]],7749:[[110,775]],7750:[[78,803]],7751:[[110,803]],7752:[[78,817]],7753:[[110,817]],7754:[[78,813]],7755:[[110,813]],7756:[[213,769]],7757:[[245,769]],7758:[[213,776]],7759:[[245,776]],7760:[[332,768]],7761:[[333,768]],7762:[[332,769]],7763:[[333,769]],7764:[[80,769]],7765:[[112,769]],7766:[[80,775]],7767:[[112,775]],7768:[[82,775]],7769:[[114,775]],7770:[[82,803],,{772:7772}],7771:[[114,803],,{772:7773}],7772:[[7770,772]],7773:[[7771,772]],7774:[[82,817]],7775:[[114,817]],7776:[[83,775]],7777:[[115,775]],7778:[[83,803],,{775:7784}],7779:[[115,803],,{775:7785}],7780:[[346,775]],7781:[[347,775]],7782:[[352,775]],7783:[[353,775]],7784:[[7778,775]],7785:[[7779,775]],7786:[[84,775]],7787:[[116,775]],7788:[[84,803]],7789:[[116,803]],7790:[[84,817]],7791:[[116,817]],7792:[[84,813]],7793:[[116,813]],7794:[[85,804]],7795:[[117,804]],7796:[[85,816]],7797:[[117,816]],7798:[[85,813]],7799:[[117,813]],7800:[[360,769]],7801:[[361,769]],7802:[[362,776]],7803:[[363,776]],7804:[[86,771]],7805:[[118,771]],7806:[[86,803]],7807:[[118,803]],7808:[[87,768]],7809:[[119,768]],7810:[[87,769]],7811:[[119,769]],7812:[[87,776]],7813:[[119,776]],7814:[[87,775]],7815:[[119,775]],7816:[[87,803]],7817:[[119,803]],7818:[[88,775]],7819:[[120,775]],7820:[[88,776]],7821:[[120,776]],7822:[[89,775]],7823:[[121,775]],7824:[[90,770]],7825:[[122,770]],7826:[[90,803]],7827:[[122,803]],7828:[[90,817]],7829:[[122,817]],7830:[[104,817]],7831:[[116,776]],7832:[[119,778]],7833:[[121,778]],7834:[[97,702],256],7835:[[383,775]],7840:[[65,803],,{770:7852,774:7862}],7841:[[97,803],,{770:7853,774:7863}],7842:[[65,777]],7843:[[97,777]],7844:[[194,769]],7845:[[226,769]],7846:[[194,768]],7847:[[226,768]],7848:[[194,777]],7849:[[226,777]],7850:[[194,771]],7851:[[226,771]],7852:[[7840,770]],7853:[[7841,770]],7854:[[258,769]],7855:[[259,769]],7856:[[258,768]],7857:[[259,768]],7858:[[258,777]],7859:[[259,777]],7860:[[258,771]],7861:[[259,771]],7862:[[7840,774]],7863:[[7841,774]],7864:[[69,803],,{770:7878}],7865:[[101,803],,{770:7879}],7866:[[69,777]],7867:[[101,777]],7868:[[69,771]],7869:[[101,771]],7870:[[202,769]],7871:[[234,769]],7872:[[202,768]],7873:[[234,768]],7874:[[202,777]],7875:[[234,777]],7876:[[202,771]],7877:[[234,771]],7878:[[7864,770]],7879:[[7865,770]],7880:[[73,777]],7881:[[105,777]],7882:[[73,803]],7883:[[105,803]],7884:[[79,803],,{770:7896}],7885:[[111,803],,{770:7897}],7886:[[79,777]],7887:[[111,777]],7888:[[212,769]],7889:[[244,769]],7890:[[212,768]],7891:[[244,768]],7892:[[212,777]],7893:[[244,777]],7894:[[212,771]],7895:[[244,771]],7896:[[7884,770]],7897:[[7885,770]],7898:[[416,769]],7899:[[417,769]],7900:[[416,768]],7901:[[417,768]],7902:[[416,777]],7903:[[417,777]],7904:[[416,771]],7905:[[417,771]],7906:[[416,803]],7907:[[417,803]],7908:[[85,803]],7909:[[117,803]],7910:[[85,777]],7911:[[117,777]],7912:[[431,769]],7913:[[432,769]],7914:[[431,768]],7915:[[432,768]],7916:[[431,777]],7917:[[432,777]],7918:[[431,771]],7919:[[432,771]],7920:[[431,803]],7921:[[432,803]],7922:[[89,768]],7923:[[121,768]],7924:[[89,803]],7925:[[121,803]],7926:[[89,777]],7927:[[121,777]],7928:[[89,771]],7929:[[121,771]]},\n7936:{7936:[[945,787],,{768:7938,769:7940,834:7942,837:8064}],7937:[[945,788],,{768:7939,769:7941,834:7943,837:8065}],7938:[[7936,768],,{837:8066}],7939:[[7937,768],,{837:8067}],7940:[[7936,769],,{837:8068}],7941:[[7937,769],,{837:8069}],7942:[[7936,834],,{837:8070}],7943:[[7937,834],,{837:8071}],7944:[[913,787],,{768:7946,769:7948,834:7950,837:8072}],7945:[[913,788],,{768:7947,769:7949,834:7951,837:8073}],7946:[[7944,768],,{837:8074}],7947:[[7945,768],,{837:8075}],7948:[[7944,769],,{837:8076}],7949:[[7945,769],,{837:8077}],7950:[[7944,834],,{837:8078}],7951:[[7945,834],,{837:8079}],7952:[[949,787],,{768:7954,769:7956}],7953:[[949,788],,{768:7955,769:7957}],7954:[[7952,768]],7955:[[7953,768]],7956:[[7952,769]],7957:[[7953,769]],7960:[[917,787],,{768:7962,769:7964}],7961:[[917,788],,{768:7963,769:7965}],7962:[[7960,768]],7963:[[7961,768]],7964:[[7960,769]],7965:[[7961,769]],7968:[[951,787],,{768:7970,769:7972,834:7974,837:8080}],7969:[[951,788],,{768:7971,769:7973,834:7975,837:8081}],7970:[[7968,768],,{837:8082}],7971:[[7969,768],,{837:8083}],7972:[[7968,769],,{837:8084}],7973:[[7969,769],,{837:8085}],7974:[[7968,834],,{837:8086}],7975:[[7969,834],,{837:8087}],7976:[[919,787],,{768:7978,769:7980,834:7982,837:8088}],7977:[[919,788],,{768:7979,769:7981,834:7983,837:8089}],7978:[[7976,768],,{837:8090}],7979:[[7977,768],,{837:8091}],7980:[[7976,769],,{837:8092}],7981:[[7977,769],,{837:8093}],7982:[[7976,834],,{837:8094}],7983:[[7977,834],,{837:8095}],7984:[[953,787],,{768:7986,769:7988,834:7990}],7985:[[953,788],,{768:7987,769:7989,834:7991}],7986:[[7984,768]],7987:[[7985,768]],7988:[[7984,769]],7989:[[7985,769]],7990:[[7984,834]],7991:[[7985,834]],7992:[[921,787],,{768:7994,769:7996,834:7998}],7993:[[921,788],,{768:7995,769:7997,834:7999}],7994:[[7992,768]],7995:[[7993,768]],7996:[[7992,769]],7997:[[7993,769]],7998:[[7992,834]],7999:[[7993,834]],8000:[[959,787],,{768:8002,769:8004}],8001:[[959,788],,{768:8003,769:8005}],8002:[[8000,768]],8003:[[8001,768]],8004:[[8000,769]],8005:[[8001,769]],8008:[[927,787],,{768:8010,769:8012}],8009:[[927,788],,{768:8011,769:8013}],8010:[[8008,768]],8011:[[8009,768]],8012:[[8008,769]],8013:[[8009,769]],8016:[[965,787],,{768:8018,769:8020,834:8022}],8017:[[965,788],,{768:8019,769:8021,834:8023}],8018:[[8016,768]],8019:[[8017,768]],8020:[[8016,769]],8021:[[8017,769]],8022:[[8016,834]],8023:[[8017,834]],8025:[[933,788],,{768:8027,769:8029,834:8031}],8027:[[8025,768]],8029:[[8025,769]],8031:[[8025,834]],8032:[[969,787],,{768:8034,769:8036,834:8038,837:8096}],8033:[[969,788],,{768:8035,769:8037,834:8039,837:8097}],8034:[[8032,768],,{837:8098}],8035:[[8033,768],,{837:8099}],8036:[[8032,769],,{837:8100}],8037:[[8033,769],,{837:8101}],8038:[[8032,834],,{837:8102}],8039:[[8033,834],,{837:8103}],8040:[[937,787],,{768:8042,769:8044,834:8046,837:8104}],8041:[[937,788],,{768:8043,769:8045,834:8047,837:8105}],8042:[[8040,768],,{837:8106}],8043:[[8041,768],,{837:8107}],8044:[[8040,769],,{837:8108}],8045:[[8041,769],,{837:8109}],8046:[[8040,834],,{837:8110}],8047:[[8041,834],,{837:8111}],8048:[[945,768],,{837:8114}],8049:[[940]],8050:[[949,768]],8051:[[941]],8052:[[951,768],,{837:8130}],8053:[[942]],8054:[[953,768]],8055:[[943]],8056:[[959,768]],8057:[[972]],8058:[[965,768]],8059:[[973]],8060:[[969,768],,{837:8178}],8061:[[974]],8064:[[7936,837]],8065:[[7937,837]],8066:[[7938,837]],8067:[[7939,837]],8068:[[7940,837]],8069:[[7941,837]],8070:[[7942,837]],8071:[[7943,837]],8072:[[7944,837]],8073:[[7945,837]],8074:[[7946,837]],8075:[[7947,837]],8076:[[7948,837]],8077:[[7949,837]],8078:[[7950,837]],8079:[[7951,837]],8080:[[7968,837]],8081:[[7969,837]],8082:[[7970,837]],8083:[[7971,837]],8084:[[7972,837]],8085:[[7973,837]],8086:[[7974,837]],8087:[[7975,837]],8088:[[7976,837]],8089:[[7977,837]],8090:[[7978,837]],8091:[[7979,837]],8092:[[7980,837]],8093:[[7981,837]],8094:[[7982,837]],8095:[[7983,837]],8096:[[8032,837]],8097:[[8033,837]],8098:[[8034,837]],8099:[[8035,837]],8100:[[8036,837]],8101:[[8037,837]],8102:[[8038,837]],8103:[[8039,837]],8104:[[8040,837]],8105:[[8041,837]],8106:[[8042,837]],8107:[[8043,837]],8108:[[8044,837]],8109:[[8045,837]],8110:[[8046,837]],8111:[[8047,837]],8112:[[945,774]],8113:[[945,772]],8114:[[8048,837]],8115:[[945,837]],8116:[[940,837]],8118:[[945,834],,{837:8119}],8119:[[8118,837]],8120:[[913,774]],8121:[[913,772]],8122:[[913,768]],8123:[[902]],8124:[[913,837]],8125:[[32,787],256],8126:[[953]],8127:[[32,787],256,{768:8141,769:8142,834:8143}],8128:[[32,834],256],8129:[[168,834]],8130:[[8052,837]],8131:[[951,837]],8132:[[942,837]],8134:[[951,834],,{837:8135}],8135:[[8134,837]],8136:[[917,768]],8137:[[904]],8138:[[919,768]],8139:[[905]],8140:[[919,837]],8141:[[8127,768]],8142:[[8127,769]],8143:[[8127,834]],8144:[[953,774]],8145:[[953,772]],8146:[[970,768]],8147:[[912]],8150:[[953,834]],8151:[[970,834]],8152:[[921,774]],8153:[[921,772]],8154:[[921,768]],8155:[[906]],8157:[[8190,768]],8158:[[8190,769]],8159:[[8190,834]],8160:[[965,774]],8161:[[965,772]],8162:[[971,768]],8163:[[944]],8164:[[961,787]],8165:[[961,788]],8166:[[965,834]],8167:[[971,834]],8168:[[933,774]],8169:[[933,772]],8170:[[933,768]],8171:[[910]],8172:[[929,788]],8173:[[168,768]],8174:[[901]],8175:[[96]],8178:[[8060,837]],8179:[[969,837]],8180:[[974,837]],8182:[[969,834],,{837:8183}],8183:[[8182,837]],8184:[[927,768]],8185:[[908]],8186:[[937,768]],8187:[[911]],8188:[[937,837]],8189:[[180]],8190:[[32,788],256,{768:8157,769:8158,834:8159}]},\n8192:{8192:[[8194]],8193:[[8195]],8194:[[32],256],8195:[[32],256],8196:[[32],256],8197:[[32],256],8198:[[32],256],8199:[[32],256],8200:[[32],256],8201:[[32],256],8202:[[32],256],8209:[[8208],256],8215:[[32,819],256],8228:[[46],256],8229:[[46,46],256],8230:[[46,46,46],256],8239:[[32],256],8243:[[8242,8242],256],8244:[[8242,8242,8242],256],8246:[[8245,8245],256],8247:[[8245,8245,8245],256],8252:[[33,33],256],8254:[[32,773],256],8263:[[63,63],256],8264:[[63,33],256],8265:[[33,63],256],8279:[[8242,8242,8242,8242],256],8287:[[32],256],8304:[[48],256],8305:[[105],256],8308:[[52],256],8309:[[53],256],8310:[[54],256],8311:[[55],256],8312:[[56],256],8313:[[57],256],8314:[[43],256],8315:[[8722],256],8316:[[61],256],8317:[[40],256],8318:[[41],256],8319:[[110],256],8320:[[48],256],8321:[[49],256],8322:[[50],256],8323:[[51],256],8324:[[52],256],8325:[[53],256],8326:[[54],256],8327:[[55],256],8328:[[56],256],8329:[[57],256],8330:[[43],256],8331:[[8722],256],8332:[[61],256],8333:[[40],256],8334:[[41],256],8336:[[97],256],8337:[[101],256],8338:[[111],256],8339:[[120],256],8340:[[601],256],8341:[[104],256],8342:[[107],256],8343:[[108],256],8344:[[109],256],8345:[[110],256],8346:[[112],256],8347:[[115],256],8348:[[116],256],8360:[[82,115],256],8400:[,230],8401:[,230],8402:[,1],8403:[,1],8404:[,230],8405:[,230],8406:[,230],8407:[,230],8408:[,1],8409:[,1],8410:[,1],8411:[,230],8412:[,230],8417:[,230],8421:[,1],8422:[,1],8423:[,230],8424:[,220],8425:[,230],8426:[,1],8427:[,1],8428:[,220],8429:[,220],8430:[,220],8431:[,220],8432:[,230]},\n8448:{8448:[[97,47,99],256],8449:[[97,47,115],256],8450:[[67],256],8451:[[176,67],256],8453:[[99,47,111],256],8454:[[99,47,117],256],8455:[[400],256],8457:[[176,70],256],8458:[[103],256],8459:[[72],256],8460:[[72],256],8461:[[72],256],8462:[[104],256],8463:[[295],256],8464:[[73],256],8465:[[73],256],8466:[[76],256],8467:[[108],256],8469:[[78],256],8470:[[78,111],256],8473:[[80],256],8474:[[81],256],8475:[[82],256],8476:[[82],256],8477:[[82],256],8480:[[83,77],256],8481:[[84,69,76],256],8482:[[84,77],256],8484:[[90],256],8486:[[937]],8488:[[90],256],8490:[[75]],8491:[[197]],8492:[[66],256],8493:[[67],256],8495:[[101],256],8496:[[69],256],8497:[[70],256],8499:[[77],256],8500:[[111],256],8501:[[1488],256],8502:[[1489],256],8503:[[1490],256],8504:[[1491],256],8505:[[105],256],8507:[[70,65,88],256],8508:[[960],256],8509:[[947],256],8510:[[915],256],8511:[[928],256],8512:[[8721],256],8517:[[68],256],8518:[[100],256],8519:[[101],256],8520:[[105],256],8521:[[106],256],8528:[[49,8260,55],256],8529:[[49,8260,57],256],8530:[[49,8260,49,48],256],8531:[[49,8260,51],256],8532:[[50,8260,51],256],8533:[[49,8260,53],256],8534:[[50,8260,53],256],8535:[[51,8260,53],256],8536:[[52,8260,53],256],8537:[[49,8260,54],256],8538:[[53,8260,54],256],8539:[[49,8260,56],256],8540:[[51,8260,56],256],8541:[[53,8260,56],256],8542:[[55,8260,56],256],8543:[[49,8260],256],8544:[[73],256],8545:[[73,73],256],8546:[[73,73,73],256],8547:[[73,86],256],8548:[[86],256],8549:[[86,73],256],8550:[[86,73,73],256],8551:[[86,73,73,73],256],8552:[[73,88],256],8553:[[88],256],8554:[[88,73],256],8555:[[88,73,73],256],8556:[[76],256],8557:[[67],256],8558:[[68],256],8559:[[77],256],8560:[[105],256],8561:[[105,105],256],8562:[[105,105,105],256],8563:[[105,118],256],8564:[[118],256],8565:[[118,105],256],8566:[[118,105,105],256],8567:[[118,105,105,105],256],8568:[[105,120],256],8569:[[120],256],8570:[[120,105],256],8571:[[120,105,105],256],8572:[[108],256],8573:[[99],256],8574:[[100],256],8575:[[109],256],8585:[[48,8260,51],256],8592:[,,{824:8602}],8594:[,,{824:8603}],8596:[,,{824:8622}],8602:[[8592,824]],8603:[[8594,824]],8622:[[8596,824]],8653:[[8656,824]],8654:[[8660,824]],8655:[[8658,824]],8656:[,,{824:8653}],8658:[,,{824:8655}],8660:[,,{824:8654}]},\n8704:{8707:[,,{824:8708}],8708:[[8707,824]],8712:[,,{824:8713}],8713:[[8712,824]],8715:[,,{824:8716}],8716:[[8715,824]],8739:[,,{824:8740}],8740:[[8739,824]],8741:[,,{824:8742}],8742:[[8741,824]],8748:[[8747,8747],256],8749:[[8747,8747,8747],256],8751:[[8750,8750],256],8752:[[8750,8750,8750],256],8764:[,,{824:8769}],8769:[[8764,824]],8771:[,,{824:8772}],8772:[[8771,824]],8773:[,,{824:8775}],8775:[[8773,824]],8776:[,,{824:8777}],8777:[[8776,824]],8781:[,,{824:8813}],8800:[[61,824]],8801:[,,{824:8802}],8802:[[8801,824]],8804:[,,{824:8816}],8805:[,,{824:8817}],8813:[[8781,824]],8814:[[60,824]],8815:[[62,824]],8816:[[8804,824]],8817:[[8805,824]],8818:[,,{824:8820}],8819:[,,{824:8821}],8820:[[8818,824]],8821:[[8819,824]],8822:[,,{824:8824}],8823:[,,{824:8825}],8824:[[8822,824]],8825:[[8823,824]],8826:[,,{824:8832}],8827:[,,{824:8833}],8828:[,,{824:8928}],8829:[,,{824:8929}],8832:[[8826,824]],8833:[[8827,824]],8834:[,,{824:8836}],8835:[,,{824:8837}],8836:[[8834,824]],8837:[[8835,824]],8838:[,,{824:8840}],8839:[,,{824:8841}],8840:[[8838,824]],8841:[[8839,824]],8849:[,,{824:8930}],8850:[,,{824:8931}],8866:[,,{824:8876}],8872:[,,{824:8877}],8873:[,,{824:8878}],8875:[,,{824:8879}],8876:[[8866,824]],8877:[[8872,824]],8878:[[8873,824]],8879:[[8875,824]],8882:[,,{824:8938}],8883:[,,{824:8939}],8884:[,,{824:8940}],8885:[,,{824:8941}],8928:[[8828,824]],8929:[[8829,824]],8930:[[8849,824]],8931:[[8850,824]],8938:[[8882,824]],8939:[[8883,824]],8940:[[8884,824]],8941:[[8885,824]]},\n8960:{9001:[[12296]],9002:[[12297]]},\n9216:{9312:[[49],256],9313:[[50],256],9314:[[51],256],9315:[[52],256],9316:[[53],256],9317:[[54],256],9318:[[55],256],9319:[[56],256],9320:[[57],256],9321:[[49,48],256],9322:[[49,49],256],9323:[[49,50],256],9324:[[49,51],256],9325:[[49,52],256],9326:[[49,53],256],9327:[[49,54],256],9328:[[49,55],256],9329:[[49,56],256],9330:[[49,57],256],9331:[[50,48],256],9332:[[40,49,41],256],9333:[[40,50,41],256],9334:[[40,51,41],256],9335:[[40,52,41],256],9336:[[40,53,41],256],9337:[[40,54,41],256],9338:[[40,55,41],256],9339:[[40,56,41],256],9340:[[40,57,41],256],9341:[[40,49,48,41],256],9342:[[40,49,49,41],256],9343:[[40,49,50,41],256],9344:[[40,49,51,41],256],9345:[[40,49,52,41],256],9346:[[40,49,53,41],256],9347:[[40,49,54,41],256],9348:[[40,49,55,41],256],9349:[[40,49,56,41],256],9350:[[40,49,57,41],256],9351:[[40,50,48,41],256],9352:[[49,46],256],9353:[[50,46],256],9354:[[51,46],256],9355:[[52,46],256],9356:[[53,46],256],9357:[[54,46],256],9358:[[55,46],256],9359:[[56,46],256],9360:[[57,46],256],9361:[[49,48,46],256],9362:[[49,49,46],256],9363:[[49,50,46],256],9364:[[49,51,46],256],9365:[[49,52,46],256],9366:[[49,53,46],256],9367:[[49,54,46],256],9368:[[49,55,46],256],9369:[[49,56,46],256],9370:[[49,57,46],256],9371:[[50,48,46],256],9372:[[40,97,41],256],9373:[[40,98,41],256],9374:[[40,99,41],256],9375:[[40,100,41],256],9376:[[40,101,41],256],9377:[[40,102,41],256],9378:[[40,103,41],256],9379:[[40,104,41],256],9380:[[40,105,41],256],9381:[[40,106,41],256],9382:[[40,107,41],256],9383:[[40,108,41],256],9384:[[40,109,41],256],9385:[[40,110,41],256],9386:[[40,111,41],256],9387:[[40,112,41],256],9388:[[40,113,41],256],9389:[[40,114,41],256],9390:[[40,115,41],256],9391:[[40,116,41],256],9392:[[40,117,41],256],9393:[[40,118,41],256],9394:[[40,119,41],256],9395:[[40,120,41],256],9396:[[40,121,41],256],9397:[[40,122,41],256],9398:[[65],256],9399:[[66],256],9400:[[67],256],9401:[[68],256],9402:[[69],256],9403:[[70],256],9404:[[71],256],9405:[[72],256],9406:[[73],256],9407:[[74],256],9408:[[75],256],9409:[[76],256],9410:[[77],256],9411:[[78],256],9412:[[79],256],9413:[[80],256],9414:[[81],256],9415:[[82],256],9416:[[83],256],9417:[[84],256],9418:[[85],256],9419:[[86],256],9420:[[87],256],9421:[[88],256],9422:[[89],256],9423:[[90],256],9424:[[97],256],9425:[[98],256],9426:[[99],256],9427:[[100],256],9428:[[101],256],9429:[[102],256],9430:[[103],256],9431:[[104],256],9432:[[105],256],9433:[[106],256],9434:[[107],256],9435:[[108],256],9436:[[109],256],9437:[[110],256],9438:[[111],256],9439:[[112],256],9440:[[113],256],9441:[[114],256],9442:[[115],256],9443:[[116],256],9444:[[117],256],9445:[[118],256],9446:[[119],256],9447:[[120],256],9448:[[121],256],9449:[[122],256],9450:[[48],256]},\n10752:{10764:[[8747,8747,8747,8747],256],10868:[[58,58,61],256],10869:[[61,61],256],10870:[[61,61,61],256],10972:[[10973,824],512]},\n11264:{11388:[[106],256],11389:[[86],256],11503:[,230],11504:[,230],11505:[,230]},\n11520:{11631:[[11617],256],11647:[,9],11744:[,230],11745:[,230],11746:[,230],11747:[,230],11748:[,230],11749:[,230],11750:[,230],11751:[,230],11752:[,230],11753:[,230],11754:[,230],11755:[,230],11756:[,230],11757:[,230],11758:[,230],11759:[,230],11760:[,230],11761:[,230],11762:[,230],11763:[,230],11764:[,230],11765:[,230],11766:[,230],11767:[,230],11768:[,230],11769:[,230],11770:[,230],11771:[,230],11772:[,230],11773:[,230],11774:[,230],11775:[,230]},\n11776:{11935:[[27597],256],12019:[[40863],256]},\n12032:{12032:[[19968],256],12033:[[20008],256],12034:[[20022],256],12035:[[20031],256],12036:[[20057],256],12037:[[20101],256],12038:[[20108],256],12039:[[20128],256],12040:[[20154],256],12041:[[20799],256],12042:[[20837],256],12043:[[20843],256],12044:[[20866],256],12045:[[20886],256],12046:[[20907],256],12047:[[20960],256],12048:[[20981],256],12049:[[20992],256],12050:[[21147],256],12051:[[21241],256],12052:[[21269],256],12053:[[21274],256],12054:[[21304],256],12055:[[21313],256],12056:[[21340],256],12057:[[21353],256],12058:[[21378],256],12059:[[21430],256],12060:[[21448],256],12061:[[21475],256],12062:[[22231],256],12063:[[22303],256],12064:[[22763],256],12065:[[22786],256],12066:[[22794],256],12067:[[22805],256],12068:[[22823],256],12069:[[22899],256],12070:[[23376],256],12071:[[23424],256],12072:[[23544],256],12073:[[23567],256],12074:[[23586],256],12075:[[23608],256],12076:[[23662],256],12077:[[23665],256],12078:[[24027],256],12079:[[24037],256],12080:[[24049],256],12081:[[24062],256],12082:[[24178],256],12083:[[24186],256],12084:[[24191],256],12085:[[24308],256],12086:[[24318],256],12087:[[24331],256],12088:[[24339],256],12089:[[24400],256],12090:[[24417],256],12091:[[24435],256],12092:[[24515],256],12093:[[25096],256],12094:[[25142],256],12095:[[25163],256],12096:[[25903],256],12097:[[25908],256],12098:[[25991],256],12099:[[26007],256],12100:[[26020],256],12101:[[26041],256],12102:[[26080],256],12103:[[26085],256],12104:[[26352],256],12105:[[26376],256],12106:[[26408],256],12107:[[27424],256],12108:[[27490],256],12109:[[27513],256],12110:[[27571],256],12111:[[27595],256],12112:[[27604],256],12113:[[27611],256],12114:[[27663],256],12115:[[27668],256],12116:[[27700],256],12117:[[28779],256],12118:[[29226],256],12119:[[29238],256],12120:[[29243],256],12121:[[29247],256],12122:[[29255],256],12123:[[29273],256],12124:[[29275],256],12125:[[29356],256],12126:[[29572],256],12127:[[29577],256],12128:[[29916],256],12129:[[29926],256],12130:[[29976],256],12131:[[29983],256],12132:[[29992],256],12133:[[30000],256],12134:[[30091],256],12135:[[30098],256],12136:[[30326],256],12137:[[30333],256],12138:[[30382],256],12139:[[30399],256],12140:[[30446],256],12141:[[30683],256],12142:[[30690],256],12143:[[30707],256],12144:[[31034],256],12145:[[31160],256],12146:[[31166],256],12147:[[31348],256],12148:[[31435],256],12149:[[31481],256],12150:[[31859],256],12151:[[31992],256],12152:[[32566],256],12153:[[32593],256],12154:[[32650],256],12155:[[32701],256],12156:[[32769],256],12157:[[32780],256],12158:[[32786],256],12159:[[32819],256],12160:[[32895],256],12161:[[32905],256],12162:[[33251],256],12163:[[33258],256],12164:[[33267],256],12165:[[33276],256],12166:[[33292],256],12167:[[33307],256],12168:[[33311],256],12169:[[33390],256],12170:[[33394],256],12171:[[33400],256],12172:[[34381],256],12173:[[34411],256],12174:[[34880],256],12175:[[34892],256],12176:[[34915],256],12177:[[35198],256],12178:[[35211],256],12179:[[35282],256],12180:[[35328],256],12181:[[35895],256],12182:[[35910],256],12183:[[35925],256],12184:[[35960],256],12185:[[35997],256],12186:[[36196],256],12187:[[36208],256],12188:[[36275],256],12189:[[36523],256],12190:[[36554],256],12191:[[36763],256],12192:[[36784],256],12193:[[36789],256],12194:[[37009],256],12195:[[37193],256],12196:[[37318],256],12197:[[37324],256],12198:[[37329],256],12199:[[38263],256],12200:[[38272],256],12201:[[38428],256],12202:[[38582],256],12203:[[38585],256],12204:[[38632],256],12205:[[38737],256],12206:[[38750],256],12207:[[38754],256],12208:[[38761],256],12209:[[38859],256],12210:[[38893],256],12211:[[38899],256],12212:[[38913],256],12213:[[39080],256],12214:[[39131],256],12215:[[39135],256],12216:[[39318],256],12217:[[39321],256],12218:[[39340],256],12219:[[39592],256],12220:[[39640],256],12221:[[39647],256],12222:[[39717],256],12223:[[39727],256],12224:[[39730],256],12225:[[39740],256],12226:[[39770],256],12227:[[40165],256],12228:[[40565],256],12229:[[40575],256],12230:[[40613],256],12231:[[40635],256],12232:[[40643],256],12233:[[40653],256],12234:[[40657],256],12235:[[40697],256],12236:[[40701],256],12237:[[40718],256],12238:[[40723],256],12239:[[40736],256],12240:[[40763],256],12241:[[40778],256],12242:[[40786],256],12243:[[40845],256],12244:[[40860],256],12245:[[40864],256]},\n12288:{12288:[[32],256],12330:[,218],12331:[,228],12332:[,232],12333:[,222],12334:[,224],12335:[,224],12342:[[12306],256],12344:[[21313],256],12345:[[21316],256],12346:[[21317],256],12358:[,,{12441:12436}],12363:[,,{12441:12364}],12364:[[12363,12441]],12365:[,,{12441:12366}],12366:[[12365,12441]],12367:[,,{12441:12368}],12368:[[12367,12441]],12369:[,,{12441:12370}],12370:[[12369,12441]],12371:[,,{12441:12372}],12372:[[12371,12441]],12373:[,,{12441:12374}],12374:[[12373,12441]],12375:[,,{12441:12376}],12376:[[12375,12441]],12377:[,,{12441:12378}],12378:[[12377,12441]],12379:[,,{12441:12380}],12380:[[12379,12441]],12381:[,,{12441:12382}],12382:[[12381,12441]],12383:[,,{12441:12384}],12384:[[12383,12441]],12385:[,,{12441:12386}],12386:[[12385,12441]],12388:[,,{12441:12389}],12389:[[12388,12441]],12390:[,,{12441:12391}],12391:[[12390,12441]],12392:[,,{12441:12393}],12393:[[12392,12441]],12399:[,,{12441:12400,12442:12401}],12400:[[12399,12441]],12401:[[12399,12442]],12402:[,,{12441:12403,12442:12404}],12403:[[12402,12441]],12404:[[12402,12442]],12405:[,,{12441:12406,12442:12407}],12406:[[12405,12441]],12407:[[12405,12442]],12408:[,,{12441:12409,12442:12410}],12409:[[12408,12441]],12410:[[12408,12442]],12411:[,,{12441:12412,12442:12413}],12412:[[12411,12441]],12413:[[12411,12442]],12436:[[12358,12441]],12441:[,8],12442:[,8],12443:[[32,12441],256],12444:[[32,12442],256],12445:[,,{12441:12446}],12446:[[12445,12441]],12447:[[12424,12426],256],12454:[,,{12441:12532}],12459:[,,{12441:12460}],12460:[[12459,12441]],12461:[,,{12441:12462}],12462:[[12461,12441]],12463:[,,{12441:12464}],12464:[[12463,12441]],12465:[,,{12441:12466}],12466:[[12465,12441]],12467:[,,{12441:12468}],12468:[[12467,12441]],12469:[,,{12441:12470}],12470:[[12469,12441]],12471:[,,{12441:12472}],12472:[[12471,12441]],12473:[,,{12441:12474}],12474:[[12473,12441]],12475:[,,{12441:12476}],12476:[[12475,12441]],12477:[,,{12441:12478}],12478:[[12477,12441]],12479:[,,{12441:12480}],12480:[[12479,12441]],12481:[,,{12441:12482}],12482:[[12481,12441]],12484:[,,{12441:12485}],12485:[[12484,12441]],12486:[,,{12441:12487}],12487:[[12486,12441]],12488:[,,{12441:12489}],12489:[[12488,12441]],12495:[,,{12441:12496,12442:12497}],12496:[[12495,12441]],12497:[[12495,12442]],12498:[,,{12441:12499,12442:12500}],12499:[[12498,12441]],12500:[[12498,12442]],12501:[,,{12441:12502,12442:12503}],12502:[[12501,12441]],12503:[[12501,12442]],12504:[,,{12441:12505,12442:12506}],12505:[[12504,12441]],12506:[[12504,12442]],12507:[,,{12441:12508,12442:12509}],12508:[[12507,12441]],12509:[[12507,12442]],12527:[,,{12441:12535}],12528:[,,{12441:12536}],12529:[,,{12441:12537}],12530:[,,{12441:12538}],12532:[[12454,12441]],12535:[[12527,12441]],12536:[[12528,12441]],12537:[[12529,12441]],12538:[[12530,12441]],12541:[,,{12441:12542}],12542:[[12541,12441]],12543:[[12467,12488],256]},\n12544:{12593:[[4352],256],12594:[[4353],256],12595:[[4522],256],12596:[[4354],256],12597:[[4524],256],12598:[[4525],256],12599:[[4355],256],12600:[[4356],256],12601:[[4357],256],12602:[[4528],256],12603:[[4529],256],12604:[[4530],256],12605:[[4531],256],12606:[[4532],256],12607:[[4533],256],12608:[[4378],256],12609:[[4358],256],12610:[[4359],256],12611:[[4360],256],12612:[[4385],256],12613:[[4361],256],12614:[[4362],256],12615:[[4363],256],12616:[[4364],256],12617:[[4365],256],12618:[[4366],256],12619:[[4367],256],12620:[[4368],256],12621:[[4369],256],12622:[[4370],256],12623:[[4449],256],12624:[[4450],256],12625:[[4451],256],12626:[[4452],256],12627:[[4453],256],12628:[[4454],256],12629:[[4455],256],12630:[[4456],256],12631:[[4457],256],12632:[[4458],256],12633:[[4459],256],12634:[[4460],256],12635:[[4461],256],12636:[[4462],256],12637:[[4463],256],12638:[[4464],256],12639:[[4465],256],12640:[[4466],256],12641:[[4467],256],12642:[[4468],256],12643:[[4469],256],12644:[[4448],256],12645:[[4372],256],12646:[[4373],256],12647:[[4551],256],12648:[[4552],256],12649:[[4556],256],12650:[[4558],256],12651:[[4563],256],12652:[[4567],256],12653:[[4569],256],12654:[[4380],256],12655:[[4573],256],12656:[[4575],256],12657:[[4381],256],12658:[[4382],256],12659:[[4384],256],12660:[[4386],256],12661:[[4387],256],12662:[[4391],256],12663:[[4393],256],12664:[[4395],256],12665:[[4396],256],12666:[[4397],256],12667:[[4398],256],12668:[[4399],256],12669:[[4402],256],12670:[[4406],256],12671:[[4416],256],12672:[[4423],256],12673:[[4428],256],12674:[[4593],256],12675:[[4594],256],12676:[[4439],256],12677:[[4440],256],12678:[[4441],256],12679:[[4484],256],12680:[[4485],256],12681:[[4488],256],12682:[[4497],256],12683:[[4498],256],12684:[[4500],256],12685:[[4510],256],12686:[[4513],256],12690:[[19968],256],12691:[[20108],256],12692:[[19977],256],12693:[[22235],256],12694:[[19978],256],12695:[[20013],256],12696:[[19979],256],12697:[[30002],256],12698:[[20057],256],12699:[[19993],256],12700:[[19969],256],12701:[[22825],256],12702:[[22320],256],12703:[[20154],256]},\n12800:{12800:[[40,4352,41],256],12801:[[40,4354,41],256],12802:[[40,4355,41],256],12803:[[40,4357,41],256],12804:[[40,4358,41],256],12805:[[40,4359,41],256],12806:[[40,4361,41],256],12807:[[40,4363,41],256],12808:[[40,4364,41],256],12809:[[40,4366,41],256],12810:[[40,4367,41],256],12811:[[40,4368,41],256],12812:[[40,4369,41],256],12813:[[40,4370,41],256],12814:[[40,4352,4449,41],256],12815:[[40,4354,4449,41],256],12816:[[40,4355,4449,41],256],12817:[[40,4357,4449,41],256],12818:[[40,4358,4449,41],256],12819:[[40,4359,4449,41],256],12820:[[40,4361,4449,41],256],12821:[[40,4363,4449,41],256],12822:[[40,4364,4449,41],256],12823:[[40,4366,4449,41],256],12824:[[40,4367,4449,41],256],12825:[[40,4368,4449,41],256],12826:[[40,4369,4449,41],256],12827:[[40,4370,4449,41],256],12828:[[40,4364,4462,41],256],12829:[[40,4363,4457,4364,4453,4523,41],256],12830:[[40,4363,4457,4370,4462,41],256],12832:[[40,19968,41],256],12833:[[40,20108,41],256],12834:[[40,19977,41],256],12835:[[40,22235,41],256],12836:[[40,20116,41],256],12837:[[40,20845,41],256],12838:[[40,19971,41],256],12839:[[40,20843,41],256],12840:[[40,20061,41],256],12841:[[40,21313,41],256],12842:[[40,26376,41],256],12843:[[40,28779,41],256],12844:[[40,27700,41],256],12845:[[40,26408,41],256],12846:[[40,37329,41],256],12847:[[40,22303,41],256],12848:[[40,26085,41],256],12849:[[40,26666,41],256],12850:[[40,26377,41],256],12851:[[40,31038,41],256],12852:[[40,21517,41],256],12853:[[40,29305,41],256],12854:[[40,36001,41],256],12855:[[40,31069,41],256],12856:[[40,21172,41],256],12857:[[40,20195,41],256],12858:[[40,21628,41],256],12859:[[40,23398,41],256],12860:[[40,30435,41],256],12861:[[40,20225,41],256],12862:[[40,36039,41],256],12863:[[40,21332,41],256],12864:[[40,31085,41],256],12865:[[40,20241,41],256],12866:[[40,33258,41],256],12867:[[40,33267,41],256],12868:[[21839],256],12869:[[24188],256],12870:[[25991],256],12871:[[31631],256],12880:[[80,84,69],256],12881:[[50,49],256],12882:[[50,50],256],12883:[[50,51],256],12884:[[50,52],256],12885:[[50,53],256],12886:[[50,54],256],12887:[[50,55],256],12888:[[50,56],256],12889:[[50,57],256],12890:[[51,48],256],12891:[[51,49],256],12892:[[51,50],256],12893:[[51,51],256],12894:[[51,52],256],12895:[[51,53],256],12896:[[4352],256],12897:[[4354],256],12898:[[4355],256],12899:[[4357],256],12900:[[4358],256],12901:[[4359],256],12902:[[4361],256],12903:[[4363],256],12904:[[4364],256],12905:[[4366],256],12906:[[4367],256],12907:[[4368],256],12908:[[4369],256],12909:[[4370],256],12910:[[4352,4449],256],12911:[[4354,4449],256],12912:[[4355,4449],256],12913:[[4357,4449],256],12914:[[4358,4449],256],12915:[[4359,4449],256],12916:[[4361,4449],256],12917:[[4363,4449],256],12918:[[4364,4449],256],12919:[[4366,4449],256],12920:[[4367,4449],256],12921:[[4368,4449],256],12922:[[4369,4449],256],12923:[[4370,4449],256],12924:[[4366,4449,4535,4352,4457],256],12925:[[4364,4462,4363,4468],256],12926:[[4363,4462],256],12928:[[19968],256],12929:[[20108],256],12930:[[19977],256],12931:[[22235],256],12932:[[20116],256],12933:[[20845],256],12934:[[19971],256],12935:[[20843],256],12936:[[20061],256],12937:[[21313],256],12938:[[26376],256],12939:[[28779],256],12940:[[27700],256],12941:[[26408],256],12942:[[37329],256],12943:[[22303],256],12944:[[26085],256],12945:[[26666],256],12946:[[26377],256],12947:[[31038],256],12948:[[21517],256],12949:[[29305],256],12950:[[36001],256],12951:[[31069],256],12952:[[21172],256],12953:[[31192],256],12954:[[30007],256],12955:[[22899],256],12956:[[36969],256],12957:[[20778],256],12958:[[21360],256],12959:[[27880],256],12960:[[38917],256],12961:[[20241],256],12962:[[20889],256],12963:[[27491],256],12964:[[19978],256],12965:[[20013],256],12966:[[19979],256],12967:[[24038],256],12968:[[21491],256],12969:[[21307],256],12970:[[23447],256],12971:[[23398],256],12972:[[30435],256],12973:[[20225],256],12974:[[36039],256],12975:[[21332],256],12976:[[22812],256],12977:[[51,54],256],12978:[[51,55],256],12979:[[51,56],256],12980:[[51,57],256],12981:[[52,48],256],12982:[[52,49],256],12983:[[52,50],256],12984:[[52,51],256],12985:[[52,52],256],12986:[[52,53],256],12987:[[52,54],256],12988:[[52,55],256],12989:[[52,56],256],12990:[[52,57],256],12991:[[53,48],256],12992:[[49,26376],256],12993:[[50,26376],256],12994:[[51,26376],256],12995:[[52,26376],256],12996:[[53,26376],256],12997:[[54,26376],256],12998:[[55,26376],256],12999:[[56,26376],256],13000:[[57,26376],256],13001:[[49,48,26376],256],13002:[[49,49,26376],256],13003:[[49,50,26376],256],13004:[[72,103],256],13005:[[101,114,103],256],13006:[[101,86],256],13007:[[76,84,68],256],13008:[[12450],256],13009:[[12452],256],13010:[[12454],256],13011:[[12456],256],13012:[[12458],256],13013:[[12459],256],13014:[[12461],256],13015:[[12463],256],13016:[[12465],256],13017:[[12467],256],13018:[[12469],256],13019:[[12471],256],13020:[[12473],256],13021:[[12475],256],13022:[[12477],256],13023:[[12479],256],13024:[[12481],256],13025:[[12484],256],13026:[[12486],256],13027:[[12488],256],13028:[[12490],256],13029:[[12491],256],13030:[[12492],256],13031:[[12493],256],13032:[[12494],256],13033:[[12495],256],13034:[[12498],256],13035:[[12501],256],13036:[[12504],256],13037:[[12507],256],13038:[[12510],256],13039:[[12511],256],13040:[[12512],256],13041:[[12513],256],13042:[[12514],256],13043:[[12516],256],13044:[[12518],256],13045:[[12520],256],13046:[[12521],256],13047:[[12522],256],13048:[[12523],256],13049:[[12524],256],13050:[[12525],256],13051:[[12527],256],13052:[[12528],256],13053:[[12529],256],13054:[[12530],256]},\n13056:{13056:[[12450,12497,12540,12488],256],13057:[[12450,12523,12501,12449],256],13058:[[12450,12531,12506,12450],256],13059:[[12450,12540,12523],256],13060:[[12452,12491,12531,12464],256],13061:[[12452,12531,12481],256],13062:[[12454,12457,12531],256],13063:[[12456,12473,12463,12540,12489],256],13064:[[12456,12540,12459,12540],256],13065:[[12458,12531,12473],256],13066:[[12458,12540,12512],256],13067:[[12459,12452,12522],256],13068:[[12459,12521,12483,12488],256],13069:[[12459,12525,12522,12540],256],13070:[[12460,12525,12531],256],13071:[[12460,12531,12510],256],13072:[[12462,12460],256],13073:[[12462,12491,12540],256],13074:[[12461,12517,12522,12540],256],13075:[[12462,12523,12480,12540],256],13076:[[12461,12525],256],13077:[[12461,12525,12464,12521,12512],256],13078:[[12461,12525,12513,12540,12488,12523],256],13079:[[12461,12525,12527,12483,12488],256],13080:[[12464,12521,12512],256],13081:[[12464,12521,12512,12488,12531],256],13082:[[12463,12523,12476,12452,12525],256],13083:[[12463,12525,12540,12493],256],13084:[[12465,12540,12473],256],13085:[[12467,12523,12490],256],13086:[[12467,12540,12509],256],13087:[[12469,12452,12463,12523],256],13088:[[12469,12531,12481,12540,12512],256],13089:[[12471,12522,12531,12464],256],13090:[[12475,12531,12481],256],13091:[[12475,12531,12488],256],13092:[[12480,12540,12473],256],13093:[[12487,12471],256],13094:[[12489,12523],256],13095:[[12488,12531],256],13096:[[12490,12494],256],13097:[[12494,12483,12488],256],13098:[[12495,12452,12484],256],13099:[[12497,12540,12475,12531,12488],256],13100:[[12497,12540,12484],256],13101:[[12496,12540,12524,12523],256],13102:[[12500,12450,12473,12488,12523],256],13103:[[12500,12463,12523],256],13104:[[12500,12467],256],13105:[[12499,12523],256],13106:[[12501,12449,12521,12483,12489],256],13107:[[12501,12451,12540,12488],256],13108:[[12502,12483,12471,12455,12523],256],13109:[[12501,12521,12531],256],13110:[[12504,12463,12479,12540,12523],256],13111:[[12506,12477],256],13112:[[12506,12491,12498],256],13113:[[12504,12523,12484],256],13114:[[12506,12531,12473],256],13115:[[12506,12540,12472],256],13116:[[12505,12540,12479],256],13117:[[12509,12452,12531,12488],256],13118:[[12508,12523,12488],256],13119:[[12507,12531],256],13120:[[12509,12531,12489],256],13121:[[12507,12540,12523],256],13122:[[12507,12540,12531],256],13123:[[12510,12452,12463,12525],256],13124:[[12510,12452,12523],256],13125:[[12510,12483,12495],256],13126:[[12510,12523,12463],256],13127:[[12510,12531,12471,12519,12531],256],13128:[[12511,12463,12525,12531],256],13129:[[12511,12522],256],13130:[[12511,12522,12496,12540,12523],256],13131:[[12513,12460],256],13132:[[12513,12460,12488,12531],256],13133:[[12513,12540,12488,12523],256],13134:[[12516,12540,12489],256],13135:[[12516,12540,12523],256],13136:[[12518,12450,12531],256],13137:[[12522,12483,12488,12523],256],13138:[[12522,12521],256],13139:[[12523,12500,12540],256],13140:[[12523,12540,12502,12523],256],13141:[[12524,12512],256],13142:[[12524,12531,12488,12466,12531],256],13143:[[12527,12483,12488],256],13144:[[48,28857],256],13145:[[49,28857],256],13146:[[50,28857],256],13147:[[51,28857],256],13148:[[52,28857],256],13149:[[53,28857],256],13150:[[54,28857],256],13151:[[55,28857],256],13152:[[56,28857],256],13153:[[57,28857],256],13154:[[49,48,28857],256],13155:[[49,49,28857],256],13156:[[49,50,28857],256],13157:[[49,51,28857],256],13158:[[49,52,28857],256],13159:[[49,53,28857],256],13160:[[49,54,28857],256],13161:[[49,55,28857],256],13162:[[49,56,28857],256],13163:[[49,57,28857],256],13164:[[50,48,28857],256],13165:[[50,49,28857],256],13166:[[50,50,28857],256],13167:[[50,51,28857],256],13168:[[50,52,28857],256],13169:[[104,80,97],256],13170:[[100,97],256],13171:[[65,85],256],13172:[[98,97,114],256],13173:[[111,86],256],13174:[[112,99],256],13175:[[100,109],256],13176:[[100,109,178],256],13177:[[100,109,179],256],13178:[[73,85],256],13179:[[24179,25104],256],13180:[[26157,21644],256],13181:[[22823,27491],256],13182:[[26126,27835],256],13183:[[26666,24335,20250,31038],256],13184:[[112,65],256],13185:[[110,65],256],13186:[[956,65],256],13187:[[109,65],256],13188:[[107,65],256],13189:[[75,66],256],13190:[[77,66],256],13191:[[71,66],256],13192:[[99,97,108],256],13193:[[107,99,97,108],256],13194:[[112,70],256],13195:[[110,70],256],13196:[[956,70],256],13197:[[956,103],256],13198:[[109,103],256],13199:[[107,103],256],13200:[[72,122],256],13201:[[107,72,122],256],13202:[[77,72,122],256],13203:[[71,72,122],256],13204:[[84,72,122],256],13205:[[956,8467],256],13206:[[109,8467],256],13207:[[100,8467],256],13208:[[107,8467],256],13209:[[102,109],256],13210:[[110,109],256],13211:[[956,109],256],13212:[[109,109],256],13213:[[99,109],256],13214:[[107,109],256],13215:[[109,109,178],256],13216:[[99,109,178],256],13217:[[109,178],256],13218:[[107,109,178],256],13219:[[109,109,179],256],13220:[[99,109,179],256],13221:[[109,179],256],13222:[[107,109,179],256],13223:[[109,8725,115],256],13224:[[109,8725,115,178],256],13225:[[80,97],256],13226:[[107,80,97],256],13227:[[77,80,97],256],13228:[[71,80,97],256],13229:[[114,97,100],256],13230:[[114,97,100,8725,115],256],13231:[[114,97,100,8725,115,178],256],13232:[[112,115],256],13233:[[110,115],256],13234:[[956,115],256],13235:[[109,115],256],13236:[[112,86],256],13237:[[110,86],256],13238:[[956,86],256],13239:[[109,86],256],13240:[[107,86],256],13241:[[77,86],256],13242:[[112,87],256],13243:[[110,87],256],13244:[[956,87],256],13245:[[109,87],256],13246:[[107,87],256],13247:[[77,87],256],13248:[[107,937],256],13249:[[77,937],256],13250:[[97,46,109,46],256],13251:[[66,113],256],13252:[[99,99],256],13253:[[99,100],256],13254:[[67,8725,107,103],256],13255:[[67,111,46],256],13256:[[100,66],256],13257:[[71,121],256],13258:[[104,97],256],13259:[[72,80],256],13260:[[105,110],256],13261:[[75,75],256],13262:[[75,77],256],13263:[[107,116],256],13264:[[108,109],256],13265:[[108,110],256],13266:[[108,111,103],256],13267:[[108,120],256],13268:[[109,98],256],13269:[[109,105,108],256],13270:[[109,111,108],256],13271:[[80,72],256],13272:[[112,46,109,46],256],13273:[[80,80,77],256],13274:[[80,82],256],13275:[[115,114],256],13276:[[83,118],256],13277:[[87,98],256],13278:[[86,8725,109],256],13279:[[65,8725,109],256],13280:[[49,26085],256],13281:[[50,26085],256],13282:[[51,26085],256],13283:[[52,26085],256],13284:[[53,26085],256],13285:[[54,26085],256],13286:[[55,26085],256],13287:[[56,26085],256],13288:[[57,26085],256],13289:[[49,48,26085],256],13290:[[49,49,26085],256],13291:[[49,50,26085],256],13292:[[49,51,26085],256],13293:[[49,52,26085],256],13294:[[49,53,26085],256],13295:[[49,54,26085],256],13296:[[49,55,26085],256],13297:[[49,56,26085],256],13298:[[49,57,26085],256],13299:[[50,48,26085],256],13300:[[50,49,26085],256],13301:[[50,50,26085],256],13302:[[50,51,26085],256],13303:[[50,52,26085],256],13304:[[50,53,26085],256],13305:[[50,54,26085],256],13306:[[50,55,26085],256],13307:[[50,56,26085],256],13308:[[50,57,26085],256],13309:[[51,48,26085],256],13310:[[51,49,26085],256],13311:[[103,97,108],256]},\n27136:{92912:[,1],92913:[,1],92914:[,1],92915:[,1],92916:[,1]},\n27392:{92976:[,230],92977:[,230],92978:[,230],92979:[,230],92980:[,230],92981:[,230],92982:[,230]},\n42496:{42607:[,230],42612:[,230],42613:[,230],42614:[,230],42615:[,230],42616:[,230],42617:[,230],42618:[,230],42619:[,230],42620:[,230],42621:[,230],42652:[[1098],256],42653:[[1100],256],42655:[,230],42736:[,230],42737:[,230]},\n42752:{42864:[[42863],256],43000:[[294],256],43001:[[339],256]},\n43008:{43014:[,9],43204:[,9],43232:[,230],43233:[,230],43234:[,230],43235:[,230],43236:[,230],43237:[,230],43238:[,230],43239:[,230],43240:[,230],43241:[,230],43242:[,230],43243:[,230],43244:[,230],43245:[,230],43246:[,230],43247:[,230],43248:[,230],43249:[,230]},\n43264:{43307:[,220],43308:[,220],43309:[,220],43347:[,9],43443:[,7],43456:[,9]},\n43520:{43696:[,230],43698:[,230],43699:[,230],43700:[,220],43703:[,230],43704:[,230],43710:[,230],43711:[,230],43713:[,230],43766:[,9]},\n43776:{43868:[[42791],256],43869:[[43831],256],43870:[[619],256],43871:[[43858],256],44013:[,9]},\n48128:{113822:[,1]},\n53504:{119134:[[119127,119141],512],119135:[[119128,119141],512],119136:[[119135,119150],512],119137:[[119135,119151],512],119138:[[119135,119152],512],119139:[[119135,119153],512],119140:[[119135,119154],512],119141:[,216],119142:[,216],119143:[,1],119144:[,1],119145:[,1],119149:[,226],119150:[,216],119151:[,216],119152:[,216],119153:[,216],119154:[,216],119163:[,220],119164:[,220],119165:[,220],119166:[,220],119167:[,220],119168:[,220],119169:[,220],119170:[,220],119173:[,230],119174:[,230],119175:[,230],119176:[,230],119177:[,230],119178:[,220],119179:[,220],119210:[,230],119211:[,230],119212:[,230],119213:[,230],119227:[[119225,119141],512],119228:[[119226,119141],512],119229:[[119227,119150],512],119230:[[119228,119150],512],119231:[[119227,119151],512],119232:[[119228,119151],512]},\n53760:{119362:[,230],119363:[,230],119364:[,230]},\n54272:{119808:[[65],256],119809:[[66],256],119810:[[67],256],119811:[[68],256],119812:[[69],256],119813:[[70],256],119814:[[71],256],119815:[[72],256],119816:[[73],256],119817:[[74],256],119818:[[75],256],119819:[[76],256],119820:[[77],256],119821:[[78],256],119822:[[79],256],119823:[[80],256],119824:[[81],256],119825:[[82],256],119826:[[83],256],119827:[[84],256],119828:[[85],256],119829:[[86],256],119830:[[87],256],119831:[[88],256],119832:[[89],256],119833:[[90],256],119834:[[97],256],119835:[[98],256],119836:[[99],256],119837:[[100],256],119838:[[101],256],119839:[[102],256],119840:[[103],256],119841:[[104],256],119842:[[105],256],119843:[[106],256],119844:[[107],256],119845:[[108],256],119846:[[109],256],119847:[[110],256],119848:[[111],256],119849:[[112],256],119850:[[113],256],119851:[[114],256],119852:[[115],256],119853:[[116],256],119854:[[117],256],119855:[[118],256],119856:[[119],256],119857:[[120],256],119858:[[121],256],119859:[[122],256],119860:[[65],256],119861:[[66],256],119862:[[67],256],119863:[[68],256],119864:[[69],256],119865:[[70],256],119866:[[71],256],119867:[[72],256],119868:[[73],256],119869:[[74],256],119870:[[75],256],119871:[[76],256],119872:[[77],256],119873:[[78],256],119874:[[79],256],119875:[[80],256],119876:[[81],256],119877:[[82],256],119878:[[83],256],119879:[[84],256],119880:[[85],256],119881:[[86],256],119882:[[87],256],119883:[[88],256],119884:[[89],256],119885:[[90],256],119886:[[97],256],119887:[[98],256],119888:[[99],256],119889:[[100],256],119890:[[101],256],119891:[[102],256],119892:[[103],256],119894:[[105],256],119895:[[106],256],119896:[[107],256],119897:[[108],256],119898:[[109],256],119899:[[110],256],119900:[[111],256],119901:[[112],256],119902:[[113],256],119903:[[114],256],119904:[[115],256],119905:[[116],256],119906:[[117],256],119907:[[118],256],119908:[[119],256],119909:[[120],256],119910:[[121],256],119911:[[122],256],119912:[[65],256],119913:[[66],256],119914:[[67],256],119915:[[68],256],119916:[[69],256],119917:[[70],256],119918:[[71],256],119919:[[72],256],119920:[[73],256],119921:[[74],256],119922:[[75],256],119923:[[76],256],119924:[[77],256],119925:[[78],256],119926:[[79],256],119927:[[80],256],119928:[[81],256],119929:[[82],256],119930:[[83],256],119931:[[84],256],119932:[[85],256],119933:[[86],256],119934:[[87],256],119935:[[88],256],119936:[[89],256],119937:[[90],256],119938:[[97],256],119939:[[98],256],119940:[[99],256],119941:[[100],256],119942:[[101],256],119943:[[102],256],119944:[[103],256],119945:[[104],256],119946:[[105],256],119947:[[106],256],119948:[[107],256],119949:[[108],256],119950:[[109],256],119951:[[110],256],119952:[[111],256],119953:[[112],256],119954:[[113],256],119955:[[114],256],119956:[[115],256],119957:[[116],256],119958:[[117],256],119959:[[118],256],119960:[[119],256],119961:[[120],256],119962:[[121],256],119963:[[122],256],119964:[[65],256],119966:[[67],256],119967:[[68],256],119970:[[71],256],119973:[[74],256],119974:[[75],256],119977:[[78],256],119978:[[79],256],119979:[[80],256],119980:[[81],256],119982:[[83],256],119983:[[84],256],119984:[[85],256],119985:[[86],256],119986:[[87],256],119987:[[88],256],119988:[[89],256],119989:[[90],256],119990:[[97],256],119991:[[98],256],119992:[[99],256],119993:[[100],256],119995:[[102],256],119997:[[104],256],119998:[[105],256],119999:[[106],256],120000:[[107],256],120001:[[108],256],120002:[[109],256],120003:[[110],256],120005:[[112],256],120006:[[113],256],120007:[[114],256],120008:[[115],256],120009:[[116],256],120010:[[117],256],120011:[[118],256],120012:[[119],256],120013:[[120],256],120014:[[121],256],120015:[[122],256],120016:[[65],256],120017:[[66],256],120018:[[67],256],120019:[[68],256],120020:[[69],256],120021:[[70],256],120022:[[71],256],120023:[[72],256],120024:[[73],256],120025:[[74],256],120026:[[75],256],120027:[[76],256],120028:[[77],256],120029:[[78],256],120030:[[79],256],120031:[[80],256],120032:[[81],256],120033:[[82],256],120034:[[83],256],120035:[[84],256],120036:[[85],256],120037:[[86],256],120038:[[87],256],120039:[[88],256],120040:[[89],256],120041:[[90],256],120042:[[97],256],120043:[[98],256],120044:[[99],256],120045:[[100],256],120046:[[101],256],120047:[[102],256],120048:[[103],256],120049:[[104],256],120050:[[105],256],120051:[[106],256],120052:[[107],256],120053:[[108],256],120054:[[109],256],120055:[[110],256],120056:[[111],256],120057:[[112],256],120058:[[113],256],120059:[[114],256],120060:[[115],256],120061:[[116],256],120062:[[117],256],120063:[[118],256]},\n54528:{120064:[[119],256],120065:[[120],256],120066:[[121],256],120067:[[122],256],120068:[[65],256],120069:[[66],256],120071:[[68],256],120072:[[69],256],120073:[[70],256],120074:[[71],256],120077:[[74],256],120078:[[75],256],120079:[[76],256],120080:[[77],256],120081:[[78],256],120082:[[79],256],120083:[[80],256],120084:[[81],256],120086:[[83],256],120087:[[84],256],120088:[[85],256],120089:[[86],256],120090:[[87],256],120091:[[88],256],120092:[[89],256],120094:[[97],256],120095:[[98],256],120096:[[99],256],120097:[[100],256],120098:[[101],256],120099:[[102],256],120100:[[103],256],120101:[[104],256],120102:[[105],256],120103:[[106],256],120104:[[107],256],120105:[[108],256],120106:[[109],256],120107:[[110],256],120108:[[111],256],120109:[[112],256],120110:[[113],256],120111:[[114],256],120112:[[115],256],120113:[[116],256],120114:[[117],256],120115:[[118],256],120116:[[119],256],120117:[[120],256],120118:[[121],256],120119:[[122],256],120120:[[65],256],120121:[[66],256],120123:[[68],256],120124:[[69],256],120125:[[70],256],120126:[[71],256],120128:[[73],256],120129:[[74],256],120130:[[75],256],120131:[[76],256],120132:[[77],256],120134:[[79],256],120138:[[83],256],120139:[[84],256],120140:[[85],256],120141:[[86],256],120142:[[87],256],120143:[[88],256],120144:[[89],256],120146:[[97],256],120147:[[98],256],120148:[[99],256],120149:[[100],256],120150:[[101],256],120151:[[102],256],120152:[[103],256],120153:[[104],256],120154:[[105],256],120155:[[106],256],120156:[[107],256],120157:[[108],256],120158:[[109],256],120159:[[110],256],120160:[[111],256],120161:[[112],256],120162:[[113],256],120163:[[114],256],120164:[[115],256],120165:[[116],256],120166:[[117],256],120167:[[118],256],120168:[[119],256],120169:[[120],256],120170:[[121],256],120171:[[122],256],120172:[[65],256],120173:[[66],256],120174:[[67],256],120175:[[68],256],120176:[[69],256],120177:[[70],256],120178:[[71],256],120179:[[72],256],120180:[[73],256],120181:[[74],256],120182:[[75],256],120183:[[76],256],120184:[[77],256],120185:[[78],256],120186:[[79],256],120187:[[80],256],120188:[[81],256],120189:[[82],256],120190:[[83],256],120191:[[84],256],120192:[[85],256],120193:[[86],256],120194:[[87],256],120195:[[88],256],120196:[[89],256],120197:[[90],256],120198:[[97],256],120199:[[98],256],120200:[[99],256],120201:[[100],256],120202:[[101],256],120203:[[102],256],120204:[[103],256],120205:[[104],256],120206:[[105],256],120207:[[106],256],120208:[[107],256],120209:[[108],256],120210:[[109],256],120211:[[110],256],120212:[[111],256],120213:[[112],256],120214:[[113],256],120215:[[114],256],120216:[[115],256],120217:[[116],256],120218:[[117],256],120219:[[118],256],120220:[[119],256],120221:[[120],256],120222:[[121],256],120223:[[122],256],120224:[[65],256],120225:[[66],256],120226:[[67],256],120227:[[68],256],120228:[[69],256],120229:[[70],256],120230:[[71],256],120231:[[72],256],120232:[[73],256],120233:[[74],256],120234:[[75],256],120235:[[76],256],120236:[[77],256],120237:[[78],256],120238:[[79],256],120239:[[80],256],120240:[[81],256],120241:[[82],256],120242:[[83],256],120243:[[84],256],120244:[[85],256],120245:[[86],256],120246:[[87],256],120247:[[88],256],120248:[[89],256],120249:[[90],256],120250:[[97],256],120251:[[98],256],120252:[[99],256],120253:[[100],256],120254:[[101],256],120255:[[102],256],120256:[[103],256],120257:[[104],256],120258:[[105],256],120259:[[106],256],120260:[[107],256],120261:[[108],256],120262:[[109],256],120263:[[110],256],120264:[[111],256],120265:[[112],256],120266:[[113],256],120267:[[114],256],120268:[[115],256],120269:[[116],256],120270:[[117],256],120271:[[118],256],120272:[[119],256],120273:[[120],256],120274:[[121],256],120275:[[122],256],120276:[[65],256],120277:[[66],256],120278:[[67],256],120279:[[68],256],120280:[[69],256],120281:[[70],256],120282:[[71],256],120283:[[72],256],120284:[[73],256],120285:[[74],256],120286:[[75],256],120287:[[76],256],120288:[[77],256],120289:[[78],256],120290:[[79],256],120291:[[80],256],120292:[[81],256],120293:[[82],256],120294:[[83],256],120295:[[84],256],120296:[[85],256],120297:[[86],256],120298:[[87],256],120299:[[88],256],120300:[[89],256],120301:[[90],256],120302:[[97],256],120303:[[98],256],120304:[[99],256],120305:[[100],256],120306:[[101],256],120307:[[102],256],120308:[[103],256],120309:[[104],256],120310:[[105],256],120311:[[106],256],120312:[[107],256],120313:[[108],256],120314:[[109],256],120315:[[110],256],120316:[[111],256],120317:[[112],256],120318:[[113],256],120319:[[114],256]},\n54784:{120320:[[115],256],120321:[[116],256],120322:[[117],256],120323:[[118],256],120324:[[119],256],120325:[[120],256],120326:[[121],256],120327:[[122],256],120328:[[65],256],120329:[[66],256],120330:[[67],256],120331:[[68],256],120332:[[69],256],120333:[[70],256],120334:[[71],256],120335:[[72],256],120336:[[73],256],120337:[[74],256],120338:[[75],256],120339:[[76],256],120340:[[77],256],120341:[[78],256],120342:[[79],256],120343:[[80],256],120344:[[81],256],120345:[[82],256],120346:[[83],256],120347:[[84],256],120348:[[85],256],120349:[[86],256],120350:[[87],256],120351:[[88],256],120352:[[89],256],120353:[[90],256],120354:[[97],256],120355:[[98],256],120356:[[99],256],120357:[[100],256],120358:[[101],256],120359:[[102],256],120360:[[103],256],120361:[[104],256],120362:[[105],256],120363:[[106],256],120364:[[107],256],120365:[[108],256],120366:[[109],256],120367:[[110],256],120368:[[111],256],120369:[[112],256],120370:[[113],256],120371:[[114],256],120372:[[115],256],120373:[[116],256],120374:[[117],256],120375:[[118],256],120376:[[119],256],120377:[[120],256],120378:[[121],256],120379:[[122],256],120380:[[65],256],120381:[[66],256],120382:[[67],256],120383:[[68],256],120384:[[69],256],120385:[[70],256],120386:[[71],256],120387:[[72],256],120388:[[73],256],120389:[[74],256],120390:[[75],256],120391:[[76],256],120392:[[77],256],120393:[[78],256],120394:[[79],256],120395:[[80],256],120396:[[81],256],120397:[[82],256],120398:[[83],256],120399:[[84],256],120400:[[85],256],120401:[[86],256],120402:[[87],256],120403:[[88],256],120404:[[89],256],120405:[[90],256],120406:[[97],256],120407:[[98],256],120408:[[99],256],120409:[[100],256],120410:[[101],256],120411:[[102],256],120412:[[103],256],120413:[[104],256],120414:[[105],256],120415:[[106],256],120416:[[107],256],120417:[[108],256],120418:[[109],256],120419:[[110],256],120420:[[111],256],120421:[[112],256],120422:[[113],256],120423:[[114],256],120424:[[115],256],120425:[[116],256],120426:[[117],256],120427:[[118],256],120428:[[119],256],120429:[[120],256],120430:[[121],256],120431:[[122],256],120432:[[65],256],120433:[[66],256],120434:[[67],256],120435:[[68],256],120436:[[69],256],120437:[[70],256],120438:[[71],256],120439:[[72],256],120440:[[73],256],120441:[[74],256],120442:[[75],256],120443:[[76],256],120444:[[77],256],120445:[[78],256],120446:[[79],256],120447:[[80],256],120448:[[81],256],120449:[[82],256],120450:[[83],256],120451:[[84],256],120452:[[85],256],120453:[[86],256],120454:[[87],256],120455:[[88],256],120456:[[89],256],120457:[[90],256],120458:[[97],256],120459:[[98],256],120460:[[99],256],120461:[[100],256],120462:[[101],256],120463:[[102],256],120464:[[103],256],120465:[[104],256],120466:[[105],256],120467:[[106],256],120468:[[107],256],120469:[[108],256],120470:[[109],256],120471:[[110],256],120472:[[111],256],120473:[[112],256],120474:[[113],256],120475:[[114],256],120476:[[115],256],120477:[[116],256],120478:[[117],256],120479:[[118],256],120480:[[119],256],120481:[[120],256],120482:[[121],256],120483:[[122],256],120484:[[305],256],120485:[[567],256],120488:[[913],256],120489:[[914],256],120490:[[915],256],120491:[[916],256],120492:[[917],256],120493:[[918],256],120494:[[919],256],120495:[[920],256],120496:[[921],256],120497:[[922],256],120498:[[923],256],120499:[[924],256],120500:[[925],256],120501:[[926],256],120502:[[927],256],120503:[[928],256],120504:[[929],256],120505:[[1012],256],120506:[[931],256],120507:[[932],256],120508:[[933],256],120509:[[934],256],120510:[[935],256],120511:[[936],256],120512:[[937],256],120513:[[8711],256],120514:[[945],256],120515:[[946],256],120516:[[947],256],120517:[[948],256],120518:[[949],256],120519:[[950],256],120520:[[951],256],120521:[[952],256],120522:[[953],256],120523:[[954],256],120524:[[955],256],120525:[[956],256],120526:[[957],256],120527:[[958],256],120528:[[959],256],120529:[[960],256],120530:[[961],256],120531:[[962],256],120532:[[963],256],120533:[[964],256],120534:[[965],256],120535:[[966],256],120536:[[967],256],120537:[[968],256],120538:[[969],256],120539:[[8706],256],120540:[[1013],256],120541:[[977],256],120542:[[1008],256],120543:[[981],256],120544:[[1009],256],120545:[[982],256],120546:[[913],256],120547:[[914],256],120548:[[915],256],120549:[[916],256],120550:[[917],256],120551:[[918],256],120552:[[919],256],120553:[[920],256],120554:[[921],256],120555:[[922],256],120556:[[923],256],120557:[[924],256],120558:[[925],256],120559:[[926],256],120560:[[927],256],120561:[[928],256],120562:[[929],256],120563:[[1012],256],120564:[[931],256],120565:[[932],256],120566:[[933],256],120567:[[934],256],120568:[[935],256],120569:[[936],256],120570:[[937],256],120571:[[8711],256],120572:[[945],256],120573:[[946],256],120574:[[947],256],120575:[[948],256]},\n55040:{120576:[[949],256],120577:[[950],256],120578:[[951],256],120579:[[952],256],120580:[[953],256],120581:[[954],256],120582:[[955],256],120583:[[956],256],120584:[[957],256],120585:[[958],256],120586:[[959],256],120587:[[960],256],120588:[[961],256],120589:[[962],256],120590:[[963],256],120591:[[964],256],120592:[[965],256],120593:[[966],256],120594:[[967],256],120595:[[968],256],120596:[[969],256],120597:[[8706],256],120598:[[1013],256],120599:[[977],256],120600:[[1008],256],120601:[[981],256],120602:[[1009],256],120603:[[982],256],120604:[[913],256],120605:[[914],256],120606:[[915],256],120607:[[916],256],120608:[[917],256],120609:[[918],256],120610:[[919],256],120611:[[920],256],120612:[[921],256],120613:[[922],256],120614:[[923],256],120615:[[924],256],120616:[[925],256],120617:[[926],256],120618:[[927],256],120619:[[928],256],120620:[[929],256],120621:[[1012],256],120622:[[931],256],120623:[[932],256],120624:[[933],256],120625:[[934],256],120626:[[935],256],120627:[[936],256],120628:[[937],256],120629:[[8711],256],120630:[[945],256],120631:[[946],256],120632:[[947],256],120633:[[948],256],120634:[[949],256],120635:[[950],256],120636:[[951],256],120637:[[952],256],120638:[[953],256],120639:[[954],256],120640:[[955],256],120641:[[956],256],120642:[[957],256],120643:[[958],256],120644:[[959],256],120645:[[960],256],120646:[[961],256],120647:[[962],256],120648:[[963],256],120649:[[964],256],120650:[[965],256],120651:[[966],256],120652:[[967],256],120653:[[968],256],120654:[[969],256],120655:[[8706],256],120656:[[1013],256],120657:[[977],256],120658:[[1008],256],120659:[[981],256],120660:[[1009],256],120661:[[982],256],120662:[[913],256],120663:[[914],256],120664:[[915],256],120665:[[916],256],120666:[[917],256],120667:[[918],256],120668:[[919],256],120669:[[920],256],120670:[[921],256],120671:[[922],256],120672:[[923],256],120673:[[924],256],120674:[[925],256],120675:[[926],256],120676:[[927],256],120677:[[928],256],120678:[[929],256],120679:[[1012],256],120680:[[931],256],120681:[[932],256],120682:[[933],256],120683:[[934],256],120684:[[935],256],120685:[[936],256],120686:[[937],256],120687:[[8711],256],120688:[[945],256],120689:[[946],256],120690:[[947],256],120691:[[948],256],120692:[[949],256],120693:[[950],256],120694:[[951],256],120695:[[952],256],120696:[[953],256],120697:[[954],256],120698:[[955],256],120699:[[956],256],120700:[[957],256],120701:[[958],256],120702:[[959],256],120703:[[960],256],120704:[[961],256],120705:[[962],256],120706:[[963],256],120707:[[964],256],120708:[[965],256],120709:[[966],256],120710:[[967],256],120711:[[968],256],120712:[[969],256],120713:[[8706],256],120714:[[1013],256],120715:[[977],256],120716:[[1008],256],120717:[[981],256],120718:[[1009],256],120719:[[982],256],120720:[[913],256],120721:[[914],256],120722:[[915],256],120723:[[916],256],120724:[[917],256],120725:[[918],256],120726:[[919],256],120727:[[920],256],120728:[[921],256],120729:[[922],256],120730:[[923],256],120731:[[924],256],120732:[[925],256],120733:[[926],256],120734:[[927],256],120735:[[928],256],120736:[[929],256],120737:[[1012],256],120738:[[931],256],120739:[[932],256],120740:[[933],256],120741:[[934],256],120742:[[935],256],120743:[[936],256],120744:[[937],256],120745:[[8711],256],120746:[[945],256],120747:[[946],256],120748:[[947],256],120749:[[948],256],120750:[[949],256],120751:[[950],256],120752:[[951],256],120753:[[952],256],120754:[[953],256],120755:[[954],256],120756:[[955],256],120757:[[956],256],120758:[[957],256],120759:[[958],256],120760:[[959],256],120761:[[960],256],120762:[[961],256],120763:[[962],256],120764:[[963],256],120765:[[964],256],120766:[[965],256],120767:[[966],256],120768:[[967],256],120769:[[968],256],120770:[[969],256],120771:[[8706],256],120772:[[1013],256],120773:[[977],256],120774:[[1008],256],120775:[[981],256],120776:[[1009],256],120777:[[982],256],120778:[[988],256],120779:[[989],256],120782:[[48],256],120783:[[49],256],120784:[[50],256],120785:[[51],256],120786:[[52],256],120787:[[53],256],120788:[[54],256],120789:[[55],256],120790:[[56],256],120791:[[57],256],120792:[[48],256],120793:[[49],256],120794:[[50],256],120795:[[51],256],120796:[[52],256],120797:[[53],256],120798:[[54],256],120799:[[55],256],120800:[[56],256],120801:[[57],256],120802:[[48],256],120803:[[49],256],120804:[[50],256],120805:[[51],256],120806:[[52],256],120807:[[53],256],120808:[[54],256],120809:[[55],256],120810:[[56],256],120811:[[57],256],120812:[[48],256],120813:[[49],256],120814:[[50],256],120815:[[51],256],120816:[[52],256],120817:[[53],256],120818:[[54],256],120819:[[55],256],120820:[[56],256],120821:[[57],256],120822:[[48],256],120823:[[49],256],120824:[[50],256],120825:[[51],256],120826:[[52],256],120827:[[53],256],120828:[[54],256],120829:[[55],256],120830:[[56],256],120831:[[57],256]},\n59392:{125136:[,220],125137:[,220],125138:[,220],125139:[,220],125140:[,220],125141:[,220],125142:[,220]},\n60928:{126464:[[1575],256],126465:[[1576],256],126466:[[1580],256],126467:[[1583],256],126469:[[1608],256],126470:[[1586],256],126471:[[1581],256],126472:[[1591],256],126473:[[1610],256],126474:[[1603],256],126475:[[1604],256],126476:[[1605],256],126477:[[1606],256],126478:[[1587],256],126479:[[1593],256],126480:[[1601],256],126481:[[1589],256],126482:[[1602],256],126483:[[1585],256],126484:[[1588],256],126485:[[1578],256],126486:[[1579],256],126487:[[1582],256],126488:[[1584],256],126489:[[1590],256],126490:[[1592],256],126491:[[1594],256],126492:[[1646],256],126493:[[1722],256],126494:[[1697],256],126495:[[1647],256],126497:[[1576],256],126498:[[1580],256],126500:[[1607],256],126503:[[1581],256],126505:[[1610],256],126506:[[1603],256],126507:[[1604],256],126508:[[1605],256],126509:[[1606],256],126510:[[1587],256],126511:[[1593],256],126512:[[1601],256],126513:[[1589],256],126514:[[1602],256],126516:[[1588],256],126517:[[1578],256],126518:[[1579],256],126519:[[1582],256],126521:[[1590],256],126523:[[1594],256],126530:[[1580],256],126535:[[1581],256],126537:[[1610],256],126539:[[1604],256],126541:[[1606],256],126542:[[1587],256],126543:[[1593],256],126545:[[1589],256],126546:[[1602],256],126548:[[1588],256],126551:[[1582],256],126553:[[1590],256],126555:[[1594],256],126557:[[1722],256],126559:[[1647],256],126561:[[1576],256],126562:[[1580],256],126564:[[1607],256],126567:[[1581],256],126568:[[1591],256],126569:[[1610],256],126570:[[1603],256],126572:[[1605],256],126573:[[1606],256],126574:[[1587],256],126575:[[1593],256],126576:[[1601],256],126577:[[1589],256],126578:[[1602],256],126580:[[1588],256],126581:[[1578],256],126582:[[1579],256],126583:[[1582],256],126585:[[1590],256],126586:[[1592],256],126587:[[1594],256],126588:[[1646],256],126590:[[1697],256],126592:[[1575],256],126593:[[1576],256],126594:[[1580],256],126595:[[1583],256],126596:[[1607],256],126597:[[1608],256],126598:[[1586],256],126599:[[1581],256],126600:[[1591],256],126601:[[1610],256],126603:[[1604],256],126604:[[1605],256],126605:[[1606],256],126606:[[1587],256],126607:[[1593],256],126608:[[1601],256],126609:[[1589],256],126610:[[1602],256],126611:[[1585],256],126612:[[1588],256],126613:[[1578],256],126614:[[1579],256],126615:[[1582],256],126616:[[1584],256],126617:[[1590],256],126618:[[1592],256],126619:[[1594],256],126625:[[1576],256],126626:[[1580],256],126627:[[1583],256],126629:[[1608],256],126630:[[1586],256],126631:[[1581],256],126632:[[1591],256],126633:[[1610],256],126635:[[1604],256],126636:[[1605],256],126637:[[1606],256],126638:[[1587],256],126639:[[1593],256],126640:[[1601],256],126641:[[1589],256],126642:[[1602],256],126643:[[1585],256],126644:[[1588],256],126645:[[1578],256],126646:[[1579],256],126647:[[1582],256],126648:[[1584],256],126649:[[1590],256],126650:[[1592],256],126651:[[1594],256]},\n61696:{127232:[[48,46],256],127233:[[48,44],256],127234:[[49,44],256],127235:[[50,44],256],127236:[[51,44],256],127237:[[52,44],256],127238:[[53,44],256],127239:[[54,44],256],127240:[[55,44],256],127241:[[56,44],256],127242:[[57,44],256],127248:[[40,65,41],256],127249:[[40,66,41],256],127250:[[40,67,41],256],127251:[[40,68,41],256],127252:[[40,69,41],256],127253:[[40,70,41],256],127254:[[40,71,41],256],127255:[[40,72,41],256],127256:[[40,73,41],256],127257:[[40,74,41],256],127258:[[40,75,41],256],127259:[[40,76,41],256],127260:[[40,77,41],256],127261:[[40,78,41],256],127262:[[40,79,41],256],127263:[[40,80,41],256],127264:[[40,81,41],256],127265:[[40,82,41],256],127266:[[40,83,41],256],127267:[[40,84,41],256],127268:[[40,85,41],256],127269:[[40,86,41],256],127270:[[40,87,41],256],127271:[[40,88,41],256],127272:[[40,89,41],256],127273:[[40,90,41],256],127274:[[12308,83,12309],256],127275:[[67],256],127276:[[82],256],127277:[[67,68],256],127278:[[87,90],256],127280:[[65],256],127281:[[66],256],127282:[[67],256],127283:[[68],256],127284:[[69],256],127285:[[70],256],127286:[[71],256],127287:[[72],256],127288:[[73],256],127289:[[74],256],127290:[[75],256],127291:[[76],256],127292:[[77],256],127293:[[78],256],127294:[[79],256],127295:[[80],256],127296:[[81],256],127297:[[82],256],127298:[[83],256],127299:[[84],256],127300:[[85],256],127301:[[86],256],127302:[[87],256],127303:[[88],256],127304:[[89],256],127305:[[90],256],127306:[[72,86],256],127307:[[77,86],256],127308:[[83,68],256],127309:[[83,83],256],127310:[[80,80,86],256],127311:[[87,67],256],127338:[[77,67],256],127339:[[77,68],256],127376:[[68,74],256]},\n61952:{127488:[[12411,12363],256],127489:[[12467,12467],256],127490:[[12469],256],127504:[[25163],256],127505:[[23383],256],127506:[[21452],256],127507:[[12487],256],127508:[[20108],256],127509:[[22810],256],127510:[[35299],256],127511:[[22825],256],127512:[[20132],256],127513:[[26144],256],127514:[[28961],256],127515:[[26009],256],127516:[[21069],256],127517:[[24460],256],127518:[[20877],256],127519:[[26032],256],127520:[[21021],256],127521:[[32066],256],127522:[[29983],256],127523:[[36009],256],127524:[[22768],256],127525:[[21561],256],127526:[[28436],256],127527:[[25237],256],127528:[[25429],256],127529:[[19968],256],127530:[[19977],256],127531:[[36938],256],127532:[[24038],256],127533:[[20013],256],127534:[[21491],256],127535:[[25351],256],127536:[[36208],256],127537:[[25171],256],127538:[[31105],256],127539:[[31354],256],127540:[[21512],256],127541:[[28288],256],127542:[[26377],256],127543:[[26376],256],127544:[[30003],256],127545:[[21106],256],127546:[[21942],256],127552:[[12308,26412,12309],256],127553:[[12308,19977,12309],256],127554:[[12308,20108,12309],256],127555:[[12308,23433,12309],256],127556:[[12308,28857,12309],256],127557:[[12308,25171,12309],256],127558:[[12308,30423,12309],256],127559:[[12308,21213,12309],256],127560:[[12308,25943,12309],256],127568:[[24471],256],127569:[[21487],256]},\n63488:{194560:[[20029]],194561:[[20024]],194562:[[20033]],194563:[[131362]],194564:[[20320]],194565:[[20398]],194566:[[20411]],194567:[[20482]],194568:[[20602]],194569:[[20633]],194570:[[20711]],194571:[[20687]],194572:[[13470]],194573:[[132666]],194574:[[20813]],194575:[[20820]],194576:[[20836]],194577:[[20855]],194578:[[132380]],194579:[[13497]],194580:[[20839]],194581:[[20877]],194582:[[132427]],194583:[[20887]],194584:[[20900]],194585:[[20172]],194586:[[20908]],194587:[[20917]],194588:[[168415]],194589:[[20981]],194590:[[20995]],194591:[[13535]],194592:[[21051]],194593:[[21062]],194594:[[21106]],194595:[[21111]],194596:[[13589]],194597:[[21191]],194598:[[21193]],194599:[[21220]],194600:[[21242]],194601:[[21253]],194602:[[21254]],194603:[[21271]],194604:[[21321]],194605:[[21329]],194606:[[21338]],194607:[[21363]],194608:[[21373]],194609:[[21375]],194610:[[21375]],194611:[[21375]],194612:[[133676]],194613:[[28784]],194614:[[21450]],194615:[[21471]],194616:[[133987]],194617:[[21483]],194618:[[21489]],194619:[[21510]],194620:[[21662]],194621:[[21560]],194622:[[21576]],194623:[[21608]],194624:[[21666]],194625:[[21750]],194626:[[21776]],194627:[[21843]],194628:[[21859]],194629:[[21892]],194630:[[21892]],194631:[[21913]],194632:[[21931]],194633:[[21939]],194634:[[21954]],194635:[[22294]],194636:[[22022]],194637:[[22295]],194638:[[22097]],194639:[[22132]],194640:[[20999]],194641:[[22766]],194642:[[22478]],194643:[[22516]],194644:[[22541]],194645:[[22411]],194646:[[22578]],194647:[[22577]],194648:[[22700]],194649:[[136420]],194650:[[22770]],194651:[[22775]],194652:[[22790]],194653:[[22810]],194654:[[22818]],194655:[[22882]],194656:[[136872]],194657:[[136938]],194658:[[23020]],194659:[[23067]],194660:[[23079]],194661:[[23000]],194662:[[23142]],194663:[[14062]],194664:[[14076]],194665:[[23304]],194666:[[23358]],194667:[[23358]],194668:[[137672]],194669:[[23491]],194670:[[23512]],194671:[[23527]],194672:[[23539]],194673:[[138008]],194674:[[23551]],194675:[[23558]],194676:[[24403]],194677:[[23586]],194678:[[14209]],194679:[[23648]],194680:[[23662]],194681:[[23744]],194682:[[23693]],194683:[[138724]],194684:[[23875]],194685:[[138726]],194686:[[23918]],194687:[[23915]],194688:[[23932]],194689:[[24033]],194690:[[24034]],194691:[[14383]],194692:[[24061]],194693:[[24104]],194694:[[24125]],194695:[[24169]],194696:[[14434]],194697:[[139651]],194698:[[14460]],194699:[[24240]],194700:[[24243]],194701:[[24246]],194702:[[24266]],194703:[[172946]],194704:[[24318]],194705:[[140081]],194706:[[140081]],194707:[[33281]],194708:[[24354]],194709:[[24354]],194710:[[14535]],194711:[[144056]],194712:[[156122]],194713:[[24418]],194714:[[24427]],194715:[[14563]],194716:[[24474]],194717:[[24525]],194718:[[24535]],194719:[[24569]],194720:[[24705]],194721:[[14650]],194722:[[14620]],194723:[[24724]],194724:[[141012]],194725:[[24775]],194726:[[24904]],194727:[[24908]],194728:[[24910]],194729:[[24908]],194730:[[24954]],194731:[[24974]],194732:[[25010]],194733:[[24996]],194734:[[25007]],194735:[[25054]],194736:[[25074]],194737:[[25078]],194738:[[25104]],194739:[[25115]],194740:[[25181]],194741:[[25265]],194742:[[25300]],194743:[[25424]],194744:[[142092]],194745:[[25405]],194746:[[25340]],194747:[[25448]],194748:[[25475]],194749:[[25572]],194750:[[142321]],194751:[[25634]],194752:[[25541]],194753:[[25513]],194754:[[14894]],194755:[[25705]],194756:[[25726]],194757:[[25757]],194758:[[25719]],194759:[[14956]],194760:[[25935]],194761:[[25964]],194762:[[143370]],194763:[[26083]],194764:[[26360]],194765:[[26185]],194766:[[15129]],194767:[[26257]],194768:[[15112]],194769:[[15076]],194770:[[20882]],194771:[[20885]],194772:[[26368]],194773:[[26268]],194774:[[32941]],194775:[[17369]],194776:[[26391]],194777:[[26395]],194778:[[26401]],194779:[[26462]],194780:[[26451]],194781:[[144323]],194782:[[15177]],194783:[[26618]],194784:[[26501]],194785:[[26706]],194786:[[26757]],194787:[[144493]],194788:[[26766]],194789:[[26655]],194790:[[26900]],194791:[[15261]],194792:[[26946]],194793:[[27043]],194794:[[27114]],194795:[[27304]],194796:[[145059]],194797:[[27355]],194798:[[15384]],194799:[[27425]],194800:[[145575]],194801:[[27476]],194802:[[15438]],194803:[[27506]],194804:[[27551]],194805:[[27578]],194806:[[27579]],194807:[[146061]],194808:[[138507]],194809:[[146170]],194810:[[27726]],194811:[[146620]],194812:[[27839]],194813:[[27853]],194814:[[27751]],194815:[[27926]]},\n63744:{63744:[[35912]],63745:[[26356]],63746:[[36554]],63747:[[36040]],63748:[[28369]],63749:[[20018]],63750:[[21477]],63751:[[40860]],63752:[[40860]],63753:[[22865]],63754:[[37329]],63755:[[21895]],63756:[[22856]],63757:[[25078]],63758:[[30313]],63759:[[32645]],63760:[[34367]],63761:[[34746]],63762:[[35064]],63763:[[37007]],63764:[[27138]],63765:[[27931]],63766:[[28889]],63767:[[29662]],63768:[[33853]],63769:[[37226]],63770:[[39409]],63771:[[20098]],63772:[[21365]],63773:[[27396]],63774:[[29211]],63775:[[34349]],63776:[[40478]],63777:[[23888]],63778:[[28651]],63779:[[34253]],63780:[[35172]],63781:[[25289]],63782:[[33240]],63783:[[34847]],63784:[[24266]],63785:[[26391]],63786:[[28010]],63787:[[29436]],63788:[[37070]],63789:[[20358]],63790:[[20919]],63791:[[21214]],63792:[[25796]],63793:[[27347]],63794:[[29200]],63795:[[30439]],63796:[[32769]],63797:[[34310]],63798:[[34396]],63799:[[36335]],63800:[[38706]],63801:[[39791]],63802:[[40442]],63803:[[30860]],63804:[[31103]],63805:[[32160]],63806:[[33737]],63807:[[37636]],63808:[[40575]],63809:[[35542]],63810:[[22751]],63811:[[24324]],63812:[[31840]],63813:[[32894]],63814:[[29282]],63815:[[30922]],63816:[[36034]],63817:[[38647]],63818:[[22744]],63819:[[23650]],63820:[[27155]],63821:[[28122]],63822:[[28431]],63823:[[32047]],63824:[[32311]],63825:[[38475]],63826:[[21202]],63827:[[32907]],63828:[[20956]],63829:[[20940]],63830:[[31260]],63831:[[32190]],63832:[[33777]],63833:[[38517]],63834:[[35712]],63835:[[25295]],63836:[[27138]],63837:[[35582]],63838:[[20025]],63839:[[23527]],63840:[[24594]],63841:[[29575]],63842:[[30064]],63843:[[21271]],63844:[[30971]],63845:[[20415]],63846:[[24489]],63847:[[19981]],63848:[[27852]],63849:[[25976]],63850:[[32034]],63851:[[21443]],63852:[[22622]],63853:[[30465]],63854:[[33865]],63855:[[35498]],63856:[[27578]],63857:[[36784]],63858:[[27784]],63859:[[25342]],63860:[[33509]],63861:[[25504]],63862:[[30053]],63863:[[20142]],63864:[[20841]],63865:[[20937]],63866:[[26753]],63867:[[31975]],63868:[[33391]],63869:[[35538]],63870:[[37327]],63871:[[21237]],63872:[[21570]],63873:[[22899]],63874:[[24300]],63875:[[26053]],63876:[[28670]],63877:[[31018]],63878:[[38317]],63879:[[39530]],63880:[[40599]],63881:[[40654]],63882:[[21147]],63883:[[26310]],63884:[[27511]],63885:[[36706]],63886:[[24180]],63887:[[24976]],63888:[[25088]],63889:[[25754]],63890:[[28451]],63891:[[29001]],63892:[[29833]],63893:[[31178]],63894:[[32244]],63895:[[32879]],63896:[[36646]],63897:[[34030]],63898:[[36899]],63899:[[37706]],63900:[[21015]],63901:[[21155]],63902:[[21693]],63903:[[28872]],63904:[[35010]],63905:[[35498]],63906:[[24265]],63907:[[24565]],63908:[[25467]],63909:[[27566]],63910:[[31806]],63911:[[29557]],63912:[[20196]],63913:[[22265]],63914:[[23527]],63915:[[23994]],63916:[[24604]],63917:[[29618]],63918:[[29801]],63919:[[32666]],63920:[[32838]],63921:[[37428]],63922:[[38646]],63923:[[38728]],63924:[[38936]],63925:[[20363]],63926:[[31150]],63927:[[37300]],63928:[[38584]],63929:[[24801]],63930:[[20102]],63931:[[20698]],63932:[[23534]],63933:[[23615]],63934:[[26009]],63935:[[27138]],63936:[[29134]],63937:[[30274]],63938:[[34044]],63939:[[36988]],63940:[[40845]],63941:[[26248]],63942:[[38446]],63943:[[21129]],63944:[[26491]],63945:[[26611]],63946:[[27969]],63947:[[28316]],63948:[[29705]],63949:[[30041]],63950:[[30827]],63951:[[32016]],63952:[[39006]],63953:[[20845]],63954:[[25134]],63955:[[38520]],63956:[[20523]],63957:[[23833]],63958:[[28138]],63959:[[36650]],63960:[[24459]],63961:[[24900]],63962:[[26647]],63963:[[29575]],63964:[[38534]],63965:[[21033]],63966:[[21519]],63967:[[23653]],63968:[[26131]],63969:[[26446]],63970:[[26792]],63971:[[27877]],63972:[[29702]],63973:[[30178]],63974:[[32633]],63975:[[35023]],63976:[[35041]],63977:[[37324]],63978:[[38626]],63979:[[21311]],63980:[[28346]],63981:[[21533]],63982:[[29136]],63983:[[29848]],63984:[[34298]],63985:[[38563]],63986:[[40023]],63987:[[40607]],63988:[[26519]],63989:[[28107]],63990:[[33256]],63991:[[31435]],63992:[[31520]],63993:[[31890]],63994:[[29376]],63995:[[28825]],63996:[[35672]],63997:[[20160]],63998:[[33590]],63999:[[21050]],194816:[[27966]],194817:[[28023]],194818:[[27969]],194819:[[28009]],194820:[[28024]],194821:[[28037]],194822:[[146718]],194823:[[27956]],194824:[[28207]],194825:[[28270]],194826:[[15667]],194827:[[28363]],194828:[[28359]],194829:[[147153]],194830:[[28153]],194831:[[28526]],194832:[[147294]],194833:[[147342]],194834:[[28614]],194835:[[28729]],194836:[[28702]],194837:[[28699]],194838:[[15766]],194839:[[28746]],194840:[[28797]],194841:[[28791]],194842:[[28845]],194843:[[132389]],194844:[[28997]],194845:[[148067]],194846:[[29084]],194847:[[148395]],194848:[[29224]],194849:[[29237]],194850:[[29264]],194851:[[149000]],194852:[[29312]],194853:[[29333]],194854:[[149301]],194855:[[149524]],194856:[[29562]],194857:[[29579]],194858:[[16044]],194859:[[29605]],194860:[[16056]],194861:[[16056]],194862:[[29767]],194863:[[29788]],194864:[[29809]],194865:[[29829]],194866:[[29898]],194867:[[16155]],194868:[[29988]],194869:[[150582]],194870:[[30014]],194871:[[150674]],194872:[[30064]],194873:[[139679]],194874:[[30224]],194875:[[151457]],194876:[[151480]],194877:[[151620]],194878:[[16380]],194879:[[16392]],194880:[[30452]],194881:[[151795]],194882:[[151794]],194883:[[151833]],194884:[[151859]],194885:[[30494]],194886:[[30495]],194887:[[30495]],194888:[[30538]],194889:[[16441]],194890:[[30603]],194891:[[16454]],194892:[[16534]],194893:[[152605]],194894:[[30798]],194895:[[30860]],194896:[[30924]],194897:[[16611]],194898:[[153126]],194899:[[31062]],194900:[[153242]],194901:[[153285]],194902:[[31119]],194903:[[31211]],194904:[[16687]],194905:[[31296]],194906:[[31306]],194907:[[31311]],194908:[[153980]],194909:[[154279]],194910:[[154279]],194911:[[31470]],194912:[[16898]],194913:[[154539]],194914:[[31686]],194915:[[31689]],194916:[[16935]],194917:[[154752]],194918:[[31954]],194919:[[17056]],194920:[[31976]],194921:[[31971]],194922:[[32000]],194923:[[155526]],194924:[[32099]],194925:[[17153]],194926:[[32199]],194927:[[32258]],194928:[[32325]],194929:[[17204]],194930:[[156200]],194931:[[156231]],194932:[[17241]],194933:[[156377]],194934:[[32634]],194935:[[156478]],194936:[[32661]],194937:[[32762]],194938:[[32773]],194939:[[156890]],194940:[[156963]],194941:[[32864]],194942:[[157096]],194943:[[32880]],194944:[[144223]],194945:[[17365]],194946:[[32946]],194947:[[33027]],194948:[[17419]],194949:[[33086]],194950:[[23221]],194951:[[157607]],194952:[[157621]],194953:[[144275]],194954:[[144284]],194955:[[33281]],194956:[[33284]],194957:[[36766]],194958:[[17515]],194959:[[33425]],194960:[[33419]],194961:[[33437]],194962:[[21171]],194963:[[33457]],194964:[[33459]],194965:[[33469]],194966:[[33510]],194967:[[158524]],194968:[[33509]],194969:[[33565]],194970:[[33635]],194971:[[33709]],194972:[[33571]],194973:[[33725]],194974:[[33767]],194975:[[33879]],194976:[[33619]],194977:[[33738]],194978:[[33740]],194979:[[33756]],194980:[[158774]],194981:[[159083]],194982:[[158933]],194983:[[17707]],194984:[[34033]],194985:[[34035]],194986:[[34070]],194987:[[160714]],194988:[[34148]],194989:[[159532]],194990:[[17757]],194991:[[17761]],194992:[[159665]],194993:[[159954]],194994:[[17771]],194995:[[34384]],194996:[[34396]],194997:[[34407]],194998:[[34409]],194999:[[34473]],195000:[[34440]],195001:[[34574]],195002:[[34530]],195003:[[34681]],195004:[[34600]],195005:[[34667]],195006:[[34694]],195007:[[17879]],195008:[[34785]],195009:[[34817]],195010:[[17913]],195011:[[34912]],195012:[[34915]],195013:[[161383]],195014:[[35031]],195015:[[35038]],195016:[[17973]],195017:[[35066]],195018:[[13499]],195019:[[161966]],195020:[[162150]],195021:[[18110]],195022:[[18119]],195023:[[35488]],195024:[[35565]],195025:[[35722]],195026:[[35925]],195027:[[162984]],195028:[[36011]],195029:[[36033]],195030:[[36123]],195031:[[36215]],195032:[[163631]],195033:[[133124]],195034:[[36299]],195035:[[36284]],195036:[[36336]],195037:[[133342]],195038:[[36564]],195039:[[36664]],195040:[[165330]],195041:[[165357]],195042:[[37012]],195043:[[37105]],195044:[[37137]],195045:[[165678]],195046:[[37147]],195047:[[37432]],195048:[[37591]],195049:[[37592]],195050:[[37500]],195051:[[37881]],195052:[[37909]],195053:[[166906]],195054:[[38283]],195055:[[18837]],195056:[[38327]],195057:[[167287]],195058:[[18918]],195059:[[38595]],195060:[[23986]],195061:[[38691]],195062:[[168261]],195063:[[168474]],195064:[[19054]],195065:[[19062]],195066:[[38880]],195067:[[168970]],195068:[[19122]],195069:[[169110]],195070:[[38923]],195071:[[38923]]},\n64000:{64000:[[20999]],64001:[[24230]],64002:[[25299]],64003:[[31958]],64004:[[23429]],64005:[[27934]],64006:[[26292]],64007:[[36667]],64008:[[34892]],64009:[[38477]],64010:[[35211]],64011:[[24275]],64012:[[20800]],64013:[[21952]],64016:[[22618]],64018:[[26228]],64021:[[20958]],64022:[[29482]],64023:[[30410]],64024:[[31036]],64025:[[31070]],64026:[[31077]],64027:[[31119]],64028:[[38742]],64029:[[31934]],64030:[[32701]],64032:[[34322]],64034:[[35576]],64037:[[36920]],64038:[[37117]],64042:[[39151]],64043:[[39164]],64044:[[39208]],64045:[[40372]],64046:[[37086]],64047:[[38583]],64048:[[20398]],64049:[[20711]],64050:[[20813]],64051:[[21193]],64052:[[21220]],64053:[[21329]],64054:[[21917]],64055:[[22022]],64056:[[22120]],64057:[[22592]],64058:[[22696]],64059:[[23652]],64060:[[23662]],64061:[[24724]],64062:[[24936]],64063:[[24974]],64064:[[25074]],64065:[[25935]],64066:[[26082]],64067:[[26257]],64068:[[26757]],64069:[[28023]],64070:[[28186]],64071:[[28450]],64072:[[29038]],64073:[[29227]],64074:[[29730]],64075:[[30865]],64076:[[31038]],64077:[[31049]],64078:[[31048]],64079:[[31056]],64080:[[31062]],64081:[[31069]],64082:[[31117]],64083:[[31118]],64084:[[31296]],64085:[[31361]],64086:[[31680]],64087:[[32244]],64088:[[32265]],64089:[[32321]],64090:[[32626]],64091:[[32773]],64092:[[33261]],64093:[[33401]],64094:[[33401]],64095:[[33879]],64096:[[35088]],64097:[[35222]],64098:[[35585]],64099:[[35641]],64100:[[36051]],64101:[[36104]],64102:[[36790]],64103:[[36920]],64104:[[38627]],64105:[[38911]],64106:[[38971]],64107:[[24693]],64108:[[148206]],64109:[[33304]],64112:[[20006]],64113:[[20917]],64114:[[20840]],64115:[[20352]],64116:[[20805]],64117:[[20864]],64118:[[21191]],64119:[[21242]],64120:[[21917]],64121:[[21845]],64122:[[21913]],64123:[[21986]],64124:[[22618]],64125:[[22707]],64126:[[22852]],64127:[[22868]],64128:[[23138]],64129:[[23336]],64130:[[24274]],64131:[[24281]],64132:[[24425]],64133:[[24493]],64134:[[24792]],64135:[[24910]],64136:[[24840]],64137:[[24974]],64138:[[24928]],64139:[[25074]],64140:[[25140]],64141:[[25540]],64142:[[25628]],64143:[[25682]],64144:[[25942]],64145:[[26228]],64146:[[26391]],64147:[[26395]],64148:[[26454]],64149:[[27513]],64150:[[27578]],64151:[[27969]],64152:[[28379]],64153:[[28363]],64154:[[28450]],64155:[[28702]],64156:[[29038]],64157:[[30631]],64158:[[29237]],64159:[[29359]],64160:[[29482]],64161:[[29809]],64162:[[29958]],64163:[[30011]],64164:[[30237]],64165:[[30239]],64166:[[30410]],64167:[[30427]],64168:[[30452]],64169:[[30538]],64170:[[30528]],64171:[[30924]],64172:[[31409]],64173:[[31680]],64174:[[31867]],64175:[[32091]],64176:[[32244]],64177:[[32574]],64178:[[32773]],64179:[[33618]],64180:[[33775]],64181:[[34681]],64182:[[35137]],64183:[[35206]],64184:[[35222]],64185:[[35519]],64186:[[35576]],64187:[[35531]],64188:[[35585]],64189:[[35582]],64190:[[35565]],64191:[[35641]],64192:[[35722]],64193:[[36104]],64194:[[36664]],64195:[[36978]],64196:[[37273]],64197:[[37494]],64198:[[38524]],64199:[[38627]],64200:[[38742]],64201:[[38875]],64202:[[38911]],64203:[[38923]],64204:[[38971]],64205:[[39698]],64206:[[40860]],64207:[[141386]],64208:[[141380]],64209:[[144341]],64210:[[15261]],64211:[[16408]],64212:[[16441]],64213:[[152137]],64214:[[154832]],64215:[[163539]],64216:[[40771]],64217:[[40846]],195072:[[38953]],195073:[[169398]],195074:[[39138]],195075:[[19251]],195076:[[39209]],195077:[[39335]],195078:[[39362]],195079:[[39422]],195080:[[19406]],195081:[[170800]],195082:[[39698]],195083:[[40000]],195084:[[40189]],195085:[[19662]],195086:[[19693]],195087:[[40295]],195088:[[172238]],195089:[[19704]],195090:[[172293]],195091:[[172558]],195092:[[172689]],195093:[[40635]],195094:[[19798]],195095:[[40697]],195096:[[40702]],195097:[[40709]],195098:[[40719]],195099:[[40726]],195100:[[40763]],195101:[[173568]]},\n64256:{64256:[[102,102],256],64257:[[102,105],256],64258:[[102,108],256],64259:[[102,102,105],256],64260:[[102,102,108],256],64261:[[383,116],256],64262:[[115,116],256],64275:[[1396,1398],256],64276:[[1396,1381],256],64277:[[1396,1387],256],64278:[[1406,1398],256],64279:[[1396,1389],256],64285:[[1497,1460],512],64286:[,26],64287:[[1522,1463],512],64288:[[1506],256],64289:[[1488],256],64290:[[1491],256],64291:[[1492],256],64292:[[1499],256],64293:[[1500],256],64294:[[1501],256],64295:[[1512],256],64296:[[1514],256],64297:[[43],256],64298:[[1513,1473],512],64299:[[1513,1474],512],64300:[[64329,1473],512],64301:[[64329,1474],512],64302:[[1488,1463],512],64303:[[1488,1464],512],64304:[[1488,1468],512],64305:[[1489,1468],512],64306:[[1490,1468],512],64307:[[1491,1468],512],64308:[[1492,1468],512],64309:[[1493,1468],512],64310:[[1494,1468],512],64312:[[1496,1468],512],64313:[[1497,1468],512],64314:[[1498,1468],512],64315:[[1499,1468],512],64316:[[1500,1468],512],64318:[[1502,1468],512],64320:[[1504,1468],512],64321:[[1505,1468],512],64323:[[1507,1468],512],64324:[[1508,1468],512],64326:[[1510,1468],512],64327:[[1511,1468],512],64328:[[1512,1468],512],64329:[[1513,1468],512],64330:[[1514,1468],512],64331:[[1493,1465],512],64332:[[1489,1471],512],64333:[[1499,1471],512],64334:[[1508,1471],512],64335:[[1488,1500],256],64336:[[1649],256],64337:[[1649],256],64338:[[1659],256],64339:[[1659],256],64340:[[1659],256],64341:[[1659],256],64342:[[1662],256],64343:[[1662],256],64344:[[1662],256],64345:[[1662],256],64346:[[1664],256],64347:[[1664],256],64348:[[1664],256],64349:[[1664],256],64350:[[1658],256],64351:[[1658],256],64352:[[1658],256],64353:[[1658],256],64354:[[1663],256],64355:[[1663],256],64356:[[1663],256],64357:[[1663],256],64358:[[1657],256],64359:[[1657],256],64360:[[1657],256],64361:[[1657],256],64362:[[1700],256],64363:[[1700],256],64364:[[1700],256],64365:[[1700],256],64366:[[1702],256],64367:[[1702],256],64368:[[1702],256],64369:[[1702],256],64370:[[1668],256],64371:[[1668],256],64372:[[1668],256],64373:[[1668],256],64374:[[1667],256],64375:[[1667],256],64376:[[1667],256],64377:[[1667],256],64378:[[1670],256],64379:[[1670],256],64380:[[1670],256],64381:[[1670],256],64382:[[1671],256],64383:[[1671],256],64384:[[1671],256],64385:[[1671],256],64386:[[1677],256],64387:[[1677],256],64388:[[1676],256],64389:[[1676],256],64390:[[1678],256],64391:[[1678],256],64392:[[1672],256],64393:[[1672],256],64394:[[1688],256],64395:[[1688],256],64396:[[1681],256],64397:[[1681],256],64398:[[1705],256],64399:[[1705],256],64400:[[1705],256],64401:[[1705],256],64402:[[1711],256],64403:[[1711],256],64404:[[1711],256],64405:[[1711],256],64406:[[1715],256],64407:[[1715],256],64408:[[1715],256],64409:[[1715],256],64410:[[1713],256],64411:[[1713],256],64412:[[1713],256],64413:[[1713],256],64414:[[1722],256],64415:[[1722],256],64416:[[1723],256],64417:[[1723],256],64418:[[1723],256],64419:[[1723],256],64420:[[1728],256],64421:[[1728],256],64422:[[1729],256],64423:[[1729],256],64424:[[1729],256],64425:[[1729],256],64426:[[1726],256],64427:[[1726],256],64428:[[1726],256],64429:[[1726],256],64430:[[1746],256],64431:[[1746],256],64432:[[1747],256],64433:[[1747],256],64467:[[1709],256],64468:[[1709],256],64469:[[1709],256],64470:[[1709],256],64471:[[1735],256],64472:[[1735],256],64473:[[1734],256],64474:[[1734],256],64475:[[1736],256],64476:[[1736],256],64477:[[1655],256],64478:[[1739],256],64479:[[1739],256],64480:[[1733],256],64481:[[1733],256],64482:[[1737],256],64483:[[1737],256],64484:[[1744],256],64485:[[1744],256],64486:[[1744],256],64487:[[1744],256],64488:[[1609],256],64489:[[1609],256],64490:[[1574,1575],256],64491:[[1574,1575],256],64492:[[1574,1749],256],64493:[[1574,1749],256],64494:[[1574,1608],256],64495:[[1574,1608],256],64496:[[1574,1735],256],64497:[[1574,1735],256],64498:[[1574,1734],256],64499:[[1574,1734],256],64500:[[1574,1736],256],64501:[[1574,1736],256],64502:[[1574,1744],256],64503:[[1574,1744],256],64504:[[1574,1744],256],64505:[[1574,1609],256],64506:[[1574,1609],256],64507:[[1574,1609],256],64508:[[1740],256],64509:[[1740],256],64510:[[1740],256],64511:[[1740],256]},\n64512:{64512:[[1574,1580],256],64513:[[1574,1581],256],64514:[[1574,1605],256],64515:[[1574,1609],256],64516:[[1574,1610],256],64517:[[1576,1580],256],64518:[[1576,1581],256],64519:[[1576,1582],256],64520:[[1576,1605],256],64521:[[1576,1609],256],64522:[[1576,1610],256],64523:[[1578,1580],256],64524:[[1578,1581],256],64525:[[1578,1582],256],64526:[[1578,1605],256],64527:[[1578,1609],256],64528:[[1578,1610],256],64529:[[1579,1580],256],64530:[[1579,1605],256],64531:[[1579,1609],256],64532:[[1579,1610],256],64533:[[1580,1581],256],64534:[[1580,1605],256],64535:[[1581,1580],256],64536:[[1581,1605],256],64537:[[1582,1580],256],64538:[[1582,1581],256],64539:[[1582,1605],256],64540:[[1587,1580],256],64541:[[1587,1581],256],64542:[[1587,1582],256],64543:[[1587,1605],256],64544:[[1589,1581],256],64545:[[1589,1605],256],64546:[[1590,1580],256],64547:[[1590,1581],256],64548:[[1590,1582],256],64549:[[1590,1605],256],64550:[[1591,1581],256],64551:[[1591,1605],256],64552:[[1592,1605],256],64553:[[1593,1580],256],64554:[[1593,1605],256],64555:[[1594,1580],256],64556:[[1594,1605],256],64557:[[1601,1580],256],64558:[[1601,1581],256],64559:[[1601,1582],256],64560:[[1601,1605],256],64561:[[1601,1609],256],64562:[[1601,1610],256],64563:[[1602,1581],256],64564:[[1602,1605],256],64565:[[1602,1609],256],64566:[[1602,1610],256],64567:[[1603,1575],256],64568:[[1603,1580],256],64569:[[1603,1581],256],64570:[[1603,1582],256],64571:[[1603,1604],256],64572:[[1603,1605],256],64573:[[1603,1609],256],64574:[[1603,1610],256],64575:[[1604,1580],256],64576:[[1604,1581],256],64577:[[1604,1582],256],64578:[[1604,1605],256],64579:[[1604,1609],256],64580:[[1604,1610],256],64581:[[1605,1580],256],64582:[[1605,1581],256],64583:[[1605,1582],256],64584:[[1605,1605],256],64585:[[1605,1609],256],64586:[[1605,1610],256],64587:[[1606,1580],256],64588:[[1606,1581],256],64589:[[1606,1582],256],64590:[[1606,1605],256],64591:[[1606,1609],256],64592:[[1606,1610],256],64593:[[1607,1580],256],64594:[[1607,1605],256],64595:[[1607,1609],256],64596:[[1607,1610],256],64597:[[1610,1580],256],64598:[[1610,1581],256],64599:[[1610,1582],256],64600:[[1610,1605],256],64601:[[1610,1609],256],64602:[[1610,1610],256],64603:[[1584,1648],256],64604:[[1585,1648],256],64605:[[1609,1648],256],64606:[[32,1612,1617],256],64607:[[32,1613,1617],256],64608:[[32,1614,1617],256],64609:[[32,1615,1617],256],64610:[[32,1616,1617],256],64611:[[32,1617,1648],256],64612:[[1574,1585],256],64613:[[1574,1586],256],64614:[[1574,1605],256],64615:[[1574,1606],256],64616:[[1574,1609],256],64617:[[1574,1610],256],64618:[[1576,1585],256],64619:[[1576,1586],256],64620:[[1576,1605],256],64621:[[1576,1606],256],64622:[[1576,1609],256],64623:[[1576,1610],256],64624:[[1578,1585],256],64625:[[1578,1586],256],64626:[[1578,1605],256],64627:[[1578,1606],256],64628:[[1578,1609],256],64629:[[1578,1610],256],64630:[[1579,1585],256],64631:[[1579,1586],256],64632:[[1579,1605],256],64633:[[1579,1606],256],64634:[[1579,1609],256],64635:[[1579,1610],256],64636:[[1601,1609],256],64637:[[1601,1610],256],64638:[[1602,1609],256],64639:[[1602,1610],256],64640:[[1603,1575],256],64641:[[1603,1604],256],64642:[[1603,1605],256],64643:[[1603,1609],256],64644:[[1603,1610],256],64645:[[1604,1605],256],64646:[[1604,1609],256],64647:[[1604,1610],256],64648:[[1605,1575],256],64649:[[1605,1605],256],64650:[[1606,1585],256],64651:[[1606,1586],256],64652:[[1606,1605],256],64653:[[1606,1606],256],64654:[[1606,1609],256],64655:[[1606,1610],256],64656:[[1609,1648],256],64657:[[1610,1585],256],64658:[[1610,1586],256],64659:[[1610,1605],256],64660:[[1610,1606],256],64661:[[1610,1609],256],64662:[[1610,1610],256],64663:[[1574,1580],256],64664:[[1574,1581],256],64665:[[1574,1582],256],64666:[[1574,1605],256],64667:[[1574,1607],256],64668:[[1576,1580],256],64669:[[1576,1581],256],64670:[[1576,1582],256],64671:[[1576,1605],256],64672:[[1576,1607],256],64673:[[1578,1580],256],64674:[[1578,1581],256],64675:[[1578,1582],256],64676:[[1578,1605],256],64677:[[1578,1607],256],64678:[[1579,1605],256],64679:[[1580,1581],256],64680:[[1580,1605],256],64681:[[1581,1580],256],64682:[[1581,1605],256],64683:[[1582,1580],256],64684:[[1582,1605],256],64685:[[1587,1580],256],64686:[[1587,1581],256],64687:[[1587,1582],256],64688:[[1587,1605],256],64689:[[1589,1581],256],64690:[[1589,1582],256],64691:[[1589,1605],256],64692:[[1590,1580],256],64693:[[1590,1581],256],64694:[[1590,1582],256],64695:[[1590,1605],256],64696:[[1591,1581],256],64697:[[1592,1605],256],64698:[[1593,1580],256],64699:[[1593,1605],256],64700:[[1594,1580],256],64701:[[1594,1605],256],64702:[[1601,1580],256],64703:[[1601,1581],256],64704:[[1601,1582],256],64705:[[1601,1605],256],64706:[[1602,1581],256],64707:[[1602,1605],256],64708:[[1603,1580],256],64709:[[1603,1581],256],64710:[[1603,1582],256],64711:[[1603,1604],256],64712:[[1603,1605],256],64713:[[1604,1580],256],64714:[[1604,1581],256],64715:[[1604,1582],256],64716:[[1604,1605],256],64717:[[1604,1607],256],64718:[[1605,1580],256],64719:[[1605,1581],256],64720:[[1605,1582],256],64721:[[1605,1605],256],64722:[[1606,1580],256],64723:[[1606,1581],256],64724:[[1606,1582],256],64725:[[1606,1605],256],64726:[[1606,1607],256],64727:[[1607,1580],256],64728:[[1607,1605],256],64729:[[1607,1648],256],64730:[[1610,1580],256],64731:[[1610,1581],256],64732:[[1610,1582],256],64733:[[1610,1605],256],64734:[[1610,1607],256],64735:[[1574,1605],256],64736:[[1574,1607],256],64737:[[1576,1605],256],64738:[[1576,1607],256],64739:[[1578,1605],256],64740:[[1578,1607],256],64741:[[1579,1605],256],64742:[[1579,1607],256],64743:[[1587,1605],256],64744:[[1587,1607],256],64745:[[1588,1605],256],64746:[[1588,1607],256],64747:[[1603,1604],256],64748:[[1603,1605],256],64749:[[1604,1605],256],64750:[[1606,1605],256],64751:[[1606,1607],256],64752:[[1610,1605],256],64753:[[1610,1607],256],64754:[[1600,1614,1617],256],64755:[[1600,1615,1617],256],64756:[[1600,1616,1617],256],64757:[[1591,1609],256],64758:[[1591,1610],256],64759:[[1593,1609],256],64760:[[1593,1610],256],64761:[[1594,1609],256],64762:[[1594,1610],256],64763:[[1587,1609],256],64764:[[1587,1610],256],64765:[[1588,1609],256],64766:[[1588,1610],256],64767:[[1581,1609],256]},\n64768:{64768:[[1581,1610],256],64769:[[1580,1609],256],64770:[[1580,1610],256],64771:[[1582,1609],256],64772:[[1582,1610],256],64773:[[1589,1609],256],64774:[[1589,1610],256],64775:[[1590,1609],256],64776:[[1590,1610],256],64777:[[1588,1580],256],64778:[[1588,1581],256],64779:[[1588,1582],256],64780:[[1588,1605],256],64781:[[1588,1585],256],64782:[[1587,1585],256],64783:[[1589,1585],256],64784:[[1590,1585],256],64785:[[1591,1609],256],64786:[[1591,1610],256],64787:[[1593,1609],256],64788:[[1593,1610],256],64789:[[1594,1609],256],64790:[[1594,1610],256],64791:[[1587,1609],256],64792:[[1587,1610],256],64793:[[1588,1609],256],64794:[[1588,1610],256],64795:[[1581,1609],256],64796:[[1581,1610],256],64797:[[1580,1609],256],64798:[[1580,1610],256],64799:[[1582,1609],256],64800:[[1582,1610],256],64801:[[1589,1609],256],64802:[[1589,1610],256],64803:[[1590,1609],256],64804:[[1590,1610],256],64805:[[1588,1580],256],64806:[[1588,1581],256],64807:[[1588,1582],256],64808:[[1588,1605],256],64809:[[1588,1585],256],64810:[[1587,1585],256],64811:[[1589,1585],256],64812:[[1590,1585],256],64813:[[1588,1580],256],64814:[[1588,1581],256],64815:[[1588,1582],256],64816:[[1588,1605],256],64817:[[1587,1607],256],64818:[[1588,1607],256],64819:[[1591,1605],256],64820:[[1587,1580],256],64821:[[1587,1581],256],64822:[[1587,1582],256],64823:[[1588,1580],256],64824:[[1588,1581],256],64825:[[1588,1582],256],64826:[[1591,1605],256],64827:[[1592,1605],256],64828:[[1575,1611],256],64829:[[1575,1611],256],64848:[[1578,1580,1605],256],64849:[[1578,1581,1580],256],64850:[[1578,1581,1580],256],64851:[[1578,1581,1605],256],64852:[[1578,1582,1605],256],64853:[[1578,1605,1580],256],64854:[[1578,1605,1581],256],64855:[[1578,1605,1582],256],64856:[[1580,1605,1581],256],64857:[[1580,1605,1581],256],64858:[[1581,1605,1610],256],64859:[[1581,1605,1609],256],64860:[[1587,1581,1580],256],64861:[[1587,1580,1581],256],64862:[[1587,1580,1609],256],64863:[[1587,1605,1581],256],64864:[[1587,1605,1581],256],64865:[[1587,1605,1580],256],64866:[[1587,1605,1605],256],64867:[[1587,1605,1605],256],64868:[[1589,1581,1581],256],64869:[[1589,1581,1581],256],64870:[[1589,1605,1605],256],64871:[[1588,1581,1605],256],64872:[[1588,1581,1605],256],64873:[[1588,1580,1610],256],64874:[[1588,1605,1582],256],64875:[[1588,1605,1582],256],64876:[[1588,1605,1605],256],64877:[[1588,1605,1605],256],64878:[[1590,1581,1609],256],64879:[[1590,1582,1605],256],64880:[[1590,1582,1605],256],64881:[[1591,1605,1581],256],64882:[[1591,1605,1581],256],64883:[[1591,1605,1605],256],64884:[[1591,1605,1610],256],64885:[[1593,1580,1605],256],64886:[[1593,1605,1605],256],64887:[[1593,1605,1605],256],64888:[[1593,1605,1609],256],64889:[[1594,1605,1605],256],64890:[[1594,1605,1610],256],64891:[[1594,1605,1609],256],64892:[[1601,1582,1605],256],64893:[[1601,1582,1605],256],64894:[[1602,1605,1581],256],64895:[[1602,1605,1605],256],64896:[[1604,1581,1605],256],64897:[[1604,1581,1610],256],64898:[[1604,1581,1609],256],64899:[[1604,1580,1580],256],64900:[[1604,1580,1580],256],64901:[[1604,1582,1605],256],64902:[[1604,1582,1605],256],64903:[[1604,1605,1581],256],64904:[[1604,1605,1581],256],64905:[[1605,1581,1580],256],64906:[[1605,1581,1605],256],64907:[[1605,1581,1610],256],64908:[[1605,1580,1581],256],64909:[[1605,1580,1605],256],64910:[[1605,1582,1580],256],64911:[[1605,1582,1605],256],64914:[[1605,1580,1582],256],64915:[[1607,1605,1580],256],64916:[[1607,1605,1605],256],64917:[[1606,1581,1605],256],64918:[[1606,1581,1609],256],64919:[[1606,1580,1605],256],64920:[[1606,1580,1605],256],64921:[[1606,1580,1609],256],64922:[[1606,1605,1610],256],64923:[[1606,1605,1609],256],64924:[[1610,1605,1605],256],64925:[[1610,1605,1605],256],64926:[[1576,1582,1610],256],64927:[[1578,1580,1610],256],64928:[[1578,1580,1609],256],64929:[[1578,1582,1610],256],64930:[[1578,1582,1609],256],64931:[[1578,1605,1610],256],64932:[[1578,1605,1609],256],64933:[[1580,1605,1610],256],64934:[[1580,1581,1609],256],64935:[[1580,1605,1609],256],64936:[[1587,1582,1609],256],64937:[[1589,1581,1610],256],64938:[[1588,1581,1610],256],64939:[[1590,1581,1610],256],64940:[[1604,1580,1610],256],64941:[[1604,1605,1610],256],64942:[[1610,1581,1610],256],64943:[[1610,1580,1610],256],64944:[[1610,1605,1610],256],64945:[[1605,1605,1610],256],64946:[[1602,1605,1610],256],64947:[[1606,1581,1610],256],64948:[[1602,1605,1581],256],64949:[[1604,1581,1605],256],64950:[[1593,1605,1610],256],64951:[[1603,1605,1610],256],64952:[[1606,1580,1581],256],64953:[[1605,1582,1610],256],64954:[[1604,1580,1605],256],64955:[[1603,1605,1605],256],64956:[[1604,1580,1605],256],64957:[[1606,1580,1581],256],64958:[[1580,1581,1610],256],64959:[[1581,1580,1610],256],64960:[[1605,1580,1610],256],64961:[[1601,1605,1610],256],64962:[[1576,1581,1610],256],64963:[[1603,1605,1605],256],64964:[[1593,1580,1605],256],64965:[[1589,1605,1605],256],64966:[[1587,1582,1610],256],64967:[[1606,1580,1610],256],65008:[[1589,1604,1746],256],65009:[[1602,1604,1746],256],65010:[[1575,1604,1604,1607],256],65011:[[1575,1603,1576,1585],256],65012:[[1605,1581,1605,1583],256],65013:[[1589,1604,1593,1605],256],65014:[[1585,1587,1608,1604],256],65015:[[1593,1604,1610,1607],256],65016:[[1608,1587,1604,1605],256],65017:[[1589,1604,1609],256],65018:[[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605],256],65019:[[1580,1604,32,1580,1604,1575,1604,1607],256],65020:[[1585,1740,1575,1604],256]},\n65024:{65040:[[44],256],65041:[[12289],256],65042:[[12290],256],65043:[[58],256],65044:[[59],256],65045:[[33],256],65046:[[63],256],65047:[[12310],256],65048:[[12311],256],65049:[[8230],256],65056:[,230],65057:[,230],65058:[,230],65059:[,230],65060:[,230],65061:[,230],65062:[,230],65063:[,220],65064:[,220],65065:[,220],65066:[,220],65067:[,220],65068:[,220],65069:[,220],65072:[[8229],256],65073:[[8212],256],65074:[[8211],256],65075:[[95],256],65076:[[95],256],65077:[[40],256],65078:[[41],256],65079:[[123],256],65080:[[125],256],65081:[[12308],256],65082:[[12309],256],65083:[[12304],256],65084:[[12305],256],65085:[[12298],256],65086:[[12299],256],65087:[[12296],256],65088:[[12297],256],65089:[[12300],256],65090:[[12301],256],65091:[[12302],256],65092:[[12303],256],65095:[[91],256],65096:[[93],256],65097:[[8254],256],65098:[[8254],256],65099:[[8254],256],65100:[[8254],256],65101:[[95],256],65102:[[95],256],65103:[[95],256],65104:[[44],256],65105:[[12289],256],65106:[[46],256],65108:[[59],256],65109:[[58],256],65110:[[63],256],65111:[[33],256],65112:[[8212],256],65113:[[40],256],65114:[[41],256],65115:[[123],256],65116:[[125],256],65117:[[12308],256],65118:[[12309],256],65119:[[35],256],65120:[[38],256],65121:[[42],256],65122:[[43],256],65123:[[45],256],65124:[[60],256],65125:[[62],256],65126:[[61],256],65128:[[92],256],65129:[[36],256],65130:[[37],256],65131:[[64],256],65136:[[32,1611],256],65137:[[1600,1611],256],65138:[[32,1612],256],65140:[[32,1613],256],65142:[[32,1614],256],65143:[[1600,1614],256],65144:[[32,1615],256],65145:[[1600,1615],256],65146:[[32,1616],256],65147:[[1600,1616],256],65148:[[32,1617],256],65149:[[1600,1617],256],65150:[[32,1618],256],65151:[[1600,1618],256],65152:[[1569],256],65153:[[1570],256],65154:[[1570],256],65155:[[1571],256],65156:[[1571],256],65157:[[1572],256],65158:[[1572],256],65159:[[1573],256],65160:[[1573],256],65161:[[1574],256],65162:[[1574],256],65163:[[1574],256],65164:[[1574],256],65165:[[1575],256],65166:[[1575],256],65167:[[1576],256],65168:[[1576],256],65169:[[1576],256],65170:[[1576],256],65171:[[1577],256],65172:[[1577],256],65173:[[1578],256],65174:[[1578],256],65175:[[1578],256],65176:[[1578],256],65177:[[1579],256],65178:[[1579],256],65179:[[1579],256],65180:[[1579],256],65181:[[1580],256],65182:[[1580],256],65183:[[1580],256],65184:[[1580],256],65185:[[1581],256],65186:[[1581],256],65187:[[1581],256],65188:[[1581],256],65189:[[1582],256],65190:[[1582],256],65191:[[1582],256],65192:[[1582],256],65193:[[1583],256],65194:[[1583],256],65195:[[1584],256],65196:[[1584],256],65197:[[1585],256],65198:[[1585],256],65199:[[1586],256],65200:[[1586],256],65201:[[1587],256],65202:[[1587],256],65203:[[1587],256],65204:[[1587],256],65205:[[1588],256],65206:[[1588],256],65207:[[1588],256],65208:[[1588],256],65209:[[1589],256],65210:[[1589],256],65211:[[1589],256],65212:[[1589],256],65213:[[1590],256],65214:[[1590],256],65215:[[1590],256],65216:[[1590],256],65217:[[1591],256],65218:[[1591],256],65219:[[1591],256],65220:[[1591],256],65221:[[1592],256],65222:[[1592],256],65223:[[1592],256],65224:[[1592],256],65225:[[1593],256],65226:[[1593],256],65227:[[1593],256],65228:[[1593],256],65229:[[1594],256],65230:[[1594],256],65231:[[1594],256],65232:[[1594],256],65233:[[1601],256],65234:[[1601],256],65235:[[1601],256],65236:[[1601],256],65237:[[1602],256],65238:[[1602],256],65239:[[1602],256],65240:[[1602],256],65241:[[1603],256],65242:[[1603],256],65243:[[1603],256],65244:[[1603],256],65245:[[1604],256],65246:[[1604],256],65247:[[1604],256],65248:[[1604],256],65249:[[1605],256],65250:[[1605],256],65251:[[1605],256],65252:[[1605],256],65253:[[1606],256],65254:[[1606],256],65255:[[1606],256],65256:[[1606],256],65257:[[1607],256],65258:[[1607],256],65259:[[1607],256],65260:[[1607],256],65261:[[1608],256],65262:[[1608],256],65263:[[1609],256],65264:[[1609],256],65265:[[1610],256],65266:[[1610],256],65267:[[1610],256],65268:[[1610],256],65269:[[1604,1570],256],65270:[[1604,1570],256],65271:[[1604,1571],256],65272:[[1604,1571],256],65273:[[1604,1573],256],65274:[[1604,1573],256],65275:[[1604,1575],256],65276:[[1604,1575],256]},\n65280:{65281:[[33],256],65282:[[34],256],65283:[[35],256],65284:[[36],256],65285:[[37],256],65286:[[38],256],65287:[[39],256],65288:[[40],256],65289:[[41],256],65290:[[42],256],65291:[[43],256],65292:[[44],256],65293:[[45],256],65294:[[46],256],65295:[[47],256],65296:[[48],256],65297:[[49],256],65298:[[50],256],65299:[[51],256],65300:[[52],256],65301:[[53],256],65302:[[54],256],65303:[[55],256],65304:[[56],256],65305:[[57],256],65306:[[58],256],65307:[[59],256],65308:[[60],256],65309:[[61],256],65310:[[62],256],65311:[[63],256],65312:[[64],256],65313:[[65],256],65314:[[66],256],65315:[[67],256],65316:[[68],256],65317:[[69],256],65318:[[70],256],65319:[[71],256],65320:[[72],256],65321:[[73],256],65322:[[74],256],65323:[[75],256],65324:[[76],256],65325:[[77],256],65326:[[78],256],65327:[[79],256],65328:[[80],256],65329:[[81],256],65330:[[82],256],65331:[[83],256],65332:[[84],256],65333:[[85],256],65334:[[86],256],65335:[[87],256],65336:[[88],256],65337:[[89],256],65338:[[90],256],65339:[[91],256],65340:[[92],256],65341:[[93],256],65342:[[94],256],65343:[[95],256],65344:[[96],256],65345:[[97],256],65346:[[98],256],65347:[[99],256],65348:[[100],256],65349:[[101],256],65350:[[102],256],65351:[[103],256],65352:[[104],256],65353:[[105],256],65354:[[106],256],65355:[[107],256],65356:[[108],256],65357:[[109],256],65358:[[110],256],65359:[[111],256],65360:[[112],256],65361:[[113],256],65362:[[114],256],65363:[[115],256],65364:[[116],256],65365:[[117],256],65366:[[118],256],65367:[[119],256],65368:[[120],256],65369:[[121],256],65370:[[122],256],65371:[[123],256],65372:[[124],256],65373:[[125],256],65374:[[126],256],65375:[[10629],256],65376:[[10630],256],65377:[[12290],256],65378:[[12300],256],65379:[[12301],256],65380:[[12289],256],65381:[[12539],256],65382:[[12530],256],65383:[[12449],256],65384:[[12451],256],65385:[[12453],256],65386:[[12455],256],65387:[[12457],256],65388:[[12515],256],65389:[[12517],256],65390:[[12519],256],65391:[[12483],256],65392:[[12540],256],65393:[[12450],256],65394:[[12452],256],65395:[[12454],256],65396:[[12456],256],65397:[[12458],256],65398:[[12459],256],65399:[[12461],256],65400:[[12463],256],65401:[[12465],256],65402:[[12467],256],65403:[[12469],256],65404:[[12471],256],65405:[[12473],256],65406:[[12475],256],65407:[[12477],256],65408:[[12479],256],65409:[[12481],256],65410:[[12484],256],65411:[[12486],256],65412:[[12488],256],65413:[[12490],256],65414:[[12491],256],65415:[[12492],256],65416:[[12493],256],65417:[[12494],256],65418:[[12495],256],65419:[[12498],256],65420:[[12501],256],65421:[[12504],256],65422:[[12507],256],65423:[[12510],256],65424:[[12511],256],65425:[[12512],256],65426:[[12513],256],65427:[[12514],256],65428:[[12516],256],65429:[[12518],256],65430:[[12520],256],65431:[[12521],256],65432:[[12522],256],65433:[[12523],256],65434:[[12524],256],65435:[[12525],256],65436:[[12527],256],65437:[[12531],256],65438:[[12441],256],65439:[[12442],256],65440:[[12644],256],65441:[[12593],256],65442:[[12594],256],65443:[[12595],256],65444:[[12596],256],65445:[[12597],256],65446:[[12598],256],65447:[[12599],256],65448:[[12600],256],65449:[[12601],256],65450:[[12602],256],65451:[[12603],256],65452:[[12604],256],65453:[[12605],256],65454:[[12606],256],65455:[[12607],256],65456:[[12608],256],65457:[[12609],256],65458:[[12610],256],65459:[[12611],256],65460:[[12612],256],65461:[[12613],256],65462:[[12614],256],65463:[[12615],256],65464:[[12616],256],65465:[[12617],256],65466:[[12618],256],65467:[[12619],256],65468:[[12620],256],65469:[[12621],256],65470:[[12622],256],65474:[[12623],256],65475:[[12624],256],65476:[[12625],256],65477:[[12626],256],65478:[[12627],256],65479:[[12628],256],65482:[[12629],256],65483:[[12630],256],65484:[[12631],256],65485:[[12632],256],65486:[[12633],256],65487:[[12634],256],65490:[[12635],256],65491:[[12636],256],65492:[[12637],256],65493:[[12638],256],65494:[[12639],256],65495:[[12640],256],65498:[[12641],256],65499:[[12642],256],65500:[[12643],256],65504:[[162],256],65505:[[163],256],65506:[[172],256],65507:[[175],256],65508:[[166],256],65509:[[165],256],65510:[[8361],256],65512:[[9474],256],65513:[[8592],256],65514:[[8593],256],65515:[[8594],256],65516:[[8595],256],65517:[[9632],256],65518:[[9675],256]}\n\n};\n\n /***** Module to export */\n var unorm = {\n nfc: nfc,\n nfd: nfd,\n nfkc: nfkc,\n nfkd: nfkd\n };\n\n /*globals module:true,define:true*/\n\n // CommonJS\n if (typeof module === \"object\") {\n module.exports = unorm;\n\n // AMD\n } else if (typeof define === \"function\" && define.amd) {\n define(\"unorm\", function () {\n return unorm;\n });\n\n // Global\n } else {\n root.unorm = unorm;\n }\n\n /***** Export as shim for String::normalize method *****/\n /*\n http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#november_8_2013_draft_rev_21\n\n 21.1.3.12 String.prototype.normalize(form=\"NFC\")\n When the normalize method is called with one argument form, the following steps are taken:\n\n 1. Let O be CheckObjectCoercible(this value).\n 2. Let S be ToString(O).\n 3. ReturnIfAbrupt(S).\n 4. If form is not provided or undefined let form be \"NFC\".\n 5. Let f be ToString(form).\n 6. ReturnIfAbrupt(f).\n 7. If f is not one of \"NFC\", \"NFD\", \"NFKC\", or \"NFKD\", then throw a RangeError Exception.\n 8. Let ns be the String value is the result of normalizing S into the normalization form named by f as specified in Unicode Standard Annex #15, UnicodeNormalizatoin Forms.\n 9. Return ns.\n\n The length property of the normalize method is 0.\n\n *NOTE* The normalize function is intentionally generic; it does not require that its this value be a String object. Therefore it can be transferred to other kinds of objects for use as a method.\n */\n unorm.shimApplied = false;\n\n if (!String.prototype.normalize) {\n Object.defineProperty(String.prototype, \"normalize\", {\n enumerable: false,\n configurable: true,\n writable: true,\n value: function normalize (/*form*/) {\n \n var str = \"\" + this;\n var form = arguments[0] === undefined ? \"NFC\" : arguments[0];\n\n if (this === null || this === undefined) {\n throw new TypeError(\"Cannot call method on \" + Object.prototype.toString.call(this));\n }\n\n if (form === \"NFC\") {\n return unorm.nfc(str);\n } else if (form === \"NFD\") {\n return unorm.nfd(str);\n } else if (form === \"NFKC\") {\n return unorm.nfkc(str);\n } else if (form === \"NFKD\") {\n return unorm.nfkd(str);\n } else {\n throw new RangeError(\"Invalid normalization form: \" + form);\n }\n }\n });\n\n unorm.shimApplied = true;\n }\n}(this));\n","module.exports = require('./lib/uslug');","/* \n * List of Unicode code that are flagged as letter.\n *\n * Contains Unicode code of:\n * - Lu = Letter, uppercase\n * - Ll = Letter, lowercase\n * - Lt = Letter, titlecase\n * - Lm = Letter, modifier\n * - Lo = Letter, other\n *\n * This list has been computed from http://unicode.org/Public/UNIDATA/UnicodeData.txt\n *\n */\n\nexports.L = [65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 170, 181, 186, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 736, 737, 738, 739, 740, 748, 750, 880, 881, 882, 883, 884, 886, 887, 890, 891, 892, 893, 895, 902, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1369, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1520, 1521, 1522, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1646, 1647, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1749, 1765, 1766, 1774, 1775, 1786, 1787, 1788, 1791, 1808, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1969, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2036, 2037, 2042, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2074, 2084, 2088, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2365, 2384, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2447, 2448, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2482, 2486, 2487, 2488, 2489, 2493, 2510, 2524, 2525, 2527, 2528, 2529, 2544, 2545, 2565, 2566, 2567, 2568, 2569, 2570, 2575, 2576, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2650, 2651, 2652, 2654, 2674, 2675, 2676, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2703, 2704, 2705, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2738, 2739, 2741, 2742, 2743, 2744, 2745, 2749, 2768, 2784, 2785, 2809, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2831, 2832, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2866, 2867, 2869, 2870, 2871, 2872, 2873, 2877, 2908, 2909, 2911, 2912, 2913, 2929, 2947, 2949, 2950, 2951, 2952, 2953, 2954, 2958, 2959, 2960, 2962, 2963, 2964, 2965, 2969, 2970, 2972, 2974, 2975, 2979, 2980, 2984, 2985, 2986, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3024, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3086, 3087, 3088, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3133, 3160, 3161, 3162, 3168, 3169, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3214, 3215, 3216, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3253, 3254, 3255, 3256, 3257, 3261, 3294, 3296, 3297, 3313, 3314, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3342, 3343, 3344, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3389, 3406, 3423, 3424, 3425, 3450, 3451, 3452, 3453, 3454, 3455, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3517, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3634, 3635, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3713, 3714, 3716, 3719, 3720, 3722, 3725, 3732, 3733, 3734, 3735, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3745, 3746, 3747, 3749, 3751, 3754, 3755, 3757, 3758, 3759, 3760, 3762, 3763, 3773, 3776, 3777, 3778, 3779, 3780, 3782, 3804, 3805, 3806, 3807, 3840, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3976, 3977, 3978, 3979, 3980, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4159, 4176, 4177, 4178, 4179, 4180, 4181, 4186, 4187, 4188, 4189, 4193, 4197, 4198, 4206, 4207, 4208, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4238, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4295, 4301, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4682, 4683, 4684, 4685, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4696, 4698, 4699, 4700, 4701, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4746, 4747, 4748, 4749, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4786, 4787, 4788, 4789, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4800, 4802, 4803, 4804, 4805, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4882, 4883, 4884, 4885, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007, 5024, 5025, 5026, 5027, 5028, 5029, 5030, 5031, 5032, 5033, 5034, 5035, 5036, 5037, 5038, 5039, 5040, 5041, 5042, 5043, 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055, 5056, 5057, 5058, 5059, 5060, 5061, 5062, 5063, 5064, 5065, 5066, 5067, 5068, 5069, 5070, 5071, 5072, 5073, 5074, 5075, 5076, 5077, 5078, 5079, 5080, 5081, 5082, 5083, 5084, 5085, 5086, 5087, 5088, 5089, 5090, 5091, 5092, 5093, 5094, 5095, 5096, 5097, 5098, 5099, 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108, 5109, 5112, 5113, 5114, 5115, 5116, 5117, 5121, 5122, 5123, 5124, 5125, 5126, 5127, 5128, 5129, 5130, 5131, 5132, 5133, 5134, 5135, 5136, 5137, 5138, 5139, 5140, 5141, 5142, 5143, 5144, 5145, 5146, 5147, 5148, 5149, 5150, 5151, 5152, 5153, 5154, 5155, 5156, 5157, 5158, 5159, 5160, 5161, 5162, 5163, 5164, 5165, 5166, 5167, 5168, 5169, 5170, 5171, 5172, 5173, 5174, 5175, 5176, 5177, 5178, 5179, 5180, 5181, 5182, 5183, 5184, 5185, 5186, 5187, 5188, 5189, 5190, 5191, 5192, 5193, 5194, 5195, 5196, 5197, 5198, 5199, 5200, 5201, 5202, 5203, 5204, 5205, 5206, 5207, 5208, 5209, 5210, 5211, 5212, 5213, 5214, 5215, 5216, 5217, 5218, 5219, 5220, 5221, 5222, 5223, 5224, 5225, 5226, 5227, 5228, 5229, 5230, 5231, 5232, 5233, 5234, 5235, 5236, 5237, 5238, 5239, 5240, 5241, 5242, 5243, 5244, 5245, 5246, 5247, 5248, 5249, 5250, 5251, 5252, 5253, 5254, 5255, 5256, 5257, 5258, 5259, 5260, 5261, 5262, 5263, 5264, 5265, 5266, 5267, 5268, 5269, 5270, 5271, 5272, 5273, 5274, 5275, 5276, 5277, 5278, 5279, 5280, 5281, 5282, 5283, 5284, 5285, 5286, 5287, 5288, 5289, 5290, 5291, 5292, 5293, 5294, 5295, 5296, 5297, 5298, 5299, 5300, 5301, 5302, 5303, 5304, 5305, 5306, 5307, 5308, 5309, 5310, 5311, 5312, 5313, 5314, 5315, 5316, 5317, 5318, 5319, 5320, 5321, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 5329, 5330, 5331, 5332, 5333, 5334, 5335, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5347, 5348, 5349, 5350, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 5375, 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383, 5384, 5385, 5386, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5403, 5404, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5415, 5416, 5417, 5418, 5419, 5420, 5421, 5422, 5423, 5424, 5425, 5426, 5427, 5428, 5429, 5430, 5431, 5432, 5433, 5434, 5435, 5436, 5437, 5438, 5439, 5440, 5441, 5442, 5443, 5444, 5445, 5446, 5447, 5448, 5449, 5450, 5451, 5452, 5453, 5454, 5455, 5456, 5457, 5458, 5459, 5460, 5461, 5462, 5463, 5464, 5465, 5466, 5467, 5468, 5469, 5470, 5471, 5472, 5473, 5474, 5475, 5476, 5477, 5478, 5479, 5480, 5481, 5482, 5483, 5484, 5485, 5486, 5487, 5488, 5489, 5490, 5491, 5492, 5493, 5494, 5495, 5496, 5497, 5498, 5499, 5500, 5501, 5502, 5503, 5504, 5505, 5506, 5507, 5508, 5509, 5510, 5511, 5512, 5513, 5514, 5515, 5516, 5517, 5518, 5519, 5520, 5521, 5522, 5523, 5524, 5525, 5526, 5527, 5528, 5529, 5530, 5531, 5532, 5533, 5534, 5535, 5536, 5537, 5538, 5539, 5540, 5541, 5542, 5543, 5544, 5545, 5546, 5547, 5548, 5549, 5550, 5551, 5552, 5553, 5554, 5555, 5556, 5557, 5558, 5559, 5560, 5561, 5562, 5563, 5564, 5565, 5566, 5567, 5568, 5569, 5570, 5571, 5572, 5573, 5574, 5575, 5576, 5577, 5578, 5579, 5580, 5581, 5582, 5583, 5584, 5585, 5586, 5587, 5588, 5589, 5590, 5591, 5592, 5593, 5594, 5595, 5596, 5597, 5598, 5599, 5600, 5601, 5602, 5603, 5604, 5605, 5606, 5607, 5608, 5609, 5610, 5611, 5612, 5613, 5614, 5615, 5616, 5617, 5618, 5619, 5620, 5621, 5622, 5623, 5624, 5625, 5626, 5627, 5628, 5629, 5630, 5631, 5632, 5633, 5634, 5635, 5636, 5637, 5638, 5639, 5640, 5641, 5642, 5643, 5644, 5645, 5646, 5647, 5648, 5649, 5650, 5651, 5652, 5653, 5654, 5655, 5656, 5657, 5658, 5659, 5660, 5661, 5662, 5663, 5664, 5665, 5666, 5667, 5668, 5669, 5670, 5671, 5672, 5673, 5674, 5675, 5676, 5677, 5678, 5679, 5680, 5681, 5682, 5683, 5684, 5685, 5686, 5687, 5688, 5689, 5690, 5691, 5692, 5693, 5694, 5695, 5696, 5697, 5698, 5699, 5700, 5701, 5702, 5703, 5704, 5705, 5706, 5707, 5708, 5709, 5710, 5711, 5712, 5713, 5714, 5715, 5716, 5717, 5718, 5719, 5720, 5721, 5722, 5723, 5724, 5725, 5726, 5727, 5728, 5729, 5730, 5731, 5732, 5733, 5734, 5735, 5736, 5737, 5738, 5739, 5740, 5743, 5744, 5745, 5746, 5747, 5748, 5749, 5750, 5751, 5752, 5753, 5754, 5755, 5756, 5757, 5758, 5759, 5761, 5762, 5763, 5764, 5765, 5766, 5767, 5768, 5769, 5770, 5771, 5772, 5773, 5774, 5775, 5776, 5777, 5778, 5779, 5780, 5781, 5782, 5783, 5784, 5785, 5786, 5792, 5793, 5794, 5795, 5796, 5797, 5798, 5799, 5800, 5801, 5802, 5803, 5804, 5805, 5806, 5807, 5808, 5809, 5810, 5811, 5812, 5813, 5814, 5815, 5816, 5817, 5818, 5819, 5820, 5821, 5822, 5823, 5824, 5825, 5826, 5827, 5828, 5829, 5830, 5831, 5832, 5833, 5834, 5835, 5836, 5837, 5838, 5839, 5840, 5841, 5842, 5843, 5844, 5845, 5846, 5847, 5848, 5849, 5850, 5851, 5852, 5853, 5854, 5855, 5856, 5857, 5858, 5859, 5860, 5861, 5862, 5863, 5864, 5865, 5866, 5873, 5874, 5875, 5876, 5877, 5878, 5879, 5880, 5888, 5889, 5890, 5891, 5892, 5893, 5894, 5895, 5896, 5897, 5898, 5899, 5900, 5902, 5903, 5904, 5905, 5920, 5921, 5922, 5923, 5924, 5925, 5926, 5927, 5928, 5929, 5930, 5931, 5932, 5933, 5934, 5935, 5936, 5937, 5952, 5953, 5954, 5955, 5956, 5957, 5958, 5959, 5960, 5961, 5962, 5963, 5964, 5965, 5966, 5967, 5968, 5969, 5984, 5985, 5986, 5987, 5988, 5989, 5990, 5991, 5992, 5993, 5994, 5995, 5996, 5998, 5999, 6000, 6016, 6017, 6018, 6019, 6020, 6021, 6022, 6023, 6024, 6025, 6026, 6027, 6028, 6029, 6030, 6031, 6032, 6033, 6034, 6035, 6036, 6037, 6038, 6039, 6040, 6041, 6042, 6043, 6044, 6045, 6046, 6047, 6048, 6049, 6050, 6051, 6052, 6053, 6054, 6055, 6056, 6057, 6058, 6059, 6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6103, 6108, 6176, 6177, 6178, 6179, 6180, 6181, 6182, 6183, 6184, 6185, 6186, 6187, 6188, 6189, 6190, 6191, 6192, 6193, 6194, 6195, 6196, 6197, 6198, 6199, 6200, 6201, 6202, 6203, 6204, 6205, 6206, 6207, 6208, 6209, 6210, 6211, 6212, 6213, 6214, 6215, 6216, 6217, 6218, 6219, 6220, 6221, 6222, 6223, 6224, 6225, 6226, 6227, 6228, 6229, 6230, 6231, 6232, 6233, 6234, 6235, 6236, 6237, 6238, 6239, 6240, 6241, 6242, 6243, 6244, 6245, 6246, 6247, 6248, 6249, 6250, 6251, 6252, 6253, 6254, 6255, 6256, 6257, 6258, 6259, 6260, 6261, 6262, 6263, 6272, 6273, 6274, 6275, 6276, 6277, 6278, 6279, 6280, 6281, 6282, 6283, 6284, 6285, 6286, 6287, 6288, 6289, 6290, 6291, 6292, 6293, 6294, 6295, 6296, 6297, 6298, 6299, 6300, 6301, 6302, 6303, 6304, 6305, 6306, 6307, 6308, 6309, 6310, 6311, 6312, 6314, 6320, 6321, 6322, 6323, 6324, 6325, 6326, 6327, 6328, 6329, 6330, 6331, 6332, 6333, 6334, 6335, 6336, 6337, 6338, 6339, 6340, 6341, 6342, 6343, 6344, 6345, 6346, 6347, 6348, 6349, 6350, 6351, 6352, 6353, 6354, 6355, 6356, 6357, 6358, 6359, 6360, 6361, 6362, 6363, 6364, 6365, 6366, 6367, 6368, 6369, 6370, 6371, 6372, 6373, 6374, 6375, 6376, 6377, 6378, 6379, 6380, 6381, 6382, 6383, 6384, 6385, 6386, 6387, 6388, 6389, 6400, 6401, 6402, 6403, 6404, 6405, 6406, 6407, 6408, 6409, 6410, 6411, 6412, 6413, 6414, 6415, 6416, 6417, 6418, 6419, 6420, 6421, 6422, 6423, 6424, 6425, 6426, 6427, 6428, 6429, 6430, 6480, 6481, 6482, 6483, 6484, 6485, 6486, 6487, 6488, 6489, 6490, 6491, 6492, 6493, 6494, 6495, 6496, 6497, 6498, 6499, 6500, 6501, 6502, 6503, 6504, 6505, 6506, 6507, 6508, 6509, 6512, 6513, 6514, 6515, 6516, 6528, 6529, 6530, 6531, 6532, 6533, 6534, 6535, 6536, 6537, 6538, 6539, 6540, 6541, 6542, 6543, 6544, 6545, 6546, 6547, 6548, 6549, 6550, 6551, 6552, 6553, 6554, 6555, 6556, 6557, 6558, 6559, 6560, 6561, 6562, 6563, 6564, 6565, 6566, 6567, 6568, 6569, 6570, 6571, 6576, 6577, 6578, 6579, 6580, 6581, 6582, 6583, 6584, 6585, 6586, 6587, 6588, 6589, 6590, 6591, 6592, 6593, 6594, 6595, 6596, 6597, 6598, 6599, 6600, 6601, 6656, 6657, 6658, 6659, 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 6670, 6671, 6672, 6673, 6674, 6675, 6676, 6677, 6678, 6688, 6689, 6690, 6691, 6692, 6693, 6694, 6695, 6696, 6697, 6698, 6699, 6700, 6701, 6702, 6703, 6704, 6705, 6706, 6707, 6708, 6709, 6710, 6711, 6712, 6713, 6714, 6715, 6716, 6717, 6718, 6719, 6720, 6721, 6722, 6723, 6724, 6725, 6726, 6727, 6728, 6729, 6730, 6731, 6732, 6733, 6734, 6735, 6736, 6737, 6738, 6739, 6740, 6823, 6917, 6918, 6919, 6920, 6921, 6922, 6923, 6924, 6925, 6926, 6927, 6928, 6929, 6930, 6931, 6932, 6933, 6934, 6935, 6936, 6937, 6938, 6939, 6940, 6941, 6942, 6943, 6944, 6945, 6946, 6947, 6948, 6949, 6950, 6951, 6952, 6953, 6954, 6955, 6956, 6957, 6958, 6959, 6960, 6961, 6962, 6963, 6981, 6982, 6983, 6984, 6985, 6986, 6987, 7043, 7044, 7045, 7046, 7047, 7048, 7049, 7050, 7051, 7052, 7053, 7054, 7055, 7056, 7057, 7058, 7059, 7060, 7061, 7062, 7063, 7064, 7065, 7066, 7067, 7068, 7069, 7070, 7071, 7072, 7086, 7087, 7098, 7099, 7100, 7101, 7102, 7103, 7104, 7105, 7106, 7107, 7108, 7109, 7110, 7111, 7112, 7113, 7114, 7115, 7116, 7117, 7118, 7119, 7120, 7121, 7122, 7123, 7124, 7125, 7126, 7127, 7128, 7129, 7130, 7131, 7132, 7133, 7134, 7135, 7136, 7137, 7138, 7139, 7140, 7141, 7168, 7169, 7170, 7171, 7172, 7173, 7174, 7175, 7176, 7177, 7178, 7179, 7180, 7181, 7182, 7183, 7184, 7185, 7186, 7187, 7188, 7189, 7190, 7191, 7192, 7193, 7194, 7195, 7196, 7197, 7198, 7199, 7200, 7201, 7202, 7203, 7245, 7246, 7247, 7258, 7259, 7260, 7261, 7262, 7263, 7264, 7265, 7266, 7267, 7268, 7269, 7270, 7271, 7272, 7273, 7274, 7275, 7276, 7277, 7278, 7279, 7280, 7281, 7282, 7283, 7284, 7285, 7286, 7287, 7288, 7289, 7290, 7291, 7292, 7293, 7401, 7402, 7403, 7404, 7406, 7407, 7408, 7409, 7413, 7414, 7424, 7425, 7426, 7427, 7428, 7429, 7430, 7431, 7432, 7433, 7434, 7435, 7436, 7437, 7438, 7439, 7440, 7441, 7442, 7443, 7444, 7445, 7446, 7447, 7448, 7449, 7450, 7451, 7452, 7453, 7454, 7455, 7456, 7457, 7458, 7459, 7460, 7461, 7462, 7463, 7464, 7465, 7466, 7467, 7468, 7469, 7470, 7471, 7472, 7473, 7474, 7475, 7476, 7477, 7478, 7479, 7480, 7481, 7482, 7483, 7484, 7485, 7486, 7487, 7488, 7489, 7490, 7491, 7492, 7493, 7494, 7495, 7496, 7497, 7498, 7499, 7500, 7501, 7502, 7503, 7504, 7505, 7506, 7507, 7508, 7509, 7510, 7511, 7512, 7513, 7514, 7515, 7516, 7517, 7518, 7519, 7520, 7521, 7522, 7523, 7524, 7525, 7526, 7527, 7528, 7529, 7530, 7531, 7532, 7533, 7534, 7535, 7536, 7537, 7538, 7539, 7540, 7541, 7542, 7543, 7544, 7545, 7546, 7547, 7548, 7549, 7550, 7551, 7552, 7553, 7554, 7555, 7556, 7557, 7558, 7559, 7560, 7561, 7562, 7563, 7564, 7565, 7566, 7567, 7568, 7569, 7570, 7571, 7572, 7573, 7574, 7575, 7576, 7577, 7578, 7579, 7580, 7581, 7582, 7583, 7584, 7585, 7586, 7587, 7588, 7589, 7590, 7591, 7592, 7593, 7594, 7595, 7596, 7597, 7598, 7599, 7600, 7601, 7602, 7603, 7604, 7605, 7606, 7607, 7608, 7609, 7610, 7611, 7612, 7613, 7614, 7615, 7680, 7681, 7682, 7683, 7684, 7685, 7686, 7687, 7688, 7689, 7690, 7691, 7692, 7693, 7694, 7695, 7696, 7697, 7698, 7699, 7700, 7701, 7702, 7703, 7704, 7705, 7706, 7707, 7708, 7709, 7710, 7711, 7712, 7713, 7714, 7715, 7716, 7717, 7718, 7719, 7720, 7721, 7722, 7723, 7724, 7725, 7726, 7727, 7728, 7729, 7730, 7731, 7732, 7733, 7734, 7735, 7736, 7737, 7738, 7739, 7740, 7741, 7742, 7743, 7744, 7745, 7746, 7747, 7748, 7749, 7750, 7751, 7752, 7753, 7754, 7755, 7756, 7757, 7758, 7759, 7760, 7761, 7762, 7763, 7764, 7765, 7766, 7767, 7768, 7769, 7770, 7771, 7772, 7773, 7774, 7775, 7776, 7777, 7778, 7779, 7780, 7781, 7782, 7783, 7784, 7785, 7786, 7787, 7788, 7789, 7790, 7791, 7792, 7793, 7794, 7795, 7796, 7797, 7798, 7799, 7800, 7801, 7802, 7803, 7804, 7805, 7806, 7807, 7808, 7809, 7810, 7811, 7812, 7813, 7814, 7815, 7816, 7817, 7818, 7819, 7820, 7821, 7822, 7823, 7824, 7825, 7826, 7827, 7828, 7829, 7830, 7831, 7832, 7833, 7834, 7835, 7836, 7837, 7838, 7839, 7840, 7841, 7842, 7843, 7844, 7845, 7846, 7847, 7848, 7849, 7850, 7851, 7852, 7853, 7854, 7855, 7856, 7857, 7858, 7859, 7860, 7861, 7862, 7863, 7864, 7865, 7866, 7867, 7868, 7869, 7870, 7871, 7872, 7873, 7874, 7875, 7876, 7877, 7878, 7879, 7880, 7881, 7882, 7883, 7884, 7885, 7886, 7887, 7888, 7889, 7890, 7891, 7892, 7893, 7894, 7895, 7896, 7897, 7898, 7899, 7900, 7901, 7902, 7903, 7904, 7905, 7906, 7907, 7908, 7909, 7910, 7911, 7912, 7913, 7914, 7915, 7916, 7917, 7918, 7919, 7920, 7921, 7922, 7923, 7924, 7925, 7926, 7927, 7928, 7929, 7930, 7931, 7932, 7933, 7934, 7935, 7936, 7937, 7938, 7939, 7940, 7941, 7942, 7943, 7944, 7945, 7946, 7947, 7948, 7949, 7950, 7951, 7952, 7953, 7954, 7955, 7956, 7957, 7960, 7961, 7962, 7963, 7964, 7965, 7968, 7969, 7970, 7971, 7972, 7973, 7974, 7975, 7976, 7977, 7978, 7979, 7980, 7981, 7982, 7983, 7984, 7985, 7986, 7987, 7988, 7989, 7990, 7991, 7992, 7993, 7994, 7995, 7996, 7997, 7998, 7999, 8000, 8001, 8002, 8003, 8004, 8005, 8008, 8009, 8010, 8011, 8012, 8013, 8016, 8017, 8018, 8019, 8020, 8021, 8022, 8023, 8025, 8027, 8029, 8031, 8032, 8033, 8034, 8035, 8036, 8037, 8038, 8039, 8040, 8041, 8042, 8043, 8044, 8045, 8046, 8047, 8048, 8049, 8050, 8051, 8052, 8053, 8054, 8055, 8056, 8057, 8058, 8059, 8060, 8061, 8064, 8065, 8066, 8067, 8068, 8069, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8077, 8078, 8079, 8080, 8081, 8082, 8083, 8084, 8085, 8086, 8087, 8088, 8089, 8090, 8091, 8092, 8093, 8094, 8095, 8096, 8097, 8098, 8099, 8100, 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108, 8109, 8110, 8111, 8112, 8113, 8114, 8115, 8116, 8118, 8119, 8120, 8121, 8122, 8123, 8124, 8126, 8130, 8131, 8132, 8134, 8135, 8136, 8137, 8138, 8139, 8140, 8144, 8145, 8146, 8147, 8150, 8151, 8152, 8153, 8154, 8155, 8160, 8161, 8162, 8163, 8164, 8165, 8166, 8167, 8168, 8169, 8170, 8171, 8172, 8178, 8179, 8180, 8182, 8183, 8184, 8185, 8186, 8187, 8188, 8305, 8319, 8336, 8337, 8338, 8339, 8340, 8341, 8342, 8343, 8344, 8345, 8346, 8347, 8348, 8450, 8455, 8458, 8459, 8460, 8461, 8462, 8463, 8464, 8465, 8466, 8467, 8469, 8473, 8474, 8475, 8476, 8477, 8484, 8486, 8488, 8490, 8491, 8492, 8493, 8495, 8496, 8497, 8498, 8499, 8500, 8501, 8502, 8503, 8504, 8505, 8508, 8509, 8510, 8511, 8517, 8518, 8519, 8520, 8521, 8526, 8579, 8580, 11264, 11265, 11266, 11267, 11268, 11269, 11270, 11271, 11272, 11273, 11274, 11275, 11276, 11277, 11278, 11279, 11280, 11281, 11282, 11283, 11284, 11285, 11286, 11287, 11288, 11289, 11290, 11291, 11292, 11293, 11294, 11295, 11296, 11297, 11298, 11299, 11300, 11301, 11302, 11303, 11304, 11305, 11306, 11307, 11308, 11309, 11310, 11312, 11313, 11314, 11315, 11316, 11317, 11318, 11319, 11320, 11321, 11322, 11323, 11324, 11325, 11326, 11327, 11328, 11329, 11330, 11331, 11332, 11333, 11334, 11335, 11336, 11337, 11338, 11339, 11340, 11341, 11342, 11343, 11344, 11345, 11346, 11347, 11348, 11349, 11350, 11351, 11352, 11353, 11354, 11355, 11356, 11357, 11358, 11360, 11361, 11362, 11363, 11364, 11365, 11366, 11367, 11368, 11369, 11370, 11371, 11372, 11373, 11374, 11375, 11376, 11377, 11378, 11379, 11380, 11381, 11382, 11383, 11384, 11385, 11386, 11387, 11388, 11389, 11390, 11391, 11392, 11393, 11394, 11395, 11396, 11397, 11398, 11399, 11400, 11401, 11402, 11403, 11404, 11405, 11406, 11407, 11408, 11409, 11410, 11411, 11412, 11413, 11414, 11415, 11416, 11417, 11418, 11419, 11420, 11421, 11422, 11423, 11424, 11425, 11426, 11427, 11428, 11429, 11430, 11431, 11432, 11433, 11434, 11435, 11436, 11437, 11438, 11439, 11440, 11441, 11442, 11443, 11444, 11445, 11446, 11447, 11448, 11449, 11450, 11451, 11452, 11453, 11454, 11455, 11456, 11457, 11458, 11459, 11460, 11461, 11462, 11463, 11464, 11465, 11466, 11467, 11468, 11469, 11470, 11471, 11472, 11473, 11474, 11475, 11476, 11477, 11478, 11479, 11480, 11481, 11482, 11483, 11484, 11485, 11486, 11487, 11488, 11489, 11490, 11491, 11492, 11499, 11500, 11501, 11502, 11506, 11507, 11520, 11521, 11522, 11523, 11524, 11525, 11526, 11527, 11528, 11529, 11530, 11531, 11532, 11533, 11534, 11535, 11536, 11537, 11538, 11539, 11540, 11541, 11542, 11543, 11544, 11545, 11546, 11547, 11548, 11549, 11550, 11551, 11552, 11553, 11554, 11555, 11556, 11557, 11559, 11565, 11568, 11569, 11570, 11571, 11572, 11573, 11574, 11575, 11576, 11577, 11578, 11579, 11580, 11581, 11582, 11583, 11584, 11585, 11586, 11587, 11588, 11589, 11590, 11591, 11592, 11593, 11594, 11595, 11596, 11597, 11598, 11599, 11600, 11601, 11602, 11603, 11604, 11605, 11606, 11607, 11608, 11609, 11610, 11611, 11612, 11613, 11614, 11615, 11616, 11617, 11618, 11619, 11620, 11621, 11622, 11623, 11631, 11648, 11649, 11650, 11651, 11652, 11653, 11654, 11655, 11656, 11657, 11658, 11659, 11660, 11661, 11662, 11663, 11664, 11665, 11666, 11667, 11668, 11669, 11670, 11680, 11681, 11682, 11683, 11684, 11685, 11686, 11688, 11689, 11690, 11691, 11692, 11693, 11694, 11696, 11697, 11698, 11699, 11700, 11701, 11702, 11704, 11705, 11706, 11707, 11708, 11709, 11710, 11712, 11713, 11714, 11715, 11716, 11717, 11718, 11720, 11721, 11722, 11723, 11724, 11725, 11726, 11728, 11729, 11730, 11731, 11732, 11733, 11734, 11736, 11737, 11738, 11739, 11740, 11741, 11742, 11823, 12293, 12294, 12337, 12338, 12339, 12340, 12341, 12347, 12348, 12353, 12354, 12355, 12356, 12357, 12358, 12359, 12360, 12361, 12362, 12363, 12364, 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, 12374, 12375, 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387, 12388, 12389, 12390, 12391, 12392, 12393, 12394, 12395, 12396, 12397, 12398, 12399, 12400, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414, 12415, 12416, 12417, 12418, 12419, 12420, 12421, 12422, 12423, 12424, 12425, 12426, 12427, 12428, 12429, 12430, 12431, 12432, 12433, 12434, 12435, 12436, 12437, 12438, 12445, 12446, 12447, 12449, 12450, 12451, 12452, 12453, 12454, 12455, 12456, 12457, 12458, 12459, 12460, 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12470, 12471, 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479, 12480, 12481, 12482, 12483, 12484, 12485, 12486, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12494, 12495, 12496, 12497, 12498, 12499, 12500, 12501, 12502, 12503, 12504, 12505, 12506, 12507, 12508, 12509, 12510, 12511, 12512, 12513, 12514, 12515, 12516, 12517, 12518, 12519, 12520, 12521, 12522, 12523, 12524, 12525, 12526, 12527, 12528, 12529, 12530, 12531, 12532, 12533, 12534, 12535, 12536, 12537, 12538, 12540, 12541, 12542, 12543, 12549, 12550, 12551, 12552, 12553, 12554, 12555, 12556, 12557, 12558, 12559, 12560, 12561, 12562, 12563, 12564, 12565, 12566, 12567, 12568, 12569, 12570, 12571, 12572, 12573, 12574, 12575, 12576, 12577, 12578, 12579, 12580, 12581, 12582, 12583, 12584, 12585, 12586, 12587, 12588, 12589, 12593, 12594, 12595, 12596, 12597, 12598, 12599, 12600, 12601, 12602, 12603, 12604, 12605, 12606, 12607, 12608, 12609, 12610, 12611, 12612, 12613, 12614, 12615, 12616, 12617, 12618, 12619, 12620, 12621, 12622, 12623, 12624, 12625, 12626, 12627, 12628, 12629, 12630, 12631, 12632, 12633, 12634, 12635, 12636, 12637, 12638, 12639, 12640, 12641, 12642, 12643, 12644, 12645, 12646, 12647, 12648, 12649, 12650, 12651, 12652, 12653, 12654, 12655, 12656, 12657, 12658, 12659, 12660, 12661, 12662, 12663, 12664, 12665, 12666, 12667, 12668, 12669, 12670, 12671, 12672, 12673, 12674, 12675, 12676, 12677, 12678, 12679, 12680, 12681, 12682, 12683, 12684, 12685, 12686, 12704, 12705, 12706, 12707, 12708, 12709, 12710, 12711, 12712, 12713, 12714, 12715, 12716, 12717, 12718, 12719, 12720, 12721, 12722, 12723, 12724, 12725, 12726, 12727, 12728, 12729, 12730, 12784, 12785, 12786, 12787, 12788, 12789, 12790, 12791, 12792, 12793, 12794, 12795, 12796, 12797, 12798, 12799, 13312, 19893, 19968, 40917, 40960, 40961, 40962, 40963, 40964, 40965, 40966, 40967, 40968, 40969, 40970, 40971, 40972, 40973, 40974, 40975, 40976, 40977, 40978, 40979, 40980, 40981, 40982, 40983, 40984, 40985, 40986, 40987, 40988, 40989, 40990, 40991, 40992, 40993, 40994, 40995, 40996, 40997, 40998, 40999, 41000, 41001, 41002, 41003, 41004, 41005, 41006, 41007, 41008, 41009, 41010, 41011, 41012, 41013, 41014, 41015, 41016, 41017, 41018, 41019, 41020, 41021, 41022, 41023, 41024, 41025, 41026, 41027, 41028, 41029, 41030, 41031, 41032, 41033, 41034, 41035, 41036, 41037, 41038, 41039, 41040, 41041, 41042, 41043, 41044, 41045, 41046, 41047, 41048, 41049, 41050, 41051, 41052, 41053, 41054, 41055, 41056, 41057, 41058, 41059, 41060, 41061, 41062, 41063, 41064, 41065, 41066, 41067, 41068, 41069, 41070, 41071, 41072, 41073, 41074, 41075, 41076, 41077, 41078, 41079, 41080, 41081, 41082, 41083, 41084, 41085, 41086, 41087, 41088, 41089, 41090, 41091, 41092, 41093, 41094, 41095, 41096, 41097, 41098, 41099, 41100, 41101, 41102, 41103, 41104, 41105, 41106, 41107, 41108, 41109, 41110, 41111, 41112, 41113, 41114, 41115, 41116, 41117, 41118, 41119, 41120, 41121, 41122, 41123, 41124, 41125, 41126, 41127, 41128, 41129, 41130, 41131, 41132, 41133, 41134, 41135, 41136, 41137, 41138, 41139, 41140, 41141, 41142, 41143, 41144, 41145, 41146, 41147, 41148, 41149, 41150, 41151, 41152, 41153, 41154, 41155, 41156, 41157, 41158, 41159, 41160, 41161, 41162, 41163, 41164, 41165, 41166, 41167, 41168, 41169, 41170, 41171, 41172, 41173, 41174, 41175, 41176, 41177, 41178, 41179, 41180, 41181, 41182, 41183, 41184, 41185, 41186, 41187, 41188, 41189, 41190, 41191, 41192, 41193, 41194, 41195, 41196, 41197, 41198, 41199, 41200, 41201, 41202, 41203, 41204, 41205, 41206, 41207, 41208, 41209, 41210, 41211, 41212, 41213, 41214, 41215, 41216, 41217, 41218, 41219, 41220, 41221, 41222, 41223, 41224, 41225, 41226, 41227, 41228, 41229, 41230, 41231, 41232, 41233, 41234, 41235, 41236, 41237, 41238, 41239, 41240, 41241, 41242, 41243, 41244, 41245, 41246, 41247, 41248, 41249, 41250, 41251, 41252, 41253, 41254, 41255, 41256, 41257, 41258, 41259, 41260, 41261, 41262, 41263, 41264, 41265, 41266, 41267, 41268, 41269, 41270, 41271, 41272, 41273, 41274, 41275, 41276, 41277, 41278, 41279, 41280, 41281, 41282, 41283, 41284, 41285, 41286, 41287, 41288, 41289, 41290, 41291, 41292, 41293, 41294, 41295, 41296, 41297, 41298, 41299, 41300, 41301, 41302, 41303, 41304, 41305, 41306, 41307, 41308, 41309, 41310, 41311, 41312, 41313, 41314, 41315, 41316, 41317, 41318, 41319, 41320, 41321, 41322, 41323, 41324, 41325, 41326, 41327, 41328, 41329, 41330, 41331, 41332, 41333, 41334, 41335, 41336, 41337, 41338, 41339, 41340, 41341, 41342, 41343, 41344, 41345, 41346, 41347, 41348, 41349, 41350, 41351, 41352, 41353, 41354, 41355, 41356, 41357, 41358, 41359, 41360, 41361, 41362, 41363, 41364, 41365, 41366, 41367, 41368, 41369, 41370, 41371, 41372, 41373, 41374, 41375, 41376, 41377, 41378, 41379, 41380, 41381, 41382, 41383, 41384, 41385, 41386, 41387, 41388, 41389, 41390, 41391, 41392, 41393, 41394, 41395, 41396, 41397, 41398, 41399, 41400, 41401, 41402, 41403, 41404, 41405, 41406, 41407, 41408, 41409, 41410, 41411, 41412, 41413, 41414, 41415, 41416, 41417, 41418, 41419, 41420, 41421, 41422, 41423, 41424, 41425, 41426, 41427, 41428, 41429, 41430, 41431, 41432, 41433, 41434, 41435, 41436, 41437, 41438, 41439, 41440, 41441, 41442, 41443, 41444, 41445, 41446, 41447, 41448, 41449, 41450, 41451, 41452, 41453, 41454, 41455, 41456, 41457, 41458, 41459, 41460, 41461, 41462, 41463, 41464, 41465, 41466, 41467, 41468, 41469, 41470, 41471, 41472, 41473, 41474, 41475, 41476, 41477, 41478, 41479, 41480, 41481, 41482, 41483, 41484, 41485, 41486, 41487, 41488, 41489, 41490, 41491, 41492, 41493, 41494, 41495, 41496, 41497, 41498, 41499, 41500, 41501, 41502, 41503, 41504, 41505, 41506, 41507, 41508, 41509, 41510, 41511, 41512, 41513, 41514, 41515, 41516, 41517, 41518, 41519, 41520, 41521, 41522, 41523, 41524, 41525, 41526, 41527, 41528, 41529, 41530, 41531, 41532, 41533, 41534, 41535, 41536, 41537, 41538, 41539, 41540, 41541, 41542, 41543, 41544, 41545, 41546, 41547, 41548, 41549, 41550, 41551, 41552, 41553, 41554, 41555, 41556, 41557, 41558, 41559, 41560, 41561, 41562, 41563, 41564, 41565, 41566, 41567, 41568, 41569, 41570, 41571, 41572, 41573, 41574, 41575, 41576, 41577, 41578, 41579, 41580, 41581, 41582, 41583, 41584, 41585, 41586, 41587, 41588, 41589, 41590, 41591, 41592, 41593, 41594, 41595, 41596, 41597, 41598, 41599, 41600, 41601, 41602, 41603, 41604, 41605, 41606, 41607, 41608, 41609, 41610, 41611, 41612, 41613, 41614, 41615, 41616, 41617, 41618, 41619, 41620, 41621, 41622, 41623, 41624, 41625, 41626, 41627, 41628, 41629, 41630, 41631, 41632, 41633, 41634, 41635, 41636, 41637, 41638, 41639, 41640, 41641, 41642, 41643, 41644, 41645, 41646, 41647, 41648, 41649, 41650, 41651, 41652, 41653, 41654, 41655, 41656, 41657, 41658, 41659, 41660, 41661, 41662, 41663, 41664, 41665, 41666, 41667, 41668, 41669, 41670, 41671, 41672, 41673, 41674, 41675, 41676, 41677, 41678, 41679, 41680, 41681, 41682, 41683, 41684, 41685, 41686, 41687, 41688, 41689, 41690, 41691, 41692, 41693, 41694, 41695, 41696, 41697, 41698, 41699, 41700, 41701, 41702, 41703, 41704, 41705, 41706, 41707, 41708, 41709, 41710, 41711, 41712, 41713, 41714, 41715, 41716, 41717, 41718, 41719, 41720, 41721, 41722, 41723, 41724, 41725, 41726, 41727, 41728, 41729, 41730, 41731, 41732, 41733, 41734, 41735, 41736, 41737, 41738, 41739, 41740, 41741, 41742, 41743, 41744, 41745, 41746, 41747, 41748, 41749, 41750, 41751, 41752, 41753, 41754, 41755, 41756, 41757, 41758, 41759, 41760, 41761, 41762, 41763, 41764, 41765, 41766, 41767, 41768, 41769, 41770, 41771, 41772, 41773, 41774, 41775, 41776, 41777, 41778, 41779, 41780, 41781, 41782, 41783, 41784, 41785, 41786, 41787, 41788, 41789, 41790, 41791, 41792, 41793, 41794, 41795, 41796, 41797, 41798, 41799, 41800, 41801, 41802, 41803, 41804, 41805, 41806, 41807, 41808, 41809, 41810, 41811, 41812, 41813, 41814, 41815, 41816, 41817, 41818, 41819, 41820, 41821, 41822, 41823, 41824, 41825, 41826, 41827, 41828, 41829, 41830, 41831, 41832, 41833, 41834, 41835, 41836, 41837, 41838, 41839, 41840, 41841, 41842, 41843, 41844, 41845, 41846, 41847, 41848, 41849, 41850, 41851, 41852, 41853, 41854, 41855, 41856, 41857, 41858, 41859, 41860, 41861, 41862, 41863, 41864, 41865, 41866, 41867, 41868, 41869, 41870, 41871, 41872, 41873, 41874, 41875, 41876, 41877, 41878, 41879, 41880, 41881, 41882, 41883, 41884, 41885, 41886, 41887, 41888, 41889, 41890, 41891, 41892, 41893, 41894, 41895, 41896, 41897, 41898, 41899, 41900, 41901, 41902, 41903, 41904, 41905, 41906, 41907, 41908, 41909, 41910, 41911, 41912, 41913, 41914, 41915, 41916, 41917, 41918, 41919, 41920, 41921, 41922, 41923, 41924, 41925, 41926, 41927, 41928, 41929, 41930, 41931, 41932, 41933, 41934, 41935, 41936, 41937, 41938, 41939, 41940, 41941, 41942, 41943, 41944, 41945, 41946, 41947, 41948, 41949, 41950, 41951, 41952, 41953, 41954, 41955, 41956, 41957, 41958, 41959, 41960, 41961, 41962, 41963, 41964, 41965, 41966, 41967, 41968, 41969, 41970, 41971, 41972, 41973, 41974, 41975, 41976, 41977, 41978, 41979, 41980, 41981, 41982, 41983, 41984, 41985, 41986, 41987, 41988, 41989, 41990, 41991, 41992, 41993, 41994, 41995, 41996, 41997, 41998, 41999, 42000, 42001, 42002, 42003, 42004, 42005, 42006, 42007, 42008, 42009, 42010, 42011, 42012, 42013, 42014, 42015, 42016, 42017, 42018, 42019, 42020, 42021, 42022, 42023, 42024, 42025, 42026, 42027, 42028, 42029, 42030, 42031, 42032, 42033, 42034, 42035, 42036, 42037, 42038, 42039, 42040, 42041, 42042, 42043, 42044, 42045, 42046, 42047, 42048, 42049, 42050, 42051, 42052, 42053, 42054, 42055, 42056, 42057, 42058, 42059, 42060, 42061, 42062, 42063, 42064, 42065, 42066, 42067, 42068, 42069, 42070, 42071, 42072, 42073, 42074, 42075, 42076, 42077, 42078, 42079, 42080, 42081, 42082, 42083, 42084, 42085, 42086, 42087, 42088, 42089, 42090, 42091, 42092, 42093, 42094, 42095, 42096, 42097, 42098, 42099, 42100, 42101, 42102, 42103, 42104, 42105, 42106, 42107, 42108, 42109, 42110, 42111, 42112, 42113, 42114, 42115, 42116, 42117, 42118, 42119, 42120, 42121, 42122, 42123, 42124, 42192, 42193, 42194, 42195, 42196, 42197, 42198, 42199, 42200, 42201, 42202, 42203, 42204, 42205, 42206, 42207, 42208, 42209, 42210, 42211, 42212, 42213, 42214, 42215, 42216, 42217, 42218, 42219, 42220, 42221, 42222, 42223, 42224, 42225, 42226, 42227, 42228, 42229, 42230, 42231, 42232, 42233, 42234, 42235, 42236, 42237, 42240, 42241, 42242, 42243, 42244, 42245, 42246, 42247, 42248, 42249, 42250, 42251, 42252, 42253, 42254, 42255, 42256, 42257, 42258, 42259, 42260, 42261, 42262, 42263, 42264, 42265, 42266, 42267, 42268, 42269, 42270, 42271, 42272, 42273, 42274, 42275, 42276, 42277, 42278, 42279, 42280, 42281, 42282, 42283, 42284, 42285, 42286, 42287, 42288, 42289, 42290, 42291, 42292, 42293, 42294, 42295, 42296, 42297, 42298, 42299, 42300, 42301, 42302, 42303, 42304, 42305, 42306, 42307, 42308, 42309, 42310, 42311, 42312, 42313, 42314, 42315, 42316, 42317, 42318, 42319, 42320, 42321, 42322, 42323, 42324, 42325, 42326, 42327, 42328, 42329, 42330, 42331, 42332, 42333, 42334, 42335, 42336, 42337, 42338, 42339, 42340, 42341, 42342, 42343, 42344, 42345, 42346, 42347, 42348, 42349, 42350, 42351, 42352, 42353, 42354, 42355, 42356, 42357, 42358, 42359, 42360, 42361, 42362, 42363, 42364, 42365, 42366, 42367, 42368, 42369, 42370, 42371, 42372, 42373, 42374, 42375, 42376, 42377, 42378, 42379, 42380, 42381, 42382, 42383, 42384, 42385, 42386, 42387, 42388, 42389, 42390, 42391, 42392, 42393, 42394, 42395, 42396, 42397, 42398, 42399, 42400, 42401, 42402, 42403, 42404, 42405, 42406, 42407, 42408, 42409, 42410, 42411, 42412, 42413, 42414, 42415, 42416, 42417, 42418, 42419, 42420, 42421, 42422, 42423, 42424, 42425, 42426, 42427, 42428, 42429, 42430, 42431, 42432, 42433, 42434, 42435, 42436, 42437, 42438, 42439, 42440, 42441, 42442, 42443, 42444, 42445, 42446, 42447, 42448, 42449, 42450, 42451, 42452, 42453, 42454, 42455, 42456, 42457, 42458, 42459, 42460, 42461, 42462, 42463, 42464, 42465, 42466, 42467, 42468, 42469, 42470, 42471, 42472, 42473, 42474, 42475, 42476, 42477, 42478, 42479, 42480, 42481, 42482, 42483, 42484, 42485, 42486, 42487, 42488, 42489, 42490, 42491, 42492, 42493, 42494, 42495, 42496, 42497, 42498, 42499, 42500, 42501, 42502, 42503, 42504, 42505, 42506, 42507, 42508, 42512, 42513, 42514, 42515, 42516, 42517, 42518, 42519, 42520, 42521, 42522, 42523, 42524, 42525, 42526, 42527, 42538, 42539, 42560, 42561, 42562, 42563, 42564, 42565, 42566, 42567, 42568, 42569, 42570, 42571, 42572, 42573, 42574, 42575, 42576, 42577, 42578, 42579, 42580, 42581, 42582, 42583, 42584, 42585, 42586, 42587, 42588, 42589, 42590, 42591, 42592, 42593, 42594, 42595, 42596, 42597, 42598, 42599, 42600, 42601, 42602, 42603, 42604, 42605, 42606, 42623, 42624, 42625, 42626, 42627, 42628, 42629, 42630, 42631, 42632, 42633, 42634, 42635, 42636, 42637, 42638, 42639, 42640, 42641, 42642, 42643, 42644, 42645, 42646, 42647, 42648, 42649, 42650, 42651, 42652, 42653, 42656, 42657, 42658, 42659, 42660, 42661, 42662, 42663, 42664, 42665, 42666, 42667, 42668, 42669, 42670, 42671, 42672, 42673, 42674, 42675, 42676, 42677, 42678, 42679, 42680, 42681, 42682, 42683, 42684, 42685, 42686, 42687, 42688, 42689, 42690, 42691, 42692, 42693, 42694, 42695, 42696, 42697, 42698, 42699, 42700, 42701, 42702, 42703, 42704, 42705, 42706, 42707, 42708, 42709, 42710, 42711, 42712, 42713, 42714, 42715, 42716, 42717, 42718, 42719, 42720, 42721, 42722, 42723, 42724, 42725, 42775, 42776, 42777, 42778, 42779, 42780, 42781, 42782, 42783, 42786, 42787, 42788, 42789, 42790, 42791, 42792, 42793, 42794, 42795, 42796, 42797, 42798, 42799, 42800, 42801, 42802, 42803, 42804, 42805, 42806, 42807, 42808, 42809, 42810, 42811, 42812, 42813, 42814, 42815, 42816, 42817, 42818, 42819, 42820, 42821, 42822, 42823, 42824, 42825, 42826, 42827, 42828, 42829, 42830, 42831, 42832, 42833, 42834, 42835, 42836, 42837, 42838, 42839, 42840, 42841, 42842, 42843, 42844, 42845, 42846, 42847, 42848, 42849, 42850, 42851, 42852, 42853, 42854, 42855, 42856, 42857, 42858, 42859, 42860, 42861, 42862, 42863, 42864, 42865, 42866, 42867, 42868, 42869, 42870, 42871, 42872, 42873, 42874, 42875, 42876, 42877, 42878, 42879, 42880, 42881, 42882, 42883, 42884, 42885, 42886, 42887, 42888, 42891, 42892, 42893, 42894, 42895, 42896, 42897, 42898, 42899, 42900, 42901, 42902, 42903, 42904, 42905, 42906, 42907, 42908, 42909, 42910, 42911, 42912, 42913, 42914, 42915, 42916, 42917, 42918, 42919, 42920, 42921, 42922, 42923, 42924, 42925, 42928, 42929, 42930, 42931, 42932, 42933, 42934, 42935, 42999, 43000, 43001, 43002, 43003, 43004, 43005, 43006, 43007, 43008, 43009, 43011, 43012, 43013, 43015, 43016, 43017, 43018, 43020, 43021, 43022, 43023, 43024, 43025, 43026, 43027, 43028, 43029, 43030, 43031, 43032, 43033, 43034, 43035, 43036, 43037, 43038, 43039, 43040, 43041, 43042, 43072, 43073, 43074, 43075, 43076, 43077, 43078, 43079, 43080, 43081, 43082, 43083, 43084, 43085, 43086, 43087, 43088, 43089, 43090, 43091, 43092, 43093, 43094, 43095, 43096, 43097, 43098, 43099, 43100, 43101, 43102, 43103, 43104, 43105, 43106, 43107, 43108, 43109, 43110, 43111, 43112, 43113, 43114, 43115, 43116, 43117, 43118, 43119, 43120, 43121, 43122, 43123, 43138, 43139, 43140, 43141, 43142, 43143, 43144, 43145, 43146, 43147, 43148, 43149, 43150, 43151, 43152, 43153, 43154, 43155, 43156, 43157, 43158, 43159, 43160, 43161, 43162, 43163, 43164, 43165, 43166, 43167, 43168, 43169, 43170, 43171, 43172, 43173, 43174, 43175, 43176, 43177, 43178, 43179, 43180, 43181, 43182, 43183, 43184, 43185, 43186, 43187, 43250, 43251, 43252, 43253, 43254, 43255, 43259, 43261, 43274, 43275, 43276, 43277, 43278, 43279, 43280, 43281, 43282, 43283, 43284, 43285, 43286, 43287, 43288, 43289, 43290, 43291, 43292, 43293, 43294, 43295, 43296, 43297, 43298, 43299, 43300, 43301, 43312, 43313, 43314, 43315, 43316, 43317, 43318, 43319, 43320, 43321, 43322, 43323, 43324, 43325, 43326, 43327, 43328, 43329, 43330, 43331, 43332, 43333, 43334, 43360, 43361, 43362, 43363, 43364, 43365, 43366, 43367, 43368, 43369, 43370, 43371, 43372, 43373, 43374, 43375, 43376, 43377, 43378, 43379, 43380, 43381, 43382, 43383, 43384, 43385, 43386, 43387, 43388, 43396, 43397, 43398, 43399, 43400, 43401, 43402, 43403, 43404, 43405, 43406, 43407, 43408, 43409, 43410, 43411, 43412, 43413, 43414, 43415, 43416, 43417, 43418, 43419, 43420, 43421, 43422, 43423, 43424, 43425, 43426, 43427, 43428, 43429, 43430, 43431, 43432, 43433, 43434, 43435, 43436, 43437, 43438, 43439, 43440, 43441, 43442, 43471, 43488, 43489, 43490, 43491, 43492, 43494, 43495, 43496, 43497, 43498, 43499, 43500, 43501, 43502, 43503, 43514, 43515, 43516, 43517, 43518, 43520, 43521, 43522, 43523, 43524, 43525, 43526, 43527, 43528, 43529, 43530, 43531, 43532, 43533, 43534, 43535, 43536, 43537, 43538, 43539, 43540, 43541, 43542, 43543, 43544, 43545, 43546, 43547, 43548, 43549, 43550, 43551, 43552, 43553, 43554, 43555, 43556, 43557, 43558, 43559, 43560, 43584, 43585, 43586, 43588, 43589, 43590, 43591, 43592, 43593, 43594, 43595, 43616, 43617, 43618, 43619, 43620, 43621, 43622, 43623, 43624, 43625, 43626, 43627, 43628, 43629, 43630, 43631, 43632, 43633, 43634, 43635, 43636, 43637, 43638, 43642, 43646, 43647, 43648, 43649, 43650, 43651, 43652, 43653, 43654, 43655, 43656, 43657, 43658, 43659, 43660, 43661, 43662, 43663, 43664, 43665, 43666, 43667, 43668, 43669, 43670, 43671, 43672, 43673, 43674, 43675, 43676, 43677, 43678, 43679, 43680, 43681, 43682, 43683, 43684, 43685, 43686, 43687, 43688, 43689, 43690, 43691, 43692, 43693, 43694, 43695, 43697, 43701, 43702, 43705, 43706, 43707, 43708, 43709, 43712, 43714, 43739, 43740, 43741, 43744, 43745, 43746, 43747, 43748, 43749, 43750, 43751, 43752, 43753, 43754, 43762, 43763, 43764, 43777, 43778, 43779, 43780, 43781, 43782, 43785, 43786, 43787, 43788, 43789, 43790, 43793, 43794, 43795, 43796, 43797, 43798, 43808, 43809, 43810, 43811, 43812, 43813, 43814, 43816, 43817, 43818, 43819, 43820, 43821, 43822, 43824, 43825, 43826, 43827, 43828, 43829, 43830, 43831, 43832, 43833, 43834, 43835, 43836, 43837, 43838, 43839, 43840, 43841, 43842, 43843, 43844, 43845, 43846, 43847, 43848, 43849, 43850, 43851, 43852, 43853, 43854, 43855, 43856, 43857, 43858, 43859, 43860, 43861, 43862, 43863, 43864, 43865, 43866, 43868, 43869, 43870, 43871, 43872, 43873, 43874, 43875, 43876, 43877, 43888, 43889, 43890, 43891, 43892, 43893, 43894, 43895, 43896, 43897, 43898, 43899, 43900, 43901, 43902, 43903, 43904, 43905, 43906, 43907, 43908, 43909, 43910, 43911, 43912, 43913, 43914, 43915, 43916, 43917, 43918, 43919, 43920, 43921, 43922, 43923, 43924, 43925, 43926, 43927, 43928, 43929, 43930, 43931, 43932, 43933, 43934, 43935, 43936, 43937, 43938, 43939, 43940, 43941, 43942, 43943, 43944, 43945, 43946, 43947, 43948, 43949, 43950, 43951, 43952, 43953, 43954, 43955, 43956, 43957, 43958, 43959, 43960, 43961, 43962, 43963, 43964, 43965, 43966, 43967, 43968, 43969, 43970, 43971, 43972, 43973, 43974, 43975, 43976, 43977, 43978, 43979, 43980, 43981, 43982, 43983, 43984, 43985, 43986, 43987, 43988, 43989, 43990, 43991, 43992, 43993, 43994, 43995, 43996, 43997, 43998, 43999, 44000, 44001, 44002, 44032, 55203, 55216, 55217, 55218, 55219, 55220, 55221, 55222, 55223, 55224, 55225, 55226, 55227, 55228, 55229, 55230, 55231, 55232, 55233, 55234, 55235, 55236, 55237, 55238, 55243, 55244, 55245, 55246, 55247, 55248, 55249, 55250, 55251, 55252, 55253, 55254, 55255, 55256, 55257, 55258, 55259, 55260, 55261, 55262, 55263, 55264, 55265, 55266, 55267, 55268, 55269, 55270, 55271, 55272, 55273, 55274, 55275, 55276, 55277, 55278, 55279, 55280, 55281, 55282, 55283, 55284, 55285, 55286, 55287, 55288, 55289, 55290, 55291, 63744, 63745, 63746, 63747, 63748, 63749, 63750, 63751, 63752, 63753, 63754, 63755, 63756, 63757, 63758, 63759, 63760, 63761, 63762, 63763, 63764, 63765, 63766, 63767, 63768, 63769, 63770, 63771, 63772, 63773, 63774, 63775, 63776, 63777, 63778, 63779, 63780, 63781, 63782, 63783, 63784, 63785, 63786, 63787, 63788, 63789, 63790, 63791, 63792, 63793, 63794, 63795, 63796, 63797, 63798, 63799, 63800, 63801, 63802, 63803, 63804, 63805, 63806, 63807, 63808, 63809, 63810, 63811, 63812, 63813, 63814, 63815, 63816, 63817, 63818, 63819, 63820, 63821, 63822, 63823, 63824, 63825, 63826, 63827, 63828, 63829, 63830, 63831, 63832, 63833, 63834, 63835, 63836, 63837, 63838, 63839, 63840, 63841, 63842, 63843, 63844, 63845, 63846, 63847, 63848, 63849, 63850, 63851, 63852, 63853, 63854, 63855, 63856, 63857, 63858, 63859, 63860, 63861, 63862, 63863, 63864, 63865, 63866, 63867, 63868, 63869, 63870, 63871, 63872, 63873, 63874, 63875, 63876, 63877, 63878, 63879, 63880, 63881, 63882, 63883, 63884, 63885, 63886, 63887, 63888, 63889, 63890, 63891, 63892, 63893, 63894, 63895, 63896, 63897, 63898, 63899, 63900, 63901, 63902, 63903, 63904, 63905, 63906, 63907, 63908, 63909, 63910, 63911, 63912, 63913, 63914, 63915, 63916, 63917, 63918, 63919, 63920, 63921, 63922, 63923, 63924, 63925, 63926, 63927, 63928, 63929, 63930, 63931, 63932, 63933, 63934, 63935, 63936, 63937, 63938, 63939, 63940, 63941, 63942, 63943, 63944, 63945, 63946, 63947, 63948, 63949, 63950, 63951, 63952, 63953, 63954, 63955, 63956, 63957, 63958, 63959, 63960, 63961, 63962, 63963, 63964, 63965, 63966, 63967, 63968, 63969, 63970, 63971, 63972, 63973, 63974, 63975, 63976, 63977, 63978, 63979, 63980, 63981, 63982, 63983, 63984, 63985, 63986, 63987, 63988, 63989, 63990, 63991, 63992, 63993, 63994, 63995, 63996, 63997, 63998, 63999, 64000, 64001, 64002, 64003, 64004, 64005, 64006, 64007, 64008, 64009, 64010, 64011, 64012, 64013, 64014, 64015, 64016, 64017, 64018, 64019, 64020, 64021, 64022, 64023, 64024, 64025, 64026, 64027, 64028, 64029, 64030, 64031, 64032, 64033, 64034, 64035, 64036, 64037, 64038, 64039, 64040, 64041, 64042, 64043, 64044, 64045, 64046, 64047, 64048, 64049, 64050, 64051, 64052, 64053, 64054, 64055, 64056, 64057, 64058, 64059, 64060, 64061, 64062, 64063, 64064, 64065, 64066, 64067, 64068, 64069, 64070, 64071, 64072, 64073, 64074, 64075, 64076, 64077, 64078, 64079, 64080, 64081, 64082, 64083, 64084, 64085, 64086, 64087, 64088, 64089, 64090, 64091, 64092, 64093, 64094, 64095, 64096, 64097, 64098, 64099, 64100, 64101, 64102, 64103, 64104, 64105, 64106, 64107, 64108, 64109, 64112, 64113, 64114, 64115, 64116, 64117, 64118, 64119, 64120, 64121, 64122, 64123, 64124, 64125, 64126, 64127, 64128, 64129, 64130, 64131, 64132, 64133, 64134, 64135, 64136, 64137, 64138, 64139, 64140, 64141, 64142, 64143, 64144, 64145, 64146, 64147, 64148, 64149, 64150, 64151, 64152, 64153, 64154, 64155, 64156, 64157, 64158, 64159, 64160, 64161, 64162, 64163, 64164, 64165, 64166, 64167, 64168, 64169, 64170, 64171, 64172, 64173, 64174, 64175, 64176, 64177, 64178, 64179, 64180, 64181, 64182, 64183, 64184, 64185, 64186, 64187, 64188, 64189, 64190, 64191, 64192, 64193, 64194, 64195, 64196, 64197, 64198, 64199, 64200, 64201, 64202, 64203, 64204, 64205, 64206, 64207, 64208, 64209, 64210, 64211, 64212, 64213, 64214, 64215, 64216, 64217, 64256, 64257, 64258, 64259, 64260, 64261, 64262, 64275, 64276, 64277, 64278, 64279, 64285, 64287, 64288, 64289, 64290, 64291, 64292, 64293, 64294, 64295, 64296, 64298, 64299, 64300, 64301, 64302, 64303, 64304, 64305, 64306, 64307, 64308, 64309, 64310, 64312, 64313, 64314, 64315, 64316, 64318, 64320, 64321, 64323, 64324, 64326, 64327, 64328, 64329, 64330, 64331, 64332, 64333, 64334, 64335, 64336, 64337, 64338, 64339, 64340, 64341, 64342, 64343, 64344, 64345, 64346, 64347, 64348, 64349, 64350, 64351, 64352, 64353, 64354, 64355, 64356, 64357, 64358, 64359, 64360, 64361, 64362, 64363, 64364, 64365, 64366, 64367, 64368, 64369, 64370, 64371, 64372, 64373, 64374, 64375, 64376, 64377, 64378, 64379, 64380, 64381, 64382, 64383, 64384, 64385, 64386, 64387, 64388, 64389, 64390, 64391, 64392, 64393, 64394, 64395, 64396, 64397, 64398, 64399, 64400, 64401, 64402, 64403, 64404, 64405, 64406, 64407, 64408, 64409, 64410, 64411, 64412, 64413, 64414, 64415, 64416, 64417, 64418, 64419, 64420, 64421, 64422, 64423, 64424, 64425, 64426, 64427, 64428, 64429, 64430, 64431, 64432, 64433, 64467, 64468, 64469, 64470, 64471, 64472, 64473, 64474, 64475, 64476, 64477, 64478, 64479, 64480, 64481, 64482, 64483, 64484, 64485, 64486, 64487, 64488, 64489, 64490, 64491, 64492, 64493, 64494, 64495, 64496, 64497, 64498, 64499, 64500, 64501, 64502, 64503, 64504, 64505, 64506, 64507, 64508, 64509, 64510, 64511, 64512, 64513, 64514, 64515, 64516, 64517, 64518, 64519, 64520, 64521, 64522, 64523, 64524, 64525, 64526, 64527, 64528, 64529, 64530, 64531, 64532, 64533, 64534, 64535, 64536, 64537, 64538, 64539, 64540, 64541, 64542, 64543, 64544, 64545, 64546, 64547, 64548, 64549, 64550, 64551, 64552, 64553, 64554, 64555, 64556, 64557, 64558, 64559, 64560, 64561, 64562, 64563, 64564, 64565, 64566, 64567, 64568, 64569, 64570, 64571, 64572, 64573, 64574, 64575, 64576, 64577, 64578, 64579, 64580, 64581, 64582, 64583, 64584, 64585, 64586, 64587, 64588, 64589, 64590, 64591, 64592, 64593, 64594, 64595, 64596, 64597, 64598, 64599, 64600, 64601, 64602, 64603, 64604, 64605, 64606, 64607, 64608, 64609, 64610, 64611, 64612, 64613, 64614, 64615, 64616, 64617, 64618, 64619, 64620, 64621, 64622, 64623, 64624, 64625, 64626, 64627, 64628, 64629, 64630, 64631, 64632, 64633, 64634, 64635, 64636, 64637, 64638, 64639, 64640, 64641, 64642, 64643, 64644, 64645, 64646, 64647, 64648, 64649, 64650, 64651, 64652, 64653, 64654, 64655, 64656, 64657, 64658, 64659, 64660, 64661, 64662, 64663, 64664, 64665, 64666, 64667, 64668, 64669, 64670, 64671, 64672, 64673, 64674, 64675, 64676, 64677, 64678, 64679, 64680, 64681, 64682, 64683, 64684, 64685, 64686, 64687, 64688, 64689, 64690, 64691, 64692, 64693, 64694, 64695, 64696, 64697, 64698, 64699, 64700, 64701, 64702, 64703, 64704, 64705, 64706, 64707, 64708, 64709, 64710, 64711, 64712, 64713, 64714, 64715, 64716, 64717, 64718, 64719, 64720, 64721, 64722, 64723, 64724, 64725, 64726, 64727, 64728, 64729, 64730, 64731, 64732, 64733, 64734, 64735, 64736, 64737, 64738, 64739, 64740, 64741, 64742, 64743, 64744, 64745, 64746, 64747, 64748, 64749, 64750, 64751, 64752, 64753, 64754, 64755, 64756, 64757, 64758, 64759, 64760, 64761, 64762, 64763, 64764, 64765, 64766, 64767, 64768, 64769, 64770, 64771, 64772, 64773, 64774, 64775, 64776, 64777, 64778, 64779, 64780, 64781, 64782, 64783, 64784, 64785, 64786, 64787, 64788, 64789, 64790, 64791, 64792, 64793, 64794, 64795, 64796, 64797, 64798, 64799, 64800, 64801, 64802, 64803, 64804, 64805, 64806, 64807, 64808, 64809, 64810, 64811, 64812, 64813, 64814, 64815, 64816, 64817, 64818, 64819, 64820, 64821, 64822, 64823, 64824, 64825, 64826, 64827, 64828, 64829, 64848, 64849, 64850, 64851, 64852, 64853, 64854, 64855, 64856, 64857, 64858, 64859, 64860, 64861, 64862, 64863, 64864, 64865, 64866, 64867, 64868, 64869, 64870, 64871, 64872, 64873, 64874, 64875, 64876, 64877, 64878, 64879, 64880, 64881, 64882, 64883, 64884, 64885, 64886, 64887, 64888, 64889, 64890, 64891, 64892, 64893, 64894, 64895, 64896, 64897, 64898, 64899, 64900, 64901, 64902, 64903, 64904, 64905, 64906, 64907, 64908, 64909, 64910, 64911, 64914, 64915, 64916, 64917, 64918, 64919, 64920, 64921, 64922, 64923, 64924, 64925, 64926, 64927, 64928, 64929, 64930, 64931, 64932, 64933, 64934, 64935, 64936, 64937, 64938, 64939, 64940, 64941, 64942, 64943, 64944, 64945, 64946, 64947, 64948, 64949, 64950, 64951, 64952, 64953, 64954, 64955, 64956, 64957, 64958, 64959, 64960, 64961, 64962, 64963, 64964, 64965, 64966, 64967, 65008, 65009, 65010, 65011, 65012, 65013, 65014, 65015, 65016, 65017, 65018, 65019, 65136, 65137, 65138, 65139, 65140, 65142, 65143, 65144, 65145, 65146, 65147, 65148, 65149, 65150, 65151, 65152, 65153, 65154, 65155, 65156, 65157, 65158, 65159, 65160, 65161, 65162, 65163, 65164, 65165, 65166, 65167, 65168, 65169, 65170, 65171, 65172, 65173, 65174, 65175, 65176, 65177, 65178, 65179, 65180, 65181, 65182, 65183, 65184, 65185, 65186, 65187, 65188, 65189, 65190, 65191, 65192, 65193, 65194, 65195, 65196, 65197, 65198, 65199, 65200, 65201, 65202, 65203, 65204, 65205, 65206, 65207, 65208, 65209, 65210, 65211, 65212, 65213, 65214, 65215, 65216, 65217, 65218, 65219, 65220, 65221, 65222, 65223, 65224, 65225, 65226, 65227, 65228, 65229, 65230, 65231, 65232, 65233, 65234, 65235, 65236, 65237, 65238, 65239, 65240, 65241, 65242, 65243, 65244, 65245, 65246, 65247, 65248, 65249, 65250, 65251, 65252, 65253, 65254, 65255, 65256, 65257, 65258, 65259, 65260, 65261, 65262, 65263, 65264, 65265, 65266, 65267, 65268, 65269, 65270, 65271, 65272, 65273, 65274, 65275, 65276, 65313, 65314, 65315, 65316, 65317, 65318, 65319, 65320, 65321, 65322, 65323, 65324, 65325, 65326, 65327, 65328, 65329, 65330, 65331, 65332, 65333, 65334, 65335, 65336, 65337, 65338, 65345, 65346, 65347, 65348, 65349, 65350, 65351, 65352, 65353, 65354, 65355, 65356, 65357, 65358, 65359, 65360, 65361, 65362, 65363, 65364, 65365, 65366, 65367, 65368, 65369, 65370, 65382, 65383, 65384, 65385, 65386, 65387, 65388, 65389, 65390, 65391, 65392, 65393, 65394, 65395, 65396, 65397, 65398, 65399, 65400, 65401, 65402, 65403, 65404, 65405, 65406, 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414, 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422, 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430, 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438, 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446, 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454, 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462, 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470, 65474, 65475, 65476, 65477, 65478, 65479, 65482, 65483, 65484, 65485, 65486, 65487, 65490, 65491, 65492, 65493, 65494, 65495, 65498, 65499, 65500, 65536, 65537, 65538, 65539, 65540, 65541, 65542, 65543, 65544, 65545, 65546, 65547, 65549, 65550, 65551, 65552, 65553, 65554, 65555, 65556, 65557, 65558, 65559, 65560, 65561, 65562, 65563, 65564, 65565, 65566, 65567, 65568, 65569, 65570, 65571, 65572, 65573, 65574, 65576, 65577, 65578, 65579, 65580, 65581, 65582, 65583, 65584, 65585, 65586, 65587, 65588, 65589, 65590, 65591, 65592, 65593, 65594, 65596, 65597, 65599, 65600, 65601, 65602, 65603, 65604, 65605, 65606, 65607, 65608, 65609, 65610, 65611, 65612, 65613, 65616, 65617, 65618, 65619, 65620, 65621, 65622, 65623, 65624, 65625, 65626, 65627, 65628, 65629, 65664, 65665, 65666, 65667, 65668, 65669, 65670, 65671, 65672, 65673, 65674, 65675, 65676, 65677, 65678, 65679, 65680, 65681, 65682, 65683, 65684, 65685, 65686, 65687, 65688, 65689, 65690, 65691, 65692, 65693, 65694, 65695, 65696, 65697, 65698, 65699, 65700, 65701, 65702, 65703, 65704, 65705, 65706, 65707, 65708, 65709, 65710, 65711, 65712, 65713, 65714, 65715, 65716, 65717, 65718, 65719, 65720, 65721, 65722, 65723, 65724, 65725, 65726, 65727, 65728, 65729, 65730, 65731, 65732, 65733, 65734, 65735, 65736, 65737, 65738, 65739, 65740, 65741, 65742, 65743, 65744, 65745, 65746, 65747, 65748, 65749, 65750, 65751, 65752, 65753, 65754, 65755, 65756, 65757, 65758, 65759, 65760, 65761, 65762, 65763, 65764, 65765, 65766, 65767, 65768, 65769, 65770, 65771, 65772, 65773, 65774, 65775, 65776, 65777, 65778, 65779, 65780, 65781, 65782, 65783, 65784, 65785, 65786, 66176, 66177, 66178, 66179, 66180, 66181, 66182, 66183, 66184, 66185, 66186, 66187, 66188, 66189, 66190, 66191, 66192, 66193, 66194, 66195, 66196, 66197, 66198, 66199, 66200, 66201, 66202, 66203, 66204, 66208, 66209, 66210, 66211, 66212, 66213, 66214, 66215, 66216, 66217, 66218, 66219, 66220, 66221, 66222, 66223, 66224, 66225, 66226, 66227, 66228, 66229, 66230, 66231, 66232, 66233, 66234, 66235, 66236, 66237, 66238, 66239, 66240, 66241, 66242, 66243, 66244, 66245, 66246, 66247, 66248, 66249, 66250, 66251, 66252, 66253, 66254, 66255, 66256, 66304, 66305, 66306, 66307, 66308, 66309, 66310, 66311, 66312, 66313, 66314, 66315, 66316, 66317, 66318, 66319, 66320, 66321, 66322, 66323, 66324, 66325, 66326, 66327, 66328, 66329, 66330, 66331, 66332, 66333, 66334, 66335, 66352, 66353, 66354, 66355, 66356, 66357, 66358, 66359, 66360, 66361, 66362, 66363, 66364, 66365, 66366, 66367, 66368, 66370, 66371, 66372, 66373, 66374, 66375, 66376, 66377, 66384, 66385, 66386, 66387, 66388, 66389, 66390, 66391, 66392, 66393, 66394, 66395, 66396, 66397, 66398, 66399, 66400, 66401, 66402, 66403, 66404, 66405, 66406, 66407, 66408, 66409, 66410, 66411, 66412, 66413, 66414, 66415, 66416, 66417, 66418, 66419, 66420, 66421, 66432, 66433, 66434, 66435, 66436, 66437, 66438, 66439, 66440, 66441, 66442, 66443, 66444, 66445, 66446, 66447, 66448, 66449, 66450, 66451, 66452, 66453, 66454, 66455, 66456, 66457, 66458, 66459, 66460, 66461, 66464, 66465, 66466, 66467, 66468, 66469, 66470, 66471, 66472, 66473, 66474, 66475, 66476, 66477, 66478, 66479, 66480, 66481, 66482, 66483, 66484, 66485, 66486, 66487, 66488, 66489, 66490, 66491, 66492, 66493, 66494, 66495, 66496, 66497, 66498, 66499, 66504, 66505, 66506, 66507, 66508, 66509, 66510, 66511, 66560, 66561, 66562, 66563, 66564, 66565, 66566, 66567, 66568, 66569, 66570, 66571, 66572, 66573, 66574, 66575, 66576, 66577, 66578, 66579, 66580, 66581, 66582, 66583, 66584, 66585, 66586, 66587, 66588, 66589, 66590, 66591, 66592, 66593, 66594, 66595, 66596, 66597, 66598, 66599, 66600, 66601, 66602, 66603, 66604, 66605, 66606, 66607, 66608, 66609, 66610, 66611, 66612, 66613, 66614, 66615, 66616, 66617, 66618, 66619, 66620, 66621, 66622, 66623, 66624, 66625, 66626, 66627, 66628, 66629, 66630, 66631, 66632, 66633, 66634, 66635, 66636, 66637, 66638, 66639, 66640, 66641, 66642, 66643, 66644, 66645, 66646, 66647, 66648, 66649, 66650, 66651, 66652, 66653, 66654, 66655, 66656, 66657, 66658, 66659, 66660, 66661, 66662, 66663, 66664, 66665, 66666, 66667, 66668, 66669, 66670, 66671, 66672, 66673, 66674, 66675, 66676, 66677, 66678, 66679, 66680, 66681, 66682, 66683, 66684, 66685, 66686, 66687, 66688, 66689, 66690, 66691, 66692, 66693, 66694, 66695, 66696, 66697, 66698, 66699, 66700, 66701, 66702, 66703, 66704, 66705, 66706, 66707, 66708, 66709, 66710, 66711, 66712, 66713, 66714, 66715, 66716, 66717, 66816, 66817, 66818, 66819, 66820, 66821, 66822, 66823, 66824, 66825, 66826, 66827, 66828, 66829, 66830, 66831, 66832, 66833, 66834, 66835, 66836, 66837, 66838, 66839, 66840, 66841, 66842, 66843, 66844, 66845, 66846, 66847, 66848, 66849, 66850, 66851, 66852, 66853, 66854, 66855, 66864, 66865, 66866, 66867, 66868, 66869, 66870, 66871, 66872, 66873, 66874, 66875, 66876, 66877, 66878, 66879, 66880, 66881, 66882, 66883, 66884, 66885, 66886, 66887, 66888, 66889, 66890, 66891, 66892, 66893, 66894, 66895, 66896, 66897, 66898, 66899, 66900, 66901, 66902, 66903, 66904, 66905, 66906, 66907, 66908, 66909, 66910, 66911, 66912, 66913, 66914, 66915, 67072, 67073, 67074, 67075, 67076, 67077, 67078, 67079, 67080, 67081, 67082, 67083, 67084, 67085, 67086, 67087, 67088, 67089, 67090, 67091, 67092, 67093, 67094, 67095, 67096, 67097, 67098, 67099, 67100, 67101, 67102, 67103, 67104, 67105, 67106, 67107, 67108, 67109, 67110, 67111, 67112, 67113, 67114, 67115, 67116, 67117, 67118, 67119, 67120, 67121, 67122, 67123, 67124, 67125, 67126, 67127, 67128, 67129, 67130, 67131, 67132, 67133, 67134, 67135, 67136, 67137, 67138, 67139, 67140, 67141, 67142, 67143, 67144, 67145, 67146, 67147, 67148, 67149, 67150, 67151, 67152, 67153, 67154, 67155, 67156, 67157, 67158, 67159, 67160, 67161, 67162, 67163, 67164, 67165, 67166, 67167, 67168, 67169, 67170, 67171, 67172, 67173, 67174, 67175, 67176, 67177, 67178, 67179, 67180, 67181, 67182, 67183, 67184, 67185, 67186, 67187, 67188, 67189, 67190, 67191, 67192, 67193, 67194, 67195, 67196, 67197, 67198, 67199, 67200, 67201, 67202, 67203, 67204, 67205, 67206, 67207, 67208, 67209, 67210, 67211, 67212, 67213, 67214, 67215, 67216, 67217, 67218, 67219, 67220, 67221, 67222, 67223, 67224, 67225, 67226, 67227, 67228, 67229, 67230, 67231, 67232, 67233, 67234, 67235, 67236, 67237, 67238, 67239, 67240, 67241, 67242, 67243, 67244, 67245, 67246, 67247, 67248, 67249, 67250, 67251, 67252, 67253, 67254, 67255, 67256, 67257, 67258, 67259, 67260, 67261, 67262, 67263, 67264, 67265, 67266, 67267, 67268, 67269, 67270, 67271, 67272, 67273, 67274, 67275, 67276, 67277, 67278, 67279, 67280, 67281, 67282, 67283, 67284, 67285, 67286, 67287, 67288, 67289, 67290, 67291, 67292, 67293, 67294, 67295, 67296, 67297, 67298, 67299, 67300, 67301, 67302, 67303, 67304, 67305, 67306, 67307, 67308, 67309, 67310, 67311, 67312, 67313, 67314, 67315, 67316, 67317, 67318, 67319, 67320, 67321, 67322, 67323, 67324, 67325, 67326, 67327, 67328, 67329, 67330, 67331, 67332, 67333, 67334, 67335, 67336, 67337, 67338, 67339, 67340, 67341, 67342, 67343, 67344, 67345, 67346, 67347, 67348, 67349, 67350, 67351, 67352, 67353, 67354, 67355, 67356, 67357, 67358, 67359, 67360, 67361, 67362, 67363, 67364, 67365, 67366, 67367, 67368, 67369, 67370, 67371, 67372, 67373, 67374, 67375, 67376, 67377, 67378, 67379, 67380, 67381, 67382, 67392, 67393, 67394, 67395, 67396, 67397, 67398, 67399, 67400, 67401, 67402, 67403, 67404, 67405, 67406, 67407, 67408, 67409, 67410, 67411, 67412, 67413, 67424, 67425, 67426, 67427, 67428, 67429, 67430, 67431, 67584, 67585, 67586, 67587, 67588, 67589, 67592, 67594, 67595, 67596, 67597, 67598, 67599, 67600, 67601, 67602, 67603, 67604, 67605, 67606, 67607, 67608, 67609, 67610, 67611, 67612, 67613, 67614, 67615, 67616, 67617, 67618, 67619, 67620, 67621, 67622, 67623, 67624, 67625, 67626, 67627, 67628, 67629, 67630, 67631, 67632, 67633, 67634, 67635, 67636, 67637, 67639, 67640, 67644, 67647, 67648, 67649, 67650, 67651, 67652, 67653, 67654, 67655, 67656, 67657, 67658, 67659, 67660, 67661, 67662, 67663, 67664, 67665, 67666, 67667, 67668, 67669, 67680, 67681, 67682, 67683, 67684, 67685, 67686, 67687, 67688, 67689, 67690, 67691, 67692, 67693, 67694, 67695, 67696, 67697, 67698, 67699, 67700, 67701, 67702, 67712, 67713, 67714, 67715, 67716, 67717, 67718, 67719, 67720, 67721, 67722, 67723, 67724, 67725, 67726, 67727, 67728, 67729, 67730, 67731, 67732, 67733, 67734, 67735, 67736, 67737, 67738, 67739, 67740, 67741, 67742, 67808, 67809, 67810, 67811, 67812, 67813, 67814, 67815, 67816, 67817, 67818, 67819, 67820, 67821, 67822, 67823, 67824, 67825, 67826, 67828, 67829, 67840, 67841, 67842, 67843, 67844, 67845, 67846, 67847, 67848, 67849, 67850, 67851, 67852, 67853, 67854, 67855, 67856, 67857, 67858, 67859, 67860, 67861, 67872, 67873, 67874, 67875, 67876, 67877, 67878, 67879, 67880, 67881, 67882, 67883, 67884, 67885, 67886, 67887, 67888, 67889, 67890, 67891, 67892, 67893, 67894, 67895, 67896, 67897, 67968, 67969, 67970, 67971, 67972, 67973, 67974, 67975, 67976, 67977, 67978, 67979, 67980, 67981, 67982, 67983, 67984, 67985, 67986, 67987, 67988, 67989, 67990, 67991, 67992, 67993, 67994, 67995, 67996, 67997, 67998, 67999, 68000, 68001, 68002, 68003, 68004, 68005, 68006, 68007, 68008, 68009, 68010, 68011, 68012, 68013, 68014, 68015, 68016, 68017, 68018, 68019, 68020, 68021, 68022, 68023, 68030, 68031, 68096, 68112, 68113, 68114, 68115, 68117, 68118, 68119, 68121, 68122, 68123, 68124, 68125, 68126, 68127, 68128, 68129, 68130, 68131, 68132, 68133, 68134, 68135, 68136, 68137, 68138, 68139, 68140, 68141, 68142, 68143, 68144, 68145, 68146, 68147, 68192, 68193, 68194, 68195, 68196, 68197, 68198, 68199, 68200, 68201, 68202, 68203, 68204, 68205, 68206, 68207, 68208, 68209, 68210, 68211, 68212, 68213, 68214, 68215, 68216, 68217, 68218, 68219, 68220, 68224, 68225, 68226, 68227, 68228, 68229, 68230, 68231, 68232, 68233, 68234, 68235, 68236, 68237, 68238, 68239, 68240, 68241, 68242, 68243, 68244, 68245, 68246, 68247, 68248, 68249, 68250, 68251, 68252, 68288, 68289, 68290, 68291, 68292, 68293, 68294, 68295, 68297, 68298, 68299, 68300, 68301, 68302, 68303, 68304, 68305, 68306, 68307, 68308, 68309, 68310, 68311, 68312, 68313, 68314, 68315, 68316, 68317, 68318, 68319, 68320, 68321, 68322, 68323, 68324, 68352, 68353, 68354, 68355, 68356, 68357, 68358, 68359, 68360, 68361, 68362, 68363, 68364, 68365, 68366, 68367, 68368, 68369, 68370, 68371, 68372, 68373, 68374, 68375, 68376, 68377, 68378, 68379, 68380, 68381, 68382, 68383, 68384, 68385, 68386, 68387, 68388, 68389, 68390, 68391, 68392, 68393, 68394, 68395, 68396, 68397, 68398, 68399, 68400, 68401, 68402, 68403, 68404, 68405, 68416, 68417, 68418, 68419, 68420, 68421, 68422, 68423, 68424, 68425, 68426, 68427, 68428, 68429, 68430, 68431, 68432, 68433, 68434, 68435, 68436, 68437, 68448, 68449, 68450, 68451, 68452, 68453, 68454, 68455, 68456, 68457, 68458, 68459, 68460, 68461, 68462, 68463, 68464, 68465, 68466, 68480, 68481, 68482, 68483, 68484, 68485, 68486, 68487, 68488, 68489, 68490, 68491, 68492, 68493, 68494, 68495, 68496, 68497, 68608, 68609, 68610, 68611, 68612, 68613, 68614, 68615, 68616, 68617, 68618, 68619, 68620, 68621, 68622, 68623, 68624, 68625, 68626, 68627, 68628, 68629, 68630, 68631, 68632, 68633, 68634, 68635, 68636, 68637, 68638, 68639, 68640, 68641, 68642, 68643, 68644, 68645, 68646, 68647, 68648, 68649, 68650, 68651, 68652, 68653, 68654, 68655, 68656, 68657, 68658, 68659, 68660, 68661, 68662, 68663, 68664, 68665, 68666, 68667, 68668, 68669, 68670, 68671, 68672, 68673, 68674, 68675, 68676, 68677, 68678, 68679, 68680, 68736, 68737, 68738, 68739, 68740, 68741, 68742, 68743, 68744, 68745, 68746, 68747, 68748, 68749, 68750, 68751, 68752, 68753, 68754, 68755, 68756, 68757, 68758, 68759, 68760, 68761, 68762, 68763, 68764, 68765, 68766, 68767, 68768, 68769, 68770, 68771, 68772, 68773, 68774, 68775, 68776, 68777, 68778, 68779, 68780, 68781, 68782, 68783, 68784, 68785, 68786, 68800, 68801, 68802, 68803, 68804, 68805, 68806, 68807, 68808, 68809, 68810, 68811, 68812, 68813, 68814, 68815, 68816, 68817, 68818, 68819, 68820, 68821, 68822, 68823, 68824, 68825, 68826, 68827, 68828, 68829, 68830, 68831, 68832, 68833, 68834, 68835, 68836, 68837, 68838, 68839, 68840, 68841, 68842, 68843, 68844, 68845, 68846, 68847, 68848, 68849, 68850, 69635, 69636, 69637, 69638, 69639, 69640, 69641, 69642, 69643, 69644, 69645, 69646, 69647, 69648, 69649, 69650, 69651, 69652, 69653, 69654, 69655, 69656, 69657, 69658, 69659, 69660, 69661, 69662, 69663, 69664, 69665, 69666, 69667, 69668, 69669, 69670, 69671, 69672, 69673, 69674, 69675, 69676, 69677, 69678, 69679, 69680, 69681, 69682, 69683, 69684, 69685, 69686, 69687, 69763, 69764, 69765, 69766, 69767, 69768, 69769, 69770, 69771, 69772, 69773, 69774, 69775, 69776, 69777, 69778, 69779, 69780, 69781, 69782, 69783, 69784, 69785, 69786, 69787, 69788, 69789, 69790, 69791, 69792, 69793, 69794, 69795, 69796, 69797, 69798, 69799, 69800, 69801, 69802, 69803, 69804, 69805, 69806, 69807, 69840, 69841, 69842, 69843, 69844, 69845, 69846, 69847, 69848, 69849, 69850, 69851, 69852, 69853, 69854, 69855, 69856, 69857, 69858, 69859, 69860, 69861, 69862, 69863, 69864, 69891, 69892, 69893, 69894, 69895, 69896, 69897, 69898, 69899, 69900, 69901, 69902, 69903, 69904, 69905, 69906, 69907, 69908, 69909, 69910, 69911, 69912, 69913, 69914, 69915, 69916, 69917, 69918, 69919, 69920, 69921, 69922, 69923, 69924, 69925, 69926, 69968, 69969, 69970, 69971, 69972, 69973, 69974, 69975, 69976, 69977, 69978, 69979, 69980, 69981, 69982, 69983, 69984, 69985, 69986, 69987, 69988, 69989, 69990, 69991, 69992, 69993, 69994, 69995, 69996, 69997, 69998, 69999, 70000, 70001, 70002, 70006, 70019, 70020, 70021, 70022, 70023, 70024, 70025, 70026, 70027, 70028, 70029, 70030, 70031, 70032, 70033, 70034, 70035, 70036, 70037, 70038, 70039, 70040, 70041, 70042, 70043, 70044, 70045, 70046, 70047, 70048, 70049, 70050, 70051, 70052, 70053, 70054, 70055, 70056, 70057, 70058, 70059, 70060, 70061, 70062, 70063, 70064, 70065, 70066, 70081, 70082, 70083, 70084, 70106, 70108, 70144, 70145, 70146, 70147, 70148, 70149, 70150, 70151, 70152, 70153, 70154, 70155, 70156, 70157, 70158, 70159, 70160, 70161, 70163, 70164, 70165, 70166, 70167, 70168, 70169, 70170, 70171, 70172, 70173, 70174, 70175, 70176, 70177, 70178, 70179, 70180, 70181, 70182, 70183, 70184, 70185, 70186, 70187, 70272, 70273, 70274, 70275, 70276, 70277, 70278, 70280, 70282, 70283, 70284, 70285, 70287, 70288, 70289, 70290, 70291, 70292, 70293, 70294, 70295, 70296, 70297, 70298, 70299, 70300, 70301, 70303, 70304, 70305, 70306, 70307, 70308, 70309, 70310, 70311, 70312, 70320, 70321, 70322, 70323, 70324, 70325, 70326, 70327, 70328, 70329, 70330, 70331, 70332, 70333, 70334, 70335, 70336, 70337, 70338, 70339, 70340, 70341, 70342, 70343, 70344, 70345, 70346, 70347, 70348, 70349, 70350, 70351, 70352, 70353, 70354, 70355, 70356, 70357, 70358, 70359, 70360, 70361, 70362, 70363, 70364, 70365, 70366, 70405, 70406, 70407, 70408, 70409, 70410, 70411, 70412, 70415, 70416, 70419, 70420, 70421, 70422, 70423, 70424, 70425, 70426, 70427, 70428, 70429, 70430, 70431, 70432, 70433, 70434, 70435, 70436, 70437, 70438, 70439, 70440, 70442, 70443, 70444, 70445, 70446, 70447, 70448, 70450, 70451, 70453, 70454, 70455, 70456, 70457, 70461, 70480, 70493, 70494, 70495, 70496, 70497, 70784, 70785, 70786, 70787, 70788, 70789, 70790, 70791, 70792, 70793, 70794, 70795, 70796, 70797, 70798, 70799, 70800, 70801, 70802, 70803, 70804, 70805, 70806, 70807, 70808, 70809, 70810, 70811, 70812, 70813, 70814, 70815, 70816, 70817, 70818, 70819, 70820, 70821, 70822, 70823, 70824, 70825, 70826, 70827, 70828, 70829, 70830, 70831, 70852, 70853, 70855, 71040, 71041, 71042, 71043, 71044, 71045, 71046, 71047, 71048, 71049, 71050, 71051, 71052, 71053, 71054, 71055, 71056, 71057, 71058, 71059, 71060, 71061, 71062, 71063, 71064, 71065, 71066, 71067, 71068, 71069, 71070, 71071, 71072, 71073, 71074, 71075, 71076, 71077, 71078, 71079, 71080, 71081, 71082, 71083, 71084, 71085, 71086, 71128, 71129, 71130, 71131, 71168, 71169, 71170, 71171, 71172, 71173, 71174, 71175, 71176, 71177, 71178, 71179, 71180, 71181, 71182, 71183, 71184, 71185, 71186, 71187, 71188, 71189, 71190, 71191, 71192, 71193, 71194, 71195, 71196, 71197, 71198, 71199, 71200, 71201, 71202, 71203, 71204, 71205, 71206, 71207, 71208, 71209, 71210, 71211, 71212, 71213, 71214, 71215, 71236, 71296, 71297, 71298, 71299, 71300, 71301, 71302, 71303, 71304, 71305, 71306, 71307, 71308, 71309, 71310, 71311, 71312, 71313, 71314, 71315, 71316, 71317, 71318, 71319, 71320, 71321, 71322, 71323, 71324, 71325, 71326, 71327, 71328, 71329, 71330, 71331, 71332, 71333, 71334, 71335, 71336, 71337, 71338, 71424, 71425, 71426, 71427, 71428, 71429, 71430, 71431, 71432, 71433, 71434, 71435, 71436, 71437, 71438, 71439, 71440, 71441, 71442, 71443, 71444, 71445, 71446, 71447, 71448, 71449, 71840, 71841, 71842, 71843, 71844, 71845, 71846, 71847, 71848, 71849, 71850, 71851, 71852, 71853, 71854, 71855, 71856, 71857, 71858, 71859, 71860, 71861, 71862, 71863, 71864, 71865, 71866, 71867, 71868, 71869, 71870, 71871, 71872, 71873, 71874, 71875, 71876, 71877, 71878, 71879, 71880, 71881, 71882, 71883, 71884, 71885, 71886, 71887, 71888, 71889, 71890, 71891, 71892, 71893, 71894, 71895, 71896, 71897, 71898, 71899, 71900, 71901, 71902, 71903, 71935, 72384, 72385, 72386, 72387, 72388, 72389, 72390, 72391, 72392, 72393, 72394, 72395, 72396, 72397, 72398, 72399, 72400, 72401, 72402, 72403, 72404, 72405, 72406, 72407, 72408, 72409, 72410, 72411, 72412, 72413, 72414, 72415, 72416, 72417, 72418, 72419, 72420, 72421, 72422, 72423, 72424, 72425, 72426, 72427, 72428, 72429, 72430, 72431, 72432, 72433, 72434, 72435, 72436, 72437, 72438, 72439, 72440, 73728, 73729, 73730, 73731, 73732, 73733, 73734, 73735, 73736, 73737, 73738, 73739, 73740, 73741, 73742, 73743, 73744, 73745, 73746, 73747, 73748, 73749, 73750, 73751, 73752, 73753, 73754, 73755, 73756, 73757, 73758, 73759, 73760, 73761, 73762, 73763, 73764, 73765, 73766, 73767, 73768, 73769, 73770, 73771, 73772, 73773, 73774, 73775, 73776, 73777, 73778, 73779, 73780, 73781, 73782, 73783, 73784, 73785, 73786, 73787, 73788, 73789, 73790, 73791, 73792, 73793, 73794, 73795, 73796, 73797, 73798, 73799, 73800, 73801, 73802, 73803, 73804, 73805, 73806, 73807, 73808, 73809, 73810, 73811, 73812, 73813, 73814, 73815, 73816, 73817, 73818, 73819, 73820, 73821, 73822, 73823, 73824, 73825, 73826, 73827, 73828, 73829, 73830, 73831, 73832, 73833, 73834, 73835, 73836, 73837, 73838, 73839, 73840, 73841, 73842, 73843, 73844, 73845, 73846, 73847, 73848, 73849, 73850, 73851, 73852, 73853, 73854, 73855, 73856, 73857, 73858, 73859, 73860, 73861, 73862, 73863, 73864, 73865, 73866, 73867, 73868, 73869, 73870, 73871, 73872, 73873, 73874, 73875, 73876, 73877, 73878, 73879, 73880, 73881, 73882, 73883, 73884, 73885, 73886, 73887, 73888, 73889, 73890, 73891, 73892, 73893, 73894, 73895, 73896, 73897, 73898, 73899, 73900, 73901, 73902, 73903, 73904, 73905, 73906, 73907, 73908, 73909, 73910, 73911, 73912, 73913, 73914, 73915, 73916, 73917, 73918, 73919, 73920, 73921, 73922, 73923, 73924, 73925, 73926, 73927, 73928, 73929, 73930, 73931, 73932, 73933, 73934, 73935, 73936, 73937, 73938, 73939, 73940, 73941, 73942, 73943, 73944, 73945, 73946, 73947, 73948, 73949, 73950, 73951, 73952, 73953, 73954, 73955, 73956, 73957, 73958, 73959, 73960, 73961, 73962, 73963, 73964, 73965, 73966, 73967, 73968, 73969, 73970, 73971, 73972, 73973, 73974, 73975, 73976, 73977, 73978, 73979, 73980, 73981, 73982, 73983, 73984, 73985, 73986, 73987, 73988, 73989, 73990, 73991, 73992, 73993, 73994, 73995, 73996, 73997, 73998, 73999, 74000, 74001, 74002, 74003, 74004, 74005, 74006, 74007, 74008, 74009, 74010, 74011, 74012, 74013, 74014, 74015, 74016, 74017, 74018, 74019, 74020, 74021, 74022, 74023, 74024, 74025, 74026, 74027, 74028, 74029, 74030, 74031, 74032, 74033, 74034, 74035, 74036, 74037, 74038, 74039, 74040, 74041, 74042, 74043, 74044, 74045, 74046, 74047, 74048, 74049, 74050, 74051, 74052, 74053, 74054, 74055, 74056, 74057, 74058, 74059, 74060, 74061, 74062, 74063, 74064, 74065, 74066, 74067, 74068, 74069, 74070, 74071, 74072, 74073, 74074, 74075, 74076, 74077, 74078, 74079, 74080, 74081, 74082, 74083, 74084, 74085, 74086, 74087, 74088, 74089, 74090, 74091, 74092, 74093, 74094, 74095, 74096, 74097, 74098, 74099, 74100, 74101, 74102, 74103, 74104, 74105, 74106, 74107, 74108, 74109, 74110, 74111, 74112, 74113, 74114, 74115, 74116, 74117, 74118, 74119, 74120, 74121, 74122, 74123, 74124, 74125, 74126, 74127, 74128, 74129, 74130, 74131, 74132, 74133, 74134, 74135, 74136, 74137, 74138, 74139, 74140, 74141, 74142, 74143, 74144, 74145, 74146, 74147, 74148, 74149, 74150, 74151, 74152, 74153, 74154, 74155, 74156, 74157, 74158, 74159, 74160, 74161, 74162, 74163, 74164, 74165, 74166, 74167, 74168, 74169, 74170, 74171, 74172, 74173, 74174, 74175, 74176, 74177, 74178, 74179, 74180, 74181, 74182, 74183, 74184, 74185, 74186, 74187, 74188, 74189, 74190, 74191, 74192, 74193, 74194, 74195, 74196, 74197, 74198, 74199, 74200, 74201, 74202, 74203, 74204, 74205, 74206, 74207, 74208, 74209, 74210, 74211, 74212, 74213, 74214, 74215, 74216, 74217, 74218, 74219, 74220, 74221, 74222, 74223, 74224, 74225, 74226, 74227, 74228, 74229, 74230, 74231, 74232, 74233, 74234, 74235, 74236, 74237, 74238, 74239, 74240, 74241, 74242, 74243, 74244, 74245, 74246, 74247, 74248, 74249, 74250, 74251, 74252, 74253, 74254, 74255, 74256, 74257, 74258, 74259, 74260, 74261, 74262, 74263, 74264, 74265, 74266, 74267, 74268, 74269, 74270, 74271, 74272, 74273, 74274, 74275, 74276, 74277, 74278, 74279, 74280, 74281, 74282, 74283, 74284, 74285, 74286, 74287, 74288, 74289, 74290, 74291, 74292, 74293, 74294, 74295, 74296, 74297, 74298, 74299, 74300, 74301, 74302, 74303, 74304, 74305, 74306, 74307, 74308, 74309, 74310, 74311, 74312, 74313, 74314, 74315, 74316, 74317, 74318, 74319, 74320, 74321, 74322, 74323, 74324, 74325, 74326, 74327, 74328, 74329, 74330, 74331, 74332, 74333, 74334, 74335, 74336, 74337, 74338, 74339, 74340, 74341, 74342, 74343, 74344, 74345, 74346, 74347, 74348, 74349, 74350, 74351, 74352, 74353, 74354, 74355, 74356, 74357, 74358, 74359, 74360, 74361, 74362, 74363, 74364, 74365, 74366, 74367, 74368, 74369, 74370, 74371, 74372, 74373, 74374, 74375, 74376, 74377, 74378, 74379, 74380, 74381, 74382, 74383, 74384, 74385, 74386, 74387, 74388, 74389, 74390, 74391, 74392, 74393, 74394, 74395, 74396, 74397, 74398, 74399, 74400, 74401, 74402, 74403, 74404, 74405, 74406, 74407, 74408, 74409, 74410, 74411, 74412, 74413, 74414, 74415, 74416, 74417, 74418, 74419, 74420, 74421, 74422, 74423, 74424, 74425, 74426, 74427, 74428, 74429, 74430, 74431, 74432, 74433, 74434, 74435, 74436, 74437, 74438, 74439, 74440, 74441, 74442, 74443, 74444, 74445, 74446, 74447, 74448, 74449, 74450, 74451, 74452, 74453, 74454, 74455, 74456, 74457, 74458, 74459, 74460, 74461, 74462, 74463, 74464, 74465, 74466, 74467, 74468, 74469, 74470, 74471, 74472, 74473, 74474, 74475, 74476, 74477, 74478, 74479, 74480, 74481, 74482, 74483, 74484, 74485, 74486, 74487, 74488, 74489, 74490, 74491, 74492, 74493, 74494, 74495, 74496, 74497, 74498, 74499, 74500, 74501, 74502, 74503, 74504, 74505, 74506, 74507, 74508, 74509, 74510, 74511, 74512, 74513, 74514, 74515, 74516, 74517, 74518, 74519, 74520, 74521, 74522, 74523, 74524, 74525, 74526, 74527, 74528, 74529, 74530, 74531, 74532, 74533, 74534, 74535, 74536, 74537, 74538, 74539, 74540, 74541, 74542, 74543, 74544, 74545, 74546, 74547, 74548, 74549, 74550, 74551, 74552, 74553, 74554, 74555, 74556, 74557, 74558, 74559, 74560, 74561, 74562, 74563, 74564, 74565, 74566, 74567, 74568, 74569, 74570, 74571, 74572, 74573, 74574, 74575, 74576, 74577, 74578, 74579, 74580, 74581, 74582, 74583, 74584, 74585, 74586, 74587, 74588, 74589, 74590, 74591, 74592, 74593, 74594, 74595, 74596, 74597, 74598, 74599, 74600, 74601, 74602, 74603, 74604, 74605, 74606, 74607, 74608, 74609, 74610, 74611, 74612, 74613, 74614, 74615, 74616, 74617, 74618, 74619, 74620, 74621, 74622, 74623, 74624, 74625, 74626, 74627, 74628, 74629, 74630, 74631, 74632, 74633, 74634, 74635, 74636, 74637, 74638, 74639, 74640, 74641, 74642, 74643, 74644, 74645, 74646, 74647, 74648, 74649, 74880, 74881, 74882, 74883, 74884, 74885, 74886, 74887, 74888, 74889, 74890, 74891, 74892, 74893, 74894, 74895, 74896, 74897, 74898, 74899, 74900, 74901, 74902, 74903, 74904, 74905, 74906, 74907, 74908, 74909, 74910, 74911, 74912, 74913, 74914, 74915, 74916, 74917, 74918, 74919, 74920, 74921, 74922, 74923, 74924, 74925, 74926, 74927, 74928, 74929, 74930, 74931, 74932, 74933, 74934, 74935, 74936, 74937, 74938, 74939, 74940, 74941, 74942, 74943, 74944, 74945, 74946, 74947, 74948, 74949, 74950, 74951, 74952, 74953, 74954, 74955, 74956, 74957, 74958, 74959, 74960, 74961, 74962, 74963, 74964, 74965, 74966, 74967, 74968, 74969, 74970, 74971, 74972, 74973, 74974, 74975, 74976, 74977, 74978, 74979, 74980, 74981, 74982, 74983, 74984, 74985, 74986, 74987, 74988, 74989, 74990, 74991, 74992, 74993, 74994, 74995, 74996, 74997, 74998, 74999, 75000, 75001, 75002, 75003, 75004, 75005, 75006, 75007, 75008, 75009, 75010, 75011, 75012, 75013, 75014, 75015, 75016, 75017, 75018, 75019, 75020, 75021, 75022, 75023, 75024, 75025, 75026, 75027, 75028, 75029, 75030, 75031, 75032, 75033, 75034, 75035, 75036, 75037, 75038, 75039, 75040, 75041, 75042, 75043, 75044, 75045, 75046, 75047, 75048, 75049, 75050, 75051, 75052, 75053, 75054, 75055, 75056, 75057, 75058, 75059, 75060, 75061, 75062, 75063, 75064, 75065, 75066, 75067, 75068, 75069, 75070, 75071, 75072, 75073, 75074, 75075, 77824, 77825, 77826, 77827, 77828, 77829, 77830, 77831, 77832, 77833, 77834, 77835, 77836, 77837, 77838, 77839, 77840, 77841, 77842, 77843, 77844, 77845, 77846, 77847, 77848, 77849, 77850, 77851, 77852, 77853, 77854, 77855, 77856, 77857, 77858, 77859, 77860, 77861, 77862, 77863, 77864, 77865, 77866, 77867, 77868, 77869, 77870, 77871, 77872, 77873, 77874, 77875, 77876, 77877, 77878, 77879, 77880, 77881, 77882, 77883, 77884, 77885, 77886, 77887, 77888, 77889, 77890, 77891, 77892, 77893, 77894, 77895, 77896, 77897, 77898, 77899, 77900, 77901, 77902, 77903, 77904, 77905, 77906, 77907, 77908, 77909, 77910, 77911, 77912, 77913, 77914, 77915, 77916, 77917, 77918, 77919, 77920, 77921, 77922, 77923, 77924, 77925, 77926, 77927, 77928, 77929, 77930, 77931, 77932, 77933, 77934, 77935, 77936, 77937, 77938, 77939, 77940, 77941, 77942, 77943, 77944, 77945, 77946, 77947, 77948, 77949, 77950, 77951, 77952, 77953, 77954, 77955, 77956, 77957, 77958, 77959, 77960, 77961, 77962, 77963, 77964, 77965, 77966, 77967, 77968, 77969, 77970, 77971, 77972, 77973, 77974, 77975, 77976, 77977, 77978, 77979, 77980, 77981, 77982, 77983, 77984, 77985, 77986, 77987, 77988, 77989, 77990, 77991, 77992, 77993, 77994, 77995, 77996, 77997, 77998, 77999, 78000, 78001, 78002, 78003, 78004, 78005, 78006, 78007, 78008, 78009, 78010, 78011, 78012, 78013, 78014, 78015, 78016, 78017, 78018, 78019, 78020, 78021, 78022, 78023, 78024, 78025, 78026, 78027, 78028, 78029, 78030, 78031, 78032, 78033, 78034, 78035, 78036, 78037, 78038, 78039, 78040, 78041, 78042, 78043, 78044, 78045, 78046, 78047, 78048, 78049, 78050, 78051, 78052, 78053, 78054, 78055, 78056, 78057, 78058, 78059, 78060, 78061, 78062, 78063, 78064, 78065, 78066, 78067, 78068, 78069, 78070, 78071, 78072, 78073, 78074, 78075, 78076, 78077, 78078, 78079, 78080, 78081, 78082, 78083, 78084, 78085, 78086, 78087, 78088, 78089, 78090, 78091, 78092, 78093, 78094, 78095, 78096, 78097, 78098, 78099, 78100, 78101, 78102, 78103, 78104, 78105, 78106, 78107, 78108, 78109, 78110, 78111, 78112, 78113, 78114, 78115, 78116, 78117, 78118, 78119, 78120, 78121, 78122, 78123, 78124, 78125, 78126, 78127, 78128, 78129, 78130, 78131, 78132, 78133, 78134, 78135, 78136, 78137, 78138, 78139, 78140, 78141, 78142, 78143, 78144, 78145, 78146, 78147, 78148, 78149, 78150, 78151, 78152, 78153, 78154, 78155, 78156, 78157, 78158, 78159, 78160, 78161, 78162, 78163, 78164, 78165, 78166, 78167, 78168, 78169, 78170, 78171, 78172, 78173, 78174, 78175, 78176, 78177, 78178, 78179, 78180, 78181, 78182, 78183, 78184, 78185, 78186, 78187, 78188, 78189, 78190, 78191, 78192, 78193, 78194, 78195, 78196, 78197, 78198, 78199, 78200, 78201, 78202, 78203, 78204, 78205, 78206, 78207, 78208, 78209, 78210, 78211, 78212, 78213, 78214, 78215, 78216, 78217, 78218, 78219, 78220, 78221, 78222, 78223, 78224, 78225, 78226, 78227, 78228, 78229, 78230, 78231, 78232, 78233, 78234, 78235, 78236, 78237, 78238, 78239, 78240, 78241, 78242, 78243, 78244, 78245, 78246, 78247, 78248, 78249, 78250, 78251, 78252, 78253, 78254, 78255, 78256, 78257, 78258, 78259, 78260, 78261, 78262, 78263, 78264, 78265, 78266, 78267, 78268, 78269, 78270, 78271, 78272, 78273, 78274, 78275, 78276, 78277, 78278, 78279, 78280, 78281, 78282, 78283, 78284, 78285, 78286, 78287, 78288, 78289, 78290, 78291, 78292, 78293, 78294, 78295, 78296, 78297, 78298, 78299, 78300, 78301, 78302, 78303, 78304, 78305, 78306, 78307, 78308, 78309, 78310, 78311, 78312, 78313, 78314, 78315, 78316, 78317, 78318, 78319, 78320, 78321, 78322, 78323, 78324, 78325, 78326, 78327, 78328, 78329, 78330, 78331, 78332, 78333, 78334, 78335, 78336, 78337, 78338, 78339, 78340, 78341, 78342, 78343, 78344, 78345, 78346, 78347, 78348, 78349, 78350, 78351, 78352, 78353, 78354, 78355, 78356, 78357, 78358, 78359, 78360, 78361, 78362, 78363, 78364, 78365, 78366, 78367, 78368, 78369, 78370, 78371, 78372, 78373, 78374, 78375, 78376, 78377, 78378, 78379, 78380, 78381, 78382, 78383, 78384, 78385, 78386, 78387, 78388, 78389, 78390, 78391, 78392, 78393, 78394, 78395, 78396, 78397, 78398, 78399, 78400, 78401, 78402, 78403, 78404, 78405, 78406, 78407, 78408, 78409, 78410, 78411, 78412, 78413, 78414, 78415, 78416, 78417, 78418, 78419, 78420, 78421, 78422, 78423, 78424, 78425, 78426, 78427, 78428, 78429, 78430, 78431, 78432, 78433, 78434, 78435, 78436, 78437, 78438, 78439, 78440, 78441, 78442, 78443, 78444, 78445, 78446, 78447, 78448, 78449, 78450, 78451, 78452, 78453, 78454, 78455, 78456, 78457, 78458, 78459, 78460, 78461, 78462, 78463, 78464, 78465, 78466, 78467, 78468, 78469, 78470, 78471, 78472, 78473, 78474, 78475, 78476, 78477, 78478, 78479, 78480, 78481, 78482, 78483, 78484, 78485, 78486, 78487, 78488, 78489, 78490, 78491, 78492, 78493, 78494, 78495, 78496, 78497, 78498, 78499, 78500, 78501, 78502, 78503, 78504, 78505, 78506, 78507, 78508, 78509, 78510, 78511, 78512, 78513, 78514, 78515, 78516, 78517, 78518, 78519, 78520, 78521, 78522, 78523, 78524, 78525, 78526, 78527, 78528, 78529, 78530, 78531, 78532, 78533, 78534, 78535, 78536, 78537, 78538, 78539, 78540, 78541, 78542, 78543, 78544, 78545, 78546, 78547, 78548, 78549, 78550, 78551, 78552, 78553, 78554, 78555, 78556, 78557, 78558, 78559, 78560, 78561, 78562, 78563, 78564, 78565, 78566, 78567, 78568, 78569, 78570, 78571, 78572, 78573, 78574, 78575, 78576, 78577, 78578, 78579, 78580, 78581, 78582, 78583, 78584, 78585, 78586, 78587, 78588, 78589, 78590, 78591, 78592, 78593, 78594, 78595, 78596, 78597, 78598, 78599, 78600, 78601, 78602, 78603, 78604, 78605, 78606, 78607, 78608, 78609, 78610, 78611, 78612, 78613, 78614, 78615, 78616, 78617, 78618, 78619, 78620, 78621, 78622, 78623, 78624, 78625, 78626, 78627, 78628, 78629, 78630, 78631, 78632, 78633, 78634, 78635, 78636, 78637, 78638, 78639, 78640, 78641, 78642, 78643, 78644, 78645, 78646, 78647, 78648, 78649, 78650, 78651, 78652, 78653, 78654, 78655, 78656, 78657, 78658, 78659, 78660, 78661, 78662, 78663, 78664, 78665, 78666, 78667, 78668, 78669, 78670, 78671, 78672, 78673, 78674, 78675, 78676, 78677, 78678, 78679, 78680, 78681, 78682, 78683, 78684, 78685, 78686, 78687, 78688, 78689, 78690, 78691, 78692, 78693, 78694, 78695, 78696, 78697, 78698, 78699, 78700, 78701, 78702, 78703, 78704, 78705, 78706, 78707, 78708, 78709, 78710, 78711, 78712, 78713, 78714, 78715, 78716, 78717, 78718, 78719, 78720, 78721, 78722, 78723, 78724, 78725, 78726, 78727, 78728, 78729, 78730, 78731, 78732, 78733, 78734, 78735, 78736, 78737, 78738, 78739, 78740, 78741, 78742, 78743, 78744, 78745, 78746, 78747, 78748, 78749, 78750, 78751, 78752, 78753, 78754, 78755, 78756, 78757, 78758, 78759, 78760, 78761, 78762, 78763, 78764, 78765, 78766, 78767, 78768, 78769, 78770, 78771, 78772, 78773, 78774, 78775, 78776, 78777, 78778, 78779, 78780, 78781, 78782, 78783, 78784, 78785, 78786, 78787, 78788, 78789, 78790, 78791, 78792, 78793, 78794, 78795, 78796, 78797, 78798, 78799, 78800, 78801, 78802, 78803, 78804, 78805, 78806, 78807, 78808, 78809, 78810, 78811, 78812, 78813, 78814, 78815, 78816, 78817, 78818, 78819, 78820, 78821, 78822, 78823, 78824, 78825, 78826, 78827, 78828, 78829, 78830, 78831, 78832, 78833, 78834, 78835, 78836, 78837, 78838, 78839, 78840, 78841, 78842, 78843, 78844, 78845, 78846, 78847, 78848, 78849, 78850, 78851, 78852, 78853, 78854, 78855, 78856, 78857, 78858, 78859, 78860, 78861, 78862, 78863, 78864, 78865, 78866, 78867, 78868, 78869, 78870, 78871, 78872, 78873, 78874, 78875, 78876, 78877, 78878, 78879, 78880, 78881, 78882, 78883, 78884, 78885, 78886, 78887, 78888, 78889, 78890, 78891, 78892, 78893, 78894, 82944, 82945, 82946, 82947, 82948, 82949, 82950, 82951, 82952, 82953, 82954, 82955, 82956, 82957, 82958, 82959, 82960, 82961, 82962, 82963, 82964, 82965, 82966, 82967, 82968, 82969, 82970, 82971, 82972, 82973, 82974, 82975, 82976, 82977, 82978, 82979, 82980, 82981, 82982, 82983, 82984, 82985, 82986, 82987, 82988, 82989, 82990, 82991, 82992, 82993, 82994, 82995, 82996, 82997, 82998, 82999, 83000, 83001, 83002, 83003, 83004, 83005, 83006, 83007, 83008, 83009, 83010, 83011, 83012, 83013, 83014, 83015, 83016, 83017, 83018, 83019, 83020, 83021, 83022, 83023, 83024, 83025, 83026, 83027, 83028, 83029, 83030, 83031, 83032, 83033, 83034, 83035, 83036, 83037, 83038, 83039, 83040, 83041, 83042, 83043, 83044, 83045, 83046, 83047, 83048, 83049, 83050, 83051, 83052, 83053, 83054, 83055, 83056, 83057, 83058, 83059, 83060, 83061, 83062, 83063, 83064, 83065, 83066, 83067, 83068, 83069, 83070, 83071, 83072, 83073, 83074, 83075, 83076, 83077, 83078, 83079, 83080, 83081, 83082, 83083, 83084, 83085, 83086, 83087, 83088, 83089, 83090, 83091, 83092, 83093, 83094, 83095, 83096, 83097, 83098, 83099, 83100, 83101, 83102, 83103, 83104, 83105, 83106, 83107, 83108, 83109, 83110, 83111, 83112, 83113, 83114, 83115, 83116, 83117, 83118, 83119, 83120, 83121, 83122, 83123, 83124, 83125, 83126, 83127, 83128, 83129, 83130, 83131, 83132, 83133, 83134, 83135, 83136, 83137, 83138, 83139, 83140, 83141, 83142, 83143, 83144, 83145, 83146, 83147, 83148, 83149, 83150, 83151, 83152, 83153, 83154, 83155, 83156, 83157, 83158, 83159, 83160, 83161, 83162, 83163, 83164, 83165, 83166, 83167, 83168, 83169, 83170, 83171, 83172, 83173, 83174, 83175, 83176, 83177, 83178, 83179, 83180, 83181, 83182, 83183, 83184, 83185, 83186, 83187, 83188, 83189, 83190, 83191, 83192, 83193, 83194, 83195, 83196, 83197, 83198, 83199, 83200, 83201, 83202, 83203, 83204, 83205, 83206, 83207, 83208, 83209, 83210, 83211, 83212, 83213, 83214, 83215, 83216, 83217, 83218, 83219, 83220, 83221, 83222, 83223, 83224, 83225, 83226, 83227, 83228, 83229, 83230, 83231, 83232, 83233, 83234, 83235, 83236, 83237, 83238, 83239, 83240, 83241, 83242, 83243, 83244, 83245, 83246, 83247, 83248, 83249, 83250, 83251, 83252, 83253, 83254, 83255, 83256, 83257, 83258, 83259, 83260, 83261, 83262, 83263, 83264, 83265, 83266, 83267, 83268, 83269, 83270, 83271, 83272, 83273, 83274, 83275, 83276, 83277, 83278, 83279, 83280, 83281, 83282, 83283, 83284, 83285, 83286, 83287, 83288, 83289, 83290, 83291, 83292, 83293, 83294, 83295, 83296, 83297, 83298, 83299, 83300, 83301, 83302, 83303, 83304, 83305, 83306, 83307, 83308, 83309, 83310, 83311, 83312, 83313, 83314, 83315, 83316, 83317, 83318, 83319, 83320, 83321, 83322, 83323, 83324, 83325, 83326, 83327, 83328, 83329, 83330, 83331, 83332, 83333, 83334, 83335, 83336, 83337, 83338, 83339, 83340, 83341, 83342, 83343, 83344, 83345, 83346, 83347, 83348, 83349, 83350, 83351, 83352, 83353, 83354, 83355, 83356, 83357, 83358, 83359, 83360, 83361, 83362, 83363, 83364, 83365, 83366, 83367, 83368, 83369, 83370, 83371, 83372, 83373, 83374, 83375, 83376, 83377, 83378, 83379, 83380, 83381, 83382, 83383, 83384, 83385, 83386, 83387, 83388, 83389, 83390, 83391, 83392, 83393, 83394, 83395, 83396, 83397, 83398, 83399, 83400, 83401, 83402, 83403, 83404, 83405, 83406, 83407, 83408, 83409, 83410, 83411, 83412, 83413, 83414, 83415, 83416, 83417, 83418, 83419, 83420, 83421, 83422, 83423, 83424, 83425, 83426, 83427, 83428, 83429, 83430, 83431, 83432, 83433, 83434, 83435, 83436, 83437, 83438, 83439, 83440, 83441, 83442, 83443, 83444, 83445, 83446, 83447, 83448, 83449, 83450, 83451, 83452, 83453, 83454, 83455, 83456, 83457, 83458, 83459, 83460, 83461, 83462, 83463, 83464, 83465, 83466, 83467, 83468, 83469, 83470, 83471, 83472, 83473, 83474, 83475, 83476, 83477, 83478, 83479, 83480, 83481, 83482, 83483, 83484, 83485, 83486, 83487, 83488, 83489, 83490, 83491, 83492, 83493, 83494, 83495, 83496, 83497, 83498, 83499, 83500, 83501, 83502, 83503, 83504, 83505, 83506, 83507, 83508, 83509, 83510, 83511, 83512, 83513, 83514, 83515, 83516, 83517, 83518, 83519, 83520, 83521, 83522, 83523, 83524, 83525, 83526, 92160, 92161, 92162, 92163, 92164, 92165, 92166, 92167, 92168, 92169, 92170, 92171, 92172, 92173, 92174, 92175, 92176, 92177, 92178, 92179, 92180, 92181, 92182, 92183, 92184, 92185, 92186, 92187, 92188, 92189, 92190, 92191, 92192, 92193, 92194, 92195, 92196, 92197, 92198, 92199, 92200, 92201, 92202, 92203, 92204, 92205, 92206, 92207, 92208, 92209, 92210, 92211, 92212, 92213, 92214, 92215, 92216, 92217, 92218, 92219, 92220, 92221, 92222, 92223, 92224, 92225, 92226, 92227, 92228, 92229, 92230, 92231, 92232, 92233, 92234, 92235, 92236, 92237, 92238, 92239, 92240, 92241, 92242, 92243, 92244, 92245, 92246, 92247, 92248, 92249, 92250, 92251, 92252, 92253, 92254, 92255, 92256, 92257, 92258, 92259, 92260, 92261, 92262, 92263, 92264, 92265, 92266, 92267, 92268, 92269, 92270, 92271, 92272, 92273, 92274, 92275, 92276, 92277, 92278, 92279, 92280, 92281, 92282, 92283, 92284, 92285, 92286, 92287, 92288, 92289, 92290, 92291, 92292, 92293, 92294, 92295, 92296, 92297, 92298, 92299, 92300, 92301, 92302, 92303, 92304, 92305, 92306, 92307, 92308, 92309, 92310, 92311, 92312, 92313, 92314, 92315, 92316, 92317, 92318, 92319, 92320, 92321, 92322, 92323, 92324, 92325, 92326, 92327, 92328, 92329, 92330, 92331, 92332, 92333, 92334, 92335, 92336, 92337, 92338, 92339, 92340, 92341, 92342, 92343, 92344, 92345, 92346, 92347, 92348, 92349, 92350, 92351, 92352, 92353, 92354, 92355, 92356, 92357, 92358, 92359, 92360, 92361, 92362, 92363, 92364, 92365, 92366, 92367, 92368, 92369, 92370, 92371, 92372, 92373, 92374, 92375, 92376, 92377, 92378, 92379, 92380, 92381, 92382, 92383, 92384, 92385, 92386, 92387, 92388, 92389, 92390, 92391, 92392, 92393, 92394, 92395, 92396, 92397, 92398, 92399, 92400, 92401, 92402, 92403, 92404, 92405, 92406, 92407, 92408, 92409, 92410, 92411, 92412, 92413, 92414, 92415, 92416, 92417, 92418, 92419, 92420, 92421, 92422, 92423, 92424, 92425, 92426, 92427, 92428, 92429, 92430, 92431, 92432, 92433, 92434, 92435, 92436, 92437, 92438, 92439, 92440, 92441, 92442, 92443, 92444, 92445, 92446, 92447, 92448, 92449, 92450, 92451, 92452, 92453, 92454, 92455, 92456, 92457, 92458, 92459, 92460, 92461, 92462, 92463, 92464, 92465, 92466, 92467, 92468, 92469, 92470, 92471, 92472, 92473, 92474, 92475, 92476, 92477, 92478, 92479, 92480, 92481, 92482, 92483, 92484, 92485, 92486, 92487, 92488, 92489, 92490, 92491, 92492, 92493, 92494, 92495, 92496, 92497, 92498, 92499, 92500, 92501, 92502, 92503, 92504, 92505, 92506, 92507, 92508, 92509, 92510, 92511, 92512, 92513, 92514, 92515, 92516, 92517, 92518, 92519, 92520, 92521, 92522, 92523, 92524, 92525, 92526, 92527, 92528, 92529, 92530, 92531, 92532, 92533, 92534, 92535, 92536, 92537, 92538, 92539, 92540, 92541, 92542, 92543, 92544, 92545, 92546, 92547, 92548, 92549, 92550, 92551, 92552, 92553, 92554, 92555, 92556, 92557, 92558, 92559, 92560, 92561, 92562, 92563, 92564, 92565, 92566, 92567, 92568, 92569, 92570, 92571, 92572, 92573, 92574, 92575, 92576, 92577, 92578, 92579, 92580, 92581, 92582, 92583, 92584, 92585, 92586, 92587, 92588, 92589, 92590, 92591, 92592, 92593, 92594, 92595, 92596, 92597, 92598, 92599, 92600, 92601, 92602, 92603, 92604, 92605, 92606, 92607, 92608, 92609, 92610, 92611, 92612, 92613, 92614, 92615, 92616, 92617, 92618, 92619, 92620, 92621, 92622, 92623, 92624, 92625, 92626, 92627, 92628, 92629, 92630, 92631, 92632, 92633, 92634, 92635, 92636, 92637, 92638, 92639, 92640, 92641, 92642, 92643, 92644, 92645, 92646, 92647, 92648, 92649, 92650, 92651, 92652, 92653, 92654, 92655, 92656, 92657, 92658, 92659, 92660, 92661, 92662, 92663, 92664, 92665, 92666, 92667, 92668, 92669, 92670, 92671, 92672, 92673, 92674, 92675, 92676, 92677, 92678, 92679, 92680, 92681, 92682, 92683, 92684, 92685, 92686, 92687, 92688, 92689, 92690, 92691, 92692, 92693, 92694, 92695, 92696, 92697, 92698, 92699, 92700, 92701, 92702, 92703, 92704, 92705, 92706, 92707, 92708, 92709, 92710, 92711, 92712, 92713, 92714, 92715, 92716, 92717, 92718, 92719, 92720, 92721, 92722, 92723, 92724, 92725, 92726, 92727, 92728, 92736, 92737, 92738, 92739, 92740, 92741, 92742, 92743, 92744, 92745, 92746, 92747, 92748, 92749, 92750, 92751, 92752, 92753, 92754, 92755, 92756, 92757, 92758, 92759, 92760, 92761, 92762, 92763, 92764, 92765, 92766, 92880, 92881, 92882, 92883, 92884, 92885, 92886, 92887, 92888, 92889, 92890, 92891, 92892, 92893, 92894, 92895, 92896, 92897, 92898, 92899, 92900, 92901, 92902, 92903, 92904, 92905, 92906, 92907, 92908, 92909, 92928, 92929, 92930, 92931, 92932, 92933, 92934, 92935, 92936, 92937, 92938, 92939, 92940, 92941, 92942, 92943, 92944, 92945, 92946, 92947, 92948, 92949, 92950, 92951, 92952, 92953, 92954, 92955, 92956, 92957, 92958, 92959, 92960, 92961, 92962, 92963, 92964, 92965, 92966, 92967, 92968, 92969, 92970, 92971, 92972, 92973, 92974, 92975, 92992, 92993, 92994, 92995, 93027, 93028, 93029, 93030, 93031, 93032, 93033, 93034, 93035, 93036, 93037, 93038, 93039, 93040, 93041, 93042, 93043, 93044, 93045, 93046, 93047, 93053, 93054, 93055, 93056, 93057, 93058, 93059, 93060, 93061, 93062, 93063, 93064, 93065, 93066, 93067, 93068, 93069, 93070, 93071, 93952, 93953, 93954, 93955, 93956, 93957, 93958, 93959, 93960, 93961, 93962, 93963, 93964, 93965, 93966, 93967, 93968, 93969, 93970, 93971, 93972, 93973, 93974, 93975, 93976, 93977, 93978, 93979, 93980, 93981, 93982, 93983, 93984, 93985, 93986, 93987, 93988, 93989, 93990, 93991, 93992, 93993, 93994, 93995, 93996, 93997, 93998, 93999, 94000, 94001, 94002, 94003, 94004, 94005, 94006, 94007, 94008, 94009, 94010, 94011, 94012, 94013, 94014, 94015, 94016, 94017, 94018, 94019, 94020, 94032, 94099, 94100, 94101, 94102, 94103, 94104, 94105, 94106, 94107, 94108, 94109, 94110, 94111, 110592, 110593, 113664, 113665, 113666, 113667, 113668, 113669, 113670, 113671, 113672, 113673, 113674, 113675, 113676, 113677, 113678, 113679, 113680, 113681, 113682, 113683, 113684, 113685, 113686, 113687, 113688, 113689, 113690, 113691, 113692, 113693, 113694, 113695, 113696, 113697, 113698, 113699, 113700, 113701, 113702, 113703, 113704, 113705, 113706, 113707, 113708, 113709, 113710, 113711, 113712, 113713, 113714, 113715, 113716, 113717, 113718, 113719, 113720, 113721, 113722, 113723, 113724, 113725, 113726, 113727, 113728, 113729, 113730, 113731, 113732, 113733, 113734, 113735, 113736, 113737, 113738, 113739, 113740, 113741, 113742, 113743, 113744, 113745, 113746, 113747, 113748, 113749, 113750, 113751, 113752, 113753, 113754, 113755, 113756, 113757, 113758, 113759, 113760, 113761, 113762, 113763, 113764, 113765, 113766, 113767, 113768, 113769, 113770, 113776, 113777, 113778, 113779, 113780, 113781, 113782, 113783, 113784, 113785, 113786, 113787, 113788, 113792, 113793, 113794, 113795, 113796, 113797, 113798, 113799, 113800, 113808, 113809, 113810, 113811, 113812, 113813, 113814, 113815, 113816, 113817, 119808, 119809, 119810, 119811, 119812, 119813, 119814, 119815, 119816, 119817, 119818, 119819, 119820, 119821, 119822, 119823, 119824, 119825, 119826, 119827, 119828, 119829, 119830, 119831, 119832, 119833, 119834, 119835, 119836, 119837, 119838, 119839, 119840, 119841, 119842, 119843, 119844, 119845, 119846, 119847, 119848, 119849, 119850, 119851, 119852, 119853, 119854, 119855, 119856, 119857, 119858, 119859, 119860, 119861, 119862, 119863, 119864, 119865, 119866, 119867, 119868, 119869, 119870, 119871, 119872, 119873, 119874, 119875, 119876, 119877, 119878, 119879, 119880, 119881, 119882, 119883, 119884, 119885, 119886, 119887, 119888, 119889, 119890, 119891, 119892, 119894, 119895, 119896, 119897, 119898, 119899, 119900, 119901, 119902, 119903, 119904, 119905, 119906, 119907, 119908, 119909, 119910, 119911, 119912, 119913, 119914, 119915, 119916, 119917, 119918, 119919, 119920, 119921, 119922, 119923, 119924, 119925, 119926, 119927, 119928, 119929, 119930, 119931, 119932, 119933, 119934, 119935, 119936, 119937, 119938, 119939, 119940, 119941, 119942, 119943, 119944, 119945, 119946, 119947, 119948, 119949, 119950, 119951, 119952, 119953, 119954, 119955, 119956, 119957, 119958, 119959, 119960, 119961, 119962, 119963, 119964, 119966, 119967, 119970, 119973, 119974, 119977, 119978, 119979, 119980, 119982, 119983, 119984, 119985, 119986, 119987, 119988, 119989, 119990, 119991, 119992, 119993, 119995, 119997, 119998, 119999, 120000, 120001, 120002, 120003, 120005, 120006, 120007, 120008, 120009, 120010, 120011, 120012, 120013, 120014, 120015, 120016, 120017, 120018, 120019, 120020, 120021, 120022, 120023, 120024, 120025, 120026, 120027, 120028, 120029, 120030, 120031, 120032, 120033, 120034, 120035, 120036, 120037, 120038, 120039, 120040, 120041, 120042, 120043, 120044, 120045, 120046, 120047, 120048, 120049, 120050, 120051, 120052, 120053, 120054, 120055, 120056, 120057, 120058, 120059, 120060, 120061, 120062, 120063, 120064, 120065, 120066, 120067, 120068, 120069, 120071, 120072, 120073, 120074, 120077, 120078, 120079, 120080, 120081, 120082, 120083, 120084, 120086, 120087, 120088, 120089, 120090, 120091, 120092, 120094, 120095, 120096, 120097, 120098, 120099, 120100, 120101, 120102, 120103, 120104, 120105, 120106, 120107, 120108, 120109, 120110, 120111, 120112, 120113, 120114, 120115, 120116, 120117, 120118, 120119, 120120, 120121, 120123, 120124, 120125, 120126, 120128, 120129, 120130, 120131, 120132, 120134, 120138, 120139, 120140, 120141, 120142, 120143, 120144, 120146, 120147, 120148, 120149, 120150, 120151, 120152, 120153, 120154, 120155, 120156, 120157, 120158, 120159, 120160, 120161, 120162, 120163, 120164, 120165, 120166, 120167, 120168, 120169, 120170, 120171, 120172, 120173, 120174, 120175, 120176, 120177, 120178, 120179, 120180, 120181, 120182, 120183, 120184, 120185, 120186, 120187, 120188, 120189, 120190, 120191, 120192, 120193, 120194, 120195, 120196, 120197, 120198, 120199, 120200, 120201, 120202, 120203, 120204, 120205, 120206, 120207, 120208, 120209, 120210, 120211, 120212, 120213, 120214, 120215, 120216, 120217, 120218, 120219, 120220, 120221, 120222, 120223, 120224, 120225, 120226, 120227, 120228, 120229, 120230, 120231, 120232, 120233, 120234, 120235, 120236, 120237, 120238, 120239, 120240, 120241, 120242, 120243, 120244, 120245, 120246, 120247, 120248, 120249, 120250, 120251, 120252, 120253, 120254, 120255, 120256, 120257, 120258, 120259, 120260, 120261, 120262, 120263, 120264, 120265, 120266, 120267, 120268, 120269, 120270, 120271, 120272, 120273, 120274, 120275, 120276, 120277, 120278, 120279, 120280, 120281, 120282, 120283, 120284, 120285, 120286, 120287, 120288, 120289, 120290, 120291, 120292, 120293, 120294, 120295, 120296, 120297, 120298, 120299, 120300, 120301, 120302, 120303, 120304, 120305, 120306, 120307, 120308, 120309, 120310, 120311, 120312, 120313, 120314, 120315, 120316, 120317, 120318, 120319, 120320, 120321, 120322, 120323, 120324, 120325, 120326, 120327, 120328, 120329, 120330, 120331, 120332, 120333, 120334, 120335, 120336, 120337, 120338, 120339, 120340, 120341, 120342, 120343, 120344, 120345, 120346, 120347, 120348, 120349, 120350, 120351, 120352, 120353, 120354, 120355, 120356, 120357, 120358, 120359, 120360, 120361, 120362, 120363, 120364, 120365, 120366, 120367, 120368, 120369, 120370, 120371, 120372, 120373, 120374, 120375, 120376, 120377, 120378, 120379, 120380, 120381, 120382, 120383, 120384, 120385, 120386, 120387, 120388, 120389, 120390, 120391, 120392, 120393, 120394, 120395, 120396, 120397, 120398, 120399, 120400, 120401, 120402, 120403, 120404, 120405, 120406, 120407, 120408, 120409, 120410, 120411, 120412, 120413, 120414, 120415, 120416, 120417, 120418, 120419, 120420, 120421, 120422, 120423, 120424, 120425, 120426, 120427, 120428, 120429, 120430, 120431, 120432, 120433, 120434, 120435, 120436, 120437, 120438, 120439, 120440, 120441, 120442, 120443, 120444, 120445, 120446, 120447, 120448, 120449, 120450, 120451, 120452, 120453, 120454, 120455, 120456, 120457, 120458, 120459, 120460, 120461, 120462, 120463, 120464, 120465, 120466, 120467, 120468, 120469, 120470, 120471, 120472, 120473, 120474, 120475, 120476, 120477, 120478, 120479, 120480, 120481, 120482, 120483, 120484, 120485, 120488, 120489, 120490, 120491, 120492, 120493, 120494, 120495, 120496, 120497, 120498, 120499, 120500, 120501, 120502, 120503, 120504, 120505, 120506, 120507, 120508, 120509, 120510, 120511, 120512, 120514, 120515, 120516, 120517, 120518, 120519, 120520, 120521, 120522, 120523, 120524, 120525, 120526, 120527, 120528, 120529, 120530, 120531, 120532, 120533, 120534, 120535, 120536, 120537, 120538, 120540, 120541, 120542, 120543, 120544, 120545, 120546, 120547, 120548, 120549, 120550, 120551, 120552, 120553, 120554, 120555, 120556, 120557, 120558, 120559, 120560, 120561, 120562, 120563, 120564, 120565, 120566, 120567, 120568, 120569, 120570, 120572, 120573, 120574, 120575, 120576, 120577, 120578, 120579, 120580, 120581, 120582, 120583, 120584, 120585, 120586, 120587, 120588, 120589, 120590, 120591, 120592, 120593, 120594, 120595, 120596, 120598, 120599, 120600, 120601, 120602, 120603, 120604, 120605, 120606, 120607, 120608, 120609, 120610, 120611, 120612, 120613, 120614, 120615, 120616, 120617, 120618, 120619, 120620, 120621, 120622, 120623, 120624, 120625, 120626, 120627, 120628, 120630, 120631, 120632, 120633, 120634, 120635, 120636, 120637, 120638, 120639, 120640, 120641, 120642, 120643, 120644, 120645, 120646, 120647, 120648, 120649, 120650, 120651, 120652, 120653, 120654, 120656, 120657, 120658, 120659, 120660, 120661, 120662, 120663, 120664, 120665, 120666, 120667, 120668, 120669, 120670, 120671, 120672, 120673, 120674, 120675, 120676, 120677, 120678, 120679, 120680, 120681, 120682, 120683, 120684, 120685, 120686, 120688, 120689, 120690, 120691, 120692, 120693, 120694, 120695, 120696, 120697, 120698, 120699, 120700, 120701, 120702, 120703, 120704, 120705, 120706, 120707, 120708, 120709, 120710, 120711, 120712, 120714, 120715, 120716, 120717, 120718, 120719, 120720, 120721, 120722, 120723, 120724, 120725, 120726, 120727, 120728, 120729, 120730, 120731, 120732, 120733, 120734, 120735, 120736, 120737, 120738, 120739, 120740, 120741, 120742, 120743, 120744, 120746, 120747, 120748, 120749, 120750, 120751, 120752, 120753, 120754, 120755, 120756, 120757, 120758, 120759, 120760, 120761, 120762, 120763, 120764, 120765, 120766, 120767, 120768, 120769, 120770, 120772, 120773, 120774, 120775, 120776, 120777, 120778, 120779, 124928, 124929, 124930, 124931, 124932, 124933, 124934, 124935, 124936, 124937, 124938, 124939, 124940, 124941, 124942, 124943, 124944, 124945, 124946, 124947, 124948, 124949, 124950, 124951, 124952, 124953, 124954, 124955, 124956, 124957, 124958, 124959, 124960, 124961, 124962, 124963, 124964, 124965, 124966, 124967, 124968, 124969, 124970, 124971, 124972, 124973, 124974, 124975, 124976, 124977, 124978, 124979, 124980, 124981, 124982, 124983, 124984, 124985, 124986, 124987, 124988, 124989, 124990, 124991, 124992, 124993, 124994, 124995, 124996, 124997, 124998, 124999, 125000, 125001, 125002, 125003, 125004, 125005, 125006, 125007, 125008, 125009, 125010, 125011, 125012, 125013, 125014, 125015, 125016, 125017, 125018, 125019, 125020, 125021, 125022, 125023, 125024, 125025, 125026, 125027, 125028, 125029, 125030, 125031, 125032, 125033, 125034, 125035, 125036, 125037, 125038, 125039, 125040, 125041, 125042, 125043, 125044, 125045, 125046, 125047, 125048, 125049, 125050, 125051, 125052, 125053, 125054, 125055, 125056, 125057, 125058, 125059, 125060, 125061, 125062, 125063, 125064, 125065, 125066, 125067, 125068, 125069, 125070, 125071, 125072, 125073, 125074, 125075, 125076, 125077, 125078, 125079, 125080, 125081, 125082, 125083, 125084, 125085, 125086, 125087, 125088, 125089, 125090, 125091, 125092, 125093, 125094, 125095, 125096, 125097, 125098, 125099, 125100, 125101, 125102, 125103, 125104, 125105, 125106, 125107, 125108, 125109, 125110, 125111, 125112, 125113, 125114, 125115, 125116, 125117, 125118, 125119, 125120, 125121, 125122, 125123, 125124, 126464, 126465, 126466, 126467, 126469, 126470, 126471, 126472, 126473, 126474, 126475, 126476, 126477, 126478, 126479, 126480, 126481, 126482, 126483, 126484, 126485, 126486, 126487, 126488, 126489, 126490, 126491, 126492, 126493, 126494, 126495, 126497, 126498, 126500, 126503, 126505, 126506, 126507, 126508, 126509, 126510, 126511, 126512, 126513, 126514, 126516, 126517, 126518, 126519, 126521, 126523, 126530, 126535, 126537, 126539, 126541, 126542, 126543, 126545, 126546, 126548, 126551, 126553, 126555, 126557, 126559, 126561, 126562, 126564, 126567, 126568, 126569, 126570, 126572, 126573, 126574, 126575, 126576, 126577, 126578, 126580, 126581, 126582, 126583, 126585, 126586, 126587, 126588, 126590, 126592, 126593, 126594, 126595, 126596, 126597, 126598, 126599, 126600, 126601, 126603, 126604, 126605, 126606, 126607, 126608, 126609, 126610, 126611, 126612, 126613, 126614, 126615, 126616, 126617, 126618, 126619, 126625, 126626, 126627, 126629, 126630, 126631, 126632, 126633, 126635, 126636, 126637, 126638, 126639, 126640, 126641, 126642, 126643, 126644, 126645, 126646, 126647, 126648, 126649, 126650, 126651, 131072, 173782, 173824, 177972, 177984, 178205, 178208, 183969, 194560, 194561, 194562, 194563, 194564, 194565, 194566, 194567, 194568, 194569, 194570, 194571, 194572, 194573, 194574, 194575, 194576, 194577, 194578, 194579, 194580, 194581, 194582, 194583, 194584, 194585, 194586, 194587, 194588, 194589, 194590, 194591, 194592, 194593, 194594, 194595, 194596, 194597, 194598, 194599, 194600, 194601, 194602, 194603, 194604, 194605, 194606, 194607, 194608, 194609, 194610, 194611, 194612, 194613, 194614, 194615, 194616, 194617, 194618, 194619, 194620, 194621, 194622, 194623, 194624, 194625, 194626, 194627, 194628, 194629, 194630, 194631, 194632, 194633, 194634, 194635, 194636, 194637, 194638, 194639, 194640, 194641, 194642, 194643, 194644, 194645, 194646, 194647, 194648, 194649, 194650, 194651, 194652, 194653, 194654, 194655, 194656, 194657, 194658, 194659, 194660, 194661, 194662, 194663, 194664, 194665, 194666, 194667, 194668, 194669, 194670, 194671, 194672, 194673, 194674, 194675, 194676, 194677, 194678, 194679, 194680, 194681, 194682, 194683, 194684, 194685, 194686, 194687, 194688, 194689, 194690, 194691, 194692, 194693, 194694, 194695, 194696, 194697, 194698, 194699, 194700, 194701, 194702, 194703, 194704, 194705, 194706, 194707, 194708, 194709, 194710, 194711, 194712, 194713, 194714, 194715, 194716, 194717, 194718, 194719, 194720, 194721, 194722, 194723, 194724, 194725, 194726, 194727, 194728, 194729, 194730, 194731, 194732, 194733, 194734, 194735, 194736, 194737, 194738, 194739, 194740, 194741, 194742, 194743, 194744, 194745, 194746, 194747, 194748, 194749, 194750, 194751, 194752, 194753, 194754, 194755, 194756, 194757, 194758, 194759, 194760, 194761, 194762, 194763, 194764, 194765, 194766, 194767, 194768, 194769, 194770, 194771, 194772, 194773, 194774, 194775, 194776, 194777, 194778, 194779, 194780, 194781, 194782, 194783, 194784, 194785, 194786, 194787, 194788, 194789, 194790, 194791, 194792, 194793, 194794, 194795, 194796, 194797, 194798, 194799, 194800, 194801, 194802, 194803, 194804, 194805, 194806, 194807, 194808, 194809, 194810, 194811, 194812, 194813, 194814, 194815, 194816, 194817, 194818, 194819, 194820, 194821, 194822, 194823, 194824, 194825, 194826, 194827, 194828, 194829, 194830, 194831, 194832, 194833, 194834, 194835, 194836, 194837, 194838, 194839, 194840, 194841, 194842, 194843, 194844, 194845, 194846, 194847, 194848, 194849, 194850, 194851, 194852, 194853, 194854, 194855, 194856, 194857, 194858, 194859, 194860, 194861, 194862, 194863, 194864, 194865, 194866, 194867, 194868, 194869, 194870, 194871, 194872, 194873, 194874, 194875, 194876, 194877, 194878, 194879, 194880, 194881, 194882, 194883, 194884, 194885, 194886, 194887, 194888, 194889, 194890, 194891, 194892, 194893, 194894, 194895, 194896, 194897, 194898, 194899, 194900, 194901, 194902, 194903, 194904, 194905, 194906, 194907, 194908, 194909, 194910, 194911, 194912, 194913, 194914, 194915, 194916, 194917, 194918, 194919, 194920, 194921, 194922, 194923, 194924, 194925, 194926, 194927, 194928, 194929, 194930, 194931, 194932, 194933, 194934, 194935, 194936, 194937, 194938, 194939, 194940, 194941, 194942, 194943, 194944, 194945, 194946, 194947, 194948, 194949, 194950, 194951, 194952, 194953, 194954, 194955, 194956, 194957, 194958, 194959, 194960, 194961, 194962, 194963, 194964, 194965, 194966, 194967, 194968, 194969, 194970, 194971, 194972, 194973, 194974, 194975, 194976, 194977, 194978, 194979, 194980, 194981, 194982, 194983, 194984, 194985, 194986, 194987, 194988, 194989, 194990, 194991, 194992, 194993, 194994, 194995, 194996, 194997, 194998, 194999, 195000, 195001, 195002, 195003, 195004, 195005, 195006, 195007, 195008, 195009, 195010, 195011, 195012, 195013, 195014, 195015, 195016, 195017, 195018, 195019, 195020, 195021, 195022, 195023, 195024, 195025, 195026, 195027, 195028, 195029, 195030, 195031, 195032, 195033, 195034, 195035, 195036, 195037, 195038, 195039, 195040, 195041, 195042, 195043, 195044, 195045, 195046, 195047, 195048, 195049, 195050, 195051, 195052, 195053, 195054, 195055, 195056, 195057, 195058, 195059, 195060, 195061, 195062, 195063, 195064, 195065, 195066, 195067, 195068, 195069, 195070, 195071, 195072, 195073, 195074, 195075, 195076, 195077, 195078, 195079, 195080, 195081, 195082, 195083, 195084, 195085, 195086, 195087, 195088, 195089, 195090, 195091, 195092, 195093, 195094, 195095, 195096, 195097, 195098, 195099, 195100, 195101];\n","/*\n * List of Unicode code that are flagged as mark.\n *\n * Contains Unicode code of:\n * - Mc = Mark, spacing combining\n * - Me = Mark, enclosing\n * - Mn = Mark, nonspacing\n *\n * This list has been computed from http://unicode.org/Public/UNIDATA/UnicodeData.txt\n * curl -s http://unicode.org/Public/UNIDATA/UnicodeData.txt | grep -E ';Mc;|;Me;|;Mn;' | cut -d \\; -f 1 | xargs -I{} printf '%d, ' 0x{}\n *\n */\nexports.M = [768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1471, 1473, 1474, 1476, 1477, 1479, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1648, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1759, 1760, 1761, 1762, 1763, 1764, 1767, 1768, 1770, 1771, 1772, 1773, 1809, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2070, 2071, 2072, 2073, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2085, 2086, 2087, 2089, 2090, 2091, 2092, 2093, 2137, 2138, 2139, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2362, 2363, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2402, 2403, 2433, 2434, 2435, 2492, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2503, 2504, 2507, 2508, 2509, 2519, 2530, 2531, 2561, 2562, 2563, 2620, 2622, 2623, 2624, 2625, 2626, 2631, 2632, 2635, 2636, 2637, 2641, 2672, 2673, 2677, 2689, 2690, 2691, 2748, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2759, 2760, 2761, 2763, 2764, 2765, 2786, 2787, 2817, 2818, 2819, 2876, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2887, 2888, 2891, 2892, 2893, 2902, 2903, 2914, 2915, 2946, 3006, 3007, 3008, 3009, 3010, 3014, 3015, 3016, 3018, 3019, 3020, 3021, 3031, 3072, 3073, 3074, 3075, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3142, 3143, 3144, 3146, 3147, 3148, 3149, 3157, 3158, 3170, 3171, 3201, 3202, 3203, 3260, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3270, 3271, 3272, 3274, 3275, 3276, 3277, 3285, 3286, 3298, 3299, 3329, 3330, 3331, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3398, 3399, 3400, 3402, 3403, 3404, 3405, 3415, 3426, 3427, 3458, 3459, 3530, 3535, 3536, 3537, 3538, 3539, 3540, 3542, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3570, 3571, 3633, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3761, 3764, 3765, 3766, 3767, 3768, 3769, 3771, 3772, 3784, 3785, 3786, 3787, 3788, 3789, 3864, 3865, 3893, 3895, 3897, 3902, 3903, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3974, 3975, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4038, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4182, 4183, 4184, 4185, 4190, 4191, 4192, 4194, 4195, 4196, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4209, 4210, 4211, 4212, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4239, 4250, 4251, 4252, 4253, 4957, 4958, 4959, 5906, 5907, 5908, 5938, 5939, 5940, 5970, 5971, 6002, 6003, 6068, 6069, 6070, 6071, 6072, 6073, 6074, 6075, 6076, 6077, 6078, 6079, 6080, 6081, 6082, 6083, 6084, 6085, 6086, 6087, 6088, 6089, 6090, 6091, 6092, 6093, 6094, 6095, 6096, 6097, 6098, 6099, 6109, 6155, 6156, 6157, 6313, 6432, 6433, 6434, 6435, 6436, 6437, 6438, 6439, 6440, 6441, 6442, 6443, 6448, 6449, 6450, 6451, 6452, 6453, 6454, 6455, 6456, 6457, 6458, 6459, 6679, 6680, 6681, 6682, 6683, 6741, 6742, 6743, 6744, 6745, 6746, 6747, 6748, 6749, 6750, 6752, 6753, 6754, 6755, 6756, 6757, 6758, 6759, 6760, 6761, 6762, 6763, 6764, 6765, 6766, 6767, 6768, 6769, 6770, 6771, 6772, 6773, 6774, 6775, 6776, 6777, 6778, 6779, 6780, 6783, 6832, 6833, 6834, 6835, 6836, 6837, 6838, 6839, 6840, 6841, 6842, 6843, 6844, 6845, 6846, 6912, 6913, 6914, 6915, 6916, 6964, 6965, 6966, 6967, 6968, 6969, 6970, 6971, 6972, 6973, 6974, 6975, 6976, 6977, 6978, 6979, 6980, 7019, 7020, 7021, 7022, 7023, 7024, 7025, 7026, 7027, 7040, 7041, 7042, 7073, 7074, 7075, 7076, 7077, 7078, 7079, 7080, 7081, 7082, 7083, 7084, 7085, 7142, 7143, 7144, 7145, 7146, 7147, 7148, 7149, 7150, 7151, 7152, 7153, 7154, 7155, 7204, 7205, 7206, 7207, 7208, 7209, 7210, 7211, 7212, 7213, 7214, 7215, 7216, 7217, 7218, 7219, 7220, 7221, 7222, 7223, 7376, 7377, 7378, 7380, 7381, 7382, 7383, 7384, 7385, 7386, 7387, 7388, 7389, 7390, 7391, 7392, 7393, 7394, 7395, 7396, 7397, 7398, 7399, 7400, 7405, 7410, 7411, 7412, 7416, 7417, 7616, 7617, 7618, 7619, 7620, 7621, 7622, 7623, 7624, 7625, 7626, 7627, 7628, 7629, 7630, 7631, 7632, 7633, 7634, 7635, 7636, 7637, 7638, 7639, 7640, 7641, 7642, 7643, 7644, 7645, 7646, 7647, 7648, 7649, 7650, 7651, 7652, 7653, 7654, 7655, 7656, 7657, 7658, 7659, 7660, 7661, 7662, 7663, 7664, 7665, 7666, 7667, 7668, 7669, 7676, 7677, 7678, 7679, 8400, 8401, 8402, 8403, 8404, 8405, 8406, 8407, 8408, 8409, 8410, 8411, 8412, 8413, 8414, 8415, 8416, 8417, 8418, 8419, 8420, 8421, 8422, 8423, 8424, 8425, 8426, 8427, 8428, 8429, 8430, 8431, 8432, 11503, 11504, 11505, 11647, 11744, 11745, 11746, 11747, 11748, 11749, 11750, 11751, 11752, 11753, 11754, 11755, 11756, 11757, 11758, 11759, 11760, 11761, 11762, 11763, 11764, 11765, 11766, 11767, 11768, 11769, 11770, 11771, 11772, 11773, 11774, 11775, 12330, 12331, 12332, 12333, 12334, 12335, 12441, 12442, 42607, 42608, 42609, 42610, 42612, 42613, 42614, 42615, 42616, 42617, 42618, 42619, 42620, 42621, 42654, 42655, 42736, 42737, 43010, 43014, 43019, 43043, 43044, 43045, 43046, 43047, 43136, 43137, 43188, 43189, 43190, 43191, 43192, 43193, 43194, 43195, 43196, 43197, 43198, 43199, 43200, 43201, 43202, 43203, 43204, 43232, 43233, 43234, 43235, 43236, 43237, 43238, 43239, 43240, 43241, 43242, 43243, 43244, 43245, 43246, 43247, 43248, 43249, 43302, 43303, 43304, 43305, 43306, 43307, 43308, 43309, 43335, 43336, 43337, 43338, 43339, 43340, 43341, 43342, 43343, 43344, 43345, 43346, 43347, 43392, 43393, 43394, 43395, 43443, 43444, 43445, 43446, 43447, 43448, 43449, 43450, 43451, 43452, 43453, 43454, 43455, 43456, 43493, 43561, 43562, 43563, 43564, 43565, 43566, 43567, 43568, 43569, 43570, 43571, 43572, 43573, 43574, 43587, 43596, 43597, 43643, 43644, 43645, 43696, 43698, 43699, 43700, 43703, 43704, 43710, 43711, 43713, 43755, 43756, 43757, 43758, 43759, 43765, 43766, 44003, 44004, 44005, 44006, 44007, 44008, 44009, 44010, 44012, 44013, 64286, 65024, 65025, 65026, 65027, 65028, 65029, 65030, 65031, 65032, 65033, 65034, 65035, 65036, 65037, 65038, 65039, 65056, 65057, 65058, 65059, 65060, 65061, 65062, 65063, 65064, 65065, 65066, 65067, 65068, 65069, 65070, 65071, 66045, 66272, 66422, 66423, 66424, 66425, 66426, 68097, 68098, 68099, 68101, 68102, 68108, 68109, 68110, 68111, 68152, 68153, 68154, 68159, 68325, 68326, 69632, 69633, 69634, 69688, 69689, 69690, 69691, 69692, 69693, 69694, 69695, 69696, 69697, 69698, 69699, 69700, 69701, 69702, 69759, 69760, 69761, 69762, 69808, 69809, 69810, 69811, 69812, 69813, 69814, 69815, 69816, 69817, 69818, 69888, 69889, 69890, 69927, 69928, 69929, 69930, 69931, 69932, 69933, 69934, 69935, 69936, 69937, 69938, 69939, 69940, 70003, 70016, 70017, 70018, 70067, 70068, 70069, 70070, 70071, 70072, 70073, 70074, 70075, 70076, 70077, 70078, 70079, 70080, 70090, 70091, 70092, 70188, 70189, 70190, 70191, 70192, 70193, 70194, 70195, 70196, 70197, 70198, 70199, 70367, 70368, 70369, 70370, 70371, 70372, 70373, 70374, 70375, 70376, 70377, 70378, 70400, 70401, 70402, 70403, 70460, 70462, 70463, 70464, 70465, 70466, 70467, 70468, 70471, 70472, 70475, 70476, 70477, 70487, 70498, 70499, 70502, 70503, 70504, 70505, 70506, 70507, 70508, 70512, 70513, 70514, 70515, 70516, 70832, 70833, 70834, 70835, 70836, 70837, 70838, 70839, 70840, 70841, 70842, 70843, 70844, 70845, 70846, 70847, 70848, 70849, 70850, 70851, 71087, 71088, 71089, 71090, 71091, 71092, 71093, 71096, 71097, 71098, 71099, 71100, 71101, 71102, 71103, 71104, 71132, 71133, 71216, 71217, 71218, 71219, 71220, 71221, 71222, 71223, 71224, 71225, 71226, 71227, 71228, 71229, 71230, 71231, 71232, 71339, 71340, 71341, 71342, 71343, 71344, 71345, 71346, 71347, 71348, 71349, 71350, 71351, 71453, 71454, 71455, 71456, 71457, 71458, 71459, 71460, 71461, 71462, 71463, 71464, 71465, 71466, 71467, 92912, 92913, 92914, 92915, 92916, 92976, 92977, 92978, 92979, 92980, 92981, 92982, 94033, 94034, 94035, 94036, 94037, 94038, 94039, 94040, 94041, 94042, 94043, 94044, 94045, 94046, 94047, 94048, 94049, 94050, 94051, 94052, 94053, 94054, 94055, 94056, 94057, 94058, 94059, 94060, 94061, 94062, 94063, 94064, 94065, 94066, 94067, 94068, 94069, 94070, 94071, 94072, 94073, 94074, 94075, 94076, 94077, 94078, 94095, 94096, 94097, 94098, 113821, 113822, 119141, 119142, 119143, 119144, 119145, 119149, 119150, 119151, 119152, 119153, 119154, 119163, 119164, 119165, 119166, 119167, 119168, 119169, 119170, 119173, 119174, 119175, 119176, 119177, 119178, 119179, 119210, 119211, 119212, 119213, 119362, 119363, 119364, 121344, 121345, 121346, 121347, 121348, 121349, 121350, 121351, 121352, 121353, 121354, 121355, 121356, 121357, 121358, 121359, 121360, 121361, 121362, 121363, 121364, 121365, 121366, 121367, 121368, 121369, 121370, 121371, 121372, 121373, 121374, 121375, 121376, 121377, 121378, 121379, 121380, 121381, 121382, 121383, 121384, 121385, 121386, 121387, 121388, 121389, 121390, 121391, 121392, 121393, 121394, 121395, 121396, 121397, 121398, 121403, 121404, 121405, 121406, 121407, 121408, 121409, 121410, 121411, 121412, 121413, 121414, 121415, 121416, 121417, 121418, 121419, 121420, 121421, 121422, 121423, 121424, 121425, 121426, 121427, 121428, 121429, 121430, 121431, 121432, 121433, 121434, 121435, 121436, 121437, 121438, 121439, 121440, 121441, 121442, 121443, 121444, 121445, 121446, 121447, 121448, 121449, 121450, 121451, 121452, 121461, 121476, 121499, 121500, 121501, 121502, 121503, 121505, 121506, 121507, 121508, 121509, 121510, 121511, 121512, 121513, 121514, 121515, 121516, 121517, 121518, 121519, 125136, 125137, 125138, 125139, 125140, 125141, 125142, 917760, 917761, 917762, 917763, 917764, 917765, 917766, 917767, 917768, 917769, 917770, 917771, 917772, 917773, 917774, 917775, 917776, 917777, 917778, 917779, 917780, 917781, 917782, 917783, 917784, 917785, 917786, 917787, 917788, 917789, 917790, 917791, 917792, 917793, 917794, 917795, 917796, 917797, 917798, 917799, 917800, 917801, 917802, 917803, 917804, 917805, 917806, 917807, 917808, 917809, 917810, 917811, 917812, 917813, 917814, 917815, 917816, 917817, 917818, 917819, 917820, 917821, 917822, 917823, 917824, 917825, 917826, 917827, 917828, 917829, 917830, 917831, 917832, 917833, 917834, 917835, 917836, 917837, 917838, 917839, 917840, 917841, 917842, 917843, 917844, 917845, 917846, 917847, 917848, 917849, 917850, 917851, 917852, 917853, 917854, 917855, 917856, 917857, 917858, 917859, 917860, 917861, 917862, 917863, 917864, 917865, 917866, 917867, 917868, 917869, 917870, 917871, 917872, 917873, 917874, 917875, 917876, 917877, 917878, 917879, 917880, 917881, 917882, 917883, 917884, 917885, 917886, 917887, 917888, 917889, 917890, 917891, 917892, 917893, 917894, 917895, 917896, 917897, 917898, 917899, 917900, 917901, 917902, 917903, 917904, 917905, 917906, 917907, 917908, 917909, 917910, 917911, 917912, 917913, 917914, 917915, 917916, 917917, 917918, 917919, 917920, 917921, 917922, 917923, 917924, 917925, 917926, 917927, 917928, 917929, 917930, 917931, 917932, 917933, 917934, 917935, 917936, 917937, 917938, 917939, 917940, 917941, 917942, 917943, 917944, 917945, 917946, 917947, 917948, 917949, 917950, 917951, 917952, 917953, 917954, 917955, 917956, 917957, 917958, 917959, 917960, 917961, 917962, 917963, 917964, 917965, 917966, 917967, 917968, 917969, 917970, 917971, 917972, 917973, 917974, 917975, 917976, 917977, 917978, 917979, 917980, 917981, 917982, 917983, 917984, 917985, 917986, 917987, 917988, 917989, 917990, 917991, 917992, 917993, 917994, 917995, 917996, 917997, 917998, 917999];\n","/*\n * List of Unicode code that are flagged as number.\n *\n * Contains Unicode code of:\n * - Nd = Number, decimal digit\n * - Nl = Number, letter\n * - No = Number, other\n *\n * This list has been computed from http://unicode.org/Public/UNIDATA/UnicodeData.txt\n * curl -s http://unicode.org/Public/UNIDATA/UnicodeData.txt | grep -E ';Nd;|;Nl;|;No;' | cut -d \\; -f 1 | xargs -I{} printf '%d, ' 0x{}\n *\n */\nexports.N = [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 178, 179, 185, 188, 189, 190, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2548, 2549, 2550, 2551, 2552, 2553, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2930, 2931, 2932, 2933, 2934, 2935, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 5870, 5871, 5872, 6112, 6113, 6114, 6115, 6116, 6117, 6118, 6119, 6120, 6121, 6128, 6129, 6130, 6131, 6132, 6133, 6134, 6135, 6136, 6137, 6160, 6161, 6162, 6163, 6164, 6165, 6166, 6167, 6168, 6169, 6470, 6471, 6472, 6473, 6474, 6475, 6476, 6477, 6478, 6479, 6608, 6609, 6610, 6611, 6612, 6613, 6614, 6615, 6616, 6617, 6618, 6784, 6785, 6786, 6787, 6788, 6789, 6790, 6791, 6792, 6793, 6800, 6801, 6802, 6803, 6804, 6805, 6806, 6807, 6808, 6809, 6992, 6993, 6994, 6995, 6996, 6997, 6998, 6999, 7000, 7001, 7088, 7089, 7090, 7091, 7092, 7093, 7094, 7095, 7096, 7097, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7239, 7240, 7241, 7248, 7249, 7250, 7251, 7252, 7253, 7254, 7255, 7256, 7257, 8304, 8308, 8309, 8310, 8311, 8312, 8313, 8320, 8321, 8322, 8323, 8324, 8325, 8326, 8327, 8328, 8329, 8528, 8529, 8530, 8531, 8532, 8533, 8534, 8535, 8536, 8537, 8538, 8539, 8540, 8541, 8542, 8543, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 8554, 8555, 8556, 8557, 8558, 8559, 8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8577, 8578, 8581, 8582, 8583, 8584, 8585, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319, 9320, 9321, 9322, 9323, 9324, 9325, 9326, 9327, 9328, 9329, 9330, 9331, 9332, 9333, 9334, 9335, 9336, 9337, 9338, 9339, 9340, 9341, 9342, 9343, 9344, 9345, 9346, 9347, 9348, 9349, 9350, 9351, 9352, 9353, 9354, 9355, 9356, 9357, 9358, 9359, 9360, 9361, 9362, 9363, 9364, 9365, 9366, 9367, 9368, 9369, 9370, 9371, 9450, 9451, 9452, 9453, 9454, 9455, 9456, 9457, 9458, 9459, 9460, 9461, 9462, 9463, 9464, 9465, 9466, 9467, 9468, 9469, 9470, 9471, 10102, 10103, 10104, 10105, 10106, 10107, 10108, 10109, 10110, 10111, 10112, 10113, 10114, 10115, 10116, 10117, 10118, 10119, 10120, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10128, 10129, 10130, 10131, 11517, 12295, 12321, 12322, 12323, 12324, 12325, 12326, 12327, 12328, 12329, 12344, 12345, 12346, 12690, 12691, 12692, 12693, 12832, 12833, 12834, 12835, 12836, 12837, 12838, 12839, 12840, 12841, 12872, 12873, 12874, 12875, 12876, 12877, 12878, 12879, 12881, 12882, 12883, 12884, 12885, 12886, 12887, 12888, 12889, 12890, 12891, 12892, 12893, 12894, 12895, 12928, 12929, 12930, 12931, 12932, 12933, 12934, 12935, 12936, 12937, 12977, 12978, 12979, 12980, 12981, 12982, 12983, 12984, 12985, 12986, 12987, 12988, 12989, 12990, 12991, 42528, 42529, 42530, 42531, 42532, 42533, 42534, 42535, 42536, 42537, 42726, 42727, 42728, 42729, 42730, 42731, 42732, 42733, 42734, 42735, 43056, 43057, 43058, 43059, 43060, 43061, 43216, 43217, 43218, 43219, 43220, 43221, 43222, 43223, 43224, 43225, 43264, 43265, 43266, 43267, 43268, 43269, 43270, 43271, 43272, 43273, 43472, 43473, 43474, 43475, 43476, 43477, 43478, 43479, 43480, 43481, 43504, 43505, 43506, 43507, 43508, 43509, 43510, 43511, 43512, 43513, 43600, 43601, 43602, 43603, 43604, 43605, 43606, 43607, 43608, 43609, 44016, 44017, 44018, 44019, 44020, 44021, 44022, 44023, 44024, 44025, 65296, 65297, 65298, 65299, 65300, 65301, 65302, 65303, 65304, 65305, 65799, 65800, 65801, 65802, 65803, 65804, 65805, 65806, 65807, 65808, 65809, 65810, 65811, 65812, 65813, 65814, 65815, 65816, 65817, 65818, 65819, 65820, 65821, 65822, 65823, 65824, 65825, 65826, 65827, 65828, 65829, 65830, 65831, 65832, 65833, 65834, 65835, 65836, 65837, 65838, 65839, 65840, 65841, 65842, 65843, 65856, 65857, 65858, 65859, 65860, 65861, 65862, 65863, 65864, 65865, 65866, 65867, 65868, 65869, 65870, 65871, 65872, 65873, 65874, 65875, 65876, 65877, 65878, 65879, 65880, 65881, 65882, 65883, 65884, 65885, 65886, 65887, 65888, 65889, 65890, 65891, 65892, 65893, 65894, 65895, 65896, 65897, 65898, 65899, 65900, 65901, 65902, 65903, 65904, 65905, 65906, 65907, 65908, 65909, 65910, 65911, 65912, 65930, 65931, 66273, 66274, 66275, 66276, 66277, 66278, 66279, 66280, 66281, 66282, 66283, 66284, 66285, 66286, 66287, 66288, 66289, 66290, 66291, 66292, 66293, 66294, 66295, 66296, 66297, 66298, 66299, 66336, 66337, 66338, 66339, 66369, 66378, 66513, 66514, 66515, 66516, 66517, 66720, 66721, 66722, 66723, 66724, 66725, 66726, 66727, 66728, 66729, 67672, 67673, 67674, 67675, 67676, 67677, 67678, 67679, 67705, 67706, 67707, 67708, 67709, 67710, 67711, 67751, 67752, 67753, 67754, 67755, 67756, 67757, 67758, 67759, 67835, 67836, 67837, 67838, 67839, 67862, 67863, 67864, 67865, 67866, 67867, 68028, 68029, 68032, 68033, 68034, 68035, 68036, 68037, 68038, 68039, 68040, 68041, 68042, 68043, 68044, 68045, 68046, 68047, 68050, 68051, 68052, 68053, 68054, 68055, 68056, 68057, 68058, 68059, 68060, 68061, 68062, 68063, 68064, 68065, 68066, 68067, 68068, 68069, 68070, 68071, 68072, 68073, 68074, 68075, 68076, 68077, 68078, 68079, 68080, 68081, 68082, 68083, 68084, 68085, 68086, 68087, 68088, 68089, 68090, 68091, 68092, 68093, 68094, 68095, 68160, 68161, 68162, 68163, 68164, 68165, 68166, 68167, 68221, 68222, 68253, 68254, 68255, 68331, 68332, 68333, 68334, 68335, 68440, 68441, 68442, 68443, 68444, 68445, 68446, 68447, 68472, 68473, 68474, 68475, 68476, 68477, 68478, 68479, 68521, 68522, 68523, 68524, 68525, 68526, 68527, 68858, 68859, 68860, 68861, 68862, 68863, 69216, 69217, 69218, 69219, 69220, 69221, 69222, 69223, 69224, 69225, 69226, 69227, 69228, 69229, 69230, 69231, 69232, 69233, 69234, 69235, 69236, 69237, 69238, 69239, 69240, 69241, 69242, 69243, 69244, 69245, 69246, 69714, 69715, 69716, 69717, 69718, 69719, 69720, 69721, 69722, 69723, 69724, 69725, 69726, 69727, 69728, 69729, 69730, 69731, 69732, 69733, 69734, 69735, 69736, 69737, 69738, 69739, 69740, 69741, 69742, 69743, 69872, 69873, 69874, 69875, 69876, 69877, 69878, 69879, 69880, 69881, 69942, 69943, 69944, 69945, 69946, 69947, 69948, 69949, 69950, 69951, 70096, 70097, 70098, 70099, 70100, 70101, 70102, 70103, 70104, 70105, 70113, 70114, 70115, 70116, 70117, 70118, 70119, 70120, 70121, 70122, 70123, 70124, 70125, 70126, 70127, 70128, 70129, 70130, 70131, 70132, 70384, 70385, 70386, 70387, 70388, 70389, 70390, 70391, 70392, 70393, 70864, 70865, 70866, 70867, 70868, 70869, 70870, 70871, 70872, 70873, 71248, 71249, 71250, 71251, 71252, 71253, 71254, 71255, 71256, 71257, 71360, 71361, 71362, 71363, 71364, 71365, 71366, 71367, 71368, 71369, 71472, 71473, 71474, 71475, 71476, 71477, 71478, 71479, 71480, 71481, 71482, 71483, 71904, 71905, 71906, 71907, 71908, 71909, 71910, 71911, 71912, 71913, 71914, 71915, 71916, 71917, 71918, 71919, 71920, 71921, 71922, 74752, 74753, 74754, 74755, 74756, 74757, 74758, 74759, 74760, 74761, 74762, 74763, 74764, 74765, 74766, 74767, 74768, 74769, 74770, 74771, 74772, 74773, 74774, 74775, 74776, 74777, 74778, 74779, 74780, 74781, 74782, 74783, 74784, 74785, 74786, 74787, 74788, 74789, 74790, 74791, 74792, 74793, 74794, 74795, 74796, 74797, 74798, 74799, 74800, 74801, 74802, 74803, 74804, 74805, 74806, 74807, 74808, 74809, 74810, 74811, 74812, 74813, 74814, 74815, 74816, 74817, 74818, 74819, 74820, 74821, 74822, 74823, 74824, 74825, 74826, 74827, 74828, 74829, 74830, 74831, 74832, 74833, 74834, 74835, 74836, 74837, 74838, 74839, 74840, 74841, 74842, 74843, 74844, 74845, 74846, 74847, 74848, 74849, 74850, 74851, 74852, 74853, 74854, 74855, 74856, 74857, 74858, 74859, 74860, 74861, 74862, 92768, 92769, 92770, 92771, 92772, 92773, 92774, 92775, 92776, 92777, 93008, 93009, 93010, 93011, 93012, 93013, 93014, 93015, 93016, 93017, 93019, 93020, 93021, 93022, 93023, 93024, 93025, 119648, 119649, 119650, 119651, 119652, 119653, 119654, 119655, 119656, 119657, 119658, 119659, 119660, 119661, 119662, 119663, 119664, 119665, 120782, 120783, 120784, 120785, 120786, 120787, 120788, 120789, 120790, 120791, 120792, 120793, 120794, 120795, 120796, 120797, 120798, 120799, 120800, 120801, 120802, 120803, 120804, 120805, 120806, 120807, 120808, 120809, 120810, 120811, 120812, 120813, 120814, 120815, 120816, 120817, 120818, 120819, 120820, 120821, 120822, 120823, 120824, 120825, 120826, 120827, 120828, 120829, 120830, 120831, 125127, 125128, 125129, 125130, 125131, 125132, 125133, 125134, 125135, 127232, 127233, 127234, 127235, 127236, 127237, 127238, 127239, 127240, 127241, 127242, 127243, 127244];\n","/*\n * List of Unicode code that are flagged as separator.\n *\n * Contains Unicode code of:\n * - Zs = Separator, space\n * - Zl = Separator, line\n * - Zp = Separator, paragraph\n *\n * This list has been computed from http://unicode.org/Public/UNIDATA/UnicodeData.txt\n * curl -s http://unicode.org/Public/UNIDATA/UnicodeData.txt | grep -E ';Zs;|;Zl;|;Zp;' | cut -d \\; -f 1 | xargs -I{} printf '%d, ' 0x{}\n *\n */\nexports.Z = [32, 160, 5760, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8232, 8233, 8239, 8287, 12288];\n","(function() {\n var L = require('./L').L,\n N = require('./N').N,\n Z = require('./Z').Z,\n M = require('./M').M,\n unorm = require('unorm');\n\n var _unicodeCategory = function(code) {\n if (~L.indexOf(code)) return 'L';\n if (~N.indexOf(code)) return 'N';\n if (~Z.indexOf(code)) return 'Z';\n if (~M.indexOf(code)) return 'M';\n return undefined;\n };\n\n module.exports = function(string, options) {\n string = string || '';\n options = options || {};\n var allowedChars = options.allowedChars || '-_~';\n var lower = typeof options.lower === 'boolean' ? options.lower : true;\n var spaces = typeof options.spaces === 'boolean' ? options.spaces : false;\n var rv = [];\n var chars = unorm.nfkc(string);\n for(var i = 0; i < chars.length; i++) {\n var c = chars[i];\n var code = c.charCodeAt(0);\n // Allow Common CJK Unified Ideographs\n // See: http://www.unicode.org/versions/Unicode6.0.0/ch12.pdf - Table 12-2 \n if (0x4E00 <= code && code <= 0x9FFF) {\n rv.push(c);\n continue;\n }\n\n // Allow Hangul\n if (0xAC00 <= code && code <= 0xD7A3) {\n rv.push(c);\n continue;\n }\n\n // Japanese ideographic punctuation\n if ((0x3000 <= code && code <= 0x3002) || (0xFF01 <= code && code <= 0xFF02)) {\n rv.push(' ');\n }\n\n if (allowedChars.indexOf(c) != -1) {\n rv.push(c);\n continue;\n }\n var val = _unicodeCategory(code);\n if (val && ~'LNM'.indexOf(val)) rv.push(c);\n if (val && ~'Z'.indexOf(val)) rv.push(' ');\n }\n var slug = rv.join('').replace(/^\\s+|\\s+$/g, '').replace(/\\s+/g,' ');\n if (!spaces) slug = slug.replace(/[\\s\\-]+/g,'-');\n if (lower) slug = slug.toLowerCase();\n return slug;\n };\n}());","/**\n * vue-markdown v2.2.4\n * https://github.com/miaolz123/vue-markdown\n * MIT License\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"babel-runtime/core-js/get-iterator\"), require(\"babel-runtime/core-js/object/keys\"), require(\"markdown-it\"), require(\"markdown-it-emoji\"), require(\"markdown-it-sub\"), require(\"markdown-it-sup\"), require(\"markdown-it-footnote\"), require(\"markdown-it-deflist\"), require(\"markdown-it-abbr\"), require(\"markdown-it-ins\"), require(\"markdown-it-mark\"), require(\"markdown-it-toc-and-anchor\"), require(\"markdown-it-katex\"), require(\"markdown-it-task-lists\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"babel-runtime/core-js/get-iterator\", \"babel-runtime/core-js/object/keys\", \"markdown-it\", \"markdown-it-emoji\", \"markdown-it-sub\", \"markdown-it-sup\", \"markdown-it-footnote\", \"markdown-it-deflist\", \"markdown-it-abbr\", \"markdown-it-ins\", \"markdown-it-mark\", \"markdown-it-toc-and-anchor\", \"markdown-it-katex\", \"markdown-it-task-lists\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"VueMarkdown\"] = factory(require(\"babel-runtime/core-js/get-iterator\"), require(\"babel-runtime/core-js/object/keys\"), require(\"markdown-it\"), require(\"markdown-it-emoji\"), require(\"markdown-it-sub\"), require(\"markdown-it-sup\"), require(\"markdown-it-footnote\"), require(\"markdown-it-deflist\"), require(\"markdown-it-abbr\"), require(\"markdown-it-ins\"), require(\"markdown-it-mark\"), require(\"markdown-it-toc-and-anchor\"), require(\"markdown-it-katex\"), require(\"markdown-it-task-lists\"));\n\telse\n\t\troot[\"VueMarkdown\"] = factory(root[\"babel-runtime/core-js/get-iterator\"], root[\"babel-runtime/core-js/object/keys\"], root[\"markdown-it\"], root[\"markdown-it-emoji\"], root[\"markdown-it-sub\"], root[\"markdown-it-sup\"], root[\"markdown-it-footnote\"], root[\"markdown-it-deflist\"], root[\"markdown-it-abbr\"], root[\"markdown-it-ins\"], root[\"markdown-it-mark\"], root[\"markdown-it-toc-and-anchor\"], root[\"markdown-it-katex\"], root[\"markdown-it-task-lists\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__, __WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_5__, __WEBPACK_EXTERNAL_MODULE_6__, __WEBPACK_EXTERNAL_MODULE_7__, __WEBPACK_EXTERNAL_MODULE_8__, __WEBPACK_EXTERNAL_MODULE_9__, __WEBPACK_EXTERNAL_MODULE_10__, __WEBPACK_EXTERNAL_MODULE_11__, __WEBPACK_EXTERNAL_MODULE_12__, __WEBPACK_EXTERNAL_MODULE_13__, __WEBPACK_EXTERNAL_MODULE_14__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\n\tvar _getIterator2 = __webpack_require__(1);\n\n\tvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\n\tvar _keys = __webpack_require__(2);\n\n\tvar _keys2 = _interopRequireDefault(_keys);\n\n\tvar _markdownIt = __webpack_require__(3);\n\n\tvar _markdownIt2 = _interopRequireDefault(_markdownIt);\n\n\tvar _markdownItEmoji = __webpack_require__(4);\n\n\tvar _markdownItEmoji2 = _interopRequireDefault(_markdownItEmoji);\n\n\tvar _markdownItSub = __webpack_require__(5);\n\n\tvar _markdownItSub2 = _interopRequireDefault(_markdownItSub);\n\n\tvar _markdownItSup = __webpack_require__(6);\n\n\tvar _markdownItSup2 = _interopRequireDefault(_markdownItSup);\n\n\tvar _markdownItFootnote = __webpack_require__(7);\n\n\tvar _markdownItFootnote2 = _interopRequireDefault(_markdownItFootnote);\n\n\tvar _markdownItDeflist = __webpack_require__(8);\n\n\tvar _markdownItDeflist2 = _interopRequireDefault(_markdownItDeflist);\n\n\tvar _markdownItAbbr = __webpack_require__(9);\n\n\tvar _markdownItAbbr2 = _interopRequireDefault(_markdownItAbbr);\n\n\tvar _markdownItIns = __webpack_require__(10);\n\n\tvar _markdownItIns2 = _interopRequireDefault(_markdownItIns);\n\n\tvar _markdownItMark = __webpack_require__(11);\n\n\tvar _markdownItMark2 = _interopRequireDefault(_markdownItMark);\n\n\tvar _markdownItTocAndAnchor = __webpack_require__(12);\n\n\tvar _markdownItTocAndAnchor2 = _interopRequireDefault(_markdownItTocAndAnchor);\n\n\tvar _markdownItKatex = __webpack_require__(13);\n\n\tvar _markdownItKatex2 = _interopRequireDefault(_markdownItKatex);\n\n\tvar _markdownItTaskLists = __webpack_require__(14);\n\n\tvar _markdownItTaskLists2 = _interopRequireDefault(_markdownItTaskLists);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\texports.default = {\n\t md: new _markdownIt2.default(),\n\n\t template: '
    ',\n\n\t data: function data() {\n\t return {\n\t sourceData: this.source\n\t };\n\t },\n\n\n\t props: {\n\t watches: {\n\t type: Array,\n\t default: function _default() {\n\t return ['source', 'show', 'toc'];\n\t }\n\t },\n\t source: {\n\t type: String,\n\t default: ''\n\t },\n\t show: {\n\t type: Boolean,\n\t default: true\n\t },\n\t highlight: {\n\t type: Boolean,\n\t default: true\n\t },\n\t html: {\n\t type: Boolean,\n\t default: true\n\t },\n\t xhtmlOut: {\n\t type: Boolean,\n\t default: true\n\t },\n\t breaks: {\n\t type: Boolean,\n\t default: true\n\t },\n\t linkify: {\n\t type: Boolean,\n\t default: true\n\t },\n\t emoji: {\n\t type: Boolean,\n\t default: true\n\t },\n\t typographer: {\n\t type: Boolean,\n\t default: true\n\t },\n\t langPrefix: {\n\t type: String,\n\t default: 'language-'\n\t },\n\t quotes: {\n\t type: String,\n\t default: '“”‘’'\n\t },\n\t tableClass: {\n\t type: String,\n\t default: 'table'\n\t },\n\t taskLists: {\n\t type: Boolean,\n\t default: true\n\t },\n\t toc: {\n\t type: Boolean,\n\t default: false\n\t },\n\t tocId: {\n\t type: String\n\t },\n\t tocClass: {\n\t type: String,\n\t default: 'table-of-contents'\n\t },\n\t tocFirstLevel: {\n\t type: Number,\n\t default: 2\n\t },\n\t tocLastLevel: {\n\t type: Number\n\t },\n\t tocAnchorLink: {\n\t type: Boolean,\n\t default: true\n\t },\n\t tocAnchorClass: {\n\t type: String,\n\t default: 'toc-anchor'\n\t },\n\t tocAnchorLinkSymbol: {\n\t type: String,\n\t default: '#'\n\t },\n\t tocAnchorLinkSpace: {\n\t type: Boolean,\n\t default: true\n\t },\n\t tocAnchorLinkClass: {\n\t type: String,\n\t default: 'toc-anchor-link'\n\t },\n\t anchorAttributes: {\n\t type: Object,\n\t default: function _default() {\n\t return {};\n\t }\n\t },\n\t prerender: {\n\t type: Function,\n\t default: function _default(sourceData) {\n\t return sourceData;\n\t }\n\t },\n\t postrender: {\n\t type: Function,\n\t default: function _default(htmlData) {\n\t return htmlData;\n\t }\n\t }\n\t },\n\n\t computed: {\n\t tocLastLevelComputed: function tocLastLevelComputed() {\n\t return this.tocLastLevel > this.tocFirstLevel ? this.tocLastLevel : this.tocFirstLevel + 1;\n\t }\n\t },\n\n\t render: function render(createElement) {\n\t var _this = this;\n\n\t this.md = new _markdownIt2.default().use(_markdownItSub2.default).use(_markdownItSup2.default).use(_markdownItFootnote2.default).use(_markdownItDeflist2.default).use(_markdownItAbbr2.default).use(_markdownItIns2.default).use(_markdownItMark2.default).use(_markdownItKatex2.default, { \"throwOnError\": false, \"errorColor\": \" #cc0000\" }).use(_markdownItTaskLists2.default, { enabled: this.taskLists });\n\n\t if (this.emoji) {\n\t this.md.use(_markdownItEmoji2.default);\n\t }\n\n\t this.md.set({\n\t html: this.html,\n\t xhtmlOut: this.xhtmlOut,\n\t breaks: this.breaks,\n\t linkify: this.linkify,\n\t typographer: this.typographer,\n\t langPrefix: this.langPrefix,\n\t quotes: this.quotes\n\t });\n\t this.md.renderer.rules.table_open = function () {\n\t return '\\n';\n\t };\n\t var defaultLinkRenderer = this.md.renderer.rules.link_open || function (tokens, idx, options, env, self) {\n\t return self.renderToken(tokens, idx, options);\n\t };\n\t this.md.renderer.rules.link_open = function (tokens, idx, options, env, self) {\n\t (0, _keys2.default)(_this.anchorAttributes).map(function (attribute) {\n\t var aIndex = tokens[idx].attrIndex(attribute);\n\t var value = _this.anchorAttributes[attribute];\n\t if (aIndex < 0) {\n\t tokens[idx].attrPush([attribute, value]); // add new attribute\n\t } else {\n\t tokens[idx].attrs[aIndex][1] = value;\n\t }\n\t });\n\t return defaultLinkRenderer(tokens, idx, options, env, self);\n\t };\n\n\t if (this.toc) {\n\t this.md.use(_markdownItTocAndAnchor2.default, {\n\t tocClassName: this.tocClass,\n\t tocFirstLevel: this.tocFirstLevel,\n\t tocLastLevel: this.tocLastLevelComputed,\n\t anchorLink: this.tocAnchorLink,\n\t anchorLinkSymbol: this.tocAnchorLinkSymbol,\n\t anchorLinkSpace: this.tocAnchorLinkSpace,\n\t anchorClassName: this.tocAnchorClass,\n\t anchorLinkSymbolClassName: this.tocAnchorLinkClass,\n\t tocCallback: function tocCallback(tocMarkdown, tocArray, tocHtml) {\n\t if (tocHtml) {\n\t if (_this.tocId && document.getElementById(_this.tocId)) {\n\t document.getElementById(_this.tocId).innerHTML = tocHtml;\n\t }\n\n\t _this.$emit('toc-rendered', tocHtml);\n\t }\n\t }\n\t });\n\t }\n\n\t var outHtml = this.show ? this.md.render(this.prerender(this.sourceData)) : '';\n\t outHtml = this.postrender(outHtml);\n\n\t this.$emit('rendered', outHtml);\n\t return createElement('div', {\n\t domProps: {\n\t innerHTML: outHtml\n\t }\n\t });\n\t },\n\t beforeMount: function beforeMount() {\n\t var _this2 = this;\n\n\t if (this.$slots.default) {\n\t this.sourceData = '';\n\t var _iteratorNormalCompletion = true;\n\t var _didIteratorError = false;\n\t var _iteratorError = undefined;\n\n\t try {\n\t for (var _iterator = (0, _getIterator3.default)(this.$slots.default), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t var slot = _step.value;\n\n\t this.sourceData += slot.text;\n\t }\n\t } catch (err) {\n\t _didIteratorError = true;\n\t _iteratorError = err;\n\t } finally {\n\t try {\n\t if (!_iteratorNormalCompletion && _iterator.return) {\n\t _iterator.return();\n\t }\n\t } finally {\n\t if (_didIteratorError) {\n\t throw _iteratorError;\n\t }\n\t }\n\t }\n\t }\n\n\t this.$watch('source', function () {\n\t _this2.sourceData = _this2.prerender(_this2.source);\n\t _this2.$forceUpdate();\n\t });\n\n\t this.watches.forEach(function (v) {\n\t _this2.$watch(v, function () {\n\t _this2.$forceUpdate();\n\t });\n\t });\n\t }\n\t};\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_5__;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_7__;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_8__;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_9__;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_10__;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_11__;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_12__;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_13__;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_14__;\n\n/***/ })\n/******/ ])\n});\n;"],"names":["module","exports","__esModule","it","TypeError","isObject","toIObject","toLength","toAbsoluteIndex","IS_INCLUDES","$this","el","fromIndex","value","O","length","index","cof","TAG","ARG","arguments","tryGet","key","e","T","B","undefined","Object","callee","toString","call","slice","core","version","__e","aFunction","fn","that","a","b","c","apply","defineProperty","get","document","is","createElement","split","global","ctx","hide","has","PROTOTYPE","$export","type","name","source","own","out","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","IS_WRAP","W","expProto","target","C","this","Function","virtual","R","U","exec","window","Math","self","__g","hasOwnProperty","dP","createDesc","object","f","documentElement","propertyIsEnumerable","create","descriptor","setToStringTag","IteratorPrototype","Constructor","NAME","next","prototype","LIBRARY","redefine","Iterators","$iterCreate","getPrototypeOf","ITERATOR","BUGGY","keys","FF_ITERATOR","KEYS","VALUES","returnThis","Base","DEFAULT","IS_SET","FORCED","methods","getMethod","kind","proto","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","values","done","anObject","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframeDocument","iframe","i","lt","gt","style","display","src","contentWindow","open","write","close","Properties","result","IE8_DOM_DEFINE","toPrimitive","Attributes","getKeys","defineProperties","toObject","ObjectProto","constructor","arrayIndexOf","names","push","$keys","fails","KEY","exp","bitmap","enumerable","configurable","writable","def","tag","stat","shared","uid","SHARED","store","mode","copyright","toInteger","defined","TO_STRING","pos","s","String","l","charCodeAt","charAt","max","min","ceil","floor","isNaN","IObject","val","valueOf","id","px","random","concat","Symbol","USE_SYMBOL","$exports","classof","iterFn","addToUnscopables","step","Array","iterated","_t","_i","_k","Arguments","$at","point","TO_STRING_TAG","DOMIterables","Collection","clone","_instanceof","obj","nativeMap","nativeSet","nativePromise","Map","_","Set","Promise","parent","circular","depth","includeNonEnumerable","allParents","allChildren","useBuffer","Buffer","_clone","child","resolve","reject","then","err","__isArray","__isRegExp","RegExp","__getRegExpFlags","lastIndex","__isDate","Date","getTime","isBuffer","allocUnsafe","copy","Error","indexOf","forEach","keyChild","valueChild","set","entryChild","add","attrs","getOwnPropertyDescriptor","getOwnPropertySymbols","symbols","symbol","allPropertyNames","getOwnPropertyNames","propertyName","Infinity","__objToStr","o","re","flags","ignoreCase","multiline","clonePrototype","ParseError","Settings","buildTree","parseTree","utils","render","expression","baseNode","options","clearNode","settings","tree","node","toNode","appendChild","compatMode","console","warn","renderToString","toMarkup","generateParseTree","__parse","matchAt","Lexer","input","_input","Token","text","data","position","tokenRegex","whitespaceRegex","_innerLex","ignoreWhitespace","match","cssColor","_innerLexColor","whitespace","sizeRegex","_innerLexSize","unit","number","_innerLexWhitespace","lex","Options","color","size","phantom","font","parentStyle","parentSize","extend","extension","withStyle","withSize","withColor","withPhantom","withFont","reset","colorMap","getColor","message","lexer","error","begin","end","__proto__","functions","environments","parseData","Parser","ParseNode","ParseFuncOrArgument","isFunction","expect","consume","nextToken","parse","parseInput","parseExpression","endOfExpression","breakOnInfix","breakOnToken","body","atom","parseAtom","throwOnError","errorNode","handleUnsupportedCmd","handleInfixNodes","funcName","overIndex","replaceWith","numerNode","denomNode","numerBody","denomBody","callFunction","SUPSUB_GREEDINESS","handleSupSubscript","symPos","group","parseGroup","funcGreediness","greediness","parseFunction","textordArray","textNode","colorNode","errorColor","superscript","subscript","base","parseImplicitGroup","limits","alwaysHandleSupSub","prime","primes","sup","sub","sizeFuncs","styleFuncs","start","parseSymbol","func","left","right","envName","namepos","env","args","parseArguments","context","parser","positions","pop","handler","contains","baseGroup","funcData","allowedInText","totalArgs","numArgs","numOptionalArgs","baseGreediness","arg","argNode","argType","argTypes","parseSpecialGroup","parseOptionalGroup","argGreediness","innerMode","optional","res","outerMode","openBrace","inner","nucleus","option","defaultValue","displayMode","Style","multiplier","cramped","sizeMultiplier","styles","fracNum","fracDen","cramp","cls","sizeNames","resetNames","D","Dc","Tc","Sc","SS","SSc","DISPLAY","TEXT","SCRIPT","SCRIPTSCRIPT","domTree","fontMetrics","greekCapitals","dotlessLetters","makeSymbol","classes","replace","symbolNode","metrics","getCharacterMetrics","height","italic","skew","mathsym","mathDefault","mathit","test","makeOrd","fontName","fontMap","sizeElementFromChildren","elem","maxFontSize","children","makeSpan","span","makeFragment","fragment","documentFragment","makeFontSizer","fontSize","fontSizeInner","fontSizer","makeVList","positionType","positionData","currPos","oldChildren","shift","diff","bottom","realChildren","childWrap","top","baselineFix","vlist","sizingMultiplier","size1","size2","size3","size4","size5","size6","size7","size8","size9","size10","spacingFunctions","className","variant","buildCommon","delimiter","buildExpression","prev","groups","buildGroup","groupToType","mathord","textord","bin","rel","genfrac","array","spacing","punct","ordgroup","op","katex","overline","underline","rule","leftright","sqrt","accent","getTypeOfGroup","delimType","shouldHandleSupSub","isCharacterBox","getBaseElem","baseElem","makeNullDelimiter","groupTypes","prevAtom","atoms","elements","supmid","submid","supShift","subShift","minSupShift","supDrop","subDrop","sup1","sup3","sup2","supsub","scriptspace","ptPerEm","xHeight","sub2","ruleWidth","defaultRuleThickness","psi","marginLeft","marginRight","sub1","fstyle","numShift","clearance","denomShift","frac","delimSize","leftDelim","rightDelim","nstyle","dstyle","numer","numerreset","denom","denomreset","hasBarLine","num1","denom1","num2","num3","denom2","candiateClearance","axisHeight","mid","midShift","delim1","getDelim2","customSizedDelim","r","nr","nc","pt","arraycolsep","baselineskip","arraystretch","deflt","arrayskip","arstrutHeight","arstrutDepth","totalHeight","inrow","outrow","elt","gap","rowGaps","emPerEx","colSep","colDescrNum","offset","colDescriptions","cols","colDescr","firstSeparator","width","doubleRuleSep","separator","verticalAlign","sepwidth","hskipBeforeAndAfter","pregap","col","row","align","postgap","fix","supGroup","subGroup","hasLimits","noSuccessor","large","baseShift","slant","output","supKern","subKern","finalGroup","bigOpSpacing1","bigOpSpacing3","bigOpSpacing2","bigOpSpacing4","bigOpSpacing5","k","t","x","innerGroup","line","phi","lineClearance","innerHeight","minDelimiterHeight","delim","delimDepth","delimShift","root","rootWrap","innerRootHeight","innerRootDepth","toShift","rootVList","rootVListWrap","newStyle","sizedDelim","innerDepth","leftRightDelim","unshift","borderRightWidth","borderTopWidth","supsubGroup","baseChar","vecClass","accentBody","accentWrap","groupNode","buildHTML","JSON","stringify","topStrut","bottomStrut","htmlNode","setAttribute","mathMLTree","makeText","TextNode","getVariant","MathNode","nodeType","withDelims","leftOp","rightOp","outerNode","map","cell","leftNode","rightNode","accentNode","styleAttributes","attr","operator","buildMathML","texExpression","wrapper","annotation","semantics","math","startStyle","mathMLNode","katexNode","getMetrics","mathrmSize","styleWrap","toStyle","makeSmallDelim","center","makeLargeDelim","makeInner","sizeClass","makeStackedDelim","heightTotal","middle","repeat","topMetrics","topHeightTotal","repeatMetrics","repeatHeightTotal","bottomMetrics","bottomHeightTotal","middleHeightTotal","middleFactor","middleMetrics","minHeight","repeatCount","realHeightTotal","inners","stackLargeDelimiters","stackAlwaysDelimiters","stackNeverDelimiters","sizeToMaxHeight","makeSizedDelim","stackNeverDelimiterSequence","stackAlwaysDelimiterSequence","stackLargeDelimiterSequence","delimTypeToFont","traverseSequence","sequence","heightDepth","makeCustomSizedDelim","makeLeftRightDelim","delimiterFactor","delimiterExtend","maxDistFromAxis","createClass","splice","join","attributes","attribute","markup","escape","hyphenate","frag","createDocumentFragment","createTextNode","needsSpan","escaped","parseArray","cr","defineEnvironment","props","colalign","ca","delimiters","quad","emptyGroup","numCols","sigma5","sigma6","sigma8","sigma9","sigma10","sigma11","sigma12","sigma13","sigma14","sigma15","sigma16","sigma17","sigma18","sigma19","sigma20","sigma21","sigma21Script","sigma21ScriptScript","sigma22","xi8","xi9","xi10","xi11","xi12","xi13","metricMap","character","defineFunction","delimiterSizes","fontAliases","nameGroup","createElementNS","toParse","defineSymbol","ch","main","ams","mathTextSymbols","textSymbols","letters","setTextContent","nativeIndexOf","list","setting","defaultIfUndefined","uppercase","str","toLowerCase","ESCAPE_LOOKUP","ESCAPE_REGEX","escaper","testNode","textContent","innerText","assign","sources","_class","isString","isRegExp","escapeRE","defaultOptions","fuzzyLink","fuzzyEmail","fuzzyIP","isOptionsObj","reduce","acc","defaultSchemas","validate","tail","http","src_auth","src_host_port_strict","src_path","no_http","src_domain","src_domain_root","src_port","src_host_terminator","mailto","src_email_name","src_host_strict","tlds_2ch_src_re","tlds_default","resetScanCache","__index__","__text_cache__","createValidator","createNormalizer","normalize","compile","tlds","__tlds__","untpl","tpl","src_tlds","__tlds_replaced__","src_xn","email_fuzzy","tpl_email_fuzzy","link_fuzzy","tpl_link_fuzzy","link_no_ip_fuzzy","tpl_link_no_ip_fuzzy","host_fuzzy_test","tpl_host_fuzzy_test","aliases","schemaError","__compiled__","__schemas__","compiled","link","alias","slist","filter","schema_test","src_ZPCc","schema_search","pretest","Match","__last_index__","schema","__schema__","raw","url","createMatch","LinkifyIt","schemas","__opts__","definition","m","ml","me","len","tld_pos","at_pos","testSchemaAt","search","keepOld","isArray","sort","idx","arr","reverse","src_Any","src_Cc","src_Z","src_P","src_ZCc","src_pseudo_letter","src_ip4","src_host","tpl_host_fuzzy","tpl_host_no_ip_fuzzy","tpl_host_fuzzy_strict","tpl_host_port_fuzzy_strict","tpl_host_port_no_ip_fuzzy_strict","md","arrayReplaceAt","OTHER_CHARS","UNICODE_PUNCT_RE","lib","ucmicro","UNICODE_SPACE_RE","Z","abbr_def","state","startLine","endLine","silent","label","title","labelStart","labelEnd","bMarks","tShift","eMarks","trim","abbreviations","abbr_replace","j","tokens","token","nodes","reg","regText","regSimple","currentToken","blockTokens","substr","content","block","ruler","before","alt","after","isSpace","skipMarker","marker","skipSpaces","markTightParagraphs","level","hidden","deflist","contentStart","ddLine","dtLine","itemLines","listLines","listTokIdx","nextLine","oldDDIndent","oldIndent","oldParentType","oldSCount","oldTShift","oldTight","prevEmptyEnd","tight","ddIndent","isEmpty","sCount","blkIndent","OUTER","getLines","parentType","tokenize","emojies_defs","emojies_shortcuts","emoji_html","emoji_replace","normalize_opts","defaults","defs","shortcuts","enabled","opts","renderer","rules","emoji","scanRE","replaceRE","angry","blush","broken_heart","confused","cry","frowning","heart","imp","innocent","joy","kissing","laughing","neutral_face","open_mouth","rage","smile","smiley","smiling_imp","sob","stuck_out_tongue","sunglasses","sweat","sweat_smile","unamused","wink","quoteRE","emojies","ucm","ZPCc","Cc","splitTextToken","last_pos","emoji_name","autolinkLevel","info","nesting","_footnote_ref","n","Number","meta","subId","_footnote_block_open","xhtmlOut","_footnote_block_close","_footnote_open","_footnote_close","_footnote_anchor","parseLinkLabel","helpers","footnote_def","oldBMark","initial","posAfterColon","footnotes","refs","footnote_inline","footnoteId","posMax","inline","footnote_ref","footnoteSubId","count","footnote_tail","lastParagraph","current","currentLabel","insideRef","refTokens","tok","footnote_block_open","footnote_block_close","footnote_open","footnote_close","footnote_anchor","scanned","scanDelims","fromCharCode","jump","can_open","can_close","postProcess","startDelim","endDelim","loneMarkers","ruler2","isValidDelim","prevChar","nextChar","math_inline","pending","math_block","firstLine","lastLine","lastPos","found","lastIndexOf","katexInline","latex","log","inlineRenderer","katexBlock","blockRenderer","UNESCAPE_RE","skipToken","disableCheckboxes","useLabelWrapper","useLabelAfter","attrSet","attrIndex","attrPush","parentToken","targetLevel","isTodoItem","isInline","isParagraph","isListItem","startsWithTodoMarkdown","todoify","TokenConstructor","makeCheckbox","afterLabel","beginLabel","endLabel","checkbox","disabledAttr","for","labelAfter","_default","_interopRequireDefault","_uslug","_token","default","_typeof","iterator","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","from","arr2","_objectSpread","ownKeys","sym","_defineProperty","TOC","TOC_RE","markdownItSecondInstance","headingIds","tocHtml","string","num","makeSafe","slugifyFn","space","renderAnchorLinkSymbol","anchorLinkSymbolClassName","anchorLinkSymbol","renderAnchorLink","anchor","anchorClassName","openLinkToken","closeLinkToken","wrapHeadingTextInAnchor","_tokens$children","linkTokens","actionOnArray","false","true","anchorLinkSpace","anchorLinkBefore","treeToMarkdownBulletList","indent","item","indentation","heading","contentWithoutAnchor","generateTocMarkdownFromArray","headings","tocFirstLevel","tocLastLevel","lastItem","toc","tocClassName","tocCallback","anchorLink","resetIds","tocArray","tocMarkdown","tocTokens","slugify","heading_close","_tocAnchor","anchorLinkPrefix","originalHeadingOpen","heading_open","_len","_key","renderToken","_len2","_key2","toc_open","toc_close","toc_body","attr_name","unquoted","single_quoted","double_quoted","attr_value","open_tag","close_tag","comment","processing","declaration","cdata","HTML_TAG_RE","HTML_OPEN_CLOSE_TAG_RE","_hasOwnProperty","newElements","isValidEntityCode","fromCodePoint","surrogate1","surrogate2","UNESCAPE_MD_RE","ENTITY_RE","UNESCAPE_ALL_RE","DIGITAL_ENTITY_TEST_RE","entities","replaceEntityPattern","code","parseInt","unescapeMd","unescapeAll","entity","HTML_ESCAPE_TEST_RE","HTML_ESCAPE_REPLACE_RE","HTML_REPLACEMENTS","replaceUnsafeChar","escapeHtml","REGEXP_ESCAPE_RE","isWhiteSpace","isPunctChar","isMdAsciiPunct","normalizeReference","toUpperCase","mdurl","parseLinkDestination","parseLinkTitle","lines","ok","disableNested","prevPos","oldPos","Renderer","ParserCore","ParserBlock","ParserInline","punycode","config","zero","commonmark","BAD_PROTO_RE","GOOD_DATA_RE","validateLink","RECODE_HOSTNAME_FOR","normalizeLink","parsed","hostname","protocol","toASCII","er","encode","format","normalizeLinkText","toUnicode","decode","MarkdownIt","presetName","linkify","configure","presets","components","enableOnly","rules2","enable","ignoreInvalid","chain","missed","disable","use","plugin","State","process","parseInline","inlineMode","renderInline","Ruler","_rules","getRules","hasEmptyLines","maxNesting","skipEmptyLines","outTokens","lineMax","Core","_rules2","cache","pushPending","html","breaks","langPrefix","typographer","quotes","highlight","default_rules","code_inline","slf","renderAttrs","code_block","fence","highlighted","tmpAttrs","tmpToken","langName","image","renderInlineAsText","hardbreak","softbreak","html_block","html_inline","needLf","__rules__","__cache__","__find__","__compile__","chains","altName","at","opt","beforeName","ruleName","afterName","chainName","lastLineEmpty","oldBMarks","terminatorRules","terminate","last","emptyLines","params","mem","haveEndMarker","skipChars","tmp","skipSpacesBack","skipCharsBack","cnt","block_names","HTML_SEQUENCES","lineText","skipBulletListMarker","skipOrderedListMarker","oldLIndent","posAfterMarker","indentAfterMarker","markerValue","markerCharCode","isOrdered","_endLine","destEndPos","destEndLineNo","href","references","StateBlock","indent_found","keepLastLF","lineIndent","first","queue","lineStart","getLine","escapedSplit","escapes","backTicked","lastBackTick","substring","columns","columnCount","aligns","tableLines","tbodyLines","isLinkOpen","isLinkClose","ln","htmlLinkLevel","fullUrl","urlText","links","NEWLINES_RE","NULL_RE","RARE_RE","SCOPED_ABBR_TEST_RE","SCOPED_ABBR_RE","SCOPED_ABBR","p","tm","replaceFn","replace_scoped","inlineTokens","replace_rare","blkIdx","QUOTE_TEST_RE","QUOTE_RE","APOSTROPHE","replaceAt","process_inlines","thisLevel","lastChar","isLastPunctChar","isNextPunctChar","isLastWhiteSpace","isNextWhiteSpace","canOpen","canClose","isSingle","stack","openQuote","closeQuote","single","StateCore","EMAIL_RE","AUTOLINK_RE","linkMatch","emailMatch","matchStart","matchEnd","lastDelim","currDelim","isStrong","DIGITAL_RE","NAMED_RE","ESCAPED","isLetter","lc","ref","pmax","StateInline","pendingLevel","canSplitWord","left_flanking","right_flanking","isTerminatorChar","curr","attrData","attrGet","attrJoin","getRelocatable","__matchAtRelocatable","unicode","sticky","reloc","decodeCache","getDecodeCache","exclude","defaultChars","seq","b1","b2","b3","b4","chr","componentChars","encodeCache","getEncodeCache","keepEscaped","nextCode","encodeURIComponent","slashes","auth","port","pathname","hash","Url","protocolPattern","portPattern","simplePathPattern","delims","unwise","autoEscape","nonHostChars","hostEndingChars","hostnameMaxLen","hostnamePartPattern","hostnamePartStart","hostlessProtocol","slashedProtocol","urlParse","slashesDenoteHost","u","lowerProto","hec","rest","simplePath","atSign","hostEnd","host","parseHost","ipv6Hostname","hostparts","part","newpart","validParts","notHost","bit","qm","maxInt","tMin","tMax","damp","initialBias","initialN","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","stringFromCharCode","RangeError","mapDomain","parts","labels","encoded","ucs2decode","counter","extra","ucs2encode","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","inputLength","bias","basic","oldi","w","baseMinusT","currentValue","basicLength","handledCPCount","handledCPCountPlusOne","q","qMinusT","Any","Cf","DEFAULT_FEATURE","CACHE_THRESHOLD","SBase","LBase","VBase","TBase","LCount","VCount","TCount","NCount","SCount","UChar","cp","feature","codepoint","cacheCounter","fromCache","needFeature","ret","fromData","dunit","udata","fromCpOnly","fromRuleBasedJamo","SIndex","TIndex","fromCpFilter","strategies","reduceRight","strategy","isHighSurrogate","isLowSurrogate","prepFeature","getDecomp","isCompatibility","isExclude","getCanonicalClass","getComposite","following","UCharIterator","cursor","d","RecursDecompIterator","cano","canonical","resBuf","recursiveDecomp","uchar","decomp","DecompIterator","cc","inspt","uchar2","cc2","CompIterator","procBuf","lastClass","starter","composite","createIterator","nfd","nfkd","nfc","nfkc","unorm","shimApplied","form","L","M","N","_unicodeCategory","allowedChars","lower","spaces","rv","chars","slug","factory","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","__WEBPACK_EXTERNAL_MODULE_4__","__WEBPACK_EXTERNAL_MODULE_5__","__WEBPACK_EXTERNAL_MODULE_6__","__WEBPACK_EXTERNAL_MODULE_7__","__WEBPACK_EXTERNAL_MODULE_8__","__WEBPACK_EXTERNAL_MODULE_9__","__WEBPACK_EXTERNAL_MODULE_10__","__WEBPACK_EXTERNAL_MODULE_11__","__WEBPACK_EXTERNAL_MODULE_12__","__WEBPACK_EXTERNAL_MODULE_13__","__WEBPACK_EXTERNAL_MODULE_14__","modules","installedModules","moduleId","loaded","_getIterator2","_getIterator3","_keys","_keys2","_markdownIt","_markdownIt2","_markdownItEmoji","_markdownItEmoji2","_markdownItSub","_markdownItSub2","_markdownItSup","_markdownItSup2","_markdownItFootnote","_markdownItFootnote2","_markdownItDeflist","_markdownItDeflist2","_markdownItAbbr","_markdownItAbbr2","_markdownItIns","_markdownItIns2","_markdownItMark","_markdownItMark2","_markdownItTocAndAnchor","_markdownItTocAndAnchor2","_markdownItKatex","_markdownItKatex2","_markdownItTaskLists","_markdownItTaskLists2","template","sourceData","watches","show","Boolean","tableClass","taskLists","tocId","tocClass","tocAnchorLink","tocAnchorClass","tocAnchorLinkSymbol","tocAnchorLinkSpace","tocAnchorLinkClass","anchorAttributes","prerender","postrender","htmlData","computed","tocLastLevelComputed","_this","table_open","defaultLinkRenderer","link_open","aIndex","getElementById","innerHTML","$emit","outHtml","domProps","beforeMount","_this2","$slots","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","slot","return","$watch","$forceUpdate","v"],"sourceRoot":""}