aboutsummaryrefslogtreecommitdiffstats
path: root/dist/core-unsupported-browser.js.map
blob: 2c91bde0a8bbe919dc064b5d5aaa0401063facd1 (plain)
1
{"version":3,"file":"core-unsupported-browser.js?v=9ee4001b6f0671a49e27","mappings":"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AAS,CAAE,GAAM,KAAM,GAAM,KAAM,GAAM,MAAQ,CAAE,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,KAAM,GAAM,MAAO,GAAM,KAAM,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,KAAM,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,EAAK,GAAI,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,KAAM,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,M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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,GAAI,GAAI,IAAK,EAAK,CAAC,EAAG,EAAG,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,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAM,CAAC,EAAG,EAAG,EAAG,EAAG,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,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAK,CAAC,EAAG,EAAG,EAAG,EAAG,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,GAAI,GAAI,GAAI,IAAK,QAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,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,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,MAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,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,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAE3gCC,EAAY,CACdnpC,KAhbQ,IAibRT,MAAO,IAGTqpC,EAAY,CACVQ,WAAY,SAAoB9pB,GAqB9B,OApBA3R,KAAK07B,QAAU/pB,EACf3R,KAAK27B,QAAU,EAEf37B,KAAK47B,QAAU,CAAC,WAChB57B,KAAK67B,aAAe,GAEpB77B,KAAK87B,aAAe,EACpB97B,KAAK+7B,eAAiB,EACtB/7B,KAAKg8B,wBAA0B,EAK/Bh8B,KAAKi8B,kBAAoB,EACzBj8B,KAAKk8B,gBAAkB,EACvBl8B,KAAKm8B,gBAAkB,EACvBn8B,KAAKo8B,cAAgB,EACrBp8B,KAAKq8B,kBAAoB,EACzBr8B,KAAKs8B,gBAAkB,EAEhBt8B,IACT,EAMAu8B,UAAW,WACT,OAAOv8B,KAAK47B,OACd,EACAR,gBAAiB,WACf,OAAOp7B,KAAK47B,QAAQ57B,KAAK47B,QAAQjsC,OAAS,EAC5C,EACA2rC,UAAW,SAAmBxW,GAC5B9kB,KAAK47B,QAAQjlC,KAAKmuB,EACpB,EACA0X,MAAO,SAAe1X,GACpB9kB,KAAKs7B,UAAUxW,EACjB,EACAuW,SAAU,WACR,OAAIr7B,KAAK47B,QAAQjsC,OAAS,EACjBqQ,KAAK47B,QAAQpoC,MAEfwM,KAAK47B,QAAQ,EACtB,EACAa,aAAc,WAEZ,GAAIz8B,KAAK67B,aAAalsC,OAAS,EAC7B,OAAOqQ,KAAK08B,QAAQ18B,KAAK28B,SAAS38B,KAAK67B,aAAajhC,UAGtD,IAAKoF,KAAK48B,gBACR,OAAO58B,KAAK08B,QAAQlB,GAMtB,IAHA,IAAI7pB,EAAS3R,KAAK07B,QAAQ/gC,MAAMqF,KAAK27B,SACjCkB,EAAmBtB,EAAqBv7B,KAAKo7B,mBAExC9qC,EAAI,EAAGA,EAAIusC,EAAiBltC,OAAQW,IAAK,CAChD,IAAIwsC,EAAeD,EAAiBvsC,GAChCysC,EAAU7B,EAAS4B,GAEnB5xB,EAAUlL,KAAKg9B,OAAOrrB,EAAQorB,EAAQ,IAQ1C,GAJe,KAAXprB,GAA6B,KAAZzG,GACnBlL,KAAK27B,UAGS,OAAZzwB,EAAkB,EACpB2sB,EAAS3sB,GACOvb,OAChB,IAAIstC,EAAQF,EAAQ,GAAG/yB,KAAKhK,MAE5B,IAAKi9B,EACH,OAAOj9B,KAAKy8B,eAMd,GAAI1sC,MAAMC,QAAQitC,GAAQ,CACxB,IAGMpB,EAHFqB,EAAgBD,EAAMtiC,MAAM,GAChCsiC,EAAQA,EAAM,GACVC,EAAcvtC,OAAS,IAGxBksC,EAAe77B,KAAK67B,cAAcxjC,QAAQ4xB,MAAM4R,EAAc5Y,EAAmBia,GAEtF,CAEA,OAAOl9B,KAAK08B,QAAQ18B,KAAK28B,SAASM,EAAOpF,GAC3C,CACF,CAEA,GAAI73B,KAAKm9B,QAEP,OADAn9B,KAAK27B,UACEH,EAGTx7B,KAAKo9B,qBAAqBzrB,EAAO,GAAI3R,KAAK87B,aAAc97B,KAAK+7B,eAC/D,EAQAqB,qBAAsB,SAA8Bzc,EAAQ0c,EAAMC,GAChE,IAAIC,EAAav9B,KAAK07B,QAAQxrC,MAAM,MAAMmtC,EAAO,GAC7CG,EAAW,GAOf,MALID,IAEFC,EAAW,OAASD,EAAa,KADvB,IAAIlN,OAAOiN,GACyB,OAG1C,IAAI1D,YAAY4D,EAAW,sBAAwB7c,EAAnC6c,QAA4DH,EAAO,IAAMC,EAAS,IAC1G,EACAG,UAAW,WACT,OAAOz9B,KAAK27B,OACd,EACA+B,eAAgB,WACd,OAAO19B,KAAK87B,YACd,EACA6B,iBAAkB,WAChB,OAAO39B,KAAK+7B,cACd,EACA6B,iBAAkB,SAA0B1yB,GAC1C,IAAI2yB,EAAO,MAGX79B,KAAKi8B,kBAAoBj8B,KAAK27B,QAG9B37B,KAAKm8B,gBAAkBn8B,KAAK87B,aAC5B97B,KAAKq8B,kBAAoBr8B,KAAKi8B,kBAAoBj8B,KAAKg8B,wBAIvD,IADA,IAAI8B,OAAU,EAC4B,QAAlCA,EAAUD,EAAK3d,KAAKhV,KAC1BlL,KAAK87B,eACL97B,KAAKg8B,wBAA0Bh8B,KAAKi8B,kBAAoB6B,EAAQl0B,MAAQ,EAG1E5J,KAAKk8B,gBAAkBl8B,KAAK27B,QAAUzwB,EAAQvb,OAG9CqQ,KAAKo8B,cAAgBp8B,KAAK87B,aAC1B97B,KAAKs8B,gBAAkBt8B,KAAK+7B,eAAiB/7B,KAAKk8B,gBAAkBl8B,KAAKg8B,uBAC3E,EACAW,SAAU,SAAkBoB,GAG1B,MAAO,CAEL1rC,KAAM0rC,EACNnsC,MALWksB,UAAUnuB,OAAS,QAAsBiN,IAAjBkhB,UAAU,GAAmBA,UAAU,GAAK,GAQ/Eoa,YAAal4B,KAAKi8B,kBAClB9D,UAAWn4B,KAAKk8B,gBAChB9D,UAAWp4B,KAAKm8B,gBAChB9D,QAASr4B,KAAKo8B,cACd9D,YAAat4B,KAAKq8B,kBAClB9D,UAAWv4B,KAAKs8B,gBAEpB,EACAa,MAAO,WACL,OAAOn9B,KAAK27B,UAAY37B,KAAK07B,QAAQ/rC,MACvC,EACAitC,cAAe,WACb,OAAO58B,KAAK27B,SAAW37B,KAAK07B,QAAQ/rC,MACtC,EACAqtC,OAAQ,SAAgBrrB,EAAQpE,GAC9B,IAAIrC,EAAUyG,EAAO5F,MAAMwB,GAC3B,OAAIrC,GAEFlL,KAAK49B,iBAAiB1yB,EAAQ,IAC9BlL,KAAK27B,SAAWzwB,EAAQ,GAAGvb,OACpBub,EAAQ,IAEV,IACT,EAOAwxB,QAAS,SAAiBO,GACxB,OAAOA,CACT,GAMFnF,EAAGkG,MAAQ/C,EACXnD,EAAGmD,UAAYA,EASfnD,EAAGlnC,QAAU,CACXg8B,kBAAkB,GAMpB,IAAIqR,EAAU,CAIZC,WAAY,SAAoBttC,GAE9B,OADAknC,EAAGlnC,QAAUA,EACNoP,IACT,EAMAm+B,WAAY,WACV,OAAOrG,EAAGlnC,OACZ,EAMAiV,MAAO,SAAe8L,EAAQysB,GAC5B,IAAKnD,EACH,MAAM,IAAI31B,MAAM,wCAGlB21B,EAAUQ,WAAW9pB,GAMrB,IAAI0sB,EAAgBvG,EAAGlnC,QACnBwtC,IACFtG,EAAGlnC,QAAUiR,OAAO4kB,OAAO,CAAC,EAAGqR,EAAGlnC,QAASwtC,IAO7CH,EAAQK,aAAa3sB,EAAQspB,EAAWnD,EAAGlnC,SAE3CoqC,EAAMrrC,OAAS,EACfqrC,EAAMrkC,KAAK,GAEX,IAAIsmC,EAAQhC,EAAUwB,eAClB8B,EAAe,KAEnB,EAAG,CACItB,IAEHnF,EAAGlnC,QAAUytC,EACbG,KAGF,IAAI1Z,EAAQkW,EAAMA,EAAMrrC,OAAS,GAC7B2tC,EAASvC,EAAOkC,EAAM5qC,MAErBqxB,EAAMoB,GAAO5G,eAAeof,KAC/BxF,EAAGlnC,QAAUytC,EACbI,EAAgBxB,IAGlB,IAAIh7B,EAAQyhB,EAAMoB,GAAOwY,GAGzB,GAAiB,MAAbr7B,EAAM,GAAY,CACpB,IAAIy8B,EAAQ,KAER5G,EAAGlnC,QAAQg8B,mBACb8R,EAAQ,CACNxG,YAAa+E,EAAM/E,YACnBC,UAAW8E,EAAM9E,UACjBC,UAAW6E,EAAM7E,UACjBC,QAAS4E,EAAM5E,QACfC,YAAa2E,EAAM3E,YACnBC,UAAW0E,EAAM1E,YAIrBgG,EAAev+B,KAAK2+B,QAAQ1B,GAE5BjC,EAAMrkC,KAAK,CAAEgqB,OAAQoa,EAAOwD,EAAalsC,MAAOusC,cAAeL,EAAa3sC,MAAOunC,IAAKuF,GAASjpC,OAAOwM,EAAMtH,MAAM,KAEpHsiC,EAAQhC,EAAUwB,cACpB,MAGK,GAAiB,MAAbx6B,EAAM,GAAY,CACvB,IAAI48B,EAAmB58B,EAAMtH,MAAM,GAC/BmkC,EAAatG,EAAYqG,GACzBE,EAA6C,mBAAlBD,EAAW,GACtCE,EAAoBD,EAAoB,GAAK,KAE7CE,EAAeF,GAAqBjH,EAAGlnC,QAAQg8B,iBAAmB,GAAK,KAE3E,GAAsB,IAAlBkS,EAAW,GAEb,IADA,IAAII,EAAYJ,EAAW,GACpBI,KAAc,GAAG,CACtBlE,EAAMxnC,MACN,IAAI2rC,EAAanE,EAAMxnC,MAEnBurC,IACFC,EAAkB3mC,QAAQ8mC,EAAWP,eAEjCK,GACFA,EAAa5mC,QAAQ8mC,EAAWhG,KAGtC,CAGF,IAAIiG,EAAmB,CAAEze,OAAQme,EAAW,IAE5C,GAAIC,EAAmB,CACrBlH,EAAS0G,EAAeA,EAAa3sC,MAAQ,KACpC2sC,GAAeA,EAAa3sC,MAAMjC,OAE3C,IAAI0vC,EAAsC,OAAjBJ,EAAwBD,EAAkBltC,OAAOmtC,GAAgBD,EAE1FF,EAAW,GAAG7U,MAAM6U,EAAY7b,EAAmBoc,IAEnDD,EAAiBR,cAAgB7G,EAE7BkH,IACFG,EAAiBjG,IAAMnB,EAE3B,CAEA,IAAI/J,EAAY+M,EAAMA,EAAMrrC,OAAS,GACjC2vC,EAAqBR,EAAW,GAEpC9D,EAAMrkC,KAAKyoC,EAAkB1b,EAAMuK,GAAWqR,GAChD,MAGK,GAAc,QAAVr9B,EAAiB,CACtB+4B,EAAMxnC,MACN,IAAIic,EAASurB,EAAMxnC,MAQnB,OANqB,IAAjBwnC,EAAMrrC,QAA6B,IAAbqrC,EAAM,IAAYC,EAAU2B,mBAEpD9E,EAAGlnC,QAAUytC,EACbI,EAAgBxB,IAGdxtB,EAAOyO,eAAe,kBACxB4Z,EAAGlnC,QAAUytC,EACbJ,EAAQsB,WAAW9vB,EAAOmvB,eACnBnvB,EAAOmvB,gBAGhBX,EAAQsB,aAGRzH,EAAGlnC,QAAUytC,GACN,EACT,CACN,OAASpD,EAAU2B,iBAAmB5B,EAAMrrC,OAAS,EACvD,EACA6vC,aAAc,SAAsBC,GAElC,OADAxE,EAAYwE,EACLxB,CACT,EACAyB,aAAc,WACZ,OAAOzE,CACT,EACAqD,aAAc,SAAsB3sB,EAAQspB,EAAWrqC,GAAU,EACjE2uC,WAAY,SAAoB9vB,GAAS,EAOzCkvB,QAAS,SAAiB1B,GACxB,OAAOA,CACT,GAME7C,EAAuB,EAKvBE,EAAc,CAAC,EAKfqF,EAAgB,GAoCpB,SAAS/E,EAASV,GAChB,IAAIviC,EAAQuiC,EAAKnuB,MAAM,QAAQ/U,IAAIvB,QAEnC,GAAIA,OAAOmqC,SAASjoC,EAAM,KAAOA,EAAM,GAAKA,EAAM,GAChD,MAAM,IAAIiiC,YAAY,2BAA6BM,EAAO,eAG5D,OAAOviC,CACT,CAKA,SAASmjC,EAAgBrpC,EAAMmB,GAC7B,GAAkB,YAAdnB,EAAKc,MAAkC,YAAZK,EAAGL,OAAuB/B,MAAMiB,EAAKgB,aAAejC,MAAMoC,EAAGH,YAAchB,EAAKgB,UAAYG,EAAGH,UAC5H,MAAM,IAAImnC,YAAY,SAAWnoC,EAAKG,MAAQ,IAAMgB,EAAGhB,MAAQ,mCAEnE,CAnDAqsC,EAAQK,aAAe,SAAU3sB,EAAQqsB,GACvC2B,EAAgBhuB,EAChByoB,EAAuB,EACvBE,EAAc,CAAC,EAEf,IAAIuF,EAAYluB,EAAOmuB,YAAY,KAC/B1hC,EAAQuT,EAAOhX,MAAMklC,GAErBzhC,EAAMxI,SAAS,MAAQwI,EAAMxI,SAAS,KACxCooC,EAAM1C,UAAU,OAEZl9B,EAAMxI,SAAS,MACjBooC,EAAM1C,UAAU,KAEdl9B,EAAMxI,SAAS,MACjBooC,EAAM1C,UAAU,KAGtB,EAKA2C,EAAQU,QAAU,SAAU1B,GAK1B,MAJmB,YAAfA,EAAM5qC,MAAqC,wBAAf4qC,EAAM5qC,OACpC4qC,EAAMrrC,MAAQ,IAAIY,OAAOyqC,EAAMrrC,OAC/BqrC,EAAMrrC,MAAMwuB,cAAgBga,GAEvB6C,CACT,EA0BA,IAAI1D,EAAoB,EAAQ,OAqDhC,SAAS/Y,EAAK5uB,EAAOW,EAAM4mC,GACzB,IAAIxY,OAAS,EACTluB,OAAY,EAEhB,OAAQF,GACN,IAAK,UAEDE,EAAYgD,OAAO7D,EAAM+I,MAAM,IAC/BgmB,EAASnuB,OAAO6hC,cAAc5hC,GAC9B,MAEJ,IAAK,MAEDA,EAAYlC,SAASqB,EAAM+I,MAAM,GAAI,GACrCgmB,EAASnuB,OAAO6hC,cAAc5hC,GAC9B,MAEJ,IAAK,MACL,IAAK,UAED,GAAIb,EAAMkuC,YAAY,OAAS,EAAG,CAChC,IACIC,EAngCsa,SAAUzd,EAAKhyB,GAAK,GAAIP,MAAMC,QAAQsyB,GAAQ,OAAOA,EAAY,GAAIC,OAAOC,YAAY3gB,OAAOygB,GAAQ,OAAxf,SAAuBA,EAAKhyB,GAAK,IAAImyB,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAW/hB,OAAKhE,EAAW,IAAM,IAAK,IAAiC+D,EAA7BiiB,EAAKN,EAAIC,OAAOC,cAAmBE,GAAM/hB,EAAKiiB,EAAGC,QAAQC,QAAoBL,EAAK9rB,KAAKgK,EAAG/O,QAAYtB,GAAKmyB,EAAK9yB,SAAWW,GAA3DoyB,GAAK,GAAkE,CAAE,MAAOK,GAAOJ,GAAK,EAAM/hB,EAAKmiB,CAAK,CAAE,QAAU,KAAWL,GAAME,EAAW,QAAGA,EAAW,QAAK,CAAE,QAAU,GAAID,EAAI,MAAM/hB,CAAI,CAAE,CAAE,OAAO6hB,CAAM,CAAuHO,CAAcV,EAAKhyB,GAAa,MAAM,IAAIivB,UAAU,uDAA2D,CAmgC7mB8C,CADDzwB,EAAM1B,MAAM,OAAOyK,MAAM,GACW,GACzDu1B,EAAO6P,EAAoB,GAC3B9P,EAAQ8P,EAAoB,GAIhCttC,EAA8B,OAF9By9B,EAAO3/B,SAAS2/B,EAAM,KAEF,SADpBD,EAAQ1/B,SAAS0/B,EAAO,KACuB,OAAU,MAEzDtP,EAASnuB,OAAO6hC,cAAc5hC,EAChC,KAAO,CACL,IAAIutC,EAAMpuC,EAAM+I,MAAM,GAAGjG,QAAQ,IAAK,IAEtC,IADAjC,EAAYlC,SAASyvC,EAAK,KACV,QACd,MAAM,IAAIpG,YAAY,kCAAoChoC,GAG5D+uB,EAASnuB,OAAO6hC,cAAc5hC,EAChC,CACA,MAEJ,IAAK,OAED,OAAQb,GACN,IAAK,MAEHa,GADAkuB,EAAS,MACU+O,YAAY,GAC/B,MACF,IAAK,MAEHj9B,GADAkuB,EAAS,MACU+O,YAAY,GAC/B,MACF,IAAK,MAEHj9B,GADAkuB,EAAS,MACU+O,YAAY,GAC/B,MACF,IAAK,MAEHj9B,GADAkuB,EAAS,MACU+O,YAAY,GAC/B,MACF,IAAK,MAEHj9B,GADAkuB,EAAS,MACU+O,YAAY,GAC/B,MACF,IAAK,MAEHj9B,GADAkuB,EAAS,MACU+O,YAAY,GACjC,IAAK,MACH/O,EAAS,KACTluB,EAAY,EACd,IAAK,IACHkuB,EAAS,IACTluB,EAAYC,IACZ,MACF,QACED,EAAYC,IAEhB,MAEJ,IAAK,SAGDD,GADAkuB,EAAS/uB,GACU89B,YAAY,GAKrC,OAAOuJ,EAAK,CACV5mC,KAAM,OACNT,MAAOA,EACPW,KAAMA,EACNouB,OAAQA,EACRluB,UAAWA,GACV0mC,EACL,CAMA,IAAI8G,EAAa,UAMjB,SAAS/G,EAAW96B,GAClB,IAAI8hC,EAAO,IAAIrb,IAEXmC,GAA4B,EAC5BC,GAAoB,EACpBC,OAAiBtqB,EAErB,IACE,IAAK,IAA0CuqB,EAAtCC,EAAYhpB,EAAMmkB,OAAOC,cAAsBwE,GAA6BG,EAAQC,EAAUvE,QAAQC,MAAOkE,GAA4B,EAAM,CACtJ,IAAImZ,EAAOhZ,EAAMv1B,MAEjB,GAAIsuC,EAAKv9B,IAAIw9B,KAAUF,EAAWrqC,SAASuqC,GACzC,MAAM,IAAIvG,YAAY,kBAAoBx7B,GAE5C8hC,EAAKnb,IAAIob,EACX,CACF,CAAE,MAAOpd,GACPkE,GAAoB,EACpBC,EAAiBnE,CACnB,CAAE,QACA,KACOiE,GAA6BI,EAAUlD,QAC1CkD,EAAUlD,QAEd,CAAE,QACA,GAAI+C,EACF,MAAMC,CAEV,CACF,CAEA,OAAO9oB,EAAMlO,MAAM,IAAIiN,OAAOF,KAAK,GACrC,CAwBA,IAAIw9B,EAAW,qBACXC,EAAa,0BACb0F,EAAgB,yBAKpB,SAASjF,EAAyB37B,EAAMslB,GAItC,GAHoBsb,EAAc9rC,KAAKkL,IACR,MAAVslB,GAA2B,OAAVA,GAA4B,YAAVA,EAGtD,MAAM,IAAI8U,YAAY,+BAAiCp6B,EAAO,oBAGhE,OAAOA,CACT,CAuBA,IAAI6gC,EAAQ,uOAEZ,SAAShG,EAAuB76B,GAC9B,OAAOA,EAAK9K,QAAQ,IAAIL,OAAOgsC,EAAO,MAAM,SAAUxoC,EAAGyoC,EAAeC,EAAgBC,EAAmBC,EAAoBC,EAAcjuC,GAC3I,OAAI6tC,EACK9tC,OAAO6hC,cAAc9jC,SAAS+vC,EAAe,IAAK/vC,SAASgwC,EAAgB,KAEhFC,EACKhuC,OAAO6hC,cAAc9jC,SAASiwC,EAAmB,KAEtDC,EAGKjuC,OAAO6hC,cAAc9jC,SAASkwC,EAAoB,KAEvDC,EACKluC,OAAO6hC,cAAc9jC,SAASmwC,EAAc,KAEjDjuC,EACKD,OAAO6hC,cAAc9jC,SAASkC,EAAW,KAE3CoF,CACT,GACF,CAkGA,SAASohC,EAAK9kC,EAAMglC,GAgBlB,OAfIrB,EAAGlnC,QAAQg8B,mBACbz4B,EAAKglC,IAAM,CACT9Z,OAAQsgB,EAAchlC,MAAMw+B,EAAIjB,YAAaiB,EAAIhB,WACjD59B,MAAO,CACL8iC,KAAMlE,EAAIf,UACVkF,OAAQnE,EAAIb,YACZqI,OAAQxH,EAAIjB,aAEd1nB,IAAK,CACH6sB,KAAMlE,EAAId,QACViF,OAAQnE,EAAIZ,UACZoI,OAAQxH,EAAIhB,aAIXhkC,CACT,CAKA,SAASglC,EAAI5+B,EAAOiW,GAClB,OAAKsnB,EAAGlnC,QAAQg8B,iBAIT,CACLsL,YAAa39B,EAAM29B,YACnBC,UAAW3nB,EAAI2nB,UACfC,UAAW79B,EAAM69B,UACjBC,QAAS7nB,EAAI6nB,QACbC,YAAa/9B,EAAM+9B,YACnBC,UAAW/nB,EAAI+nB,WATR,IAWX,CAEA,SAASkG,EAAgBxB,GAvyCf,MAwyCJA,EAAM5qC,MACRmsC,IAGFvD,EAAUmC,qBAAqBH,EAAMrrC,MAAOqrC,EAAM7E,UAAW6E,EAAM3E,YACrE,CAEA,SAASkG,KAIT,WACE,MAAM,IAAI5E,YAJC,2BAKb,CALEgH,EACF,CAMA5xC,EAAOC,QAAUgvC,C,+BCr3CjB,IAAI4C,EAAmB,EAAQ,MAK3BC,EAAmBD,EAAiBh7B,MAAMk7B,KAAKF,GAQnDA,EAAiBh7B,MAAQ,SAAU0H,EAAQ3c,GACzC,OAAOkwC,EAAiB,GAAKvzB,EAAQ3c,EACvC,EAGAiwC,EAAiB3C,WAAW,CAAEtR,kBAAkB,IAEhD59B,EAAOC,QAAU4xC,C,yBCpBjB,IAAIG,EAAmC,CACrCC,iBAAkB,KAClBC,OAAQ,KACRC,kBAAmB,OAGjBC,EAAmCC,EAAWL,GAE9CM,EAA+B,CACjCC,MAAO,QACPC,gBAAiB,OACjBC,WAAY,QACZC,IAAK,MACLC,SAAU,WACVC,aAAc,SACdC,cAAe,SACfC,eAAgB,KAChBC,MAAO,QACPC,wBAAyB,OACzBC,wBAAyB,OACzBC,wBAAyB,MACzBC,6BAA8B,QAC9BC,wBAAyB,MACzBC,wBAAyB,MACzBC,KAAM,OACNC,6BAA8B,KAC9BC,WAAY,MACZC,UAAW,MACXC,MAAO,QACPC,gBAAiB,kBACjBC,eAAgB,iBAChBC,oBAAqB,sBACrBC,mBAAoB,qBACpBC,sBAAuB,wBACvBC,SAAU,MACVC,cAAe,UACfC,gBAAiB,SACjBC,UAAW,MACXC,oBAAqB,OACrBC,qBAAsB,OACtBC,YAAa,MACbC,SAAU,MACVC,YAAa,OACbC,aAAc,SACdC,wBAAyB,MACzBC,UAAW,QACX/sC,KAAM,OACNgtC,wBAAyB,QACzBC,eAAgB,UAChBC,oBAAqB,SACrBC,eAAgB,QAChBC,QAAS,UACTC,mBAAoB,KACpBC,kBAAmB,QACnBC,YAAa,KACbC,qBAAsB,OACtBC,kBAAmB,QACnBC,UAAW,QACXC,mBAAoB,KACpBC,YAAa,QACbC,aAAc,OACdC,UAAW,QAGTC,EAA+BtD,EAAWC,GAE1CsD,EAAoC,CACtCC,aAAc,KACdC,kBAAmB,KACnBC,sBAAuB,KACvBC,QAAS,CAAC,KAAM,SAChBC,gBAAiB,KACjBC,iBAAkB,KAClBC,eAAgB,CAAC,KAAM,SACvBC,eAAgB,KAChBC,kBAAmB,KACnBC,OAAQ,KACRC,oBAAqB,KACrBC,OAAQ,IACRC,cAAe,KACfC,eAAgB,KAChBC,iBAAkB,KAClBC,KAAM,CAAC,IAAK,kBACZC,YAAa,KACbC,gBAAiB,KACjBC,gBAAiB,KACjBC,gBAAiB,KACjBvwC,OAAQ,IACRwwC,iBAAkB,KAClBC,MAAO,IACPC,aAAc,KACdC,aAAc,KACdC,kBAAmB,KACnBC,aAAc,KACdC,oBAAqB,KACrBC,YAAa,KACbC,YAAa,CAAC,IAAK,SACnBC,UAAW,IACXC,gBAAiB,KACjBC,aAAc,KACdC,UAAW,KACXtkB,OAAQ,IACRukB,iBAAkB,KAClBC,WAAY,KACZC,iBAAkB,MAGhBC,EAA2C5F,EAAWuD,GAEtDsC,EAA0B,CAC5BC,MAAO,OACPC,KAAM,OACNC,sBAAuB,OACvBC,OAAQ,OACRC,SAAU,OACVC,QAAS,OACTC,SAAU,OACVC,MAAO,OACPC,UAAW,OACXC,MAAO,OACPC,QAAS,OACTC,UAAW,OACXC,SAAU,OACVC,OAAQ,OACRC,QAAS,OACTC,SAAU,OACVC,MAAO,OACPC,oBAAqB,OACrBC,OAAQ,OACRC,mBAAoB,OACpBC,OAAQ,OACRC,KAAM,OACNC,SAAU,OACVC,OAAQ,OACRC,OAAQ,CAAC,OAAQ,QACjBC,UAAW,OACXC,QAAS,OACTC,SAAU,OACVC,QAAS,OACTC,WAAY,OACZC,MAAO,OACPC,SAAU,OACVC,qBAAsB,OACtBC,QAAS,OACTC,SAAU,OACVC,SAAU,OACVC,WAAY,OACZC,OAAQ,OACRC,QAAS,OACTC,MAAO,OACPC,SAAU,OACVC,cAAe,OACfC,SAAU,OACVC,IAAK,OACLC,OAAQ,OACRC,gBAAiB,OACjBC,QAAS,OACTC,OAAQ,OACRC,OAAQ,OACRC,SAAU,OACVC,iBAAkB,OAClBC,UAAW,CAAC,OAAQ,QACpBC,sBAAuB,OACvBC,uBAAwB,OACxBC,SAAU,OACVC,OAAQ,OACRC,QAAS,OACTC,SAAU,OACVC,SAAU,OACVC,WAAY,OACZC,MAAO,OACPC,OAAQ,OACRC,UAAW,OACXC,IAAK,OACLC,MAAO,OACPC,OAAQ,OACRC,MAAO,OACPC,SAAU,OACVC,SAAU,OACVC,KAAM,OACNC,OAAQ,OACRC,OAAQ,OACRC,SAAU,OACVC,QAAS,OACTC,UAAW,OACXC,QAAS,OACTC,WAAY,OACZC,QAAS,OACTC,YAAa,OACbC,cAAe,OACfC,aAAc,OACdC,cAAe,OACfC,iBAAkB,OAClBC,qBAAsB,OACtBC,KAAM,OACNC,KAAM,OACNC,UAAW,OACXC,IAAK,OACLC,QAAS,OACTC,QAAS,OACTC,UAAW,OACXC,YAAa,OACbC,KAAM,OACNC,IAAK,OACLC,MAAO,OACPC,MAAO,OACPC,SAAU,OACVC,cAAe,OACfC,WAAY,OACZC,kBAAmB,OACnBC,WAAY,OACZC,YAAa,OACbC,YAAa,OACbC,kBAAmB,OACnBC,WAAY,OACZC,MAAO,OACPC,MAAO,OACPC,QAAS,OACTC,aAAc,OACdC,UAAW,OACXC,YAAa,OACbC,SAAU,OACVC,WAAY,OACZC,gBAAiB,OACjBC,OAAQ,OACRC,MAAO,OACPC,UAAW,OACXC,WAAY,OACZC,QAAS,OACTC,QAAS,OACTC,QAAS,OACTC,YAAa,OACbC,QAAS,OACTC,QAAS,OACTC,aAAc,OACdC,QAAS,OACTC,UAAW,OACXC,aAAc,OACdC,OAAQ,OACRC,QAAS,OACTC,SAAU,OACVC,OAAQ,OACRC,SAAU,OACVC,SAAU,OACVC,MAAO,OACPC,MAAO,OACPC,OAAQ,OACRC,OAAQ,OACRC,OAAQ,OACRC,KAAM,OACNC,QAAS,OACTC,SAAU,OACVC,QAAS,OACTC,SAAU,OACVC,IAAK,OACLC,YAAa,OACbC,GAAI,OACJC,iBAAkB,QAGhBC,EAAgClP,EAAW6F,GAE/C,SAAS7F,EAAWp6B,GAClB,IAAIupC,EAAU,CAAC,EAEf,IAAK,IAAIhxC,KAAQyH,EACf,GAAKA,EAAKiX,eAAe1e,GAAzB,CAGA,IAAI5N,EAAQqV,EAAKzH,GACjB,GAAIzP,MAAMC,QAAQ4B,GAChB,IAAK,IAAItB,EAAI,EAAGA,EAAIsB,EAAMjC,OAAQW,IAChCkgD,EAAQ5+C,EAAMtB,IAAMkP,OAGtBgxC,EAAQ5+C,GAAS4N,CAPnB,CAWF,OAAOgxC,CACT,CA8BA,SAAShX,EAAuB5nC,GAC9B,OAAOgzC,EAAkC1mB,eAAetsB,IAAUq1C,EAAyC/oB,eAAetsB,EAC5H,CAEA,SAAS6+C,EAAsB7+C,GAC7B,OAAOs1C,EAAwBhpB,eAAetsB,IAAU2+C,EAA8BryB,eAAetsB,EACvG,CAkCA5C,EAAOC,QAAU,CACfyhD,QArDF,SAAiBlxC,GACf,OAAO4hC,EAAiCljB,eAAe1e,IAASmlC,EAA6BzmB,eAAe1e,EAC9G,EAoDEm6B,YAtEF,SAAqBn6B,GACnB,OAAOwhC,EAAiC9iB,eAAe1e,IAAS4hC,EAAiCljB,eAAe1e,IAAS8hC,EAA6BpjB,eAAe1e,IAASmlC,EAA6BzmB,eAAe1e,EAC5N,EAqEEq6B,aAnEF,SAAsBr6B,EAAM5N,GAC1B,OAeF,SAA+B4N,GAC7B,MAAgB,qBAATA,GAAuC,MAARA,CACxC,CAjBMmxC,CAAsBnxC,GACjBg6B,EAAuB5nC,KAkBlC,SAA8B4N,GAC5B,MAAgB,WAATA,GAA8B,sBAATA,GAAyC,OAATA,GAA0B,QAATA,CAC/E,CAjBMoxC,CAAqBpxC,IAChBixC,EAAsB7+C,EAIjC,EA0DE4nC,uBAAwBA,EACxBiX,sBAAuBA,EACvB/W,qBAtCF,SAA8Bl6B,GAC5B,OAAO8hC,EAA6BpjB,eAAe1e,IAASmlC,EAA6BzmB,eAAe1e,EAC1G,EAqCEu6B,iBAnCF,SAA0Bv6B,GACxB,OAAI4hC,EAAiCljB,eAAe1e,GAC3C4hC,EAAiC5hC,GAGtCmlC,EAA6BzmB,eAAe1e,GACvCmlC,EAA6BnlC,GAG/B,IACT,EA0BEy6B,kBAxBF,SAA2BroC,GACzB,OAAIq1C,EAAyC/oB,eAAetsB,GACnDq1C,EAAyCr1C,GAG9C2+C,EAA8BryB,eAAetsB,GACxC2+C,EAA8B3+C,GAGnC+yC,EAA6BzmB,eAAetsB,GACvC+yC,EAA6B/yC,GAG/B,IACT,EAYEovC,iCAAkCA,EAClCI,iCAAkCA,EAElCE,6BAA8BA,EAC9BqD,6BAA8BA,EAE9BC,kCAAmCA,EACnCqC,yCAA0CA,EAE1CC,wBAAyBA,EACzBqJ,8BAA+BA,E,+BClXjC,IAAIM,EAAmB,EAAQ,MAC3BxvB,EAAY,EAAQ,OACpByvB,EAAY,EAAQ,OACpBpkB,EAAS,EAAQ,OACjB/O,EAAa,EAAQ,MACrBozB,EAAY,EAAQ,OACpBC,EAAK,EAAQ,OAGb/xB,EADW,EAAQ,OACGA,WAOtBgyB,EAAa,CAIfvkB,OAAQA,EAKRskB,GAAIA,EAKJ3hB,gBAAiB1R,EAAW0R,gBAkB5BxpB,MAAO,SAAe0H,EAAQ3c,GAC5B,OAAO87B,EAAO7mB,MAAM,GAAK0H,EAAQ3c,EACnC,EAqBAsgD,SAAU,SAAkB3wB,EAAKoW,EAAU/lC,GACzC,OAAOmgD,EAAUG,SAAS3wB,EAAKoW,EAAU/lC,EAC3C,EAeAgtB,UAAW,SAAmBrQ,EAAQopB,GACpC,OAAOhZ,EAAWC,UAAUrQ,EAAQopB,EACtC,EAYAvU,SAAU,SAAkB7B,GAC1B,OAAOc,EAAUe,SAAS7B,EAC5B,EAQA4wB,SAAU,SAAkB5jC,GAC1B,IAAI6jC,EAASpxC,KAAKqxC,gBAAgB9jC,GAClC,OAAO,IAAIlZ,OAAO+8C,EAAOE,YAAaF,EAAOG,WAC/C,EAWAviB,SAAU,SAAkBzhB,EAAQ2hB,GAClC,IACIE,GADOtR,UAAUnuB,OAAS,QAAsBiN,IAAjBkhB,UAAU,GAAmBA,UAAU,GAAK,CAAC,GAC3DsR,UAErB,OAAO0hB,EAAU9hB,SAASzhB,EAAQ,CAAE2hB,UAAWA,EAAWE,UAAWA,GACvE,EAWAiiB,gBAAiB,SAAyB9jC,EAAQ2hB,GAChD,OAAO2hB,EAAiBjzB,UAAUrQ,EAAQ2hB,EAC5C,EASAhP,KAAM,SAAchB,EAAIvN,GACtB,GAAkB,iBAAPuN,EAAiB,CAC1B,IAAIkyB,EAASpxC,KAAKqxC,gBAAgBnyB,GAC9BlB,EAAQozB,EAAOhzB,WAGjBc,EADElB,EAAMkD,qBACH,IAAIjC,EAAWmyB,EAAOD,WAAY,CACrC/yC,MAAOgzC,EAAOG,WACdlyB,OAAQ+xB,EAAOE,YACflyB,OAAQpB,EAAMkD,uBAGXkwB,EAAOD,UAEhB,CAEA,OAAOjyB,EAAGgB,KAAKvO,EACjB,GAGF3iB,EAAOC,QAAUgiD,C,8BC7KjB,IAAI3yB,EAAe,WAAc,SAASC,EAAiBC,EAAQ9e,GAAS,IAAK,IAAIpP,EAAI,EAAGA,EAAIoP,EAAM/P,OAAQW,IAAK,CAAE,IAAImuB,EAAa/e,EAAMpP,GAAImuB,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAM/c,OAAOgd,eAAeL,EAAQC,EAAWhb,IAAKgb,EAAa,CAAE,CAAE,OAAO,SAAUK,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYR,EAAiBO,EAAYtZ,UAAWuZ,GAAiBC,GAAaT,EAAiBO,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAIfuC,EAAY,EAAQ,OACpBqL,EAAS,EAAQ,OACjBwkB,EAAW,EAAQ,OAMnB7hB,EAAkB,WAOpB,SAASA,EAAgB9O,GACvB,IAAIvC,EAAQF,UAAUnuB,OAAS,QAAsBiN,IAAjBkhB,UAAU,GAAmBA,UAAU,GAAK,MAlBpF,SAAyBwB,EAAUR,GAAe,KAAMQ,aAAoBR,GAAgB,MAAM,IAAIS,UAAU,oCAAwC,CAoBpJC,CAAgBxf,KAAMqvB,GAEtBrvB,KAAKwxC,KAAOjxB,EACZvgB,KAAKyxC,QAAU,KACfzxC,KAAK07B,QAAU,KACf17B,KAAK0xC,QAAU,KACf1xC,KAAK2xC,OAAS3zB,CAChB,CAgDA,OA9CAM,EAAa+Q,EAAiB,CAAC,CAC7B5rB,IAAK,SACL7R,MAAO,WACL,OAAOoO,KAAKwxC,IACd,GACC,CACD/tC,IAAK,WACL7R,MAAO,SAAkBosB,GACvBhe,KAAK2xC,OAAS3zB,CAChB,GACC,CACDva,IAAK,WACL7R,MAAO,WACL,OAAOoO,KAAK2xC,MACd,GACC,CACDluC,IAAK,WACL7R,MAAO,WAIL,OAHKoO,KAAK0xC,UACR1xC,KAAK0xC,QAAU,IAAIr9C,OAAO2L,KAAKsxC,YAAatxC,KAAKwxC,KAAKpzC,QAEjD4B,KAAK0xC,OACd,GACC,CACDjuC,IAAK,YACL7R,MAAO,WAIL,OAHKoO,KAAKyxC,UACRzxC,KAAKyxC,QAAUpwB,EAAUe,SAASpiB,KAAKwxC,KAAKxzC,OAEvCgC,KAAKyxC,OACd,GACC,CACDhuC,IAAK,WACL7R,MAAO,WACL,OAAOoO,KAAKwxC,KAAKpzC,KACnB,GACC,CACDqF,IAAK,WACL7R,MAAO,WAIL,OAHKoO,KAAK07B,UACR17B,KAAK07B,QAAUra,EAAUe,SAASpiB,KAAKwxC,OAElCxxC,KAAK07B,OACd,KAGKrM,CACT,CAlEsB,GAoEtBrgC,EAAOC,QAAU,CAIfogC,gBAAiBA,EA6BjBzR,UAAW,SAAmBrQ,EAAQopB,GACpC,IAAIpW,EAAMhT,EAcV,OAZIA,aAAkBlZ,SACpBkZ,EAAS,GAAKA,GAGM,iBAAXA,IACTgT,EAAMmM,EAAO7mB,MAAM0H,EAAQ,CACzBqf,kBAAkB,KAItBskB,EAASA,SAAS3wB,EAAKoW,GAEhB,IAAItH,EAAgB9O,EAC7B,E,yBCrDFvxB,EAAOC,QAAU,CACfsnC,kBAnEF,SAASA,EAAkBpiC,GACzB,GAAkB,gBAAdA,EAAK9B,KACP,MAAM,IAAIktB,UAAU,qCAAuCprB,EAAK9B,KAAO,KAGzE,IAAIqP,EAAO,GAQX,OANIvN,EAAKb,MAA2B,gBAAnBa,EAAKb,KAAKjB,KACzBqP,EAAK/K,KAAKszB,MAAMvoB,EAVpB,SAA4B4gB,GAAO,GAAIvyB,MAAMC,QAAQsyB,GAAM,CAAE,IAAK,IAAIhyB,EAAI,EAAG4yB,EAAOnzB,MAAMuyB,EAAI3yB,QAASW,EAAIgyB,EAAI3yB,OAAQW,IAAO4yB,EAAK5yB,GAAKgyB,EAAIhyB,GAAM,OAAO4yB,CAAM,CAAS,OAAOnzB,MAAM0B,KAAK6wB,EAAQ,CAUxKW,CAAmBsT,EAAkBpiC,EAAKb,OAAOxB,OAAO,CAACqC,EAAKZ,SAEpFmO,EAAK/K,KAAKxC,EAAKb,KAAMa,EAAKZ,OAGrBmO,CACT,EAsDE80B,kBA7CF,SAA2B90B,GACzB,OAAOA,EAAK5M,QAAO,SAAUxB,EAAMC,GACjC,MAAO,CACLlB,KAAM,cACNiB,KAAMA,EACNC,MAAOA,EAEX,GACF,EAsCEoiC,wBA1BF,SAAiC9hC,GACP,MAApBA,EAAWtB,KAEbsB,EAAWtB,KAAO,IACW,MAApBsB,EAAWtB,MAEpBsB,EAAWtB,KAAO,QAClBsB,EAAWpC,KAAO,SACXoC,EAAWjB,IACW,MAApBiB,EAAWtB,MAEpBsB,EAAWtB,KAAO,QAClBsB,EAAWpC,KAAO,EAClBoC,EAAWjB,GAAK,GACa,UAApBiB,EAAWtB,OAEpBsB,EAAWpC,MAAQ,EACfoC,EAAWjB,KACbiB,EAAWjB,IAAM,GAGvB,E,+BC1EA,IAAI8iC,EAAW,EAAQ,OA8FvB1mC,EAAOC,QAAU,CAqCfiiD,SAAU,SAAkB3wB,EAAKoW,GAC/B,IAAI/lC,EAAUktB,UAAUnuB,OAAS,QAAsBiN,IAAjBkhB,UAAU,GAAmBA,UAAU,GAAK,CAAE8zB,SAAS,GAwB7F,SAASC,EAAW19C,EAAMsF,EAAQq4C,EAAMloC,GACtC,IAAIqtB,EAAavB,EAASO,WAAWx8B,GAGrC,OAFei8B,EAASO,WAAW9hC,EAAM8iC,EAAY6a,EAAMloC,EAG7D,CA1BK7Z,MAAMC,QAAQ2mC,KACjBA,EAAW,CAACA,IAIdA,EAAWA,EAASxkC,QAAO,SAAUgsB,GACnC,MAAiC,mBAAtBA,EAAQmC,WAGZnC,EAAQmC,UAAUC,EAC3B,IAEAmV,EAASqc,eAGTpb,EAASz6B,SAAQ,SAAUiiB,GACG,mBAAjBA,EAAQ0C,MACjB1C,EAAQ0C,KAAKN,EAEjB,IAvIJ,SAAqByxB,GACnB,IAAIphD,EAAUktB,UAAUnuB,OAAS,QAAsBiN,IAAjBkhB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAE/E3oB,EAAMvE,EAAQuE,IACdE,EAAOzE,EAAQyE,KACf48C,EAAerhD,EAAQqhD,cAE3B,SAASC,EAAM/9C,EAAMsF,EAAQq4C,EAAMlrB,GACjC,GAAKzyB,GAA6B,iBAAdA,EAAK9B,KAAzB,CAIA,IAAI8/C,OAAMv1C,EAKV,GAJIzH,IACFg9C,EAAMh9C,EAAIhB,EAAMsF,EAAQq4C,EAAMlrB,KAGpB,IAARurB,EAYF,IAAK,IAAIC,KARL34C,GAAUA,EAAOq4C,KAIjB39C,EAHG3D,MAAMo2B,GAGFntB,EAAOq4C,GAFPr4C,EAAOq4C,GAAMlrB,IAMNzyB,EAChB,GAAIA,EAAK+pB,eAAek0B,GAAQ,CAC9B,GAAIH,EAAeA,EAAaG,EAAOj+C,GAAqB,MAAbi+C,EAAM,GACnD,SAGF,IAAItc,EAAQ3hC,EAAKi+C,GAcjB,GAAIriD,MAAMC,QAAQ8lC,GAAQ,CACxB,IAAIlsB,EAAQ,EAEZ,IADA8rB,EAAS2c,qBAAqB17C,KAAKiT,GAC5BA,EAAQksB,EAAMnmC,QACnBuiD,EAAMpc,EAAMlsB,GAAQzV,EAAMi+C,EAAOxoC,GACjCA,EAAQ8rB,EAAS4c,sBAAsB,GAEzC5c,EAAS2c,qBAAqB7+C,KAChC,MAII0+C,EAAMpc,EAAO3hC,EAAMi+C,EAEzB,CAIA/8C,GACFA,EAAKlB,EAAMsF,EAAQq4C,EAAMlrB,EA1D3B,CA4DF,CAEAsrB,CAAMF,EAAM,KACd,CAwEIO,CAAYhyB,EAAK,CAIfprB,IAAK,SAAahB,EAAMsF,EAAQq4C,EAAMloC,GACpC,IAAItU,OAAW,EACV1E,EAAQghD,UACXt8C,EAAWu8C,EAAW19C,EAAMsF,EAAQq4C,EAAMloC,IAG5C,IAAIod,GAA4B,EAC5BC,GAAoB,EACpBC,OAAiBtqB,EAErB,IACE,IAAK,IAA6CuqB,EAAzCC,EAAYuP,EAASpU,OAAOC,cAAsBwE,GAA6BG,EAAQC,EAAUvE,QAAQC,MAAOkE,GAA4B,EAAM,CACzJ,IAAI7I,EAAUgJ,EAAMv1B,MAGpB,GAA4B,mBAAjBusB,EAAQ,KACjB,GAAI7oB,GAEF,IAAKA,EAASk9C,cAGU,IAFFr0B,EAAQ,KAAK7oB,GAG/B,OAAO,OAIX6oB,EAAQ,KAAKhqB,EAAMsF,EAAQq4C,EAAMloC,GAKrC,IAAI6oC,OAAiB,EAOrB,GANkC,mBAAvBt0B,EAAQhqB,EAAK9B,MACtBogD,EAAiBt0B,EAAQhqB,EAAK9B,MACS,iBAAvB8rB,EAAQhqB,EAAK9B,OAAwD,mBAA3B8rB,EAAQhqB,EAAK9B,MAAM8C,MAC7Es9C,EAAiBt0B,EAAQhqB,EAAK9B,MAAM8C,KAGlCs9C,EACF,GAAIn9C,GAEF,IAAKA,EAASk9C,cAGW,IAFFC,EAAezoC,KAAKmU,EAAS7oB,GAGhD,OAAO,OAIXm9C,EAAezoC,KAAKmU,EAAShqB,EAAMsF,EAAQq4C,EAAMloC,EAGvD,CACF,CAAE,MAAOmZ,GACPkE,GAAoB,EACpBC,EAAiBnE,CACnB,CAAE,QACA,KACOiE,GAA6BI,EAAUlD,QAC1CkD,EAAUlD,QAEd,CAAE,QACA,GAAI+C,EACF,MAAMC,CAEV,CACF,CACF,EAMA7xB,KAAM,SAAclB,EAAMsF,EAAQq4C,EAAMloC,GACtC,GAAKzV,EAAL,CAIA,IAAImB,OAAW,EACV1E,EAAQghD,UACXt8C,EAAWu8C,EAAW19C,EAAMsF,EAAQq4C,EAAMloC,IAG5C,IAAIyd,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkB3qB,EAEtB,IACE,IAAK,IAA8C4qB,EAA1CC,EAAakP,EAASpU,OAAOC,cAAuB6E,GAA8BG,EAASC,EAAW5E,QAAQC,MAAOuE,GAA6B,EAAM,CAC/J,IAAIlJ,EAAUqJ,EAAO51B,MAGjB8gD,OAAkB,EAKtB,GAJkC,iBAAvBv0B,EAAQhqB,EAAK9B,OAAyD,mBAA5B8rB,EAAQhqB,EAAK9B,MAAMgD,OACtEq9C,EAAkBv0B,EAAQhqB,EAAK9B,MAAMgD,MAGnCq9C,EACF,GAAIp9C,GAEF,IAAKA,EAASk9C,cAGU,IAFFE,EAAgB1oC,KAAKmU,EAAS7oB,GAGhD,OAAO,OAIXo9C,EAAgB1oC,KAAKmU,EAAShqB,EAAMsF,EAAQq4C,EAAMloC,EAGxD,CACF,CAAE,MAAOmZ,GACPuE,GAAqB,EACrBC,EAAkBxE,CACpB,CAAE,QACA,KACOsE,GAA8BI,EAAWvD,QAC5CuD,EAAWvD,QAEf,CAAE,QACA,GAAIoD,EACF,MAAMC,CAEV,CACF,CAjDA,CAkDF,EAMA0qB,aAAc,SAAsBH,GAClC,MAAgB,QAATA,CACT,GAEJ,E,yBChTF,IAAIxzB,EAAe,WAAc,SAASC,EAAiBC,EAAQ9e,GAAS,IAAK,IAAIpP,EAAI,EAAGA,EAAIoP,EAAM/P,OAAQW,IAAK,CAAE,IAAImuB,EAAa/e,EAAMpP,GAAImuB,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAM/c,OAAOgd,eAAeL,EAAQC,EAAWhb,IAAKgb,EAAa,CAAE,CAAE,OAAO,SAAUK,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYR,EAAiBO,EAAYtZ,UAAWuZ,GAAiBC,GAAaT,EAAiBO,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAIf6zB,EAA0B,cAC1BC,EAAsB,aAStBld,EAAW,WASb,SAASA,EAASvhC,GAChB,IAAI8iC,EAAanZ,UAAUnuB,OAAS,QAAsBiN,IAAjBkhB,UAAU,GAAmBA,UAAU,GAAK,KACjF+0B,EAAW/0B,UAAUnuB,OAAS,QAAsBiN,IAAjBkhB,UAAU,GAAmBA,UAAU,GAAK,KAC/ElU,EAAQkU,UAAUnuB,OAAS,QAAsBiN,IAAjBkhB,UAAU,GAAmBA,UAAU,GAAK,MAxBpF,SAAyBwB,EAAUR,GAAe,KAAMQ,aAAoBR,GAAgB,MAAM,IAAIS,UAAU,oCAAwC,CA0BpJC,CAAgBxf,KAAM01B,GAEtB11B,KAAK7L,KAAOA,EACZ6L,KAAKi3B,WAAaA,EAClBj3B,KAAKvG,OAASw9B,EAAaA,EAAW9iC,KAAO,KAC7C6L,KAAK6yC,SAAWA,EAChB7yC,KAAK4J,MAAQA,CACf,CA2WA,OAzWA0U,EAAaoX,EAAU,CAAC,CACtBjyB,IAAK,eACL7R,MAAO,SAAsBihD,GAC3B,IAAK7yC,KAAK7L,KAAK+pB,eAAe20B,GAC5B,MAAM,IAAIvtC,MAAM,gBAAkBtF,KAAK7L,KAAK9B,KAAO,mBAAqBwgD,EAAW,gBAEvF,GAYC,CACDpvC,IAAK,WACL7R,MAAO,SAAkBuC,GACvB,IAAIyV,EAAQkU,UAAUnuB,OAAS,QAAsBiN,IAAjBkhB,UAAU,GAAmBA,UAAU,GAAK,KAC5E+0B,EAAW/0B,UAAUnuB,OAAS,QAAsBiN,IAAjBkhB,UAAU,GAAmBA,UAAU,GAAK,KAG/EqU,OAAY,EAgBhB,OAfa,MAATvoB,GACGipC,IACHA,EAAWF,GAEb3yC,KAAK8yC,aAAaD,GAClB7yC,KAAK7L,KAAK0+C,GAAUjpC,GAASzV,EAC7Bg+B,EAAYuD,EAASO,WAAW9hC,EAAM6L,KAAM6yC,EAAUjpC,KAEjDipC,IACHA,EAAWD,GAEb5yC,KAAK8yC,aAAaD,GAClB7yC,KAAK7L,KAAK0+C,GAAY1+C,EACtBg+B,EAAYuD,EAASO,WAAW9hC,EAAM6L,KAAM6yC,EAAU,OAEjD1gB,CACT,GAWC,CACD1uB,IAAK,cACL7R,MAAO,SAAqBuC,GAC1B,IAAI0+C,EAAW/0B,UAAUnuB,OAAS,QAAsBiN,IAAjBkhB,UAAU,GAAmBA,UAAU,GAAK,KAG9E+0B,IACHA,EAAWF,GAEb3yC,KAAK8yC,aAAaD,GAClB,IAAIriC,EAAMxQ,KAAK7L,KAAK0+C,GAAUljD,OAC9B,OAAOqQ,KAAK+yC,SAAS5+C,EAAMqc,EAAKqiC,EAClC,GAYC,CACDpvC,IAAK,gBACL7R,MAAO,SAAuBuC,EAAMyV,GAClC,IAAIipC,EAAW/0B,UAAUnuB,OAAS,QAAsBiN,IAAjBkhB,UAAU,GAAmBA,UAAU,GAAK60B,EAEnF3yC,KAAK8yC,aAAaD,GAElB7yC,KAAK7L,KAAK0+C,GAAU9gB,OAAOnoB,EAAO,EAAGzV,GAIjCyV,GAAS8rB,EAASsd,sBACpBtd,EAAS4c,sBAAsB,GAGjCtyC,KAAKizC,cAAcjzC,KAAK7L,KAAM0+C,EAChC,GAMC,CACDpvC,IAAK,SACL7R,MAAO,WACL,IAAIoO,KAAKwyC,cAGT9c,EAASwd,SAASC,OAAOnzC,KAAK7L,MAE9B6L,KAAK7L,KAAO,KAEP6L,KAAKvG,QAAV,CAKA,GAAmB,OAAfuG,KAAK4J,MAeP,OAdA5J,KAAKvG,OAAOuG,KAAK6yC,UAAU9gB,OAAO/xB,KAAK4J,MAAO,GAI1C5J,KAAK4J,OAAS8rB,EAASsd,sBACzBtd,EAAS4c,uBAAuB,GAIlCtyC,KAAKizC,cAAcjzC,KAAKvG,OAAQuG,KAAK6yC,UAErC7yC,KAAK4J,MAAQ,UACb5J,KAAK6yC,SAAW,aAMX7yC,KAAKvG,OAAOuG,KAAK6yC,UACxB7yC,KAAK6yC,SAAW,IAvBhB,CAwBF,GAMC,CACDpvC,IAAK,gBACL7R,MAAO,SAAuB6H,EAAQo5C,GAGpC,IAFA,IAAI5b,EAAavB,EAASO,WAAWx8B,GAE5BnJ,EAAI,EAAGA,EAAImJ,EAAOo5C,GAAUljD,OAAQW,IAChColC,EAASO,WAAWx8B,EAAOo5C,GAAUviD,GAAI2mC,EAAY4b,EAAUviD,GACrEsZ,MAAQtZ,CAEjB,GAMC,CACDmT,IAAK,YACL7R,MAAO,WACL,OAAqB,OAAdoO,KAAK7L,IACd,GAMC,CACDsP,IAAK,UACL7R,MAAO,SAAiBwhD,GAKtB,OAJA1d,EAASwd,SAASC,OAAOnzC,KAAK7L,MAE9B6L,KAAK7L,KAAOi/C,EAEPpzC,KAAKvG,QAKS,OAAfuG,KAAK4J,MACP5J,KAAKvG,OAAOuG,KAAK6yC,UAAU7yC,KAAK4J,OAASwpC,EAKvCpzC,KAAKvG,OAAOuG,KAAK6yC,UAAYO,EAI1B1d,EAASO,WAAWmd,EAASpzC,KAAKi3B,WAAYj3B,KAAK6yC,SAAU7yC,KAAK4J,QAdhE,IAeX,GAMC,CACDnG,IAAK,SACL7R,MAAO,SAAgByhD,GACrBxxC,OAAO4kB,OAAOzmB,KAAK7L,KAAMk/C,EAC3B,GAMC,CACD5vC,IAAK,YACL7R,MAAO,WACL,OAAOoO,KAAKi3B,UACd,GAMC,CACDxzB,IAAK,WACL7R,MAAO,WACL,IAAIuQ,EAAI2b,UAAUnuB,OAAS,QAAsBiN,IAAjBkhB,UAAU,GAAmBA,UAAU,GAAK,EAE5E,OAAI9d,KAAK7L,KAAKlC,YACLyjC,EAASO,WAAWj2B,KAAK7L,KAAKlC,YAAYkQ,GAAInC,KAAM2yC,EAAyBxwC,GAC3EnC,KAAK7L,KAAKpB,YAAmB,GAALoP,EAC1BuzB,EAASO,WAAWj2B,KAAK7L,KAAKpB,WAAYiN,KAAM4yC,GAElD,IACT,GAcC,CACDnvC,IAAK,iBACL7R,MAAO,SAAwB+T,GAC7B,OAAOgF,KAAKC,UAAU5K,KAAK7L,KAAMm/C,KAAiB3oC,KAAKC,UAAUjF,EAAKxR,KAAMm/C,EAC9E,GAMC,CACD7vC,IAAK,aACL7R,MAAO,WACL,IAAIutB,EAAOrB,UAAUnuB,OAAS,QAAsBiN,IAAjBkhB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC5Ey1B,EAASp0B,EAAKo0B,OACdC,EAASr0B,EAAKq0B,OAElB,OAAO7oC,KAAKC,UAAU5K,KAAK7L,KAAMq/C,EAAS,KAAOF,EAAaC,EAChE,GAMC,CACD9vC,IAAK,qBACL7R,MAAO,WACL,OAAKoO,KAAKvG,QAAwB,MAAduG,KAAK4J,MAGlB8rB,EAASO,WAAWj2B,KAAKvG,OAAOuG,KAAK6yC,UAAU7yC,KAAK4J,MAAQ,GAAI8rB,EAASO,WAAWj2B,KAAKvG,QAASuG,KAAK6yC,SAAU7yC,KAAK4J,MAAQ,GAF5H,IAGX,GAMC,CACDnG,IAAK,iBACL7R,MAAO,WACL,OAAKoO,KAAKvG,QAAwB,MAAduG,KAAK4J,MAGlB8rB,EAASO,WAAWj2B,KAAKvG,OAAOuG,KAAK6yC,UAAU7yC,KAAK4J,MAAQ,GAAI8rB,EAASO,WAAWj2B,KAAKvG,QAASuG,KAAK6yC,SAAU7yC,KAAK4J,MAAQ,GAF5H,IAGX,IASE,CAAC,CACHnG,IAAK,aACL7R,MAAO,SAAoBuC,GACzB,IAAI8iC,EAAanZ,UAAUnuB,OAAS,QAAsBiN,IAAjBkhB,UAAU,GAAmBA,UAAU,GAAK,KACjFg0B,EAAOh0B,UAAUnuB,OAAS,QAAsBiN,IAAjBkhB,UAAU,GAAmBA,UAAU,GAAK,KAC3ElU,EAAQkU,UAAUnuB,OAAS,QAAsBiN,IAAjBkhB,UAAU,GAAmBA,UAAU,IAAM,EAEjF,IAAK3pB,EACH,OAAO,KAGJuhC,EAASwd,SAASvwC,IAAIxO,IACzBuhC,EAASwd,SAASh2C,IAAI/I,EAAM,IAAIuhC,EAASvhC,EAAM8iC,EAAY6a,GAAgB,GAAVloC,EAAc,KAAOA,IAGxF,IAAIjE,EAAO+vB,EAASwd,SAAS92C,IAAIjI,GAejC,OAbmB,OAAf8iC,IACFtxB,EAAKsxB,WAAaA,EAClBtxB,EAAKlM,OAASkM,EAAKsxB,WAAW9iC,MAGnB,OAAT29C,IACFnsC,EAAKktC,SAAWf,GAGdloC,GAAS,IACXjE,EAAKiE,MAAQA,GAGRjE,CACT,GAOC,CACDlC,IAAK,eACL7R,MAAO,WACA8jC,EAASwd,WACZxd,EAASwd,SAAW,IAAIn2C,KAE1B24B,EAASwd,SAASO,OACpB,GAMC,CACDhwC,IAAK,wBACL7R,MAAO,SAA+B8hD,GACpC,OAAOhe,EAAS2c,qBAAqB3c,EAAS2c,qBAAqB1iD,OAAS,IAAM+jD,CACpF,GAMC,CACDjwC,IAAK,qBACL7R,MAAO,WACL,OAAO8jC,EAAS2c,qBAAqB3c,EAAS2c,qBAAqB1iD,OAAS,EAC9E,KAGK+lC,CACT,CAjYe,GA6Yf,SAAS4d,EAAYxB,EAAMlgD,GACzB,GAAa,QAATkgD,EAGJ,OAAOlgD,CACT,CAfA8jC,EAASqc,eAOTrc,EAAS2c,qBAAuB,GAUhCrjD,EAAOC,QAAUymC,C,wBC3ZjB1mC,EAAOC,QAAU,SAAS0C,EAAMkX,GAC9B,GAAY,OAARA,GAA+B,iBAARA,EACzB,OAAOA,EAET,IAAIspC,OAAM,EAMV,IAAK,IAAI7hD,KAJP6hD,EADEpiD,MAAMC,QAAQ6Y,GACV,GAEA,CAAC,EAEKA,EACZspC,EAAI7hD,GAAKqB,EAAMkX,EAAIvY,IAErB,OAAO6hD,CACT,C,+BCrBAnjD,EAAOC,QAAU,EAAjB,M,ugiCCNI0kD,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBj3C,IAAjBk3C,EACH,OAAOA,EAAa7kD,QAGrB,IAAID,EAAS2kD,EAAyBE,GAAY,CACjDlyC,GAAIkyC,EACJE,QAAQ,EACR9kD,QAAS,CAAC,GAUX,OANA+kD,EAAoBH,GAAU7pC,KAAKhb,EAAOC,QAASD,EAAQA,EAAOC,QAAS2kD,GAG3E5kD,EAAO+kD,QAAS,EAGT/kD,EAAOC,OACf,CAGA2kD,EAAoB3/B,EAAI+/B,E1E5BpBjlD,EAAW,GACf6kD,EAAoB9gC,EAAI,CAAC/W,EAAQk4C,EAAUvwC,EAAIwwC,KAC9C,IAAGD,EAAH,CAMA,IAAIE,EAAe7kD,IACnB,IAASgB,EAAI,EAAGA,EAAIvB,EAASY,OAAQW,IAAK,CACrC2jD,EAAWllD,EAASuB,GAAG,GACvBoT,EAAK3U,EAASuB,GAAG,GACjB4jD,EAAWnlD,EAASuB,GAAG,GAE3B,IAJA,IAGI8jD,GAAY,EACPp8C,EAAI,EAAGA,EAAIi8C,EAAStkD,OAAQqI,MACpB,EAAXk8C,GAAsBC,GAAgBD,IAAaryC,OAAOC,KAAK8xC,EAAoB9gC,GAAGje,OAAO4O,GAASmwC,EAAoB9gC,EAAErP,GAAKwwC,EAASj8C,MAC9Ii8C,EAASliB,OAAO/5B,IAAK,IAErBo8C,GAAY,EACTF,EAAWC,IAAcA,EAAeD,IAG7C,GAAGE,EAAW,CACbrlD,EAASgjC,OAAOzhC,IAAK,GACrB,IAAI8jB,EAAI1Q,SACE9G,IAANwX,IAAiBrY,EAASqY,EAC/B,CACD,CACA,OAAOrY,CArBP,CAJCm4C,EAAWA,GAAY,EACvB,IAAI,IAAI5jD,EAAIvB,EAASY,OAAQW,EAAI,GAAKvB,EAASuB,EAAI,GAAG,GAAK4jD,EAAU5jD,IAAKvB,EAASuB,GAAKvB,EAASuB,EAAI,GACrGvB,EAASuB,GAAK,CAAC2jD,EAAUvwC,EAAIwwC,EAuBjB,E2E3BdN,EAAoBzxC,EAAKnT,IACxB,IAAIqlD,EAASrlD,GAAUA,EAAOslD,WAC7B,IAAOtlD,EAAiB,QACxB,IAAM,EAEP,OADA4kD,EAAoB77C,EAAEs8C,EAAQ,CAAE3jD,EAAG2jD,IAC5BA,CAAM,ECLdT,EAAoB77C,EAAI,CAAC9I,EAASslD,KACjC,IAAI,IAAI9wC,KAAO8wC,EACXX,EAAoB1/B,EAAEqgC,EAAY9wC,KAASmwC,EAAoB1/B,EAAEjlB,EAASwU,IAC5E5B,OAAOgd,eAAe5vB,EAASwU,EAAK,CAAEib,YAAY,EAAMtiB,IAAKm4C,EAAW9wC,IAE1E,ECHDmwC,EAAoBhgC,EAAI,IAAO4gC,QAAQ3vC,UCHvC+uC,EAAoB9/B,EAAI,WACvB,GAA0B,iBAAf2gC,WAAyB,OAAOA,WAC3C,IACC,OAAOz0C,MAAQ,IAAI00C,SAAS,cAAb,EAChB,CAAE,MAAO9gC,GACR,GAAsB,iBAAXpR,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBoxC,EAAoB1/B,EAAI,CAACrL,EAAKipC,IAAUjwC,OAAO2D,UAAU0Y,eAAelU,KAAKnB,EAAKipC,GCClF8B,EAAoBx/B,EAAKnlB,IACH,oBAAXszB,QAA0BA,OAAOoyB,aAC1C9yC,OAAOgd,eAAe5vB,EAASszB,OAAOoyB,YAAa,CAAE/iD,MAAO,WAE7DiQ,OAAOgd,eAAe5vB,EAAS,aAAc,CAAE2C,OAAO,GAAO,ECL9DgiD,EAAoBgB,IAAO5lD,IAC1BA,EAAO6lD,MAAQ,GACV7lD,EAAO8lD,WAAU9lD,EAAO8lD,SAAW,IACjC9lD,GCHR4kD,EAAoB57C,EAAI,K,MCAxB47C,EAAoBjjD,EAAIokD,SAASC,SAAWjoB,KAAKtqB,SAASwyC,KAK1D,IAAIC,EAAkB,CACrB,KAAM,GAaPtB,EAAoB9gC,EAAE9a,EAAKm9C,GAA0C,IAA7BD,EAAgBC,GAGxD,IAAIC,EAAuB,CAACC,EAA4BpuC,KACvD,IAKI4sC,EAAUsB,EALVlB,EAAWhtC,EAAK,GAChBquC,EAAcruC,EAAK,GACnBsuC,EAAUtuC,EAAK,GAGI3W,EAAI,EAC3B,GAAG2jD,EAASxjC,MAAM9O,GAAgC,IAAxBuzC,EAAgBvzC,KAAa,CACtD,IAAIkyC,KAAYyB,EACZ1B,EAAoB1/B,EAAEohC,EAAazB,KACrCD,EAAoB3/B,EAAE4/B,GAAYyB,EAAYzB,IAGhD,GAAG0B,EAAS,IAAIx5C,EAASw5C,EAAQ3B,EAClC,CAEA,IADGyB,GAA4BA,EAA2BpuC,GACrD3W,EAAI2jD,EAAStkD,OAAQW,IACzB6kD,EAAUlB,EAAS3jD,GAChBsjD,EAAoB1/B,EAAEghC,EAAiBC,IAAYD,EAAgBC,IACrED,EAAgBC,GAAS,KAE1BD,EAAgBC,GAAW,EAE5B,OAAOvB,EAAoB9gC,EAAE/W,EAAO,EAGjCy5C,EAAqBzoB,KAA4B,sBAAIA,KAA4B,uBAAK,GAC1FyoB,EAAmBt5C,QAAQk5C,EAAqBrU,KAAK,KAAM,IAC3DyU,EAAmB7+C,KAAOy+C,EAAqBrU,KAAK,KAAMyU,EAAmB7+C,KAAKoqC,KAAKyU,G,KClDvF5B,EAAoB6B,QAAK74C,ECGzB,IAAI84C,EAAsB9B,EAAoB9gC,OAAElW,EAAW,CAAC,OAAO,IAAOg3C,EAAoB,SAC9F8B,EAAsB9B,EAAoB9gC,EAAE4iC,E","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/node_modules/@nextcloud/browserslist-config/browserlist.config.js","webpack:///nextcloud/node_modules/ua-regexes-lite/index.js","webpack:///nextcloud/node_modules/browserslist-useragent-regexp/dist/index.js","webpack:///nextcloud/core/src/services/BrowsersListService.js","webpack:///nextcloud/core/src/services/BrowserStorageService.js","webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/utils/RedirectUnsupportedBrowsers.js","webpack://nextcloud/./core/src/views/UnsupportedBrowser.vue?7880","webpack:///nextcloud/node_modules/vue-material-design-icons/Web.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Web.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Web.vue?2edf","webpack:///nextcloud/node_modules/vue-material-design-icons/Web.vue?vue&type=template&id=704f1c73","webpack:///nextcloud/core/src/views/UnsupportedBrowser.vue","webpack:///nextcloud/core/src/views/UnsupportedBrowser.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/views/UnsupportedBrowser.vue?594f","webpack://nextcloud/./core/src/views/UnsupportedBrowser.vue?d53c","webpack:///nextcloud/core/src/unsupported-browser.js","webpack:///nextcloud/node_modules/browserslist/browser.js","webpack:///nextcloud/node_modules/browserslist/error.js","webpack:///nextcloud/node_modules/browserslist/index.js","webpack:///nextcloud/node_modules/browserslist/parse.js","webpack:///nextcloud/node_modules/caniuse-lite/data/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browsers.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browsers.js","webpack:///nextcloud/core/src/views/UnsupportedBrowser.vue?vue&type=style&index=0&id=28ba6974&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/electron-to-chromium/versions.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/generator/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa-minimizer.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/generated/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js","webpack:///nextcloud/node_modules/regexp-tree/dist/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/utils.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/node-path.js","webpack:///nextcloud/node_modules/regexp-tree/dist/utils/clone.js","webpack:///nextcloud/node_modules/regexp-tree/index.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","module.exports = [\n  '>0.25%',\n  'not op_mini all',\n  'not dead',\n  'Firefox ESR',\n];\n","/**\n * @typedef {import('./index.d').UserAgentRegex} UserAgentRegex\n */\n\n/** @type {UserAgentRegex[]} */\nexport const regexes = [\n  {\n    regex: /IE (\\d+)\\.(\\d+)/,\n    family: 'ie',\n    maxVersion: [\n      7,\n      Infinity,\n      Infinity\n    ]\n  },\n  /**\n   * IE can be in Compatability Mode (IE 7.0)\n   * so we need to check Trident version\n   */\n  {\n    regex: /Trident\\/4\\.0/,\n    family: 'ie',\n    version: [\n      8,\n      0,\n      0\n    ]\n  },\n  {\n    regex: /Trident\\/5\\.0/,\n    family: 'ie',\n    version: [\n      9,\n      0,\n      0\n    ]\n  },\n  {\n    regex: /Trident\\/6\\.0/,\n    family: 'ie',\n    version: [\n      10,\n      0,\n      0\n    ]\n  },\n  {\n    regex: /Trident\\/[78]\\.0/,\n    family: 'ie',\n    version: [\n      11,\n      0,\n      0\n    ]\n  },\n  {\n    regex: /Edge?\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n    family: 'edge'\n  },\n  {\n    regex: /Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n    family: 'firefox'\n  },\n  {\n    regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n    family: 'chrome'\n  },\n  /**\n   * Ignore Edge with EdgeHTML engine.\n   */\n  {\n    regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)([\\d.]+$|.*Safari\\/(?![\\d.]+ Edge\\/[\\d.]+$))/,\n    family: 'chrome',\n    maxVersion: [\n      70,\n      Infinity,\n      Infinity\n    ]\n  },\n  /**\n   * Safari on iPad have desktop-like useragent\n   * Some versions contains letter subversions\n   * GNOME Web (X11) is based on WebKit and should be detected as Safari\n   */\n  {\n    regex: /(Maci|X11).+ Version\\/(\\d+)\\.(\\d+)([.,](\\d+)|)( \\(\\w+\\)|)( Mobile\\/\\w+|) Safari\\//,\n    family: 'safari'\n  },\n  /**\n   * Presto Opera\n   */\n  {\n    regex: /Opera\\/9\\.80.+Version\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n    family: 'opera',\n    maxVersion: [\n      12,\n      15,\n      0\n    ]\n  },\n  /**\n   * Chromium based Opera\n   */\n  {\n    regex: /Chrome.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n    family: 'opera',\n    minVersion: [\n      15,\n      0,\n      0\n    ]\n  },\n  {\n    regex: /(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n    family: 'ios_saf'\n  },\n  /**\n   * Ignore IE Mobile 11\n   */\n  {\n    regex: /[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n    family: 'ios_saf',\n    version: [\n      7,\n      0,\n      3\n    ]\n  },\n  {\n    regex: /Opera Mini/,\n    family: 'op_mini'\n  },\n  {\n    regex: /Android Donut/,\n    family: 'android',\n    version: [\n      1,\n      2,\n      0\n    ]\n  },\n  {\n    regex: /Android Eclair/,\n    family: 'android',\n    version: [\n      2,\n      1,\n      0\n    ]\n  },\n  {\n    regex: /Android Froyo/,\n    family: 'android',\n    version: [\n      2,\n      2,\n      0\n    ]\n  },\n  {\n    regex: /Android Gingerbread/,\n    family: 'android',\n    version: [\n      2,\n      3,\n      0\n    ]\n  },\n  {\n    regex: /Android Honeycomb/,\n    family: 'android',\n    version: [\n      3,\n      0,\n      0\n    ]\n  },\n  {\n    regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n    family: 'android'\n  },\n  /**\n   * Ignore IE Mobile 11\n   */\n  {\n    regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|);(?! ARM; Trident)/,\n    family: 'android',\n    version: [\n      4,\n      0,\n      0\n    ]\n  },\n  {\n    regex: /PlayBook.+RIM Tablet OS (\\d+)\\.(\\d+)\\.(\\d+)/,\n    family: 'bb'\n  },\n  {\n    regex: /(Black[bB]erry|BB10).+Version\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n    family: 'bb'\n  },\n  /**\n   * Presto Opera Mobile\n   */\n  {\n    regex: /Opera\\/.+Opera Mobi.+Version\\/(\\d+)\\.(\\d+)/,\n    family: 'op_mob',\n    maxVersion: [\n      12,\n      16,\n      0\n    ]\n  },\n  /**\n   * Chromium based Opera Mobile\n   */\n  {\n    regex: /Mobile Safari.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n    family: 'op_mob',\n    minVersion: [\n      14,\n      0,\n      0\n    ]\n  },\n  {\n    regex: /Android.+Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n    family: 'and_ff'\n  },\n  {\n    regex: /Android.+Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n    family: 'and_chr'\n  },\n  {\n    regex: /IEMobile[ /](\\d+)\\.(\\d+)/,\n    family: 'ie_mob'\n  },\n  {\n    regex: /Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\\d+)\\.(\\d+)\\.(\\d+)/,\n    family: 'and_uc'\n  },\n  {\n    regex: /SamsungBrowser\\/(\\d+)\\.(\\d+)/,\n    family: 'samsung'\n  },\n  {\n    regex: /Android.+MQQBrowser\\/(\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n    family: 'and_qq'\n  },\n  {\n    regex: /baidubrowser[/\\s](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n    family: 'baidu'\n  },\n  {\n    regex: /K[Aa][Ii]OS\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n    family: 'kaios'\n  }\n]\n","import browserslist from 'browserslist';\nimport RegexpTree from 'regexp-tree';\nimport { regexes } from 'ua-regexes-lite';\n\n/**\n * Array of numbers to array of first and last elements.\n * @param numbers - Array of numbers.\n * @returns Number or two numbers.\n */ function numbersToRanges(numbers) {\n    if (typeof numbers === \"number\") {\n        return numbers;\n    }\n    if (numbers.length === 1) {\n        return numbers[0];\n    }\n    return [\n        numbers[0],\n        numbers[numbers.length - 1]\n    ];\n}\n\nvar SemverPart;\n(function(SemverPart) {\n    SemverPart[SemverPart[\"Major\"] = 0] = \"Major\";\n    SemverPart[SemverPart[\"Minor\"] = 1] = \"Minor\";\n    SemverPart[SemverPart[\"Patch\"] = 2] = \"Patch\";\n})(SemverPart || (SemverPart = {}));\n\n/**\n * Get semver from string or array.\n * @param version - Target to convert.\n * @returns Array with semver parts.\n */ function semverify(version) {\n    const versionParts = Array.isArray(version) ? version : version.toString().split(\".\");\n    if (versionParts[0] === \"all\") {\n        return [\n            Infinity,\n            0,\n            0\n        ];\n    }\n    let versionPart = null;\n    let semverPart = null;\n    const semver = [\n        0,\n        0,\n        0\n    ];\n    for(let i = 0; i < 3; i++){\n        versionPart = versionParts[i];\n        if (typeof versionPart === \"undefined\") {\n            continue;\n        }\n        semverPart = typeof versionPart === \"number\" ? versionPart : parseInt(versionPart, 10);\n        if (isNaN(semverPart)) {\n            return null;\n        }\n        semver[i] = semverPart;\n    }\n    return semver;\n}\n/**\n * Get semver range.\n * @param from\n * @param to\n * @returns Semver range.\n */ function rangeSemver(from, to) {\n    let partIndex = 0;\n    const range = [];\n    for(let i = 2; i >= 0; i--){\n        if (from[i] !== to[i]) {\n            partIndex = i;\n            break;\n        }\n    }\n    for(let i1 = from[partIndex], max = to[partIndex]; i1 <= max; i1++){\n        range.push(from.map((v, j)=>j === partIndex ? i1 : v));\n    }\n    return range;\n}\n/**\n * Compare semvers.\n * @param a - Semver to compare.\n * @param b - Semver to compare with.\n * @param options - Compare options.\n * @returns Equals or not.\n */ function compareSemvers(a, b, options) {\n    const [major, minor, patch] = a;\n    const [majorBase, minorBase, patchBase] = b;\n    const { ignoreMinor , ignorePatch , allowHigherVersions  } = options;\n    if (majorBase === Infinity) {\n        return true;\n    }\n    const compareMinor = !ignoreMinor;\n    const comparePatch = compareMinor && !ignorePatch;\n    if (allowHigherVersions) {\n        if (comparePatch && patch < patchBase || compareMinor && minor < minorBase) {\n            return false;\n        }\n        return major >= majorBase;\n    }\n    if (comparePatch && patch !== patchBase || compareMinor && minor !== minorBase) {\n        return false;\n    }\n    return major === majorBase;\n}\n/**\n * Get required semver parts count.\n * @param version - Semver parts or ranges.\n * @param options - Semver compare options.\n * @returns Required semver parts count.\n */ function getRequiredSemverPartsCount(version, options) {\n    const { ignoreMinor , ignorePatch , allowZeroSubversions  } = options;\n    let shouldRepeatCount = ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n    if (allowZeroSubversions) {\n        for(let i = shouldRepeatCount - 1; i > 0; i--){\n            if (version[i] !== 0 || shouldRepeatCount === 1) {\n                break;\n            }\n            shouldRepeatCount--;\n        }\n    }\n    return shouldRepeatCount;\n}\n\n/**\n * Browsers strings to info objects.\n * @param browsersList - Browsers strings with family and version.\n * @returns Browser info objects.\n */ function parseBrowsersList(browsersList) {\n    return browsersList.reduce((browsers, browser)=>{\n        const [family, versionString, versionStringTo] = browser.split(/ |-/);\n        const version = semverify(versionString);\n        const versions = !version ? [] : versionStringTo ? rangeSemver(version, semverify(versionStringTo)) : [\n            version\n        ];\n        return versions.reduce((browsers, semver)=>{\n            if (semver) {\n                browsers.push({\n                    family,\n                    version: semver\n                });\n            }\n            return browsers;\n        }, browsers);\n    }, []);\n}\n/**\n * Request browsers list.\n * @param options - Options to get browsers list.\n * @returns Browser info objects.\n */ function getBrowsersList(options = {}) {\n    const { browsers , ...browserslistOptions } = options;\n    const browsersList = browserslist(browsers, browserslistOptions);\n    const parsedBrowsers = parseBrowsersList(browsersList);\n    return parsedBrowsers;\n}\n\n/**\n * Compare two arrays.\n * @param a - Array to compare.\n * @param b - Array to compare.\n * @param from - Index to start compare from.\n * @returns Equals or not.\n */ function compareArrays(a, b, from = 0) {\n    const len = a.length;\n    for(let i = from; i < len; i++){\n        if (a[i] !== b[i]) {\n            return false;\n        }\n    }\n    return true;\n}\n/**\n * Clone simple object.\n * @param value\n * @returns Object clone.\n */ function clone(value) {\n    if (value === null || typeof value !== \"object\") {\n        return value;\n    }\n    /* eslint-disable */ const copy = Array.isArray(value) ? [] : {};\n    let i;\n    for(i in value){\n        copy[i] = clone(value[i]);\n    }\n    /* eslint-enable */ return copy;\n}\n/**\n * Concat arrays.\n * @param items\n * @returns Concatinated arrays.\n */ function concat(items) {\n    return [].concat(...items);\n}\n\n/**\n * Merge browser info object to map with versions.\n * @param browsers - Browser info object to merge.\n * @returns Merged browsers map.\n */ function mergeBrowserVersions(browsers) {\n    const merge = new Map();\n    browsers.forEach(({ family , version  })=>{\n        const versions = merge.get(family);\n        if (versions) {\n            const strVersion = version.join(\".\");\n            if (versions.every((_)=>_.join(\".\") !== strVersion)) {\n                versions.push(version);\n            }\n            return;\n        }\n        merge.set(family, [\n            version\n        ]);\n    });\n    merge.forEach((versions)=>{\n        versions.sort((a, b)=>{\n            for(const i in a){\n                if (a[i] !== b[i]) {\n                    return a[i] - b[i];\n                }\n            }\n            return 0;\n        });\n    });\n    return merge;\n}\n/**\n * Versions to ranged versions.\n * @param versions - Semver versions list.\n * @returns Ranged versions list.\n */ function versionsListToRanges(versions) {\n    if (versions.length < 2) {\n        return versions;\n    }\n    const max = versions.length + 1;\n    const ranges = [];\n    let prev = null;\n    let current = versions[0];\n    let major = [\n        current[SemverPart.Major]\n    ];\n    let minor = [\n        current[SemverPart.Minor]\n    ];\n    let patch = [\n        current[SemverPart.Patch]\n    ];\n    let part = null;\n    for(let i = 1; i < max; i++){\n        prev = versions[i - 1];\n        current = versions[i] || [];\n        for(let p = SemverPart.Major; p <= SemverPart.Patch; p++){\n            if ((p === part || part === null) && prev[p] + 1 === current[p] && compareArrays(prev, current, p + 1)) {\n                part = p;\n                if (p === SemverPart.Major) {\n                    major.push(current[SemverPart.Major]);\n                } else {\n                    major = current[SemverPart.Major];\n                }\n                if (p === SemverPart.Minor) {\n                    minor.push(current[SemverPart.Minor]);\n                } else {\n                    minor = current[SemverPart.Minor];\n                }\n                if (p === SemverPart.Patch) {\n                    patch.push(current[SemverPart.Patch]);\n                } else {\n                    patch = current[SemverPart.Patch];\n                }\n                break;\n            }\n            if (part === p || prev[p] !== current[p]) {\n                ranges.push([\n                    numbersToRanges(major),\n                    numbersToRanges(minor),\n                    numbersToRanges(patch)\n                ]);\n                major = [\n                    current[SemverPart.Major]\n                ];\n                minor = [\n                    current[SemverPart.Minor]\n                ];\n                patch = [\n                    current[SemverPart.Patch]\n                ];\n                part = null;\n                break;\n            }\n        }\n    }\n    return ranges;\n}\n\nfunction AstRegExpNode(body) {\n    return {\n        type: \"RegExp\",\n        body,\n        flags: \"\"\n    };\n}\nfunction AlternativeNode(...expressions) {\n    const exps = concat(expressions).filter(Boolean);\n    if (exps.length === 1) {\n        return exps[0];\n    }\n    return {\n        type: \"Alternative\",\n        expressions: exps\n    };\n}\nfunction SimpleCharNode(value) {\n    return {\n        type: \"Char\",\n        kind: \"simple\",\n        value: String(value),\n        codePoint: NaN\n    };\n}\nfunction MetaCharNode(value) {\n    return {\n        type: \"Char\",\n        kind: \"meta\",\n        value,\n        codePoint: NaN\n    };\n}\nfunction ClassRangeNode(from, to) {\n    return {\n        type: \"ClassRange\",\n        from,\n        to\n    };\n}\nfunction CharacterClassNode(...expressions) {\n    return {\n        type: \"CharacterClass\",\n        expressions: concat(expressions).filter(Boolean)\n    };\n}\nfunction SimpleQuantifierNode(kind) {\n    return {\n        type: \"Quantifier\",\n        kind,\n        greedy: true\n    };\n}\nfunction RangeQuantifierNode(from, to) {\n    return {\n        type: \"Quantifier\",\n        kind: \"Range\",\n        from,\n        to,\n        greedy: true\n    };\n}\nfunction CapturingGroupNode(expression) {\n    return {\n        type: \"Group\",\n        capturing: true,\n        expression,\n        number: null\n    };\n}\nfunction RepetitionNode(expression, quantifier) {\n    return {\n        type: \"Repetition\",\n        expression,\n        quantifier\n    };\n}\nfunction DisjunctionNode(...expressions) {\n    const exprs = concat(expressions).filter(Boolean);\n    if (exprs.length === 1) {\n        return exprs[0];\n    }\n    const disjunction = {\n        type: \"Disjunction\",\n        left: null,\n        right: exprs.pop()\n    };\n    exprs.reduceRight((disjunction, expr, i)=>{\n        if (i === 0) {\n            disjunction.left = expr;\n            return disjunction;\n        }\n        disjunction.left = {\n            type: \"Disjunction\",\n            left: null,\n            right: expr\n        };\n        return disjunction.left;\n    }, disjunction);\n    return disjunction;\n}\nfunction DisjunctionCapturingGroupNode(...expressions) {\n    const expr = DisjunctionNode(...expressions);\n    if (expr.type === \"Disjunction\") {\n        return CapturingGroupNode(expr);\n    }\n    return expr;\n}\nfunction DigitPatternNode() {\n    return MetaCharNode(\"\\\\d\");\n}\nfunction NumberPatternNode(quantifier = SimpleQuantifierNode(\"+\")) {\n    const numberPattern = RepetitionNode(DigitPatternNode(), quantifier);\n    return numberPattern;\n}\nfunction NumberCharsNode(value) {\n    return AlternativeNode(Array.from(String(value), SimpleCharNode));\n}\n\n/**\n * Check node whether is number pattern.\n * @param node - AST node to check.\n * @returns Is number pattern or not.\n */ function isNumberPatternNode(node) {\n    if (node.type === \"Group\" && node.expression.type === \"Repetition\") {\n        const { expression , quantifier  } = node.expression;\n        return expression.type === \"Char\" && expression.value === \"\\\\d\" && quantifier.kind === \"+\" && quantifier.greedy;\n    }\n    return false;\n}\n/**\n * Check node whether is char node.\n * @param node - AST node to check.\n * @param value - Value to compare.\n * @returns Is char node or not.\n */ function isCharNode(node, value) {\n    if (node && node.type === \"Char\") {\n        return typeof value === \"undefined\" || value instanceof RegExp && value.test(node.value) || String(value) === node.value;\n    }\n    return false;\n}\n/**\n * Check node whether is digit range.\n * @param node - AST node to check.\n * @returns Is digit range or not.\n */ function isDigitRangeNode(node) {\n    if (node.type === \"CharacterClass\" && node.expressions.length === 1) {\n        const [expression] = node.expressions;\n        return expression.type === \"ClassRange\" && isCharNode(expression.from, /\\d/) && isCharNode(expression.to, /\\d/);\n    }\n    return false;\n}\n/**\n * Check node whether is expression.\n * @param node - AST node to check.\n * @returns Is expression node or not.\n */ function isExpressionNode(node) {\n    return node.type !== \"RegExp\" && node.type !== \"ClassRange\" && node.type !== \"Quantifier\";\n}\nfunction parseRegex(regex) {\n    return typeof regex === \"string\" ? RegexpTree.parse(regex.replace(/^([^/])/, \"/$1\").replace(/([^/])$/, \"$1/\")) : regex instanceof RegExp ? RegexpTree.parse(regex) : regex;\n}\n/**\n * Get regex from string or AST.\n * @param src - String or AST.\n * @returns RegExp.\n */ function toRegex(src) {\n    return typeof src === \"string\" ? new RegExp(src) : new RegExp(RegexpTree.generate(src.body), src.flags);\n}\n/**\n * Get string from regex or AST.\n * @param src - RegExp or AST.\n * @returns String.\n */ function toString(src) {\n    return typeof src === \"string\" ? src : src instanceof RegExp ? src.toString() : RegexpTree.generate(src);\n}\n\nconst classes = [\n    \"RegExp\",\n    \"Disjunction\",\n    \"Alternative\",\n    \"Assertion\",\n    \"Char\",\n    \"CharacterClass\",\n    \"ClassRange\",\n    \"Backreference\",\n    \"Group\",\n    \"Repetition\",\n    \"Quantifier\"\n];\n/**\n * Create traversal visitors.\n * @param visitors\n * @returns Traversal handlers.\n */ function visitors(visitors) {\n    const { every  } = visitors;\n    if (!every) {\n        return visitors;\n    }\n    if (typeof every === \"function\") {\n        return {\n            // eslint-disable-next-line @typescript-eslint/naming-convention\n            \"*\": every,\n            ...visitors\n        };\n    }\n    return classes.reduce((newVisitors, className)=>{\n        const visitor = visitors[className];\n        const visitorPre = visitor ? \"pre\" in visitor ? visitor.pre : visitor : null;\n        const visitorPost = visitor ? \"post\" in visitor ? visitor.post : null : null;\n        newVisitors[className] = {\n            pre (nodePath) {\n                if (every.pre(nodePath) !== false && visitorPre) {\n                    return visitorPre(nodePath);\n                }\n                return true;\n            },\n            post (nodePath) {\n                if (every.post(nodePath) !== false && visitorPost) {\n                    return visitorPost(nodePath);\n                }\n                return true;\n            }\n        };\n        return newVisitors;\n    }, {});\n}\n\nfunction optimizeRegex(regex) {\n    // Optimization requires filled codePoints\n    const regexAst = RegexpTree.optimize(parseRegex(toString(regex))).getAST();\n    RegexpTree.traverse(regexAst, {\n        Group (nodePath) {\n            const { parent , node  } = nodePath;\n            const { expression  } = node;\n            node.capturing = true;\n            if (parent.type === \"RegExp\" || expression.type !== \"Disjunction\" && parent.type !== \"Repetition\" || expression.type === \"Disjunction\" && parent.type === \"Disjunction\") {\n                nodePath.replace(nodePath.node.expression);\n            }\n        }\n    });\n    return regexAst;\n}\n/**\n * Merge digits patterns if possible.\n * @param a\n * @param b\n * @returns Merged node.\n */ function mergeDigits(a, b) {\n    if (isCharNode(a) && isCharNode(b) && a.value === b.value) {\n        return b;\n    }\n    if (isCharNode(a, /\\d/) && isDigitRangeNode(b) && Number(b.expressions[0].from.value) - Number(a.value) === 1) {\n        return {\n            ...b,\n            expressions: [\n                {\n                    ...b.expressions[0],\n                    from: a\n                }\n            ]\n        };\n    }\n    if (isDigitRangeNode(a) && isCharNode(b, /\\d/) && Number(b.value) - Number(a.expressions[0].to.value) === 1) {\n        return {\n            ...a,\n            expressions: [\n                {\n                    ...a.expressions[0],\n                    to: b\n                }\n            ]\n        };\n    }\n    return null;\n}\n/**\n * Optimize segment number patterns.\n * @param patterns\n * @returns Optimized segment number patterns.\n */ function optimizeSegmentNumberPatterns(patterns) {\n    return patterns.reduce((patterns, node)=>{\n        const prevNode = patterns[patterns.length - 1];\n        if (prevNode && node.type === \"Alternative\" && prevNode.type === \"Alternative\" && node.expressions.length === prevNode.expressions.length) {\n            const merged = prevNode.expressions.reduceRight((exps, exp, i)=>{\n                if (!exps) {\n                    return exps;\n                }\n                const merged = mergeDigits(exp, node.expressions[i]);\n                if (merged) {\n                    exps.unshift(merged);\n                } else {\n                    return null;\n                }\n                return exps;\n            }, []);\n            if (merged) {\n                node.expressions = merged;\n                patterns.pop();\n            }\n        }\n        patterns.push(node);\n        return patterns;\n    }, []);\n}\n\n/**\n * Transform number to digits array.\n * @param num - Target number.\n * @returns Digits array.\n */ function numberToDigits(num) {\n    return Array.from(num.toString(), Number);\n}\n\n/**\n * Get digit pattern.\n * @param digit - Ray start.\n * @param includes - Include start digit or use next.\n * @returns Digit pattern.\n */ function rayRangeDigitPattern(digit, includes) {\n    const rangeStart = digit + Number(!includes);\n    if (rangeStart === 0) {\n        return DigitPatternNode();\n    }\n    if (rangeStart === 9) {\n        return SimpleCharNode(\"9\");\n    }\n    if (rangeStart > 9) {\n        return null;\n    }\n    return CharacterClassNode(ClassRangeNode(SimpleCharNode(rangeStart), SimpleCharNode(\"9\")));\n}\n/**\n * Create numeric ray pattern.\n * @param from - Start from this number.\n * @returns Numeric ray pattern parts.\n */ function rayToNumberPatterns(from) {\n    if (from === 0) {\n        return [\n            NumberPatternNode()\n        ];\n    }\n    const digits = numberToDigits(from);\n    const digitsCount = digits.length;\n    const other = NumberPatternNode(RangeQuantifierNode(digitsCount + 1));\n    const zeros = digitsCount - 1;\n    if (from / Math.pow(10, zeros) === digits[0]) {\n        return [\n            AlternativeNode(rayRangeDigitPattern(digits[0], true), Array.from({\n                length: zeros\n            }, DigitPatternNode)),\n            other\n        ];\n    }\n    const raysNumberPatterns = digits.reduce((topNodes, _, i)=>{\n        const ri = digitsCount - i - 1;\n        const d = i === 0;\n        let prev = SimpleCharNode(\"\");\n        const nodes = digits.reduce((nodes, digit, j)=>{\n            if (j < ri) {\n                nodes.push(SimpleCharNode(digit));\n            } else if (prev) {\n                if (j > ri) {\n                    nodes.push(DigitPatternNode());\n                } else {\n                    prev = rayRangeDigitPattern(digit, d);\n                    if (prev) {\n                        nodes.push(prev);\n                    } else {\n                        return [];\n                    }\n                }\n            }\n            return nodes;\n        }, []);\n        if (nodes.length) {\n            topNodes.push(nodes);\n        }\n        return topNodes;\n    }, []);\n    const numberPatterns = raysNumberPatterns.map((_)=>AlternativeNode(_));\n    numberPatterns.push(other);\n    return numberPatterns;\n}\n\n/**\n * Get digit pattern.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param zeros - Zeros to add as prefix.\n * @returns Digit pattern.\n */ function segmentRangeNumberPattern(from, to, zeros) {\n    if (to < from) {\n        return null;\n    }\n    const fromNode = SimpleCharNode(from);\n    const toNode = SimpleCharNode(to);\n    const zerosPrefix = typeof zeros === \"number\" && zeros > 0 ? Array.from({\n        length: zeros\n    }, ()=>SimpleCharNode(0)) : [];\n    const addPrefix = zerosPrefix.length ? (node)=>AlternativeNode(zerosPrefix, node) : (node)=>node;\n    if (from === to) {\n        return addPrefix(fromNode);\n    }\n    if (from === 0 && to === 9) {\n        return addPrefix(DigitPatternNode());\n    }\n    if (to - from === 1) {\n        return addPrefix(CharacterClassNode(fromNode, toNode));\n    }\n    return addPrefix(CharacterClassNode(ClassRangeNode(fromNode, toNode)));\n}\n/**\n * Split segment range to decade ranges.\n * @param from - Segment start.\n * @param to - Segment end.\n * @returns Ranges.\n */ function splitToDecadeRanges(from, to) {\n    const ranges = [];\n    let num = from;\n    let decade = 1;\n    do {\n        decade *= 10;\n        if (num < decade) {\n            ranges.push([\n                num,\n                Math.min(decade - 1, to)\n            ]);\n            num = decade;\n        }\n    }while (decade <= to);\n    return ranges;\n}\n/**\n * Get common and diffs of two numbers (arrays of digits).\n * @param a - Digits.\n * @param b - Other digits.\n * @returns Common part and diffs.\n */ function splitCommonDiff(a, b) {\n    const len = a.length;\n    if (len !== b.length || a[0] !== b[0]) {\n        return null;\n    }\n    let common = a[0].toString();\n    let currA = 0;\n    let currB = 0;\n    let diffA = \"\";\n    let diffB = \"\";\n    for(let i = 1; i < len; i++){\n        currA = a[i];\n        currB = b[i];\n        if (currA === currB && diffA === \"\" && diffB === \"\") {\n            common += currA;\n        } else {\n            diffA += currA;\n            diffB += currB;\n        }\n    }\n    return [\n        common,\n        parseInt(diffA, 10),\n        parseInt(diffB, 10)\n    ];\n}\n/**\n * Get segment patterns.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param digitsInNumber - How many digits should be en number. Will be filled by zeros.\n * @returns Segment patterns.\n */ function segmentToNumberPatterns(from, to, digitsInNumber = 0) {\n    const fromDigits = numberToDigits(from);\n    const digitsCount = fromDigits.length;\n    if (from < 10 && to < 10 || from === to) {\n        const zeros = digitsInNumber - digitsCount;\n        return [\n            segmentRangeNumberPattern(from, to, zeros)\n        ];\n    }\n    const toDigits = numberToDigits(to);\n    if (digitsCount !== toDigits.length) {\n        const decadeRanges = splitToDecadeRanges(from, to);\n        const parts = concat(decadeRanges.map(([from, to])=>segmentToNumberPatterns(from, to, digitsInNumber)));\n        return parts;\n    }\n    const commonStart = splitCommonDiff(fromDigits, toDigits);\n    if (Array.isArray(commonStart)) {\n        const [common, from1, to1] = commonStart;\n        const digitsInNumber1 = digitsCount - common.length;\n        const diffParts = segmentToNumberPatterns(from1, to1, digitsInNumber1);\n        return [\n            AlternativeNode(Array.from(common, SimpleCharNode), DisjunctionCapturingGroupNode(diffParts))\n        ];\n    }\n    const range = Array.from({\n        length: digitsCount - 1\n    });\n    const middleSegment = segmentRangeNumberPattern(fromDigits[0] + 1, toDigits[0] - 1);\n    const parts1 = [\n        ...range.map((_, i)=>{\n            const ri = digitsCount - i - 1;\n            const d = Number(i > 0);\n            return AlternativeNode(fromDigits.map((digit, j)=>{\n                if (j < ri) {\n                    return SimpleCharNode(digit);\n                }\n                if (j > ri) {\n                    return segmentRangeNumberPattern(0, 9);\n                }\n                return segmentRangeNumberPattern(digit + d, 9);\n            }));\n        }),\n        // but output more readable\n        ...middleSegment ? [\n            AlternativeNode(middleSegment, Array.from({\n                length: digitsCount - 1\n            }, ()=>DigitPatternNode()))\n        ] : [],\n        ...range.map((_, i)=>{\n            const ri = digitsCount - i - 1;\n            const d = Number(i > 0);\n            return AlternativeNode(toDigits.map((digit, j)=>{\n                if (j < ri) {\n                    return SimpleCharNode(digit);\n                }\n                if (j > ri) {\n                    return segmentRangeNumberPattern(0, 9);\n                }\n                return segmentRangeNumberPattern(0, digit - d);\n            }));\n        })\n    ];\n    return optimizeSegmentNumberPatterns(parts1);\n}\n\n/**\n * Get regex for given numeric range.\n * @param from - Range start.\n * @param to - Range end.\n * @returns Range pattern.\n */ function rangeToRegex(from, to = Infinity) {\n    if (from === Infinity) {\n        return NumberPatternNode();\n    }\n    const numberPatterns = to === Infinity ? rayToNumberPatterns(from) : segmentToNumberPatterns(from, to);\n    const regex = DisjunctionCapturingGroupNode(numberPatterns);\n    return regex;\n}\n\n/**\n * Find matched versions.\n * @param minVersion - Semver version.\n * @param maxVersion - Semver version.\n * @param bases - Base semver versions.\n * @param options - Semver compare options.\n * @returns Matched versions.\n */ function findMatchedVersions(minVersion, maxVersion, bases, options) {\n    const compareOptions = {\n        ...options,\n        allowHigherVersions: true\n    };\n    const minComparator = (ver)=>compareSemvers(ver, minVersion, compareOptions);\n    const maxComparator = (ver)=>compareSemvers(maxVersion, ver, compareOptions);\n    const comparator = minVersion && maxVersion ? (ver)=>minComparator(ver) && maxComparator(ver) : minVersion ? minComparator : maxVersion ? maxComparator : ()=>true;\n    return bases.filter(comparator);\n}\n\n/**\n * Get useragent regexes for given browsers.\n * @param browsers - Browsers.\n * @param options - Semver compare options.\n * @param targetRegexes - Override default regexes.\n * @returns User agent regexes.\n */ function getRegexesForBrowsers(browsers, options, targetRegexes = regexes) {\n    const result = [];\n    let prevFamily = \"\";\n    let prevRegexIsGlobal = false;\n    targetRegexes.forEach((regex)=>{\n        const requestVersions = browsers.get(regex.family);\n        if (!requestVersions) {\n            return;\n        }\n        let { version , minVersion , maxVersion  } = regex;\n        if (version) {\n            minVersion = version;\n            maxVersion = version;\n        }\n        let matchedVersions = findMatchedVersions(minVersion, maxVersion, requestVersions, options);\n        if (matchedVersions.length) {\n            // regex contains global patch\n            if (prevFamily === regex.family && prevRegexIsGlobal) {\n                version = undefined;\n                minVersion = undefined;\n                maxVersion = undefined;\n                matchedVersions = requestVersions;\n                result.pop();\n            }\n            result.push({\n                ...regex,\n                version,\n                minVersion,\n                maxVersion,\n                requestVersions,\n                matchedVersions\n            });\n        }\n        prevRegexIsGlobal = !version && !minVersion && !maxVersion;\n        prevFamily = regex.family;\n    });\n    return result;\n}\n\n/**\n * Compile regexes.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Objects with info about compiled regexes.\n */ function compileRegexes(regexes) {\n    return regexes.map(({ regexAst , ...regex })=>{\n        const optimizedRegexAst = optimizeRegex(regexAst);\n        return {\n            ...regex,\n            regexAst: optimizedRegexAst,\n            regex: toRegex(optimizedRegexAst)\n        };\n    });\n}\n/**\n * Compile regex.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Compiled common regex.\n */ function compileRegex(regexes) {\n    const partsRegexes = regexes.map(({ regexAst  })=>CapturingGroupNode(regexAst.body));\n    const regexAst = optimizeRegex(AstRegExpNode(DisjunctionCapturingGroupNode(partsRegexes)));\n    return toRegex(regexAst);\n}\n\n/**\n * Get number patterns count from the regex.\n * @param regex - Target regex.\n * @returns Number patterns count.\n */ function getNumberPatternsCount(regex) {\n    const regexAst = parseRegex(regex);\n    let count = 0;\n    RegexpTree.traverse(regexAst, {\n        Group (nodePath) {\n            if (isNumberPatternNode(nodePath.node)) {\n                count++;\n            }\n        }\n    });\n    return count;\n}\nfunction replaceNumberPatterns(regex, numbers, numberPatternsCount) {\n    let regexAst = parseRegex(regex);\n    const numbersToReplace = typeof numberPatternsCount === \"number\" && numberPatternsCount < numbers.length ? numbers.slice(0, numberPatternsCount) : numbers.slice();\n    RegexpTree.traverse(regexAst, visitors({\n        every () {\n            return Boolean(numbersToReplace.length);\n        },\n        Group (nodePath) {\n            if (isNumberPatternNode(nodePath.node) && numbersToReplace.length) {\n                if (regexAst === nodePath.node) {\n                    regexAst = numbersToReplace.shift();\n                } else {\n                    nodePath.replace(numbersToReplace.shift());\n                }\n                return false;\n            }\n            return true;\n        }\n    }));\n    return regexAst;\n}\n/**\n * Get from regex part with number patterns.\n * @param regex - Target regex.\n * @param numberPatternsCount - Number patterns to extract.\n * @returns Regex part with number patterns.\n */ function getNumberPatternsPart(regex, numberPatternsCount) {\n    const regexAst = parseRegex(regex);\n    const maxNumbersCount = Math.min(getNumberPatternsCount(regexAst), numberPatternsCount || Infinity);\n    const expressions = [];\n    let numbersCounter = 0;\n    let containsNumberPattern = false;\n    RegexpTree.traverse(regexAst, visitors({\n        every: {\n            pre ({ node , parent  }) {\n                if (node === regexAst) {\n                    return true;\n                }\n                if (!isExpressionNode(node)) {\n                    return false;\n                }\n                if (parent === regexAst) {\n                    containsNumberPattern = false;\n                }\n                return numbersCounter < maxNumbersCount;\n            },\n            post ({ node , parent  }) {\n                if (node !== regexAst && parent === regexAst && isExpressionNode(node) && (containsNumberPattern || numbersCounter > 0 && numbersCounter < maxNumbersCount)) {\n                    expressions.push(node);\n                }\n            }\n        },\n        Group (nodePath) {\n            if (isNumberPatternNode(nodePath.node) && numbersCounter < maxNumbersCount) {\n                containsNumberPattern = true;\n                numbersCounter++;\n                return false;\n            }\n            return true;\n        }\n    }));\n    if (expressions.length === 1 && !isNumberPatternNode(expressions[0])) {\n        return getNumberPatternsPart(expressions[0], maxNumbersCount);\n    }\n    return expressions;\n}\n/**\n * Ranged semver to regex patterns.\n * @param rangedVersion - Ranged semver.\n * @param options - Semver compare options.\n * @returns Array of regex pattern.\n */ function rangedSemverToRegex(rangedVersion, options) {\n    const { ignoreMinor , ignorePatch , allowHigherVersions  } = options;\n    const ignoreIndex = rangedVersion[0] === Infinity ? 0 : ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n    if (allowHigherVersions) {\n        const numberPatterns = [];\n        let prevWasZero = true;\n        let d = 0;\n        let start = 0;\n        const createMapper = (i)=>(range, j)=>{\n                if (j >= ignoreIndex) {\n                    return NumberPatternNode();\n                }\n                start = Array.isArray(range) ? range[0] : range;\n                if (j < i) {\n                    return NumberCharsNode(start);\n                }\n                if (j > i) {\n                    return NumberPatternNode();\n                }\n                return rangeToRegex(start + d);\n            };\n        for(let i = ignoreIndex - 1; i >= 0; i--){\n            if (prevWasZero && !rangedVersion[i]) {\n                continue;\n            }\n            prevWasZero = false;\n            numberPatterns.push(rangedVersion.map(createMapper(i)));\n            d = 1;\n        }\n        return numberPatterns;\n    }\n    const numberPatterns1 = rangedVersion.map((range, i)=>{\n        if (i >= ignoreIndex) {\n            return NumberPatternNode();\n        }\n        if (Array.isArray(range)) {\n            return rangeToRegex(range[0], range[1]);\n        }\n        return NumberCharsNode(range);\n    });\n    return [\n        numberPatterns1\n    ];\n}\n\nfunction applyVersionsToRegex(regex, versions, options) {\n    const { allowHigherVersions  } = options;\n    const regexAst = parseRegex(regex);\n    const finalVersions = allowHigherVersions && versions.length ? [\n        versions[0]\n    ] : versions;\n    const maxRequiredPartsCount = finalVersions.reduce((maxRequiredPartsCount, version)=>Math.max(maxRequiredPartsCount, getRequiredSemverPartsCount(version, options)), 1);\n    const numberPatternsPart = getNumberPatternsPart(regexAst, maxRequiredPartsCount);\n    const versionsPart = DisjunctionCapturingGroupNode(...finalVersions.map((version)=>rangedSemverToRegex(version, options).map((parts)=>replaceNumberPatterns(AlternativeNode(clone(numberPatternsPart)), parts, maxRequiredPartsCount))));\n    RegexpTree.traverse(regexAst, visitors({\n        every (nodePath) {\n            if (!numberPatternsPart.length) {\n                return false;\n            }\n            if (nodePath.node === numberPatternsPart[0]) {\n                if (numberPatternsPart.length === 1) {\n                    nodePath.replace(versionsPart);\n                } else {\n                    nodePath.remove();\n                }\n                numberPatternsPart.shift();\n            }\n            return true;\n        }\n    }));\n    return regexAst;\n}\n/**\n * Apply browser versions to info objects.\n * @param browserRegexes - Objects with requested browser version and regex.\n * @param options - Semver compare options.\n * @returns Objects with requested browser version and regex special for this version.\n */ function applyVersionsToRegexes(browserRegexes, options) {\n    return browserRegexes.map(({ regex: sourceRegex , version , maxVersion , matchedVersions , ...other })=>{\n        let regexAst = parseRegex(sourceRegex);\n        if (!version) {\n            regexAst = applyVersionsToRegex(regexAst, versionsListToRanges(matchedVersions), {\n                ...options,\n                allowHigherVersions: !maxVersion && options.allowHigherVersions\n            });\n        }\n        return {\n            regex: null,\n            sourceRegex,\n            regexAst,\n            version,\n            maxVersion,\n            matchedVersions,\n            ...other\n        };\n    });\n}\n\nconst defaultOptions = {\n    ignoreMinor: false,\n    ignorePatch: true,\n    allowZeroSubversions: false,\n    allowHigherVersions: false\n};\n/**\n * Get source regexes objects from browserslist query.\n * @param options - Browserslist and semver compare options.\n * @returns Source regexes objects.\n */ function getPreUserAgentRegexes(options = {}) {\n    const finalOptions = {\n        ...defaultOptions,\n        ...options\n    };\n    const browsersList = getBrowsersList(finalOptions);\n    const mergedBrowsers = mergeBrowserVersions(browsersList);\n    const sourceRegexes = getRegexesForBrowsers(mergedBrowsers, finalOptions);\n    const versionedRegexes = applyVersionsToRegexes(sourceRegexes, finalOptions);\n    return versionedRegexes;\n}\n/**\n * Compile browserslist query to regexes.\n * @param options - Browserslist and semver compare options.\n * @returns Objects with info about compiled regexes.\n */ function getUserAgentRegexes(options = {}) {\n    return compileRegexes(getPreUserAgentRegexes(options));\n}\n/**\n * Compile browserslist query to regex.\n * @param options - Browserslist and semver compare options.\n * @returns Compiled regex.\n */ function getUserAgentRegex(options = {}) {\n    return compileRegex(getPreUserAgentRegexes(options));\n}\n\nexport { AlternativeNode, AstRegExpNode, CapturingGroupNode, CharacterClassNode, ClassRangeNode, DigitPatternNode, DisjunctionCapturingGroupNode, DisjunctionNode, MetaCharNode, NumberCharsNode, NumberPatternNode, RangeQuantifierNode, RepetitionNode, SemverPart, SimpleCharNode, SimpleQuantifierNode, applyVersionsToRegex, applyVersionsToRegexes, clone, compareArrays, compareSemvers, compileRegex, compileRegexes, concat, defaultOptions, findMatchedVersions, getBrowsersList, getNumberPatternsCount, getNumberPatternsPart, getPreUserAgentRegexes, getRegexesForBrowsers, getRequiredSemverPartsCount, getUserAgentRegex, getUserAgentRegexes, isCharNode, isDigitRangeNode, isExpressionNode, isNumberPatternNode, mergeBrowserVersions, mergeDigits, numberToDigits, numbersToRanges, optimizeRegex, optimizeSegmentNumberPatterns, parseBrowsersList, parseRegex, rangeSemver, rangeToRegex, rangedSemverToRegex, rayRangeDigitPattern, rayToNumberPatterns, replaceNumberPatterns, segmentRangeNumberPattern, segmentToNumberPatterns, semverify, splitCommonDiff, splitToDecadeRanges, toRegex, toString, versionsListToRanges, visitors };\n//# sourceMappingURL=index.js.map\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getUserAgentRegex } from 'browserslist-useragent-regexp'\n// eslint-disable-next-line n/no-extraneous-import\nimport browserslist from 'browserslist'\nimport browserslistConfig from '@nextcloud/browserslist-config'\n\n// Generate a regex that matches user agents to detect incompatible browsers\nexport const supportedBrowsersRegExp = getUserAgentRegex({ allowHigherVersions: true, browsers: browserslistConfig })\nexport const supportedBrowsers = browserslist(browserslistConfig)\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getBuilder } from '@nextcloud/browser-storage'\n\nexport default getBuilder('core')\n\t.clearOnLogout()\n\t.persist()\n\t.build()\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nconst getLogger = user => {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('core')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('core')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n\nexport const unifiedSearchLogger = getLoggerBuilder()\n\t.setApp('unified-search')\n\t.detectUser()\n\t.build()\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport { supportedBrowsersRegExp } from '../services/BrowsersListService.js'\nimport browserStorage from '../services/BrowserStorageService.js'\nimport logger from '../logger.js'\n\nexport const browserStorageKey = 'unsupported-browser-ignore'\nconst redirectPath = generateUrl('/unsupported')\n\nconst isBrowserOverridden = browserStorage.getItem(browserStorageKey) === 'true'\n\n/**\n * Test the current browser user agent against our official browserslist config\n * and redirect if unsupported\n */\nexport const testSupportedBrowser = function() {\n\tif (supportedBrowsersRegExp.test(navigator.userAgent)) {\n\t\tlogger.debug('this browser is officially supported ! 🚀')\n\t\treturn\n\t}\n\n\t// If incompatible BUT ignored, let's keep going\n\tif (isBrowserOverridden) {\n\t\tlogger.debug('this browser is NOT supported but has been manually overridden ! ⚠️')\n\t\treturn\n\t}\n\n\t// If incompatible, NOT overridden AND NOT already on the warning page,\n\t// redirect to the unsupported warning page\n\tif (window.location.pathname.indexOf(redirectPath) === -1) {\n\t\tconst redirectUrl = window.location.href.replace(window.location.origin, '')\n\t\tconst base64Param = Buffer.from(redirectUrl).toString('base64')\n\t\thistory.pushState(null, null, `${redirectPath}?redirect_url=${base64Param}`)\n\t\twindow.location.reload()\n\t}\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"content-unsupported-browser guest-box\"},[_c('NcEmptyContent',{scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Web')]},proxy:true},{key:\"action\",fn:function(){return [_c('div',[_c('h2',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Your browser is not supported. Please upgrade to a newer version or a supported one.'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{staticClass:\"content-unsupported-browser__continue\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.forceBrowsing}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Continue with this unsupported browser'))+\"\\n\\t\\t\\t\\t\")])],1),_vm._v(\" \"),_c('ul',{staticClass:\"content-unsupported-browser__list\"},[_c('h3',[_vm._v(_vm._s(_vm.t('core', 'Supported versions')))]),_vm._v(\" \"),_vm._l((_vm.formattedBrowsersList),function(browser){return _c('li',{key:browser},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(browser)+\"\\n\\t\\t\\t\\t\")])})],2)]},proxy:true}])},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'This browser is not supported'))+\"\\n\\t\\t\")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <span v-bind=\"$attrs\"\n        :aria-hidden=\"title ? null : 'true'\"\n        :aria-label=\"title\"\n        class=\"material-design-icon web-icon\"\n        role=\"img\"\n        @click=\"$emit('click', $event)\">\n    <svg :fill=\"fillColor\"\n         class=\"material-design-icon__svg\"\n         :width=\"size\"\n         :height=\"size\"\n         viewBox=\"0 0 24 24\">\n      <path d=\"M16.36,14C16.44,13.34 16.5,12.68 16.5,12C16.5,11.32 16.44,10.66 16.36,10H19.74C19.9,10.64 20,11.31 20,12C20,12.69 19.9,13.36 19.74,14M14.59,19.56C15.19,18.45 15.65,17.25 15.97,16H18.92C17.96,17.65 16.43,18.93 14.59,19.56M14.34,14H9.66C9.56,13.34 9.5,12.68 9.5,12C9.5,11.32 9.56,10.65 9.66,10H14.34C14.43,10.65 14.5,11.32 14.5,12C14.5,12.68 14.43,13.34 14.34,14M12,19.96C11.17,18.76 10.5,17.43 10.09,16H13.91C13.5,17.43 12.83,18.76 12,19.96M8,8H5.08C6.03,6.34 7.57,5.06 9.4,4.44C8.8,5.55 8.35,6.75 8,8M5.08,16H8C8.35,17.25 8.8,18.45 9.4,19.56C7.57,18.93 6.03,17.65 5.08,16M4.26,14C4.1,13.36 4,12.69 4,12C4,11.31 4.1,10.64 4.26,10H7.64C7.56,10.66 7.5,11.32 7.5,12C7.5,12.68 7.56,13.34 7.64,14M12,4.03C12.83,5.23 13.5,6.57 13.91,8H10.09C10.5,6.57 11.17,5.23 12,4.03M18.92,8H15.97C15.65,6.75 15.19,5.55 14.59,4.44C16.43,5.07 17.96,6.34 18.92,8M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\">\n        <title v-if=\"title\">{{ title }}</title>\n      </path>\n    </svg>\n  </span>\n</template>\n\n<script>\nexport default {\n  name: \"WebIcon\",\n  emits: ['click'],\n  props: {\n    title: {\n      type: String,\n    },\n    fillColor: {\n      type: String,\n      default: \"currentColor\"\n    },\n    size: {\n      type: Number,\n      default: 24\n    }\n  }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Web.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Web.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Web.vue?vue&type=template&id=704f1c73\"\nimport script from \"./Web.vue?vue&type=script&lang=js\"\nexport * from \"./Web.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon web-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M16.36,14C16.44,13.34 16.5,12.68 16.5,12C16.5,11.32 16.44,10.66 16.36,10H19.74C19.9,10.64 20,11.31 20,12C20,12.69 19.9,13.36 19.74,14M14.59,19.56C15.19,18.45 15.65,17.25 15.97,16H18.92C17.96,17.65 16.43,18.93 14.59,19.56M14.34,14H9.66C9.56,13.34 9.5,12.68 9.5,12C9.5,11.32 9.56,10.65 9.66,10H14.34C14.43,10.65 14.5,11.32 14.5,12C14.5,12.68 14.43,13.34 14.34,14M12,19.96C11.17,18.76 10.5,17.43 10.09,16H13.91C13.5,17.43 12.83,18.76 12,19.96M8,8H5.08C6.03,6.34 7.57,5.06 9.4,4.44C8.8,5.55 8.35,6.75 8,8M5.08,16H8C8.35,17.25 8.8,18.45 9.4,19.56C7.57,18.93 6.03,17.65 5.08,16M4.26,14C4.1,13.36 4,12.69 4,12C4,11.31 4.1,10.64 4.26,10H7.64C7.56,10.66 7.5,11.32 7.5,12C7.5,12.68 7.56,13.34 7.64,14M12,4.03C12.83,5.23 13.5,6.57 13.91,8H10.09C10.5,6.57 11.17,5.23 12,4.03M18.92,8H15.97C15.65,6.75 15.19,5.55 14.59,4.44C16.43,5.07 17.96,6.34 18.92,8M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<div class=\"content-unsupported-browser guest-box\">\n\t\t<NcEmptyContent>\n\t\t\t{{ t('core', 'This browser is not supported') }}\n\t\t\t<template #icon>\n\t\t\t\t<Web />\n\t\t\t</template>\n\t\t\t<template #action>\n\t\t\t\t<div>\n\t\t\t\t\t<h2>\n\t\t\t\t\t\t{{ t('core', 'Your browser is not supported. Please upgrade to a newer version or a supported one.') }}\n\t\t\t\t\t</h2>\n\t\t\t\t\t<NcButton class=\"content-unsupported-browser__continue\" type=\"primary\" @click=\"forceBrowsing\">\n\t\t\t\t\t\t{{ t('core', 'Continue with this unsupported browser') }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t</div>\n\n\t\t\t\t<ul class=\"content-unsupported-browser__list\">\n\t\t\t\t\t<h3>{{ t('core', 'Supported versions') }}</h3>\n\t\t\t\t\t<li v-for=\"browser in formattedBrowsersList\" :key=\"browser\">\n\t\t\t\t\t\t{{ browser }}\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t</div>\n</template>\n\n<script>\n// eslint-disable-next-line n/no-extraneous-import\nimport { agents } from 'caniuse-lite/dist/unpacker/agents.js'\nimport { generateUrl, getRootUrl } from '@nextcloud/router'\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n'\n\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'\nimport Web from 'vue-material-design-icons/Web.vue'\n\nimport { browserStorageKey } from '../utils/RedirectUnsupportedBrowsers.js'\nimport { supportedBrowsers } from '../services/BrowsersListService.js'\nimport browserStorage from '../services/BrowserStorageService.js'\nimport logger from '../logger.js'\n\nlogger.debug('Supported browsers', { supportedBrowsers })\n\nexport default {\n\tname: 'UnsupportedBrowser',\n\tcomponents: {\n\t\tWeb,\n\t\tNcButton,\n\t\tNcEmptyContent,\n\t},\n\n\tcomputed: {\n\t\tisMobile() {\n\t\t\treturn /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)\n\t\t},\n\n\t\t/**\n\t\t * Filter out or include mobile/desktop browsers depending\n\t\t * on the current user platform/device\n\t\t */\n\t\tfilteredSupportedBrowsers() {\n\t\t\treturn supportedBrowsers.filter(browser => {\n\t\t\t\tif (!browser) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tif (this.isMobile) {\n\t\t\t\t\treturn this.isMobileBrowser(browser)\n\t\t\t\t}\n\t\t\t\treturn !this.isMobileBrowser(browser)\n\t\t\t})\n\t\t},\n\n\t\tformattedBrowsersList() {\n\t\t\tconst list = {}\n\n\t\t\t// supportedBrowsers is generated by webpack at compilation time\n\t\t\tthis.filteredSupportedBrowsers.forEach(browser => {\n\t\t\t\tconst [id, version] = browser.split(' ')\n\t\t\t\tif (!list[id] || list[id] < parseFloat(version, 10)) {\n\t\t\t\t\tlist[id] = parseFloat(version, 10)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\treturn Object.keys(list).map(id => {\n\t\t\t\tif (!agents[id]?.browser) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\tconst version = list[id]\n\t\t\t\tconst name = agents[id]?.browser\n\t\t\t\treturn this.t('core', '{name} version {version} and above', {\n\t\t\t\t\tname, version,\n\t\t\t\t})\n\t\t\t}).filter(entry => entry !== null)\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\t\tn,\n\n\t\t// Set the flag allowing this browser and redirect to home\n\t\tforceBrowsing() {\n\t\t\tbrowserStorage.setItem(browserStorageKey, true)\n\n\t\t\t// Redirect if there is the data\n\t\t\tconst urlParams = new URLSearchParams(window.location.search)\n\t\t\tif (urlParams.has('redirect_url')) {\n\t\t\t\tlet redirectPath = Buffer.from(urlParams.get('redirect_url'), 'base64').toString() || '/'\n\n\t\t\t\t// remove index.php and double slashes\n\t\t\t\tredirectPath = redirectPath\n\t\t\t\t\t.replace('index.php', '')\n\t\t\t\t\t.replace(getRootUrl(), '')\n\t\t\t\t\t.replace(/\\/\\//g, '/')\n\n\t\t\t\t// if we have a valid redirect url, use it\n\t\t\t\tif (redirectPath.startsWith('/')) {\n\t\t\t\t\twindow.location = generateUrl(redirectPath)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// else redirect to root\n\t\t\twindow.location = generateUrl('/')\n\t\t},\n\n\t\t/**\n\t\t * Detect if the browserslist browser is a mobile one\n\t\t * https://github.com/browserslist/browserslist#query-composition\n\t\t *\n\t\t * @param {string} browser a valid browserlist browser. e.g `and_chr 90`\n\t\t */\n\t\tisMobileBrowser(browser) {\n\t\t\tbrowser = browser.toLowerCase()\n\t\t\treturn browser.includes('and_')\n\t\t\t\t|| browser.includes('android')\n\t\t\t\t|| browser.includes('ios_')\n\t\t\t\t|| browser.includes('mobile')\n\t\t\t\t|| browser.includes('_mob')\n\t\t\t\t|| browser.includes('samsung')\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$spacing: 30px;\n\n.content-unsupported-browser {\n\tdisplay: flex;\n\tjustify-content: center;\n\twidth: 400px;\n\tmax-width: calc(90vw - 2 * $spacing);\n\tmargin: auto;\n\tpadding: $spacing;\n\n\t.empty-content {\n\t\tmargin: 0;\n\n\t\t:deep(.empty-content__icon) {\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t&__continue {\n\t\tdisplay: block;\n\t\tmargin: $spacing auto;\n\t}\n\n\t&__list {\n\t\tmargin-top: 2 * $spacing;\n\t\tmargin-bottom: $spacing;\n\t\tli {\n\t\t\ttext-align: start;\n\t\t}\n\t}\n}\n\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=script&lang=js\"","\n      import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=style&index=0&id=28ba6974&prod&lang=scss&scoped=true\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=style&index=0&id=28ba6974&prod&lang=scss&scoped=true\";\n       export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UnsupportedBrowser.vue?vue&type=template&id=28ba6974&scoped=true\"\nimport script from \"./UnsupportedBrowser.vue?vue&type=script&lang=js\"\nexport * from \"./UnsupportedBrowser.vue?vue&type=script&lang=js\"\nimport style0 from \"./UnsupportedBrowser.vue?vue&type=style&index=0&id=28ba6974&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"28ba6974\",\n  null\n  \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport Vue from 'vue'\n\nimport { browserStorageKey } from './utils/RedirectUnsupportedBrowsers.js'\nimport browserStorage from './services/BrowserStorageService.js'\nimport UnsupportedBrowser from './views/UnsupportedBrowser.vue'\n\n// If the ignore token is set, redirect\nif (browserStorage.getItem(browserStorageKey) === 'true') {\n\twindow.location = generateUrl('/')\n}\n\nexport default new Vue({\n\tel: '#unsupported-browser',\n\t// eslint-disable-next-line vue/match-component-file-name\n\tname: 'UnsupportedBrowserRoot',\n\trender: h => h(UnsupportedBrowser),\n})\n","var BrowserslistError = require('./error')\n\nfunction noop() {}\n\nmodule.exports = {\n  loadQueries: function loadQueries() {\n    throw new BrowserslistError(\n      'Sharable configs are not supported in client-side build of Browserslist'\n    )\n  },\n\n  getStat: function getStat(opts) {\n    return opts.stats\n  },\n\n  loadConfig: function loadConfig(opts) {\n    if (opts.config) {\n      throw new BrowserslistError(\n        'Browserslist config are not supported in client-side build'\n      )\n    }\n  },\n\n  loadCountry: function loadCountry() {\n    throw new BrowserslistError(\n      'Country statistics are not supported ' +\n        'in client-side build of Browserslist'\n    )\n  },\n\n  loadFeature: function loadFeature() {\n    throw new BrowserslistError(\n      'Supports queries are not available in client-side build of Browserslist'\n    )\n  },\n\n  currentNode: function currentNode(resolve, context) {\n    return resolve(['maintained node versions'], context)[0]\n  },\n\n  parseConfig: noop,\n\n  readConfig: noop,\n\n  findConfig: noop,\n\n  clearCaches: noop,\n\n  oldDataWarning: noop,\n\n  env: {}\n}\n","function BrowserslistError(message) {\n  this.name = 'BrowserslistError'\n  this.message = message\n  this.browserslist = true\n  if (Error.captureStackTrace) {\n    Error.captureStackTrace(this, BrowserslistError)\n  }\n}\n\nBrowserslistError.prototype = Error.prototype\n\nmodule.exports = BrowserslistError\n","var jsReleases = require('node-releases/data/processed/envs.json')\nvar agents = require('caniuse-lite/dist/unpacker/agents').agents\nvar jsEOL = require('node-releases/data/release-schedule/release-schedule.json')\nvar path = require('path')\nvar e2c = require('electron-to-chromium/versions')\n\nvar BrowserslistError = require('./error')\nvar parse = require('./parse')\nvar env = require('./node') // Will load browser.js in webpack\n\nvar YEAR = 365.259641 * 24 * 60 * 60 * 1000\nvar ANDROID_EVERGREEN_FIRST = '37'\nvar OP_MOB_BLINK_FIRST = 14\n\n// Helpers\n\nfunction isVersionsMatch(versionA, versionB) {\n  return (versionA + '.').indexOf(versionB + '.') === 0\n}\n\nfunction isEolReleased(name) {\n  var version = name.slice(1)\n  return browserslist.nodeVersions.some(function (i) {\n    return isVersionsMatch(i, version)\n  })\n}\n\nfunction normalize(versions) {\n  return versions.filter(function (version) {\n    return typeof version === 'string'\n  })\n}\n\nfunction normalizeElectron(version) {\n  var versionToUse = version\n  if (version.split('.').length === 3) {\n    versionToUse = version.split('.').slice(0, -1).join('.')\n  }\n  return versionToUse\n}\n\nfunction nameMapper(name) {\n  return function mapName(version) {\n    return name + ' ' + version\n  }\n}\n\nfunction getMajor(version) {\n  return parseInt(version.split('.')[0])\n}\n\nfunction getMajorVersions(released, number) {\n  if (released.length === 0) return []\n  var majorVersions = uniq(released.map(getMajor))\n  var minimum = majorVersions[majorVersions.length - number]\n  if (!minimum) {\n    return released\n  }\n  var selected = []\n  for (var i = released.length - 1; i >= 0; i--) {\n    if (minimum > getMajor(released[i])) break\n    selected.unshift(released[i])\n  }\n  return selected\n}\n\nfunction uniq(array) {\n  var filtered = []\n  for (var i = 0; i < array.length; i++) {\n    if (filtered.indexOf(array[i]) === -1) filtered.push(array[i])\n  }\n  return filtered\n}\n\nfunction fillUsage(result, name, data) {\n  for (var i in data) {\n    result[name + ' ' + i] = data[i]\n  }\n}\n\nfunction generateFilter(sign, version) {\n  version = parseFloat(version)\n  if (sign === '>') {\n    return function (v) {\n      return parseLatestFloat(v) > version\n    }\n  } else if (sign === '>=') {\n    return function (v) {\n      return parseLatestFloat(v) >= version\n    }\n  } else if (sign === '<') {\n    return function (v) {\n      return parseFloat(v) < version\n    }\n  } else {\n    return function (v) {\n      return parseFloat(v) <= version\n    }\n  }\n\n  function parseLatestFloat(v) {\n    return parseFloat(v.split('-')[1] || v)\n  }\n}\n\nfunction generateSemverFilter(sign, version) {\n  version = version.split('.').map(parseSimpleInt)\n  version[1] = version[1] || 0\n  version[2] = version[2] || 0\n  if (sign === '>') {\n    return function (v) {\n      v = v.split('.').map(parseSimpleInt)\n      return compareSemver(v, version) > 0\n    }\n  } else if (sign === '>=') {\n    return function (v) {\n      v = v.split('.').map(parseSimpleInt)\n      return compareSemver(v, version) >= 0\n    }\n  } else if (sign === '<') {\n    return function (v) {\n      v = v.split('.').map(parseSimpleInt)\n      return compareSemver(version, v) > 0\n    }\n  } else {\n    return function (v) {\n      v = v.split('.').map(parseSimpleInt)\n      return compareSemver(version, v) >= 0\n    }\n  }\n}\n\nfunction parseSimpleInt(x) {\n  return parseInt(x)\n}\n\nfunction compare(a, b) {\n  if (a < b) return -1\n  if (a > b) return +1\n  return 0\n}\n\nfunction compareSemver(a, b) {\n  return (\n    compare(parseInt(a[0]), parseInt(b[0])) ||\n    compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) ||\n    compare(parseInt(a[2] || '0'), parseInt(b[2] || '0'))\n  )\n}\n\n// this follows the npm-like semver behavior\nfunction semverFilterLoose(operator, range) {\n  range = range.split('.').map(parseSimpleInt)\n  if (typeof range[1] === 'undefined') {\n    range[1] = 'x'\n  }\n  // ignore any patch version because we only return minor versions\n  // range[2] = 'x'\n  switch (operator) {\n    case '<=':\n      return function (version) {\n        version = version.split('.').map(parseSimpleInt)\n        return compareSemverLoose(version, range) <= 0\n      }\n    case '>=':\n    default:\n      return function (version) {\n        version = version.split('.').map(parseSimpleInt)\n        return compareSemverLoose(version, range) >= 0\n      }\n  }\n}\n\n// this follows the npm-like semver behavior\nfunction compareSemverLoose(version, range) {\n  if (version[0] !== range[0]) {\n    return version[0] < range[0] ? -1 : +1\n  }\n  if (range[1] === 'x') {\n    return 0\n  }\n  if (version[1] !== range[1]) {\n    return version[1] < range[1] ? -1 : +1\n  }\n  return 0\n}\n\nfunction resolveVersion(data, version) {\n  if (data.versions.indexOf(version) !== -1) {\n    return version\n  } else if (browserslist.versionAliases[data.name][version]) {\n    return browserslist.versionAliases[data.name][version]\n  } else {\n    return false\n  }\n}\n\nfunction normalizeVersion(data, version) {\n  var resolved = resolveVersion(data, version)\n  if (resolved) {\n    return resolved\n  } else if (data.versions.length === 1) {\n    return data.versions[0]\n  } else {\n    return false\n  }\n}\n\nfunction filterByYear(since, context) {\n  since = since / 1000\n  return Object.keys(agents).reduce(function (selected, name) {\n    var data = byName(name, context)\n    if (!data) return selected\n    var versions = Object.keys(data.releaseDate).filter(function (v) {\n      var date = data.releaseDate[v]\n      return date !== null && date >= since\n    })\n    return selected.concat(versions.map(nameMapper(data.name)))\n  }, [])\n}\n\nfunction cloneData(data) {\n  return {\n    name: data.name,\n    versions: data.versions,\n    released: data.released,\n    releaseDate: data.releaseDate\n  }\n}\n\nfunction byName(name, context) {\n  name = name.toLowerCase()\n  name = browserslist.aliases[name] || name\n  if (context.mobileToDesktop && browserslist.desktopNames[name]) {\n    var desktop = browserslist.data[browserslist.desktopNames[name]]\n    if (name === 'android') {\n      return normalizeAndroidData(cloneData(browserslist.data[name]), desktop)\n    } else {\n      var cloned = cloneData(desktop)\n      cloned.name = name\n      return cloned\n    }\n  }\n  return browserslist.data[name]\n}\n\nfunction normalizeAndroidVersions(androidVersions, chromeVersions) {\n  var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST)\n  return androidVersions\n    .filter(function (version) {\n      return /^(?:[2-4]\\.|[34]$)/.test(version)\n    })\n    .concat(chromeVersions.slice(iFirstEvergreen))\n}\n\nfunction copyObject(obj) {\n  var copy = {}\n  for (var key in obj) {\n    copy[key] = obj[key]\n  }\n  return copy\n}\n\nfunction normalizeAndroidData(android, chrome) {\n  android.released = normalizeAndroidVersions(android.released, chrome.released)\n  android.versions = normalizeAndroidVersions(android.versions, chrome.versions)\n  android.releaseDate = copyObject(android.releaseDate)\n  android.released.forEach(function (v) {\n    if (android.releaseDate[v] === undefined) {\n      android.releaseDate[v] = chrome.releaseDate[v]\n    }\n  })\n  return android\n}\n\nfunction checkName(name, context) {\n  var data = byName(name, context)\n  if (!data) throw new BrowserslistError('Unknown browser ' + name)\n  return data\n}\n\nfunction unknownQuery(query) {\n  return new BrowserslistError(\n    'Unknown browser query `' +\n      query +\n      '`. ' +\n      'Maybe you are using old Browserslist or made typo in query.'\n  )\n}\n\n// Adjusts last X versions queries for some mobile browsers,\n// where caniuse data jumps from a legacy version to the latest\nfunction filterJumps(list, name, nVersions, context) {\n  var jump = 1\n  switch (name) {\n    case 'android':\n      if (context.mobileToDesktop) return list\n      var released = browserslist.data.chrome.released\n      jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST)\n      break\n    case 'op_mob':\n      var latest = browserslist.data.op_mob.released.slice(-1)[0]\n      jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1\n      break\n    default:\n      return list\n  }\n  if (nVersions <= jump) {\n    return list.slice(-1)\n  }\n  return list.slice(jump - 1 - nVersions)\n}\n\nfunction isSupported(flags, withPartial) {\n  return (\n    typeof flags === 'string' &&\n    (flags.indexOf('y') >= 0 || (withPartial && flags.indexOf('a') >= 0))\n  )\n}\n\nfunction resolve(queries, context) {\n  return parse(QUERIES, queries).reduce(function (result, node, index) {\n    if (node.not && index === 0) {\n      throw new BrowserslistError(\n        'Write any browsers query (for instance, `defaults`) ' +\n          'before `' +\n          node.query +\n          '`'\n      )\n    }\n    var type = QUERIES[node.type]\n    var array = type.select.call(browserslist, context, node).map(function (j) {\n      var parts = j.split(' ')\n      if (parts[1] === '0') {\n        return parts[0] + ' ' + byName(parts[0], context).versions[0]\n      } else {\n        return j\n      }\n    })\n\n    if (node.compose === 'and') {\n      if (node.not) {\n        return result.filter(function (j) {\n          return array.indexOf(j) === -1\n        })\n      } else {\n        return result.filter(function (j) {\n          return array.indexOf(j) !== -1\n        })\n      }\n    } else {\n      if (node.not) {\n        var filter = {}\n        array.forEach(function (j) {\n          filter[j] = true\n        })\n        return result.filter(function (j) {\n          return !filter[j]\n        })\n      }\n      return result.concat(array)\n    }\n  }, [])\n}\n\nfunction prepareOpts(opts) {\n  if (typeof opts === 'undefined') opts = {}\n\n  if (typeof opts.path === 'undefined') {\n    opts.path = path.resolve ? path.resolve('.') : '.'\n  }\n\n  return opts\n}\n\nfunction prepareQueries(queries, opts) {\n  if (typeof queries === 'undefined' || queries === null) {\n    var config = browserslist.loadConfig(opts)\n    if (config) {\n      queries = config\n    } else {\n      queries = browserslist.defaults\n    }\n  }\n\n  return queries\n}\n\nfunction checkQueries(queries) {\n  if (!(typeof queries === 'string' || Array.isArray(queries))) {\n    throw new BrowserslistError(\n      'Browser queries must be an array or string. Got ' + typeof queries + '.'\n    )\n  }\n}\n\nvar cache = {}\n\nfunction browserslist(queries, opts) {\n  opts = prepareOpts(opts)\n  queries = prepareQueries(queries, opts)\n  checkQueries(queries)\n\n  var context = {\n    ignoreUnknownVersions: opts.ignoreUnknownVersions,\n    dangerousExtend: opts.dangerousExtend,\n    mobileToDesktop: opts.mobileToDesktop,\n    path: opts.path,\n    env: opts.env\n  }\n\n  env.oldDataWarning(browserslist.data)\n  var stats = env.getStat(opts, browserslist.data)\n  if (stats) {\n    context.customUsage = {}\n    for (var browser in stats) {\n      fillUsage(context.customUsage, browser, stats[browser])\n    }\n  }\n\n  var cacheKey = JSON.stringify([queries, context])\n  if (cache[cacheKey]) return cache[cacheKey]\n\n  var result = uniq(resolve(queries, context)).sort(function (name1, name2) {\n    name1 = name1.split(' ')\n    name2 = name2.split(' ')\n    if (name1[0] === name2[0]) {\n      // assumptions on caniuse data\n      // 1) version ranges never overlaps\n      // 2) if version is not a range, it never contains `-`\n      var version1 = name1[1].split('-')[0]\n      var version2 = name2[1].split('-')[0]\n      return compareSemver(version2.split('.'), version1.split('.'))\n    } else {\n      return compare(name1[0], name2[0])\n    }\n  })\n  if (!env.env.BROWSERSLIST_DISABLE_CACHE) {\n    cache[cacheKey] = result\n  }\n  return result\n}\n\nbrowserslist.parse = function (queries, opts) {\n  opts = prepareOpts(opts)\n  queries = prepareQueries(queries, opts)\n  checkQueries(queries)\n  return parse(QUERIES, queries)\n}\n\n// Will be filled by Can I Use data below\nbrowserslist.cache = {}\nbrowserslist.data = {}\nbrowserslist.usage = {\n  global: {},\n  custom: null\n}\n\n// Default browsers query\nbrowserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead']\n\n// Browser names aliases\nbrowserslist.aliases = {\n  fx: 'firefox',\n  ff: 'firefox',\n  ios: 'ios_saf',\n  explorer: 'ie',\n  blackberry: 'bb',\n  explorermobile: 'ie_mob',\n  operamini: 'op_mini',\n  operamobile: 'op_mob',\n  chromeandroid: 'and_chr',\n  firefoxandroid: 'and_ff',\n  ucandroid: 'and_uc',\n  qqandroid: 'and_qq'\n}\n\n// Can I Use only provides a few versions for some browsers (e.g. and_chr).\n// Fallback to a similar browser for unknown versions\n// Note op_mob is not included as its chromium versions are not in sync with Opera desktop\nbrowserslist.desktopNames = {\n  and_chr: 'chrome',\n  and_ff: 'firefox',\n  ie_mob: 'ie',\n  android: 'chrome' // has extra processing logic\n}\n\n// Aliases to work with joined versions like `ios_saf 7.0-7.1`\nbrowserslist.versionAliases = {}\n\nbrowserslist.clearCaches = env.clearCaches\nbrowserslist.parseConfig = env.parseConfig\nbrowserslist.readConfig = env.readConfig\nbrowserslist.findConfig = env.findConfig\nbrowserslist.loadConfig = env.loadConfig\n\nbrowserslist.coverage = function (browsers, stats) {\n  var data\n  if (typeof stats === 'undefined') {\n    data = browserslist.usage.global\n  } else if (stats === 'my stats') {\n    var opts = {}\n    opts.path = path.resolve ? path.resolve('.') : '.'\n    var customStats = env.getStat(opts)\n    if (!customStats) {\n      throw new BrowserslistError('Custom usage statistics was not provided')\n    }\n    data = {}\n    for (var browser in customStats) {\n      fillUsage(data, browser, customStats[browser])\n    }\n  } else if (typeof stats === 'string') {\n    if (stats.length > 2) {\n      stats = stats.toLowerCase()\n    } else {\n      stats = stats.toUpperCase()\n    }\n    env.loadCountry(browserslist.usage, stats, browserslist.data)\n    data = browserslist.usage[stats]\n  } else {\n    if ('dataByBrowser' in stats) {\n      stats = stats.dataByBrowser\n    }\n    data = {}\n    for (var name in stats) {\n      for (var version in stats[name]) {\n        data[name + ' ' + version] = stats[name][version]\n      }\n    }\n  }\n\n  return browsers.reduce(function (all, i) {\n    var usage = data[i]\n    if (usage === undefined) {\n      usage = data[i.replace(/ \\S+$/, ' 0')]\n    }\n    return all + (usage || 0)\n  }, 0)\n}\n\nfunction nodeQuery(context, node) {\n  var matched = browserslist.nodeVersions.filter(function (i) {\n    return isVersionsMatch(i, node.version)\n  })\n  if (matched.length === 0) {\n    if (context.ignoreUnknownVersions) {\n      return []\n    } else {\n      throw new BrowserslistError(\n        'Unknown version ' + node.version + ' of Node.js'\n      )\n    }\n  }\n  return ['node ' + matched[matched.length - 1]]\n}\n\nfunction sinceQuery(context, node) {\n  var year = parseInt(node.year)\n  var month = parseInt(node.month || '01') - 1\n  var day = parseInt(node.day || '01')\n  return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context)\n}\n\nfunction coverQuery(context, node) {\n  var coverage = parseFloat(node.coverage)\n  var usage = browserslist.usage.global\n  if (node.place) {\n    if (node.place.match(/^my\\s+stats$/i)) {\n      if (!context.customUsage) {\n        throw new BrowserslistError('Custom usage statistics was not provided')\n      }\n      usage = context.customUsage\n    } else {\n      var place\n      if (node.place.length === 2) {\n        place = node.place.toUpperCase()\n      } else {\n        place = node.place.toLowerCase()\n      }\n      env.loadCountry(browserslist.usage, place, browserslist.data)\n      usage = browserslist.usage[place]\n    }\n  }\n  var versions = Object.keys(usage).sort(function (a, b) {\n    return usage[b] - usage[a]\n  })\n  var coveraged = 0\n  var result = []\n  var version\n  for (var i = 0; i < versions.length; i++) {\n    version = versions[i]\n    if (usage[version] === 0) break\n    coveraged += usage[version]\n    result.push(version)\n    if (coveraged >= coverage) break\n  }\n  return result\n}\n\nvar QUERIES = {\n  last_major_versions: {\n    matches: ['versions'],\n    regexp: /^last\\s+(\\d+)\\s+major\\s+versions?$/i,\n    select: function (context, node) {\n      return Object.keys(agents).reduce(function (selected, name) {\n        var data = byName(name, context)\n        if (!data) return selected\n        var list = getMajorVersions(data.released, node.versions)\n        list = list.map(nameMapper(data.name))\n        list = filterJumps(list, data.name, node.versions, context)\n        return selected.concat(list)\n      }, [])\n    }\n  },\n  last_versions: {\n    matches: ['versions'],\n    regexp: /^last\\s+(\\d+)\\s+versions?$/i,\n    select: function (context, node) {\n      return Object.keys(agents).reduce(function (selected, name) {\n        var data = byName(name, context)\n        if (!data) return selected\n        var list = data.released.slice(-node.versions)\n        list = list.map(nameMapper(data.name))\n        list = filterJumps(list, data.name, node.versions, context)\n        return selected.concat(list)\n      }, [])\n    }\n  },\n  last_electron_major_versions: {\n    matches: ['versions'],\n    regexp: /^last\\s+(\\d+)\\s+electron\\s+major\\s+versions?$/i,\n    select: function (context, node) {\n      var validVersions = getMajorVersions(Object.keys(e2c), node.versions)\n      return validVersions.map(function (i) {\n        return 'chrome ' + e2c[i]\n      })\n    }\n  },\n  last_node_major_versions: {\n    matches: ['versions'],\n    regexp: /^last\\s+(\\d+)\\s+node\\s+major\\s+versions?$/i,\n    select: function (context, node) {\n      return getMajorVersions(browserslist.nodeVersions, node.versions).map(\n        function (version) {\n          return 'node ' + version\n        }\n      )\n    }\n  },\n  last_browser_major_versions: {\n    matches: ['versions', 'browser'],\n    regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+major\\s+versions?$/i,\n    select: function (context, node) {\n      var data = checkName(node.browser, context)\n      var validVersions = getMajorVersions(data.released, node.versions)\n      var list = validVersions.map(nameMapper(data.name))\n      list = filterJumps(list, data.name, node.versions, context)\n      return list\n    }\n  },\n  last_electron_versions: {\n    matches: ['versions'],\n    regexp: /^last\\s+(\\d+)\\s+electron\\s+versions?$/i,\n    select: function (context, node) {\n      return Object.keys(e2c)\n        .slice(-node.versions)\n        .map(function (i) {\n          return 'chrome ' + e2c[i]\n        })\n    }\n  },\n  last_node_versions: {\n    matches: ['versions'],\n    regexp: /^last\\s+(\\d+)\\s+node\\s+versions?$/i,\n    select: function (context, node) {\n      return browserslist.nodeVersions\n        .slice(-node.versions)\n        .map(function (version) {\n          return 'node ' + version\n        })\n    }\n  },\n  last_browser_versions: {\n    matches: ['versions', 'browser'],\n    regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+versions?$/i,\n    select: function (context, node) {\n      var data = checkName(node.browser, context)\n      var list = data.released.slice(-node.versions).map(nameMapper(data.name))\n      list = filterJumps(list, data.name, node.versions, context)\n      return list\n    }\n  },\n  unreleased_versions: {\n    matches: [],\n    regexp: /^unreleased\\s+versions$/i,\n    select: function (context) {\n      return Object.keys(agents).reduce(function (selected, name) {\n        var data = byName(name, context)\n        if (!data) return selected\n        var list = data.versions.filter(function (v) {\n          return data.released.indexOf(v) === -1\n        })\n        list = list.map(nameMapper(data.name))\n        return selected.concat(list)\n      }, [])\n    }\n  },\n  unreleased_electron_versions: {\n    matches: [],\n    regexp: /^unreleased\\s+electron\\s+versions?$/i,\n    select: function () {\n      return []\n    }\n  },\n  unreleased_browser_versions: {\n    matches: ['browser'],\n    regexp: /^unreleased\\s+(\\w+)\\s+versions?$/i,\n    select: function (context, node) {\n      var data = checkName(node.browser, context)\n      return data.versions\n        .filter(function (v) {\n          return data.released.indexOf(v) === -1\n        })\n        .map(nameMapper(data.name))\n    }\n  },\n  last_years: {\n    matches: ['years'],\n    regexp: /^last\\s+(\\d*.?\\d+)\\s+years?$/i,\n    select: function (context, node) {\n      return filterByYear(Date.now() - YEAR * node.years, context)\n    }\n  },\n  since_y: {\n    matches: ['year'],\n    regexp: /^since (\\d+)$/i,\n    select: sinceQuery\n  },\n  since_y_m: {\n    matches: ['year', 'month'],\n    regexp: /^since (\\d+)-(\\d+)$/i,\n    select: sinceQuery\n  },\n  since_y_m_d: {\n    matches: ['year', 'month', 'day'],\n    regexp: /^since (\\d+)-(\\d+)-(\\d+)$/i,\n    select: sinceQuery\n  },\n  popularity: {\n    matches: ['sign', 'popularity'],\n    regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%$/,\n    select: function (context, node) {\n      var popularity = parseFloat(node.popularity)\n      var usage = browserslist.usage.global\n      return Object.keys(usage).reduce(function (result, version) {\n        if (node.sign === '>') {\n          if (usage[version] > popularity) {\n            result.push(version)\n          }\n        } else if (node.sign === '<') {\n          if (usage[version] < popularity) {\n            result.push(version)\n          }\n        } else if (node.sign === '<=') {\n          if (usage[version] <= popularity) {\n            result.push(version)\n          }\n        } else if (usage[version] >= popularity) {\n          result.push(version)\n        }\n        return result\n      }, [])\n    }\n  },\n  popularity_in_my_stats: {\n    matches: ['sign', 'popularity'],\n    regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+my\\s+stats$/,\n    select: function (context, node) {\n      var popularity = parseFloat(node.popularity)\n      if (!context.customUsage) {\n        throw new BrowserslistError('Custom usage statistics was not provided')\n      }\n      var usage = context.customUsage\n      return Object.keys(usage).reduce(function (result, version) {\n        var percentage = usage[version]\n        if (percentage == null) {\n          return result\n        }\n\n        if (node.sign === '>') {\n          if (percentage > popularity) {\n            result.push(version)\n          }\n        } else if (node.sign === '<') {\n          if (percentage < popularity) {\n            result.push(version)\n          }\n        } else if (node.sign === '<=') {\n          if (percentage <= popularity) {\n            result.push(version)\n          }\n        } else if (percentage >= popularity) {\n          result.push(version)\n        }\n        return result\n      }, [])\n    }\n  },\n  popularity_in_config_stats: {\n    matches: ['sign', 'popularity', 'config'],\n    regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(\\S+)\\s+stats$/,\n    select: function (context, node) {\n      var popularity = parseFloat(node.popularity)\n      var stats = env.loadStat(context, node.config, browserslist.data)\n      if (stats) {\n        context.customUsage = {}\n        for (var browser in stats) {\n          fillUsage(context.customUsage, browser, stats[browser])\n        }\n      }\n      if (!context.customUsage) {\n        throw new BrowserslistError('Custom usage statistics was not provided')\n      }\n      var usage = context.customUsage\n      return Object.keys(usage).reduce(function (result, version) {\n        var percentage = usage[version]\n        if (percentage == null) {\n          return result\n        }\n\n        if (node.sign === '>') {\n          if (percentage > popularity) {\n            result.push(version)\n          }\n        } else if (node.sign === '<') {\n          if (percentage < popularity) {\n            result.push(version)\n          }\n        } else if (node.sign === '<=') {\n          if (percentage <= popularity) {\n            result.push(version)\n          }\n        } else if (percentage >= popularity) {\n          result.push(version)\n        }\n        return result\n      }, [])\n    }\n  },\n  popularity_in_place: {\n    matches: ['sign', 'popularity', 'place'],\n    regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+((alt-)?\\w\\w)$/,\n    select: function (context, node) {\n      var popularity = parseFloat(node.popularity)\n      var place = node.place\n      if (place.length === 2) {\n        place = place.toUpperCase()\n      } else {\n        place = place.toLowerCase()\n      }\n      env.loadCountry(browserslist.usage, place, browserslist.data)\n      var usage = browserslist.usage[place]\n      return Object.keys(usage).reduce(function (result, version) {\n        var percentage = usage[version]\n        if (percentage == null) {\n          return result\n        }\n\n        if (node.sign === '>') {\n          if (percentage > popularity) {\n            result.push(version)\n          }\n        } else if (node.sign === '<') {\n          if (percentage < popularity) {\n            result.push(version)\n          }\n        } else if (node.sign === '<=') {\n          if (percentage <= popularity) {\n            result.push(version)\n          }\n        } else if (percentage >= popularity) {\n          result.push(version)\n        }\n        return result\n      }, [])\n    }\n  },\n  cover: {\n    matches: ['coverage'],\n    regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%$/i,\n    select: coverQuery\n  },\n  cover_in: {\n    matches: ['coverage', 'place'],\n    regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(my\\s+stats|(alt-)?\\w\\w)$/i,\n    select: coverQuery\n  },\n  supports: {\n    matches: ['supportType', 'feature'],\n    regexp: /^(?:(fully|partially)\\s+)?supports\\s+([\\w-]+)$/,\n    select: function (context, node) {\n      env.loadFeature(browserslist.cache, node.feature)\n      var withPartial = node.supportType !== 'fully'\n      var features = browserslist.cache[node.feature]\n      var result = []\n      for (var name in features) {\n        var data = byName(name, context)\n        // Only check desktop when latest released mobile has support\n        var iMax = data.released.length - 1\n        while (iMax >= 0) {\n          if (data.released[iMax] in features[name]) break\n          iMax--\n        }\n        var checkDesktop =\n          context.mobileToDesktop &&\n          name in browserslist.desktopNames &&\n          isSupported(features[name][data.released[iMax]], withPartial)\n        data.versions.forEach(function (version) {\n          var flags = features[name][version]\n          if (flags === undefined && checkDesktop) {\n            flags = features[browserslist.desktopNames[name]][version]\n          }\n          if (isSupported(flags, withPartial)) {\n            result.push(name + ' ' + version)\n          }\n        })\n      }\n      return result\n    }\n  },\n  electron_range: {\n    matches: ['from', 'to'],\n    regexp: /^electron\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n    select: function (context, node) {\n      var fromToUse = normalizeElectron(node.from)\n      var toToUse = normalizeElectron(node.to)\n      var from = parseFloat(node.from)\n      var to = parseFloat(node.to)\n      if (!e2c[fromToUse]) {\n        throw new BrowserslistError('Unknown version ' + from + ' of electron')\n      }\n      if (!e2c[toToUse]) {\n        throw new BrowserslistError('Unknown version ' + to + ' of electron')\n      }\n      return Object.keys(e2c)\n        .filter(function (i) {\n          var parsed = parseFloat(i)\n          return parsed >= from && parsed <= to\n        })\n        .map(function (i) {\n          return 'chrome ' + e2c[i]\n        })\n    }\n  },\n  node_range: {\n    matches: ['from', 'to'],\n    regexp: /^node\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n    select: function (context, node) {\n      return browserslist.nodeVersions\n        .filter(semverFilterLoose('>=', node.from))\n        .filter(semverFilterLoose('<=', node.to))\n        .map(function (v) {\n          return 'node ' + v\n        })\n    }\n  },\n  browser_range: {\n    matches: ['browser', 'from', 'to'],\n    regexp: /^(\\w+)\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n    select: function (context, node) {\n      var data = checkName(node.browser, context)\n      var from = parseFloat(normalizeVersion(data, node.from) || node.from)\n      var to = parseFloat(normalizeVersion(data, node.to) || node.to)\n      function filter(v) {\n        var parsed = parseFloat(v)\n        return parsed >= from && parsed <= to\n      }\n      return data.released.filter(filter).map(nameMapper(data.name))\n    }\n  },\n  electron_ray: {\n    matches: ['sign', 'version'],\n    regexp: /^electron\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n    select: function (context, node) {\n      var versionToUse = normalizeElectron(node.version)\n      return Object.keys(e2c)\n        .filter(generateFilter(node.sign, versionToUse))\n        .map(function (i) {\n          return 'chrome ' + e2c[i]\n        })\n    }\n  },\n  node_ray: {\n    matches: ['sign', 'version'],\n    regexp: /^node\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n    select: function (context, node) {\n      return browserslist.nodeVersions\n        .filter(generateSemverFilter(node.sign, node.version))\n        .map(function (v) {\n          return 'node ' + v\n        })\n    }\n  },\n  browser_ray: {\n    matches: ['browser', 'sign', 'version'],\n    regexp: /^(\\w+)\\s*(>=?|<=?)\\s*([\\d.]+)$/,\n    select: function (context, node) {\n      var version = node.version\n      var data = checkName(node.browser, context)\n      var alias = browserslist.versionAliases[data.name][version]\n      if (alias) version = alias\n      return data.released\n        .filter(generateFilter(node.sign, version))\n        .map(function (v) {\n          return data.name + ' ' + v\n        })\n    }\n  },\n  firefox_esr: {\n    matches: [],\n    regexp: /^(firefox|ff|fx)\\s+esr$/i,\n    select: function () {\n      return ['firefox 115', 'firefox 128']\n    }\n  },\n  opera_mini_all: {\n    matches: [],\n    regexp: /(operamini|op_mini)\\s+all/i,\n    select: function () {\n      return ['op_mini all']\n    }\n  },\n  electron_version: {\n    matches: ['version'],\n    regexp: /^electron\\s+([\\d.]+)$/i,\n    select: function (context, node) {\n      var versionToUse = normalizeElectron(node.version)\n      var chrome = e2c[versionToUse]\n      if (!chrome) {\n        throw new BrowserslistError(\n          'Unknown version ' + node.version + ' of electron'\n        )\n      }\n      return ['chrome ' + chrome]\n    }\n  },\n  node_major_version: {\n    matches: ['version'],\n    regexp: /^node\\s+(\\d+)$/i,\n    select: nodeQuery\n  },\n  node_minor_version: {\n    matches: ['version'],\n    regexp: /^node\\s+(\\d+\\.\\d+)$/i,\n    select: nodeQuery\n  },\n  node_patch_version: {\n    matches: ['version'],\n    regexp: /^node\\s+(\\d+\\.\\d+\\.\\d+)$/i,\n    select: nodeQuery\n  },\n  current_node: {\n    matches: [],\n    regexp: /^current\\s+node$/i,\n    select: function (context) {\n      return [env.currentNode(resolve, context)]\n    }\n  },\n  maintained_node: {\n    matches: [],\n    regexp: /^maintained\\s+node\\s+versions$/i,\n    select: function (context) {\n      var now = Date.now()\n      var queries = Object.keys(jsEOL)\n        .filter(function (key) {\n          return (\n            now < Date.parse(jsEOL[key].end) &&\n            now > Date.parse(jsEOL[key].start) &&\n            isEolReleased(key)\n          )\n        })\n        .map(function (key) {\n          return 'node ' + key.slice(1)\n        })\n      return resolve(queries, context)\n    }\n  },\n  phantomjs_1_9: {\n    matches: [],\n    regexp: /^phantomjs\\s+1.9$/i,\n    select: function () {\n      return ['safari 5']\n    }\n  },\n  phantomjs_2_1: {\n    matches: [],\n    regexp: /^phantomjs\\s+2.1$/i,\n    select: function () {\n      return ['safari 6']\n    }\n  },\n  browser_version: {\n    matches: ['browser', 'version'],\n    regexp: /^(\\w+)\\s+(tp|[\\d.]+)$/i,\n    select: function (context, node) {\n      var version = node.version\n      if (/^tp$/i.test(version)) version = 'TP'\n      var data = checkName(node.browser, context)\n      var alias = normalizeVersion(data, version)\n      if (alias) {\n        version = alias\n      } else {\n        if (version.indexOf('.') === -1) {\n          alias = version + '.0'\n        } else {\n          alias = version.replace(/\\.0$/, '')\n        }\n        alias = normalizeVersion(data, alias)\n        if (alias) {\n          version = alias\n        } else if (context.ignoreUnknownVersions) {\n          return []\n        } else {\n          throw new BrowserslistError(\n            'Unknown version ' + version + ' of ' + node.browser\n          )\n        }\n      }\n      return [data.name + ' ' + version]\n    }\n  },\n  browserslist_config: {\n    matches: [],\n    regexp: /^browserslist config$/i,\n    select: function (context) {\n      return browserslist(undefined, context)\n    }\n  },\n  extends: {\n    matches: ['config'],\n    regexp: /^extends (.+)$/i,\n    select: function (context, node) {\n      return resolve(env.loadQueries(context, node.config), context)\n    }\n  },\n  defaults: {\n    matches: [],\n    regexp: /^defaults$/i,\n    select: function (context) {\n      return resolve(browserslist.defaults, context)\n    }\n  },\n  dead: {\n    matches: [],\n    regexp: /^dead$/i,\n    select: function (context) {\n      var dead = [\n        'Baidu >= 0',\n        'ie <= 11',\n        'ie_mob <= 11',\n        'bb <= 10',\n        'op_mob <= 12.1',\n        'samsung 4'\n      ]\n      return resolve(dead, context)\n    }\n  },\n  unknown: {\n    matches: [],\n    regexp: /^(\\w+)$/i,\n    select: function (context, node) {\n      if (byName(node.query, context)) {\n        throw new BrowserslistError(\n          'Specify versions in Browserslist query for browser ' + node.query\n        )\n      } else {\n        throw unknownQuery(node.query)\n      }\n    }\n  }\n}\n\n// Get and convert Can I Use data\n\n;(function () {\n  for (var name in agents) {\n    var browser = agents[name]\n    browserslist.data[name] = {\n      name: name,\n      versions: normalize(agents[name].versions),\n      released: normalize(agents[name].versions.slice(0, -3)),\n      releaseDate: agents[name].release_date\n    }\n    fillUsage(browserslist.usage.global, name, browser.usage_global)\n\n    browserslist.versionAliases[name] = {}\n    for (var i = 0; i < browser.versions.length; i++) {\n      var full = browser.versions[i]\n      if (!full) continue\n\n      if (full.indexOf('-') !== -1) {\n        var interval = full.split('-')\n        for (var j = 0; j < interval.length; j++) {\n          browserslist.versionAliases[name][interval[j]] = full\n        }\n      }\n    }\n  }\n\n  browserslist.nodeVersions = jsReleases.map(function (release) {\n    return release.version\n  })\n})()\n\nmodule.exports = browserslist\n","var AND_REGEXP = /^\\s+and\\s+(.*)/i\nvar OR_REGEXP = /^(?:,\\s*|\\s+or\\s+)(.*)/i\n\nfunction flatten(array) {\n  if (!Array.isArray(array)) return [array]\n  return array.reduce(function (a, b) {\n    return a.concat(flatten(b))\n  }, [])\n}\n\nfunction find(string, predicate) {\n  for (var n = 1, max = string.length; n <= max; n++) {\n    var parsed = string.substr(-n, n)\n    if (predicate(parsed, n, max)) {\n      return string.slice(0, -n)\n    }\n  }\n  return ''\n}\n\nfunction matchQuery(all, query) {\n  var node = { query: query }\n  if (query.indexOf('not ') === 0) {\n    node.not = true\n    query = query.slice(4)\n  }\n\n  for (var name in all) {\n    var type = all[name]\n    var match = query.match(type.regexp)\n    if (match) {\n      node.type = name\n      for (var i = 0; i < type.matches.length; i++) {\n        node[type.matches[i]] = match[i + 1]\n      }\n      return node\n    }\n  }\n\n  node.type = 'unknown'\n  return node\n}\n\nfunction matchBlock(all, string, qs) {\n  var node\n  return find(string, function (parsed, n, max) {\n    if (AND_REGEXP.test(parsed)) {\n      node = matchQuery(all, parsed.match(AND_REGEXP)[1])\n      node.compose = 'and'\n      qs.unshift(node)\n      return true\n    } else if (OR_REGEXP.test(parsed)) {\n      node = matchQuery(all, parsed.match(OR_REGEXP)[1])\n      node.compose = 'or'\n      qs.unshift(node)\n      return true\n    } else if (n === max) {\n      node = matchQuery(all, parsed.trim())\n      node.compose = 'or'\n      qs.unshift(node)\n      return true\n    }\n    return false\n  })\n}\n\nmodule.exports = function parse(all, queries) {\n  if (!Array.isArray(queries)) queries = [queries]\n  return flatten(\n    queries.map(function (block) {\n      var qs = []\n      do {\n        block = matchBlock(all, block, qs)\n      } while (block)\n      return qs\n    })\n  )\n}\n","module.exports={A:{A:{K:0,E:0,F:0.0300576,G:0.0601152,A:0,B:0.541037,bC:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"bC\",\"K\",\"E\",\"F\",\"G\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE\",F:{bC:962323200,K:998870400,E:1161129600,F:1237420800,G:1300060800,A:1346716800,B:1381968000}},B:{A:{\"1\":0.007426,\"2\":0.014852,\"3\":0.011139,\"4\":0.007426,\"5\":0.007426,\"6\":0.011139,\"7\":0.007426,\"8\":0.014852,\"9\":0.03713,C:0,L:0,M:0,H:0,N:0,O:0.003713,P:0.03713,Q:0,I:0,R:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0.011139,c:0,d:0,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0,n:0,o:0,p:0,q:0.003713,r:0.007426,s:0.063121,t:0.007426,u:0.007426,AB:0.018565,BB:0.044556,CB:0.059408,DB:0.133668,EB:2.41716,FB:2.03844,D:0.007426},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"C\",\"L\",\"M\",\"H\",\"N\",\"O\",\"P\",\"Q\",\"I\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"D\",\"\",\"\",\"\"],E:\"Edge\",F:{\"1\":1680825600,\"2\":1683158400,\"3\":1685664000,\"4\":1689897600,\"5\":1692576000,\"6\":1694649600,\"7\":1697155200,\"8\":1698969600,\"9\":1701993600,C:1438128000,L:1447286400,M:1470096000,H:1491868800,N:1508198400,O:1525046400,P:1542067200,Q:1579046400,I:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,q:1666915200,r:1670198400,s:1673481600,t:1675900800,u:1678665600,AB:1706227200,BB:1708732800,CB:1711152000,DB:1713398400,EB:1715990400,FB:1718841600,D:1721865600},D:{C:\"ms\",L:\"ms\",M:\"ms\",H:\"ms\",N:\"ms\",O:\"ms\",P:\"ms\"}},C:{A:{\"0\":0,\"1\":0,\"2\":0.014852,\"3\":0,\"4\":0.367587,\"5\":0,\"6\":0.007426,\"7\":0.070547,\"8\":0,\"9\":0.007426,cC:0,DC:0,J:0.003713,GB:0,K:0,E:0,F:0,G:0,A:0,B:0.018565,C:0,L:0,M:0,H:0,N:0,O:0,P:0,HB:0,v:0,w:0,x:0,y:0,z:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0.003713,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0.007426,aB:0.007426,bB:0.007426,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0.051982,jB:0.003713,kB:0.003713,lB:0,mB:0.018565,nB:0,oB:0,EC:0.003713,pB:0,FC:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0,\"1B\":0,\"2B\":0,\"3B\":0,\"4B\":0,\"5B\":0,\"6B\":0.014852,Q:0,I:0,R:0,GC:0,S:0,T:0,U:0,V:0,W:0,X:0.007426,Y:0,Z:0,a:0,b:0,c:0,d:0.003713,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0.007426,m:0.007426,n:0,o:0,p:0,q:0,r:0.003713,s:0.007426,t:0,u:0,AB:0.007426,BB:0.007426,CB:0.011139,DB:0.018565,EB:0.029704,FB:0.790869,D:0.794582,HC:0.007426,IC:0,JC:0,dC:0,eC:0,fC:0},B:\"moz\",C:[\"cC\",\"DC\",\"eC\",\"fC\",\"J\",\"GB\",\"K\",\"E\",\"F\",\"G\",\"A\",\"B\",\"C\",\"L\",\"M\",\"H\",\"N\",\"O\",\"P\",\"HB\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"EC\",\"pB\",\"FC\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"1B\",\"2B\",\"3B\",\"4B\",\"5B\",\"6B\",\"Q\",\"I\",\"R\",\"GC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"D\",\"HC\",\"IC\",\"JC\",\"dC\"],E:\"Firefox\",F:{\"0\":1379376000,\"1\":1681171200,\"2\":1683590400,\"3\":1686009600,\"4\":1688428800,\"5\":1690848000,\"6\":1693267200,\"7\":1695686400,\"8\":1698105600,\"9\":1700524800,cC:1161648000,DC:1213660800,eC:1246320000,fC:1264032000,J:1300752000,GB:1308614400,K:1313452800,E:1317081600,F:1317081600,G:1320710400,A:1324339200,B:1327968000,C:1331596800,L:1335225600,M:1338854400,H:1342483200,N:1346112000,O:1349740800,P:1353628800,HB:1357603200,v:1361232000,w:1364860800,x:1368489600,y:1372118400,z:1375747200,IB:1386633600,JB:1391472000,KB:1395100800,LB:1398729600,MB:1402358400,NB:1405987200,OB:1409616000,PB:1413244800,QB:1417392000,RB:1421107200,SB:1424736000,TB:1428278400,UB:1431475200,VB:1435881600,WB:1439251200,XB:1442880000,YB:1446508800,ZB:1450137600,aB:1453852800,bB:1457395200,cB:1461628800,dB:1465257600,eB:1470096000,fB:1474329600,gB:1479168000,hB:1485216000,iB:1488844800,jB:1492560000,kB:1497312000,lB:1502150400,mB:1506556800,nB:1510617600,oB:1516665600,EC:1520985600,pB:1525824000,FC:1529971200,qB:1536105600,rB:1540252800,sB:1544486400,tB:1548720000,uB:1552953600,vB:1558396800,wB:1562630400,xB:1567468800,yB:1571788800,zB:1575331200,\"0B\":1578355200,\"1B\":1581379200,\"2B\":1583798400,\"3B\":1586304000,\"4B\":1588636800,\"5B\":1591056000,\"6B\":1593475200,Q:1595894400,I:1598313600,R:1600732800,GC:1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632000,p:1666051200,q:1668470400,r:1670889600,s:1673913600,t:1676332800,u:1678752000,AB:1702944000,BB:1705968000,CB:1708387200,DB:1710806400,EB:1713225600,FB:1715644800,D:1718064000,HC:1720483200,IC:null,JC:null,dC:null}},D:{A:{\"0\":0,\"1\":0.044556,\"2\":0.096538,\"3\":0.092825,\"4\":0.029704,\"5\":0.189363,\"6\":0.107677,\"7\":0.081686,\"8\":0.066834,\"9\":0.133668,J:0,GB:0,K:0,E:0,F:0,G:0,A:0,B:0,C:0,L:0,M:0,H:0,N:0,O:0,P:0,HB:0,v:0,w:0,x:0,y:0,z:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0.003713,RB:0,SB:0,TB:0,UB:0.011139,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0.007426,eB:0.025991,fB:0.022278,gB:0.011139,hB:0,iB:0.003713,jB:0.007426,kB:0,lB:0,mB:0.011139,nB:0,oB:0.003713,EC:0,pB:0,FC:0.003713,qB:0,rB:0.003713,sB:0,tB:0,uB:0.022278,vB:0.003713,wB:0,xB:0.022278,yB:0.070547,zB:0.003713,\"0B\":0,\"1B\":0.011139,\"2B\":0.007426,\"3B\":0.007426,\"4B\":0.007426,\"5B\":0.029704,\"6B\":0.018565,Q:0.107677,I:0.011139,R:0.018565,S:0.033417,T:0.007426,U:0.011139,V:0.044556,W:0.070547,X:0.011139,Y:0.011139,Z:0.014852,a:0.059408,b:0.018565,c:0.025991,d:0.059408,e:0.011139,f:0.014852,g:0.018565,h:0.070547,i:0.03713,j:0.040843,k:0.055695,l:0.03713,m:0.167085,n:0.096538,o:0.014852,p:0.033417,q:0.033417,r:0.051982,s:1.4852,t:0.159659,u:0.040843,AB:0.211641,BB:0.181937,CB:0.278475,DB:0.983945,EB:10.1922,FB:6.28982,D:0.025991,HC:0.007426,IC:0,JC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"J\",\"GB\",\"K\",\"E\",\"F\",\"G\",\"A\",\"B\",\"C\",\"L\",\"M\",\"H\",\"N\",\"O\",\"P\",\"HB\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"EC\",\"pB\",\"FC\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"1B\",\"2B\",\"3B\",\"4B\",\"5B\",\"6B\",\"Q\",\"I\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"D\",\"HC\",\"IC\",\"JC\"],E:\"Chrome\",F:{\"0\":1357862400,\"1\":1680566400,\"2\":1682985600,\"3\":1685404800,\"4\":1689724800,\"5\":1692057600,\"6\":1694476800,\"7\":1696896000,\"8\":1698710400,\"9\":1701993600,J:1264377600,GB:1274745600,K:1283385600,E:1287619200,F:1291248000,G:1296777600,A:1299542400,B:1303862400,C:1307404800,L:1312243200,M:1316131200,H:1316131200,N:1319500800,O:1323734400,P:1328659200,HB:1332892800,v:1337040000,w:1340668800,x:1343692800,y:1348531200,z:1352246400,IB:1361404800,JB:1364428800,KB:1369094400,LB:1374105600,MB:1376956800,NB:1384214400,OB:1389657600,PB:1392940800,QB:1397001600,RB:1400544000,SB:1405468800,TB:1409011200,UB:1412640000,VB:1416268800,WB:1421798400,XB:1425513600,YB:1429401600,ZB:1432080000,aB:1437523200,bB:1441152000,cB:1444780800,dB:1449014400,eB:1453248000,fB:1456963200,gB:1460592000,hB:1464134400,iB:1469059200,jB:1472601600,kB:1476230400,lB:1480550400,mB:1485302400,nB:1489017600,oB:1492560000,EC:1496707200,pB:1500940800,FC:1504569600,qB:1508198400,rB:1512518400,sB:1516752000,tB:1520294400,uB:1523923200,vB:1527552000,wB:1532390400,xB:1536019200,yB:1539648000,zB:1543968000,\"0B\":1548720000,\"1B\":1552348800,\"2B\":1555977600,\"3B\":1559606400,\"4B\":1564444800,\"5B\":1568073600,\"6B\":1571702400,Q:1575936000,I:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,q:1666656000,r:1669680000,s:1673308800,t:1675728000,u:1678147200,AB:1705968000,BB:1708387200,CB:1710806400,DB:1713225600,EB:1715644800,FB:1718064000,D:1721174400,HC:null,IC:null,JC:null}},E:{A:{J:0,GB:0,K:0,E:0,F:0.003713,G:0.003713,A:0,B:0,C:0,L:0.007426,M:0.033417,H:0.007426,gC:0,KC:0,hC:0,iC:0,jC:0,kC:0,LC:0,\"7B\":0.007426,\"8B\":0.011139,lC:0.063121,mC:0.089112,nC:0.025991,MC:0.011139,NC:0.022278,\"9B\":0.033417,oC:0.241345,AC:0.029704,OC:0.044556,PC:0.03713,QC:0.089112,RC:0.033417,SC:0.055695,pC:0.33417,BC:0.025991,TC:0.055695,UC:0.066834,VC:0.07426,WC:0.360161,XC:1.48891,YC:0,CC:0.003713,qC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"gC\",\"KC\",\"J\",\"GB\",\"hC\",\"K\",\"iC\",\"E\",\"jC\",\"F\",\"G\",\"kC\",\"A\",\"LC\",\"B\",\"7B\",\"C\",\"8B\",\"L\",\"lC\",\"M\",\"mC\",\"H\",\"nC\",\"MC\",\"NC\",\"9B\",\"oC\",\"AC\",\"OC\",\"PC\",\"QC\",\"RC\",\"SC\",\"pC\",\"BC\",\"TC\",\"UC\",\"VC\",\"WC\",\"XC\",\"YC\",\"CC\",\"qC\"],E:\"Safari\",F:{gC:1205798400,KC:1226534400,J:1244419200,GB:1275868800,hC:1311120000,K:1343174400,iC:1382400000,E:1382400000,jC:1410998400,F:1413417600,G:1443657600,kC:1458518400,A:1474329600,LC:1490572800,B:1505779200,\"7B\":1522281600,C:1537142400,\"8B\":1553472000,L:1568851200,lC:1585008000,M:1600214400,mC:1619395200,H:1632096000,nC:1635292800,MC:1639353600,NC:1647216000,\"9B\":1652745600,oC:1658275200,AC:1662940800,OC:1666569600,PC:1670889600,QC:1674432000,RC:1679875200,SC:1684368000,pC:1690156800,BC:1695686400,TC:1698192000,UC:1702252800,VC:1705881600,WC:1709596800,XC:1715558400,YC:null,CC:null,qC:null}},F:{A:{\"0\":0,G:0,B:0,C:0,H:0,N:0,O:0,P:0,HB:0,v:0,w:0,x:0,y:0,z:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0.003713,TB:0,UB:0,VB:0,WB:0.003713,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0.014852,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0,\"1B\":0,\"2B\":0,\"3B\":0,\"4B\":0,\"5B\":0,\"6B\":0,Q:0,I:0,R:0,GC:0,S:0.007426,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:0.040843,f:0,g:0,h:0,i:0,j:0,k:0,l:0.044556,m:0,n:0,o:0,p:0,q:0.003713,r:0,s:0.497542,t:0.326744,u:0.048269,rC:0,sC:0,tC:0,uC:0,\"7B\":0,ZC:0,vC:0,\"8B\":0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"G\",\"rC\",\"sC\",\"tC\",\"uC\",\"B\",\"7B\",\"ZC\",\"vC\",\"C\",\"8B\",\"H\",\"N\",\"O\",\"P\",\"HB\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"1B\",\"2B\",\"3B\",\"4B\",\"5B\",\"6B\",\"Q\",\"I\",\"R\",\"GC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"\",\"\",\"\"],E:\"Opera\",F:{\"0\":1413331200,G:1150761600,rC:1223424000,sC:1251763200,tC:1267488000,uC:1277942400,B:1292457600,\"7B\":1302566400,ZC:1309219200,vC:1323129600,C:1323129600,\"8B\":1352073600,H:1372723200,N:1377561600,O:1381104000,P:1386288000,HB:1390867200,v:1393891200,w:1399334400,x:1401753600,y:1405987200,z:1409616000,IB:1417132800,JB:1422316800,KB:1425945600,LB:1430179200,MB:1433808000,NB:1438646400,OB:1442448000,PB:1445904000,QB:1449100800,RB:1454371200,SB:1457308800,TB:1462320000,UB:1465344000,VB:1470096000,WB:1474329600,XB:1477267200,YB:1481587200,ZB:1486425600,aB:1490054400,bB:1494374400,cB:1498003200,dB:1502236800,eB:1506470400,fB:1510099200,gB:1515024000,hB:1517961600,iB:1521676800,jB:1525910400,kB:1530144000,lB:1534982400,mB:1537833600,nB:1543363200,oB:1548201600,pB:1554768000,qB:1561593600,rB:1566259200,sB:1570406400,tB:1573689600,uB:1578441600,vB:1583971200,wB:1587513600,xB:1592956800,yB:1595894400,zB:1600128000,\"0B\":1603238400,\"1B\":1613520000,\"2B\":1612224000,\"3B\":1616544000,\"4B\":1619568000,\"5B\":1623715200,\"6B\":1627948800,Q:1631577600,I:1633392000,R:1635984000,GC:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:1699920000,o:1699920000,p:1702944000,q:1707264000,r:1710115200,s:1711497600,t:1716336000,u:1719273600},D:{G:\"o\",B:\"o\",C:\"o\",rC:\"o\",sC:\"o\",tC:\"o\",uC:\"o\",\"7B\":\"o\",ZC:\"o\",vC:\"o\",\"8B\":\"o\"}},G:{A:{F:0,KC:0,wC:0,aC:0.00284927,xC:0.00142463,yC:0.00854781,zC:0.00854781,\"0C\":0.00142463,\"1C\":0.00712317,\"2C\":0.0299173,\"3C\":0.00569854,\"4C\":0.0512868,\"5C\":0.108272,\"6C\":0.0128217,\"7C\":0.00997244,\"8C\":0.189476,\"9C\":0.00284927,AD:0.0185202,BD:0.00997244,CD:0.0370405,DD:0.105423,ED:0.112546,FD:0.0569854,MC:0.0612593,NC:0.0698071,\"9B\":0.0840534,GD:0.755056,AC:0.169531,OC:0.354734,PC:0.173805,QC:0.299173,RC:0.0641085,SC:0.126792,HD:1.01149,BC:0.103998,TC:0.165258,UC:0.166682,VC:0.274954,WC:1.95317,XC:7.56766,YC:0.0128217,CC:0.0384651},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"KC\",\"wC\",\"aC\",\"xC\",\"yC\",\"zC\",\"F\",\"0C\",\"1C\",\"2C\",\"3C\",\"4C\",\"5C\",\"6C\",\"7C\",\"8C\",\"9C\",\"AD\",\"BD\",\"CD\",\"DD\",\"ED\",\"FD\",\"MC\",\"NC\",\"9B\",\"GD\",\"AC\",\"OC\",\"PC\",\"QC\",\"RC\",\"SC\",\"HD\",\"BC\",\"TC\",\"UC\",\"VC\",\"WC\",\"XC\",\"YC\",\"CC\",\"\"],E:\"Safari on iOS\",F:{KC:1270252800,wC:1283904000,aC:1299628800,xC:1331078400,yC:1359331200,zC:1394409600,F:1410912000,\"0C\":1413763200,\"1C\":1442361600,\"2C\":1458518400,\"3C\":1473724800,\"4C\":1490572800,\"5C\":1505779200,\"6C\":1522281600,\"7C\":1537142400,\"8C\":1553472000,\"9C\":1568851200,AD:1572220800,BD:1580169600,CD:1585008000,DD:1600214400,ED:1619395200,FD:1632096000,MC:1639353600,NC:1647216000,\"9B\":1652659200,GD:1658275200,AC:1662940800,OC:1666569600,PC:1670889600,QC:1674432000,RC:1679875200,SC:1684368000,HD:1690156800,BC:1694995200,TC:1698192000,UC:1702252800,VC:1705881600,WC:1709596800,XC:1715558400,YC:null,CC:null}},H:{A:{ID:0.05},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"ID\",\"\",\"\",\"\"],E:\"Opera Mini\",F:{ID:1426464000}},I:{A:{DC:0,J:0.0000653848,D:0.651756,JD:0,KD:0,LD:0,MD:0.00013077,aC:0.000326924,ND:0,OD:0.00117693},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"JD\",\"KD\",\"LD\",\"DC\",\"J\",\"MD\",\"aC\",\"ND\",\"OD\",\"D\",\"\",\"\",\"\"],E:\"Android Browser\",F:{JD:1256515200,KD:1274313600,LD:1291593600,DC:1298332800,J:1318896000,MD:1341792000,aC:1374624000,ND:1386547200,OD:1401667200,D:1721692800}},J:{A:{E:0,A:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"E\",\"A\",\"\",\"\",\"\"],E:\"Blackberry Browser\",F:{E:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,I:1.12567,\"7B\":0,ZC:0,\"8B\":0},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"7B\",\"ZC\",\"C\",\"8B\",\"I\",\"\",\"\",\"\"],E:\"Opera Mobile\",F:{A:1287100800,B:1300752000,\"7B\":1314835200,ZC:1318291200,C:1330300800,\"8B\":1349740800,I:1709769600},D:{I:\"webkit\"}},L:{A:{D:43.5971},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"D\",\"\",\"\",\"\"],E:\"Chrome for Android\",F:{D:1721692800}},M:{A:{D:0.333211},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"D\",\"\",\"\",\"\"],E:\"Firefox for Android\",F:{D:1718064000}},N:{A:{A:0,B:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE Mobile\",F:{A:1340150400,B:1353456000}},O:{A:{\"9B\":0.993346},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"9B\",\"\",\"\",\"\"],E:\"UC Browser for Android\",F:{\"9B\":1710115200},D:{\"9B\":\"webkit\"}},P:{A:{\"0\":2.06723,J:0.0969013,v:0.0215336,w:0.053834,x:0.0646008,y:0.0861344,z:0.107668,PD:0.0107668,QD:0.0107668,RD:0.0430672,SD:0,TD:0,LC:0,UD:0.0107668,VD:0,WD:0.0107668,XD:0,YD:0,AC:0,BC:0.0215336,CC:0.0107668,ZD:0.0215336},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"J\",\"PD\",\"QD\",\"RD\",\"SD\",\"TD\",\"LC\",\"UD\",\"VD\",\"WD\",\"XD\",\"YD\",\"AC\",\"BC\",\"CC\",\"ZD\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"\",\"\",\"\"],E:\"Samsung Internet\",F:{\"0\":1715126400,J:1461024000,PD:1481846400,QD:1509408000,RD:1528329600,SD:1546128000,TD:1554163200,LC:1567900800,UD:1582588800,VD:1593475200,WD:1605657600,XD:1618531200,YD:1629072000,AC:1640736000,BC:1651708800,CC:1659657600,ZD:1667260800,v:1677369600,w:1684454400,x:1689292800,y:1697587200,z:1711497600}},Q:{A:{aD:0.31435},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"aD\",\"\",\"\",\"\"],E:\"QQ Browser\",F:{aD:1710288000}},R:{A:{bD:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"bD\",\"\",\"\",\"\"],E:\"Baidu Browser\",F:{bD:1710201600}},S:{A:{cD:0.081731,dD:0},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"cD\",\"dD\",\"\",\"\",\"\"],E:\"KaiOS Browser\",F:{cD:1527811200,dD:1631664000}}};\n","module.exports={\"0\":\"25\",\"1\":\"112\",\"2\":\"113\",\"3\":\"114\",\"4\":\"115\",\"5\":\"116\",\"6\":\"117\",\"7\":\"118\",\"8\":\"119\",\"9\":\"120\",A:\"10\",B:\"11\",C:\"12\",D:\"127\",E:\"7\",F:\"8\",G:\"9\",H:\"15\",I:\"80\",J:\"4\",K:\"6\",L:\"13\",M:\"14\",N:\"16\",O:\"17\",P:\"18\",Q:\"79\",R:\"81\",S:\"83\",T:\"84\",U:\"85\",V:\"86\",W:\"87\",X:\"88\",Y:\"89\",Z:\"90\",a:\"91\",b:\"92\",c:\"93\",d:\"94\",e:\"95\",f:\"96\",g:\"97\",h:\"98\",i:\"99\",j:\"100\",k:\"101\",l:\"102\",m:\"103\",n:\"104\",o:\"105\",p:\"106\",q:\"107\",r:\"108\",s:\"109\",t:\"110\",u:\"111\",v:\"20\",w:\"21\",x:\"22\",y:\"23\",z:\"24\",AB:\"121\",BB:\"122\",CB:\"123\",DB:\"124\",EB:\"125\",FB:\"126\",GB:\"5\",HB:\"19\",IB:\"26\",JB:\"27\",KB:\"28\",LB:\"29\",MB:\"30\",NB:\"31\",OB:\"32\",PB:\"33\",QB:\"34\",RB:\"35\",SB:\"36\",TB:\"37\",UB:\"38\",VB:\"39\",WB:\"40\",XB:\"41\",YB:\"42\",ZB:\"43\",aB:\"44\",bB:\"45\",cB:\"46\",dB:\"47\",eB:\"48\",fB:\"49\",gB:\"50\",hB:\"51\",iB:\"52\",jB:\"53\",kB:\"54\",lB:\"55\",mB:\"56\",nB:\"57\",oB:\"58\",pB:\"60\",qB:\"62\",rB:\"63\",sB:\"64\",tB:\"65\",uB:\"66\",vB:\"67\",wB:\"68\",xB:\"69\",yB:\"70\",zB:\"71\",\"0B\":\"72\",\"1B\":\"73\",\"2B\":\"74\",\"3B\":\"75\",\"4B\":\"76\",\"5B\":\"77\",\"6B\":\"78\",\"7B\":\"11.1\",\"8B\":\"12.1\",\"9B\":\"15.5\",AC:\"16.0\",BC:\"17.0\",CC:\"18.0\",DC:\"3\",EC:\"59\",FC:\"61\",GC:\"82\",HC:\"128\",IC:\"129\",JC:\"130\",KC:\"3.2\",LC:\"10.1\",MC:\"15.2-15.3\",NC:\"15.4\",OC:\"16.1\",PC:\"16.2\",QC:\"16.3\",RC:\"16.4\",SC:\"16.5\",TC:\"17.1\",UC:\"17.2\",VC:\"17.3\",WC:\"17.4\",XC:\"17.5\",YC:\"17.6\",ZC:\"11.5\",aC:\"4.2-4.3\",bC:\"5.5\",cC:\"2\",dC:\"131\",eC:\"3.5\",fC:\"3.6\",gC:\"3.1\",hC:\"5.1\",iC:\"6.1\",jC:\"7.1\",kC:\"9.1\",lC:\"13.1\",mC:\"14.1\",nC:\"15.1\",oC:\"15.6\",pC:\"16.6\",qC:\"TP\",rC:\"9.5-9.6\",sC:\"10.0-10.1\",tC:\"10.5\",uC:\"10.6\",vC:\"11.6\",wC:\"4.0-4.1\",xC:\"5.0-5.1\",yC:\"6.0-6.1\",zC:\"7.0-7.1\",\"0C\":\"8.1-8.4\",\"1C\":\"9.0-9.2\",\"2C\":\"9.3\",\"3C\":\"10.0-10.2\",\"4C\":\"10.3\",\"5C\":\"11.0-11.2\",\"6C\":\"11.3-11.4\",\"7C\":\"12.0-12.1\",\"8C\":\"12.2-12.5\",\"9C\":\"13.0-13.1\",AD:\"13.2\",BD:\"13.3\",CD:\"13.4-13.7\",DD:\"14.0-14.4\",ED:\"14.5-14.8\",FD:\"15.0-15.1\",GD:\"15.6-15.8\",HD:\"16.6-16.7\",ID:\"all\",JD:\"2.1\",KD:\"2.2\",LD:\"2.3\",MD:\"4.1\",ND:\"4.4\",OD:\"4.4.3-4.4.4\",PD:\"5.0-5.4\",QD:\"6.2-6.4\",RD:\"7.2-7.4\",SD:\"8.2\",TD:\"9.2\",UD:\"11.1-11.2\",VD:\"12.0\",WD:\"13.0\",XD:\"14.0\",YD:\"15.0\",ZD:\"19.0\",aD:\"14.9\",bD:\"13.52\",cD:\"2.5\",dD:\"3.0-3.1\"};\n","module.exports={A:\"ie\",B:\"edge\",C:\"firefox\",D:\"chrome\",E:\"safari\",F:\"opera\",G:\"ios_saf\",H:\"op_mini\",I:\"android\",J:\"bb\",K:\"op_mob\",L:\"and_chr\",M:\"and_ff\",N:\"ie_mob\",O:\"and_uc\",P:\"samsung\",Q:\"and_qq\",R:\"baidu\",S:\"kaios\"};\n","'use strict'\n\nconst browsers = require('./browsers').browsers\nconst versions = require('./browserVersions').browserVersions\nconst agentsData = require('../../data/agents')\n\nfunction unpackBrowserVersions(versionsData) {\n  return Object.keys(versionsData).reduce((usage, version) => {\n    usage[versions[version]] = versionsData[version]\n    return usage\n  }, {})\n}\n\nmodule.exports.agents = Object.keys(agentsData).reduce((map, key) => {\n  let versionsData = agentsData[key]\n  map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => {\n    if (entry === 'A') {\n      data.usage_global = unpackBrowserVersions(versionsData[entry])\n    } else if (entry === 'C') {\n      data.versions = versionsData[entry].reduce((list, version) => {\n        if (version === '') {\n          list.push(null)\n        } else {\n          list.push(versions[version])\n        }\n        return list\n      }, [])\n    } else if (entry === 'D') {\n      data.prefix_exceptions = unpackBrowserVersions(versionsData[entry])\n    } else if (entry === 'E') {\n      data.browser = versionsData[entry]\n    } else if (entry === 'F') {\n      data.release_date = Object.keys(versionsData[entry]).reduce(\n        (map2, key2) => {\n          map2[versions[key2]] = versionsData[entry][key2]\n          return map2\n        },\n        {}\n      )\n    } else {\n      // entry is B\n      data.prefix = versionsData[entry]\n    }\n    return data\n  }, {})\n  return map\n}, {})\n","module.exports.browserVersions = require('../../data/browserVersions')\n","module.exports.browsers = require('../../data/browsers')\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.content-unsupported-browser[data-v-28ba6974]{display:flex;justify-content:center;width:400px;max-width:calc(90vw - 60px);margin:auto;padding:30px}.content-unsupported-browser .empty-content[data-v-28ba6974]{margin:0}.content-unsupported-browser .empty-content[data-v-28ba6974] .empty-content__icon{opacity:1}.content-unsupported-browser__continue[data-v-28ba6974]{display:block;margin:30px auto}.content-unsupported-browser__list[data-v-28ba6974]{margin-top:60px;margin-bottom:30px}.content-unsupported-browser__list li[data-v-28ba6974]{text-align:start}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/UnsupportedBrowser.vue\"],\"names\":[],\"mappings\":\"AAGA,8CACC,YAAA,CACA,sBAAA,CACA,WAAA,CACA,2BAAA,CACA,WAAA,CACA,YARS,CAUT,6DACC,QAAA,CAEA,kFACC,SAAA,CAIF,wDACC,aAAA,CACA,gBAAA,CAGD,oDACC,eAAA,CACA,kBAzBQ,CA0BR,uDACC,gBAAA\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = {\n\t\"0.20\": \"39\",\n\t\"0.21\": \"41\",\n\t\"0.22\": \"41\",\n\t\"0.23\": \"41\",\n\t\"0.24\": \"41\",\n\t\"0.25\": \"42\",\n\t\"0.26\": \"42\",\n\t\"0.27\": \"43\",\n\t\"0.28\": \"43\",\n\t\"0.29\": \"43\",\n\t\"0.30\": \"44\",\n\t\"0.31\": \"45\",\n\t\"0.32\": \"45\",\n\t\"0.33\": \"45\",\n\t\"0.34\": \"45\",\n\t\"0.35\": \"45\",\n\t\"0.36\": \"47\",\n\t\"0.37\": \"49\",\n\t\"1.0\": \"49\",\n\t\"1.1\": \"50\",\n\t\"1.2\": \"51\",\n\t\"1.3\": \"52\",\n\t\"1.4\": \"53\",\n\t\"1.5\": \"54\",\n\t\"1.6\": \"56\",\n\t\"1.7\": \"58\",\n\t\"1.8\": \"59\",\n\t\"2.0\": \"61\",\n\t\"2.1\": \"61\",\n\t\"3.0\": \"66\",\n\t\"3.1\": \"66\",\n\t\"4.0\": \"69\",\n\t\"4.1\": \"69\",\n\t\"4.2\": \"69\",\n\t\"5.0\": \"73\",\n\t\"6.0\": \"76\",\n\t\"6.1\": \"76\",\n\t\"7.0\": \"78\",\n\t\"7.1\": \"78\",\n\t\"7.2\": \"78\",\n\t\"7.3\": \"78\",\n\t\"8.0\": \"80\",\n\t\"8.1\": \"80\",\n\t\"8.2\": \"80\",\n\t\"8.3\": \"80\",\n\t\"8.4\": \"80\",\n\t\"8.5\": \"80\",\n\t\"9.0\": \"83\",\n\t\"9.1\": \"83\",\n\t\"9.2\": \"83\",\n\t\"9.3\": \"83\",\n\t\"9.4\": \"83\",\n\t\"10.0\": \"85\",\n\t\"10.1\": \"85\",\n\t\"10.2\": \"85\",\n\t\"10.3\": \"85\",\n\t\"10.4\": \"85\",\n\t\"11.0\": \"87\",\n\t\"11.1\": \"87\",\n\t\"11.2\": \"87\",\n\t\"11.3\": \"87\",\n\t\"11.4\": \"87\",\n\t\"11.5\": \"87\",\n\t\"12.0\": \"89\",\n\t\"12.1\": \"89\",\n\t\"12.2\": \"89\",\n\t\"13.0\": \"91\",\n\t\"13.1\": \"91\",\n\t\"13.2\": \"91\",\n\t\"13.3\": \"91\",\n\t\"13.4\": \"91\",\n\t\"13.5\": \"91\",\n\t\"13.6\": \"91\",\n\t\"14.0\": \"93\",\n\t\"14.1\": \"93\",\n\t\"14.2\": \"93\",\n\t\"15.0\": \"94\",\n\t\"15.1\": \"94\",\n\t\"15.2\": \"94\",\n\t\"15.3\": \"94\",\n\t\"15.4\": \"94\",\n\t\"15.5\": \"94\",\n\t\"16.0\": \"96\",\n\t\"16.1\": \"96\",\n\t\"16.2\": \"96\",\n\t\"17.0\": \"98\",\n\t\"17.1\": \"98\",\n\t\"17.2\": \"98\",\n\t\"17.3\": \"98\",\n\t\"17.4\": \"98\",\n\t\"18.0\": \"100\",\n\t\"18.1\": \"100\",\n\t\"18.2\": \"100\",\n\t\"18.3\": \"100\",\n\t\"19.0\": \"102\",\n\t\"19.1\": \"102\",\n\t\"20.0\": \"104\",\n\t\"20.1\": \"104\",\n\t\"20.2\": \"104\",\n\t\"20.3\": \"104\",\n\t\"21.0\": \"106\",\n\t\"21.1\": \"106\",\n\t\"21.2\": \"106\",\n\t\"21.3\": \"106\",\n\t\"21.4\": \"106\",\n\t\"22.0\": \"108\",\n\t\"22.1\": \"108\",\n\t\"22.2\": \"108\",\n\t\"22.3\": \"108\",\n\t\"23.0\": \"110\",\n\t\"23.1\": \"110\",\n\t\"23.2\": \"110\",\n\t\"23.3\": \"110\",\n\t\"24.0\": \"112\",\n\t\"24.1\": \"112\",\n\t\"24.2\": \"112\",\n\t\"24.3\": \"112\",\n\t\"24.4\": \"112\",\n\t\"24.5\": \"112\",\n\t\"24.6\": \"112\",\n\t\"24.7\": \"112\",\n\t\"24.8\": \"112\",\n\t\"25.0\": \"114\",\n\t\"25.1\": \"114\",\n\t\"25.2\": \"114\",\n\t\"25.3\": \"114\",\n\t\"25.4\": \"114\",\n\t\"25.5\": \"114\",\n\t\"25.6\": \"114\",\n\t\"25.7\": \"114\",\n\t\"25.8\": \"114\",\n\t\"25.9\": \"114\",\n\t\"26.0\": \"116\",\n\t\"26.1\": \"116\",\n\t\"26.2\": \"116\",\n\t\"26.3\": \"116\",\n\t\"26.4\": \"116\",\n\t\"26.5\": \"116\",\n\t\"26.6\": \"116\",\n\t\"27.0\": \"118\",\n\t\"27.1\": \"118\",\n\t\"27.2\": \"118\",\n\t\"27.3\": \"118\",\n\t\"28.0\": \"120\",\n\t\"28.1\": \"120\",\n\t\"28.2\": \"120\",\n\t\"28.3\": \"120\",\n\t\"29.0\": \"122\",\n\t\"29.1\": \"122\",\n\t\"29.2\": \"122\",\n\t\"29.3\": \"122\",\n\t\"29.4\": \"122\",\n\t\"30.0\": \"124\",\n\t\"30.1\": \"124\",\n\t\"30.2\": \"124\",\n\t\"30.3\": \"124\",\n\t\"31.0\": \"126\",\n\t\"31.1\": \"126\",\n\t\"31.2\": \"126\",\n\t\"31.3\": \"126\",\n\t\"32.0\": \"128\"\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar compatTransforms = require('./transforms');\nvar _transform = require('../transform');\n\nmodule.exports = {\n  /**\n   * Translates a regexp in new syntax to equivalent regexp in old syntax.\n   *\n   * @param string|RegExp|AST - regexp\n   * @param Array transformsWhitelist - names of the transforms to apply\n   */\n  transform: function transform(regexp) {\n    var transformsWhitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n    var transformToApply = transformsWhitelist.length > 0 ? transformsWhitelist : Object.keys(compatTransforms);\n\n    var result = void 0;\n\n    // Collect extra data per transform.\n    var extra = {};\n\n    transformToApply.forEach(function (transformName) {\n\n      if (!compatTransforms.hasOwnProperty(transformName)) {\n        throw new Error('Unknown compat-transform: ' + transformName + '. ' + 'Available transforms are: ' + Object.keys(compatTransforms).join(', '));\n      }\n\n      var handler = compatTransforms[transformName];\n\n      result = _transform.transform(regexp, handler);\n      regexp = result.getAST();\n\n      // Collect `extra` transform result.\n      if (typeof handler.getExtra === 'function') {\n        extra[transformName] = handler.getExtra();\n      }\n    });\n\n    // Set the final extras for all transforms.\n    result.setExtra(extra);\n\n    return result;\n  }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * The `RegExpTree` class provides runtime support for `compat-transpiler`\n * module from `regexp-tree`.\n *\n * E.g. it tracks names of the capturing groups, in order to access the\n * names on the matched result.\n *\n * It's a thin-wrapper on top of original regexp.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar RegExpTree = function () {\n  /**\n   * Initializes a `RegExpTree` instance.\n   *\n   * @param RegExp - a regular expression\n   *\n   * @param Object state:\n   *\n   *   An extra state which may store any related to transformation\n   *   data, for example, names of the groups.\n   *\n   *   - flags - original flags\n   *   - groups - names of the groups, and their indices\n   *   - source - original source\n   */\n  function RegExpTree(re, _ref) {\n    var flags = _ref.flags,\n        groups = _ref.groups,\n        source = _ref.source;\n\n    _classCallCheck(this, RegExpTree);\n\n    this._re = re;\n    this._groups = groups;\n\n    // Original props.\n    this.flags = flags;\n    this.source = source || re.source;\n    this.dotAll = flags.includes('s');\n\n    // Inherited directly from `re`.\n    this.global = re.global;\n    this.ignoreCase = re.ignoreCase;\n    this.multiline = re.multiline;\n    this.sticky = re.sticky;\n    this.unicode = re.unicode;\n  }\n\n  /**\n   * Facade wrapper for RegExp `test` method.\n   */\n\n\n  _createClass(RegExpTree, [{\n    key: 'test',\n    value: function test(string) {\n      return this._re.test(string);\n    }\n\n    /**\n     * Facade wrapper for RegExp `compile` method.\n     */\n\n  }, {\n    key: 'compile',\n    value: function compile(string) {\n      return this._re.compile(string);\n    }\n\n    /**\n     * Facade wrapper for RegExp `toString` method.\n     */\n\n  }, {\n    key: 'toString',\n    value: function toString() {\n      if (!this._toStringResult) {\n        this._toStringResult = '/' + this.source + '/' + this.flags;\n      }\n      return this._toStringResult;\n    }\n\n    /**\n     * Facade wrapper for RegExp `exec` method.\n     */\n\n  }, {\n    key: 'exec',\n    value: function exec(string) {\n      var result = this._re.exec(string);\n\n      if (!this._groups || !result) {\n        return result;\n      }\n\n      result.groups = {};\n\n      for (var group in this._groups) {\n        var groupNumber = this._groups[group];\n        result.groups[group] = result[groupNumber];\n      }\n\n      return result;\n    }\n  }]);\n\n  return RegExpTree;\n}();\n\nmodule.exports = {\n  RegExpTree: RegExpTree\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/./s` to `/[\\0-\\uFFFF]/`.\n */\n\nmodule.exports = {\n\n  // Whether `u` flag present. In which case we transform to\n  // \\u{10FFFF} instead of \\uFFFF.\n  _hasUFlag: false,\n\n  // Only run this plugin if we have `s` flag.\n  shouldRun: function shouldRun(ast) {\n    var shouldRun = ast.flags.includes('s');\n\n    if (!shouldRun) {\n      return false;\n    }\n\n    // Strip the `s` flag.\n    ast.flags = ast.flags.replace('s', '');\n\n    // Whether we have also `u`.\n    this._hasUFlag = ast.flags.includes('u');\n\n    return true;\n  },\n  Char: function Char(path) {\n    var node = path.node;\n\n\n    if (node.kind !== 'meta' || node.value !== '.') {\n      return;\n    }\n\n    var toValue = '\\\\uFFFF';\n    var toSymbol = '\\uFFFF';\n\n    if (this._hasUFlag) {\n      toValue = '\\\\u{10FFFF}';\n      toSymbol = '\\uDBFF\\uDFFF';\n    }\n\n    path.replace({\n      type: 'CharacterClass',\n      expressions: [{\n        type: 'ClassRange',\n        from: {\n          type: 'Char',\n          value: '\\\\0',\n          kind: 'decimal',\n          symbol: '\\0'\n        },\n        to: {\n          type: 'Char',\n          value: toValue,\n          kind: 'unicode',\n          symbol: toSymbol\n        }\n      }]\n    });\n  }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/(?<name>a)\\k<name>/` to `/(a)\\1/`.\n */\n\nmodule.exports = {\n  // To track the names of the groups, and return them\n  // in the transform result state.\n  //\n  // A map from name to number: {foo: 2, bar: 4}\n  _groupNames: {},\n\n  /**\n   * Initialises the trasnform.\n   */\n  init: function init() {\n    this._groupNames = {};\n  },\n\n\n  /**\n   * Returns extra state, which eventually is returned to\n   */\n  getExtra: function getExtra() {\n    return this._groupNames;\n  },\n  Group: function Group(path) {\n    var node = path.node;\n\n\n    if (!node.name) {\n      return;\n    }\n\n    // Record group name.\n    this._groupNames[node.name] = node.number;\n\n    delete node.name;\n    delete node.nameRaw;\n  },\n  Backreference: function Backreference(path) {\n    var node = path.node;\n\n\n    if (node.kind !== 'name') {\n      return;\n    }\n\n    node.kind = 'number';\n    node.reference = node.number;\n    delete node.referenceRaw;\n  }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove `x` flag `/foo/x` to `/foo/`.\n *\n * Note: other features of `x` flags (whitespace, comments) are\n * already removed at parsing stage.\n */\n\nmodule.exports = {\n  RegExp: function RegExp(_ref) {\n    var node = _ref.node;\n\n    if (node.flags.includes('x')) {\n      node.flags = node.flags.replace('x', '');\n    }\n  }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = {\n  // \"dotAll\" `s` flag\n  dotAll: require('./compat-dotall-s-transform'),\n\n  // Named capturing groups.\n  namedCapturingGroups: require('./compat-named-capturing-groups-transform'),\n\n  // `x` flag\n  xFlag: require('./compat-x-flag-transform')\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\nfunction gen(node) {\n  return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n  RegExp: function RegExp(node) {\n    return '/' + gen(node.body) + '/' + node.flags;\n  },\n  Alternative: function Alternative(node) {\n    return (node.expressions || []).map(gen).join('');\n  },\n  Disjunction: function Disjunction(node) {\n    return gen(node.left) + '|' + gen(node.right);\n  },\n  Group: function Group(node) {\n    var expression = gen(node.expression);\n\n    if (node.capturing) {\n      // A named group.\n      if (node.name) {\n        return '(?<' + (node.nameRaw || node.name) + '>' + expression + ')';\n      }\n\n      return '(' + expression + ')';\n    }\n\n    return '(?:' + expression + ')';\n  },\n  Backreference: function Backreference(node) {\n    switch (node.kind) {\n      case 'number':\n        return '\\\\' + node.reference;\n      case 'name':\n        return '\\\\k<' + (node.referenceRaw || node.reference) + '>';\n      default:\n        throw new TypeError('Unknown Backreference kind: ' + node.kind);\n    }\n  },\n  Assertion: function Assertion(node) {\n    switch (node.kind) {\n      case '^':\n      case '$':\n      case '\\\\b':\n      case '\\\\B':\n        return node.kind;\n\n      case 'Lookahead':\n        {\n          var assertion = gen(node.assertion);\n\n          if (node.negative) {\n            return '(?!' + assertion + ')';\n          }\n\n          return '(?=' + assertion + ')';\n        }\n\n      case 'Lookbehind':\n        {\n          var _assertion = gen(node.assertion);\n\n          if (node.negative) {\n            return '(?<!' + _assertion + ')';\n          }\n\n          return '(?<=' + _assertion + ')';\n        }\n\n      default:\n        throw new TypeError('Unknown Assertion kind: ' + node.kind);\n    }\n  },\n  CharacterClass: function CharacterClass(node) {\n    var expressions = node.expressions.map(gen).join('');\n\n    if (node.negative) {\n      return '[^' + expressions + ']';\n    }\n\n    return '[' + expressions + ']';\n  },\n  ClassRange: function ClassRange(node) {\n    return gen(node.from) + '-' + gen(node.to);\n  },\n  Repetition: function Repetition(node) {\n    return '' + gen(node.expression) + gen(node.quantifier);\n  },\n  Quantifier: function Quantifier(node) {\n    var quantifier = void 0;\n    var greedy = node.greedy ? '' : '?';\n\n    switch (node.kind) {\n      case '+':\n      case '?':\n      case '*':\n        quantifier = node.kind;\n        break;\n      case 'Range':\n        // Exact: {1}\n        if (node.from === node.to) {\n          quantifier = '{' + node.from + '}';\n        }\n        // Open: {1,}\n        else if (!node.to) {\n            quantifier = '{' + node.from + ',}';\n          }\n          // Closed: {1,3}\n          else {\n              quantifier = '{' + node.from + ',' + node.to + '}';\n            }\n        break;\n      default:\n        throw new TypeError('Unknown Quantifier kind: ' + node.kind);\n    }\n\n    return '' + quantifier + greedy;\n  },\n  Char: function Char(node) {\n    var value = node.value;\n\n    switch (node.kind) {\n      case 'simple':\n        {\n          if (node.escaped) {\n            return '\\\\' + value;\n          }\n          return value;\n        }\n\n      case 'hex':\n      case 'unicode':\n      case 'oct':\n      case 'decimal':\n      case 'control':\n      case 'meta':\n        return value;\n\n      default:\n        throw new TypeError('Unknown Char kind: ' + node.kind);\n    }\n  },\n  UnicodeProperty: function UnicodeProperty(node) {\n    var escapeChar = node.negative ? 'P' : 'p';\n    var namePart = void 0;\n\n    if (!node.shorthand && !node.binary) {\n      namePart = node.name + '=';\n    } else {\n      namePart = '';\n    }\n\n    return '\\\\' + escapeChar + '{' + namePart + node.value + '}';\n  }\n};\n\nmodule.exports = {\n  /**\n   * Generates a regexp string from an AST.\n   *\n   * @param Object ast - an AST node\n   */\n  generate: gen\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n// DFA minization.\n\n/**\n * Map from state to current set it goes.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar currentTransitionMap = null;\n\n/**\n * Takes a DFA, and returns a minimized version of it\n * compressing some states to groups (using standard, 0-, 1-,\n * 2-, ... N-equivalence algorithm).\n */\nfunction minimize(dfa) {\n  var table = dfa.getTransitionTable();\n  var allStates = Object.keys(table);\n  var alphabet = dfa.getAlphabet();\n  var accepting = dfa.getAcceptingStateNumbers();\n\n  currentTransitionMap = {};\n\n  var nonAccepting = new Set();\n\n  allStates.forEach(function (state) {\n    state = Number(state);\n    var isAccepting = accepting.has(state);\n\n    if (isAccepting) {\n      currentTransitionMap[state] = accepting;\n    } else {\n      nonAccepting.add(state);\n      currentTransitionMap[state] = nonAccepting;\n    }\n  });\n\n  // ---------------------------------------------------------------------------\n  // Step 1: build equivalent sets.\n\n  // All [1..N] equivalent sets.\n  var all = [\n  // 0-equivalent sets.\n  [nonAccepting, accepting].filter(function (set) {\n    return set.size > 0;\n  })];\n\n  var current = void 0;\n  var previous = void 0;\n\n  // Top of the stack is the current list of sets to analyze.\n  current = all[all.length - 1];\n\n  // Previous set (to check whether we need to stop).\n  previous = all[all.length - 2];\n\n  // Until we'll not have the same N and N-1 equivalent rows.\n\n  var _loop = function _loop() {\n    var newTransitionMap = {};\n\n    var _iteratorNormalCompletion3 = true;\n    var _didIteratorError3 = false;\n    var _iteratorError3 = undefined;\n\n    try {\n      for (var _iterator3 = current[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n        var _set = _step3.value;\n\n        // Handled states for this set.\n        var handledStates = {};\n\n        var _set2 = _toArray(_set),\n            first = _set2[0],\n            rest = _set2.slice(1);\n\n        handledStates[first] = new Set([first]);\n\n        // Have to compare each from the rest states with\n        // the already handled states, and see if they are equivalent.\n        var _iteratorNormalCompletion4 = true;\n        var _didIteratorError4 = false;\n        var _iteratorError4 = undefined;\n\n        try {\n          restSets: for (var _iterator4 = rest[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n            var state = _step4.value;\n            var _iteratorNormalCompletion5 = true;\n            var _didIteratorError5 = false;\n            var _iteratorError5 = undefined;\n\n            try {\n              for (var _iterator5 = Object.keys(handledStates)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n                var handledState = _step5.value;\n\n                // This and some previously handled state are equivalent --\n                // just append this state to the same set.\n                if (areEquivalent(state, handledState, table, alphabet)) {\n                  handledStates[handledState].add(state);\n                  handledStates[state] = handledStates[handledState];\n                  continue restSets;\n                }\n              }\n              // Else, this state is not equivalent to any of the\n              // handled states -- allocate a new set for it.\n            } catch (err) {\n              _didIteratorError5 = true;\n              _iteratorError5 = err;\n            } finally {\n              try {\n                if (!_iteratorNormalCompletion5 && _iterator5.return) {\n                  _iterator5.return();\n                }\n              } finally {\n                if (_didIteratorError5) {\n                  throw _iteratorError5;\n                }\n              }\n            }\n\n            handledStates[state] = new Set([state]);\n          }\n        } catch (err) {\n          _didIteratorError4 = true;\n          _iteratorError4 = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion4 && _iterator4.return) {\n              _iterator4.return();\n            }\n          } finally {\n            if (_didIteratorError4) {\n              throw _iteratorError4;\n            }\n          }\n        }\n\n        // Add these handled states to all states map.\n\n\n        Object.assign(newTransitionMap, handledStates);\n      }\n\n      // Update current transition map for the handled row.\n    } catch (err) {\n      _didIteratorError3 = true;\n      _iteratorError3 = err;\n    } finally {\n      try {\n        if (!_iteratorNormalCompletion3 && _iterator3.return) {\n          _iterator3.return();\n        }\n      } finally {\n        if (_didIteratorError3) {\n          throw _iteratorError3;\n        }\n      }\n    }\n\n    currentTransitionMap = newTransitionMap;\n\n    var newSets = new Set(Object.keys(newTransitionMap).map(function (state) {\n      return newTransitionMap[state];\n    }));\n\n    all.push([].concat(_toConsumableArray(newSets)));\n\n    // Top of the stack is the current.\n    current = all[all.length - 1];\n\n    // Previous set.\n    previous = all[all.length - 2];\n  };\n\n  while (!sameRow(current, previous)) {\n    _loop();\n  }\n\n  // ---------------------------------------------------------------------------\n  // Step 2: build minimized table from the equivalent sets.\n\n  // Remap state numbers from sets to index-based.\n  var remaped = new Map();\n  var idx = 1;\n  current.forEach(function (set) {\n    return remaped.set(set, idx++);\n  });\n\n  // Build the minimized table from the calculated equivalent sets.\n  var minimizedTable = {};\n\n  var minimizedAcceptingStates = new Set();\n\n  var updateAcceptingStates = function updateAcceptingStates(set, idx) {\n    var _iteratorNormalCompletion = true;\n    var _didIteratorError = false;\n    var _iteratorError = undefined;\n\n    try {\n      for (var _iterator = set[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n        var state = _step.value;\n\n        if (accepting.has(state)) {\n          minimizedAcceptingStates.add(idx);\n        }\n      }\n    } catch (err) {\n      _didIteratorError = true;\n      _iteratorError = err;\n    } finally {\n      try {\n        if (!_iteratorNormalCompletion && _iterator.return) {\n          _iterator.return();\n        }\n      } finally {\n        if (_didIteratorError) {\n          throw _iteratorError;\n        }\n      }\n    }\n  };\n\n  var _iteratorNormalCompletion2 = true;\n  var _didIteratorError2 = false;\n  var _iteratorError2 = undefined;\n\n  try {\n    for (var _iterator2 = remaped.entries()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n      var _ref = _step2.value;\n\n      var _ref2 = _slicedToArray(_ref, 2);\n\n      var set = _ref2[0];\n      var _idx = _ref2[1];\n\n      minimizedTable[_idx] = {};\n      var _iteratorNormalCompletion6 = true;\n      var _didIteratorError6 = false;\n      var _iteratorError6 = undefined;\n\n      try {\n        for (var _iterator6 = alphabet[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n          var symbol = _step6.value;\n\n          updateAcceptingStates(set, _idx);\n\n          // Determine original transition for this symbol from the set.\n          var originalTransition = void 0;\n          var _iteratorNormalCompletion7 = true;\n          var _didIteratorError7 = false;\n          var _iteratorError7 = undefined;\n\n          try {\n            for (var _iterator7 = set[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n              var originalState = _step7.value;\n\n              originalTransition = table[originalState][symbol];\n              if (originalTransition) {\n                break;\n              }\n            }\n          } catch (err) {\n            _didIteratorError7 = true;\n            _iteratorError7 = err;\n          } finally {\n            try {\n              if (!_iteratorNormalCompletion7 && _iterator7.return) {\n                _iterator7.return();\n              }\n            } finally {\n              if (_didIteratorError7) {\n                throw _iteratorError7;\n              }\n            }\n          }\n\n          if (originalTransition) {\n            minimizedTable[_idx][symbol] = remaped.get(currentTransitionMap[originalTransition]);\n          }\n        }\n      } catch (err) {\n        _didIteratorError6 = true;\n        _iteratorError6 = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion6 && _iterator6.return) {\n            _iterator6.return();\n          }\n        } finally {\n          if (_didIteratorError6) {\n            throw _iteratorError6;\n          }\n        }\n      }\n    }\n\n    // Update the table, and accepting states on the original DFA.\n  } catch (err) {\n    _didIteratorError2 = true;\n    _iteratorError2 = err;\n  } finally {\n    try {\n      if (!_iteratorNormalCompletion2 && _iterator2.return) {\n        _iterator2.return();\n      }\n    } finally {\n      if (_didIteratorError2) {\n        throw _iteratorError2;\n      }\n    }\n  }\n\n  dfa.setTransitionTable(minimizedTable);\n  dfa.setAcceptingStateNumbers(minimizedAcceptingStates);\n\n  return dfa;\n}\n\nfunction sameRow(r1, r2) {\n  if (!r2) {\n    return false;\n  }\n\n  if (r1.length !== r2.length) {\n    return false;\n  }\n\n  for (var i = 0; i < r1.length; i++) {\n    var s1 = r1[i];\n    var s2 = r2[i];\n\n    if (s1.size !== s2.size) {\n      return false;\n    }\n\n    if ([].concat(_toConsumableArray(s1)).sort().join(',') !== [].concat(_toConsumableArray(s2)).sort().join(',')) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\n/**\n * Checks whether two states are N-equivalent, i.e. whether they go\n * to the same set on a symbol.\n */\nfunction areEquivalent(s1, s2, table, alphabet) {\n  var _iteratorNormalCompletion8 = true;\n  var _didIteratorError8 = false;\n  var _iteratorError8 = undefined;\n\n  try {\n    for (var _iterator8 = alphabet[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {\n      var symbol = _step8.value;\n\n      if (!goToSameSet(s1, s2, table, symbol)) {\n        return false;\n      }\n    }\n  } catch (err) {\n    _didIteratorError8 = true;\n    _iteratorError8 = err;\n  } finally {\n    try {\n      if (!_iteratorNormalCompletion8 && _iterator8.return) {\n        _iterator8.return();\n      }\n    } finally {\n      if (_didIteratorError8) {\n        throw _iteratorError8;\n      }\n    }\n  }\n\n  return true;\n}\n\n/**\n * Checks whether states go to the same set.\n */\nfunction goToSameSet(s1, s2, table, symbol) {\n  if (!currentTransitionMap[s1] || !currentTransitionMap[s2]) {\n    return false;\n  }\n\n  var originalTransitionS1 = table[s1][symbol];\n  var originalTransitionS2 = table[s2][symbol];\n\n  // If no actual transition on this symbol, treat it as positive.\n  if (!originalTransitionS1 && !originalTransitionS2) {\n    return true;\n  }\n\n  // Otherwise, check if they are in the same sets.\n  return currentTransitionMap[s1].has(originalTransitionS1) && currentTransitionMap[s2].has(originalTransitionS2);\n}\n\nmodule.exports = {\n  minimize: minimize\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DFAMinimizer = require('./dfa-minimizer');\n\nvar _require = require('../special-symbols'),\n    EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * DFA is build by converting from NFA (subset construction).\n */\n\n\nvar DFA = function () {\n  function DFA(nfa) {\n    _classCallCheck(this, DFA);\n\n    this._nfa = nfa;\n  }\n\n  /**\n   * Minimizes DFA.\n   */\n\n\n  _createClass(DFA, [{\n    key: 'minimize',\n    value: function minimize() {\n      this.getTransitionTable();\n\n      this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n      this._originalTransitionTable = this._transitionTable;\n\n      DFAMinimizer.minimize(this);\n    }\n\n    /**\n     * Returns alphabet for this DFA.\n     */\n\n  }, {\n    key: 'getAlphabet',\n    value: function getAlphabet() {\n      return this._nfa.getAlphabet();\n    }\n\n    /**\n     * Returns accepting states.\n     */\n\n  }, {\n    key: 'getAcceptingStateNumbers',\n    value: function getAcceptingStateNumbers() {\n      if (!this._acceptingStateNumbers) {\n        // Accepting states are determined during table construction.\n        this.getTransitionTable();\n      }\n\n      return this._acceptingStateNumbers;\n    }\n\n    /**\n     * Returns original accepting states.\n     */\n\n  }, {\n    key: 'getOriginaAcceptingStateNumbers',\n    value: function getOriginaAcceptingStateNumbers() {\n      if (!this._originalAcceptingStateNumbers) {\n        // Accepting states are determined during table construction.\n        this.getTransitionTable();\n      }\n\n      return this._originalAcceptingStateNumbers;\n    }\n\n    /**\n     * Sets transition table.\n     */\n\n  }, {\n    key: 'setTransitionTable',\n    value: function setTransitionTable(table) {\n      this._transitionTable = table;\n    }\n\n    /**\n     * Sets accepting states.\n     */\n\n  }, {\n    key: 'setAcceptingStateNumbers',\n    value: function setAcceptingStateNumbers(stateNumbers) {\n      this._acceptingStateNumbers = stateNumbers;\n    }\n\n    /**\n     * DFA transition table is built from NFA table.\n     */\n\n  }, {\n    key: 'getTransitionTable',\n    value: function getTransitionTable() {\n      var _this = this;\n\n      if (this._transitionTable) {\n        return this._transitionTable;\n      }\n\n      // Calculate from NFA transition table.\n      var nfaTable = this._nfa.getTransitionTable();\n      var nfaStates = Object.keys(nfaTable);\n\n      this._acceptingStateNumbers = new Set();\n\n      // Start state of DFA is E(S[nfa])\n      var startState = nfaTable[nfaStates[0]][EPSILON_CLOSURE];\n\n      // Init the worklist (states which should be in the DFA).\n      var worklist = [startState];\n\n      var alphabet = this.getAlphabet();\n      var nfaAcceptingStates = this._nfa.getAcceptingStateNumbers();\n\n      var dfaTable = {};\n\n      // Determine whether the combined DFA state is accepting.\n      var updateAcceptingStates = function updateAcceptingStates(states) {\n        var _iteratorNormalCompletion = true;\n        var _didIteratorError = false;\n        var _iteratorError = undefined;\n\n        try {\n          for (var _iterator = nfaAcceptingStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n            var nfaAcceptingState = _step.value;\n\n            // If any of the states from NFA is accepting, DFA's\n            // state is accepting as well.\n            if (states.indexOf(nfaAcceptingState) !== -1) {\n              _this._acceptingStateNumbers.add(states.join(','));\n              break;\n            }\n          }\n        } catch (err) {\n          _didIteratorError = true;\n          _iteratorError = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion && _iterator.return) {\n              _iterator.return();\n            }\n          } finally {\n            if (_didIteratorError) {\n              throw _iteratorError;\n            }\n          }\n        }\n      };\n\n      while (worklist.length > 0) {\n        var states = worklist.shift();\n        var dfaStateLabel = states.join(',');\n        dfaTable[dfaStateLabel] = {};\n\n        var _iteratorNormalCompletion2 = true;\n        var _didIteratorError2 = false;\n        var _iteratorError2 = undefined;\n\n        try {\n          for (var _iterator2 = alphabet[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n            var symbol = _step2.value;\n\n            var onSymbol = [];\n\n            // Determine whether the combined state is accepting.\n            updateAcceptingStates(states);\n\n            var _iteratorNormalCompletion3 = true;\n            var _didIteratorError3 = false;\n            var _iteratorError3 = undefined;\n\n            try {\n              for (var _iterator3 = states[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n                var state = _step3.value;\n\n                var nfaStatesOnSymbol = nfaTable[state][symbol];\n                if (!nfaStatesOnSymbol) {\n                  continue;\n                }\n\n                var _iteratorNormalCompletion4 = true;\n                var _didIteratorError4 = false;\n                var _iteratorError4 = undefined;\n\n                try {\n                  for (var _iterator4 = nfaStatesOnSymbol[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n                    var nfaStateOnSymbol = _step4.value;\n\n                    if (!nfaTable[nfaStateOnSymbol]) {\n                      continue;\n                    }\n                    onSymbol.push.apply(onSymbol, _toConsumableArray(nfaTable[nfaStateOnSymbol][EPSILON_CLOSURE]));\n                  }\n                } catch (err) {\n                  _didIteratorError4 = true;\n                  _iteratorError4 = err;\n                } finally {\n                  try {\n                    if (!_iteratorNormalCompletion4 && _iterator4.return) {\n                      _iterator4.return();\n                    }\n                  } finally {\n                    if (_didIteratorError4) {\n                      throw _iteratorError4;\n                    }\n                  }\n                }\n              }\n            } catch (err) {\n              _didIteratorError3 = true;\n              _iteratorError3 = err;\n            } finally {\n              try {\n                if (!_iteratorNormalCompletion3 && _iterator3.return) {\n                  _iterator3.return();\n                }\n              } finally {\n                if (_didIteratorError3) {\n                  throw _iteratorError3;\n                }\n              }\n            }\n\n            var dfaStatesOnSymbolSet = new Set(onSymbol);\n            var dfaStatesOnSymbol = [].concat(_toConsumableArray(dfaStatesOnSymbolSet));\n\n            if (dfaStatesOnSymbol.length > 0) {\n              var dfaOnSymbolStr = dfaStatesOnSymbol.join(',');\n\n              dfaTable[dfaStateLabel][symbol] = dfaOnSymbolStr;\n\n              if (!dfaTable.hasOwnProperty(dfaOnSymbolStr)) {\n                worklist.unshift(dfaStatesOnSymbol);\n              }\n            }\n          }\n        } catch (err) {\n          _didIteratorError2 = true;\n          _iteratorError2 = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion2 && _iterator2.return) {\n              _iterator2.return();\n            }\n          } finally {\n            if (_didIteratorError2) {\n              throw _iteratorError2;\n            }\n          }\n        }\n      }\n\n      return this._transitionTable = this._remapStateNumbers(dfaTable);\n    }\n\n    /**\n     * Remaps state numbers in the resulting table:\n     * combined states '1,2,3' -> 1, '3,4' -> 2, etc.\n     */\n\n  }, {\n    key: '_remapStateNumbers',\n    value: function _remapStateNumbers(calculatedDFATable) {\n      var newStatesMap = {};\n\n      this._originalTransitionTable = calculatedDFATable;\n      var transitionTable = {};\n\n      Object.keys(calculatedDFATable).forEach(function (originalNumber, newNumber) {\n        newStatesMap[originalNumber] = newNumber + 1;\n      });\n\n      for (var originalNumber in calculatedDFATable) {\n        var originalRow = calculatedDFATable[originalNumber];\n        var row = {};\n\n        for (var symbol in originalRow) {\n          row[symbol] = newStatesMap[originalRow[symbol]];\n        }\n\n        transitionTable[newStatesMap[originalNumber]] = row;\n      }\n\n      // Remap accepting states.\n      this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n      this._acceptingStateNumbers = new Set();\n\n      var _iteratorNormalCompletion5 = true;\n      var _didIteratorError5 = false;\n      var _iteratorError5 = undefined;\n\n      try {\n        for (var _iterator5 = this._originalAcceptingStateNumbers[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n          var _originalNumber = _step5.value;\n\n          this._acceptingStateNumbers.add(newStatesMap[_originalNumber]);\n        }\n      } catch (err) {\n        _didIteratorError5 = true;\n        _iteratorError5 = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion5 && _iterator5.return) {\n            _iterator5.return();\n          }\n        } finally {\n          if (_didIteratorError5) {\n            throw _iteratorError5;\n          }\n        }\n      }\n\n      return transitionTable;\n    }\n\n    /**\n     * Returns original DFA table, where state numbers\n     * are combined numbers from NFA.\n     */\n\n  }, {\n    key: 'getOriginalTransitionTable',\n    value: function getOriginalTransitionTable() {\n      if (!this._originalTransitionTable) {\n        // Original table is determined during table construction.\n        this.getTransitionTable();\n      }\n      return this._originalTransitionTable;\n    }\n\n    /**\n     * Checks whether this DFA accepts a string.\n     */\n\n  }, {\n    key: 'matches',\n    value: function matches(string) {\n      var state = 1;\n      var i = 0;\n      var table = this.getTransitionTable();\n\n      while (string[i]) {\n        state = table[state][string[i++]];\n        if (!state) {\n          return false;\n        }\n      }\n\n      if (!this.getAcceptingStateNumbers().has(state)) {\n        return false;\n      }\n\n      return true;\n    }\n  }]);\n\n  return DFA;\n}();\n\nmodule.exports = DFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NFA = require('./nfa/nfa');\nvar DFA = require('./dfa/dfa');\n\nvar nfaFromRegExp = require('./nfa/nfa-from-regexp');\nvar builders = require('./nfa/builders');\n\nmodule.exports = {\n\n  /**\n   * Export NFA and DFA classes.\n   */\n  NFA: NFA,\n  DFA: DFA,\n\n  /**\n   * Expose builders.\n   */\n  builders: builders,\n\n  /**\n   * Builds an NFA for the passed regexp.\n   *\n   * @param string | AST | RegExp:\n   *\n   *   a regular expression in different representations: a string,\n   *   a RegExp object, or an AST.\n   */\n  toNFA: function toNFA(regexp) {\n    return nfaFromRegExp.build(regexp);\n  },\n\n\n  /**\n   * Builds DFA for the passed regexp.\n   *\n   * @param string | AST | RegExp:\n   *\n   *   a regular expression in different representations: a string,\n   *   a RegExp object, or an AST.\n   */\n  toDFA: function toDFA(regexp) {\n    return new DFA(this.toNFA(regexp));\n  },\n\n\n  /**\n   * Returns true if regexp accepts the string.\n   */\n  test: function test(regexp, string) {\n    return this.toDFA(regexp).matches(string);\n  }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NFA = require('./nfa');\nvar NFAState = require('./nfa-state');\n\nvar _require = require('../special-symbols'),\n    EPSILON = _require.EPSILON;\n\n// -----------------------------------------------------------------------------\n// Char NFA fragment: `c`\n\n/**\n * Char factory.\n *\n * Creates an NFA fragment for a single char.\n *\n * [in] --c--> [out]\n */\n\n\nfunction char(c) {\n  var inState = new NFAState();\n  var outState = new NFAState({\n    accepting: true\n  });\n\n  return new NFA(inState.addTransition(c, outState), outState);\n}\n\n// -----------------------------------------------------------------------------\n// Epsilon NFA fragment\n\n/**\n * Epsilon factory.\n *\n * Creates an NFA fragment for ε (recognizes an empty string).\n *\n * [in] --ε--> [out]\n */\nfunction e() {\n  return char(EPSILON);\n}\n\n// -----------------------------------------------------------------------------\n// Alteration NFA fragment: `abc`\n\n/**\n * Creates a connection between two NFA fragments on epsilon transition.\n *\n * [in-a] --a--> [out-a] --ε--> [in-b] --b--> [out-b]\n */\nfunction altPair(first, second) {\n  first.out.accepting = false;\n  second.out.accepting = true;\n\n  first.out.addTransition(EPSILON, second.in);\n\n  return new NFA(first.in, second.out);\n}\n\n/**\n * Alteration factory.\n *\n * Creates a alteration NFA for (at least) two NFA-fragments.\n */\nfunction alt(first) {\n  for (var _len = arguments.length, fragments = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    fragments[_key - 1] = arguments[_key];\n  }\n\n  var _iteratorNormalCompletion = true;\n  var _didIteratorError = false;\n  var _iteratorError = undefined;\n\n  try {\n    for (var _iterator = fragments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n      var fragment = _step.value;\n\n      first = altPair(first, fragment);\n    }\n  } catch (err) {\n    _didIteratorError = true;\n    _iteratorError = err;\n  } finally {\n    try {\n      if (!_iteratorNormalCompletion && _iterator.return) {\n        _iterator.return();\n      }\n    } finally {\n      if (_didIteratorError) {\n        throw _iteratorError;\n      }\n    }\n  }\n\n  return first;\n}\n\n// -----------------------------------------------------------------------------\n// Disjunction NFA fragment: `a|b`\n\n/**\n * Creates a disjunction choice between two fragments.\n */\nfunction orPair(first, second) {\n  var inState = new NFAState();\n  var outState = new NFAState();\n\n  inState.addTransition(EPSILON, first.in);\n  inState.addTransition(EPSILON, second.in);\n\n  outState.accepting = true;\n  first.out.accepting = false;\n  second.out.accepting = false;\n\n  first.out.addTransition(EPSILON, outState);\n  second.out.addTransition(EPSILON, outState);\n\n  return new NFA(inState, outState);\n}\n\n/**\n * Disjunction factory.\n *\n * Creates a disjunction NFA for (at least) two NFA-fragments.\n */\nfunction or(first) {\n  for (var _len2 = arguments.length, fragments = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n    fragments[_key2 - 1] = arguments[_key2];\n  }\n\n  var _iteratorNormalCompletion2 = true;\n  var _didIteratorError2 = false;\n  var _iteratorError2 = undefined;\n\n  try {\n    for (var _iterator2 = fragments[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n      var fragment = _step2.value;\n\n      first = orPair(first, fragment);\n    }\n  } catch (err) {\n    _didIteratorError2 = true;\n    _iteratorError2 = err;\n  } finally {\n    try {\n      if (!_iteratorNormalCompletion2 && _iterator2.return) {\n        _iterator2.return();\n      }\n    } finally {\n      if (_didIteratorError2) {\n        throw _iteratorError2;\n      }\n    }\n  }\n\n  return first;\n}\n\n// -----------------------------------------------------------------------------\n// Kleene-closure\n\n/**\n * Kleene star/closure.\n *\n * a*\n */\nfunction repExplicit(fragment) {\n  var inState = new NFAState();\n  var outState = new NFAState({\n    accepting: true\n  });\n\n  // 0 or more.\n  inState.addTransition(EPSILON, fragment.in);\n  inState.addTransition(EPSILON, outState);\n\n  fragment.out.accepting = false;\n  fragment.out.addTransition(EPSILON, outState);\n  outState.addTransition(EPSILON, fragment.in);\n\n  return new NFA(inState, outState);\n}\n\n/**\n * Optimized Kleene-star: just adds ε-transitions from\n * input to the output, and back.\n */\nfunction rep(fragment) {\n  fragment.in.addTransition(EPSILON, fragment.out);\n  fragment.out.addTransition(EPSILON, fragment.in);\n  return fragment;\n}\n\n/**\n * Optimized Plus: just adds ε-transitions from\n * the output to the input.\n */\nfunction plusRep(fragment) {\n  fragment.out.addTransition(EPSILON, fragment.in);\n  return fragment;\n}\n\n/**\n * Optimized ? repetition: just adds ε-transitions from\n * the input to the output.\n */\nfunction questionRep(fragment) {\n  fragment.in.addTransition(EPSILON, fragment.out);\n  return fragment;\n}\n\nmodule.exports = {\n  alt: alt,\n  char: char,\n  e: e,\n  or: or,\n  rep: rep,\n  repExplicit: repExplicit,\n  plusRep: plusRep,\n  questionRep: questionRep\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar parser = require('../../../parser');\n\nvar _require = require('./builders'),\n    alt = _require.alt,\n    char = _require.char,\n    or = _require.or,\n    rep = _require.rep,\n    plusRep = _require.plusRep,\n    questionRep = _require.questionRep;\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\n\nfunction gen(node) {\n  if (node && !generator[node.type]) {\n    throw new Error(node.type + ' is not supported in NFA/DFA interpreter.');\n  }\n\n  return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n  RegExp: function RegExp(node) {\n    if (node.flags !== '') {\n      throw new Error('NFA/DFA: Flags are not supported yet.');\n    }\n\n    return gen(node.body);\n  },\n  Alternative: function Alternative(node) {\n    var fragments = (node.expressions || []).map(gen);\n    return alt.apply(undefined, _toConsumableArray(fragments));\n  },\n  Disjunction: function Disjunction(node) {\n    return or(gen(node.left), gen(node.right));\n  },\n  Repetition: function Repetition(node) {\n    switch (node.quantifier.kind) {\n      case '*':\n        return rep(gen(node.expression));\n      case '+':\n        return plusRep(gen(node.expression));\n      case '?':\n        return questionRep(gen(node.expression));\n      default:\n        throw new Error('Unknown repeatition: ' + node.quantifier.kind + '.');\n    }\n  },\n  Char: function Char(node) {\n    if (node.kind !== 'simple') {\n      throw new Error('NFA/DFA: Only simple chars are supported yet.');\n    }\n\n    return char(node.value);\n  },\n  Group: function Group(node) {\n    return gen(node.expression);\n  }\n};\n\nmodule.exports = {\n  /**\n   * Builds an NFA from the passed regexp.\n   */\n  build: function build(regexp) {\n    var ast = regexp;\n\n    if (regexp instanceof RegExp) {\n      regexp = '' + regexp;\n    }\n\n    if (typeof regexp === 'string') {\n      ast = parser.parse(regexp, {\n        captureLocations: true\n      });\n    }\n\n    return gen(ast);\n  }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar State = require('../state');\n\nvar _require = require('../special-symbols'),\n    EPSILON = _require.EPSILON;\n\n/**\n * NFA state.\n *\n * Allows nondeterministic transitions to several states on the\n * same symbol, and also epsilon-transitions.\n */\n\n\nvar NFAState = function (_State) {\n  _inherits(NFAState, _State);\n\n  function NFAState() {\n    _classCallCheck(this, NFAState);\n\n    return _possibleConstructorReturn(this, (NFAState.__proto__ || Object.getPrototypeOf(NFAState)).apply(this, arguments));\n  }\n\n  _createClass(NFAState, [{\n    key: 'matches',\n\n\n    /**\n     * Whether this state matches a string.\n     *\n     * We maintain set of visited epsilon-states to avoid infinite loops\n     * when an epsilon-transition goes eventually to itself.\n     *\n     * NOTE: this function is rather \"educational\", since we use DFA for strings\n     * matching. DFA is built on top of NFA, and uses fast transition table.\n     */\n    value: function matches(string) {\n      var visited = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n\n      // An epsilon-state has been visited, stop to avoid infinite loop.\n      if (visited.has(this)) {\n        return false;\n      }\n\n      visited.add(this);\n\n      // No symbols left..\n      if (string.length === 0) {\n        // .. and we're in the accepting state.\n        if (this.accepting) {\n          return true;\n        }\n\n        // Check if we can reach any accepting state from\n        // on the epsilon transitions.\n        var _iteratorNormalCompletion = true;\n        var _didIteratorError = false;\n        var _iteratorError = undefined;\n\n        try {\n          for (var _iterator = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n            var nextState = _step.value;\n\n            if (nextState.matches('', visited)) {\n              return true;\n            }\n          }\n        } catch (err) {\n          _didIteratorError = true;\n          _iteratorError = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion && _iterator.return) {\n              _iterator.return();\n            }\n          } finally {\n            if (_didIteratorError) {\n              throw _iteratorError;\n            }\n          }\n        }\n\n        return false;\n      }\n\n      // Else, we get some symbols.\n      var symbol = string[0];\n      var rest = string.slice(1);\n\n      var symbolTransitions = this.getTransitionsOnSymbol(symbol);\n      var _iteratorNormalCompletion2 = true;\n      var _didIteratorError2 = false;\n      var _iteratorError2 = undefined;\n\n      try {\n        for (var _iterator2 = symbolTransitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n          var _nextState = _step2.value;\n\n          if (_nextState.matches(rest)) {\n            return true;\n          }\n        }\n\n        // If we couldn't match on symbol, check still epsilon-transitions\n        // without consuming the symbol (i.e. continue from `string`, not `rest`).\n      } catch (err) {\n        _didIteratorError2 = true;\n        _iteratorError2 = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion2 && _iterator2.return) {\n            _iterator2.return();\n          }\n        } finally {\n          if (_didIteratorError2) {\n            throw _iteratorError2;\n          }\n        }\n      }\n\n      var _iteratorNormalCompletion3 = true;\n      var _didIteratorError3 = false;\n      var _iteratorError3 = undefined;\n\n      try {\n        for (var _iterator3 = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n          var _nextState2 = _step3.value;\n\n          if (_nextState2.matches(string, visited)) {\n            return true;\n          }\n        }\n      } catch (err) {\n        _didIteratorError3 = true;\n        _iteratorError3 = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion3 && _iterator3.return) {\n            _iterator3.return();\n          }\n        } finally {\n          if (_didIteratorError3) {\n            throw _iteratorError3;\n          }\n        }\n      }\n\n      return false;\n    }\n\n    /**\n     * Returns an ε-closure for this state:\n     * self + all states following ε-transitions.\n     */\n\n  }, {\n    key: 'getEpsilonClosure',\n    value: function getEpsilonClosure() {\n      var _this2 = this;\n\n      if (!this._epsilonClosure) {\n        (function () {\n          var epsilonTransitions = _this2.getTransitionsOnSymbol(EPSILON);\n          var closure = _this2._epsilonClosure = new Set();\n          closure.add(_this2);\n          var _iteratorNormalCompletion4 = true;\n          var _didIteratorError4 = false;\n          var _iteratorError4 = undefined;\n\n          try {\n            for (var _iterator4 = epsilonTransitions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n              var nextState = _step4.value;\n\n              if (!closure.has(nextState)) {\n                closure.add(nextState);\n                var nextClosure = nextState.getEpsilonClosure();\n                nextClosure.forEach(function (state) {\n                  return closure.add(state);\n                });\n              }\n            }\n          } catch (err) {\n            _didIteratorError4 = true;\n            _iteratorError4 = err;\n          } finally {\n            try {\n              if (!_iteratorNormalCompletion4 && _iterator4.return) {\n                _iterator4.return();\n              }\n            } finally {\n              if (_didIteratorError4) {\n                throw _iteratorError4;\n              }\n            }\n          }\n        })();\n      }\n\n      return this._epsilonClosure;\n    }\n  }]);\n\n  return NFAState;\n}(State);\n\nmodule.exports = NFAState;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('../special-symbols'),\n    EPSILON = _require.EPSILON,\n    EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * NFA fragment.\n *\n * NFA sub-fragments can be combined to a larger NFAs building\n * the resulting machine. Combining the fragments is done by patching\n * edges of the in- and out-states.\n *\n * 2-states implementation, `in`, and `out`. Eventually all transitions\n * go to the same `out`, which can further be connected via ε-transition\n * with other fragment.\n */\n\n\nvar NFA = function () {\n  function NFA(inState, outState) {\n    _classCallCheck(this, NFA);\n\n    this.in = inState;\n    this.out = outState;\n  }\n\n  /**\n   * Tries to recognize a string based on this NFA fragment.\n   */\n\n\n  _createClass(NFA, [{\n    key: 'matches',\n    value: function matches(string) {\n      return this.in.matches(string);\n    }\n\n    /**\n     * Returns an alphabet for this NFA.\n     */\n\n  }, {\n    key: 'getAlphabet',\n    value: function getAlphabet() {\n      if (!this._alphabet) {\n        this._alphabet = new Set();\n        var table = this.getTransitionTable();\n        for (var state in table) {\n          var transitions = table[state];\n          for (var symbol in transitions) {\n            if (symbol !== EPSILON_CLOSURE) {\n              this._alphabet.add(symbol);\n            }\n          }\n        }\n      }\n      return this._alphabet;\n    }\n\n    /**\n     * Returns set of accepting states.\n     */\n\n  }, {\n    key: 'getAcceptingStates',\n    value: function getAcceptingStates() {\n      if (!this._acceptingStates) {\n        // States are determined during table construction.\n        this.getTransitionTable();\n      }\n      return this._acceptingStates;\n    }\n\n    /**\n     * Returns accepting state numbers.\n     */\n\n  }, {\n    key: 'getAcceptingStateNumbers',\n    value: function getAcceptingStateNumbers() {\n      if (!this._acceptingStateNumbers) {\n        this._acceptingStateNumbers = new Set();\n        var _iteratorNormalCompletion = true;\n        var _didIteratorError = false;\n        var _iteratorError = undefined;\n\n        try {\n          for (var _iterator = this.getAcceptingStates()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n            var acceptingState = _step.value;\n\n            this._acceptingStateNumbers.add(acceptingState.number);\n          }\n        } catch (err) {\n          _didIteratorError = true;\n          _iteratorError = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion && _iterator.return) {\n              _iterator.return();\n            }\n          } finally {\n            if (_didIteratorError) {\n              throw _iteratorError;\n            }\n          }\n        }\n      }\n      return this._acceptingStateNumbers;\n    }\n\n    /**\n     * Builds and returns transition table.\n     */\n\n  }, {\n    key: 'getTransitionTable',\n    value: function getTransitionTable() {\n      var _this = this;\n\n      if (!this._transitionTable) {\n        this._transitionTable = {};\n        this._acceptingStates = new Set();\n\n        var visited = new Set();\n        var symbols = new Set();\n\n        var visitState = function visitState(state) {\n          if (visited.has(state)) {\n            return;\n          }\n\n          visited.add(state);\n          state.number = visited.size;\n          _this._transitionTable[state.number] = {};\n\n          if (state.accepting) {\n            _this._acceptingStates.add(state);\n          }\n\n          var transitions = state.getTransitions();\n\n          var _iteratorNormalCompletion2 = true;\n          var _didIteratorError2 = false;\n          var _iteratorError2 = undefined;\n\n          try {\n            for (var _iterator2 = transitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n              var _ref = _step2.value;\n\n              var _ref2 = _slicedToArray(_ref, 2);\n\n              var symbol = _ref2[0];\n              var symbolTransitions = _ref2[1];\n\n              var combinedState = [];\n              symbols.add(symbol);\n              var _iteratorNormalCompletion3 = true;\n              var _didIteratorError3 = false;\n              var _iteratorError3 = undefined;\n\n              try {\n                for (var _iterator3 = symbolTransitions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n                  var nextState = _step3.value;\n\n                  visitState(nextState);\n                  combinedState.push(nextState.number);\n                }\n              } catch (err) {\n                _didIteratorError3 = true;\n                _iteratorError3 = err;\n              } finally {\n                try {\n                  if (!_iteratorNormalCompletion3 && _iterator3.return) {\n                    _iterator3.return();\n                  }\n                } finally {\n                  if (_didIteratorError3) {\n                    throw _iteratorError3;\n                  }\n                }\n              }\n\n              _this._transitionTable[state.number][symbol] = combinedState;\n            }\n          } catch (err) {\n            _didIteratorError2 = true;\n            _iteratorError2 = err;\n          } finally {\n            try {\n              if (!_iteratorNormalCompletion2 && _iterator2.return) {\n                _iterator2.return();\n              }\n            } finally {\n              if (_didIteratorError2) {\n                throw _iteratorError2;\n              }\n            }\n          }\n        };\n\n        // Traverse the graph starting from the `in`.\n        visitState(this.in);\n\n        // Append epsilon-closure column.\n        visited.forEach(function (state) {\n          delete _this._transitionTable[state.number][EPSILON];\n          _this._transitionTable[state.number][EPSILON_CLOSURE] = [].concat(_toConsumableArray(state.getEpsilonClosure())).map(function (s) {\n            return s.number;\n          });\n        });\n      }\n\n      return this._transitionTable;\n    }\n  }]);\n\n  return NFA;\n}();\n\nmodule.exports = NFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Epsilon, the empty string.\n */\n\nvar EPSILON = 'ε';\n\n/**\n * Epsilon-closure.\n */\nvar EPSILON_CLOSURE = EPSILON + '*';\n\nmodule.exports = {\n  EPSILON: EPSILON,\n  EPSILON_CLOSURE: EPSILON_CLOSURE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A generic FA State class (base for NFA and DFA).\n *\n * Maintains the transition map, and the flag whether\n * the state is accepting.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar State = function () {\n  function State() {\n    var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n        _ref$accepting = _ref.accepting,\n        accepting = _ref$accepting === undefined ? false : _ref$accepting;\n\n    _classCallCheck(this, State);\n\n    /**\n     * Outgoing transitions to other states.\n     */\n    this._transitions = new Map();\n\n    /**\n     * Whether the state is accepting.\n     */\n    this.accepting = accepting;\n  }\n\n  /**\n   * Returns transitions for this state.\n   */\n\n\n  _createClass(State, [{\n    key: 'getTransitions',\n    value: function getTransitions() {\n      return this._transitions;\n    }\n\n    /**\n     * Creates a transition on symbol.\n     */\n\n  }, {\n    key: 'addTransition',\n    value: function addTransition(symbol, toState) {\n      this.getTransitionsOnSymbol(symbol).add(toState);\n      return this;\n    }\n\n    /**\n     * Returns transitions set on symbol.\n     */\n\n  }, {\n    key: 'getTransitionsOnSymbol',\n    value: function getTransitionsOnSymbol(symbol) {\n      var transitions = this._transitions.get(symbol);\n\n      if (!transitions) {\n        transitions = new Set();\n        this._transitions.set(symbol, transitions);\n      }\n\n      return transitions;\n    }\n  }]);\n\n  return State;\n}();\n\nmodule.exports = State;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar clone = require('../utils/clone');\nvar parser = require('../parser');\nvar transform = require('../transform');\nvar optimizationTransforms = require('./transforms');\n\nmodule.exports = {\n  /**\n   * Optimizer transforms a regular expression into an optimized version,\n   * replacing some sub-expressions with their idiomatic patterns.\n   *\n   * @param string | RegExp | AST - a regexp to optimize.\n   *\n   * @return TransformResult - an optimized regexp.\n   *\n   * Example:\n   *\n   *   /[a-zA-Z_0-9][a-zA-Z_0-9]*\\e{1,}/\n   *\n   * Optimized to:\n   *\n   *   /\\w+e+/\n   */\n  optimize: function optimize(regexp) {\n    var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n        _ref$whitelist = _ref.whitelist,\n        whitelist = _ref$whitelist === undefined ? [] : _ref$whitelist,\n        _ref$blacklist = _ref.blacklist,\n        blacklist = _ref$blacklist === undefined ? [] : _ref$blacklist;\n\n    var transformsRaw = whitelist.length > 0 ? whitelist : Array.from(optimizationTransforms.keys());\n\n    var transformToApply = transformsRaw.filter(function (transform) {\n      return !blacklist.includes(transform);\n    });\n\n    var ast = regexp;\n    if (regexp instanceof RegExp) {\n      regexp = '' + regexp;\n    }\n\n    if (typeof regexp === 'string') {\n      ast = parser.parse(regexp);\n    }\n\n    var result = new transform.TransformResult(ast);\n    var prevResultString = void 0;\n\n    do {\n      // Get a copy of the current state here so\n      // we can compare it with the state at the\n      // end of the loop.\n      prevResultString = result.toString();\n      ast = clone(result.getAST());\n\n      transformToApply.forEach(function (transformName) {\n        if (!optimizationTransforms.has(transformName)) {\n          throw new Error('Unknown optimization-transform: ' + transformName + '. ' + 'Available transforms are: ' + Array.from(optimizationTransforms.keys()).join(', '));\n        }\n\n        var transformer = optimizationTransforms.get(transformName);\n\n        // Don't override result just yet since we\n        // might want to rollback the transform\n        var newResult = transform.transform(ast, transformer);\n\n        if (newResult.toString() !== result.toString()) {\n          if (newResult.toString().length <= result.toString().length) {\n            result = newResult;\n          } else {\n            // Result has changed but is not shorter:\n            // restore ast to its previous state.\n\n            ast = clone(result.getAST());\n          }\n        }\n      });\n\n      // Keep running the optimizer until it stops\n      // making any change to the regexp.\n    } while (result.toString() !== prevResultString);\n\n    return result;\n  }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\n/**\n * Transforms case-insensitive regexp to lowercase\n *\n * /AaBbÏ/i -> /aabbï/i\n */\nmodule.exports = {\n  _AZClassRanges: null,\n  _hasUFlag: false,\n  init: function init(ast) {\n    this._AZClassRanges = new Set();\n    this._hasUFlag = ast.flags.includes('u');\n  },\n  shouldRun: function shouldRun(ast) {\n    return ast.flags.includes('i');\n  },\n  Char: function Char(path) {\n    var node = path.node,\n        parent = path.parent;\n\n    if (isNaN(node.codePoint)) {\n      return;\n    }\n\n    // Engine support for case-insensitive matching without the u flag\n    // for characters above \\u1000 does not seem reliable.\n    if (!this._hasUFlag && node.codePoint >= 0x1000) {\n      return;\n    }\n\n    if (parent.type === 'ClassRange') {\n      // The only class ranges we handle must be inside A-Z.\n      // After the `from` char is processed, the isAZClassRange test\n      // will be false, so we use a Set to keep track of parents and\n      // process the `to` char.\n      if (!this._AZClassRanges.has(parent) && !isAZClassRange(parent)) {\n        return;\n      }\n      this._AZClassRanges.add(parent);\n    }\n\n    var lower = node.symbol.toLowerCase();\n    if (lower !== node.symbol) {\n      node.value = displaySymbolAsValue(lower, node);\n      node.symbol = lower;\n      node.codePoint = lower.codePointAt(0);\n    }\n  }\n};\n\nfunction isAZClassRange(classRange) {\n  var from = classRange.from,\n      to = classRange.to;\n  // A-Z\n\n  return from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP;\n}\n\nfunction displaySymbolAsValue(symbol, node) {\n  var codePoint = symbol.codePointAt(0);\n  if (node.kind === 'decimal') {\n    return '\\\\' + codePoint;\n  }\n  if (node.kind === 'oct') {\n    return '\\\\0' + codePoint.toString(8);\n  }\n  if (node.kind === 'hex') {\n    return '\\\\x' + codePoint.toString(16);\n  }\n  if (node.kind === 'unicode') {\n    if (node.isSurrogatePair) {\n      var _getSurrogatePairFrom = getSurrogatePairFromCodePoint(codePoint),\n          lead = _getSurrogatePairFrom.lead,\n          trail = _getSurrogatePairFrom.trail;\n\n      return '\\\\u' + '0'.repeat(4 - lead.length) + lead + '\\\\u' + '0'.repeat(4 - trail.length) + trail;\n    } else if (node.value.includes('{')) {\n      return '\\\\u{' + codePoint.toString(16) + '}';\n    } else {\n      var code = codePoint.toString(16);\n      return '\\\\u' + '0'.repeat(4 - code.length) + code;\n    }\n  }\n  // simple\n  return symbol;\n}\n\n/**\n * Converts a code point to a surrogate pair.\n * Conversion algorithm is taken from The Unicode Standard 3.0 Section 3.7\n * (https://www.unicode.org/versions/Unicode3.0.0/ch03.pdf)\n * @param {number} codePoint - Between 0x10000 and 0x10ffff\n * @returns {{lead: string, trail: string}}\n */\nfunction getSurrogatePairFromCodePoint(codePoint) {\n  var lead = Math.floor((codePoint - 0x10000) / 0x400) + 0xd800;\n  var trail = (codePoint - 0x10000) % 0x400 + 0xdc00;\n  return {\n    lead: lead.toString(16),\n    trail: trail.toString(16)\n  };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to merge class ranges.\n *\n * [a-ec] -> [a-e]\n * [a-ec-e] -> [a-e]\n * [\\w\\da-f] -> [\\w]\n * [abcdef] -> [a-f]\n */\n\nmodule.exports = {\n  _hasIUFlags: false,\n  init: function init(ast) {\n    this._hasIUFlags = ast.flags.includes('i') && ast.flags.includes('u');\n  },\n  CharacterClass: function CharacterClass(path) {\n    var node = path.node;\n\n    var expressions = node.expressions;\n\n    var metas = [];\n    // Extract metas\n    expressions.forEach(function (expression) {\n      if (isMeta(expression)) {\n        metas.push(expression.value);\n      }\n    });\n\n    expressions.sort(sortCharClass);\n\n    for (var i = 0; i < expressions.length; i++) {\n      var expression = expressions[i];\n      if (fitsInMetas(expression, metas, this._hasIUFlags) || combinesWithPrecedingClassRange(expression, expressions[i - 1]) || combinesWithFollowingClassRange(expression, expressions[i + 1])) {\n        expressions.splice(i, 1);\n        i--;\n      } else {\n        var nbMergedChars = charCombinesWithPrecedingChars(expression, i, expressions);\n        expressions.splice(i - nbMergedChars + 1, nbMergedChars);\n        i -= nbMergedChars;\n      }\n    }\n  }\n};\n\n/**\n * Sorts expressions in char class in the following order:\n * - meta chars, ordered alphabetically by value\n * - chars (except `control` kind) and class ranges, ordered alphabetically (`from` char is used for class ranges)\n * - if ambiguous, class range comes before char\n * - if ambiguous between two class ranges, orders alphabetically by `to` char\n * - control chars, ordered alphabetically by value\n * @param {Object} a - Left Char or ClassRange node\n * @param {Object} b - Right Char or ClassRange node\n * @returns {number}\n */\nfunction sortCharClass(a, b) {\n  var aValue = getSortValue(a);\n  var bValue = getSortValue(b);\n\n  if (aValue === bValue) {\n    // We want ClassRange before Char\n    // [bb-d] -> [b-db]\n    if (a.type === 'ClassRange' && b.type !== 'ClassRange') {\n      return -1;\n    }\n    if (b.type === 'ClassRange' && a.type !== 'ClassRange') {\n      return 1;\n    }\n    if (a.type === 'ClassRange' && b.type === 'ClassRange') {\n      return getSortValue(a.to) - getSortValue(b.to);\n    }\n    if (isMeta(a) && isMeta(b) || isControl(a) && isControl(b)) {\n      return a.value < b.value ? -1 : 1;\n    }\n  }\n  return aValue - bValue;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {number}\n */\nfunction getSortValue(expression) {\n  if (expression.type === 'Char') {\n    if (expression.value === '-') {\n      return Infinity;\n    }\n    if (expression.kind === 'control') {\n      return Infinity;\n    }\n    if (expression.kind === 'meta' && isNaN(expression.codePoint)) {\n      return -1;\n    }\n    return expression.codePoint;\n  }\n  // ClassRange\n  return expression.from.codePoint;\n}\n\n/**\n * Checks if a node is a meta char from the set \\d\\w\\s\\D\\W\\S\n * @param {Object} expression - Char or ClassRange node\n * @param {?string} value\n * @returns {boolean}\n */\nfunction isMeta(expression) {\n  var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n  return expression.type === 'Char' && expression.kind === 'meta' && (value ? expression.value === value : /^\\\\[dws]$/i.test(expression.value));\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {boolean}\n */\nfunction isControl(expression) {\n  return expression.type === 'Char' && expression.kind === 'control';\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string[]} metas - Array of meta chars, e.g. [\"\\\\w\", \"\\\\s\"]\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetas(expression, metas, hasIUFlags) {\n  for (var i = 0; i < metas.length; i++) {\n    if (fitsInMeta(expression, metas[i], hasIUFlags)) {\n      return true;\n    }\n  }\n  return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string} meta - e.g. \"\\\\w\"\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMeta(expression, meta, hasIUFlags) {\n  if (expression.type === 'ClassRange') {\n    return fitsInMeta(expression.from, meta, hasIUFlags) && fitsInMeta(expression.to, meta, hasIUFlags);\n  }\n\n  // Special cases:\n  // \\S contains \\w and \\d\n  if (meta === '\\\\S' && (isMeta(expression, '\\\\w') || isMeta(expression, '\\\\d'))) {\n    return true;\n  }\n  // \\D contains \\W and \\s\n  if (meta === '\\\\D' && (isMeta(expression, '\\\\W') || isMeta(expression, '\\\\s'))) {\n    return true;\n  }\n  // \\w contains \\d\n  if (meta === '\\\\w' && isMeta(expression, '\\\\d')) {\n    return true;\n  }\n  // \\W contains \\s\n  if (meta === '\\\\W' && isMeta(expression, '\\\\s')) {\n    return true;\n  }\n\n  if (expression.type !== 'Char' || isNaN(expression.codePoint)) {\n    return false;\n  }\n\n  if (meta === '\\\\s') {\n    return fitsInMetaS(expression);\n  }\n  if (meta === '\\\\S') {\n    return !fitsInMetaS(expression);\n  }\n  if (meta === '\\\\d') {\n    return fitsInMetaD(expression);\n  }\n  if (meta === '\\\\D') {\n    return !fitsInMetaD(expression);\n  }\n  if (meta === '\\\\w') {\n    return fitsInMetaW(expression, hasIUFlags);\n  }\n  if (meta === '\\\\W') {\n    return !fitsInMetaW(expression, hasIUFlags);\n  }\n  return false;\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaS(expression) {\n  return expression.codePoint === 0x0009 || // \\t\n  expression.codePoint === 0x000a || // \\n\n  expression.codePoint === 0x000b || // \\v\n  expression.codePoint === 0x000c || // \\f\n  expression.codePoint === 0x000d || // \\r\n  expression.codePoint === 0x0020 || // space\n  expression.codePoint === 0x00a0 || // nbsp\n  expression.codePoint === 0x1680 || // part of Zs\n  expression.codePoint >= 0x2000 && expression.codePoint <= 0x200a || // part of Zs\n  expression.codePoint === 0x2028 || // line separator\n  expression.codePoint === 0x2029 || // paragraph separator\n  expression.codePoint === 0x202f || // part of Zs\n  expression.codePoint === 0x205f || // part of Zs\n  expression.codePoint === 0x3000 || // part of Zs\n  expression.codePoint === 0xfeff; // zwnbsp\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaD(expression) {\n  return expression.codePoint >= 0x30 && expression.codePoint <= 0x39; // 0-9\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetaW(expression, hasIUFlags) {\n  return fitsInMetaD(expression) || expression.codePoint >= 0x41 && expression.codePoint <= 0x5a || // A-Z\n  expression.codePoint >= 0x61 && expression.codePoint <= 0x7a || // a-z\n  expression.value === '_' || hasIUFlags && (expression.codePoint === 0x017f || expression.codePoint === 0x212a);\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithPrecedingClassRange(expression, classRange) {\n  if (classRange && classRange.type === 'ClassRange') {\n    if (fitsInClassRange(expression, classRange)) {\n      // [a-gc] -> [a-g]\n      // [a-gc-e] -> [a-g]\n      return true;\n    } else if (\n    // We only want \\w chars or char codes to keep readability\n    isMetaWCharOrCode(expression) && classRange.to.codePoint === expression.codePoint - 1) {\n      // [a-de] -> [a-e]\n      classRange.to = expression;\n      return true;\n    } else if (expression.type === 'ClassRange' && expression.from.codePoint <= classRange.to.codePoint + 1 && expression.to.codePoint >= classRange.from.codePoint - 1) {\n      // [a-db-f] -> [a-f]\n      // [b-fa-d] -> [a-f]\n      // [a-cd-f] -> [a-f]\n      if (expression.from.codePoint < classRange.from.codePoint) {\n        classRange.from = expression.from;\n      }\n      if (expression.to.codePoint > classRange.to.codePoint) {\n        classRange.to = expression.to;\n      }\n      return true;\n    }\n  }\n  return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithFollowingClassRange(expression, classRange) {\n  if (classRange && classRange.type === 'ClassRange') {\n    // Considering the elements were ordered alphabetically,\n    // there is only one case to handle\n    // [ab-e] -> [a-e]\n    if (\n    // We only want \\w chars or char codes to keep readability\n    isMetaWCharOrCode(expression) && classRange.from.codePoint === expression.codePoint + 1) {\n      classRange.from = expression;\n      return true;\n    }\n  }\n\n  return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - ClassRange node\n * @returns {boolean}\n */\nfunction fitsInClassRange(expression, classRange) {\n  if (expression.type === 'Char' && isNaN(expression.codePoint)) {\n    return false;\n  }\n  if (expression.type === 'ClassRange') {\n    return fitsInClassRange(expression.from, classRange) && fitsInClassRange(expression.to, classRange);\n  }\n  return expression.codePoint >= classRange.from.codePoint && expression.codePoint <= classRange.to.codePoint;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Number} index\n * @param {Object[]} expressions - expressions in CharClass\n * @returns {number} - Number of characters combined with expression\n */\nfunction charCombinesWithPrecedingChars(expression, index, expressions) {\n  // We only want \\w chars or char codes to keep readability\n  if (!isMetaWCharOrCode(expression)) {\n    return 0;\n  }\n  var nbMergedChars = 0;\n  while (index > 0) {\n    var currentExpression = expressions[index];\n    var precedingExpresion = expressions[index - 1];\n    if (isMetaWCharOrCode(precedingExpresion) && precedingExpresion.codePoint === currentExpression.codePoint - 1) {\n      nbMergedChars++;\n      index--;\n    } else {\n      break;\n    }\n  }\n\n  if (nbMergedChars > 1) {\n    expressions[index] = {\n      type: 'ClassRange',\n      from: expressions[index],\n      to: expression\n    };\n    return nbMergedChars;\n  }\n  return 0;\n}\n\nfunction isMetaWCharOrCode(expression) {\n  return expression && expression.type === 'Char' && !isNaN(expression.codePoint) && (fitsInMetaW(expression, false) || expression.kind === 'unicode' || expression.kind === 'hex' || expression.kind === 'oct' || expression.kind === 'decimal');\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to simplify character classes\n * spanning only one or two chars.\n *\n * [a-a] -> [a]\n * [a-b] -> [ab]\n */\n\nmodule.exports = {\n  ClassRange: function ClassRange(path) {\n    var node = path.node;\n\n\n    if (node.from.codePoint === node.to.codePoint) {\n\n      path.replace(node.from);\n    } else if (node.from.codePoint === node.to.codePoint - 1) {\n\n      path.getParent().insertChildAt(node.to, path.index + 1);\n      path.replace(node.from);\n    }\n  }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove duplicates from character classes.\n */\n\nmodule.exports = {\n  CharacterClass: function CharacterClass(path) {\n    var node = path.node;\n\n    var sources = {};\n\n    for (var i = 0; i < node.expressions.length; i++) {\n      var childPath = path.getChild(i);\n      var source = childPath.jsonEncode();\n\n      if (sources.hasOwnProperty(source)) {\n        childPath.remove();\n\n        // Since we remove the current node.\n        // TODO: make it simpler for users with a method.\n        i--;\n      }\n\n      sources[source] = true;\n    }\n  }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace standard character classes with\n * their meta symbols equivalents.\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n  _hasIFlag: false,\n  _hasUFlag: false,\n  init: function init(ast) {\n    this._hasIFlag = ast.flags.includes('i');\n    this._hasUFlag = ast.flags.includes('u');\n  },\n  CharacterClass: function CharacterClass(path) {\n    // [0-9] -> \\d\n    rewriteNumberRanges(path);\n\n    // [a-zA-Z_0-9] -> \\w\n    rewriteWordRanges(path, this._hasIFlag, this._hasUFlag);\n\n    // [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s\n    rewriteWhitespaceRanges(path);\n  }\n};\n\n/**\n * Rewrites number ranges: [0-9] -> \\d\n */\nfunction rewriteNumberRanges(path) {\n  var node = path.node;\n\n\n  node.expressions.forEach(function (expression, i) {\n    if (isFullNumberRange(expression)) {\n      path.getChild(i).replace({\n        type: 'Char',\n        value: '\\\\d',\n        kind: 'meta'\n      });\n    }\n  });\n}\n\n/**\n * Rewrites word ranges: [a-zA-Z_0-9] -> \\w\n * Thus, the ranges may go in any order, and other symbols/ranges\n * are kept untouched, e.g. [a-z_\\dA-Z$] -> [\\w$]\n */\nfunction rewriteWordRanges(path, hasIFlag, hasUFlag) {\n  var node = path.node;\n\n\n  var numberPath = null;\n  var lowerCasePath = null;\n  var upperCasePath = null;\n  var underscorePath = null;\n  var u017fPath = null;\n  var u212aPath = null;\n\n  node.expressions.forEach(function (expression, i) {\n    // \\d\n    if (isMetaChar(expression, '\\\\d')) {\n      numberPath = path.getChild(i);\n    }\n\n    // a-z\n    else if (isLowerCaseRange(expression)) {\n        lowerCasePath = path.getChild(i);\n      }\n\n      // A-Z\n      else if (isUpperCaseRange(expression)) {\n          upperCasePath = path.getChild(i);\n        }\n\n        // _\n        else if (isUnderscore(expression)) {\n            underscorePath = path.getChild(i);\n          } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x017f)) {\n            u017fPath = path.getChild(i);\n          } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x212a)) {\n            u212aPath = path.getChild(i);\n          }\n  });\n\n  // If we found the whole pattern, replace it.\n  if (numberPath && (lowerCasePath && upperCasePath || hasIFlag && (lowerCasePath || upperCasePath)) && underscorePath && (!hasUFlag || !hasIFlag || u017fPath && u212aPath)) {\n    // Put \\w in place of \\d.\n    numberPath.replace({\n      type: 'Char',\n      value: '\\\\w',\n      kind: 'meta'\n    });\n\n    // Other paths are removed.\n    if (lowerCasePath) {\n      lowerCasePath.remove();\n    }\n    if (upperCasePath) {\n      upperCasePath.remove();\n    }\n    underscorePath.remove();\n    if (u017fPath) {\n      u017fPath.remove();\n    }\n    if (u212aPath) {\n      u212aPath.remove();\n    }\n  }\n}\n\n/**\n * Rewrites whitespace ranges: [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s.\n */\nvar whitespaceRangeTests = [function (node) {\n  return isChar(node, ' ');\n}].concat(_toConsumableArray(['\\\\f', '\\\\n', '\\\\r', '\\\\t', '\\\\v'].map(function (char) {\n  return function (node) {\n    return isMetaChar(node, char);\n  };\n})), _toConsumableArray([0x00a0, 0x1680, 0x2028, 0x2029, 0x202f, 0x205f, 0x3000, 0xfeff].map(function (codePoint) {\n  return function (node) {\n    return isCodePoint(node, codePoint);\n  };\n})), [function (node) {\n  return node.type === 'ClassRange' && isCodePoint(node.from, 0x2000) && isCodePoint(node.to, 0x200a);\n}]);\n\nfunction rewriteWhitespaceRanges(path) {\n  var node = path.node;\n\n\n  if (node.expressions.length < whitespaceRangeTests.length || !whitespaceRangeTests.every(function (test) {\n    return node.expressions.some(function (expression) {\n      return test(expression);\n    });\n  })) {\n    return;\n  }\n\n  // If we found the whole pattern, replace it.\n\n  // Put \\s in place of \\n.\n  var nNode = node.expressions.find(function (expression) {\n    return isMetaChar(expression, '\\\\n');\n  });\n  nNode.value = '\\\\s';\n  nNode.symbol = undefined;\n  nNode.codePoint = NaN;\n\n  // Other paths are removed.\n  node.expressions.map(function (expression, i) {\n    return whitespaceRangeTests.some(function (test) {\n      return test(expression);\n    }) ? path.getChild(i) : undefined;\n  }).filter(Boolean).forEach(function (path) {\n    return path.remove();\n  });\n}\n\nfunction isFullNumberRange(node) {\n  return node.type === 'ClassRange' && node.from.value === '0' && node.to.value === '9';\n}\n\nfunction isChar(node, value) {\n  var kind = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'simple';\n\n  return node.type === 'Char' && node.value === value && node.kind === kind;\n}\n\nfunction isMetaChar(node, value) {\n  return isChar(node, value, 'meta');\n}\n\nfunction isLowerCaseRange(node) {\n  return node.type === 'ClassRange' && node.from.value === 'a' && node.to.value === 'z';\n}\n\nfunction isUpperCaseRange(node) {\n  return node.type === 'ClassRange' && node.from.value === 'A' && node.to.value === 'Z';\n}\n\nfunction isUnderscore(node) {\n  return node.type === 'Char' && node.value === '_' && node.kind === 'simple';\n}\n\nfunction isCodePoint(node, codePoint) {\n  return node.type === 'Char' && node.kind === 'unicode' && node.codePoint === codePoint;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char character classes with\n * just that character.\n *\n * [\\d] -> \\d, [^\\w] -> \\W\n */\n\nmodule.exports = {\n  CharacterClass: function CharacterClass(path) {\n    var node = path.node;\n\n\n    if (node.expressions.length !== 1 || !hasAppropriateSiblings(path) || !isAppropriateChar(node.expressions[0])) {\n      return;\n    }\n\n    var _node$expressions$ = node.expressions[0],\n        value = _node$expressions$.value,\n        kind = _node$expressions$.kind,\n        escaped = _node$expressions$.escaped;\n\n\n    if (node.negative) {\n      // For negative can extract only meta chars like [^\\w] -> \\W\n      // cannot do for [^a] -> a (wrong).\n      if (!isMeta(value)) {\n        return;\n      }\n\n      value = getInverseMeta(value);\n    }\n\n    path.replace({\n      type: 'Char',\n      value: value,\n      kind: kind,\n      escaped: escaped || shouldEscape(value)\n    });\n  }\n};\n\nfunction isAppropriateChar(node) {\n  return node.type === 'Char' &&\n  // We don't extract [\\b] (backspace) since \\b has different\n  // semantics (word boundary).\n  node.value !== '\\\\b';\n}\n\nfunction isMeta(value) {\n  return (/^\\\\[dwsDWS]$/.test(value)\n  );\n}\n\nfunction getInverseMeta(value) {\n  return (/[dws]/.test(value) ? value.toUpperCase() : value.toLowerCase()\n  );\n}\n\nfunction hasAppropriateSiblings(path) {\n  var parent = path.parent,\n      index = path.index;\n\n\n  if (parent.type !== 'Alternative') {\n    return true;\n  }\n\n  var previousNode = parent.expressions[index - 1];\n  if (previousNode == null) {\n    return true;\n  }\n\n  // Don't optimized \\1[0] to \\10\n  if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n    return false;\n  }\n\n  // Don't optimized \\2[0] to \\20\n  if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n    return false;\n  }\n\n  return true;\n}\n\n// Note: \\{ and \\} are always preserved to avoid `a[{]2[}]` turning\n// into `a{2}`.\nfunction shouldEscape(value) {\n  return (/[*[()+?$./{}|]/.test(value)\n  );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\nvar LOWER_A_CP = 'a'.codePointAt(0);\nvar LOWER_Z_CP = 'z'.codePointAt(0);\nvar DIGIT_0_CP = '0'.codePointAt(0);\nvar DIGIT_9_CP = '9'.codePointAt(0);\n\n/**\n * A regexp-tree plugin to transform coded chars into simple chars.\n *\n * \\u0061 -> a\n */\nmodule.exports = {\n  Char: function Char(path) {\n    var node = path.node,\n        parent = path.parent;\n\n    if (isNaN(node.codePoint) || node.kind === 'simple') {\n      return;\n    }\n\n    if (parent.type === 'ClassRange') {\n      if (!isSimpleRange(parent)) {\n        return;\n      }\n    }\n\n    if (!isPrintableASCIIChar(node.codePoint)) {\n      return;\n    }\n\n    var symbol = String.fromCodePoint(node.codePoint);\n    var newChar = {\n      type: 'Char',\n      kind: 'simple',\n      value: symbol,\n      symbol: symbol,\n      codePoint: node.codePoint\n    };\n    if (needsEscape(symbol, parent.type)) {\n      newChar.escaped = true;\n    }\n    path.replace(newChar);\n  }\n};\n\n/**\n * Checks if a range is included either in 0-9, a-z or A-Z\n * @param classRange\n * @returns {boolean}\n */\nfunction isSimpleRange(classRange) {\n  var from = classRange.from,\n      to = classRange.to;\n\n  return from.codePoint >= DIGIT_0_CP && from.codePoint <= DIGIT_9_CP && to.codePoint >= DIGIT_0_CP && to.codePoint <= DIGIT_9_CP || from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP || from.codePoint >= LOWER_A_CP && from.codePoint <= LOWER_Z_CP && to.codePoint >= LOWER_A_CP && to.codePoint <= LOWER_Z_CP;\n}\n\n/**\n * Checks if a code point in the range of printable ASCII chars\n * (DEL char excluded)\n * @param codePoint\n * @returns {boolean}\n */\nfunction isPrintableASCIIChar(codePoint) {\n  return codePoint >= 0x20 && codePoint <= 0x7e;\n}\n\nfunction needsEscape(symbol, parentType) {\n  if (parentType === 'ClassRange' || parentType === 'CharacterClass') {\n    return (/[\\]\\\\^-]/.test(symbol)\n    );\n  }\n\n  return (/[*[()+?^$./\\\\|{}]/.test(symbol)\n  );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary escape.\n *\n * \\e -> e\n *\n * [\\(] -> [(]\n */\n\nmodule.exports = {\n  _hasXFlag: false,\n  init: function init(ast) {\n    this._hasXFlag = ast.flags.includes('x');\n  },\n  Char: function Char(path) {\n    var node = path.node;\n\n\n    if (!node.escaped) {\n      return;\n    }\n\n    if (shouldUnescape(path, this._hasXFlag)) {\n      delete node.escaped;\n    }\n  }\n};\n\nfunction shouldUnescape(path, hasXFlag) {\n  var value = path.node.value,\n      index = path.index,\n      parent = path.parent;\n\n  // In char class (, etc are allowed.\n\n  if (parent.type !== 'CharacterClass' && parent.type !== 'ClassRange') {\n    return !preservesEscape(value, index, parent, hasXFlag);\n  }\n\n  return !preservesInCharClass(value, index, parent);\n}\n\n/**\n * \\], \\\\, \\^, \\-\n */\nfunction preservesInCharClass(value, index, parent) {\n  if (value === '^') {\n    // Avoid [\\^a] turning into [^a]\n    return index === 0 && !parent.negative;\n  }\n  if (value === '-') {\n    // Avoid [a\\-z] turning into [a-z]\n    return true;\n  }\n  return (/[\\]\\\\]/.test(value)\n  );\n}\n\nfunction preservesEscape(value, index, parent, hasXFlag) {\n  if (value === '{') {\n    return preservesOpeningCurlyBraceEscape(index, parent);\n  }\n\n  if (value === '}') {\n    return preservesClosingCurlyBraceEscape(index, parent);\n  }\n\n  if (hasXFlag && /[ #]/.test(value)) {\n    return true;\n  }\n\n  return (/[*[()+?^$./\\\\|]/.test(value)\n  );\n}\n\nfunction consumeNumbers(startIndex, parent, rtl) {\n  var i = startIndex;\n  var siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n\n  while (siblingNode && siblingNode.type === 'Char' && siblingNode.kind === 'simple' && !siblingNode.escaped && /\\d/.test(siblingNode.value)) {\n    rtl ? i-- : i++;\n    siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n  }\n\n  return Math.abs(startIndex - i);\n}\n\nfunction isSimpleChar(node, value) {\n  return node && node.type === 'Char' && node.kind === 'simple' && !node.escaped && node.value === value;\n}\n\nfunction preservesOpeningCurlyBraceEscape(index, parent) {\n  // (?:\\{) -> (?:{)\n  if (index == null) {\n    return false;\n  }\n\n  var nbFollowingNumbers = consumeNumbers(index + 1, parent);\n  var i = index + nbFollowingNumbers + 1;\n  var nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n  if (nbFollowingNumbers) {\n    // Avoid \\{3} turning into {3}\n    if (isSimpleChar(nextSiblingNode, '}')) {\n      return true;\n    }\n\n    if (isSimpleChar(nextSiblingNode, ',')) {\n      nbFollowingNumbers = consumeNumbers(i + 1, parent);\n      i = i + nbFollowingNumbers + 1;\n      nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n      // Avoid \\{3,} turning into {3,}\n      return isSimpleChar(nextSiblingNode, '}');\n    }\n  }\n  return false;\n}\n\nfunction preservesClosingCurlyBraceEscape(index, parent) {\n  // (?:\\{) -> (?:{)\n  if (index == null) {\n    return false;\n  }\n\n  var nbPrecedingNumbers = consumeNumbers(index - 1, parent, true);\n  var i = index - nbPrecedingNumbers - 1;\n  var previousSiblingNode = i >= 0 && parent.expressions[i];\n\n  // Avoid {3\\} turning into {3}\n  if (nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{')) {\n    return true;\n  }\n\n  if (isSimpleChar(previousSiblingNode, ',')) {\n    nbPrecedingNumbers = consumeNumbers(i - 1, parent, true);\n    i = i - nbPrecedingNumbers - 1;\n    previousSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n    // Avoid {3,\\} turning into {3,}\n    return nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{');\n  }\n  return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to transform surrogate pairs into single unicode code point\n *\n * \\ud83d\\ude80 -> \\u{1f680}\n */\n\nmodule.exports = {\n  shouldRun: function shouldRun(ast) {\n    return ast.flags.includes('u');\n  },\n  Char: function Char(path) {\n    var node = path.node;\n\n    if (node.kind !== 'unicode' || !node.isSurrogatePair || isNaN(node.codePoint)) {\n      return;\n    }\n    node.value = '\\\\u{' + node.codePoint.toString(16) + '}';\n    delete node.isSurrogatePair;\n  }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n    increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to combine repeating patterns.\n *\n * /^abcabcabc/ -> /^abc{3}/\n * /^(?:abc){2}abc/ -> /^(?:abc){3}/\n * /^abc(?:abc){2}/ -> /^(?:abc){3}/\n */\n\nmodule.exports = {\n  Alternative: function Alternative(path) {\n    var node = path.node;\n\n    // We can skip the first child\n\n    var index = 1;\n    while (index < node.expressions.length) {\n      var child = path.getChild(index);\n      index = Math.max(1, combineRepeatingPatternLeft(path, child, index));\n\n      if (index >= node.expressions.length) {\n        break;\n      }\n\n      child = path.getChild(index);\n      index = Math.max(1, combineWithPreviousRepetition(path, child, index));\n\n      if (index >= node.expressions.length) {\n        break;\n      }\n\n      child = path.getChild(index);\n      index = Math.max(1, combineRepetitionWithPrevious(path, child, index));\n\n      index++;\n    }\n  }\n};\n\n// abcabc -> (?:abc){2}\nfunction combineRepeatingPatternLeft(alternative, child, index) {\n  var node = alternative.node;\n\n\n  var nbPossibleLengths = Math.ceil(index / 2);\n  var i = 0;\n\n  while (i < nbPossibleLengths) {\n    var startIndex = index - 2 * i - 1;\n    var right = void 0,\n        left = void 0;\n\n    if (i === 0) {\n      right = child;\n      left = alternative.getChild(startIndex);\n    } else {\n      right = NodePath.getForNode({\n        type: 'Alternative',\n        expressions: [].concat(_toConsumableArray(node.expressions.slice(index - i, index)), [child.node])\n      });\n\n      left = NodePath.getForNode({\n        type: 'Alternative',\n        expressions: [].concat(_toConsumableArray(node.expressions.slice(startIndex, index - i)))\n      });\n    }\n\n    if (right.hasEqualSource(left)) {\n      for (var j = 0; j < 2 * i + 1; j++) {\n        alternative.getChild(startIndex).remove();\n      }\n\n      child.replace({\n        type: 'Repetition',\n        expression: i === 0 && right.node.type !== 'Repetition' ? right.node : {\n          type: 'Group',\n          capturing: false,\n          expression: right.node\n        },\n        quantifier: {\n          type: 'Quantifier',\n          kind: 'Range',\n          from: 2,\n          to: 2,\n          greedy: true\n        }\n      });\n      return startIndex;\n    }\n\n    i++;\n  }\n\n  return index;\n}\n\n// (?:abc){2}abc -> (?:abc){3}\nfunction combineWithPreviousRepetition(alternative, child, index) {\n  var node = alternative.node;\n\n\n  var i = 0;\n  while (i < index) {\n    var previousChild = alternative.getChild(i);\n\n    if (previousChild.node.type === 'Repetition' && previousChild.node.quantifier.greedy) {\n      var left = previousChild.getChild();\n      var right = void 0;\n\n      if (left.node.type === 'Group' && !left.node.capturing) {\n        left = left.getChild();\n      }\n\n      if (i + 1 === index) {\n        right = child;\n        if (right.node.type === 'Group' && !right.node.capturing) {\n          right = right.getChild();\n        }\n      } else {\n        right = NodePath.getForNode({\n          type: 'Alternative',\n          expressions: [].concat(_toConsumableArray(node.expressions.slice(i + 1, index + 1)))\n        });\n      }\n\n      if (left.hasEqualSource(right)) {\n        for (var j = i; j < index; j++) {\n          alternative.getChild(i + 1).remove();\n        }\n\n        increaseQuantifierByOne(previousChild.node.quantifier);\n\n        return i;\n      }\n    }\n\n    i++;\n  }\n  return index;\n}\n\n// abc(?:abc){2} -> (?:abc){3}\nfunction combineRepetitionWithPrevious(alternative, child, index) {\n  var node = alternative.node;\n\n\n  if (child.node.type === 'Repetition' && child.node.quantifier.greedy) {\n    var right = child.getChild();\n    var left = void 0;\n\n    if (right.node.type === 'Group' && !right.node.capturing) {\n      right = right.getChild();\n    }\n\n    var rightLength = void 0;\n    if (right.node.type === 'Alternative') {\n      rightLength = right.node.expressions.length;\n      left = NodePath.getForNode({\n        type: 'Alternative',\n        expressions: [].concat(_toConsumableArray(node.expressions.slice(index - rightLength, index)))\n      });\n    } else {\n      rightLength = 1;\n      left = alternative.getChild(index - 1);\n      if (left.node.type === 'Group' && !left.node.capturing) {\n        left = left.getChild();\n      }\n    }\n\n    if (left.hasEqualSource(right)) {\n      for (var j = index - rightLength; j < index; j++) {\n        alternative.getChild(index - rightLength).remove();\n      }\n\n      increaseQuantifierByOne(child.node.quantifier);\n\n      return index - rightLength;\n    }\n  }\n  return index;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n    disjunctionToList = _require.disjunctionToList,\n    listToDisjunction = _require.listToDisjunction;\n\n/**\n * Removes duplicates from a disjunction sequence:\n *\n * /(ab|bc|ab)+(xy|xy)+/ -> /(ab|bc)+(xy)+/\n */\n\n\nmodule.exports = {\n  Disjunction: function Disjunction(path) {\n    var node = path.node;\n\n    // Make unique nodes.\n\n    var uniqueNodesMap = {};\n\n    var parts = disjunctionToList(node).filter(function (part) {\n      var encoded = part ? NodePath.getForNode(part).jsonEncode() : 'null';\n\n      // Already recorded this part, filter out.\n      if (uniqueNodesMap.hasOwnProperty(encoded)) {\n        return false;\n      }\n\n      uniqueNodesMap[encoded] = part;\n      return true;\n    });\n\n    // Replace with the optimized disjunction.\n    path.replace(listToDisjunction(parts));\n  }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char group disjunction to char group\n *\n * a|b|c -> [abc]\n * [12]|3|4 -> [1234]\n * (a|b|c) -> ([abc])\n * (?:a|b|c) -> [abc]\n */\n\nmodule.exports = {\n  Disjunction: function Disjunction(path) {\n    var node = path.node,\n        parent = path.parent;\n\n\n    if (!handlers[parent.type]) {\n      return;\n    }\n\n    var charset = new Map();\n\n    if (!shouldProcess(node, charset) || !charset.size) {\n      return;\n    }\n\n    var characterClass = {\n      type: 'CharacterClass',\n      expressions: Array.from(charset.keys()).sort().map(function (key) {\n        return charset.get(key);\n      })\n    };\n\n    handlers[parent.type](path.getParent(), characterClass);\n  }\n};\n\nvar handlers = {\n  RegExp: function RegExp(path, characterClass) {\n    var node = path.node;\n\n\n    node.body = characterClass;\n  },\n  Group: function Group(path, characterClass) {\n    var node = path.node;\n\n\n    if (node.capturing) {\n      node.expression = characterClass;\n    } else {\n      path.replace(characterClass);\n    }\n  }\n};\n\nfunction shouldProcess(expression, charset) {\n  if (!expression) {\n    // Abort on empty disjunction part\n    return false;\n  }\n\n  var type = expression.type;\n\n\n  if (type === 'Disjunction') {\n    var left = expression.left,\n        right = expression.right;\n\n\n    return shouldProcess(left, charset) && shouldProcess(right, charset);\n  } else if (type === 'Char') {\n    if (expression.kind === 'meta' && expression.symbol === '.') {\n      return false;\n    }\n\n    var value = expression.value;\n\n\n    charset.set(value, expression);\n\n    return true;\n  } else if (type === 'CharacterClass' && !expression.negative) {\n    return expression.expressions.every(function (expression) {\n      return shouldProcess(expression, charset);\n    });\n  }\n\n  return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = new Map([\n// \\ud83d\\ude80 -> \\u{1f680}\n['charSurrogatePairToSingleUnicode', require('./char-surrogate-pair-to-single-unicode-transform')],\n\n// \\u0061 -> a\n['charCodeToSimpleChar', require('./char-code-to-simple-char-transform')],\n\n// /Aa/i -> /aa/i\n['charCaseInsensitiveLowerCaseTransform', require('./char-case-insensitive-lowercase-transform')],\n\n// [\\d\\d] -> [\\d]\n['charClassRemoveDuplicates', require('./char-class-remove-duplicates-transform')],\n\n// a{1,2}a{2,3} -> a{3,5}\n['quantifiersMerge', require('./quantifiers-merge-transform')],\n\n// a{1,} -> a+, a{3,3} -> a{3}, a{1} -> a\n['quantifierRangeToSymbol', require('./quantifier-range-to-symbol-transform')],\n\n// [a-a] -> [a], [a-b] -> [ab]\n['charClassClassrangesToChars', require('./char-class-classranges-to-chars-transform')],\n\n// [0-9] -> [\\d]\n['charClassToMeta', require('./char-class-to-meta-transform')],\n\n// [\\d] -> \\d, [^\\w] -> \\W\n['charClassToSingleChar', require('./char-class-to-single-char-transform')],\n\n// \\e -> e\n['charEscapeUnescape', require('./char-escape-unescape-transform')],\n\n// [a-de-f] -> [a-f]\n['charClassClassrangesMerge', require('./char-class-classranges-merge-transform')],\n\n// (ab|ab) -> (ab)\n['disjunctionRemoveDuplicates', require('./disjunction-remove-duplicates-transform')],\n\n// (a|b|c) -> [abc]\n['groupSingleCharsToCharClass', require('./group-single-chars-to-char-class')],\n\n// (?:)a -> a\n['removeEmptyGroup', require('./remove-empty-group-transform')],\n\n// (?:a) -> a\n['ungroup', require('./ungroup-transform')],\n\n// abcabcabc -> (?:abc){3}\n['combineRepeatingPatterns', require('./combine-repeating-patterns-transform')]]);","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace different range-based quantifiers\n * with their symbol equivalents.\n *\n * a{0,} -> a*\n * a{1,} -> a+\n * a{1} -> a\n *\n * NOTE: the following is automatically handled in the generator:\n *\n * a{3,3} -> a{3}\n */\n\nmodule.exports = {\n  Quantifier: function Quantifier(path) {\n    var node = path.node;\n\n\n    if (node.kind !== 'Range') {\n      return;\n    }\n\n    // a{0,} -> a*\n    rewriteOpenZero(path);\n\n    // a{1,} -> a+\n    rewriteOpenOne(path);\n\n    // a{1} -> a\n    rewriteExactOne(path);\n  }\n};\n\nfunction rewriteOpenZero(path) {\n  var node = path.node;\n\n\n  if (node.from !== 0 || node.to) {\n    return;\n  }\n\n  node.kind = '*';\n  delete node.from;\n}\n\nfunction rewriteOpenOne(path) {\n  var node = path.node;\n\n\n  if (node.from !== 1 || node.to) {\n    return;\n  }\n\n  node.kind = '+';\n  delete node.from;\n}\n\nfunction rewriteExactOne(path) {\n  var node = path.node;\n\n\n  if (node.from !== 1 || node.to !== 1) {\n    return;\n  }\n\n  path.parentPath.replace(path.parentPath.node.expression);\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _require = require('../../transform/utils'),\n    increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to merge quantifiers\n *\n * a+a+ -> a{2,}\n * a{2}a{3} -> a{5}\n * a{1,2}a{2,3} -> a{3,5}\n */\n\n\nmodule.exports = {\n  Repetition: function Repetition(path) {\n    var node = path.node,\n        parent = path.parent;\n\n\n    if (parent.type !== 'Alternative' || !path.index) {\n      return;\n    }\n\n    var previousSibling = path.getPreviousSibling();\n\n    if (!previousSibling) {\n      return;\n    }\n\n    if (previousSibling.node.type === 'Repetition') {\n      if (!previousSibling.getChild().hasEqualSource(path.getChild())) {\n        return;\n      }\n\n      var _extractFromTo = extractFromTo(previousSibling.node.quantifier),\n          previousSiblingFrom = _extractFromTo.from,\n          previousSiblingTo = _extractFromTo.to;\n\n      var _extractFromTo2 = extractFromTo(node.quantifier),\n          nodeFrom = _extractFromTo2.from,\n          nodeTo = _extractFromTo2.to;\n\n      // It's does not seem reliable to merge quantifiers with different greediness\n      // when none of both is a greedy open range\n\n\n      if (previousSibling.node.quantifier.greedy !== node.quantifier.greedy && !isGreedyOpenRange(previousSibling.node.quantifier) && !isGreedyOpenRange(node.quantifier)) {\n        return;\n      }\n\n      // a*a* -> a*\n      // a*a+ -> a+\n      // a+a+ -> a{2,}\n      // a{2}a{4} -> a{6}\n      // a{1,2}a{2,3} -> a{3,5}\n      // a{1,}a{2,} -> a{3,}\n      // a+a{2,} -> a{3,}\n\n      // a??a{2,} -> a{2,}\n      // a*?a{2,} -> a{2,}\n      // a+?a{2,} -> a{3,}\n\n      node.quantifier.kind = 'Range';\n      node.quantifier.from = previousSiblingFrom + nodeFrom;\n      if (previousSiblingTo && nodeTo) {\n        node.quantifier.to = previousSiblingTo + nodeTo;\n      } else {\n        delete node.quantifier.to;\n      }\n      if (isGreedyOpenRange(previousSibling.node.quantifier) || isGreedyOpenRange(node.quantifier)) {\n        node.quantifier.greedy = true;\n      }\n\n      previousSibling.remove();\n    } else {\n      if (!previousSibling.hasEqualSource(path.getChild())) {\n        return;\n      }\n\n      increaseQuantifierByOne(node.quantifier);\n      previousSibling.remove();\n    }\n  }\n};\n\nfunction isGreedyOpenRange(quantifier) {\n  return quantifier.greedy && (quantifier.kind === '+' || quantifier.kind === '*' || quantifier.kind === 'Range' && !quantifier.to);\n}\n\nfunction extractFromTo(quantifier) {\n  var from = void 0,\n      to = void 0;\n  if (quantifier.kind === '*') {\n    from = 0;\n  } else if (quantifier.kind === '+') {\n    from = 1;\n  } else if (quantifier.kind === '?') {\n    from = 0;\n    to = 1;\n  } else {\n    from = quantifier.from;\n    if (quantifier.to) {\n      to = quantifier.to;\n    }\n  }\n  return { from: from, to: to };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove non-capturing empty groups.\n *\n * /(?:)a/ -> /a/\n * /a|(?:)/ -> /a|/\n */\n\nmodule.exports = {\n  Group: function Group(path) {\n    var node = path.node,\n        parent = path.parent;\n\n    var childPath = path.getChild();\n\n    if (node.capturing || childPath) {\n      return;\n    }\n\n    if (parent.type === 'Repetition') {\n\n      path.getParent().replace(node);\n    } else if (parent.type !== 'RegExp') {\n\n      path.remove();\n    }\n  }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary groups.\n *\n * /(?:a)/ -> /a/\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n  Group: function Group(path) {\n    var node = path.node,\n        parent = path.parent;\n\n    var childPath = path.getChild();\n\n    if (node.capturing || !childPath) {\n      return;\n    }\n\n    // Don't optimize \\1(?:0) to \\10\n    if (!hasAppropriateSiblings(path)) {\n      return;\n    }\n\n    // Don't optimize /a(?:b|c)/ to /ab|c/\n    // but /(?:b|c)/ to /b|c/ is ok\n    if (childPath.node.type === 'Disjunction' && parent.type !== 'RegExp') {\n      return;\n    }\n\n    // Don't optimize /(?:ab)+/ to /ab+/\n    // but /(?:a)+/ to /a+/ is ok\n    // and /(?:[a-d])+/ to /[a-d]+/ is ok too\n    if (parent.type === 'Repetition' && childPath.node.type !== 'Char' && childPath.node.type !== 'CharacterClass') {\n      return;\n    }\n\n    if (childPath.node.type === 'Alternative') {\n      var parentPath = path.getParent();\n      if (parentPath.node.type === 'Alternative') {\n        // /abc(?:def)ghi/ When (?:def) is ungrouped its content must be merged with parent alternative\n\n        parentPath.replace({\n          type: 'Alternative',\n          expressions: [].concat(_toConsumableArray(parent.expressions.slice(0, path.index)), _toConsumableArray(childPath.node.expressions), _toConsumableArray(parent.expressions.slice(path.index + 1)))\n        });\n      }\n    } else {\n      path.replace(childPath.node);\n    }\n  }\n};\n\nfunction hasAppropriateSiblings(path) {\n  var parent = path.parent,\n      index = path.index;\n\n\n  if (parent.type !== 'Alternative') {\n    return true;\n  }\n\n  var previousNode = parent.expressions[index - 1];\n  if (previousNode == null) {\n    return true;\n  }\n\n  // Don't optimized \\1(?:0) to \\10\n  if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n    return false;\n  }\n\n  // Don't optimized \\2(?:0) to \\20\n  if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n    return false;\n  }\n\n  return true;\n}","/**\n * LR parser generated by the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n *   npm install -g syntax-cli\n *\n *   syntax-cli --help\n *\n * To regenerate run:\n *\n *   syntax-cli \\\n *     --grammar ~/path-to-grammar-file \\\n *     --mode <parsing-mode> \\\n *     --output ~/path-to-output-parser-file.js\n */\n\n'use strict';\n\n/**\n * Matched token text.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar yytext = void 0;\n\n/**\n * Length of the matched token text.\n */\nvar yyleng = void 0;\n\n/**\n * Storage object.\n */\nvar yy = {};\n\n/**\n * Result of semantic action.\n */\nvar __ = void 0;\n\n/**\n * Result location object.\n */\nvar __loc = void 0;\n\nfunction yyloc(start, end) {\n  if (!yy.options.captureLocations) {\n    return null;\n  }\n\n  // Epsilon doesn't produce location.\n  if (!start || !end) {\n    return start || end;\n  }\n\n  return {\n    startOffset: start.startOffset,\n    endOffset: end.endOffset,\n    startLine: start.startLine,\n    endLine: end.endLine,\n    startColumn: start.startColumn,\n    endColumn: end.endColumn\n  };\n}\n\nvar EOF = '$';\n\n/**\n * List of productions (generated by Syntax tool).\n */\nvar productions = [[-1, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [0, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n  __loc = yyloc(_1loc, _4loc);\n  __ = Node({\n    type: 'RegExp',\n    body: _2,\n    flags: checkFlags(_4)\n  }, loc(_1loc, _4loc || _3loc));\n}], [1, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [1, 0, function () {\n  __loc = null;__ = '';\n}], [2, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [2, 2, function (_1, _2, _1loc, _2loc) {\n  __loc = yyloc(_1loc, _2loc);__ = _1 + _2;\n}], [3, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n  __loc = yyloc(_1loc, _3loc);\n  // Location for empty disjunction: /|/\n  var _loc = null;\n\n  if (_2loc) {\n    _loc = loc(_1loc || _2loc, _3loc || _2loc);\n  };\n\n  __ = Node({\n    type: 'Disjunction',\n    left: _1,\n    right: _3\n  }, _loc);\n}], [5, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);\n  if (_1.length === 0) {\n    __ = null;\n    return;\n  }\n\n  if (_1.length === 1) {\n    __ = Node(_1[0], __loc);\n  } else {\n    __ = Node({\n      type: 'Alternative',\n      expressions: _1\n    }, __loc);\n  }\n}], [6, 0, function () {\n  __loc = null;__ = [];\n}], [6, 2, function (_1, _2, _1loc, _2loc) {\n  __loc = yyloc(_1loc, _2loc);__ = _1.concat(_2);\n}], [7, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = Node(Object.assign({ type: 'Assertion' }, _1), __loc);\n}], [7, 2, function (_1, _2, _1loc, _2loc) {\n  __loc = yyloc(_1loc, _2loc);\n  __ = _1;\n\n  if (_2) {\n    __ = Node({\n      type: 'Repetition',\n      expression: _1,\n      quantifier: _2\n    }, __loc);\n  }\n}], [8, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = { kind: '^' };\n}], [8, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = { kind: '$' };\n}], [8, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\b' };\n}], [8, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\B' };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n  __loc = yyloc(_1loc, _3loc);\n  __ = {\n    kind: 'Lookahead',\n    assertion: _2\n  };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n  __loc = yyloc(_1loc, _3loc);\n  __ = {\n    kind: 'Lookahead',\n    negative: true,\n    assertion: _2\n  };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n  __loc = yyloc(_1loc, _3loc);\n  __ = {\n    kind: 'Lookbehind',\n    assertion: _2\n  };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n  __loc = yyloc(_1loc, _3loc);\n  __ = {\n    kind: 'Lookbehind',\n    negative: true,\n    assertion: _2\n  };\n}], [9, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [10, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [10, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = Char(_1.slice(1), 'simple', __loc);__.escaped = true;\n}], [10, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);__.isSurrogatePair = true;\n}], [10, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);\n}], [10, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = UnicodeProperty(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'control', __loc);\n}], [10, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'hex', __loc);\n}], [10, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'oct', __loc);\n}], [10, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = GroupRefOrDecChar(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = NamedGroupRefOrChars(_1, _1loc);\n}], [11, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [11, 0], [12, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [12, 2, function (_1, _2, _1loc, _2loc) {\n  __loc = yyloc(_1loc, _2loc);\n  _1.greedy = false;\n  __ = _1;\n}], [13, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);\n  __ = Node({\n    type: 'Quantifier',\n    kind: _1,\n    greedy: true\n  }, __loc);\n}], [13, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);\n  __ = Node({\n    type: 'Quantifier',\n    kind: _1,\n    greedy: true\n  }, __loc);\n}], [13, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);\n  __ = Node({\n    type: 'Quantifier',\n    kind: _1,\n    greedy: true\n  }, __loc);\n}], [13, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);\n  var range = getRange(_1);\n  __ = Node({\n    type: 'Quantifier',\n    kind: 'Range',\n    from: range[0],\n    to: range[0],\n    greedy: true\n  }, __loc);\n}], [13, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);\n  __ = Node({\n    type: 'Quantifier',\n    kind: 'Range',\n    from: getRange(_1)[0],\n    greedy: true\n  }, __loc);\n}], [13, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);\n  var range = getRange(_1);\n  __ = Node({\n    type: 'Quantifier',\n    kind: 'Range',\n    from: range[0],\n    to: range[1],\n    greedy: true\n  }, __loc);\n}], [14, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [14, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n  __loc = yyloc(_1loc, _3loc);\n  var nameRaw = String(_1);\n  var name = decodeUnicodeGroupName(nameRaw);\n  if (!yy.options.allowGroupNameDuplicates && namedGroups.hasOwnProperty(name)) {\n    throw new SyntaxError('Duplicate of the named group \"' + name + '\".');\n  }\n\n  namedGroups[name] = _1.groupNumber;\n\n  __ = Node({\n    type: 'Group',\n    capturing: true,\n    name: name,\n    nameRaw: nameRaw,\n    number: _1.groupNumber,\n    expression: _2\n  }, __loc);\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n  __loc = yyloc(_1loc, _3loc);\n  __ = Node({\n    type: 'Group',\n    capturing: true,\n    number: _1.groupNumber,\n    expression: _2\n  }, __loc);\n}], [16, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n  __loc = yyloc(_1loc, _3loc);\n  __ = Node({\n    type: 'Group',\n    capturing: false,\n    expression: _2\n  }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n  __loc = yyloc(_1loc, _3loc);\n  __ = Node({\n    type: 'CharacterClass',\n    negative: true,\n    expressions: _2\n  }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n  __loc = yyloc(_1loc, _3loc);\n  __ = Node({\n    type: 'CharacterClass',\n    expressions: _2\n  }, __loc);\n}], [18, 0, function () {\n  __loc = null;__ = [];\n}], [18, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [19, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = [_1];\n}], [19, 2, function (_1, _2, _1loc, _2loc) {\n  __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [19, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n  __loc = yyloc(_1loc, _4loc);\n  checkClassRange(_1, _3);\n\n  __ = [Node({\n    type: 'ClassRange',\n    from: _1,\n    to: _3\n  }, loc(_1loc, _3loc))];\n\n  if (_4) {\n    __ = __.concat(_4);\n  }\n}], [20, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [20, 2, function (_1, _2, _1loc, _2loc) {\n  __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [20, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n  __loc = yyloc(_1loc, _4loc);\n  checkClassRange(_1, _3);\n\n  __ = [Node({\n    type: 'ClassRange',\n    from: _1,\n    to: _3\n  }, loc(_1loc, _3loc))];\n\n  if (_4) {\n    __ = __.concat(_4);\n  }\n}], [21, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [21, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n  __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}]];\n\n/**\n * Encoded tokens map.\n */\nvar tokens = { \"SLASH\": \"23\", \"CHAR\": \"24\", \"BAR\": \"25\", \"BOS\": \"26\", \"EOS\": \"27\", \"ESC_b\": \"28\", \"ESC_B\": \"29\", \"POS_LA_ASSERT\": \"30\", \"R_PAREN\": \"31\", \"NEG_LA_ASSERT\": \"32\", \"POS_LB_ASSERT\": \"33\", \"NEG_LB_ASSERT\": \"34\", \"ESC_CHAR\": \"35\", \"U_CODE_SURROGATE\": \"36\", \"U_CODE\": \"37\", \"U_PROP_VALUE_EXP\": \"38\", \"CTRL_CH\": \"39\", \"HEX_CODE\": \"40\", \"OCT_CODE\": \"41\", \"DEC_CODE\": \"42\", \"META_CHAR\": \"43\", \"ANY\": \"44\", \"NAMED_GROUP_REF\": \"45\", \"Q_MARK\": \"46\", \"STAR\": \"47\", \"PLUS\": \"48\", \"RANGE_EXACT\": \"49\", \"RANGE_OPEN\": \"50\", \"RANGE_CLOSED\": \"51\", \"NAMED_CAPTURE_GROUP\": \"52\", \"L_PAREN\": \"53\", \"NON_CAPTURE_GROUP\": \"54\", \"NEG_CLASS\": \"55\", \"R_BRACKET\": \"56\", \"L_BRACKET\": \"57\", \"DASH\": \"58\", \"$\": \"59\" };\n\n/**\n * Parsing table (generated by Syntax tool).\n */\nvar table = [{ \"0\": 1, \"23\": \"s2\" }, { \"59\": \"acc\" }, { \"3\": 3, \"4\": 4, \"5\": 5, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"s7\" }, { \"23\": \"r6\", \"25\": \"s12\" }, { \"23\": \"r7\", \"25\": \"r7\", \"31\": \"r7\" }, { \"7\": 14, \"8\": 15, \"9\": 16, \"10\": 25, \"14\": 27, \"15\": 42, \"16\": 43, \"17\": 26, \"23\": \"r9\", \"24\": \"s28\", \"25\": \"r9\", \"26\": \"s17\", \"27\": \"s18\", \"28\": \"s19\", \"29\": \"s20\", \"30\": \"s21\", \"31\": \"r9\", \"32\": \"s22\", \"33\": \"s23\", \"34\": \"s24\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"52\": \"s44\", \"53\": \"s45\", \"54\": \"s46\", \"55\": \"s40\", \"57\": \"s41\" }, { \"1\": 8, \"2\": 9, \"24\": \"s10\", \"59\": \"r3\" }, { \"59\": \"r1\" }, { \"24\": \"s11\", \"59\": \"r2\" }, { \"24\": \"r4\", \"59\": \"r4\" }, { \"24\": \"r5\", \"59\": \"r5\" }, { \"5\": 13, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r8\", \"25\": \"r8\", \"31\": \"r8\" }, { \"23\": \"r11\", \"24\": \"r11\", \"25\": \"r11\", \"26\": \"r11\", \"27\": \"r11\", \"28\": \"r11\", \"29\": \"r11\", \"30\": \"r11\", \"31\": \"r11\", \"32\": \"r11\", \"33\": \"r11\", \"34\": \"r11\", \"35\": \"r11\", \"36\": \"r11\", \"37\": \"r11\", \"38\": \"r11\", \"39\": \"r11\", \"40\": \"r11\", \"41\": \"r11\", \"42\": \"r11\", \"43\": \"r11\", \"44\": \"r11\", \"45\": \"r11\", \"52\": \"r11\", \"53\": \"r11\", \"54\": \"r11\", \"55\": \"r11\", \"57\": \"r11\" }, { \"23\": \"r12\", \"24\": \"r12\", \"25\": \"r12\", \"26\": \"r12\", \"27\": \"r12\", \"28\": \"r12\", \"29\": \"r12\", \"30\": \"r12\", \"31\": \"r12\", \"32\": \"r12\", \"33\": \"r12\", \"34\": \"r12\", \"35\": \"r12\", \"36\": \"r12\", \"37\": \"r12\", \"38\": \"r12\", \"39\": \"r12\", \"40\": \"r12\", \"41\": \"r12\", \"42\": \"r12\", \"43\": \"r12\", \"44\": \"r12\", \"45\": \"r12\", \"52\": \"r12\", \"53\": \"r12\", \"54\": \"r12\", \"55\": \"r12\", \"57\": \"r12\" }, { \"11\": 47, \"12\": 48, \"13\": 49, \"23\": \"r38\", \"24\": \"r38\", \"25\": \"r38\", \"26\": \"r38\", \"27\": \"r38\", \"28\": \"r38\", \"29\": \"r38\", \"30\": \"r38\", \"31\": \"r38\", \"32\": \"r38\", \"33\": \"r38\", \"34\": \"r38\", \"35\": \"r38\", \"36\": \"r38\", \"37\": \"r38\", \"38\": \"r38\", \"39\": \"r38\", \"40\": \"r38\", \"41\": \"r38\", \"42\": \"r38\", \"43\": \"r38\", \"44\": \"r38\", \"45\": \"r38\", \"46\": \"s52\", \"47\": \"s50\", \"48\": \"s51\", \"49\": \"s53\", \"50\": \"s54\", \"51\": \"s55\", \"52\": \"r38\", \"53\": \"r38\", \"54\": \"r38\", \"55\": \"r38\", \"57\": \"r38\" }, { \"23\": \"r14\", \"24\": \"r14\", \"25\": \"r14\", \"26\": \"r14\", \"27\": \"r14\", \"28\": \"r14\", \"29\": \"r14\", \"30\": \"r14\", \"31\": \"r14\", \"32\": \"r14\", \"33\": \"r14\", \"34\": \"r14\", \"35\": \"r14\", \"36\": \"r14\", \"37\": \"r14\", \"38\": \"r14\", \"39\": \"r14\", \"40\": \"r14\", \"41\": \"r14\", \"42\": \"r14\", \"43\": \"r14\", \"44\": \"r14\", \"45\": \"r14\", \"52\": \"r14\", \"53\": \"r14\", \"54\": \"r14\", \"55\": \"r14\", \"57\": \"r14\" }, { \"23\": \"r15\", \"24\": \"r15\", \"25\": \"r15\", \"26\": \"r15\", \"27\": \"r15\", \"28\": \"r15\", \"29\": \"r15\", \"30\": \"r15\", \"31\": \"r15\", \"32\": \"r15\", \"33\": \"r15\", \"34\": \"r15\", \"35\": \"r15\", \"36\": \"r15\", \"37\": \"r15\", \"38\": \"r15\", \"39\": \"r15\", \"40\": \"r15\", \"41\": \"r15\", \"42\": \"r15\", \"43\": \"r15\", \"44\": \"r15\", \"45\": \"r15\", \"52\": \"r15\", \"53\": \"r15\", \"54\": \"r15\", \"55\": \"r15\", \"57\": \"r15\" }, { \"23\": \"r16\", \"24\": \"r16\", \"25\": \"r16\", \"26\": \"r16\", \"27\": \"r16\", \"28\": \"r16\", \"29\": \"r16\", \"30\": \"r16\", \"31\": \"r16\", \"32\": \"r16\", \"33\": \"r16\", \"34\": \"r16\", \"35\": \"r16\", \"36\": \"r16\", \"37\": \"r16\", \"38\": \"r16\", \"39\": \"r16\", \"40\": \"r16\", \"41\": \"r16\", \"42\": \"r16\", \"43\": \"r16\", \"44\": \"r16\", \"45\": \"r16\", \"52\": \"r16\", \"53\": \"r16\", \"54\": \"r16\", \"55\": \"r16\", \"57\": \"r16\" }, { \"23\": \"r17\", \"24\": \"r17\", \"25\": \"r17\", \"26\": \"r17\", \"27\": \"r17\", \"28\": \"r17\", \"29\": \"r17\", \"30\": \"r17\", \"31\": \"r17\", \"32\": \"r17\", \"33\": \"r17\", \"34\": \"r17\", \"35\": \"r17\", \"36\": \"r17\", \"37\": \"r17\", \"38\": \"r17\", \"39\": \"r17\", \"40\": \"r17\", \"41\": \"r17\", \"42\": \"r17\", \"43\": \"r17\", \"44\": \"r17\", \"45\": \"r17\", \"52\": \"r17\", \"53\": \"r17\", \"54\": \"r17\", \"55\": \"r17\", \"57\": \"r17\" }, { \"4\": 57, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 59, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 61, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 63, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r22\", \"24\": \"r22\", \"25\": \"r22\", \"26\": \"r22\", \"27\": \"r22\", \"28\": \"r22\", \"29\": \"r22\", \"30\": \"r22\", \"31\": \"r22\", \"32\": \"r22\", \"33\": \"r22\", \"34\": \"r22\", \"35\": \"r22\", \"36\": \"r22\", \"37\": \"r22\", \"38\": \"r22\", \"39\": \"r22\", \"40\": \"r22\", \"41\": \"r22\", \"42\": \"r22\", \"43\": \"r22\", \"44\": \"r22\", \"45\": \"r22\", \"46\": \"r22\", \"47\": \"r22\", \"48\": \"r22\", \"49\": \"r22\", \"50\": \"r22\", \"51\": \"r22\", \"52\": \"r22\", \"53\": \"r22\", \"54\": \"r22\", \"55\": \"r22\", \"57\": \"r22\" }, { \"23\": \"r23\", \"24\": \"r23\", \"25\": \"r23\", \"26\": \"r23\", \"27\": \"r23\", \"28\": \"r23\", \"29\": \"r23\", \"30\": \"r23\", \"31\": \"r23\", \"32\": \"r23\", \"33\": \"r23\", \"34\": \"r23\", \"35\": \"r23\", \"36\": \"r23\", \"37\": \"r23\", \"38\": \"r23\", \"39\": \"r23\", \"40\": \"r23\", \"41\": \"r23\", \"42\": \"r23\", \"43\": \"r23\", \"44\": \"r23\", \"45\": \"r23\", \"46\": \"r23\", \"47\": \"r23\", \"48\": \"r23\", \"49\": \"r23\", \"50\": \"r23\", \"51\": \"r23\", \"52\": \"r23\", \"53\": \"r23\", \"54\": \"r23\", \"55\": \"r23\", \"57\": \"r23\" }, { \"23\": \"r24\", \"24\": \"r24\", \"25\": \"r24\", \"26\": \"r24\", \"27\": \"r24\", \"28\": \"r24\", \"29\": \"r24\", \"30\": \"r24\", \"31\": \"r24\", \"32\": \"r24\", \"33\": \"r24\", \"34\": \"r24\", \"35\": \"r24\", \"36\": \"r24\", \"37\": \"r24\", \"38\": \"r24\", \"39\": \"r24\", \"40\": \"r24\", \"41\": \"r24\", \"42\": \"r24\", \"43\": \"r24\", \"44\": \"r24\", \"45\": \"r24\", \"46\": \"r24\", \"47\": \"r24\", \"48\": \"r24\", \"49\": \"r24\", \"50\": \"r24\", \"51\": \"r24\", \"52\": \"r24\", \"53\": \"r24\", \"54\": \"r24\", \"55\": \"r24\", \"57\": \"r24\" }, { \"23\": \"r25\", \"24\": \"r25\", \"25\": \"r25\", \"26\": \"r25\", \"27\": \"r25\", \"28\": \"r25\", \"29\": \"r25\", \"30\": \"r25\", \"31\": \"r25\", \"32\": \"r25\", \"33\": \"r25\", \"34\": \"r25\", \"35\": \"r25\", \"36\": \"r25\", \"37\": \"r25\", \"38\": \"r25\", \"39\": \"r25\", \"40\": \"r25\", \"41\": \"r25\", \"42\": \"r25\", \"43\": \"r25\", \"44\": \"r25\", \"45\": \"r25\", \"46\": \"r25\", \"47\": \"r25\", \"48\": \"r25\", \"49\": \"r25\", \"50\": \"r25\", \"51\": \"r25\", \"52\": \"r25\", \"53\": \"r25\", \"54\": \"r25\", \"55\": \"r25\", \"56\": \"r25\", \"57\": \"r25\", \"58\": \"r25\" }, { \"23\": \"r26\", \"24\": \"r26\", \"25\": \"r26\", \"26\": \"r26\", \"27\": \"r26\", \"28\": \"r26\", \"29\": \"r26\", \"30\": \"r26\", \"31\": \"r26\", \"32\": \"r26\", \"33\": \"r26\", \"34\": \"r26\", \"35\": \"r26\", \"36\": \"r26\", \"37\": \"r26\", \"38\": \"r26\", \"39\": \"r26\", \"40\": \"r26\", \"41\": \"r26\", \"42\": \"r26\", \"43\": \"r26\", \"44\": \"r26\", \"45\": \"r26\", \"46\": \"r26\", \"47\": \"r26\", \"48\": \"r26\", \"49\": \"r26\", \"50\": \"r26\", \"51\": \"r26\", \"52\": \"r26\", \"53\": \"r26\", \"54\": \"r26\", \"55\": \"r26\", \"56\": \"r26\", \"57\": \"r26\", \"58\": \"r26\" }, { \"23\": \"r27\", \"24\": \"r27\", \"25\": \"r27\", \"26\": \"r27\", \"27\": \"r27\", \"28\": \"r27\", \"29\": \"r27\", \"30\": \"r27\", \"31\": \"r27\", \"32\": \"r27\", \"33\": \"r27\", \"34\": \"r27\", \"35\": \"r27\", \"36\": \"r27\", \"37\": \"r27\", \"38\": \"r27\", \"39\": \"r27\", \"40\": \"r27\", \"41\": \"r27\", \"42\": \"r27\", \"43\": \"r27\", \"44\": \"r27\", \"45\": \"r27\", \"46\": \"r27\", \"47\": \"r27\", \"48\": \"r27\", \"49\": \"r27\", \"50\": \"r27\", \"51\": \"r27\", \"52\": \"r27\", \"53\": \"r27\", \"54\": \"r27\", \"55\": \"r27\", \"56\": \"r27\", \"57\": \"r27\", \"58\": \"r27\" }, { \"23\": \"r28\", \"24\": \"r28\", \"25\": \"r28\", \"26\": \"r28\", \"27\": \"r28\", \"28\": \"r28\", \"29\": \"r28\", \"30\": \"r28\", \"31\": \"r28\", \"32\": \"r28\", \"33\": \"r28\", \"34\": \"r28\", \"35\": \"r28\", \"36\": \"r28\", \"37\": \"r28\", \"38\": \"r28\", \"39\": \"r28\", \"40\": \"r28\", \"41\": \"r28\", \"42\": \"r28\", \"43\": \"r28\", \"44\": \"r28\", \"45\": \"r28\", \"46\": \"r28\", \"47\": \"r28\", \"48\": \"r28\", \"49\": \"r28\", \"50\": \"r28\", \"51\": \"r28\", \"52\": \"r28\", \"53\": \"r28\", \"54\": \"r28\", \"55\": \"r28\", \"56\": \"r28\", \"57\": \"r28\", \"58\": \"r28\" }, { \"23\": \"r29\", \"24\": \"r29\", \"25\": \"r29\", \"26\": \"r29\", \"27\": \"r29\", \"28\": \"r29\", \"29\": \"r29\", \"30\": \"r29\", \"31\": \"r29\", \"32\": \"r29\", \"33\": \"r29\", \"34\": \"r29\", \"35\": \"r29\", \"36\": \"r29\", \"37\": \"r29\", \"38\": \"r29\", \"39\": \"r29\", \"40\": \"r29\", \"41\": \"r29\", \"42\": \"r29\", \"43\": \"r29\", \"44\": \"r29\", \"45\": \"r29\", \"46\": \"r29\", \"47\": \"r29\", \"48\": \"r29\", \"49\": \"r29\", \"50\": \"r29\", \"51\": \"r29\", \"52\": \"r29\", \"53\": \"r29\", \"54\": \"r29\", \"55\": \"r29\", \"56\": \"r29\", \"57\": \"r29\", \"58\": \"r29\" }, { \"23\": \"r30\", \"24\": \"r30\", \"25\": \"r30\", \"26\": \"r30\", \"27\": \"r30\", \"28\": \"r30\", \"29\": \"r30\", \"30\": \"r30\", \"31\": \"r30\", \"32\": \"r30\", \"33\": \"r30\", \"34\": \"r30\", \"35\": \"r30\", \"36\": \"r30\", \"37\": \"r30\", \"38\": \"r30\", \"39\": \"r30\", \"40\": \"r30\", \"41\": \"r30\", \"42\": \"r30\", \"43\": \"r30\", \"44\": \"r30\", \"45\": \"r30\", \"46\": \"r30\", \"47\": \"r30\", \"48\": \"r30\", \"49\": \"r30\", \"50\": \"r30\", \"51\": \"r30\", \"52\": \"r30\", \"53\": \"r30\", \"54\": \"r30\", \"55\": \"r30\", \"56\": \"r30\", \"57\": \"r30\", \"58\": \"r30\" }, { \"23\": \"r31\", \"24\": \"r31\", \"25\": \"r31\", \"26\": \"r31\", \"27\": \"r31\", \"28\": \"r31\", \"29\": \"r31\", \"30\": \"r31\", \"31\": \"r31\", \"32\": \"r31\", \"33\": \"r31\", \"34\": \"r31\", \"35\": \"r31\", \"36\": \"r31\", \"37\": \"r31\", \"38\": \"r31\", \"39\": \"r31\", \"40\": \"r31\", \"41\": \"r31\", \"42\": \"r31\", \"43\": \"r31\", \"44\": \"r31\", \"45\": \"r31\", \"46\": \"r31\", \"47\": \"r31\", \"48\": \"r31\", \"49\": \"r31\", \"50\": \"r31\", \"51\": \"r31\", \"52\": \"r31\", \"53\": \"r31\", \"54\": \"r31\", \"55\": \"r31\", \"56\": \"r31\", \"57\": \"r31\", \"58\": \"r31\" }, { \"23\": \"r32\", \"24\": \"r32\", \"25\": \"r32\", \"26\": \"r32\", \"27\": \"r32\", \"28\": \"r32\", \"29\": \"r32\", \"30\": \"r32\", \"31\": \"r32\", \"32\": \"r32\", \"33\": \"r32\", \"34\": \"r32\", \"35\": \"r32\", \"36\": \"r32\", \"37\": \"r32\", \"38\": \"r32\", \"39\": \"r32\", \"40\": \"r32\", \"41\": \"r32\", \"42\": \"r32\", \"43\": \"r32\", \"44\": \"r32\", \"45\": \"r32\", \"46\": \"r32\", \"47\": \"r32\", \"48\": \"r32\", \"49\": \"r32\", \"50\": \"r32\", \"51\": \"r32\", \"52\": \"r32\", \"53\": \"r32\", \"54\": \"r32\", \"55\": \"r32\", \"56\": \"r32\", \"57\": \"r32\", \"58\": \"r32\" }, { \"23\": \"r33\", \"24\": \"r33\", \"25\": \"r33\", \"26\": \"r33\", \"27\": \"r33\", \"28\": \"r33\", \"29\": \"r33\", \"30\": \"r33\", \"31\": \"r33\", \"32\": \"r33\", \"33\": \"r33\", \"34\": \"r33\", \"35\": \"r33\", \"36\": \"r33\", \"37\": \"r33\", \"38\": \"r33\", \"39\": \"r33\", \"40\": \"r33\", \"41\": \"r33\", \"42\": \"r33\", \"43\": \"r33\", \"44\": \"r33\", \"45\": \"r33\", \"46\": \"r33\", \"47\": \"r33\", \"48\": \"r33\", \"49\": \"r33\", \"50\": \"r33\", \"51\": \"r33\", \"52\": \"r33\", \"53\": \"r33\", \"54\": \"r33\", \"55\": \"r33\", \"56\": \"r33\", \"57\": \"r33\", \"58\": \"r33\" }, { \"23\": \"r34\", \"24\": \"r34\", \"25\": \"r34\", \"26\": \"r34\", \"27\": \"r34\", \"28\": \"r34\", \"29\": \"r34\", \"30\": \"r34\", \"31\": \"r34\", \"32\": \"r34\", \"33\": \"r34\", \"34\": \"r34\", \"35\": \"r34\", \"36\": \"r34\", \"37\": \"r34\", \"38\": \"r34\", \"39\": \"r34\", \"40\": \"r34\", \"41\": \"r34\", \"42\": \"r34\", \"43\": \"r34\", \"44\": \"r34\", \"45\": \"r34\", \"46\": \"r34\", \"47\": \"r34\", \"48\": \"r34\", \"49\": \"r34\", \"50\": \"r34\", \"51\": \"r34\", \"52\": \"r34\", \"53\": \"r34\", \"54\": \"r34\", \"55\": \"r34\", \"56\": \"r34\", \"57\": \"r34\", \"58\": \"r34\" }, { \"23\": \"r35\", \"24\": \"r35\", \"25\": \"r35\", \"26\": \"r35\", \"27\": \"r35\", \"28\": \"r35\", \"29\": \"r35\", \"30\": \"r35\", \"31\": \"r35\", \"32\": \"r35\", \"33\": \"r35\", \"34\": \"r35\", \"35\": \"r35\", \"36\": \"r35\", \"37\": \"r35\", \"38\": \"r35\", \"39\": \"r35\", \"40\": \"r35\", \"41\": \"r35\", \"42\": \"r35\", \"43\": \"r35\", \"44\": \"r35\", \"45\": \"r35\", \"46\": \"r35\", \"47\": \"r35\", \"48\": \"r35\", \"49\": \"r35\", \"50\": \"r35\", \"51\": \"r35\", \"52\": \"r35\", \"53\": \"r35\", \"54\": \"r35\", \"55\": \"r35\", \"56\": \"r35\", \"57\": \"r35\", \"58\": \"r35\" }, { \"23\": \"r36\", \"24\": \"r36\", \"25\": \"r36\", \"26\": \"r36\", \"27\": \"r36\", \"28\": \"r36\", \"29\": \"r36\", \"30\": \"r36\", \"31\": \"r36\", \"32\": \"r36\", \"33\": \"r36\", \"34\": \"r36\", \"35\": \"r36\", \"36\": \"r36\", \"37\": \"r36\", \"38\": \"r36\", \"39\": \"r36\", \"40\": \"r36\", \"41\": \"r36\", \"42\": \"r36\", \"43\": \"r36\", \"44\": \"r36\", \"45\": \"r36\", \"46\": \"r36\", \"47\": \"r36\", \"48\": \"r36\", \"49\": \"r36\", \"50\": \"r36\", \"51\": \"r36\", \"52\": \"r36\", \"53\": \"r36\", \"54\": \"r36\", \"55\": \"r36\", \"56\": \"r36\", \"57\": \"r36\", \"58\": \"r36\" }, { \"10\": 70, \"18\": 65, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 83, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"23\": \"r47\", \"24\": \"r47\", \"25\": \"r47\", \"26\": \"r47\", \"27\": \"r47\", \"28\": \"r47\", \"29\": \"r47\", \"30\": \"r47\", \"31\": \"r47\", \"32\": \"r47\", \"33\": \"r47\", \"34\": \"r47\", \"35\": \"r47\", \"36\": \"r47\", \"37\": \"r47\", \"38\": \"r47\", \"39\": \"r47\", \"40\": \"r47\", \"41\": \"r47\", \"42\": \"r47\", \"43\": \"r47\", \"44\": \"r47\", \"45\": \"r47\", \"46\": \"r47\", \"47\": \"r47\", \"48\": \"r47\", \"49\": \"r47\", \"50\": \"r47\", \"51\": \"r47\", \"52\": \"r47\", \"53\": \"r47\", \"54\": \"r47\", \"55\": \"r47\", \"57\": \"r47\" }, { \"23\": \"r48\", \"24\": \"r48\", \"25\": \"r48\", \"26\": \"r48\", \"27\": \"r48\", \"28\": \"r48\", \"29\": \"r48\", \"30\": \"r48\", \"31\": \"r48\", \"32\": \"r48\", \"33\": \"r48\", \"34\": \"r48\", \"35\": \"r48\", \"36\": \"r48\", \"37\": \"r48\", \"38\": \"r48\", \"39\": \"r48\", \"40\": \"r48\", \"41\": \"r48\", \"42\": \"r48\", \"43\": \"r48\", \"44\": \"r48\", \"45\": \"r48\", \"46\": \"r48\", \"47\": \"r48\", \"48\": \"r48\", \"49\": \"r48\", \"50\": \"r48\", \"51\": \"r48\", \"52\": \"r48\", \"53\": \"r48\", \"54\": \"r48\", \"55\": \"r48\", \"57\": \"r48\" }, { \"4\": 85, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 87, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 89, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r13\", \"24\": \"r13\", \"25\": \"r13\", \"26\": \"r13\", \"27\": \"r13\", \"28\": \"r13\", \"29\": \"r13\", \"30\": \"r13\", \"31\": \"r13\", \"32\": \"r13\", \"33\": \"r13\", \"34\": \"r13\", \"35\": \"r13\", \"36\": \"r13\", \"37\": \"r13\", \"38\": \"r13\", \"39\": \"r13\", \"40\": \"r13\", \"41\": \"r13\", \"42\": \"r13\", \"43\": \"r13\", \"44\": \"r13\", \"45\": \"r13\", \"52\": \"r13\", \"53\": \"r13\", \"54\": \"r13\", \"55\": \"r13\", \"57\": \"r13\" }, { \"23\": \"r37\", \"24\": \"r37\", \"25\": \"r37\", \"26\": \"r37\", \"27\": \"r37\", \"28\": \"r37\", \"29\": \"r37\", \"30\": \"r37\", \"31\": \"r37\", \"32\": \"r37\", \"33\": \"r37\", \"34\": \"r37\", \"35\": \"r37\", \"36\": \"r37\", \"37\": \"r37\", \"38\": \"r37\", \"39\": \"r37\", \"40\": \"r37\", \"41\": \"r37\", \"42\": \"r37\", \"43\": \"r37\", \"44\": \"r37\", \"45\": \"r37\", \"52\": \"r37\", \"53\": \"r37\", \"54\": \"r37\", \"55\": \"r37\", \"57\": \"r37\" }, { \"23\": \"r39\", \"24\": \"r39\", \"25\": \"r39\", \"26\": \"r39\", \"27\": \"r39\", \"28\": \"r39\", \"29\": \"r39\", \"30\": \"r39\", \"31\": \"r39\", \"32\": \"r39\", \"33\": \"r39\", \"34\": \"r39\", \"35\": \"r39\", \"36\": \"r39\", \"37\": \"r39\", \"38\": \"r39\", \"39\": \"r39\", \"40\": \"r39\", \"41\": \"r39\", \"42\": \"r39\", \"43\": \"r39\", \"44\": \"r39\", \"45\": \"r39\", \"46\": \"s56\", \"52\": \"r39\", \"53\": \"r39\", \"54\": \"r39\", \"55\": \"r39\", \"57\": \"r39\" }, { \"23\": \"r41\", \"24\": \"r41\", \"25\": \"r41\", \"26\": \"r41\", \"27\": \"r41\", \"28\": \"r41\", \"29\": \"r41\", \"30\": \"r41\", \"31\": \"r41\", \"32\": \"r41\", \"33\": \"r41\", \"34\": \"r41\", \"35\": \"r41\", \"36\": \"r41\", \"37\": \"r41\", \"38\": \"r41\", \"39\": \"r41\", \"40\": \"r41\", \"41\": \"r41\", \"42\": \"r41\", \"43\": \"r41\", \"44\": \"r41\", \"45\": \"r41\", \"46\": \"r41\", \"52\": \"r41\", \"53\": \"r41\", \"54\": \"r41\", \"55\": \"r41\", \"57\": \"r41\" }, { \"23\": \"r42\", \"24\": \"r42\", \"25\": \"r42\", \"26\": \"r42\", \"27\": \"r42\", \"28\": \"r42\", \"29\": \"r42\", \"30\": \"r42\", \"31\": \"r42\", \"32\": \"r42\", \"33\": \"r42\", \"34\": \"r42\", \"35\": \"r42\", \"36\": \"r42\", \"37\": \"r42\", \"38\": \"r42\", \"39\": \"r42\", \"40\": \"r42\", \"41\": \"r42\", \"42\": \"r42\", \"43\": \"r42\", \"44\": \"r42\", \"45\": \"r42\", \"46\": \"r42\", \"52\": \"r42\", \"53\": \"r42\", \"54\": \"r42\", \"55\": \"r42\", \"57\": \"r42\" }, { \"23\": \"r43\", \"24\": \"r43\", \"25\": \"r43\", \"26\": \"r43\", \"27\": \"r43\", \"28\": \"r43\", \"29\": \"r43\", \"30\": \"r43\", \"31\": \"r43\", \"32\": \"r43\", \"33\": \"r43\", \"34\": \"r43\", \"35\": \"r43\", \"36\": \"r43\", \"37\": \"r43\", \"38\": \"r43\", \"39\": \"r43\", \"40\": \"r43\", \"41\": \"r43\", \"42\": \"r43\", \"43\": \"r43\", \"44\": \"r43\", \"45\": \"r43\", \"46\": \"r43\", \"52\": \"r43\", \"53\": \"r43\", \"54\": \"r43\", \"55\": \"r43\", \"57\": \"r43\" }, { \"23\": \"r44\", \"24\": \"r44\", \"25\": \"r44\", \"26\": \"r44\", \"27\": \"r44\", \"28\": \"r44\", \"29\": \"r44\", \"30\": \"r44\", \"31\": \"r44\", \"32\": \"r44\", \"33\": \"r44\", \"34\": \"r44\", \"35\": \"r44\", \"36\": \"r44\", \"37\": \"r44\", \"38\": \"r44\", \"39\": \"r44\", \"40\": \"r44\", \"41\": \"r44\", \"42\": \"r44\", \"43\": \"r44\", \"44\": \"r44\", \"45\": \"r44\", \"46\": \"r44\", \"52\": \"r44\", \"53\": \"r44\", \"54\": \"r44\", \"55\": \"r44\", \"57\": \"r44\" }, { \"23\": \"r45\", \"24\": \"r45\", \"25\": \"r45\", \"26\": \"r45\", \"27\": \"r45\", \"28\": \"r45\", \"29\": \"r45\", \"30\": \"r45\", \"31\": \"r45\", \"32\": \"r45\", \"33\": \"r45\", \"34\": \"r45\", \"35\": \"r45\", \"36\": \"r45\", \"37\": \"r45\", \"38\": \"r45\", \"39\": \"r45\", \"40\": \"r45\", \"41\": \"r45\", \"42\": \"r45\", \"43\": \"r45\", \"44\": \"r45\", \"45\": \"r45\", \"46\": \"r45\", \"52\": \"r45\", \"53\": \"r45\", \"54\": \"r45\", \"55\": \"r45\", \"57\": \"r45\" }, { \"23\": \"r46\", \"24\": \"r46\", \"25\": \"r46\", \"26\": \"r46\", \"27\": \"r46\", \"28\": \"r46\", \"29\": \"r46\", \"30\": \"r46\", \"31\": \"r46\", \"32\": \"r46\", \"33\": \"r46\", \"34\": \"r46\", \"35\": \"r46\", \"36\": \"r46\", \"37\": \"r46\", \"38\": \"r46\", \"39\": \"r46\", \"40\": \"r46\", \"41\": \"r46\", \"42\": \"r46\", \"43\": \"r46\", \"44\": \"r46\", \"45\": \"r46\", \"46\": \"r46\", \"52\": \"r46\", \"53\": \"r46\", \"54\": \"r46\", \"55\": \"r46\", \"57\": \"r46\" }, { \"23\": \"r40\", \"24\": \"r40\", \"25\": \"r40\", \"26\": \"r40\", \"27\": \"r40\", \"28\": \"r40\", \"29\": \"r40\", \"30\": \"r40\", \"31\": \"r40\", \"32\": \"r40\", \"33\": \"r40\", \"34\": \"r40\", \"35\": \"r40\", \"36\": \"r40\", \"37\": \"r40\", \"38\": \"r40\", \"39\": \"r40\", \"40\": \"r40\", \"41\": \"r40\", \"42\": \"r40\", \"43\": \"r40\", \"44\": \"r40\", \"45\": \"r40\", \"52\": \"r40\", \"53\": \"r40\", \"54\": \"r40\", \"55\": \"r40\", \"57\": \"r40\" }, { \"25\": \"s12\", \"31\": \"s58\" }, { \"23\": \"r18\", \"24\": \"r18\", \"25\": \"r18\", \"26\": \"r18\", \"27\": \"r18\", \"28\": \"r18\", \"29\": \"r18\", \"30\": \"r18\", \"31\": \"r18\", \"32\": \"r18\", \"33\": \"r18\", \"34\": \"r18\", \"35\": \"r18\", \"36\": \"r18\", \"37\": \"r18\", \"38\": \"r18\", \"39\": \"r18\", \"40\": \"r18\", \"41\": \"r18\", \"42\": \"r18\", \"43\": \"r18\", \"44\": \"r18\", \"45\": \"r18\", \"52\": \"r18\", \"53\": \"r18\", \"54\": \"r18\", \"55\": \"r18\", \"57\": \"r18\" }, { \"25\": \"s12\", \"31\": \"s60\" }, { \"23\": \"r19\", \"24\": \"r19\", \"25\": \"r19\", \"26\": \"r19\", \"27\": \"r19\", \"28\": \"r19\", \"29\": \"r19\", \"30\": \"r19\", \"31\": \"r19\", \"32\": \"r19\", \"33\": \"r19\", \"34\": \"r19\", \"35\": \"r19\", \"36\": \"r19\", \"37\": \"r19\", \"38\": \"r19\", \"39\": \"r19\", \"40\": \"r19\", \"41\": \"r19\", \"42\": \"r19\", \"43\": \"r19\", \"44\": \"r19\", \"45\": \"r19\", \"52\": \"r19\", \"53\": \"r19\", \"54\": \"r19\", \"55\": \"r19\", \"57\": \"r19\" }, { \"25\": \"s12\", \"31\": \"s62\" }, { \"23\": \"r20\", \"24\": \"r20\", \"25\": \"r20\", \"26\": \"r20\", \"27\": \"r20\", \"28\": \"r20\", \"29\": \"r20\", \"30\": \"r20\", \"31\": \"r20\", \"32\": \"r20\", \"33\": \"r20\", \"34\": \"r20\", \"35\": \"r20\", \"36\": \"r20\", \"37\": \"r20\", \"38\": \"r20\", \"39\": \"r20\", \"40\": \"r20\", \"41\": \"r20\", \"42\": \"r20\", \"43\": \"r20\", \"44\": \"r20\", \"45\": \"r20\", \"52\": \"r20\", \"53\": \"r20\", \"54\": \"r20\", \"55\": \"r20\", \"57\": \"r20\" }, { \"25\": \"s12\", \"31\": \"s64\" }, { \"23\": \"r21\", \"24\": \"r21\", \"25\": \"r21\", \"26\": \"r21\", \"27\": \"r21\", \"28\": \"r21\", \"29\": \"r21\", \"30\": \"r21\", \"31\": \"r21\", \"32\": \"r21\", \"33\": \"r21\", \"34\": \"r21\", \"35\": \"r21\", \"36\": \"r21\", \"37\": \"r21\", \"38\": \"r21\", \"39\": \"r21\", \"40\": \"r21\", \"41\": \"r21\", \"42\": \"r21\", \"43\": \"r21\", \"44\": \"r21\", \"45\": \"r21\", \"52\": \"r21\", \"53\": \"r21\", \"54\": \"r21\", \"55\": \"r21\", \"57\": \"r21\" }, { \"56\": \"s72\" }, { \"56\": \"r55\" }, { \"10\": 70, \"20\": 73, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r56\", \"58\": \"s74\" }, { \"24\": \"r62\", \"28\": \"r62\", \"35\": \"r62\", \"36\": \"r62\", \"37\": \"r62\", \"38\": \"r62\", \"39\": \"r62\", \"40\": \"r62\", \"41\": \"r62\", \"42\": \"r62\", \"43\": \"r62\", \"44\": \"r62\", \"45\": \"r62\", \"56\": \"r62\", \"58\": \"r62\" }, { \"24\": \"r63\", \"28\": \"r63\", \"35\": \"r63\", \"36\": \"r63\", \"37\": \"r63\", \"38\": \"r63\", \"39\": \"r63\", \"40\": \"r63\", \"41\": \"r63\", \"42\": \"r63\", \"43\": \"r63\", \"44\": \"r63\", \"45\": \"r63\", \"56\": \"r63\", \"58\": \"r63\" }, { \"24\": \"r64\", \"28\": \"r64\", \"35\": \"r64\", \"36\": \"r64\", \"37\": \"r64\", \"38\": \"r64\", \"39\": \"r64\", \"40\": \"r64\", \"41\": \"r64\", \"42\": \"r64\", \"43\": \"r64\", \"44\": \"r64\", \"45\": \"r64\", \"56\": \"r64\", \"58\": \"r64\" }, { \"24\": \"r65\", \"28\": \"r65\", \"35\": \"r65\", \"36\": \"r65\", \"37\": \"r65\", \"38\": \"r65\", \"39\": \"r65\", \"40\": \"r65\", \"41\": \"r65\", \"42\": \"r65\", \"43\": \"r65\", \"44\": \"r65\", \"45\": \"r65\", \"56\": \"r65\", \"58\": \"r65\" }, { \"23\": \"r52\", \"24\": \"r52\", \"25\": \"r52\", \"26\": \"r52\", \"27\": \"r52\", \"28\": \"r52\", \"29\": \"r52\", \"30\": \"r52\", \"31\": \"r52\", \"32\": \"r52\", \"33\": \"r52\", \"34\": \"r52\", \"35\": \"r52\", \"36\": \"r52\", \"37\": \"r52\", \"38\": \"r52\", \"39\": \"r52\", \"40\": \"r52\", \"41\": \"r52\", \"42\": \"r52\", \"43\": \"r52\", \"44\": \"r52\", \"45\": \"r52\", \"46\": \"r52\", \"47\": \"r52\", \"48\": \"r52\", \"49\": \"r52\", \"50\": \"r52\", \"51\": \"r52\", \"52\": \"r52\", \"53\": \"r52\", \"54\": \"r52\", \"55\": \"r52\", \"57\": \"r52\" }, { \"56\": \"r57\" }, { \"10\": 70, \"21\": 77, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"56\": \"r59\" }, { \"10\": 70, \"20\": 79, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r63\", \"58\": \"s80\" }, { \"10\": 70, \"18\": 78, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r58\" }, { \"56\": \"r60\" }, { \"10\": 70, \"21\": 81, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 82, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r61\" }, { \"56\": \"s84\" }, { \"23\": \"r53\", \"24\": \"r53\", \"25\": \"r53\", \"26\": \"r53\", \"27\": \"r53\", \"28\": \"r53\", \"29\": \"r53\", \"30\": \"r53\", \"31\": \"r53\", \"32\": \"r53\", \"33\": \"r53\", \"34\": \"r53\", \"35\": \"r53\", \"36\": \"r53\", \"37\": \"r53\", \"38\": \"r53\", \"39\": \"r53\", \"40\": \"r53\", \"41\": \"r53\", \"42\": \"r53\", \"43\": \"r53\", \"44\": \"r53\", \"45\": \"r53\", \"46\": \"r53\", \"47\": \"r53\", \"48\": \"r53\", \"49\": \"r53\", \"50\": \"r53\", \"51\": \"r53\", \"52\": \"r53\", \"53\": \"r53\", \"54\": \"r53\", \"55\": \"r53\", \"57\": \"r53\" }, { \"25\": \"s12\", \"31\": \"s86\" }, { \"23\": \"r49\", \"24\": \"r49\", \"25\": \"r49\", \"26\": \"r49\", \"27\": \"r49\", \"28\": \"r49\", \"29\": \"r49\", \"30\": \"r49\", \"31\": \"r49\", \"32\": \"r49\", \"33\": \"r49\", \"34\": \"r49\", \"35\": \"r49\", \"36\": \"r49\", \"37\": \"r49\", \"38\": \"r49\", \"39\": \"r49\", \"40\": \"r49\", \"41\": \"r49\", \"42\": \"r49\", \"43\": \"r49\", \"44\": \"r49\", \"45\": \"r49\", \"46\": \"r49\", \"47\": \"r49\", \"48\": \"r49\", \"49\": \"r49\", \"50\": \"r49\", \"51\": \"r49\", \"52\": \"r49\", \"53\": \"r49\", \"54\": \"r49\", \"55\": \"r49\", \"57\": \"r49\" }, { \"25\": \"s12\", \"31\": \"s88\" }, { \"23\": \"r50\", \"24\": \"r50\", \"25\": \"r50\", \"26\": \"r50\", \"27\": \"r50\", \"28\": \"r50\", \"29\": \"r50\", \"30\": \"r50\", \"31\": \"r50\", \"32\": \"r50\", \"33\": \"r50\", \"34\": \"r50\", \"35\": \"r50\", \"36\": \"r50\", \"37\": \"r50\", \"38\": \"r50\", \"39\": \"r50\", \"40\": \"r50\", \"41\": \"r50\", \"42\": \"r50\", \"43\": \"r50\", \"44\": \"r50\", \"45\": \"r50\", \"46\": \"r50\", \"47\": \"r50\", \"48\": \"r50\", \"49\": \"r50\", \"50\": \"r50\", \"51\": \"r50\", \"52\": \"r50\", \"53\": \"r50\", \"54\": \"r50\", \"55\": \"r50\", \"57\": \"r50\" }, { \"25\": \"s12\", \"31\": \"s90\" }, { \"23\": \"r51\", \"24\": \"r51\", \"25\": \"r51\", \"26\": \"r51\", \"27\": \"r51\", \"28\": \"r51\", \"29\": \"r51\", \"30\": \"r51\", \"31\": \"r51\", \"32\": \"r51\", \"33\": \"r51\", \"34\": \"r51\", \"35\": \"r51\", \"36\": \"r51\", \"37\": \"r51\", \"38\": \"r51\", \"39\": \"r51\", \"40\": \"r51\", \"41\": \"r51\", \"42\": \"r51\", \"43\": \"r51\", \"44\": \"r51\", \"45\": \"r51\", \"46\": \"r51\", \"47\": \"r51\", \"48\": \"r51\", \"49\": \"r51\", \"50\": \"r51\", \"51\": \"r51\", \"52\": \"r51\", \"53\": \"r51\", \"54\": \"r51\", \"55\": \"r51\", \"57\": \"r51\" }];\n\n/**\n * Parsing stack.\n */\nvar stack = [];\n\n/**\n * Tokenizer instance.\n */\nvar tokenizer = void 0;\n/**\n * Generic tokenizer used by the parser in the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * See `--custom-tokinzer` to skip this generation, and use a custom one.\n */\n\nvar lexRules = [[/^#[^\\n]+/, function () {/* skip comments */}], [/^\\s+/, function () {/* skip whitespace */}], [/^-/, function () {\n  return 'DASH';\n}], [/^\\//, function () {\n  return 'CHAR';\n}], [/^#/, function () {\n  return 'CHAR';\n}], [/^\\|/, function () {\n  return 'CHAR';\n}], [/^\\./, function () {\n  return 'CHAR';\n}], [/^\\{/, function () {\n  return 'CHAR';\n}], [/^\\{\\d+\\}/, function () {\n  return 'RANGE_EXACT';\n}], [/^\\{\\d+,\\}/, function () {\n  return 'RANGE_OPEN';\n}], [/^\\{\\d+,\\d+\\}/, function () {\n  return 'RANGE_CLOSED';\n}], [/^\\\\k<(([\\u0041-\\u005a\\u0061-\\u007a\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e-\\u066f\\u0671-\\u06d3\\u06d5\\u06e5-\\u06e6\\u06ee-\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4-\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0-\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c-\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2-\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065-\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb]|\\ud838[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\u0a01-\\u0a03\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a3c\\u0a3e-\\u0a42\\u0a47-\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a59-\\u0a5c\\u0a5e\\u0a66-\\u0a75\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\u0b01-\\u0b03\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3c-\\u0b44\\u0b47-\\u0b48\\u0b4b-\\u0b4d\\u0b56-\\u0b57\\u0b5c-\\u0b5d\\u0b5f-\\u0b63\\u0b66-\\u0b6f\\u0b71\\u0b82-\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\u0c80-\\u0c83\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbc-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5-\\u0cd6\\u0cde\\u0ce0-\\u0ce3\\u0ce6-\\u0cef\\u0cf1-\\u0cf2\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\u109d\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00-\\ude03\\ude05-\\ude06\\ude0c-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n  var groupName = yytext.slice(3, -1);\n  validateUnicodeGroupName(groupName, this.getCurrentState());\n  return 'NAMED_GROUP_REF';\n}], [/^\\\\b/, function () {\n  return 'ESC_b';\n}], [/^\\\\B/, function () {\n  return 'ESC_B';\n}], [/^\\\\c[a-zA-Z]/, function () {\n  return 'CTRL_CH';\n}], [/^\\\\0\\d{1,2}/, function () {\n  return 'OCT_CODE';\n}], [/^\\\\0/, function () {\n  return 'DEC_CODE';\n}], [/^\\\\\\d{1,3}/, function () {\n  return 'DEC_CODE';\n}], [/^\\\\u[dD][89abAB][0-9a-fA-F]{2}\\\\u[dD][c-fC-F][0-9a-fA-F]{2}/, function () {\n  return 'U_CODE_SURROGATE';\n}], [/^\\\\u\\{[0-9a-fA-F]{1,}\\}/, function () {\n  return 'U_CODE';\n}], [/^\\\\u[0-9a-fA-F]{4}/, function () {\n  return 'U_CODE';\n}], [/^\\\\[pP]\\{\\w+(?:=\\w+)?\\}/, function () {\n  return 'U_PROP_VALUE_EXP';\n}], [/^\\\\x[0-9a-fA-F]{2}/, function () {\n  return 'HEX_CODE';\n}], [/^\\\\[tnrdDsSwWvf]/, function () {\n  return 'META_CHAR';\n}], [/^\\\\\\//, function () {\n  return 'ESC_CHAR';\n}], [/^\\\\[ #]/, function () {\n  return 'ESC_CHAR';\n}], [/^\\\\[\\^\\$\\.\\*\\+\\?\\(\\)\\\\\\[\\]\\{\\}\\|\\/]/, function () {\n  return 'ESC_CHAR';\n}], [/^\\\\[^*?+\\[()\\\\|]/, function () {\n  var s = this.getCurrentState();\n  if (s === 'u_class' && yytext === \"\\\\-\") {\n    return 'ESC_CHAR';\n  } else if (s === 'u' || s === 'xu' || s === 'u_class') {\n    throw new SyntaxError('invalid Unicode escape ' + yytext);\n  }\n  return 'ESC_CHAR';\n}], [/^\\(/, function () {\n  return 'CHAR';\n}], [/^\\)/, function () {\n  return 'CHAR';\n}], [/^\\(\\?=/, function () {\n  return 'POS_LA_ASSERT';\n}], [/^\\(\\?!/, function () {\n  return 'NEG_LA_ASSERT';\n}], [/^\\(\\?<=/, function () {\n  return 'POS_LB_ASSERT';\n}], [/^\\(\\?<!/, function () {\n  return 'NEG_LB_ASSERT';\n}], [/^\\(\\?:/, function () {\n  return 'NON_CAPTURE_GROUP';\n}], [/^\\(\\?<(([\\u0041-\\u005a\\u0061-\\u007a\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e-\\u066f\\u0671-\\u06d3\\u06d5\\u06e5-\\u06e6\\u06ee-\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4-\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0-\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c-\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2-\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065-\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb]|\\ud838[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\u0a01-\\u0a03\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a3c\\u0a3e-\\u0a42\\u0a47-\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a59-\\u0a5c\\u0a5e\\u0a66-\\u0a75\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\u0b01-\\u0b03\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3c-\\u0b44\\u0b47-\\u0b48\\u0b4b-\\u0b4d\\u0b56-\\u0b57\\u0b5c-\\u0b5d\\u0b5f-\\u0b63\\u0b66-\\u0b6f\\u0b71\\u0b82-\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\u0c80-\\u0c83\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbc-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5-\\u0cd6\\u0cde\\u0ce0-\\u0ce3\\u0ce6-\\u0cef\\u0cf1-\\u0cf2\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\u109d\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00-\\ude03\\ude05-\\ude06\\ude0c-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n  yytext = yytext.slice(3, -1);\n  validateUnicodeGroupName(yytext, this.getCurrentState());\n  return 'NAMED_CAPTURE_GROUP';\n}], [/^\\(/, function () {\n  return 'L_PAREN';\n}], [/^\\)/, function () {\n  return 'R_PAREN';\n}], [/^[*?+[^$]/, function () {\n  return 'CHAR';\n}], [/^\\\\\\]/, function () {\n  return 'ESC_CHAR';\n}], [/^\\]/, function () {\n  this.popState();return 'R_BRACKET';\n}], [/^\\^/, function () {\n  return 'BOS';\n}], [/^\\$/, function () {\n  return 'EOS';\n}], [/^\\*/, function () {\n  return 'STAR';\n}], [/^\\?/, function () {\n  return 'Q_MARK';\n}], [/^\\+/, function () {\n  return 'PLUS';\n}], [/^\\|/, function () {\n  return 'BAR';\n}], [/^\\./, function () {\n  return 'ANY';\n}], [/^\\//, function () {\n  return 'SLASH';\n}], [/^[^*?+\\[()\\\\|]/, function () {\n  return 'CHAR';\n}], [/^\\[\\^/, function () {\n  var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'NEG_CLASS';\n}], [/^\\[/, function () {\n  var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'L_BRACKET';\n}]];\nvar lexRulesByConditions = { \"INITIAL\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"xu\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"x\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u_class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51] };\n\nvar EOF_TOKEN = {\n  type: EOF,\n  value: ''\n};\n\ntokenizer = {\n  initString: function initString(string) {\n    this._string = string;\n    this._cursor = 0;\n\n    this._states = ['INITIAL'];\n    this._tokensQueue = [];\n\n    this._currentLine = 1;\n    this._currentColumn = 0;\n    this._currentLineBeginOffset = 0;\n\n    /**\n     * Matched token location data.\n     */\n    this._tokenStartOffset = 0;\n    this._tokenEndOffset = 0;\n    this._tokenStartLine = 1;\n    this._tokenEndLine = 1;\n    this._tokenStartColumn = 0;\n    this._tokenEndColumn = 0;\n\n    return this;\n  },\n\n\n  /**\n   * Returns tokenizer states.\n   */\n  getStates: function getStates() {\n    return this._states;\n  },\n  getCurrentState: function getCurrentState() {\n    return this._states[this._states.length - 1];\n  },\n  pushState: function pushState(state) {\n    this._states.push(state);\n  },\n  begin: function begin(state) {\n    this.pushState(state);\n  },\n  popState: function popState() {\n    if (this._states.length > 1) {\n      return this._states.pop();\n    }\n    return this._states[0];\n  },\n  getNextToken: function getNextToken() {\n    // Something was queued, return it.\n    if (this._tokensQueue.length > 0) {\n      return this.onToken(this._toToken(this._tokensQueue.shift()));\n    }\n\n    if (!this.hasMoreTokens()) {\n      return this.onToken(EOF_TOKEN);\n    }\n\n    var string = this._string.slice(this._cursor);\n    var lexRulesForState = lexRulesByConditions[this.getCurrentState()];\n\n    for (var i = 0; i < lexRulesForState.length; i++) {\n      var lexRuleIndex = lexRulesForState[i];\n      var lexRule = lexRules[lexRuleIndex];\n\n      var matched = this._match(string, lexRule[0]);\n\n      // Manual handling of EOF token (the end of string). Return it\n      // as `EOF` symbol.\n      if (string === '' && matched === '') {\n        this._cursor++;\n      }\n\n      if (matched !== null) {\n        yytext = matched;\n        yyleng = yytext.length;\n        var token = lexRule[1].call(this);\n\n        if (!token) {\n          return this.getNextToken();\n        }\n\n        // If multiple tokens are returned, save them to return\n        // on next `getNextToken` call.\n\n        if (Array.isArray(token)) {\n          var tokensToQueue = token.slice(1);\n          token = token[0];\n          if (tokensToQueue.length > 0) {\n            var _tokensQueue;\n\n            (_tokensQueue = this._tokensQueue).unshift.apply(_tokensQueue, _toConsumableArray(tokensToQueue));\n          }\n        }\n\n        return this.onToken(this._toToken(token, yytext));\n      }\n    }\n\n    if (this.isEOF()) {\n      this._cursor++;\n      return EOF_TOKEN;\n    }\n\n    this.throwUnexpectedToken(string[0], this._currentLine, this._currentColumn);\n  },\n\n\n  /**\n   * Throws default \"Unexpected token\" exception, showing the actual\n   * line from the source, pointing with the ^ marker to the bad token.\n   * In addition, shows `line:column` location.\n   */\n  throwUnexpectedToken: function throwUnexpectedToken(symbol, line, column) {\n    var lineSource = this._string.split('\\n')[line - 1];\n    var lineData = '';\n\n    if (lineSource) {\n      var pad = ' '.repeat(column);\n      lineData = '\\n\\n' + lineSource + '\\n' + pad + '^\\n';\n    }\n\n    throw new SyntaxError(lineData + 'Unexpected token: \"' + symbol + '\" ' + ('at ' + line + ':' + column + '.'));\n  },\n  getCursor: function getCursor() {\n    return this._cursor;\n  },\n  getCurrentLine: function getCurrentLine() {\n    return this._currentLine;\n  },\n  getCurrentColumn: function getCurrentColumn() {\n    return this._currentColumn;\n  },\n  _captureLocation: function _captureLocation(matched) {\n    var nlRe = /\\n/g;\n\n    // Absolute offsets.\n    this._tokenStartOffset = this._cursor;\n\n    // Line-based locations, start.\n    this._tokenStartLine = this._currentLine;\n    this._tokenStartColumn = this._tokenStartOffset - this._currentLineBeginOffset;\n\n    // Extract `\\n` in the matched token.\n    var nlMatch = void 0;\n    while ((nlMatch = nlRe.exec(matched)) !== null) {\n      this._currentLine++;\n      this._currentLineBeginOffset = this._tokenStartOffset + nlMatch.index + 1;\n    }\n\n    this._tokenEndOffset = this._cursor + matched.length;\n\n    // Line-based locations, end.\n    this._tokenEndLine = this._currentLine;\n    this._tokenEndColumn = this._currentColumn = this._tokenEndOffset - this._currentLineBeginOffset;\n  },\n  _toToken: function _toToken(tokenType) {\n    var yytext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n    return {\n      // Basic data.\n      type: tokenType,\n      value: yytext,\n\n      // Location data.\n      startOffset: this._tokenStartOffset,\n      endOffset: this._tokenEndOffset,\n      startLine: this._tokenStartLine,\n      endLine: this._tokenEndLine,\n      startColumn: this._tokenStartColumn,\n      endColumn: this._tokenEndColumn\n    };\n  },\n  isEOF: function isEOF() {\n    return this._cursor === this._string.length;\n  },\n  hasMoreTokens: function hasMoreTokens() {\n    return this._cursor <= this._string.length;\n  },\n  _match: function _match(string, regexp) {\n    var matched = string.match(regexp);\n    if (matched) {\n      // Handle `\\n` in the matched token to track line numbers.\n      this._captureLocation(matched[0]);\n      this._cursor += matched[0].length;\n      return matched[0];\n    }\n    return null;\n  },\n\n\n  /**\n   * Allows analyzing, and transforming token. Default implementation\n   * just passes the token through.\n   */\n  onToken: function onToken(token) {\n    return token;\n  }\n};\n\n/**\n * Expose tokenizer so it can be accessed in semantic actions.\n */\nyy.lexer = tokenizer;\nyy.tokenizer = tokenizer;\n\n/**\n * Global parsing options. Some options can be shadowed per\n * each `parse` call, if the optations are passed.\n *\n * Initalized to the `captureLocations` which is passed\n * from the generator. Other options can be added at runtime.\n */\nyy.options = {\n  captureLocations: true\n};\n\n/**\n * Parsing module.\n */\nvar yyparse = {\n  /**\n   * Sets global parsing options.\n   */\n  setOptions: function setOptions(options) {\n    yy.options = options;\n    return this;\n  },\n\n\n  /**\n   * Returns parsing options.\n   */\n  getOptions: function getOptions() {\n    return yy.options;\n  },\n\n\n  /**\n   * Parses a string.\n   */\n  parse: function parse(string, parseOptions) {\n    if (!tokenizer) {\n      throw new Error('Tokenizer instance wasn\\'t specified.');\n    }\n\n    tokenizer.initString(string);\n\n    /**\n     * If parse options are passed, override global parse options for\n     * this call, and later restore global options.\n     */\n    var globalOptions = yy.options;\n    if (parseOptions) {\n      yy.options = Object.assign({}, yy.options, parseOptions);\n    }\n\n    /**\n     * Allow callers to do setup work based on the\n     * parsing string, and passed options.\n     */\n    yyparse.onParseBegin(string, tokenizer, yy.options);\n\n    stack.length = 0;\n    stack.push(0);\n\n    var token = tokenizer.getNextToken();\n    var shiftedToken = null;\n\n    do {\n      if (!token) {\n        // Restore options.\n        yy.options = globalOptions;\n        unexpectedEndOfInput();\n      }\n\n      var state = stack[stack.length - 1];\n      var column = tokens[token.type];\n\n      if (!table[state].hasOwnProperty(column)) {\n        yy.options = globalOptions;\n        unexpectedToken(token);\n      }\n\n      var entry = table[state][column];\n\n      // Shift action.\n      if (entry[0] === 's') {\n        var _loc2 = null;\n\n        if (yy.options.captureLocations) {\n          _loc2 = {\n            startOffset: token.startOffset,\n            endOffset: token.endOffset,\n            startLine: token.startLine,\n            endLine: token.endLine,\n            startColumn: token.startColumn,\n            endColumn: token.endColumn\n          };\n        }\n\n        shiftedToken = this.onShift(token);\n\n        stack.push({ symbol: tokens[shiftedToken.type], semanticValue: shiftedToken.value, loc: _loc2 }, Number(entry.slice(1)));\n\n        token = tokenizer.getNextToken();\n      }\n\n      // Reduce action.\n      else if (entry[0] === 'r') {\n          var productionNumber = entry.slice(1);\n          var production = productions[productionNumber];\n          var hasSemanticAction = typeof production[2] === 'function';\n          var semanticValueArgs = hasSemanticAction ? [] : null;\n\n          var locationArgs = hasSemanticAction && yy.options.captureLocations ? [] : null;\n\n          if (production[1] !== 0) {\n            var rhsLength = production[1];\n            while (rhsLength-- > 0) {\n              stack.pop();\n              var stackEntry = stack.pop();\n\n              if (hasSemanticAction) {\n                semanticValueArgs.unshift(stackEntry.semanticValue);\n\n                if (locationArgs) {\n                  locationArgs.unshift(stackEntry.loc);\n                }\n              }\n            }\n          }\n\n          var reduceStackEntry = { symbol: production[0] };\n\n          if (hasSemanticAction) {\n            yytext = shiftedToken ? shiftedToken.value : null;\n            yyleng = shiftedToken ? shiftedToken.value.length : null;\n\n            var semanticActionArgs = locationArgs !== null ? semanticValueArgs.concat(locationArgs) : semanticValueArgs;\n\n            production[2].apply(production, _toConsumableArray(semanticActionArgs));\n\n            reduceStackEntry.semanticValue = __;\n\n            if (locationArgs) {\n              reduceStackEntry.loc = __loc;\n            }\n          }\n\n          var nextState = stack[stack.length - 1];\n          var symbolToReduceWith = production[0];\n\n          stack.push(reduceStackEntry, table[nextState][symbolToReduceWith]);\n        }\n\n        // Accept.\n        else if (entry === 'acc') {\n            stack.pop();\n            var parsed = stack.pop();\n\n            if (stack.length !== 1 || stack[0] !== 0 || tokenizer.hasMoreTokens()) {\n              // Restore options.\n              yy.options = globalOptions;\n              unexpectedToken(token);\n            }\n\n            if (parsed.hasOwnProperty('semanticValue')) {\n              yy.options = globalOptions;\n              yyparse.onParseEnd(parsed.semanticValue);\n              return parsed.semanticValue;\n            }\n\n            yyparse.onParseEnd();\n\n            // Restore options.\n            yy.options = globalOptions;\n            return true;\n          }\n    } while (tokenizer.hasMoreTokens() || stack.length > 1);\n  },\n  setTokenizer: function setTokenizer(customTokenizer) {\n    tokenizer = customTokenizer;\n    return yyparse;\n  },\n  getTokenizer: function getTokenizer() {\n    return tokenizer;\n  },\n  onParseBegin: function onParseBegin(string, tokenizer, options) {},\n  onParseEnd: function onParseEnd(parsed) {},\n\n\n  /**\n   * Allows analyzing, and transforming shifted token. Default implementation\n   * just passes the token through.\n   */\n  onShift: function onShift(token) {\n    return token;\n  }\n};\n\n/**\n * Tracks capturing groups.\n */\nvar capturingGroupsCount = 0;\n\n/**\n * Tracks named groups.\n */\nvar namedGroups = {};\n\n/**\n * Parsing string.\n */\nvar parsingString = '';\n\nyyparse.onParseBegin = function (string, lexer) {\n  parsingString = string;\n  capturingGroupsCount = 0;\n  namedGroups = {};\n\n  var lastSlash = string.lastIndexOf('/');\n  var flags = string.slice(lastSlash);\n\n  if (flags.includes('x') && flags.includes('u')) {\n    lexer.pushState('xu');\n  } else {\n    if (flags.includes('x')) {\n      lexer.pushState('x');\n    }\n    if (flags.includes('u')) {\n      lexer.pushState('u');\n    }\n  }\n};\n\n/**\n * On shifting `(` remember its number to used on reduce.\n */\nyyparse.onShift = function (token) {\n  if (token.type === 'L_PAREN' || token.type === 'NAMED_CAPTURE_GROUP') {\n    token.value = new String(token.value);\n    token.value.groupNumber = ++capturingGroupsCount;\n  }\n  return token;\n};\n\n/**\n * Extracts ranges from the range string.\n */\nfunction getRange(text) {\n  var range = text.match(/\\d+/g).map(Number);\n\n  if (Number.isFinite(range[1]) && range[1] < range[0]) {\n    throw new SyntaxError('Numbers out of order in ' + text + ' quantifier');\n  }\n\n  return range;\n}\n\n/**\n * Checks class range\n */\nfunction checkClassRange(from, to) {\n  if (from.kind === 'control' || to.kind === 'control' || !isNaN(from.codePoint) && !isNaN(to.codePoint) && from.codePoint > to.codePoint) {\n    throw new SyntaxError('Range ' + from.value + '-' + to.value + ' out of order in character class');\n  }\n}\n\n// ---------------------- Unicode property -------------------------------------------\n\nvar unicodeProperties = require('../unicode/parser-unicode-properties.js');\n\n/**\n * Unicode property.\n */\nfunction UnicodeProperty(matched, loc) {\n  var negative = matched[1] === 'P';\n  var separatorIdx = matched.indexOf('=');\n\n  var name = matched.slice(3, separatorIdx !== -1 ? separatorIdx : -1);\n  var value = void 0;\n\n  // General_Category allows using only value as a shorthand.\n  var isShorthand = separatorIdx === -1 && unicodeProperties.isGeneralCategoryValue(name);\n\n  // Binary propery name.\n  var isBinaryProperty = separatorIdx === -1 && unicodeProperties.isBinaryPropertyName(name);\n\n  if (isShorthand) {\n    value = name;\n    name = 'General_Category';\n  } else if (isBinaryProperty) {\n    value = name;\n  } else {\n    if (!unicodeProperties.isValidName(name)) {\n      throw new SyntaxError('Invalid unicode property name: ' + name + '.');\n    }\n\n    value = matched.slice(separatorIdx + 1, -1);\n\n    if (!unicodeProperties.isValidValue(name, value)) {\n      throw new SyntaxError('Invalid ' + name + ' unicode property value: ' + value + '.');\n    }\n  }\n\n  return Node({\n    type: 'UnicodeProperty',\n    name: name,\n    value: value,\n    negative: negative,\n    shorthand: isShorthand,\n    binary: isBinaryProperty,\n    canonicalName: unicodeProperties.getCanonicalName(name) || name,\n    canonicalValue: unicodeProperties.getCanonicalValue(value) || value\n  }, loc);\n}\n\n// ----------------------------------------------------------------------------------\n\n\n/**\n * Creates a character node.\n */\nfunction Char(value, kind, loc) {\n  var symbol = void 0;\n  var codePoint = void 0;\n\n  switch (kind) {\n    case 'decimal':\n      {\n        codePoint = Number(value.slice(1));\n        symbol = String.fromCodePoint(codePoint);\n        break;\n      }\n    case 'oct':\n      {\n        codePoint = parseInt(value.slice(1), 8);\n        symbol = String.fromCodePoint(codePoint);\n        break;\n      }\n    case 'hex':\n    case 'unicode':\n      {\n        if (value.lastIndexOf('\\\\u') > 0) {\n          var _value$split$slice = value.split('\\\\u').slice(1),\n              _value$split$slice2 = _slicedToArray(_value$split$slice, 2),\n              lead = _value$split$slice2[0],\n              trail = _value$split$slice2[1];\n\n          lead = parseInt(lead, 16);\n          trail = parseInt(trail, 16);\n          codePoint = (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000;\n\n          symbol = String.fromCodePoint(codePoint);\n        } else {\n          var hex = value.slice(2).replace('{', '');\n          codePoint = parseInt(hex, 16);\n          if (codePoint > 0x10ffff) {\n            throw new SyntaxError('Bad character escape sequence: ' + value);\n          }\n\n          symbol = String.fromCodePoint(codePoint);\n        }\n        break;\n      }\n    case 'meta':\n      {\n        switch (value) {\n          case '\\\\t':\n            symbol = '\\t';\n            codePoint = symbol.codePointAt(0);\n            break;\n          case '\\\\n':\n            symbol = '\\n';\n            codePoint = symbol.codePointAt(0);\n            break;\n          case '\\\\r':\n            symbol = '\\r';\n            codePoint = symbol.codePointAt(0);\n            break;\n          case '\\\\v':\n            symbol = '\\v';\n            codePoint = symbol.codePointAt(0);\n            break;\n          case '\\\\f':\n            symbol = '\\f';\n            codePoint = symbol.codePointAt(0);\n            break;\n          case '\\\\b':\n            symbol = '\\b';\n            codePoint = symbol.codePointAt(0);\n          case '\\\\0':\n            symbol = '\\0';\n            codePoint = 0;\n          case '.':\n            symbol = '.';\n            codePoint = NaN;\n            break;\n          default:\n            codePoint = NaN;\n        }\n        break;\n      }\n    case 'simple':\n      {\n        symbol = value;\n        codePoint = symbol.codePointAt(0);\n        break;\n      }\n  }\n\n  return Node({\n    type: 'Char',\n    value: value,\n    kind: kind,\n    symbol: symbol,\n    codePoint: codePoint\n  }, loc);\n}\n\n/**\n * Valid flags per current ECMAScript spec and\n * stage 3+ proposals.\n */\nvar validFlags = 'gimsuxy';\n\n/**\n * Checks the flags are valid, and that\n * we don't duplicate flags.\n */\nfunction checkFlags(flags) {\n  var seen = new Set();\n\n  var _iteratorNormalCompletion = true;\n  var _didIteratorError = false;\n  var _iteratorError = undefined;\n\n  try {\n    for (var _iterator = flags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n      var flag = _step.value;\n\n      if (seen.has(flag) || !validFlags.includes(flag)) {\n        throw new SyntaxError('Invalid flags: ' + flags);\n      }\n      seen.add(flag);\n    }\n  } catch (err) {\n    _didIteratorError = true;\n    _iteratorError = err;\n  } finally {\n    try {\n      if (!_iteratorNormalCompletion && _iterator.return) {\n        _iterator.return();\n      }\n    } finally {\n      if (_didIteratorError) {\n        throw _iteratorError;\n      }\n    }\n  }\n\n  return flags.split('').sort().join('');\n}\n\n/**\n * Parses patterns like \\1, \\2, etc. either as a backreference\n * to a group, or a deciaml char code.\n */\nfunction GroupRefOrDecChar(text, textLoc) {\n  var reference = Number(text.slice(1));\n\n  if (reference > 0 && reference <= capturingGroupsCount) {\n    return Node({\n      type: 'Backreference',\n      kind: 'number',\n      number: reference,\n      reference: reference\n    }, textLoc);\n  }\n\n  return Char(text, 'decimal', textLoc);\n}\n\n/**\n * Unicode names.\n */\nvar uReStart = /^\\\\u[0-9a-fA-F]{4}/; // only matches start of string\nvar ucpReStart = /^\\\\u\\{[0-9a-fA-F]{1,}\\}/; // only matches start of string\nvar ucpReAnywhere = /\\\\u\\{[0-9a-fA-F]{1,}\\}/; // matches anywhere in string\n\n/**\n * Validates Unicode group name.\n */\nfunction validateUnicodeGroupName(name, state) {\n  var isUnicodeName = ucpReAnywhere.test(name);\n  var isUnicodeState = state === 'u' || state === 'xu' || state === 'u_class';\n\n  if (isUnicodeName && !isUnicodeState) {\n    throw new SyntaxError('invalid group Unicode name \"' + name + '\", use `u` flag.');\n  }\n\n  return name;\n}\n\n// Matches the following production: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n//\n//  RegExpUnicodeEscapeSequence ::\n//    `u` LeadSurrogate `\\u` TrailSurrogate   # as 'leadSurrogate', 'trailSurrogate'\n//    `u` LeadSurrogate                       # as 'leadSurrogateOnly'\n//    `u` TrailSurrogate                      # as 'trailSurrogateOnly'\n//    `u` NonSurrogate                        # as 'nonSurrogate'\n//    `u` `{` CodePoint `}`                   # as 'codePoint'\n//\n//  LeadSurrogate ::\n//    Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xD800 to 0xDBFF        # [dD][89aAbB][0-9a-fA-F]{2}\n//\n//  TrailSurrogate ::\n//    Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xDC00 to 0xDFFF        # [dD][c-fC-F][0-9a-fA-F]{2}\n//\n//  NonSurrogate ::\n//    Hex4Digits but only if the SV of Hex4Digits is not in the inclusive range 0xD800 to 0xDFFF    # [0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2}\n//\n//  CodePoint ::\n//    HexDigits but only if MV of HexDigits ≤ 0x10FFFF                                              # 0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4})\n//\nvar uidRe = /\\\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\\})/;\n\nfunction decodeUnicodeGroupName(name) {\n  return name.replace(new RegExp(uidRe, 'g'), function (_, leadSurrogate, trailSurrogate, leadSurrogateOnly, trailSurrogateOnly, nonSurrogate, codePoint) {\n    if (leadSurrogate) {\n      return String.fromCodePoint(parseInt(leadSurrogate, 16), parseInt(trailSurrogate, 16));\n    }\n    if (leadSurrogateOnly) {\n      return String.fromCodePoint(parseInt(leadSurrogateOnly, 16));\n    }\n    if (trailSurrogateOnly) {\n      // TODO: Per the spec: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n      // > Each `\\u` TrailSurrogate for which the choice of associated `u` LeadSurrogate is ambiguous shall be associated with the nearest possible `u` LeadSurrogate that would otherwise have no corresponding `\\u` TrailSurrogate.\n      return String.fromCodePoint(parseInt(trailSurrogateOnly, 16));\n    }\n    if (nonSurrogate) {\n      return String.fromCodePoint(parseInt(nonSurrogate, 16));\n    }\n    if (codePoint) {\n      return String.fromCodePoint(parseInt(codePoint, 16));\n    }\n    return _;\n  });\n}\n\n/**\n * Extracts from `\\k<foo>` pattern either a backreference\n * to a named capturing group (if it presents), or parses it\n * as a list of char: `\\k`, `<`, `f`, etc.\n */\nfunction NamedGroupRefOrChars(text, textLoc) {\n  var referenceRaw = text.slice(3, -1);\n  var reference = decodeUnicodeGroupName(referenceRaw);\n\n  if (namedGroups.hasOwnProperty(reference)) {\n    return Node({\n      type: 'Backreference',\n      kind: 'name',\n      number: namedGroups[reference],\n      reference: reference,\n      referenceRaw: referenceRaw\n    }, textLoc);\n  }\n\n  // Else `\\k<foo>` should be parsed as a list of `Char`s.\n  // This is really a 0.01% edge case, but we should handle it.\n\n  var startOffset = null;\n  var startLine = null;\n  var endLine = null;\n  var startColumn = null;\n\n  if (textLoc) {\n    startOffset = textLoc.startOffset;\n    startLine = textLoc.startLine;\n    endLine = textLoc.endLine;\n    startColumn = textLoc.startColumn;\n  }\n\n  var charRe = /^[\\w$<>]/;\n  var loc = void 0;\n\n  var chars = [\n  // Init to first \\k, taking 2 symbols.\n  Char(text.slice(1, 2), 'simple', startOffset ? {\n    startLine: startLine,\n    endLine: endLine,\n    startColumn: startColumn,\n    startOffset: startOffset,\n    endOffset: startOffset += 2,\n    endColumn: startColumn += 2\n  } : null)];\n\n  // For \\k\n  chars[0].escaped = true;\n\n  // Other symbols.\n  text = text.slice(2);\n\n  while (text.length > 0) {\n    var matched = null;\n\n    // Unicode, \\u003B or \\u{003B}\n    if ((matched = text.match(uReStart)) || (matched = text.match(ucpReStart))) {\n      if (startOffset) {\n        loc = {\n          startLine: startLine,\n          endLine: endLine,\n          startColumn: startColumn,\n          startOffset: startOffset,\n          endOffset: startOffset += matched[0].length,\n          endColumn: startColumn += matched[0].length\n        };\n      }\n      chars.push(Char(matched[0], 'unicode', loc));\n      text = text.slice(matched[0].length);\n    }\n\n    // Simple char.\n    else if (matched = text.match(charRe)) {\n        if (startOffset) {\n          loc = {\n            startLine: startLine,\n            endLine: endLine,\n            startColumn: startColumn,\n            startOffset: startOffset,\n            endOffset: ++startOffset,\n            endColumn: ++startColumn\n          };\n        }\n        chars.push(Char(matched[0], 'simple', loc));\n        text = text.slice(1);\n      }\n  }\n\n  return chars;\n}\n\n/**\n * Creates an AST node with a location.\n */\nfunction Node(node, loc) {\n  if (yy.options.captureLocations) {\n    node.loc = {\n      source: parsingString.slice(loc.startOffset, loc.endOffset),\n      start: {\n        line: loc.startLine,\n        column: loc.startColumn,\n        offset: loc.startOffset\n      },\n      end: {\n        line: loc.endLine,\n        column: loc.endColumn,\n        offset: loc.endOffset\n      }\n    };\n  }\n  return node;\n}\n\n/**\n * Creates location node.\n */\nfunction loc(start, end) {\n  if (!yy.options.captureLocations) {\n    return null;\n  }\n\n  return {\n    startOffset: start.startOffset,\n    endOffset: end.endOffset,\n    startLine: start.startLine,\n    endLine: end.endLine,\n    startColumn: start.startColumn,\n    endColumn: end.endColumn\n  };\n}\n\nfunction unexpectedToken(token) {\n  if (token.type === EOF) {\n    unexpectedEndOfInput();\n  }\n\n  tokenizer.throwUnexpectedToken(token.value, token.startLine, token.startColumn);\n}\n\nfunction unexpectedEndOfInput() {\n  parseError('Unexpected end of input.');\n}\n\nfunction parseError(message) {\n  throw new SyntaxError(message);\n}\n\nmodule.exports = yyparse;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar regexpTreeParser = require('./generated/regexp-tree');\n\n/**\n * Original parse function.\n */\nvar generatedParseFn = regexpTreeParser.parse.bind(regexpTreeParser);\n\n/**\n * Parses a regular expression.\n *\n * Override original `regexpTreeParser.parse` to convert a value to a string,\n * since in regexp-tree we may pass strings, and RegExp instance.\n */\nregexpTreeParser.parse = function (regexp, options) {\n  return generatedParseFn('' + regexp, options);\n};\n\n// By default do not capture locations; callers may override.\nregexpTreeParser.setOptions({ captureLocations: false });\n\nmodule.exports = regexpTreeParser;","'use strict';\n\n/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\nvar NON_BINARY_PROP_NAMES_TO_ALIASES = {\n  General_Category: 'gc',\n  Script: 'sc',\n  Script_Extensions: 'scx'\n};\n\nvar NON_BINARY_ALIASES_TO_PROP_NAMES = inverseMap(NON_BINARY_PROP_NAMES_TO_ALIASES);\n\nvar BINARY_PROP_NAMES_TO_ALIASES = {\n  ASCII: 'ASCII',\n  ASCII_Hex_Digit: 'AHex',\n  Alphabetic: 'Alpha',\n  Any: 'Any',\n  Assigned: 'Assigned',\n  Bidi_Control: 'Bidi_C',\n  Bidi_Mirrored: 'Bidi_M',\n  Case_Ignorable: 'CI',\n  Cased: 'Cased',\n  Changes_When_Casefolded: 'CWCF',\n  Changes_When_Casemapped: 'CWCM',\n  Changes_When_Lowercased: 'CWL',\n  Changes_When_NFKC_Casefolded: 'CWKCF',\n  Changes_When_Titlecased: 'CWT',\n  Changes_When_Uppercased: 'CWU',\n  Dash: 'Dash',\n  Default_Ignorable_Code_Point: 'DI',\n  Deprecated: 'Dep',\n  Diacritic: 'Dia',\n  Emoji: 'Emoji',\n  Emoji_Component: 'Emoji_Component',\n  Emoji_Modifier: 'Emoji_Modifier',\n  Emoji_Modifier_Base: 'Emoji_Modifier_Base',\n  Emoji_Presentation: 'Emoji_Presentation',\n  Extended_Pictographic: 'Extended_Pictographic',\n  Extender: 'Ext',\n  Grapheme_Base: 'Gr_Base',\n  Grapheme_Extend: 'Gr_Ext',\n  Hex_Digit: 'Hex',\n  IDS_Binary_Operator: 'IDSB',\n  IDS_Trinary_Operator: 'IDST',\n  ID_Continue: 'IDC',\n  ID_Start: 'IDS',\n  Ideographic: 'Ideo',\n  Join_Control: 'Join_C',\n  Logical_Order_Exception: 'LOE',\n  Lowercase: 'Lower',\n  Math: 'Math',\n  Noncharacter_Code_Point: 'NChar',\n  Pattern_Syntax: 'Pat_Syn',\n  Pattern_White_Space: 'Pat_WS',\n  Quotation_Mark: 'QMark',\n  Radical: 'Radical',\n  Regional_Indicator: 'RI',\n  Sentence_Terminal: 'STerm',\n  Soft_Dotted: 'SD',\n  Terminal_Punctuation: 'Term',\n  Unified_Ideograph: 'UIdeo',\n  Uppercase: 'Upper',\n  Variation_Selector: 'VS',\n  White_Space: 'space',\n  XID_Continue: 'XIDC',\n  XID_Start: 'XIDS'\n};\n\nvar BINARY_ALIASES_TO_PROP_NAMES = inverseMap(BINARY_PROP_NAMES_TO_ALIASES);\n\nvar GENERAL_CATEGORY_VALUE_TO_ALIASES = {\n  Cased_Letter: 'LC',\n  Close_Punctuation: 'Pe',\n  Connector_Punctuation: 'Pc',\n  Control: ['Cc', 'cntrl'],\n  Currency_Symbol: 'Sc',\n  Dash_Punctuation: 'Pd',\n  Decimal_Number: ['Nd', 'digit'],\n  Enclosing_Mark: 'Me',\n  Final_Punctuation: 'Pf',\n  Format: 'Cf',\n  Initial_Punctuation: 'Pi',\n  Letter: 'L',\n  Letter_Number: 'Nl',\n  Line_Separator: 'Zl',\n  Lowercase_Letter: 'Ll',\n  Mark: ['M', 'Combining_Mark'],\n  Math_Symbol: 'Sm',\n  Modifier_Letter: 'Lm',\n  Modifier_Symbol: 'Sk',\n  Nonspacing_Mark: 'Mn',\n  Number: 'N',\n  Open_Punctuation: 'Ps',\n  Other: 'C',\n  Other_Letter: 'Lo',\n  Other_Number: 'No',\n  Other_Punctuation: 'Po',\n  Other_Symbol: 'So',\n  Paragraph_Separator: 'Zp',\n  Private_Use: 'Co',\n  Punctuation: ['P', 'punct'],\n  Separator: 'Z',\n  Space_Separator: 'Zs',\n  Spacing_Mark: 'Mc',\n  Surrogate: 'Cs',\n  Symbol: 'S',\n  Titlecase_Letter: 'Lt',\n  Unassigned: 'Cn',\n  Uppercase_Letter: 'Lu'\n};\n\nvar GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES = inverseMap(GENERAL_CATEGORY_VALUE_TO_ALIASES);\n\nvar SCRIPT_VALUE_TO_ALIASES = {\n  Adlam: 'Adlm',\n  Ahom: 'Ahom',\n  Anatolian_Hieroglyphs: 'Hluw',\n  Arabic: 'Arab',\n  Armenian: 'Armn',\n  Avestan: 'Avst',\n  Balinese: 'Bali',\n  Bamum: 'Bamu',\n  Bassa_Vah: 'Bass',\n  Batak: 'Batk',\n  Bengali: 'Beng',\n  Bhaiksuki: 'Bhks',\n  Bopomofo: 'Bopo',\n  Brahmi: 'Brah',\n  Braille: 'Brai',\n  Buginese: 'Bugi',\n  Buhid: 'Buhd',\n  Canadian_Aboriginal: 'Cans',\n  Carian: 'Cari',\n  Caucasian_Albanian: 'Aghb',\n  Chakma: 'Cakm',\n  Cham: 'Cham',\n  Cherokee: 'Cher',\n  Common: 'Zyyy',\n  Coptic: ['Copt', 'Qaac'],\n  Cuneiform: 'Xsux',\n  Cypriot: 'Cprt',\n  Cyrillic: 'Cyrl',\n  Deseret: 'Dsrt',\n  Devanagari: 'Deva',\n  Dogra: 'Dogr',\n  Duployan: 'Dupl',\n  Egyptian_Hieroglyphs: 'Egyp',\n  Elbasan: 'Elba',\n  Ethiopic: 'Ethi',\n  Georgian: 'Geor',\n  Glagolitic: 'Glag',\n  Gothic: 'Goth',\n  Grantha: 'Gran',\n  Greek: 'Grek',\n  Gujarati: 'Gujr',\n  Gunjala_Gondi: 'Gong',\n  Gurmukhi: 'Guru',\n  Han: 'Hani',\n  Hangul: 'Hang',\n  Hanifi_Rohingya: 'Rohg',\n  Hanunoo: 'Hano',\n  Hatran: 'Hatr',\n  Hebrew: 'Hebr',\n  Hiragana: 'Hira',\n  Imperial_Aramaic: 'Armi',\n  Inherited: ['Zinh', 'Qaai'],\n  Inscriptional_Pahlavi: 'Phli',\n  Inscriptional_Parthian: 'Prti',\n  Javanese: 'Java',\n  Kaithi: 'Kthi',\n  Kannada: 'Knda',\n  Katakana: 'Kana',\n  Kayah_Li: 'Kali',\n  Kharoshthi: 'Khar',\n  Khmer: 'Khmr',\n  Khojki: 'Khoj',\n  Khudawadi: 'Sind',\n  Lao: 'Laoo',\n  Latin: 'Latn',\n  Lepcha: 'Lepc',\n  Limbu: 'Limb',\n  Linear_A: 'Lina',\n  Linear_B: 'Linb',\n  Lisu: 'Lisu',\n  Lycian: 'Lyci',\n  Lydian: 'Lydi',\n  Mahajani: 'Mahj',\n  Makasar: 'Maka',\n  Malayalam: 'Mlym',\n  Mandaic: 'Mand',\n  Manichaean: 'Mani',\n  Marchen: 'Marc',\n  Medefaidrin: 'Medf',\n  Masaram_Gondi: 'Gonm',\n  Meetei_Mayek: 'Mtei',\n  Mende_Kikakui: 'Mend',\n  Meroitic_Cursive: 'Merc',\n  Meroitic_Hieroglyphs: 'Mero',\n  Miao: 'Plrd',\n  Modi: 'Modi',\n  Mongolian: 'Mong',\n  Mro: 'Mroo',\n  Multani: 'Mult',\n  Myanmar: 'Mymr',\n  Nabataean: 'Nbat',\n  New_Tai_Lue: 'Talu',\n  Newa: 'Newa',\n  Nko: 'Nkoo',\n  Nushu: 'Nshu',\n  Ogham: 'Ogam',\n  Ol_Chiki: 'Olck',\n  Old_Hungarian: 'Hung',\n  Old_Italic: 'Ital',\n  Old_North_Arabian: 'Narb',\n  Old_Permic: 'Perm',\n  Old_Persian: 'Xpeo',\n  Old_Sogdian: 'Sogo',\n  Old_South_Arabian: 'Sarb',\n  Old_Turkic: 'Orkh',\n  Oriya: 'Orya',\n  Osage: 'Osge',\n  Osmanya: 'Osma',\n  Pahawh_Hmong: 'Hmng',\n  Palmyrene: 'Palm',\n  Pau_Cin_Hau: 'Pauc',\n  Phags_Pa: 'Phag',\n  Phoenician: 'Phnx',\n  Psalter_Pahlavi: 'Phlp',\n  Rejang: 'Rjng',\n  Runic: 'Runr',\n  Samaritan: 'Samr',\n  Saurashtra: 'Saur',\n  Sharada: 'Shrd',\n  Shavian: 'Shaw',\n  Siddham: 'Sidd',\n  SignWriting: 'Sgnw',\n  Sinhala: 'Sinh',\n  Sogdian: 'Sogd',\n  Sora_Sompeng: 'Sora',\n  Soyombo: 'Soyo',\n  Sundanese: 'Sund',\n  Syloti_Nagri: 'Sylo',\n  Syriac: 'Syrc',\n  Tagalog: 'Tglg',\n  Tagbanwa: 'Tagb',\n  Tai_Le: 'Tale',\n  Tai_Tham: 'Lana',\n  Tai_Viet: 'Tavt',\n  Takri: 'Takr',\n  Tamil: 'Taml',\n  Tangut: 'Tang',\n  Telugu: 'Telu',\n  Thaana: 'Thaa',\n  Thai: 'Thai',\n  Tibetan: 'Tibt',\n  Tifinagh: 'Tfng',\n  Tirhuta: 'Tirh',\n  Ugaritic: 'Ugar',\n  Vai: 'Vaii',\n  Warang_Citi: 'Wara',\n  Yi: 'Yiii',\n  Zanabazar_Square: 'Zanb'\n};\n\nvar SCRIPT_VALUE_ALIASES_TO_VALUE = inverseMap(SCRIPT_VALUE_TO_ALIASES);\n\nfunction inverseMap(data) {\n  var inverse = {};\n\n  for (var name in data) {\n    if (!data.hasOwnProperty(name)) {\n      continue;\n    }\n    var value = data[name];\n    if (Array.isArray(value)) {\n      for (var i = 0; i < value.length; i++) {\n        inverse[value[i]] = name;\n      }\n    } else {\n      inverse[value] = name;\n    }\n  }\n\n  return inverse;\n}\n\nfunction isValidName(name) {\n  return NON_BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isValidValue(name, value) {\n  if (isGeneralCategoryName(name)) {\n    return isGeneralCategoryValue(value);\n  }\n\n  if (isScriptCategoryName(name)) {\n    return isScriptCategoryValue(value);\n  }\n\n  return false;\n}\n\nfunction isAlias(name) {\n  return NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isGeneralCategoryName(name) {\n  return name === 'General_Category' || name == 'gc';\n}\n\nfunction isScriptCategoryName(name) {\n  return name === 'Script' || name === 'Script_Extensions' || name === 'sc' || name === 'scx';\n}\n\nfunction isGeneralCategoryValue(value) {\n  return GENERAL_CATEGORY_VALUE_TO_ALIASES.hasOwnProperty(value) || GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value);\n}\n\nfunction isScriptCategoryValue(value) {\n  return SCRIPT_VALUE_TO_ALIASES.hasOwnProperty(value) || SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value);\n}\n\nfunction isBinaryPropertyName(name) {\n  return BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction getCanonicalName(name) {\n  if (NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n    return NON_BINARY_ALIASES_TO_PROP_NAMES[name];\n  }\n\n  if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n    return BINARY_ALIASES_TO_PROP_NAMES[name];\n  }\n\n  return null;\n}\n\nfunction getCanonicalValue(value) {\n  if (GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value)) {\n    return GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES[value];\n  }\n\n  if (SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value)) {\n    return SCRIPT_VALUE_ALIASES_TO_VALUE[value];\n  }\n\n  if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(value)) {\n    return BINARY_ALIASES_TO_PROP_NAMES[value];\n  }\n\n  return null;\n}\n\nmodule.exports = {\n  isAlias: isAlias,\n  isValidName: isValidName,\n  isValidValue: isValidValue,\n  isGeneralCategoryValue: isGeneralCategoryValue,\n  isScriptCategoryValue: isScriptCategoryValue,\n  isBinaryPropertyName: isBinaryPropertyName,\n  getCanonicalName: getCanonicalName,\n  getCanonicalValue: getCanonicalValue,\n\n  NON_BINARY_PROP_NAMES_TO_ALIASES: NON_BINARY_PROP_NAMES_TO_ALIASES,\n  NON_BINARY_ALIASES_TO_PROP_NAMES: NON_BINARY_ALIASES_TO_PROP_NAMES,\n\n  BINARY_PROP_NAMES_TO_ALIASES: BINARY_PROP_NAMES_TO_ALIASES,\n  BINARY_ALIASES_TO_PROP_NAMES: BINARY_ALIASES_TO_PROP_NAMES,\n\n  GENERAL_CATEGORY_VALUE_TO_ALIASES: GENERAL_CATEGORY_VALUE_TO_ALIASES,\n  GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES: GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES,\n\n  SCRIPT_VALUE_TO_ALIASES: SCRIPT_VALUE_TO_ALIASES,\n  SCRIPT_VALUE_ALIASES_TO_VALUE: SCRIPT_VALUE_ALIASES_TO_VALUE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar compatTranspiler = require('./compat-transpiler');\nvar generator = require('./generator');\nvar optimizer = require('./optimizer');\nvar parser = require('./parser');\nvar _transform = require('./transform');\nvar _traverse = require('./traverse');\nvar fa = require('./interpreter/finite-automaton');\n\nvar _require = require('./compat-transpiler/runtime'),\n    RegExpTree = _require.RegExpTree;\n\n/**\n * An API object for RegExp processing (parsing/transform/generation).\n */\n\n\nvar regexpTree = {\n  /**\n   * Parser module exposed.\n   */\n  parser: parser,\n\n  /**\n   * Expose finite-automaton module.\n   */\n  fa: fa,\n\n  /**\n   * `TransformResult` exposed.\n   */\n  TransformResult: _transform.TransformResult,\n\n  /**\n   * Parses a regexp string, producing an AST.\n   *\n   * @param string regexp\n   *\n   *   a regular expression in different formats: string, AST, RegExp.\n   *\n   * @param Object options\n   *\n   *   parsing options for this parse call. Default are:\n   *\n   *     - captureLocations: boolean\n   *     - any other custom options\n   *\n   * @return Object AST\n   */\n  parse: function parse(regexp, options) {\n    return parser.parse('' + regexp, options);\n  },\n\n\n  /**\n   * Traverses a RegExp AST.\n   *\n   * @param Object ast\n   * @param Object | Array<Object> handlers\n   *\n   * Each `handler` is an object containing handler function for needed\n   * node types. Example:\n   *\n   *   regexpTree.traverse(ast, {\n   *     onChar(node) {\n   *       ...\n   *     },\n   *   });\n   *\n   * The value for a node type may also be an object with functions pre and post.\n   * This enables more context-aware analyses, e.g. measuring star height.\n   */\n  traverse: function traverse(ast, handlers, options) {\n    return _traverse.traverse(ast, handlers, options);\n  },\n\n\n  /**\n   * Transforms a regular expression.\n   *\n   * A regexp can be passed in different formats (string, regexp or AST),\n   * applying a set of transformations. It is a convenient wrapper\n   * on top of \"parse-traverse-generate\" tool chain.\n   *\n   * @param string | AST | RegExp regexp - a regular expression;\n   * @param Object | Array<Object> handlers - a list of handlers.\n   *\n   * @return TransformResult - a transformation result.\n   */\n  transform: function transform(regexp, handlers) {\n    return _transform.transform(regexp, handlers);\n  },\n\n\n  /**\n   * Generates a RegExp string from an AST.\n   *\n   * @param Object ast\n   *\n   * Invariant:\n   *\n   *   regexpTree.generate(regexpTree.parse('/[a-z]+/i')); // '/[a-z]+/i'\n   */\n  generate: function generate(ast) {\n    return generator.generate(ast);\n  },\n\n\n  /**\n   * Creates a RegExp object from a regexp string.\n   *\n   * @param string regexp\n   */\n  toRegExp: function toRegExp(regexp) {\n    var compat = this.compatTranspile(regexp);\n    return new RegExp(compat.getSource(), compat.getFlags());\n  },\n\n\n  /**\n   * Optimizes a regular expression by replacing some\n   * sub-expressions with their idiomatic patterns.\n   *\n   * @param string regexp\n   *\n   * @return TransformResult object\n   */\n  optimize: function optimize(regexp, whitelist) {\n    var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n        blacklist = _ref.blacklist;\n\n    return optimizer.optimize(regexp, { whitelist: whitelist, blacklist: blacklist });\n  },\n\n\n  /**\n   * Translates a regular expression in new syntax or in new format\n   * into equivalent expressions in old syntax.\n   *\n   * @param string regexp\n   *\n   * @return TransformResult object\n   */\n  compatTranspile: function compatTranspile(regexp, whitelist) {\n    return compatTranspiler.transform(regexp, whitelist);\n  },\n\n\n  /**\n   * Executes a regular expression on a string.\n   *\n   * @param RegExp|string re - a regular expression.\n   * @param string string - a testing string.\n   */\n  exec: function exec(re, string) {\n    if (typeof re === 'string') {\n      var compat = this.compatTranspile(re);\n      var extra = compat.getExtra();\n\n      if (extra.namedCapturingGroups) {\n        re = new RegExpTree(compat.toRegExp(), {\n          flags: compat.getFlags(),\n          source: compat.getSource(),\n          groups: extra.namedCapturingGroups\n        });\n      } else {\n        re = compat.toRegExp();\n      }\n    }\n\n    return re.exec(string);\n  }\n};\n\nmodule.exports = regexpTree;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar generator = require('../generator');\nvar parser = require('../parser');\nvar traverse = require('../traverse');\n\n/**\n * Transform result.\n */\n\nvar TransformResult = function () {\n  /**\n   * Initializes a transform result for an AST.\n   *\n   * @param Object ast - an AST node\n   * @param mixed extra - any extra data a transform may return\n   */\n  function TransformResult(ast) {\n    var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n    _classCallCheck(this, TransformResult);\n\n    this._ast = ast;\n    this._source = null;\n    this._string = null;\n    this._regexp = null;\n    this._extra = extra;\n  }\n\n  _createClass(TransformResult, [{\n    key: 'getAST',\n    value: function getAST() {\n      return this._ast;\n    }\n  }, {\n    key: 'setExtra',\n    value: function setExtra(extra) {\n      this._extra = extra;\n    }\n  }, {\n    key: 'getExtra',\n    value: function getExtra() {\n      return this._extra;\n    }\n  }, {\n    key: 'toRegExp',\n    value: function toRegExp() {\n      if (!this._regexp) {\n        this._regexp = new RegExp(this.getSource(), this._ast.flags);\n      }\n      return this._regexp;\n    }\n  }, {\n    key: 'getSource',\n    value: function getSource() {\n      if (!this._source) {\n        this._source = generator.generate(this._ast.body);\n      }\n      return this._source;\n    }\n  }, {\n    key: 'getFlags',\n    value: function getFlags() {\n      return this._ast.flags;\n    }\n  }, {\n    key: 'toString',\n    value: function toString() {\n      if (!this._string) {\n        this._string = generator.generate(this._ast);\n      }\n      return this._string;\n    }\n  }]);\n\n  return TransformResult;\n}();\n\nmodule.exports = {\n  /**\n   * Expose `TransformResult`.\n   */\n  TransformResult: TransformResult,\n\n  /**\n   * Transforms a regular expression applying a set of\n   * transformation handlers.\n   *\n   * @param string | AST | RegExp:\n   *\n   *   a regular expression in different representations: a string,\n   *   a RegExp object, or an AST.\n   *\n   * @param Object | Array<Object>:\n   *\n   *   a handler (or a list of handlers) from `traverse` API.\n   *\n   * @return TransformResult instance.\n   *\n   * Example:\n   *\n   *   transform(/[a-z]/i, {\n   *     onChar(path) {\n   *       const {node} = path;\n   *\n   *       if (...) {\n   *         path.remove();\n   *       }\n   *     }\n   *   });\n   */\n  transform: function transform(regexp, handlers) {\n    var ast = regexp;\n\n    if (regexp instanceof RegExp) {\n      regexp = '' + regexp;\n    }\n\n    if (typeof regexp === 'string') {\n      ast = parser.parse(regexp, {\n        captureLocations: true\n      });\n    }\n\n    traverse.traverse(ast, handlers);\n\n    return new TransformResult(ast);\n  }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Flattens a nested disjunction node to a list.\n *\n * /a|b|c|d/\n *\n * {{{a, b}, c}, d} -> [a, b, c, d]\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction disjunctionToList(node) {\n  if (node.type !== 'Disjunction') {\n    throw new TypeError('Expected \"Disjunction\" node, got \"' + node.type + '\"');\n  }\n\n  var list = [];\n\n  if (node.left && node.left.type === 'Disjunction') {\n    list.push.apply(list, _toConsumableArray(disjunctionToList(node.left)).concat([node.right]));\n  } else {\n    list.push(node.left, node.right);\n  }\n\n  return list;\n}\n\n/**\n * Builds a nested disjunction node from a list.\n *\n * /a|b|c|d/\n *\n * [a, b, c, d] -> {{{a, b}, c}, d}\n */\nfunction listToDisjunction(list) {\n  return list.reduce(function (left, right) {\n    return {\n      type: 'Disjunction',\n      left: left,\n      right: right\n    };\n  });\n}\n\n/**\n * Increases a quantifier by one.\n * Does not change greediness.\n * * -> +\n * + -> {2,}\n * ? -> {1,2}\n * {2} -> {3}\n * {2,} -> {3,}\n * {2,3} -> {3,4}\n */\nfunction increaseQuantifierByOne(quantifier) {\n  if (quantifier.kind === '*') {\n\n    quantifier.kind = '+';\n  } else if (quantifier.kind === '+') {\n\n    quantifier.kind = 'Range';\n    quantifier.from = 2;\n    delete quantifier.to;\n  } else if (quantifier.kind === '?') {\n\n    quantifier.kind = 'Range';\n    quantifier.from = 1;\n    quantifier.to = 2;\n  } else if (quantifier.kind === 'Range') {\n\n    quantifier.from += 1;\n    if (quantifier.to) {\n      quantifier.to += 1;\n    }\n  }\n}\n\nmodule.exports = {\n  disjunctionToList: disjunctionToList,\n  listToDisjunction: listToDisjunction,\n  increaseQuantifierByOne: increaseQuantifierByOne\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NodePath = require('./node-path');\n\n/**\n * Does an actual AST traversal, using visitor pattern,\n * and calling set of callbacks.\n *\n * Based on https://github.com/olov/ast-traverse\n *\n * Expects AST in Mozilla Parser API: nodes which are supposed to be\n * handled should have `type` property.\n *\n * @param Object root - a root node to start traversal from.\n *\n * @param Object options - an object with set of callbacks:\n *\n *   - `pre(node, parent, prop, index)` - a hook called on node enter\n *   - `post`(node, parent, prop, index) - a hook called on node exit\n *   - `skipProperty(prop)` - a predicated whether a property should be skipped\n */\nfunction astTraverse(root) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n  var pre = options.pre;\n  var post = options.post;\n  var skipProperty = options.skipProperty;\n\n  function visit(node, parent, prop, idx) {\n    if (!node || typeof node.type !== 'string') {\n      return;\n    }\n\n    var res = undefined;\n    if (pre) {\n      res = pre(node, parent, prop, idx);\n    }\n\n    if (res !== false) {\n\n      // A node can be replaced during traversal, so we have to\n      // recalculate it from the parent, to avoid traversing \"dead\" nodes.\n      if (parent && parent[prop]) {\n        if (!isNaN(idx)) {\n          node = parent[prop][idx];\n        } else {\n          node = parent[prop];\n        }\n      }\n\n      for (var _prop in node) {\n        if (node.hasOwnProperty(_prop)) {\n          if (skipProperty ? skipProperty(_prop, node) : _prop[0] === '$') {\n            continue;\n          }\n\n          var child = node[_prop];\n\n          // Collection node.\n          //\n          // NOTE: a node (or several nodes) can be removed or inserted\n          // during traversal.\n          //\n          // Current traversing index is stored on top of the\n          // `NodePath.traversingIndexStack`. The stack is used to support\n          // recursive nature of the traversal.\n          //\n          // In this case `NodePath.traversingIndex` (which we use here) is\n          // updated in the NodePath remove/insert methods.\n          //\n          if (Array.isArray(child)) {\n            var index = 0;\n            NodePath.traversingIndexStack.push(index);\n            while (index < child.length) {\n              visit(child[index], node, _prop, index);\n              index = NodePath.updateTraversingIndex(+1);\n            }\n            NodePath.traversingIndexStack.pop();\n          }\n\n          // Simple node.\n          else {\n              visit(child, node, _prop);\n            }\n        }\n      }\n    }\n\n    if (post) {\n      post(node, parent, prop, idx);\n    }\n  }\n\n  visit(root, null);\n}\n\nmodule.exports = {\n  /**\n   * Traverses an AST.\n   *\n   * @param Object ast - an AST node\n   *\n   * @param Object | Array<Object> handlers:\n   *\n   *   an object (or an array of objects)\n   *\n   *   Each such object contains a handler function per node.\n   *   In case of an array of handlers, they are applied in order.\n   *   A handler may return a transformed node (or a different type).\n   *\n   *   The per-node function may instead be an object with functions pre and post.\n   *   pre is called before visiting the node, post after.\n   *   If a handler is a function, it is treated as the pre function, with an empty post.\n   *\n   * @param Object options:\n   *\n   *   a config object, specifying traversal options:\n   *\n   *   `asNodes`: boolean - whether handlers should receives raw AST nodes\n   *   (false by default), instead of a `NodePath` wrapper. Note, by default\n   *   `NodePath` wrapper provides a set of convenient method to manipulate\n   *   a traversing AST, and also has access to all parents list. A raw\n   *   nodes traversal should be used in rare cases, when no `NodePath`\n   *   features are needed.\n   *\n   * Special hooks:\n   *\n   *   - `shouldRun(ast)` - a predicate determining whether the handler\n   *                        should be applied.\n   *\n   * NOTE: Multiple handlers are used as an optimization of applying all of\n   * them in one AST traversal pass.\n   */\n  traverse: function traverse(ast, handlers) {\n    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { asNodes: false };\n\n\n    if (!Array.isArray(handlers)) {\n      handlers = [handlers];\n    }\n\n    // Filter out handlers by result of `shouldRun`, if the method is present.\n    handlers = handlers.filter(function (handler) {\n      if (typeof handler.shouldRun !== 'function') {\n        return true;\n      }\n      return handler.shouldRun(ast);\n    });\n\n    NodePath.initRegistry();\n\n    // Allow handlers to initializer themselves.\n    handlers.forEach(function (handler) {\n      if (typeof handler.init === 'function') {\n        handler.init(ast);\n      }\n    });\n\n    function getPathFor(node, parent, prop, index) {\n      var parentPath = NodePath.getForNode(parent);\n      var nodePath = NodePath.getForNode(node, parentPath, prop, index);\n\n      return nodePath;\n    }\n\n    // Handle actual nodes.\n    astTraverse(ast, {\n      /**\n       * Handler on node enter.\n       */\n      pre: function pre(node, parent, prop, index) {\n        var nodePath = void 0;\n        if (!options.asNodes) {\n          nodePath = getPathFor(node, parent, prop, index);\n        }\n\n        var _iteratorNormalCompletion = true;\n        var _didIteratorError = false;\n        var _iteratorError = undefined;\n\n        try {\n          for (var _iterator = handlers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n            var handler = _step.value;\n\n            // \"Catch-all\" `*` handler.\n            if (typeof handler['*'] === 'function') {\n              if (nodePath) {\n                // A path/node can be removed by some previous handler.\n                if (!nodePath.isRemoved()) {\n                  var handlerResult = handler['*'](nodePath);\n                  // Explicitly stop traversal.\n                  if (handlerResult === false) {\n                    return false;\n                  }\n                }\n              } else {\n                handler['*'](node, parent, prop, index);\n              }\n            }\n\n            // Per-node handler.\n            var handlerFuncPre = void 0;\n            if (typeof handler[node.type] === 'function') {\n              handlerFuncPre = handler[node.type];\n            } else if (typeof handler[node.type] === 'object' && typeof handler[node.type].pre === 'function') {\n              handlerFuncPre = handler[node.type].pre;\n            }\n\n            if (handlerFuncPre) {\n              if (nodePath) {\n                // A path/node can be removed by some previous handler.\n                if (!nodePath.isRemoved()) {\n                  var _handlerResult = handlerFuncPre.call(handler, nodePath);\n                  // Explicitly stop traversal.\n                  if (_handlerResult === false) {\n                    return false;\n                  }\n                }\n              } else {\n                handlerFuncPre.call(handler, node, parent, prop, index);\n              }\n            }\n          } // Loop over handlers\n        } catch (err) {\n          _didIteratorError = true;\n          _iteratorError = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion && _iterator.return) {\n              _iterator.return();\n            }\n          } finally {\n            if (_didIteratorError) {\n              throw _iteratorError;\n            }\n          }\n        }\n      },\n      // pre func\n\n      /**\n       * Handler on node exit.\n       */\n      post: function post(node, parent, prop, index) {\n        if (!node) {\n          return;\n        }\n\n        var nodePath = void 0;\n        if (!options.asNodes) {\n          nodePath = getPathFor(node, parent, prop, index);\n        }\n\n        var _iteratorNormalCompletion2 = true;\n        var _didIteratorError2 = false;\n        var _iteratorError2 = undefined;\n\n        try {\n          for (var _iterator2 = handlers[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n            var handler = _step2.value;\n\n            // Per-node handler.\n            var handlerFuncPost = void 0;\n            if (typeof handler[node.type] === 'object' && typeof handler[node.type].post === 'function') {\n              handlerFuncPost = handler[node.type].post;\n            }\n\n            if (handlerFuncPost) {\n              if (nodePath) {\n                // A path/node can be removed by some previous handler.\n                if (!nodePath.isRemoved()) {\n                  var handlerResult = handlerFuncPost.call(handler, nodePath);\n                  // Explicitly stop traversal.\n                  if (handlerResult === false) {\n                    return false;\n                  }\n                }\n              } else {\n                handlerFuncPost.call(handler, node, parent, prop, index);\n              }\n            }\n          } // Loop over handlers\n        } catch (err) {\n          _didIteratorError2 = true;\n          _iteratorError2 = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion2 && _iterator2.return) {\n              _iterator2.return();\n            }\n          } finally {\n            if (_didIteratorError2) {\n              throw _iteratorError2;\n            }\n          }\n        }\n      },\n      // post func\n\n      /**\n       * Skip locations by default.\n       */\n      skipProperty: function skipProperty(prop) {\n        return prop === 'loc';\n      }\n    });\n  }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DEFAULT_COLLECTION_PROP = 'expressions';\nvar DEFAULT_SINGLE_PROP = 'expression';\n\n/**\n * NodePath class encapsulates a traversing node,\n * its parent node, property name in the parent node, and\n * an index (in case if a node is part of a collection).\n * It also provides set of methods for AST manipulation.\n */\n\nvar NodePath = function () {\n  /**\n   * NodePath constructor.\n   *\n   * @param Object node - an AST node\n   * @param NodePath parentPath - a nullable parent path\n   * @param string property - property name of the node in the parent\n   * @param number index - index of the node in a collection.\n   */\n  function NodePath(node) {\n    var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n    var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n    _classCallCheck(this, NodePath);\n\n    this.node = node;\n    this.parentPath = parentPath;\n    this.parent = parentPath ? parentPath.node : null;\n    this.property = property;\n    this.index = index;\n  }\n\n  _createClass(NodePath, [{\n    key: '_enforceProp',\n    value: function _enforceProp(property) {\n      if (!this.node.hasOwnProperty(property)) {\n        throw new Error('Node of type ' + this.node.type + ' doesn\\'t have \"' + property + '\" collection.');\n      }\n    }\n\n    /**\n     * Sets a node into a children collection or the single child.\n     * By default child nodes are supposed to be under `expressions` property.\n     * An explicit property can be passed.\n     *\n     * @param Object node - a node to set into a collection or as single child\n     * @param number index - index at which to set\n     * @param string property - name of the collection or single property\n     */\n\n  }, {\n    key: 'setChild',\n    value: function setChild(node) {\n      var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n      var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\n      var childPath = void 0;\n      if (index != null) {\n        if (!property) {\n          property = DEFAULT_COLLECTION_PROP;\n        }\n        this._enforceProp(property);\n        this.node[property][index] = node;\n        childPath = NodePath.getForNode(node, this, property, index);\n      } else {\n        if (!property) {\n          property = DEFAULT_SINGLE_PROP;\n        }\n        this._enforceProp(property);\n        this.node[property] = node;\n        childPath = NodePath.getForNode(node, this, property, null);\n      }\n      return childPath;\n    }\n\n    /**\n     * Appends a node to a children collection.\n     * By default child nodes are supposed to be under `expressions` property.\n     * An explicit property can be passed.\n     *\n     * @param Object node - a node to set into a collection or as single child\n     * @param string property - name of the collection or single property\n     */\n\n  }, {\n    key: 'appendChild',\n    value: function appendChild(node) {\n      var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\n      if (!property) {\n        property = DEFAULT_COLLECTION_PROP;\n      }\n      this._enforceProp(property);\n      var end = this.node[property].length;\n      return this.setChild(node, end, property);\n    }\n\n    /**\n     * Inserts a node into a collection.\n     * By default child nodes are supposed to be under `expressions` property.\n     * An explicit property can be passed.\n     *\n     * @param Object node - a node to insert into a collection\n     * @param number index - index at which to insert\n     * @param string property - name of the collection property\n     */\n\n  }, {\n    key: 'insertChildAt',\n    value: function insertChildAt(node, index) {\n      var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_COLLECTION_PROP;\n\n      this._enforceProp(property);\n\n      this.node[property].splice(index, 0, node);\n\n      // If we inserted a node before the traversing index,\n      // we should increase the later.\n      if (index <= NodePath.getTraversingIndex()) {\n        NodePath.updateTraversingIndex(+1);\n      }\n\n      this._rebuildIndex(this.node, property);\n    }\n\n    /**\n     * Removes a node.\n     */\n\n  }, {\n    key: 'remove',\n    value: function remove() {\n      if (this.isRemoved()) {\n        return;\n      }\n      NodePath.registry.delete(this.node);\n\n      this.node = null;\n\n      if (!this.parent) {\n        return;\n      }\n\n      // A node is in a collection.\n      if (this.index !== null) {\n        this.parent[this.property].splice(this.index, 1);\n\n        // If we remove a node before the traversing index,\n        // we should increase the later.\n        if (this.index <= NodePath.getTraversingIndex()) {\n          NodePath.updateTraversingIndex(-1);\n        }\n\n        // Rebuild index.\n        this._rebuildIndex(this.parent, this.property);\n\n        this.index = null;\n        this.property = null;\n\n        return;\n      }\n\n      // A simple node.\n      delete this.parent[this.property];\n      this.property = null;\n    }\n\n    /**\n     * Rebuilds child nodes index (used on remove/insert).\n     */\n\n  }, {\n    key: '_rebuildIndex',\n    value: function _rebuildIndex(parent, property) {\n      var parentPath = NodePath.getForNode(parent);\n\n      for (var i = 0; i < parent[property].length; i++) {\n        var path = NodePath.getForNode(parent[property][i], parentPath, property, i);\n        path.index = i;\n      }\n    }\n\n    /**\n     * Whether the path was removed.\n     */\n\n  }, {\n    key: 'isRemoved',\n    value: function isRemoved() {\n      return this.node === null;\n    }\n\n    /**\n     * Replaces a node with the passed one.\n     */\n\n  }, {\n    key: 'replace',\n    value: function replace(newNode) {\n      NodePath.registry.delete(this.node);\n\n      this.node = newNode;\n\n      if (!this.parent) {\n        return null;\n      }\n\n      // A node is in a collection.\n      if (this.index !== null) {\n        this.parent[this.property][this.index] = newNode;\n      }\n\n      // A simple node.\n      else {\n          this.parent[this.property] = newNode;\n        }\n\n      // Rebuild the node path for the new node.\n      return NodePath.getForNode(newNode, this.parentPath, this.property, this.index);\n    }\n\n    /**\n     * Updates a node inline.\n     */\n\n  }, {\n    key: 'update',\n    value: function update(nodeProps) {\n      Object.assign(this.node, nodeProps);\n    }\n\n    /**\n     * Returns parent.\n     */\n\n  }, {\n    key: 'getParent',\n    value: function getParent() {\n      return this.parentPath;\n    }\n\n    /**\n     * Returns nth child.\n     */\n\n  }, {\n    key: 'getChild',\n    value: function getChild() {\n      var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n      if (this.node.expressions) {\n        return NodePath.getForNode(this.node.expressions[n], this, DEFAULT_COLLECTION_PROP, n);\n      } else if (this.node.expression && n == 0) {\n        return NodePath.getForNode(this.node.expression, this, DEFAULT_SINGLE_PROP);\n      }\n      return null;\n    }\n\n    /**\n     * Whether a path node is syntactically equal to the passed one.\n     *\n     * NOTE: we don't rely on `source` property from the `loc` data\n     * (which would be the fastest comparison), since it might be unsync\n     * after several modifications. We use here simple `JSON.stringify`\n     * excluding the `loc` data.\n     *\n     * @param NodePath other - path to compare to.\n     * @return boolean\n     */\n\n  }, {\n    key: 'hasEqualSource',\n    value: function hasEqualSource(path) {\n      return JSON.stringify(this.node, jsonSkipLoc) === JSON.stringify(path.node, jsonSkipLoc);\n    }\n\n    /**\n     * JSON-encodes a node skipping location.\n     */\n\n  }, {\n    key: 'jsonEncode',\n    value: function jsonEncode() {\n      var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n          format = _ref.format,\n          useLoc = _ref.useLoc;\n\n      return JSON.stringify(this.node, useLoc ? null : jsonSkipLoc, format);\n    }\n\n    /**\n     * Returns previous sibling.\n     */\n\n  }, {\n    key: 'getPreviousSibling',\n    value: function getPreviousSibling() {\n      if (!this.parent || this.index == null) {\n        return null;\n      }\n      return NodePath.getForNode(this.parent[this.property][this.index - 1], NodePath.getForNode(this.parent), this.property, this.index - 1);\n    }\n\n    /**\n     * Returns next sibling.\n     */\n\n  }, {\n    key: 'getNextSibling',\n    value: function getNextSibling() {\n      if (!this.parent || this.index == null) {\n        return null;\n      }\n      return NodePath.getForNode(this.parent[this.property][this.index + 1], NodePath.getForNode(this.parent), this.property, this.index + 1);\n    }\n\n    /**\n     * Returns a NodePath instance for a node.\n     *\n     * The same NodePath can be reused in several places, e.g.\n     * a parent node passed for all its children.\n     */\n\n  }], [{\n    key: 'getForNode',\n    value: function getForNode(node) {\n      var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n      var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n      var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n\n      if (!node) {\n        return null;\n      }\n\n      if (!NodePath.registry.has(node)) {\n        NodePath.registry.set(node, new NodePath(node, parentPath, prop, index == -1 ? null : index));\n      }\n\n      var path = NodePath.registry.get(node);\n\n      if (parentPath !== null) {\n        path.parentPath = parentPath;\n        path.parent = path.parentPath.node;\n      }\n\n      if (prop !== null) {\n        path.property = prop;\n      }\n\n      if (index >= 0) {\n        path.index = index;\n      }\n\n      return path;\n    }\n\n    /**\n     * Initializes the NodePath registry. The registry is a map from\n     * a node to its NodePath instance.\n     */\n\n  }, {\n    key: 'initRegistry',\n    value: function initRegistry() {\n      if (!NodePath.registry) {\n        NodePath.registry = new Map();\n      }\n      NodePath.registry.clear();\n    }\n\n    /**\n     * Updates index of a currently traversing collection.\n     */\n\n  }, {\n    key: 'updateTraversingIndex',\n    value: function updateTraversingIndex(dx) {\n      return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1] += dx;\n    }\n\n    /**\n     * Returns current traversing index.\n     */\n\n  }, {\n    key: 'getTraversingIndex',\n    value: function getTraversingIndex() {\n      return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1];\n    }\n  }]);\n\n  return NodePath;\n}();\n\nNodePath.initRegistry();\n\n/**\n * Index of a currently traversing collection is stored on top of the\n * `NodePath.traversingIndexStack`. Remove/insert methods can adjust\n * this index.\n */\nNodePath.traversingIndexStack = [];\n\n// Helper function used to skip `loc` in JSON operations.\nfunction jsonSkipLoc(prop, value) {\n  if (prop === 'loc') {\n    return undefined;\n  }\n  return value;\n}\n\nmodule.exports = NodePath;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Performs a deep copy of an simple object.\n * Only handles scalar values, arrays and objects.\n *\n * @param obj Object\n */\n\nmodule.exports = function clone(obj) {\n  if (obj === null || typeof obj !== 'object') {\n    return obj;\n  }\n  var res = void 0;\n  if (Array.isArray(obj)) {\n    res = [];\n  } else {\n    res = {};\n  }\n  for (var i in obj) {\n    res[i] = clone(obj[i]);\n  }\n  return res;\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = require('./dist/regexp-tree');","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 7843;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t7843: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(55886)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","module","exports","regexes","regex","family","maxVersion","Infinity","version","minVersion","numbersToRanges","numbers","length","SemverPart","semverify","versionParts","Array","isArray","toString","split","versionPart","semverPart","semver","i","parseInt","isNaN","compareSemvers","a","b","options","major","minor","patch","majorBase","minorBase","patchBase","ignoreMinor","ignorePatch","allowHigherVersions","compareMinor","comparePatch","compareArrays","from","len","clone","value","copy","concat","items","AlternativeNode","expressions","exps","filter","Boolean","type","SimpleCharNode","kind","String","codePoint","NaN","ClassRangeNode","to","CharacterClassNode","CapturingGroupNode","expression","capturing","number","DisjunctionCapturingGroupNode","expr","exprs","disjunction","left","right","pop","reduceRight","DisjunctionNode","DigitPatternNode","NumberPatternNode","quantifier","greedy","numberPattern","RepetitionNode","NumberCharsNode","isNumberPatternNode","node","isCharNode","RegExp","test","isDigitRangeNode","isExpressionNode","parseRegex","replace","classes","visitors","every","reduce","newVisitors","className","visitor","visitorPre","pre","visitorPost","post","nodePath","numberToDigits","num","Number","rayRangeDigitPattern","digit","includes","rangeStart","segmentRangeNumberPattern","zeros","fromNode","toNode","zerosPrefix","segmentToNumberPatterns","digitsInNumber","fromDigits","digitsCount","toDigits","decadeRanges","ranges","decade","push","Math","min","splitToDecadeRanges","parts","map","commonStart","common","currA","currB","diffA","diffB","splitCommonDiff","from1","to1","diffParts","range","middleSegment","_","ri","d","j","patterns","prevNode","merged","exp","unshift","rangeToRegex","digits","other","RangeQuantifierNode","pow","numberPatterns","topNodes","prev","nodes","rayToNumberPatterns","getNumberPatternsPart","numberPatternsCount","regexAst","maxNumbersCount","count","Group","getNumberPatternsCount","numbersCounter","containsNumberPattern","parent","applyVersionsToRegex","versions","finalVersions","maxRequiredPartsCount","max","allowZeroSubversions","shouldRepeatCount","getRequiredSemverPartsCount","numberPatternsPart","versionsPart","rangedVersion","ignoreIndex","prevWasZero","start","createMapper","rangedSemverToRegex","numbersToReplace","slice","shift","replaceNumberPatterns","remove","defaultOptions","getPreUserAgentRegexes","finalOptions","browserRegexes","sourceRegex","matchedVersions","current","Major","Minor","Patch","part","p","versionsListToRanges","applyVersionsToRegexes","browsers","targetRegexes","result","prevFamily","prevRegexIsGlobal","forEach","requestVersions","get","bases","compareOptions","minComparator","ver","maxComparator","comparator","findMatchedVersions","undefined","getRegexesForBrowsers","merge","Map","strVersion","join","set","sort","mergeBrowserVersions","browserslistOptions","browserslist","browser","versionString","versionStringTo","partIndex","i1","v","rangeSemver","getBrowsersList","partsRegexes","body","src","getAST","optimizeRegex","flags","compileRegex","getUserAgentRegex","browserslistConfig","supportedBrowsers","getBuilder","clearOnLogout","persist","build","user","getCurrentUser","getLoggerBuilder","setApp","setUid","uid","detectUser","browserStorageKey","generateUrl","browserStorage","getItem","name","emits","props","title","fillColor","default","size","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","logger","debug","components","Web","NcButton","NcEmptyContent","computed","isMobile","navigator","userAgent","filteredSupportedBrowsers","isMobileBrowser","formattedBrowsersList","list","id","parseFloat","Object","keys","agents","t","entry","methods","n","forceBrowsing","setItem","urlParams","URLSearchParams","window","location","search","has","redirectPath","Buffer","getRootUrl","startsWith","toLowerCase","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","scopedSlots","_u","key","fn","proxy","_l","Vue","el","render","h","UnsupportedBrowser","BrowserslistError","noop","loadQueries","getStat","opts","stats","loadConfig","config","loadCountry","loadFeature","currentNode","resolve","context","parseConfig","readConfig","findConfig","clearCaches","oldDataWarning","env","message","Error","captureStackTrace","prototype","jsReleases","jsEOL","path","e2c","parse","ANDROID_EVERGREEN_FIRST","isVersionsMatch","versionA","versionB","indexOf","normalize","normalizeElectron","versionToUse","nameMapper","getMajor","getMajorVersions","released","majorVersions","uniq","minimum","selected","array","filtered","fillUsage","data","generateFilter","sign","parseLatestFloat","parseSimpleInt","x","compare","compareSemver","semverFilterLoose","operator","compareSemverLoose","normalizeVersion","resolved","versionAliases","resolveVersion","filterByYear","since","byName","releaseDate","date","cloneData","aliases","mobileToDesktop","desktopNames","desktop","android","chrome","normalizeAndroidVersions","obj","copyObject","cloned","androidVersions","chromeVersions","iFirstEvergreen","checkName","filterJumps","nVersions","jump","op_mob","isSupported","withPartial","queries","QUERIES","index","not","query","select","call","compose","prepareOpts","prepareQueries","defaults","checkQueries","cache","ignoreUnknownVersions","dangerousExtend","customUsage","cacheKey","JSON","stringify","name1","name2","version1","BROWSERSLIST_DISABLE_CACHE","nodeQuery","matched","nodeVersions","sinceQuery","year","month","day","Date","UTC","coverQuery","coverage","usage","global","place","match","toUpperCase","coveraged","custom","fx","ff","ios","explorer","blackberry","explorermobile","operamini","operamobile","chromeandroid","firefoxandroid","ucandroid","qqandroid","and_chr","and_ff","ie_mob","customStats","dataByBrowser","all","last_major_versions","matches","regexp","last_versions","last_electron_major_versions","last_node_major_versions","last_browser_major_versions","last_electron_versions","last_node_versions","last_browser_versions","unreleased_versions","unreleased_electron_versions","unreleased_browser_versions","last_years","now","years","since_y","since_y_m","since_y_m_d","popularity","popularity_in_my_stats","percentage","popularity_in_config_stats","loadStat","popularity_in_place","cover","cover_in","supports","feature","supportType","features","iMax","checkDesktop","electron_range","fromToUse","toToUse","parsed","node_range","browser_range","electron_ray","node_ray","browser_ray","alias","firefox_esr","opera_mini_all","electron_version","node_major_version","node_minor_version","node_patch_version","current_node","maintained_node","end","some","phantomjs_1_9","phantomjs_2_1","browser_version","browserslist_config","extends","dead","unknown","release_date","usage_global","full","interval","release","AND_REGEXP","OR_REGEXP","flatten","matchQuery","matchBlock","string","qs","predicate","substr","find","trim","block","A","K","E","F","G","B","bC","C","L","M","H","N","O","P","Q","I","R","S","T","U","V","W","X","Y","Z","c","e","f","g","k","l","m","o","q","r","s","u","AB","BB","CB","DB","EB","FB","D","cC","DC","J","GB","HB","w","y","z","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","EC","pB","FC","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","GC","HC","IC","JC","dC","eC","fC","gC","KC","hC","iC","jC","kC","LC","lC","mC","nC","MC","NC","oC","AC","OC","PC","QC","RC","SC","pC","BC","TC","UC","VC","WC","XC","YC","CC","qC","rC","sC","tC","uC","ZC","vC","wC","aC","xC","yC","zC","AD","BD","CD","DD","ED","FD","GD","HD","ID","JD","KD","LD","MD","ND","OD","PD","QD","RD","SD","TD","UD","VD","WD","XD","YD","ZD","aD","bD","cD","dD","agentsData","unpackBrowserVersions","versionsData","prefix_exceptions","map2","key2","prefix","browserVersions","___CSS_LOADER_EXPORT___","compatTransforms","_transform","transform","transformsWhitelist","arguments","transformToApply","extra","transformName","hasOwnProperty","handler","getExtra","setExtra","_createClass","defineProperties","target","descriptor","enumerable","configurable","writable","defineProperty","Constructor","protoProps","staticProps","RegExpTree","re","_ref","groups","source","instance","TypeError","_classCallCheck","_re","_groups","dotAll","ignoreCase","multiline","sticky","unicode","compile","_toStringResult","exec","group","groupNumber","_hasUFlag","shouldRun","ast","Char","toValue","toSymbol","symbol","_groupNames","init","nameRaw","Backreference","reference","referenceRaw","namedCapturingGroups","xFlag","gen","generator","Alternative","Disjunction","Assertion","assertion","negative","_assertion","CharacterClass","ClassRange","Repetition","Quantifier","escaped","UnicodeProperty","shorthand","binary","generate","_slicedToArray","arr","Symbol","iterator","_arr","_n","_d","_i","next","done","err","sliceIterator","_toConsumableArray","arr2","currentTransitionMap","sameRow","r1","r2","s1","s2","areEquivalent","table","alphabet","_iteratorNormalCompletion8","_didIteratorError8","_iteratorError8","_step8","_iterator8","goToSameSet","return","originalTransitionS1","originalTransitionS2","minimize","dfa","getTransitionTable","allStates","getAlphabet","accepting","getAcceptingStateNumbers","nonAccepting","Set","state","add","previous","_loop","newTransitionMap","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_set","handledStates","_set2","first","rest","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","restSets","_step4","_iterator4","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step5","_iterator5","handledState","assign","newSets","remaped","idx","minimizedTable","minimizedAcceptingStates","updateAcceptingStates","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","entries","_ref2","_idx","_iteratorNormalCompletion6","_didIteratorError6","_iteratorError6","_step6","_iterator6","originalTransition","_iteratorNormalCompletion7","_didIteratorError7","_iteratorError7","_step7","_iterator7","originalState","setTransitionTable","setAcceptingStateNumbers","DFAMinimizer","EPSILON_CLOSURE","DFA","nfa","_nfa","_originalAcceptingStateNumbers","_acceptingStateNumbers","_originalTransitionTable","_transitionTable","stateNumbers","_this","nfaTable","nfaStates","worklist","nfaAcceptingStates","dfaTable","states","nfaAcceptingState","dfaStateLabel","onSymbol","nfaStatesOnSymbol","nfaStateOnSymbol","apply","dfaStatesOnSymbolSet","dfaStatesOnSymbol","dfaOnSymbolStr","_remapStateNumbers","calculatedDFATable","newStatesMap","transitionTable","originalNumber","newNumber","originalRow","row","_originalNumber","NFA","nfaFromRegExp","builders","toNFA","toDFA","NFAState","EPSILON","char","inState","outState","addTransition","altPair","second","out","in","orPair","alt","_len","fragments","_key","or","_len2","_key2","rep","fragment","repExplicit","plusRep","questionRep","parser","_require","captureLocations","State","_State","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","subClass","superClass","create","constructor","setPrototypeOf","_inherits","visited","getTransitionsOnSymbol","symbolTransitions","_this2","_epsilonClosure","epsilonTransitions","closure","nextState","getEpsilonClosure","_alphabet","transitions","_acceptingStates","getAcceptingStates","acceptingState","symbols","visitState","getTransitions","combinedState","_ref$accepting","_transitions","toState","optimizationTransforms","optimize","_ref$whitelist","whitelist","_ref$blacklist","blacklist","TransformResult","prevResultString","transformer","newResult","UPPER_A_CP","codePointAt","UPPER_Z_CP","_AZClassRanges","classRange","lower","isSurrogatePair","_getSurrogatePairFrom","trail","lead","floor","getSurrogatePairFromCodePoint","repeat","code","displaySymbolAsValue","sortCharClass","aValue","getSortValue","bValue","isMeta","isControl","fitsInMetas","metas","hasIUFlags","fitsInMeta","meta","fitsInMetaS","fitsInMetaD","fitsInMetaW","combinesWithPrecedingClassRange","fitsInClassRange","isMetaWCharOrCode","combinesWithFollowingClassRange","charCombinesWithPrecedingChars","nbMergedChars","currentExpression","precedingExpresion","_hasIUFlags","splice","getParent","insertChildAt","sources","childPath","getChild","jsonEncode","_hasIFlag","isFullNumberRange","rewriteNumberRanges","hasIFlag","hasUFlag","numberPath","lowerCasePath","upperCasePath","underscorePath","u017fPath","u212aPath","isMetaChar","isLowerCaseRange","isUpperCaseRange","isUnderscore","isCodePoint","rewriteWordRanges","whitespaceRangeTests","nNode","rewriteWhitespaceRanges","isChar","shouldEscape","previousNode","hasAppropriateSiblings","isAppropriateChar","_node$expressions$","getInverseMeta","LOWER_A_CP","LOWER_Z_CP","DIGIT_0_CP","DIGIT_9_CP","fromCodePoint","newChar","parentType","needsEscape","consumeNumbers","startIndex","rtl","siblingNode","abs","isSimpleChar","_hasXFlag","hasXFlag","nbFollowingNumbers","nextSiblingNode","preservesOpeningCurlyBraceEscape","nbPrecedingNumbers","previousSiblingNode","preservesClosingCurlyBraceEscape","preservesEscape","preservesInCharClass","shouldUnescape","NodePath","increaseQuantifierByOne","combineRepeatingPatternLeft","alternative","child","nbPossibleLengths","ceil","getForNode","hasEqualSource","combineWithPreviousRepetition","previousChild","combineRepetitionWithPrevious","rightLength","disjunctionToList","listToDisjunction","uniqueNodesMap","encoded","handlers","charset","shouldProcess","characterClass","rewriteOpenZero","rewriteOpenOne","parentPath","rewriteExactOne","isGreedyOpenRange","extractFromTo","previousSibling","getPreviousSibling","_extractFromTo","previousSiblingFrom","previousSiblingTo","_extractFromTo2","nodeFrom","nodeTo","yytext","yy","__","__loc","yyloc","startOffset","endOffset","startLine","endLine","startColumn","endColumn","productions","_1","_1loc","_2","_3","_4","_2loc","_3loc","_4loc","Node","checkFlags","loc","_loc","separatorIdx","isShorthand","unicodeProperties","isGeneralCategoryValue","isBinaryProperty","isBinaryPropertyName","isValidName","SyntaxError","isValidValue","canonicalName","getCanonicalName","canonicalValue","getCanonicalValue","text","textLoc","capturingGroupsCount","decodeUnicodeGroupName","namedGroups","charRe","chars","uReStart","ucpReStart","NamedGroupRefOrChars","getRange","allowGroupNameDuplicates","checkClassRange","tokens","stack","tokenizer","lexRules","validateUnicodeGroupName","getCurrentState","popState","pushState","lexRulesByConditions","EOF_TOKEN","initString","_string","_cursor","_states","_tokensQueue","_currentLine","_currentColumn","_currentLineBeginOffset","_tokenStartOffset","_tokenEndOffset","_tokenStartLine","_tokenEndLine","_tokenStartColumn","_tokenEndColumn","getStates","begin","getNextToken","onToken","_toToken","hasMoreTokens","lexRulesForState","lexRuleIndex","lexRule","_match","token","tokensToQueue","isEOF","throwUnexpectedToken","line","column","lineSource","lineData","getCursor","getCurrentLine","getCurrentColumn","_captureLocation","nlRe","nlMatch","tokenType","lexer","yyparse","setOptions","getOptions","parseOptions","globalOptions","onParseBegin","shiftedToken","unexpectedEndOfInput","unexpectedToken","_loc2","onShift","semanticValue","productionNumber","production","hasSemanticAction","semanticValueArgs","locationArgs","rhsLength","stackEntry","reduceStackEntry","semanticActionArgs","symbolToReduceWith","onParseEnd","setTokenizer","customTokenizer","getTokenizer","parsingString","isFinite","lastSlash","lastIndexOf","_value$split$slice2","hex","validFlags","seen","flag","ucpReAnywhere","uidRe","leadSurrogate","trailSurrogate","leadSurrogateOnly","trailSurrogateOnly","nonSurrogate","offset","parseError","regexpTreeParser","generatedParseFn","bind","NON_BINARY_PROP_NAMES_TO_ALIASES","General_Category","Script","Script_Extensions","NON_BINARY_ALIASES_TO_PROP_NAMES","inverseMap","BINARY_PROP_NAMES_TO_ALIASES","ASCII","ASCII_Hex_Digit","Alphabetic","Any","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","IDS_Binary_Operator","IDS_Trinary_Operator","ID_Continue","ID_Start","Ideographic","Join_Control","Logical_Order_Exception","Lowercase","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start","BINARY_ALIASES_TO_PROP_NAMES","GENERAL_CATEGORY_VALUE_TO_ALIASES","Cased_Letter","Close_Punctuation","Connector_Punctuation","Control","Currency_Symbol","Dash_Punctuation","Decimal_Number","Enclosing_Mark","Final_Punctuation","Format","Initial_Punctuation","Letter","Letter_Number","Line_Separator","Lowercase_Letter","Mark","Math_Symbol","Modifier_Letter","Modifier_Symbol","Nonspacing_Mark","Open_Punctuation","Other","Other_Letter","Other_Number","Other_Punctuation","Other_Symbol","Paragraph_Separator","Private_Use","Punctuation","Separator","Space_Separator","Spacing_Mark","Surrogate","Titlecase_Letter","Unassigned","Uppercase_Letter","GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES","SCRIPT_VALUE_TO_ALIASES","Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Common","Coptic","Cuneiform","Cypriot","Cyrillic","Deseret","Devanagari","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kayah_Li","Kharoshthi","Khmer","Khojki","Khudawadi","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Medefaidrin","Masaram_Gondi","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","New_Tai_Lue","Newa","Nko","Nushu","Ogham","Ol_Chiki","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Takri","Tamil","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Ugaritic","Vai","Warang_Citi","Yi","Zanabazar_Square","SCRIPT_VALUE_ALIASES_TO_VALUE","inverse","isScriptCategoryValue","isAlias","isGeneralCategoryName","isScriptCategoryName","compatTranspiler","optimizer","_traverse","fa","regexpTree","traverse","toRegExp","compat","compatTranspile","getSource","getFlags","_ast","_source","_regexp","_extra","asNodes","getPathFor","prop","initRegistry","root","skipProperty","visit","res","_prop","traversingIndexStack","updateTraversingIndex","astTraverse","isRemoved","handlerFuncPre","handlerFuncPost","DEFAULT_COLLECTION_PROP","DEFAULT_SINGLE_PROP","property","_enforceProp","setChild","getTraversingIndex","_rebuildIndex","registry","delete","newNode","nodeProps","jsonSkipLoc","format","useLoc","clear","dx","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","chunkIds","priority","notFulfilled","fulfilled","getter","__esModule","definition","Promise","globalThis","Function","toStringTag","nmd","paths","children","document","baseURI","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","nc","__webpack_exports__"],"sourceRoot":""}