diff --git a/app/build.gradle b/app/build.gradle index 5950e985e0..cb8262fbd3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -70,6 +70,7 @@ dependencies { implementation 'androidx.recyclerview:recyclerview:1.2.1' implementation files('libs/thunder.jar') implementation files('libs/commons-lang3-3.12.0.jar') + implementation 'org.conscrypt:conscrypt-android:2.5.2' implementation files('libs/xwalk_shared_library-23.53.589.4.aar') implementation 'com.squareup.okhttp3:okhttp:3.12.11' @@ -99,7 +100,7 @@ dependencies { implementation 'com.owen:tv-recyclerview:3.0.0' implementation 'com.github.getActivity:XXPermissions:13.6' - implementation 'org.jsoup:jsoup:1.14.1' + implementation 'org.jsoup:jsoup:1.16.2' implementation 'com.github.hedzr:android-file-chooser:v1.2.0-final' implementation 'commons-io:commons-io:2.11.0' implementation 'com.googlecode.juniversalchardet:juniversalchardet:1.0.3' diff --git a/app/libs/dec-0.1.2.jar b/app/libs/dec-0.1.2.jar new file mode 100644 index 0000000000..7f1c1be5af Binary files /dev/null and b/app/libs/dec-0.1.2.jar differ diff --git a/app/libs/wrapper-android-release.aar b/app/libs/wrapper-android-release.aar new file mode 100644 index 0000000000..a981d56ade Binary files /dev/null and b/app/libs/wrapper-android-release.aar differ diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 40f43aa1a3..f788d2de74 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -202,7 +202,7 @@ # 迅雷下载模块 -keep class com.xunlei.downloadlib.** {*;} # quickjs引擎 --keep class com.github.tvbox.quickjs.** {*;} +-keep class com.whl.quickjs.** {*;} # 支持影视的ali相关的jar -keep class com.google.gson.**{*;} # Zxing @@ -210,4 +210,4 @@ -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); -} \ No newline at end of file +} diff --git a/app/src/main/assets/js/lib/ali.js b/app/src/main/assets/js/lib/ali.js new file mode 100644 index 0000000000..643387fd7f --- /dev/null +++ b/app/src/main/assets/js/lib/ali.js @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/app/src/main/assets/js/lib/ali_api.js b/app/src/main/assets/js/lib/ali_api.js new file mode 100644 index 0000000000..ff84d8812b --- /dev/null +++ b/app/src/main/assets/js/lib/ali_api.js @@ -0,0 +1 @@ +//bbQ0FUT1DgAhxsaWIvYWxpX2FwaS5qcyxhc3NldHM6Ly9qcy9saWIvY2F0LmpzFC4vdXRpbHMuanMQaW5pdFNvbWUQc2V0VG9rZW4MZ2V0Vm9kGnBsYXllckNvbnRlbnQmcGxheWVyQ29udGVudEJ5RmxhZwJfDGppbmphMghVc2VyCk9BdXRoCENvZGUISXRlbQpTaGFyZQZTdWIKVXRpbHMEVUESQ0xJRU5UX0lEDnF1YWxpdHkOdGVtcElkcxhyZWZyZXNoVG9rZW4Kc2hhcmUKb2F1dGgIdXNlchJkcml2ZUluZm8GbG9nGGdldFVzZXJDYWNoZRpnZXRPQXV0aENhY2hlHnNldFJlZnJlc2hUb2tlbhBnZXRUb2tlbhJnZXRIZWFkZXIaZ2V0SGVhZGVyQXV0aBxnZXRIZWFkZXJTaGFyZRpnZXRIZWFkZXJPcGVuCmFsaXN0EmdldFN0cmluZxBwb3N0SnNvbghwb3N0CGF1dGgSc2hhcmVGdW5jEm9hdXRoRnVuYxppc01hbnlSZXF1ZXN0InJlZnJlc2hTaGFyZVRva2VuJHJlZnJlc2hBY2Nlc3NUb2tlbhhvYXV0aFJlcXVlc3Qab2F1dGhSZWRpcmVjdCByZWZyZXNoT3BlblRva2VuEmxpc3RGaWxlcx5saXN0RmlsZXNNYXJrZXIeZ2V0UGFyZW50RmlsZUlkCHBhaXIQZmluZFN1YnMOZ2V0U3VicxhnZXREcml2ZUluZm8UZ2V0RHJpdmVJZBxnZXREb3dubG9hZFVybC5nZXRWaWRlb1ByZXZpZXdQbGF5SW5mbxpnZXRQcmV2aWV3VXJsImdldFN1YnNCeVBsYXlJbmZvCGNvcHkSZGVsZXRlQWxsEmRlbGV0ZU9uZRRvYmplY3RGcm9tEmdldFVzZXJJZBhnZXRUb2tlblR5cGUcZ2V0QWNjZXNzVG9rZW4eZ2V0UmVmcmVzaFRva2VuIGdldEF1dGhvcml6YXRpb24QaXNBdXRoZWQSaXNFeHBpcmVkCmNsZWFuCHNhdmUcZ2V0UmVkaXJlY3RVcmkOZ2V0Q29kZRBnZXRJdGVtcxpnZXROZXh0TWFya2VyEmdldEZpbGVJZA5nZXROYW1lDmdldFR5cGUMZ2V0RXh0FmdldENhdGVnb3J5DmdldFNpemUSZ2V0UGFyZW50FHBhcmVudEZ1bmMcZ2V0RGlzcGxheU5hbWUUZ2V0U2hhcmVJZBpnZXRTaGFyZVRva2VuDnNldFRpbWUUc2V0U2hhcmVJZAphbGl2ZQxjcmVhdGUOc2V0TmFtZQxzZXRVcmwOc2V0TGFuZxJzZXRGb3JtYXQMc2V0RXh0lgJNb3ppbGxhLzUuMCAoaVBob25lOyBDUFUgaVBob25lIE9TIDEzXzJfMyBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vMTMuMC4zIE1vYmlsZS8xNUUxNDggU2FmYXJpLzYwNC4xQDc2OTE3Y2NjY2Q0NDQxYzM5NDU3YTA0ZjYwODRmYjJmDmRyaXZlSWQMdXNlcklkEnRva2VuVHlwZRZhY2Nlc3NUb2tlbhJleHBpcmVzSW4gZXhwaXJlc1RpbWVzdGFtcAZzdHIGb2JqEnRpbWVzdGFtcA5pc0VtcHR5CnBhcnNlIGRlZmF1bHRfZHJpdmVfaWQOdXNlcl9pZBR0b2tlbl90eXBlGGFjY2Vzc190b2tlbhpyZWZyZXNoX3Rva2VuFGV4cGlyZXNfaW4iZXhwaXJlc190aW1lc3RhbXAOZ2V0VGltZQIgCmxvY2FsBmFsaSBhbGl5dW5kcml2ZV91c2VyEnN0cmluZ2lmeSJhbGl5dW5kcml2ZV9vYXV0aBZyZWRpcmVjdFVyaQhjb2RlCmNvZGU9DGZpbGVJZAppdGVtcxRuZXh0TWFya2VyDnNoYXJlSWQIdHlwZRpmaWxlRXh0ZW5zaW9uEGNhdGVnb3J5CHNpemUMcGFyZW50CGl0ZW0WbmV4dF9tYXJrZXIOZmlsZV9pZBBzaGFyZV9pZBxmaWxlX2V4dGVuc2lvbhxwYXJlbnRfZmlsZV9pZA5pc0FycmF5DmZvckVhY2gGZWxlBm9uZQhwdXNoAlsCXQh0aW1lFnNoYXJlX3Rva2VuFmV4cGlyZV90aW1lFGNyZWF0b3JfaWQYY3JlYXRvcl9uYW1lGmNyZWF0b3JfcGhvbmUUZXhwaXJhdGlvbhR1cGRhdGVkX2F0BnZpcAxhdmF0YXIUc2hhcmVfbmFtZRhkaXNwbGF5X25hbWUWc2hhcmVfdGl0bGUOaGFzX3B3ZBhtaWxsaXNlY29uZHMGdXJsCGxhbmcMZm9ybWF0BmV4dAZ2dHQQdGV4dC92dHQGYXNzBnNzYRR0ZXh0L3gtc3NhKGFwcGxpY2F0aW9uL3gtc3VicmlwEnVzZXJDYWNoZRRvYXV0aENhY2hlEG9hdXRoU3RyDnVzZXJTdHIkaW5pdFNvbWUtLS0tb2F1dGgtDmNvbnNvbGUKZGVidWcYaW5pdFNvbWUtLS0tImluaXRTb21lLS0tLXVzZXItBlVIRAQ0SwZRSEQEMmsGRkhEBYWNBW4ESEQF2JoFbgRTRAUHaAVuBExEBUFtRXUKdG9rZW4MaGVhZGVyFFVzZXItQWdlbnQOUmVmZXJlcjhodHRwczovL3d3dy5hbGl5dW5kcml2ZS5jb20vGngtc2hhcmUtdG9rZW4QWC1DYW5hcnlQY2xpZW50PUFuZHJvaWQsYXBwPWFkcml2ZSx2ZXJzaW9uPXY0LjMuMRphdXRob3JpemF0aW9uIGdldEhlYWRlck9wZW4tLS0IYm9keQZhcGkGcmVzBmNvbkxodHRwczovL2FsaWFwaS5ld3dlLmdxL2FsaXN0L2FsaV9vcGVuLw5jb250ZW50EGFsaXN0LS0tGmFsaXN0LS1vYXV0aC0mYWxpc3QtLW9hdXRoLXN0cmluZwZyZXEIanNvbhhDb250ZW50LVR5cGUgYXBwbGljYXRpb24vanNvbg5oZWFkZXJzDG1ldGhvZAhkYXRhFHN0YXJ0c1dpdGgKaHR0cHM4aHR0cHM6Ly9hcGkuYWxpeXVuZHJpdmUuY29tLxZhdXRoLS1yZXMtLSItLS0tc2hhcmVGdW5jLS0tLVJodHRwczovL29wZW4uYWxpeXVuZHJpdmUuY29tL2Fkcml2ZS92MS4wLyJvYXV0aEZ1bmMtLXJlcy0xLQxyZXN1bHQOaW5kZXhPZiJUb28gTWFueSBSZXF1ZXN0cwJlEnNoYXJlX3B3ZDp2Mi9zaGFyZV9saW5rL2dldF9zaGFyZV90b2tlbkAtLS0tcmVmcmVzaFNoYXJlVG9rZW4tLS1qc29uLS0tLUItLS0tcmVmcmVzaFNoYXJlVG9rZW4tLS1zaGFyZS0tLS0IaHR0cAh0cmltFGdyYW50X3R5cGU2cmVmcmVzaEFjY2Vzc1Rva2VuLS0tYm9keS0tWmh0dHBzOi8vYXV0aC5hbGl5dW5kcml2ZS5jb20vdjIvYWNjb3VudC90b2tlbjpyZWZyZXNoQWNjZXNzVG9rZW4tLS1yZXN1bHQtLTJyZWZyZXNoQWNjZXNzVG9rZW4tLXVzZXItNnJlZnJlc2hBY2Nlc3NUb2tlbi0tLWVycm9yLRJhdXRob3JpemUKc2NvcGVMdXNlcjpiYXNlLGZpbGU6YWxsOnJlYWQsZmlsZTphbGw6d3JpdGV6aHR0cHM6Ly9vcGVuLmFsaXl1bmRyaXZlLmNvbS9vYXV0aC91c2Vycy9hdXRob3JpemU/Y2xpZW50X2lkPd4BJnJlZGlyZWN0X3VyaT1odHRwczovL2FsaXN0Lm5uLmNpL3Rvb2wvYWxpeXVuZHJpdmUvY2FsbGJhY2smc2NvcGU9dXNlcjpiYXNlLGZpbGU6YWxsOnJlYWQsZmlsZTphbGw6d3JpdGUmc3RhdGU9Hm9hdXRoUmVxdWVzdC0tLSRhdXRob3JpemF0aW9uX2NvZGUKZmlsZXMIc3VicxhwYXJlbnRGaWxlSWQQcGxheUZyb20OZXBpc29kZQ5wbGF5VXJsCGZpbGUCaQZ2b2RWYWRyaXZlL3YzL3NoYXJlX2xpbmsvZ2V0X3NoYXJlX2J5X2Fub255bW91cwWfUzt1AiQCKwIjDHZvZF9pZBZ2b2RfY29udGVudA52b2RfcGljEHZvZF9uYW1lBiQkJBh2b2RfcGxheV91cmwadm9kX3BsYXlfZnJvbQk/lsyRkU7YdhJ0eXBlX25hbWUQdm9kX3llYXIQdm9kX2FyZWEWdm9kX3JlbWFya3MSdm9kX2FjdG9yGHZvZF9kaXJlY3Rvcgxmb2xkZXIMbWFya2VyDmZvbGRlcnMKbGltaXQQb3JkZXJfYnkeb3JkZXJfZGlyZWN0aW9uBkFTQzhhZHJpdmUvdjIvZmlsZS9saXN0X2J5X3NoYXJlCnZpZGVvCmF1ZGlvCmlzU3ViEnNoYXJlSW5mbwphcnJheRBmaWxlSW5mbxRmaWxlX2luZm9zCHJvb3QKbmFtZTEKbmFtZTIScmVtb3ZlRXh0FnRvTG93ZXJDYXNlBnN1YgZAQEAGaWRzCHRleHQWZG93bmxvYWRVcmwQanNvbkRhdGEidXNlci9nZXREcml2ZUluZm8icmVzb3VyY2VfZHJpdmVfaWQeYmFja3VwX2RyaXZlX2lkGGN1ckRyaXZlSW5mbx5jdXJEcml2ZUluZm8tLS0UY3VyRHJpdmVJZC5nZXREb3dubG9hZFVybC0tZmlsZUlkLQ51bnNoaWZ0EGRyaXZlX2lkLm9wZW5GaWxlL2dldERvd25sb2FkVXJsImdldERvd25sb2FkVXJsLS0tIGxpdmVfdHJhbnNjb2RpbmccdXJsX2V4cGlyZV9zZWNAb3BlbkZpbGUvZ2V0VmlkZW9QcmV2aWV3UGxheUluZm80Z2V0VmlkZW9QcmV2aWV3UGxheUluZm89PT0udmlkZW9fcHJldmlld19wbGF5X2luZm8OY2F0U3Vicwp0aXRsZQhzdWJ0CmV4dHJhMGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQhmbGFnEHBsYXlJbmZvEm90aGVyU3VicwxvbmVTdWIqYXBwbGljYXRpb24veC1tcGVnVVJMEHRhc2tMaXN0CHRhc2scaGFzT3duUHJvcGVydHk0bGl2ZV90cmFuc2NvZGluZ190YXNrX2xpc3QWdGVtcGxhdGVfaWRGbGl2ZV90cmFuc2NvZGluZ19zdWJ0aXRsZV90YXNrX2xpc3QQbGFuZ3VhZ2UYY29weS0tLXVzZXItnAR7InJlcXVlc3RzIjpbeyJib2R5Ijp7ImZpbGVfaWQiOiJ7e2RhdGEuZmlsZUlkfX0iLCJzaGFyZV9pZCI6Int7ZGF0YS5zaGFyZUlkfX0iLCJhdXRvX3JlbmFtZSI6dHJ1ZSwidG9fcGFyZW50X2ZpbGVfaWQiOiJyb290IiwidG9fZHJpdmVfaWQiOiJ7e2RhdGEuZHJpdmVJZH19In0sImhlYWRlcnMiOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LCJpZCI6IjAiLCJtZXRob2QiOiJQT1NUIiwidXJsIjoiL2ZpbGUvY29weSJ9XSwicmVzb3VyY2UiOiJmaWxlIn0OY29weS0tLR5hZHJpdmUvdjIvYmF0Y2gaY29weS0tLXJlc3VsdDRGb3JiaWRkZW5Ob1Blcm1pc3Npb24uRmlsZRJyZXNwb25zZXMKb25lSWQOZGVsZXRlZBZzZWFyY2hJbmRleAxzcGxpY2UYZGVsZXRlT25lLS0tngN7InJlcXVlc3RzIjpbeyJib2R5Ijp7ImRyaXZlX2lkIjoie3tkYXRhLmRyaXZlSWR9fSI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 \ No newline at end of file diff --git a/app/src/main/assets/js/lib/cat.js b/app/src/main/assets/js/lib/cat.js new file mode 100644 index 0000000000..4500510f1e --- /dev/null +++ b/app/src/main/assets/js/lib/cat.js @@ -0,0 +1 @@ +//bbQ0FUT1C/ISxhc3NldHM6Ly9qcy9saWIvY2F0LmpzDENyeXB0bwZVcmkCXw5jaGVlcmlvEGNvbnRhaW5zCmRheWpzCGh0bWwMamluamEyBGpwBmpwbwhsb2FkCm1lcmdlEnBhcnNlSFRNTAhyb290CHRleHQGeG1sAmQCbQJFAlQCQQJnAnYCeQJ3BEVyBGFpBG1pBFRpBCRpBGxhBHZhBEJhBGxoAmUEcGUCdAJuAnICaQJzAmECbwJjAnUCbAJoAmYCcAJTAkMCTgJiAkkCTwJrAkwCRAJSAngCTQJQAkICRgJVAkgCRwJqAnECWQJLAlcCVgIkAlECegJYAloCSgRlZQR0ZQRuZQRyZQRpZQRzZQRhZQRvZQRjZQR1ZQRsZQRoZQRmZQRkZQRtZQRfZQRFZQRUZQRBZQRnZQR2ZQR5ZQRTZQRDZQROZQRiZQRJZQRPZQRrZQRMZQREZQRSZQR3ZQR4ZQRNZQRQZQRCZQRGZQRVZQRIZQRHZQRqZQRxZQRZZQRLZQRXZQRWZQQkZQRRZQR6ZQRYZQRaZQRKZQRldAR0dARudARydARpdARzdARhdARvdARjdAR1dARsdARodARmdARwdARkdARKdARtdARfdARFdARUdARBdARndAR2dAR5dARTdARDdAROdARidARJdARPdARrdARMdAREdARSdAR3dAR4dARNdARQdARCdARGdARVdARIdARHdARqdARxdARZdARLdARXdARWdAQkdARRdAR6dARYdARadARlbgR0bgRubgRybgRzbgRhbgRvbgRjbgR1bgRsbgRobgRmbgRwbgRkbgRtbgRfbgRFbgRUbgRBbgRnbgR2bgR5bgRTbgRDbgRObgRibgRJbgRPbgRrbgRMbgREbgRSbgR3bgR4bgRNbgRQbgRCbgRGbgRVbgRIbgRHbgRqbgRxbgRZbgRLbgRXbgRWbgQkbgRRbgR6bgRYbgRabgRKbgRlcgR0cgRhcgRfcgRUcgRucgRycgRpcgRzcgRvcgRjcgR1cgRscgRocgRmcgRwcgRkcgRtcgRBcgRncgR2cgR5cgRTcgRDcgROcgRicgRJcgRPcgRrcgRMcgREcgRScgR3cgR4cgRNcgRQcgRCcgRGcgRVcgRRcgRfaQRZaQRIcgRHcgRqcgRxcgRZcgRLcgRXcgRWcgQkcgR6cgRYcgRacgRKcgRlaQR0aQRuaQRyaQRpaQRzaQRvaQRjaQR1aQRsaQRoaQRmaQRwaQRkaQRFaQRBaQRnaQR2aQR5aQRTaQRDaQROaQRiaQRJaQRPaQRraQRMaQREaQRSaQR3aQR4aQRNaQRQaQRCaQRGaQRVaQRIaQRHaQRqaQRxaQRLaQRXaQRWaQRRaQR6aQRYaQRaaQRKaQRlcwR0cwRucwRycwRpcwRzcwRvcwRjcwR1cwRscwRocwRmcwRwcwRkcwRtcwRfcwRFcwRUcwRBcwRncwR2cwR5cwRTcwRDcwROcwRicwRJcwRPcwRrcwRMcwREcwRScwR3cwR4cwRNcwRQcwRCcwRGcwRVcwRIcwRHcwRqcwRxcwRZcwRLcwRXcwRWcwQkcwRRcwR6cwRYcwRacwRKcwRlYQR0YQRuYQRyYQRpYQRzYQRhYQRvYQRjYQR1YQRoYQRmYQRwYQRkYQRtYQRfYQRFYQRUYQRBYQRnYQR5YQRTYQRDYQROYQRiYQRJYQRPYQRrYQRMYQREYQRSYQR3YQR4YQRNYQRQYQRGYQRVYQRIYQRHYQRqYQRxYQRZYQRLYQRXYQRWYQQkYQRRYQR6YQRYYQRaYQRKYQRlbwR0bwRubwRybwRpbwRzbwRhbwRvbwRjbwR1bwRsbwRobwRmbwRwbwRtbwRfbwRFbwRUbwRBbwRnbwR2bwR5bwRTbwRDbwRObwRibwRJbwRPbwRrbwRMbwREbwRSbwR3bwR4bwRNbwRQbwRCbwRGbwRVbwRIbwRHbwRqbwRxbwRZbwRLbwRXbwRWbwQkbwRRbwR6bwRYbwRabwRKbwRlYwR0YwRuYwRyYwRpYwRzYwRhYwRvYwRjYwR1YwRsYwRoYwRmYwRwYwRkYwRtYwRfYwRFYwRUYwRBYwRnYwR2YwR5YwRTYwRDYwROYwRiYwRJYwRPYwRrYwRMYwREYwRSYwR3YwR4YwRNYwRQYwRCYwRGYwRVYwRIYwRHYwRqYwRxYwRZYwRLYwRXYwRWYwQkYwRRYwR6YwRYYwRaYwRKYwRldQR0dQRudQRydQRpdQRzdQRhdQRvdQRjdQR1dQRsdQRodQRmdQRwdQRkdQRtdQRfdQRFdQRUdQRBdQRndQR2dQR5dQRTdQRDdQROdQRidQRJdQRPdQRrdQRMdQREdQRSdQR3dQR4dQRNdQRQdQRCdQRGdQRVdQRIdQRHdQRqdQRxdQRZdQRLdQRXdQRWdQQkdQRRdQR6dQRYdQRadQRKdQRlbAR0bARubARybARpbARzbARhbARvbARjbAR1bARsbARobARmbARwbARkbARtbARfbARFbARUbARBbARnbAR2bAR5bARTbARDbARObARibARJbARPbARrbARMbAREbARSbAR3bAR4bARNbARQbARCbARGbARVbARIbARHbARqbARxbARZbARLbARXbARWbAQkbARRbAR6bARYbARabARKbARlaAR0aARuaARyaARpaARzaARhaARvaARjaAR1aARoaARmaARwaARkaARtaARfaARFaARUaARBaARnaAR2aAR5aARTaARDaAROaARiaARJaARPaARraBxkZWNvZGVFbnRpdGllcx5fdXNlSHRtbFBhcnNlcjIOeG1sTW9kZQhSb290CFRleHQSRGlyZWN0aXZlDkNvbW1lbnQMU2NyaXB0ClN0eWxlBlRhZwpDREFUQQ5Eb2N0eXBlFHBhcmVudE5vZGUecHJldmlvdXNTaWJsaW5nFm5leHRTaWJsaW5nEmNsb25lTm9kZRJub2RlVmFsdWUQbm9kZVR5cGUUZmlyc3RDaGlsZBJsYXN0Q2hpbGQUY2hpbGROb2Rlcw50YWdOYW1lFGF0dHJpYnV0ZXMgd2l0aFN0YXJ0SW5kaWNlcxx3aXRoRW5kSW5kaWNlcxhvbnBhcnNlcmluaXQOb25yZXNldApvbmVuZA5vbmVycm9yFG9uY2xvc2V0YWcSb25vcGVudGFnDG9udGV4dBJvbmNvbW1lbnQYb25jb21tZW50ZW5kGG9uY2RhdGFzdGFydBRvbmNkYXRhZW5kLm9ucHJvY2Vzc2luZ2luc3RydWN0aW9uHGhhbmRsZUNhbGxiYWNrDmFkZE5vZGUMJnF1b3Q7CiZhbXA7DCZhcG9zOwgmbHQ7CCZndDsWY29kZVBvaW50QXQMJm5ic3A7EGFsdEdseXBoFmFsdEdseXBoRGVmGGFsdEdseXBoSXRlbRhhbmltYXRlQ29sb3IaYW5pbWF0ZU1vdGlvbiBhbmltYXRlVHJhbnNmb3JtEGNsaXBQYXRoDmZlQmxlbmQaZmVDb2xvck1hdHJpeCZmZUNvbXBvbmVudFRyYW5zZmVyFmZlQ29tcG9zaXRlIGZlQ29udm9sdmVNYXRyaXgiZmVEaWZmdXNlTGlnaHRpbmciZmVEaXNwbGFjZW1lbnRNYXAcZmVEaXN0YW50TGlnaHQYZmVEcm9wU2hhZG93DmZlRmxvb2QOZmVGdW5jQQ5mZUZ1bmNCDmZlRnVuY0cOZmVGdW5jUhxmZUdhdXNzaWFuQmx1cg5mZUltYWdlDmZlTWVyZ2UWZmVNZXJnZU5vZGUYZmVNb3JwaG9sb2d5EGZlT2Zmc2V0GGZlUG9pbnRMaWdodCRmZVNwZWN1bGFyTGlnaHRpbmcWZmVTcG90TGlnaHQMZmVUaWxlGGZlVHVyYnVsZW5jZRpmb3JlaWduT2JqZWN0EGdseXBoUmVmHGxpbmVhckdyYWRpZW50HHJhZGlhbEdyYWRpZW50EHRleHRQYXRoBm1hcBpkZWZpbml0aW9uVVJMGmF0dHJpYnV0ZU5hbWUaYXR0cmlidXRlVHlwZRpiYXNlRnJlcXVlbmN5FmJhc2VQcm9maWxlEGNhbGNNb2RlGmNsaXBQYXRoVW5pdHMeZGlmZnVzZUNvbnN0YW50EGVkZ2VNb2RlFmZpbHRlclVuaXRzImdyYWRpZW50VHJhbnNmb3JtGmdyYWRpZW50VW5pdHMYa2VybmVsTWF0cml4IGtlcm5lbFVuaXRMZW5ndGgSa2V5UG9pbnRzFGtleVNwbGluZXMQa2V5VGltZXMYbGVuZ3RoQWRqdXN0ImxpbWl0aW5nQ29uZUFuZ2xlGG1hcmtlckhlaWdodBZtYXJrZXJVbml0cxZtYXJrZXJXaWR0aCBtYXNrQ29udGVudFVuaXRzEm1hc2tVbml0cxRudW1PY3RhdmVzFHBhdGhMZW5ndGgmcGF0dGVybkNvbnRlbnRVbml0cyBwYXR0ZXJuVHJhbnNmb3JtGHBhdHRlcm5Vbml0cxJwb2ludHNBdFgScG9pbnRzQXRZEnBvaW50c0F0WhpwcmVzZXJ2ZUFscGhhJnByZXNlcnZlQXNwZWN0UmF0aW8ccHJpbWl0aXZlVW5pdHMIcmVmWAhyZWZZFnJlcGVhdENvdW50EnJlcGVhdER1ciRyZXF1aXJlZEV4dGVuc2lvbnMgcmVxdWlyZWRGZWF0dXJlcyBzcGVjdWxhckNvbnN0YW50IHNwZWN1bGFyRXhwb25lbnQYc3ByZWFkTWV0aG9kFnN0YXJ0T2Zmc2V0GHN0ZERldmlhdGlvbhZzdGl0Y2hUaWxlcxhzdXJmYWNlU2NhbGUcc3lzdGVtTGFuZ3VhZ2UWdGFibGVWYWx1ZXMOdGFyZ2V0WA50YXJnZXRZFHRleHRMZW5ndGgOdmlld0JveBR2aWV3VGFyZ2V0IHhDaGFubmVsU2VsZWN0b3IgeUNoYW5uZWxTZWxlY3RvchR6b29tQW5kUGFuCnN0eWxlDHNjcmlwdAZ4bXAMaWZyYW1lDm5vZW1iZWQQbm9mcmFtZXMScGxhaW50ZXh0EG5vc2NyaXB0CGFyZWEIYmFzZRBiYXNlZm9udAZjb2wOY29tbWFuZAplbWJlZApmcmFtZQZpbWcOaXNpbmRleAxrZXlnZW4IbGluawpwYXJhbQp0cmFjawZ3YnIKbXRleHQcYW5ub3RhdGlvbi14bWwIZGVzYwp0aXRsZQZzdmcIbWF0aBB0YWdfbmFtZRB0YWdfdHlwZRh0YWdfY29udGFpbnMGdXJsCHR5cGUIbGFuZxBmaWxlU2l6ZQ5iaXRyYXRlEmZyYW1lcmF0ZRhzYW1wbGluZ3JhdGUQY2hhbm5lbHMQZHVyYXRpb24MaGVpZ2h0CndpZHRoDGZyZWV6ZQppc1RhZw5pc0NEQVRBDGlzVGV4dBJpc0NvbW1lbnQUaXNEb2N1bWVudBZoYXNDaGlsZHJlbhhnZXRPdXRlckhUTUwYZ2V0SW5uZXJIVE1MDmdldFRleHQWdGV4dENvbnRlbnQSaW5uZXJUZXh0FmdldENoaWxkcmVuEmdldFBhcmVudBZnZXRTaWJsaW5ncyJnZXRBdHRyaWJ1dGVWYWx1ZRJoYXNBdHRyaWIOZ2V0TmFtZSRuZXh0RWxlbWVudFNpYmxpbmckcHJldkVsZW1lbnRTaWJsaW5nGnJlbW92ZUVsZW1lbnQccmVwbGFjZUVsZW1lbnQWYXBwZW5kQ2hpbGQMYXBwZW5kGHByZXBlbmRDaGlsZA5wcmVwZW5kDGZpbHRlcghmaW5kGGZpbmRPbmVDaGlsZA5maW5kT25lEmV4aXN0c09uZQ5maW5kQWxsFnRlc3RFbGVtZW50FmdldEVsZW1lbnRzHGdldEVsZW1lbnRCeUlkKGdldEVsZW1lbnRzQnlUYWdOYW1lKGdldEVsZW1lbnRzQnlUYWdUeXBlGnJlbW92ZVN1YnNldHMgRG9jdW1lbnRQb3NpdGlvbi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbhR1bmlxdWVTb3J0DmdldEZlZWQcaGFzT3duUHJvcGVydHkKZGF0YS0IYXR0cghwcm9wCGRhdGEGdmFsFHJlbW92ZUF0dHIQaGFzQ2xhc3MQYWRkQ2xhc3MWcmVtb3ZlQ2xhc3MWdG9nZ2xlQ2xhc3MORWxlbWVudApTdGFydAZFbmQGQW55Bk5vdAxIeXBoZW4Gbm90Dm1hdGNoZXMKd2hlcmUIaG9zdBhob3N0LWNvbnRleHQSaWNvbnRhaW5zEHRydWVGdW5jEmZhbHNlRnVuYxJVbml2ZXJzYWwSQXR0cmlidXRlDFBzZXVkbwxFeGlzdHMMRXF1YWxzDGFjY2VwdBxhY2NlcHQtY2hhcnNldAphbGlnbgphbGluawhheGlzDmJnY29sb3IOY2hhcnNldA5jaGVja2VkCmNsZWFyEGNvZGV0eXBlCmNvbG9yDmNvbXBhY3QOZGVjbGFyZQpkZWZlcgZkaXISZGlyZWN0aW9uEGRpc2FibGVkDmVuY3R5cGUIZmFjZRBocmVmbGFuZxRodHRwLWVxdWl2EGxhbmd1YWdlCm1lZGlhDG1ldGhvZBBtdWx0aXBsZQxub2hyZWYQbm9yZXNpemUObm9zaGFkZQxub3dyYXAQcmVhZG9ubHkGcmVsBnJldgpydWxlcwpzY29wZRJzY3JvbGxpbmcQc2VsZWN0ZWQKc2hhcGUMdmFsaWduEnZhbHVldHlwZQp2bGluawxlcXVhbHMMaHlwaGVuDmVsZW1lbnQMZXhpc3RzCnN0YXJ0BmVuZAZhbnkUY2hhckNvZGVBdBJudGgtY2hpbGQcbnRoLWxhc3QtY2hpbGQWbnRoLW9mLXR5cGUgbnRoLWxhc3Qtb2YtdHlwZRJpc0hvdmVyZWQKaG92ZXISaXNWaXNpdGVkDnZpc2l0ZWQQaXNBY3RpdmUMYWN0aXZlCmVtcHR5FmZpcnN0LWNoaWxkFGxhc3QtY2hpbGQaZmlyc3Qtb2YtdHlwZRhsYXN0LW9mLXR5cGUYb25seS1vZi10eXBlFG9ubHktY2hpbGQwOmlzKGEsIGFyZWEsIGxpbmspW2hyZWZdEGFueS1saW5rLjphbnktbGluazpub3QoOnZpc2l0ZWQphgM6aXMoCiAgICAgICAgOmlzKGJ1dHRvbiwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIG9wdGdyb3VwLCBvcHRpb24pW2Rpc2FibGVkXSwKICAgICAgICBvcHRncm91cFtkaXNhYmxlZF0gPiBvcHRpb24sCiAgICAgICAgZmllbGRzZXRbZGlzYWJsZWRdOm5vdChmaWVsZHNldFtkaXNhYmxlZF0gbGVnZW5kOmZpcnN0LW9mLXR5cGUgKikKICAgICkeOm5vdCg6ZGlzYWJsZWQpDmVuYWJsZWSWATppcyg6aXMoaW5wdXRbdHlwZT1yYWRpb10sIGlucHV0W3R5cGU9Y2hlY2tib3hdKVtjaGVja2VkXSwgb3B0aW9uOnNlbGVjdGVkKUw6aXMoaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEpW3JlcXVpcmVkXRByZXF1aXJlZFg6aXMoaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEpOm5vdChbcmVxdWlyZWRdKRBvcHRpb25hbLgBb3B0aW9uOmlzKFtzZWxlY3RlZF0sIHNlbGVjdDpub3QoW211bHRpcGxlXSk6bm90KDpoYXMoPiBvcHRpb25bc2VsZWN0ZWRdKSkgPiA6Zmlyc3Qtb2YtdHlwZSkeW3R5cGU9Y2hlY2tib3hdEGNoZWNrYm94Flt0eXBlPWZpbGVdCGZpbGUeW3R5cGU9cGFzc3dvcmRdEHBhc3N3b3JkGFt0eXBlPXJhZGlvXQpyYWRpbxhbdHlwZT1yZXNldF0KcmVzZXQYW3R5cGU9aW1hZ2VdCmltYWdlGlt0eXBlPXN1Ym1pdF0Mc3VibWl0GDpub3QoOmVtcHR5KQxwYXJlbnQ2OmlzKGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYpDGhlYWRlcj46aXMoYnV0dG9uLCBpbnB1dFt0eXBlPWJ1dHRvbl0pDGJ1dHRvbkg6aXMoaW5wdXQsIHRleHRhcmVhLCBzZWxlY3QsIGJ1dHRvbilOaW5wdXQ6aXMoOm5vdChbdHlwZSE9JyddKSwgW3R5cGU9dGV4dF0pFERlc2NlbmRhbnQmX2ZsZXhpYmxlRGVzY2VuZGFudA5hZGFwdGVyCmZpcnN0CGxhc3QEZXEGbnRoCGV2ZW4Gb2RkEm5hbWVzcGFjZQ5wYXJlbnRzGHBhcmVudHNVbnRpbA5jbG9zZXN0Dm5leHRBbGwSbmV4dFVudGlsCHByZXYOcHJldkFsbBJwcmV2VW50aWwQc2libGluZ3MQY2hpbGRyZW4QY29udGVudHMIZWFjaBZmaWx0ZXJBcnJheQ50b0FycmF5CnNsaWNlDmFkZEJhY2saX21ha2VEb21BcnJheRBhcHBlbmRUbxJwcmVwZW5kVG8Id3JhcBJ3cmFwSW5uZXIMdW53cmFwDndyYXBBbGwKYWZ0ZXIWaW5zZXJ0QWZ0ZXIMYmVmb3JlGGluc2VydEJlZm9yZQxyZW1vdmUWcmVwbGFjZVdpdGgKY2xvbmUGY3NzOGlucHV0LHNlbGVjdCx0ZXh0YXJlYSxrZXlnZW4Sc2VyaWFsaXplHHNlcmlhbGl6ZUFycmF5IFtjaGVlcmlvIG9iamVjdF0Mc3BsaWNlEGl0ZXJhdG9yDGFzc2lnbgP9/wQtLQ5bQ0RBVEFbDmRvY3R5cGUMc3lzdGVtDG9mZnNldBBnZXRFcnJvcghfZXJyDl9hZGRHYXAiX3Byb2Nlc3NTdXJyb2dhdGUmd2lsbERyb3BQYXJzZWRDaHVuax5kcm9wUGFyc2VkQ2h1bmsKd3JpdGUsaW5zZXJ0SHRtbEF0Q3VycmVudFBvcxRzdGFydHNXaXRoCHBlZWsOYWR2YW5jZTxfY2hlY2tGb3JQcm9ibGVtYXRpY0NoYXJhY3RlcnMOcmV0cmVhdAx3aW5kb3cIc2VsZiByZXBsYWNlQ29kZVBvaW50GmZyb21Db2RlUG9pbnQSZGVjb2RlWE1MIGRlY29kZUhUTUxTdHJpY3QmZGVjb2RlSFRNTEF0dHJpYnV0ZRRkZWNvZGVIVE1MHmRldGVybWluZUJyYW5jaBpFbnRpdHlEZWNvZGVyGERlY29kaW5nTW9kZRhCaW5UcmllRmxhZ3MeZGVjb2RlQ29kZVBvaW50GnhtbERlY29kZVRyZWUcaHRtbERlY29kZVRyZWUOQUREUkVTUxxBTk5PVEFUSU9OX1hNTAxBUFBMRVQIQVJFQQ5BUlRJQ0xFCkFTSURFCEJBU0UQQkFTRUZPTlQOQkdTT1VORAZCSUcUQkxPQ0tRVU9URQhCT0RZBEJSDEJVVFRPTg5DQVBUSU9ODENFTlRFUghDT0RFBkNPTBBDT0xHUk9VUARERAhERVNDDkRFVEFJTFMMRElBTE9HBkRJUgZESVYEREwERFQERU0KRU1CRUQQRklFTERTRVQURklHQ0FQVElPTgxGSUdVUkUIRk9OVAxGT09URVIcRk9SRUlHTl9PQkpFQ1QIRk9STQpGUkFNRRBGUkFNRVNFVARIMQRIMgRIMwRINARINQRINghIRUFEDEhFQURFUgxIR1JPVVAESFIISFRNTAZJTUcKSU1BR0UKSU5QVVQMSUZSQU1FDEtFWUdFTgpMQUJFTARMSQhMSU5LDkxJU1RJTkcITUFJThRNQUxJR05NQVJLDk1BUlFVRUUITUFUSAhNRU5VCE1FVEEMTUdMWVBIBE1JBE1PBE1OBE1TCk1URVhUBk5BVghOT0JSEE5PRlJBTUVTDk5PRU1CRUQQTk9TQ1JJUFQMT0JKRUNUBE9MEE9QVEdST1VQDE9QVElPTgpQQVJBTRJQTEFJTlRFWFQGUFJFBFJCBFJQBFJUBlJUQwhSVUJZDFNDUklQVA5TRUNUSU9ODFNFTEVDVAxTT1VSQ0UKU01BTEwIU1BBTgxTVFJJS0UMU1RST05HClNUWUxFBlNVQg5TVU1NQVJZBlNVUApUQUJMRQpUQk9EWRBURU1QTEFURRBURVhUQVJFQQpURk9PVARURARUSApUSEVBRApUSVRMRQRUUgpUUkFDSwRUVARVTAZTVkcGVkFSBldCUgZYTVAMTUFUSE1MClhMSU5LBlhNTApYTUxOUwhEQVRBDFJDREFUQQ5SQVdURVhUFlNDUklQVF9EQVRBGkNEQVRBX1NFQ1RJT04kZ2V0Q3VycmVudExvY2F0aW9uHl9ydW5QYXJzaW5nTG9vcApwYXVzZQxyZXN1bWUkX2Vuc3VyZUhpYmVybmF0aW9uEF9jb25zdW1lFF91bmNvbnN1bWUiX3JlY29uc3VtZUluU3RhdGUUX2FkdmFuY2VCeS5fY29uc3VtZVNlcXVlbmNlSWZNYXRjaChfY3JlYXRlU3RhcnRUYWdUb2tlbiRfY3JlYXRlRW5kVGFnVG9rZW4mX2NyZWF0ZUNvbW1lbnRUb2tlbiZfY3JlYXRlRG9jdHlwZVRva2VuKl9jcmVhdGVDaGFyYWN0ZXJUb2tlbhZfY3JlYXRlQXR0chxfbGVhdmVBdHRyTmFtZR5fbGVhdmVBdHRyVmFsdWUYcHJlcGFyZVRva2VuJmVtaXRDdXJyZW50VGFnVG9rZW4kZW1pdEN1cnJlbnRDb21tZW50JGVtaXRDdXJyZW50RG9jdHlwZTRfZW1pdEN1cnJlbnRDaGFyYWN0ZXJUb2tlbhpfZW1pdEVPRlRva2VuRF9hcHBlbmRDaGFyVG9DdXJyZW50Q2hhcmFjdGVyVG9rZW4cX2VtaXRDb2RlUG9pbnQUX2VtaXRDaGFyczpfbWF0Y2hOYW1lZENoYXJhY3RlclJlZmVyZW5jZUBfaXNDaGFyYWN0ZXJSZWZlcmVuY2VJbkF0dHJpYnV0ZVZfZmx1c2hDb2RlUG9pbnRDb25zdW1lZEFzQ2hhcmFjdGVyUmVmZXJlbmNlFF9jYWxsU3RhdGUUX3N0YXRlRGF0YRhfc3RhdGVSY2RhdGEaX3N0YXRlUmF3dGV4dCBfc3RhdGVTY3JpcHREYXRhHl9zdGF0ZVBsYWludGV4dBpfc3RhdGVUYWdPcGVuIF9zdGF0ZUVuZFRhZ09wZW4aX3N0YXRlVGFnTmFtZTBfc3RhdGVSY2RhdGFMZXNzVGhhblNpZ24sX3N0YXRlUmNkYXRhRW5kVGFnT3BlbiZoYW5kbGVTcGVjaWFsRW5kVGFnLF9zdGF0ZVJjZGF0YUVuZFRhZ05hbWUyX3N0YXRlUmF3dGV4dExlc3NUaGFuU2lnbi5fc3RhdGVSYXd0ZXh0RW5kVGFnT3Blbi5fc3RhdGVSYXd0ZXh0RW5kVGFnTmFtZThfc3RhdGVTY3JpcHREYXRhTGVzc1RoYW5TaWduNF9zdGF0ZVNjcmlwdERhdGFFbmRUYWdPcGVuNF9zdGF0ZVNjcmlwdERhdGFFbmRUYWdOYW1lNl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVTdGFydD5fc3RhdGVTY3JpcHREYXRhRXNjYXBlU3RhcnREYXNoLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkNl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRGFzaD5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZERhc2hEYXNoRl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkTGVzc1RoYW5TaWduQl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRW5kVGFnT3BlbkJfc3RhdGVTY3JpcHREYXRhRXNjYXBlZEVuZFRhZ05hbWVCX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZVN0YXJ0Ol9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkQl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkRGFzaEpfc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZERhc2hEYXNoUl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkTGVzc1RoYW5TaWduPl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVFbmQyX3N0YXRlQmVmb3JlQXR0cmlidXRlTmFtZSZfc3RhdGVBdHRyaWJ1dGVOYW1lMF9zdGF0ZUFmdGVyQXR0cmlidXRlTmFtZTRfc3RhdGVCZWZvcmVBdHRyaWJ1dGVWYWx1ZUBfc3RhdGVBdHRyaWJ1dGVWYWx1ZURvdWJsZVF1b3RlZEBfc3RhdGVBdHRyaWJ1dGVWYWx1ZVNpbmdsZVF1b3RlZDhfc3RhdGVBdHRyaWJ1dGVWYWx1ZVVucXVvdGVkPl9zdGF0ZUFmdGVyQXR0cmlidXRlVmFsdWVRdW90ZWQyX3N0YXRlU2VsZkNsb3NpbmdTdGFydFRhZyRfc3RhdGVCb2d1c0NvbW1lbnQ2X3N0YXRlTWFya3VwRGVjbGFyYXRpb25PcGVuJF9zdGF0ZUNvbW1lbnRTdGFydCxfc3RhdGVDb21tZW50U3RhcnREYXNoGl9zdGF0ZUNvbW1lbnQyX3N0YXRlQ29tbWVudExlc3NUaGFuU2lnbjpfc3RhdGVDb21tZW50TGVzc1RoYW5TaWduQmFuZ0Jfc3RhdGVDb21tZW50TGVzc1RoYW5TaWduQmFuZ0Rhc2hKX3N0YXRlQ29tbWVudExlc3NUaGFuU2lnbkJhbmdEYXNoRGFzaChfc3RhdGVDb21tZW50RW5kRGFzaCBfc3RhdGVDb21tZW50RW5kKF9zdGF0ZUNvbW1lbnRFbmRCYW5nGl9zdGF0ZURvY3R5cGUuX3N0YXRlQmVmb3JlRG9jdHlwZU5hbWUiX3N0YXRlRG9jdHlwZU5hbWUsX3N0YXRlQWZ0ZXJEb2N0eXBlTmFtZT5fc3RhdGVBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkRl9zdGF0ZUJlZm9yZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyUl9zdGF0ZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyRG91YmxlUXVvdGVkUl9zdGF0ZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyU2luZ2xlUXVvdGVkRF9zdGF0ZUFmdGVyRG9jdHlwZVB1YmxpY0lkZW50aWZpZXJcX3N0YXRlQmV0d2VlbkRvY3R5cGVQdWJsaWNBbmRTeXN0ZW1JZGVudGlmaWVycz5fc3RhdGVBZnRlckRvY3R5cGVTeXN0ZW1LZXl3b3JkRl9zdGF0ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyUl9zdGF0ZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyRG91YmxlUXVvdGVkUl9zdGF0ZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyU2luZ2xlUXVvdGVkRF9zdGF0ZUFmdGVyRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIkX3N0YXRlQm9ndXNEb2N0eXBlJF9zdGF0ZUNkYXRhU2VjdGlvbjJfc3RhdGVDZGF0YVNlY3Rpb25CcmFja2V0Kl9zdGF0ZUNkYXRhU2VjdGlvbkVuZDBfc3RhdGVDaGFyYWN0ZXJSZWZlcmVuY2U6X3N0YXRlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UwX3N0YXRlQW1iaWd1b3VzQW1wZXJzYW5kPl9zdGF0ZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2VQX3N0YXRlSGV4YWRlbWljYWxDaGFyYWN0ZXJSZWZlcmVuY2VTdGFydEZfc3RhdGVIZXhhZGVtaWNhbENoYXJhY3RlclJlZmVyZW5jZT5fc3RhdGVEZWNpbWFsQ2hhcmFjdGVyUmVmZXJlbmNlRF9zdGF0ZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2VFbmQwY3VycmVudFRtcGxDb250ZW50T3JOb2RlEF9pbmRleE9mGl9pc0luVGVtcGxhdGUqX3VwZGF0ZUN1cnJlbnRFbGVtZW50CHB1c2gGcG9wDnJlcGxhY2UqcG9wVW50aWxUYWdOYW1lUG9wcGVkHnNob3J0ZW5Ub0xlbmd0aCpwb3BVbnRpbEVsZW1lbnRQb3BwZWQccG9wVW50aWxQb3BwZWQ4cG9wVW50aWxOdW1iZXJlZEhlYWRlclBvcHBlZC5wb3BVbnRpbFRhYmxlQ2VsbFBvcHBlZCpwb3BBbGxVcFRvSHRtbEVsZW1lbnQgX2luZGV4T2ZUYWdOYW1lcxZjbGVhckJhY2tUby5jbGVhckJhY2tUb1RhYmxlQ29udGV4dDZjbGVhckJhY2tUb1RhYmxlQm9keUNvbnRleHQ0Y2xlYXJCYWNrVG9UYWJsZVJvd0NvbnRleHRAdHJ5UGVla1Byb3Blcmx5TmVzdGVkQm9keUVsZW1lbnQiZ2V0Q29tbW9uQW5jZXN0b3IwaXNSb290SHRtbEVsZW1lbnRDdXJyZW50FGhhc0luU2NvcGUwaGFzTnVtYmVyZWRIZWFkZXJJblNjb3BlJGhhc0luTGlzdEl0ZW1TY29wZSBoYXNJbkJ1dHRvblNjb3BlHmhhc0luVGFibGVTY29wZT5oYXNUYWJsZUJvZHlDb250ZXh0SW5UYWJsZVNjb3BlIGhhc0luU2VsZWN0U2NvcGUsZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc0BnZW5lcmF0ZUltcGxpZWRFbmRUYWdzVGhvcm91Z2hseUZnZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbgxNYXJrZXI8X2dldE5vYWhBcmtDb25kaXRpb25DYW5kaWRhdGVzLl9lbnN1cmVOb2FoQXJrQ29uZGl0aW9uGGluc2VydE1hcmtlchZwdXNoRWxlbWVudDRpbnNlcnRFbGVtZW50QWZ0ZXJCb29rbWFyaxZyZW1vdmVFbnRyeSJjbGVhclRvTGFzdE1hcmtlckJnZXRFbGVtZW50RW50cnlJblNjb3BlV2l0aFRhZ05hbWUeZ2V0RWxlbWVudEVudHJ5HGNyZWF0ZURvY3VtZW50LGNyZWF0ZURvY3VtZW50RnJhZ21lbnQaY3JlYXRlRWxlbWVudCJjcmVhdGVDb21tZW50Tm9kZSRzZXRUZW1wbGF0ZUNvbnRlbnQkZ2V0VGVtcGxhdGVDb250ZW50HnNldERvY3VtZW50VHlwZR5zZXREb2N1bWVudE1vZGUeZ2V0RG9jdW1lbnRNb2RlFGRldGFjaE5vZGUUaW5zZXJ0VGV4dCBpbnNlcnRUZXh0QmVmb3JlHmFkb3B0QXR0cmlidXRlcxpnZXRGaXJzdENoaWxkGmdldENoaWxkTm9kZXMaZ2V0UGFyZW50Tm9kZRZnZXRBdHRyTGlzdBRnZXRUYWdOYW1lHmdldE5hbWVzcGFjZVVSSSRnZXRUZXh0Tm9kZUNvbnRlbnQqZ2V0Q29tbWVudE5vZGVDb250ZW50LmdldERvY3VtZW50VHlwZU5vZGVOYW1lNmdldERvY3VtZW50VHlwZU5vZGVQdWJsaWNJZDZnZXREb2N1bWVudFR5cGVOb2RlU3lzdGVtSWQUaXNUZXh0Tm9kZRppc0NvbW1lbnROb2RlJGlzRG9jdW1lbnRUeXBlTm9kZRppc0VsZW1lbnROb2RlMnNldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24yZ2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbjh1cGRhdGVOb2RlU291cmNlQ29kZUxvY2F0aW9uJmFib3V0OmxlZ2FjeS1jb21wYXR0aHR0cDovL3d3dy5pYm0uY29tL2RhdGEvZHRkL3YxMS9pYm14aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZFQrLy9zaWxtYXJpbC8vZHRkIGh0bWwgcHJvIHYwcjExIDE5OTcwMTAxLy9ULS8vYXMvL2R0ZCBodG1sIDMuMCBhc3dlZGl0ICsgZXh0ZW5zaW9ucy8vaC0vL2FkdmFzb2Z0IGx0ZC8vZHRkIGh0bWwgMy4wIGFzd2VkaXQgKyBleHRlbnNpb25zLy8+LS8vaWV0Zi8vZHRkIGh0bWwgMi4wIGxldmVsIDEvLz4tLy9pZXRmLy9kdGQgaHRtbCAyLjAgbGV2ZWwgMi8vTC0vL2lldGYvL2R0ZCBodG1sIDIuMCBzdHJpY3QgbGV2ZWwgMS8vTC0vL2lldGYvL2R0ZCBodG1sIDIuMCBzdHJpY3QgbGV2ZWwgMi8vPC0vL2lldGYvL2R0ZCBodG1sIDIuMCBzdHJpY3QvLy4tLy9pZXRmLy9kdGQgaHRtbCAyLjAvLzAtLy9pZXRmLy9kdGQgaHRtbCAyLjFlLy8uLS8vaWV0Zi8vZHRkIGh0bWwgMy4wLy86LS8vaWV0Zi8vZHRkIGh0bWwgMy4yIGZpbmFsLy8uLS8vaWV0Zi8vZHRkIGh0bWwgMy4yLy8qLS8vaWV0Zi8vZHRkIGh0bWwgMy8vNi0vL2lldGYvL2R0ZCBodG1sIGxldmVsIDAvLzYtLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAxLy82LS8vaWV0Zi8vZHRkIGh0bWwgbGV2ZWwgMi8vNi0vL2lldGYvL2R0ZCBodG1sIGxldmVsIDMvL0QtLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMC8vRC0vL2lldGYvL2R0ZCBodG1sIHN0cmljdCBsZXZlbCAxLy9ELS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0IGxldmVsIDIvL0QtLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMy8vNC0vL2lldGYvL2R0ZCBodG1sIHN0cmljdC8vJi0vL2lldGYvL2R0ZCBodG1sLy9QLS8vbWV0cml1cy8vZHRkIG1ldHJpdXMgcHJlc2VudGF0aW9uYWwvL2otLy9taWNyb3NvZnQvL2R0ZCBpbnRlcm5ldCBleHBsb3JlciAyLjAgaHRtbCBzdHJpY3QvL1wtLy9taWNyb3NvZnQvL2R0ZCBpbnRlcm5ldCBleHBsb3JlciAyLjAgaHRtbC8vYC0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDIuMCB0YWJsZXMvL2otLy9taWNyb3NvZnQvL2R0ZCBpbnRlcm5ldCBleHBsb3JlciAzLjAgaHRtbCBzdHJpY3QvL1wtLy9taWNyb3NvZnQvL2R0ZCBpbnRlcm5ldCBleHBsb3JlciAzLjAgaHRtbC8vYC0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDMuMCB0YWJsZXMvL0YtLy9uZXRzY2FwZSBjb21tLiBjb3JwLi8vZHRkIGh0bWwvL1QtLy9uZXRzY2FwZSBjb21tLiBjb3JwLi8vZHRkIHN0cmljdCBodG1sLy9ULS8vbydyZWlsbHkgYW5kIGFzc29jaWF0ZXMvL2R0ZCBodG1sIDIuMC8vZi0vL28ncmVpbGx5IGFuZCBhc3NvY2lhdGVzLy9kdGQgaHRtbCBleHRlbmRlZCAxLjAvL3YtLy9vJ3JlaWxseSBhbmQgYXNzb2NpYXRlcy8vZHRkIGh0bWwgZXh0ZW5kZWQgcmVsYXhlZCAxLjAvL1YtLy9zcS8vZHRkIGh0bWwgMi4wIGhvdG1ldGFsICsgZXh0ZW5zaW9ucy8vnAEtLy9zb2Z0cXVhZCBzb2Z0d2FyZS8vZHRkIGhvdG1ldGFsIHBybyA2LjA6OjE5OTkwNjAxOjpleHRlbnNpb25zIHRvIGh0bWwgNC4wLy+KAS0vL3NvZnRxdWFkLy9kdGQgaG90bWV0YWwgcHJvIDQuMDo6MTk5NzEwMTA6OmV4dGVuc2lvbnMgdG8gaHRtbCA0LjAvL0gtLy9zcHlnbGFzcy8vZHRkIGh0bWwgMi4wIGV4dGVuZGVkLy9aLS8vc3VuIG1pY3Jvc3lzdGVtcyBjb3JwLi8vZHRkIGhvdGphdmEgaHRtbC8vaC0vL3N1biBtaWNyb3N5c3RlbXMgY29ycC4vL2R0ZCBob3RqYXZhIHN0cmljdCBodG1sLy8+LS8vdzNjLy9kdGQgaHRtbCAzIDE5OTUtMDMtMjQvLzgtLy93M2MvL2R0ZCBodG1sIDMuMiBkcmFmdC8vOC0vL3czYy8vZHRkIGh0bWwgMy4yIGZpbmFsLy8sLS8vdzNjLy9kdGQgaHRtbCAzLjIvLzotLy93M2MvL2R0ZCBodG1sIDMuMnMgZHJhZnQvLz4tLy93M2MvL2R0ZCBodG1sIDQuMCBmcmFtZXNldC8vRi0vL3czYy8vZHRkIGh0bWwgNC4wIHRyYW5zaXRpb25hbC8vUC0vL3czYy8vZHRkIGh0bWwgZXhwZXJpbWVudGFsIDE5OTYwNzEyLy9MLS8vdzNjLy9kdGQgaHRtbCBleHBlcmltZW50YWwgOTcwNDIxLy8qLS8vdzNjLy9kdGQgdzMgaHRtbC8vMi0vL3czby8vZHRkIHczIGh0bWwgMy4wLy9GLS8vd2VidGVjaHMvL2R0ZCBtb3ppbGxhIGh0bWwgMi4wLy8+LS8vd2VidGVjaHMvL2R0ZCBtb3ppbGxhIGh0bWwvL0AtLy93M2MvL2R0ZCBodG1sIDQuMDEgZnJhbWVzZXQvL0gtLy93M2MvL2R0ZCBodG1sIDQuMDEgdHJhbnNpdGlvbmFsLy9ILS8vdzNvLy9kdGQgdzMgaHRtbCBzdHJpY3QgMy4wLy9lbi8vRC0vdzNjL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvZW5ALS8vdzNjLy9kdGQgeGh0bWwgMS4wIGZyYW1lc2V0Ly9ILS8vdzNjLy9kdGQgeGh0bWwgMS4wIHRyYW5zaXRpb25hbC8vEnRleHQvaHRtbBJURVhUX0hUTUwqYXBwbGljYXRpb24veGh0bWwreG1sHkFQUExJQ0FUSU9OX1hNTBpkZWZpbml0aW9udXJsGnhsaW5rOmFjdHVhdGUKeGxpbmsMcHJlZml4DmFjdHVhdGUaeGxpbms6YXJjcm9sZQ5hcmNyb2xlFHhsaW5rOmhyZWYIaHJlZhR4bGluazpyb2xlCHJvbGUUeGxpbms6c2hvdwhzaG93FnhsaW5rOnRpdGxlFHhsaW5rOnR5cGUQeG1sOmJhc2UQeG1sOmxhbmcSeG1sOnNwYWNlCnNwYWNlCnhtbG5zFnhtbG5zOnhsaW5rDGhpZGRlbhJzdGFydExpbmUQc3RhcnRDb2wOZW5kTGluZQxlbmRDb2wSZW5kT2Zmc2V0IHNjcmlwdGluZ0VuYWJsZWQsc291cmNlQ29kZUxvY2F0aW9uSW5mbxZ0cmVlQWRhcHRlchhvblBhcnNlRXJyb3IKcGFyc2UiZ2V0RnJhZ21lbnRQYXJzZXIWZ2V0RnJhZ21lbnQUb25JdGVtUHVzaBJvbkl0ZW1Qb3AgX3NldENvbnRleHRNb2Rlcyhfc3dpdGNoVG9UZXh0UGFyc2luZzBzd2l0Y2hUb1BsYWludGV4dFBhcnNpbmc0X2dldEFkanVzdGVkQ3VycmVudEVsZW1lbnQ0X2ZpbmRGb3JtSW5GcmFnbWVudENvbnRleHRAX2luaXRUb2tlbml6ZXJGb3JGcmFnbWVudFBhcnNpbmcgX3NldERvY3VtZW50VHlwZShfYXR0YWNoRWxlbWVudFRvVHJlZRxfYXBwZW5kRWxlbWVudBxfaW5zZXJ0RWxlbWVudCRfaW5zZXJ0RmFrZUVsZW1lbnQeX2luc2VydFRlbXBsYXRlLF9pbnNlcnRGYWtlUm9vdEVsZW1lbnQkX2FwcGVuZENvbW1lbnROb2RlIl9pbnNlcnRDaGFyYWN0ZXJzFl9hZG9wdE5vZGVzHl9zZXRFbmRMb2NhdGlvblRzaG91bGRQcm9jZXNzU3RhcnRUYWdUb2tlbkluRm9yZWlnbkNvbnRlbnQaX3Byb2Nlc3NUb2tlbiZfaXNJbnRlZ3JhdGlvblBvaW50SF9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cx5fY2xvc2VUYWJsZUNlbGwcX2Nsb3NlUEVsZW1lbnQmX3Jlc2V0SW5zZXJ0aW9uTW9kZThfcmVzZXRJbnNlcnRpb25Nb2RlRm9yU2VsZWN0Pl9pc0VsZW1lbnRDYXVzZXNGb3N0ZXJQYXJlbnRpbmc8X3Nob3VsZEZvc3RlclBhcmVudE9uSW5zZXJ0aW9uOF9maW5kRm9zdGVyUGFyZW50aW5nTG9jYXRpb24oX2Zvc3RlclBhcmVudEVsZW1lbnQiX2lzU3BlY2lhbEVsZW1lbnQWb25DaGFyYWN0ZXIeb25OdWxsQ2hhcmFjdGVyEm9uQ29tbWVudBJvbkRvY3R5cGUUb25TdGFydFRhZyBfcHJvY2Vzc1N0YXJ0VGFnPF9zdGFydFRhZ091dHNpZGVGb3JlaWduQ29udGVudBBvbkVuZFRhZzhfZW5kVGFnT3V0c2lkZUZvcmVpZ25Db250ZW50Cm9uRW9mKm9uV2hpdGVzcGFjZUNoYXJhY3RlchRlc2NhcGVUZXh0HmVzY2FwZUF0dHJpYnV0ZRRlc2NhcGVVVEY4DGVzY2FwZRJlbmNvZGVYTUwYZ2V0Q29kZVBvaW50FnhtbFJlcGxhY2VyCkNkYXRhEENkYXRhRW5kFENvbW1lbnRFbmQSU2NyaXB0RW5kEFN0eWxlRW5kEFRpdGxlRW5kEGdldEluZGV4HmdldFNlY3Rpb25TdGFydBJzdGF0ZVRleHQyc3RhdGVTcGVjaWFsU3RhcnRTZXF1ZW5jZSJzdGF0ZUluU3BlY2lhbFRhZyRzdGF0ZUNEQVRBU2VxdWVuY2UaZmFzdEZvcndhcmRUbyRzdGF0ZUluQ29tbWVudExpa2UcaXNUYWdTdGFydENoYXIYc3RhcnRTcGVjaWFsJHN0YXRlQmVmb3JlVGFnTmFtZRxzdGF0ZUluVGFnTmFtZTJzdGF0ZUJlZm9yZUNsb3NpbmdUYWdOYW1lKnN0YXRlSW5DbG9zaW5nVGFnTmFtZTBzdGF0ZUFmdGVyQ2xvc2luZ1RhZ05hbWUwc3RhdGVCZWZvcmVBdHRyaWJ1dGVOYW1lKnN0YXRlSW5TZWxmQ2xvc2luZ1RhZyhzdGF0ZUluQXR0cmlidXRlTmFtZS5zdGF0ZUFmdGVyQXR0cmlidXRlTmFtZTJzdGF0ZUJlZm9yZUF0dHJpYnV0ZVZhbHVlLGhhbmRsZUluQXR0cmlidXRlVmFsdWVCc3RhdGVJbkF0dHJpYnV0ZVZhbHVlRG91YmxlUXVvdGVzQnN0YXRlSW5BdHRyaWJ1dGVWYWx1ZVNpbmdsZVF1b3RlczpzdGF0ZUluQXR0cmlidXRlVmFsdWVOb1F1b3RlcyxzdGF0ZUJlZm9yZURlY2xhcmF0aW9uJHN0YXRlSW5EZWNsYXJhdGlvbjhzdGF0ZUluUHJvY2Vzc2luZ0luc3RydWN0aW9uJHN0YXRlQmVmb3JlQ29tbWVudCpzdGF0ZUluU3BlY2lhbENvbW1lbnQmc3RhdGVCZWZvcmVTcGVjaWFsUyJzdGF0ZUJlZm9yZUVudGl0eSRzdGF0ZUluTmFtZWRFbnRpdHkeZW1pdE5hbWVkRW50aXR5MHN0YXRlQmVmb3JlTnVtZXJpY0VudGl0eSJlbWl0TnVtZXJpY0VudGl0eShzdGF0ZUluTnVtZXJpY0VudGl0eSBzdGF0ZUluSGV4RW50aXR5ImFsbG93TGVnYWN5RW50aXR5DmNsZWFudXAcc2hvdWxkQ29udGludWUMZmluaXNoJGhhbmRsZVRyYWlsaW5nRGF0YRZlbWl0UGFydGlhbBplbWl0Q29kZVBvaW50DG9wdGlvbhBvcHRncm91cAxzZWxlY3QQZGF0YWxpc3QQdGV4dGFyZWEKdGhlYWQKdGJvZHkEZGQEcnAEdGQIYm9keQhoZWFkBGgxBGgyBGgzBGg0BGg1BGg2DG91dHB1dA5hZGRyZXNzDmFydGljbGUKYXNpZGUUYmxvY2txdW90ZQ5kZXRhaWxzBmRpdhBmaWVsZHNldBRmaWdjYXB0aW9uDGZpZ3VyZQxmb290ZXIIZm9ybQhtYWluBm5hdgZwcmUOc2VjdGlvbgp0YWJsZQp0Zm9vdBpmb3JlaWdub2JqZWN0GG9udGV4dGVudGl0eRppc1ZvaWRFbGVtZW50Gm9ub3BlbnRhZ25hbWUWZW1pdE9wZW5UYWcUZW5kT3BlblRhZxhvbm9wZW50YWdlbmQgb25zZWxmY2xvc2luZ3RhZx5jbG9zZUN1cnJlbnRUYWcYb25hdHRyaWJuYW1lGG9uYXR0cmliZGF0YRxvbmF0dHJpYmVudGl0eRZvbmF0dHJpYmVuZCRnZXRJbnN0cnVjdGlvbk5hbWUab25kZWNsYXJhdGlvbg5vbmNkYXRhGnBhcnNlQ29tcGxldGUQZ2V0U2xpY2UWc2hpZnRCdWZmZXIUcGFyc2VDaHVuaxBJbmZpbml0eQZOYU4SZGVjb2RlVVJJJGRlY29kZVVSSUNvbXBvbmVudBJlbmNvZGVVUkkkZW5jb2RlVVJJQ29tcG9uZW50EGlzRmluaXRlCmlzTmFOFHBhcnNlRmxvYXQQcGFyc2VJbnQQdW5lc2NhcGUYcnVuSW5Db250ZXh0IHJ1bkluVGhpc0NvbnRleHQecnVuSW5OZXdDb250ZXh0EmlzQ29udGV4dBpjcmVhdGVDb250ZXh0GGNyZWF0ZVNjcmlwdA5pbmRleE9mEGV2YWx1YXRlJl9nZXRQcmVmZXJyZWRPdXRwdXQeX2hhbmRsZUNhbGxiYWNrDF90cmFjZQpfd2Fsawxfc2xpY2UKX2V2YWwKY2FjaGUYdG9QYXRoU3RyaW5nEnRvUG9pbnRlchZ0b1BhdGhBcnJheQR2bRRzZXRUaW1lb3V0GGNsZWFyVGltZW91dAZydW4WcGVyZm9ybWFuY2UGbm93DG1vek5vdwptc05vdwhvTm93EndlYmtpdE5vdxBuZXh0VGljaw5icm93c2VyBmVudghhcmd2DnZlcnNpb24QdmVyc2lvbnMWYWRkTGlzdGVuZXIIb25jZQZvZmYccmVtb3ZlTGlzdGVuZXIkcmVtb3ZlQWxsTGlzdGVuZXJzCGVtaXQOYmluZGluZwZjd2QKY2hkaXIKdW1hc2sMaHJ0aW1lEHBsYXRmb3JtDnJlbGVhc2UMY29uZmlnDHVwdGltZQxjcmVhdGUYRXZlbnRFbWl0dGVyGHVzaW5nRG9tYWlucwxkb21haW4OX2V2ZW50cxpfbWF4TGlzdGVuZXJzJmRlZmF1bHRNYXhMaXN0ZW5lcnMIaW5pdB5zZXRNYXhMaXN0ZW5lcnMeZ2V0TWF4TGlzdGVuZXJzHnByZXBlbmRMaXN0ZW5lciZwcmVwZW5kT25jZUxpc3RlbmVyEmxpc3RlbmVycxpsaXN0ZW5lckNvdW50FGV2ZW50TmFtZXMIYmluZBJpbnRlcmNlcHQOZGlzcG9zZQhleGl0CmVudGVyDERvbWFpbhhjcmVhdGVEb21haW4Yc2V0SW1tZWRpYXRlGHJlcXVlc3RGbHVzaAhjYWxsCiAKCQ2gKigpW117fSUqLSt+LyMsOnwuPD49IRR3aGl0ZXNwYWNlFmJsb2NrLXN0YXJ0EmJsb2NrLWVuZBx2YXJpYWJsZS1zdGFydBh2YXJpYWJsZS1lbmQOY29tbWVudBRsZWZ0LXBhcmVuFnJpZ2h0LXBhcmVuGGxlZnQtYnJhY2tldBpyaWdodC1icmFja2V0FGxlZnQtY3VybHkWcmlnaHQtY3VybHkQb3BlcmF0b3IKY29tbWEKY29sb24KdGlsZGUIcGlwZQpmbG9hdAhub25lCnJlZ2V4BmxleBhUT0tFTl9TVFJJTkcgVE9LRU5fV0hJVEVTUEFDRRRUT0tFTl9EQVRBIlRPS0VOX0JMT0NLX1NUQVJUHlRPS0VOX0JMT0NLX0VORChUT0tFTl9WQVJJQUJMRV9TVEFSVCRUT0tFTl9WQVJJQUJMRV9FTkQaVE9LRU5fQ09NTUVOVCBUT0tFTl9MRUZUX1BBUkVOIlRPS0VOX1JJR0hUX1BBUkVOJFRPS0VOX0xFRlRfQlJBQ0tFVCZUT0tFTl9SSUdIVF9CUkFDS0VUIFRPS0VOX0xFRlRfQ1VSTFkiVE9LRU5fUklHSFRfQ1VSTFkcVE9LRU5fT1BFUkFUT1IWVE9LRU5fQ09NTUEWVE9LRU5fQ09MT04WVE9LRU5fVElMREUUVE9LRU5fUElQRQZpbnQSVE9LRU5fSU5UFlRPS0VOX0ZMT0FUGlRPS0VOX0JPT0xFQU4UVE9LRU5fTk9ORRhUT0tFTl9TWU1CT0wOc3BlY2lhbBpUT0tFTl9TUEVDSUFMFlRPS0VOX1JFR0VYBk9iahRFbWl0dGVyT2JqDGV4dGVuZA5MaXRlcmFsCkdyb3VwCFBhaXIGa2V5DGZpZWxkcwhEaWN0Ekxvb2t1cFZhbARJZghjb25kCmVsc2VfDklmQXN5bmMQSW5saW5lSWYGRm9yBmFychJBc3luY0VhY2gQQXN5bmNBbGwKTWFjcm8IYXJncwxDYWxsZXIMSW1wb3J0EHRlbXBsYXRlFndpdGhDb250ZXh0DkZ1bkNhbGwMRmlsdGVyFkZpbHRlckFzeW5jFktleXdvcmRBcmdzCkJsb2NrClN1cGVyEmJsb2NrTmFtZRZUZW1wbGF0ZVJlZg5FeHRlbmRzDkluY2x1ZGUaaWdub3JlTWlzc2luZw50YXJnZXRzDFN3aXRjaAhleHByCmNhc2VzCENhc2UMT3V0cHV0DkNhcHR1cmUYVGVtcGxhdGVEYXRhDlVuYXJ5T3AKQmluT3AIbGVmdApyaWdodAZBbmQGQWRkDENvbmNhdAZTdWIGTXVsBkRpdhBGbG9vckRpdgZNb2QGUG93Bk5lZwZQb3MOQ29tcGFyZQZvcHMcQ29tcGFyZU9wZXJhbmQaQ2FsbEV4dGVuc2lvbg5leHROYW1lFmNvbnRlbnRBcmdzJENhbGxFeHRlbnNpb25Bc3luYwhOb2RlEE5vZGVMaXN0ClZhbHVlFEZyb21JbXBvcnQUcHJpbnROb2RlcwxQYXJzZXISdHJhbnNmb3JtCkZyYW1lEm1ha2VNYWNybx5tYWtlS2V5d29yZEFyZ3MObnVtQXJncxpzdXBwcmVzc1ZhbHVlGmVuc3VyZURlZmluZWQYbWVtYmVyTG9va3VwKGNvbnRleHRPckZyYW1lTG9va3VwEGNhbGxXcmFwFmhhbmRsZUVycm9yDmlzQXJyYXkIa2V5cxRTYWZlU3RyaW5nGGNvcHlTYWZlbmVzcxBtYXJrU2FmZRJhc3luY0VhY2gQYXN5bmNBbGwUaW5PcGVyYXRvchhmcm9tSXRlcmF0b3IaVGVtcGxhdGVFcnJvcgQ9PQY9PT0EIT0GIT09AjwCPgQ8PQQ+PQ5jb21waWxlEENvbXBpbGVyDmV4dG5hbWUQYmFzZW5hbWUOZGlybmFtZQIvBnNlcAI6EmRlbGltaXRlchByZWxhdGl2ZRRpc0Fic29sdXRlEm5vcm1hbGl6ZQRhYgxzdWJzdHIgRmlsZVN5c3RlbUxvYWRlciJQcmVjb21waWxlZExvYWRlciJOb2RlUmVzb2x2ZUxvYWRlchBjYWxsYWJsZQ5kZWZpbmVkFmRpdmlzaWJsZWJ5DmVzY2FwZWQOZXF1YWx0bwxzYW1lYXMKZmFsc3kWZ3JlYXRlcnRoYW4QbGVzc3RoYW4KbG93ZXIMdHJ1dGh5CnVwcGVyEGl0ZXJhYmxlDm1hcHBpbmcSV2ViTG9hZGVyCGNvZGUGb2JqFkVudmlyb25tZW50EFRlbXBsYXRlHF9wcmV0dGlmeUVycm9yFm1pbGxpc2Vjb25kDHNlY29uZAxtaW51dGUIaG91cgZkYXkId2Vlawptb250aA5xdWFydGVyCHllYXIIZGF0ZRhJbnZhbGlkIERhdGVwU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXkQd2Vla2RheXOqAUphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIMbW9udGhzDm9yZGluYWwMJHV0aWxzDmlzVmFsaWQMaXNTYW1lDmlzQWZ0ZXIQaXNCZWZvcmUEJGcIdW5peA5zdGFydE9mCmVuZE9mCCRzZXQQc3VidHJhY3QMZm9ybWF0EnV0Y09mZnNldAhkaWZmFmRheXNJbk1vbnRoDiRsb2NhbGUMbG9jYWxlDHRvRGF0ZRZ0b0lTT1N0cmluZwYkbXMEJG0EJEgEJFcEJE0EJHkEJEQOZm9yRWFjaA5pc0RheWpzEmRpcmVjdGl2ZQZ0YWcKY2RhdGEUc3RhcnRJbmRleBBlbmRJbmRleA5hdHRyaWJzJHgtYXR0cmlic05hbWVzcGFjZR54LWF0dHJpYnNQcmVmaXgMeC1tb2RlKk5vdCBpbXBsZW1lbnRlZCB5ZXQ6IAx4LW5hbWUUeC1wdWJsaWNJZBR4LXN5c3RlbUlkJHNvdXJjZUNvZGVMb2NhdGlvbgZkb20QdGFnU3RhY2sQbGFzdE5vZGUMcGFyc2VyEGNhbGxiYWNrDm9wdGlvbnMSZWxlbWVudENCEnN1YnN0cmluZwYmI3gCOxZ0b0xvd2VyQ2FzZQg8IS0tBi0tPhI8IVtDREFUQVsGXV0+DmZvcmVpZ24CIB5zZWxmQ2xvc2luZ1RhZ3MELz4EPC8cZW5jb2RlRW50aXRpZXMIdXRmOBRlbXB0eUF0dHJzBD0iAiIOdW5zaGlmdBZsYXN0SW5kZXhPZgpzaGlmdAxyZWR1Y2UGbWluGERJU0NPTk5FQ1RFRBJGT0xMT1dJTkcYQ09OVEFJTkVEX0JZElBSRUNFRElORxBDT05UQUlOUwhzb3J0EGluY2x1ZGVzGm1lZGlhOmNvbnRlbnQMbWVkaXVtEmlzRGVmYXVsdBRleHByZXNzaW9uCHRyaW0GcnNzCGZlZWQOcmRmOlJERgIKCHNvbWUEaWQIYXRvbQplbnRyeQppdGVtcxZkZXNjcmlwdGlvbhBzdWJ0aXRsZQ51cGRhdGVkDGF1dGhvcgplbWFpbA5zdW1tYXJ5DmNvbnRlbnQOcHViRGF0ZQ5jaGFubmVsCGl0ZW0abGFzdEJ1aWxkRGF0ZRxtYW5hZ2luZ0VkaXRvcghndWlkDmRjOmRhdGUKX3Jvb3QQX29wdGlvbnMMTG93ZXJBDExvd2VyWgxVcHBlckEMVXBwZXJaFkV4Y2xhbWF0aW9uCHRlc3QGLSQmFnRvVXBwZXJDYXNlOkJhZCBjb21iaW5hdGlvbiBvZiBhcmd1bWVudHMuEG5vZGVOYW1lBnNyYwZVUkwKYXVkaW8KdmlkZW8OYmFzZVVSSRJvdXRlckhUTUwaPGNvbnRhaW5lciAvPhJpbm5lckhUTUweb3B0aW9uOnNlbGVjdGVkHG9wdGlvblt2YWx1ZT0iBCJdEmF0dHJpYnV0ZQxwc2V1ZG8ccHNldWRvLWVsZW1lbnQaUHNldWRvRWxlbWVudBJ1bml2ZXJzYWwQYWRqYWNlbnQQQWRqYWNlbnQKY2hpbGQKQ2hpbGQUZGVzY2VuZGFudAxQYXJlbnQOc2libGluZw5TaWJsaW5nImNvbHVtbi1jb21iaW5hdG9yIENvbHVtbkNvbWJpbmF0b3IYZnJvbUNoYXJDb2RlKFVubWF0Y2hlZCBzZWxlY3RvcjogBCp8GEV4cGVjdGVkIGA9YDRBdHRyaWJ1dGUgdmFsdWUgZGlkbid0IGVuZEZBdHRyaWJ1dGUgc2VsZWN0b3IgZGlkbid0IHRlcm1pbmF0ZQxhY3Rpb24UaWdub3JlQ2FzZSBQc2V1ZG8tc2VsZWN0b3IgIiBjYW5ub3QgYmUgcXVvdGVkQE1pc3NpbmcgY2xvc2luZyBwYXJlbnRoZXNpcyBpbiA6BCAoAikELyoEKi80Q29tbWVudCB3YXMgbm90IHRlcm1pbmF0ZWQKbWF0Y2gqRXhwZWN0ZWQgbmFtZSwgZm91bmQgLlBhcmVudGhlc2lzIG5vdCBtYXRjaGVkSkRpZCBub3QgZXhwZWN0IHN1Y2Nlc3NpdmUgdHJhdmVyc2Fscy4McXVpcmtzJEVtcHR5IHN1Yi1zZWxlY3RvcgZcJCYUcXVpcmtzTW9kZQItDGNoYXJBdBAoPzpefFxzKRAoPzokfFxzKRBlbmRzV2l0aAZhYnM+bi10aCBydWxlIGNvdWxkbid0IGJlIHBhcnNlZCAoJwQnKQIrCmV2ZXJ5HFBzZXVkby1jbGFzcyA6KiByZXF1aXJlcyBhbiBhcmd1bWVudDYgZG9lc24ndCBoYXZlIGFueSBhcmd1bWVudHMubG93ZXJDYXNlQXR0cmlidXRlTmFtZXMabG93ZXJDYXNlVGFncxhjYWNoZVJlc3VsdHMOcHNldWRvcyByZWxhdGl2ZVNlbGVjdG9yLHNob3VsZFRlc3ROZXh0U2libGluZ3NeUHNldWRvLWVsZW1lbnRzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IGNzcy1zZWxlY3RsQ29sdW1uIGNvbWJpbmF0b3JzIGFyZSBub3QgeWV0IHN1cHBvcnRlZCBieSBjc3Mtc2VsZWN0ck5hbWVzcGFjZWQgYXR0cmlidXRlcyBhcmUgbm90IHlldCBzdXBwb3J0ZWQgYnkgY3NzLXNlbGVjdHBOYW1lc3BhY2VkIHRhZyBuYW1lcyBhcmUgbm90IHlldCBzdXBwb3J0ZWQgYnkgY3NzLXNlbGVjdIQBTmFtZXNwYWNlZCB1bml2ZXJzYWwgc2VsZWN0b3JzIGFyZSBub3QgeWV0IHN1cHBvcnRlZCBieSBjc3Mtc2VsZWN0LFVua25vd24gcHNldWRvLWNsYXNzIDoCKA5Qc2V1ZG8gDmNvbnRleHSiAVJlbGF0aXZlIHNlbGVjdG9ycyBhcmUgbm90IGFsbG93ZWQgd2hlbiB0aGUgYHJlbGF0aXZlU2VsZWN0b3JgIG9wdGlvbiBpcyBkaXNhYmxlZBByb290RnVuYwhzaXplEmZpbmRJbmRleApfbWFrZQ5yZXZlcnNlCjpoYXMoFHByZXZPYmplY3QOX3JlbmRlcgxfcGFyc2UEOiAOdHJpbUVuZAImAj3WAVtuYW1lIT0iIl06ZW5hYmxlZDpub3QoOnN1Ym1pdCwgOmJ1dHRvbiwgOmltYWdlLCA6cmVzZXQsIDpmaWxlKTptYXRjaGVzKFtjaGVja2VkXSwgOm5vdCg6Y2hlY2tib3gsIDpyYWRpbykpBA0KKENsYXNzIGV4dGVuZHMgdmFsdWUgOiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsBkVPRghOVUxMFFRBQlVMQVRJT04eQ0FSUklBR0VfUkVUVVJOEkxJTkVfRkVFRBJGT1JNX0ZFRUQKU1BBQ0UgRVhDTEFNQVRJT05fTUFSSxxRVU9UQVRJT05fTUFSSxZOVU1CRVJfU0lHThJBTVBFUlNBTkQUQVBPU1RST1BIRRhIWVBIRU5fTUlOVVMOU09MSURVUw5ESUdJVF8wDkRJR0lUXzkSU0VNSUNPTE9OHExFU1NfVEhBTl9TSUdOFkVRVUFMU19TSUdOIkdSRUFURVJfVEhBTl9TSUdOGlFVRVNUSU9OX01BUkseTEFUSU5fQ0FQSVRBTF9BHkxBVElOX0NBUElUQUxfRh5MQVRJTl9DQVBJVEFMX1geTEFUSU5fQ0FQSVRBTF9aKFJJR0hUX1NRVUFSRV9CUkFDS0VUGEdSQVZFX0FDQ0VOVBpMQVRJTl9TTUFMTF9BGkxBVElOX1NNQUxMX0YaTEFUSU5fU01BTExfWBpMQVRJTl9TTUFMTF9aKlJFUExBQ0VNRU5UX0NIQVJBQ1RFUkJjb250cm9sLWNoYXJhY3Rlci1pbi1pbnB1dC1zdHJlYW06Y29udHJvbENoYXJhY3RlckluSW5wdXRTdHJlYW04bm9uY2hhcmFjdGVyLWluLWlucHV0LXN0cmVhbTJub25jaGFyYWN0ZXJJbklucHV0U3RyZWFtMnN1cnJvZ2F0ZS1pbi1pbnB1dC1zdHJlYW0sc3Vycm9nYXRlSW5JbnB1dFN0cmVhbWpub24tdm9pZC1odG1sLWVsZW1lbnQtc3RhcnQtdGFnLXdpdGgtdHJhaWxpbmctc29saWR1c1pub25Wb2lkSHRtbEVsZW1lbnRTdGFydFRhZ1dpdGhUcmFpbGluZ1NvbGlkdXMuZW5kLXRhZy13aXRoLWF0dHJpYnV0ZXMoZW5kVGFnV2l0aEF0dHJpYnV0ZXM6ZW5kLXRhZy13aXRoLXRyYWlsaW5nLXNvbGlkdXMyZW5kVGFnV2l0aFRyYWlsaW5nU29saWR1czJ1bmV4cGVjdGVkLXNvbGlkdXMtaW4tdGFnLHVuZXhwZWN0ZWRTb2xpZHVzSW5UYWcydW5leHBlY3RlZC1udWxsLWNoYXJhY3Rlci51bmV4cGVjdGVkTnVsbENoYXJhY3Rlclh1bmV4cGVjdGVkLXF1ZXN0aW9uLW1hcmstaW5zdGVhZC1vZi10YWctbmFtZUx1bmV4cGVjdGVkUXVlc3Rpb25NYXJrSW5zdGVhZE9mVGFnTmFtZUZpbnZhbGlkLWZpcnN0LWNoYXJhY3Rlci1vZi10YWctbmFtZTxpbnZhbGlkRmlyc3RDaGFyYWN0ZXJPZlRhZ05hbWVYdW5leHBlY3RlZC1lcXVhbHMtc2lnbi1iZWZvcmUtYXR0cmlidXRlLW5hbWVOdW5leHBlY3RlZEVxdWFsc1NpZ25CZWZvcmVBdHRyaWJ1dGVOYW1lKG1pc3NpbmctZW5kLXRhZy1uYW1lIm1pc3NpbmdFbmRUYWdOYW1lTHVuZXhwZWN0ZWQtY2hhcmFjdGVyLWluLWF0dHJpYnV0ZS1uYW1lRHVuZXhwZWN0ZWRDaGFyYWN0ZXJJbkF0dHJpYnV0ZU5hbWVCdW5rbm93bi1uYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlPHVua25vd25OYW1lZENoYXJhY3RlclJlZmVyZW5jZVZtaXNzaW5nLXNlbWljb2xvbi1hZnRlci1jaGFyYWN0ZXItcmVmZXJlbmNlTm1pc3NpbmdTZW1pY29sb25BZnRlckNoYXJhY3RlclJlZmVyZW5jZWh1bmV4cGVjdGVkLWNoYXJhY3Rlci1hZnRlci1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyXnVuZXhwZWN0ZWRDaGFyYWN0ZXJBZnRlckRvY3R5cGVTeXN0ZW1JZGVudGlmaWVyYHVuZXhwZWN0ZWQtY2hhcmFjdGVyLWluLXVucXVvdGVkLWF0dHJpYnV0ZS12YWx1ZVZ1bmV4cGVjdGVkQ2hhcmFjdGVySW5VbnF1b3RlZEF0dHJpYnV0ZVZhbHVlJmVvZi1iZWZvcmUtdGFnLW5hbWUgZW9mQmVmb3JlVGFnTmFtZRRlb2YtaW4tdGFnEGVvZkluVGFnLm1pc3NpbmctYXR0cmlidXRlLXZhbHVlKm1pc3NpbmdBdHRyaWJ1dGVWYWx1ZUptaXNzaW5nLXdoaXRlc3BhY2UtYmV0d2Vlbi1hdHRyaWJ1dGVzRG1pc3NpbmdXaGl0ZXNwYWNlQmV0d2VlbkF0dHJpYnV0ZXNebWlzc2luZy13aGl0ZXNwYWNlLWFmdGVyLWRvY3R5cGUtcHVibGljLWtleXdvcmRUbWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkgAFtaXNzaW5nLXdoaXRlc3BhY2UtYmV0d2Vlbi1kb2N0eXBlLXB1YmxpYy1hbmQtc3lzdGVtLWlkZW50aWZpZXJzcm1pc3NpbmdXaGl0ZXNwYWNlQmV0d2VlbkRvY3R5cGVQdWJsaWNBbmRTeXN0ZW1JZGVudGlmaWVyc15taXNzaW5nLXdoaXRlc3BhY2UtYWZ0ZXItZG9jdHlwZS1zeXN0ZW0ta2V5d29yZFRtaXNzaW5nV2hpdGVzcGFjZUFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmRcbWlzc2luZy1xdW90ZS1iZWZvcmUtZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllclJtaXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllclxtaXNzaW5nLXF1b3RlLWJlZm9yZS1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyUm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyQm1pc3NpbmctZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllcjxtaXNzaW5nRG9jdHlwZVB1YmxpY0lkZW50aWZpZXJCbWlzc2luZy1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyPG1pc3NpbmdEb2N0eXBlU3lzdGVtSWRlbnRpZmllckBhYnJ1cHQtZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllcjphYnJ1cHREb2N0eXBlUHVibGljSWRlbnRpZmllckBhYnJ1cHQtZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllcjphYnJ1cHREb2N0eXBlU3lzdGVtSWRlbnRpZmllcipjZGF0YS1pbi1odG1sLWNvbnRlbnQkY2RhdGFJbkh0bWxDb250ZW50NGluY29ycmVjdGx5LW9wZW5lZC1jb21tZW50MGluY29ycmVjdGx5T3BlbmVkQ29tbWVudEhlb2YtaW4tc2NyaXB0LWh0bWwtY29tbWVudC1saWtlLXRleHQ8ZW9mSW5TY3JpcHRIdG1sQ29tbWVudExpa2VUZXh0HGVvZi1pbi1kb2N0eXBlGGVvZkluRG9jdHlwZRxuZXN0ZWQtY29tbWVudBpuZXN0ZWRDb21tZW50PmFicnVwdC1jbG9zaW5nLW9mLWVtcHR5LWNvbW1lbnQ2YWJydXB0Q2xvc2luZ09mRW1wdHlDb21tZW50HGVvZi1pbi1jb21tZW50GGVvZkluQ29tbWVudDRpbmNvcnJlY3RseS1jbG9zZWQtY29tbWVudDBpbmNvcnJlY3RseUNsb3NlZENvbW1lbnQYZW9mLWluLWNkYXRhFGVvZkluQ2RhdGFgYWJzZW5jZS1vZi1kaWdpdHMtaW4tbnVtZXJpYy1jaGFyYWN0ZXItcmVmZXJlbmNlVGFic2VuY2VPZkRpZ2l0c0luTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZTBudWxsLWNoYXJhY3Rlci1yZWZlcmVuY2UsbnVsbENoYXJhY3RlclJlZmVyZW5jZTpzdXJyb2dhdGUtY2hhcmFjdGVyLXJlZmVyZW5jZTZzdXJyb2dhdGVDaGFyYWN0ZXJSZWZlcmVuY2VSY2hhcmFjdGVyLXJlZmVyZW5jZS1vdXRzaWRlLXVuaWNvZGUtcmFuZ2VKY2hhcmFjdGVyUmVmZXJlbmNlT3V0c2lkZVVuaWNvZGVSYW5nZTZjb250cm9sLWNoYXJhY3Rlci1yZWZlcmVuY2UyY29udHJvbENoYXJhY3RlclJlZmVyZW5jZUBub25jaGFyYWN0ZXItY2hhcmFjdGVyLXJlZmVyZW5jZTxub25jaGFyYWN0ZXJDaGFyYWN0ZXJSZWZlcmVuY2VMbWlzc2luZy13aGl0ZXNwYWNlLWJlZm9yZS1kb2N0eXBlLW5hbWVEbWlzc2luZ1doaXRlc3BhY2VCZWZvcmVEb2N0eXBlTmFtZShtaXNzaW5nLWRvY3R5cGUtbmFtZSRtaXNzaW5nRG9jdHlwZU5hbWVaaW52YWxpZC1jaGFyYWN0ZXItc2VxdWVuY2UtYWZ0ZXItZG9jdHlwZS1uYW1lUGludmFsaWRDaGFyYWN0ZXJTZXF1ZW5jZUFmdGVyRG9jdHlwZU5hbWUmZHVwbGljYXRlLWF0dHJpYnV0ZSRkdXBsaWNhdGVBdHRyaWJ1dGUsbm9uLWNvbmZvcm1pbmctZG9jdHlwZShub25Db25mb3JtaW5nRG9jdHlwZR5taXNzaW5nLWRvY3R5cGUcbWlzc2luZ0RvY3R5cGUibWlzcGxhY2VkLWRvY3R5cGUgbWlzcGxhY2VkRG9jdHlwZUplbmQtdGFnLXdpdGhvdXQtbWF0Y2hpbmctb3Blbi1lbGVtZW50QGVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50VmNsb3Npbmctb2YtZWxlbWVudC13aXRoLW9wZW4tY2hpbGQtZWxlbWVudHNKY2xvc2luZ09mRWxlbWVudFdpdGhPcGVuQ2hpbGRFbGVtZW50c0xkaXNhbGxvd2VkLWNvbnRlbnQtaW4tbm9zY3JpcHQtaW4taGVhZEJkaXNhbGxvd2VkQ29udGVudEluTm9zY3JpcHRJbkhlYWQ4b3Blbi1lbGVtZW50cy1sZWZ0LWFmdGVyLWVvZjBvcGVuRWxlbWVudHNMZWZ0QWZ0ZXJFb2Y4YWJhbmRvbmVkLWhlYWQtZWxlbWVudC1jaGlsZDJhYmFuZG9uZWRIZWFkRWxlbWVudENoaWxkSG1pc3BsYWNlZC1zdGFydC10YWctZm9yLWhlYWQtZWxlbWVudD5taXNwbGFjZWRTdGFydFRhZ0ZvckhlYWRFbGVtZW50Lm5lc3RlZC1ub3NjcmlwdC1pbi1oZWFkKG5lc3RlZE5vc2NyaXB0SW5IZWFkUmVvZi1pbi1lbGVtZW50LXRoYXQtY2FuLWNvbnRhaW4tb25seS10ZXh0RGVvZkluRWxlbWVudFRoYXRDYW5Db250YWluT25seVRleHQOaGFuZGxlcgZwb3MUbGFzdEdhcFBvcxBnYXBTdGFjax5za2lwTmV4dE5ld0xpbmUgbGFzdENodW5rV3JpdHRlbhplbmRPZkNodW5rSGl0HmJ1ZmZlcldhdGVybGluZQppc0VvbBhsaW5lU3RhcnRQb3MiZHJvcHBlZEJ1ZmZlclNpemUIbGluZRpsYXN0RXJyT2Zmc2V0CmF0dHJzEkNIQVJBQ1RFUhxOVUxMX0NIQVJBQ1RFUihXSElURVNQQUNFX0NIQVJBQ1RFUhJTVEFSVF9UQUcORU5EX1RBRw5DT01NRU5UDkRPQ1RZUEUWSElCRVJOQVRJT06MAUR5bmFtaWMgcmVxdWlyZXMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIGJ5IHJvbGx1cC1wbHVnaW4tY29tbW9uanMUX19lc01vZHVsZQ5leHBvcnRzle4BQR08ANUAMQGKAp0EewXQBXUG3gaiB9YHDwhKCpEKoQ1tDgkPJg/KECgS4RIVFJ0UwxTfFCUVAAAAAAAAAAAAAAAAaxXNFo0ZEhzdHX4fYCCwIY0iwCP7I0IkJCgSKQgtSC7OLxYwujI5Nqw3/jgoOnE64DouOwAIRQBNAGEAYgBjAGYAZwBsAG0AbgBvAHAAcgBzAHQAdQBcAGIAZgBtAHMAfwCEAIsAkACVAJgApgCzALkAyADPAGwAaQBnADuAxgDGQFAAO4AmACZAYwB1AHQAZQA7gMEAwUByAGUAdgBlADsAAkEAAWkAeQB4AH0AcgBjADuAwgDCQDsAEERyADsAAMA12ATdcgBhAHYAZQA7gMAAwEBwAGgAYQA7AJFDYQBjAHIAOwAAQWQAOwBTagABZwBwAJ0AoQBvAG4AOwAEQWYAOwAAwDXYON1wAGwAeQBGAHUAbgBjAHQAaQBvAG4AOwBhYGkAbgBnADuAxQDFQAABYwBzAL4AwwByADsAAMA12JzcaQBnAG4AOwBUYmkAbABkAGUAO4DDAMNAbQBsADuAxADEQAAEYQBjAGUAZgBvAHIAcwB1AOUA+wD+ABcBHAEiAScBKgEAAWMAcgDqAPIAawBzAGwAYQBzAGgAOwAWYnYB9gD4ADsA52plAGQAOwAGY3kAOwARRIABYwByAHQABQELARQBYQB1AHMAZQA7ADVibgBvAHUAbABsAGkAcwA7ACxhYQA7AJJDcgA7AADANdgF3XAAZgA7AADANdg53WUAdgBlADsA2EJjAPIAEwFtAHAAZQBxADsATmIAB0gATwBhAGMAZABlAGYAaABpAGwAbwByAHMAdQBNAVEBVgGAAZ4BogG1AbcBugHcARUCcwJ4An4CYwB5ADsAJ0RQAFkAO4CpAKlAgAFjAHAAeQBdAWIBegF1AHQAZQA7AAZBAAE7AGkAZwFoAdJidABhAGwARABpAGYAZgBlAHIAZQBuAHQAaQBhAGwARAA7AEVhbABlAHkAcwA7AC1hAAJhAGUAaQBvAIkBjgGUAZgBcgBvAG4AOwAMQWQAaQBsADuAxwDHQHIAYwA7AAhBbgBpAG4AdAA7ADBibwB0ADsACkEAAWQAbgCnAa0BaQBsAGwAYQA7ALhAdABlAHIARABvAHQAOwC3QPIAfwFpADsAp0NyAGMAbABlAAACRABNAFAAVADHAcsB0QHWAW8AdAA7AJliaQBuAHUAcwA7AJZibAB1AHMAOwCVYmkAbQBlAHMAOwCXYm8AAAFjAHMA4gH4AWsAdwBpAHMAZQBDAG8AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEAbAA7ADJiZQBDAHUAcgBsAHkAAAFEAFEAAwIPAm8AdQBiAGwAZQBRAHUAbwB0AGUAOwAdYHUAbwB0AGUAOwAZYAACbABuAHAAdQAeAigCRwJVAm8AbgAAATsAZQAlAiYCN2I7AHRqgAFnAGkAdAAvAjYCOgJyAHUAZQBuAHQAOwBhYm4AdAA7AC9ibwB1AHIASQBuAHQAZQBnAHIAYQBsADsALmIAAWYAcgBMAk4COwACYW8AZAB1AGMAdAA7ABBibgB0AGUAcgBDAGwAbwBjAGsAdwBpAHMAZQBDAG8AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEAbAA7ADNibwBzAHMAOwAvamMAcgA7AADANdie3HAAAAE7AEMAhAKFAtNiYQBwADsATWKABUQASgBTAFoAYQBjAGUAZgBpAG8AcwCgAqwCsAK0ArgCywLXAuEC5gIzA40EAAE7AG8AeQGlAnQAcgBhAGgAZAA7ABFpYwB5ADsAAkRjAHkAOwAFRGMAeQA7AA9EgAFnAHIAcwC/AsQCxwJnAGUAcgA7ACFgcgA7AKFhaAB2ADsA5GoAAWEAeQDQAtUCcgBvAG4AOwAOQTsAFERsAAABOwB0AN0C3gIHYmEAOwCUQ3IAOwAAwDXYB90AAWEAZgDrAicDAAFjAG0A8AIiA3IAaQB0AGkAYwBhAGwAAAJBAEQARwBUAAADBgMWAxwDYwB1AHQAZQA7ALRAbwB0AQsDDQM7ANlCYgBsAGUAQQBjAHUAdABlADsA3UJyAGEAdgBlADsAYEBpAGwAZABlADsA3EJvAG4AZAA7AMRiZgBlAHIAZQBuAHQAaQBhAGwARAA7AEZhcAQ9AwAAAAAAAEIDVAMAAAUEZgA7AADANdg73YABOwBEAEUASANJA00DqEBvAHQAOwDcYHEAdQBhAGwAOwBQYmIAbABlAAADQwBEAEwAUgBVAFYAYwNyA4IDzwPiA/gDbwBuAHQAbwB1AHIASQBuAHQAZQBnAHIAYQDsADkCbwB0AnkDAAAAAHsDuwBJA24AQQByAHIAbwB3ADsA02EAAWUAbwCHA6QDZgB0AIABQQBSAFQAkAOWA6EDcgByAG8AdwA7ANBhaQBnAGgAdABBAHIAcgBvAHcAOwDUYWUA5QDKAm4AZwAAAUwAUgCrA8QDZQBmAHQAAAFBAFIAswO5A3IAcgBvAHcAOwD4Z2kAZwBoAHQAQQByAHIAbwB3ADsA+mdpAGcAaAB0AEEAcgByAG8AdwA7APlnaQBnAGgAdAAAAUEAVAD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lAIABOwBCAEUAJAklCSkJsmJhAHIAOwDPaXEAdQBhAGwAOwC0YnAAgAFEAFQAVgA3CUIJTAlvAHcAbgBWAGUAYwB0AG8AcgA7AFFpZQBlAFYAZQBjAHQAbwByADsAYGllAGMAdABvAHIAAAE7AEIAVglXCb9hYQByADsAWGllAGMAdABvAHIAAAE7AEIAZQlmCbxhYQByADsAUmlpAGcAaAB0AOEAnANzAAADRQBGAEcATABTAFQAfgmLCZUJnQmiCa0JcQB1AGEAbABHAHIAZQBhAHQAZQByADsA2mJ1AGwAbABFAHEAdQBhAGwAOwBmYnIAZQBhAHQAZQByADsAdmJlAHMAcwA7AKFqbABhAG4AdABFAHEAdQBhAGwAOwB9amkAbABkAGUAOwByYnIAOwAAwDXYD90AATsAZQC9Cb4J2GJmAHQAYQByAHIAbwB3ADsA2mFpAGQAbwB0ADsAP0GAAW4AcAB3ANQJFgobCmcAAAJMAFIAbAByAN4J9wkCChAKZQBmAHQAAAFBAFIA5gnsCXIAcgBvAHcAOwD1Z2kAZwBoAHQAQQByAHIAbwB3ADsA92dpAGcAaAB0AEEAcgByAG8AdwA7APZnZQBmAHQAAAFhAHIAswMKCmkAZwBoAHQA4QC/A2kAZwBoAHQA4QDKA2YAOwAAwDXYQ91lAHIAAAFMAFIAIgosCmUAZgB0AEEAcgByAG8AdwA7AJlhaQBnAGgAdABBAHIAcgBvAHcAOwCYYYABYwBoAHQAPgpACkIK8gBMCDsAsGFyAG8AawA7AEFBOwBqYgAEYQBjAGUAZgBpAG8AcwB1AFoKXQpgCncKfAqFCosKjgpwADsABWl5ADsAHEQAAWQAbABlCm8KaQB1AG0AUwBwAGEAYwBlADsAX2BsAGkAbgB0AHIAZgA7ADNhcgA7AADANdgQ3W4AdQBzAFAAbAB1AHMAOwATYnAAZgA7AADANdhE3WMA8gB2CjsAnEOABEoAYQBjAGUAZgBvAHMAdAB1AKMKpwqtCsAKFAsZC5ENlw2eDWMAeQA7AApEYwB1AHQAZQA7AENBgAFhAGUAeQC0CrkKvgpyAG8AbgA7AEdBZABpAGwAOwBFQTsAHUSAAWcAcwB3AMcK8AoOC2EAdABpAHYAZQCAAU0AVABWANMK3wroCmUAZABpAHUAbQBTAHAAYQBjAGUAOwALYGgAaQAAAWMAbgDmCtgK6wDZCmUAcgB5AFQAaABpAO4A2Qp0AGUAZAAAAUcATAD4CgYLcgBlAGEAdABlAHIARwByAGUAYQB0AGUA8gBzBmUAcwBzAEwAZQBzAPMASApMAGkAbgBlADsACkByADsAAMA12BHdAAJCAG4AcAB0ACILKAs3CzoLcgBlAGEAawA7AGBgQgByAGUAYQBrAGkAbgBnAFMAcABhAGMAZQA7AKBAZgA7ABVhgAY7AEMARABFAEcASABMAE4AUABSAFMAVABWAFULVgtqC3wLoQvrCwQMXgyEDKYM2AxhDYUN7GoAAW8AdQBbC2QLbgBnAHIAdQBlAG4AdAA7AGJicABDAGEAcAA7AG1ibwB1AGIAbABlAFYAZQByAHQAaQBjAGEAbABCAGEAcgA7ACZigAFsAHEAeACDC4oLmwtlAG0AZQBuAHQAOwAJYnUAYQBsAAABOwBUAJILkwtgYmkAbABkAGUAOwAAwEIiOANpAHMAdABzADsABGJyAGUAYQB0AGUAcgCAAzsARQBGAEcATABTAFQAtgu3C70LyQvTC9gL5QtvYnEAdQBhAGwAOwBxYnUAbABsAEUAcQB1AGEAbAA7AADAZyI4A3IAZQBhAHQAZQByADsAAMBrIjgDZQBzAHMAOwB5YmwAYQBuAHQARQBxAHUAYQBsADsAAMB+KjgDaQBsAGQAZQA7AHVidQBtAHAARAHyC/0LbwB3AG4ASAB1AG0AcAA7AADATiI4A3EAdQBhAGwAOwAAwE8iOANlAAABZgBzAAoMJwx0AFQAcgBpAGEAbgBnAGwAZQCAATsAQgBFABoMGwwhDOpiYQByADsAAMDPKTgDcQB1AGEAbAA7AOxicwAAAzsARQBHAEwAUwBUADUMNgw8DEQMSwxYDG5icQB1AGEAbAA7AHBicgBlAGEAdABlAHIAOwB4YmUAcwBzADsAAMBqIjgDbABhAG4AdABFAHEAdQBhAGwAOwAAwH0qOANpAGwAZABlADsAdGJlAHMAdABlAGQAAAFHAEwAaAx5DHIAZQBhAHQAZQByAEcAcgBlAGEAdABlAHIAOwAAwKIqOANlAHMAcwBMAGUAcwBzADsAAMChKjgDcgBlAGMAZQBkAGUAcwCAATsARQBTAJIMkwybDIBicQB1AGEAbAA7AADAryo4A2wAYQBuAHQARQB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yAHIAbwB3ADsAxWFvAHcAbgBBAHIAcgBvAHcAOwCVYXEAdQBpAGwAaQBiAHIAaQB1AG0AOwBuaWUAZQAAATsAQQDLE8wTpWJyAHIAbwB3ADsApWFvAHcAbgDhAPMDZQByAAABTABSAN4T6BNlAGYAdABBAHIAcgBvAHcAOwCWYWkAZwBoAHQAQQByAHIAbwB3ADsAl2FpAAABOwBsAPkT+hPSQ28AbgA7AKVDaQBuAGcAOwBuQWMAcgA7AADANdiw3GkAbABkAGUAOwBoQW0AbAA7gNwA3ECABEQAYgBjAGQAZQBmAG8AcwB2ACcULBQwFDMUPhSFFIoUkBSWFGEAcwBoADsAq2JhAHIAOwDrankAOwASRGEAcwBoAAABOwBsADsUPBSpYjsA5moAAWUAcgBDFEUUOwDBYoABYgB0AHkATBRQFHoUYQByADsAFmAAATsAaQBPFFUUYwBhAGwAAAJCAEwAUwBUAGEUZRRqFHQUYQByADsAI2JpAG4AZQA7AHxAZQBwAGEAcgBhAHQAbwByADsAWGdpAGwAZABlADsAQGJUAGgAaQBuAFMAcABhAGMAZQA7AApgcgA7AADANdgZ3XAAZgA7AADANdhN3WMAcgA7AADANdix3GQAYQBzAGgAOwCqYoACYwBlAGYAbwBzAKcUrBSxFLYUvBRpAHIAYwA7AHRBZABnAGUAOwDAYnIAOwAAwDXYGt1wAGYAOwAAwDXYTt1jAHIAOwAAwDXYstwAAmYAaQBvAHMAyxTQFNIU2BRyADsAAMA12BvdOwCeQ3AAZgA7AADANdhP3WMAcgA7AADANdiz3IAEQQBJAFUAYQBjAGYAbwBzAHUA8RT1FPkU/RQEFQ8VFBUaFSAVYwB5ADsAL0RjAHkAOwAHRGMAeQA7AC5EYwB1AHQAZQA7gN0A3UAAAWkAeQAJFQ0VcgBjADsAdkE7ACtEcgA7AADANdgc3XAAZgA7AADANdhQ3WMAcgA7AADANdi03G0AbAA7AHhBAARIAGEAYwBkAGUAZgBvAHMANRU5FT8VSxVPFV0VYBVkFWMAeQA7ABZEYwB1AHQAZQA7AHlBAAFhAHkARBVJFXIAbwBuADsAfUE7ABdEbwB0ADsAe0HyAVQVAABbFW8AVwBpAGQAdADoANkKYQA7AJZDcgA7AChhcABmADsAJGFjAHIAOwAAwDXYtdzhC4MVihWQFQAAsBW2Fb8VAAAAAAAAAADGFdsV6xVfFm0WAACVFpsWsha5FgAAvhZjAHUAdABlADuA4QDhQHIAZQB2AGUAOwADQQADOwBFAGQAaQB1AHkAnBWdFaEVoxWoFa0VPmI7AADAPiIzAzsAP2JyAGMAO4DiAOJAdABlALuAtAAGAzsAMERsAGkAZwA7gOYA5kAAATsAcgCyALoVOwAAwDXYHt1yAGEAdgBlADuA4ADgQAABZQBwAMoV1hUAAWYAcADPFdQVcwB5AG0AOwA1YegA0xVoAGEAOwCxQwABYQBwAN8VYwAAAWMAbADkFecVcgA7AAFBZwA7AD9qZALwFQAAAAAKFoACOwBhAGQAcwB2APoV+xX/FQEWBxYnYm4AZAA7AFVqOwBcamwAbwBwAGUAOwBYajsAWmqAAzsAZQBsAG0AcgBzAHoAGBYZFhsWHhY/Fk8WWRYgYjsApGllALsAGRZzAGQAAAE7AGEAJRYmFiFiYQQwFjIWNBY2FjgWOhY8Fj4WOwCoaTsAqWk7AKppOwCraTsArGk7AK1pOwCuaTsAr2l0AAABOwB2AEUWRhYfYmIAAAE7AGQATBZNFr5iOwCdaQABcAB0AFQWVxZoADsAImK7ALkAYQByAHIAOwB8YwABZwBwAGMWZxZvAG4AOwAFQWYAOwAAwDXYUt2AAzsARQBhAGUAaQBvAHAAwRJ7Fn0WghaEFocWihY7AHBqYwBpAHIAOwBvajsASmJkADsAS2JzADsAJ0ByAG8AeAAAATsAZQDBEpIW8QCDFmkAbgBnADuA5QDlQIABYwB0AHkAoRamFqgWcgA7AADANdi23DsAKkBtAHAAAAE7AGUAwRKvFvEAiAJpAGwAZABlADuA4wDjQG0AbAA7gOQA5EAAAWMAaQDCFsgWbwBuAGkAbgD0AHICbgB0ADsAEWoACE4AYQBiAGMAZABlAGYAaQBrAGwAbgBvAHAAcgBzAHUA7RbxFjAXPBdDF0gXeBd9F+AX5hc5GFAYDRc9GUgZcBlvAHQAOwDtagABYwByAPYWHhdrAAACYwBlAHAAcwAAFwUXDRcTF28AbgBnADsATGJwAHMAaQBsAG8AbgA7APZDcgBpAG0AZQA7ADVgaQBtAAABOwBlABoXGxc9YnEAOwDNYnYBIhcmF2UAZQA7AL1iZQBkAAABOwBnACwXLRcFY2UAuwAtF3IAawAAATsAdABcEzcXYgByAGsAOwC2YwABbwB5AAEXQRc7ADFEcQB1AG8AOwAeYIACYwBtAHAAcgB0AFMXWxdhF2QXaBdhAHUAcwAAATsAZQAKAQkBcAB0AHkAdgA7ALBpcwDpAAwXbgBvAPUAEwGAAWEAaAB3AG8XcRdzFzsAskM7ADZhZQBlAG4AOwBsYnIAOwAAwDXYH91nAIADYwBvAHMAdAB1AHYAdwCNF50XsxfBF9UX2xfeF4ABYQBpAHUAlBeWF5oX8ABgB3IAYwA7AO9lcAC7AHETgAFkAHAAdACkF6gXrRdvAHQAOwAAamwAdQBzADsAAWppAG0AZQBzADsAAmpxArkXAAAAAL4XYwB1AHAAOwAGamEAcgA7AAVmcgBpAGEAbgBnAGwAZQAAAWQAdQDNF9IXbwB3AG4AOwC9ZXAAOwCzZXAAbAB1AHMAOwAEamUA5QBEFOUArRRhAHIAbwB3ADsADWmAAWEAawBvAO0XJhg1GAABYwBuAPIXIxhrAIABbABzAHQA+herBQIYbwB6AGUAbgBnAGUAOwDraXIAaQBhAG4AZwBsAGUAAAI7AGQAbAByABIYExgYGB0YtGVvAHcAbgA7AL5lZQBmAHQAOwDCZWkAZwBoAHQAOwC4ZWsAOwAjZLEBKxgAADMYsgEvGAAAMRg7AJJlOwCRZTQAOwCTZWMAawA7AIhlAAFlAG8APhhNGAABOwBxAEMYRhgAwD0A5SB1AGkAdgA7AADAYSLlIHQAOwAQYwACcAB0AHcAeABZGF4YZxhsGGYAOwAAwDXYU90AATsAdADLE2MYbwBtALsAzBN0AGkAZQA7AMhiAAZEAEgAVQBWAGIAZABoAG0AcAB0AHUAdgCFGJYYqhi7GNcY2xjsGP8YBRkKGRAZIRkAAkwAUgBsAHIAjhiQGJIYlBg7AFdlOwBUZTsAVmU7AFNlgAI7AEQAVQBkAHUAoRiiGKQYphioGFBlOwBmZTsAaWU7AGRlOwBnZQACTABSAGwAcgCzGLUYtxi5GDsAXWU7AFplOwBcZTsAWWWAAzsASABMAFIAaABsAHIAyhjLGM0YzxjRGNMY1RhRZTsAbGU7AGNlOwBgZTsAa2U7AGJlOwBfZW8AeAA7AMlpAAJMAFIAbAByAOQY5hjoGOoYOwBVZTsAUmU7ABBlOwAMZYACOwBEAFUAZAB1AL0G9xj5GPsY/Rg7AGVlOwBoZTsALGU7ADRlaQBuAHUAcwA7AJ9ibAB1AHMAOwCeYmkAbQBlAHMAOwCgYgACTABSAGwAcgAZGRsZHRkfGTsAW2U7AFhlOwAYZTsAFGWAAzsASABMAFIAaABsAHIAMBkxGTMZNRk3GTkZOxkCZTsAamU7AGFlOwBeZTsAPGU7ACRlOwAcZQABZQB2ACMBQhliAGEAcgA7gKYApkAAAmMAZQBpAG8AURlWGVoZYBlyADsAAMA12LfcbQBpADsAT2BtAAABOwBlABoXHBdsAIABOwBiAGgAaBlpGWsZXEA7AMVpcwB1AGIAOwDIZ2wBdBl+GWwAAAE7AGUAeRl6GSJgdAC7AHoZcACAATsARQBlAC8BhRmHGTsArmoAATsAcQDcBtsG4QynGQAA6BkRGhUaMhoAADcaUBoAAAAAtBoAAAAAwRoAAAAAIRsuG00bUhsAAP0bAAAMHIABYwBwAHIArRmyGd0ZdQB0AGUAOwAHQQADOwBhAGIAYwBkAHMAvxnAGcQZyhnVGdkZKWJuAGQAOwBEanIAYwB1AHAAOwBJagABYQB1AM8Z0hlwADsAS2pwADsAR2pvAHQAOwBAajsAAMApIgD+AAFlAG8A4hnlGXQAOwBBYO4AkwYAAmEAZQBpAHUA8Bn7GQEaBRrwAfUZAAD4GXMAOwBNam8AbgA7AA1BZABpAGwAO4DnAOdAcgBjADsACUFwAHMAAAE7AHMADBoNGkxqbQA7AFBqbwB0ADsAC0GAAWQAbQBuABsaIBomGmkAbAC7gLgArQFwAHQAeQB2ADsAsml0AACBogA7AGUALRouGqJAcgDkALIBcgA7AADANdgg3YABYwBlAGkAPRpAGk0aeQA7AEdEYwBrAAABOwBtAEcaSBoTZ2EAcgBrALsASBo7AMdDcgCAAzsARQBjAGUAZgBtAHMAXxpgGmIaaxqkGqoarhrLZTsAw2mAATsAZQBsAGkaahptGsZCcQA7AFdiZQBhAnQaAAAAAIgacgByAG8AdwAAAWwAcgB8GoEaZQBmAHQAOwC6YWkAZwBoAHQAOwC7YYACUgBTAGEAYwBkAJIalBqWGpoanxq7AEcPOwDIZHMAdAA7AJtiaQByAGMAOwCaYmEAcwBoADsAnWJuAGkAbgB0ADsAEGppAGQAOwDvamMAaQByADsAwml1AGIAcwAAATsAdQC7GrwaY2ZpAHQAuwC8GuwCxxrUGvoaAAAKG28AbgAAATsAZQDNGs4aOkAAATsAcQDHAMYAbQLZGgAAAADiGmEAAAE7AHQA3hrfGixAOwBAQIABOwBmAGwA6BrpGusaAWLuAGARZQAAAW0AeADxGvYaZQBuAHQAuwDpGmUA8wBNAucB/hoAAAcbAAE7AGQAuxICG28AdAA7AG1qbgD0AEYCgAFmAHIAeQAQGxQbFxs7AADANdhU3W8A5ABUAgCBqQA7AHMAVQEdG3IAOwAXYQABYQBvACUbKRtyAHIAOwC1YXMAcwA7ABdnAAFjAHUAMhs3G3IAOwAAwDXYuNwAAWIAcAA8G0QbAAE7AGUAQRtCG89qOwDRagABOwBlAEkbShvQajsA0mpkAG8AdAA7AO9igANkAGUAbABwAHIAdgB3AGAbbBt3G4IbrBvUG/kbYQByAHIAAAFsAHIAaBtqGzsAOGk7ADVpcAJyGwAAAAB1G3IAOwDeYmMAOwDfYmEAcgByAAABOwBwAH8bgBu2YTsAPWkAAzsAYgBjAGQAbwBzAI8bkBuWG6EbpRuoGypicgBjAGEAcAA7AEhqAAFhAHUAmxueG3AAOwBGanAAOwBKam8AdAA7AI1icgA7AEVqOwAAwCoiAP4AAmEAbAByAHYAtRu/G94b4xtyAHIAAAE7AG0AvBu9G7dhOwA8aXkAgAFlAHYAdwDHG9Qb2BtxAHACzhsAAAAA0htyAGUA4wBzG3UA4wB1G2UAZQA7AM5iZQBkAGcAZQA7AM9iZQBuADuApACkQGUAYQByAHIAbwB3AAABbAByAO4b8xtlAGYAdAC7AIAbaQBnAGgAdAC7AL0bZQDkAN0bAAFjAGkAARwHHG8AbgBpAG4A9AD3AW4AdAA7ADFibABjAHQAeQA7AC1jgAlBAEgAYQBiAGMAZABlAGYAaABpAGoAbABvAHIAcwB0AHUAdwB6ADgcOxw/HF0caRx1HIocnhysHLcc+xz/HA0dex2RHasdux3GHc0dcgDyAIEDYQByADsAZWkAAmcAbAByAHMASBxNHFIcVBxnAGUAcgA7ACBgZQB0AGgAOwA4YfIAMxFoAAABOwB2AFocWxwQYLsACglrAWEcZxxhAHIAbwB3ADsAD2lhAOMAFQMAAWEAeQBuHHMccgBvAG4AOwAPQTsANESAATsAYQBvADIDfByEHAABZwByAL8CgRxyADsAymF0AHMAZQBxADsAd2qAAWcAbABtAJEclByYHDuAsACwQHQAYQA7ALRDcAB0AHkAdgA7ALFpAAFpAHIAoxyoHHMAaAB0ADsAf2k7AADANdgh3WEAcgAAAWwAcgCzHLUcuwDcCLsAHhCAAmEAZQBnAHMAdgDCHHgD1hzcHOAcbQCAATsAbwBzACYDyhzUHG4AZAAAATsAcwAmA9EcdQBpAHQAOwBmZmEAbQBtAGEAOwDdQ2kAbgA7APJigAE7AGkAbwDnHOgc+Bz3QGQAZQAAgfcAOwBvAOcc8BxuAHQAaQBtAGUAcwA7AMdibgD4APccYwB5ADsAUkRjAG8CBh0AAAAACh1yAG4AOwAeY28AcAA7AA1jgAJsAHAAdAB1AHcAGB0dHSIdSR1VHWwAYQByADsAJEBmADsAAMA12FXdgAI7AGUAbQBwAHMACwMtHTcdPR1CHXEAAAE7AGQAUgMzHW8AdAA7AFFiaQBuAHUAcwA7ADhibAB1AHMAOwAUYnEAdQBhAHIAZQA7AKFiYgBsAGUAYgBhAHIAdwBlAGQAZwDlAPoAbgCAAWEAZABoAC4RXR1nHW8AdwBuAGEAcgByAG8AdwDzAIMcYQByAHAAbwBvAG4AAAFsAHIAch12HWUAZgD0ALQcaQBnAGgA9AC2HGIBfx2FHWsAYQByAG8A9wBCD28Cih0AAAAAjh1yAG4AOwAfY28AcAA7AAxjgAFjAG8AdACYHaMdph0AAXIAeQCdHaEdOwAAwDXYudw7AFVEbAA7APZpcgBvAGsAOwARQQABZAByALAdtB1vAHQAOwDxYmkAAAE7AGYAuh0WGL9lAAFhAGgAwB3DHXIA8gApBGEA8gCmD2EAbgBnAGwAZQA7AKZpAAFjAGkA0h3VHXkAOwBfRGcAcgBhAHIAcgA7AP9nAAlEAGEAYwBkAGUAZgBnAGwAbQBuAG8AcABxAHIAcwB0AHUAeAABHgkeGR44HngFPB5JHmEefh6lHq8evR7hHiofNx9EH04fWh8AAUQAbwAGHjQdbwD0AIkcAAFjAHMADh4UHnUAdABlADuA6QDpQHQAZQByADsAbmoAAmEAaQBvAHkAIh4nHjEeNh5yAG8AbgA7ABtBcgAAATsAYwAtHi4eVmI7gOoA6kBsAG8AbgA7AFViOwBNRG8AdAA7ABdBAAFEAHIAQR5FHm8AdAA7AFJiOwAAwDXYIt2AATsAcgBzAFAeUR5XHppqYQB2AGUAO4DoAOhAAAE7AGQAXB5dHpZqbwB0ADsAmGoAAjsAaQBsAHMAah5rHnIedB6Zam4AdABlAHIAcwA7AOdjOwATYQABOwBkAHkeeh6Vam8AdAA7AJdqgAFhAHAAcwCFHokelx5jAHIAOwATQXQAeQCAATsAcwB2AJIekx6VHgViZQB0ALsAkx5wAAABMQA7AJ0epB4zAaEeox47AARgOwAFYANgAAFnAHMAqh6sHjsAS0FwADsAAmAAAWcAcAC0HrgebwBuADsAGUFmADsAAMA12FbdgAFhAGwAcwDEHs4e0h5yAAABOwBzAMoeyx7VYmwAOwDjaXUAcwA7AHFqaQCAATsAbAB2ANoe2x7fHrVDbwBuALsA2x47APVDAAJjAHMAdQB2AOoe8x4LHyMfAAFpAG8A7x4xHnIAYwC7AC4eaQL5HgAAAAD7Hu0ASAVhAG4AdAAAAWcAbAACHwYfdAByALsAXR5lAHMAcwC7AHoegAFhAGUAaQASHxYfGh9sAHMAOwA9QHMAdAA7AF9idgAAATsARAA1AiAfRAA7AHhqcABhAHIAcwBsADsA5WkAAUQAYQAvHzMfbwB0ADsAU2JyAHIAOwBxaYABYwBkAGkAPh9BH/gecgA7AC9hbwD0AFIDAAFhAGgASR9LHzsAt0M7gPAA8EAAAW0AcgBTH1cfbAA7gOsA60BvADsArGCAAWMAaQBwAGEfZB9nH2wAOwAhQHMA9ABuBQABZQBvAGwfdB9jAHQAYQB0AGkAbwDuAFkFbgBlAG4AdABpAGEAbADlAHkF4QmSHwAAnh8AAKEfpx8AAAAAxh/MHwAA0x8AAOYf6h8AIAAACCBaIGwAbABpAG4AZwBkAG8AdABzAGUA8QBEHnkAOwBERG0AYQBsAGUAOwBAZoABaQBsAHIArR+zH8EfbABpAGcAOwAAgAP7aQK5HwAAAAC9H2cAOwAAgAD7aQBnADsAAIAE+zsAAMA12CPdbABpAGcAOwAAgAH7bABpAGcAOwAAwGYAagCAAWEAbAB0ANkf3B/hH3QAOwBtZmkAZwA7AACAAvtuAHMAOwCxZW8AZgA7AJJB8AHuHwAA8x9mADsAAMA12FfdAAFhAGsAvwX3HwABOwB2APwf/R/UYjsA2WphAHIAdABpAG4AdAA7AA1qAAFhAG8ADCBVIAABYwBzABEgUiCxAxogMCA4IEUgSCAAAFAgsgMiICUgJyAqICwgAAAuIDuAvQC9QDsAU2E7gLwAvEA7AFVhOwBZYTsAW2GzATQgAAA2IDsAVGE7AFZhtAI+IEEgAAAAAEMgO4C+AL5AOwBXYTsAXGE1ADsAWGG2AUwgAABOIDsAWmE7AF1hOAA7AF5hbAA7AERgdwBuADsAImNjAHIAOwAAwDXYu9yACEUAYQBiAGMAZABlAGYAZwBpAGoAbABuAG8AcgBzAHQAdgCCIIkgnyClILAgtCDwIPUg+iD/IAMhEiE4IRcDPiFSIZ4hAAE7AGwATQaHIDsAjGqAAWMAbQBwAJAglSCdIHUAdABlADsA9UFtAGEAAAE7AGQAnCDaHLNDOwCGanIAZQB2AGUAOwAfQQABaQB5AKogriByAGMAOwAdQTsAM0RvAHQAOwAhQQACOwBsAHEAcwA+BkIGvSDJIIABOwBxAHMAPgZMBsQgbABhAG4A9ABlBgACOwBjAGQAbABlBtIg1SDlIGMAOwCpam8AdAAAATsAbwDcIN0ggGoAATsAbADiIOMggmo7AIRqAAE7AGUA6iDtIADA2yIA/nMAOwCUanIAOwAAwDXYJN0AATsAZwBzBhsGbQBlAGwAOwA3YWMAeQA7AFNEAAI7AEUAYQBqAFoGDCEOIRAhOwCSajsApWo7AKRqAAJFAGEAZQBzABshHSEpITQhOwBpYnAAAAE7AHAAIyEkIYpqcgBvAHgAuwAkIQABOwBxAC4hLyGIagABOwBxAC4hGyFpAG0AOwDnYnAAZgA7AADANdhY3QABYwBpAEMhRiFyADsACmFtAIABOwBlAGwAawZOIVAhOwCOajsAkGoAgz4AOwBjAGQAbABxAHIA7gVgIWohbiFzIXkhAAFjAGkAZSFnITsAp2pyADsAempvAHQAOwDXYlAAYQByADsAlWl1AGUAcwB0ADsAfGqAAmEAZABlAGwAcwCEIWohkCFWBpsh8AGJIQAAjiFwAHIAbwD4AJ4gcgA7AHhpcQAAAWwAcQA/BpYhbABlAHMA8wCIIGkA7QBrBgABZQBuAKMhrSFyAHQAbgBlAHEAcQA7AADAaSIA/sUAqiEABUEAYQBiAGMAZQBmAGsAbwBzAHkAxCHHIfEh9SH6IRgiHSIvImgifSJyAPIAoAMAAmkAbABtAHIA0CHUIdch2yFyAHMA8ACEFGYAuwAkIGkAbAD0AKkGAAFkAHIA4CHkIWMAeQA7AEpEgAE7AGMAdwD0COsh7yFpAHIAOwBIaTsArWFhAHIAOwAPYWkAcgBjADsAJUGAAWEAbAByAAEiDiITInIAdABzAAABOwB1AAkiCiJlZmkAdAC7AAoibABpAHAAOwAmYGMAbwBuADsAuWJyADsAAMA12CXdcwAAAWUAdwAjIikiYQByAG8AdwA7ACVpYQByAG8AdwA7ACZpgAJhAG0AbwBwAHIAOiI+IkMiXiJjInIAcgA7AP9hdABoAHQAOwA7YmsAAAFsAHIASSJTImUAZgB0AGEAcgByAG8AdwA7AKlhaQBnAGgAdABhAHIAcgBvAHcAOwCqYWYAOwAAwDXYWd1iAGEAcgA7ABVggAFjAGwAdABvInQieCJyADsAAMA12L3cYQBzAOgA9CFyAG8AawA7ACdBAAFiAHAAgiKHInUAbABsADsAQ2BoAGUAbgC7AFsc4QqjIgAAqiIAALgixSLOIgAA1SLzIgAAAAD4IiIjZyNiI38jAACGI6ojtCNjAHUAdABlADuA7QDtQIABOwBpAHkAcQewIrUicgBjADuA7gDuQDsAOEQAAWMAeAC8Ir8ieQA7ADVEYwBsADuAoQChQAABZgByAJ8DySI7AADANdgm3XIAYQB2AGUAO4DsAOxAAAI7AGkAbgBvAD4H3SLpIu4iAAFpAG4A4iLmIm4AdAA7AAxqdAA7AC1iZgBpAG4AOwDcaXQAYQA7AClhbABpAGcAOwAzQYABYQBvAHAA/iIaIx0jgAFjAGcAdAAFIwgjFyNyADsAK0GAAWUAbABwAB8HDyMTI2kAbgDlAI4HYQByAPQAIAdoADsAMUFmADsAt2JlAGQAOwC1QYACOwBjAGYAbwB0APQELCMxIz0jQSNhAHIAZQA7AAVhaQBuAAABOwB0ADgjOSMeYmkAZQA7AN1pZABvAPQAGSOAAjsAYwBlAGwAcABXB0wjUCNbI2EjYQBsADsAumIAAWcAcgBVI1kjZQByAPMAYxXjAE0jYQByAGgAawA7ABdqcgBvAGQAOwA8agACYwBnAHAAdABvI3IjdiN7I3kAOwBRRG8AbgA7AC9BZgA7AADANdha3WEAOwC5Q3UAZQBzAHQAO4C/AL9AAAFjAGkAiiOPI3IAOwAAwDXYvtxuAIACOwBFAGQAcwB2APQEmyOdI6Ej8wQ7APlibwB0ADsA9WIAATsAdgCmI6cj9GI7APNiAAE7AGkAdweuI2wAZABlADsAKUHrAbgjAAC8I2MAeQA7AFZEbAA7gO8A70AAA2MAZgBtAG8AcwB1AMwj1yPcI+Ej5yP1IwABaQB5ANEj1SNyAGMAOwA1QTsAOURyADsAAMA12CfdYQB0AGgAOwA3QnAAZgA7AADANdhb3eMB7CMAAPEjcgA7AADANdi/3HIAYwB5ADsAWERrAGMAeQA7AFREAARhAGMAZgBnAGgAagBvAHMACyQWJCIkJyQtJDEkNSQ7JHAAcABhAAABOwB2ABMkFCS6QzsA8EMAAWUAeQAbJCAkZABpAGwAOwA3QTsAOkRyADsAAMA12CjdcgBlAGUAbgA7ADhBYwB5ADsARURjAHkAOwBcRHAAZgA7AADANdhc3WMAcgA7AADANdjA3IALQQBCAEUASABhAGIAYwBkAGUAZgBnAGgAagBsAG0AbgBvAHAAcgBzAHQAdQB2AHAkgSSGJI0kkSQOJT0lWiWAJU4mXiZlJnkmfSaaJrIm2CZdJ2gniyfAJwEoEiiAAWEAcgB0AHckeiR8JHIA8gDGCfIAlQNhAGkAbAA7ABtpYQByAHIAOwAOaQABOwBnAJQJiyQ7AItqYQByADsAYmljCaUkAACqJAAAsSQAAAAAAAAAAAAAtSS6JAAAxiTIJM0kAAD5JHUAdABlADsAOkFtAHAAdAB5AHYAOwC0aXIAYQDuAEwIYgBkAGEAOwC7Q2cAgAE7AGQAbACOCMEkwyQ7AJFp5QCOCDsAhWp1AG8AO4CrAKtAcgAABDsAYgBmAGgAbABwAHMAdACZCN4k5iTpJOsk7iTxJPUkAAE7AGYAnQjjJHMAOwAfaXMAOwAdaesAUiJwADsAq2FsADsAOWlpAG0AOwBzaWwAOwCiYYABOwBhAGUA/yQAJQQlq2ppAGwAOwAZaQABOwBzAAklCiWtajsAAMCtKgD+gAFhAGIAcgAVJRklHSVyAHIAOwAMaXIAawA7AHJnAAFhAGsAIiUsJWMAAAFlAGsAKCUqJTsAe0A7AFtAAAFlAHMAMSUzJTsAi2lsAAABZAB1ADklOyU7AI9pOwCNaQACYQBlAHUAeQBGJUslViVYJXIAbwBuADsAPkEAAWQAaQBQJVQlaQBsADsAPEHsALAI4gApJTsAO0QAAmMAcQByAHMAYyVmJW0lfSVhADsANml1AG8AAAE7AHIAGQ5GFwABZAB1AHIldyVoAGEAcgA7AGdpcwBoAGEAcgA7AEtpaAA7ALJhgAI7AGYAZwBxAHMAiyWMJYkJ8yX/JWRidACAAmEAaABsAHIAdACYJaQltyXCJeglcgByAG8AdwAAATsAdACZCKElYQDpAPYkYQByAHAAbwBvAG4AAAFkAHUAryW0JW8AdwBuALsAWgRwALsAZgllAGYAdABhAHIAcgBvAHcAcwA7AMdhaQBnAGgAdACAAWEAaABzAM0l1iXeJXIAcgBvAHcAAAE7AHMA9AinCGEAcgBwAG8AbwBuAPMAmA9xAHUAaQBnAGEAcgByAG8A9wDwIWgAcgBlAGUAdABpAG0AZQBzADsAy2KAATsAcQBzAIslkwn6JWwAYQBuAPQArAmAAjsAYwBkAGcAcwCsCQomDSYdJigmYwA7AKhqbwB0AAABOwBvABQmFSZ/agABOwByABomGyaBajsAg2oAATsAZQAiJiUmAMDaIgD+cwA7AJNqgAJhAGQAZQBnAHMAMyY5Jj0mSSZLJnAAcAByAG8A+ADGJG8AdAA7ANZicQAAAWcAcQBDJkUm9ACJCWcAdADyAIwk9ACbCWkA7QCyCYABaQBsAHIAVSbhCFomcwBoAHQAOwB8aTsAAMA12CndAAE7AEUAnAljJjsAkWphAWkmdiZyAAABZAB1ALIlbiYAATsAbABlCXMmOwBqaWwAawA7AIRlYwB5ADsAWUSAAjsAYQBjAGgAdABICogmiyaRJpYmcgDyAMElbwByAG4AZQDyAAgdYQByAGQAOwBraXIAaQA7APplAAFpAG8AnyakJmQAbwB0ADsAQEF1AHMAdAAAATsAYQCsJq0msGNjAGgAZQC7AK0mAAJFAGEAZQBzALsmvSbJJtQmOwBoYnAAAAE7AHAAwybEJolqcgBvAHgAuwDEJgABOwBxAM4mzyaHagABOwBxAM4muyZpAG0AOwDmYgAEYQBiAG4AbwBwAHQAdwB6AOkm9Cb3JhonLydBJ0cnUCcAAW4AcgDuJvEmZwA7AOxncgA7AP1hcgDrAMEIZwCAAWwAbQByAP8mDSc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MMcFDOwDxQ4ABZwBuAHMAlTH5MfwxaAB0AAADYQBoAGwAcgBzAHQApDGwMcIx2DHkMe4xcgByAG8AdwAAATsAdADcD60xYQDpAMgwYQByAHAAbwBvAG4AAAFkAHUAuzG/MW8AdwDuAH4xcAC7AJIQZQBmAHQAAAFhAGgAyjHQMXIAcgBvAHcA8wDqD2EAcgBwAG8AbwBuAPMAUQVpAGcAaAB0AGEAcgByAG8AdwBzADsAyWFxAHUAaQBnAGEAcgByAG8A9wDLMGgAcgBlAGUAdABpAG0AZQBzADsAzGJnADsA2kJpAG4AZwBkAG8AdABzAGUA8QAyH4ABYQBoAG0ADTIQMhMycgDyAOoPYQDyAFEFOwAPYG8AdQBzAHQAAAE7AGEAHjIfMrFjYwBoAGUAuwAfMm0AaQBkADsA7moAAmEAYgBwAHQAMjI9MkAyUjIAAW4AcgA3MjoyZwA7AO1ncgA7AP5hcgDrAAMQgAFhAGYAbABHMkoyTjJyADsAhmk7AADANdhj3XUAcwA7AC5qaQBtAGUAcwA7ADVqAAFhAHAAXTJnMnIAAAE7AGcAYzJkMilAdAA7AJRpbwBsAGkAbgB0ADsAEmphAHIA8gDjMQACYQBjAGgAcQB7MoAyvBCFMnEAdQBvADsAOmByADsAAMA12MfcAAFiAHUA+zCKMm8AAAE7AHIAFAITAoABaABpAHIAlzKbMqAycgBlAOUA+DFtAGUAcwA7AMpiaQAAAjsAZQBmAGwAqjJZECEYqzK5ZXQAcgBpADsAzmlsAHUAaABhAHIAOwBoaTsAHmFhDdUy2zLfMiwzODNxMwAAejOkMwAAAADsM/AzAAAoNEg0WjStNLE0yjTxNAAAFjYAAAAAMzZjAHUAdABlADsAW0FxAHUA7wC6JwAFOwBFAGEAYwBlAGkAbgBwAHMAeQDtEfMy9TL/MgIzCzMPMx8zJjMpMzsAtGrwAfoyAAD8MjsAuGpvAG4AOwBhQXUA5QD+EQABOwBkAPMRBzNpAGwAOwBfQXIAYwA7AF1BgAFFAGEAcwAWMxgzGzM7ALZqcAA7ALpqaQBtADsA6WJvAGwAaQBuAHQAOwATamkA7QAEEjsAQURvAHQAgAE7AGIAZQA0M0cdNTPFYjsAZmqAA0EAYQBjAG0AcwB0AHgARjNKM1czWzNeM2MzbTNyAHIAOwDYYXIAAAF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pY0RlY2ltYWwUTnVtZXJpY0hleBZOYW1lZEVudGl0eQxMZWdhY3kMU3RyaWN0FnN0YXJ0RW50aXR5InN0YXRlTnVtZXJpY1N0YXJ0JGFkZFRvTnVtZXJpY1Jlc3VsdB5zdGF0ZU51bWVyaWNIZXgmc3RhdGVOdW1lcmljRGVjaW1hbCBzdGF0ZU5hbWVkRW50aXR5OGVtaXROb3RUZXJtaW5hdGVkTmFtZWRFbnRpdHkmZW1pdE5hbWVkRW50aXR5RGF0YRRkZWNvZGVUcmVlCnN0YXRlEGNvbnN1bWVkDHJlc3VsdBJ0cmVlSW5kZXgMZXhjZXNzFGRlY29kZU1vZGUGcG93QnZhbGlkYXRlTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZQZtYXg4aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbERodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MNGh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnOGh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtIaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlOmh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvCFRZUEUMQUNUSU9OEGVuY29kaW5nEEVOQ09ESU5HDHByb21wdAxQUk9NUFQITkFNRQpDT0xPUghGQUNFCFNJWkUSbm8tcXVpcmtzEk5PX1FVSVJLUwxRVUlSS1McbGltaXRlZC1xdWlya3McTElNSVRFRF9RVUlSS1MMYXBwbGV0DmJnc291bmQGYmlnDmNhcHRpb24MY2VudGVyEGNvbGdyb3VwDGRpYWxvZwRlbQhmb250EGZyYW1lc2V0DGhncm91cApsYWJlbA5saXN0aW5nFG1hbGlnbm1hcmsObWFycXVlZQhtZW51DG1nbHlwaAhub2JyBHJiBnJ0YwhydWJ5CnNtYWxsCHNwYW4Mc3RyaWtlDHN0cm9uZwZzdWIGc3VwDlVOS05PV04QVEFHX09QRU4YRU5EX1RBR19PUEVOEFRBR19OQU1FKlJDREFUQV9MRVNTX1RIQU5fU0lHTiZSQ0RBVEFfRU5EX1RBR19PUEVOJlJDREFUQV9FTkRfVEFHX05BTUUsUkFXVEVYVF9MRVNTX1RIQU5fU0lHTihSQVdURVhUX0VORF9UQUdfT1BFTihSQVdURVhUX0VORF9UQUdfTkFNRTRTQ1JJUFRfREFUQV9MRVNTX1RIQU5fU0lHTjBTQ1JJUFRfREFUQV9FTkRfVEFHX09QRU4wU0NSSVBUX0RBVEFfRU5EX1RBR19OQU1FMFNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVDpTQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfREFTSCZTQ1JJUFRfREFUQV9FU0NBUEVEMFNDUklQVF9EQVRBX0VTQ0FQRURfREFTSDpTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSERTQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOQFNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19PUEVOQFNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19OQU1FPlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfU1RBUlQ0U0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ+U0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSEhTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIX0RBU0hSU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfTEVTU19USEFOX1NJR046U0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9FTkQqQkVGT1JFX0FUVFJJQlVURV9OQU1FHEFUVFJJQlVURV9OQU1FKEFGVEVSX0FUVFJJQlVURV9OQU1FLEJFRk9SRV9BVFRSSUJVVEVfVkFMVUU6QVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URUQ6QVRUUklCVVRFX1ZBTFVFX1NJTkdMRV9RVU9URUQwQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEOEFGVEVSX0FUVFJJQlVURV9WQUxVRV9RVU9URUQsU0VMRl9DTE9TSU5HX1NUQVJUX1RBRxpCT0dVU19DT01NRU5ULk1BUktVUF9ERUNMQVJBVElPTl9PUEVOGkNPTU1FTlRfU1RBUlQkQ09NTUVOVF9TVEFSVF9EQVNILENPTU1FTlRfTEVTU19USEFOX1NJR042Q09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HQENPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR19EQVNISkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR19EQVNIX0RBU0ggQ09NTUVOVF9FTkRfREFTSBZDT01NRU5UX0VORCBDT01NRU5UX0VORF9CQU5HJkJFRk9SRV9ET0NUWVBFX05BTUUYRE9DVFlQRV9OQU1FJEFGVEVSX0RPQ1RZUEVfTkFNRThBRlRFUl9ET0NUWVBFX1BVQkxJQ19LRVlXT1JEQEJFRk9SRV9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSTkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRE5ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ+QUZURVJfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUlpCRVRXRUVOX0RPQ1RZUEVfUFVCTElDX0FORF9TWVNURU1fSURFTlRJRklFUlM4QUZURVJfRE9DVFlQRV9TWVNURU1fS0VZV09SREBCRUZPUkVfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUk5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URURORE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEPkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVIaQk9HVVNfRE9DVFlQRSpDREFUQV9TRUNUSU9OX0JSQUNLRVQiQ0RBVEFfU0VDVElPTl9FTkQmQ0hBUkFDVEVSX1JFRkVSRU5DRTJOQU1FRF9DSEFSQUNURVJfUkVGRVJFTkNFJkFNQklHVU9VU19BTVBFUlNBTkQ2TlVNRVJJQ19DSEFSQUNURVJfUkVGRVJFTkNFSkhFWEFERU1JQ0FMX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfU1RBUlQ+SEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRTZERUNJTUFMX0NIQVJBQ1RFUl9SRUZFUkVOQ0U+TlVNRVJJQ19DSEFSQUNURVJfUkVGRVJFTkNFX0VORAxwYXVzZWQMaW5Mb29wGmluRm9yZWlnbk5vZGUgbGFzdFN0YXJ0VGFnTmFtZRZyZXR1cm5TdGF0ZRZjaGFyUmVmQ29kZSpjb25zdW1lZEFmdGVyU25hcHNob3QqY3VycmVudENoYXJhY3RlclRva2VuGGN1cnJlbnRUb2tlbhZjdXJyZW50QXR0chhwcmVwcm9jZXNzb3IeY3VycmVudExvY2F0aW9uNFBhcnNlciB3YXMgYWxyZWFkeSByZXN1bWVkCnRhZ0lEFnNlbGZDbG9zaW5nHGFja1NlbGZDbG9zaW5nEGxvY2F0aW9uFmZvcmNlUXVpcmtzEHB1YmxpY0lkEHN5c3RlbUlkCmNoYXJzGlVua25vd24gc3RhdGUEPCECIQYtLSECXQRdXQ5jdXJyZW50DHRhZ0lEcxBzdGFja1RvcBJ0bXBsQ291bnQYY3VycmVudFRhZ0lkDmVudHJpZXMQYm9va21hcmsGaWR4CnRva2VuCiN0ZXh0EiNkb2N1bWVudAhtb2RlJCNkb2N1bWVudC1mcmFnbWVudBhuYW1lc3BhY2VVUkkQI2NvbW1lbnQaI2RvY3VtZW50VHlwZQ5JTklUSUFMFkJFRk9SRV9IVE1MFkJFRk9SRV9IRUFEDklOX0hFQUQiSU5fSEVBRF9OT19TQ1JJUFQUQUZURVJfSEVBRA5JTl9CT0RZCFRFWFQQSU5fVEFCTEUaSU5fVEFCTEVfVEVYVBRJTl9DQVBUSU9OHklOX0NPTFVNTl9HUk9VUBpJTl9UQUJMRV9CT0RZDElOX1JPVw5JTl9DRUxMEklOX1NFTEVDVCRJTl9TRUxFQ1RfSU5fVEFCTEUWSU5fVEVNUExBVEUUQUZURVJfQk9EWRZJTl9GUkFNRVNFVBxBRlRFUl9GUkFNRVNFVCBBRlRFUl9BRlRFUl9CT0RZKEFGVEVSX0FGVEVSX0ZSQU1FU0VUHmZyYWdtZW50Q29udGV4dBpzY3JpcHRIYW5kbGVyDnN0b3BwZWQaaW5zZXJ0aW9uTW9kZSpvcmlnaW5hbEluc2VydGlvbk1vZGUWaGVhZEVsZW1lbnQWZm9ybUVsZW1lbnQgY3VycmVudE5vdEluSFRNTCx0bXBsSW5zZXJ0aW9uTW9kZVN0YWNrLHBlbmRpbmdDaGFyYWN0ZXJUb2tlbnNKaGFzTm9uV2hpdGVzcGFjZVBlbmRpbmdDaGFyYWN0ZXJUb2tlbhRmcmFtZXNldE9rLGZvc3RlclBhcmVudGluZ0VuYWJsZWQQZG9jdW1lbnQSdG9rZW5pemVyMGFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cyJmcmFnbWVudENvbnRleHRJRBhvcGVuRWxlbWVudHMYZG9jdW1lbnRtb2NrEHN0YXJ0VGFnGmJlZm9yZUVsZW1lbnQMZW5kVGFnCHhtbDoMeG1sbnM6DHhsaW5rOhQ8IURPQ1RZUEUgAicQIWRvY3R5cGUSIURPQ1RZUEUgECBQVUJMSUMgDiBTWVNURU0KU3BhY2UOTmV3TGluZQZUYWIQRm9ybUZlZWQcQ2FycmlhZ2VSZXR1cm4KU2xhc2gIWmVybwhOaW5lHkV4Y2xhbWF0aW9uTWFyawZBbXAWU2luZ2xlUXVvdGUWRG91YmxlUXVvdGUIRGFzaAhTZW1pBEVxGFF1ZXN0aW9ubWFyawxVcHBlckYMTG93ZXJGDExvd2VyWChPcGVuaW5nU3F1YXJlQnJhY2tldBpCZWZvcmVUYWdOYW1lEkluVGFnTmFtZSBJblNlbGZDbG9zaW5nVGFnKEJlZm9yZUNsb3NpbmdUYWdOYW1lIEluQ2xvc2luZ1RhZ05hbWUmQWZ0ZXJDbG9zaW5nVGFnTmFtZSZCZWZvcmVBdHRyaWJ1dGVOYW1lHkluQXR0cmlidXRlTmFtZSRBZnRlckF0dHJpYnV0ZU5hbWUoQmVmb3JlQXR0cmlidXRlVmFsdWUkSW5BdHRyaWJ1dGVWYWx1ZURxJEluQXR0cmlidXRlVmFsdWVTcSRJbkF0dHJpYnV0ZVZhbHVlTnEiQmVmb3JlRGVjbGFyYXRpb24aSW5EZWNsYXJhdGlvbi5JblByb2Nlc3NpbmdJbnN0cnVjdGlvbhpCZWZvcmVDb21tZW50GkNEQVRBU2VxdWVuY2UgSW5TcGVjaWFsQ29tbWVudBpJbkNvbW1lbnRMaWtlHEJlZm9yZVNwZWNpYWxTKFNwZWNpYWxTdGFydFNlcXVlbmNlGEluU3BlY2lhbFRhZxhCZWZvcmVFbnRpdHkmQmVmb3JlTnVtZXJpY0VudGl0eRpJbk5hbWVkRW50aXR5HkluTnVtZXJpY0VudGl0eRZJbkhleEVudGl0eQ5Ob1ZhbHVlEFVucXVvdGVkDFNpbmdsZQxEb3VibGUGY2JzDGJ1ZmZlchhzZWN0aW9uU3RhcnQSYmFzZVN0YXRlEmlzU3BlY2lhbA5ydW5uaW5nHmN1cnJlbnRTZXF1ZW5jZRpzZXF1ZW5jZUluZGV4EnRyaWVJbmRleBZ0cmllQ3VycmVudBhlbnRpdHlSZXN1bHQYZW50aXR5RXhjZXNzFGVudGl0eVRyaWUYb3BlblRhZ1N0YXJ0DnRhZ25hbWUUYXR0cmlibmFtZRZhdHRyaWJ2YWx1ZRxmb3JlaWduQ29udGV4dA5idWZmZXJzGGJ1ZmZlck9mZnNldBR3cml0ZUluZGV4CmVuZGVkImxvd2VyQ2FzZVRhZ05hbWVzElRva2VuaXplcihyZWNvZ25pemVTZWxmQ2xvc2luZxZvbmF0dHJpYnV0ZQxzZWFyY2gCPxxyZWNvZ25pemVDREFUQSgud3JpdGUoKSBhZnRlciBkb25lISQuZW5kKCkgYWZ0ZXIgZG9uZSEOZGlzcGxheRpjb250ZW50V2luZG93FGV4ZWNTY3JpcHQWcmVtb3ZlQ2hpbGQ2bmVlZHMgYSAnY29udGV4dCcgYXJndW1lbnQuXndpdGggKHRoaXMuX19jdHhfXyl7cmV0dXJuIGV2YWwodGhpcy5fX2NvZGVfXyl9EF9fY29kZV9fDl9fY3R4X18kcmV0dXJuIGV2YWwoY29kZSk7tAFKU09OUGF0aCBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoICJuZXciIChpdCBwcmV2ZW50cyByZXR1cm4gb2YgKHVud3JhcHBlZCkgc2NhbGFyIHZhbHVlcykQYXZvaWROZXcQTmV3RXJyb3IIanNvbghwYXRoFHJlc3VsdFR5cGUOZmxhdHRlbg5zYW5kYm94FnByZXZlbnRFdmFsHHBhcmVudFByb3BlcnR5Im90aGVyVHlwZUNhbGxiYWNrEmF1dG9zdGFydKABWW91IG11c3Qgc3VwcGx5IGFuIG90aGVyVHlwZUNhbGxiYWNrIGNhbGxiYWNrIG9wdGlvbiB3aXRoIHRoZSBAb3RoZXIoKSBvcGVyYXRvci4cY3VyclJlc3VsdFR5cGUeY3VyclByZXZlbnRFdmFsFmN1cnJTYW5kYm94KmN1cnJPdGhlclR5cGVDYWxsYmFja7YBWW91IG11c3Qgc3VwcGx5IGEgInBhdGgiIHByb3BlcnR5IHdoZW4gcHJvdmlkaW5nIGFuIG9iamVjdCBhcmd1bWVudCB0byBKU09OUGF0aC5ldmFsdWF0ZSgpLrYBWW91IG11c3Qgc3VwcGx5IGEgImpzb24iIHByb3BlcnR5IHdoZW4gcHJvdmlkaW5nIGFuIG9iamVjdCBhcmd1bWVudCB0byBKU09OUGF0aC5ldmFsdWF0ZSgpLiRfaGFzUGFyZW50U2VsZWN0b3IUaGFzQXJyRXhwciBpc1BhcmVudFNlbGVjdG9yBmFsbA5wb2ludGVyJlVua25vd24gcmVzdWx0IHR5cGUELi4CXgJ+EHByb3BlcnR5BD8oYEV2YWwgWz8oZXhwcildIHByZXZlbnRlZCBpbiBKU09OUGF0aCBleHByZXNzaW9uLgQkMV5FdmFsIFsoZXhwcildIHByZXZlbnRlZCBpbiBKU09OUGF0aCBleHByZXNzaW9uLgJADHNjYWxhchJub25GaW5pdGUKYXJyYXkKb3RoZXImVW5rbm93biB2YWx1ZSB0eXBlIAJgAiwiXyRfcGFyZW50UHJvcGVydHkSXyRfcGFyZW50Fl8kX3Byb3BlcnR5Dl8kX3Jvb3QIXyRfdgpAcGF0aA5fJF9wYXRoDnNjcmlwdDoMXyRfdiQxFGpzb25QYXRoOiACWwRbJwQnXQR+MAR+MQg7JCY7Bjt+OwIuCDsuLjsEWyMGJUAlDCUlQEAlJQomIzM5OxRoYXNPd25Qcm9wFGlzRnVuY3Rpb24QaXNTdHJpbmcQaXNPYmplY3QaZ2V0QXR0ckdldHRlcg5ncm91cEJ5DndpdGhvdXQMcmVwZWF0EmFzeW5jSXRlchBhc3luY0ZvchBfZW50cmllcw5fdmFsdWVzDl9hc3NpZ24qVGVtcGxhdGUgcmVuZGVyIGVycm9yImNhcHR1cmVTdGFja1RyYWNlCmNhdXNlDGxpbmVubwpjb2xubxZmaXJzdFVwZGF0ZQxVcGRhdGUYdW5rbm93biBwYXRoDiBbTGluZSASLCBDb2x1bW4gBAogIltvYmplY3QgRnVuY3Rpb25dHFtvYmplY3QgQXJyYXldHltvYmplY3QgU3RyaW5nXR5bb2JqZWN0IE9iamVjdF0oZ3JvdXBieTogYXR0cmlidXRlICIuIiByZXNvbHZlZCB0byB1bmRlZmluZWRQQ2Fubm90IHVzZSAiaW4iIG9wZXJhdG9yIHRvIHNlYXJjaCBmb3IgIiwiIGluIHVuZXhwZWN0ZWQgdHlwZXMuPnNldFRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWRCY2xlYXJUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkBmZ1bg5nZXRUaW1lQHByb2Nlc3MuYmluZGluZyBpcyBub3Qgc3VwcG9ydGVkPHByb2Nlc3MuY2hkaXIgaXMgbm90IHN1cHBvcnRlZApmbG9vckwibGlzdGVuZXIiIGFyZ3VtZW50IG11c3QgYmUgYSBmdW5jdGlvbhZuZXdMaXN0ZW5lchBsaXN0ZW5lchhfZXZlbnRzQ291bnQMd2FybmVkWFBvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgbGVhayBkZXRlY3RlZC4gggEgbGlzdGVuZXJzIGFkZGVkLiBVc2UgZW1pdHRlci5zZXRNYXhMaXN0ZW5lcnMoKSB0byBpbmNyZWFzZSBsaW1pdDZNYXhMaXN0ZW5lcnNFeGNlZWRlZFdhcm5pbmcOZW1pdHRlcgpjb3VudA5jb25zb2xlCHdhcm4GbG9nFl9fZW1pdEVycm9yCmVycm9yTCJuIiBhcmd1bWVudCBtdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyRlVuY2F1Z2h0LCB1bnNwZWNpZmllZCAiZXJyb3IiIGV2ZW50GmRvbWFpbkVtaXR0ZXIYZG9tYWluVGhyb3duTFVuY2F1Z2h0LCB1bnNwZWNpZmllZCAiZXJyb3IiIGV2ZW50LiAoDlJlZmxlY3QMc3VwZXJfCHRhc2sSd2F0ZXJmYWxsckZpcnN0IGFyZ3VtZW50IHRvIHdhdGVyZmFsbCBtdXN0IGJlIGFuIGFycmF5IG9mIGZ1bmN0aW9ucxJuZXh0VG9rZW4YX3BhcnNlU3RyaW5nEF9tYXRjaGVzHF9leHRyYWN0U3RyaW5nGl9leHRyYWN0VW50aWwQX2V4dHJhY3QgX2V4dHJhY3RNYXRjaGluZxpfZXh0cmFjdFJlZ2V4FGlzRmluaXNoZWQQZm9yd2FyZE4OZm9yd2FyZApiYWNrTghiYWNrFGN1cnJlbnRTdHIQcHJldmlvdXMGc3RyBmxlbg5pbl9jb2RlCHRhZ3MUYmxvY2tTdGFydAR7JRZCTE9DS19TVEFSVBBibG9ja0VuZAQlfRJCTE9DS19FTkQadmFyaWFibGVTdGFydAR7exxWQVJJQUJMRV9TVEFSVBZ2YXJpYWJsZUVuZAR9fRhWQVJJQUJMRV9FTkQYY29tbWVudFN0YXJ0BHsjFGNvbW1lbnRFbmQEI30UdHJpbUJsb2Nrcxhsc3RyaXBCbG9ja3MCDQJcBC8vBCoqAnsCfQJ8FDAxMjM0NTY3ODlAVW5leHBlY3RlZCB2YWx1ZSB3aGlsZSBwYXJzaW5nOiAydW5leHBlY3RlZCBlbmQgb2YgY29tbWVudFBleHBlY3RlZCBlbmQgb2YgY29tbWVudCwgZ290IGVuZCBvZiBmaWxlAgkWdG9QcmltaXRpdmVYQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4QdHlwZW5hbWUSYW5vbnltb3VzFGl0ZXJGaWVsZHMQYWRkQ2hpbGQKbmFtZXMMX19uYW1lFGF1dG9lc2NhcGUOcHJvY2VzcwxzdGRvdXQSc3RyaW5naWZ5CF0gPT4ScGVla1Rva2VuEnB1c2hUb2tlbghmYWlsCHNraXAMZXhwZWN0EnNraXBWYWx1ZRRza2lwU3ltYm9sKGFkdmFuY2VBZnRlckJsb2NrRW5kLmFkdmFuY2VBZnRlclZhcmlhYmxlRW5kEHBhcnNlRm9yFHBhcnNlTWFjcm8ScGFyc2VDYWxsIHBhcnNlV2l0aENvbnRleHQWcGFyc2VJbXBvcnQScGFyc2VGcm9tFHBhcnNlQmxvY2sYcGFyc2VFeHRlbmRzGHBhcnNlSW5jbHVkZQ5wYXJzZUlmEHBhcnNlU2V0FnBhcnNlU3dpdGNoHHBhcnNlU3RhdGVtZW50EHBhcnNlUmF3GHBhcnNlUG9zdGZpeB5wYXJzZUV4cHJlc3Npb24acGFyc2VJbmxpbmVJZg5wYXJzZU9yEHBhcnNlQW5kEHBhcnNlTm90DnBhcnNlSW4OcGFyc2VJcxhwYXJzZUNvbXBhcmUWcGFyc2VDb25jYXQQcGFyc2VBZGQQcGFyc2VTdWIQcGFyc2VNdWwQcGFyc2VEaXYacGFyc2VGbG9vckRpdhBwYXJzZU1vZBBwYXJzZVBvdxRwYXJzZVVuYXJ5GHBhcnNlUHJpbWFyeR5wYXJzZUZpbHRlck5hbWUecGFyc2VGaWx0ZXJBcmdzFnBhcnNlRmlsdGVyKHBhcnNlRmlsdGVyU3RhdGVtZW50HHBhcnNlQWdncmVnYXRlHHBhcnNlU2lnbmF0dXJlIHBhcnNlVW50aWxCbG9ja3MUcGFyc2VOb2RlcxZwYXJzZUFzUm9vdAx0b2tlbnMMcGVla2VkGmJyZWFrT25CbG9ja3MqZHJvcExlYWRpbmdXaGl0ZXNwYWNlFGV4dGVuc2lvbnNmcHVzaFRva2VuOiBjYW4gb25seSBwdXNoIG9uZSB0b2tlbiBvbiBiZXR3ZWVuIHJlYWRzEmV4cGVjdGVkIAwsIGdvdCAsdW5leHBlY3RlZCBlbmQgb2YgZmlsZZIBYWR2YW5jZUFmdGVyQmxvY2tFbmQ6IGV4cGVjdGVkIHN5bWJvbCB0b2tlbiBvciBleHBsaWNpdCBuYW1lIHRvIGJlIHBhc3NlZCxleHBlY3RlZCBibG9jayBlbmQgaW4gFCBzdGF0ZW1lbnQqZXhwZWN0ZWQgdmFyaWFibGUgZW5kDGVuZGZvcg5lbmRlYWNoDGVuZGFsbDpwYXJzZUZvcjogZXhwZWN0ZWQgZm9ye0FzeW5jfVJwYXJzZUZvcjogdmFyaWFibGUgbmFtZSBleHBlY3RlZCBmb3IgbG9vcFBwYXJzZUZvcjogZXhwZWN0ZWQgImluIiBrZXl3b3JkIGZvciBsb29wCm1hY3JvHGV4cGVjdGVkIG1hY3JvEGVuZG1hY3JvGmV4cGVjdGVkIGNhbGwOZW5kY2FsbFxwYXJzZUZyb206IGV4cGVjdGVkIGNvbnRleHQgYWZ0ZXIgd2l0aC93aXRob3V0OHBhcnNlSW1wb3J0OiBleHBlY3RlZCBpbXBvcnREcGFyc2VJbXBvcnQ6IGV4cGVjdGVkICJhcyIga2V5d29yZDBwYXJzZUZyb206IGV4cGVjdGVkIGZyb200cGFyc2VGcm9tOiBleHBlY3RlZCBpbXBvcnRYcGFyc2VGcm9tOiBFeHBlY3RlZCBhdCBsZWFzdCBvbmUgaW1wb3J0IG5hbWUycGFyc2VGcm9tOiBleHBlY3RlZCBjb21tYX5wYXJzZUZyb206IG5hbWVzIHN0YXJ0aW5nIHdpdGggYW4gdW5kZXJzY29yZSBjYW5ub3QgYmUgaW1wb3J0ZWQKYmxvY2s0cGFyc2VCbG9jazogZXhwZWN0ZWQgYmxvY2tEcGFyc2VCbG9jazogdmFyaWFibGUgbmFtZSBleHBlY3RlZBBlbmRibG9ja1xwYXJzZUJsb2NrOiBleHBlY3RlZCBlbmRibG9jaywgZ290IGVuZCBvZiBmaWxlNnBhcnNlVGVtcGxhdGVSZWY6IGV4cGVjdGVkIA5pbmNsdWRlLnBhcnNlSW5jbHVkZTogZXhwZWN0ZWQgDGlnbm9yZQ5taXNzaW5nCGVsaWYMZWxzZWlmDmlmQXN5bmNKcGFyc2VJZjogZXhwZWN0ZWQgaWYsIGVsaWYsIG9yIGVsc2VpZgplbmRpZm5wYXJzZUlmOiBleHBlY3RlZCBlbGlmLCBlbHNlLCBvciBlbmRpZiwgZ290IGVuZCBvZiBmaWxlLHBhcnNlU2V0OiBleHBlY3RlZCBzZXQMZW5kc2V0WHBhcnNlU2V0OiBleHBlY3RlZCA9IG9yIGJsb2NrIGVuZCBpbiBzZXQgdGFnEmVuZHN3aXRjaGZwYXJzZVN3aXRjaDogZXhwZWN0ZWQgInN3aXRjaCwiICJjYXNlIiBvciAiZGVmYXVsdCKAAXBhcnNlU3dpdGNoOiBleHBlY3RlZCAiY2FzZSwiICJkZWZhdWx0IiBvciAiZW5kc3dpdGNoLCIgZ290IEVPRi4idGFnIG5hbWUgZXhwZWN0ZWQQdmVyYmF0aW0mdW5rbm93biBibG9jayB0YWc6ICAoW1xzXFNdKj8peyVccyooGClccyooPz0lfSklfRppbnZhbGlkIGluZGV4RmV4cGVjdGVkIG5hbWUgYXMgbG9va3VwIHZhbHVlLCBnb3QgBmFuZAIlImludmFsaWQgYm9vbGVhbjogSGV4cGVjdGVkIGV4cHJlc3Npb24sIGdvdCBlbmQgb2YgZmlsZSR1bmV4cGVjdGVkIHRva2VuOiBKcGFyc2VGaWx0ZXJTdGF0ZW1lbnQ6IGV4cGVjdGVkIGZpbHRlchJlbmRmaWx0ZXJecGFyc2VBZ2dyZWdhdGU6IGV4cGVjdGVkIGNvbW1hIGFmdGVyIGV4cHJlc3Npb25acGFyc2VBZ2dyZWdhdGU6IGV4cGVjdGVkIGNvbG9uIGFmdGVyIGRpY3Qga2V5JGV4cGVjdGVkIGFyZ3VtZW50c15wYXJzZVNpZ25hdHVyZTogZXhwZWN0ZWQgY29tbWEgYWZ0ZXIgZXhwcmVzc2lvbj5VbmV4cGVjdGVkIHRva2VuIGF0IHRvcC1sZXZlbDogCmhvbGVfDGxvb2t1cBJ2YXJpYWJsZXMQdG9wTGV2ZWwaaXNvbGF0ZVdyaXRlcxRfX2tleXdvcmRzVmF0dGVtcHRlZCB0byBvdXRwdXQgbnVsbCBvciB1bmRlZmluZWQgdmFsdWUgVW5hYmxlIHRvIGNhbGwgYD5gLCB3aGljaCBpcyB1bmRlZmluZWQgb3IgZmFsc2V5NGAsIHdoaWNoIGlzIG5vdCBhIGZ1bmN0aW9uFl9wdXNoQnVmZmVyFF9wb3BCdWZmZXIKX2VtaXQSX2VtaXRMaW5lFF9lbWl0TGluZXMcX2VtaXRGdW5jQmVnaW4YX2VtaXRGdW5jRW5kHF9hZGRTY29wZUxldmVsIl9jbG9zZVNjb3BlTGV2ZWxzIl93aXRoU2NvcGVkU3ludGF4Gl9tYWtlQ2FsbGJhY2sMX3RtcGlkGl90ZW1wbGF0ZU5hbWUgX2NvbXBpbGVDaGlsZHJlbiJfY29tcGlsZUFnZ3JlZ2F0ZSRfY29tcGlsZUV4cHJlc3Npb24UYXNzZXJ0VHlwZShjb21waWxlQ2FsbEV4dGVuc2lvbjJjb21waWxlQ2FsbEV4dGVuc2lvbkFzeW5jHmNvbXBpbGVOb2RlTGlzdBxjb21waWxlTGl0ZXJhbBpjb21waWxlU3ltYm9sGGNvbXBpbGVHcm91cBhjb21waWxlQXJyYXkWY29tcGlsZURpY3QWY29tcGlsZVBhaXIeY29tcGlsZUlubGluZUlmEmNvbXBpbGVJbhJjb21waWxlSXMaX2Jpbk9wRW1pdHRlchJjb21waWxlT3IUY29tcGlsZUFuZBRjb21waWxlQWRkGmNvbXBpbGVDb25jYXQUY29tcGlsZVN1YhRjb21waWxlTXVsFGNvbXBpbGVEaXYUY29tcGlsZU1vZBRjb21waWxlTm90HmNvbXBpbGVGbG9vckRpdhRjb21waWxlUG93FGNvbXBpbGVOZWcUY29tcGlsZVBvcxxjb21waWxlQ29tcGFyZSBjb21waWxlTG9va3VwVmFsGF9nZXROb2RlTmFtZRxjb21waWxlRnVuQ2FsbBpjb21waWxlRmlsdGVyJGNvbXBpbGVGaWx0ZXJBc3luYyRjb21waWxlS2V5d29yZEFyZ3MUY29tcGlsZVNldBpjb21waWxlU3dpdGNoEmNvbXBpbGVJZhxjb21waWxlSWZBc3luYyJfZW1pdExvb3BCaW5kaW5ncxRjb21waWxlRm9yIl9jb21waWxlQXN5bmNMb29wIGNvbXBpbGVBc3luY0VhY2geY29tcGlsZUFzeW5jQWxsGl9jb21waWxlTWFjcm8YY29tcGlsZU1hY3JvGmNvbXBpbGVDYWxsZXImX2NvbXBpbGVHZXRUZW1wbGF0ZRpjb21waWxlSW1wb3J0ImNvbXBpbGVGcm9tSW1wb3J0GGNvbXBpbGVCbG9jaxhjb21waWxlU3VwZXIcY29tcGlsZUV4dGVuZHMcY29tcGlsZUluY2x1ZGUmY29tcGlsZVRlbXBsYXRlRGF0YRxjb21waWxlQ2FwdHVyZRpjb21waWxlT3V0cHV0FmNvbXBpbGVSb290DmdldENvZGUYdGVtcGxhdGVOYW1lDmNvZGVidWYMbGFzdElkFmJ1ZmZlclN0YWNrGl9zY29wZUNsb3NlcnMOaW5CbG9jayB0aHJvd09uVW5kZWZpbmVkCHZhciAMID0gIiI7EmZ1bmN0aW9uIEgoZW52LCBjb250ZXh0LCBmcmFtZSwgcnVudGltZSwgY2IpIHsadmFyIGxpbmVubyA9IBh2YXIgY29sbm8gPSAKdHJ5IHsSY2IobnVsbCwgBCk7Gn0gY2F0Y2ggKGUpIHtYICBjYihydW50aW1lLmhhbmRsZUVycm9yKGUsIGxpbmVubywgY29sbm8pKTsEfSkSZnVuY3Rpb24oDikgewppZigOKSB7IGNiKBgpOyByZXR1cm47IH0EdF80YXNzZXJ0VHlwZTogaW52YWxpZCB0eXBlOiA0ICs9IHJ1bnRpbWUuc3VwcHJlc3NWYWx1ZSgkZW52LmdldEV4dGVuc2lvbigiCCIpWyIGIl0ongFjb21waWxlQ2FsbEV4dGVuc2lvbjogYXJndW1lbnRzIG11c3QgYmUgYSBOb2RlTGlzdCwgdXNlIGBwYXJzZXIucGFyc2VTaWduYXR1cmVgBCwgMiAmJiBlbnYub3B0cy5hdXRvZXNjYXBlKTs0ICYmIGVudi5vcHRzLmF1dG9lc2NhcGUpOwocZnVuY3Rpb24oY2IpIHtuaWYoIWNiKSB7IGNiID0gZnVuY3Rpb24oZXJyKSB7IGlmKGVycikgeyB0aHJvdyBlcnI7IH19fQ5yZXR1cm4gBFxcBFwiBFxuBFxyBFx0DFx1MjAyOFxydW50aW1lLmNvbnRleHRPckZyYW1lTG9va3VwKGNvbnRleHQsIGZyYW1lLCAiBCIpXmNvbXBpbGVQYWlyOiBEaWN0IGtleXMgbXVzdCBiZSBzdHJpbmdzIG9yIG5hbWVzBCIiJnJ1bnRpbWUuaW5PcGVyYXRvcigaZW52LmdldFRlc3QoIiIiKS5jYWxsKGNvbnRleHQsIBQpID09PSB0cnVlCCB8fCAIICYmIAYgKyAQICsgIiIgKyAGIC0gBiAqIAYgLyAGICUgFk1hdGguZmxvb3IoEk1hdGgucG93KCxydW50aW1lLm1lbWJlckxvb2t1cCgoBCksKnRoZSByZXR1cm4gdmFsdWUgb2YgKARbIhwtLWV4cHJlc3Npb24tLRQobGluZW5vID0gFCwgY29sbm8gPSAicnVudGltZS5jYWxsV3JhcCgGLCAiGCIsIGNvbnRleHQsIARdKR5lbnYuZ2V0RmlsdGVyKCIwcnVudGltZS5tYWtlS2V5d29yZEFyZ3MoBiA9IBZmcmFtZS5zZXQoIgYiLCAQLCB0cnVlKTsoaWYoZnJhbWUudG9wTGV2ZWwpIHsqY29udGV4dC5zZXRWYXJpYWJsZSgiJmNvbnRleHQuYWRkRXhwb3J0KCIQc3dpdGNoICgGKSB7EGRlZmF1bHQ6CmNhc2UgDGJyZWFrOwZpZigQfQplbHNlIHsIY2IoKR4oZnVuY3Rpb24oY2IpIHsGfSkoCCArIDEMaW5kZXgwEHJldmluZGV4EnJldmluZGV4MAggLSAxDCA9PT0gMAogPT09ICBmcmFtZS5zZXQoImxvb3AuKmZyYW1lID0gZnJhbWUucHVzaCgpOzAgPSBydW50aW1lLmZyb21JdGVyYXRvcigmaWYocnVudGltZS5pc0FycmF5KAgpKSB7EC5sZW5ndGg7CGZvcigIPTA7IAYgPCASLmxlbmd0aDsgCisrKSB7EH0gZWxzZSB7DCA9IC0xOyAgPSBydW50aW1lLmtleXMoEikubGVuZ3RoOxBmb3IodmFyIAggaW4gBisrOwRdOwppZiAoIShmcmFtZSA9IGZyYW1lLnBvcCgpOwRdWwZdKTsQcnVudGltZS4WLCBmdW5jdGlvbigQLG5leHQpIHscLCAxLCBmdW5jdGlvbigGfSwgCCArPSAULmxlbmd0aCkgewpuZXh0KAxtYWNyb18Ma3dhcmdzKiA9IHJ1bnRpbWUubWFrZU1hY3JvKAZdLCAUZnVuY3Rpb24gKDB2YXIgY2FsbGVyRnJhbWUgPSBmcmFtZTsQZnJhbWUgPSAiZnJhbWUucHVzaCh0cnVlKTsobmV3IHJ1bnRpbWUuRnJhbWUoKTssa3dhcmdzID0ga3dhcmdzIHx8IHt9O3ppZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGt3YXJncywgImNhbGxlciIpKSB7SmZyYW1lLnNldCgiY2FsbGVyIiwga3dhcmdzLmNhbGxlcik7IH0YZnJhbWUucG9wKCk7GGNhbGxlckZyYW1lOzxyZXR1cm4gbmV3IHJ1bnRpbWUuU2FmZVN0cmluZygGfSk7BGxfCiIsIGxfXE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChrd2FyZ3MsICIWID8ga3dhcmdzWyIKIl0gOiAGIik7GihmdW5jdGlvbiAoKXsKO30pKCkgZW52LmdldFRlbXBsYXRlKBouZ2V0RXhwb3J0ZWQoPmNvbnRleHQuZ2V0VmFyaWFibGVzKCksIGZyYW1lLCBQaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKAoiKSkgezpjYihuZXcgRXJyb3IoImNhbm5vdCBpbXBvcnQgJxonIikpOyByZXR1cm47cihwYXJlbnRUZW1wbGF0ZSA/IGZ1bmN0aW9uKGUsIGMsIGYsIHIsIGNiKSB7IGNiKCIiKTsgfSA6ICRjb250ZXh0LmdldEJsb2NrKCI+KGVudiwgY29udGV4dCwgZnJhbWUsIHJ1bnRpbWUsIC5jb250ZXh0LmdldFN1cGVyKGVudiwgIgoiLCBiXyQsIGZyYW1lLCBydW50aW1lLCAoID0gcnVudGltZS5tYXJrU2FmZSgicGFyZW50VGVtcGxhdGUgPSA4IGluIHBhcmVudFRlbXBsYXRlLmJsb2NrcykgeyJjb250ZXh0LmFkZEJsb2NrKDAsIHBhcmVudFRlbXBsYXRlLmJsb2Nrc1sedmFyIHRhc2tzID0gW107FnRhc2tzLnB1c2goKGZ1bmN0aW9uKGNhbGxiYWNrKSB7HGNhbGxiYWNrKG51bGwsCik7fSk7OmZ1bmN0aW9uKHRlbXBsYXRlLCBjYWxsYmFjayl7XnRlbXBsYXRlLnJlbmRlcihjb250ZXh0LmdldFZhcmlhYmxlcygpLCBmcmFtZSwgNmZ1bmN0aW9uKHJlc3VsdCwgY2FsbGJhY2spexYgKz0gcmVzdWx0Ox5jYWxsYmFjayhudWxsKTtAZW52LndhdGVyZmFsbCh0YXNrcywgZnVuY3Rpb24oKXsaKGZ1bmN0aW9uKCkgeyB2YXIgb3V0cHV0ID0gIiI7HHJldHVybiBvdXRwdXQ7CH0pKCkscnVudGltZS5lbnN1cmVEZWZpbmVkKDAsIGVudi5vcHRzLmF1dG9lc2NhcGUpOwpOY29tcGlsZVJvb3Q6IHJvb3Qgbm9kZSBjYW4ndCBoYXZlIGZyYW1lNHZhciBwYXJlbnRUZW1wbGF0ZSA9IG51bGw7KGlmKHBhcmVudFRlbXBsYXRlKSB7gAFwYXJlbnRUZW1wbGF0ZS5yb290UmVuZGVyRnVuYyhlbnYsIGNvbnRleHQsIGZyYW1lLCBydW50aW1lLCBjYik7EHJldHVybiB7GnJvb3Q6IHJvb3QKfTsOQmxvY2sgIjIiIGRlZmluZWQgbW9yZSB0aGFuIG9uY2UuBGJfOnZhciBmcmFtZSA9IGZyYW1lLnB1c2godHJ1ZSk7PGNvbXBpbGU6IENhbm5vdCBjb21waWxlIG5vZGU6IBRwcmVwcm9jZXNzCmJhdGNoFGNhcGl0YWxpemUQZGljdHNvcnQIZHVtcAhzYWZlFmZvcmNlZXNjYXBlDmdyb3VwYnkMaW5kZW50CGxpc3QKbmwyYnIMcmFuZG9tFHJlamVjdGF0dHIUc2VsZWN0YXR0cgpyb3VuZAZzdW0cY2FzZV9zZW5zaXRpdmUSc3RyaXB0YWdzEHRydW5jYXRlEnVybGVuY29kZQx1cmxpemUSd29yZGNvdW50PGxpc3QgZmlsdGVyOiB0eXBlIG5vdCBpdGVyYWJsZQ5nZXRUZXN0TGRpY3Rzb3J0IGZpbHRlcjogdmFsIG11c3QgYmUgYW4gb2JqZWN0cmRpY3Rzb3J0IGZpbHRlcjogWW91IGNhbiBvbmx5IHNvcnQgYnkgZWl0aGVyIGtleSBvciB2YWx1ZQhvcHRzDjxiciAvPgoIY2VpbCJzb3J0OiBhdHRyaWJ1dGUgIgQKCgYuLi4eIHJlbD0ibm9mb2xsb3ciEjxhIGhyZWY9Igg8L2E+IDxhIGhyZWY9Imh0dHA6Ly8gPGEgaHJlZj0ibWFpbHRvOgQiPlJBcmd1bWVudHMgdG8gcGF0aC5yZXNvbHZlIG11c3QgYmUgc3RyaW5nc0xBcmd1bWVudHMgdG8gcGF0aC5qb2luIG11c3QgYmUgc3RyaW5ncxRpc1JlbGF0aXZlBC4vBi4uLxJnZXRTb3VyY2UWcHJlY29tcGlsZWTwAltudW5qdWNrc10gV2FybmluZzogeW91IHBhc3NlZCBhIGJvb2xlYW4gYXMgdGhlIHNlY29uZCBhcmd1bWVudCB0byBGaWxlU3lzdGVtTG9hZGVyLCBidXQgaXQgbm93IHRha2VzIGFuIG9wdGlvbnMgb2JqZWN0LiBTZWUgaHR0cDovL21vemlsbGEuZ2l0aHViLmlvL251bmp1Y2tzL2FwaS5odG1sI2ZpbGVzeXN0ZW1sb2FkZXIYcGF0aHNUb05hbWVzDm5vQ2FjaGUWc2VhcmNoUGF0aHMKd2F0Y2gUZXhpc3RzU3luYxhyZWFkRmlsZVN5bmMKdXRmLTgKcmFuZ2UMY3ljbGVyDGpvaW5lchhfaW5pdExvYWRlcnMeaW52YWxpZGF0ZUNhY2hlGGFkZEV4dGVuc2lvbh5yZW1vdmVFeHRlbnNpb24YZ2V0RXh0ZW5zaW9uGGhhc0V4dGVuc2lvbhJhZGRHbG9iYWwSZ2V0R2xvYmFsEmFkZEZpbHRlchJnZXRGaWx0ZXIOYWRkVGVzdB5yZXNvbHZlVGVtcGxhdGUWZ2V0VGVtcGxhdGUOZXhwcmVzcwxyZW5kZXIYcmVuZGVyU3RyaW5nBmRldg5sb2FkZXJzCnZpZXdzDC92aWV3cyZudW5qdWNrc1ByZWNvbXBpbGVkDmdsb2JhbHMOZmlsdGVycwp0ZXN0cxhhc3luY0ZpbHRlcnMcZXh0ZW5zaW9uc0xpc3QMdXBkYXRlJGdsb2JhbCBub3QgZm91bmQ6ICRmaWx0ZXIgbm90IGZvdW5kOiAgdGVzdCBub3QgZm91bmQ6IEJ0ZW1wbGF0ZSBuYW1lcyBtdXN0IGJlIGEgc3RyaW5nOiAMbG9hZGVyKHRlbXBsYXRlIG5vdCBmb3VuZDogCHZpZXcWbnVuanVja3NFbnYaZGVmYXVsdEVuZ2luZQZleHR8Tm8gZGVmYXVsdCBlbmdpbmUgd2FzIHNwZWNpZmllZCBhbmQgbm8gZXh0ZW5zaW9uIHdhcyBwcm92aWRlZC4Wc2V0VmFyaWFibGUYZ2V0VmFyaWFibGVzEGFkZEJsb2NrEGdldEJsb2NrEGdldFN1cGVyEmFkZEV4cG9ydBZnZXRFeHBvcnRlZAZjdHgMYmxvY2tzEGV4cG9ydGVkHnVua25vd24gYmxvY2sgIjxubyBzdXBlciBibG9jayBhdmFpbGFibGUgZm9yICIQX2NvbXBpbGUUX2dldEJsb2NrcxJ0bXBsUHJvcHMOdG1wbFN0ckBVbmV4cGVjdGVkIHRlbXBsYXRlIG9iamVjdCB0eXBlIDw7IGV4cGVjdGVkICdjb2RlJywgb3IgJ3N0cmluZyduc3JjIG11c3QgYmUgYSBzdHJpbmcgb3IgYW4gb2JqZWN0IGRlc2NyaWJpbmcgdGhlIHNvdXJjZRBjb21waWxlZBxyb290UmVuZGVyRnVuYwZ3ZWIQdXNlQ2FjaGUEbmQEcmQEJEwGdXRjBCR4DiRvZmZzZXQEJGQGVVRDFmdldEZ1bGxZZWFyEGdldE1vbnRoDmdldERhdGUMZ2V0RGF5EGdldEhvdXJzFGdldE1pbnV0ZXMUZ2V0U2Vjb25kcx5nZXRNaWxsaXNlY29uZHMSd2Vla1N0YXJ0CkhvdXJzDk1pbnV0ZXMOU2Vjb25kcxhNaWxsaXNlY29uZHMKTW9udGgQRnVsbFllYXIWaW52YWxpZERhdGUoWVlZWS1NTS1ERFRISDptbTpzc1oQbWVyaWRpZW0EWVkIWVlZWQRNTRZtb250aHNTaG9ydAZNTU0ITU1NTRZ3ZWVrZGF5c01pbhp3ZWVrZGF5c1Nob3J0BmRkZAhkZGRkBEhIBG1tBlNTUwRBTQRQTSJnZXRUaW1lem9uZU9mZnNldBZ0b1VUQ1N0cmluZyZzdGFydHNfd2l0aF9zbGFzaGVzImVuZHNfd2l0aF9zbGFzaGVzDHBsdXNlcx5xdWVyeV9zZXBhcmF0b3IUdXJpX3BhcnNlchBwcm90b2NvbBB1c2VySW5mbwhwb3J0DGFuY2hvciRoYXNBdXRob3JpdHlQcmVmaXgUaXNDb2xvblVyaQpxdWVyeSRnZXRRdWVyeVBhcmFtVmFsdWUmZ2V0UXVlcnlQYXJhbVZhbHVlcyBkZWxldGVRdWVyeVBhcmFtGmFkZFF1ZXJ5UGFyYW0aaGFzUXVlcnlQYXJhbSJyZXBsYWNlUXVlcnlQYXJhbQxzY2hlbWUMb3JpZ2luIGFkZFRyYWlsaW5nU2xhc2gGJTIwEHVyaVBhcnRzFHF1ZXJ5UGFpcnM0aGFzQXV0aG9yaXR5UHJlZml4VXNlclByZWYSYXV0aG9yaXR5CHVzZXISZGlyZWN0b3J5OCB0aGlzIGlzIG51bGwgb3Igbm90IGRlZmluZWQkIGlzIG5vdCBhIGZ1bmN0aW9uAiMmRXhwZWN0ZWQgYSBmdW5jdGlvbjJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fLF9fbG9kYXNoX3BsYWNlaG9sZGVyX18GYXJ5DmJpbmRLZXkKY3VycnkUY3VycnlSaWdodAhmbGlwDnBhcnRpYWwYcGFydGlhbFJpZ2h0CnJlYXJnJFtvYmplY3QgQXJndW1lbnRzXSBbb2JqZWN0IEJvb2xlYW5dGltvYmplY3QgRGF0ZV0cW29iamVjdCBFcnJvcl00W29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0YW29iamVjdCBNYXBdHltvYmplY3QgTnVtYmVyXSBbb2JqZWN0IFByb21pc2VdHltvYmplY3QgUmVnRXhwXRhbb2JqZWN0IFNldF0eW29iamVjdCBTeW1ib2xdIFtvYmplY3QgV2Vha01hcF0oW29iamVjdCBBcnJheUJ1ZmZlcl0iW29iamVjdCBEYXRhVmlld10qW29iamVjdCBGbG9hdDMyQXJyYXldKltvYmplY3QgRmxvYXQ2NEFycmF5XSRbb2JqZWN0IEludDhBcnJheV0mW29iamVjdCBJbnQxNkFycmF5XSZbb2JqZWN0IEludDMyQXJyYXldJltvYmplY3QgVWludDhBcnJheV00W29iamVjdCBVaW50OENsYW1wZWRBcnJheV0oW29iamVjdCBVaW50MTZBcnJheV0oW29iamVjdCBVaW50MzJBcnJheV0aXHVkODAwLVx1ZGZmZk5cdTAzMDAtXHUwMzZmXHVmZTIwLVx1ZmUyZlx1MjBkMC1cdTIwZmYaXHUyNzAwLVx1MjdiZiphLXpceGRmLVx4ZjZceGY4LVx4ZmYqQS1aXHhjMC1ceGQ2XHhkOC1ceGRlGFx1ZmUwZVx1ZmUwZogDXHhhY1x4YjFceGQ3XHhmN1x4MDAtXHgyZlx4M2EtXHg0MFx4NWItXHg2MFx4N2ItXHhiZlx1MjAwMC1cdTIwNmYgXHRceDBiXGZceGEwXHVmZWZmXG5cclx1MjAyOFx1MjAyOVx1MTY4MFx1MTgwZVx1MjAwMFx1MjAwMVx1MjAwMlx1MjAwM1x1MjAwNFx1MjAwNVx1MjAwNlx1MjAwN1x1MjAwOFx1MjAwOVx1MjAwYVx1MjAyZlx1MjA1Zlx1MzAwMARbXgZcZCsqXHVkODNjW1x1ZGZmYi1cdWRmZmZdOCg/Olx1ZDgzY1tcdWRkZTYtXHVkZGZmXSl7Mn08W1x1ZDgwMC1cdWRiZmZdW1x1ZGMwMC1cdWRmZmZdDFx1MjAwZAYoPzo7KAA/ADoAWwAnABkgXQAoAD8AOgBkAHwAbABsAHwAbQB8AHIAZQB8AHMAfAB0AHwAdgBlACkAKQA/ADsoAD8AOgBbACcAGSBdACgAPwA6AEQAfABMAEwAfABNAHwAUgBFAHwAUwB8AFQAfABWAEUAKQApAD8ABCk/BF0/BCkqCVsAJwAZIF0ABig/PQQpfFpcZCooPzoxU1R8Mk5EfDNSRHwoPyFbMTIzXSlcZFRIKSg/PVxifFthLXpfXSlaXGQqKD86MXN0fDJuZHwzcmR8KD8hWzEyM10pXGR0aCkoPz1cYnxbQS1aX10pDEJ1ZmZlcgp1MjAyOAMoIAp1MjAyOQMpIBZyZXR1cm4gdGhpcxppc0FycmF5QnVmZmVyDGlzRGF0ZQppc01hcBBpc1JlZ0V4cAppc1NldBhpc1R5cGVkQXJyYXkCwALBAsICwwLEAsUC4ALhAuIC4wLkAuUCxwLnAtAC8ALIAskCygLLAugC6QLqAusCzALNAs4CzwLsAu0C7gLvAtEC8QLSAtMC1ALVAtYC2ALyAvMC9AL1AvYC+ALZAtoC2wLcAvkC+gL7AvwC3QL9Av8CxgLmAt4C/gLfAwABAwIBAwQBAwEBAwMBAwUBAwYBAwgBAwoBAwwBAwcBAwkBAwsBAw0BAw4BAxABAw8BAxEBAxIBAxQBAxYBAxgBAxoBAxMBAxUBAxcBAxkBAxsBAxwBAx4BAyABAyIBAx0BAx8BAyEBAyMBAyQBAyYBAyUBAycBAygBAyoBAywBAy4BAzABAykBAysBAy0BAy8BAzEBAzQBAzUBAzYBAzcBAzgBAzkBAzsBAz0BAz8BA0EBAzoBAzwBAz4BA0ABA0IBA0MBA0UBA0cBA0oBA0QBA0YBA0gBA0sBA0wBA04BA1ABA00BA08BA1EBA1QBA1YBA1gBA1UBA1cBA1kBA1oBA1wBA14BA2ABA1sBA10BA18BA2EBA2IBA2QBA2YBA2MBA2UBA2cBA2gBA2oBA2wBA24BA3ABA3IBA2kBA2sBA20BA28BA3EBA3MBA3QBA3UBA3YBA3cBA3gBA3kBA3sBA30BA3oBA3wBA34BBElKAzIBBGlqAzMBA1IBA1MBBCduA0kBA38BDnJlcXVpcmUIdXRpbAp0eXBlcxBkZWZhdWx0cwhwaWNrJF9fY29yZS1qc19zaGFyZWRfXxBJRV9QUk9UTxxTeW1ib2woc3JjKV8xLgokMS4qPxZhbGxvY1Vuc2FmZShwcm9wZXJ0eUlzRW51bWVyYWJsZSRpc0NvbmNhdFNwcmVhZGFibGUWdG9TdHJpbmdUYWcqZ2V0T3duUHJvcGVydHlTeW1ib2xzEGlzQnVmZmVyFmludGVycG9sYXRlEHZhcmlhYmxlDmltcG9ydHMgdGVtcGxhdGVTZXR0aW5ncwpDYWNoZRBhc3NpZ25Jbhhhc3NpZ25JbldpdGgUYXNzaWduV2l0aA5iaW5kQWxsEmNhc3RBcnJheQpjaGFpbgpjaHVuaxBjb25mb3JtcxBjb25zdGFudA5jb3VudEJ5EGRlYm91bmNlGGRlZmF1bHRzRGVlcApkZWxheRRkaWZmZXJlbmNlGGRpZmZlcmVuY2VCeRxkaWZmZXJlbmNlV2l0aAhkcm9wEmRyb3BSaWdodBxkcm9wUmlnaHRXaGlsZRJkcm9wV2hpbGUIZmlsbA5mbGF0TWFwFmZsYXRNYXBEZWVwGGZsYXRNYXBEZXB0aBZmbGF0dGVuRGVlcBhmbGF0dGVuRGVwdGgIZmxvdxJmbG93UmlnaHQSZnJvbVBhaXJzEmZ1bmN0aW9ucxZmdW5jdGlvbnNJbg5pbml0aWFsGGludGVyc2VjdGlvbhxpbnRlcnNlY3Rpb25CeSBpbnRlcnNlY3Rpb25XaXRoDGludmVydBBpbnZlcnRCeRJpbnZva2VNYXAQaXRlcmF0ZWUKa2V5QnkMa2V5c0luDm1hcEtleXMSbWFwVmFsdWVzHm1hdGNoZXNQcm9wZXJ0eQ5tZW1vaXplEm1lcmdlV2l0aBBtZXRob2RPZgptaXhpbgxuZWdhdGUMbnRoQXJnCG9taXQMb21pdEJ5Dm9yZGVyQnkIb3ZlchBvdmVyQXJncxJvdmVyRXZlcnkQb3ZlclNvbWUScGFydGl0aW9uDHBpY2tCeRRwcm9wZXJ0eU9mCHB1bGwOcHVsbEFsbBJwdWxsQWxsQnkWcHVsbEFsbFdpdGgMcHVsbEF0FHJhbmdlUmlnaHQIcmVzdBRzYW1wbGVTaXplDnNldFdpdGgOc2h1ZmZsZQxzb3J0QnkUc29ydGVkVW5pcRhzb3J0ZWRVbmlxQnkMc3ByZWFkCHRhaWwIdGFrZRJ0YWtlUmlnaHQcdGFrZVJpZ2h0V2hpbGUSdGFrZVdoaWxlBnRhcBB0aHJvdHRsZQh0aHJ1DnRvUGFpcnMSdG9QYWlyc0luDHRvUGF0aBp0b1BsYWluT2JqZWN0CnVuYXJ5CnVuaW9uDnVuaW9uQnkSdW5pb25XaXRoCHVuaXEMdW5pcUJ5EHVuaXFXaXRoCnVuc2V0CnVuemlwEnVuemlwV2l0aBR1cGRhdGVXaXRoEHZhbHVlc0luCndvcmRzBnhvcgp4b3JCeQ54b3JXaXRoBnppcBJ6aXBPYmplY3QaemlwT2JqZWN0RGVlcA56aXBXaXRoEmVudHJpZXNJbhRleHRlbmRXaXRoDmF0dGVtcHQSY2FtZWxDYXNlCmNsYW1wEmNsb25lRGVlcBpjbG9uZURlZXBXaXRoEmNsb25lV2l0aBRjb25mb3Jtc1RvDGRlYnVychJkZWZhdWx0VG8MZGl2aWRlGGVzY2FwZVJlZ0V4cA5maW5kS2V5EGZpbmRMYXN0GmZpbmRMYXN0SW5kZXgWZmluZExhc3RLZXkYZm9yRWFjaFJpZ2h0CmZvckluFGZvckluUmlnaHQMZm9yT3duFmZvck93blJpZ2h0Bmd0ZQpoYXNJbhBpZGVudGl0eQ5pblJhbmdlDGludm9rZRZpc0FyZ3VtZW50cxZpc0FycmF5TGlrZSJpc0FycmF5TGlrZU9iamVjdBJpc0Jvb2xlYW4SaXNFbGVtZW50DmlzRW1wdHkOaXNFcXVhbBZpc0VxdWFsV2l0aA5pc0Vycm9yEmlzSW50ZWdlchBpc0xlbmd0aA5pc01hdGNoFmlzTWF0Y2hXaXRoEGlzTmF0aXZlCmlzTmlsDGlzTnVsbBBpc051bWJlchhpc09iamVjdExpa2UaaXNQbGFpbk9iamVjdBppc1NhZmVJbnRlZ2VyEGlzU3ltYm9sFmlzVW5kZWZpbmVkEmlzV2Vha01hcBJpc1dlYWtTZXQSa2ViYWJDYXNlEmxvd2VyQ2FzZRRsb3dlckZpcnN0Bmx0ZQptYXhCeQhtZWFuDG1lYW5CeQptaW5CeRJzdHViQXJyYXkSc3R1YkZhbHNlFHN0dWJPYmplY3QUc3R1YlN0cmluZxBzdHViVHJ1ZRBtdWx0aXBseRRub0NvbmZsaWN0CG5vb3AGcGFkDHBhZEVuZBBwYWRTdGFydBZyZWR1Y2VSaWdodAxzYW1wbGUSc25ha2VDYXNlFnNvcnRlZEluZGV4GnNvcnRlZEluZGV4Qnkac29ydGVkSW5kZXhPZh5zb3J0ZWRMYXN0SW5kZXgic29ydGVkTGFzdEluZGV4Qnkic29ydGVkTGFzdEluZGV4T2YSc3RhcnRDYXNlCnN1bUJ5CnRpbWVzEHRvRmluaXRlEnRvSW50ZWdlchB0b0xlbmd0aA50b0xvd2VyEHRvTnVtYmVyGnRvU2FmZUludGVnZXIOdG9VcHBlchJ0cmltU3RhcnQQdW5pcXVlSWQSdXBwZXJDYXNlFHVwcGVyRmlyc3QSZWFjaFJpZ2h0DjQuMTcuMjEOVkVSU0lPTg53cmFwcGVyCGZ1bmMMY29tbWl0CnBsYW50Fl9fd3JhcHBlZF9fFl9fYWN0aW9uc19fEl9fY2hhaW5fXxJfX2luZGV4X18UX192YWx1ZXNfXw5fX2Rpcl9fGF9fZmlsdGVyZWRfXxpfX2l0ZXJhdGVlc19fGl9fdGFrZUNvdW50X18SX192aWV3c19fEF9fZGF0YV9fFGJ5dGVMZW5ndGgUYnl0ZU9mZnNldAhoYXNoJFtvYmplY3QgVW5kZWZpbmVkXRpbb2JqZWN0IE51bGxdEGNyaXRlcmlhBC0wDnRoaXNBcmcIY29weRZwbGFjZWhvbGRlcgQmICZ7Ci8qIFt3cmFwcGVkIHdpdGggCl0gKi8KBF8uDmxlYWRpbmcObWF4V2FpdBB0cmFpbGluZwxjYW5jZWwKZmx1c2gqW29iamVjdCBET01FeGNlcHRpb25dLFtvYmplY3QgQXN5bmNGdW5jdGlvbl0cW29iamVjdCBQcm94eV1+VW5zdXBwb3J0ZWQgY29yZS1qcyB1c2UuIFRyeSBodHRwczovL25wbXMuaW8vc2VhcmNoP3E9cG9ueWZpbGwuIFtvYmplY3QgV2Vha1NldF0GMWUtEF9fcCArPSAnBHwkHC8vIyBzb3VyY2VVUkw9EnNvdXJjZVVSTC5sb2Rhc2gudGVtcGxhdGVTb3VyY2VzWwYnOwpkSW52YWxpZCBgdmFyaWFibGVgIG9wdGlvbiBwYXNzZWQgaW50byBgXy50ZW1wbGF0ZWAad2l0aCAob2JqKSB7CgYKfQoGJDE7CCkgewomb2JqIHx8IChvYmogPSB7fSk7CiJ2YXIgX190LCBfX3AgPSAnJyAsIF9fZSA9IF8uZXNjYXBlpAEsIF9faiA9IEFycmF5LnByb3RvdHlwZS5qb2luOwpmdW5jdGlvbiBwcmludCgpIHsgX19wICs9IF9fai5jYWxsKGFyZ3VtZW50cywgJycpIH0KBDsKGHJldHVybiBfX3AKfRAnICsKX19lKAopICsKJxQ7Cl9fcCArPSAnGicgKwooKF9fdCA9ICg0KSkgPT0gbnVsbCA/ICcnIDogX190KSArCicSc2VwYXJhdG9yEG9taXNzaW9uClJpZ2h0DGNyeXB0bxBtc0NyeXB0bwZsaWIKbWl4SW4IQmFzZRJXb3JkQXJyYXkGZW5jBkhleAxMYXRpbjEIVXRmOA5fYXBwZW5kEF9wcm9jZXNzHF9taW5CdWZmZXJTaXplLEJ1ZmZlcmVkQmxvY2tBbGdvcml0aG0GY2ZnEGZpbmFsaXplEmJsb2NrU2l6ZRpfY3JlYXRlSGVscGVyIl9jcmVhdGVIbWFjSGVscGVyDEhhc2hlcghhbGdvHmdldFJhbmRvbVZhbHVlcxZyYW5kb21CeXRlcxZyZWFkSW50MzJMRYYBTmF0aXZlIGNyeXB0byBtb2R1bGUgY291bGQgbm90IGJlIHVzZWQgdG8gZ2V0IHNlY3VyZSByYW5kb20gbnVtYmVyLgwkc3VwZXIQc2lnQnl0ZXMoTWFsZm9ybWVkIFVURi04IGRhdGEKX2RhdGEWX25EYXRhQnl0ZXMeX2RvUHJvY2Vzc0Jsb2NrEF9kb1Jlc2V0Fl9kb0ZpbmFsaXplCEhNQUMGeDY0CFdvcmQKdG9YMzIIaGlnaAZsb3cKVXRmMTYOVXRmMTZCRQ5VdGYxNkxFDEJhc2U2NIIBQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0IX21hcBZfcmV2ZXJzZU1hcBJCYXNlNjR1cmyAAUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LV8SX3NhZmVfbWFwBk1ENQ5IbWFjTUQ1BnNpbgpfaGFzaAhTSEExEEhtYWNTSEExDFNIQTI1NhRIbWFjU0hBMjU2CHNxcnQMU0hBMjI0FEhtYWNTSEEyMjQMU0hBNTEyFEhtYWNTSEE1MTIMU0hBMzg0FEhtYWNTSEEzODQIU0hBMxhvdXRwdXRMZW5ndGgQSG1hY1NIQTMMX3N0YXRlElJJUEVNRDE2MBpIbWFjUklQRU1EMTYwDl9oYXNoZXIKX29LZXkKX2lLZXkOa2V5U2l6ZQxoYXNoZXIUaXRlcmF0aW9ucw5jb21wdXRlDFBCS0RGMgxFdnBLREYMQ2lwaGVyHmNyZWF0ZUVuY3J5cHRvch5jcmVhdGVEZWNyeXB0b3IMaXZTaXplHl9FTkNfWEZPUk1fTU9ERR5fREVDX1hGT1JNX01PREUYU3RyZWFtQ2lwaGVyHkJsb2NrQ2lwaGVyTW9kZQZDQkMKdW5wYWQKUGtjczcOcGFkZGluZxZCbG9ja0NpcGhlchhDaXBoZXJQYXJhbXMOT3BlblNTTA5lbmNyeXB0DmRlY3J5cHQkU2VyaWFsaXphYmxlQ2lwaGVyBmtkZg5leGVjdXRlJlBhc3N3b3JkQmFzZWRDaXBoZXIUX3hmb3JtTW9kZQhfa2V5EkVuY3J5cHRvchJEZWNyeXB0b3IOX2NpcGhlcgZfaXYYcHJvY2Vzc0Jsb2NrFF9wcmV2QmxvY2sYZW5jcnlwdEJsb2NrGGRlY3J5cHRCbG9jawRpdgpfbW9kZRJfX2NyZWF0b3ISZm9ybWF0dGVyFGNpcGhlcnRleHQIc2FsdBJhbGdvcml0aG0GQ0ZCBkN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N3AOeAgmOCJ8CDd4DoAIJkAihAgGSCKICDZQIowINlgikAg2YCKUCDZoIpgINnAinAg2eCKgCDaAIqQINogiqAg2kCKsCAaYIrAINqAitAg2qCK4CDawIrwINrgiwAg2wCLECDbIIsgINtAizAgG2CLQCAbgItQIBugi2AgG8CLcCDb4IuAINwAi5Ag3CCLoCDcQIuwINxgi8Ag3gA70CCcgIvgIBygi/AgHMCMACAc4IwQIB0AjCAgHSCMMCAdQIxAIB1gjFAgHYCMYCAdoIxwIB3AjIAgHyAckCAd4IygIB4AjLAgHiCMwCAeQIzQIB5gjOAgHoCM8CAeoI0AIB7AjRAgHuCNICAfAI0wIB8gjUAgH0CNUCAfYI1gIB+AjXAgH6CNgCAfwI2QIB/gjaAgGACdsCAYIJ3AIBhAndAgGGCd4CAYgJ3wIBigngAgGMCeECDY4J4gIBkAnjAgGSCeQCAZQJ5QIBlgnmAgGYCecCAZoJ6AIBnAnpAgGeCeoCAaAJ6wIBognsAgGkCe0CAaYJ7gIBqAnvAgGqCfACAawJ8QIBrgnyAg2wCfMCDbIJ9AIBtAn1AgG2CfYCAbgJ9wIBugn4Ag28CfkCAb4J+gIBwAn7AgHCCfwCAcQJ/QIBxgn+AgHICf8CAcoJgAMBzAmBAwHOCYIDDeIDgwMJ0AmEAw3SCYUDDdQJhgMN1gmHAw3YCYgDDdoJiQMN3AmKAw3eCYsDDeAJjAMN4gmNAw3kA44DCeQJjwMB5gmQAwHoCZEDAeoJkgMB7AmTAwHuCZQDAfAJlQMB8gmWAwH0CZcDAfYJmAMB+AmZAwH6CZoDAfwJmwMN/gmcAwGACp0DAeYDngMJggqfAwGECqADAYYKoQMBiAqiAwGKCqMDAYwKpAMBjgqlAwGQCqYDAZIKpwMBlAqoAwGWCqkDAZgKqgMBmgqrAwGcCqwDAZ4KrQMBoAquAwGiCq8DAaQKsAMBpgqxAwGoCrIDAaoKswMBrAq0AwGuCrUDAbAKtgMBsgq3AwG0CrgDAbYKuQMBuAq6AwG6CrsDAbwKvAMBvgq9AwHACr4DAcIKvwMBxArAAwHGCsEDAcgKwgMBygrDAwHMCsQDAc4KxQMB0ArGAwHSCscDAdQKyAMB1grJAwHYCsoDAdoKywMB3ArMAwHeCs0DAeAKzgMB4grPAwHkCtADAeYK0QM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AAEE7AAAAQbEDAACq6AW+POoDvj1fJQBeJwC9QL1BMziqAAAAEbsiBKwDAAAmAgC7JgStAwAAJgIAvKAABLIDAAAmAgAmAwAhAQDuXygAXicAvUK9QzM4qgAAABG7JgStAwAAJgIAuzwErwMAACYCALs+BLADAAAmAgC8oAAEsgMAACYCACYEACEBAO5fKQA4qgAAABEEswMAAAS0AwAABLUDAAAEtgMAAAS3AwAABLgDAAAEuQMAAAS6AwAABLsDAAAEvAMAAAS9AwAABL4DAAAEvwMAAATAAwAABMEDAAAEwgMAAATDAwAABMQDAAAExQMAAATGAwAABMcDAAAEyAMAAATJAwAABMoDAAAEywMAAATMAwAABM0DAAAEzgMAAATPAwAABNADAAAE0QMAAATSAwAAJiAABNMDAABMIAAAgATUAwAATCEAAIAE1QMAAEwiAACABNYDAABMIwAAgATXAwAATCQAAIBC2AMAAL5EJAEAIQEAXyoAOKoAAAARBNkDAAAE2gMAAATbAwAABNwDAAAE3QMAAATeAwAABN8DAAAE4AMAAAThAwAABOIDAAAE1AMAAATjAwAABOQDAAAE5QMAAATmAwAABOcDAAAE6AMAAATpAwAABOoDAAAE6wMAAATsAwAABO0DAAAE7gMAAATvAwAABPADAAAE8QMAAATyAwAABPMDAAAE9AMAAAT1AwAABPYDAAAE9wMAACYgAAT4AwAATCAAAIAE+QMAAEwhAACABPoDAABMIgAAgAT7AwAATCMAAIAE/AMAAEwkAACABP0DAABMJQAAgAT+AwAATCYAAIAE/wMAAEwnAACABAAEAABMKAAAgAQBBAAATCkAAIAEAgQAAEwqAACABAMEAABMKwAAgAQEBAAATCwAAIAEBQQAAEwtAACABAYEAABMLgAAgAQHBAAATC8AAIAECAQAAEwwAACABAkEAABMMQAAgAQKBAAATDIAAIAECwQAAEwzAACABAwEAABMNAAAgAQNBAAATDUAAIAEDgQAAEw2AACABA8EAABMNwAAgAQQBAAATDgAAIAEEQQAAEw5AACABBIEAABMOgAAgELYAwAAvkUkAQAhAQBfKwA4qwAAABEEEwQAAAQUBAAABBUEAAAEFgQAAAQXBAAABBgEAAAEGQQAAAQaBAAAJggAIQEAXywAOKsAAAARBBsEAAA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ATVgEAABMWAQAAF64AEzhBAAAXrkATPIEAABeugBM8wQAAAMBAQAATfQEAABM9AQAAF67AExqAAAAXrwATPUEAABevQBM9gQAAF6+AEz3BAAAXr8ATPgEAABewABM+QQAAF7BAEz6BAAAXsIATPsEAAADAgEAAE38BAAATPwEAAADAwEAAE39BAAATP0EAAADBAEAAE3YAwAATNgDAAADBQEAAE1XBAAATFcEAABexABM/gQAAAMGAQAATS0CAABMLQIAAAMHAQAATXgEAABMeAQAAAMIAQAATWMAAABMYwAAAAMJAQAATesEAABM6wQAAAMKAQAATewEAABM7AQAAAMLAQAATe0EAABM7QQAAAMMAQAATUEAAABMQQAAAAMNAQAATf8EAABM/wQAAAMOAQAATVcAAABMVwAAAAMPAQAATQAFAABMAAUAAAMQAQAATbIEAABMsgQAAAMRAQAATWgAAABMaAAAAAMSAQAATQEFAABMAQUAACQBAF/FAAMUAQAATbIBAABfxwBeyAADFwEAAO1fygBeyAADGAEAAO1fywBezAADGgEAAO1fzQBezAADGwEAAO1fzgA4jwAAAEI9BAAACwdPAxwBAABNAgUAAEwCBQAAAx0BAABNAwUAAEwDBQAAAx4BAABNBAUAAEwEBQAAXsoATFQEAABeywBMVgQAAF7NAEwFBQAAXs4ATAYFAAADHwEAAE0HBQAATAcFAAADIAEAAE0IBQAATAgFAAADIQEAAE0JBQAATAkFAAADIgEAAE0KBQAATAoFAAADIwEAAE0LBQAATAsFAAADJAEAAE0MBQAATAwFAAADJQEAAE0NBQAATA0FAAADJgEAAE0OBQAATA4FAAADJwEAAE2/BAAATL8EAAADKAEAAE3ZAAAATNkAAAADKQEAAE03AAAATDcAAAADKgEAAE3hAAAATOEAAAADKwEAAE0PBQAATA8FAAAkAQBfzwA4jwAAAEI9BAAACwdPAy4BAABNEAUAAEwQBQAAJAEAX9IABBEFAABf0wACLwEAAAIwAQAAM1/UAAIxAQAAAjIBAAAzX9UAOI8AAABCPQQAAAsHTwMzAQAATRIFAABMEgUAAAM0AQAATRMFAABMEwUAACQBAF/WAAM1AQAATcIBAABg1wBBOwAAAAQUBQAAQ9YAAABe1wBBOwAAADiQAAAAQTsAAAB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AAEw9AACAZQYBQZIFAABMPgAAgGUGAUGTBQAATD8AAIBlBgFBlAUAAExAAACAZQYBQZkFAABMQQAAgGUGAUGbBQAATEIAAIBlBgFBnQUAAExDAACAZQYBQZ4FAABMRAAAgGUGAUGiBQAATEUAAIBlBgFBnwUAAExGAACAZQYBQaAFAABMRwAAgGUGAUGhBQAATEgAAIBlBgFBowUAAExJAACAZQYBQaQFAABMSgAAgGUGAUGlBQAATEsAAIBlBgFBpgUAAExMAACAZQYBQacFAABMTQAAgGUGAUGpBQAATE4AAIBlBgFBrAUAAExPAACAZQYBQa0FAABMUAAAgCEBAFEOXvoAQa4FAAA4qwAAABFlBgFBewUAAGUGAUF8BQAAZQYBQX0FAABlBgFBfgUAAGUGAUF/BQAAZQYBQTsFAAAmBgAhAQBRDl76AEGqBQAAOKsAAAARZQYBQaUFAABlBgFBXAUAAGUGAUFOBQAAJgMAIQEAUQ5e+gBBrwUAADirAAAAESEAAFEOXvoAQbAFAAA4qwAAABEhAABRDl76AEGxBQAAOKsAAAARIQAAUQ5fBwE4qwAAABFe/QBBmQUAAF79AEGRBQAAXv0AQa0FAABe/QBBbgUAAF79AEGDBQAAXv0AQYIFAABe/QBBigUAACYHACEBAF8JATiqAAAAEbyAALysICYCALyCALwaICYCALyDALySASYCALyEALweICYCALyFALwmICYCALyGALwgICYCALyHALwhICYCALyIALzGAiYCALyJALwwICYCALyKALxgASYCALyLALw5ICYCALyMALxSASYCALyOALx9ASYCALyRALwYICYCALySALwZICYCALyTALwcICYCALyUALwdICYCALyVALwiICYCALyWALwTICYCALyXALwUICYCALyYALzcAiYCALyZALwiISYCALyaALxhASYCALybALw6ICYCALycALxTASYCALyeALx+ASYCALyfALx4ASYCACYbACEBAF8KAQNeAQAAXv8AEekDDgtg/wDtlg4LXv8AQbIFAABMsgUAAF7/AEGzBQAATLMFAABe/wBBtAUAAEy0BQAAXv8AQbUFAABMtQUAAF7/AEGKBQAATIoFAABe/wBBtgUAAEy2BQAAXwsBYRYABmEXAAJoAQAAVu0AAAAAA2kBAABUHwUAAAADagEAAFS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NWAYAAExYBgAAAxYCAABUWQYAAAQDFwIAAFRaBgAABAMYAgAAVFsGAAAEAxkCAABUXAYAAAQDGgIAAE1dBgAATF0GAAADGwIAAE1eBgAATF4GAAADHAIAAE1fBgAATF8GAAADHQIAAE1gBgAATGAGAAADHgIAAE1hBgAATGEGAAADHwIAAE1iBgAATGIGAAADIAIAAE1jBgAATGMGAAADIQIAAE1kBgAATGQGAAADIgIAAE1lBgAATGUGAAADIwIAAE1mBgAATGYGAAADJAIAAE1nBgAATGcGAAADJQIAAE1oBgAATGgGAAADJgIAAE1pBgAATGkGAAADJwIAAE1qBgAATGoGAAADKAIAAE1rBgAATGsGAAADKQIAAFRsBgAABAMqAgAATW0GAABMbQYAAAMrAgAAVG4GAAAEXyIBBNkAAABfIwEEbwYAAF8kAQRwBgAAXyUBBHEGAAAEcgYAAARzBgAABHQGAAAEdQYAAAR2BgAABHcGAAAEeAYAAAR5BgAABHoGAAAEewYAAAR8BgAABH0GAAAEfgYAAAR/BgAABIAGAAAEgQYAAASCBgAABIMGAAAEhAYAAASFBgAABIYGAAAEhwYAAASIBgAABIkGAAAEigYAAASLBgAABIwGAAAEjQYAAASOBgAABI8GAAAEkAYAACYgAASRBgAATCAAAIAEkgYAAEwhAACABJMGAABMIgAAgASUBgAATCMAAIAElQYAAEwkAACABJYGAABMJQAAgASXBgAATCYAAIAEmAYAAEwnAACABJkGAABMKAAAgASaBgAATCkAAIAEmwYAAEwqAACABJwGAABMKwAAgASdBgAATCwAAIAEngYAAEwtAACABJ8GAABMLgAAgASgBgAATC8AAIAEoQYAAEwwAACABKIGAABMMQAAgASjBgAATDIAAIAEpAYAAEwzAACABKUGAABMNAAAgASmBgAATDUAAIAEpwYAAEw2AACAXyYBJgAAs2UmAVIEqAYAAFGPBKkGAABRjw5fJwE4qwAAABEEqgYAAASrBgAABNkAAAAmAwAhAQBfKAEErAYAAAStBgAAJgIAXykBJgAAs2UpAVIEqAYAAFGPBKkGAABRjw5fKgELBK4GAABMrwYAAASwBgAATLEGAABfLAEEsgYAAF8tAQTZAwAAXy4BOKoAAAARBNoDAAAE2wMAAATcAwAABN0DAAAE3gMAAATfAwAABOADAAAE4QMAAATiAwAABNQDAAAE4wMAAATkAwAABOUDAAAE5gMAAATnAwAABOgDAAAE6QMAAATqAwAABOsDAAAE7AMAAATtAwAABO4DAAAE7wMAAATwAwAABPEDAAAE8gMAAATzAwAABPQDAAAE9QMAAAT2AwAABPcDAAAE+AMAACYgAAT5AwAATCAAAIAE+gMAAEwhAACABPsDAABMIgAAgAT8AwAATCMAAIAE/QMAAEwkAACABP4DAABMJQAAgAT/AwAATCYAAIAEAAQAAEwnAACABAEEAABMKAAAgAQCBAAATCkAAIAEAwQAAEwqAACABAQEAABMKwAAgAQFBAAATCwAAIAEBgQAAEwtAACABAcEAABMLgAAgAQIBAAATC8AAIAECQQAAEwwAACABAoEAABMMQAAgAQLBAAATDIAAIAEDAQAAEwzAACABA0EAABMNAAAgAQOBAAATDUAAIAEDwQAAEw2AACABBAEAABMNwAAgAQRBAAATDgAAIAEEgQAAEw5AACAQtgDAAADLQIAACQBACEBAF8vATiqAAAAEQSzBgAACwS0BgAATLUGAAAEtgYAAEw2AAAAXvoAQa8FAABM8QQAACYCAAS3BgAACwS0BgAATLUGAAAEuAYAAEw2AAAAXvoAQa8FAABM8QQAACYCAAS5BgAACwS0BgAATLUGAAAEugYAAEw2AAAAXvoAQa8FAABM8QQAACYCAAS7BgAACwS0BgAATLUGAAAEvAYAAEw2AAAAXvoAQa8FAABM8QQAACYCAAS9BgAACwS0BgAATLUGAAAEvgYAAEw2AAAAXvoAQa8FAABM8QQAACYCAAS/BgAACwS0BgAATLUGAAAELAQAAEw2AAAAXvoAQa8FAABM8QQAACYCAATABgAACwS0BgAATLUGAAAEMwQAAEw2AAAAXvoAQa8FAABM8QQAACYCAATBBgAACwTiAAAATLUGAAAEHAQAAEw2AAAAXvoAQbAFAABM8QQAACYCAATCBgAACwTiAAAATLUGAAAENAQAAEw2AAAAXvoAQbAFAABM8QQAACYCAATDBgAACwTiAAAATLUGAAAExAYAAEw2AAAAXvoAQbAFAABM8QQAACYCAATFBgAAC79MtQYAAATFBgAATDYAAABe+gBBsQUAAEzxBAAAJgIABMYGAAALBMUGAAB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BADiPAAAAQmUAAADQBBgKAAALs5ZMQAAAACQDAA7QOKQAAAARBBoKAABCXQAAAL8kAQBC2AMAAL4AJAEAIQEAQxYAAAAppAMBAA5DBgEAAQABAwAACgHqAwABAM9CtAQAALMlAQCkAwEADkMGAQACAAIGAAFEAuoDAAEA7gMAAQA4jwAAAEJlAAAA0AQYCgAAC7OWTEAAAAAkAwAO0DikAAAAEQQbCgAAQl0AAAC/JAEAQtgDAAC+ACQBACEBAEMWAAAAKaQDAQAOQwYBAAEAAQMAAAoB6gMAAQDPQrQEAACzJQEApAMBAA5DBgEAAgMCHwAD4AIF6gMAAQDuAwABQPADAAAA8gMAAUD0AwACQL4AyTiPAAAAQmUAAADQBBgKAAALs5ZMQAAAACQDAA7Q0AYVQy4FAABDLQUAADiqAAAAEbMB/f8AACYCALyAALysICYCALyCALwaICYCALyDALySASYCALyEALweICYCALyFALwmICYCALyGALwgICYCALyHALwhICYCALyIALzGAiYCALyJALwwICYCALyKALxgASYCALyLALw5ICYCALyMALxSASYCALyOALx9ASYCALyRALwYICYCALySALwZICYCALyTALwcICYCALyUALwdICYCALyVALwiICYCALyWALwTICYCALyXALwUICYCALyYALzcAiYCALyZALwiISYCALyaALxhASYCALybALw6ICYCALycALxTASYCALyeALx+ASYCALyfALx4ASYCACYcACEBAMjQBziTAAAAQS4FAADLqugEw+oDvgFDLgUAANDFQy0FAADQvgJDFgAAACmkAwEADkMGAfQDAQEBBAEAOALqAwABAO4DAAAA8gMBAQEA2AAAz6QR6AkOzwH/3wAApBHpCQ4B//8QAM+j6AcB/f8AACgH20JBAAAAzyQBAMuq6APDKM8opAMBAA5DBgEAAQEBBQAAUQLqAwABAO4DAAAAv8cB//8AAM+jEeg0Ds8BAAABAJ7TwziTAAAAQiMJAADPuwqivP8DrQEA2AAAryQBAJ3HAQDcAAC8/wPPra/XDsM4kwAAAEIjCQAAzyQBAJ0opAMBAA5DBgEAAQABAwIADAHqAwABAO4DAQP0AwIB20EuBQAA3M/tIwEApAMBAA5DBgEAAhECDwQUiQQT6gMAAQDuAwABAPADAABA8gMAAUD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6XC9cLyk/KCg/OigoW146QFwvXSopKD86OihbXjpAXC9dKikpPyk/QCk/KFxbWzAtOWEtZkEtRjouXStcXXxbXjpcLz8jXSopKD86OihcZCt8KD89OikpKT8oOik/KSgoKCg/OltePyNdKD8hW14/I1wvXSpcLltePyNcLy5dKyg/Ols/I118JCkpKSpcLz8pPyhbXj8jXC9dKikpKD86XD8oW14jXSopKT8oPzojKC4qKSk/KQeADAAPAPkCAAAIBgAAAAQH9f///wsABQ0BAQmCAAAAGE0AAAAcEAAAAAEAAAD///9/AQAAABUDAAAAOQA7AD8AQQD//woBOgAcFAAAAAAAAAD///9/AQAAABUEAAAALgAwADkAOwA/AEEA//8KAUAACgsBHBgAAAABAAAA////fwEAAAAVBQAAACIAJAAtADAAOQA7AD4AQAD//woMAQE6ABwHAAAAAAAAAAEAAAACAAAAAS8AAS8ACgsCDQMFCWwAAAANAwUJYQAAAAsDCwQcFAAAAAAAAAD///9/AQAAABUEAAAALgAwADkAOwA/AEEA//8KDAQNBQUJLAAAAAE6AAsFHBQAAAAAAAAA////fwEAAAAVBAAAAC4AMAA5ADsAPwBBAP//CgwFDAMBQAALBgkwAAAAAVsAHBQAAAABAAAA////fwEAAAAVBAAuAC4AMAA6AEEARgBhAGYACgFdAAcpAAAAHBgAAAAAAAAA////fwEAAAAVBQAAACIAJAAuADAAOQA7AD4AQAD//woMBg0HBwkzAAAAAToACwcJHgAAABwIAAAAAQAAAP///38BAAAAFQEAMAA5AAoHCQAAABcEAAAAAToACgwHDQgICQcAAAALCAE6AAwIDAILCQsKDQsLCZsAAAALCwl9AAAAFQMAAAAiACQAPgBAAP//GGQAAAAcFAAAAAAAAAD///9/AQAAABUEAAAAIgAkAC4AMAA+AEAA//8KAS4AHBQAAAABAAAA////fwEAAAAVBAAAACIAJAAtADAAPgBAAP//CgkQAAAAFQIAIwAjAD8APwAHAQAAAAYKB37///8cBAAAAAAAAAABAAAAAQAAAAEvAAoMCwsMHBQAAAAAAAAA////fwEAAAAVBAAAACIAJAAuADAAPgBAAP//CgwMDAoNDQ0JJAAAAAE/AAsNHAwAAAAAAAAA////fwEAAAA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AAExdDwAABAkBAABMXg8AAAQJAQAATF8PAAAE/QAAAExgDwAABP0AAABMYQ8AAAT9AAAATGIPAAAEDQEAAExjDwAABA0BAABMZA8AAAQNAQAATGUPAAAE+QAAAExmDwAABPkAAABMZw8AAAT5AAAATGgPAAAEBAEAAExpDwAABAQBAABMag8AAAQEAQAATGsPAAAEBAEAAExsDwAABPsAAABMbQ8AAAT7AAAATG4PAAAE+wAAAExvDwAABPsAAABMcA8AAATmAAAATHEPAAAE5gAAAExyDwAABOYAAABMcw8AAAT3AAAATHQPAAAE9wAAAEx1DwAABPcAAABMdg8AAAQTAQAATHcPAAAEEwEAAEx4DwAABBMBAABMeQ8AAAQTAQAATHoPAAAEEwEAAEx7DwAABBMBAABMfA8AAAT/AAAATH0PAAAE/wAAAEx+DwAABP8AAABMfw8AAAT/AAAATIAPAAAE/wAAAEyBDwAABP8AAABMgg8AAAQaAQAATIMPAAAE6wAAAEyEDwAABBgBAABMhQ8AAATqAAAATIYPAAAEGAEAAEyHDwAABCABAABMiA8AAAQgAQAATIkPAAAEIAEAAEyKDwAABB4BAABMiw8AAAQeAQAATIwPAAAEHgEAAEyNDwAABI4PAABMjw8AAASQDwAATJEPAAAEPQEAAEySDwAABCkBAABMkw8AAASUDwAATJUPAAAE+wAAAEyWDwAA7cGQwIYLBK0DAABMYwkAAASvAwAATFkIAAAEsAMAAExaCAAABKwDAABM1AgAAAS8CwAATBwLAADtwZHAhgsEYwkAAEytAwAABFkIAABMrwMAAARaCAAATLADAAAE1AgAAEysAwAABBwLAABMvAsAAO3Bm75n7MGcwGnoHcBpwJwVQxkKAADAnEPVAAAAwFTAnBVD1QAAACnAaMCcFUPVAAAAKaQDAQAG////////P0MGAADg////70EHGlxiX19wIFwrPSAnJzsHbAEBAC8AAAAIBgAAAAQH9f///wsAEQFfAAFfAAFwAAEgAAErAAE9AAEgAAEnAAEnAAE7AAwACgciXGIoX19wIFwrPSkgJycgXCsHegECADYAAAAIBgAAAAQH9f///wsAEQsBAV8AAV8AAXAAASAAASsAAT0ADAEBIAABJwABJwABIAABKwAMAAoHOChfX2VcKC4qP1wpfFxiX190XCkpIFwrXG4nJzsHvAEBAgBXAAAACAYAAAAEB/X///8LAAsBCR8AAAABXwABXwABZQABKAAIBgAAAAMH9f///wEpAAcNAAAAEQFfAAFfAAF0AAEpAAwBASAAASsAAQoAAScAAScAATsADAAKBzAmKD86YW1wfGx0fGd0fHF1b3R8IzM5KTsH3gEBAQBoAAAACAYAAAAEB/X///8LAAEmAAlEAAAACS4AAAAJHgAAAAkOAAAAAWEAAW0AAXAABwYAAAABbAABdAAHBgAAAAFnAAF0AAcMAAAAAXEAAXUAAW8AAXQABwkAAAABIwABMwABOQABOwAMAAoHDlsmPD4iJ10HVAEBACMAAAAIBgAAAAQH9f///wsAFQQAIgAiACYAJwA8ADwAPgA+AAwACgcePCUtKFtcc1xTXSs/KSU+B2wBAgAvAAAACAYAAAAEB/X///8LAAE8AAElAAEtAAsBFQEAAAD//wn0////DAEBJQABPgAMAAoHHDwlKFtcc1xTXSs/KSU+B2YBAgAsAAAACAYAAAAEB/X///8LAAE8AAElAAsBFQEAAAD//wn0////DAEBJQABPgAMAAoHHjwlPShbXHNcU10rPyklPgdsAQIALwAAAAgGAAAABAf1////CwABPAABJQABPQALARUBAAAA//8J9P///wwBASUAAT4ADAAKB2BcLnxcWyg/OlteW1xdXSp8KFsiJ10pKD86KD8hXDEpW15cXF18XFwuKSo/XDEpXF0HogIAAgCKAAAACAYAAAAEB/X///8LAAkIAAAAAS4AB20AAAABWwAJJgAAABwQAAAAAAAAAP///38BAAAAFQMAAABaAFwAXABeAP//Cgc8AAAACwEVAgAiACIAJwAnAAwBCCYAAAAJGAAAABgDAAAAEwEKFQIAAABbAF0A//8HBAAAAAFcAAMH1f///xMBAV0ADAAKBwpeXHcqJAd8AAEANwAAAAgGAAAABAf1////CwAFHBQAAAAAAAAA////fwEAAAAVBAAwADkAQQBaAF8AXwBhAHoACgYMAAoHvgFbXi5bXF1dK3xcWyg/OigtP1xkKyg/OlwuXGQrKT8pfChbIiddKSgoPzooPyFcMilbXlxcXXxcXC4pKj8pXDIpXF18KD89KD86XC58XFtcXSkoPzpcLnxcW1xdfCQpKQfUBAEEACMBAAAIBgAAAAQH9f///wsACdcAAAAJKgAAABwUAAAAAQAAAP///38BAAAAFQQAAAAtAC8AWgBcAFwAXgD//woHowAAAAFbAAlYAAAACwEcBAAAAAAAAAABAAAAAQAAAAEtAAocCAAAAAEAAAD///9/AQAAABUBADAAOQAKCRwAAAABLgAcCAAAAAEAAAD///9/AQAAABUBADAAOQAKDAEHQAAAAAsCFQIAIgAiACcAJwAMAgsDCCYAAAAJGAAAABgDAAAAEwIKFQIAAABbAF0A//8HBAAAAAFcAAMH1f///wwDEwIBXQAHNwAAABcyAAAACQgAAAABLgAHBgAAAAFbAAFdAAkYAAAACQgAAAABLgAHBgAAAAFbAAFdAAcBAAAABgoMAAoHJFtcXF4kLiorPygpW1xde318XQdkAQEAKwAAAAgGAAAABAf1////CwAVBgAkACQAKAArAC4ALgA/AD8AWwBeAHsAfQAMAAoHCF5ccysHqgEAAQBOAAAACAYAAAAEB/X///8LAAUcLAAAAAEAAAD///9/AQAAABUKAAkADQAgACAAoACgAIAWgBYAIAogKCApIC8gLyBfIF8gADAAMP/+//4KDAAKBwRccweEAQABADsAAAAIBgAAAAQH9f///wsAFQoACQANACAAIACgAKAAgBaAFgAgCiAoICkgLyAvIF8gXyAAMAAw//7//gwACgdSXHsoPzpcblwvXCogXFt3cmFwcGVkIHdpdGggLitcXSBcKlwvKT9cbj8HkgIAAQCCAAAACAYAAAAEB/X///8LAAF7AAlVAAAAAQoAAS8AASoAASAAAVsAAXcAAXIAAWEAAXAAAXAAAWUAAWQAASAAAXcAAWkAAXQAAWgAASAAHAIAAAABAAAA////fwEAAAADCgFdAAEgAAEqAAEvABwEAAAAAAAAAAEAAAABAAAAAQoACgwACgdCXHtcblwvXCogXFt3cmFwcGVkIHdpdGggKC4rKVxdIFwqB+ABAAIAaQAAAAgGAAAABAf1////CwABewABCgABLwABKgABIAABWwABdwABcgABYQABcAABcAABZQABZAABIAABdwABaQABdAABaAABIAALARwCAAAAAQAAAP///38BAAAAAwoMAQFdAAEgAAEqAAwACgcKLD8gJiAHagABAC4AAAAIBgAAAAQH9f///wsAHAQAAAAAAAAAAQAAAAEAAAABLAAKASAAASYAASAADAAKB1BbXlx4MDAtXHgyZlx4M2EtXHg0MFx4NWItXHg2MFx4N2ItXHg3Zl0rB3gBAQA1AAAACAYAAAAEB/X///8LABwUAAAAAQAAAP///38BAAAAFQQAMAA5AEEAWgBhAHoAgAD//woMAAoHIFsoKT0se31cW1xdXC9cc10HxAEAAQBbAAAACAYAAAAEB/X///8LABUSAAkADQAgACAAKAApACwALAAvAC8APQA9AFsAWwBdAF0AewB7AH0AfQCgAKAAgBaAFgAgCiAoICkgLyAvIF8gXyAAMAAw//7//gwACgcOXFwoXFwpPwdSAQIAIgAAAAgGAAAABAf1////CwABXAANAQEJBwAAAAsBAVwADAEMAAoHPFwkXHsoW15cXH1dKig/OlxcLlteXFx9XSopKilcfQfoAQECAG0AAAAIBgAAAAQH9f///wsAASQAAXsACwEcEAAAAAAAAAD///9/AQAAABUDAAAAWwBdAHwAfgD//woJKgAAAAFcAAMcEAAAAAAAAAD///9/AQAAABUDAAAAWwBdAHwAfgD//woH0f///wwBAX0ADAAKBwhcdyokB3oAAQA2AAAACAYAAAAEB/X///8LABwUAAAAAAAAAP///38BAAAAFQQAMAA5AEEAWgBfAF8AYQB6AAoGDAAKByJeWy0rXTB4WzAtOWEtZl0rJAeWAQIBAEQAAAAIBgAAAAQH9f///wsABRUCACsAKwAtAC0AATAAAVgAHBAAAAABAAAA////fwEAAAAVAwAwADkAQQBGAGEAZgAKBgwACgcSXjBiWzAxXSskB3ACAQAxAAAACAYAAAAEB/X///8LAAUBMAABQgAcCAAAAAEAAAD///9/AQAAABUBADAAMQAKBgwACgc2Xlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kB7YBAAEAVAAAAAgGAAAABAf1////CwAFAVsAAW8AAWIAAWoAAWUAAWMAAXQAASAAAwn6////AUMAAW8AAW4AAXMAAXQAAXIAAXUAAWMAAXQAAW8AAXIAAV0ABgwACgcUXjBvWzAtN10rJAdwAgEAMQAAAAgGAAAABAf1////CwAFATAAAU8AHAgAAAABAAAA////fwEAAAAVAQAwADcACgYMAAoHIF4oPzowfFsxLTldXGQqKSQHjAEAAQA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sAACAuzVMLQAAgLstTC4AAIC7JUwvAACAux1MMAAAgLsVTDEAAIC7DUwyAACAuEwzAACAuxxMNAAAgLsUTDUAAIC7DEw2AACAt0w3AACAwQS7DrsRuwu7GLS4trscuw+5uxW7CrsXuxO7DLe7GrsIuxC6uxu7FLsNtbspuzS7H7sluy+7N7seuygmIAC7M0wgAACAuy1MIQAAgLshTCIAAIC7MEwjAACAuyxMJAAAgLsxTCUAAIC7J0wmAACAuzhMJwAAgLsiTCgAAIC7NUwpAACAuy5MKgAAgLsqTCsAAIC7MkwsAACAuyRMLQAAgLsdTC4AAIC7IEwvAACAwQW0tbe5uwi7CrsMuw67D7sRuxO7FbsXuxm7G7scJhAAwQYLAQCCgABMAAAAgAEAgAAATAAAAJABAoCAAEwAAACgtUwAAACwvAACTAAAAMABAoKAAEwAAADQAQICgABMAAAA4AEAAIAATAAAAPC8AgJMPxEAAAEAAoAATEARAAABAIIAAExBEQAAAQCAgABMQhEAAAECgAAATEMRAAABAgCAAExEEQAAs0xFEQAAAQKCAABMRhEAALNMAAAAiAECgoAATAAAAJgBAoIAAEwAAACoAQCAAABMAAAAuAEAgoAATAAAAMi8AAJMAAAA2AECgIAATAAAAOi1TAAAAPgBAAKAAExHEQAAAQCCAABMSBEAAAEAgIAATEkRAAABAgKAAExKEQAAAQIAgABMSxEAAAECgAAATEwRAAC8AgJMTREAAAEAAIAATE4RAAABAIAAAEwBAACAtUwBAACQAQCCgABMAQAAoAEAAIAATAEAALABAoCAAEwBAADAAQCCAABMAQAA0LwAAkwBAADgAQICgABMAQAA8AECgoAATE8RAAABAICAAExQEQAAAQIAgABMUREAAAECggAATFIRAAC8AgJMUxEAAAEAAoAATFQRAAABAoAAAExVEQAAs0xWEQAAAQKCgABMAQAAiAEAgIAATAEAAJgBAACAAEwBAACovAACTAEAALgBAIAAAEwBAADIAQIAgABMAQAA2LVMAQAA6AECggAATAEAAPgBAoAAAExXEQAAAQICgABMWBEAALwCAkxZEQAAAQCCgABMWhEAAAEAAoAATFsRAACzTFwRAAABAIIAAExdEQAAAQKAgABMXhEAAAsBEEAIQEwAAACAvABATAAAAIEBAAAIAEwAAACCARAACEBMAAAAgwEQAABATAAAAIQBAEAIQEwAAACFAQBAAEBMAAAAhrsQTAAAAIcBAEAIAEwAAACIARBAAEBMAAAAiQEAAABATAAAAIoBEEAIAEwAAACLARAACABMAAAAjLNMAAAAjbwQQEwAAACOAQAACEBMAAAAjwEAQABATAAAgIABEEAIAEwAAICBuxBMAACAggEQQABATAAAgIMBEEAIQEwAAICEAQAAAEBMAACAhQEAAAgATAAAgIYBEAAIQEwAAICHARAACABMAACAiLNMAACAibwAQEwAAICKAQAACEBMAACAiwEQAABATAAAgIwBAEAIAEwAAICNAQBACEBMAACAjrwQQEwAAICPs0wAAACQARAACEBMAAAAkQEQQABATAAAAJIBAEAIQEwAAACTAQAACEBMAAAAlLsQTAAAAJUBEEAIAEwAAACWvABATAAAAJe8EEBMAAAAmAEAAAgATAAAAJkBEAAIAEwAAACaARAAAEBMAAAAmwEAQAgATAAAAJwBAEAAQEwAAACdAQAAAEBMAAAAngEQQAhATAAAAJ8BEEAIAEwAAICQAQAACABMAACAkQEAAAhATAAAgJK8AEBMAACAkwEAQABATAAAgJQBEEAIQEwAAICVuxBMAACAlgEAAABATAAAgJcBAEAIQEwAAICYARAAAEBMAACAmQEQQABATAAAgJoBEAAIAEwAAICbs0wAAICcvBBATAAAgJ0BEAAIQEwAAICeAQBACABMAACAnwu8BAFMAAAAgLNMAAAQgAEAAQAETAAAIIABBAEBAEwAADCAAQQAAQBMAABAgAEEAAAETAAAUIABBAEBBEwAAGCAAQAAAQRMAABwgAEAAAAETAAAgIABAAEBBEwAAJCAAQABAQBMAACggAEEAAEETAAAsIABBAEABEwAAMCAAQAAAQBMAADQgLdMAADggLwAAUwAAPCAAQABAQRMAAAIgAEEAAEETAAAGICzTAAAKIABAAEABEwAADiAAQQAAARMAABIgAEAAAEATAAAWIABBAABAEwAAGiAvAQBTAAAeIC3TAAAiIC8AAFMAACYgAEAAAEETAAAqIABBAEBAEwAALiAAQABAQBMAADIgAEEAQAETAAA2IABBAEBBEwAAOiAAQAAAARMAAD4gAEAAQEETAAAAIEBBAABAEwAABCBAQAAAQBMAAAggQEAAQAETAAAMIG8AAFMAABAgQEEAQEETAAAUIEBBAAABEwAAGCBs0wAAHCBAQQBAARMAACAgQEAAAAETAAAkIG3TAAAoIEBAAEBAEwAALCBAQAAAQRMAADAgbwEAUwAANCBAQQBAQBMAADggQEEAAEETAAA8IEBAAAABEwAAAiBvAQBTAAAGIEBAAEBBEwAACiBs0wAADiBAQQAAQBMAABIgQEAAQAETAAAWIG8AAFMAABogQEEAAEETAAAeIEBAAABAEwAAIiBAQQBAQRMAACYgQEEAQEATAAAqIEBBAAABEwAALiBAQQBAARMAADIgQEAAAEETAAA2IG3TAAA6IEBAAEBAEwAAPiBC70ATAAAAIC9AUwAAAGAAUAQQABMAAACgL0CTAAAA4CzTAAABIABABBAAEwAAAWAvQNMAAAGgAFAAEAATAAAB4C9BEwAAAiAAQAAQABMAAAJgLtATAAACoC9BUwAAAuAvQZMAAAMgLxAEEwAAA2AvAAQTAAADoC9B0wAAA+AvQhMAIAAgLtATACAAYC9CUwAgAKAvQpMAIADgAEAEEAATACABIC9C0wAgAWAs0wAgAaAvQxMAIAHgLwAEEwAgAiAvQ1MAIAJgAEAAEAATACACoC8QBBMAIALgL0OTACADIABQABAAEwAgA2AAUAQQABMAIAOgL0PTACAD4ABQABAAEwAABCAAQAQQABMAAARgL0QTAAAEoCzTAAAE4C8QBBMAAAUgL0RTAAAFYC9EkwAABaAvRNMAAAXgL0UTAAAGIC9FUwAABmAvRZMAAAagAFAEEAATAAAG4C9F0wAAByAAQAAQABMAAAdgLtATAAAHoC8ABBMAAAfgL0YTACAEIC9GUwAgBGAs0wAgBKAAQAQQABMAIATgAFAAEAATACAFIC9GkwAgBWAvRtMAIAWgLtATACAF4C9HEwAgBiAvAAQTACAGYC9HUwAgBqAvR5MAIAbgLxAEEwAgByAvR9MAIAdgAEAAEAATACAHoABQBBAAEwAgB+AC7yAAEwAAACAAQAABAFMABAAgAEAAAQATAAgAIABAAAAIEwAMACAAYAABCBMAEAAgAGAAAABTABQAIABgAAAIUwAYACAAYAABABMAHAAgAEAAAABTACAAIABAAAEIEwAkACAAYAAACBMAKAAgAGAAAQhTACwAIABAAAEIUwAwACAs0wA0ACAAYAABAFMAOAAgAEAAAAhTADwAIABgAAEAUwACACAAYAAACFMABgAgLyAAEwAKACAAQAABAFMADgAgAEAAAQATABIAIABgAAEIEwAWACAAQAABCFMAGgAgAEAAAAgTAB4AIABAAAEIEwAiACAs0wAmACAAYAABCFMAKgAgAGAAAABTAC4AIABgAAAIEwAyACAAQAAACFMANgAgAEAAAABTADoAIABgAAEAEwA+ACAAQAABABMAAABgLyAAEwAEAGAAQAAACBMACABgAGAAAAhTAAwAYABgAAAAUwAQAGAAQAABCFMAFABgAGAAAQgTABgAYABAAAAAUwAcAGAAYAABCFMAIABgAEAAAAhTACQAYABAAAEAUwAoAGAAQAABCBMALABgAGAAAQATADAAYABgAAAIEwA0AGAs0wA4AGAAYAABAFMAPABgAGAAAAhTAAIAYABAAAAAUwAGAGAAQAABAFMACgBgAGAAAQgTAA4AYABAAAAIEwASAGAAYAABAFMAFgBgLyAAEwAaAGAAQAABCFMAHgBgAGAAAQATACIAYABgAAEIUwAmAGAs0wAqAGAAQAAACFMALgBgAGAAAABTADIAYABAAAEAEwA2AGAAQAABCBMAOgBgAGAAAAgTAD4AYALAQgAABBMAAAAgLwAIEwAAQCAAQAAIBBMAAIAgAEIICAQTAADAIABACAAEEwABACAAQAAIABMAAUAgAEIACAATAAGAIABAAAAEEwABwCAs0wACACAAQggABBMAAkAgAEAICAATAAKAIC7CEwACwCAAQgAIBBMAAwAgAEIICAATAANAIC8CCBMAA4AgAEAICAQTAAPAIABAAAgEEyAAACAAQggIBBMgAEAgLsITIACAIABAAAgAEyAAwCAAQggIABMgAQAgAEIAAAQTIAFAIABACAAEEyABgCAvAggTIAHAIABCAAgAEyACACAvAAgTIAJAIABCCAAEEyACgCAAQgAIBBMgAsAgLNMgAwAgAEAICAQTIANAIABACAgAEyADgCAAQAAABBMgA8AgAEAIAAQTAAQAIABCAAgEEwAEQCAAQggIBBMABIAgLwIIEwAEwCAAQAAIABMABQAgAEAAAAQTAAVAIABCAAAEEwAFgCAAQAgIABMABcAgAEIICAATAAYAICzTAAZAIC7CEwAGgCAAQAAIBBMABsAgLwAIEwAHACAAQggABBMAB0AgAEAICAQTAAeAIABCAAgAEwAHwCAuwhMgBAAgAEAICAATIARAIABAAAgAEyAEgCAAQgAABBMgBMAgAEAIAAQTIAUAIC8CCBMgBUAgAEIICAQTIAWAIABAAAgEEyAFwCAAQAgIBBMgBgAgAEIACAQTIAZAIC8ACBMgBoAgAEIICAATIAbAIABCAAgAEyAHACAs0yAHQCAAQAAABBMgB4AgAEIIAAQTIAfAIALAQAAEABMAAAAgAEBBAACTBAAAIC8AARMIAAAgAEBBBAATDAAAIABAQQQAkxAAACAs0xQAACAtExgAACAAQEAEAJMcAAAgAEABAACTIAAAIABAQAQAEyQAACAAQEAAAJMoAAAgAEABBACTLAAAIABAAAQAkzAAACAvAEETNAAAIABAAQQAEzgAACAAQAAAAJM8AAAgAEBABACTAgAAICzTBgAAIABAQQAAkwoAACAAQAEEAJMOAAAgAEAABAATEgAAIABAQAAAkxYAACAAQAAAAJMaAAAgLwBBEx4AACAAQEEEABMiAAAgAEABAACTJgAAIABAAAQAkyoAACAAQEAEABMuAAAgLwABEzIAACAAQEEEAJM2AAAgLRM6AAAgAEABBAATPgAAIABAAAAAkwAAQCAAQAAEABMEAEAgAEBBAACTCABAIABAQAQAkwwAQCAAQEAEABMQAEAgAEABAACTFABAIABAAQQAkxgAQCAAQEEEABMcAEAgLwBBEyAAQCAAQEEEAJMkAEAgAEABBAATKABAIC0TLABAICzTMABAIABAAAQAkzQAQCAAQEAAAJM4AEAgLwABEzwAQCAAQAEEABMCAEAgAEBBAACTBgBAIABAQAQAkwoAQCAtEw4AQCAAQAAAAJMSAEAgAEAABAATFgBAIC8AQRMaAEAgAEABBACTHgBAIABAQAAAkyIAQCAAQAAEAJMmAEAgLNMqAEAgAEBBBACTLgBAIABAQQQAEzIAQCAvAAETNgBAIABAAQAAkzoAQCAAQEAEABM+AEAgAsBIAgACEwAAACAAQAAAgBMAQAAgAEAAAAITAIAAIC7IEwDAACAASAAAgBMBAAAgAEgCAIITAUAAIABAAgCCEwGAACAvAAITAcAAIABAAACCEwIAACAAQAIAAhMCQAAgAEACAIATAoAAIABIAACCEwLAACAvCAITAwAAICzTA0AAIABIAAACEwOAACAASAIAgBMDwAAgLwACEw/EQAAASAIAghMTxEAAAEgCAAITF8RAAABAAAACExgEQAAAQAAAghMYREAAAEACAIATGIRAAABIAgCAExjEQAAuyBMZBEAAAEgAAAITGURAAC8IAhMZhEAAAEgAAIATGcRAAABAAgCCExoEQAAs0xpEQAAASAAAghMahEAAAEACAAITGsRAAABAAACAExsEQAAASAIAgBMEAAAgAEACAIITBEAAIC7IEwSAACAvAAITBMAAIABAAgACEwUAACAASAAAAhMFQAAgAEgAAIITBYAAIABAAACAEwXAACAs0wYAACAASAAAgBMGQAAgAEAAAIITBoAAIABIAgACEwbAACAASAIAghMHAAAgAEACAIATB0AAIC8IAhMHgAAgAEAAAAITB8AAIABAAACAExtEQAAvAAITG4RAAABIAACCExvEQAAASAIAgBMcBEAALsgTHERAAABAAACCExyEQAAAQAAAAhMcxEAAAEgCAAITHQRAAABIAgCCEx1EQAAASAAAAhMdhEAAAEACAAITHcRAACzTHgRAAABAAgCAEx5EQAAvCAITHoRAAABIAACAEx7EQAAAQAIAghMfBEAACYIAMEHvSABAACAHwEAAPgBAQCAHwABAPgBALyAH7z4Ab0hJggAwQjGxEL6BwAAC74iTdUQAABM1RAAAL4jTSIRAABMIhEAAL4kTSMRAABMIxEAAL4lTTkRAABMOREAALVM/xAAALVMCBEAALVMxhAAACQBABVDfREAAMEJw8RCxxAAAMAJJAEAQ30RAADGxEL6BwAAC74oTdUQAABM1RAAAL4pTSIRAABMIhEAAL4qTSMRAABMIxEAALlM/xAAALVMCBEAALVMxhAAACQBABVDPhEAAMrDxELHEAAAxiQBAEM+EQAAKaQDAQAGAAAAAAII4EEGAAAACAIA4EEGAAAAAAAI4EEGAAAACAAA4EEGAAAAAAAA4EEGAAAAAAIA4EEGAAAACAAI4EEGAAAACAII4EEGAAAACAIA4EEGAAAACAAI4EEGAAAAAAIA4EEGAAAACAII4EEGAAAAAAAI4EEGAAAAAAII4EEGAAAAAAAA4EEGAAAACAAA4EEGAAAACAAA4EEGAAAACAAI4EEGAAAAAAII4EEGAAAACAIA4EEGAAAACAII4EE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 \ No newline at end of file diff --git a/app/src/main/assets/js/lib/cheerio.min.js b/app/src/main/assets/js/lib/cheerio.min.js index 7d6375e852..eac7bfe028 100644 --- a/app/src/main/assets/js/lib/cheerio.min.js +++ b/app/src/main/assets/js/lib/cheerio.min.js @@ -1 +1,8836 @@ -var e,t=function(){return t=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0?this.children[this.children.length-1]:null}get childNodes(){return this.children}set childNodes(e){this.children=e}}class g extends A{constructor(){super(...arguments),this.type=e.CDATA}get nodeType(){return 4}}class N extends A{constructor(){super(...arguments),this.type=e.Root}get nodeType(){return 9}}class C extends A{constructor(t,n,r=[],i=("script"===t?e.Script:"style"===t?e.Style:e.Tag)){super(r),this.name=t,this.attribs=n,this.type=i}get nodeType(){return 1}get tagName(){return this.name}set tagName(e){this.name=e}get attributes(){return Object.keys(this.attribs).map((e=>{var t,n;return{name:e,value:this.attribs[e],namespace:null===(t=this["x-attribsNamespace"])||void 0===t?void 0:t[e],prefix:null===(n=this["x-attribsPrefix"])||void 0===n?void 0:n[e]}}))}}function I(t){return(n=t).type===e.Tag||n.type===e.Script||n.type===e.Style;var n}function S(t){return t.type===e.CDATA}function b(t){return t.type===e.Text}function O(t){return t.type===e.Comment}function y(t){return t.type===e.Directive}function L(t){return t.type===e.Root}function k(e){return Object.prototype.hasOwnProperty.call(e,"children")}function v(e,t=!1){let n;if(b(e))n=new m(e.data);else if(O(e))n=new T(e.data);else if(I(e)){const r=t?D(e.children):[],i=new C(e.name,{...e.attribs},r);r.forEach((e=>e.parent=i)),null!=e.namespace&&(i.namespace=e.namespace),e["x-attribsNamespace"]&&(i["x-attribsNamespace"]={...e["x-attribsNamespace"]}),e["x-attribsPrefix"]&&(i["x-attribsPrefix"]={...e["x-attribsPrefix"]}),n=i}else if(S(e)){const r=t?D(e.children):[],i=new g(r);r.forEach((e=>e.parent=i)),n=i}else if(L(e)){const r=t?D(e.children):[],i=new N(r);r.forEach((e=>e.parent=i)),e["x-mode"]&&(i["x-mode"]=e["x-mode"]),n=i}else{if(!y(e))throw new Error(`Not implemented yet: ${e.type}`);{const t=new _(e.name,e.data);null!=e["x-name"]&&(t["x-name"]=e["x-name"],t["x-publicId"]=e["x-publicId"],t["x-systemId"]=e["x-systemId"]),n=t}}return n.startIndex=e.startIndex,n.endIndex=e.endIndex,null!=e.sourceCodeLocation&&(n.sourceCodeLocation=e.sourceCodeLocation),n}function D(e){const t=e.map((e=>v(e,!0)));for(let e=1;e$\x80-\uFFFF]/g,x=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]),w=null!=String.prototype.codePointAt?(e,t)=>e.codePointAt(t):(e,t)=>55296==(64512&e.charCodeAt(t))?1024*(e.charCodeAt(t)-55296)+e.charCodeAt(t+1)-56320+65536:e.charCodeAt(t);function B(e){let t,n="",r=0;for(;null!==(t=P.exec(e));){const i=t.index,s=e.charCodeAt(i),a=x.get(s);void 0!==a?(n+=e.substring(r,i)+a,r=i+1):(n+=`${e.substring(r,i)}&#x${w(e,i).toString(16)};`,r=P.lastIndex+=Number(55296==(64512&s)))}return n+e.substr(r)}function F(e,t){return function(n){let r,i=0,s="";for(;r=e.exec(n);)i!==r.index&&(s+=n.substring(i,r.index)),s+=t.get(r[0].charCodeAt(0)),i=r.index+1;return s+n.substring(i)}}const U=F(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),H=F(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]])),G=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map((e=>[e.toLowerCase(),e]))),Y=new Map(["definitionURL","attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map((e=>[e.toLowerCase(),e]))),q=new Set(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]);function K(e){return e.replace(/"/g,""")}const j=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]);function V(e,t={}){const n="length"in e?e:[e];let r="";for(let e=0;e`;case c:return function(e){return`\x3c!--${e.data}--\x3e`}(e);case p:return function(e){return``}(e);case l:case h:case u:return function(e,t){var n;"foreign"===t.xmlMode&&(e.name=null!==(n=G.get(e.name))&&void 0!==n?n:e.name,e.parent&&Q.has(e.parent.name)&&(t={...t,xmlMode:!1}));!t.xmlMode&&X.has(e.name)&&(t={...t,xmlMode:"foreign"});let r=`<${e.name}`;const i=function(e,t){var n;if(!e)return;const r=!1===(null!==(n=t.encodeEntities)&&void 0!==n?n:t.decodeEntities)?K:t.xmlMode||"utf8"!==t.encodeEntities?B:U;return Object.keys(e).map((n=>{var i,s;const a=null!==(i=e[n])&&void 0!==i?i:"";return"foreign"===t.xmlMode&&(n=null!==(s=Y.get(n))&&void 0!==s?s:n),t.emptyAttrs||t.xmlMode||""!==a?`${n}="${r(a)}"`:n})).join(" ")}(e.attribs,t);i&&(r+=` ${i}`);0===e.children.length&&(t.xmlMode?!1!==t.selfClosingTags:t.selfClosingTags&&j.has(e.name))?(t.xmlMode||(r+=" "),r+="/>"):(r+=">",e.children.length>0&&(r+=V(e.children,t)),!t.xmlMode&&j.has(e.name)||(r+=``));return r}(e,t);case a:return function(e,t){var n;let r=e.data||"";!1===(null!==(n=t.encodeEntities)&&void 0!==n?n:t.decodeEntities)||!t.xmlMode&&e.parent&&q.has(e.parent.name)||(r=t.xmlMode||"utf8"!==t.encodeEntities?B(r):H(r));return r}(e,t)}}const Q=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),X=new Set(["svg","math"]);function $(e,t){return V(e,t)}function z(e){return Array.isArray(e)?e.map(z).join(""):k(e)&&!O(e)?z(e.children):b(e)?e.data:""}function J(t){return Array.isArray(t)?t.map(J).join(""):k(t)&&(t.type===e.Tag||S(t))?J(t.children):b(t)?t.data:""}function Z(e){return k(e)?e.children:[]}function ee(e){return e.parent||null}function te(e){const t=ee(e);if(null!=t)return Z(t);const n=[e];let{prev:r,next:i}=e;for(;null!=r;)n.unshift(r),({prev:r}=r);for(;null!=i;)n.push(i),({next:i}=i);return n}function ne(e){let{next:t}=e;for(;null!==t&&!I(t);)({next:t}=t);return t}function re(e){let{prev:t}=e;for(;null!==t&&!I(t);)({prev:t}=t);return t}function ie(e){if(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent){const t=e.parent.children;t.splice(t.lastIndexOf(e),1)}}function se(e,t,n=!0,r=1/0){return Array.isArray(t)||(t=[t]),ae(e,t,n,r)}function ae(e,t,n,r){const i=[];for(const s of t){if(e(s)&&(i.push(s),--r<=0))break;if(n&&k(s)&&s.children.length>0){const t=ae(e,s.children,n,r);if(i.push(...t),r-=t.length,r<=0)break}}return i}function oe(e,t,n=!0){let r=null;for(let i=0;i0&&(r=oe(e,s.children,!0)))}return r}const ce={tag_name:e=>"function"==typeof e?t=>I(t)&&e(t.name):"*"===e?I:t=>I(t)&&t.name===e,tag_type:e=>"function"==typeof e?t=>e(t.type):t=>t.type===e,tag_contains:e=>"function"==typeof e?t=>b(t)&&e(t.data):t=>b(t)&&t.data===e};function le(e,t){return"function"==typeof t?n=>I(n)&&t(n.attribs[e]):n=>I(n)&&n.attribs[e]===t}function he(e,t){return n=>e(n)||t(n)}function ue(e){const t=Object.keys(e).map((t=>{const n=e[t];return Object.prototype.hasOwnProperty.call(ce,t)?ce[t](n):le(t,n)}));return 0===t.length?null:t.reduce(he)}function pe(e,t,n=!0,r=1/0){return se(ce.tag_name(e),t,n,r)}var fe;function de(e,t){const n=[],r=[];if(e===t)return 0;let i=k(e)?e:e.parent;for(;i;)n.unshift(i),i=i.parent;for(i=k(t)?t:t.parent;i;)r.unshift(i),i=i.parent;const s=Math.min(n.length,r.length);let a=0;for(;ac.indexOf(h)?o===t?fe.FOLLOWING|fe.CONTAINED_BY:fe.FOLLOWING:o===e?fe.PRECEDING|fe.CONTAINS:fe.PRECEDING}function Ee(e){return(e=e.filter(((e,t,n)=>!n.includes(e,t+1)))).sort(((e,t)=>{const n=de(e,t);return n&fe.PRECEDING?-1:n&fe.FOLLOWING?1:0})),e}!function(e){e[e.DISCONNECTED=1]="DISCONNECTED",e[e.PRECEDING=2]="PRECEDING",e[e.FOLLOWING=4]="FOLLOWING",e[e.CONTAINS=8]="CONTAINS",e[e.CONTAINED_BY=16]="CONTAINED_BY"}(fe||(fe={}));const me=["url","type","lang"],Te=["fileSize","bitrate","framerate","samplingrate","channels","duration","height","width"];function _e(e){return pe("media:content",e).map((e=>{const{attribs:t}=e,n={medium:t.medium,isDefault:!!t.isDefault};for(const e of me)t[e]&&(n[e]=t[e]);for(const e of Te)t[e]&&(n[e]=parseInt(t[e],10));return t.expression&&(n.expression=t.expression),n}))}function Ae(e,t){return pe(e,t,!0,1)[0]}function ge(e,t,n=!1){return z(pe(e,t,n,1)).trim()}function Ne(e,t,n,r,i=!1){const s=ge(n,r,i);s&&(e[t]=s)}function Ce(e){return"rss"===e||"feed"===e||"rdf:RDF"===e}var Ie,Se=Object.freeze({__proto__:null,isTag:I,isCDATA:S,isText:b,isComment:O,isDocument:L,hasChildren:k,getOuterHTML:$,getInnerHTML:function(e,t){return k(e)?e.children.map((e=>$(e,t))).join(""):""},getText:function e(t){return Array.isArray(t)?t.map(e).join(""):I(t)?"br"===t.name?"\n":e(t.children):S(t)?e(t.children):b(t)?t.data:""},textContent:z,innerText:J,getChildren:Z,getParent:ee,getSiblings:te,getAttributeValue:function(e,t){var n;return null===(n=e.attribs)||void 0===n?void 0:n[t]},hasAttrib:function(e,t){return null!=e.attribs&&Object.prototype.hasOwnProperty.call(e.attribs,t)&&null!=e.attribs[t]},getName:function(e){return e.name},nextElementSibling:ne,prevElementSibling:re,removeElement:ie,replaceElement:function(e,t){const n=t.prev=e.prev;n&&(n.next=t);const r=t.next=e.next;r&&(r.prev=t);const i=t.parent=e.parent;if(i){const n=i.children;n[n.lastIndexOf(e)]=t,e.parent=null}},appendChild:function(e,t){if(ie(t),t.next=null,t.parent=e,e.children.push(t)>1){const n=e.children[e.children.length-2];n.next=t,t.prev=n}else t.prev=null},append:function(e,t){ie(t);const{parent:n}=e,r=e.next;if(t.next=r,t.prev=e,e.next=t,t.parent=n,r){if(r.prev=t,n){const e=n.children;e.splice(e.lastIndexOf(r),0,t)}}else n&&n.children.push(t)},prependChild:function(e,t){if(ie(t),t.parent=e,t.prev=null,1!==e.children.unshift(t)){const n=e.children[1];n.prev=t,t.next=n}else t.next=null},prepend:function(e,t){ie(t);const{parent:n}=e;if(n){const r=n.children;r.splice(r.indexOf(e),0,t)}e.prev&&(e.prev.next=t),t.parent=n,t.prev=e.prev,t.next=e,e.prev=t},filter:se,find:ae,findOneChild:function(e,t){return t.find(e)},findOne:oe,existsOne:function e(t,n){return n.some((n=>I(n)&&(t(n)||n.children.length>0&&e(t,n.children))))},findAll:function(e,t){var n;const r=[],i=t.filter(I);let s;for(;s=i.shift();){const t=null===(n=s.children)||void 0===n?void 0:n.filter(I);t&&t.length>0&&i.unshift(...t),e(s)&&r.push(s)}return r},testElement:function(e,t){const n=ue(e);return!n||n(t)},getElements:function(e,t,n,r=1/0){const i=ue(e);return i?se(i,t,n,r):[]},getElementById:function(e,t,n=!0){return Array.isArray(t)||(t=[t]),oe(le("id",e),t,n)},getElementsByTagName:pe,getElementsByTagType:function(e,t,n=!0,r=1/0){return se(ce.tag_type(e),t,n,r)},removeSubsets:function(e){let t=e.length;for(;--t>=0;){const n=e[t];if(t>0&&e.lastIndexOf(n,t-1)>=0)e.splice(t,1);else for(let r=n.parent;r;r=r.parent)if(e.includes(r)){e.splice(t,1);break}}return e},get DocumentPosition(){return fe},compareDocumentPosition:de,uniqueSort:Ee,getFeed:function(e){const t=Ae(Ce,e);return t?"feed"===t.name?function(e){var t;const n=e.children,r={type:"atom",items:pe("entry",n).map((e=>{var t;const{children:n}=e,r={media:_e(n)};Ne(r,"id","id",n),Ne(r,"title","title",n);const i=null===(t=Ae("link",n))||void 0===t?void 0:t.attribs.href;i&&(r.link=i);const s=ge("summary",n)||ge("content",n);s&&(r.description=s);const a=ge("updated",n);return a&&(r.pubDate=new Date(a)),r}))};Ne(r,"id","id",n),Ne(r,"title","title",n);const i=null===(t=Ae("link",n))||void 0===t?void 0:t.attribs.href;i&&(r.link=i);Ne(r,"description","subtitle",n);const s=ge("updated",n);s&&(r.updated=new Date(s));return Ne(r,"author","email",n,!0),r}(t):function(e){var t,n;const r=null!==(n=null===(t=Ae("channel",e.children))||void 0===t?void 0:t.children)&&void 0!==n?n:[],i={type:e.name.substr(0,3),id:"",items:pe("item",e.children).map((e=>{const{children:t}=e,n={media:_e(t)};Ne(n,"id","guid",t),Ne(n,"title","title",t),Ne(n,"link","link",t),Ne(n,"description","description",t);const r=ge("pubDate",t);return r&&(n.pubDate=new Date(r)),n}))};Ne(i,"title","title",r),Ne(i,"link","link",r),Ne(i,"description","description",r);const s=ge("lastBuildDate",r);s&&(i.updated=new Date(s));return Ne(i,"author","managingEditor",r,!0),i}(t):null}}),be="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};function Oe(e){if(Object.keys)return Object.keys(e);var t=[];for(var n in e)t.push(n);return t}function ye(e,t){if(e.forEach)return e.forEach(t);for(var n=0;n1&&c.shift(),this._hasParentSelector=null;const l=this._trace(c,t,["$"],i,s,n).filter((function(e){return e&&!e.isParentSelector}));return l.length?o||1!==l.length||l[0].hasArrExpr?l.reduce(((e,t)=>{const n=this._getPreferredOutput(t);return a&&Array.isArray(n)?e=e.concat(n):e.push(n),e}),[]):this._getPreferredOutput(l[0]):o?[]:void 0},He.prototype._getPreferredOutput=function(e){const t=this.currResultType;switch(t){case"all":{const t=Array.isArray(e.path)?e.path:He.toPathArray(e.path);return e.pointer=He.toPointer(t),e.path="string"==typeof e.path?e.path:He.toPathString(e.path),e}case"value":case"parent":case"parentProperty":return e[t];case"path":return He.toPathString(e[t]);case"pointer":return He.toPointer(e.path);default:throw new TypeError("Unknown result type")}},He.prototype._handleCallback=function(e,t,n){if(t){const r=this._getPreferredOutput(e);e.path="string"==typeof e.path?e.path:He.toPathString(e.path),t(r,n,e)}},He.prototype._trace=function(e,t,n,r,i,s,a,o){let c;if(!e.length)return c={path:n,value:t,parent:r,parentProperty:i,hasArrExpr:a},this._handleCallback(c,s,"value"),c;const l=e[0],h=e.slice(1),u=[];function p(e){Array.isArray(e)?e.forEach((e=>{u.push(e)})):u.push(e)}if(("string"!=typeof l||o)&&t&&we.call(t,l))p(this._trace(h,t[l],Be(n,l),t,l,s,a));else if("*"===l)this._walk(t,(e=>{p(this._trace(h,t[e],Be(n,e),t,e,s,!0,!0))}));else if(".."===l)p(this._trace(h,t,n,r,i,s,a)),this._walk(t,(r=>{"object"==typeof t[r]&&p(this._trace(e.slice(),t[r],Be(n,r),t,r,s,!0))}));else{if("^"===l)return this._hasParentSelector=!0,{path:n.slice(0,-1),expr:h,isParentSelector:!0};if("~"===l)return c={path:Be(n,l),value:i,parent:r,parentProperty:null},this._handleCallback(c,s,"property"),c;if("$"===l)p(this._trace(h,t,n,null,null,s,a));else if(/^(-?\d*):(-?\d*):?(\d*)$/u.test(l))p(this._slice(l,h,t,n,r,i,s));else if(0===l.indexOf("?(")){if(this.currPreventEval)throw new Error("Eval [?(expr)] prevented in JSONPath expression.");const e=l.replace(/^\?\((.*?)\)$/u,"$1");this._walk(t,(a=>{this._eval(e,t[a],a,n,r,i)&&p(this._trace(h,t[a],Be(n,a),t,a,s,!0))}))}else if("("===l[0]){if(this.currPreventEval)throw new Error("Eval [(expr)] prevented in JSONPath expression.");p(this._trace(Fe(this._eval(l,t,n[n.length-1],n.slice(0,-1),r,i),h),t,n,r,i,s,a))}else if("@"===l[0]){let e=!1;const a=l.slice(1,-2);switch(a){case"scalar":t&&["object","function"].includes(typeof t)||(e=!0);break;case"boolean":case"string":case"undefined":case"function":typeof t===a&&(e=!0);break;case"integer":!Number.isFinite(t)||t%1||(e=!0);break;case"number":Number.isFinite(t)&&(e=!0);break;case"nonFinite":"number"!=typeof t||Number.isFinite(t)||(e=!0);break;case"object":t&&typeof t===a&&(e=!0);break;case"array":Array.isArray(t)&&(e=!0);break;case"other":e=this.currOtherTypeCallback(t,n,r,i);break;case"null":null===t&&(e=!0);break;default:throw new TypeError("Unknown value type "+a)}if(e)return c={path:n,value:t,parent:r,parentProperty:i},this._handleCallback(c,s,"value"),c}else if("`"===l[0]&&t&&we.call(t,l.slice(1))){const e=l.slice(1);p(this._trace(h,t[e],Be(n,e),t,e,s,a,!0))}else if(l.includes(",")){const e=l.split(",");for(const a of e)p(this._trace(Fe(a,h),t,n,r,i,s,!0))}else!o&&t&&we.call(t,l)&&p(this._trace(h,t[l],Be(n,l),t,l,s,a,!0))}if(this._hasParentSelector)for(let e=0;e{t(e)}))},He.prototype._slice=function(e,t,n,r,i,s,a){if(!Array.isArray(n))return;const o=n.length,c=e.split(":"),l=c[2]&&Number.parseInt(c[2])||1;let h=c[0]&&Number.parseInt(c[0])||0,u=c[1]&&Number.parseInt(c[1])||o;h=h<0?Math.max(0,h+o):Math.min(o,h),u=u<0?Math.max(0,u+o):Math.min(o,u);const p=[];for(let e=h;e{p.push(e)}))}return p},He.prototype._eval=function(e,t,n,r,i,s){this.currSandbox._$_parentProperty=s,this.currSandbox._$_parent=i,this.currSandbox._$_property=n,this.currSandbox._$_root=this.json,this.currSandbox._$_v=t;const a=e.includes("@path");a&&(this.currSandbox._$_path=He.toPathString(r.concat([n])));const o="script:"+e;if(!He.cache[o]){let t=e.replace(/@parentProperty/gu,"_$_parentProperty").replace(/@parent/gu,"_$_parent").replace(/@property/gu,"_$_property").replace(/@root/gu,"_$_root").replace(/@([.\s)[])/gu,"_$_v$1");a&&(t=t.replace(/@path/gu,"_$_path")),He.cache[o]=new this.vm.Script(t)}try{return He.cache[o].runInNewContext(this.currSandbox)}catch(t){throw new Error("jsonPath: "+t.message+": "+e)}},He.cache={},He.toPathString=function(e){const t=e,n=t.length;let r="$";for(let e=1;e":">"},i=/[&"'<>]/g,s=e.exports={};function a(e,t){return n.hasOwnProperty.call(e,t)}function o(e){return r[e]}function c(e,t,n){var r,i,s;if(e instanceof Error&&(e=(i=e).name+": "+i.message),Object.setPrototypeOf?(r=new Error(e),Object.setPrototypeOf(r,c.prototype)):(r=this,Object.defineProperty(r,"message",{enumerable:!1,writable:!0,value:e})),Object.defineProperty(r,"name",{value:"Template render error"}),Error.captureStackTrace&&Error.captureStackTrace(r,this.constructor),i){var a=Object.getOwnPropertyDescriptor(i,"stack");(s=a&&(a.get||function(){return a.value}))||(s=function(){return i.stack})}else{var o=new Error(e).stack;s=function(){return o}}return Object.defineProperty(r,"stack",{get:function(){return s.call(r)}}),Object.defineProperty(r,"cause",{value:i}),r.lineno=t,r.colno=n,r.firstUpdate=!0,r.Update=function(e){var t="("+(e||"unknown path")+")";return this.firstUpdate&&(this.lineno&&this.colno?t+=" [Line "+this.lineno+", Column "+this.colno+"]":this.lineno&&(t+=" [Line "+this.lineno+"]")),t+="\n ",this.firstUpdate&&(t+=" "),this.message=t+(this.message||""),this.firstUpdate=!1,this},r}function l(e){return"[object Function]"===n.toString.call(e)}function h(e){return"[object Array]"===n.toString.call(e)}function u(e){return"[object String]"===n.toString.call(e)}function p(e){return"[object Object]"===n.toString.call(e)}function f(e){var t=function(e){return e?"string"==typeof e?e.split("."):[e]:[]}(e);return function(e){for(var n=e,r=0;r1)for(var n=1;n0&&a.length>i){a.warned=!0;var o=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");o.name="MaxListenersExceededWarning",o.emitter=e,o.type=t,o.count=a.length,function(e){"function"==typeof console.warn?console.warn(e):console.log(e)}(o)}}else a=s[t]=n,++e._eventsCount;return e}function bt(e,t,n){var r=!1;function i(){e.removeListener(t,i),r||(r=!0,n.apply(e,arguments))}return i.listener=n,i}function Ot(e){var t=this._events;if(t){var n=t[e];if("function"==typeof n)return 1;if(n)return n.length}return 0}function yt(e,t){for(var n=new Array(t);t--;)n[t]=e[t];return n}function Lt(){var e;Tt.call(this),this.__emitError=(e=this,function(t){e.emit("error",t)})}function kt(){return new Lt}mt.prototype=Object.create(null),Tt.EventEmitter=Tt,Tt.usingDomains=!1,Tt.prototype.domain=void 0,Tt.prototype._events=void 0,Tt.prototype._maxListeners=void 0,Tt.defaultMaxListeners=10,Tt.init=function(){this.domain=null,Tt.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new mt,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Tt.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},Tt.prototype.getMaxListeners=function(){return _t(this)},Tt.prototype.emit=function(e){var t,n,r,i,s,a,o,c="error"===e;if(a=this._events)c=c&&null==a.error;else if(!c)return!1;if(o=this.domain,c){if(t=arguments[1],!o){if(t instanceof Error)throw t;var l=new Error('Uncaught, unspecified "error" event. ('+t+")");throw l.context=t,l}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=o,t.domainThrown=!1,o.emit("error",t),!1}if(!(n=a[e]))return!1;var h="function"==typeof n;switch(r=arguments.length){case 1:At(n,h,this);break;case 2:gt(n,h,this,arguments[1]);break;case 3:Nt(n,h,this,arguments[1],arguments[2]);break;case 4:Ct(n,h,this,arguments[1],arguments[2],arguments[3]);break;default:for(i=new Array(r-1),s=1;s0;)if(n[s]===t||n[s].listener&&n[s].listener===t){a=n[s].listener,i=s;break}if(i<0)return this;if(1===n.length){if(n[0]=void 0,0==--this._eventsCount)return this._events=new mt,this;delete r[e]}else!function(e,t){for(var n=t,r=n+1,i=e.length;r0?Reflect.ownKeys(this._events):[]},("function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e})(Lt,Tt),Lt.prototype.add=function(e){e.on("error",this.__emitError)},Lt.prototype.remove=function(e){e.removeListener("error",this.__emitError)},Lt.prototype.bind=function(e){var t=this.__emitError;return function(){var n=Array.prototype.slice.call(arguments);try{e.apply(null,n)}catch(e){t(e)}}},Lt.prototype.intercept=function(e){var t=this.__emitError;return function(n){if(n)t(n);else{var r=Array.prototype.slice.call(arguments,1);try{e.apply(null,r)}catch(n){t(n)}}}},Lt.prototype.run=function(e){var t=this.__emitError;try{e()}catch(e){t(e)}return this},Lt.prototype.dispose=function(){return this.removeAllListeners(),this},Lt.prototype.enter=Lt.prototype.exit=function(){return this};var vt,Dt={Domain:Lt,createDomain:kt,create:kt},Rt="function"==typeof setImmediate,Mt=Pt;function Pt(e){xt.length||(Ut(),wt=!0),xt[xt.length]=e}var xt=[],wt=!1,Bt=0;function Ft(){for(;Bt1024){for(var t=0,n=xt.length-Bt;t=!".indexOf(r)){this.forward();var o,c=["==","===","!=","!==","<=",">=","//","**"],l=r+this.current();switch(-1!==je.indexOf(c,l)&&(this.forward(),r=l,-1!==je.indexOf(c,l+this.current())&&(r=l+this.current(),this.forward())),r){case"(":o="left-paren";break;case")":o="right-paren";break;case"[":o="left-bracket";break;case"]":o="right-bracket";break;case"{":o="left-curly";break;case"}":o="right-curly";break;case",":o="comma";break;case":":o="colon";break;case"~":o="tilde";break;case"|":o="pipe";break;default:o="operator"}return Kt(o,r,t,n)}if((e=this._extractUntil(" \n\t\r ()[]{}%*-+~/#,:|.<>=!")).match(/^[-+]?[0-9]+$/))return"."===this.current()?(this.forward(),Kt("float",e+"."+this._extract("0123456789"),t,n)):Kt("int",e,t,n);if(e.match(/^(true|false)$/))return Kt("boolean",e,t,n);if("none"===e)return Kt("none",e,t,n);if("null"===e)return Kt("none",e,t,n);if(e)return Kt("symbol",e,t,n);throw new Error("Unexpected value while parsing: "+e)}var h,u=this.tags.BLOCK_START.charAt(0)+this.tags.VARIABLE_START.charAt(0)+this.tags.COMMENT_START.charAt(0)+this.tags.COMMENT_END.charAt(0);if(this.isFinished())return null;if((e=this._extractString(this.tags.BLOCK_START+"-"))||(e=this._extractString(this.tags.BLOCK_START)))return this.in_code=!0,Kt("block-start",e,t,n);if((e=this._extractString(this.tags.VARIABLE_START+"-"))||(e=this._extractString(this.tags.VARIABLE_START)))return this.in_code=!0,Kt("variable-start",e,t,n);e="";var p=!1;for(this._matches(this.tags.COMMENT_START)&&(p=!0,e=this._extractString(this.tags.COMMENT_START));null!==(h=this._extractUntil(u));){if(e+=h,(this._matches(this.tags.BLOCK_START)||this._matches(this.tags.VARIABLE_START)||this._matches(this.tags.COMMENT_START))&&!p){if(this.lstripBlocks&&this._matches(this.tags.BLOCK_START)&&this.colno>0&&this.colno<=e.length){var f=e.slice(-this.colno);if(/^\s+$/.test(f)&&!(e=e.slice(0,-this.colno)).length)return this.nextToken()}break}if(this._matches(this.tags.COMMENT_END)){if(!p)throw new Error("unexpected end of comment");e+=this._extractString(this.tags.COMMENT_END);break}e+=this.current(),this.forward()}if(null===h&&p)throw new Error("expected end of comment, got end of file");return Kt(p?"comment":"data",e,t,n)},t._parseString=function(e){this.forward();for(var t="";!this.isFinished()&&this.current()!==e;){var n=this.current();if("\\"===n){switch(this.forward(),this.current()){case"n":t+="\n";break;case"t":t+="\t";break;case"r":t+="\r";break;default:t+=this.current()}this.forward()}else t+=n,this.forward()}return this.forward(),t},t._matches=function(e){return this.index+e.length>this.len?null:this.str.slice(this.index,this.index+e.length)===e},t._extractString=function(e){return this._matches(e)?(this.forwardN(e.length),e):null},t._extractUntil=function(e){return this._extractMatching(!0,e||"")},t._extract=function(e){return this._extractMatching(!1,e)},t._extractMatching=function(e,t){if(this.isFinished())return null;var n=t.indexOf(this.current());if(e&&-1===n||!e&&-1!==n){var r=this.current();this.forward();for(var i=t.indexOf(this.current());(e&&-1===i||!e&&-1!==i)&&!this.isFinished();)r+=this.current(),this.forward(),i=t.indexOf(this.current());return r}return""},t._extractRegex=function(e){var t=this.currentStr().match(e);return t?(this.forwardN(t[0].length),t):null},t.isFinished=function(){return this.index>=this.len},t.forwardN=function(e){for(var t=0;t2?i-2:0),a=2;a0||!n)&&Et.stdout.write(" ".repeat(t));var s=i===r.length-1?"":"\n";Et.stdout.write(""+e+s)}))}var hr={Node:on,Root:hn,NodeList:ln,Value:cn,Literal:un,Symbol:pn,Group:fn,Array:dn,Pair:En,Dict:mn,Output:Un,Capture:Hn,TemplateData:Gn,If:_n,IfAsync:An,InlineIf:gn,For:Nn,AsyncEach:Cn,AsyncAll:In,Macro:Sn,Caller:bn,Import:On,FromImport:yn,FunCall:Ln,Filter:kn,FilterAsync:vn,KeywordArgs:Dn,Block:Rn,Super:Mn,Extends:Pn,Include:xn,Set:wn,Switch:Bn,Case:Fn,LookupVal:Tn,BinOp:qn,In:Kn,Is:jn,Or:Vn,And:Wn,Not:Qn,Add:Xn,Concat:$n,Sub:zn,Mul:Jn,Div:Zn,FloorDiv:er,Mod:tr,Pow:nr,Neg:rr,Pos:ir,Compare:sr,CompareOperand:ar,CallExtension:or,CallExtensionAsync:cr,printNodes:function e(t,n){if(n=n||0,lr(t.typename+": ",n),t instanceof ln)lr("\n"),t.children.forEach((function(t){e(t,n+2)}));else if(t instanceof or)lr(t.extName+"."+t.prop+"\n"),t.args&&e(t.args,n+2),t.contentArgs&&t.contentArgs.forEach((function(t){e(t,n+2)}));else{var r=[],i=null;t.iterFields((function(e,t){e instanceof on?r.push([t,e]):(i=i||{})[t]=e})),i?lr(JSON.stringify(i,null,2)+"\n",null,!0):lr("\n"),r.forEach((function(t){var r=t[0],i=t[1];lr("["+r+"] =>",n+2),e(i,n+4)}))}}};function ur(e,t){return ur=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},ur(e,t)}hr.Node,hr.Root,hr.NodeList,hr.Value,hr.Literal,hr.Group,hr.Pair,hr.Dict,hr.Output,hr.Capture,hr.TemplateData,hr.If,hr.IfAsync,hr.InlineIf,hr.For,hr.AsyncEach,hr.AsyncAll,hr.Macro,hr.Caller,hr.Import,hr.FromImport,hr.FunCall,hr.Filter,hr.FilterAsync,hr.KeywordArgs,hr.Block,hr.Super,hr.Extends,hr.Include,hr.Switch,hr.Case,hr.LookupVal,hr.BinOp,hr.In,hr.Is,hr.Or,hr.And,hr.Not,hr.Add,hr.Concat,hr.Sub,hr.Mul,hr.Div,hr.FloorDiv,hr.Mod,hr.Pow,hr.Neg,hr.Pos,hr.Compare,hr.CompareOperand,hr.CallExtension,hr.CallExtensionAsync,hr.printNodes;var pr=function(e){var t,n;function r(){return e.apply(this,arguments)||this}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,ur(t,n);var i=r.prototype;return i.init=function(e){this.tokens=e,this.peeked=null,this.breakOnBlocks=null,this.dropLeadingWhitespace=!1,this.extensions=[]},i.nextToken=function(e){var t;if(this.peeked){if(e||this.peeked.type!==Vt.TOKEN_WHITESPACE)return t=this.peeked,this.peeked=null,t;this.peeked=null}if(t=this.tokens.nextToken(),!e)for(;t&&t.type===Vt.TOKEN_WHITESPACE;)t=this.tokens.nextToken();return t},i.peekToken=function(){return this.peeked=this.peeked||this.nextToken(),this.peeked},i.pushToken=function(e){if(this.peeked)throw new Error("pushToken: can only push one token on between reads");this.peeked=e},i.error=function(e,t,n){if(void 0===t||void 0===n){var r=this.peekToken()||{};t=r.lineno,n=r.colno}return void 0!==t&&(t+=1),void 0!==n&&(n+=1),new je.TemplateError(e,t,n)},i.fail=function(e,t,n){throw this.error(e,t,n)},i.skip=function(e){var t=this.nextToken();return!(!t||t.type!==e)||(this.pushToken(t),!1)},i.expect=function(e){var t=this.nextToken();return t.type!==e&&this.fail("expected "+e+", got "+t.type,t.lineno,t.colno),t},i.skipValue=function(e,t){var n=this.nextToken();return!(!n||n.type!==e||n.value!==t)||(this.pushToken(n),!1)},i.skipSymbol=function(e){return this.skipValue(Vt.TOKEN_SYMBOL,e)},i.advanceAfterBlockEnd=function(e){var t;return e||((t=this.peekToken())||this.fail("unexpected end of file"),t.type!==Vt.TOKEN_SYMBOL&&this.fail("advanceAfterBlockEnd: expected symbol token or explicit name to be passed"),e=this.nextToken().value),(t=this.nextToken())&&t.type===Vt.TOKEN_BLOCK_END?"-"===t.value.charAt(0)&&(this.dropLeadingWhitespace=!0):this.fail("expected block end in "+e+" statement"),t},i.advanceAfterVariableEnd=function(){var e=this.nextToken();e&&e.type===Vt.TOKEN_VARIABLE_END?this.dropLeadingWhitespace="-"===e.value.charAt(e.value.length-this.tokens.tags.VARIABLE_END.length-1):(this.pushToken(e),this.fail("expected variable end"))},i.parseFor=function(){var e,t,n=this.peekToken();if(this.skipSymbol("for")?(e=new hr.For(n.lineno,n.colno),t="endfor"):this.skipSymbol("asyncEach")?(e=new hr.AsyncEach(n.lineno,n.colno),t="endeach"):this.skipSymbol("asyncAll")?(e=new hr.AsyncAll(n.lineno,n.colno),t="endall"):this.fail("parseFor: expected for{Async}",n.lineno,n.colno),e.name=this.parsePrimary(),e.name instanceof hr.Symbol||this.fail("parseFor: variable name expected for loop"),this.peekToken().type===Vt.TOKEN_COMMA){var r=e.name;for(e.name=new hr.Array(r.lineno,r.colno),e.name.addChild(r);this.skip(Vt.TOKEN_COMMA);){var i=this.parsePrimary();e.name.addChild(i)}}return this.skipSymbol("in")||this.fail('parseFor: expected "in" keyword for loop',n.lineno,n.colno),e.arr=this.parseExpression(),this.advanceAfterBlockEnd(n.value),e.body=this.parseUntilBlocks(t,"else"),this.skipSymbol("else")&&(this.advanceAfterBlockEnd("else"),e.else_=this.parseUntilBlocks(t)),this.advanceAfterBlockEnd(),e},i.parseMacro=function(){var e=this.peekToken();this.skipSymbol("macro")||this.fail("expected macro");var t=this.parsePrimary(!0),n=this.parseSignature(),r=new hr.Macro(e.lineno,e.colno,t,n);return this.advanceAfterBlockEnd(e.value),r.body=this.parseUntilBlocks("endmacro"),this.advanceAfterBlockEnd(),r},i.parseCall=function(){var e=this.peekToken();this.skipSymbol("call")||this.fail("expected call");var t=this.parseSignature(!0)||new hr.NodeList,n=this.parsePrimary();this.advanceAfterBlockEnd(e.value);var r=this.parseUntilBlocks("endcall");this.advanceAfterBlockEnd();var i=new hr.Symbol(e.lineno,e.colno,"caller"),s=new hr.Caller(e.lineno,e.colno,i,t,r),a=n.args.children;return a[a.length-1]instanceof hr.KeywordArgs||a.push(new hr.KeywordArgs),a[a.length-1].addChild(new hr.Pair(e.lineno,e.colno,i,s)),new hr.Output(e.lineno,e.colno,[n])},i.parseWithContext=function(){var e=this.peekToken(),t=null;return this.skipSymbol("with")?t=!0:this.skipSymbol("without")&&(t=!1),null!==t&&(this.skipSymbol("context")||this.fail("parseFrom: expected context after with/without",e.lineno,e.colno)),t},i.parseImport=function(){var e=this.peekToken();this.skipSymbol("import")||this.fail("parseImport: expected import",e.lineno,e.colno);var t=this.parseExpression();this.skipSymbol("as")||this.fail('parseImport: expected "as" keyword',e.lineno,e.colno);var n=this.parseExpression(),r=this.parseWithContext(),i=new hr.Import(e.lineno,e.colno,t,n,r);return this.advanceAfterBlockEnd(e.value),i},i.parseFrom=function(){var e=this.peekToken();this.skipSymbol("from")||this.fail("parseFrom: expected from");var t=this.parseExpression();this.skipSymbol("import")||this.fail("parseFrom: expected import",e.lineno,e.colno);for(var n,r=new hr.NodeList;;){var i=this.peekToken();if(i.type===Vt.TOKEN_BLOCK_END){r.children.length||this.fail("parseFrom: Expected at least one import name",e.lineno,e.colno),"-"===i.value.charAt(0)&&(this.dropLeadingWhitespace=!0),this.nextToken();break}r.children.length>0&&!this.skip(Vt.TOKEN_COMMA)&&this.fail("parseFrom: expected comma",e.lineno,e.colno);var s=this.parsePrimary();if("_"===s.value.charAt(0)&&this.fail("parseFrom: names starting with an underscore cannot be imported",s.lineno,s.colno),this.skipSymbol("as")){var a=this.parsePrimary();r.addChild(new hr.Pair(s.lineno,s.colno,s,a))}else r.addChild(s);n=this.parseWithContext()}return new hr.FromImport(e.lineno,e.colno,t,r,n)},i.parseBlock=function(){var e=this.peekToken();this.skipSymbol("block")||this.fail("parseBlock: expected block",e.lineno,e.colno);var t=new hr.Block(e.lineno,e.colno);t.name=this.parsePrimary(),t.name instanceof hr.Symbol||this.fail("parseBlock: variable name expected",e.lineno,e.colno),this.advanceAfterBlockEnd(e.value),t.body=this.parseUntilBlocks("endblock"),this.skipSymbol("endblock"),this.skipSymbol(t.name.value);var n=this.peekToken();return n||this.fail("parseBlock: expected endblock, got end of file"),this.advanceAfterBlockEnd(n.value),t},i.parseExtends=function(){var e="extends",t=this.peekToken();this.skipSymbol(e)||this.fail("parseTemplateRef: expected extends");var n=new hr.Extends(t.lineno,t.colno);return n.template=this.parseExpression(),this.advanceAfterBlockEnd(t.value),n},i.parseInclude=function(){var e="include",t=this.peekToken();this.skipSymbol(e)||this.fail("parseInclude: expected include");var n=new hr.Include(t.lineno,t.colno);return n.template=this.parseExpression(),this.skipSymbol("ignore")&&this.skipSymbol("missing")&&(n.ignoreMissing=!0),this.advanceAfterBlockEnd(t.value),n},i.parseIf=function(){var e,t=this.peekToken();this.skipSymbol("if")||this.skipSymbol("elif")||this.skipSymbol("elseif")?e=new hr.If(t.lineno,t.colno):this.skipSymbol("ifAsync")?e=new hr.IfAsync(t.lineno,t.colno):this.fail("parseIf: expected if, elif, or elseif",t.lineno,t.colno),e.cond=this.parseExpression(),this.advanceAfterBlockEnd(t.value),e.body=this.parseUntilBlocks("elif","elseif","else","endif");var n=this.peekToken();switch(n&&n.value){case"elseif":case"elif":e.else_=this.parseIf();break;case"else":this.advanceAfterBlockEnd(),e.else_=this.parseUntilBlocks("endif"),this.advanceAfterBlockEnd();break;case"endif":e.else_=null,this.advanceAfterBlockEnd();break;default:this.fail("parseIf: expected elif, else, or endif, got end of file")}return e},i.parseSet=function(){var e=this.peekToken();this.skipSymbol("set")||this.fail("parseSet: expected set",e.lineno,e.colno);for(var t,n=new hr.Set(e.lineno,e.colno,[]);(t=this.parsePrimary())&&(n.targets.push(t),this.skip(Vt.TOKEN_COMMA)););return this.skipValue(Vt.TOKEN_OPERATOR,"=")?(n.value=this.parseExpression(),this.advanceAfterBlockEnd(e.value)):this.skip(Vt.TOKEN_BLOCK_END)?(n.body=new hr.Capture(e.lineno,e.colno,this.parseUntilBlocks("endset")),n.value=null,this.advanceAfterBlockEnd()):this.fail("parseSet: expected = or block end in set tag",e.lineno,e.colno),n},i.parseSwitch=function(){var e="switch",t="endswitch",n="case",r="default",i=this.peekToken();this.skipSymbol(e)||this.skipSymbol(n)||this.skipSymbol(r)||this.fail('parseSwitch: expected "switch," "case" or "default"',i.lineno,i.colno);var s=this.parseExpression();this.advanceAfterBlockEnd(e),this.parseUntilBlocks(n,r,t);var a,o=this.peekToken(),c=[];do{this.skipSymbol(n);var l=this.parseExpression();this.advanceAfterBlockEnd(e);var h=this.parseUntilBlocks(n,r,t);c.push(new hr.Case(o.line,o.col,l,h)),o=this.peekToken()}while(o&&o.value===n);switch(o.value){case r:this.advanceAfterBlockEnd(),a=this.parseUntilBlocks(t),this.advanceAfterBlockEnd();break;case t:this.advanceAfterBlockEnd();break;default:this.fail('parseSwitch: expected "case," "default" or "endswitch," got EOF.')}return new hr.Switch(i.lineno,i.colno,s,c,a)},i.parseStatement=function(){var e=this.peekToken();if(e.type!==Vt.TOKEN_SYMBOL&&this.fail("tag name expected",e.lineno,e.colno),this.breakOnBlocks&&-1!==je.indexOf(this.breakOnBlocks,e.value))return null;switch(e.value){case"raw":return this.parseRaw();case"verbatim":return this.parseRaw("verbatim");case"if":case"ifAsync":return this.parseIf();case"for":case"asyncEach":case"asyncAll":return this.parseFor();case"block":return this.parseBlock();case"extends":return this.parseExtends();case"include":return this.parseInclude();case"set":return this.parseSet();case"macro":return this.parseMacro();case"call":return this.parseCall();case"import":return this.parseImport();case"from":return this.parseFrom();case"filter":return this.parseFilterStatement();case"switch":return this.parseSwitch();default:if(this.extensions.length)for(var t=0;t0;){var o=s[0],c=s[1],l=s[2];l===e?r+=1:l===t&&(r-=1),0===r?(i+=c,this.tokens.backN(o.length-c.length)):i+=o}return new hr.Output(a.lineno,a.colno,[new hr.TemplateData(a.lineno,a.colno,i)])},i.parsePostfix=function(e){for(var t,n=this.peekToken();n;){if(n.type===Vt.TOKEN_LEFT_PAREN)e=new hr.FunCall(n.lineno,n.colno,e,this.parseSignature());else if(n.type===Vt.TOKEN_LEFT_BRACKET)(t=this.parseAggregate()).children.length>1&&this.fail("invalid index"),e=new hr.LookupVal(n.lineno,n.colno,e,t.children[0]);else{if(n.type!==Vt.TOKEN_OPERATOR||"."!==n.value)break;this.nextToken();var r=this.nextToken();r.type!==Vt.TOKEN_SYMBOL&&this.fail("expected name as lookup value, got "+r.value,r.lineno,r.colno),t=new hr.Literal(r.lineno,r.colno,r.value),e=new hr.LookupVal(n.lineno,n.colno,e,t)}n=this.peekToken()}return e},i.parseExpression=function(){return this.parseInlineIf()},i.parseInlineIf=function(){var e=this.parseOr();if(this.skipSymbol("if")){var t=this.parseOr(),n=e;(e=new hr.InlineIf(e.lineno,e.colno)).body=n,e.cond=t,this.skipSymbol("else")?e.else_=this.parseOr():e.else_=null}return e},i.parseOr=function(){for(var e=this.parseAnd();this.skipSymbol("or");){var t=this.parseAnd();e=new hr.Or(e.lineno,e.colno,e,t)}return e},i.parseAnd=function(){for(var e=this.parseNot();this.skipSymbol("and");){var t=this.parseNot();e=new hr.And(e.lineno,e.colno,e,t)}return e},i.parseNot=function(){var e=this.peekToken();return this.skipSymbol("not")?new hr.Not(e.lineno,e.colno,this.parseNot()):this.parseIn()},i.parseIn=function(){for(var e=this.parseIs();;){var t=this.nextToken();if(!t)break;var n=t.type===Vt.TOKEN_SYMBOL&&"not"===t.value;if(n||this.pushToken(t),!this.skipSymbol("in")){n&&this.pushToken(t);break}var r=this.parseIs();e=new hr.In(e.lineno,e.colno,e,r),n&&(e=new hr.Not(e.lineno,e.colno,e))}return e},i.parseIs=function(){var e=this.parseCompare();if(this.skipSymbol("is")){var t=this.skipSymbol("not"),n=this.parseCompare();e=new hr.Is(e.lineno,e.colno,e,n),t&&(e=new hr.Not(e.lineno,e.colno,e))}return e},i.parseCompare=function(){for(var e=["==","===","!=","!==","<",">","<=",">="],t=this.parseConcat(),n=[];;){var r=this.nextToken();if(!r)break;if(-1===e.indexOf(r.value)){this.pushToken(r);break}n.push(new hr.CompareOperand(r.lineno,r.colno,this.parseConcat(),r.value))}return n.length?new hr.Compare(n[0].lineno,n[0].colno,t,n):t},i.parseConcat=function(){for(var e=this.parseAdd();this.skipValue(Vt.TOKEN_TILDE,"~");){var t=this.parseAdd();e=new hr.Concat(e.lineno,e.colno,e,t)}return e},i.parseAdd=function(){for(var e=this.parseSub();this.skipValue(Vt.TOKEN_OPERATOR,"+");){var t=this.parseSub();e=new hr.Add(e.lineno,e.colno,e,t)}return e},i.parseSub=function(){for(var e=this.parseMul();this.skipValue(Vt.TOKEN_OPERATOR,"-");){var t=this.parseMul();e=new hr.Sub(e.lineno,e.colno,e,t)}return e},i.parseMul=function(){for(var e=this.parseDiv();this.skipValue(Vt.TOKEN_OPERATOR,"*");){var t=this.parseDiv();e=new hr.Mul(e.lineno,e.colno,e,t)}return e},i.parseDiv=function(){for(var e=this.parseFloorDiv();this.skipValue(Vt.TOKEN_OPERATOR,"/");){var t=this.parseFloorDiv();e=new hr.Div(e.lineno,e.colno,e,t)}return e},i.parseFloorDiv=function(){for(var e=this.parseMod();this.skipValue(Vt.TOKEN_OPERATOR,"//");){var t=this.parseMod();e=new hr.FloorDiv(e.lineno,e.colno,e,t)}return e},i.parseMod=function(){for(var e=this.parsePow();this.skipValue(Vt.TOKEN_OPERATOR,"%");){var t=this.parsePow();e=new hr.Mod(e.lineno,e.colno,e,t)}return e},i.parsePow=function(){for(var e=this.parseUnary();this.skipValue(Vt.TOKEN_OPERATOR,"**");){var t=this.parseUnary();e=new hr.Pow(e.lineno,e.colno,e,t)}return e},i.parseUnary=function(e){var t,n=this.peekToken();return t=this.skipValue(Vt.TOKEN_OPERATOR,"-")?new hr.Neg(n.lineno,n.colno,this.parseUnary(!0)):this.skipValue(Vt.TOKEN_OPERATOR,"+")?new hr.Pos(n.lineno,n.colno,this.parseUnary(!0)):this.parsePrimary(),e||(t=this.parseFilter(t)),t},i.parsePrimary=function(e){var t,n=this.nextToken(),r=null;if(n?n.type===Vt.TOKEN_STRING?t=n.value:n.type===Vt.TOKEN_INT?t=parseInt(n.value,10):n.type===Vt.TOKEN_FLOAT?t=parseFloat(n.value):n.type===Vt.TOKEN_BOOLEAN?"true"===n.value?t=!0:"false"===n.value?t=!1:this.fail("invalid boolean: "+n.value,n.lineno,n.colno):n.type===Vt.TOKEN_NONE?t=null:n.type===Vt.TOKEN_REGEX&&(t=new RegExp(n.value.body,n.value.flags)):this.fail("expected expression, got end of file"),void 0!==t?r=new hr.Literal(n.lineno,n.colno,t):n.type===Vt.TOKEN_SYMBOL?r=new hr.Symbol(n.lineno,n.colno,n.value):(this.pushToken(n),r=this.parseAggregate()),e||(r=this.parsePostfix(r)),r)return r;throw this.error("unexpected token: "+n.value,n.lineno,n.colno)},i.parseFilterName=function(){for(var e=this.expect(Vt.TOKEN_SYMBOL),t=e.value;this.skipValue(Vt.TOKEN_OPERATOR,".");)t+="."+this.expect(Vt.TOKEN_SYMBOL).value;return new hr.Symbol(e.lineno,e.colno,t)},i.parseFilterArgs=function(e){return this.peekToken().type===Vt.TOKEN_LEFT_PAREN?this.parsePostfix(e).args.children:[]},i.parseFilter=function(e){for(;this.skip(Vt.TOKEN_PIPE);){var t=this.parseFilterName();e=new hr.Filter(t.lineno,t.colno,t,new hr.NodeList(t.lineno,t.colno,[e].concat(this.parseFilterArgs(e))))}return e},i.parseFilterStatement=function(){var e=this.peekToken();this.skipSymbol("filter")||this.fail("parseFilterStatement: expected filter");var t=this.parseFilterName(),n=this.parseFilterArgs(t);this.advanceAfterBlockEnd(e.value);var r=new hr.Capture(t.lineno,t.colno,this.parseUntilBlocks("endfilter"));this.advanceAfterBlockEnd();var i=new hr.Filter(t.lineno,t.colno,t,new hr.NodeList(t.lineno,t.colno,[r].concat(n)));return new hr.Output(t.lineno,t.colno,[i])},i.parseAggregate=function(){var e,t=this.nextToken();switch(t.type){case Vt.TOKEN_LEFT_PAREN:e=new hr.Group(t.lineno,t.colno);break;case Vt.TOKEN_LEFT_BRACKET:e=new hr.Array(t.lineno,t.colno);break;case Vt.TOKEN_LEFT_CURLY:e=new hr.Dict(t.lineno,t.colno);break;default:return null}for(;;){var n=this.peekToken().type;if(n===Vt.TOKEN_RIGHT_PAREN||n===Vt.TOKEN_RIGHT_BRACKET||n===Vt.TOKEN_RIGHT_CURLY){this.nextToken();break}if(e.children.length>0&&(this.skip(Vt.TOKEN_COMMA)||this.fail("parseAggregate: expected comma after expression",t.lineno,t.colno)),e instanceof hr.Dict){var r=this.parsePrimary();this.skip(Vt.TOKEN_COLON)||this.fail("parseAggregate: expected colon after dict key",t.lineno,t.colno);var i=this.parseExpression();e.addChild(new hr.Pair(r.lineno,r.colno,r,i))}else{var s=this.parseExpression();e.addChild(s)}}return e},i.parseSignature=function(e,t){var n=this.peekToken();if(!t&&n.type!==Vt.TOKEN_LEFT_PAREN){if(e)return null;this.fail("expected arguments",n.lineno,n.colno)}n.type===Vt.TOKEN_LEFT_PAREN&&(n=this.nextToken());for(var r=new hr.NodeList(n.lineno,n.colno),i=new hr.KeywordArgs(n.lineno,n.colno),s=!1;;){if(n=this.peekToken(),!t&&n.type===Vt.TOKEN_RIGHT_PAREN){this.nextToken();break}if(t&&n.type===Vt.TOKEN_BLOCK_END)break;if(s&&!this.skip(Vt.TOKEN_COMMA))this.fail("parseSignature: expected comma after expression",n.lineno,n.colno);else{var a=this.parseExpression();this.skipValue(Vt.TOKEN_OPERATOR,"=")?i.addChild(new hr.Pair(a.lineno,a.colno,a,this.parseExpression())):r.addChild(a)}s=!0}return i.children.length&&r.addChild(i),r},i.parseUntilBlocks=function(){for(var e=this.breakOnBlocks,t=arguments.length,n=new Array(t),r=0;re.length)a=i.slice(0,e.length),i.slice(a.length,o).forEach((function(e,n){n":">","<=":"<=",">=":">="},Pr=function(e){var t,n;function r(){return e.apply(this,arguments)||this}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,vr(t,n);var i=r.prototype;return i.init=function(e,t){this.templateName=e,this.codebuf=[],this.lastId=0,this.buffer=null,this.bufferStack=[],this._scopeClosers="",this.inBlock=!1,this.throwOnUndefined=t},i.fail=function(e,t,n){throw void 0!==t&&(t+=1),void 0!==n&&(n+=1),new Dr(e,t,n)},i._pushBuffer=function(){var e=this._tmpid();return this.bufferStack.push(this.buffer),this.buffer=e,this._emit("var "+this.buffer+' = "";'),e},i._popBuffer=function(){this.buffer=this.bufferStack.pop()},i._emit=function(e){this.codebuf.push(e)},i._emitLine=function(e){this._emit(e+"\n")},i._emitLines=function(){for(var e=this,t=arguments.length,n=new Array(t),r=0;r0&&i._emit(","),i.compile(e,t)})),r&&this._emit(r)},i._compileExpression=function(e,t){this.assertType(e,hr.Literal,hr.Symbol,hr.Group,hr.Array,hr.Dict,hr.FunCall,hr.Caller,hr.Filter,hr.LookupVal,hr.Compare,hr.InlineIf,hr.In,hr.Is,hr.And,hr.Or,hr.Not,hr.Add,hr.Concat,hr.Sub,hr.Mul,hr.Div,hr.FloorDiv,hr.Mod,hr.Pow,hr.Neg,hr.Pos,hr.Compare,hr.NodeList),this.compile(e,t)},i.assertType=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r0&&r._emit(","),e){r._emitLine("function(cb) {"),r._emitLine("if(!cb) { cb = function(err) { if(err) { throw err; }}}");var i=r._pushBuffer();r._withScopedSyntax((function(){r.compile(e,t),r._emitLine("cb(null, "+i+");")})),r._popBuffer(),r._emitLine("return "+i+";"),r._emitLine("}")}else r._emit("null")})),n){var o=this._tmpid();this._emitLine(", "+this._makeCallback(o)),this._emitLine(this.buffer+" += runtime.suppressValue("+o+", "+a+" && env.opts.autoescape);"),this._addScopeLevel()}else this._emit(")"),this._emit(", "+a+" && env.opts.autoescape);\n")},i.compileCallExtensionAsync=function(e,t){this.compileCallExtension(e,t,!0)},i.compileNodeList=function(e,t){this._compileChildren(e,t)},i.compileLiteral=function(e){if("string"==typeof e.value){var t=e.value.replace(/\\/g,"\\\\");t=(t=(t=(t=(t=t.replace(/"/g,'\\"')).replace(/\n/g,"\\n")).replace(/\r/g,"\\r")).replace(/\t/g,"\\t")).replace(/\u2028/g,"\\u2028"),this._emit('"'+t+'"')}else null===e.value?this._emit("null"):this._emit(e.value.toString())},i.compileSymbol=function(e,t){var n=e.value,r=t.lookup(n);r?this._emit(r):this._emit('runtime.contextOrFrameLookup(context, frame, "'+n+'")')},i.compileGroup=function(e,t){this._compileAggregate(e,t,"(",")")},i.compileArray=function(e,t){this._compileAggregate(e,t,"[","]")},i.compileDict=function(e,t){this._compileAggregate(e,t,"{","}")},i.compilePair=function(e,t){var n=e.key,r=e.value;n instanceof hr.Symbol?n=new hr.Literal(n.lineno,n.colno,n.value):n instanceof hr.Literal&&"string"==typeof n.value||this.fail("compilePair: Dict keys must be strings or names",n.lineno,n.colno),this.compile(n,t),this._emit(": "),this._compileExpression(r,t)},i.compileInlineIf=function(e,t){this._emit("("),this.compile(e.cond,t),this._emit("?"),this.compile(e.body,t),this._emit(":"),null!==e.else_?this.compile(e.else_,t):this._emit('""'),this._emit(")")},i.compileIn=function(e,t){this._emit("runtime.inOperator("),this.compile(e.left,t),this._emit(","),this.compile(e.right,t),this._emit(")")},i.compileIs=function(e,t){var n=e.right.name?e.right.name.value:e.right.value;this._emit('env.getTest("'+n+'").call(context, '),this.compile(e.left,t),e.right.args&&(this._emit(","),this.compile(e.right.args,t)),this._emit(") === true")},i._binOpEmitter=function(e,t,n){this.compile(e.left,t),this._emit(n),this.compile(e.right,t)},i.compileOr=function(e,t){return this._binOpEmitter(e,t," || ")},i.compileAnd=function(e,t){return this._binOpEmitter(e,t," && ")},i.compileAdd=function(e,t){return this._binOpEmitter(e,t," + ")},i.compileConcat=function(e,t){return this._binOpEmitter(e,t,' + "" + ')},i.compileSub=function(e,t){return this._binOpEmitter(e,t," - ")},i.compileMul=function(e,t){return this._binOpEmitter(e,t," * ")},i.compileDiv=function(e,t){return this._binOpEmitter(e,t," / ")},i.compileMod=function(e,t){return this._binOpEmitter(e,t," % ")},i.compileNot=function(e,t){this._emit("!"),this.compile(e.target,t)},i.compileFloorDiv=function(e,t){this._emit("Math.floor("),this.compile(e.left,t),this._emit(" / "),this.compile(e.right,t),this._emit(")")},i.compilePow=function(e,t){this._emit("Math.pow("),this.compile(e.left,t),this._emit(", "),this.compile(e.right,t),this._emit(")")},i.compileNeg=function(e,t){this._emit("-"),this.compile(e.target,t)},i.compilePos=function(e,t){this._emit("+"),this.compile(e.target,t)},i.compileCompare=function(e,t){var n=this;this.compile(e.expr,t),e.ops.forEach((function(e){n._emit(" "+Mr[e.type]+" "),n.compile(e.expr,t)}))},i.compileLookupVal=function(e,t){this._emit("runtime.memberLookup(("),this._compileExpression(e.target,t),this._emit("),"),this._compileExpression(e.val,t),this._emit(")")},i._getNodeName=function(e){switch(e.typename){case"Symbol":return e.value;case"FunCall":return"the return value of ("+this._getNodeName(e.name)+")";case"LookupVal":return this._getNodeName(e.target)+'["'+this._getNodeName(e.val)+'"]';case"Literal":return e.value.toString();default:return"--expression--"}},i.compileFunCall=function(e,t){this._emit("(lineno = "+e.lineno+", colno = "+e.colno+", "),this._emit("runtime.callWrap("),this._compileExpression(e.name,t),this._emit(', "'+this._getNodeName(e.name).replace(/"/g,'\\"')+'", context, '),this._compileAggregate(e.args,t,"[","])"),this._emit(")")},i.compileFilter=function(e,t){var n=e.name;this.assertType(n,hr.Symbol),this._emit('env.getFilter("'+n.value+'").call(context, '),this._compileAggregate(e.args,t),this._emit(")")},i.compileFilterAsync=function(e,t){var n=e.name,r=e.symbol.value;this.assertType(n,hr.Symbol),t.set(r,r),this._emit('env.getFilter("'+n.value+'").call(context, '),this._compileAggregate(e.args,t),this._emitLine(", "+this._makeCallback(r)),this._addScopeLevel()},i.compileKeywordArgs=function(e,t){this._emit("runtime.makeKeywordArgs("),this.compileDict(e,t),this._emit(")")},i.compileSet=function(e,t){var n=this,r=[];e.targets.forEach((function(e){var i=e.value,s=t.lookup(i);null==s&&(s=n._tmpid(),n._emitLine("var "+s+";")),r.push(s)})),e.value?(this._emit(r.join(" = ")+" = "),this._compileExpression(e.value,t),this._emitLine(";")):(this._emit(r.join(" = ")+" = "),this.compile(e.body,t),this._emitLine(";")),e.targets.forEach((function(e,t){var i=r[t],s=e.value;n._emitLine('frame.set("'+s+'", '+i+", true);"),n._emitLine("if(frame.topLevel) {"),n._emitLine('context.setVariable("'+s+'", '+i+");"),n._emitLine("}"),"_"!==s.charAt(0)&&(n._emitLine("if(frame.topLevel) {"),n._emitLine('context.addExport("'+s+'", '+i+");"),n._emitLine("}"))}))},i.compileSwitch=function(e,t){var n=this;this._emit("switch ("),this.compile(e.expr,t),this._emit(") {"),e.cases.forEach((function(e,r){n._emit("case "),n.compile(e.cond,t),n._emit(": "),n.compile(e.body,t),e.body.children.length&&n._emitLine("break;")})),e.default&&(this._emit("default:"),this.compile(e.default,t)),this._emit("}")},i.compileIf=function(e,t,n){var r=this;this._emit("if("),this._compileExpression(e.cond,t),this._emitLine(") {"),this._withScopedSyntax((function(){r.compile(e.body,t),n&&r._emit("cb()")})),e.else_?(this._emitLine("}\nelse {"),this._withScopedSyntax((function(){r.compile(e.else_,t),n&&r._emit("cb()")}))):n&&(this._emitLine("}\nelse {"),this._emit("cb()")),this._emitLine("}")},i.compileIfAsync=function(e,t){this._emit("(function(cb) {"),this.compileIf(e,t,!0),this._emit("})("+this._makeCallback()),this._addScopeLevel()},i._emitLoopBindings=function(e,t,n,r){var i=this;[{name:"index",val:n+" + 1"},{name:"index0",val:n},{name:"revindex",val:r+" - "+n},{name:"revindex0",val:r+" - "+n+" - 1"},{name:"first",val:n+" === 0"},{name:"last",val:n+" === "+r+" - 1"},{name:"length",val:r}].forEach((function(e){i._emitLine('frame.set("loop.'+e.name+'", '+e.val+");")}))},i.compileFor=function(e,t){var n=this,r=this._tmpid(),i=this._tmpid(),s=this._tmpid();if(t=t.push(),this._emitLine("frame = frame.push();"),this._emit("var "+s+" = "),this._compileExpression(e.arr,t),this._emitLine(";"),this._emit("if("+s+") {"),this._emitLine(s+" = runtime.fromIterator("+s+");"),e.name instanceof hr.Array){this._emitLine("var "+r+";"),this._emitLine("if(runtime.isArray("+s+")) {"),this._emitLine("var "+i+" = "+s+".length;"),this._emitLine("for("+r+"=0; "+r+" < "+s+".length; "+r+"++) {"),e.name.children.forEach((function(i,a){var o=n._tmpid();n._emitLine("var "+o+" = "+s+"["+r+"]["+a+"];"),n._emitLine('frame.set("'+i+'", '+s+"["+r+"]["+a+"]);"),t.set(e.name.children[a].value,o)})),this._emitLoopBindings(e,s,r,i),this._withScopedSyntax((function(){n.compile(e.body,t)})),this._emitLine("}"),this._emitLine("} else {");var a=e.name.children,o=a[0],c=a[1],l=this._tmpid(),h=this._tmpid();t.set(o.value,l),t.set(c.value,h),this._emitLine(r+" = -1;"),this._emitLine("var "+i+" = runtime.keys("+s+").length;"),this._emitLine("for(var "+l+" in "+s+") {"),this._emitLine(r+"++;"),this._emitLine("var "+h+" = "+s+"["+l+"];"),this._emitLine('frame.set("'+o.value+'", '+l+");"),this._emitLine('frame.set("'+c.value+'", '+h+");"),this._emitLoopBindings(e,s,r,i),this._withScopedSyntax((function(){n.compile(e.body,t)})),this._emitLine("}"),this._emitLine("}")}else{var u=this._tmpid();t.set(e.name.value,u),this._emitLine("var "+i+" = "+s+".length;"),this._emitLine("for(var "+r+"=0; "+r+" < "+s+".length; "+r+"++) {"),this._emitLine("var "+u+" = "+s+"["+r+"];"),this._emitLine('frame.set("'+e.name.value+'", '+u+");"),this._emitLoopBindings(e,s,r,i),this._withScopedSyntax((function(){n.compile(e.body,t)})),this._emitLine("}")}this._emitLine("}"),e.else_&&(this._emitLine("if (!"+i+") {"),this.compile(e.else_,t),this._emitLine("}")),this._emitLine("frame = frame.pop();")},i._compileAsyncLoop=function(e,t,n){var r=this,i=this._tmpid(),s=this._tmpid(),a=this._tmpid(),o=n?"asyncAll":"asyncEach";if(t=t.push(),this._emitLine("frame = frame.push();"),this._emit("var "+a+" = runtime.fromIterator("),this._compileExpression(e.arr,t),this._emitLine(");"),e.name instanceof hr.Array){var c=e.name.children.length;this._emit("runtime."+o+"("+a+", "+c+", function("),e.name.children.forEach((function(e){r._emit(e.value+",")})),this._emit(i+","+s+",next) {"),e.name.children.forEach((function(e){var n=e.value;t.set(n,n),r._emitLine('frame.set("'+n+'", '+n+");")}))}else{var l=e.name.value;this._emitLine("runtime."+o+"("+a+", 1, function("+l+", "+i+", "+s+",next) {"),this._emitLine('frame.set("'+l+'", '+l+");"),t.set(l,l)}this._emitLoopBindings(e,a,i,s),this._withScopedSyntax((function(){var s;n&&(s=r._pushBuffer()),r.compile(e.body,t),r._emitLine("next("+i+(s?","+s:"")+");"),n&&r._popBuffer()}));var h=this._tmpid();this._emitLine("}, "+this._makeCallback(h)),this._addScopeLevel(),n&&this._emitLine(this.buffer+" += "+h+";"),e.else_&&(this._emitLine("if (!"+a+".length) {"),this.compile(e.else_,t),this._emitLine("}")),this._emitLine("frame = frame.pop();")},i.compileAsyncEach=function(e,t){this._compileAsyncLoop(e,t)},i.compileAsyncAll=function(e,t){this._compileAsyncLoop(e,t,!0)},i._compileMacro=function(e,t){var n=this,r=[],i=null,s="macro_"+this._tmpid(),a=void 0!==t;e.args.children.forEach((function(t,s){s===e.args.children.length-1&&t instanceof hr.Dict?i=t:(n.assertType(t,hr.Symbol),r.push(t))}));var o,c=[].concat(r.map((function(e){return"l_"+e.value})),["kwargs"]),l=r.map((function(e){return'"'+e.value+'"'})),h=(i&&i.children||[]).map((function(e){return'"'+e.key.value+'"'}));o=a?t.push(!0):new Rr,this._emitLines("var "+s+" = runtime.makeMacro(","["+l.join(", ")+"], ","["+h.join(", ")+"], ","function ("+c.join(", ")+") {","var callerFrame = frame;","frame = "+(a?"frame.push(true);":"new runtime.Frame();"),"kwargs = kwargs || {};",'if (Object.prototype.hasOwnProperty.call(kwargs, "caller")) {','frame.set("caller", kwargs.caller); }'),r.forEach((function(e){n._emitLine('frame.set("'+e.value+'", l_'+e.value+");"),o.set(e.value,"l_"+e.value)})),i&&i.children.forEach((function(e){var t=e.key.value;n._emit('frame.set("'+t+'", '),n._emit('Object.prototype.hasOwnProperty.call(kwargs, "'+t+'")'),n._emit(' ? kwargs["'+t+'"] : '),n._compileExpression(e.value,o),n._emit(");")}));var u=this._pushBuffer();return this._withScopedSyntax((function(){n.compile(e.body,o)})),this._emitLine("frame = "+(a?"frame.pop();":"callerFrame;")),this._emitLine("return new runtime.SafeString("+u+");"),this._emitLine("});"),this._popBuffer(),s},i.compileMacro=function(e,t){var n=this._compileMacro(e),r=e.name.value;t.set(r,n),t.parent?this._emitLine('frame.set("'+r+'", '+n+");"):("_"!==e.name.value.charAt(0)&&this._emitLine('context.addExport("'+r+'");'),this._emitLine('context.setVariable("'+r+'", '+n+");"))},i.compileCaller=function(e,t){this._emit("(function (){");var n=this._compileMacro(e,t);this._emit("return "+n+";})()")},i._compileGetTemplate=function(e,t,n,r){var i=this._tmpid(),s=this._templateName(),a=this._makeCallback(i),o=n?"true":"false",c=r?"true":"false";return this._emit("env.getTemplate("),this._compileExpression(e.template,t),this._emitLine(", "+o+", "+s+", "+c+", "+a),i},i.compileImport=function(e,t){var n=e.target.value,r=this._compileGetTemplate(e,t,!1,!1);this._addScopeLevel(),this._emitLine(r+".getExported("+(e.withContext?"context.getVariables(), frame, ":"")+this._makeCallback(r)),this._addScopeLevel(),t.set(n,r),t.parent?this._emitLine('frame.set("'+n+'", '+r+");"):this._emitLine('context.setVariable("'+n+'", '+r+");")},i.compileFromImport=function(e,t){var n=this,r=this._compileGetTemplate(e,t,!1,!1);this._addScopeLevel(),this._emitLine(r+".getExported("+(e.withContext?"context.getVariables(), frame, ":"")+this._makeCallback(r)),this._addScopeLevel(),e.names.children.forEach((function(e){var i,s,a=n._tmpid();e instanceof hr.Pair?(i=e.key.value,s=e.value.value):s=i=e.value,n._emitLine("if(Object.prototype.hasOwnProperty.call("+r+', "'+i+'")) {'),n._emitLine("var "+a+" = "+r+"."+i+";"),n._emitLine("} else {"),n._emitLine("cb(new Error(\"cannot import '"+i+"'\")); return;"),n._emitLine("}"),t.set(s,a),t.parent?n._emitLine('frame.set("'+s+'", '+a+");"):n._emitLine('context.setVariable("'+s+'", '+a+");")}))},i.compileBlock=function(e){var t=this._tmpid();this.inBlock||this._emit('(parentTemplate ? function(e, c, f, r, cb) { cb(""); } : '),this._emit('context.getBlock("'+e.name.value+'")'),this.inBlock||this._emit(")"),this._emitLine("(env, context, frame, runtime, "+this._makeCallback(t)),this._emitLine(this.buffer+" += "+t+";"),this._addScopeLevel()},i.compileSuper=function(e,t){var n=e.blockName.value,r=e.symbol.value,i=this._makeCallback(r);this._emitLine('context.getSuper(env, "'+n+'", b_'+n+", frame, runtime, "+i),this._emitLine(r+" = runtime.markSafe("+r+");"),this._addScopeLevel(),t.set(r,r)},i.compileExtends=function(e,t){var n=this._tmpid(),r=this._compileGetTemplate(e,t,!0,!1);this._emitLine("parentTemplate = "+r),this._emitLine("for(var "+n+" in parentTemplate.blocks) {"),this._emitLine("context.addBlock("+n+", parentTemplate.blocks["+n+"]);"),this._emitLine("}"),this._addScopeLevel()},i.compileInclude=function(e,t){this._emitLine("var tasks = [];"),this._emitLine("tasks.push("),this._emitLine("function(callback) {");var n=this._compileGetTemplate(e,t,!1,e.ignoreMissing);this._emitLine("callback(null,"+n+");});"),this._emitLine("});");var r=this._tmpid();this._emitLine("tasks.push("),this._emitLine("function(template, callback){"),this._emitLine("template.render(context.getVariables(), frame, "+this._makeCallback(r)),this._emitLine("callback(null,"+r+");});"),this._emitLine("});"),this._emitLine("tasks.push("),this._emitLine("function(result, callback){"),this._emitLine(this.buffer+" += result;"),this._emitLine("callback(null);"),this._emitLine("});"),this._emitLine("env.waterfall(tasks, function(){"),this._addScopeLevel()},i.compileTemplateData=function(e,t){this.compileLiteral(e,t)},i.compileCapture=function(e,t){var n=this,r=this.buffer;this.buffer="output",this._emitLine("(function() {"),this._emitLine('var output = "";'),this._withScopedSyntax((function(){n.compile(e.body,t)})),this._emitLine("return output;"),this._emitLine("})()"),this.buffer=r},i.compileOutput=function(e,t){var n=this;e.children.forEach((function(r){r instanceof hr.TemplateData?r.value&&(n._emit(n.buffer+" += "),n.compileLiteral(r,t),n._emitLine(";")):(n._emit(n.buffer+" += runtime.suppressValue("),n.throwOnUndefined&&n._emit("runtime.ensureDefined("),n.compile(r,t),n.throwOnUndefined&&n._emit(","+e.lineno+","+e.colno+")"),n._emit(", env.opts.autoescape);\n"))}))},i.compileRoot=function(e,t){var n=this;t&&this.fail("compileRoot: root node can't have frame"),t=new Rr,this._emitFuncBegin(e,"root"),this._emitLine("var parentTemplate = null;"),this._compileChildren(e,t),this._emitLine("if(parentTemplate) {"),this._emitLine("parentTemplate.rootRenderFunc(env, context, frame, runtime, cb);"),this._emitLine("} else {"),this._emitLine("cb(null, "+this.buffer+");"),this._emitLine("}"),this._emitFuncEnd(!0),this.inBlock=!0;var r=[],i=e.findAll(hr.Block);i.forEach((function(e,t){var i=e.name.value;if(-1!==r.indexOf(i))throw new Error('Block "'+i+'" defined more than once.');r.push(i),n._emitFuncBegin(e,"b_"+i);var s=new Rr;n._emitLine("var frame = frame.push(true);"),n.compile(e.body,s),n._emitFuncEnd()})),this._emitLine("return {"),i.forEach((function(e,t){var r="b_"+e.name.value;n._emitLine(r+": "+r+",")})),this._emitLine("root: root\n};")},i.compile=function(e,t){var n=this["compile"+e.typename];n?n.call(this,e,t):this.fail("compile: Cannot compile node: "+e.typename,e.lineno,e.colno)},i.getCode=function(){return this.codebuf.join("")},r}(en.Obj),xr={compile:function(e,t,n,r,i){void 0===i&&(i={});var s=new Pr(r,i.throwOnUndefined),a=(n||[]).map((function(e){return e.preprocess})).filter((function(e){return!!e})).reduce((function(e,t){return t(e)}),e);return s.compile(Nr.transform(fr.parse(a,n,i),t,r)),s.getCode()},Compiler:Pr},wr=Ke((function(e){var t=e.exports={};function n(e,t){return null==e||!1===e?t:e}function r(e){return e!=e}function i(e){var t=(e=n(e,"")).toLowerCase();return kr.copySafeness(e,t.charAt(0).toUpperCase()+t.slice(1))}function s(e){if(je.isString(e))return e.split("");if(je.isObject(e))return je._entries(e||{}).map((function(e){return{key:e[0],value:e[1]}}));if(je.isArray(e))return e;throw new je.TemplateError("list filter: type not iterable")}function a(e){return function(t,n,r){void 0===n&&(n="truthy");var i=this,s=i.env.getTest(n);return je.toArray(t).filter((function(t){return s.call(i,t,r)===e}))}}function o(e){return kr.copySafeness(e,e.replace(/^\s*|\s*$/g,""))}t.abs=Math.abs,t.batch=function(e,t,n){var r,i=[],s=[];for(r=0;r=t)return e;var r=t-e.length,i=je.repeat(" ",r/2-r%2),s=je.repeat(" ",r/2);return kr.copySafeness(e,i+e+s)},t.default=function(e,t,n){return n?e||t:void 0!==e?e:t},t.dictsort=function(e,t,n){if(!je.isObject(e))throw new je.TemplateError("dictsort filter: val must be an object");var r,i=[];for(var s in e)i.push([s,e[s]]);if(void 0===n||"key"===n)r=0;else{if("value"!==n)throw new je.TemplateError("dictsort filter: You can only sort by either key or value");r=1}return i.sort((function(e,n){var i=e[r],s=n[r];return t||(je.isString(i)&&(i=i.toUpperCase()),je.isString(s)&&(s=s.toUpperCase())),i>s?1:i===s?0:-1})),i},t.dump=function(e,t){return JSON.stringify(e,null,t)},t.escape=function(e){return e instanceof kr.SafeString?e:(e=null==e?"":e,kr.markSafe(je.escape(e.toString())))},t.safe=function(e){return e instanceof kr.SafeString?e:(e=null==e?"":e,kr.markSafe(e.toString()))},t.first=function(e){return e[0]},t.forceescape=function(e){return e=null==e?"":e,kr.markSafe(je.escape(e.toString()))},t.groupby=function(e,t){return je.groupBy(e,t,this.env.opts.throwOnUndefined)},t.indent=function(e,t,r){if(""===(e=n(e,"")))return"";t=t||4;var i=e.split("\n"),s=je.repeat(" ",t),a=i.map((function(e,t){return 0!==t||r?""+s+e:e})).join("\n");return kr.copySafeness(e,a)},t.join=function(e,t,n){return t=t||"",n&&(e=je.map(e,(function(e){return e[n]}))),e.join(t)},t.last=function(e){return e[e.length-1]},t.length=function(e){var t=n(e,"");return void 0!==t?"function"==typeof Map&&t instanceof Map||"function"==typeof Set&&t instanceof Set?t.size:!je.isObject(t)||t instanceof kr.SafeString?t.length:je.keys(t).length:0},t.list=s,t.lower=function(e){return(e=n(e,"")).toLowerCase()},t.nl2br=function(e){return null==e?"":kr.copySafeness(e,e.replace(/\r\n|\n/g,"
\n"))},t.random=function(e){return e[Math.floor(Math.random()*e.length)]},t.reject=a(!1),t.rejectattr=function(e,t){return e.filter((function(e){return!e[t]}))},t.select=a(!0),t.selectattr=function(e,t){return e.filter((function(e){return!!e[t]}))},t.replace=function(e,t,n,r){var i=e;if(t instanceof RegExp)return e.replace(t,n);void 0===r&&(r=-1);var s="";if("number"==typeof t)t=""+t;else if("string"!=typeof t)return e;if("number"==typeof e&&(e=""+e),"string"!=typeof e&&!(e instanceof kr.SafeString))return e;if(""===t)return s=n+e.split("").join(n)+n,kr.copySafeness(e,s);var a=e.indexOf(t);if(0===r||-1===a)return e;for(var o=0,c=0;a>-1&&(-1===r||c=i&&h.push(n),s.push(h)}return s},t.sum=function(e,t,n){return void 0===n&&(n=0),t&&(e=je.map(e,(function(e){return e[t]}))),n+e.reduce((function(e,t){return e+t}),0)},t.sort=kr.makeMacro(["value","reverse","case_sensitive","attribute"],[],(function(e,t,n,r){var i=this,s=je.map(e,(function(e){return e})),a=je.getAttrGetter(r);return s.sort((function(e,s){var o=r?a(e):e,c=r?a(s):s;if(i.env.opts.throwOnUndefined&&r&&(void 0===o||void 0===c))throw new TypeError('sort: attribute "'+r+'" resolved to undefined');return!n&&je.isString(o)&&je.isString(c)&&(o=o.toLowerCase(),c=c.toLowerCase()),oc?t?-1:1:0})),s})),t.string=function(e){return kr.copySafeness(e,e)},t.striptags=function(e,t){var r=o((e=n(e,"")).replace(/<\/?([a-z][a-z0-9]*)\b[^>]*>|/gi,"")),i="";return i=t?r.replace(/^ +| +$/gm,"").replace(/ +/g," ").replace(/(\r\n)/g,"\n").replace(/\n\n\n+/g,"\n\n"):r.replace(/\s+/gi," "),kr.copySafeness(e,i)},t.title=function(e){var t=(e=n(e,"")).split(" ").map((function(e){return i(e)}));return kr.copySafeness(e,t.join(" "))},t.trim=o,t.truncate=function(e,t,r,i){var s=e;if(t=t||255,(e=n(e,"")).length<=t)return e;if(r)e=e.substring(0,t);else{var a=e.lastIndexOf(" ",t);-1===a&&(a=t),e=e.substring(0,a)}return e+=null!=i?i:"...",kr.copySafeness(s,e)},t.upper=function(e){return(e=n(e,"")).toUpperCase()},t.urlencode=function(e){var t=encodeURIComponent;return je.isString(e)?t(e):(je.isArray(e)?e:je._entries(e)).map((function(e){var n=e[0],r=e[1];return t(n)+"="+t(r)})).join("&")};var c=/^(?:\(|<|<)?(.*?)(?:\.|,|\)|\n|>)?$/,l=/^[\w.!#$%&'*+\-\/=?\^`{|}~]+@[a-z\d\-]+(\.[a-z\d\-]+)+$/i,h=/^https?:\/\/.*$/,u=/^www\./,p=/\.(?:org|net|com)(?:\:|\/|$)/;t.urlize=function(e,t,n){r(t)&&(t=1/0);var i=!0===n?' rel="nofollow"':"";return e.split(/(\s+)/).filter((function(e){return e&&e.length})).map((function(e){var n=e.match(c),r=n?n[1]:e,s=r.substr(0,t);return h.test(r)?'"+s+"":u.test(r)?'"+s+"":l.test(r)?''+r+"":p.test(r)?'"+s+"":e})).join("")},t.wordcount=function(e){var t=(e=n(e,""))?e.match(/\w+/g):null;return t?t.length:null},t.float=function(e,t){var n=parseFloat(e);return r(n)?t:n};var f=kr.makeMacro(["value","default","base"],[],(function(e,t,n){void 0===n&&(n=10);var i=parseInt(e,n);return r(i)?t:i}));t.int=f,t.d=t.default,t.e=t.escape})),Br={};function Fr(e,t){for(var n=0,r=e.length-1;r>=0;r--){var i=e[r];"."===i?e.splice(r,1):".."===i?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}var Ur=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,Hr=function(e){return Ur.exec(e).slice(1)};function Gr(){for(var e="",t=!1,n=arguments.length-1;n>=-1&&!t;n--){var r=n>=0?arguments[n]:"/";if("string"!=typeof r)throw new TypeError("Arguments to path.resolve must be strings");r&&(e=r+"/"+e,t="/"===r.charAt(0))}return(t?"/":"")+(e=Fr(jr(e.split("/"),(function(e){return!!e})),!t).join("/"))||"."}function Yr(e){var t=qr(e),n="/"===Vr(e,-1);return(e=Fr(jr(e.split("/"),(function(e){return!!e})),!t).join("/"))||t||(e="."),e&&n&&(e+="/"),(t?"/":"")+e}function qr(e){return"/"===e.charAt(0)}var Kr={extname:function(e){return Hr(e)[3]},basename:function(e,t){var n=Hr(e)[2];return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},dirname:function(e){var t=Hr(e),n=t[0],r=t[1];return n||r?(r&&(r=r.substr(0,r.length-1)),n+r):"."},sep:"/",delimiter:":",relative:function(e,t){function n(e){for(var t=0;t=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}e=Gr(e).substr(1),t=Gr(t).substr(1);for(var r=n(e.split("/")),i=n(t.split("/")),s=Math.min(r.length,i.length),a=s,o=0;o=t},t.greaterthan=function(e,t){return e>t},t.gt=t.greaterthan,t.le=function(e,t){return e<=t},t.lessthan=function(e,t){return e=e.length&&(t=0),this.current=e[t],this.current}}}ni.callable,ni.defined,ni.divisibleby,ni.escaped,ni.equalto,ni.eq,ni.sameas,ni.even,ni.falsy,ni.ge,ni.greaterthan,ni.gt,ni.le,ni.lessthan,ni.lt,ni.lower,ni.ne,ni.number,ni.odd,ni.string,ni.truthy,ni.undefined,ni.upper,ni.iterable,ni.mapping;var ii=function(){return{range:function(e,t,n){void 0===t?(t=e,e=0,n=1):n||(n=1);var r=[];if(n>0)for(var i=e;it;s+=n)r.push(s);return r},cycler:function(){return ri(Array.prototype.slice.call(arguments))},joiner:function(e){return function(e){e=e||",";var t=!0;return function(){var n=t?"":e;return t=!1,n}}(e)}}};function si(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,ai(e,t)}function ai(e,t){return ai=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},ai(e,t)}var oi=ti.FileSystemLoader,ci=ti.WebLoader,li=ti.PrecompiledLoader,hi=en.Obj,ui=en.EmitterObj,pi=kr.handleError,fi=kr.Frame;function di(e,t,n){Gt((function(){e(t,n)}))}var Ei={type:"code",obj:{root:function(e,t,n,r,i){try{i(null,"")}catch(e){i(pi(e,null,null))}}}},mi=function(e){function t(){return e.apply(this,arguments)||this}si(t,e);var n=t.prototype;return n.init=function(e,t){var n=this;t=this.opts=t||{},this.opts.dev=!!t.dev,this.opts.autoescape=null==t.autoescape||t.autoescape,this.opts.throwOnUndefined=!!t.throwOnUndefined,this.opts.trimBlocks=!!t.trimBlocks,this.opts.lstripBlocks=!!t.lstripBlocks,this.loaders=[],e?this.loaders=je.isArray(e)?e:[e]:oi?this.loaders=[new oi("views")]:ci&&(this.loaders=[new ci("/views")]),"undefined"!=typeof window&&window.jinja2Precompiled&&this.loaders.unshift(new li(window.jinja2Precompiled)),this._initLoaders(),this.globals=ii(),this.filters={},this.tests={},this.asyncFilters=[],this.extensions={},this.extensionsList=[],je._entries(wr).forEach((function(e){var t=e[0],r=e[1];return n.addFilter(t,r)})),je._entries(ni).forEach((function(e){var t=e[0],r=e[1];return n.addTest(t,r)}))},n._initLoaders=function(){var e=this;this.loaders.forEach((function(t){t.cache={},"function"==typeof t.on&&(t.on("update",(function(n,r){t.cache[n]=null,e.emit("update",n,r,t)})),t.on("load",(function(n,r){e.emit("load",n,r,t)})))}))},n.invalidateCache=function(){this.loaders.forEach((function(e){e.cache={}}))},n.addExtension=function(e,t){return t.__name=e,this.extensions[e]=t,this.extensionsList.push(t),this},n.removeExtension=function(e){var t=this.getExtension(e);t&&(this.extensionsList=je.without(this.extensionsList,t),delete this.extensions[e])},n.getExtension=function(e){return this.extensions[e]},n.hasExtension=function(e){return!!this.extensions[e]},n.addGlobal=function(e,t){return this.globals[e]=t,this},n.getGlobal=function(e){if(void 0===this.globals[e])throw new Error("global not found: "+e);return this.globals[e]},n.addFilter=function(e,t,n){var r=t;return n&&this.asyncFilters.push(e),this.filters[e]=r,this},n.getFilter=function(e){if(!this.filters[e])throw new Error("filter not found: "+e);return this.filters[e]},n.addTest=function(e,t){return this.tests[e]=t,this},n.getTest=function(e){if(!this.tests[e])throw new Error("test not found: "+e);return this.tests[e]},n.resolveTemplate=function(e,t,n){return!(!e.isRelative||!t)&&e.isRelative(n)&&e.resolve?e.resolve(t,n):n},n.getTemplate=function(e,t,n,r,i){var s,a=this,o=this,c=null;if(e&&e.raw&&(e=e.raw),je.isFunction(n)&&(i=n,n=null,t=t||!1),je.isFunction(t)&&(i=t,t=!1),e instanceof _i)c=e;else{if("string"!=typeof e)throw new Error("template names must be a string: "+e);for(var l=0;le.length-3)return!1;var n=e.charCodeAt(t+1);return(n>=Pi.LowerA&&n<=Pi.LowerZ||n>=Pi.UpperA&&n<=Pi.UpperZ||n===Pi.Exclamation)&&e.includes(">",t+2)}!function(e){e[e.LowerA=97]="LowerA",e[e.LowerZ=122]="LowerZ",e[e.UpperA=65]="UpperA",e[e.UpperZ=90]="UpperZ",e[e.Exclamation=33]="Exclamation"}(Pi||(Pi={}));var Hi=Object.prototype.hasOwnProperty,Gi=/\s+/,Yi={null:null,true:!0,false:!1},qi=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,Ki=/^{[^]*}$|^\[[^]*]$/;function ji(e,t,n){var r;if(e&&I(e))return null!==(r=e.attribs)&&void 0!==r||(e.attribs={}),t?Hi.call(e.attribs,t)?!n&&qi.test(t)?t:e.attribs[t]:"option"===e.name&&"value"===t?Li(e.children):"input"!==e.name||"radio"!==e.attribs.type&&"checkbox"!==e.attribs.type||"value"!==t?void 0:"on":e.attribs}function Vi(e,t,n){null===n?zi(e,t):e.attribs[t]="".concat(n)}function Wi(e,t,n){return t in e?e[t]:!n&&qi.test(t)?void 0!==ji(e,t,!1):ji(e,t,n)}function Qi(e,t,n,r){t in e?e[t]=n:Vi(e,t,!r&&qi.test(t)?n?"":null:"".concat(n))}function Xi(e,t,n){var r,i=e;null!==(r=i.data)&&void 0!==r||(i.data={}),"object"==typeof t?Object.assign(i.data,t):"string"==typeof t&&void 0!==n&&(i.data[t]=n)}function $i(e,t){var n,r,i,s;null==t?r=(n=Object.keys(e.attribs).filter((function(e){return e.startsWith("data-")}))).map((function(e){return e.slice("data-".length).replace(/[_.-](\w|$)/g,(function(e,t){return t.toUpperCase()}))})):(n=["data-"+(s=t,s.replace(/[A-Z]/g,"-$&").toLowerCase())],r=[t]);for(var a=0;a1?this:ji(this[0],e,this.options.xmlMode)},prop:function(e,t){var n,r=this;if("string"==typeof e&&void 0===t){var i=this[0];if(!i||!I(i))return;switch(e){case"style":var s=this.css(),a=Object.keys(s);return a.forEach((function(e,t){s[t]=e})),s.length=a.length,s;case"tagName":case"nodeName":return i.name.toUpperCase();case"href":case"src":var o=null===(n=i.attribs)||void 0===n?void 0:n[e];return"undefined"==typeof URL||("href"!==e||"a"!==i.tagName&&"link"!==i.name)&&("src"!==e||"img"!==i.tagName&&"iframe"!==i.tagName&&"audio"!==i.tagName&&"video"!==i.tagName&&"source"!==i.tagName)||void 0===o||!this.options.baseURI?o:new URL(o,this.options.baseURI).href;case"innerText":return J(i);case"textContent":return z(i);case"outerHTML":return this.clone().wrap("").parent().html();case"innerHTML":return this.html();default:return Wi(i,e,this.options.xmlMode)}}if("object"==typeof e||void 0!==t){if("function"==typeof t){if("object"==typeof e)throw new Error("Bad combination of arguments.");return Bi(this,(function(n,i){I(n)&&Qi(n,e,t.call(n,i,Wi(n,e,r.options.xmlMode)),r.options.xmlMode)}))}return Bi(this,(function(n){I(n)&&("object"==typeof e?Object.keys(e).forEach((function(t){var i=e[t];Qi(n,t,i,r.options.xmlMode)})):Qi(n,e,t,r.options.xmlMode))}))}},data:function(e,t){var n,r=this[0];if(r&&I(r)){var i=r;return null!==(n=i.data)&&void 0!==n||(i.data={}),e?"object"==typeof e||void 0!==t?(Bi(this,(function(n){I(n)&&("object"==typeof e?Xi(n,e):Xi(n,e,t))})),this):Hi.call(i.data,e)?i.data[e]:$i(i,e):$i(i)}},val:function(e){var t=0===arguments.length,n=this[0];if(!n||!I(n))return t?void 0:this;switch(n.name){case"textarea":return this.text(e);case"select":var r=this.find("option:selected");if(!t){if(null==this.attr("multiple")&&"object"==typeof e)return this;this.find("option").removeAttr("selected");for(var i="object"!=typeof e?[e]:e,s=0;s-1;){var i=r+e.length;if((0===r||Gi.test(n[r-1]))&&(i===n.length||Gi.test(n[i])))return!0}return!1}))},addClass:function e(t){if("function"==typeof t)return Bi(this,(function(n,r){if(I(n)){var i=n.attribs.class||"";e.call([n],t.call(n,r,i))}}));if(!t||"string"!=typeof t)return this;for(var n=t.split(Gi),r=this.length,i=0;i=0&&(t.splice(o,1),s=!0,a--)}s&&(e.attribs.class=t.join(" "))}}))},toggleClass:function e(t,n){if("function"==typeof t)return Bi(this,(function(r,i){I(r)&&e.call([r],t.call(r,i,r.attribs.class||"",n),n)}));if(!t||"string"!=typeof t)return this;for(var r=t.split(Gi),i=r.length,s="boolean"==typeof n?n?1:-1:0,a=this.length,o=0;o=0&&u<0?l.push(r[h]):s<=0&&u>=0&&l.splice(u,1)}c.attribs.class=l.join(" ")}}return this}});!function(e){e.Attribute="attribute",e.Pseudo="pseudo",e.PseudoElement="pseudo-element",e.Tag="tag",e.Universal="universal",e.Adjacent="adjacent",e.Child="child",e.Descendant="descendant",e.Parent="parent",e.Sibling="sibling",e.ColumnCombinator="column-combinator"}(Zi||(Zi={})),function(e){e.Any="any",e.Element="element",e.End="end",e.Equals="equals",e.Exists="exists",e.Hyphen="hyphen",e.Not="not",e.Start="start"}(es||(es={}));const ns=/^[^\\#]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/,rs=/\\([\da-f]{1,6}\s?|(\s)|.)/gi,is=new Map([[126,es.Element],[94,es.Start],[36,es.End],[42,es.Any],[33,es.Not],[124,es.Hyphen]]),ss=new Set(["has","not","matches","is","where","host","host-context"]);function as(e){switch(e.type){case Zi.Adjacent:case Zi.Child:case Zi.Descendant:case Zi.Parent:case Zi.Sibling:case Zi.ColumnCombinator:return!0;default:return!1}}const os=new Set(["contains","icontains"]);function cs(e,t,n){const r=parseInt(t,16)-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)}function ls(e){return e.replace(rs,cs)}function hs(e){return 39===e||34===e}function us(e){return 32===e||9===e||10===e||12===e||13===e}function ps(e){const t=[],n=fs(t,`${e}`,0);if(n0&&n0&&as(r[r.length-1]))throw new Error("Did not expect successive traversals.")}function l(e){r.length>0&&r[r.length-1].type===Zi.Descendant?r[r.length-1].type=e:(c(),r.push({type:e}))}function h(e,t){r.push({type:Zi.Attribute,name:e,action:t,value:i(1),namespace:null,ignoreCase:"quirks"})}function u(){if(r.length&&r[r.length-1].type===Zi.Descendant&&r.pop(),0===r.length)throw new Error("Empty sub-selector");e.push(r)}if(s(0),t.length===n)return n;e:for(;n=0&&r>=1)):e.type===Zi.Pseudo&&(e.data?"has"===e.name||"contains"===e.name?r=0:Array.isArray(e.data)?(r=Math.min(...e.data.map((e=>Math.min(...e.map(gs))))),r<0&&(r=0)):r=2:r=3),r}const Ns=/[-[\]{}()*+?.,\\^$|#\s]/g;function Cs(e){return e.replace(Ns,"\\$&")}const Is=new Set(["accept","accept-charset","align","alink","axis","bgcolor","charset","checked","clear","codetype","color","compact","declare","defer","dir","direction","disabled","enctype","face","frame","hreflang","http-equiv","lang","language","link","media","method","multiple","nohref","noresize","noshade","nowrap","readonly","rel","rev","rules","scope","scrolling","selected","shape","target","text","type","valign","valuetype","vlink"]);function Ss(e,t){return"boolean"==typeof e.ignoreCase?e.ignoreCase:"quirks"===e.ignoreCase?!!t.quirksMode:!t.xmlMode&&Is.has(e.name)}const bs={equals(e,t,n){const{adapter:r}=n,{name:i}=t;let{value:s}=t;return Ss(t,n)?(s=s.toLowerCase(),t=>{const n=r.getAttributeValue(t,i);return null!=n&&n.length===s.length&&n.toLowerCase()===s&&e(t)}):t=>r.getAttributeValue(t,i)===s&&e(t)},hyphen(e,t,n){const{adapter:r}=n,{name:i}=t;let{value:s}=t;const a=s.length;return Ss(t,n)?(s=s.toLowerCase(),function(t){const n=r.getAttributeValue(t,i);return null!=n&&(n.length===a||"-"===n.charAt(a))&&n.substr(0,a).toLowerCase()===s&&e(t)}):function(t){const n=r.getAttributeValue(t,i);return null!=n&&(n.length===a||"-"===n.charAt(a))&&n.substr(0,a)===s&&e(t)}},element(e,t,n){const{adapter:r}=n,{name:i,value:s}=t;if(/\s/.test(s))return ds.falseFunc;const a=new RegExp(`(?:^|\\s)${Cs(s)}(?:$|\\s)`,Ss(t,n)?"i":"");return function(t){const n=r.getAttributeValue(t,i);return null!=n&&n.length>=s.length&&a.test(n)&&e(t)}},exists:(e,{name:t},{adapter:n})=>r=>n.hasAttrib(r,t)&&e(r),start(e,t,n){const{adapter:r}=n,{name:i}=t;let{value:s}=t;const a=s.length;return 0===a?ds.falseFunc:Ss(t,n)?(s=s.toLowerCase(),t=>{const n=r.getAttributeValue(t,i);return null!=n&&n.length>=a&&n.substr(0,a).toLowerCase()===s&&e(t)}):t=>{var n;return!!(null===(n=r.getAttributeValue(t,i))||void 0===n?void 0:n.startsWith(s))&&e(t)}},end(e,t,n){const{adapter:r}=n,{name:i}=t;let{value:s}=t;const a=-s.length;return 0===a?ds.falseFunc:Ss(t,n)?(s=s.toLowerCase(),t=>{var n;return(null===(n=r.getAttributeValue(t,i))||void 0===n?void 0:n.substr(a).toLowerCase())===s&&e(t)}):t=>{var n;return!!(null===(n=r.getAttributeValue(t,i))||void 0===n?void 0:n.endsWith(s))&&e(t)}},any(e,t,n){const{adapter:r}=n,{name:i,value:s}=t;if(""===s)return ds.falseFunc;if(Ss(t,n)){const t=new RegExp(Cs(s),"i");return function(n){const a=r.getAttributeValue(n,i);return null!=a&&a.length>=s.length&&t.test(a)&&e(n)}}return t=>{var n;return!!(null===(n=r.getAttributeValue(t,i))||void 0===n?void 0:n.includes(s))&&e(t)}},not(e,t,n){const{adapter:r}=n,{name:i}=t;let{value:s}=t;return""===s?t=>!!r.getAttributeValue(t,i)&&e(t):Ss(t,n)?(s=s.toLowerCase(),t=>{const n=r.getAttributeValue(t,i);return(null==n||n.length!==s.length||n.toLowerCase()!==s)&&e(t)}):t=>r.getAttributeValue(t,i)!==s&&e(t)}};var Os=Ke((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.parse=void 0;var n=new Set([9,10,12,13,32]),r="0".charCodeAt(0),i="9".charCodeAt(0);t.parse=function(e){if("even"===(e=e.trim().toLowerCase()))return[2,0];if("odd"===e)return[2,1];var t=0,s=0,a=c(),o=l();if(t=r&&e.charCodeAt(t)<=i;)s=10*s+(e.charCodeAt(t)-r),t++;return t===n?null:s}function h(){for(;t=n};var r=Math.abs(t),i=(n%r+r)%r;return t>1?function(e){return e>=n&&e%r===i}:function(e){return e<=n&&e%r===i}}}));qe(ys),ys.compile;var Ls=Os,ks=ys,vs=Ke((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.compile=t.parse=void 0,Object.defineProperty(t,"parse",{enumerable:!0,get:function(){return Ls.parse}}),Object.defineProperty(t,"compile",{enumerable:!0,get:function(){return ks.compile}}),t.default=function(e){return(0,ks.compile)((0,Ls.parse)(e))}})),Ds=qe(vs);function Rs(e,t){return n=>{const r=t.getParent(n);return null!=r&&t.isTag(r)&&e(n)}}vs.compile,vs.parse;const Ms={contains:(e,t,{adapter:n})=>function(r){return e(r)&&n.getText(r).includes(t)},icontains(e,t,{adapter:n}){const r=t.toLowerCase();return function(t){return e(t)&&n.getText(t).toLowerCase().includes(r)}},"nth-child"(e,t,{adapter:n,equals:r}){const i=Ds(t);return i===ds.falseFunc?ds.falseFunc:i===ds.trueFunc?Rs(e,n):function(t){const s=n.getSiblings(t);let a=0;for(let e=0;e=0&&!r(t,s[e]);e--)n.isTag(s[e])&&a++;return i(a)&&e(t)}},"nth-of-type"(e,t,{adapter:n,equals:r}){const i=Ds(t);return i===ds.falseFunc?ds.falseFunc:i===ds.trueFunc?Rs(e,n):function(t){const s=n.getSiblings(t);let a=0;for(let e=0;e=0;e--){const i=s[e];if(r(t,i))break;n.isTag(i)&&n.getName(i)===n.getName(t)&&a++}return i(a)&&e(t)}},root:(e,t,{adapter:n})=>t=>{const r=n.getParent(t);return(null==r||!n.isTag(r))&&e(t)},scope(e,t,n,r){const{equals:i}=n;return r&&0!==r.length?1===r.length?t=>i(r[0],t)&&e(t):t=>r.includes(t)&&e(t):Ms.root(e,t,n)},hover:Ps("isHovered"),visited:Ps("isVisited"),active:Ps("isActive")};function Ps(e){return function(t,n,{adapter:r}){const i=r[e];return"function"!=typeof i?ds.falseFunc:function(e){return i(e)&&t(e)}}}const xs={empty:(e,{adapter:t})=>!t.getChildren(e).some((e=>t.isTag(e)||""!==t.getText(e))),"first-child"(e,{adapter:t,equals:n}){if(t.prevElementSibling)return null==t.prevElementSibling(e);const r=t.getSiblings(e).find((e=>t.isTag(e)));return null!=r&&n(e,r)},"last-child"(e,{adapter:t,equals:n}){const r=t.getSiblings(e);for(let i=r.length-1;i>=0;i--){if(n(e,r[i]))return!0;if(t.isTag(r[i]))break}return!1},"first-of-type"(e,{adapter:t,equals:n}){const r=t.getSiblings(e),i=t.getName(e);for(let s=0;s=0;s--){const a=r[s];if(n(e,a))return!0;if(t.isTag(a)&&t.getName(a)===i)break}return!1},"only-of-type"(e,{adapter:t,equals:n}){const r=t.getName(e);return t.getSiblings(e).every((i=>n(e,i)||!t.isTag(i)||t.getName(i)!==r))},"only-child":(e,{adapter:t,equals:n})=>t.getSiblings(e).every((r=>n(e,r)||!t.isTag(r)))};function ws(e,t,n,r){if(null===n){if(e.length>r)throw new Error(`Pseudo-class :${t} requires an argument`)}else if(e.length===r)throw new Error(`Pseudo-class :${t} doesn't have any arguments`)}const Bs={"any-link":":is(a, area, link)[href]",link:":any-link:not(:visited)",disabled:":is(\n :is(button, input, select, textarea, optgroup, option)[disabled],\n optgroup[disabled] > option,\n fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *)\n )",enabled:":not(:disabled)",checked:":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)",required:":is(input, select, textarea)[required]",optional:":is(input, select, textarea):not([required])",selected:"option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)",checkbox:"[type=checkbox]",file:"[type=file]",password:"[type=password]",radio:"[type=radio]",reset:"[type=reset]",image:"[type=image]",submit:"[type=submit]",parent:":not(:empty)",header:":is(h1, h2, h3, h4, h5, h6)",button:":is(button, input[type=button])",input:":is(input, textarea, select, button)",text:"input:is(:not([type!='']), [type=text])"},Fs={};function Us(e,t){const n=t.getSiblings(e);if(n.length<=1)return[];const r=n.indexOf(e);return r<0||r===n.length-1?[]:n.slice(r+1).filter(t.isTag)}function Hs(e){return{xmlMode:!!e.xmlMode,lowerCaseAttributeNames:!!e.lowerCaseAttributeNames,lowerCaseTags:!!e.lowerCaseTags,quirksMode:!!e.quirksMode,cacheResults:!!e.cacheResults,pseudos:e.pseudos,adapter:e.adapter,equals:e.equals}}const Gs=(e,t,n,r,i)=>{const s=i(t,Hs(n),r);return s===ds.trueFunc?e:s===ds.falseFunc?ds.falseFunc:t=>s(t)&&e(t)},Ys={is:Gs,matches:Gs,where:Gs,not(e,t,n,r,i){const s=i(t,Hs(n),r);return s===ds.falseFunc?e:s===ds.trueFunc?ds.falseFunc:t=>!s(t)&&e(t)},has(e,t,n,r,i){const{adapter:s}=n,a=Hs(n);a.relativeSelector=!0;const o=t.some((e=>e.some(Ts)))?[Fs]:void 0,c=i(t,a,o);if(c===ds.falseFunc)return ds.falseFunc;const l=function(e,t){return e===ds.falseFunc?ds.falseFunc:n=>t.isTag(n)&&e(n)}(c,s);if(o&&c!==ds.trueFunc){const{shouldTestNextSiblings:t=!1}=c;return n=>{if(!e(n))return!1;o[0]=n;const r=s.getChildren(n),i=t?[...r,...Us(n,s)]:r;return s.existsOne(l,i)}}return t=>e(t)&&s.existsOne(l,s.getChildren(t))}};function qs(e,t){const n=t.getParent(e);return n&&t.isTag(n)?n:null}function Ks(e,t,n,r,i){const{adapter:s,equals:a}=n;switch(t.type){case Zi.PseudoElement:throw new Error("Pseudo-elements are not supported by css-select");case Zi.ColumnCombinator:throw new Error("Column combinators are not yet supported by css-select");case Zi.Attribute:if(null!=t.namespace)throw new Error("Namespaced attributes are not yet supported by css-select");return n.xmlMode&&!n.lowerCaseAttributeNames||(t.name=t.name.toLowerCase()),bs[t.action](e,t,n);case Zi.Pseudo:return function(e,t,n,r,i){var s;const{name:a,data:o}=t;if(Array.isArray(o)){if(!(a in Ys))throw new Error(`Unknown pseudo-class :${a}(${o})`);return Ys[a](e,o,n,r,i)}const c=null===(s=n.pseudos)||void 0===s?void 0:s[a],l="string"==typeof c?c:Bs[a];if("string"==typeof l){if(null!=o)throw new Error(`Pseudo ${a} doesn't have any arguments`);const t=ps(l);return Ys.is(e,t,n,r,i)}if("function"==typeof c)return ws(c,a,o,1),t=>c(t,o)&&e(t);if(a in Ms)return Ms[a](e,o,n,r);if(a in xs){const t=xs[a];return ws(t,a,o,2),r=>t(r,n,o)&&e(r)}throw new Error(`Unknown pseudo-class :${a}`)}(e,t,n,r,i);case Zi.Tag:{if(null!=t.namespace)throw new Error("Namespaced tag names are not yet supported by css-select");let{name:r}=t;return n.xmlMode&&!n.lowerCaseTags||(r=r.toLowerCase()),function(t){return s.getName(t)===r&&e(t)}}case Zi.Descendant:{if(!1===n.cacheResults||"undefined"==typeof WeakSet)return function(t){let n=t;for(;n=qs(n,s);)if(e(n))return!0;return!1};const t=new WeakSet;return function(n){let r=n;for(;r=qs(r,s);)if(!t.has(r)){if(s.isTag(r)&&e(r))return!0;t.add(r)}return!1}}case"_flexibleDescendant":return function(t){let n=t;do{if(e(n))return!0}while(n=qs(n,s));return!1};case Zi.Parent:return function(t){return s.getChildren(t).some((t=>s.isTag(t)&&e(t)))};case Zi.Child:return function(t){const n=s.getParent(t);return null!=n&&s.isTag(n)&&e(n)};case Zi.Sibling:return function(t){const n=s.getSiblings(t);for(let r=0;re.some(js))))}const Vs={type:Zi.Descendant},Ws={type:"_flexibleDescendant"},Qs={type:Zi.Pseudo,name:"scope",data:null};function Xs(e,t,n){var r;e.forEach(As),n=null!==(r=t.context)&&void 0!==r?r:n;const i=Array.isArray(n),s=n&&(Array.isArray(n)?n:[n]);if(!1!==t.relativeSelector)!function(e,{adapter:t},n){const r=!!(null==n?void 0:n.every((e=>{const n=t.isTag(e)&&t.getParent(e);return e===Fs||n&&t.isTag(n)})));for(const t of e){if(t.length>0&&Ts(t[0])&&t[0].type!==Zi.Descendant);else{if(!r||t.some(js))continue;t.unshift(Vs)}t.unshift(Qs)}}(e,t,s);else if(e.some((e=>e.length>0&&Ts(e[0]))))throw new Error("Relative selectors are not allowed when the `relativeSelector` option is disabled");let a=!1;const o=e.map((e=>{if(e.length>=2){const[t,n]=e;t.type!==Zi.Pseudo||"scope"!==t.name||(i&&n.type===Zi.Descendant?e[1]=Ws:n.type!==Zi.Adjacent&&n.type!==Zi.Sibling||(a=!0))}return function(e,t,n){var r;return e.reduce(((e,r)=>e===ds.falseFunc?ds.falseFunc:Ks(e,r,t,n,Xs)),null!==(r=t.rootFunc)&&void 0!==r?r:ds.trueFunc)}(e,t,s)})).reduce($s,ds.falseFunc);return o.shouldTestNextSiblings=a,o}function $s(e,t){return t===ds.falseFunc||e===ds.trueFunc?e:e===ds.falseFunc||t===ds.trueFunc?t:function(n){return e(n)||t(n)}}const zs=(e,t)=>e===t,Js={adapter:Se,equals:zs};const Zs=(ea=Xs,function(e,t,n){const r=function(e){var t,n,r,i;const s=null!=e?e:Js;return null!==(t=s.adapter)&&void 0!==t||(s.adapter=Se),null!==(n=s.equals)&&void 0!==n||(s.equals=null!==(i=null===(r=s.adapter)||void 0===r?void 0:r.equals)&&void 0!==i?i:zs),s}(t);return ea(e,r,n)});var ea;function ta(e,t,n=!1){return n&&(e=function(e,t){const n=Array.isArray(e)?e.slice(0):[e],r=n.length;for(let e=0;ee.some(ra))))}function ia(e){const t=[],n=[];for(const r of e)r.some(ra)?t.push(r):n.push(r);return[n,t]}const sa={type:Zi.Universal,namespace:null},aa={type:Zi.Pseudo,name:"scope",data:null};function oa(e,t,n={}){return ca([e],t,n)}function ca(e,t,n={}){if("function"==typeof t)return e.some(t);const[r,i]=ia(ps(t));return r.length>0&&e.some(Zs(r,n))||i.some((t=>ua(t,e,n).length>0))}function la(e,t,n={}){return ha(ps(e),t,n)}function ha(e,t,n){if(0===t.length)return[];const[r,i]=ia(e);let s;if(r.length){const e=Ea(t,r,n);if(0===i.length)return e;e.length&&(s=new Set(e))}for(let e=0;eI(e)&&!s.has(e))):t;if(0===a.length)break;const o=ua(r,t,n);if(o.length)if(s)o.forEach((e=>s.add(e)));else{if(e===i.length-1)return o;s=new Set(o)}}return void 0!==s?s.size===t.length?t:t.filter((e=>s.has(e))):[]}function ua(e,t,n){var r;if(e.some(as)){const i=null!==(r=n.root)&&void 0!==r?r:function(e){for(;e.parent;)e=e.parent;return e}(t[0]),s={...n,context:t,relativeSelector:!1};return e.push(aa),pa(i,e,s,!0,t.length)}return pa(t,e,n,!1,t.length)}function pa(e,t,n,r,i){const s=t.findIndex(ra),a=t.slice(0,s),o=t[s],c=t.length-1===s?i:1/0,l=function(e,t,n){const r=null!=t?parseInt(t,10):NaN;switch(e){case"first":return 1;case"nth":case"eq":return isFinite(r)?r>=0?r+1:1/0:0;case"lt":return isFinite(r)?r>=0?Math.min(r,n):1/0:0;case"gt":return isFinite(r)?1/0:0;case"odd":return 2*n;case"even":return 2*n-1;case"last":case"not":return 1/0}}(o.name,o.data,c);if(0===l)return[];const h=(0!==a.length||Array.isArray(e)?0===a.length?(Array.isArray(e)?e:[e]).filter(I):r||a.some(as)?fa(e,[a],n,l):Ea(e,[a],n):Z(e).filter(I)).slice(0,l);let u=function(e,t,n,r){const i="string"==typeof n?parseInt(n,10):NaN;switch(e){case"first":case"lt":return t;case"last":return t.length>0?[t[t.length-1]]:t;case"nth":case"eq":return isFinite(i)&&Math.abs(i)t%2==0));case"odd":return t.filter(((e,t)=>t%2==1));case"not":{const e=new Set(ha(n,t,r));return t.filter((t=>!e.has(t)))}}}(o.name,h,o.data,n);if(0===u.length||t.length===s+1)return u;const p=t.slice(s+1),f=p.some(as);if(f){if(as(p[0])){const{type:e}=p[0];e!==Zi.Sibling&&e!==Zi.Adjacent||(u=ta(u,Se,!0)),p.unshift(sa)}n={...n,relativeSelector:!1,rootFunc:e=>u.includes(e)}}else n.rootFunc&&n.rootFunc!==Es&&(n={...n,rootFunc:Es});return p.some(ra)?pa(u,p,n,!1,i):f?fa(u,[p],n,i):Ea(u,[p],n)}function fa(e,t,n,r){return da(e,Zs(t,n,e),r)}function da(e,t,n=1/0){return ae((e=>I(e)&&t(e)),ta(e,Se,t.shouldTestNextSiblings),!0,n)}function Ea(e,t,n){const r=(Array.isArray(e)?e:[e]).filter(I);if(0===r.length)return r;const i=Zs(t,n);return i===Es?r:r.filter(i)}var ma=function(e,t,n){if(n||2===arguments.length)for(var r,i=0,s=t.length;i1&&s.length>1?n.reduce((function(e,t){return t(e)}),s):s)}}}var Aa=_a((function(e,t){for(var n,r=[],i=0;ipa(t,e,n,!0,r)));return i.length&&a.push(fa(t,i,n,r)),0===a.length?[]:1===a.length?a[0]:Ee(a.reduce(((e,t)=>[...e,...t])))}(e,i,s))},parent:Ia,parents:Sa,parentsUntil:ba,closest:function(e){var t,n=[];if(!e)return this._make(n);var r={xmlMode:this.options.xmlMode,root:null===(t=this._root)||void 0===t?void 0:t[0]},i="string"==typeof e?function(t){return oa(t,e,r)}:Pa(e);return Bi(this,(function(e){for(;e&&I(e);){if(i(e,0)){n.includes(e)||n.push(e);break}e=e.parent}})),this._make(n)},next:Oa,nextAll:ya,nextUntil:La,prev:ka,prevAll:va,prevUntil:Da,siblings:Ra,children:Ma,contents:function(){var e=this.toArray().reduce((function(e,t){return k(t)?e.concat(t.children):e}),[]);return this._make(e)},each:function(e){for(var t=0,n=this.length;t0})},first:function(){return this.length>1?this._make(this[0]):this},last:function(){return this.length>0?this._make(this[this.length-1]):this},eq:function(e){var t;return 0===(e=+e)&&this.length<=1?this:(e<0&&(e=this.length+e),this._make(null!==(t=this[e])&&void 0!==t?t:[]))},get:function(e){return null==e?this.toArray():this[e<0?this.length+e:e]},toArray:function(){return Array.prototype.slice.call(this)},index:function(e){var t,n;return null==e?(t=this.parent().children(),n=this[0]):"string"==typeof e?(t=this._make(e),n=this[0]):(t=this,n=wi(e)?e[0]:e),Array.prototype.indexOf.call(t,n)},slice:function(e,t){return this._make(Array.prototype.slice.call(this,e,t))},end:function(){var e;return null!==(e=this.prevObject)&&void 0!==e?e:this._make([])},add:function(e,t){var n=this._make(e,t),r=Ee(ma(ma([],this.get(),!0),n.get(),!0));return this._make(r)},addBack:function(e){return this.prevObject?this.add(e?this.prevObject.filter(e):this.prevObject):this}});function Ba(e,t){var n=Array.isArray(e)?e:[e];t?t.children=n:t=null;for(var r=0;r=e.length?null:e[t+n],h=0;h-1&&(p.children.splice(f,1),i===p&&t>f&&o[0]--)}u.parent=i,u.prev&&(u.prev.next=null!==(s=u.next)&&void 0!==s?s:null),u.next&&(u.next.prev=null!==(a=u.prev)&&void 0!==a?a:null),u.prev=0===h?c:r[h-1],u.next=h===r.length-1?l:r[h+1]}return c&&(c.next=r[0]),l&&(l.prev=r[r.length-1]),e.splice.apply(e,o)}var Ga=Ua((function(e,t,n){Ha(t,t.length,0,e,n)})),Ya=Ua((function(e,t,n){Ha(t,0,0,e,n)}));function qa(e){return function(t){for(var n=this.length-1,r=this.parents().last(),i=0;i0&&void 0!==t&&(n[t]+=";".concat(o))}else n[t=s.slice(0,a).trim()]=s.slice(a+1).trim()}return n}(e.attribs.style);if("string"==typeof t)return n[t];if(Array.isArray(t)){var r={};return t.forEach((function(e){null!=n[e]&&(r[e]=n[e])})),r}return n}}var Xa=Object.freeze({__proto__:null,css:function(e,t){return null!=e&&null!=t||"object"==typeof e&&!Array.isArray(e)?Bi(this,(function(n,r){I(n)&&Wa(n,e,t,r)})):0!==this.length?Qa(this[0],e):void 0}}),$a=/%20/g,za=/\r?\n/g;var Ja=Object.freeze({__proto__:null,serialize:function(){var e=this.serializeArray().map((function(e){return"".concat(encodeURIComponent(e.name),"=").concat(encodeURIComponent(e.value))}));return e.join("&").replace($a,"+")},serializeArray:function(){var e=this;return this.map((function(t,n){var r=e._make(n);return I(n)&&"form"===n.name?r.find("input,select,textarea,keygen").toArray():r.filter("input,select,textarea,keygen").toArray()})).filter('[name!=""]:enabled:not(:submit, :button, :image, :reset, :file):matches([checked], :not(:checkbox, :radio))').map((function(t,n){var r,i=e._make(n),s=i.attr("name"),a=null!==(r=i.val())&&void 0!==r?r:"";return Array.isArray(a)?a.map((function(e){return{name:s,value:e.replace(za,"\r\n")}})):{name:s,value:a.replace(za,"\r\n")}})).toArray()}}),Za=function(e,t,n){if(this.length=0,this.options=n,this._root=t,e){for(var r=0;r=55296&&e<=57343}function po(e){return 32!==e&&10!==e&&13!==e&&9!==e&&12!==e&&e>=1&&e<=31||e>=127&&e<=159}function fo(e){return e>=64976&&e<=65007||ro.has(e)}var Eo;!function(e){e.controlCharacterInInputStream="control-character-in-input-stream",e.noncharacterInInputStream="noncharacter-in-input-stream",e.surrogateInInputStream="surrogate-in-input-stream",e.nonVoidHtmlElementStartTagWithTrailingSolidus="non-void-html-element-start-tag-with-trailing-solidus",e.endTagWithAttributes="end-tag-with-attributes",e.endTagWithTrailingSolidus="end-tag-with-trailing-solidus",e.unexpectedSolidusInTag="unexpected-solidus-in-tag",e.unexpectedNullCharacter="unexpected-null-character",e.unexpectedQuestionMarkInsteadOfTagName="unexpected-question-mark-instead-of-tag-name",e.invalidFirstCharacterOfTagName="invalid-first-character-of-tag-name",e.unexpectedEqualsSignBeforeAttributeName="unexpected-equals-sign-before-attribute-name",e.missingEndTagName="missing-end-tag-name",e.unexpectedCharacterInAttributeName="unexpected-character-in-attribute-name",e.unknownNamedCharacterReference="unknown-named-character-reference",e.missingSemicolonAfterCharacterReference="missing-semicolon-after-character-reference",e.unexpectedCharacterAfterDoctypeSystemIdentifier="unexpected-character-after-doctype-system-identifier",e.unexpectedCharacterInUnquotedAttributeValue="unexpected-character-in-unquoted-attribute-value",e.eofBeforeTagName="eof-before-tag-name",e.eofInTag="eof-in-tag",e.missingAttributeValue="missing-attribute-value",e.missingWhitespaceBetweenAttributes="missing-whitespace-between-attributes",e.missingWhitespaceAfterDoctypePublicKeyword="missing-whitespace-after-doctype-public-keyword",e.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers="missing-whitespace-between-doctype-public-and-system-identifiers",e.missingWhitespaceAfterDoctypeSystemKeyword="missing-whitespace-after-doctype-system-keyword",e.missingQuoteBeforeDoctypePublicIdentifier="missing-quote-before-doctype-public-identifier",e.missingQuoteBeforeDoctypeSystemIdentifier="missing-quote-before-doctype-system-identifier",e.missingDoctypePublicIdentifier="missing-doctype-public-identifier",e.missingDoctypeSystemIdentifier="missing-doctype-system-identifier",e.abruptDoctypePublicIdentifier="abrupt-doctype-public-identifier",e.abruptDoctypeSystemIdentifier="abrupt-doctype-system-identifier",e.cdataInHtmlContent="cdata-in-html-content",e.incorrectlyOpenedComment="incorrectly-opened-comment",e.eofInScriptHtmlCommentLikeText="eof-in-script-html-comment-like-text",e.eofInDoctype="eof-in-doctype",e.nestedComment="nested-comment",e.abruptClosingOfEmptyComment="abrupt-closing-of-empty-comment",e.eofInComment="eof-in-comment",e.incorrectlyClosedComment="incorrectly-closed-comment",e.eofInCdata="eof-in-cdata",e.absenceOfDigitsInNumericCharacterReference="absence-of-digits-in-numeric-character-reference",e.nullCharacterReference="null-character-reference",e.surrogateCharacterReference="surrogate-character-reference",e.characterReferenceOutsideUnicodeRange="character-reference-outside-unicode-range",e.controlCharacterReference="control-character-reference",e.noncharacterCharacterReference="noncharacter-character-reference",e.missingWhitespaceBeforeDoctypeName="missing-whitespace-before-doctype-name",e.missingDoctypeName="missing-doctype-name",e.invalidCharacterSequenceAfterDoctypeName="invalid-character-sequence-after-doctype-name",e.duplicateAttribute="duplicate-attribute",e.nonConformingDoctype="non-conforming-doctype",e.missingDoctype="missing-doctype",e.misplacedDoctype="misplaced-doctype",e.endTagWithoutMatchingOpenElement="end-tag-without-matching-open-element",e.closingOfElementWithOpenChildElements="closing-of-element-with-open-child-elements",e.disallowedContentInNoscriptInHead="disallowed-content-in-noscript-in-head",e.openElementsLeftAfterEof="open-elements-left-after-eof",e.abandonedHeadElementChild="abandoned-head-element-child",e.misplacedStartTagForHeadElement="misplaced-start-tag-for-head-element",e.nestedNoscriptInHead="nested-noscript-in-head",e.eofInElementThatCanContainOnlyText="eof-in-element-that-can-contain-only-text"}(Eo=Eo||(Eo={}));class mo{constructor(e){this.handler=e,this.html="",this.pos=-1,this.lastGapPos=-2,this.gapStack=[],this.skipNextNewLine=!1,this.lastChunkWritten=!1,this.endOfChunkHit=!1,this.bufferWaterline=65536,this.isEol=!1,this.lineStartPos=0,this.droppedBufferSize=0,this.line=1,this.lastErrOffset=-1}get col(){return this.pos-this.lineStartPos+Number(this.lastGapPos!==this.pos)}get offset(){return this.droppedBufferSize+this.pos}getError(e){const{line:t,col:n,offset:r}=this;return{code:e,startLine:t,endLine:t,startCol:n,endCol:n,startOffset:r,endOffset:r}}_err(e){this.handler.onParseError&&this.lastErrOffset!==this.offset&&(this.lastErrOffset=this.offset,this.handler.onParseError(this.getError(e)))}_addGap(){this.gapStack.push(this.lastGapPos),this.lastGapPos=this.pos}_processSurrogate(e){if(this.pos!==this.html.length-1){const t=this.html.charCodeAt(this.pos+1);if(function(e){return e>=56320&&e<=57343}(t))return this.pos++,this._addGap(),1024*(e-55296)+9216+t}else if(!this.lastChunkWritten)return this.endOfChunkHit=!0,io.EOF;return this._err(Eo.surrogateInInputStream),e}willDropParsedChunk(){return this.pos>this.bufferWaterline}dropParsedChunk(){this.willDropParsedChunk()&&(this.html=this.html.substring(this.pos),this.lineStartPos-=this.pos,this.droppedBufferSize+=this.pos,this.pos=0,this.lastGapPos=-2,this.gapStack.length=0)}write(e,t){this.html.length>0?this.html+=e:this.html=e,this.endOfChunkHit=!1,this.lastChunkWritten=t}insertHtmlAtCurrentPos(e){this.html=this.html.substring(0,this.pos+1)+e+this.html.substring(this.pos+1),this.endOfChunkHit=!1}startsWith(e,t){if(this.pos+e.length>this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,!1;if(t)return this.html.startsWith(e,this.pos);for(let t=0;t=this.html.length?(this.endOfChunkHit=!this.lastChunkWritten,io.EOF):this.html.charCodeAt(t)}advance(){if(this.pos++,this.isEol&&(this.isEol=!1,this.line++,this.lineStartPos=this.pos),this.pos>=this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,io.EOF;let e=this.html.charCodeAt(this.pos);if(e===io.CARRIAGE_RETURN)return this.isEol=!0,this.skipNextNewLine=!0,io.LINE_FEED;if(e===io.LINE_FEED&&(this.isEol=!0,this.skipNextNewLine))return this.line--,this.skipNextNewLine=!1,this._addGap(),this.advance();this.skipNextNewLine=!1,uo(e)&&(e=this._processSurrogate(e));return null===this.handler.onParseError||e>31&&e<127||e===io.LINE_FEED||e===io.CARRIAGE_RETURN||e>159&&e<64976||this._checkForProblematicCharacters(e),e}_checkForProblematicCharacters(e){po(e)?this._err(Eo.controlCharacterInInputStream):fo(e)&&this._err(Eo.noncharacterInInputStream)}retreat(e){for(this.pos-=e;this.pos=0;n--)if(e.attrs[n].name===t)return e.attrs[n].value;return null}!function(e){e[e.CHARACTER=0]="CHARACTER",e[e.NULL_CHARACTER=1]="NULL_CHARACTER",e[e.WHITESPACE_CHARACTER=2]="WHITESPACE_CHARACTER",e[e.START_TAG=3]="START_TAG",e[e.END_TAG=4]="END_TAG",e[e.COMMENT=5]="COMMENT",e[e.DOCTYPE=6]="DOCTYPE",e[e.EOF=7]="EOF",e[e.HIBERNATION=8]="HIBERNATION"}(To=To||(To={}));var Ao=Ke((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map((function(e){return e.charCodeAt(0)})))}));qe(Ao);var go=Ke((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=new Uint16Array("Ȁaglq\tɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map((function(e){return e.charCodeAt(0)})))}));qe(go);var No=Ke((function(e,t){var n;Object.defineProperty(t,"__esModule",{value:!0}),t.replaceCodePoint=t.fromCodePoint=void 0;var r=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);function i(e){var t;return e>=55296&&e<=57343||e>1114111?65533:null!==(t=r.get(e))&&void 0!==t?t:e}t.fromCodePoint=null!==(n=String.fromCodePoint)&&void 0!==n?n:function(e){var t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+=String.fromCharCode(e)},t.replaceCodePoint=i,t.default=function(e){return(0,t.fromCodePoint)(i(e))}}));qe(No),No.replaceCodePoint,No.fromCodePoint;var Co=Ao,Io=go,So=No,bo=Ke((function(e,t){var n=Ge&&Ge.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decodeXML=t.decodeHTMLStrict=t.decodeHTML=t.determineBranch=t.BinTrieFlags=t.fromCodePoint=t.replaceCodePoint=t.decodeCodePoint=t.xmlDecodeTree=t.htmlDecodeTree=void 0;var r=n(Co);t.htmlDecodeTree=r.default;var i=n(Io);t.xmlDecodeTree=i.default;var s=n(So);t.decodeCodePoint=s.default;var a,o,c=So;function l(e){return function(t,n){for(var r="",i=0,c=0;(c=t.indexOf("&",c))>=0;)if(r+=t.slice(i,c),i=c,c+=1,t.charCodeAt(c)!==a.NUM){for(var l=0,u=1,p=0,f=e[p];c>14)-1))break;p+=E}}if(0!==l)r+=1===(E=(e[l]&o.VALUE_LENGTH)>>14)?String.fromCharCode(e[l]&~o.VALUE_LENGTH):2===E?String.fromCharCode(e[l+1]):String.fromCharCode(e[l+1],e[l+2]),i=c-u+1}else{var m=c+1,T=10,_=t.charCodeAt(m);(_|a.To_LOWER_BIT)===a.LOWER_X&&(T=16,c+=1,m+=1);do{_=t.charCodeAt(++c)}while(_>=a.ZERO&&_<=a.NINE||16===T&&(_|a.To_LOWER_BIT)>=a.LOWER_A&&(_|a.To_LOWER_BIT)<=a.LOWER_F);if(m!==c){var A=t.substring(m,c),g=parseInt(A,T);if(t.charCodeAt(c)===a.SEMI)c+=1;else if(n)continue;r+=(0,s.default)(g),i=c}}return r+t.slice(i)}}function h(e,t,n,r){var i=(t&o.BRANCH_LENGTH)>>7,s=t&o.JUMP_TABLE;if(0===i)return 0!==s&&r===s?n:-1;if(s){var a=r-s;return a<0||a>=i?-1:e[n+a]-1}for(var c=n,l=c+i-1;c<=l;){var h=c+l>>>1,u=e[h];if(ur))return e[h+i];l=h-1}}return-1}Object.defineProperty(t,"replaceCodePoint",{enumerable:!0,get:function(){return c.replaceCodePoint}}),Object.defineProperty(t,"fromCodePoint",{enumerable:!0,get:function(){return c.fromCodePoint}}),function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.To_LOWER_BIT=32]="To_LOWER_BIT"}(a||(a={})),function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"}(o=t.BinTrieFlags||(t.BinTrieFlags={})),t.determineBranch=h;var u=l(r.default),p=l(i.default);t.decodeHTML=function(e){return u(e,!1)},t.decodeHTMLStrict=function(e){return u(e,!0)},t.decodeXML=function(e){return p(e,!0)}}));qe(bo),bo.decodeXML,bo.decodeHTMLStrict,bo.decodeHTML;var Oo=bo.determineBranch,yo=bo.BinTrieFlags,Lo=bo.fromCodePoint,ko=bo.replaceCodePoint;bo.decodeCodePoint;var vo,Do,Ro,Mo,Po,xo=bo.xmlDecodeTree,wo=bo.htmlDecodeTree;!function(e){e.HTML="http://www.w3.org/1999/xhtml",e.MATHML="http://www.w3.org/1998/Math/MathML",e.SVG="http://www.w3.org/2000/svg",e.XLINK="http://www.w3.org/1999/xlink",e.XML="http://www.w3.org/XML/1998/namespace",e.XMLNS="http://www.w3.org/2000/xmlns/"}(vo=vo||(vo={})),function(e){e.TYPE="type",e.ACTION="action",e.ENCODING="encoding",e.PROMPT="prompt",e.NAME="name",e.COLOR="color",e.FACE="face",e.SIZE="size"}(Do=Do||(Do={})),function(e){e.NO_QUIRKS="no-quirks",e.QUIRKS="quirks",e.LIMITED_QUIRKS="limited-quirks"}(Ro=Ro||(Ro={})),function(e){e.A="a",e.ADDRESS="address",e.ANNOTATION_XML="annotation-xml",e.APPLET="applet",e.AREA="area",e.ARTICLE="article",e.ASIDE="aside",e.B="b",e.BASE="base",e.BASEFONT="basefont",e.BGSOUND="bgsound",e.BIG="big",e.BLOCKQUOTE="blockquote",e.BODY="body",e.BR="br",e.BUTTON="button",e.CAPTION="caption",e.CENTER="center",e.CODE="code",e.COL="col",e.COLGROUP="colgroup",e.DD="dd",e.DESC="desc",e.DETAILS="details",e.DIALOG="dialog",e.DIR="dir",e.DIV="div",e.DL="dl",e.DT="dt",e.EM="em",e.EMBED="embed",e.FIELDSET="fieldset",e.FIGCAPTION="figcaption",e.FIGURE="figure",e.FONT="font",e.FOOTER="footer",e.FOREIGN_OBJECT="foreignObject",e.FORM="form",e.FRAME="frame",e.FRAMESET="frameset",e.H1="h1",e.H2="h2",e.H3="h3",e.H4="h4",e.H5="h5",e.H6="h6",e.HEAD="head",e.HEADER="header",e.HGROUP="hgroup",e.HR="hr",e.HTML="html",e.I="i",e.IMG="img",e.IMAGE="image",e.INPUT="input",e.IFRAME="iframe",e.KEYGEN="keygen",e.LABEL="label",e.LI="li",e.LINK="link",e.LISTING="listing",e.MAIN="main",e.MALIGNMARK="malignmark",e.MARQUEE="marquee",e.MATH="math",e.MENU="menu",e.META="meta",e.MGLYPH="mglyph",e.MI="mi",e.MO="mo",e.MN="mn",e.MS="ms",e.MTEXT="mtext",e.NAV="nav",e.NOBR="nobr",e.NOFRAMES="noframes",e.NOEMBED="noembed",e.NOSCRIPT="noscript",e.OBJECT="object",e.OL="ol",e.OPTGROUP="optgroup",e.OPTION="option",e.P="p",e.PARAM="param",e.PLAINTEXT="plaintext",e.PRE="pre",e.RB="rb",e.RP="rp",e.RT="rt",e.RTC="rtc",e.RUBY="ruby",e.S="s",e.SCRIPT="script",e.SECTION="section",e.SELECT="select",e.SOURCE="source",e.SMALL="small",e.SPAN="span",e.STRIKE="strike",e.STRONG="strong",e.STYLE="style",e.SUB="sub",e.SUMMARY="summary",e.SUP="sup",e.TABLE="table",e.TBODY="tbody",e.TEMPLATE="template",e.TEXTAREA="textarea",e.TFOOT="tfoot",e.TD="td",e.TH="th",e.THEAD="thead",e.TITLE="title",e.TR="tr",e.TRACK="track",e.TT="tt",e.U="u",e.UL="ul",e.SVG="svg",e.VAR="var",e.WBR="wbr",e.XMP="xmp"}(Mo=Mo||(Mo={})),function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.A=1]="A",e[e.ADDRESS=2]="ADDRESS",e[e.ANNOTATION_XML=3]="ANNOTATION_XML",e[e.APPLET=4]="APPLET",e[e.AREA=5]="AREA",e[e.ARTICLE=6]="ARTICLE",e[e.ASIDE=7]="ASIDE",e[e.B=8]="B",e[e.BASE=9]="BASE",e[e.BASEFONT=10]="BASEFONT",e[e.BGSOUND=11]="BGSOUND",e[e.BIG=12]="BIG",e[e.BLOCKQUOTE=13]="BLOCKQUOTE",e[e.BODY=14]="BODY",e[e.BR=15]="BR",e[e.BUTTON=16]="BUTTON",e[e.CAPTION=17]="CAPTION",e[e.CENTER=18]="CENTER",e[e.CODE=19]="CODE",e[e.COL=20]="COL",e[e.COLGROUP=21]="COLGROUP",e[e.DD=22]="DD",e[e.DESC=23]="DESC",e[e.DETAILS=24]="DETAILS",e[e.DIALOG=25]="DIALOG",e[e.DIR=26]="DIR",e[e.DIV=27]="DIV",e[e.DL=28]="DL",e[e.DT=29]="DT",e[e.EM=30]="EM",e[e.EMBED=31]="EMBED",e[e.FIELDSET=32]="FIELDSET",e[e.FIGCAPTION=33]="FIGCAPTION",e[e.FIGURE=34]="FIGURE",e[e.FONT=35]="FONT",e[e.FOOTER=36]="FOOTER",e[e.FOREIGN_OBJECT=37]="FOREIGN_OBJECT",e[e.FORM=38]="FORM",e[e.FRAME=39]="FRAME",e[e.FRAMESET=40]="FRAMESET",e[e.H1=41]="H1",e[e.H2=42]="H2",e[e.H3=43]="H3",e[e.H4=44]="H4",e[e.H5=45]="H5",e[e.H6=46]="H6",e[e.HEAD=47]="HEAD",e[e.HEADER=48]="HEADER",e[e.HGROUP=49]="HGROUP",e[e.HR=50]="HR",e[e.HTML=51]="HTML",e[e.I=52]="I",e[e.IMG=53]="IMG",e[e.IMAGE=54]="IMAGE",e[e.INPUT=55]="INPUT",e[e.IFRAME=56]="IFRAME",e[e.KEYGEN=57]="KEYGEN",e[e.LABEL=58]="LABEL",e[e.LI=59]="LI",e[e.LINK=60]="LINK",e[e.LISTING=61]="LISTING",e[e.MAIN=62]="MAIN",e[e.MALIGNMARK=63]="MALIGNMARK",e[e.MARQUEE=64]="MARQUEE",e[e.MATH=65]="MATH",e[e.MENU=66]="MENU",e[e.META=67]="META",e[e.MGLYPH=68]="MGLYPH",e[e.MI=69]="MI",e[e.MO=70]="MO",e[e.MN=71]="MN",e[e.MS=72]="MS",e[e.MTEXT=73]="MTEXT",e[e.NAV=74]="NAV",e[e.NOBR=75]="NOBR",e[e.NOFRAMES=76]="NOFRAMES",e[e.NOEMBED=77]="NOEMBED",e[e.NOSCRIPT=78]="NOSCRIPT",e[e.OBJECT=79]="OBJECT",e[e.OL=80]="OL",e[e.OPTGROUP=81]="OPTGROUP",e[e.OPTION=82]="OPTION",e[e.P=83]="P",e[e.PARAM=84]="PARAM",e[e.PLAINTEXT=85]="PLAINTEXT",e[e.PRE=86]="PRE",e[e.RB=87]="RB",e[e.RP=88]="RP",e[e.RT=89]="RT",e[e.RTC=90]="RTC",e[e.RUBY=91]="RUBY",e[e.S=92]="S",e[e.SCRIPT=93]="SCRIPT",e[e.SECTION=94]="SECTION",e[e.SELECT=95]="SELECT",e[e.SOURCE=96]="SOURCE",e[e.SMALL=97]="SMALL",e[e.SPAN=98]="SPAN",e[e.STRIKE=99]="STRIKE",e[e.STRONG=100]="STRONG",e[e.STYLE=101]="STYLE",e[e.SUB=102]="SUB",e[e.SUMMARY=103]="SUMMARY",e[e.SUP=104]="SUP",e[e.TABLE=105]="TABLE",e[e.TBODY=106]="TBODY",e[e.TEMPLATE=107]="TEMPLATE",e[e.TEXTAREA=108]="TEXTAREA",e[e.TFOOT=109]="TFOOT",e[e.TD=110]="TD",e[e.TH=111]="TH",e[e.THEAD=112]="THEAD",e[e.TITLE=113]="TITLE",e[e.TR=114]="TR",e[e.TRACK=115]="TRACK",e[e.TT=116]="TT",e[e.U=117]="U",e[e.UL=118]="UL",e[e.SVG=119]="SVG",e[e.VAR=120]="VAR",e[e.WBR=121]="WBR",e[e.XMP=122]="XMP"}(Po=Po||(Po={}));const Bo=new Map([[Mo.A,Po.A],[Mo.ADDRESS,Po.ADDRESS],[Mo.ANNOTATION_XML,Po.ANNOTATION_XML],[Mo.APPLET,Po.APPLET],[Mo.AREA,Po.AREA],[Mo.ARTICLE,Po.ARTICLE],[Mo.ASIDE,Po.ASIDE],[Mo.B,Po.B],[Mo.BASE,Po.BASE],[Mo.BASEFONT,Po.BASEFONT],[Mo.BGSOUND,Po.BGSOUND],[Mo.BIG,Po.BIG],[Mo.BLOCKQUOTE,Po.BLOCKQUOTE],[Mo.BODY,Po.BODY],[Mo.BR,Po.BR],[Mo.BUTTON,Po.BUTTON],[Mo.CAPTION,Po.CAPTION],[Mo.CENTER,Po.CENTER],[Mo.CODE,Po.CODE],[Mo.COL,Po.COL],[Mo.COLGROUP,Po.COLGROUP],[Mo.DD,Po.DD],[Mo.DESC,Po.DESC],[Mo.DETAILS,Po.DETAILS],[Mo.DIALOG,Po.DIALOG],[Mo.DIR,Po.DIR],[Mo.DIV,Po.DIV],[Mo.DL,Po.DL],[Mo.DT,Po.DT],[Mo.EM,Po.EM],[Mo.EMBED,Po.EMBED],[Mo.FIELDSET,Po.FIELDSET],[Mo.FIGCAPTION,Po.FIGCAPTION],[Mo.FIGURE,Po.FIGURE],[Mo.FONT,Po.FONT],[Mo.FOOTER,Po.FOOTER],[Mo.FOREIGN_OBJECT,Po.FOREIGN_OBJECT],[Mo.FORM,Po.FORM],[Mo.FRAME,Po.FRAME],[Mo.FRAMESET,Po.FRAMESET],[Mo.H1,Po.H1],[Mo.H2,Po.H2],[Mo.H3,Po.H3],[Mo.H4,Po.H4],[Mo.H5,Po.H5],[Mo.H6,Po.H6],[Mo.HEAD,Po.HEAD],[Mo.HEADER,Po.HEADER],[Mo.HGROUP,Po.HGROUP],[Mo.HR,Po.HR],[Mo.HTML,Po.HTML],[Mo.I,Po.I],[Mo.IMG,Po.IMG],[Mo.IMAGE,Po.IMAGE],[Mo.INPUT,Po.INPUT],[Mo.IFRAME,Po.IFRAME],[Mo.KEYGEN,Po.KEYGEN],[Mo.LABEL,Po.LABEL],[Mo.LI,Po.LI],[Mo.LINK,Po.LINK],[Mo.LISTING,Po.LISTING],[Mo.MAIN,Po.MAIN],[Mo.MALIGNMARK,Po.MALIGNMARK],[Mo.MARQUEE,Po.MARQUEE],[Mo.MATH,Po.MATH],[Mo.MENU,Po.MENU],[Mo.META,Po.META],[Mo.MGLYPH,Po.MGLYPH],[Mo.MI,Po.MI],[Mo.MO,Po.MO],[Mo.MN,Po.MN],[Mo.MS,Po.MS],[Mo.MTEXT,Po.MTEXT],[Mo.NAV,Po.NAV],[Mo.NOBR,Po.NOBR],[Mo.NOFRAMES,Po.NOFRAMES],[Mo.NOEMBED,Po.NOEMBED],[Mo.NOSCRIPT,Po.NOSCRIPT],[Mo.OBJECT,Po.OBJECT],[Mo.OL,Po.OL],[Mo.OPTGROUP,Po.OPTGROUP],[Mo.OPTION,Po.OPTION],[Mo.P,Po.P],[Mo.PARAM,Po.PARAM],[Mo.PLAINTEXT,Po.PLAINTEXT],[Mo.PRE,Po.PRE],[Mo.RB,Po.RB],[Mo.RP,Po.RP],[Mo.RT,Po.RT],[Mo.RTC,Po.RTC],[Mo.RUBY,Po.RUBY],[Mo.S,Po.S],[Mo.SCRIPT,Po.SCRIPT],[Mo.SECTION,Po.SECTION],[Mo.SELECT,Po.SELECT],[Mo.SOURCE,Po.SOURCE],[Mo.SMALL,Po.SMALL],[Mo.SPAN,Po.SPAN],[Mo.STRIKE,Po.STRIKE],[Mo.STRONG,Po.STRONG],[Mo.STYLE,Po.STYLE],[Mo.SUB,Po.SUB],[Mo.SUMMARY,Po.SUMMARY],[Mo.SUP,Po.SUP],[Mo.TABLE,Po.TABLE],[Mo.TBODY,Po.TBODY],[Mo.TEMPLATE,Po.TEMPLATE],[Mo.TEXTAREA,Po.TEXTAREA],[Mo.TFOOT,Po.TFOOT],[Mo.TD,Po.TD],[Mo.TH,Po.TH],[Mo.THEAD,Po.THEAD],[Mo.TITLE,Po.TITLE],[Mo.TR,Po.TR],[Mo.TRACK,Po.TRACK],[Mo.TT,Po.TT],[Mo.U,Po.U],[Mo.UL,Po.UL],[Mo.SVG,Po.SVG],[Mo.VAR,Po.VAR],[Mo.WBR,Po.WBR],[Mo.XMP,Po.XMP]]);function Fo(e){var t;return null!==(t=Bo.get(e))&&void 0!==t?t:Po.UNKNOWN}const Uo=Po,Ho={[vo.HTML]:new Set([Uo.ADDRESS,Uo.APPLET,Uo.AREA,Uo.ARTICLE,Uo.ASIDE,Uo.BASE,Uo.BASEFONT,Uo.BGSOUND,Uo.BLOCKQUOTE,Uo.BODY,Uo.BR,Uo.BUTTON,Uo.CAPTION,Uo.CENTER,Uo.COL,Uo.COLGROUP,Uo.DD,Uo.DETAILS,Uo.DIR,Uo.DIV,Uo.DL,Uo.DT,Uo.EMBED,Uo.FIELDSET,Uo.FIGCAPTION,Uo.FIGURE,Uo.FOOTER,Uo.FORM,Uo.FRAME,Uo.FRAMESET,Uo.H1,Uo.H2,Uo.H3,Uo.H4,Uo.H5,Uo.H6,Uo.HEAD,Uo.HEADER,Uo.HGROUP,Uo.HR,Uo.HTML,Uo.IFRAME,Uo.IMG,Uo.INPUT,Uo.LI,Uo.LINK,Uo.LISTING,Uo.MAIN,Uo.MARQUEE,Uo.MENU,Uo.META,Uo.NAV,Uo.NOEMBED,Uo.NOFRAMES,Uo.NOSCRIPT,Uo.OBJECT,Uo.OL,Uo.P,Uo.PARAM,Uo.PLAINTEXT,Uo.PRE,Uo.SCRIPT,Uo.SECTION,Uo.SELECT,Uo.SOURCE,Uo.STYLE,Uo.SUMMARY,Uo.TABLE,Uo.TBODY,Uo.TD,Uo.TEMPLATE,Uo.TEXTAREA,Uo.TFOOT,Uo.TH,Uo.THEAD,Uo.TITLE,Uo.TR,Uo.TRACK,Uo.UL,Uo.WBR,Uo.XMP]),[vo.MATHML]:new Set([Uo.MI,Uo.MO,Uo.MN,Uo.MS,Uo.MTEXT,Uo.ANNOTATION_XML]),[vo.SVG]:new Set([Uo.TITLE,Uo.FOREIGN_OBJECT,Uo.DESC]),[vo.XLINK]:new Set,[vo.XML]:new Set,[vo.XMLNS]:new Set};function Go(e){return e===Uo.H1||e===Uo.H2||e===Uo.H3||e===Uo.H4||e===Uo.H5||e===Uo.H6}const Yo=new Set([Mo.STYLE,Mo.SCRIPT,Mo.XMP,Mo.IFRAME,Mo.NOEMBED,Mo.NOFRAMES,Mo.PLAINTEXT]);const qo=new Map([[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);var Ko;!function(e){e[e.DATA=0]="DATA",e[e.RCDATA=1]="RCDATA",e[e.RAWTEXT=2]="RAWTEXT",e[e.SCRIPT_DATA=3]="SCRIPT_DATA",e[e.PLAINTEXT=4]="PLAINTEXT",e[e.TAG_OPEN=5]="TAG_OPEN",e[e.END_TAG_OPEN=6]="END_TAG_OPEN",e[e.TAG_NAME=7]="TAG_NAME",e[e.RCDATA_LESS_THAN_SIGN=8]="RCDATA_LESS_THAN_SIGN",e[e.RCDATA_END_TAG_OPEN=9]="RCDATA_END_TAG_OPEN",e[e.RCDATA_END_TAG_NAME=10]="RCDATA_END_TAG_NAME",e[e.RAWTEXT_LESS_THAN_SIGN=11]="RAWTEXT_LESS_THAN_SIGN",e[e.RAWTEXT_END_TAG_OPEN=12]="RAWTEXT_END_TAG_OPEN",e[e.RAWTEXT_END_TAG_NAME=13]="RAWTEXT_END_TAG_NAME",e[e.SCRIPT_DATA_LESS_THAN_SIGN=14]="SCRIPT_DATA_LESS_THAN_SIGN",e[e.SCRIPT_DATA_END_TAG_OPEN=15]="SCRIPT_DATA_END_TAG_OPEN",e[e.SCRIPT_DATA_END_TAG_NAME=16]="SCRIPT_DATA_END_TAG_NAME",e[e.SCRIPT_DATA_ESCAPE_START=17]="SCRIPT_DATA_ESCAPE_START",e[e.SCRIPT_DATA_ESCAPE_START_DASH=18]="SCRIPT_DATA_ESCAPE_START_DASH",e[e.SCRIPT_DATA_ESCAPED=19]="SCRIPT_DATA_ESCAPED",e[e.SCRIPT_DATA_ESCAPED_DASH=20]="SCRIPT_DATA_ESCAPED_DASH",e[e.SCRIPT_DATA_ESCAPED_DASH_DASH=21]="SCRIPT_DATA_ESCAPED_DASH_DASH",e[e.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN=22]="SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN",e[e.SCRIPT_DATA_ESCAPED_END_TAG_OPEN=23]="SCRIPT_DATA_ESCAPED_END_TAG_OPEN",e[e.SCRIPT_DATA_ESCAPED_END_TAG_NAME=24]="SCRIPT_DATA_ESCAPED_END_TAG_NAME",e[e.SCRIPT_DATA_DOUBLE_ESCAPE_START=25]="SCRIPT_DATA_DOUBLE_ESCAPE_START",e[e.SCRIPT_DATA_DOUBLE_ESCAPED=26]="SCRIPT_DATA_DOUBLE_ESCAPED",e[e.SCRIPT_DATA_DOUBLE_ESCAPED_DASH=27]="SCRIPT_DATA_DOUBLE_ESCAPED_DASH",e[e.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH=28]="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH",e[e.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN=29]="SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN",e[e.SCRIPT_DATA_DOUBLE_ESCAPE_END=30]="SCRIPT_DATA_DOUBLE_ESCAPE_END",e[e.BEFORE_ATTRIBUTE_NAME=31]="BEFORE_ATTRIBUTE_NAME",e[e.ATTRIBUTE_NAME=32]="ATTRIBUTE_NAME",e[e.AFTER_ATTRIBUTE_NAME=33]="AFTER_ATTRIBUTE_NAME",e[e.BEFORE_ATTRIBUTE_VALUE=34]="BEFORE_ATTRIBUTE_VALUE",e[e.ATTRIBUTE_VALUE_DOUBLE_QUOTED=35]="ATTRIBUTE_VALUE_DOUBLE_QUOTED",e[e.ATTRIBUTE_VALUE_SINGLE_QUOTED=36]="ATTRIBUTE_VALUE_SINGLE_QUOTED",e[e.ATTRIBUTE_VALUE_UNQUOTED=37]="ATTRIBUTE_VALUE_UNQUOTED",e[e.AFTER_ATTRIBUTE_VALUE_QUOTED=38]="AFTER_ATTRIBUTE_VALUE_QUOTED",e[e.SELF_CLOSING_START_TAG=39]="SELF_CLOSING_START_TAG",e[e.BOGUS_COMMENT=40]="BOGUS_COMMENT",e[e.MARKUP_DECLARATION_OPEN=41]="MARKUP_DECLARATION_OPEN",e[e.COMMENT_START=42]="COMMENT_START",e[e.COMMENT_START_DASH=43]="COMMENT_START_DASH",e[e.COMMENT=44]="COMMENT",e[e.COMMENT_LESS_THAN_SIGN=45]="COMMENT_LESS_THAN_SIGN",e[e.COMMENT_LESS_THAN_SIGN_BANG=46]="COMMENT_LESS_THAN_SIGN_BANG",e[e.COMMENT_LESS_THAN_SIGN_BANG_DASH=47]="COMMENT_LESS_THAN_SIGN_BANG_DASH",e[e.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH=48]="COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH",e[e.COMMENT_END_DASH=49]="COMMENT_END_DASH",e[e.COMMENT_END=50]="COMMENT_END",e[e.COMMENT_END_BANG=51]="COMMENT_END_BANG",e[e.DOCTYPE=52]="DOCTYPE",e[e.BEFORE_DOCTYPE_NAME=53]="BEFORE_DOCTYPE_NAME",e[e.DOCTYPE_NAME=54]="DOCTYPE_NAME",e[e.AFTER_DOCTYPE_NAME=55]="AFTER_DOCTYPE_NAME",e[e.AFTER_DOCTYPE_PUBLIC_KEYWORD=56]="AFTER_DOCTYPE_PUBLIC_KEYWORD",e[e.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER=57]="BEFORE_DOCTYPE_PUBLIC_IDENTIFIER",e[e.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED=58]="DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED",e[e.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED=59]="DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED",e[e.AFTER_DOCTYPE_PUBLIC_IDENTIFIER=60]="AFTER_DOCTYPE_PUBLIC_IDENTIFIER",e[e.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS=61]="BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS",e[e.AFTER_DOCTYPE_SYSTEM_KEYWORD=62]="AFTER_DOCTYPE_SYSTEM_KEYWORD",e[e.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER=63]="BEFORE_DOCTYPE_SYSTEM_IDENTIFIER",e[e.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED=64]="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED",e[e.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED=65]="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED",e[e.AFTER_DOCTYPE_SYSTEM_IDENTIFIER=66]="AFTER_DOCTYPE_SYSTEM_IDENTIFIER",e[e.BOGUS_DOCTYPE=67]="BOGUS_DOCTYPE",e[e.CDATA_SECTION=68]="CDATA_SECTION",e[e.CDATA_SECTION_BRACKET=69]="CDATA_SECTION_BRACKET",e[e.CDATA_SECTION_END=70]="CDATA_SECTION_END",e[e.CHARACTER_REFERENCE=71]="CHARACTER_REFERENCE",e[e.NAMED_CHARACTER_REFERENCE=72]="NAMED_CHARACTER_REFERENCE",e[e.AMBIGUOUS_AMPERSAND=73]="AMBIGUOUS_AMPERSAND",e[e.NUMERIC_CHARACTER_REFERENCE=74]="NUMERIC_CHARACTER_REFERENCE",e[e.HEXADEMICAL_CHARACTER_REFERENCE_START=75]="HEXADEMICAL_CHARACTER_REFERENCE_START",e[e.HEXADEMICAL_CHARACTER_REFERENCE=76]="HEXADEMICAL_CHARACTER_REFERENCE",e[e.DECIMAL_CHARACTER_REFERENCE=77]="DECIMAL_CHARACTER_REFERENCE",e[e.NUMERIC_CHARACTER_REFERENCE_END=78]="NUMERIC_CHARACTER_REFERENCE_END"}(Ko||(Ko={}));const jo={DATA:Ko.DATA,RCDATA:Ko.RCDATA,RAWTEXT:Ko.RAWTEXT,SCRIPT_DATA:Ko.SCRIPT_DATA,PLAINTEXT:Ko.PLAINTEXT,CDATA_SECTION:Ko.CDATA_SECTION};function Vo(e){return e>=io.DIGIT_0&&e<=io.DIGIT_9}function Wo(e){return e>=io.LATIN_CAPITAL_A&&e<=io.LATIN_CAPITAL_Z}function Qo(e){return function(e){return e>=io.LATIN_SMALL_A&&e<=io.LATIN_SMALL_Z}(e)||Wo(e)}function Xo(e){return Qo(e)||Vo(e)}function $o(e){return e>=io.LATIN_CAPITAL_A&&e<=io.LATIN_CAPITAL_F}function zo(e){return e>=io.LATIN_SMALL_A&&e<=io.LATIN_SMALL_F}function Jo(e){return e+32}function Zo(e){return e===io.SPACE||e===io.LINE_FEED||e===io.TABULATION||e===io.FORM_FEED}function ec(e){return Zo(e)||e===io.SOLIDUS||e===io.GREATER_THAN_SIGN}class tc{constructor(e,t){this.options=e,this.handler=t,this.paused=!1,this.inLoop=!1,this.inForeignNode=!1,this.lastStartTagName="",this.active=!1,this.state=Ko.DATA,this.returnState=Ko.DATA,this.charRefCode=-1,this.consumedAfterSnapshot=-1,this.currentCharacterToken=null,this.currentToken=null,this.currentAttr={name:"",value:""},this.preprocessor=new mo(t),this.currentLocation=this.getCurrentLocation(-1)}_err(e){var t,n;null===(n=(t=this.handler).onParseError)||void 0===n||n.call(t,this.preprocessor.getError(e))}getCurrentLocation(e){return this.options.sourceCodeLocationInfo?{startLine:this.preprocessor.line,startCol:this.preprocessor.col-e,startOffset:this.preprocessor.offset-e,endLine:-1,endCol:-1,endOffset:-1}:null}_runParsingLoop(){if(!this.inLoop){for(this.inLoop=!0;this.active&&!this.paused;){this.consumedAfterSnapshot=0;const e=this._consume();this._ensureHibernation()||this._callState(e)}this.inLoop=!1}}pause(){this.paused=!0}resume(e){if(!this.paused)throw new Error("Parser was already resumed");this.paused=!1,this.inLoop||(this._runParsingLoop(),this.paused||null==e||e())}write(e,t,n){this.active=!0,this.preprocessor.write(e,t),this._runParsingLoop(),this.paused||null==n||n()}insertHtmlAtCurrentPos(e){this.active=!0,this.preprocessor.insertHtmlAtCurrentPos(e),this._runParsingLoop()}_ensureHibernation(){return!!this.preprocessor.endOfChunkHit&&(this._unconsume(this.consumedAfterSnapshot),this.active=!1,!0)}_consume(){return this.consumedAfterSnapshot++,this.preprocessor.advance()}_unconsume(e){this.consumedAfterSnapshot-=e,this.preprocessor.retreat(e)}_reconsumeInState(e,t){this.state=e,this._callState(t)}_advanceBy(e){this.consumedAfterSnapshot+=e;for(let t=0;t0&&this._err(Eo.endTagWithAttributes),e.selfClosing&&this._err(Eo.endTagWithTrailingSolidus),this.handler.onEndTag(e)),this.preprocessor.dropParsedChunk()}emitCurrentComment(e){this.prepareToken(e),this.handler.onComment(e),this.preprocessor.dropParsedChunk()}emitCurrentDoctype(e){this.prepareToken(e),this.handler.onDoctype(e),this.preprocessor.dropParsedChunk()}_emitCurrentCharacterToken(e){if(this.currentCharacterToken){switch(e&&this.currentCharacterToken.location&&(this.currentCharacterToken.location.endLine=e.startLine,this.currentCharacterToken.location.endCol=e.startCol,this.currentCharacterToken.location.endOffset=e.startOffset),this.currentCharacterToken.type){case To.CHARACTER:this.handler.onCharacter(this.currentCharacterToken);break;case To.NULL_CHARACTER:this.handler.onNullCharacter(this.currentCharacterToken);break;case To.WHITESPACE_CHARACTER:this.handler.onWhitespaceCharacter(this.currentCharacterToken)}this.currentCharacterToken=null}}_emitEOFToken(){const e=this.getCurrentLocation(0);e&&(e.endLine=e.startLine,e.endCol=e.startCol,e.endOffset=e.startOffset),this._emitCurrentCharacterToken(e),this.handler.onEof({type:To.EOF,location:e}),this.active=!1}_appendCharToCurrentCharacterToken(e,t){if(this.currentCharacterToken){if(this.currentCharacterToken.type===e)return void(this.currentCharacterToken.chars+=t);this.currentLocation=this.getCurrentLocation(0),this._emitCurrentCharacterToken(this.currentLocation),this.preprocessor.dropParsedChunk()}this._createCharacterToken(e,t)}_emitCodePoint(e){const t=Zo(e)?To.WHITESPACE_CHARACTER:e===io.NULL?To.NULL_CHARACTER:To.CHARACTER;this._appendCharToCurrentCharacterToken(t,String.fromCodePoint(e))}_emitChars(e){this._appendCharToCurrentCharacterToken(To.CHARACTER,e)}_matchNamedCharacterReference(e){let t=null,n=0,r=!1;for(let s=0,a=wo[0];s>=0&&(s=Oo(wo,a,s+1,e),!(s<0));e=this._consume()){n+=1,a=wo[s];const o=a&yo.VALUE_LENGTH;if(o){const a=(o>>14)-1;if(e!==io.SEMICOLON&&this._isCharacterReferenceInAttribute()&&((i=this.preprocessor.peek(1))===io.EQUALS_SIGN||Xo(i))?(t=[io.AMPERSAND],s+=a):(t=0===a?[wo[s]&~yo.VALUE_LENGTH]:1===a?[wo[++s]]:[wo[++s],wo[++s]],n=0,r=e!==io.SEMICOLON),0===a){this._consume();break}}}var i;return this._unconsume(n),r&&!this.preprocessor.endOfChunkHit&&this._err(Eo.missingSemicolonAfterCharacterReference),this._unconsume(1),t}_isCharacterReferenceInAttribute(){return this.returnState===Ko.ATTRIBUTE_VALUE_DOUBLE_QUOTED||this.returnState===Ko.ATTRIBUTE_VALUE_SINGLE_QUOTED||this.returnState===Ko.ATTRIBUTE_VALUE_UNQUOTED}_flushCodePointConsumedAsCharacterReference(e){this._isCharacterReferenceInAttribute()?this.currentAttr.value+=String.fromCodePoint(e):this._emitCodePoint(e)}_callState(e){switch(this.state){case Ko.DATA:this._stateData(e);break;case Ko.RCDATA:this._stateRcdata(e);break;case Ko.RAWTEXT:this._stateRawtext(e);break;case Ko.SCRIPT_DATA:this._stateScriptData(e);break;case Ko.PLAINTEXT:this._statePlaintext(e);break;case Ko.TAG_OPEN:this._stateTagOpen(e);break;case Ko.END_TAG_OPEN:this._stateEndTagOpen(e);break;case Ko.TAG_NAME:this._stateTagName(e);break;case Ko.RCDATA_LESS_THAN_SIGN:this._stateRcdataLessThanSign(e);break;case Ko.RCDATA_END_TAG_OPEN:this._stateRcdataEndTagOpen(e);break;case Ko.RCDATA_END_TAG_NAME:this._stateRcdataEndTagName(e);break;case Ko.RAWTEXT_LESS_THAN_SIGN:this._stateRawtextLessThanSign(e);break;case Ko.RAWTEXT_END_TAG_OPEN:this._stateRawtextEndTagOpen(e);break;case Ko.RAWTEXT_END_TAG_NAME:this._stateRawtextEndTagName(e);break;case Ko.SCRIPT_DATA_LESS_THAN_SIGN:this._stateScriptDataLessThanSign(e);break;case Ko.SCRIPT_DATA_END_TAG_OPEN:this._stateScriptDataEndTagOpen(e);break;case Ko.SCRIPT_DATA_END_TAG_NAME:this._stateScriptDataEndTagName(e);break;case Ko.SCRIPT_DATA_ESCAPE_START:this._stateScriptDataEscapeStart(e);break;case Ko.SCRIPT_DATA_ESCAPE_START_DASH:this._stateScriptDataEscapeStartDash(e);break;case Ko.SCRIPT_DATA_ESCAPED:this._stateScriptDataEscaped(e);break;case Ko.SCRIPT_DATA_ESCAPED_DASH:this._stateScriptDataEscapedDash(e);break;case Ko.SCRIPT_DATA_ESCAPED_DASH_DASH:this._stateScriptDataEscapedDashDash(e);break;case Ko.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN:this._stateScriptDataEscapedLessThanSign(e);break;case Ko.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:this._stateScriptDataEscapedEndTagOpen(e);break;case Ko.SCRIPT_DATA_ESCAPED_END_TAG_NAME:this._stateScriptDataEscapedEndTagName(e);break;case Ko.SCRIPT_DATA_DOUBLE_ESCAPE_START:this._stateScriptDataDoubleEscapeStart(e);break;case Ko.SCRIPT_DATA_DOUBLE_ESCAPED:this._stateScriptDataDoubleEscaped(e);break;case Ko.SCRIPT_DATA_DOUBLE_ESCAPED_DASH:this._stateScriptDataDoubleEscapedDash(e);break;case Ko.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH:this._stateScriptDataDoubleEscapedDashDash(e);break;case Ko.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN:this._stateScriptDataDoubleEscapedLessThanSign(e);break;case Ko.SCRIPT_DATA_DOUBLE_ESCAPE_END:this._stateScriptDataDoubleEscapeEnd(e);break;case Ko.BEFORE_ATTRIBUTE_NAME:this._stateBeforeAttributeName(e);break;case Ko.ATTRIBUTE_NAME:this._stateAttributeName(e);break;case Ko.AFTER_ATTRIBUTE_NAME:this._stateAfterAttributeName(e);break;case Ko.BEFORE_ATTRIBUTE_VALUE:this._stateBeforeAttributeValue(e);break;case Ko.ATTRIBUTE_VALUE_DOUBLE_QUOTED:this._stateAttributeValueDoubleQuoted(e);break;case Ko.ATTRIBUTE_VALUE_SINGLE_QUOTED:this._stateAttributeValueSingleQuoted(e);break;case Ko.ATTRIBUTE_VALUE_UNQUOTED:this._stateAttributeValueUnquoted(e);break;case Ko.AFTER_ATTRIBUTE_VALUE_QUOTED:this._stateAfterAttributeValueQuoted(e);break;case Ko.SELF_CLOSING_START_TAG:this._stateSelfClosingStartTag(e);break;case Ko.BOGUS_COMMENT:this._stateBogusComment(e);break;case Ko.MARKUP_DECLARATION_OPEN:this._stateMarkupDeclarationOpen(e);break;case Ko.COMMENT_START:this._stateCommentStart(e);break;case Ko.COMMENT_START_DASH:this._stateCommentStartDash(e);break;case Ko.COMMENT:this._stateComment(e);break;case Ko.COMMENT_LESS_THAN_SIGN:this._stateCommentLessThanSign(e);break;case Ko.COMMENT_LESS_THAN_SIGN_BANG:this._stateCommentLessThanSignBang(e);break;case Ko.COMMENT_LESS_THAN_SIGN_BANG_DASH:this._stateCommentLessThanSignBangDash(e);break;case Ko.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH:this._stateCommentLessThanSignBangDashDash(e);break;case Ko.COMMENT_END_DASH:this._stateCommentEndDash(e);break;case Ko.COMMENT_END:this._stateCommentEnd(e);break;case Ko.COMMENT_END_BANG:this._stateCommentEndBang(e);break;case Ko.DOCTYPE:this._stateDoctype(e);break;case Ko.BEFORE_DOCTYPE_NAME:this._stateBeforeDoctypeName(e);break;case Ko.DOCTYPE_NAME:this._stateDoctypeName(e);break;case Ko.AFTER_DOCTYPE_NAME:this._stateAfterDoctypeName(e);break;case Ko.AFTER_DOCTYPE_PUBLIC_KEYWORD:this._stateAfterDoctypePublicKeyword(e);break;case Ko.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER:this._stateBeforeDoctypePublicIdentifier(e);break;case Ko.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED:this._stateDoctypePublicIdentifierDoubleQuoted(e);break;case Ko.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED:this._stateDoctypePublicIdentifierSingleQuoted(e);break;case Ko.AFTER_DOCTYPE_PUBLIC_IDENTIFIER:this._stateAfterDoctypePublicIdentifier(e);break;case Ko.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS:this._stateBetweenDoctypePublicAndSystemIdentifiers(e);break;case Ko.AFTER_DOCTYPE_SYSTEM_KEYWORD:this._stateAfterDoctypeSystemKeyword(e);break;case Ko.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER:this._stateBeforeDoctypeSystemIdentifier(e);break;case Ko.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED:this._stateDoctypeSystemIdentifierDoubleQuoted(e);break;case Ko.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED:this._stateDoctypeSystemIdentifierSingleQuoted(e);break;case Ko.AFTER_DOCTYPE_SYSTEM_IDENTIFIER:this._stateAfterDoctypeSystemIdentifier(e);break;case Ko.BOGUS_DOCTYPE:this._stateBogusDoctype(e);break;case Ko.CDATA_SECTION:this._stateCdataSection(e);break;case Ko.CDATA_SECTION_BRACKET:this._stateCdataSectionBracket(e);break;case Ko.CDATA_SECTION_END:this._stateCdataSectionEnd(e);break;case Ko.CHARACTER_REFERENCE:this._stateCharacterReference(e);break;case Ko.NAMED_CHARACTER_REFERENCE:this._stateNamedCharacterReference(e);break;case Ko.AMBIGUOUS_AMPERSAND:this._stateAmbiguousAmpersand(e);break;case Ko.NUMERIC_CHARACTER_REFERENCE:this._stateNumericCharacterReference(e);break;case Ko.HEXADEMICAL_CHARACTER_REFERENCE_START:this._stateHexademicalCharacterReferenceStart(e);break;case Ko.HEXADEMICAL_CHARACTER_REFERENCE:this._stateHexademicalCharacterReference(e);break;case Ko.DECIMAL_CHARACTER_REFERENCE:this._stateDecimalCharacterReference(e);break;case Ko.NUMERIC_CHARACTER_REFERENCE_END:this._stateNumericCharacterReferenceEnd(e);break;default:throw new Error("Unknown state")}}_stateData(e){switch(e){case io.LESS_THAN_SIGN:this.state=Ko.TAG_OPEN;break;case io.AMPERSAND:this.returnState=Ko.DATA,this.state=Ko.CHARACTER_REFERENCE;break;case io.NULL:this._err(Eo.unexpectedNullCharacter),this._emitCodePoint(e);break;case io.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e)}}_stateRcdata(e){switch(e){case io.AMPERSAND:this.returnState=Ko.RCDATA,this.state=Ko.CHARACTER_REFERENCE;break;case io.LESS_THAN_SIGN:this.state=Ko.RCDATA_LESS_THAN_SIGN;break;case io.NULL:this._err(Eo.unexpectedNullCharacter),this._emitChars("�");break;case io.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e)}}_stateRawtext(e){switch(e){case io.LESS_THAN_SIGN:this.state=Ko.RAWTEXT_LESS_THAN_SIGN;break;case io.NULL:this._err(Eo.unexpectedNullCharacter),this._emitChars("�");break;case io.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e)}}_stateScriptData(e){switch(e){case io.LESS_THAN_SIGN:this.state=Ko.SCRIPT_DATA_LESS_THAN_SIGN;break;case io.NULL:this._err(Eo.unexpectedNullCharacter),this._emitChars("�");break;case io.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e)}}_statePlaintext(e){switch(e){case io.NULL:this._err(Eo.unexpectedNullCharacter),this._emitChars("�");break;case io.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e)}}_stateTagOpen(e){if(Qo(e))this._createStartTagToken(),this.state=Ko.TAG_NAME,this._stateTagName(e);else switch(e){case io.EXCLAMATION_MARK:this.state=Ko.MARKUP_DECLARATION_OPEN;break;case io.SOLIDUS:this.state=Ko.END_TAG_OPEN;break;case io.QUESTION_MARK:this._err(Eo.unexpectedQuestionMarkInsteadOfTagName),this._createCommentToken(1),this.state=Ko.BOGUS_COMMENT,this._stateBogusComment(e);break;case io.EOF:this._err(Eo.eofBeforeTagName),this._emitChars("<"),this._emitEOFToken();break;default:this._err(Eo.invalidFirstCharacterOfTagName),this._emitChars("<"),this.state=Ko.DATA,this._stateData(e)}}_stateEndTagOpen(e){if(Qo(e))this._createEndTagToken(),this.state=Ko.TAG_NAME,this._stateTagName(e);else switch(e){case io.GREATER_THAN_SIGN:this._err(Eo.missingEndTagName),this.state=Ko.DATA;break;case io.EOF:this._err(Eo.eofBeforeTagName),this._emitChars("");break;case io.NULL:this._err(Eo.unexpectedNullCharacter),this.state=Ko.SCRIPT_DATA_ESCAPED,this._emitChars("�");break;case io.EOF:this._err(Eo.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break;default:this.state=Ko.SCRIPT_DATA_ESCAPED,this._emitCodePoint(e)}}_stateScriptDataEscapedLessThanSign(e){e===io.SOLIDUS?this.state=Ko.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:Qo(e)?(this._emitChars("<"),this.state=Ko.SCRIPT_DATA_DOUBLE_ESCAPE_START,this._stateScriptDataDoubleEscapeStart(e)):(this._emitChars("<"),this.state=Ko.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(e))}_stateScriptDataEscapedEndTagOpen(e){Qo(e)?(this.state=Ko.SCRIPT_DATA_ESCAPED_END_TAG_NAME,this._stateScriptDataEscapedEndTagName(e)):(this._emitChars("");break;case io.NULL:this._err(Eo.unexpectedNullCharacter),this.state=Ko.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitChars("�");break;case io.EOF:this._err(Eo.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break;default:this.state=Ko.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitCodePoint(e)}}_stateScriptDataDoubleEscapedLessThanSign(e){e===io.SOLIDUS?(this.state=Ko.SCRIPT_DATA_DOUBLE_ESCAPE_END,this._emitChars("/")):(this.state=Ko.SCRIPT_DATA_DOUBLE_ESCAPED,this._stateScriptDataDoubleEscaped(e))}_stateScriptDataDoubleEscapeEnd(e){if(this.preprocessor.startsWith(co,!1)&&ec(this.preprocessor.peek(co.length))){this._emitCodePoint(e);for(let e=0;e1114111)this._err(Eo.characterReferenceOutsideUnicodeRange),this.charRefCode=io.REPLACEMENT_CHARACTER;else if(uo(this.charRefCode))this._err(Eo.surrogateCharacterReference),this.charRefCode=io.REPLACEMENT_CHARACTER;else if(fo(this.charRefCode))this._err(Eo.noncharacterCharacterReference);else if(po(this.charRefCode)||this.charRefCode===io.CARRIAGE_RETURN){this._err(Eo.controlCharacterReference);const e=qo.get(this.charRefCode);void 0!==e&&(this.charRefCode=e)}this._flushCodePointConsumedAsCharacterReference(this.charRefCode),this._reconsumeInState(this.returnState,e)}}const nc=new Set([Po.DD,Po.DT,Po.LI,Po.OPTGROUP,Po.OPTION,Po.P,Po.RB,Po.RP,Po.RT,Po.RTC]),rc=new Set([...nc,Po.CAPTION,Po.COLGROUP,Po.TBODY,Po.TD,Po.TFOOT,Po.TH,Po.THEAD,Po.TR]),ic=new Map([[Po.APPLET,vo.HTML],[Po.CAPTION,vo.HTML],[Po.HTML,vo.HTML],[Po.MARQUEE,vo.HTML],[Po.OBJECT,vo.HTML],[Po.TABLE,vo.HTML],[Po.TD,vo.HTML],[Po.TEMPLATE,vo.HTML],[Po.TH,vo.HTML],[Po.ANNOTATION_XML,vo.MATHML],[Po.MI,vo.MATHML],[Po.MN,vo.MATHML],[Po.MO,vo.MATHML],[Po.MS,vo.MATHML],[Po.MTEXT,vo.MATHML],[Po.DESC,vo.SVG],[Po.FOREIGN_OBJECT,vo.SVG],[Po.TITLE,vo.SVG]]),sc=[Po.H1,Po.H2,Po.H3,Po.H4,Po.H5,Po.H6],ac=[Po.TR,Po.TEMPLATE,Po.HTML],oc=[Po.TBODY,Po.TFOOT,Po.THEAD,Po.TEMPLATE,Po.HTML],cc=[Po.TABLE,Po.TEMPLATE,Po.HTML],lc=[Po.TD,Po.TH];class hc{constructor(e,t,n){this.treeAdapter=t,this.handler=n,this.items=[],this.tagIDs=[],this.stackTop=-1,this.tmplCount=0,this.currentTagId=Po.UNKNOWN,this.current=e}get currentTmplContentOrNode(){return this._isInTemplate()?this.treeAdapter.getTemplateContent(this.current):this.current}_indexOf(e){return this.items.lastIndexOf(e,this.stackTop)}_isInTemplate(){return this.currentTagId===Po.TEMPLATE&&this.treeAdapter.getNamespaceURI(this.current)===vo.HTML}_updateCurrentElement(){this.current=this.items[this.stackTop],this.currentTagId=this.tagIDs[this.stackTop]}push(e,t){this.stackTop++,this.items[this.stackTop]=e,this.current=e,this.tagIDs[this.stackTop]=t,this.currentTagId=t,this._isInTemplate()&&this.tmplCount++,this.handler.onItemPush(e,t,!0)}pop(){const e=this.current;this.tmplCount>0&&this._isInTemplate()&&this.tmplCount--,this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(e,!0)}replace(e,t){const n=this._indexOf(e);this.items[n]=t,n===this.stackTop&&(this.current=t)}insertAfter(e,t,n){const r=this._indexOf(e)+1;this.items.splice(r,0,t),this.tagIDs.splice(r,0,n),this.stackTop++,r===this.stackTop&&this._updateCurrentElement(),this.handler.onItemPush(this.current,this.currentTagId,r===this.stackTop)}popUntilTagNamePopped(e){let t=this.stackTop+1;do{t=this.tagIDs.lastIndexOf(e,t-1)}while(t>0&&this.treeAdapter.getNamespaceURI(this.items[t])!==vo.HTML);this.shortenToLength(t<0?0:t)}shortenToLength(e){for(;this.stackTop>=e;){const t=this.current;this.tmplCount>0&&this._isInTemplate()&&(this.tmplCount-=1),this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(t,this.stackTop=0;n--)if(e.includes(this.tagIDs[n])&&this.treeAdapter.getNamespaceURI(this.items[n])===t)return n;return-1}clearBackTo(e,t){const n=this._indexOfTagNames(e,t);this.shortenToLength(n+1)}clearBackToTableContext(){this.clearBackTo(cc,vo.HTML)}clearBackToTableBodyContext(){this.clearBackTo(oc,vo.HTML)}clearBackToTableRowContext(){this.clearBackTo(ac,vo.HTML)}remove(e){const t=this._indexOf(e);t>=0&&(t===this.stackTop?this.pop():(this.items.splice(t,1),this.tagIDs.splice(t,1),this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(e,!1)))}tryPeekProperlyNestedBodyElement(){return this.stackTop>=1&&this.tagIDs[1]===Po.BODY?this.items[1]:null}contains(e){return this._indexOf(e)>-1}getCommonAncestor(e){const t=this._indexOf(e)-1;return t>=0?this.items[t]:null}isRootHtmlElementCurrent(){return 0===this.stackTop&&this.tagIDs[0]===Po.HTML}hasInScope(e){for(let t=this.stackTop;t>=0;t--){const n=this.tagIDs[t],r=this.treeAdapter.getNamespaceURI(this.items[t]);if(n===e&&r===vo.HTML)return!0;if(ic.get(n)===r)return!1}return!0}hasNumberedHeaderInScope(){for(let e=this.stackTop;e>=0;e--){const t=this.tagIDs[e],n=this.treeAdapter.getNamespaceURI(this.items[e]);if(Go(t)&&n===vo.HTML)return!0;if(ic.get(t)===n)return!1}return!0}hasInListItemScope(e){for(let t=this.stackTop;t>=0;t--){const n=this.tagIDs[t],r=this.treeAdapter.getNamespaceURI(this.items[t]);if(n===e&&r===vo.HTML)return!0;if((n===Po.UL||n===Po.OL)&&r===vo.HTML||ic.get(n)===r)return!1}return!0}hasInButtonScope(e){for(let t=this.stackTop;t>=0;t--){const n=this.tagIDs[t],r=this.treeAdapter.getNamespaceURI(this.items[t]);if(n===e&&r===vo.HTML)return!0;if(n===Po.BUTTON&&r===vo.HTML||ic.get(n)===r)return!1}return!0}hasInTableScope(e){for(let t=this.stackTop;t>=0;t--){const n=this.tagIDs[t];if(this.treeAdapter.getNamespaceURI(this.items[t])===vo.HTML){if(n===e)return!0;if(n===Po.TABLE||n===Po.TEMPLATE||n===Po.HTML)return!1}}return!0}hasTableBodyContextInTableScope(){for(let e=this.stackTop;e>=0;e--){const t=this.tagIDs[e];if(this.treeAdapter.getNamespaceURI(this.items[e])===vo.HTML){if(t===Po.TBODY||t===Po.THEAD||t===Po.TFOOT)return!0;if(t===Po.TABLE||t===Po.HTML)return!1}}return!0}hasInSelectScope(e){for(let t=this.stackTop;t>=0;t--){const n=this.tagIDs[t];if(this.treeAdapter.getNamespaceURI(this.items[t])===vo.HTML){if(n===e)return!0;if(n!==Po.OPTION&&n!==Po.OPTGROUP)return!1}}return!0}generateImpliedEndTags(){for(;nc.has(this.currentTagId);)this.pop()}generateImpliedEndTagsThoroughly(){for(;rc.has(this.currentTagId);)this.pop()}generateImpliedEndTagsWithExclusion(e){for(;this.currentTagId!==e&&rc.has(this.currentTagId);)this.pop()}}var uc;!function(e){e[e.Marker=0]="Marker",e[e.Element=1]="Element"}(uc=uc||(uc={}));const pc={type:uc.Marker};class fc{constructor(e){this.treeAdapter=e,this.entries=[],this.bookmark=null}_getNoahArkConditionCandidates(e,t){const n=[],r=t.length,i=this.treeAdapter.getTagName(e),s=this.treeAdapter.getNamespaceURI(e);for(let e=0;e[e.name,e.value])));let i=0;for(let e=0;er.get(e.name)===e.value))&&(i+=1,i>=3&&this.entries.splice(t.idx,1))}}insertMarker(){this.entries.unshift(pc)}pushElement(e,t){this._ensureNoahArkCondition(e),this.entries.unshift({type:uc.Element,element:e,token:t})}insertElementAfterBookmark(e,t){const n=this.entries.indexOf(this.bookmark);this.entries.splice(n,0,{type:uc.Element,element:e,token:t})}removeEntry(e){const t=this.entries.indexOf(e);t>=0&&this.entries.splice(t,1)}clearToLastMarker(){const e=this.entries.indexOf(pc);e>=0?this.entries.splice(0,e+1):this.entries.length=0}getElementEntryInScopeWithTagName(e){const t=this.entries.find((t=>t.type===uc.Marker||this.treeAdapter.getTagName(t.element)===e));return t&&t.type===uc.Element?t:null}getElementEntry(e){return this.entries.find((t=>t.type===uc.Element&&t.element===e))}}function dc(e){return{nodeName:"#text",value:e,parentNode:null}}const Ec={createDocument:()=>({nodeName:"#document",mode:Ro.NO_QUIRKS,childNodes:[]}),createDocumentFragment:()=>({nodeName:"#document-fragment",childNodes:[]}),createElement:(e,t,n)=>({nodeName:e,tagName:e,attrs:n,namespaceURI:t,childNodes:[],parentNode:null}),createCommentNode:e=>({nodeName:"#comment",data:e,parentNode:null}),appendChild(e,t){e.childNodes.push(t),t.parentNode=e},insertBefore(e,t,n){const r=e.childNodes.indexOf(n);e.childNodes.splice(r,0,t),t.parentNode=e},setTemplateContent(e,t){e.content=t},getTemplateContent:e=>e.content,setDocumentType(e,t,n,r){const i=e.childNodes.find((e=>"#documentType"===e.nodeName));if(i)i.name=t,i.publicId=n,i.systemId=r;else{const i={nodeName:"#documentType",name:t,publicId:n,systemId:r,parentNode:null};Ec.appendChild(e,i)}},setDocumentMode(e,t){e.mode=t},getDocumentMode:e=>e.mode,detachNode(e){if(e.parentNode){const t=e.parentNode.childNodes.indexOf(e);e.parentNode.childNodes.splice(t,1),e.parentNode=null}},insertText(e,t){if(e.childNodes.length>0){const n=e.childNodes[e.childNodes.length-1];if(Ec.isTextNode(n))return void(n.value+=t)}Ec.appendChild(e,dc(t))},insertTextBefore(e,t,n){const r=e.childNodes[e.childNodes.indexOf(n)-1];r&&Ec.isTextNode(r)?r.value+=t:Ec.insertBefore(e,dc(t),n)},adoptAttributes(e,t){const n=new Set(e.attrs.map((e=>e.name)));for(let r=0;re.childNodes[0],getChildNodes:e=>e.childNodes,getParentNode:e=>e.parentNode,getAttrList:e=>e.attrs,getTagName:e=>e.tagName,getNamespaceURI:e=>e.namespaceURI,getTextNodeContent:e=>e.value,getCommentNodeContent:e=>e.data,getDocumentTypeNodeName:e=>e.name,getDocumentTypeNodePublicId:e=>e.publicId,getDocumentTypeNodeSystemId:e=>e.systemId,isTextNode:e=>"#text"===e.nodeName,isCommentNode:e=>"#comment"===e.nodeName,isDocumentTypeNode:e=>"#documentType"===e.nodeName,isElementNode:e=>Object.prototype.hasOwnProperty.call(e,"tagName"),setNodeSourceCodeLocation(e,t){e.sourceCodeLocation=t},getNodeSourceCodeLocation:e=>e.sourceCodeLocation,updateNodeSourceCodeLocation(e,t){e.sourceCodeLocation={...e.sourceCodeLocation,...t}}},mc=["+//silmaril//dtd html pro v0r11 19970101//","-//as//dtd html 3.0 aswedit + extensions//","-//advasoft ltd//dtd html 3.0 aswedit + extensions//","-//ietf//dtd html 2.0 level 1//","-//ietf//dtd html 2.0 level 2//","-//ietf//dtd html 2.0 strict level 1//","-//ietf//dtd html 2.0 strict level 2//","-//ietf//dtd html 2.0 strict//","-//ietf//dtd html 2.0//","-//ietf//dtd html 2.1e//","-//ietf//dtd html 3.0//","-//ietf//dtd html 3.2 final//","-//ietf//dtd html 3.2//","-//ietf//dtd html 3//","-//ietf//dtd html level 0//","-//ietf//dtd html level 1//","-//ietf//dtd html level 2//","-//ietf//dtd html level 3//","-//ietf//dtd html strict level 0//","-//ietf//dtd html strict level 1//","-//ietf//dtd html strict level 2//","-//ietf//dtd html strict level 3//","-//ietf//dtd html strict//","-//ietf//dtd html//","-//metrius//dtd metrius presentational//","-//microsoft//dtd internet explorer 2.0 html strict//","-//microsoft//dtd internet explorer 2.0 html//","-//microsoft//dtd internet explorer 2.0 tables//","-//microsoft//dtd internet explorer 3.0 html strict//","-//microsoft//dtd internet explorer 3.0 html//","-//microsoft//dtd internet explorer 3.0 tables//","-//netscape comm. corp.//dtd html//","-//netscape comm. corp.//dtd strict html//","-//o'reilly and associates//dtd html 2.0//","-//o'reilly and associates//dtd html extended 1.0//","-//o'reilly and associates//dtd html extended relaxed 1.0//","-//sq//dtd html 2.0 hotmetal + extensions//","-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//","-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//","-//spyglass//dtd html 2.0 extended//","-//sun microsystems corp.//dtd hotjava html//","-//sun microsystems corp.//dtd hotjava strict html//","-//w3c//dtd html 3 1995-03-24//","-//w3c//dtd html 3.2 draft//","-//w3c//dtd html 3.2 final//","-//w3c//dtd html 3.2//","-//w3c//dtd html 3.2s draft//","-//w3c//dtd html 4.0 frameset//","-//w3c//dtd html 4.0 transitional//","-//w3c//dtd html experimental 19960712//","-//w3c//dtd html experimental 970421//","-//w3c//dtd w3 html//","-//w3o//dtd w3 html 3.0//","-//webtechs//dtd mozilla html 2.0//","-//webtechs//dtd mozilla html//"],Tc=[...mc,"-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"],_c=new Set(["-//w3o//dtd w3 html strict 3.0//en//","-/w3c/dtd html 4.0 transitional/en","html"]),Ac=["-//w3c//dtd xhtml 1.0 frameset//","-//w3c//dtd xhtml 1.0 transitional//"],gc=[...Ac,"-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"];function Nc(e,t){return t.some((t=>e.startsWith(t)))}const Cc="text/html",Ic="application/xhtml+xml",Sc=new Map(["attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map((e=>[e.toLowerCase(),e]))),bc=new Map([["xlink:actuate",{prefix:"xlink",name:"actuate",namespace:vo.XLINK}],["xlink:arcrole",{prefix:"xlink",name:"arcrole",namespace:vo.XLINK}],["xlink:href",{prefix:"xlink",name:"href",namespace:vo.XLINK}],["xlink:role",{prefix:"xlink",name:"role",namespace:vo.XLINK}],["xlink:show",{prefix:"xlink",name:"show",namespace:vo.XLINK}],["xlink:title",{prefix:"xlink",name:"title",namespace:vo.XLINK}],["xlink:type",{prefix:"xlink",name:"type",namespace:vo.XLINK}],["xml:base",{prefix:"xml",name:"base",namespace:vo.XML}],["xml:lang",{prefix:"xml",name:"lang",namespace:vo.XML}],["xml:space",{prefix:"xml",name:"space",namespace:vo.XML}],["xmlns",{prefix:"",name:"xmlns",namespace:vo.XMLNS}],["xmlns:xlink",{prefix:"xmlns",name:"xlink",namespace:vo.XMLNS}]]),Oc=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map((e=>[e.toLowerCase(),e]))),yc=new Set([Po.B,Po.BIG,Po.BLOCKQUOTE,Po.BODY,Po.BR,Po.CENTER,Po.CODE,Po.DD,Po.DIV,Po.DL,Po.DT,Po.EM,Po.EMBED,Po.H1,Po.H2,Po.H3,Po.H4,Po.H5,Po.H6,Po.HEAD,Po.HR,Po.I,Po.IMG,Po.LI,Po.LISTING,Po.MENU,Po.META,Po.NOBR,Po.OL,Po.P,Po.PRE,Po.RUBY,Po.S,Po.SMALL,Po.SPAN,Po.STRONG,Po.STRIKE,Po.SUB,Po.SUP,Po.TABLE,Po.TT,Po.U,Po.UL,Po.VAR]);function Lc(e){for(let t=0;t0&&this._setContextModes(e,t)}onItemPop(e,t){var n,r;if(this.options.sourceCodeLocationInfo&&this._setEndLocation(e,this.currentToken),null===(r=(n=this.treeAdapter).onItemPop)||void 0===r||r.call(n,e,this.openElements.current),t){let e,t;0===this.openElements.stackTop&&this.fragmentContext?(e=this.fragmentContext,t=this.fragmentContextID):({current:e,currentTagId:t}=this.openElements),this._setContextModes(e,t)}}_setContextModes(e,t){const n=e===this.document||this.treeAdapter.getNamespaceURI(e)===vo.HTML;this.currentNotInHTML=!n,this.tokenizer.inForeignNode=!n&&!this._isIntegrationPoint(t,e)}_switchToTextParsing(e,t){this._insertElement(e,vo.HTML),this.tokenizer.state=t,this.originalInsertionMode=this.insertionMode,this.insertionMode=Rc.TEXT}switchToPlaintextParsing(){this.insertionMode=Rc.TEXT,this.originalInsertionMode=Rc.IN_BODY,this.tokenizer.state=jo.PLAINTEXT}_getAdjustedCurrentElement(){return 0===this.openElements.stackTop&&this.fragmentContext?this.fragmentContext:this.openElements.current}_findFormInFragmentContext(){let e=this.fragmentContext;for(;e;){if(this.treeAdapter.getTagName(e)===Mo.FORM){this.formElement=e;break}e=this.treeAdapter.getParentNode(e)}}_initTokenizerForFragmentParsing(){if(this.fragmentContext&&this.treeAdapter.getNamespaceURI(this.fragmentContext)===vo.HTML)switch(this.fragmentContextID){case Po.TITLE:case Po.TEXTAREA:this.tokenizer.state=jo.RCDATA;break;case Po.STYLE:case Po.XMP:case Po.IFRAME:case Po.NOEMBED:case Po.NOFRAMES:case Po.NOSCRIPT:this.tokenizer.state=jo.RAWTEXT;break;case Po.SCRIPT:this.tokenizer.state=jo.SCRIPT_DATA;break;case Po.PLAINTEXT:this.tokenizer.state=jo.PLAINTEXT}}_setDocumentType(e){const t=e.name||"",n=e.publicId||"",r=e.systemId||"";if(this.treeAdapter.setDocumentType(this.document,t,n,r),e.location){const t=this.treeAdapter.getChildNodes(this.document).find((e=>this.treeAdapter.isDocumentTypeNode(e)));t&&this.treeAdapter.setNodeSourceCodeLocation(t,e.location)}}_attachElementToTree(e,t){if(this.options.sourceCodeLocationInfo){const n=t&&{...t,startTag:t};this.treeAdapter.setNodeSourceCodeLocation(e,n)}if(this._shouldFosterParentOnInsertion())this._fosterParentElement(e);else{const t=this.openElements.currentTmplContentOrNode;this.treeAdapter.appendChild(t,e)}}_appendElement(e,t){const n=this.treeAdapter.createElement(e.tagName,t,e.attrs);this._attachElementToTree(n,e.location)}_insertElement(e,t){const n=this.treeAdapter.createElement(e.tagName,t,e.attrs);this._attachElementToTree(n,e.location),this.openElements.push(n,e.tagID)}_insertFakeElement(e,t){const n=this.treeAdapter.createElement(e,vo.HTML,[]);this._attachElementToTree(n,null),this.openElements.push(n,t)}_insertTemplate(e){const t=this.treeAdapter.createElement(e.tagName,vo.HTML,e.attrs),n=this.treeAdapter.createDocumentFragment();this.treeAdapter.setTemplateContent(t,n),this._attachElementToTree(t,e.location),this.openElements.push(t,e.tagID),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(n,null)}_insertFakeRootElement(){const e=this.treeAdapter.createElement(Mo.HTML,vo.HTML,[]);this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(e,null),this.treeAdapter.appendChild(this.openElements.current,e),this.openElements.push(e,Po.HTML)}_appendCommentNode(e,t){const n=this.treeAdapter.createCommentNode(e.data);this.treeAdapter.appendChild(t,n),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(n,e.location)}_insertCharacters(e){let t,n;if(this._shouldFosterParentOnInsertion()?(({parent:t,beforeElement:n}=this._findFosterParentingLocation()),n?this.treeAdapter.insertTextBefore(t,e.chars,n):this.treeAdapter.insertText(t,e.chars)):(t=this.openElements.currentTmplContentOrNode,this.treeAdapter.insertText(t,e.chars)),!e.location)return;const r=this.treeAdapter.getChildNodes(t),i=n?r.lastIndexOf(n):r.length,s=r[i-1];if(this.treeAdapter.getNodeSourceCodeLocation(s)){const{endLine:t,endCol:n,endOffset:r}=e.location;this.treeAdapter.updateNodeSourceCodeLocation(s,{endLine:t,endCol:n,endOffset:r})}else this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(s,e.location)}_adoptNodes(e,t){for(let n=this.treeAdapter.getFirstChild(e);n;n=this.treeAdapter.getFirstChild(e))this.treeAdapter.detachNode(n),this.treeAdapter.appendChild(t,n)}_setEndLocation(e,t){if(this.treeAdapter.getNodeSourceCodeLocation(e)&&t.location){const n=t.location,r=this.treeAdapter.getTagName(e),i=t.type===To.END_TAG&&r===t.tagName?{endTag:{...n},endLine:n.endLine,endCol:n.endCol,endOffset:n.endOffset}:{endLine:n.startLine,endCol:n.startCol,endOffset:n.startOffset};this.treeAdapter.updateNodeSourceCodeLocation(e,i)}}shouldProcessStartTagTokenInForeignContent(e){if(!this.currentNotInHTML)return!1;let t,n;return 0===this.openElements.stackTop&&this.fragmentContext?(t=this.fragmentContext,n=this.fragmentContextID):({current:t,currentTagId:n}=this.openElements),(e.tagID!==Po.SVG||this.treeAdapter.getTagName(t)!==Mo.ANNOTATION_XML||this.treeAdapter.getNamespaceURI(t)!==vo.MATHML)&&(this.tokenizer.inForeignNode||(e.tagID===Po.MGLYPH||e.tagID===Po.MALIGNMARK)&&!this._isIntegrationPoint(n,t,vo.HTML))}_processToken(e){switch(e.type){case To.CHARACTER:this.onCharacter(e);break;case To.NULL_CHARACTER:this.onNullCharacter(e);break;case To.COMMENT:this.onComment(e);break;case To.DOCTYPE:this.onDoctype(e);break;case To.START_TAG:this._processStartTag(e);break;case To.END_TAG:this.onEndTag(e);break;case To.EOF:this.onEof(e);break;case To.WHITESPACE_CHARACTER:this.onWhitespaceCharacter(e)}}_isIntegrationPoint(e,t,n){return Dc(e,this.treeAdapter.getNamespaceURI(t),this.treeAdapter.getAttrList(t),n)}_reconstructActiveFormattingElements(){const e=this.activeFormattingElements.entries.length;if(e){const t=this.activeFormattingElements.entries.findIndex((e=>e.type===uc.Marker||this.openElements.contains(e.element)));for(let n=t<0?e-1:t-1;n>=0;n--){const e=this.activeFormattingElements.entries[n];this._insertElement(e.token,this.treeAdapter.getNamespaceURI(e.element)),e.element=this.openElements.current}}}_closeTableCell(){this.openElements.generateImpliedEndTags(),this.openElements.popUntilTableCellPopped(),this.activeFormattingElements.clearToLastMarker(),this.insertionMode=Rc.IN_ROW}_closePElement(){this.openElements.generateImpliedEndTagsWithExclusion(Po.P),this.openElements.popUntilTagNamePopped(Po.P)}_resetInsertionMode(){for(let e=this.openElements.stackTop;e>=0;e--)switch(0===e&&this.fragmentContext?this.fragmentContextID:this.openElements.tagIDs[e]){case Po.TR:return void(this.insertionMode=Rc.IN_ROW);case Po.TBODY:case Po.THEAD:case Po.TFOOT:return void(this.insertionMode=Rc.IN_TABLE_BODY);case Po.CAPTION:return void(this.insertionMode=Rc.IN_CAPTION);case Po.COLGROUP:return void(this.insertionMode=Rc.IN_COLUMN_GROUP);case Po.TABLE:return void(this.insertionMode=Rc.IN_TABLE);case Po.BODY:return void(this.insertionMode=Rc.IN_BODY);case Po.FRAMESET:return void(this.insertionMode=Rc.IN_FRAMESET);case Po.SELECT:return void this._resetInsertionModeForSelect(e);case Po.TEMPLATE:return void(this.insertionMode=this.tmplInsertionModeStack[0]);case Po.HTML:return void(this.insertionMode=this.headElement?Rc.AFTER_HEAD:Rc.BEFORE_HEAD);case Po.TD:case Po.TH:if(e>0)return void(this.insertionMode=Rc.IN_CELL);break;case Po.HEAD:if(e>0)return void(this.insertionMode=Rc.IN_HEAD)}this.insertionMode=Rc.IN_BODY}_resetInsertionModeForSelect(e){if(e>0)for(let t=e-1;t>0;t--){const e=this.openElements.tagIDs[t];if(e===Po.TEMPLATE)break;if(e===Po.TABLE)return void(this.insertionMode=Rc.IN_SELECT_IN_TABLE)}this.insertionMode=Rc.IN_SELECT}_isElementCausesFosterParenting(e){return Pc.has(e)}_shouldFosterParentOnInsertion(){return this.fosterParentingEnabled&&this._isElementCausesFosterParenting(this.openElements.currentTagId)}_findFosterParentingLocation(){for(let e=this.openElements.stackTop;e>=0;e--){const t=this.openElements.items[e];switch(this.openElements.tagIDs[e]){case Po.TEMPLATE:if(this.treeAdapter.getNamespaceURI(t)===vo.HTML)return{parent:this.treeAdapter.getTemplateContent(t),beforeElement:null};break;case Po.TABLE:{const n=this.treeAdapter.getParentNode(t);return n?{parent:n,beforeElement:t}:{parent:this.openElements.items[e-1],beforeElement:null}}}}return{parent:this.openElements.items[0],beforeElement:null}}_fosterParentElement(e){const t=this._findFosterParentingLocation();t.beforeElement?this.treeAdapter.insertBefore(t.parent,e,t.beforeElement):this.treeAdapter.appendChild(t.parent,e)}_isSpecialElement(e,t){const n=this.treeAdapter.getNamespaceURI(e);return Ho[n].has(t)}onCharacter(e){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode)!function(e,t){e._insertCharacters(t),e.framesetOk=!1}(this,e);else switch(this.insertionMode){case Rc.INITIAL:Vc(this,e);break;case Rc.BEFORE_HTML:Wc(this,e);break;case Rc.BEFORE_HEAD:Qc(this,e);break;case Rc.IN_HEAD:zc(this,e);break;case Rc.IN_HEAD_NO_SCRIPT:Jc(this,e);break;case Rc.AFTER_HEAD:Zc(this,e);break;case Rc.IN_BODY:case Rc.IN_CAPTION:case Rc.IN_CELL:case Rc.IN_TEMPLATE:nl(this,e);break;case Rc.TEXT:case Rc.IN_SELECT:case Rc.IN_SELECT_IN_TABLE:this._insertCharacters(e);break;case Rc.IN_TABLE:case Rc.IN_TABLE_BODY:case Rc.IN_ROW:ul(this,e);break;case Rc.IN_TABLE_TEXT:ml(this,e);break;case Rc.IN_COLUMN_GROUP:gl(this,e);break;case Rc.AFTER_BODY:kl(this,e);break;case Rc.AFTER_AFTER_BODY:vl(this,e)}}onNullCharacter(e){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode)!function(e,t){t.chars="�",e._insertCharacters(t)}(this,e);else switch(this.insertionMode){case Rc.INITIAL:Vc(this,e);break;case Rc.BEFORE_HTML:Wc(this,e);break;case Rc.BEFORE_HEAD:Qc(this,e);break;case Rc.IN_HEAD:zc(this,e);break;case Rc.IN_HEAD_NO_SCRIPT:Jc(this,e);break;case Rc.AFTER_HEAD:Zc(this,e);break;case Rc.TEXT:this._insertCharacters(e);break;case Rc.IN_TABLE:case Rc.IN_TABLE_BODY:case Rc.IN_ROW:ul(this,e);break;case Rc.IN_COLUMN_GROUP:gl(this,e);break;case Rc.AFTER_BODY:kl(this,e);break;case Rc.AFTER_AFTER_BODY:vl(this,e)}}onComment(e){if(this.skipNextNewLine=!1,this.currentNotInHTML)Kc(this,e);else switch(this.insertionMode){case Rc.INITIAL:case Rc.BEFORE_HTML:case Rc.BEFORE_HEAD:case Rc.IN_HEAD:case Rc.IN_HEAD_NO_SCRIPT:case Rc.AFTER_HEAD:case Rc.IN_BODY:case Rc.IN_TABLE:case Rc.IN_CAPTION:case Rc.IN_COLUMN_GROUP:case Rc.IN_TABLE_BODY:case Rc.IN_ROW:case Rc.IN_CELL:case Rc.IN_SELECT:case Rc.IN_SELECT_IN_TABLE:case Rc.IN_TEMPLATE:case Rc.IN_FRAMESET:case Rc.AFTER_FRAMESET:Kc(this,e);break;case Rc.IN_TABLE_TEXT:Tl(this,e);break;case Rc.AFTER_BODY:!function(e,t){e._appendCommentNode(t,e.openElements.items[0])}(this,e);break;case Rc.AFTER_AFTER_BODY:case Rc.AFTER_AFTER_FRAMESET:!function(e,t){e._appendCommentNode(t,e.document)}(this,e)}}onDoctype(e){switch(this.skipNextNewLine=!1,this.insertionMode){case Rc.INITIAL:!function(e,t){e._setDocumentType(t);const n=t.forceQuirks?Ro.QUIRKS:function(e){if("html"!==e.name)return Ro.QUIRKS;const{systemId:t}=e;if(t&&"http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"===t.toLowerCase())return Ro.QUIRKS;let{publicId:n}=e;if(null!==n){if(n=n.toLowerCase(),_c.has(n))return Ro.QUIRKS;let e=null===t?Tc:mc;if(Nc(n,e))return Ro.QUIRKS;if(e=null===t?Ac:gc,Nc(n,e))return Ro.LIMITED_QUIRKS}return Ro.NO_QUIRKS}(t);(function(e){return"html"===e.name&&null===e.publicId&&(null===e.systemId||"about:legacy-compat"===e.systemId)})(t)||e._err(t,Eo.nonConformingDoctype);e.treeAdapter.setDocumentMode(e.document,n),e.insertionMode=Rc.BEFORE_HTML}(this,e);break;case Rc.BEFORE_HEAD:case Rc.IN_HEAD:case Rc.IN_HEAD_NO_SCRIPT:case Rc.AFTER_HEAD:this._err(e,Eo.misplacedDoctype);break;case Rc.IN_TABLE_TEXT:Tl(this,e)}}onStartTag(e){this.skipNextNewLine=!1,this.currentToken=e,this._processStartTag(e),e.selfClosing&&!e.ackSelfClosing&&this._err(e,Eo.nonVoidHtmlElementStartTagWithTrailingSolidus)}_processStartTag(e){this.shouldProcessStartTagTokenInForeignContent(e)?function(e,t){if(function(e){const t=e.tagID;return t===Po.FONT&&e.attrs.some((({name:e})=>e===Do.COLOR||e===Do.SIZE||e===Do.FACE))||yc.has(t)}(t))Dl(e),e._startTagOutsideForeignContent(t);else{const n=e._getAdjustedCurrentElement(),r=e.treeAdapter.getNamespaceURI(n);r===vo.MATHML?Lc(t):r===vo.SVG&&(!function(e){const t=Oc.get(e.tagName);null!=t&&(e.tagName=t,e.tagID=Fo(e.tagName))}(t),kc(t)),vc(t),t.selfClosing?e._appendElement(t,r):e._insertElement(t,r),t.ackSelfClosing=!0}}(this,e):this._startTagOutsideForeignContent(e)}_startTagOutsideForeignContent(e){switch(this.insertionMode){case Rc.INITIAL:Vc(this,e);break;case Rc.BEFORE_HTML:!function(e,t){t.tagID===Po.HTML?(e._insertElement(t,vo.HTML),e.insertionMode=Rc.BEFORE_HEAD):Wc(e,t)}(this,e);break;case Rc.BEFORE_HEAD:!function(e,t){switch(t.tagID){case Po.HTML:ol(e,t);break;case Po.HEAD:e._insertElement(t,vo.HTML),e.headElement=e.openElements.current,e.insertionMode=Rc.IN_HEAD;break;default:Qc(e,t)}}(this,e);break;case Rc.IN_HEAD:Xc(this,e);break;case Rc.IN_HEAD_NO_SCRIPT:!function(e,t){switch(t.tagID){case Po.HTML:ol(e,t);break;case Po.BASEFONT:case Po.BGSOUND:case Po.HEAD:case Po.LINK:case Po.META:case Po.NOFRAMES:case Po.STYLE:Xc(e,t);break;case Po.NOSCRIPT:e._err(t,Eo.nestedNoscriptInHead);break;default:Jc(e,t)}}(this,e);break;case Rc.AFTER_HEAD:!function(e,t){switch(t.tagID){case Po.HTML:ol(e,t);break;case Po.BODY:e._insertElement(t,vo.HTML),e.framesetOk=!1,e.insertionMode=Rc.IN_BODY;break;case Po.FRAMESET:e._insertElement(t,vo.HTML),e.insertionMode=Rc.IN_FRAMESET;break;case Po.BASE:case Po.BASEFONT:case Po.BGSOUND:case Po.LINK:case Po.META:case Po.NOFRAMES:case Po.SCRIPT:case Po.STYLE:case Po.TEMPLATE:case Po.TITLE:e._err(t,Eo.abandonedHeadElementChild),e.openElements.push(e.headElement,Po.HEAD),Xc(e,t),e.openElements.remove(e.headElement);break;case Po.HEAD:e._err(t,Eo.misplacedStartTagForHeadElement);break;default:Zc(e,t)}}(this,e);break;case Rc.IN_BODY:ol(this,e);break;case Rc.IN_TABLE:pl(this,e);break;case Rc.IN_TABLE_TEXT:Tl(this,e);break;case Rc.IN_CAPTION:!function(e,t){const n=t.tagID;_l.has(n)?e.openElements.hasInTableScope(Po.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(Po.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=Rc.IN_TABLE,pl(e,t)):ol(e,t)}(this,e);break;case Rc.IN_COLUMN_GROUP:Al(this,e);break;case Rc.IN_TABLE_BODY:Nl(this,e);break;case Rc.IN_ROW:Il(this,e);break;case Rc.IN_CELL:!function(e,t){const n=t.tagID;_l.has(n)?(e.openElements.hasInTableScope(Po.TD)||e.openElements.hasInTableScope(Po.TH))&&(e._closeTableCell(),Il(e,t)):ol(e,t)}(this,e);break;case Rc.IN_SELECT:bl(this,e);break;case Rc.IN_SELECT_IN_TABLE:!function(e,t){const n=t.tagID;n===Po.CAPTION||n===Po.TABLE||n===Po.TBODY||n===Po.TFOOT||n===Po.THEAD||n===Po.TR||n===Po.TD||n===Po.TH?(e.openElements.popUntilTagNamePopped(Po.SELECT),e._resetInsertionMode(),e._processStartTag(t)):bl(e,t)}(this,e);break;case Rc.IN_TEMPLATE:!function(e,t){switch(t.tagID){case Po.BASE:case Po.BASEFONT:case Po.BGSOUND:case Po.LINK:case Po.META:case Po.NOFRAMES:case Po.SCRIPT:case Po.STYLE:case Po.TEMPLATE:case Po.TITLE:Xc(e,t);break;case Po.CAPTION:case Po.COLGROUP:case Po.TBODY:case Po.TFOOT:case Po.THEAD:e.tmplInsertionModeStack[0]=Rc.IN_TABLE,e.insertionMode=Rc.IN_TABLE,pl(e,t);break;case Po.COL:e.tmplInsertionModeStack[0]=Rc.IN_COLUMN_GROUP,e.insertionMode=Rc.IN_COLUMN_GROUP,Al(e,t);break;case Po.TR:e.tmplInsertionModeStack[0]=Rc.IN_TABLE_BODY,e.insertionMode=Rc.IN_TABLE_BODY,Nl(e,t);break;case Po.TD:case Po.TH:e.tmplInsertionModeStack[0]=Rc.IN_ROW,e.insertionMode=Rc.IN_ROW,Il(e,t);break;default:e.tmplInsertionModeStack[0]=Rc.IN_BODY,e.insertionMode=Rc.IN_BODY,ol(e,t)}}(this,e);break;case Rc.AFTER_BODY:!function(e,t){t.tagID===Po.HTML?ol(e,t):kl(e,t)}(this,e);break;case Rc.IN_FRAMESET:!function(e,t){switch(t.tagID){case Po.HTML:ol(e,t);break;case Po.FRAMESET:e._insertElement(t,vo.HTML);break;case Po.FRAME:e._appendElement(t,vo.HTML),t.ackSelfClosing=!0;break;case Po.NOFRAMES:Xc(e,t)}}(this,e);break;case Rc.AFTER_FRAMESET:!function(e,t){switch(t.tagID){case Po.HTML:ol(e,t);break;case Po.NOFRAMES:Xc(e,t)}}(this,e);break;case Rc.AFTER_AFTER_BODY:!function(e,t){t.tagID===Po.HTML?ol(e,t):vl(e,t)}(this,e);break;case Rc.AFTER_AFTER_FRAMESET:!function(e,t){switch(t.tagID){case Po.HTML:ol(e,t);break;case Po.NOFRAMES:Xc(e,t)}}(this,e)}}onEndTag(e){this.skipNextNewLine=!1,this.currentToken=e,this.currentNotInHTML?function(e,t){if(t.tagID===Po.P||t.tagID===Po.BR)return Dl(e),void e._endTagOutsideForeignContent(t);for(let n=e.openElements.stackTop;n>0;n--){const r=e.openElements.items[n];if(e.treeAdapter.getNamespaceURI(r)===vo.HTML){e._endTagOutsideForeignContent(t);break}const i=e.treeAdapter.getTagName(r);if(i.toLowerCase()===t.tagName){t.tagName=i,e.openElements.shortenToLength(n);break}}}(this,e):this._endTagOutsideForeignContent(e)}_endTagOutsideForeignContent(e){switch(this.insertionMode){case Rc.INITIAL:Vc(this,e);break;case Rc.BEFORE_HTML:!function(e,t){const n=t.tagID;n!==Po.HTML&&n!==Po.HEAD&&n!==Po.BODY&&n!==Po.BR||Wc(e,t)}(this,e);break;case Rc.BEFORE_HEAD:!function(e,t){const n=t.tagID;n===Po.HEAD||n===Po.BODY||n===Po.HTML||n===Po.BR?Qc(e,t):e._err(t,Eo.endTagWithoutMatchingOpenElement)}(this,e);break;case Rc.IN_HEAD:!function(e,t){switch(t.tagID){case Po.HEAD:e.openElements.pop(),e.insertionMode=Rc.AFTER_HEAD;break;case Po.BODY:case Po.BR:case Po.HTML:zc(e,t);break;case Po.TEMPLATE:$c(e,t);break;default:e._err(t,Eo.endTagWithoutMatchingOpenElement)}}(this,e);break;case Rc.IN_HEAD_NO_SCRIPT:!function(e,t){switch(t.tagID){case Po.NOSCRIPT:e.openElements.pop(),e.insertionMode=Rc.IN_HEAD;break;case Po.BR:Jc(e,t);break;default:e._err(t,Eo.endTagWithoutMatchingOpenElement)}}(this,e);break;case Rc.AFTER_HEAD:!function(e,t){switch(t.tagID){case Po.BODY:case Po.HTML:case Po.BR:Zc(e,t);break;case Po.TEMPLATE:$c(e,t);break;default:e._err(t,Eo.endTagWithoutMatchingOpenElement)}}(this,e);break;case Rc.IN_BODY:ll(this,e);break;case Rc.TEXT:!function(e,t){var n;t.tagID===Po.SCRIPT&&(null===(n=e.scriptHandler)||void 0===n||n.call(e,e.openElements.current));e.openElements.pop(),e.insertionMode=e.originalInsertionMode}(this,e);break;case Rc.IN_TABLE:fl(this,e);break;case Rc.IN_TABLE_TEXT:Tl(this,e);break;case Rc.IN_CAPTION:!function(e,t){const n=t.tagID;switch(n){case Po.CAPTION:case Po.TABLE:e.openElements.hasInTableScope(Po.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(Po.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=Rc.IN_TABLE,n===Po.TABLE&&fl(e,t));break;case Po.BODY:case Po.COL:case Po.COLGROUP:case Po.HTML:case Po.TBODY:case Po.TD:case Po.TFOOT:case Po.TH:case Po.THEAD:case Po.TR:break;default:ll(e,t)}}(this,e);break;case Rc.IN_COLUMN_GROUP:!function(e,t){switch(t.tagID){case Po.COLGROUP:e.openElements.currentTagId===Po.COLGROUP&&(e.openElements.pop(),e.insertionMode=Rc.IN_TABLE);break;case Po.TEMPLATE:$c(e,t);break;case Po.COL:break;default:gl(e,t)}}(this,e);break;case Rc.IN_TABLE_BODY:Cl(this,e);break;case Rc.IN_ROW:Sl(this,e);break;case Rc.IN_CELL:!function(e,t){const n=t.tagID;switch(n){case Po.TD:case Po.TH:e.openElements.hasInTableScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=Rc.IN_ROW);break;case Po.TABLE:case Po.TBODY:case Po.TFOOT:case Po.THEAD:case Po.TR:e.openElements.hasInTableScope(n)&&(e._closeTableCell(),Sl(e,t));break;case Po.BODY:case Po.CAPTION:case Po.COL:case Po.COLGROUP:case Po.HTML:break;default:ll(e,t)}}(this,e);break;case Rc.IN_SELECT:Ol(this,e);break;case Rc.IN_SELECT_IN_TABLE:!function(e,t){const n=t.tagID;n===Po.CAPTION||n===Po.TABLE||n===Po.TBODY||n===Po.TFOOT||n===Po.THEAD||n===Po.TR||n===Po.TD||n===Po.TH?e.openElements.hasInTableScope(n)&&(e.openElements.popUntilTagNamePopped(Po.SELECT),e._resetInsertionMode(),e.onEndTag(t)):Ol(e,t)}(this,e);break;case Rc.IN_TEMPLATE:!function(e,t){t.tagID===Po.TEMPLATE&&$c(e,t)}(this,e);break;case Rc.AFTER_BODY:Ll(this,e);break;case Rc.IN_FRAMESET:!function(e,t){t.tagID!==Po.FRAMESET||e.openElements.isRootHtmlElementCurrent()||(e.openElements.pop(),e.fragmentContext||e.openElements.currentTagId===Po.FRAMESET||(e.insertionMode=Rc.AFTER_FRAMESET))}(this,e);break;case Rc.AFTER_FRAMESET:!function(e,t){t.tagID===Po.HTML&&(e.insertionMode=Rc.AFTER_AFTER_FRAMESET)}(this,e);break;case Rc.AFTER_AFTER_BODY:vl(this,e)}}onEof(e){switch(this.insertionMode){case Rc.INITIAL:Vc(this,e);break;case Rc.BEFORE_HTML:Wc(this,e);break;case Rc.BEFORE_HEAD:Qc(this,e);break;case Rc.IN_HEAD:zc(this,e);break;case Rc.IN_HEAD_NO_SCRIPT:Jc(this,e);break;case Rc.AFTER_HEAD:Zc(this,e);break;case Rc.IN_BODY:case Rc.IN_TABLE:case Rc.IN_CAPTION:case Rc.IN_COLUMN_GROUP:case Rc.IN_TABLE_BODY:case Rc.IN_ROW:case Rc.IN_CELL:case Rc.IN_SELECT:case Rc.IN_SELECT_IN_TABLE:hl(this,e);break;case Rc.TEXT:!function(e,t){e._err(t,Eo.eofInElementThatCanContainOnlyText),e.openElements.pop(),e.insertionMode=e.originalInsertionMode,e.onEof(t)}(this,e);break;case Rc.IN_TABLE_TEXT:Tl(this,e);break;case Rc.IN_TEMPLATE:yl(this,e);break;case Rc.AFTER_BODY:case Rc.IN_FRAMESET:case Rc.AFTER_FRAMESET:case Rc.AFTER_AFTER_BODY:case Rc.AFTER_AFTER_FRAMESET:jc(this,e)}}onWhitespaceCharacter(e){if(this.skipNextNewLine&&(this.skipNextNewLine=!1,e.chars.charCodeAt(0)===io.LINE_FEED)){if(1===e.chars.length)return;e.chars=e.chars.substr(1)}if(this.tokenizer.inForeignNode)this._insertCharacters(e);else switch(this.insertionMode){case Rc.IN_HEAD:case Rc.IN_HEAD_NO_SCRIPT:case Rc.AFTER_HEAD:case Rc.TEXT:case Rc.IN_COLUMN_GROUP:case Rc.IN_SELECT:case Rc.IN_SELECT_IN_TABLE:case Rc.IN_FRAMESET:case Rc.AFTER_FRAMESET:this._insertCharacters(e);break;case Rc.IN_BODY:case Rc.IN_CAPTION:case Rc.IN_CELL:case Rc.IN_TEMPLATE:case Rc.AFTER_BODY:case Rc.AFTER_AFTER_BODY:case Rc.AFTER_AFTER_FRAMESET:tl(this,e);break;case Rc.IN_TABLE:case Rc.IN_TABLE_BODY:case Rc.IN_ROW:ul(this,e);break;case Rc.IN_TABLE_TEXT:El(this,e)}}}function Bc(e,t){let n=e.activeFormattingElements.getElementEntryInScopeWithTagName(t.tagName);return n?e.openElements.contains(n.element)?e.openElements.hasInScope(t.tagID)||(n=null):(e.activeFormattingElements.removeEntry(n),n=null):cl(e,t),n}function Fc(e,t){let n=null,r=e.openElements.stackTop;for(;r>=0;r--){const i=e.openElements.items[r];if(i===t.element)break;e._isSpecialElement(i,e.openElements.tagIDs[r])&&(n=i)}return n||(e.openElements.shortenToLength(r<0?0:r),e.activeFormattingElements.removeEntry(t)),n}function Uc(e,t,n){let r=t,i=e.openElements.getCommonAncestor(t);for(let s=0,a=i;a!==n;s++,a=i){i=e.openElements.getCommonAncestor(a);const n=e.activeFormattingElements.getElementEntry(a),o=n&&s>=3;!n||o?(o&&e.activeFormattingElements.removeEntry(n),e.openElements.remove(a)):(a=Hc(e,n),r===t&&(e.activeFormattingElements.bookmark=n),e.treeAdapter.detachNode(r),e.treeAdapter.appendChild(a,r),r=a)}return r}function Hc(e,t){const n=e.treeAdapter.getNamespaceURI(t.element),r=e.treeAdapter.createElement(t.token.tagName,n,t.token.attrs);return e.openElements.replace(t.element,r),t.element=r,r}function Gc(e,t,n){const r=Fo(e.treeAdapter.getTagName(t));if(e._isElementCausesFosterParenting(r))e._fosterParentElement(n);else{const i=e.treeAdapter.getNamespaceURI(t);r===Po.TEMPLATE&&i===vo.HTML&&(t=e.treeAdapter.getTemplateContent(t)),e.treeAdapter.appendChild(t,n)}}function Yc(e,t,n){const r=e.treeAdapter.getNamespaceURI(n.element),{token:i}=n,s=e.treeAdapter.createElement(i.tagName,r,i.attrs);e._adoptNodes(t,s),e.treeAdapter.appendChild(t,s),e.activeFormattingElements.insertElementAfterBookmark(s,i),e.activeFormattingElements.removeEntry(n),e.openElements.remove(n.element),e.openElements.insertAfter(t,s,i.tagID)}function qc(e,t){for(let n=0;n<8;n++){const n=Bc(e,t);if(!n)break;const r=Fc(e,n);if(!r)break;e.activeFormattingElements.bookmark=n;const i=Uc(e,r,n.element),s=e.openElements.getCommonAncestor(n.element);e.treeAdapter.detachNode(i),s&&Gc(e,s,i),Yc(e,r,n)}}function Kc(e,t){e._appendCommentNode(t,e.openElements.currentTmplContentOrNode)}function jc(e,t){if(e.stopped=!0,t.location){const n=e.fragmentContext?0:2;for(let r=e.openElements.stackTop;r>=n;r--)e._setEndLocation(e.openElements.items[r],t);if(!e.fragmentContext&&e.openElements.stackTop>=0){const n=e.openElements.items[0],r=e.treeAdapter.getNodeSourceCodeLocation(n);if(r&&!r.endTag&&(e._setEndLocation(n,t),e.openElements.stackTop>=1)){const n=e.openElements.items[1],r=e.treeAdapter.getNodeSourceCodeLocation(n);r&&!r.endTag&&e._setEndLocation(n,t)}}}}function Vc(e,t){e._err(t,Eo.missingDoctype,!0),e.treeAdapter.setDocumentMode(e.document,Ro.QUIRKS),e.insertionMode=Rc.BEFORE_HTML,e._processToken(t)}function Wc(e,t){e._insertFakeRootElement(),e.insertionMode=Rc.BEFORE_HEAD,e._processToken(t)}function Qc(e,t){e._insertFakeElement(Mo.HEAD,Po.HEAD),e.headElement=e.openElements.current,e.insertionMode=Rc.IN_HEAD,e._processToken(t)}function Xc(e,t){switch(t.tagID){case Po.HTML:ol(e,t);break;case Po.BASE:case Po.BASEFONT:case Po.BGSOUND:case Po.LINK:case Po.META:e._appendElement(t,vo.HTML),t.ackSelfClosing=!0;break;case Po.TITLE:e._switchToTextParsing(t,jo.RCDATA);break;case Po.NOSCRIPT:e.options.scriptingEnabled?e._switchToTextParsing(t,jo.RAWTEXT):(e._insertElement(t,vo.HTML),e.insertionMode=Rc.IN_HEAD_NO_SCRIPT);break;case Po.NOFRAMES:case Po.STYLE:e._switchToTextParsing(t,jo.RAWTEXT);break;case Po.SCRIPT:e._switchToTextParsing(t,jo.SCRIPT_DATA);break;case Po.TEMPLATE:e._insertTemplate(t),e.activeFormattingElements.insertMarker(),e.framesetOk=!1,e.insertionMode=Rc.IN_TEMPLATE,e.tmplInsertionModeStack.unshift(Rc.IN_TEMPLATE);break;case Po.HEAD:e._err(t,Eo.misplacedStartTagForHeadElement);break;default:zc(e,t)}}function $c(e,t){e.openElements.tmplCount>0?(e.openElements.generateImpliedEndTagsThoroughly(),e.openElements.currentTagId!==Po.TEMPLATE&&e._err(t,Eo.closingOfElementWithOpenChildElements),e.openElements.popUntilTagNamePopped(Po.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e.tmplInsertionModeStack.shift(),e._resetInsertionMode()):e._err(t,Eo.endTagWithoutMatchingOpenElement)}function zc(e,t){e.openElements.pop(),e.insertionMode=Rc.AFTER_HEAD,e._processToken(t)}function Jc(e,t){const n=t.type===To.EOF?Eo.openElementsLeftAfterEof:Eo.disallowedContentInNoscriptInHead;e._err(t,n),e.openElements.pop(),e.insertionMode=Rc.IN_HEAD,e._processToken(t)}function Zc(e,t){e._insertFakeElement(Mo.BODY,Po.BODY),e.insertionMode=Rc.IN_BODY,el(e,t)}function el(e,t){switch(t.type){case To.CHARACTER:nl(e,t);break;case To.WHITESPACE_CHARACTER:tl(e,t);break;case To.COMMENT:Kc(e,t);break;case To.START_TAG:ol(e,t);break;case To.END_TAG:ll(e,t);break;case To.EOF:hl(e,t)}}function tl(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t)}function nl(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t),e.framesetOk=!1}function rl(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,vo.HTML),e.framesetOk=!1,t.ackSelfClosing=!0}function il(e){const t=_o(e,Do.TYPE);return null!=t&&"hidden"===t.toLowerCase()}function sl(e,t){e._switchToTextParsing(t,jo.RAWTEXT)}function al(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,vo.HTML)}function ol(e,t){switch(t.tagID){case Po.I:case Po.S:case Po.B:case Po.U:case Po.EM:case Po.TT:case Po.BIG:case Po.CODE:case Po.FONT:case Po.SMALL:case Po.STRIKE:case Po.STRONG:!function(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,vo.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}(e,t);break;case Po.A:!function(e,t){const n=e.activeFormattingElements.getElementEntryInScopeWithTagName(Mo.A);n&&(qc(e,t),e.openElements.remove(n.element),e.activeFormattingElements.removeEntry(n)),e._reconstructActiveFormattingElements(),e._insertElement(t,vo.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}(e,t);break;case Po.H1:case Po.H2:case Po.H3:case Po.H4:case Po.H5:case Po.H6:!function(e,t){e.openElements.hasInButtonScope(Po.P)&&e._closePElement(),Go(e.openElements.currentTagId)&&e.openElements.pop(),e._insertElement(t,vo.HTML)}(e,t);break;case Po.P:case Po.DL:case Po.OL:case Po.UL:case Po.DIV:case Po.DIR:case Po.NAV:case Po.MAIN:case Po.MENU:case Po.ASIDE:case Po.CENTER:case Po.FIGURE:case Po.FOOTER:case Po.HEADER:case Po.HGROUP:case Po.DIALOG:case Po.DETAILS:case Po.ADDRESS:case Po.ARTICLE:case Po.SECTION:case Po.SUMMARY:case Po.FIELDSET:case Po.BLOCKQUOTE:case Po.FIGCAPTION:!function(e,t){e.openElements.hasInButtonScope(Po.P)&&e._closePElement(),e._insertElement(t,vo.HTML)}(e,t);break;case Po.LI:case Po.DD:case Po.DT:!function(e,t){e.framesetOk=!1;const n=t.tagID;for(let t=e.openElements.stackTop;t>=0;t--){const r=e.openElements.tagIDs[t];if(n===Po.LI&&r===Po.LI||(n===Po.DD||n===Po.DT)&&(r===Po.DD||r===Po.DT)){e.openElements.generateImpliedEndTagsWithExclusion(r),e.openElements.popUntilTagNamePopped(r);break}if(r!==Po.ADDRESS&&r!==Po.DIV&&r!==Po.P&&e._isSpecialElement(e.openElements.items[t],r))break}e.openElements.hasInButtonScope(Po.P)&&e._closePElement(),e._insertElement(t,vo.HTML)}(e,t);break;case Po.BR:case Po.IMG:case Po.WBR:case Po.AREA:case Po.EMBED:case Po.KEYGEN:rl(e,t);break;case Po.HR:!function(e,t){e.openElements.hasInButtonScope(Po.P)&&e._closePElement(),e._appendElement(t,vo.HTML),e.framesetOk=!1,t.ackSelfClosing=!0}(e,t);break;case Po.RB:case Po.RTC:!function(e,t){e.openElements.hasInScope(Po.RUBY)&&e.openElements.generateImpliedEndTags(),e._insertElement(t,vo.HTML)}(e,t);break;case Po.RT:case Po.RP:!function(e,t){e.openElements.hasInScope(Po.RUBY)&&e.openElements.generateImpliedEndTagsWithExclusion(Po.RTC),e._insertElement(t,vo.HTML)}(e,t);break;case Po.PRE:case Po.LISTING:!function(e,t){e.openElements.hasInButtonScope(Po.P)&&e._closePElement(),e._insertElement(t,vo.HTML),e.skipNextNewLine=!0,e.framesetOk=!1}(e,t);break;case Po.XMP:!function(e,t){e.openElements.hasInButtonScope(Po.P)&&e._closePElement(),e._reconstructActiveFormattingElements(),e.framesetOk=!1,e._switchToTextParsing(t,jo.RAWTEXT)}(e,t);break;case Po.SVG:!function(e,t){e._reconstructActiveFormattingElements(),kc(t),vc(t),t.selfClosing?e._appendElement(t,vo.SVG):e._insertElement(t,vo.SVG),t.ackSelfClosing=!0}(e,t);break;case Po.HTML:!function(e,t){0===e.openElements.tmplCount&&e.treeAdapter.adoptAttributes(e.openElements.items[0],t.attrs)}(e,t);break;case Po.BASE:case Po.LINK:case Po.META:case Po.STYLE:case Po.TITLE:case Po.SCRIPT:case Po.BGSOUND:case Po.BASEFONT:case Po.TEMPLATE:Xc(e,t);break;case Po.BODY:!function(e,t){const n=e.openElements.tryPeekProperlyNestedBodyElement();n&&0===e.openElements.tmplCount&&(e.framesetOk=!1,e.treeAdapter.adoptAttributes(n,t.attrs))}(e,t);break;case Po.FORM:!function(e,t){const n=e.openElements.tmplCount>0;e.formElement&&!n||(e.openElements.hasInButtonScope(Po.P)&&e._closePElement(),e._insertElement(t,vo.HTML),n||(e.formElement=e.openElements.current))}(e,t);break;case Po.NOBR:!function(e,t){e._reconstructActiveFormattingElements(),e.openElements.hasInScope(Po.NOBR)&&(qc(e,t),e._reconstructActiveFormattingElements()),e._insertElement(t,vo.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}(e,t);break;case Po.MATH:!function(e,t){e._reconstructActiveFormattingElements(),Lc(t),vc(t),t.selfClosing?e._appendElement(t,vo.MATHML):e._insertElement(t,vo.MATHML),t.ackSelfClosing=!0}(e,t);break;case Po.TABLE:!function(e,t){e.treeAdapter.getDocumentMode(e.document)!==Ro.QUIRKS&&e.openElements.hasInButtonScope(Po.P)&&e._closePElement(),e._insertElement(t,vo.HTML),e.framesetOk=!1,e.insertionMode=Rc.IN_TABLE}(e,t);break;case Po.INPUT:!function(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,vo.HTML),il(t)||(e.framesetOk=!1),t.ackSelfClosing=!0}(e,t);break;case Po.PARAM:case Po.TRACK:case Po.SOURCE:!function(e,t){e._appendElement(t,vo.HTML),t.ackSelfClosing=!0}(e,t);break;case Po.IMAGE:!function(e,t){t.tagName=Mo.IMG,t.tagID=Po.IMG,rl(e,t)}(e,t);break;case Po.BUTTON:!function(e,t){e.openElements.hasInScope(Po.BUTTON)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(Po.BUTTON)),e._reconstructActiveFormattingElements(),e._insertElement(t,vo.HTML),e.framesetOk=!1}(e,t);break;case Po.APPLET:case Po.OBJECT:case Po.MARQUEE:!function(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,vo.HTML),e.activeFormattingElements.insertMarker(),e.framesetOk=!1}(e,t);break;case Po.IFRAME:!function(e,t){e.framesetOk=!1,e._switchToTextParsing(t,jo.RAWTEXT)}(e,t);break;case Po.SELECT:!function(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,vo.HTML),e.framesetOk=!1,e.insertionMode=e.insertionMode===Rc.IN_TABLE||e.insertionMode===Rc.IN_CAPTION||e.insertionMode===Rc.IN_TABLE_BODY||e.insertionMode===Rc.IN_ROW||e.insertionMode===Rc.IN_CELL?Rc.IN_SELECT_IN_TABLE:Rc.IN_SELECT}(e,t);break;case Po.OPTION:case Po.OPTGROUP:!function(e,t){e.openElements.currentTagId===Po.OPTION&&e.openElements.pop(),e._reconstructActiveFormattingElements(),e._insertElement(t,vo.HTML)}(e,t);break;case Po.NOEMBED:sl(e,t);break;case Po.FRAMESET:!function(e,t){const n=e.openElements.tryPeekProperlyNestedBodyElement();e.framesetOk&&n&&(e.treeAdapter.detachNode(n),e.openElements.popAllUpToHtmlElement(),e._insertElement(t,vo.HTML),e.insertionMode=Rc.IN_FRAMESET)}(e,t);break;case Po.TEXTAREA:!function(e,t){e._insertElement(t,vo.HTML),e.skipNextNewLine=!0,e.tokenizer.state=jo.RCDATA,e.originalInsertionMode=e.insertionMode,e.framesetOk=!1,e.insertionMode=Rc.TEXT}(e,t);break;case Po.NOSCRIPT:e.options.scriptingEnabled?sl(e,t):al(e,t);break;case Po.PLAINTEXT:!function(e,t){e.openElements.hasInButtonScope(Po.P)&&e._closePElement(),e._insertElement(t,vo.HTML),e.tokenizer.state=jo.PLAINTEXT}(e,t);break;case Po.COL:case Po.TH:case Po.TD:case Po.TR:case Po.HEAD:case Po.FRAME:case Po.TBODY:case Po.TFOOT:case Po.THEAD:case Po.CAPTION:case Po.COLGROUP:break;default:al(e,t)}}function cl(e,t){const n=t.tagName,r=t.tagID;for(let t=e.openElements.stackTop;t>0;t--){const i=e.openElements.items[t],s=e.openElements.tagIDs[t];if(r===s&&(r!==Po.UNKNOWN||e.treeAdapter.getTagName(i)===n)){e.openElements.generateImpliedEndTagsWithExclusion(r),e.openElements.stackTop>=t&&e.openElements.shortenToLength(t);break}if(e._isSpecialElement(i,s))break}}function ll(e,t){switch(t.tagID){case Po.A:case Po.B:case Po.I:case Po.S:case Po.U:case Po.EM:case Po.TT:case Po.BIG:case Po.CODE:case Po.FONT:case Po.NOBR:case Po.SMALL:case Po.STRIKE:case Po.STRONG:qc(e,t);break;case Po.P:!function(e){e.openElements.hasInButtonScope(Po.P)||e._insertFakeElement(Mo.P,Po.P),e._closePElement()}(e);break;case Po.DL:case Po.UL:case Po.OL:case Po.DIR:case Po.DIV:case Po.NAV:case Po.PRE:case Po.MAIN:case Po.MENU:case Po.ASIDE:case Po.BUTTON:case Po.CENTER:case Po.FIGURE:case Po.FOOTER:case Po.HEADER:case Po.HGROUP:case Po.DIALOG:case Po.ADDRESS:case Po.ARTICLE:case Po.DETAILS:case Po.SECTION:case Po.SUMMARY:case Po.LISTING:case Po.FIELDSET:case Po.BLOCKQUOTE:case Po.FIGCAPTION:!function(e,t){const n=t.tagID;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n))}(e,t);break;case Po.LI:!function(e){e.openElements.hasInListItemScope(Po.LI)&&(e.openElements.generateImpliedEndTagsWithExclusion(Po.LI),e.openElements.popUntilTagNamePopped(Po.LI))}(e);break;case Po.DD:case Po.DT:!function(e,t){const n=t.tagID;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTagsWithExclusion(n),e.openElements.popUntilTagNamePopped(n))}(e,t);break;case Po.H1:case Po.H2:case Po.H3:case Po.H4:case Po.H5:case Po.H6:!function(e){e.openElements.hasNumberedHeaderInScope()&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilNumberedHeaderPopped())}(e);break;case Po.BR:!function(e){e._reconstructActiveFormattingElements(),e._insertFakeElement(Mo.BR,Po.BR),e.openElements.pop(),e.framesetOk=!1}(e);break;case Po.BODY:!function(e,t){if(e.openElements.hasInScope(Po.BODY)&&(e.insertionMode=Rc.AFTER_BODY,e.options.sourceCodeLocationInfo)){const n=e.openElements.tryPeekProperlyNestedBodyElement();n&&e._setEndLocation(n,t)}}(e,t);break;case Po.HTML:!function(e,t){e.openElements.hasInScope(Po.BODY)&&(e.insertionMode=Rc.AFTER_BODY,Ll(e,t))}(e,t);break;case Po.FORM:!function(e){const t=e.openElements.tmplCount>0,{formElement:n}=e;t||(e.formElement=null),(n||t)&&e.openElements.hasInScope(Po.FORM)&&(e.openElements.generateImpliedEndTags(),t?e.openElements.popUntilTagNamePopped(Po.FORM):n&&e.openElements.remove(n))}(e);break;case Po.APPLET:case Po.OBJECT:case Po.MARQUEE:!function(e,t){const n=t.tagID;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n),e.activeFormattingElements.clearToLastMarker())}(e,t);break;case Po.TEMPLATE:$c(e,t);break;default:cl(e,t)}}function hl(e,t){e.tmplInsertionModeStack.length>0?yl(e,t):jc(e,t)}function ul(e,t){if(Pc.has(e.openElements.currentTagId))switch(e.pendingCharacterTokens.length=0,e.hasNonWhitespacePendingCharacterToken=!1,e.originalInsertionMode=e.insertionMode,e.insertionMode=Rc.IN_TABLE_TEXT,t.type){case To.CHARACTER:ml(e,t);break;case To.WHITESPACE_CHARACTER:El(e,t)}else dl(e,t)}function pl(e,t){switch(t.tagID){case Po.TD:case Po.TH:case Po.TR:!function(e,t){e.openElements.clearBackToTableContext(),e._insertFakeElement(Mo.TBODY,Po.TBODY),e.insertionMode=Rc.IN_TABLE_BODY,Nl(e,t)}(e,t);break;case Po.STYLE:case Po.SCRIPT:case Po.TEMPLATE:Xc(e,t);break;case Po.COL:!function(e,t){e.openElements.clearBackToTableContext(),e._insertFakeElement(Mo.COLGROUP,Po.COLGROUP),e.insertionMode=Rc.IN_COLUMN_GROUP,Al(e,t)}(e,t);break;case Po.FORM:!function(e,t){e.formElement||0!==e.openElements.tmplCount||(e._insertElement(t,vo.HTML),e.formElement=e.openElements.current,e.openElements.pop())}(e,t);break;case Po.TABLE:!function(e,t){e.openElements.hasInTableScope(Po.TABLE)&&(e.openElements.popUntilTagNamePopped(Po.TABLE),e._resetInsertionMode(),e._processStartTag(t))}(e,t);break;case Po.TBODY:case Po.TFOOT:case Po.THEAD:!function(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,vo.HTML),e.insertionMode=Rc.IN_TABLE_BODY}(e,t);break;case Po.INPUT:!function(e,t){il(t)?e._appendElement(t,vo.HTML):dl(e,t),t.ackSelfClosing=!0}(e,t);break;case Po.CAPTION:!function(e,t){e.openElements.clearBackToTableContext(),e.activeFormattingElements.insertMarker(),e._insertElement(t,vo.HTML),e.insertionMode=Rc.IN_CAPTION}(e,t);break;case Po.COLGROUP:!function(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,vo.HTML),e.insertionMode=Rc.IN_COLUMN_GROUP}(e,t);break;default:dl(e,t)}}function fl(e,t){switch(t.tagID){case Po.TABLE:e.openElements.hasInTableScope(Po.TABLE)&&(e.openElements.popUntilTagNamePopped(Po.TABLE),e._resetInsertionMode());break;case Po.TEMPLATE:$c(e,t);break;case Po.BODY:case Po.CAPTION:case Po.COL:case Po.COLGROUP:case Po.HTML:case Po.TBODY:case Po.TD:case Po.TFOOT:case Po.TH:case Po.THEAD:case Po.TR:break;default:dl(e,t)}}function dl(e,t){const n=e.fosterParentingEnabled;e.fosterParentingEnabled=!0,el(e,t),e.fosterParentingEnabled=n}function El(e,t){e.pendingCharacterTokens.push(t)}function ml(e,t){e.pendingCharacterTokens.push(t),e.hasNonWhitespacePendingCharacterToken=!0}function Tl(e,t){let n=0;if(e.hasNonWhitespacePendingCharacterToken)for(;n0&&e.openElements.currentTagId===Po.OPTION&&e.openElements.tagIDs[e.openElements.stackTop-1]===Po.OPTGROUP&&e.openElements.pop(),e.openElements.currentTagId===Po.OPTGROUP&&e.openElements.pop();break;case Po.OPTION:e.openElements.currentTagId===Po.OPTION&&e.openElements.pop();break;case Po.SELECT:e.openElements.hasInSelectScope(Po.SELECT)&&(e.openElements.popUntilTagNamePopped(Po.SELECT),e._resetInsertionMode());break;case Po.TEMPLATE:$c(e,t)}}function yl(e,t){e.openElements.tmplCount>0?(e.openElements.popUntilTagNamePopped(Po.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e.tmplInsertionModeStack.shift(),e._resetInsertionMode(),e.onEof(t)):jc(e,t)}function Ll(e,t){var n;if(t.tagID===Po.HTML){if(e.fragmentContext||(e.insertionMode=Rc.AFTER_AFTER_BODY),e.options.sourceCodeLocationInfo&&e.openElements.tagIDs[0]===Po.HTML){e._setEndLocation(e.openElements.items[0],t);const r=e.openElements.items[1];r&&!(null===(n=e.treeAdapter.getNodeSourceCodeLocation(r))||void 0===n?void 0:n.endTag)&&e._setEndLocation(r,t)}}else kl(e,t)}function kl(e,t){e.insertionMode=Rc.IN_BODY,el(e,t)}function vl(e,t){e.insertionMode=Rc.IN_BODY,el(e,t)}function Dl(e){for(;e.treeAdapter.getNamespaceURI(e.openElements.current)!==vo.HTML&&!e._isIntegrationPoint(e.openElements.currentTagId,e.openElements.current);)e.openElements.pop()}var Rl=Ke((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.escapeText=t.escapeAttribute=t.escapeUTF8=t.escape=t.encodeXML=t.getCodePoint=t.xmlReplacer=void 0,t.xmlReplacer=/["&'<>$\x80-\uFFFF]/g;var n=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]);function r(e){for(var r,i="",s=0;null!==(r=t.xmlReplacer.exec(e));){var a=r.index,o=e.charCodeAt(a),c=n.get(o);void 0!==c?(i+=e.substring(s,a)+c,s=a+1):(i+="".concat(e.substring(s,a),"&#x").concat((0,t.getCodePoint)(e,a).toString(16),";"),s=t.xmlReplacer.lastIndex+=Number(55296==(64512&o)))}return i+e.substr(s)}function i(e,t){return function(n){for(var r,i=0,s="";r=e.exec(n);)i!==r.index&&(s+=n.substring(i,r.index)),s+=t.get(r[0].charCodeAt(0)),i=r.index+1;return s+n.substring(i)}}t.getCodePoint=null!=String.prototype.codePointAt?function(e,t){return e.codePointAt(t)}:function(e,t){return 55296==(64512&e.charCodeAt(t))?1024*(e.charCodeAt(t)-55296)+e.charCodeAt(t+1)-56320+65536:e.charCodeAt(t)},t.encodeXML=r,t.escape=r,t.escapeUTF8=i(/[&<>'"]/g,n),t.escapeAttribute=i(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),t.escapeText=i(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]))}));qe(Rl);var Ml=Rl.escapeText,Pl=Rl.escapeAttribute;Rl.escapeUTF8,Rl.escape,Rl.encodeXML,Rl.getCodePoint,Rl.xmlReplacer;const xl=new Set([Mo.AREA,Mo.BASE,Mo.BASEFONT,Mo.BGSOUND,Mo.BR,Mo.COL,Mo.EMBED,Mo.FRAME,Mo.HR,Mo.IMG,Mo.INPUT,Mo.KEYGEN,Mo.LINK,Mo.META,Mo.PARAM,Mo.SOURCE,Mo.TRACK,Mo.WBR]);const wl={treeAdapter:Ec,scriptingEnabled:!0};function Bl(e,t){return Fl(e,{...wl,...t})}function Fl(e,t){return t.treeAdapter.isElementNode(e)?function(e,t){const n=t.treeAdapter.getTagName(e);return`<${n}${function(e,{treeAdapter:t}){let n="";for(const r of t.getAttrList(e)){if(n+=" ",r.namespace)switch(r.namespace){case vo.XML:n+=`xml:${r.name}`;break;case vo.XMLNS:"xmlns"!==r.name&&(n+="xmlns:"),n+=r.name;break;case vo.XLINK:n+=`xlink:${r.name}`;break;default:n+=`${r.prefix}:${r.name}`}else n+=r.name;n+=`="${Pl(r.value)}"`}return n}(e,t)}>${function(e,t){return t.treeAdapter.isElementNode(e)&&t.treeAdapter.getNamespaceURI(e)===vo.HTML&&xl.has(t.treeAdapter.getTagName(e))}(e,t)?"":`${function(e,t){let n="";const r=t.treeAdapter.isElementNode(e)&&t.treeAdapter.getTagName(e)===Mo.TEMPLATE&&t.treeAdapter.getNamespaceURI(e)===vo.HTML?t.treeAdapter.getTemplateContent(e):e,i=t.treeAdapter.getChildNodes(r);if(i)for(const e of i)n+=Fl(e,t);return n}(e,t)}`}`}(e,t):t.treeAdapter.isTextNode(e)?function(e,t){const{treeAdapter:n}=t,r=n.getTextNodeContent(e),i=n.getParentNode(e),s=i&&n.isElementNode(i)&&n.getTagName(i);return s&&n.getNamespaceURI(i)===vo.HTML&&(a=s,o=t.scriptingEnabled,Yo.has(a)||o&&a===Mo.NOSCRIPT)?r:Ml(r);var a,o}(e,t):t.treeAdapter.isCommentNode(e)?function(e,{treeAdapter:t}){return`\x3c!--${t.getCommentNodeContent(e)}--\x3e`}(e,t):t.treeAdapter.isDocumentTypeNode(e)?function(e,{treeAdapter:t}){return``}(e,t):""}function Ul(e){return new m(e)}function Hl(e){const t=e.includes('"')?"'":'"';return t+e+t}const Gl={isCommentNode:O,isElementNode:I,isTextNode:b,createDocument(){const e=new N([]);return e["x-mode"]=Ro.NO_QUIRKS,e},createDocumentFragment:()=>new N([]),createElement(e,t,n){const r=Object.create(null),i=Object.create(null),s=Object.create(null);for(let e=0;enew T(e),appendChild(e,t){const n=e.children[e.children.length-1];n&&(n.next=t,t.prev=n),e.children.push(t),t.parent=e},insertBefore(e,t,n){const r=e.children.indexOf(n),{prev:i}=n;i&&(i.next=t,t.prev=i),n.prev=t,t.next=n,e.children.splice(r,0,t),t.parent=e},setTemplateContent(e,t){Gl.appendChild(e,t)},getTemplateContent:e=>e.children[0],setDocumentType(e,t,n,r){const i=function(e,t,n){let r="!DOCTYPE ";return e&&(r+=e),t?r+=` PUBLIC ${Hl(t)}`:n&&(r+=" SYSTEM"),n&&(r+=` ${Hl(n)}`),r}(t,n,r);let s=e.children.find((e=>y(e)&&"!doctype"===e.name));s?s.data=null!=i?i:null:(s=new _("!doctype",i),Gl.appendChild(e,s)),s["x-name"]=null!=t?t:void 0,s["x-publicId"]=null!=n?n:void 0,s["x-systemId"]=null!=r?r:void 0},setDocumentMode(e,t){e["x-mode"]=t},getDocumentMode:e=>e["x-mode"],detachNode(e){if(e.parent){const t=e.parent.children.indexOf(e),{prev:n,next:r}=e;e.prev=null,e.next=null,n&&(n.next=r),r&&(r.prev=n),e.parent.children.splice(t,1),e.parent=null}},insertText(e,t){const n=e.children[e.children.length-1];n&&b(n)?n.data+=t:Gl.appendChild(e,Ul(t))},insertTextBefore(e,t,n){const r=e.children[e.children.indexOf(n)-1];r&&b(r)?r.data+=t:Gl.insertBefore(e,Ul(t),n)},adoptAttributes(e,t){for(let n=0;ne.children[0],getChildNodes:e=>e.children,getParentNode:e=>e.parent,getAttrList:e=>e.attributes,getTagName:e=>e.name,getNamespaceURI:e=>e.namespace,getTextNodeContent:e=>e.data,getCommentNodeContent:e=>e.data,getDocumentTypeNodeName(e){var t;return null!==(t=e["x-name"])&&void 0!==t?t:""},getDocumentTypeNodePublicId(e){var t;return null!==(t=e["x-publicId"])&&void 0!==t?t:""},getDocumentTypeNodeSystemId(e){var t;return null!==(t=e["x-systemId"])&&void 0!==t?t:""},isDocumentTypeNode:e=>y(e)&&"!doctype"===e.name,setNodeSourceCodeLocation(e,t){t&&(e.startIndex=t.startOffset,e.endIndex=t.endOffset),e.sourceCodeLocation=t},getNodeSourceCodeLocation:e=>e.sourceCodeLocation,updateNodeSourceCodeLocation(e,t){null!=t.endOffset&&(e.endIndex=t.endOffset),e.sourceCodeLocation={...e.sourceCodeLocation,...t}}};var Yl=function(e,t,n){if(n||2===arguments.length)for(var r,i=0,s=t.length;i=Kl.Zero&&e<=Kl.Nine}!function(e){e[e.Tab=9]="Tab",e[e.NewLine=10]="NewLine",e[e.FormFeed=12]="FormFeed",e[e.CarriageReturn=13]="CarriageReturn",e[e.Space=32]="Space",e[e.ExclamationMark=33]="ExclamationMark",e[e.Num=35]="Num",e[e.Amp=38]="Amp",e[e.SingleQuote=39]="SingleQuote",e[e.DoubleQuote=34]="DoubleQuote",e[e.Dash=45]="Dash",e[e.Slash=47]="Slash",e[e.Zero=48]="Zero",e[e.Nine=57]="Nine",e[e.Semi=59]="Semi",e[e.Lt=60]="Lt",e[e.Eq=61]="Eq",e[e.Gt=62]="Gt",e[e.Questionmark=63]="Questionmark",e[e.UpperA=65]="UpperA",e[e.LowerA=97]="LowerA",e[e.UpperF=70]="UpperF",e[e.LowerF=102]="LowerF",e[e.UpperZ=90]="UpperZ",e[e.LowerZ=122]="LowerZ",e[e.LowerX=120]="LowerX",e[e.OpeningSquareBracket=91]="OpeningSquareBracket"}(Kl||(Kl={})),function(e){e[e.Text=1]="Text",e[e.BeforeTagName=2]="BeforeTagName",e[e.InTagName=3]="InTagName",e[e.InSelfClosingTag=4]="InSelfClosingTag",e[e.BeforeClosingTagName=5]="BeforeClosingTagName",e[e.InClosingTagName=6]="InClosingTagName",e[e.AfterClosingTagName=7]="AfterClosingTagName",e[e.BeforeAttributeName=8]="BeforeAttributeName",e[e.InAttributeName=9]="InAttributeName",e[e.AfterAttributeName=10]="AfterAttributeName",e[e.BeforeAttributeValue=11]="BeforeAttributeValue",e[e.InAttributeValueDq=12]="InAttributeValueDq",e[e.InAttributeValueSq=13]="InAttributeValueSq",e[e.InAttributeValueNq=14]="InAttributeValueNq",e[e.BeforeDeclaration=15]="BeforeDeclaration",e[e.InDeclaration=16]="InDeclaration",e[e.InProcessingInstruction=17]="InProcessingInstruction",e[e.BeforeComment=18]="BeforeComment",e[e.CDATASequence=19]="CDATASequence",e[e.InSpecialComment=20]="InSpecialComment",e[e.InCommentLike=21]="InCommentLike",e[e.BeforeSpecialS=22]="BeforeSpecialS",e[e.SpecialStartSequence=23]="SpecialStartSequence",e[e.InSpecialTag=24]="InSpecialTag",e[e.BeforeEntity=25]="BeforeEntity",e[e.BeforeNumericEntity=26]="BeforeNumericEntity",e[e.InNamedEntity=27]="InNamedEntity",e[e.InNumericEntity=28]="InNumericEntity",e[e.InHexEntity=29]="InHexEntity"}(jl||(jl={})),function(e){e[e.NoValue=0]="NoValue",e[e.Unquoted=1]="Unquoted",e[e.Single=2]="Single",e[e.Double=3]="Double"}(Vl||(Vl={}));const zl={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101])};class Jl{constructor({xmlMode:e=!1,decodeEntities:t=!0},n){this.cbs=n,this.state=jl.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=jl.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.sequenceIndex=0,this.trieIndex=0,this.trieCurrent=0,this.entityResult=0,this.entityExcess=0,this.xmlMode=e,this.decodeEntities=t,this.entityTrie=e?xo:wo}reset(){this.state=jl.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=jl.Text,this.currentSequence=void 0,this.running=!0,this.offset=0}write(e){this.offset+=this.buffer.length,this.buffer=e,this.parse()}end(){this.running&&this.finish()}pause(){this.running=!1}resume(){this.running=!0,this.indexthis.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=jl.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&e===Kl.Amp&&(this.state=jl.BeforeEntity)}stateSpecialStartSequence(e){const t=this.sequenceIndex===this.currentSequence.length;if(t?Xl(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.isSpecial=!1;this.sequenceIndex=0,this.state=jl.InTagName,this.stateInTagName(e)}stateInSpecialTag(e){if(this.sequenceIndex===this.currentSequence.length){if(e===Kl.Gt||Ql(e)){const t=this.index-this.currentSequence.length;if(this.sectionStart=Kl.LowerA&&e<=Kl.LowerZ||e>=Kl.UpperA&&e<=Kl.UpperZ}(e)}startSpecial(e,t){this.isSpecial=!0,this.currentSequence=e,this.sequenceIndex=t,this.state=jl.SpecialStartSequence}stateBeforeTagName(e){if(e===Kl.ExclamationMark)this.state=jl.BeforeDeclaration,this.sectionStart=this.index+1;else if(e===Kl.Questionmark)this.state=jl.InProcessingInstruction,this.sectionStart=this.index+1;else if(this.isTagStartChar(e)){const t=32|e;this.sectionStart=this.index,this.xmlMode||t!==zl.TitleEnd[2]?this.state=this.xmlMode||t!==zl.ScriptEnd[2]?jl.InTagName:jl.BeforeSpecialS:this.startSpecial(zl.TitleEnd,3)}else e===Kl.Slash?this.state=jl.BeforeClosingTagName:(this.state=jl.Text,this.stateText(e))}stateInTagName(e){Xl(e)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=jl.BeforeAttributeName,this.stateBeforeAttributeName(e))}stateBeforeClosingTagName(e){Ql(e)||(e===Kl.Gt?this.state=jl.Text:(this.state=this.isTagStartChar(e)?jl.InClosingTagName:jl.InSpecialComment,this.sectionStart=this.index))}stateInClosingTagName(e){(e===Kl.Gt||Ql(e))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=jl.AfterClosingTagName,this.stateAfterClosingTagName(e))}stateAfterClosingTagName(e){(e===Kl.Gt||this.fastForwardTo(Kl.Gt))&&(this.state=jl.Text,this.sectionStart=this.index+1)}stateBeforeAttributeName(e){e===Kl.Gt?(this.cbs.onopentagend(this.index),this.isSpecial?(this.state=jl.InSpecialTag,this.sequenceIndex=0):this.state=jl.Text,this.baseState=this.state,this.sectionStart=this.index+1):e===Kl.Slash?this.state=jl.InSelfClosingTag:Ql(e)||(this.state=jl.InAttributeName,this.sectionStart=this.index)}stateInSelfClosingTag(e){e===Kl.Gt?(this.cbs.onselfclosingtag(this.index),this.state=jl.Text,this.baseState=jl.Text,this.sectionStart=this.index+1,this.isSpecial=!1):Ql(e)||(this.state=jl.BeforeAttributeName,this.stateBeforeAttributeName(e))}stateInAttributeName(e){(e===Kl.Eq||Xl(e))&&(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=-1,this.state=jl.AfterAttributeName,this.stateAfterAttributeName(e))}stateAfterAttributeName(e){e===Kl.Eq?this.state=jl.BeforeAttributeValue:e===Kl.Slash||e===Kl.Gt?(this.cbs.onattribend(Vl.NoValue,this.index),this.state=jl.BeforeAttributeName,this.stateBeforeAttributeName(e)):Ql(e)||(this.cbs.onattribend(Vl.NoValue,this.index),this.state=jl.InAttributeName,this.sectionStart=this.index)}stateBeforeAttributeValue(e){e===Kl.DoubleQuote?(this.state=jl.InAttributeValueDq,this.sectionStart=this.index+1):e===Kl.SingleQuote?(this.state=jl.InAttributeValueSq,this.sectionStart=this.index+1):Ql(e)||(this.sectionStart=this.index,this.state=jl.InAttributeValueNq,this.stateInAttributeValueNoQuotes(e))}handleInAttributeValue(e,t){e===t||!this.decodeEntities&&this.fastForwardTo(t)?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(t===Kl.DoubleQuote?Vl.Double:Vl.Single,this.index),this.state=jl.BeforeAttributeName):this.decodeEntities&&e===Kl.Amp&&(this.baseState=this.state,this.state=jl.BeforeEntity)}stateInAttributeValueDoubleQuotes(e){this.handleInAttributeValue(e,Kl.DoubleQuote)}stateInAttributeValueSingleQuotes(e){this.handleInAttributeValue(e,Kl.SingleQuote)}stateInAttributeValueNoQuotes(e){Ql(e)||e===Kl.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(Vl.Unquoted,this.index),this.state=jl.BeforeAttributeName,this.stateBeforeAttributeName(e)):this.decodeEntities&&e===Kl.Amp&&(this.baseState=this.state,this.state=jl.BeforeEntity)}stateBeforeDeclaration(e){e===Kl.OpeningSquareBracket?(this.state=jl.CDATASequence,this.sequenceIndex=0):this.state=e===Kl.Dash?jl.BeforeComment:jl.InDeclaration}stateInDeclaration(e){(e===Kl.Gt||this.fastForwardTo(Kl.Gt))&&(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=jl.Text,this.sectionStart=this.index+1)}stateInProcessingInstruction(e){(e===Kl.Gt||this.fastForwardTo(Kl.Gt))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=jl.Text,this.sectionStart=this.index+1)}stateBeforeComment(e){e===Kl.Dash?(this.state=jl.InCommentLike,this.currentSequence=zl.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=jl.InDeclaration}stateInSpecialComment(e){(e===Kl.Gt||this.fastForwardTo(Kl.Gt))&&(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=jl.Text,this.sectionStart=this.index+1)}stateBeforeSpecialS(e){const t=32|e;t===zl.ScriptEnd[3]?this.startSpecial(zl.ScriptEnd,4):t===zl.StyleEnd[3]?this.startSpecial(zl.StyleEnd,4):(this.state=jl.InTagName,this.stateInTagName(e))}stateBeforeEntity(e){this.entityExcess=1,this.entityResult=0,e===Kl.Num?this.state=jl.BeforeNumericEntity:e===Kl.Amp||(this.trieIndex=0,this.trieCurrent=this.entityTrie[0],this.state=jl.InNamedEntity,this.stateInNamedEntity(e))}stateInNamedEntity(e){if(this.entityExcess+=1,this.trieIndex=Oo(this.entityTrie,this.trieCurrent,this.trieIndex+1,e),this.trieIndex<0)return this.emitNamedEntity(),void this.index--;this.trieCurrent=this.entityTrie[this.trieIndex];const t=this.trieCurrent&yo.VALUE_LENGTH;if(t){const n=(t>>14)-1;if(this.allowLegacyEntity()||e===Kl.Semi){const e=this.index-this.entityExcess+1;e>this.sectionStart&&this.emitPartial(this.sectionStart,e),this.entityResult=this.trieIndex,this.trieIndex+=n,this.entityExcess=0,this.sectionStart=this.index+1,0===n&&this.emitNamedEntity()}else this.trieIndex+=n}}emitNamedEntity(){if(this.state=this.baseState,0===this.entityResult)return;switch((this.entityTrie[this.entityResult]&yo.VALUE_LENGTH)>>14){case 1:this.emitCodePoint(this.entityTrie[this.entityResult]&~yo.VALUE_LENGTH);break;case 2:this.emitCodePoint(this.entityTrie[this.entityResult+1]);break;case 3:this.emitCodePoint(this.entityTrie[this.entityResult+1]),this.emitCodePoint(this.entityTrie[this.entityResult+2])}}stateBeforeNumericEntity(e){(32|e)===Kl.LowerX?(this.entityExcess++,this.state=jl.InHexEntity):(this.state=jl.InNumericEntity,this.stateInNumericEntity(e))}emitNumericEntity(e){const t=this.index-this.entityExcess-1;t+2+Number(this.state===jl.InHexEntity)!==this.index&&(t>this.sectionStart&&this.emitPartial(this.sectionStart,t),this.sectionStart=this.index+Number(e),this.emitCodePoint(ko(this.entityResult))),this.state=this.baseState}stateInNumericEntity(e){e===Kl.Semi?this.emitNumericEntity(!0):$l(e)?(this.entityResult=10*this.entityResult+(e-Kl.Zero),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)}stateInHexEntity(e){e===Kl.Semi?this.emitNumericEntity(!0):$l(e)?(this.entityResult=16*this.entityResult+(e-Kl.Zero),this.entityExcess++):!function(e){return e>=Kl.UpperA&&e<=Kl.UpperF||e>=Kl.LowerA&&e<=Kl.LowerF}(e)?(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--):(this.entityResult=16*this.entityResult+((32|e)-Kl.LowerA+10),this.entityExcess++)}allowLegacyEntity(){return!this.xmlMode&&(this.baseState===jl.Text||this.baseState===jl.InSpecialTag)}cleanup(){this.running&&this.sectionStart!==this.index&&(this.state===jl.Text||this.state===jl.InSpecialTag&&0===this.sequenceIndex?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):this.state!==jl.InAttributeValueDq&&this.state!==jl.InAttributeValueSq&&this.state!==jl.InAttributeValueNq||(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))}shouldContinue(){return this.index0&&s.has(this.stack[this.stack.length-1]);){const e=this.stack.pop();null===(n=(t=this.cbs).onclosetag)||void 0===n||n.call(t,e,!0)}this.isVoidElement(e)||(this.stack.push(e),ah.has(e)?this.foreignContext.push(!0):oh.has(e)&&this.foreignContext.push(!1)),null===(i=(r=this.cbs).onopentagname)||void 0===i||i.call(r,e),this.cbs.onopentag&&(this.attribs={})}endOpenTag(e){var t,n;this.startIndex=this.openTagStart,this.attribs&&(null===(n=(t=this.cbs).onopentag)||void 0===n||n.call(t,this.tagname,this.attribs,e),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""}onopentagend(e){this.endIndex=e,this.endOpenTag(!1),this.startIndex=e+1}onclosetag(e,t){var n,r,i,s,a,o;this.endIndex=t;let c=this.getSlice(e,t);if(this.lowerCaseTagNames&&(c=c.toLowerCase()),(ah.has(c)||oh.has(c))&&this.foreignContext.pop(),this.isVoidElement(c))this.options.xmlMode||"br"!==c||(null===(r=(n=this.cbs).onopentagname)||void 0===r||r.call(n,"br"),null===(s=(i=this.cbs).onopentag)||void 0===s||s.call(i,"br",{},!0),null===(o=(a=this.cbs).onclosetag)||void 0===o||o.call(a,"br",!1));else{const e=this.stack.lastIndexOf(c);if(-1!==e)if(this.cbs.onclosetag){let t=this.stack.length-e;for(;t--;)this.cbs.onclosetag(this.stack.pop(),0!==t)}else this.stack.length=e;else this.options.xmlMode||"p"!==c||(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=t+1}onselfclosingtag(e){this.endIndex=e,this.options.xmlMode||this.options.recognizeSelfClosing||this.foreignContext[this.foreignContext.length-1]?(this.closeCurrentTag(!1),this.startIndex=e+1):this.onopentagend(e)}closeCurrentTag(e){var t,n;const r=this.tagname;this.endOpenTag(e),this.stack[this.stack.length-1]===r&&(null===(n=(t=this.cbs).onclosetag)||void 0===n||n.call(t,r,!e),this.stack.pop())}onattribname(e,t){this.startIndex=e;const n=this.getSlice(e,t);this.attribname=this.lowerCaseAttributeNames?n.toLowerCase():n}onattribdata(e,t){this.attribvalue+=this.getSlice(e,t)}onattribentity(e){this.attribvalue+=Lo(e)}onattribend(e,t){var n,r;this.endIndex=t,null===(r=(n=this.cbs).onattribute)||void 0===r||r.call(n,this.attribname,this.attribvalue,e===Vl.Double?'"':e===Vl.Single?"'":e===Vl.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""}getInstructionName(e){const t=e.search(ch);let n=t<0?e:e.substr(0,t);return this.lowerCaseTagNames&&(n=n.toLowerCase()),n}ondeclaration(e,t){this.endIndex=t;const n=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){const e=this.getInstructionName(n);this.cbs.onprocessinginstruction(`!${e}`,`!${n}`)}this.startIndex=t+1}onprocessinginstruction(e,t){this.endIndex=t;const n=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){const e=this.getInstructionName(n);this.cbs.onprocessinginstruction(`?${e}`,`?${n}`)}this.startIndex=t+1}oncomment(e,t,n){var r,i,s,a;this.endIndex=t,null===(i=(r=this.cbs).oncomment)||void 0===i||i.call(r,this.getSlice(e,t-n)),null===(a=(s=this.cbs).oncommentend)||void 0===a||a.call(s),this.startIndex=t+1}oncdata(e,t,n){var r,i,s,a,o,c,l,h,u,p;this.endIndex=t;const f=this.getSlice(e,t-n);this.options.xmlMode||this.options.recognizeCDATA?(null===(i=(r=this.cbs).oncdatastart)||void 0===i||i.call(r),null===(a=(s=this.cbs).ontext)||void 0===a||a.call(s,f),null===(c=(o=this.cbs).oncdataend)||void 0===c||c.call(o)):(null===(h=(l=this.cbs).oncomment)||void 0===h||h.call(l,`[CDATA[${f}]]`),null===(p=(u=this.cbs).oncommentend)||void 0===p||p.call(u)),this.startIndex=t+1}onend(){var e,t;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(let e=this.stack.length;e>0;this.cbs.onclosetag(this.stack[--e],!0));}null===(t=(e=this.cbs).onend)||void 0===t||t.call(e)}reset(){var e,t,n,r;null===(t=(e=this.cbs).onreset)||void 0===t||t.call(e),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,null===(r=(n=this.cbs).onparserinit)||void 0===r||r.call(n,this),this.buffers.length=0,this.bufferOffset=0,this.writeIndex=0,this.ended=!1}parseComplete(e){this.reset(),this.end(e)}getSlice(e,t){for(;e-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();let n=this.buffers[0].slice(e-this.bufferOffset,t-this.bufferOffset);for(;t-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),n+=this.buffers[0].slice(0,t-this.bufferOffset);return n}shiftBuffer(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()}write(e){var t,n;this.ended?null===(n=(t=this.cbs).onerror)||void 0===n||n.call(t,new Error(".write() after done!")):(this.buffers.push(e),this.tokenizer.running&&(this.tokenizer.write(e),this.writeIndex++))}end(e){var t,n;this.ended?null===(n=(t=this.cbs).onerror)||void 0===n||n.call(t,Error(".end() after done!")):(e&&this.write(e),this.ended=!0,this.tokenizer.end())}pause(){this.tokenizer.pause()}resume(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndex>> 2] >>> (24 - (i % 4) * 8)) & 0xff; - thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8); - } - } else { - // Copy one word at a time - for (var j = 0; j < thatSigBytes; j += 4) { - thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2]; - } - } - this.sigBytes += thatSigBytes; - - // Chainable - return this; - }, - - /** - * Removes insignificant bits. - * - * @example - * - * wordArray.clamp(); - */ - clamp: function () { - // Shortcuts - var words = this.words; - var sigBytes = this.sigBytes; - - // Clamp - words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8); - words.length = Math.ceil(sigBytes / 4); - }, - - /** - * Creates a copy of this word array. - * - * @return {WordArray} The clone. - * - * @example - * - * var clone = wordArray.clone(); - */ - clone: function () { - var clone = Base.clone.call(this); - clone.words = this.words.slice(0); - - return clone; - }, - - /** - * Creates a word array filled with random bytes. - * - * @param {number} nBytes The number of random bytes to generate. - * - * @return {WordArray} The random word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.lib.WordArray.random(16); - */ - random: function (nBytes) { - var words = []; - - for (var i = 0; i < nBytes; i += 4) { - words.push(cryptoSecureRandomInt()); - } - - return new WordArray.init(words, nBytes); - } - }); - - /** - * Encoder namespace. - */ - var C_enc = C.enc = {}; - - /** - * Hex encoding strategy. - */ - var Hex = C_enc.Hex = { - /** - * Converts a word array to a hex string. - * - * @param {WordArray} wordArray The word array. - * - * @return {string} The hex string. - * - * @static - * - * @example - * - * var hexString = CryptoJS.enc.Hex.stringify(wordArray); - */ - stringify: function (wordArray) { - // Shortcuts - var words = wordArray.words; - var sigBytes = wordArray.sigBytes; - - // Convert - var hexChars = []; - for (var i = 0; i < sigBytes; i++) { - var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; - hexChars.push((bite >>> 4).toString(16)); - hexChars.push((bite & 0x0f).toString(16)); - } - - return hexChars.join(''); - }, - - /** - * Converts a hex string to a word array. - * - * @param {string} hexStr The hex string. - * - * @return {WordArray} The word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.enc.Hex.parse(hexString); - */ - parse: function (hexStr) { - // Shortcut - var hexStrLength = hexStr.length; - - // Convert - var words = []; - for (var i = 0; i < hexStrLength; i += 2) { - words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4); - } - - return new WordArray.init(words, hexStrLength / 2); - } - }; - - /** - * Latin1 encoding strategy. - */ - var Latin1 = C_enc.Latin1 = { - /** - * Converts a word array to a Latin1 string. - * - * @param {WordArray} wordArray The word array. - * - * @return {string} The Latin1 string. - * - * @static - * - * @example - * - * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray); - */ - stringify: function (wordArray) { - // Shortcuts - var words = wordArray.words; - var sigBytes = wordArray.sigBytes; - - // Convert - var latin1Chars = []; - for (var i = 0; i < sigBytes; i++) { - var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; - latin1Chars.push(String.fromCharCode(bite)); - } - - return latin1Chars.join(''); - }, - - /** - * Converts a Latin1 string to a word array. - * - * @param {string} latin1Str The Latin1 string. - * - * @return {WordArray} The word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.enc.Latin1.parse(latin1String); - */ - parse: function (latin1Str) { - // Shortcut - var latin1StrLength = latin1Str.length; - - // Convert - var words = []; - for (var i = 0; i < latin1StrLength; i++) { - words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8); - } - - return new WordArray.init(words, latin1StrLength); - } - }; - - /** - * UTF-8 encoding strategy. - */ - var Utf8 = C_enc.Utf8 = { - /** - * Converts a word array to a UTF-8 string. - * - * @param {WordArray} wordArray The word array. - * - * @return {string} The UTF-8 string. - * - * @static - * - * @example - * - * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray); - */ - stringify: function (wordArray) { - try { - return decodeURIComponent(escape(Latin1.stringify(wordArray))); - } catch (e) { - throw new Error('Malformed UTF-8 data'); - } - }, - - /** - * Converts a UTF-8 string to a word array. - * - * @param {string} utf8Str The UTF-8 string. - * - * @return {WordArray} The word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.enc.Utf8.parse(utf8String); - */ - parse: function (utf8Str) { - return Latin1.parse(unescape(encodeURIComponent(utf8Str))); - } - }; - - /** - * Abstract buffered block algorithm template. - * - * The property blockSize must be implemented in a concrete subtype. - * - * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0 - */ - var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({ - /** - * Resets this block algorithm's data buffer to its initial state. - * - * @example - * - * bufferedBlockAlgorithm.reset(); - */ - reset: function () { - // Initial values - this._data = new WordArray.init(); - this._nDataBytes = 0; - }, - - /** - * Adds new data to this block algorithm's buffer. - * - * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8. - * - * @example - * - * bufferedBlockAlgorithm._append('data'); - * bufferedBlockAlgorithm._append(wordArray); - */ - _append: function (data) { - // Convert string to WordArray, else assume WordArray already - if (typeof data == 'string') { - data = Utf8.parse(data); - } - - // Append - this._data.concat(data); - this._nDataBytes += data.sigBytes; - }, - - /** - * Processes available data blocks. - * - * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype. - * - * @param {boolean} doFlush Whether all blocks and partial blocks should be processed. - * - * @return {WordArray} The processed data. - * - * @example - * - * var processedData = bufferedBlockAlgorithm._process(); - * var processedData = bufferedBlockAlgorithm._process(!!'flush'); - */ - _process: function (doFlush) { - var processedWords; - - // Shortcuts - var data = this._data; - var dataWords = data.words; - var dataSigBytes = data.sigBytes; - var blockSize = this.blockSize; - var blockSizeBytes = blockSize * 4; - - // Count blocks ready - var nBlocksReady = dataSigBytes / blockSizeBytes; - if (doFlush) { - // Round up to include partial blocks - nBlocksReady = Math.ceil(nBlocksReady); - } else { - // Round down to include only full blocks, - // less the number of blocks that must remain in the buffer - nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0); - } - - // Count words ready - var nWordsReady = nBlocksReady * blockSize; - - // Count bytes ready - var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes); - - // Process blocks - if (nWordsReady) { - for (var offset = 0; offset < nWordsReady; offset += blockSize) { - // Perform concrete-algorithm logic - this._doProcessBlock(dataWords, offset); - } - - // Remove processed words - processedWords = dataWords.splice(0, nWordsReady); - data.sigBytes -= nBytesReady; - } - - // Return processed words - return new WordArray.init(processedWords, nBytesReady); - }, - - /** - * Creates a copy of this object. - * - * @return {Object} The clone. - * - * @example - * - * var clone = bufferedBlockAlgorithm.clone(); - */ - clone: function () { - var clone = Base.clone.call(this); - clone._data = this._data.clone(); - - return clone; - }, - - _minBufferSize: 0 - }); - - /** - * Abstract hasher template. - * - * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits) - */ - var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({ - /** - * Configuration options. - */ - cfg: Base.extend(), - - /** - * Initializes a newly created hasher. - * - * @param {Object} cfg (Optional) The configuration options to use for this hash computation. - * - * @example - * - * var hasher = CryptoJS.algo.SHA256.create(); - */ - init: function (cfg) { - // Apply config defaults - this.cfg = this.cfg.extend(cfg); - - // Set initial values - this.reset(); - }, - - /** - * Resets this hasher to its initial state. - * - * @example - * - * hasher.reset(); - */ - reset: function () { - // Reset data buffer - BufferedBlockAlgorithm.reset.call(this); - - // Perform concrete-hasher logic - this._doReset(); - }, - - /** - * Updates this hasher with a message. - * - * @param {WordArray|string} messageUpdate The message to append. - * - * @return {Hasher} This hasher. - * - * @example - * - * hasher.update('message'); - * hasher.update(wordArray); - */ - update: function (messageUpdate) { - // Append - this._append(messageUpdate); - - // Update the hash - this._process(); - - // Chainable - return this; - }, - - /** - * Finalizes the hash computation. - * Note that the finalize operation is effectively a destructive, read-once operation. - * - * @param {WordArray|string} messageUpdate (Optional) A final message update. - * - * @return {WordArray} The hash. - * - * @example - * - * var hash = hasher.finalize(); - * var hash = hasher.finalize('message'); - * var hash = hasher.finalize(wordArray); - */ - finalize: function (messageUpdate) { - // Final message update - if (messageUpdate) { - this._append(messageUpdate); - } - - // Perform concrete-hasher logic - var hash = this._doFinalize(); - - return hash; - }, - - blockSize: 512/32, - - /** - * Creates a shortcut function to a hasher's object interface. - * - * @param {Hasher} hasher The hasher to create a helper for. - * - * @return {Function} The shortcut function. - * - * @static - * - * @example - * - * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256); - */ - _createHelper: function (hasher) { - return function (message, cfg) { - return new hasher.init(cfg).finalize(message); - }; - }, - - /** - * Creates a shortcut function to the HMAC's object interface. - * - * @param {Hasher} hasher The hasher to use in this HMAC helper. - * - * @return {Function} The shortcut function. - * - * @static - * - * @example - * - * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256); - */ - _createHmacHelper: function (hasher) { - return function (message, key) { - return new C_algo.HMAC.init(hasher, key).finalize(message); - }; - } - }); - - /** - * Algorithm namespace. - */ - var C_algo = C.algo = {}; - - return C; - }(Math)); - - - (function (undefined) { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var Base = C_lib.Base; - var X32WordArray = C_lib.WordArray; - - /** - * x64 namespace. - */ - var C_x64 = C.x64 = {}; - - /** - * A 64-bit word. - */ - var X64Word = C_x64.Word = Base.extend({ - /** - * Initializes a newly created 64-bit word. - * - * @param {number} high The high 32 bits. - * @param {number} low The low 32 bits. - * - * @example - * - * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607); - */ - init: function (high, low) { - this.high = high; - this.low = low; - } - - /** - * Bitwise NOTs this word. - * - * @return {X64Word} A new x64-Word object after negating. - * - * @example - * - * var negated = x64Word.not(); - */ - // not: function () { - // var high = ~this.high; - // var low = ~this.low; - - // return X64Word.create(high, low); - // }, - - /** - * Bitwise ANDs this word with the passed word. - * - * @param {X64Word} word The x64-Word to AND with this word. - * - * @return {X64Word} A new x64-Word object after ANDing. - * - * @example - * - * var anded = x64Word.and(anotherX64Word); - */ - // and: function (word) { - // var high = this.high & word.high; - // var low = this.low & word.low; - - // return X64Word.create(high, low); - // }, - - /** - * Bitwise ORs this word with the passed word. - * - * @param {X64Word} word The x64-Word to OR with this word. - * - * @return {X64Word} A new x64-Word object after ORing. - * - * @example - * - * var ored = x64Word.or(anotherX64Word); - */ - // or: function (word) { - // var high = this.high | word.high; - // var low = this.low | word.low; - - // return X64Word.create(high, low); - // }, - - /** - * Bitwise XORs this word with the passed word. - * - * @param {X64Word} word The x64-Word to XOR with this word. - * - * @return {X64Word} A new x64-Word object after XORing. - * - * @example - * - * var xored = x64Word.xor(anotherX64Word); - */ - // xor: function (word) { - // var high = this.high ^ word.high; - // var low = this.low ^ word.low; - - // return X64Word.create(high, low); - // }, - - /** - * Shifts this word n bits to the left. - * - * @param {number} n The number of bits to shift. - * - * @return {X64Word} A new x64-Word object after shifting. - * - * @example - * - * var shifted = x64Word.shiftL(25); - */ - // shiftL: function (n) { - // if (n < 32) { - // var high = (this.high << n) | (this.low >>> (32 - n)); - // var low = this.low << n; - // } else { - // var high = this.low << (n - 32); - // var low = 0; - // } - - // return X64Word.create(high, low); - // }, - - /** - * Shifts this word n bits to the right. - * - * @param {number} n The number of bits to shift. - * - * @return {X64Word} A new x64-Word object after shifting. - * - * @example - * - * var shifted = x64Word.shiftR(7); - */ - // shiftR: function (n) { - // if (n < 32) { - // var low = (this.low >>> n) | (this.high << (32 - n)); - // var high = this.high >>> n; - // } else { - // var low = this.high >>> (n - 32); - // var high = 0; - // } - - // return X64Word.create(high, low); - // }, - - /** - * Rotates this word n bits to the left. - * - * @param {number} n The number of bits to rotate. - * - * @return {X64Word} A new x64-Word object after rotating. - * - * @example - * - * var rotated = x64Word.rotL(25); - */ - // rotL: function (n) { - // return this.shiftL(n).or(this.shiftR(64 - n)); - // }, - - /** - * Rotates this word n bits to the right. - * - * @param {number} n The number of bits to rotate. - * - * @return {X64Word} A new x64-Word object after rotating. - * - * @example - * - * var rotated = x64Word.rotR(7); - */ - // rotR: function (n) { - // return this.shiftR(n).or(this.shiftL(64 - n)); - // }, - - /** - * Adds this word with the passed word. - * - * @param {X64Word} word The x64-Word to add with this word. - * - * @return {X64Word} A new x64-Word object after adding. - * - * @example - * - * var added = x64Word.add(anotherX64Word); - */ - // add: function (word) { - // var low = (this.low + word.low) | 0; - // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0; - // var high = (this.high + word.high + carry) | 0; - - // return X64Word.create(high, low); - // } - }); - - /** - * An array of 64-bit words. - * - * @property {Array} words The array of CryptoJS.x64.Word objects. - * @property {number} sigBytes The number of significant bytes in this word array. - */ - var X64WordArray = C_x64.WordArray = Base.extend({ - /** - * Initializes a newly created word array. - * - * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects. - * @param {number} sigBytes (Optional) The number of significant bytes in the words. - * - * @example - * - * var wordArray = CryptoJS.x64.WordArray.create(); - * - * var wordArray = CryptoJS.x64.WordArray.create([ - * CryptoJS.x64.Word.create(0x00010203, 0x04050607), - * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f) - * ]); - * - * var wordArray = CryptoJS.x64.WordArray.create([ - * CryptoJS.x64.Word.create(0x00010203, 0x04050607), - * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f) - * ], 10); - */ - init: function (words, sigBytes) { - words = this.words = words || []; - - if (sigBytes != undefined) { - this.sigBytes = sigBytes; - } else { - this.sigBytes = words.length * 8; - } - }, - - /** - * Converts this 64-bit word array to a 32-bit word array. - * - * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array. - * - * @example - * - * var x32WordArray = x64WordArray.toX32(); - */ - toX32: function () { - // Shortcuts - var x64Words = this.words; - var x64WordsLength = x64Words.length; - - // Convert - var x32Words = []; - for (var i = 0; i < x64WordsLength; i++) { - var x64Word = x64Words[i]; - x32Words.push(x64Word.high); - x32Words.push(x64Word.low); - } - - return X32WordArray.create(x32Words, this.sigBytes); - }, - - /** - * Creates a copy of this word array. - * - * @return {X64WordArray} The clone. - * - * @example - * - * var clone = x64WordArray.clone(); - */ - clone: function () { - var clone = Base.clone.call(this); - - // Clone "words" array - var words = clone.words = this.words.slice(0); - - // Clone each X64Word object - var wordsLength = words.length; - for (var i = 0; i < wordsLength; i++) { - words[i] = words[i].clone(); - } - - return clone; - } - }); - }()); - - - (function () { - // Check if typed arrays are supported - if (typeof ArrayBuffer != 'function') { - return; - } - - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - - // Reference original init - var superInit = WordArray.init; - - // Augment WordArray.init to handle typed arrays - var subInit = WordArray.init = function (typedArray) { - // Convert buffers to uint8 - if (typedArray instanceof ArrayBuffer) { - typedArray = new Uint8Array(typedArray); - } - - // Convert other array views to uint8 - if ( - typedArray instanceof Int8Array || - (typeof Uint8ClampedArray !== "undefined" && typedArray instanceof Uint8ClampedArray) || - typedArray instanceof Int16Array || - typedArray instanceof Uint16Array || - typedArray instanceof Int32Array || - typedArray instanceof Uint32Array || - typedArray instanceof Float32Array || - typedArray instanceof Float64Array - ) { - typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength); - } - - // Handle Uint8Array - if (typedArray instanceof Uint8Array) { - // Shortcut - var typedArrayByteLength = typedArray.byteLength; - - // Extract bytes - var words = []; - for (var i = 0; i < typedArrayByteLength; i++) { - words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8); - } - - // Initialize this word array - superInit.call(this, words, typedArrayByteLength); - } else { - // Else call normal init - superInit.apply(this, arguments); - } - }; - - subInit.prototype = WordArray; - }()); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var C_enc = C.enc; - - /** - * UTF-16 BE encoding strategy. - */ - var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = { - /** - * Converts a word array to a UTF-16 BE string. - * - * @param {WordArray} wordArray The word array. - * - * @return {string} The UTF-16 BE string. - * - * @static - * - * @example - * - * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray); - */ - stringify: function (wordArray) { - // Shortcuts - var words = wordArray.words; - var sigBytes = wordArray.sigBytes; - - // Convert - var utf16Chars = []; - for (var i = 0; i < sigBytes; i += 2) { - var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff; - utf16Chars.push(String.fromCharCode(codePoint)); - } - - return utf16Chars.join(''); - }, - - /** - * Converts a UTF-16 BE string to a word array. - * - * @param {string} utf16Str The UTF-16 BE string. - * - * @return {WordArray} The word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.enc.Utf16.parse(utf16String); - */ - parse: function (utf16Str) { - // Shortcut - var utf16StrLength = utf16Str.length; - - // Convert - var words = []; - for (var i = 0; i < utf16StrLength; i++) { - words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16); - } - - return WordArray.create(words, utf16StrLength * 2); - } - }; - - /** - * UTF-16 LE encoding strategy. - */ - C_enc.Utf16LE = { - /** - * Converts a word array to a UTF-16 LE string. - * - * @param {WordArray} wordArray The word array. - * - * @return {string} The UTF-16 LE string. - * - * @static - * - * @example - * - * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray); - */ - stringify: function (wordArray) { - // Shortcuts - var words = wordArray.words; - var sigBytes = wordArray.sigBytes; - - // Convert - var utf16Chars = []; - for (var i = 0; i < sigBytes; i += 2) { - var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff); - utf16Chars.push(String.fromCharCode(codePoint)); - } - - return utf16Chars.join(''); - }, - - /** - * Converts a UTF-16 LE string to a word array. - * - * @param {string} utf16Str The UTF-16 LE string. - * - * @return {WordArray} The word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str); - */ - parse: function (utf16Str) { - // Shortcut - var utf16StrLength = utf16Str.length; - - // Convert - var words = []; - for (var i = 0; i < utf16StrLength; i++) { - words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16)); - } - - return WordArray.create(words, utf16StrLength * 2); - } - }; - - function swapEndian(word) { - return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff); - } - }()); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var C_enc = C.enc; - - /** - * Base64 encoding strategy. - */ - var Base64 = C_enc.Base64 = { - /** - * Converts a word array to a Base64 string. - * - * @param {WordArray} wordArray The word array. - * - * @return {string} The Base64 string. - * - * @static - * - * @example - * - * var base64String = CryptoJS.enc.Base64.stringify(wordArray); - */ - stringify: function (wordArray) { - // Shortcuts - var words = wordArray.words; - var sigBytes = wordArray.sigBytes; - var map = this._map; - - // Clamp excess bits - wordArray.clamp(); - - // Convert - var base64Chars = []; - for (var i = 0; i < sigBytes; i += 3) { - var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; - var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff; - var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff; - - var triplet = (byte1 << 16) | (byte2 << 8) | byte3; - - for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) { - base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f)); - } - } - - // Add padding - var paddingChar = map.charAt(64); - if (paddingChar) { - while (base64Chars.length % 4) { - base64Chars.push(paddingChar); - } - } - - return base64Chars.join(''); - }, - - /** - * Converts a Base64 string to a word array. - * - * @param {string} base64Str The Base64 string. - * - * @return {WordArray} The word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.enc.Base64.parse(base64String); - */ - parse: function (base64Str) { - // Shortcuts - var base64StrLength = base64Str.length; - var map = this._map; - var reverseMap = this._reverseMap; - - if (!reverseMap) { - reverseMap = this._reverseMap = []; - for (var j = 0; j < map.length; j++) { - reverseMap[map.charCodeAt(j)] = j; - } - } - - // Ignore padding - var paddingChar = map.charAt(64); - if (paddingChar) { - var paddingIndex = base64Str.indexOf(paddingChar); - if (paddingIndex !== -1) { - base64StrLength = paddingIndex; - } - } - - // Convert - return parseLoop(base64Str, base64StrLength, reverseMap); - - }, - - _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' - }; - - function parseLoop(base64Str, base64StrLength, reverseMap) { - var words = []; - var nBytes = 0; - for (var i = 0; i < base64StrLength; i++) { - if (i % 4) { - var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2); - var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2); - var bitsCombined = bits1 | bits2; - words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8); - nBytes++; - } - } - return WordArray.create(words, nBytes); - } - }()); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var C_enc = C.enc; - - /** - * Base64url encoding strategy. - */ - var Base64url = C_enc.Base64url = { - /** - * Converts a word array to a Base64url string. - * - * @param {WordArray} wordArray The word array. - * - * @param {boolean} urlSafe Whether to use url safe - * - * @return {string} The Base64url string. - * - * @static - * - * @example - * - * var base64String = CryptoJS.enc.Base64url.stringify(wordArray); - */ - stringify: function (wordArray, urlSafe=true) { - // Shortcuts - var words = wordArray.words; - var sigBytes = wordArray.sigBytes; - var map = urlSafe ? this._safe_map : this._map; - - // Clamp excess bits - wordArray.clamp(); - - // Convert - var base64Chars = []; - for (var i = 0; i < sigBytes; i += 3) { - var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; - var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff; - var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff; - - var triplet = (byte1 << 16) | (byte2 << 8) | byte3; - - for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) { - base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f)); - } - } - - // Add padding - var paddingChar = map.charAt(64); - if (paddingChar) { - while (base64Chars.length % 4) { - base64Chars.push(paddingChar); - } - } - - return base64Chars.join(''); - }, - - /** - * Converts a Base64url string to a word array. - * - * @param {string} base64Str The Base64url string. - * - * @param {boolean} urlSafe Whether to use url safe - * - * @return {WordArray} The word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.enc.Base64url.parse(base64String); - */ - parse: function (base64Str, urlSafe=true) { - // Shortcuts - var base64StrLength = base64Str.length; - var map = urlSafe ? this._safe_map : this._map; - var reverseMap = this._reverseMap; - - if (!reverseMap) { - reverseMap = this._reverseMap = []; - for (var j = 0; j < map.length; j++) { - reverseMap[map.charCodeAt(j)] = j; - } - } - - // Ignore padding - var paddingChar = map.charAt(64); - if (paddingChar) { - var paddingIndex = base64Str.indexOf(paddingChar); - if (paddingIndex !== -1) { - base64StrLength = paddingIndex; - } - } - - // Convert - return parseLoop(base64Str, base64StrLength, reverseMap); - - }, - - _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=', - _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_', - }; - - function parseLoop(base64Str, base64StrLength, reverseMap) { - var words = []; - var nBytes = 0; - for (var i = 0; i < base64StrLength; i++) { - if (i % 4) { - var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2); - var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2); - var bitsCombined = bits1 | bits2; - words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8); - nBytes++; - } - } - return WordArray.create(words, nBytes); - } - }()); - - (function (Math) { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var Hasher = C_lib.Hasher; - var C_algo = C.algo; - - // Constants table - var T = []; - - // Compute constants - (function () { - for (var i = 0; i < 64; i++) { - T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0; - } - }()); - - /** - * MD5 hash algorithm. - */ - var MD5 = C_algo.MD5 = Hasher.extend({ - _doReset: function () { - this._hash = new WordArray.init([ - 0x67452301, 0xefcdab89, - 0x98badcfe, 0x10325476 - ]); - }, - - _doProcessBlock: function (M, offset) { - // Swap endian - for (var i = 0; i < 16; i++) { - // Shortcuts - var offset_i = offset + i; - var M_offset_i = M[offset_i]; - - M[offset_i] = ( - (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) | - (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00) - ); - } - - // Shortcuts - var H = this._hash.words; - - var M_offset_0 = M[offset + 0]; - var M_offset_1 = M[offset + 1]; - var M_offset_2 = M[offset + 2]; - var M_offset_3 = M[offset + 3]; - var M_offset_4 = M[offset + 4]; - var M_offset_5 = M[offset + 5]; - var M_offset_6 = M[offset + 6]; - var M_offset_7 = M[offset + 7]; - var M_offset_8 = M[offset + 8]; - var M_offset_9 = M[offset + 9]; - var M_offset_10 = M[offset + 10]; - var M_offset_11 = M[offset + 11]; - var M_offset_12 = M[offset + 12]; - var M_offset_13 = M[offset + 13]; - var M_offset_14 = M[offset + 14]; - var M_offset_15 = M[offset + 15]; - - // Working varialbes - var a = H[0]; - var b = H[1]; - var c = H[2]; - var d = H[3]; - - // Computation - a = FF(a, b, c, d, M_offset_0, 7, T[0]); - d = FF(d, a, b, c, M_offset_1, 12, T[1]); - c = FF(c, d, a, b, M_offset_2, 17, T[2]); - b = FF(b, c, d, a, M_offset_3, 22, T[3]); - a = FF(a, b, c, d, M_offset_4, 7, T[4]); - d = FF(d, a, b, c, M_offset_5, 12, T[5]); - c = FF(c, d, a, b, M_offset_6, 17, T[6]); - b = FF(b, c, d, a, M_offset_7, 22, T[7]); - a = FF(a, b, c, d, M_offset_8, 7, T[8]); - d = FF(d, a, b, c, M_offset_9, 12, T[9]); - c = FF(c, d, a, b, M_offset_10, 17, T[10]); - b = FF(b, c, d, a, M_offset_11, 22, T[11]); - a = FF(a, b, c, d, M_offset_12, 7, T[12]); - d = FF(d, a, b, c, M_offset_13, 12, T[13]); - c = FF(c, d, a, b, M_offset_14, 17, T[14]); - b = FF(b, c, d, a, M_offset_15, 22, T[15]); - - a = GG(a, b, c, d, M_offset_1, 5, T[16]); - d = GG(d, a, b, c, M_offset_6, 9, T[17]); - c = GG(c, d, a, b, M_offset_11, 14, T[18]); - b = GG(b, c, d, a, M_offset_0, 20, T[19]); - a = GG(a, b, c, d, M_offset_5, 5, T[20]); - d = GG(d, a, b, c, M_offset_10, 9, T[21]); - c = GG(c, d, a, b, M_offset_15, 14, T[22]); - b = GG(b, c, d, a, M_offset_4, 20, T[23]); - a = GG(a, b, c, d, M_offset_9, 5, T[24]); - d = GG(d, a, b, c, M_offset_14, 9, T[25]); - c = GG(c, d, a, b, M_offset_3, 14, T[26]); - b = GG(b, c, d, a, M_offset_8, 20, T[27]); - a = GG(a, b, c, d, M_offset_13, 5, T[28]); - d = GG(d, a, b, c, M_offset_2, 9, T[29]); - c = GG(c, d, a, b, M_offset_7, 14, T[30]); - b = GG(b, c, d, a, M_offset_12, 20, T[31]); - - a = HH(a, b, c, d, M_offset_5, 4, T[32]); - d = HH(d, a, b, c, M_offset_8, 11, T[33]); - c = HH(c, d, a, b, M_offset_11, 16, T[34]); - b = HH(b, c, d, a, M_offset_14, 23, T[35]); - a = HH(a, b, c, d, M_offset_1, 4, T[36]); - d = HH(d, a, b, c, M_offset_4, 11, T[37]); - c = HH(c, d, a, b, M_offset_7, 16, T[38]); - b = HH(b, c, d, a, M_offset_10, 23, T[39]); - a = HH(a, b, c, d, M_offset_13, 4, T[40]); - d = HH(d, a, b, c, M_offset_0, 11, T[41]); - c = HH(c, d, a, b, M_offset_3, 16, T[42]); - b = HH(b, c, d, a, M_offset_6, 23, T[43]); - a = HH(a, b, c, d, M_offset_9, 4, T[44]); - d = HH(d, a, b, c, M_offset_12, 11, T[45]); - c = HH(c, d, a, b, M_offset_15, 16, T[46]); - b = HH(b, c, d, a, M_offset_2, 23, T[47]); - - a = II(a, b, c, d, M_offset_0, 6, T[48]); - d = II(d, a, b, c, M_offset_7, 10, T[49]); - c = II(c, d, a, b, M_offset_14, 15, T[50]); - b = II(b, c, d, a, M_offset_5, 21, T[51]); - a = II(a, b, c, d, M_offset_12, 6, T[52]); - d = II(d, a, b, c, M_offset_3, 10, T[53]); - c = II(c, d, a, b, M_offset_10, 15, T[54]); - b = II(b, c, d, a, M_offset_1, 21, T[55]); - a = II(a, b, c, d, M_offset_8, 6, T[56]); - d = II(d, a, b, c, M_offset_15, 10, T[57]); - c = II(c, d, a, b, M_offset_6, 15, T[58]); - b = II(b, c, d, a, M_offset_13, 21, T[59]); - a = II(a, b, c, d, M_offset_4, 6, T[60]); - d = II(d, a, b, c, M_offset_11, 10, T[61]); - c = II(c, d, a, b, M_offset_2, 15, T[62]); - b = II(b, c, d, a, M_offset_9, 21, T[63]); - - // Intermediate hash value - H[0] = (H[0] + a) | 0; - H[1] = (H[1] + b) | 0; - H[2] = (H[2] + c) | 0; - H[3] = (H[3] + d) | 0; - }, - - _doFinalize: function () { - // Shortcuts - var data = this._data; - var dataWords = data.words; - - var nBitsTotal = this._nDataBytes * 8; - var nBitsLeft = data.sigBytes * 8; - - // Add padding - dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); - - var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000); - var nBitsTotalL = nBitsTotal; - dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = ( - (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) | - (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00) - ); - dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = ( - (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) | - (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00) - ); - - data.sigBytes = (dataWords.length + 1) * 4; - - // Hash final blocks - this._process(); - - // Shortcuts - var hash = this._hash; - var H = hash.words; - - // Swap endian - for (var i = 0; i < 4; i++) { - // Shortcut - var H_i = H[i]; - - H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | - (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00); - } - - // Return final computed hash - return hash; - }, - - clone: function () { - var clone = Hasher.clone.call(this); - clone._hash = this._hash.clone(); - - return clone; - } - }); - - function FF(a, b, c, d, x, s, t) { - var n = a + ((b & c) | (~b & d)) + x + t; - return ((n << s) | (n >>> (32 - s))) + b; - } - - function GG(a, b, c, d, x, s, t) { - var n = a + ((b & d) | (c & ~d)) + x + t; - return ((n << s) | (n >>> (32 - s))) + b; - } - - function HH(a, b, c, d, x, s, t) { - var n = a + (b ^ c ^ d) + x + t; - return ((n << s) | (n >>> (32 - s))) + b; - } - - function II(a, b, c, d, x, s, t) { - var n = a + (c ^ (b | ~d)) + x + t; - return ((n << s) | (n >>> (32 - s))) + b; - } - - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.MD5('message'); - * var hash = CryptoJS.MD5(wordArray); - */ - C.MD5 = Hasher._createHelper(MD5); - - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacMD5(message, key); - */ - C.HmacMD5 = Hasher._createHmacHelper(MD5); - }(Math)); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var Hasher = C_lib.Hasher; - var C_algo = C.algo; - - // Reusable object - var W = []; - - /** - * SHA-1 hash algorithm. - */ - var SHA1 = C_algo.SHA1 = Hasher.extend({ - _doReset: function () { - this._hash = new WordArray.init([ - 0x67452301, 0xefcdab89, - 0x98badcfe, 0x10325476, - 0xc3d2e1f0 - ]); - }, - - _doProcessBlock: function (M, offset) { - // Shortcut - var H = this._hash.words; - - // Working variables - var a = H[0]; - var b = H[1]; - var c = H[2]; - var d = H[3]; - var e = H[4]; - - // Computation - for (var i = 0; i < 80; i++) { - if (i < 16) { - W[i] = M[offset + i] | 0; - } else { - var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]; - W[i] = (n << 1) | (n >>> 31); - } - - var t = ((a << 5) | (a >>> 27)) + e + W[i]; - if (i < 20) { - t += ((b & c) | (~b & d)) + 0x5a827999; - } else if (i < 40) { - t += (b ^ c ^ d) + 0x6ed9eba1; - } else if (i < 60) { - t += ((b & c) | (b & d) | (c & d)) - 0x70e44324; - } else /* if (i < 80) */ { - t += (b ^ c ^ d) - 0x359d3e2a; - } - - e = d; - d = c; - c = (b << 30) | (b >>> 2); - b = a; - a = t; - } - - // Intermediate hash value - H[0] = (H[0] + a) | 0; - H[1] = (H[1] + b) | 0; - H[2] = (H[2] + c) | 0; - H[3] = (H[3] + d) | 0; - H[4] = (H[4] + e) | 0; - }, - - _doFinalize: function () { - // Shortcuts - var data = this._data; - var dataWords = data.words; - - var nBitsTotal = this._nDataBytes * 8; - var nBitsLeft = data.sigBytes * 8; - - // Add padding - dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); - dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000); - dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal; - data.sigBytes = dataWords.length * 4; - - // Hash final blocks - this._process(); - - // Return final computed hash - return this._hash; - }, - - clone: function () { - var clone = Hasher.clone.call(this); - clone._hash = this._hash.clone(); - - return clone; - } - }); - - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.SHA1('message'); - * var hash = CryptoJS.SHA1(wordArray); - */ - C.SHA1 = Hasher._createHelper(SHA1); - - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacSHA1(message, key); - */ - C.HmacSHA1 = Hasher._createHmacHelper(SHA1); - }()); - - - (function (Math) { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var Hasher = C_lib.Hasher; - var C_algo = C.algo; - - // Initialization and round constants tables - var H = []; - var K = []; - - // Compute constants - (function () { - function isPrime(n) { - var sqrtN = Math.sqrt(n); - for (var factor = 2; factor <= sqrtN; factor++) { - if (!(n % factor)) { - return false; - } - } - - return true; - } - - function getFractionalBits(n) { - return ((n - (n | 0)) * 0x100000000) | 0; - } - - var n = 2; - var nPrime = 0; - while (nPrime < 64) { - if (isPrime(n)) { - if (nPrime < 8) { - H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2)); - } - K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3)); - - nPrime++; - } - - n++; - } - }()); - - // Reusable object - var W = []; - - /** - * SHA-256 hash algorithm. - */ - var SHA256 = C_algo.SHA256 = Hasher.extend({ - _doReset: function () { - this._hash = new WordArray.init(H.slice(0)); - }, - - _doProcessBlock: function (M, offset) { - // Shortcut - var H = this._hash.words; - - // Working variables - var a = H[0]; - var b = H[1]; - var c = H[2]; - var d = H[3]; - var e = H[4]; - var f = H[5]; - var g = H[6]; - var h = H[7]; - - // Computation - for (var i = 0; i < 64; i++) { - if (i < 16) { - W[i] = M[offset + i] | 0; - } else { - var gamma0x = W[i - 15]; - var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^ - ((gamma0x << 14) | (gamma0x >>> 18)) ^ - (gamma0x >>> 3); - - var gamma1x = W[i - 2]; - var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^ - ((gamma1x << 13) | (gamma1x >>> 19)) ^ - (gamma1x >>> 10); - - W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]; - } - - var ch = (e & f) ^ (~e & g); - var maj = (a & b) ^ (a & c) ^ (b & c); - - var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22)); - var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25)); - - var t1 = h + sigma1 + ch + K[i] + W[i]; - var t2 = sigma0 + maj; - - h = g; - g = f; - f = e; - e = (d + t1) | 0; - d = c; - c = b; - b = a; - a = (t1 + t2) | 0; - } - - // Intermediate hash value - H[0] = (H[0] + a) | 0; - H[1] = (H[1] + b) | 0; - H[2] = (H[2] + c) | 0; - H[3] = (H[3] + d) | 0; - H[4] = (H[4] + e) | 0; - H[5] = (H[5] + f) | 0; - H[6] = (H[6] + g) | 0; - H[7] = (H[7] + h) | 0; - }, - - _doFinalize: function () { - // Shortcuts - var data = this._data; - var dataWords = data.words; - - var nBitsTotal = this._nDataBytes * 8; - var nBitsLeft = data.sigBytes * 8; - - // Add padding - dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); - dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000); - dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal; - data.sigBytes = dataWords.length * 4; - - // Hash final blocks - this._process(); - - // Return final computed hash - return this._hash; - }, - - clone: function () { - var clone = Hasher.clone.call(this); - clone._hash = this._hash.clone(); - - return clone; - } - }); - - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.SHA256('message'); - * var hash = CryptoJS.SHA256(wordArray); - */ - C.SHA256 = Hasher._createHelper(SHA256); - - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacSHA256(message, key); - */ - C.HmacSHA256 = Hasher._createHmacHelper(SHA256); - }(Math)); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var C_algo = C.algo; - var SHA256 = C_algo.SHA256; - - /** - * SHA-224 hash algorithm. - */ - var SHA224 = C_algo.SHA224 = SHA256.extend({ - _doReset: function () { - this._hash = new WordArray.init([ - 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, - 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 - ]); - }, - - _doFinalize: function () { - var hash = SHA256._doFinalize.call(this); - - hash.sigBytes -= 4; - - return hash; - } - }); - - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.SHA224('message'); - * var hash = CryptoJS.SHA224(wordArray); - */ - C.SHA224 = SHA256._createHelper(SHA224); - - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacSHA224(message, key); - */ - C.HmacSHA224 = SHA256._createHmacHelper(SHA224); - }()); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var Hasher = C_lib.Hasher; - var C_x64 = C.x64; - var X64Word = C_x64.Word; - var X64WordArray = C_x64.WordArray; - var C_algo = C.algo; - - function X64Word_create() { - return X64Word.create.apply(X64Word, arguments); - } - - // Constants - var K = [ - X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd), - X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc), - X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019), - X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118), - X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe), - X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2), - X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1), - X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694), - X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3), - X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65), - X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483), - X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5), - X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210), - X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4), - X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725), - X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70), - X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926), - X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df), - X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8), - X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b), - X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001), - X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30), - X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910), - X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8), - X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53), - X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8), - X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb), - X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3), - X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60), - X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec), - X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9), - X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b), - X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207), - X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178), - X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6), - X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b), - X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493), - X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c), - X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a), - X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817) - ]; - - // Reusable objects - var W = []; - (function () { - for (var i = 0; i < 80; i++) { - W[i] = X64Word_create(); - } - }()); - - /** - * SHA-512 hash algorithm. - */ - var SHA512 = C_algo.SHA512 = Hasher.extend({ - _doReset: function () { - this._hash = new X64WordArray.init([ - new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b), - new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1), - new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f), - new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179) - ]); - }, - - _doProcessBlock: function (M, offset) { - // Shortcuts - var H = this._hash.words; - - var H0 = H[0]; - var H1 = H[1]; - var H2 = H[2]; - var H3 = H[3]; - var H4 = H[4]; - var H5 = H[5]; - var H6 = H[6]; - var H7 = H[7]; - - var H0h = H0.high; - var H0l = H0.low; - var H1h = H1.high; - var H1l = H1.low; - var H2h = H2.high; - var H2l = H2.low; - var H3h = H3.high; - var H3l = H3.low; - var H4h = H4.high; - var H4l = H4.low; - var H5h = H5.high; - var H5l = H5.low; - var H6h = H6.high; - var H6l = H6.low; - var H7h = H7.high; - var H7l = H7.low; - - // Working variables - var ah = H0h; - var al = H0l; - var bh = H1h; - var bl = H1l; - var ch = H2h; - var cl = H2l; - var dh = H3h; - var dl = H3l; - var eh = H4h; - var el = H4l; - var fh = H5h; - var fl = H5l; - var gh = H6h; - var gl = H6l; - var hh = H7h; - var hl = H7l; - - // Rounds - for (var i = 0; i < 80; i++) { - var Wil; - var Wih; - - // Shortcut - var Wi = W[i]; - - // Extend message - if (i < 16) { - Wih = Wi.high = M[offset + i * 2] | 0; - Wil = Wi.low = M[offset + i * 2 + 1] | 0; - } else { - // Gamma0 - var gamma0x = W[i - 15]; - var gamma0xh = gamma0x.high; - var gamma0xl = gamma0x.low; - var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7); - var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25)); - - // Gamma1 - var gamma1x = W[i - 2]; - var gamma1xh = gamma1x.high; - var gamma1xl = gamma1x.low; - var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6); - var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26)); - - // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16] - var Wi7 = W[i - 7]; - var Wi7h = Wi7.high; - var Wi7l = Wi7.low; - - var Wi16 = W[i - 16]; - var Wi16h = Wi16.high; - var Wi16l = Wi16.low; - - Wil = gamma0l + Wi7l; - Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0); - Wil = Wil + gamma1l; - Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0); - Wil = Wil + Wi16l; - Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0); - - Wi.high = Wih; - Wi.low = Wil; - } - - var chh = (eh & fh) ^ (~eh & gh); - var chl = (el & fl) ^ (~el & gl); - var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch); - var majl = (al & bl) ^ (al & cl) ^ (bl & cl); - - var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7)); - var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7)); - var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9)); - var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)); - - // t1 = h + sigma1 + ch + K[i] + W[i] - var Ki = K[i]; - var Kih = Ki.high; - var Kil = Ki.low; - - var t1l = hl + sigma1l; - var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0); - var t1l = t1l + chl; - var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0); - var t1l = t1l + Kil; - var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0); - var t1l = t1l + Wil; - var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0); - - // t2 = sigma0 + maj - var t2l = sigma0l + majl; - var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0); - - // Update working variables - hh = gh; - hl = gl; - gh = fh; - gl = fl; - fh = eh; - fl = el; - el = (dl + t1l) | 0; - eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0; - dh = ch; - dl = cl; - ch = bh; - cl = bl; - bh = ah; - bl = al; - al = (t1l + t2l) | 0; - ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0; - } - - // Intermediate hash value - H0l = H0.low = (H0l + al); - H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0)); - H1l = H1.low = (H1l + bl); - H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0)); - H2l = H2.low = (H2l + cl); - H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0)); - H3l = H3.low = (H3l + dl); - H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0)); - H4l = H4.low = (H4l + el); - H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0)); - H5l = H5.low = (H5l + fl); - H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0)); - H6l = H6.low = (H6l + gl); - H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0)); - H7l = H7.low = (H7l + hl); - H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0)); - }, - - _doFinalize: function () { - // Shortcuts - var data = this._data; - var dataWords = data.words; - - var nBitsTotal = this._nDataBytes * 8; - var nBitsLeft = data.sigBytes * 8; - - // Add padding - dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); - dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000); - dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal; - data.sigBytes = dataWords.length * 4; - - // Hash final blocks - this._process(); - - // Convert hash to 32-bit word array before returning - var hash = this._hash.toX32(); - - // Return final computed hash - return hash; - }, - - clone: function () { - var clone = Hasher.clone.call(this); - clone._hash = this._hash.clone(); - - return clone; - }, - - blockSize: 1024/32 - }); - - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.SHA512('message'); - * var hash = CryptoJS.SHA512(wordArray); - */ - C.SHA512 = Hasher._createHelper(SHA512); - - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacSHA512(message, key); - */ - C.HmacSHA512 = Hasher._createHmacHelper(SHA512); - }()); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_x64 = C.x64; - var X64Word = C_x64.Word; - var X64WordArray = C_x64.WordArray; - var C_algo = C.algo; - var SHA512 = C_algo.SHA512; - - /** - * SHA-384 hash algorithm. - */ - var SHA384 = C_algo.SHA384 = SHA512.extend({ - _doReset: function () { - this._hash = new X64WordArray.init([ - new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507), - new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939), - new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511), - new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4) - ]); - }, - - _doFinalize: function () { - var hash = SHA512._doFinalize.call(this); - - hash.sigBytes -= 16; - - return hash; - } - }); - - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.SHA384('message'); - * var hash = CryptoJS.SHA384(wordArray); - */ - C.SHA384 = SHA512._createHelper(SHA384); - - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacSHA384(message, key); - */ - C.HmacSHA384 = SHA512._createHmacHelper(SHA384); - }()); - - - (function (Math) { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var Hasher = C_lib.Hasher; - var C_x64 = C.x64; - var X64Word = C_x64.Word; - var C_algo = C.algo; - - // Constants tables - var RHO_OFFSETS = []; - var PI_INDEXES = []; - var ROUND_CONSTANTS = []; - - // Compute Constants - (function () { - // Compute rho offset constants - var x = 1, y = 0; - for (var t = 0; t < 24; t++) { - RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64; - - var newX = y % 5; - var newY = (2 * x + 3 * y) % 5; - x = newX; - y = newY; - } - - // Compute pi index constants - for (var x = 0; x < 5; x++) { - for (var y = 0; y < 5; y++) { - PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5; - } - } - - // Compute round constants - var LFSR = 0x01; - for (var i = 0; i < 24; i++) { - var roundConstantMsw = 0; - var roundConstantLsw = 0; - - for (var j = 0; j < 7; j++) { - if (LFSR & 0x01) { - var bitPosition = (1 << j) - 1; - if (bitPosition < 32) { - roundConstantLsw ^= 1 << bitPosition; - } else /* if (bitPosition >= 32) */ { - roundConstantMsw ^= 1 << (bitPosition - 32); - } - } - - // Compute next LFSR - if (LFSR & 0x80) { - // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1 - LFSR = (LFSR << 1) ^ 0x71; - } else { - LFSR <<= 1; - } - } - - ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw); - } - }()); - - // Reusable objects for temporary values - var T = []; - (function () { - for (var i = 0; i < 25; i++) { - T[i] = X64Word.create(); - } - }()); - - /** - * SHA-3 hash algorithm. - */ - var SHA3 = C_algo.SHA3 = Hasher.extend({ - /** - * Configuration options. - * - * @property {number} outputLength - * The desired number of bits in the output hash. - * Only values permitted are: 224, 256, 384, 512. - * Default: 512 - */ - cfg: Hasher.cfg.extend({ - outputLength: 512 - }), - - _doReset: function () { - var state = this._state = [] - for (var i = 0; i < 25; i++) { - state[i] = new X64Word.init(); - } - - this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; - }, - - _doProcessBlock: function (M, offset) { - // Shortcuts - var state = this._state; - var nBlockSizeLanes = this.blockSize / 2; - - // Absorb - for (var i = 0; i < nBlockSizeLanes; i++) { - // Shortcuts - var M2i = M[offset + 2 * i]; - var M2i1 = M[offset + 2 * i + 1]; - - // Swap endian - M2i = ( - (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) | - (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00) - ); - M2i1 = ( - (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) | - (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00) - ); - - // Absorb message into state - var lane = state[i]; - lane.high ^= M2i1; - lane.low ^= M2i; - } - - // Rounds - for (var round = 0; round < 24; round++) { - // Theta - for (var x = 0; x < 5; x++) { - // Mix column lanes - var tMsw = 0, tLsw = 0; - for (var y = 0; y < 5; y++) { - var lane = state[x + 5 * y]; - tMsw ^= lane.high; - tLsw ^= lane.low; - } - - // Temporary values - var Tx = T[x]; - Tx.high = tMsw; - Tx.low = tLsw; - } - for (var x = 0; x < 5; x++) { - // Shortcuts - var Tx4 = T[(x + 4) % 5]; - var Tx1 = T[(x + 1) % 5]; - var Tx1Msw = Tx1.high; - var Tx1Lsw = Tx1.low; - - // Mix surrounding columns - var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31)); - var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31)); - for (var y = 0; y < 5; y++) { - var lane = state[x + 5 * y]; - lane.high ^= tMsw; - lane.low ^= tLsw; - } - } - - // Rho Pi - for (var laneIndex = 1; laneIndex < 25; laneIndex++) { - var tMsw; - var tLsw; - - // Shortcuts - var lane = state[laneIndex]; - var laneMsw = lane.high; - var laneLsw = lane.low; - var rhoOffset = RHO_OFFSETS[laneIndex]; - - // Rotate lanes - if (rhoOffset < 32) { - tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset)); - tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset)); - } else /* if (rhoOffset >= 32) */ { - tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset)); - tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset)); - } - - // Transpose lanes - var TPiLane = T[PI_INDEXES[laneIndex]]; - TPiLane.high = tMsw; - TPiLane.low = tLsw; - } - - // Rho pi at x = y = 0 - var T0 = T[0]; - var state0 = state[0]; - T0.high = state0.high; - T0.low = state0.low; - - // Chi - for (var x = 0; x < 5; x++) { - for (var y = 0; y < 5; y++) { - // Shortcuts - var laneIndex = x + 5 * y; - var lane = state[laneIndex]; - var TLane = T[laneIndex]; - var Tx1Lane = T[((x + 1) % 5) + 5 * y]; - var Tx2Lane = T[((x + 2) % 5) + 5 * y]; - - // Mix rows - lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high); - lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low); - } - } - - // Iota - var lane = state[0]; - var roundConstant = ROUND_CONSTANTS[round]; - lane.high ^= roundConstant.high; - lane.low ^= roundConstant.low; - } - }, - - _doFinalize: function () { - // Shortcuts - var data = this._data; - var dataWords = data.words; - var nBitsTotal = this._nDataBytes * 8; - var nBitsLeft = data.sigBytes * 8; - var blockSizeBits = this.blockSize * 32; - - // Add padding - dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32); - dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80; - data.sigBytes = dataWords.length * 4; - - // Hash final blocks - this._process(); - - // Shortcuts - var state = this._state; - var outputLengthBytes = this.cfg.outputLength / 8; - var outputLengthLanes = outputLengthBytes / 8; - - // Squeeze - var hashWords = []; - for (var i = 0; i < outputLengthLanes; i++) { - // Shortcuts - var lane = state[i]; - var laneMsw = lane.high; - var laneLsw = lane.low; - - // Swap endian - laneMsw = ( - (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) | - (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00) - ); - laneLsw = ( - (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) | - (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00) - ); - - // Squeeze state to retrieve hash - hashWords.push(laneLsw); - hashWords.push(laneMsw); - } - - // Return final computed hash - return new WordArray.init(hashWords, outputLengthBytes); - }, - - clone: function () { - var clone = Hasher.clone.call(this); - - var state = clone._state = this._state.slice(0); - for (var i = 0; i < 25; i++) { - state[i] = state[i].clone(); - } - - return clone; - } - }); - - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.SHA3('message'); - * var hash = CryptoJS.SHA3(wordArray); - */ - C.SHA3 = Hasher._createHelper(SHA3); - - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacSHA3(message, key); - */ - C.HmacSHA3 = Hasher._createHmacHelper(SHA3); - }(Math)); - - - /** @preserve - (c) 2012 by Cédric Mesnil. All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - - - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - - (function (Math) { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var Hasher = C_lib.Hasher; - var C_algo = C.algo; - - // Constants table - var _zl = WordArray.create([ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, - 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, - 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, - 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]); - var _zr = WordArray.create([ - 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, - 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, - 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, - 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, - 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]); - var _sl = WordArray.create([ - 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, - 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, - 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, - 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, - 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]); - var _sr = WordArray.create([ - 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, - 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, - 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, - 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, - 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]); - - var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]); - var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]); - - /** - * RIPEMD160 hash algorithm. - */ - var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({ - _doReset: function () { - this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]); - }, - - _doProcessBlock: function (M, offset) { - - // Swap endian - for (var i = 0; i < 16; i++) { - // Shortcuts - var offset_i = offset + i; - var M_offset_i = M[offset_i]; - - // Swap - M[offset_i] = ( - (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) | - (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00) - ); - } - // Shortcut - var H = this._hash.words; - var hl = _hl.words; - var hr = _hr.words; - var zl = _zl.words; - var zr = _zr.words; - var sl = _sl.words; - var sr = _sr.words; - - // Working variables - var al, bl, cl, dl, el; - var ar, br, cr, dr, er; - - ar = al = H[0]; - br = bl = H[1]; - cr = cl = H[2]; - dr = dl = H[3]; - er = el = H[4]; - // Computation - var t; - for (var i = 0; i < 80; i += 1) { - t = (al + M[offset+zl[i]])|0; - if (i<16){ - t += f1(bl,cl,dl) + hl[0]; - } else if (i<32) { - t += f2(bl,cl,dl) + hl[1]; - } else if (i<48) { - t += f3(bl,cl,dl) + hl[2]; - } else if (i<64) { - t += f4(bl,cl,dl) + hl[3]; - } else {// if (i<80) { - t += f5(bl,cl,dl) + hl[4]; - } - t = t|0; - t = rotl(t,sl[i]); - t = (t+el)|0; - al = el; - el = dl; - dl = rotl(cl, 10); - cl = bl; - bl = t; - - t = (ar + M[offset+zr[i]])|0; - if (i<16){ - t += f5(br,cr,dr) + hr[0]; - } else if (i<32) { - t += f4(br,cr,dr) + hr[1]; - } else if (i<48) { - t += f3(br,cr,dr) + hr[2]; - } else if (i<64) { - t += f2(br,cr,dr) + hr[3]; - } else {// if (i<80) { - t += f1(br,cr,dr) + hr[4]; - } - t = t|0; - t = rotl(t,sr[i]) ; - t = (t+er)|0; - ar = er; - er = dr; - dr = rotl(cr, 10); - cr = br; - br = t; - } - // Intermediate hash value - t = (H[1] + cl + dr)|0; - H[1] = (H[2] + dl + er)|0; - H[2] = (H[3] + el + ar)|0; - H[3] = (H[4] + al + br)|0; - H[4] = (H[0] + bl + cr)|0; - H[0] = t; - }, - - _doFinalize: function () { - // Shortcuts - var data = this._data; - var dataWords = data.words; - - var nBitsTotal = this._nDataBytes * 8; - var nBitsLeft = data.sigBytes * 8; - - // Add padding - dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); - dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = ( - (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) | - (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00) - ); - data.sigBytes = (dataWords.length + 1) * 4; - - // Hash final blocks - this._process(); - - // Shortcuts - var hash = this._hash; - var H = hash.words; - - // Swap endian - for (var i = 0; i < 5; i++) { - // Shortcut - var H_i = H[i]; - - // Swap - H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | - (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00); - } - - // Return final computed hash - return hash; - }, - - clone: function () { - var clone = Hasher.clone.call(this); - clone._hash = this._hash.clone(); - - return clone; - } - }); - - - function f1(x, y, z) { - return ((x) ^ (y) ^ (z)); - - } - - function f2(x, y, z) { - return (((x)&(y)) | ((~x)&(z))); - } - - function f3(x, y, z) { - return (((x) | (~(y))) ^ (z)); - } - - function f4(x, y, z) { - return (((x) & (z)) | ((y)&(~(z)))); - } - - function f5(x, y, z) { - return ((x) ^ ((y) |(~(z)))); - - } - - function rotl(x,n) { - return (x<>>(32-n)); - } - - - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.RIPEMD160('message'); - * var hash = CryptoJS.RIPEMD160(wordArray); - */ - C.RIPEMD160 = Hasher._createHelper(RIPEMD160); - - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacRIPEMD160(message, key); - */ - C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160); - }(Math)); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var Base = C_lib.Base; - var C_enc = C.enc; - var Utf8 = C_enc.Utf8; - var C_algo = C.algo; - - /** - * HMAC algorithm. - */ - var HMAC = C_algo.HMAC = Base.extend({ - /** - * Initializes a newly created HMAC. - * - * @param {Hasher} hasher The hash algorithm to use. - * @param {WordArray|string} key The secret key. - * - * @example - * - * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key); - */ - init: function (hasher, key) { - // Init hasher - hasher = this._hasher = new hasher.init(); - - // Convert string to WordArray, else assume WordArray already - if (typeof key == 'string') { - key = Utf8.parse(key); - } - - // Shortcuts - var hasherBlockSize = hasher.blockSize; - var hasherBlockSizeBytes = hasherBlockSize * 4; - - // Allow arbitrary length keys - if (key.sigBytes > hasherBlockSizeBytes) { - key = hasher.finalize(key); - } - - // Clamp excess bits - key.clamp(); - - // Clone key for inner and outer pads - var oKey = this._oKey = key.clone(); - var iKey = this._iKey = key.clone(); - - // Shortcuts - var oKeyWords = oKey.words; - var iKeyWords = iKey.words; - - // XOR keys with pad constants - for (var i = 0; i < hasherBlockSize; i++) { - oKeyWords[i] ^= 0x5c5c5c5c; - iKeyWords[i] ^= 0x36363636; - } - oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes; - - // Set initial values - this.reset(); - }, - - /** - * Resets this HMAC to its initial state. - * - * @example - * - * hmacHasher.reset(); - */ - reset: function () { - // Shortcut - var hasher = this._hasher; - - // Reset - hasher.reset(); - hasher.update(this._iKey); - }, - - /** - * Updates this HMAC with a message. - * - * @param {WordArray|string} messageUpdate The message to append. - * - * @return {HMAC} This HMAC instance. - * - * @example - * - * hmacHasher.update('message'); - * hmacHasher.update(wordArray); - */ - update: function (messageUpdate) { - this._hasher.update(messageUpdate); - - // Chainable - return this; - }, - - /** - * Finalizes the HMAC computation. - * Note that the finalize operation is effectively a destructive, read-once operation. - * - * @param {WordArray|string} messageUpdate (Optional) A final message update. - * - * @return {WordArray} The HMAC. - * - * @example - * - * var hmac = hmacHasher.finalize(); - * var hmac = hmacHasher.finalize('message'); - * var hmac = hmacHasher.finalize(wordArray); - */ - finalize: function (messageUpdate) { - // Shortcut - var hasher = this._hasher; - - // Compute HMAC - var innerHash = hasher.finalize(messageUpdate); - hasher.reset(); - var hmac = hasher.finalize(this._oKey.clone().concat(innerHash)); - - return hmac; - } - }); - }()); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var Base = C_lib.Base; - var WordArray = C_lib.WordArray; - var C_algo = C.algo; - var SHA1 = C_algo.SHA1; - var HMAC = C_algo.HMAC; - - /** - * Password-Based Key Derivation Function 2 algorithm. - */ - var PBKDF2 = C_algo.PBKDF2 = Base.extend({ - /** - * Configuration options. - * - * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) - * @property {Hasher} hasher The hasher to use. Default: SHA1 - * @property {number} iterations The number of iterations to perform. Default: 1 - */ - cfg: Base.extend({ - keySize: 128/32, - hasher: SHA1, - iterations: 1 - }), - - /** - * Initializes a newly created key derivation function. - * - * @param {Object} cfg (Optional) The configuration options to use for the derivation. - * - * @example - * - * var kdf = CryptoJS.algo.PBKDF2.create(); - * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 }); - * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 }); - */ - init: function (cfg) { - this.cfg = this.cfg.extend(cfg); - }, - - /** - * Computes the Password-Based Key Derivation Function 2. - * - * @param {WordArray|string} password The password. - * @param {WordArray|string} salt A salt. - * - * @return {WordArray} The derived key. - * - * @example - * - * var key = kdf.compute(password, salt); - */ - compute: function (password, salt) { - // Shortcut - var cfg = this.cfg; - - // Init HMAC - var hmac = HMAC.create(cfg.hasher, password); - - // Initial values - var derivedKey = WordArray.create(); - var blockIndex = WordArray.create([0x00000001]); - - // Shortcuts - var derivedKeyWords = derivedKey.words; - var blockIndexWords = blockIndex.words; - var keySize = cfg.keySize; - var iterations = cfg.iterations; - - // Generate key - while (derivedKeyWords.length < keySize) { - var block = hmac.update(salt).finalize(blockIndex); - hmac.reset(); - - // Shortcuts - var blockWords = block.words; - var blockWordsLength = blockWords.length; - - // Iterations - var intermediate = block; - for (var i = 1; i < iterations; i++) { - intermediate = hmac.finalize(intermediate); - hmac.reset(); - - // Shortcut - var intermediateWords = intermediate.words; - - // XOR intermediate with block - for (var j = 0; j < blockWordsLength; j++) { - blockWords[j] ^= intermediateWords[j]; - } - } - - derivedKey.concat(block); - blockIndexWords[0]++; - } - derivedKey.sigBytes = keySize * 4; - - return derivedKey; - } - }); - - /** - * Computes the Password-Based Key Derivation Function 2. - * - * @param {WordArray|string} password The password. - * @param {WordArray|string} salt A salt. - * @param {Object} cfg (Optional) The configuration options to use for this computation. - * - * @return {WordArray} The derived key. - * - * @static - * - * @example - * - * var key = CryptoJS.PBKDF2(password, salt); - * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 }); - * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 }); - */ - C.PBKDF2 = function (password, salt, cfg) { - return PBKDF2.create(cfg).compute(password, salt); - }; - }()); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var Base = C_lib.Base; - var WordArray = C_lib.WordArray; - var C_algo = C.algo; - var MD5 = C_algo.MD5; - - /** - * This key derivation function is meant to conform with EVP_BytesToKey. - * www.openssl.org/docs/crypto/EVP_BytesToKey.html - */ - var EvpKDF = C_algo.EvpKDF = Base.extend({ - /** - * Configuration options. - * - * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) - * @property {Hasher} hasher The hash algorithm to use. Default: MD5 - * @property {number} iterations The number of iterations to perform. Default: 1 - */ - cfg: Base.extend({ - keySize: 128/32, - hasher: MD5, - iterations: 1 - }), - - /** - * Initializes a newly created key derivation function. - * - * @param {Object} cfg (Optional) The configuration options to use for the derivation. - * - * @example - * - * var kdf = CryptoJS.algo.EvpKDF.create(); - * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 }); - * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 }); - */ - init: function (cfg) { - this.cfg = this.cfg.extend(cfg); - }, - - /** - * Derives a key from a password. - * - * @param {WordArray|string} password The password. - * @param {WordArray|string} salt A salt. - * - * @return {WordArray} The derived key. - * - * @example - * - * var key = kdf.compute(password, salt); - */ - compute: function (password, salt) { - var block; - - // Shortcut - var cfg = this.cfg; - - // Init hasher - var hasher = cfg.hasher.create(); - - // Initial values - var derivedKey = WordArray.create(); - - // Shortcuts - var derivedKeyWords = derivedKey.words; - var keySize = cfg.keySize; - var iterations = cfg.iterations; - - // Generate key - while (derivedKeyWords.length < keySize) { - if (block) { - hasher.update(block); - } - block = hasher.update(password).finalize(salt); - hasher.reset(); - - // Iterations - for (var i = 1; i < iterations; i++) { - block = hasher.finalize(block); - hasher.reset(); - } - - derivedKey.concat(block); - } - derivedKey.sigBytes = keySize * 4; - - return derivedKey; - } - }); - - /** - * Derives a key from a password. - * - * @param {WordArray|string} password The password. - * @param {WordArray|string} salt A salt. - * @param {Object} cfg (Optional) The configuration options to use for this computation. - * - * @return {WordArray} The derived key. - * - * @static - * - * @example - * - * var key = CryptoJS.EvpKDF(password, salt); - * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 }); - * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 }); - */ - C.EvpKDF = function (password, salt, cfg) { - return EvpKDF.create(cfg).compute(password, salt); - }; - }()); - - - /** - * Cipher core components. - */ - CryptoJS.lib.Cipher || (function (undefined) { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var Base = C_lib.Base; - var WordArray = C_lib.WordArray; - var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm; - var C_enc = C.enc; - var Utf8 = C_enc.Utf8; - var Base64 = C_enc.Base64; - var C_algo = C.algo; - var EvpKDF = C_algo.EvpKDF; - - /** - * Abstract base cipher template. - * - * @property {number} keySize This cipher's key size. Default: 4 (128 bits) - * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits) - * @property {number} _ENC_XFORM_MODE A constant representing encryption mode. - * @property {number} _DEC_XFORM_MODE A constant representing decryption mode. - */ - var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({ - /** - * Configuration options. - * - * @property {WordArray} iv The IV to use for this operation. - */ - cfg: Base.extend(), - - /** - * Creates this cipher in encryption mode. - * - * @param {WordArray} key The key. - * @param {Object} cfg (Optional) The configuration options to use for this operation. - * - * @return {Cipher} A cipher instance. - * - * @static - * - * @example - * - * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray }); - */ - createEncryptor: function (key, cfg) { - return this.create(this._ENC_XFORM_MODE, key, cfg); - }, - - /** - * Creates this cipher in decryption mode. - * - * @param {WordArray} key The key. - * @param {Object} cfg (Optional) The configuration options to use for this operation. - * - * @return {Cipher} A cipher instance. - * - * @static - * - * @example - * - * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray }); - */ - createDecryptor: function (key, cfg) { - return this.create(this._DEC_XFORM_MODE, key, cfg); - }, - - /** - * Initializes a newly created cipher. - * - * @param {number} xformMode Either the encryption or decryption transormation mode constant. - * @param {WordArray} key The key. - * @param {Object} cfg (Optional) The configuration options to use for this operation. - * - * @example - * - * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray }); - */ - init: function (xformMode, key, cfg) { - // Apply config defaults - this.cfg = this.cfg.extend(cfg); - - // Store transform mode and key - this._xformMode = xformMode; - this._key = key; - - // Set initial values - this.reset(); - }, - - /** - * Resets this cipher to its initial state. - * - * @example - * - * cipher.reset(); - */ - reset: function () { - // Reset data buffer - BufferedBlockAlgorithm.reset.call(this); - - // Perform concrete-cipher logic - this._doReset(); - }, - - /** - * Adds data to be encrypted or decrypted. - * - * @param {WordArray|string} dataUpdate The data to encrypt or decrypt. - * - * @return {WordArray} The data after processing. - * - * @example - * - * var encrypted = cipher.process('data'); - * var encrypted = cipher.process(wordArray); - */ - process: function (dataUpdate) { - // Append - this._append(dataUpdate); - - // Process available blocks - return this._process(); - }, - - /** - * Finalizes the encryption or decryption process. - * Note that the finalize operation is effectively a destructive, read-once operation. - * - * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt. - * - * @return {WordArray} The data after final processing. - * - * @example - * - * var encrypted = cipher.finalize(); - * var encrypted = cipher.finalize('data'); - * var encrypted = cipher.finalize(wordArray); - */ - finalize: function (dataUpdate) { - // Final data update - if (dataUpdate) { - this._append(dataUpdate); - } - - // Perform concrete-cipher logic - var finalProcessedData = this._doFinalize(); - - return finalProcessedData; - }, - - keySize: 128/32, - - ivSize: 128/32, - - _ENC_XFORM_MODE: 1, - - _DEC_XFORM_MODE: 2, - - /** - * Creates shortcut functions to a cipher's object interface. - * - * @param {Cipher} cipher The cipher to create a helper for. - * - * @return {Object} An object with encrypt and decrypt shortcut functions. - * - * @static - * - * @example - * - * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES); - */ - _createHelper: (function () { - function selectCipherStrategy(key) { - if (typeof key == 'string') { - return PasswordBasedCipher; - } else { - return SerializableCipher; - } - } - - return function (cipher) { - return { - encrypt: function (message, key, cfg) { - return selectCipherStrategy(key).encrypt(cipher, message, key, cfg); - }, - - decrypt: function (ciphertext, key, cfg) { - return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg); - } - }; - }; - }()) - }); - - /** - * Abstract base stream cipher template. - * - * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits) - */ - var StreamCipher = C_lib.StreamCipher = Cipher.extend({ - _doFinalize: function () { - // Process partial blocks - var finalProcessedBlocks = this._process(!!'flush'); - - return finalProcessedBlocks; - }, - - blockSize: 1 - }); - - /** - * Mode namespace. - */ - var C_mode = C.mode = {}; - - /** - * Abstract base block cipher mode template. - */ - var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({ - /** - * Creates this mode for encryption. - * - * @param {Cipher} cipher A block cipher instance. - * @param {Array} iv The IV words. - * - * @static - * - * @example - * - * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words); - */ - createEncryptor: function (cipher, iv) { - return this.Encryptor.create(cipher, iv); - }, - - /** - * Creates this mode for decryption. - * - * @param {Cipher} cipher A block cipher instance. - * @param {Array} iv The IV words. - * - * @static - * - * @example - * - * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words); - */ - createDecryptor: function (cipher, iv) { - return this.Decryptor.create(cipher, iv); - }, - - /** - * Initializes a newly created mode. - * - * @param {Cipher} cipher A block cipher instance. - * @param {Array} iv The IV words. - * - * @example - * - * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words); - */ - init: function (cipher, iv) { - this._cipher = cipher; - this._iv = iv; - } - }); - - /** - * Cipher Block Chaining mode. - */ - var CBC = C_mode.CBC = (function () { - /** - * Abstract base CBC mode. - */ - var CBC = BlockCipherMode.extend(); - - /** - * CBC encryptor. - */ - CBC.Encryptor = CBC.extend({ - /** - * Processes the data block at offset. - * - * @param {Array} words The data words to operate on. - * @param {number} offset The offset where the block starts. - * - * @example - * - * mode.processBlock(data.words, offset); - */ - processBlock: function (words, offset) { - // Shortcuts - var cipher = this._cipher; - var blockSize = cipher.blockSize; - - // XOR and encrypt - xorBlock.call(this, words, offset, blockSize); - cipher.encryptBlock(words, offset); - - // Remember this block to use with next block - this._prevBlock = words.slice(offset, offset + blockSize); - } - }); - - /** - * CBC decryptor. - */ - CBC.Decryptor = CBC.extend({ - /** - * Processes the data block at offset. - * - * @param {Array} words The data words to operate on. - * @param {number} offset The offset where the block starts. - * - * @example - * - * mode.processBlock(data.words, offset); - */ - processBlock: function (words, offset) { - // Shortcuts - var cipher = this._cipher; - var blockSize = cipher.blockSize; - - // Remember this block to use with next block - var thisBlock = words.slice(offset, offset + blockSize); - - // Decrypt and XOR - cipher.decryptBlock(words, offset); - xorBlock.call(this, words, offset, blockSize); - - // This block becomes the previous block - this._prevBlock = thisBlock; - } - }); - - function xorBlock(words, offset, blockSize) { - var block; - - // Shortcut - var iv = this._iv; - - // Choose mixing block - if (iv) { - block = iv; - - // Remove IV for subsequent blocks - this._iv = undefined; - } else { - block = this._prevBlock; - } - - // XOR blocks - for (var i = 0; i < blockSize; i++) { - words[offset + i] ^= block[i]; - } - } - - return CBC; - }()); - - /** - * Padding namespace. - */ - var C_pad = C.pad = {}; - - /** - * PKCS #5/7 padding strategy. - */ - var Pkcs7 = C_pad.Pkcs7 = { - /** - * Pads data using the algorithm defined in PKCS #5/7. - * - * @param {WordArray} data The data to pad. - * @param {number} blockSize The multiple that the data should be padded to. - * - * @static - * - * @example - * - * CryptoJS.pad.Pkcs7.pad(wordArray, 4); - */ - pad: function (data, blockSize) { - // Shortcut - var blockSizeBytes = blockSize * 4; - - // Count padding bytes - var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; - - // Create padding word - var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes; - - // Create padding - var paddingWords = []; - for (var i = 0; i < nPaddingBytes; i += 4) { - paddingWords.push(paddingWord); - } - var padding = WordArray.create(paddingWords, nPaddingBytes); - - // Add padding - data.concat(padding); - }, - - /** - * Unpads data that had been padded using the algorithm defined in PKCS #5/7. - * - * @param {WordArray} data The data to unpad. - * - * @static - * - * @example - * - * CryptoJS.pad.Pkcs7.unpad(wordArray); - */ - unpad: function (data) { - // Get number of padding bytes from last byte - var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; - - // Remove padding - data.sigBytes -= nPaddingBytes; - } - }; - - /** - * Abstract base block cipher template. - * - * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits) - */ - var BlockCipher = C_lib.BlockCipher = Cipher.extend({ - /** - * Configuration options. - * - * @property {Mode} mode The block mode to use. Default: CBC - * @property {Padding} padding The padding strategy to use. Default: Pkcs7 - */ - cfg: Cipher.cfg.extend({ - mode: CBC, - padding: Pkcs7 - }), - - reset: function () { - var modeCreator; - - // Reset cipher - Cipher.reset.call(this); - - // Shortcuts - var cfg = this.cfg; - var iv = cfg.iv; - var mode = cfg.mode; - - // Reset block mode - if (this._xformMode == this._ENC_XFORM_MODE) { - modeCreator = mode.createEncryptor; - } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ { - modeCreator = mode.createDecryptor; - // Keep at least one block in the buffer for unpadding - this._minBufferSize = 1; - } - - if (this._mode && this._mode.__creator == modeCreator) { - this._mode.init(this, iv && iv.words); - } else { - this._mode = modeCreator.call(mode, this, iv && iv.words); - this._mode.__creator = modeCreator; - } - }, - - _doProcessBlock: function (words, offset) { - this._mode.processBlock(words, offset); - }, - - _doFinalize: function () { - var finalProcessedBlocks; - - // Shortcut - var padding = this.cfg.padding; - - // Finalize - if (this._xformMode == this._ENC_XFORM_MODE) { - // Pad data - padding.pad(this._data, this.blockSize); - - // Process final blocks - finalProcessedBlocks = this._process(!!'flush'); - } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ { - // Process final blocks - finalProcessedBlocks = this._process(!!'flush'); - - // Unpad data - padding.unpad(finalProcessedBlocks); - } - - return finalProcessedBlocks; - }, - - blockSize: 128/32 - }); - - /** - * A collection of cipher parameters. - * - * @property {WordArray} ciphertext The raw ciphertext. - * @property {WordArray} key The key to this ciphertext. - * @property {WordArray} iv The IV used in the ciphering operation. - * @property {WordArray} salt The salt used with a key derivation function. - * @property {Cipher} algorithm The cipher algorithm. - * @property {Mode} mode The block mode used in the ciphering operation. - * @property {Padding} padding The padding scheme used in the ciphering operation. - * @property {number} blockSize The block size of the cipher. - * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string. - */ - var CipherParams = C_lib.CipherParams = Base.extend({ - /** - * Initializes a newly created cipher params object. - * - * @param {Object} cipherParams An object with any of the possible cipher parameters. - * - * @example - * - * var cipherParams = CryptoJS.lib.CipherParams.create({ - * ciphertext: ciphertextWordArray, - * key: keyWordArray, - * iv: ivWordArray, - * salt: saltWordArray, - * algorithm: CryptoJS.algo.AES, - * mode: CryptoJS.mode.CBC, - * padding: CryptoJS.pad.PKCS7, - * blockSize: 4, - * formatter: CryptoJS.format.OpenSSL - * }); - */ - init: function (cipherParams) { - this.mixIn(cipherParams); - }, - - /** - * Converts this cipher params object to a string. - * - * @param {Format} formatter (Optional) The formatting strategy to use. - * - * @return {string} The stringified cipher params. - * - * @throws Error If neither the formatter nor the default formatter is set. - * - * @example - * - * var string = cipherParams + ''; - * var string = cipherParams.toString(); - * var string = cipherParams.toString(CryptoJS.format.OpenSSL); - */ - toString: function (formatter) { - return (formatter || this.formatter).stringify(this); - } - }); - - /** - * Format namespace. - */ - var C_format = C.format = {}; - - /** - * OpenSSL formatting strategy. - */ - var OpenSSLFormatter = C_format.OpenSSL = { - /** - * Converts a cipher params object to an OpenSSL-compatible string. - * - * @param {CipherParams} cipherParams The cipher params object. - * - * @return {string} The OpenSSL-compatible string. - * - * @static - * - * @example - * - * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams); - */ - stringify: function (cipherParams) { - var wordArray; - - // Shortcuts - var ciphertext = cipherParams.ciphertext; - var salt = cipherParams.salt; - - // Format - if (salt) { - wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext); - } else { - wordArray = ciphertext; - } - - return wordArray.toString(Base64); - }, - - /** - * Converts an OpenSSL-compatible string to a cipher params object. - * - * @param {string} openSSLStr The OpenSSL-compatible string. - * - * @return {CipherParams} The cipher params object. - * - * @static - * - * @example - * - * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString); - */ - parse: function (openSSLStr) { - var salt; - - // Parse base64 - var ciphertext = Base64.parse(openSSLStr); - - // Shortcut - var ciphertextWords = ciphertext.words; - - // Test for salt - if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) { - // Extract salt - salt = WordArray.create(ciphertextWords.slice(2, 4)); - - // Remove salt from ciphertext - ciphertextWords.splice(0, 4); - ciphertext.sigBytes -= 16; - } - - return CipherParams.create({ ciphertext: ciphertext, salt: salt }); - } - }; - - /** - * A cipher wrapper that returns ciphertext as a serializable cipher params object. - */ - var SerializableCipher = C_lib.SerializableCipher = Base.extend({ - /** - * Configuration options. - * - * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL - */ - cfg: Base.extend({ - format: OpenSSLFormatter - }), - - /** - * Encrypts a message. - * - * @param {Cipher} cipher The cipher algorithm to use. - * @param {WordArray|string} message The message to encrypt. - * @param {WordArray} key The key. - * @param {Object} cfg (Optional) The configuration options to use for this operation. - * - * @return {CipherParams} A cipher params object. - * - * @static - * - * @example - * - * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key); - * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv }); - * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL }); - */ - encrypt: function (cipher, message, key, cfg) { - // Apply config defaults - cfg = this.cfg.extend(cfg); - - // Encrypt - var encryptor = cipher.createEncryptor(key, cfg); - var ciphertext = encryptor.finalize(message); - - // Shortcut - var cipherCfg = encryptor.cfg; - - // Create and return serializable cipher params - return CipherParams.create({ - ciphertext: ciphertext, - key: key, - iv: cipherCfg.iv, - algorithm: cipher, - mode: cipherCfg.mode, - padding: cipherCfg.padding, - blockSize: cipher.blockSize, - formatter: cfg.format - }); - }, - - /** - * Decrypts serialized ciphertext. - * - * @param {Cipher} cipher The cipher algorithm to use. - * @param {CipherParams|string} ciphertext The ciphertext to decrypt. - * @param {WordArray} key The key. - * @param {Object} cfg (Optional) The configuration options to use for this operation. - * - * @return {WordArray} The plaintext. - * - * @static - * - * @example - * - * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL }); - * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL }); - */ - decrypt: function (cipher, ciphertext, key, cfg) { - // Apply config defaults - cfg = this.cfg.extend(cfg); - - // Convert string to CipherParams - ciphertext = this._parse(ciphertext, cfg.format); - - // Decrypt - var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext); - - return plaintext; - }, - - /** - * Converts serialized ciphertext to CipherParams, - * else assumed CipherParams already and returns ciphertext unchanged. - * - * @param {CipherParams|string} ciphertext The ciphertext. - * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext. - * - * @return {CipherParams} The unserialized ciphertext. - * - * @static - * - * @example - * - * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format); - */ - _parse: function (ciphertext, format) { - if (typeof ciphertext == 'string') { - return format.parse(ciphertext, this); - } else { - return ciphertext; - } - } - }); - - /** - * Key derivation function namespace. - */ - var C_kdf = C.kdf = {}; - - /** - * OpenSSL key derivation function. - */ - var OpenSSLKdf = C_kdf.OpenSSL = { - /** - * Derives a key and IV from a password. - * - * @param {string} password The password to derive from. - * @param {number} keySize The size in words of the key to generate. - * @param {number} ivSize The size in words of the IV to generate. - * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly. - * - * @return {CipherParams} A cipher params object with the key, IV, and salt. - * - * @static - * - * @example - * - * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32); - * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt'); - */ - execute: function (password, keySize, ivSize, salt) { - // Generate random salt - if (!salt) { - salt = WordArray.random(64/8); - } - - // Derive key and IV - var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt); - - // Separate key and IV - var iv = WordArray.create(key.words.slice(keySize), ivSize * 4); - key.sigBytes = keySize * 4; - - // Return params - return CipherParams.create({ key: key, iv: iv, salt: salt }); - } - }; - - /** - * A serializable cipher wrapper that derives the key from a password, - * and returns ciphertext as a serializable cipher params object. - */ - var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({ - /** - * Configuration options. - * - * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL - */ - cfg: SerializableCipher.cfg.extend({ - kdf: OpenSSLKdf - }), - - /** - * Encrypts a message using a password. - * - * @param {Cipher} cipher The cipher algorithm to use. - * @param {WordArray|string} message The message to encrypt. - * @param {string} password The password. - * @param {Object} cfg (Optional) The configuration options to use for this operation. - * - * @return {CipherParams} A cipher params object. - * - * @static - * - * @example - * - * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password'); - * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL }); - */ - encrypt: function (cipher, message, password, cfg) { - // Apply config defaults - cfg = this.cfg.extend(cfg); - - // Derive key and other params - var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize); - - // Add IV to config - cfg.iv = derivedParams.iv; - - // Encrypt - var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg); - - // Mix in derived params - ciphertext.mixIn(derivedParams); - - return ciphertext; - }, - - /** - * Decrypts serialized ciphertext using a password. - * - * @param {Cipher} cipher The cipher algorithm to use. - * @param {CipherParams|string} ciphertext The ciphertext to decrypt. - * @param {string} password The password. - * @param {Object} cfg (Optional) The configuration options to use for this operation. - * - * @return {WordArray} The plaintext. - * - * @static - * - * @example - * - * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL }); - * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL }); - */ - decrypt: function (cipher, ciphertext, password, cfg) { - // Apply config defaults - cfg = this.cfg.extend(cfg); - - // Convert string to CipherParams - ciphertext = this._parse(ciphertext, cfg.format); - - // Derive key and other params - var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt); - - // Add IV to config - cfg.iv = derivedParams.iv; - - // Decrypt - var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg); - - return plaintext; - } - }); - }()); - - - /** - * Cipher Feedback block mode. - */ - CryptoJS.mode.CFB = (function () { - var CFB = CryptoJS.lib.BlockCipherMode.extend(); - - CFB.Encryptor = CFB.extend({ - processBlock: function (words, offset) { - // Shortcuts - var cipher = this._cipher; - var blockSize = cipher.blockSize; - - generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); - - // Remember this block to use with next block - this._prevBlock = words.slice(offset, offset + blockSize); - } - }); - - CFB.Decryptor = CFB.extend({ - processBlock: function (words, offset) { - // Shortcuts - var cipher = this._cipher; - var blockSize = cipher.blockSize; - - // Remember this block to use with next block - var thisBlock = words.slice(offset, offset + blockSize); - - generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); - - // This block becomes the previous block - this._prevBlock = thisBlock; - } - }); - - function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) { - var keystream; - - // Shortcut - var iv = this._iv; - - // Generate keystream - if (iv) { - keystream = iv.slice(0); - - // Remove IV for subsequent blocks - this._iv = undefined; - } else { - keystream = this._prevBlock; - } - cipher.encryptBlock(keystream, 0); - - // Encrypt - for (var i = 0; i < blockSize; i++) { - words[offset + i] ^= keystream[i]; - } - } - - return CFB; - }()); - - - /** - * Counter block mode. - */ - CryptoJS.mode.CTR = (function () { - var CTR = CryptoJS.lib.BlockCipherMode.extend(); - - var Encryptor = CTR.Encryptor = CTR.extend({ - processBlock: function (words, offset) { - // Shortcuts - var cipher = this._cipher - var blockSize = cipher.blockSize; - var iv = this._iv; - var counter = this._counter; - - // Generate keystream - if (iv) { - counter = this._counter = iv.slice(0); - - // Remove IV for subsequent blocks - this._iv = undefined; - } - var keystream = counter.slice(0); - cipher.encryptBlock(keystream, 0); - - // Increment counter - counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0 - - // Encrypt - for (var i = 0; i < blockSize; i++) { - words[offset + i] ^= keystream[i]; - } - } - }); - - CTR.Decryptor = Encryptor; - - return CTR; - }()); - - - /** @preserve - * Counter block mode compatible with Dr Brian Gladman fileenc.c - * derived from CryptoJS.mode.CTR - * Jan Hruby jhruby.web@gmail.com - */ - CryptoJS.mode.CTRGladman = (function () { - var CTRGladman = CryptoJS.lib.BlockCipherMode.extend(); - - function incWord(word) - { - if (((word >> 24) & 0xff) === 0xff) { //overflow - var b1 = (word >> 16)&0xff; - var b2 = (word >> 8)&0xff; - var b3 = word & 0xff; - - if (b1 === 0xff) // overflow b1 - { - b1 = 0; - if (b2 === 0xff) - { - b2 = 0; - if (b3 === 0xff) - { - b3 = 0; - } - else - { - ++b3; - } - } - else - { - ++b2; - } - } - else - { - ++b1; - } - - word = 0; - word += (b1 << 16); - word += (b2 << 8); - word += b3; - } - else - { - word += (0x01 << 24); - } - return word; - } - - function incCounter(counter) - { - if ((counter[0] = incWord(counter[0])) === 0) - { - // encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8 - counter[1] = incWord(counter[1]); - } - return counter; - } - - var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({ - processBlock: function (words, offset) { - // Shortcuts - var cipher = this._cipher - var blockSize = cipher.blockSize; - var iv = this._iv; - var counter = this._counter; - - // Generate keystream - if (iv) { - counter = this._counter = iv.slice(0); - - // Remove IV for subsequent blocks - this._iv = undefined; - } - - incCounter(counter); - - var keystream = counter.slice(0); - cipher.encryptBlock(keystream, 0); - - // Encrypt - for (var i = 0; i < blockSize; i++) { - words[offset + i] ^= keystream[i]; - } - } - }); - - CTRGladman.Decryptor = Encryptor; - - return CTRGladman; - }()); - - - - - /** - * Output Feedback block mode. - */ - CryptoJS.mode.OFB = (function () { - var OFB = CryptoJS.lib.BlockCipherMode.extend(); - - var Encryptor = OFB.Encryptor = OFB.extend({ - processBlock: function (words, offset) { - // Shortcuts - var cipher = this._cipher - var blockSize = cipher.blockSize; - var iv = this._iv; - var keystream = this._keystream; - - // Generate keystream - if (iv) { - keystream = this._keystream = iv.slice(0); - - // Remove IV for subsequent blocks - this._iv = undefined; - } - cipher.encryptBlock(keystream, 0); - - // Encrypt - for (var i = 0; i < blockSize; i++) { - words[offset + i] ^= keystream[i]; - } - } - }); - - OFB.Decryptor = Encryptor; - - return OFB; - }()); - - - /** - * Electronic Codebook block mode. - */ - CryptoJS.mode.ECB = (function () { - var ECB = CryptoJS.lib.BlockCipherMode.extend(); - - ECB.Encryptor = ECB.extend({ - processBlock: function (words, offset) { - this._cipher.encryptBlock(words, offset); - } - }); - - ECB.Decryptor = ECB.extend({ - processBlock: function (words, offset) { - this._cipher.decryptBlock(words, offset); - } - }); - - return ECB; - }()); - - - /** - * ANSI X.923 padding strategy. - */ - CryptoJS.pad.AnsiX923 = { - pad: function (data, blockSize) { - // Shortcuts - var dataSigBytes = data.sigBytes; - var blockSizeBytes = blockSize * 4; - - // Count padding bytes - var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes; - - // Compute last byte position - var lastBytePos = dataSigBytes + nPaddingBytes - 1; - - // Pad - data.clamp(); - data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8); - data.sigBytes += nPaddingBytes; - }, - - unpad: function (data) { - // Get number of padding bytes from last byte - var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; - - // Remove padding - data.sigBytes -= nPaddingBytes; - } - }; - - - /** - * ISO 10126 padding strategy. - */ - CryptoJS.pad.Iso10126 = { - pad: function (data, blockSize) { - // Shortcut - var blockSizeBytes = blockSize * 4; - - // Count padding bytes - var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; - - // Pad - data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)). - concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1)); - }, - - unpad: function (data) { - // Get number of padding bytes from last byte - var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; - - // Remove padding - data.sigBytes -= nPaddingBytes; - } - }; - - - /** - * ISO/IEC 9797-1 Padding Method 2. - */ - CryptoJS.pad.Iso97971 = { - pad: function (data, blockSize) { - // Add 0x80 byte - data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1)); - - // Zero pad the rest - CryptoJS.pad.ZeroPadding.pad(data, blockSize); - }, - - unpad: function (data) { - // Remove zero padding - CryptoJS.pad.ZeroPadding.unpad(data); - - // Remove one more byte -- the 0x80 byte - data.sigBytes--; - } - }; - - - /** - * Zero padding strategy. - */ - CryptoJS.pad.ZeroPadding = { - pad: function (data, blockSize) { - // Shortcut - var blockSizeBytes = blockSize * 4; - - // Pad - data.clamp(); - data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes); - }, - - unpad: function (data) { - // Shortcut - var dataWords = data.words; - - // Unpad - var i = data.sigBytes - 1; - for (var i = data.sigBytes - 1; i >= 0; i--) { - if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) { - data.sigBytes = i + 1; - break; - } - } - } - }; - - - /** - * A noop padding strategy. - */ - CryptoJS.pad.NoPadding = { - pad: function () { - }, - - unpad: function () { - } - }; - - - (function (undefined) { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var CipherParams = C_lib.CipherParams; - var C_enc = C.enc; - var Hex = C_enc.Hex; - var C_format = C.format; - - var HexFormatter = C_format.Hex = { - /** - * Converts the ciphertext of a cipher params object to a hexadecimally encoded string. - * - * @param {CipherParams} cipherParams The cipher params object. - * - * @return {string} The hexadecimally encoded string. - * - * @static - * - * @example - * - * var hexString = CryptoJS.format.Hex.stringify(cipherParams); - */ - stringify: function (cipherParams) { - return cipherParams.ciphertext.toString(Hex); - }, - - /** - * Converts a hexadecimally encoded ciphertext string to a cipher params object. - * - * @param {string} input The hexadecimally encoded string. - * - * @return {CipherParams} The cipher params object. - * - * @static - * - * @example - * - * var cipherParams = CryptoJS.format.Hex.parse(hexString); - */ - parse: function (input) { - var ciphertext = Hex.parse(input); - return CipherParams.create({ ciphertext: ciphertext }); - } - }; - }()); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var BlockCipher = C_lib.BlockCipher; - var C_algo = C.algo; - - // Lookup tables - var SBOX = []; - var INV_SBOX = []; - var SUB_MIX_0 = []; - var SUB_MIX_1 = []; - var SUB_MIX_2 = []; - var SUB_MIX_3 = []; - var INV_SUB_MIX_0 = []; - var INV_SUB_MIX_1 = []; - var INV_SUB_MIX_2 = []; - var INV_SUB_MIX_3 = []; - - // Compute lookup tables - (function () { - // Compute double table - var d = []; - for (var i = 0; i < 256; i++) { - if (i < 128) { - d[i] = i << 1; - } else { - d[i] = (i << 1) ^ 0x11b; - } - } - - // Walk GF(2^8) - var x = 0; - var xi = 0; - for (var i = 0; i < 256; i++) { - // Compute sbox - var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4); - sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63; - SBOX[x] = sx; - INV_SBOX[sx] = x; - - // Compute multiplication - var x2 = d[x]; - var x4 = d[x2]; - var x8 = d[x4]; - - // Compute sub bytes, mix columns tables - var t = (d[sx] * 0x101) ^ (sx * 0x1010100); - SUB_MIX_0[x] = (t << 24) | (t >>> 8); - SUB_MIX_1[x] = (t << 16) | (t >>> 16); - SUB_MIX_2[x] = (t << 8) | (t >>> 24); - SUB_MIX_3[x] = t; - - // Compute inv sub bytes, inv mix columns tables - var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100); - INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8); - INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16); - INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24); - INV_SUB_MIX_3[sx] = t; - - // Compute next counter - if (!x) { - x = xi = 1; - } else { - x = x2 ^ d[d[d[x8 ^ x2]]]; - xi ^= d[d[xi]]; - } - } - }()); - - // Precomputed Rcon lookup - var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]; - - /** - * AES block cipher algorithm. - */ - var AES = C_algo.AES = BlockCipher.extend({ - _doReset: function () { - var t; - - // Skip reset of nRounds has been set before and key did not change - if (this._nRounds && this._keyPriorReset === this._key) { - return; - } - - // Shortcuts - var key = this._keyPriorReset = this._key; - var keyWords = key.words; - var keySize = key.sigBytes / 4; - - // Compute number of rounds - var nRounds = this._nRounds = keySize + 6; - - // Compute number of key schedule rows - var ksRows = (nRounds + 1) * 4; - - // Compute key schedule - var keySchedule = this._keySchedule = []; - for (var ksRow = 0; ksRow < ksRows; ksRow++) { - if (ksRow < keySize) { - keySchedule[ksRow] = keyWords[ksRow]; - } else { - t = keySchedule[ksRow - 1]; - - if (!(ksRow % keySize)) { - // Rot word - t = (t << 8) | (t >>> 24); - - // Sub word - t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff]; - - // Mix Rcon - t ^= RCON[(ksRow / keySize) | 0] << 24; - } else if (keySize > 6 && ksRow % keySize == 4) { - // Sub word - t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff]; - } - - keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t; - } - } - - // Compute inv key schedule - var invKeySchedule = this._invKeySchedule = []; - for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) { - var ksRow = ksRows - invKsRow; - - if (invKsRow % 4) { - var t = keySchedule[ksRow]; - } else { - var t = keySchedule[ksRow - 4]; - } - - if (invKsRow < 4 || ksRow <= 4) { - invKeySchedule[invKsRow] = t; - } else { - invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^ - INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]]; - } - } - }, - - encryptBlock: function (M, offset) { - this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX); - }, - - decryptBlock: function (M, offset) { - // Swap 2nd and 4th rows - var t = M[offset + 1]; - M[offset + 1] = M[offset + 3]; - M[offset + 3] = t; - - this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX); - - // Inv swap 2nd and 4th rows - var t = M[offset + 1]; - M[offset + 1] = M[offset + 3]; - M[offset + 3] = t; - }, - - _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) { - // Shortcut - var nRounds = this._nRounds; - - // Get input, add round key - var s0 = M[offset] ^ keySchedule[0]; - var s1 = M[offset + 1] ^ keySchedule[1]; - var s2 = M[offset + 2] ^ keySchedule[2]; - var s3 = M[offset + 3] ^ keySchedule[3]; - - // Key schedule row counter - var ksRow = 4; - - // Rounds - for (var round = 1; round < nRounds; round++) { - // Shift rows, sub bytes, mix columns, add round key - var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++]; - var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++]; - var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++]; - var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++]; - - // Update state - s0 = t0; - s1 = t1; - s2 = t2; - s3 = t3; - } - - // Shift rows, sub bytes, add round key - var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]; - var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]; - var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]; - var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]; - - // Set output - M[offset] = t0; - M[offset + 1] = t1; - M[offset + 2] = t2; - M[offset + 3] = t3; - }, - - keySize: 256/32 - }); - - /** - * Shortcut functions to the cipher's object interface. - * - * @example - * - * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg); - * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg); - */ - C.AES = BlockCipher._createHelper(AES); - }()); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var BlockCipher = C_lib.BlockCipher; - var C_algo = C.algo; - - // Permuted Choice 1 constants - var PC1 = [ - 57, 49, 41, 33, 25, 17, 9, 1, - 58, 50, 42, 34, 26, 18, 10, 2, - 59, 51, 43, 35, 27, 19, 11, 3, - 60, 52, 44, 36, 63, 55, 47, 39, - 31, 23, 15, 7, 62, 54, 46, 38, - 30, 22, 14, 6, 61, 53, 45, 37, - 29, 21, 13, 5, 28, 20, 12, 4 - ]; - - // Permuted Choice 2 constants - var PC2 = [ - 14, 17, 11, 24, 1, 5, - 3, 28, 15, 6, 21, 10, - 23, 19, 12, 4, 26, 8, - 16, 7, 27, 20, 13, 2, - 41, 52, 31, 37, 47, 55, - 30, 40, 51, 45, 33, 48, - 44, 49, 39, 56, 34, 53, - 46, 42, 50, 36, 29, 32 - ]; - - // Cumulative bit shift constants - var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28]; - - // SBOXes and round permutation constants - var SBOX_P = [ - { - 0x0: 0x808200, - 0x10000000: 0x8000, - 0x20000000: 0x808002, - 0x30000000: 0x2, - 0x40000000: 0x200, - 0x50000000: 0x808202, - 0x60000000: 0x800202, - 0x70000000: 0x800000, - 0x80000000: 0x202, - 0x90000000: 0x800200, - 0xa0000000: 0x8200, - 0xb0000000: 0x808000, - 0xc0000000: 0x8002, - 0xd0000000: 0x800002, - 0xe0000000: 0x0, - 0xf0000000: 0x8202, - 0x8000000: 0x0, - 0x18000000: 0x808202, - 0x28000000: 0x8202, - 0x38000000: 0x8000, - 0x48000000: 0x808200, - 0x58000000: 0x200, - 0x68000000: 0x808002, - 0x78000000: 0x2, - 0x88000000: 0x800200, - 0x98000000: 0x8200, - 0xa8000000: 0x808000, - 0xb8000000: 0x800202, - 0xc8000000: 0x800002, - 0xd8000000: 0x8002, - 0xe8000000: 0x202, - 0xf8000000: 0x800000, - 0x1: 0x8000, - 0x10000001: 0x2, - 0x20000001: 0x808200, - 0x30000001: 0x800000, - 0x40000001: 0x808002, - 0x50000001: 0x8200, - 0x60000001: 0x200, - 0x70000001: 0x800202, - 0x80000001: 0x808202, - 0x90000001: 0x808000, - 0xa0000001: 0x800002, - 0xb0000001: 0x8202, - 0xc0000001: 0x202, - 0xd0000001: 0x800200, - 0xe0000001: 0x8002, - 0xf0000001: 0x0, - 0x8000001: 0x808202, - 0x18000001: 0x808000, - 0x28000001: 0x800000, - 0x38000001: 0x200, - 0x48000001: 0x8000, - 0x58000001: 0x800002, - 0x68000001: 0x2, - 0x78000001: 0x8202, - 0x88000001: 0x8002, - 0x98000001: 0x800202, - 0xa8000001: 0x202, - 0xb8000001: 0x808200, - 0xc8000001: 0x800200, - 0xd8000001: 0x0, - 0xe8000001: 0x8200, - 0xf8000001: 0x808002 - }, - { - 0x0: 0x40084010, - 0x1000000: 0x4000, - 0x2000000: 0x80000, - 0x3000000: 0x40080010, - 0x4000000: 0x40000010, - 0x5000000: 0x40084000, - 0x6000000: 0x40004000, - 0x7000000: 0x10, - 0x8000000: 0x84000, - 0x9000000: 0x40004010, - 0xa000000: 0x40000000, - 0xb000000: 0x84010, - 0xc000000: 0x80010, - 0xd000000: 0x0, - 0xe000000: 0x4010, - 0xf000000: 0x40080000, - 0x800000: 0x40004000, - 0x1800000: 0x84010, - 0x2800000: 0x10, - 0x3800000: 0x40004010, - 0x4800000: 0x40084010, - 0x5800000: 0x40000000, - 0x6800000: 0x80000, - 0x7800000: 0x40080010, - 0x8800000: 0x80010, - 0x9800000: 0x0, - 0xa800000: 0x4000, - 0xb800000: 0x40080000, - 0xc800000: 0x40000010, - 0xd800000: 0x84000, - 0xe800000: 0x40084000, - 0xf800000: 0x4010, - 0x10000000: 0x0, - 0x11000000: 0x40080010, - 0x12000000: 0x40004010, - 0x13000000: 0x40084000, - 0x14000000: 0x40080000, - 0x15000000: 0x10, - 0x16000000: 0x84010, - 0x17000000: 0x4000, - 0x18000000: 0x4010, - 0x19000000: 0x80000, - 0x1a000000: 0x80010, - 0x1b000000: 0x40000010, - 0x1c000000: 0x84000, - 0x1d000000: 0x40004000, - 0x1e000000: 0x40000000, - 0x1f000000: 0x40084010, - 0x10800000: 0x84010, - 0x11800000: 0x80000, - 0x12800000: 0x40080000, - 0x13800000: 0x4000, - 0x14800000: 0x40004000, - 0x15800000: 0x40084010, - 0x16800000: 0x10, - 0x17800000: 0x40000000, - 0x18800000: 0x40084000, - 0x19800000: 0x40000010, - 0x1a800000: 0x40004010, - 0x1b800000: 0x80010, - 0x1c800000: 0x0, - 0x1d800000: 0x4010, - 0x1e800000: 0x40080010, - 0x1f800000: 0x84000 - }, - { - 0x0: 0x104, - 0x100000: 0x0, - 0x200000: 0x4000100, - 0x300000: 0x10104, - 0x400000: 0x10004, - 0x500000: 0x4000004, - 0x600000: 0x4010104, - 0x700000: 0x4010000, - 0x800000: 0x4000000, - 0x900000: 0x4010100, - 0xa00000: 0x10100, - 0xb00000: 0x4010004, - 0xc00000: 0x4000104, - 0xd00000: 0x10000, - 0xe00000: 0x4, - 0xf00000: 0x100, - 0x80000: 0x4010100, - 0x180000: 0x4010004, - 0x280000: 0x0, - 0x380000: 0x4000100, - 0x480000: 0x4000004, - 0x580000: 0x10000, - 0x680000: 0x10004, - 0x780000: 0x104, - 0x880000: 0x4, - 0x980000: 0x100, - 0xa80000: 0x4010000, - 0xb80000: 0x10104, - 0xc80000: 0x10100, - 0xd80000: 0x4000104, - 0xe80000: 0x4010104, - 0xf80000: 0x4000000, - 0x1000000: 0x4010100, - 0x1100000: 0x10004, - 0x1200000: 0x10000, - 0x1300000: 0x4000100, - 0x1400000: 0x100, - 0x1500000: 0x4010104, - 0x1600000: 0x4000004, - 0x1700000: 0x0, - 0x1800000: 0x4000104, - 0x1900000: 0x4000000, - 0x1a00000: 0x4, - 0x1b00000: 0x10100, - 0x1c00000: 0x4010000, - 0x1d00000: 0x104, - 0x1e00000: 0x10104, - 0x1f00000: 0x4010004, - 0x1080000: 0x4000000, - 0x1180000: 0x104, - 0x1280000: 0x4010100, - 0x1380000: 0x0, - 0x1480000: 0x10004, - 0x1580000: 0x4000100, - 0x1680000: 0x100, - 0x1780000: 0x4010004, - 0x1880000: 0x10000, - 0x1980000: 0x4010104, - 0x1a80000: 0x10104, - 0x1b80000: 0x4000004, - 0x1c80000: 0x4000104, - 0x1d80000: 0x4010000, - 0x1e80000: 0x4, - 0x1f80000: 0x10100 - }, - { - 0x0: 0x80401000, - 0x10000: 0x80001040, - 0x20000: 0x401040, - 0x30000: 0x80400000, - 0x40000: 0x0, - 0x50000: 0x401000, - 0x60000: 0x80000040, - 0x70000: 0x400040, - 0x80000: 0x80000000, - 0x90000: 0x400000, - 0xa0000: 0x40, - 0xb0000: 0x80001000, - 0xc0000: 0x80400040, - 0xd0000: 0x1040, - 0xe0000: 0x1000, - 0xf0000: 0x80401040, - 0x8000: 0x80001040, - 0x18000: 0x40, - 0x28000: 0x80400040, - 0x38000: 0x80001000, - 0x48000: 0x401000, - 0x58000: 0x80401040, - 0x68000: 0x0, - 0x78000: 0x80400000, - 0x88000: 0x1000, - 0x98000: 0x80401000, - 0xa8000: 0x400000, - 0xb8000: 0x1040, - 0xc8000: 0x80000000, - 0xd8000: 0x400040, - 0xe8000: 0x401040, - 0xf8000: 0x80000040, - 0x100000: 0x400040, - 0x110000: 0x401000, - 0x120000: 0x80000040, - 0x130000: 0x0, - 0x140000: 0x1040, - 0x150000: 0x80400040, - 0x160000: 0x80401000, - 0x170000: 0x80001040, - 0x180000: 0x80401040, - 0x190000: 0x80000000, - 0x1a0000: 0x80400000, - 0x1b0000: 0x401040, - 0x1c0000: 0x80001000, - 0x1d0000: 0x400000, - 0x1e0000: 0x40, - 0x1f0000: 0x1000, - 0x108000: 0x80400000, - 0x118000: 0x80401040, - 0x128000: 0x0, - 0x138000: 0x401000, - 0x148000: 0x400040, - 0x158000: 0x80000000, - 0x168000: 0x80001040, - 0x178000: 0x40, - 0x188000: 0x80000040, - 0x198000: 0x1000, - 0x1a8000: 0x80001000, - 0x1b8000: 0x80400040, - 0x1c8000: 0x1040, - 0x1d8000: 0x80401000, - 0x1e8000: 0x400000, - 0x1f8000: 0x401040 - }, - { - 0x0: 0x80, - 0x1000: 0x1040000, - 0x2000: 0x40000, - 0x3000: 0x20000000, - 0x4000: 0x20040080, - 0x5000: 0x1000080, - 0x6000: 0x21000080, - 0x7000: 0x40080, - 0x8000: 0x1000000, - 0x9000: 0x20040000, - 0xa000: 0x20000080, - 0xb000: 0x21040080, - 0xc000: 0x21040000, - 0xd000: 0x0, - 0xe000: 0x1040080, - 0xf000: 0x21000000, - 0x800: 0x1040080, - 0x1800: 0x21000080, - 0x2800: 0x80, - 0x3800: 0x1040000, - 0x4800: 0x40000, - 0x5800: 0x20040080, - 0x6800: 0x21040000, - 0x7800: 0x20000000, - 0x8800: 0x20040000, - 0x9800: 0x0, - 0xa800: 0x21040080, - 0xb800: 0x1000080, - 0xc800: 0x20000080, - 0xd800: 0x21000000, - 0xe800: 0x1000000, - 0xf800: 0x40080, - 0x10000: 0x40000, - 0x11000: 0x80, - 0x12000: 0x20000000, - 0x13000: 0x21000080, - 0x14000: 0x1000080, - 0x15000: 0x21040000, - 0x16000: 0x20040080, - 0x17000: 0x1000000, - 0x18000: 0x21040080, - 0x19000: 0x21000000, - 0x1a000: 0x1040000, - 0x1b000: 0x20040000, - 0x1c000: 0x40080, - 0x1d000: 0x20000080, - 0x1e000: 0x0, - 0x1f000: 0x1040080, - 0x10800: 0x21000080, - 0x11800: 0x1000000, - 0x12800: 0x1040000, - 0x13800: 0x20040080, - 0x14800: 0x20000000, - 0x15800: 0x1040080, - 0x16800: 0x80, - 0x17800: 0x21040000, - 0x18800: 0x40080, - 0x19800: 0x21040080, - 0x1a800: 0x0, - 0x1b800: 0x21000000, - 0x1c800: 0x1000080, - 0x1d800: 0x40000, - 0x1e800: 0x20040000, - 0x1f800: 0x20000080 - }, - { - 0x0: 0x10000008, - 0x100: 0x2000, - 0x200: 0x10200000, - 0x300: 0x10202008, - 0x400: 0x10002000, - 0x500: 0x200000, - 0x600: 0x200008, - 0x700: 0x10000000, - 0x800: 0x0, - 0x900: 0x10002008, - 0xa00: 0x202000, - 0xb00: 0x8, - 0xc00: 0x10200008, - 0xd00: 0x202008, - 0xe00: 0x2008, - 0xf00: 0x10202000, - 0x80: 0x10200000, - 0x180: 0x10202008, - 0x280: 0x8, - 0x380: 0x200000, - 0x480: 0x202008, - 0x580: 0x10000008, - 0x680: 0x10002000, - 0x780: 0x2008, - 0x880: 0x200008, - 0x980: 0x2000, - 0xa80: 0x10002008, - 0xb80: 0x10200008, - 0xc80: 0x0, - 0xd80: 0x10202000, - 0xe80: 0x202000, - 0xf80: 0x10000000, - 0x1000: 0x10002000, - 0x1100: 0x10200008, - 0x1200: 0x10202008, - 0x1300: 0x2008, - 0x1400: 0x200000, - 0x1500: 0x10000000, - 0x1600: 0x10000008, - 0x1700: 0x202000, - 0x1800: 0x202008, - 0x1900: 0x0, - 0x1a00: 0x8, - 0x1b00: 0x10200000, - 0x1c00: 0x2000, - 0x1d00: 0x10002008, - 0x1e00: 0x10202000, - 0x1f00: 0x200008, - 0x1080: 0x8, - 0x1180: 0x202000, - 0x1280: 0x200000, - 0x1380: 0x10000008, - 0x1480: 0x10002000, - 0x1580: 0x2008, - 0x1680: 0x10202008, - 0x1780: 0x10200000, - 0x1880: 0x10202000, - 0x1980: 0x10200008, - 0x1a80: 0x2000, - 0x1b80: 0x202008, - 0x1c80: 0x200008, - 0x1d80: 0x0, - 0x1e80: 0x10000000, - 0x1f80: 0x10002008 - }, - { - 0x0: 0x100000, - 0x10: 0x2000401, - 0x20: 0x400, - 0x30: 0x100401, - 0x40: 0x2100401, - 0x50: 0x0, - 0x60: 0x1, - 0x70: 0x2100001, - 0x80: 0x2000400, - 0x90: 0x100001, - 0xa0: 0x2000001, - 0xb0: 0x2100400, - 0xc0: 0x2100000, - 0xd0: 0x401, - 0xe0: 0x100400, - 0xf0: 0x2000000, - 0x8: 0x2100001, - 0x18: 0x0, - 0x28: 0x2000401, - 0x38: 0x2100400, - 0x48: 0x100000, - 0x58: 0x2000001, - 0x68: 0x2000000, - 0x78: 0x401, - 0x88: 0x100401, - 0x98: 0x2000400, - 0xa8: 0x2100000, - 0xb8: 0x100001, - 0xc8: 0x400, - 0xd8: 0x2100401, - 0xe8: 0x1, - 0xf8: 0x100400, - 0x100: 0x2000000, - 0x110: 0x100000, - 0x120: 0x2000401, - 0x130: 0x2100001, - 0x140: 0x100001, - 0x150: 0x2000400, - 0x160: 0x2100400, - 0x170: 0x100401, - 0x180: 0x401, - 0x190: 0x2100401, - 0x1a0: 0x100400, - 0x1b0: 0x1, - 0x1c0: 0x0, - 0x1d0: 0x2100000, - 0x1e0: 0x2000001, - 0x1f0: 0x400, - 0x108: 0x100400, - 0x118: 0x2000401, - 0x128: 0x2100001, - 0x138: 0x1, - 0x148: 0x2000000, - 0x158: 0x100000, - 0x168: 0x401, - 0x178: 0x2100400, - 0x188: 0x2000001, - 0x198: 0x2100000, - 0x1a8: 0x0, - 0x1b8: 0x2100401, - 0x1c8: 0x100401, - 0x1d8: 0x400, - 0x1e8: 0x2000400, - 0x1f8: 0x100001 - }, - { - 0x0: 0x8000820, - 0x1: 0x20000, - 0x2: 0x8000000, - 0x3: 0x20, - 0x4: 0x20020, - 0x5: 0x8020820, - 0x6: 0x8020800, - 0x7: 0x800, - 0x8: 0x8020000, - 0x9: 0x8000800, - 0xa: 0x20800, - 0xb: 0x8020020, - 0xc: 0x820, - 0xd: 0x0, - 0xe: 0x8000020, - 0xf: 0x20820, - 0x80000000: 0x800, - 0x80000001: 0x8020820, - 0x80000002: 0x8000820, - 0x80000003: 0x8000000, - 0x80000004: 0x8020000, - 0x80000005: 0x20800, - 0x80000006: 0x20820, - 0x80000007: 0x20, - 0x80000008: 0x8000020, - 0x80000009: 0x820, - 0x8000000a: 0x20020, - 0x8000000b: 0x8020800, - 0x8000000c: 0x0, - 0x8000000d: 0x8020020, - 0x8000000e: 0x8000800, - 0x8000000f: 0x20000, - 0x10: 0x20820, - 0x11: 0x8020800, - 0x12: 0x20, - 0x13: 0x800, - 0x14: 0x8000800, - 0x15: 0x8000020, - 0x16: 0x8020020, - 0x17: 0x20000, - 0x18: 0x0, - 0x19: 0x20020, - 0x1a: 0x8020000, - 0x1b: 0x8000820, - 0x1c: 0x8020820, - 0x1d: 0x20800, - 0x1e: 0x820, - 0x1f: 0x8000000, - 0x80000010: 0x20000, - 0x80000011: 0x800, - 0x80000012: 0x8020020, - 0x80000013: 0x20820, - 0x80000014: 0x20, - 0x80000015: 0x8020000, - 0x80000016: 0x8000000, - 0x80000017: 0x8000820, - 0x80000018: 0x8020820, - 0x80000019: 0x8000020, - 0x8000001a: 0x8000800, - 0x8000001b: 0x0, - 0x8000001c: 0x20800, - 0x8000001d: 0x820, - 0x8000001e: 0x20020, - 0x8000001f: 0x8020800 - } - ]; - - // Masks that select the SBOX input - var SBOX_MASK = [ - 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000, - 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f - ]; - - /** - * DES block cipher algorithm. - */ - var DES = C_algo.DES = BlockCipher.extend({ - _doReset: function () { - // Shortcuts - var key = this._key; - var keyWords = key.words; - - // Select 56 bits according to PC1 - var keyBits = []; - for (var i = 0; i < 56; i++) { - var keyBitPos = PC1[i] - 1; - keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1; - } - - // Assemble 16 subkeys - var subKeys = this._subKeys = []; - for (var nSubKey = 0; nSubKey < 16; nSubKey++) { - // Create subkey - var subKey = subKeys[nSubKey] = []; - - // Shortcut - var bitShift = BIT_SHIFTS[nSubKey]; - - // Select 48 bits according to PC2 - for (var i = 0; i < 24; i++) { - // Select from the left 28 key bits - subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6); - - // Select from the right 28 key bits - subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6); - } - - // Since each subkey is applied to an expanded 32-bit input, - // the subkey can be broken into 8 values scaled to 32-bits, - // which allows the key to be used without expansion - subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31); - for (var i = 1; i < 7; i++) { - subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3); - } - subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27); - } - - // Compute inverse subkeys - var invSubKeys = this._invSubKeys = []; - for (var i = 0; i < 16; i++) { - invSubKeys[i] = subKeys[15 - i]; - } - }, - - encryptBlock: function (M, offset) { - this._doCryptBlock(M, offset, this._subKeys); - }, - - decryptBlock: function (M, offset) { - this._doCryptBlock(M, offset, this._invSubKeys); - }, - - _doCryptBlock: function (M, offset, subKeys) { - // Get input - this._lBlock = M[offset]; - this._rBlock = M[offset + 1]; - - // Initial permutation - exchangeLR.call(this, 4, 0x0f0f0f0f); - exchangeLR.call(this, 16, 0x0000ffff); - exchangeRL.call(this, 2, 0x33333333); - exchangeRL.call(this, 8, 0x00ff00ff); - exchangeLR.call(this, 1, 0x55555555); - - // Rounds - for (var round = 0; round < 16; round++) { - // Shortcuts - var subKey = subKeys[round]; - var lBlock = this._lBlock; - var rBlock = this._rBlock; - - // Feistel function - var f = 0; - for (var i = 0; i < 8; i++) { - f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0]; - } - this._lBlock = rBlock; - this._rBlock = lBlock ^ f; - } - - // Undo swap from last round - var t = this._lBlock; - this._lBlock = this._rBlock; - this._rBlock = t; - - // Final permutation - exchangeLR.call(this, 1, 0x55555555); - exchangeRL.call(this, 8, 0x00ff00ff); - exchangeRL.call(this, 2, 0x33333333); - exchangeLR.call(this, 16, 0x0000ffff); - exchangeLR.call(this, 4, 0x0f0f0f0f); - - // Set output - M[offset] = this._lBlock; - M[offset + 1] = this._rBlock; - }, - - keySize: 64/32, - - ivSize: 64/32, - - blockSize: 64/32 - }); - - // Swap bits across the left and right words - function exchangeLR(offset, mask) { - var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask; - this._rBlock ^= t; - this._lBlock ^= t << offset; - } - - function exchangeRL(offset, mask) { - var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask; - this._lBlock ^= t; - this._rBlock ^= t << offset; - } - - /** - * Shortcut functions to the cipher's object interface. - * - * @example - * - * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg); - * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg); - */ - C.DES = BlockCipher._createHelper(DES); - - /** - * Triple-DES block cipher algorithm. - */ - var TripleDES = C_algo.TripleDES = BlockCipher.extend({ - _doReset: function () { - // Shortcuts - var key = this._key; - var keyWords = key.words; - // Make sure the key length is valid (64, 128 or >= 192 bit) - if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) { - throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.'); - } - - // Extend the key according to the keying options defined in 3DES standard - var key1 = keyWords.slice(0, 2); - var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4); - var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6); - - // Create DES instances - this._des1 = DES.createEncryptor(WordArray.create(key1)); - this._des2 = DES.createEncryptor(WordArray.create(key2)); - this._des3 = DES.createEncryptor(WordArray.create(key3)); - }, - - encryptBlock: function (M, offset) { - this._des1.encryptBlock(M, offset); - this._des2.decryptBlock(M, offset); - this._des3.encryptBlock(M, offset); - }, - - decryptBlock: function (M, offset) { - this._des3.decryptBlock(M, offset); - this._des2.encryptBlock(M, offset); - this._des1.decryptBlock(M, offset); - }, - - keySize: 192/32, - - ivSize: 64/32, - - blockSize: 64/32 - }); - - /** - * Shortcut functions to the cipher's object interface. - * - * @example - * - * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg); - * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg); - */ - C.TripleDES = BlockCipher._createHelper(TripleDES); - }()); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var StreamCipher = C_lib.StreamCipher; - var C_algo = C.algo; - - /** - * RC4 stream cipher algorithm. - */ - var RC4 = C_algo.RC4 = StreamCipher.extend({ - _doReset: function () { - // Shortcuts - var key = this._key; - var keyWords = key.words; - var keySigBytes = key.sigBytes; - - // Init sbox - var S = this._S = []; - for (var i = 0; i < 256; i++) { - S[i] = i; - } - - // Key setup - for (var i = 0, j = 0; i < 256; i++) { - var keyByteIndex = i % keySigBytes; - var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff; - - j = (j + S[i] + keyByte) % 256; - - // Swap - var t = S[i]; - S[i] = S[j]; - S[j] = t; - } - - // Counters - this._i = this._j = 0; - }, - - _doProcessBlock: function (M, offset) { - M[offset] ^= generateKeystreamWord.call(this); - }, - - keySize: 256/32, - - ivSize: 0 - }); - - function generateKeystreamWord() { - // Shortcuts - var S = this._S; - var i = this._i; - var j = this._j; - - // Generate keystream word - var keystreamWord = 0; - for (var n = 0; n < 4; n++) { - i = (i + 1) % 256; - j = (j + S[i]) % 256; - - // Swap - var t = S[i]; - S[i] = S[j]; - S[j] = t; - - keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8); - } - - // Update counters - this._i = i; - this._j = j; - - return keystreamWord; - } - - /** - * Shortcut functions to the cipher's object interface. - * - * @example - * - * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg); - * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg); - */ - C.RC4 = StreamCipher._createHelper(RC4); - - /** - * Modified RC4 stream cipher algorithm. - */ - var RC4Drop = C_algo.RC4Drop = RC4.extend({ - /** - * Configuration options. - * - * @property {number} drop The number of keystream words to drop. Default 192 - */ - cfg: RC4.cfg.extend({ - drop: 192 - }), - - _doReset: function () { - RC4._doReset.call(this); - - // Drop - for (var i = this.cfg.drop; i > 0; i--) { - generateKeystreamWord.call(this); - } - } - }); - - /** - * Shortcut functions to the cipher's object interface. - * - * @example - * - * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg); - * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg); - */ - C.RC4Drop = StreamCipher._createHelper(RC4Drop); - }()); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var StreamCipher = C_lib.StreamCipher; - var C_algo = C.algo; - - // Reusable objects - var S = []; - var C_ = []; - var G = []; - - /** - * Rabbit stream cipher algorithm - */ - var Rabbit = C_algo.Rabbit = StreamCipher.extend({ - _doReset: function () { - // Shortcuts - var K = this._key.words; - var iv = this.cfg.iv; - - // Swap endian - for (var i = 0; i < 4; i++) { - K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) | - (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00); - } - - // Generate initial state values - var X = this._X = [ - K[0], (K[3] << 16) | (K[2] >>> 16), - K[1], (K[0] << 16) | (K[3] >>> 16), - K[2], (K[1] << 16) | (K[0] >>> 16), - K[3], (K[2] << 16) | (K[1] >>> 16) - ]; - - // Generate initial counter values - var C = this._C = [ - (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff), - (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff), - (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff), - (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff) - ]; - - // Carry bit - this._b = 0; - - // Iterate the system four times - for (var i = 0; i < 4; i++) { - nextState.call(this); - } - - // Modify the counters - for (var i = 0; i < 8; i++) { - C[i] ^= X[(i + 4) & 7]; - } - - // IV setup - if (iv) { - // Shortcuts - var IV = iv.words; - var IV_0 = IV[0]; - var IV_1 = IV[1]; - - // Generate four subvectors - var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00); - var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00); - var i1 = (i0 >>> 16) | (i2 & 0xffff0000); - var i3 = (i2 << 16) | (i0 & 0x0000ffff); - - // Modify counter values - C[0] ^= i0; - C[1] ^= i1; - C[2] ^= i2; - C[3] ^= i3; - C[4] ^= i0; - C[5] ^= i1; - C[6] ^= i2; - C[7] ^= i3; - - // Iterate the system four times - for (var i = 0; i < 4; i++) { - nextState.call(this); - } - } - }, - - _doProcessBlock: function (M, offset) { - // Shortcut - var X = this._X; - - // Iterate the system - nextState.call(this); - - // Generate four keystream words - S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16); - S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16); - S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16); - S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16); - - for (var i = 0; i < 4; i++) { - // Swap endian - S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) | - (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00); - - // Encrypt - M[offset + i] ^= S[i]; - } - }, - - blockSize: 128/32, - - ivSize: 64/32 - }); - - function nextState() { - // Shortcuts - var X = this._X; - var C = this._C; - - // Save old counter values - for (var i = 0; i < 8; i++) { - C_[i] = C[i]; - } - - // Calculate new counter values - C[0] = (C[0] + 0x4d34d34d + this._b) | 0; - C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0; - C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0; - C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0; - C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0; - C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0; - C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0; - C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0; - this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0; - - // Calculate the g-values - for (var i = 0; i < 8; i++) { - var gx = X[i] + C[i]; - - // Construct high and low argument for squaring - var ga = gx & 0xffff; - var gb = gx >>> 16; - - // Calculate high and low result of squaring - var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb; - var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0); - - // High XOR low - G[i] = gh ^ gl; - } - - // Calculate new state values - X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0; - X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0; - X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0; - X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0; - X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0; - X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0; - X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0; - X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0; - } - - /** - * Shortcut functions to the cipher's object interface. - * - * @example - * - * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg); - * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg); - */ - C.Rabbit = StreamCipher._createHelper(Rabbit); - }()); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var StreamCipher = C_lib.StreamCipher; - var C_algo = C.algo; - - // Reusable objects - var S = []; - var C_ = []; - var G = []; - - /** - * Rabbit stream cipher algorithm. - * - * This is a legacy version that neglected to convert the key to little-endian. - * This error doesn't affect the cipher's security, - * but it does affect its compatibility with other implementations. - */ - var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({ - _doReset: function () { - // Shortcuts - var K = this._key.words; - var iv = this.cfg.iv; - - // Generate initial state values - var X = this._X = [ - K[0], (K[3] << 16) | (K[2] >>> 16), - K[1], (K[0] << 16) | (K[3] >>> 16), - K[2], (K[1] << 16) | (K[0] >>> 16), - K[3], (K[2] << 16) | (K[1] >>> 16) - ]; - - // Generate initial counter values - var C = this._C = [ - (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff), - (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff), - (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff), - (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff) - ]; - - // Carry bit - this._b = 0; - - // Iterate the system four times - for (var i = 0; i < 4; i++) { - nextState.call(this); - } - - // Modify the counters - for (var i = 0; i < 8; i++) { - C[i] ^= X[(i + 4) & 7]; - } - - // IV setup - if (iv) { - // Shortcuts - var IV = iv.words; - var IV_0 = IV[0]; - var IV_1 = IV[1]; - - // Generate four subvectors - var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00); - var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00); - var i1 = (i0 >>> 16) | (i2 & 0xffff0000); - var i3 = (i2 << 16) | (i0 & 0x0000ffff); - - // Modify counter values - C[0] ^= i0; - C[1] ^= i1; - C[2] ^= i2; - C[3] ^= i3; - C[4] ^= i0; - C[5] ^= i1; - C[6] ^= i2; - C[7] ^= i3; - - // Iterate the system four times - for (var i = 0; i < 4; i++) { - nextState.call(this); - } - } - }, - - _doProcessBlock: function (M, offset) { - // Shortcut - var X = this._X; - - // Iterate the system - nextState.call(this); - - // Generate four keystream words - S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16); - S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16); - S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16); - S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16); - - for (var i = 0; i < 4; i++) { - // Swap endian - S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) | - (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00); - - // Encrypt - M[offset + i] ^= S[i]; - } - }, - - blockSize: 128/32, - - ivSize: 64/32 - }); - - function nextState() { - // Shortcuts - var X = this._X; - var C = this._C; - - // Save old counter values - for (var i = 0; i < 8; i++) { - C_[i] = C[i]; - } - - // Calculate new counter values - C[0] = (C[0] + 0x4d34d34d + this._b) | 0; - C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0; - C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0; - C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0; - C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0; - C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0; - C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0; - C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0; - this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0; - - // Calculate the g-values - for (var i = 0; i < 8; i++) { - var gx = X[i] + C[i]; - - // Construct high and low argument for squaring - var ga = gx & 0xffff; - var gb = gx >>> 16; - - // Calculate high and low result of squaring - var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb; - var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0); - - // High XOR low - G[i] = gh ^ gl; - } - - // Calculate new state values - X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0; - X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0; - X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0; - X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0; - X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0; - X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0; - X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0; - X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0; - } - - /** - * Shortcut functions to the cipher's object interface. - * - * @example - * - * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg); - * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg); - */ - C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy); - }()); - - - return CryptoJS; - -})); \ No newline at end of file +//DRPYAZcFGGNyeXB0by1qcy5qcwhyb290DmZhY3RvcnkOZXhwb3J0cwxtb2R1bGUMZGVmaW5lBmFtZBBD +cnlwdG9KUwZsaWIMQ2lwaGVyCG1vZGUGQ0ZCBkNUUhRDVFJHbGFkbWFuBk9GQgZFQ0IGcGFkCnVu +cGFkEEFuc2lYOTIzEElzbzEwMTI2EElzbzk3OTcxFlplcm9QYWRkaW5nEk5vUGFkZGluZwxjcnlw +dG8GZXJyKmNyeXB0b1NlY3VyZVJhbmRvbUludAxjcmVhdGUCQwpDX2xpYghCYXNlEldvcmRBcnJh +eQpDX2VuYwZIZXgMTGF0aW4xCFV0ZjgsQnVmZmVyZWRCbG9ja0FsZ29yaXRobQxIYXNoZXIMQ19h +bGdvDHdpbmRvdwhzZWxmEG1zQ3J5cHRvDnJlcXVpcmUMZXh0ZW5kCGluaXQKY2xhbXAKY2xvbmUM +cmFuZG9tBmVuYxJzdHJpbmdpZnkKcGFyc2UKcmVzZXQOX2FwcGVuZBBfcHJvY2VzcxxfbWluQnVm +ZmVyU2l6ZQZjZmcMdXBkYXRlEGZpbmFsaXplEmJsb2NrU2l6ZRpfY3JlYXRlSGVscGVyIl9jcmVh +dGVIbWFjSGVscGVyCGFsZ28eZ2V0UmFuZG9tVmFsdWVzFnJhbmRvbUJ5dGVzFnJlYWRJbnQzMkxF +hgFOYXRpdmUgY3J5cHRvIG1vZHVsZSBjb3VsZCBub3QgYmUgdXNlZCB0byBnZXQgc2VjdXJlIHJh +bmRvbSBudW1iZXIuAkYGb2JqDnN1YnR5cGUKbWl4SW4Sb3ZlcnJpZGVzHGhhc093blByb3BlcnR5 +DCRzdXBlchBpbnN0YW5jZRRwcm9wZXJ0aWVzGHByb3BlcnR5TmFtZQp3b3JkcxBzaWdCeXRlcw5l +bmNvZGVyEndvcmRBcnJheRJ0aGlzV29yZHMSdGhhdFdvcmRzGHRoaXNTaWdCeXRlcxh0aGF0U2ln +Qnl0ZXMCaRB0aGF0Qnl0ZQJqCGNlaWwIY2FsbApzbGljZQxuQnl0ZXMIcHVzaBBoZXhDaGFycwhi +aXRlDGhleFN0chhoZXhTdHJMZW5ndGgQcGFyc2VJbnQMc3Vic3RyFmxhdGluMUNoYXJzGGZyb21D +aGFyQ29kZRJsYXRpbjFTdHIebGF0aW4xU3RyTGVuZ3RoFGNoYXJDb2RlQXQCZSRkZWNvZGVVUklD +b21wb25lbnQMZXNjYXBlKE1hbGZvcm1lZCBVVEYtOCBkYXRhDnV0ZjhTdHIQdW5lc2NhcGUkZW5j +b2RlVVJJQ29tcG9uZW50Cl9kYXRhFl9uRGF0YUJ5dGVzCGRhdGEOZG9GbHVzaBxwcm9jZXNzZWRX +b3JkcxJkYXRhV29yZHMYZGF0YVNpZ0J5dGVzHGJsb2NrU2l6ZUJ5dGVzGG5CbG9ja3NSZWFkeRZu +V29yZHNSZWFkeRZuQnl0ZXNSZWFkeQxvZmZzZXQGbWF4Bm1pbh5fZG9Qcm9jZXNzQmxvY2sMc3Bs +aWNlEF9kb1Jlc2V0Gm1lc3NhZ2VVcGRhdGUIaGFzaBZfZG9GaW5hbGl6ZQxoYXNoZXIGa2V5CEhN +QUMYWDMyV29yZEFycmF5CkNfeDY0Dlg2NFdvcmQYWDY0V29yZEFycmF5Bng2NAhXb3JkCnRvWDMy +CGhpZ2gGbG93EHg2NFdvcmRzHHg2NFdvcmRzTGVuZ3RoEHgzMldvcmRzDng2NFdvcmQWd29yZHNM +ZW5ndGgSc3VwZXJJbml0DnN1YkluaXQUdHlwZWRBcnJheSh0eXBlZEFycmF5Qnl0ZUxlbmd0aAxi +dWZmZXIUYnl0ZU9mZnNldBRieXRlTGVuZ3RoDlV0ZjE2QkUUc3dhcEVuZGlhbgpVdGYxNg5VdGYx +NkxFFHV0ZjE2Q2hhcnMSY29kZVBvaW50EHV0ZjE2U3RyHHV0ZjE2U3RyTGVuZ3RoCHdvcmQMQmFz +ZTY0EnBhcnNlTG9vcIIBQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9w +cXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0IX21hcAZtYXAWYmFzZTY0Q2hhcnMKYnl0ZTEKYnl0ZTIK +Ynl0ZTMOdHJpcGxldBZwYWRkaW5nQ2hhcgxjaGFyQXQSYmFzZTY0U3RyHmJhc2U2NFN0ckxlbmd0 +aBRyZXZlcnNlTWFwGHBhZGRpbmdJbmRleBZfcmV2ZXJzZU1hcA5pbmRleE9mCmJpdHMxCmJpdHMy +GGJpdHNDb21iaW5lZBJCYXNlNjR1cmyAAUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVm +Z2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LV8SX3NhZmVfbWFwDnVybFNhZmUCVAZNRDUE +RkYER0cESEgESUkOSG1hY01ENQZhYnMGc2luCl9oYXNoAk0Qb2Zmc2V0X2kUTV9vZmZzZXRfaQJI +FE1fb2Zmc2V0XzAUTV9vZmZzZXRfMRRNX29mZnNldF8yFE1fb2Zmc2V0XzMUTV9vZmZzZXRfNBRN +X29mZnNldF81FE1fb2Zmc2V0XzYUTV9vZmZzZXRfNxRNX29mZnNldF84FE1fb2Zmc2V0XzkWTV9v +ZmZzZXRfMTAWTV9vZmZzZXRfMTEWTV9vZmZzZXRfMTIWTV9vZmZzZXRfMTMWTV9vZmZzZXRfMTQW +TV9vZmZzZXRfMTUCYQJiAmMCZBRuQml0c1RvdGFsEm5CaXRzTGVmdBZuQml0c1RvdGFsSBZuQml0 +c1RvdGFsTAZIX2kKZmxvb3ICeAJzAnQCbgJXCFNIQTEQSG1hY1NIQTECSwxTSEEyNTYUSG1hY1NI +QTI1Ng5pc1ByaW1lImdldEZyYWN0aW9uYWxCaXRzDG5QcmltZQZwb3cKc3FydE4MZmFjdG9yCHNx +cnQCZgJnAmgOZ2FtbWEweAxnYW1tYTAOZ2FtbWExeAxnYW1tYTEEY2gGbWFqDHNpZ21hMAxzaWdt +YTEEdDEEdDIMU0hBMjI0FEhtYWNTSEEyMjQcWDY0V29yZF9jcmVhdGUMU0hBNTEyFEhtYWNTSEE1 +MTIESDAESDEESDIESDMESDQESDUESDYESDcGSDBoBkgwbAZIMWgGSDFsBkgyaAZIMmwGSDNoBkgz +bAZINGgGSDRsBkg1aAZINWwGSDZoBkg2bAZIN2gGSDdsBGFoBGFsBGJoBGJsBGNsBGRoBGRsBGVo +BGVsBGZoBGZsBGdoBGdsBGhoBGhsBldpbAZXaWgEV2kQZ2FtbWEweGgQZ2FtbWEweGwOZ2FtbWEw +aA5nYW1tYTBsEGdhbW1hMXhoEGdhbW1hMXhsDmdhbW1hMWgOZ2FtbWExbAZXaTcIV2k3aAhXaTds +CFdpMTYKV2kxNmgKV2kxNmwGY2hoBmNobAhtYWpoCG1hamwOc2lnbWEwaA5zaWdtYTBsDnNpZ21h +MWgOc2lnbWExbARLaQZLaWgGS2lsBnQxbAZ0MWgGdDJsBnQyaAxTSEEzODQUSG1hY1NIQTM4NBZS +SE9fT0ZGU0VUUxRQSV9JTkRFWEVTHlJPVU5EX0NPTlNUQU5UUwhTSEEzGG91dHB1dExlbmd0aBBI +bWFjU0hBMwJ5CG5ld1gIbmV3WQhMRlNSIHJvdW5kQ29uc3RhbnRNc3cgcm91bmRDb25zdGFudExz +dxZiaXRQb3NpdGlvbgpzdGF0ZQxfc3RhdGUebkJsb2NrU2l6ZUxhbmVzBk0yaQhNMmkxCGxhbmUK +cm91bmQIdE1zdwh0THN3BFR4BlR4NAZUeDEMVHgxTXN3DFR4MUxzdxJsYW5lSW5kZXgObGFuZU1z +dw5sYW5lTHN3EnJob09mZnNldA5UUGlMYW5lBFQwDHN0YXRlMApUTGFuZQ5UeDFMYW5lDlR4Mkxh +bmUacm91bmRDb25zdGFudBpibG9ja1NpemVCaXRzIm91dHB1dExlbmd0aEJ5dGVzIm91dHB1dExl +bmd0aExhbmVzEmhhc2hXb3JkcwZfemwGX3pyBl9zbAZfc3IGX2hsBl9ochJSSVBFTUQxNjAEZjEE +ZjIEZjMEZjQEZjUIcm90bBpIbWFjUklQRU1EMTYwBGhyBHpsBHpyBHNsBHNyBGFyBGJyBGNyBGRy +BGVyAnoeaGFzaGVyQmxvY2tTaXplKGhhc2hlckJsb2NrU2l6ZUJ5dGVzCG9LZXkIaUtleRJvS2V5 +V29yZHMSaUtleVdvcmRzDl9oYXNoZXIKX29LZXkKX2lLZXkSaW5uZXJIYXNoCGhtYWMMUEJLREYy +DmtleVNpemUUaXRlcmF0aW9ucw5jb21wdXRlEHBhc3N3b3JkCHNhbHQUZGVyaXZlZEtleRRibG9j +a0luZGV4HmRlcml2ZWRLZXlXb3Jkcx5ibG9ja0luZGV4V29yZHMKYmxvY2sUYmxvY2tXb3JkcyBi +bG9ja1dvcmRzTGVuZ3RoGGludGVybWVkaWF0ZSJpbnRlcm1lZGlhdGVXb3JkcwxFdnBLREYYU3Ry +ZWFtQ2lwaGVyDENfbW9kZR5CbG9ja0NpcGhlck1vZGUGQ0JDCkNfcGFkClBrY3M3FkJsb2NrQ2lw +aGVyGENpcGhlclBhcmFtcxBDX2Zvcm1hdCBPcGVuU1NMRm9ybWF0dGVyJFNlcmlhbGl6YWJsZUNp +cGhlcgpDX2tkZhRPcGVuU1NMS2RmJlBhc3N3b3JkQmFzZWRDaXBoZXIeY3JlYXRlRW5jcnlwdG9y +HmNyZWF0ZURlY3J5cHRvcg5wcm9jZXNzDGl2U2l6ZR5fRU5DX1hGT1JNX01PREUeX0RFQ19YRk9S +TV9NT0RFDnBhZGRpbmcMZm9ybWF0Dk9wZW5TU0wOZW5jcnlwdA5kZWNyeXB0DF9wYXJzZQZrZGYO +ZXhlY3V0ZRJ4Zm9ybU1vZGUUX3hmb3JtTW9kZQhfa2V5FGRhdGFVcGRhdGUkZmluYWxQcm9jZXNz +ZWREYXRhKHNlbGVjdENpcGhlclN0cmF0ZWd5DGNpcGhlchRjaXBoZXJ0ZXh0KGZpbmFsUHJvY2Vz +c2VkQmxvY2tzCmZsdXNoBGl2EkVuY3J5cHRvchJEZWNyeXB0b3IOX2NpcGhlcgZfaXYQeG9yQmxv +Y2sYcHJvY2Vzc0Jsb2NrGGVuY3J5cHRCbG9jaxRfcHJldkJsb2NrEnRoaXNCbG9jaxhkZWNyeXB0 +QmxvY2sablBhZGRpbmdCeXRlcxZwYWRkaW5nV29yZBhwYWRkaW5nV29yZHMWbW9kZUNyZWF0b3IK +X21vZGUSX19jcmVhdG9yGGNpcGhlclBhcmFtcxJmb3JtYXR0ZXIUb3BlblNTTFN0ch5jaXBoZXJ0 +ZXh0V29yZHMSZW5jcnlwdG9yEmNpcGhlckNmZxJhbGdvcml0aG0ScGxhaW50ZXh0GmRlcml2ZWRQ +YXJhbXM2Z2VuZXJhdGVLZXlzdHJlYW1BbmRFbmNyeXB0EmtleXN0cmVhbQ5jb3VudGVyEF9jb3Vu +dGVyDmluY1dvcmQUaW5jQ291bnRlcgRiMQRiMgRiMxRfa2V5c3RyZWFtFmxhc3RCeXRlUG9zGEhl +eEZvcm1hdHRlcghTQk9YEElOVl9TQk9YElNVQl9NSVhfMBJTVUJfTUlYXzESU1VCX01JWF8yElNV +Ql9NSVhfMxpJTlZfU1VCX01JWF8wGklOVl9TVUJfTUlYXzEaSU5WX1NVQl9NSVhfMhpJTlZfU1VC +X01JWF8zCFJDT04GQUVTGl9kb0NyeXB0QmxvY2sEeGkEc3gEeDIEeDQEeDgQa2V5V29yZHMOblJv +dW5kcwxrc1Jvd3MWa2V5U2NoZWR1bGUKa3NSb3ccaW52S2V5U2NoZWR1bGUQaW52S3NSb3cQX25S +b3VuZHMcX2tleVByaW9yUmVzZXQYX2tleVNjaGVkdWxlHl9pbnZLZXlTY2hlZHVsZQRzMARzMQRz +MgRzMwR0MAR0MwZQQzEGUEMyFEJJVF9TSElGVFMMU0JPWF9QElNCT1hfTUFTSwZERVMUZXhjaGFu +Z2VMUhRleGNoYW5nZVJMElRyaXBsZURFUxQyMTQ3NDgzNjQ4FDI0MTU5MTkxMDQUMjY4NDM1NDU2 +MBQyOTUyNzkwMDE2FDMyMjEyMjU0NzIUMzQ4OTY2MDkyOBQzNzU4MDk2Mzg0FDQwMjY1MzE4NDAU +MjI4MTcwMTM3NhQyNTUwMTM2ODMyFDI4MTg1NzIyODgUMzA4NzAwNzc0NBQzMzU1NDQzMjAwFDM2 +MjM4Nzg2NTYUMzg5MjMxNDExMhQ0MTYwNzQ5NTY4FDIxNDc0ODM2NDkUMjQxNTkxOTEwNRQyNjg0 +MzU0NTYxFDI5NTI3OTAwMTcUMzIyMTIyNTQ3MxQzNDg5NjYwOTI5FDM3NTgwOTYzODUUNDAyNjUz +MTg0MRQyMjgxNzAxMzc3FDI1NTAxMzY4MzMUMjgxODU3MjI4ORQzMDg3MDA3NzQ1FDMzNTU0NDMy +MDEUMzYyMzg3ODY1NxQzODkyMzE0MTEzFDQxNjA3NDk1NjkUMjE0NzQ4MzY1MBQyMTQ3NDgzNjUx +FDIxNDc0ODM2NTIUMjE0NzQ4MzY1MxQyMTQ3NDgzNjU0FDIxNDc0ODM2NTUUMjE0NzQ4MzY1NhQy +MTQ3NDgzNjU3FDIxNDc0ODM2NTgUMjE0NzQ4MzY1ORQyMTQ3NDgzNjYwFDIxNDc0ODM2NjEUMjE0 +NzQ4MzY2MhQyMTQ3NDgzNjYzFDIxNDc0ODM2NjQUMjE0NzQ4MzY2NRQyMTQ3NDgzNjY2FDIxNDc0 +ODM2NjcUMjE0NzQ4MzY2OBQyMTQ3NDgzNjY5FDIxNDc0ODM2NzAUMjE0NzQ4MzY3MRQyMTQ3NDgz +NjcyFDIxNDc0ODM2NzMUMjE0NzQ4MzY3NBQyMTQ3NDgzNjc1FDIxNDc0ODM2NzYUMjE0NzQ4MzY3 +NxQyMTQ3NDgzNjc4FDIxNDc0ODM2NzkOa2V5Qml0cxJrZXlCaXRQb3MOc3ViS2V5cw5uU3ViS2V5 +DHN1YktleRBiaXRTaGlmdBRpbnZTdWJLZXlzEF9zdWJLZXlzFl9pbnZTdWJLZXlzDGxCbG9jawxy +QmxvY2sOX2xCbG9jaw5fckJsb2NrCG1hc2sIa2V5MQhrZXkyCGtleTOaAUludmFsaWQga2V5IGxl +bmd0aCAtIDNERVMgcmVxdWlyZXMgdGhlIGtleSBsZW5ndGggdG8gYmUgNjQsIDEyOCwgMTkyIG9y +ID4xOTIuCl9kZXMxCl9kZXMyCl9kZXMzBlJDNCpnZW5lcmF0ZUtleXN0cmVhbVdvcmQOUkM0RHJv +cAhkcm9wFmtleVNpZ0J5dGVzAlMYa2V5Qnl0ZUluZGV4DmtleUJ5dGUEX1MEX2oEX2kaa2V5c3Ry +ZWFtV29yZARDXwJHDFJhYmJpdBJuZXh0U3RhdGUCWARJVghJVl8wCElWXzEEaTAEaTIEaTEEaTME +X1gEX0MEX2IEZ3gEZ2EEZ2IYUmFiYml0TGVnYWN5D6QDAAAAAA4ABgGgAQABAAMAAg0BEAABAAjH +COgCKb4Aw74B7imkAwEICwAEHAADwmD_Q09MAAghAwADDAACC_9JQwAOQwYBAAIAAgQAAFkCpgMA +AQCoAwABADfVAAAAlwRJAAAAq-gZONYAAAA21QAAANDsFTvVAAAAQ9UAAAApN9cAAACXBBsAAACr +6Bk41wAAAEHYAAAA6A041wAAACYAANDuDik4igAAANDsQ9kAAAAppAMBCANKdgiGOgpA_0NPTAJG +AQAACAAADgAGGAAIFAAAPwAFDgAAFAAFFAAOLQAACAAADgAGFgAIHAAFDgAHCgAAZwAFDgADCAAB +FQADCAAABwAFFgAAFv9JQwOyA6oDsAMOQwYBAAABAAMAJ4kDAbIDAABAwxHpCg6-ADiXAAAA7ce- +AewOvgLsDr4D7A6-BOwOvgXsDr4GOJcAAADtDr4H7A6-CDiXAAAA7Q6-CewOvgrsDr4L7A6-DDiX +AAAA7Q6-DTiXAAAA7Q6-DuwOvg_sDr4Q7A7DQdoAAABB2wAAABHpBQ6-EewOw0HcAAAAvhLsQ90A +AADDQdwAAAC-E-xD3gAAAMNB3AAAAL4U7EPfAAAAw0HcAAAAvhXsQ-AAAADDQdwAAAC-FuxD4QAA +AMNB4gAAAAu-F03iAAAATOIAAAC-GE3jAAAATOMAAABD5AAAAMNB4gAAAAu-GU3iAAAATOIAAAC- +Gk3jAAAATOMAAABD5QAAAMNB4gAAAAu-G03iAAAATOIAAAC-HE3jAAAATOMAAABD5gAAAMNB4gAA +AAu-HU3iAAAATOIAAAC-Hk3jAAAATOMAAABD5wAAAMNB4gAAAAu-H03iAAAATOIAAAC-IE3jAAAA +TOMAAABD6AAAAL4h7A6-IuwOviPsDr4k7A6-JewOvibsDsMopAMOsQEAAA4ABZoMAAm8BAAEdAAE +hgIABOwBAAT2AQAE8gMACYgCAATqAgAJfAAE6AQABIIBAAToBAAJ8gMACf4BAAT-AQAE6AEABAwA +D8gNAAQMAAZwAAgMAAZEAAgQAAawAQAIEAAGPAAIDAAGIAAIDAAHIAAMED8ABQwABxYADBA_AAUM +AAcOAAwQPwAFDAAHEAAMHD8ABQwnQT8ABWAABLADAATyCwAE8gEABNwCAATYAhn_Q09MCOgBAAAN +AAAeAAUYAwACMwAFNAACNwMVAxUDFQMVAxUDDRoLAxUDDRoLAxUDFQMVAw0aCwMNGgsDFQMVAxUA +ARIABQgACRQDAAQvAAESAAUKAAAMAwAIKQABEgAFCgAADAMACCkAARIABQoAABoDAAg3AAESAAUK +AAAMAwAIKQABEgAFCgAADAMACCkAARIABQgAABYAAR1AABEVAAESAAUIAAAWAAEdQAARFQABEgAF +CAAAFgABHUAAERUAARIABQgAABwAASNAABEVAAESAAUIAAAYAAEfQAARFQMVAxUDFQMVAxUDFQAA +Dv9JQw7CA74DzgO4A7YDtAO8A7oDzAPIA9ADwAPKA8QDDkMGAQACDwIGABnHBRGuAgABQIoBAAFA +0gMAAEDUAw8AA9YDAAFA2AMAA0DaAwAEANwDAAUA3gMABkDgAwAHQOIDAAgA5AMACUDmAwAKQOgD +AAtA6gMADEDsAwANAO4DAA5AN_gAAACXBEUAAACs6Bg4-AAAAEHpAAAA6Aw4-AAAAEHpAAAAxzf5 +AAAAlwRFAAAArOgYOPkAAABB6QAAAOgMOPkAAABB6QAAAMc3igAAAJcERQAAAKzoGDiKAAAAQekA +AADoDDiKAAAAQekAAADHw5boJjf4AAAAlwRFAAAArOgYOPgAAABB-gAAAOgMOPgAAABB-gAAAMfD +lugmN24AAACXBEUAAACs6Bg4bgAAAEHpAAAA6Aw4bgAAAEHpAAAAx8OW6C03-wAAAJcEGwAAAKvo +H2wTAAAAOPsAAAAE6QAAAO3HDuoLyGwHAAAADuoCL74ATesAAADJOI8AAABB7AAAABHpBQ6-AezK +C8EEwAQLFUPaAAAAwQXABb4C7BVD7wAAAMEGwAXABkL8AAAAC74DTf0AAABM_QAAAL4ETTcAAABM +NwAAAL4FTVwAAABMXAAAAL4GTf4AAABM_gAAAL4HTf8AAABM_wAAAL4ITQABAABMAAEAACQBABVD +8AAAAMEHwAQLFUMBAQAAwQjACAu-CU0CAQAATAIBAAC-Ck0DAQAATAMBAAAVQ_IAAADBCcAIC74L +TQIBAABMAgEAAL4MTQMBAABMAwEAABVD8wAAAMEKwAgLvg1NAgEAAEwCAQAAvg5NAwEAAEwDAQAA +FUP0AAAAwQvABcAGQvwAAAALvg9NBAEAAEwEAQAAvhBNBQEAAEwFAQAAvhFNBgEAAEwGAQAAvhJN +_wAAAEz_AAAAs0wHAQAAJAEAFUP1AAAAwQzABcAMQvwAAAALwAZC_AAAACQAAEwIAQAAvhNN_QAA +AEz9AAAAvhRNBAEAAEwEAQAAvhVNCQEAAEwJAQAAvhZNCgEAAEwKAQAAvAACuyCbTAsBAAC-F00M +AQAATAwBAAC-GE0NAQAATA0BAAAkAQAVQ_YAAADBDcAECxVDDgEAAMEOwAQopAMVlgEAAAqFAAsI +hQALCIUACwiZAAsImQALCF0cPwANNAAIDAAOHAAECgADCgALCgAC7AEACxAACioADCIADFAADCIA +DCAADC4_AAsKAAsKAAM4AAw0PwAICgADNgAMND8ACAoAAygADCI_AAgSAAoYAAwqAAxyAAwgQCEA +Cw4ACggADyIADB4ADC4ADDRAAAsmAAwmPwALCjv_Q09MHakDAAAvAAAIAAAOAAYWAAgeAAUOAAcQ +AABfAAASAAUOAAYnAAAIAAAOAAYSAAgeAAUKAAcQAABXAAASAAUKAAYjAAAIAAAOAAYeAAgeAAUW +AAcQAABvAAASAAUWAAYvAAAIAwAEFAAADgAGFgAIHgAFDgAHFAAAeQAAEgAFDgAGJwAACAMABBQA +AA4ABhYACB4ABQ4ABxAAAHUAABIABQ4ABicAAAgDAAQUAAAOAAYYAAgYAABTAAUIAAASAAUQAAUP +AA8hAAA4AAg3AAAaAAUOAAkUAwAEPQAAEAADDwAAGA4AAAwACScAABYAAgwAAA4DAAsxAAAgAAIM +AAAYAAIKAAUOAAFHAAwIAAwDPXsADDYAC00AABgOAAAMAAknAAAUAAIMAAAMAAENAAwHABQVAAAa +AAIMAAASAAEZAAwHABQVAAAWAAIMAAAOAAERAAwHABQVAAA6AAIMAAAyAAIKAAUOAAF5QD8ADAUA +DBIABloAC4EBAAAaAAIMAAASAAIuAAUOAAFhAAIKAA0HPz9APwADCAAUCAAMOAALZQAAGg4AAA4A +CSsAAA7_SUMO4APsA_QDtAPqA-gD-APYA5wE5gPSA4IE3gPkAw5DBgEAAAIABgEAeQLUAwcAA9QD +DAAD0gMAAdvoaNtBDwEAAJcEGwAAAKvoJ2wbAAAA20IPAQAAOKYAAAARtCEBACQBALNHDyjHbAcA +AAAO6gIv20EQAQAAlwQbAAAAq-gkbBgAAADbQhABAAC3JAEAQhEBAAAkAAAPKMhsBwAAAA7qAi84 +kQAAABEEEgEAACEBAC-kAz4OAxNOHHEACwhOHGIACwj_Q09MIW8AAC8AAAgAAxAAAA8AAAgAAA4A +AQ4ABigACBgAAFsABQgAAA4AAQ4ABSAAAAgABhgAAR8AAx8AA0gADnMAAAgAAA4AAQ4ABiAACBgA +AFMABQgAAA4AAQ4ABRgAARcAAx4AFFEAAAwAAAgABgwABRP_SUMDoASeBKIEDkMGAQAAAQABAAIG +AaYEAABAvgDHvgEopANWAwADGv9DT0wkBgADNQAADv9JQwAOQwYBpgQAAAAAAAABACmkA1cA_0NP +TAkA_0lDAA5DBgEAAQEBAgEAFgKoBAABAKoEAAAApgQAAdvPQzsAAADbESEAAMfbB0M7AAAAwyik +A1kEBSciJ_9DT0wQIAAABQkAABgABhsAABQAAAgAAgcABBMJAAAYAAYbAAAO_0lDAXYOQwYBAAAA +AAIBBT4A2AMDAQu-AE38AAAATPwAAAC-AU3sAAAATOwAAAC-Ak39AAAATP0AAAC-A00WAQAATBYB +AAC-BE3_AAAATP8AAAAopANzEQUAAVQADCYADB4ADDAADBo__0NPTB4NAAApAAAOAAEKABgDP_9J +QwAOQwYBAAECAQMBAVMDrgQAAQCqBAAAQBAAAQDYAwAACMjbxO3Hz-gMw0IWAQAAzyQBAA7DQhgB +AAAE_QAAACQBAJYR6Q8OxEH9AAAAw0H9AAAAq-gJw74AQ_0AAADDQf0AAADDQzsAAADDxEMZAQAA +wyikA4kBDQ4ZEgALCK0JAAcIQSf_Q09MFWQAAgcAABwAAQ4AAQ0AAhsAAAgAAxYAABUAARAABQwA +AQsABBcAAAgDAAEQAAUeAAUdAAg0AAEKAAUSAAEQAAgMAAB9AAEQAAAOAAclAAEQAAUKAAAYAAYx +AAEQAAASAAYhAAAO_0lDBXayBLAErAT6Aw5DBgEAAAIABAEAGwIQAAEAmgEAAQCqBAABCMcMAMjb +QRkBAABB_QAAAEJaAAAAw8QkAgAppAOUAQIcbP9DT0wkFQAFFQABEAAFDgAFCgAFDAABDAABF_9J +QwO0AbIE-gMOQwYBAAADAAQAACIDtAQAAAAQAAEAmgEAAQAIyAwAycRC_AAAACQAAMfDQf0AAABC +WgAAAMPFJAIADsMopAOuAQMcNVn_Q09MFSEABQcAAB4AAQoACScAARIABQoABQwAARQAAR8ABBsA +AA7_SUMD-AO0AfoDDkMGAQAAAAAAAAABACmkA8EBAQP_Q09MEwD_SUMADkMGAQABAgEFAAA8A7YE +AAEAuAQAAAAQAAEACMjPfOoVx89CGAEAAMMkAQDoCMTDcc_DR0l_6OoODs9CGAEAAAQ3AAAAJAEA +6A3Ez0E3AAAAQzcAAAAppAPPAQcNHD8nHlNA_0NPTBRFAAIFAAAyAAUYAABBAAAIAAEWAAUeAAEd +AAU8AABRAAEKAAIgAAEWAAhPAAAIAAEWAAUeAAUdAAU4AABNAAEKAAAWAAEW_0lDArAEbg5DBgEA +AAEAAwAAFgEQAAEACMfDQf0AAABBOwAAAEL8AAAAwyUBAKQD5QEBDf9DT0wUFQACBQAADgABCgAF +CgAFFAAFDgABDf9JQwP4A3b6Aw5DBgEAAgECAwEAKgO6BAABALwEAAEAEAABAIoBAQMIx8PPEekF +DiYAABVDHQEAANPQ26roCcPQQx4BAAApw8_nt5pDHgEAACmkA_4BBg1UHCYINv9DT0wPNgACAwAA +EAABCgAAEAAFEgAKOwAACAABGAAEFgAALQABCgAAFgAHGQAABQABCgAAFgABDAABEv9JQwO8BLoE +YA5DBgEAAQEBAwEAEQK-BAABABAAAQDkAwkBCMfPEekDDttCAgEAAMMlAQCkA5UCAQ3_Q09MExMA +AgsAAA4DAAUWAAEKAAUUAAET_0lDAYQEDkMGAQABCAEHAAChAQnABAABAMIEAAAAxAQAAQDGBAAC +AMgEAAMAygQABADMBAAFAM4EAAYAEAABAAjBB8AHQR0BAADHz0EdAQAAyMAHQR4BAADJz0EeAQAA +ysAHQv4AAAAkAAAOxbec6ECzwQTABMaj6FfEwAS1oke7GMAEt5y7CJqeorz_AK3BBcPFwASdtaJx +E0fABbsYxcAEnbecuwianqCvSZME6sWzwQbABsaj6BjDxcAGnbWiccTABrWiR0nABredwQbq5MAH +Qh4BAADGnUMeAQAAwAcopAOkAg8TKyYrKDwdMHaKGTBOLEv_Q09MEb8BAAMHAAAgAAIKAAYpAAAg +AAEUAAYzAAAmAAIKAAYvAAAmAAEUAAY5AAIKAAkJAAAIAAEeGQAAIwAAGhQAAggABCYAAEUAAB4D +AAEUAAIMAAMOAwACCgMAAggAAgoABQwABnkAARQDAAEeAAMOAAUMAAIYAwACCgMDAAEeAAMKAAIK +AAdrAAQ9AAAFAAAaFAACCAAELAAASwABFAMAAR4AAw4AAwoAARQAAgwABC8AAgoABlUAAgoABRgA +ByEAAA7_SUMDvAS6BPwDDkMGAQAAAwAHAQE4A7oEAAAAvAQAAQAQAAEArgIAAwjJxUEdAQAAx8VB +HgEAAMjDxLWicRNHvQC7IMS3nLsImp6grUnD20IoAQAAxLebJAEAQzAAAAAppAPIAgUOJihsXf9D +T0wQQQACBQAAGAABCgAGIQAAHgABCgAGJwABDAABGgAFDAACHAMAAgoDAAEWAAIKAAd7AAEMAAAS +AAEKAAUKAAEWAAIf_0lDBLwEugRg0AQGAADg____70EOQwYBAAACAAQBACkC_gMAAAAQAAEA3gMG +AQjI20H_AAAAQikBAADEJAEAx8PEQR0BAABCKgEAALMkAQBDHQEAAMMopAPbAgMNU23_Q09MEC0A +AgUAABgAAQoABQwABQoAAQkABC0AAQwAABAAAQoABQwABQwAAQsACDEAAA7_SUME0gTUBLoE_gMO +QwYBAAECAQQCACoD1gQAAQC6BAAAAMoEAAEA1gMCAeADBwEmAADHs8jEz6PoE8NCLAEAANvsJAEA +DsS3ncjq6txB_QAAABHDzyECACikA-8CBQMYJj8i_0NPTBE6AAAHAAAYAAQXAAAaDwABCAAEIAAA +PwABDAAFCgACCQAEJAABCgAFQQAADgAACAABFAAGCgABDgABM_9JQwLYBPoDDkMGAQABBQEFAABt +BsAEAAEAugQAAAC8BAABANoEAAIAygQAAwDcBAAEAM9BHQEAAMfPQR4BAADIJgAAybPKxsSj6EvD +xrWiR7sYxrecuwianqK8_wCtwQTFQiwBAADABLeiQjcAAAC7ECQBACQBAA7FQiwBAADABLsPrUI3 +AAAAuxAkAQAkAQAOkwPqssVCWwAAAL8lAQCkA5ADCQQmKBcmbHuAGP9DT0wUhQEAAA0AABgAARQA +BisAAB4AARQABjEAAB4ABB0AABoPAAEIAAQeAAA9AAAWAwABDAABDAADDgMAAgoDAAEIAAIKAAUM +AAZpAAESAAUKAwACEg8ABRIAAhEAAyMABBEAARIABQoDAAIOAAMMAAUSAAIRAAMlAAQiAAQ7AAAO +AAESAAUKAAEJ_0lDBbYB2AS8BLoEbg5DBgEAAQMBCAEASQTeBAABAOAEAAAAugQAAQDKBAACAOAD +BwHP58cmAADIs8nFw6PoLcTFtqJxE0c4MQEAAM9CMgEAAMW1JAIAuxDuuxjFuwict5qeoK9JxbWd +yerQ20H9AAAAEcTDtZshAgAopAOtAwYEFBcmwSL_Q09MEGcAAAUAACYAAQ4AAjMAABgABBcAABoP +AAEIAAQsAABLAAEMAAEMAAUMAAUSAAEOAAUOCgABEwADHAACOwABSgMAAgoDAAEIAAMKAAZRAAEK +AAVNAAAOAAAIAAEUAAYKAAEOAAEeAAJR_0lDA-QEYPoDDkMGAQABBQEFAABVBsAEAAEAugQAAAC8 +BAABAOYEAAIAygQAAwDcBAAEAM9BHQEAAMfPQR4BAADIJgAAybPKxsSj6DPDxrWiR7sYxrecuwia +nqK8_wCtwQTFQiwBAAA4kwAAAEI0AQAAwAQkAQAkAQAOkwPqysVCWwAAAL8lAQCkA8wDCAQmKBcm +bIAY_0NPTBRqAAANAAAYAAEUAAYrAAAeAAEUAAYxAAAkAAQjAAAaDwABCAAEHgAAPQAAFgMAAQwA +AQwAAw4DAAIKAwABCAACCgAFDAAGaQABGAAFCgAFDgAFGgACGQADFwAEHAAEOwAADgABGAAFCgAB +Cf9JQwW2AdgEvAToBLoEDkMGAQABAwEHAQBABOoEAAEA7AQAAAC6BAABAMoEAAIA4AMHAc_nxyYA +AMizycXDo-gmxMW1onETR89CNwEAAMUkAQC8_wCtuxjFt5y7CJqeoK9JkwLq19tB_QAAABHEwyEC +ACikA-gDBgQUFyaoGP9DT0wQWwAABQAALAABFAACPwAAGAAEFwAAGg8AAQgABCwAAEsAAQwAAQwA +BQwDAAEUAAUWAAEVAAMgAAQSAwACCgMAAQgAAgoAB0kABEkAAA4AAAgAARQABgoAAQ4AATP_SUMD +YPoD7gQOQwYBAAEBAQYBADMCwAQAAQDwBAMAA-YDCgFsHAAAADg5AQAAODoBAADbQgIBAADPJAEA +7e0PKMdsEwAAADiRAAAAEQQ7AQAAIQEALy-kA4cEBQMcdiZJ_0NPTBQtAAANAAUIAAAOAAUmAAUO +AAEOAAUUAAETAAMbAAElAAkNAAAMAAAIAAYMAAUT_0lDAYQEDkMGAQABAAEFAQAWAfgEAAEA5gMK +AdtCAwEAADg9AQAAOD4BAADP7e0lAQCkA5wEAQP_Q09MEBsAAAUAAA4AAQ4ABQwABRIABSYAASUA +AREAAQv_SUMBhgQOQwYBAAABAAMBABoBEAABAOADBwEIx8PbQf0AAAARIQAAQz8BAADDs0NAAQAA +KaQDsAQDDlMm_0NPTBAbAAIFAAEKAAAQAAAIAAEUAAYbAAgZAAEKAAAc_0lDA4AF_gT6Aw5DBgEA +AQEBAwEAOgKCBQABABAAAQDoAwsBCMfPlwRIAAAAqegM20IDAQAAzyQBANPDQT8BAABCXAAAAM8k +AQAOw0JAAQAAz0EeAQAAnUNAAQAAKaQDwAQHDjUACwhTXf9DT0wSOQACCQAACAAADgACEAAIFAAA +MQAADgABCgAFDAABCwAEHwABCgAFDAAFDgABDQAEFQABCgAFHgABCv9JQwW8BIAFuAGGBP4EDkMG +AQABCwEEAgC9AQyEBQABAIYFAAAAggUAAQCIBQACAIoFAAMAlgQABACMBQAFAI4FAAYAkAUABwCS +BQAIAJQFAAkAEAABAK4CAAPgAwcBCMEKwApBPwEAAMjEQR0BAADJxEEeAQAAysAKQQsBAADBBMAE +t5rBBcbABZvBBs_oENtCKAEAAMAGJAEAwQbqGdtCSwEAAMAGs6_ACkEHAQAAnrMkAgDBBsAGwASa +wQfbQkwBAADAB7eaxiQCAMEIwAfoPbPBCcAJwAej6BjACkJNAQAAxcAJJAIADsAJwASdwQnq48VC +TgEAALPAByQCAMfEQh4BAADACJ5DHgEAANxB_QAAABHDwAghAgAopAPZBBkAAwgrJiYwIyETRA8A +GAgoVRc2STJEAA4I_0NPTBPiAQADCwAAFgACCgAGHwAAIAABCgAGKQAAJgABCgAGLwAAIAACCgAH +KQAAKgACGAAEQQAAJgABHgAFQwAACAADEgAAEQAAHgABCgAFCgACCQAHIQAABQAAHgABCgAFCAMA +Ah4AAgoAAgoABiAAAVsABS8AACQAAh4ABUEAACQAAQoABQgAAhwPAAEpAAUtAAAIAAQaAAAZAAAk +FAACEgAFRAAAdwACCgAFIAABFgACNQAERAACFAAHaQAAIgABFAAFDgoAAhMABDUAAQoABRgACCkA +AA4AAAgAARQABgoAASAAAkX_SUMLvASWBZgFmgW6BI4ElgScBf4E0AT6Aw5DBgEAAAIAAwEAKAL- +AwAAABAAAQDeAwYBCMjbQf8AAABCKQEAAMQkAQDHw8RBPwEAAEL_AAAAJAAAQz8BAADDKKQDjQUD +DVNo_0NPTBAnAAIFAAAYAAEKAAUMAAUKAAEJAAQtAAEMAAAQAAEKAAUMAA0xAAAO_0lDA9IE_gP- +BA5DBgEAAQEBBAAAIQKQBAABABAAAQAIx8PDQQgBAABC_AAAAM8kAQBDCAEAAMNCBAEAACQAACmk +A6sFAw5uMP9DT0wPGwACAwABCgAADAABCgAFCAAFDgABDQAIJwABCv9JQwOIBPgDkAQOQwYBAAAB +AAMBABwBEAABAOoDDAEIx9tBBAEAAEIpAQAAwyQBAA7DQk8BAAAkAAAppAO6BQMOVTD_Q09MEBUA +AgUAAS4ABQwABQoAAQkABDkAAQr_SUMD0gSIBJ4FDkMGAQABAQEDAAAZAqAFAAEAEAABAAjHw0IF +AQAAzyQBAA7DQgYBAAAkAAAOwyikA84FAw48N_9DT0wRGAACBwABCgAFEAABDwAECQABCgAJCQAA +Dv9JQwKKBIwEDkMGAQABAgEDAAAcA6AFAAEAogUAAAAQAAEACMjP6AzEQgUBAADPJAEADsRCUgEA +ACQAAMfDKKQD5wUGDhIACwg2_0NPTBMkAAILAAAIAAMeAAAdAAEKAAUQAAEPAAQRAAAWAAEKAAkf +AAAO_0lDAooEpAUOQwYBAAEAAQEAAQMBpgUAAUC-ACikA4IGAQX_Q09MGAYAABUAAA7_SUMADkMG +AQACAAIDAQAUAmYAAQCQBAABAKYFAAPbQf0AAAAR0CEBAEIKAQAAzyUBAKQDgwYBA_9DT0wUGwAA +BQAADgAACAABDgAGCgABHwADKgAFEgABEf9JQwKUBPoDDkMGAQABAAEBAQEDAaYFAAFA7gMOAb4A +KKQDlQYBBf9DT0wcBgAAHQAADv9JQwAOQwYBAAIAAgQCABoCZgABAKgFAAEA7gMAAKYFAAPbQVUB +AABB_QAAABHc0CECAEIKAQAAzyUBAKQDlgYBA_9DT0wUIQAABQAADgAACAABDgAFCgAGCgABEAAB +OQADRAAFEgABEf9JQwOUBPoDqgUOQwYBAAEHAQUBBHoIigEAAUDaAwAAANwDAAEA3gMAAkCsBQAD +QK4FAAQAsAUABQCyBQAGALIDAAHbx8NB2gAAAMjEQe8AAADJxEHwAAAAysMLFUNaAQAAwQTABMVC +_AAAAAu-AE39AAAATP0AAAAkAQAVQ1sBAADBBcAExUL8AAAAC74BTf0AAABM_QAAAL4CTVwBAABM +XAEAAL4DTf8AAABM_wAAACQBABVD8AAAAMEGKaQDpQYfBA0mJgAHCgAKCgAJHAAMzAIACxAACToA +DDIADDA_Ov9DT0wCWAUAABAAAg8AABgJAAYbAAAWAAEMAAYhAAAmAAEMAAYxAAAYCQAADAAJJwAA +HAACDAAADgABCgAFDgABOQAMLAALPwAAJgACDAAAGAABCgAFDgABTT8AGD7_SUMG4AO0A_gDtAW2 +Bd4DDkMGAQACAQICAAARA7oFAAEAvAUAAQAQAAEACMfDz0NdAQAAw9BDXgEAACmkA78GAw0mJv9D +T0wPEgACAwABCgAADgAGFwABCgAADP9JQwK6BbwFDkMGAQACAQIDAQArA7oEAAEAvAQAAQAQAAEA +igEAAwjHw88R6QUOJgAAFUMdAQAA09DbqugJw9BDHgEAACnDz-e7CJpDHgEAACmkA4UIBg1UHCYI +O_9DT0wPNgACAwAAEAABCgAAEAAFEgAKOwAACAABGAAEFgAALQABCgAAFgAHGQAABQABCgAAFgAB +DAABEv9JQwO8BLoEYA5DBgEAAAYABAEAVQa-BQAAAMAFAAEAwgUAAgDKBAADAMQFAAQAEAABAKwF +AwEIwQXABUEdAQAAx8PnyCYAAMmzysbEo-gsw8ZHwQTFQiwBAADABEFdAQAAJAEADsVCLAEAAMAE +QV4BAAAkAQAOkwPq0dtC7AAAAMXABUEeAQAAJQIApAOYCAkTKxQXJhxYWBj_Q09MEGQAAwUAAB4A +AgoABicAACoAARIAAjsAAB4ABB0AABoPAAEIAAQqAABJAAAcAAESAAQtAAESAAUKAAIQAAUZAAQR +AAESAAUKAAIQAAUZAAQuAARHAAAOAAEaAAUOAAEUAAIKAAUr_0lDB9gEvAS6BdgDugRgvAUOQwYB +AAAFAAQBAEsF_gMAAAC6BAABAMYFAAIAygQAAwAQAAEA3gMCAQjBBNtB_wAAAEIpAQAAwAQkAQDH +w8AEQR0BAABCKgEAALMkAQAVQx0BAADIxOfJs8rGxaPoFMTGccTGR0L_AAAAJAAASZMD6unDKKQD +sQgHElp9EiZOGP9DT0wQVgADBQAAGAABCgAFDAAFCgACCQAELQAAGAABDAAAEAACCgAFDAAFDAAB +CwAKSQAAJAABDAACLwAAGg8AAQgABCQAAEMAAQwAAgoAAQwPAAkSAARBAAAO_0lDBdIE1ARgugT- +Aw5DBgEAAAUAAwEBOgXaAwAAANwDAAEA4AMAAgDIBQADQMoFAAQAsgMAATeeAAAAlwQbAAAAqugC +KdvHw0HaAAAAyMRB8AAAAMnFQf0AAADKxb4AFUP9AAAAwQTABMVDOwAAACmkA8MIDARKCg0mKCgA +AUo2K_9DT0wCRAUAAAgAAA4ABh4ACBgAAEMAAQcAABAAAg8AABgJAAYbAAAgAAEMAAYrAAAgAAEU +AAYzAAAcAAEUAAAOAAo9AAIQAAAY_0lDBOADtAN2-gMOQwYBAAEFAQcBAO0BBswFAAEAzgUAAAC6 +BAABAMoEAAIAEAABAJoBAAEAyAUDAQjKDADBBM84ngAAAKfoDDiiAAAAEc8hAQDTzzihAAAApxHp +Ww43oAAAAJcERQAAAKwR6AkOzzigAAAApxHpQA7POKMAAACnEek1Ds84pAAAAKcR6SoOzzilAAAA +pxHpHw7POKYAAACnEekUDs84pwAAAKcR6QkOzzioAAAAp-gdOKIAAAARz0FoAQAAz0FpAQAAz0Fq +AQAAIQMA0884ogAAAKfoO89BagEAAMcmAADIs8nFw6PoG8TFtaJxE0fPxUe7GMW3nLsImp6gr0mT +Auri20IpAQAAxsTDJAMADinbQloAAADGwAQkAgAOKaQD0ggaIjAACwo6ijo6Ojo6Jg0AHAgxKBcm +cRlECUX_Q09MJOUBAAY1AAAIAAEsAAgaAABFAAAaAAAIAAYWAAEdAAQhAAAIAAEsAAorAwAADgAG +LAAKHgABLAAKhQEAASwACisAASwACisAASwACisAASwACisAASwACisAASwACC8EAAAaAAAIAAYW +AAEWAAUQAAEWAAUYAAEWAAWHAQAEIQAACAABLAAIGAAAQwAANgABFgAGSwAAGAAEFwAAGg8AAQgA +BDYAAFUAAQwAAQwABQwAARYAAgwDAAIKAwABCAACCgAHGQAEUwABFAAFCgABDAABDgABIwAFDQAA +BQABFAAFDAABDAACF_9JQwXSBNQFtAHQBdIFDkMGAQAABgAEAQVkBtoDAAAA3AMAAQDgAwACQOID +AAMA1gUABADYBQAFQLIDAAG-BMEF28fDQdoAAADIxEHwAAAAycNBAQEAAMrGxgu-AE0CAQAATAIB +AAC-AU0DAQAATAMBAAAVQ2sBAAAVQ20BAADBBMYLvgJNAgEAAEwCAQAAvgNNAwEAAEwDAQAAQ24B +AAAppAP9CBsYDSYmAAcKAAM2AAw0PwAOCgACNgAMND8ABQr_Q09MAkAZAAAQAAIPAAAYCQAGGwAA +IAABDAAGKwAAGAkABhsAABwAAQwAABAAAQwAABQAATkADAcAGhUAAQwAABQGAAwH_0lDBtwF4AO0 +A9YFggTaBQ5DBgEAAQUBBQAAWQbABAABALoEAAAAvAQAAQDeBQACAMoEAAMA4AUABADPQR0BAADH +z0EeAQAAyCYAAMmzysbEo-g3w8a1oke7EMa3nLsImp6iAf__AACtwQTFQiwBAAA4kwAAAEI0AQAA +wAQkAQAkAQAOxrWdyurGxUJbAAAAvyUBAKQDlQkIBCYoFyZ2gCL_Q09MFG0AAA0AABgAARQABisA +AB4AARQABjEAACIABCEAABoPAAEIAAQkAABDAAAgAwABDAABDAADDgMAAgoDAAEIAAIKAAUMAAhz +AAEWAAUKAAUOAAUaAAIZAAMXAAQeAAEKAAVFAAAOAAEWAAUKAAEJ_0lDBbYB2AS8BOgEugQOQwYB +AAEDAQcBADwE4gUAAQDkBQAAALoEAAEAygQAAgDgAwIBz-fHJgAAyLPJxcOj6CLExbSicRNHz0I3 +AQAAxSQBALsQxbWcuxCanqCvSZMC6tvbQuwAAADEw7WaJQIApAOxCQYEFBcmlBj_Q09MEFcAAAUA +ACoAARIAAjsAABgABBcAABoPAAEIAAQqAABJAAEMAAEMAAUMAAESAAUWAAEVAAMiAwACCgMAAQgA +AgoABzcABEcAAA4AARQABQ4AAQ4AASIAAj3_SUMD2ANg7gQOQwYBAAEFAQUBAFsGwAQAAQC6BAAA +ALwEAAEA3gUAAgDKBAADAOAFAAQA2AUFAc9BHQEAAMfPQR4BAADIJgAAybPKxsSj6Dnbw8a1oke7 +EMa3nLsImp6iAf__AACt7cEExUIsAQAAOJMAAABCNAEAAMAEJAEAJAEADsa1ncrqxMVCWwAAAL8l +AQCkA9AJCAQmKBcmgIAi_0NPTBRzAAANAAAYAAEUAAYrAAAeAAEUAAYxAAAiAAQhAAAaDwABCAAE +JAAAQwAAIAABFgMAAQwAAQwAAw4DAAIKAwABCAACCgAFDAAGaQADHwABFgAFCgAFDgAFGgACGQAD +FwAEHgABCgAFRQAADgABFgAFCgABCf9JQwW2AdgEvAToBLoEDkMGAQABAwEIAgA-BOIFAAEA5AUA +AAC6BAABAMoEAAIA2AUFAeADAgHP58cmAADIs8nFw6PoJMTFtKJxE0fbz0I3AQAAxSQBALsQxbWc +uxCanqDtr0mTAurZ3ELsAAAAxMO1miUCAKQD7AkGBBQXJp4Y_0NPTBBdAAAFAAAqAAESAAI7AAAY +AAQXAAAaDwABCAAEKgAASQABDAABDAAFDAABFgABEgAFFgABFQADIgMAAgoDAAEIAAIKAAVpAAMc +AARHAAAOAAEUAAUOAAEOAAEiAAI9_0lDA9gDYO4EDkMGAdgFAQABAwABEwHmBQABAM-7CKC9AK3P +uwiiAf8A_wCtryikA_oJAQP_Q09MBRkAAAgAAA4DAwABEAADCgADHAMDAAESAAMK_0lDAAYAAADg +H-DvQQ5DBgEAAAYAAwEDSAbaAwAAANwDAAEA4AMAAkDiAwADAOgFAAQA6gUABUCyAwABvgLBBdvH +w0HaAAAAyMRB8AAAAMnDQQEBAADKxgu-AE0CAQAATAIBAAC-AU0DAQAATAMBAAAEdgEAAEx3AQAA +FUN0AQAAwQQppAOAChIYDSYmAAcKAAJcAAxQQDUACCD_Q09MAi4ZAAAQAAIPAAAYCQAGGwAAIAAB +DAAGKwAAGAkABhsAABoAAQwAABIAARkADAc9_0lDBOADtAOCBOgFDkMGAQABDAEIAAGAAg3ABAAB +ALoEAAAAvAQAAQDwBQACAPIFAAMAygQABAD0BQAFAPYFAAYA-AUABwD6BQAIAM4EAAkA_AUACgAQ +AAEACMELz0EdAQAAx89BHgEAAMjAC0F3AQAAyc9C_gAAACQAAA4mAADKs8EEwATEo2miAAAAw8AE +taJHuxjABLecuwianqK8_wCtwQXDwAS0nbWiR7sYwAS0nbecuwianqK8_wCtwQbDwAS1nbWiR7sY +wAS1nbecuwianqK8_wCtwQfABbsQoMAGuwigr8AHr8EIs8EJwAm3o-gwwATACb0Amp3Eo-gkxkIs +AQAAxUJ_AQAAwAi5tsAJnpqiuz-tJAEAJAEADpMJ6szABLadwQTrW__FQn8BAAC7QCQBAMEKwAro +Fcbnt5zoD8ZCLAEAAMAKJAEADurtxkJbAAAAvyUBAKQDmAoUEyYmLTcXP3aKi1RsnhcyRBchPw__ +Q09MFL0CAAMNAAAYAAEUAAYrAAAeAAEUAAYxAAAUAAIKAAYdAAEUAAkTAAAkAAQjAAAaFAACCAAH +JAAAQwAAGAMAAQwAAgwAAxoDAAIKAwACCAACCgAFGAAGgwEAABgDAAEMAwACCAACDgADDgMAAgoD +AwACCAACCgACCgAFDAAGgwEAABgDAAEMAwACCAACDgADDgMAAgoDAwACCAACCgACCgAFDAAGgwEA +ABwDAAISAAMMAwACEgAECgAFWQAAGhQDAAIIAAQMAwACCAACCAAEDgAEIAAAbQABGAAFCgABCAAF +DgMAAhgDAAEIAwABCAAFDgADSQADEQAETAAENwACCgAHRQAAJAABCAAFDgACDQAFKwAACAAEGgAA +GQAADgABGAABEhkAADUAARgABQoAAgkABicAAA4AARgABQoAAQn_SUMItgHYBO4FvAT-BfwDYLoE +BgAAAAAAAOg_DkMGAQABBwEEAQBuCIAGAAEAggYAAADwBQABAIQGAAIAzgQAAwD8BQAEAIYGAAUA +EAABAOoFBQEIwQbP58fABkF3AQAAyMAGQYQBAADJxZboJ8AGJgAAFUOEAQAAybPKxsTno-gTxcRC +NwEAAMYkAQBxxkmTA-rpxEJ_AQAAu0AkAQDBBMAE6BfPQoUBAADABCQBAMEFwAWyrOgEwAXH28_D +xSMDAKQDxwoSExIrLBc_K0kABAhEF0QhAAMK_0NPTBCfAQADBQAALAABFAACPwAAFAACCgAGHQAA +IgACCgAGKwAACAMABBgAABEAABoAAgoAABwACj8AABoPAAEIAAEIAAQaAABBAAEWAAEIAAUWAAEV +AAQiAAIHAARPAAAkAAEIAAUOAAINAAUrAAAIAAQaAAAZAAAmAAEUAAUQAAIPAAU5AAAIAAIkGQAA +KQAAJAADMwAADgABFAABFgABIgABS_9JQwbuBf4FiAaKBmDuBA5DBgHqBQMGAwcBAGkJgAYAAQCC +BgABAIQGAAEAugQAAADWBAABAMoEAAIAjAYAAwCOBgAEAJAGAAUA4AMCASYAAMezyLPJxdCj6FLF +t5zoSdHPQjcBAADFtJ4kAQBHxbectZqgytHPQjcBAADFJAEAR7nFt5y1mp6iwQTGwASvwQXDxLWi +cRNHwAW7GMS3nLsImp6gr0mTAZMC6qvbQuwAAADDxCUCAKQD5QoLAxcNJhxscSFsDhf_Q09MBZ4B +BAAAGAAEFwAAGgACGQAAGg8AAQgABCwAAEsAAAgAAQgZAAANAAAYAAEWAAEUAAUWAAEIAAIdAAQs +AwMAAQgAAgoABIMBAAAYAAEWAAEUAAUWAAEVAAQmAwABCAMAAQgAAgoABoUBAAAmAAEQAAU1AAEM +AAEWAAUMAAIgAwACCgMAARIAAgoAB3cAAjoABEkAAA4AARQABQ4AAQ4AARv_SUMC2APuBA5DBgEA +AAYAAwEDUgbaAwAAANwDAAEA4AMAAkDiAwADAJIGAAQA6gUABUCyAwABvgLBBdvHw0HaAAAAyMRB +8AAAAMnDQQEBAADKxgu-AE0CAQAATAIBAAC-AU0DAQAATAMBAAAEdgEAAEx3AQAABIoBAABMiwEA +ABVDiQEAAMEEKaQD9goTGA0mJgAHCgACYAAMVEA1NQAIIP9DT0wCMRkAABAAAg8AABgJAAYbAAAg +AAEMAAYrAAAYCQAGGwAAIAABDAAAGAABJQAMBz0ACgr_SUME4AO0A4IEkgYOQQYBAAIOAQgAAaUC +EMAEAAEAmAYAAQDABAH_____DyCYBgEBILoEAAAAvAQAAwDwBQAEAPIFAAUAygQABgD0BQAHAPYF +AAgA-AUACQD6BQAKAM4EAAsA_AUADAAQAAEACMENYQEAYQAAz8fQEfDoBA4K2MjPQR0BAADJz0Ee +AQAAytDoCsANQYsBAADqCMANQXcBAADBBM9C_gAAACQAAA4mAADBBbPBBsAGxqNppAAAAMXABrWi +R7sYwAa3nLsImp6ivP8ArcEHxcAGtJ21oke7GMAGtJ23nLsImp6ivP8ArcEIxcAGtZ21oke7GMAG +tZ23nLsImp6ivP8ArcEJwAe7EKDACLsIoK_ACa_BCrPBC8ALt6PoMsAGwAu9AJqdxqPoJsAFQiwB +AADABEJ_AQAAwAq5tsALnpqiuz-tJAEAJAEADpML6srABradwQbrWf_ABEJ_AQAAu0AkAQDBDMAM +6BfABee3nOgQwAVCLAEAAMAMJAEADurrwAVCWwAAAL8lAQCkA5ALFGgmJm43HD92iotUbKgXMkkX +JkQP_0NPTBTJAgAROgADRwAAGAABFAAGKwAAHgABFAAGMQAAFAADFAACCgAHGAACCgAHUwABFAAJ +EwAAJAAFIwAAGhQAAggAByQAAEMAABgDAAEMAAIMAAMaAwACCgMAAggAAgoABRgABoMBAAAYAwAB +DAMAAggAAg4AAw4DAAIKAwMAAggAAgoAAgoABQwABoMBAAAYAwABDAMAAggAAg4AAw4DAAIKAwMA +AggAAgoAAgoABQwABoMBAAAcAwACEgADDAMAAhIABAoABVkAABoUAwACCAAEDAMAAggAAggABA4A +BCAAAG0AAhgABQoAAggABQ4DAAIYAwABCAMAAQgABQ4AA0kAAxEABEwABDcAAgoAB0UAACQAAggA +BQ4AAg0ABSsAAAgABBoAABkAAA4AAhgAARIZAAA1AAIYAAUKAAIJAAYnAAAOAAIYAAUKAAEJ_0lD +CZYGtgHYBLwE7gX-BWD8A7oEBgAAAAAAAOg_DkEGAQACCQEEAQCUAQuABgABAJgGAAEAgAYB____ +_w8gmAYBASCCBgAAAPAFAAMAhAYABADOBAAFAPwFAAYAhgYABwAQAAEA6gUFAQjBCGEBAGEAAM_H +0BHw6AQOCtjIz-fJ0OgKwAhBiwEAAOoIwAhBdwEAAMrACEGEAQAAwQTABJboLcAIJgAAFUOEAQAA +wQSzwQXABcbno-gWwATGQjcBAADABSQBAHHABUmTBerlxkJ_AQAAu0AkAQDBBsAG6BfPQoUBAADA +BiQBAMEHwAeyrOgEwAfJ28_FwAQjAwCkA8ELEmgSZzEcRDVYAAQIRBdEIQADCv9DT0wQqwEAEToA +Az8AACwAARQAAj8AABQAAxQAAgoABxgAAgoABlMAACIAAgoABysAAAgDAAUYAAAZAAAaAAIKAAAc +AAs_AAAaFAACCAABCAAEGgAAQQACFgABCAAFFgACFQAEIgADBwAERwAAJAABCAAFDgACDQAFKwAA +CAAEGgAAGQAAJgABFAAFEAACDwAFOQAACAACJBkAACkAACQAAzMAAA4AARQAARYAASIAAkv_SUMH +lgbuBf4FiAaKBmDuBA5DBgHqBQMGAwcBAGkJgAYAAQCCBgABAIQGAAEAugQAAADWBAABAMoEAAIA +jAYAAwCOBgAEAJAGAAUA4AMCASYAAMezyLPJxdCj6FLFt5zoSdHPQjcBAADFtJ4kAQBHxbectZqg +ytHPQjcBAADFJAEAR7nFt5y1mp6iwQTGwASvwQXDxLWicRNHwAW7GMS3nLsImp6gr0mTAZMC6qvb +QuwAAADDxCUCAKQD4AsLAxcNJhxscSFsDhf_Q09MBaABAAAIAAAYAAQXAAAaAAIZAAAaDwABCAAE +LAAASwAACAABCBkAAA0AABgAARYAARQABRYAAQgAAh0ABCwDAwABCAACCgAEgwEAABgAARYAARQA +BRYAARUABCYDAAEIAwABCAACCgAGhQEAACYAARAABTUAAQwAARYABQwAAiADAAIKAwABEgACCgAH +dwACOgAESQAADgABFAAFDgABDgABG_9JQwLYA-4EDkMGAQABCwEFAQmfAQyuAgABQNoDAAAA3AMA +AQDgAwACQOwDAANA7gMABACaBgAFQJwGAAYAngYAB0CgBgAIQKIGAAlApAYACkCyAwABvgXBB74G +wQi-B8EJvgjBCtvHw0HaAAAAyMRB8AAAAMnEQfYAAADKw0EOAQAAwQQmAADBBb4A7A7ABMZC_AAA +AAu-AU1PAQAATE8BAAC-Ak1NAQAATE0BAAC-A01SAQAATFIBAAC-BE3_AAAATP8AAAAkAQAVQ44B +AADBBsPGQgwBAADABiQBAEOOAQAAw8ZCDQEAAMAGJAEAQ5MBAAAppAPwCyFUDSYmJi0ABQ4ABAoA +CQwADOYBAAxYAAwOPwALSAARIFj_Q09MAm1VAAAQAAIPAAAYCQAGGwAAIAABDAAGKwAAGgABDAAG +JQAAGgkABx0AABAABQ8DFQAAFAACDgAADAABDgAFDgABLQAMDgAMBwAMCwAMJgALOwkAAAwAAQ4A +BRwAAhsACB0JAAAUAAEOAAUkAAIj_0lDCeAD7AO0A_gDpgaYBJwEmgScBg5DBgEAAAEACAIBKwHK +BAAAAJoGBQGuAgADs8fDu0Cj6CPbw3HcQpQBAADcQpUBAADDtJ0kAQAkAQC9AJqzr0mTAOrZKaQD +_AsEAyuZF_9DT0wGMQUAABoPAAEIAAUSAAAxCQACCgMAAQoABQgAAQoABQgAAQgAAg8AAxEAAy4A +Ax4AAz3_SUMCqAaqBgYAAAAAAADwQQ5DBgEAAAEABwECJAEQAAEA4AMCAQjHw9tB_QAAABEBASNF +Z70AvQEBdlQyECYEACEBAEOWAQAAKaQDhgwFDUQXKyv_Q09MEyEAAgsAAQoAABAAAAgAARQABgoA +ADcABRgAAhcAAhgACAX_SUMC-gOsBgYAACBxtfntQQYAAMCfWxfjQQ5DBgEAAhkCCQUBiQ0brgYA +AQCUBQABAMoEAAAAsAYAAQCyBgACALQGAAMAtgYABAC4BgAFALoGAAYAvAYABwC-BgAIAMAGAAkA +wgYACgDEBgALAMYGAAwAyAYADQDKBgAOAMwGAA8AzgYAEADQBgARANIGABIA1AYAEwDWBgAUANgG +ABUA2gYAFgDcBgAXABAAAQCeBgcBmgYFAaAGCAGiBgkBpAYKAQjBGLPHw7sQo-gt0MOdyM_ER8nP +xHHFuwigxbsYoq8B_wD_AK3FuxigxbsIoq-9AK2vSZMA6s_AGEGWAQAAQR0BAADKz9CznUfBBM_Q +tJ1HwQXP0LWdR8EGz9C2nUfBB8_Qt51HwQjP0LidR8EJz9C5nUfBCs_Qup1HwQvP0LsInUfBDM_Q +uwmdR8ENz9C7Cp1HwQ7P0LsLnUfBD8_QuwydR8EQz9C7DZ1HwRHP0LsOnUfBEs_Quw-dR8ETxrNH +wRTGtEfBFca1R8EWxrZHwRfbwBTAFcAWwBfABLrcs0ciBwDBFNvAF8AUwBXAFsAFuwzctEciBwDB +F9vAFsAXwBTAFcAGuxHctUciBwDBFtvAFcAWwBfAFMAHuxbctkciBwDBFdvAFMAVwBbAF8AIuty3 +RyIHAMEU28AXwBTAFcAWwAm7DNy4RyIHAMEX28AWwBfAFMAVwAq7Edy5RyIHAMEW28AVwBbAF8AU +wAu7Fty6RyIHAMEV28AUwBXAFsAXwAy63LsIRyIHAMEU28AXwBTAFcAWwA27DNy7CUciBwDBF9vA +FsAXwBTAFcAOuxHcuwpHIgcAwRbbwBXAFsAXwBTAD7sW3LsLRyIHAMEV28AUwBXAFsAXwBC63LsM +RyIHAMEU28AXwBTAFcAWwBG7DNy7DUciBwDBF9vAFsAXwBTAFcASuxHcuw5HIgcAwRbbwBXAFsAX +wBTAE7sW3LsPRyIHAMEV3cAUwBXAFsAXwAW43LsQRyIHAMEU3cAXwBTAFcAWwAq7Cdy7EUciBwDB +F93AFsAXwBTAFcAPuw7cuxJHIgcAwRbdwBXAFsAXwBTABLsU3LsTRyIHAMEV3cAUwBXAFsAXwAm4 +3LsURyIHAMEU3cAXwBTAFcAWwA67Cdy7FUciBwDBF93AFsAXwBTAFcATuw7cuxZHIgcAwRbdwBXA +FsAXwBTACLsU3LsXRyIHAMEV3cAUwBXAFsAXwA243LsYRyIHAMEU3cAXwBTAFcAWwBK7Cdy7GUci +BwDBF93AFsAXwBTAFcAHuw7cuxpHIgcAwRbdwBXAFsAXwBTADLsU3LsbRyIHAMEV3cAUwBXAFsAX +wBG43LscRyIHAMEU3cAXwBTAFcAWwAa7Cdy7HUciBwDBF93AFsAXwBTAFcALuw7cux5HIgcAwRbd +wBXAFsAXwBTAELsU3LsfRyIHAMEV3sAUwBXAFsAXwAm33LsgRyIHAMEU3sAXwBTAFcAWwAy7C9y7 +IUciBwDBF97AFsAXwBTAFcAPuxDcuyJHIgcAwRbewBXAFsAXwBTAErsX3LsjRyIHAMEV3sAUwBXA +FsAXwAW33LskRyIHAMEU3sAXwBTAFcAWwAi7C9y7JUciBwDBF97AFsAXwBTAFcALuxDcuyZHIgcA +wRbewBXAFsAXwBTADrsX3LsnRyIHAMEV3sAUwBXAFsAXwBG33LsoRyIHAMEU3sAXwBTAFcAWwAS7 +C9y7KUciBwDBF97AFsAXwBTAFcAHuxDcuypHIgcAwRbewBXAFsAXwBTACrsX3LsrRyIHAMEV3sAU +wBXAFsAXwA233LssRyIHAMEU3sAXwBTAFcAWwBC7C9y7LUciBwDBF97AFsAXwBTAFcATuxDcuy5H +IgcAwRbewBXAFsAXwBTABrsX3LsvRyIHAMEVXgQAwBTAFcAWwBfABLncuzBHIgcAwRReBADAF8AU +wBXAFsALuwrcuzFHIgcAwRdeBADAFsAXwBTAFcASuw_cuzJHIgcAwRZeBADAFcAWwBfAFMAJuxXc +uzNHIgcAwRVeBADAFMAVwBbAF8AQudy7NEciBwDBFF4EAMAXwBTAFcAWwAe7Cty7NUciBwDBF14E +AMAWwBfAFMAVwA67D9y7NkciBwDBFl4EAMAVwBbAF8AUwAW7Fdy7N0ciBwDBFV4EAMAUwBXAFsAX +wAy53Ls4RyIHAMEUXgQAwBfAFMAVwBbAE7sK3Ls5RyIHAMEXXgQAwBbAF8AUwBXACrsP3Ls6RyIH +AMEWXgQAwBXAFsAXwBTAEbsV3Ls7RyIHAMEVXgQAwBTAFcAWwBfACLncuzxHIgcAwRReBADAF8AU +wBXAFsAPuwrcuz1HIgcAwRdeBADAFsAXwBTAFcAGuw_cuz5HIgcAwRZeBADAFcAWwBfAFMANuxXc +uz9HIgcAwRXGs3HGs0fAFJ2zr0nGtHHGtEfAFZ2zr0nGtXHGtUfAFp2zr0nGtnHGtkfAF52zr0kp +pAONDGITLBcYEk5ECBlFJiYmJiYmJiYrKysrKysrLRwcHB5nbGxsZ2xsbGxxcXFscXFybHFxcWxx +cXFscXFxbHFxcmxxcXFscXFxbHFxcWxxcXJ2e3t7dnt7e3Z7e3t2e3t9Pz8_P_9DT0wakQ0AAxkA +ABoPAAEIAAUSAAAxAAAeAAESAAMvAAAiCQADJQkAAhgAABMDAwMAARwAAwwDAAEeAAQOAAZbAwMD +AAEcAAMMAwABHgAEDgAFOwAELwAAEAACCgAFDAAGJQAAJAkAARIABTkAACQJAAESAAU5AAAkCQAB +EgAFOQAAJAkAARIABTkAACQJAAESAAU5AAAkCQABEgAFOQAAJAkAARIABTkAACQJAAESAAU5AAAk +CQABEgAGOQAAJAkAARIABjkAACQJAAESAAY5AAAkCQABEgAGOQAAJAkAARIABjkAACQJAAESAAY5 +AAAkCQABEgAGOQAAJAkAARIABjkAABAJAAQTAAAQCQAEEwAAEAkABBMAABAJAAQTAAAICg8PDw8A +AhoAAQgJAAJDAAUHAAAICg8PDw8AAhoAAggJAAJDAAUHAAAICg8PDw8AAhoAAggJAAJDAAUHAAAI +Cg8PDw8AAhoAAggJAAJDAAUHAAAICg8PDw8AAhoAAQgJAAJDAAUHAAAICg8PDw8AAhoAAggJAAJD +AAUHAAAICg8PDw8AAhoAAggJAAJDAAUHAAAICg8PDw8AAhoAAggJAAJDAAUHAAAICg8PDw8AAhoA +AQgJAANDAAUHAAAICg8PDw8AAhoAAggJAANDAAUHAAAICg8PDw8AAhoAAggJAANDAAUHAAAICg8P +Dw8AAhoAAggJAANDAAUHAAAICg8PDw8AAhoAAQgJAANDAAUHAAAICg8PDw8AAhoAAggJAANDAAUH +AAAICg8PDw8AAhoAAggJAANDAAUHAAAICg8PDw8AAhoAAggJAANDAAUHAAAICg8PDw8AAhoAAQgJ +AANDAAUHAAAICg8PDw8AAhoAAggJAANDAAUHAAAICg8PDw8AAhoAAggJAANDAAUHAAAICg8PDw8A +AhoAAggJAANDAAUHAAAICg8PDw8AAhoAAQgJAANDAAUHAAAICg8PDw8AAhoAAggJAANDAAUHAAAI +Cg8PDw8AAhoAAggJAANDAAUHAAAICg8PDw8AAhoAAggJAANDAAUHAAAICg8PDw8AAhoAAQgJAAND +AAUHAAAICg8PDw8AAhoAAggJAANDAAUHAAAICg8PDw8AAhoAAggJAANDAAUHAAAICg8PDw8AAhoA +AggJAANDAAUHAAAICg8PDw8AAhoAAQgJAANDAAUHAAAICg8PDw8AAhoAAggJAANDAAUHAAAICg8P +Dw8AAhoAAggJAANDAAUHAAAICg8PDw8AAhoAAggJAANDAAUHAAAICg8PDw8AAhoAAQgJAANDAAUH +AAAICg8PDw8AAhoAAggJAANDAAUHAAAICg8PDw8AAhoAAggJAANDAAUHAAAICg8PDw8AAhoAAggJ +AANDAAUHAAAICg8PDw8AAhoAAQgJAANDAAUHAAAICg8PDw8AAhoAAggJAANDAAUHAAAICg8PDw8A +AhoAAggJAANDAAUHAAAICg8PDw8AAhoAAggJAANDAAUHAAAICg8PDw8AAhoAAQgJAANDAAUHAAAI +Cg8PDw8AAhoAAggJAANDAAUHAAAICg8PDw8AAhoAAggJAANDAAUHAAAICg8PDw8AAhoAAggJAAND +AAUHAAAICg8PDw8AAhoAAQgJAANDAAUHAAAICg8PDw8AAhoAAggJAANDAAUHAAAICg8PDw8AAhoA +AggJAANDAAUHAAAICg8PDw8AAhoAAggJAANDAAUHAAAIFA8PDw8AAhoAAQgJAANDAAUHAAAIFA8P +Dw8AAhoAAggJAANDAAUHAAAIFA8PDw8AAhoAAggJAANDAAUHAAAIFA8PDw8AAhoAAggJAANDAAUH +AAAIFA8PDw8AAhoAAQgJAANDAAUHAAAIFA8PDw8AAhoAAggJAANDAAUHAAAIFA8PDw8AAhoAAggJ +AANDAAUHAAAIFA8PDw8AAhoAAggJAANDAAUHAAAIFA8PDw8AAhoAAQgJAANDAAUHAAAIFA8PDw8A +AhoAAggJAANDAAUHAAAIFA8PDw8AAhoAAggJAANDAAUHAAAIFA8PDw8AAhoAAggJAANDAAUHAAAI +FA8PDw8AAhoAAQgJAANDAAUHAAAIFA8PDw8AAhoAAggJAANDAAUHAAAIFA8PDw8AAhoAAggJAAND +AAUHAAAIFA8PDw8AAhoAAggJAANDAAUHCQACCgMJAAIKAAMKAAMnCQACCgMJAAIKAAMKAAMnCQAC +CgMJAAIKAAMKAAMnCQACCgMJAAIKAAMK_0lDAroErAYGAAAA4B_g70EOQwYBAAALAAcBBJECC4IF +AAAAiAUAAQDeBgACAOAGAAMA4gYABADkBgAFAKIFAAYAtAYABwDKBAAIAOYGAAkAEAABAK4CAAMI +wQrACkE_AQAAx8NBHQEAAMjACkFAAQAAuwiaycNBHgEAALsImsrExriicRNHvIAAuxjGuyCcnqCv +SdtCtAEAAMW9AJskAQDBBMXBBcTGu0Cduwmit6C7D51xwAS7CKDABLsYoq8B_wD_AK3ABLsYoMAE +uwiir70Bra9JxMa7QJ27CaK3oLsOnXHABbsIoMAFuxiirwH_AP8ArcAFuxigwAW7CKKvvQKtr0nD +xOe0nbeaQx4BAADACkIGAQAAJAAADsAKQZYBAADBBsAGQR0BAADBB7PBCMAIt6PoMsAHwAhHwQnA +B8AIccAJuwigwAm7GKKvAf8A_wCtwAm7GKDACbsIoq-9A62vSZMI6srABiikA4ANGRMrJzo3aE4S +SVhOCElYTglBPDAyMSdxUxn_Q09MFsYCAAMRAAAWAAIKAAYfAAAgAAEKAAYpAAAiAAIKAAUcAARH +AAAgAAEKAAUWAAQ_AAEUAAEcAAUMAAMQAwACCgABGAAHbwAAJAABCgAFDAABGgADJQAFLQAAJAAD +IwABFAMDAwABGAADEAADDAACCgAEDAAAWwMDAwACHgADDAMAAiAABA4ABl8DAwMAAh4AAwwDAAIg +AAQOAAVnAAEUAwMDAAEYAAMQAAMMAAIKAAQMAABbAwMDAAIeAAMMAwACIAAEDgAGXwMDAwACHgAD +DAMAAiAABA4ABWcAAQoAABYDAAEUAAESAAIKAAdRAAIKAAkJAAAWAAIKAAcfAAAQAAIKAAcZAAAa +FAACCAAEEAAALwAAFA4ABRcOAAMKAwMDAAIOAAMMAwACEAAEDgAGPwMDAwACDgADDAMAAhAABA4A +BScABC0AAA7_SUMI6Aa8BIAFYLoEjASsBv4EBgAAAAAAAPBBBgAAAOAf4O9BBgAAAOAf4O9BBgAA +AOAf4O9BDkMGAQAAAgADAQAoAv4DAAAAEAABAOwDAwEIyNtB_wAAAEIpAQAAxCQBAMfDxEGWAQAA +Qv8AAAAkAABDlgEAAMMopAOsDQMNU2j_Q09MECcAAgUAABgAAQ4ABQwABQoAAQkABDEAAQwAABAA +AQoABQwADTEAAA7_SUMD0gT-A6wGDkMGAZ4GBwEHBAAAJAjWBgABANgGAAEA2gYAAQDcBgABAOoG +AAEA7AYAAQDuBgABAPAGAAAAz9DRrdCV0q2vnVsEAJ1bBgCdx8NbBQCgw7sgWwUAnqKv0J0opAO0 +DQIDYv9DT0wFNQAACAAAEAABCAMDAAEIAAIKAwMAAggABAwABAgABU0AAA4DAwABCgAECgMAAQwD +AAIKAAYO_0lDAA5DBgGgBgcBBwQAACQI1gYAAQDYBgABANoGAAEA3AYAAQDqBgABAOwGAAEA7gYA +AQDwBgAAAM_Q0q3R0pWtr51bBACdWwYAncfDWwUAoMO7IFsFAJ6ir9CdKKQDuQ0CA2L_Q09MBTQA +AAgAABAAAQgDAwABCAACCgMAAQoABQwABAgABU0AAA4DAwABCgAECgMAAQwDAAIKAAYO_0lDAA5D +BgGiBgcBBwQAACEI1gYAAQDYBgABANoGAAEA3AYAAQDqBgABAOwGAAEA7gYAAQDwBgAAAM_Q0a7S +rp1bBACdWwYAncfDWwUAoMO7IFsFAJ6ir9CdKKQDvg0CA1P_Q09MBS8AAAgAABAAAQgDAAEIAAII +AAMKAAQIAAU7AAAOAwMAAQoABAoDAAEMAwACCgAGDv9JQwAOQwYBpAYHAQcEAAAiCNYGAAEA2AYA +AQDaBgABANwGAAEA6gYAAQDsBgABAO4GAAEA8AYAAADP0dDSla-unVsEAJ1bBgCdx8NbBQCgw7sg +WwUAnqKv0J0opAPDDQIDWP9DT0wFMAAACAAAEAABCAMAAQgDAAEKAAUMAAQIAAVBAAAOAwMAAQoA +BAoDAAEMAwACCgAGDv9JQwAOQwYBAAAHAAUBBIsBB9oDAAAA3AMAAQDgAwACQOwDAANA7gMABADy +BgAFQPQGAAYAsgMAAdvHw0HaAAAAyMRB8AAAAMnEQfYAAADKw0EOAQAAwQQmAADBBcAExkL8AAAA +C74ATU8BAABMTwEAAL4BTU0BAABMTQEAAL4CTVIBAABMUgEAAL4DTf8AAABM_wAAACQBABVDugEA +AMEGw8ZCDAEAAMAGJAEAQ7oBAADDxkINAQAAwAYkAQBDuwEAACmkA-oNHQQNJiYmLQAFCgAJDgAM +XAAMKgAMDj8ACyAAESBY_0NPTAJrBQAAEAACDwAAGAkABhsAACAAAQwABisAABoAAQwABiUAABoJ +AAcdAAAQAAUPAAAWAAIOAAAOAAEOAAUOAAExAAwOAAwHAAwLAAwqAAs_CQAADgABDgAFHAACGwAI +HwkAABYAAQ4ABSQAAiP_SUMJ4APsA7QD9Ab4A5gEnASaBPYGDkMGAQAAAQAIAQMmARAAAQDgAwIB +CMfD20H9AAAAEQEBI0VnvQC9AQF2VDIQvQImBQAhAQBDlgEAACmkA_kNBg1EFyYSK_9DT0wTJAAC +CwABCgAAEAAACAABFAAGCgAANwAFGAACFwACGAAFFwAFEv9JQwL6A6wGBgAAIHG1-e1BBgAAwJ9b +F-NBBgAAAD5ceuhBDkMGAQACCgIFAQDHAgyuBgABAJQFAAEAtAYAAADWBgABANgGAAIA2gYAAwDc +BgAEAPAEAAUAygQABgDwBgAHAO4GAAgAEAABAPIGBQEIwQnACUGWAQAAQR0BAADHw7NHyMO0R8nD +tUfKw7ZHwQTDt0fBBbPBBsAGu1Cjad4AAADABrsQo-gQ28AGcc_QwAadR7OvSeow28AGtp5H28AG +uwieR67bwAa7Dp5HrtvABrsQnkeuwQfbwAZxwAe0oMAHux-ir0nEuKDEuxuir8AFndvABkedwQjA +BrsUo-gXwAjFxq3FlcAEra8BmXmCWp2dwQjqTcAGuyij6BTACMXGrsAErgGh69lunZ3BCOozwAa7 +PKPoG8AIxcatxcAEra_GwAStrwEkQ-Rwnp3BCOoSwAjFxq7ABK4BKj6dNZ6dwQjABMEFxsEExbse +oMW1oq_KxMnACMiTBuse_8OzccOzR8Sds69Jw7Rxw7RHxZ2zr0nDtXHDtUfGnbOvScO2ccO2R8AE +nbOvScO3ccO3R8AFnbOvSSmkA4EOIRNGFxcXHB5EJkQNo1BdJmcwWDB7DVoXEjANEh46Ojo_P_9D +T0wakwMAAxkAABAAAgoABQwABiUAABAJAAMTAAAQCQADEwAAEAkAAxMAABAJAAQTAAAQCQAEEwAA +GhQAAggACBIAADEAAAgAAggABQgAAA8JAAMKCQABEgAECgAFJwAABQAAEAkAAggAAwoJAAIIAAUK +CQACCAAFDAkAAggAB18JAAMKAwACCgACCgMAAgwABTkAABADAwABCgACCgMAAQwABA4AAwgJAAZP +AAAIAAIIAAUIAAAPAAIKAwMAAQgAAgoDAwACCAAEDAALMQAACAACCAAFCAAAHQACCgMAAQgAAggA +AwoACx8AAAgAAggABQgAAB0AAgoDAwABCAACCgMAAQgABAoDAAEIAAQMAAsfAAApAAIKAwABCAAC +CAADCgAJLQAACAAEBwAACAADBwAACAMAAQoAAwwDAAEMAAQtAAAIAAIHAAAIAAMgAAUvCQACCgMJ +AAIKAAIKAAMnCQACCgMJAAIKAAIKAAMnCQACCgMJAAIKAAIKAAMnCQACCgMJAAIKAAMKAAMnCQAC +CgMJAAIKAAMK_0lDAroErAYOQwYBAAAFAAcAAYgBBYIFAAAAiAUAAQDeBgACAOAGAAMAEAABAAjB +BMAEQT8BAADHw0EdAQAAyMAEQUABAAC7CJrJw0EeAQAAuwiaysTGuKJxE0e8gAC7GMa7IJyeoK9J +xMa7QJ27CaK3oLsOnXE4lwAAAEK0AQAAxb0AmyQBAEnExrtAnbsJoreguw-dccVJw8Tnt5pDHgEA +AMAEQgYBAAAkAAAOwARBlgEAACikA68OChMrJzo3Z6NTNzz_Q09MFpoBAAMRAAAWAAIKAAYfAAAg +AAEKAAYpAAAiAAIKAAUcAARHAAAgAAEKAAUWAAQ_AAEUAAEcAAUMAAMQAwACCgABGAAHbwABFAMD +AwABGAADEAADDAACCgAEDAAFCgAFDAABGgADJQAEbQABFAMDAwABGAADEAADDAACCgAEDAACYwAB +CgAAFgABFAABEgAHRQACCgAJCQAADgACCv9JQwjoBrwEgAVgugSMBKwG_gQGAAAAAAAA8EEOQwYB +AAACAAMBACgC_gMAAAAQAAEA7AMDAQjI20H_AAAAQikBAADEJAEAx8PEQZYBAABC_wAAACQAAEOW +AQAAwyikA8QOAw1TaP9DT0wQJwACBQAAGAABDgAFDAAFCgABCQAEMQABDAAAEAABCgAFDAANMQAA +Dv9JQwPSBP4DrAYOQwYBAAEJAQUBBZkBCq4CAAFA2gMAAADcAwABAOADAAJA7AMAA0DuAwAEALQG +AAVA-AYABkDyBgAHQPoGAAgAsgMAAdvHw0HaAAAAyMRB8AAAAMnEQfYAAADKw0EOAQAAwQQmAADB +BSYAAMEGvgDsDiYAAMEHwATGQvwAAAALvgFNTwEAAExPAQAAvgJNTQEAAExNAQAAvgNNUgEAAExS +AQAAvgRN_wAAAEz_AAAAJAEAFUO9AQAAwQjDxkIMAQAAwAgkAQBDvQEAAMPGQg0BAADACCQBAEO- +AQAAKaQD7g4gBA0mJiYtHAAFQhkABQoyAAx8AAwqAAwOPwALIAARIFj_Q09MAnkFAAAQAAIPAAAY +CQAGGwAAIAABDAAGKwAAGgABDAAGJQAAGgkABx0AABAABQ8AABAABQ8DFQAAEAAFDwAAGgACDgAA +EgABDgAFDgABOQAMDgAMBwAMCwAMMgALRwkAABIAAQ4ABRwAAhsACCMJAAAaAAEOAAUkAAIj_0lD +CfwG4AP6BuwDtAP4A5gEnASaBA5DBgEAAAQACAMCSAT-BgAAAIAHAAEA8AYAAgCCBwADAK4CAAO0 +BgUB-AYGAb4Ax74ByLXJs8rGu0Cj6DjDxe3oL8a7CKPoFNzGccTbQsIBAADFtLWbJAIA7UndxnHE +20LCAQAAxbS2myQCAO1JkwOTAurEKaQD-w4NAAYgDQ0hHCFjYw8NDf9DT0wGaSMAABAAAg8AABoA +AhkAAA4AARIABQgAAB8AAAgAARAAAQ8AAxgAABcAAAgAARIeAAAXCQACFAABJAABCgAFCAoAAQgA +AhUAAy0AAh8JAAIUAAEkAAEKAAUICgABCAACFQADLQACFwACB_9JQwGEBw5DBgH-BgECAQMBACAD +8AYAAQCGBwAAAIgHAAEArgIAAttCxQEAAM8kAQDHtcjEw6ToDc_EnJboAwkokwHq8AoopAP8DgcD +OiYhCAgY_0NPTAk5AAAIAAAYAAEKAAUKAAEJAAQhAAAkDwABFAAEIgAAVwAACAMDAAEIAAUSAAAd +AAAOAAIuAARLAAAO_0lDAYoHDkMGAYAHAQABAwABCwHwBgABAM_Ps6-evQCas68opAOHDwED_0NP +TAkVAAAIAAAOAwMAAQgDAAEIAAMMAAMe_0lDAAYAAAAAAADwQQ5DBgEAAAEABgIAHQEQAAEA4AMC +AbQGBQEIx8PbQf0AAAAR3EIqAQAAsyQBACEBAEOWAQAAKaQDog8CDYX_Q09MExwAAgsAAQoAABAA +AAgAARQABgoJAAUMAAELAAMp_0lDA9QErAb6Aw5DBgEAAhUCBgIAvAMXrgYAAQCUBQABALQGAAAA +1gYAAQDYBgACANoGAAMA3AYABADwBAAFAIwHAAYAjgcABwCQBwAIAMoEAAkAkgcACgCUBwALAJYH +AAwAmAcADQCaBwAOAJwHAA8AngcAEACgBwARAKIHABIApAcAEwAQAAEA8gYHAfgGBgEIwRTAFEGW +AQAAQR0BAADHw7NHyMO0R8nDtUfKw7ZHwQTDt0fBBcO4R8EGw7lHwQfDukfBCLPBCcAJu0CjaSAB +AADACbsQo-gQ28AJcc_QwAmdR7OvSepn28AJuw-eR8EKwAq7GaDACrqir8AKuw6gwAq7EqKvrsAK +tqKuwQvbwAm1nkfBDMAMuw-gwAy7EaKvwAy7DaDADLsToq-uwAy7CqKuwQ3bwAlxwAvbwAm6nked +wA2d28AJuxCeR51JwAXABq3ABZXAB62uwQ7Exa3Exq2uxcatrsEPxLseoMS1oq_EuxOgxLsNoq-u +xLsKoMS7FqKvrsEQwAW7GqDABbmir8AFuxWgwAW7C6KvrsAFuqDABbsZoq-uwRHACMARncAOndzA +CUed28AJR53BEsAQwA-dwRPAB8EIwAbBB8AFwQbABMASnbOvwQXGwQTFysTJwBLAE52zr8iTCevc +_sOzccOzR8Sds69Jw7Rxw7RHxZ2zr0nDtXHDtUfGnbOvScO2ccO2R8AEnbOvScO3ccO3R8AFnbOv +ScO4ccO4R8AGnbOvScO5ccO5R8AHnbOvScO6ccO6R8AInbOvSSmkA6YPLhNGFxcXHBwcHB5EJkQN +MDU_Jys6PyyCSUWZs2cnFxcXMBINDSseOjo6Pz8_Pz__Q09MGswEAAMZAAAQAAIKAAUMAAYlAAAQ +CQADEwAAEAkAAxMAABAJAAMTAAAQCQAEEwAAEAkABBMAABAJAAQTAAAQCQAEEwAAEAkABBMAABoU +AAIIAAgSAAAxAAAIAAIIAAUIAAAPCQADCgkAARIABAoABScAAAUAABwJAAIIAAYnAAAcAwMAAhYA +AwwDAAIYAAM_AwMAAhYAAwwDAAIYAAU9AwACGAAFNwAAHAkAAggABScAABwDAwACFgADDAMAAhgA +BD8DAwACFgADDAMAAhgABT0DAAIYAAY3CQADCgACEgkAAggABAoAAxIJAAIIAAZbAAAUAwACCAAD +CgMDAAMIAAYzAAAUAwABCAACCgMAAQgAAwoDAAEIAAVFAAAaAwMAAQoAAwwDAAEMAAMMAwMAAQoA +AwwDAAEMAAUOAwMAAQoAAwwDAAEMAAerAQAAGgMDAAIKAAMMAwACDAADDAMDAAIKAAMMAwACDAAF +DgMDAAIKAAIMAwACDAAHqwEAABIAAggAAxIAAwoJAAQKCQAGRwAAEgACEgAFIwAACAAEBwAACAAE +BwAACAAEBwAACAMAAggAAwwABB0AAAgAAwcAAAgAAgcAAAgAAgcAAAgDAAIKAAMMAAMIAAUvCQAC +CgMJAAIKAAIKAAMnCQACCgMJAAIKAAIKAAMnCQACCgMJAAIKAAIKAAMnCQACCgMJAAIKAAMKAAMn +CQACCgMJAAIKAAMKAAMnCQACCgMJAAIKAAMKAAMnCQACCgMJAAIKAAMKAAMnCQACCgMJAAIKAAMK +_0lDAroErAYOQwYBAAAFAAcBAYQBBYIFAAAAiAUAAQDeBgACAOAGAAMAEAABAK4CAAMIwQTABEE_ +AQAAx8NBHQEAAMjABEFAAQAAuwiaycNBHgEAALsImsrExriicRNHvIAAuxjGuyCcnqCvScTGu0Cd +uwmit6C7Dp1x20K0AQAAxb0AmyQBAEnExrtAnbsJoreguw-dccVJw8Tnt5pDHgEAAMAEQgYBAAAk +AAAOwARBlgEAACikA-QPChMrJzo3Z49TNzz_Q09MFpoBAAMRAAAWAAIKAAYfAAAgAAEKAAYpAAAi +AAIKAAUcAARHAAAgAAEKAAUWAAQ_AAEUAAEcAAUMAAMQAwACCgABGAAHbwABFAMDAwABGAADEAAD +DAACCgAEDAABCgAFDAABGgADJQAEbQABFAMDAwABGAADEAADDAACCgAEDAACYwABCgAAFgABFAAB +EgAHRQACCgAJCQAADgACCv9JQwjoBrwEgAVgugSMBKwG_gQGAAAAAAAA8EEOQwYBAAACAAMBACgC +_gMAAAAQAAEA7AMDAQjI20H_AAAAQikBAADEJAEAx8PEQZYBAABC_wAAACQAAEOWAQAAwyikA_kP +Aw1TaP9DT0wQJwACBQAAGAABDgAFDAAFCgABCQAEMQABDAAAEAABCgAFDAANMQAADv9JQwPSBP4D +rAYOQwYBAAAGAAUBAnAG2gMAAADcAwABAOADAAJA7gMAAwD6BgAEQKYHAAUAsgMAAdvHw0HaAAAA +yMRB8AAAAMnDQQ4BAADKxkG9AQAAwQTGwARC_AAAAAu-AE1PAQAATE8BAAC-AU1SAQAATFIBAAAk +AQAVQ9MBAADBBcPABEIMAQAAwAUkAQBD0wEAAMPABEINAQAAwAUkAQBD1AEAACmkA6MQFgQNJiYm +AAgKAAkMAAwQPwALIAASIF3_Q09MAl0FAAAQAAIPAAAYCQAGGwAAIAABDAAGKwAAGgkABh0AABoA +AQ4ABycAABoAAQ4AABIAAg4ABQ4AATlBAAwmAAtHCQAAEgACDgAFHAACGwAIIwkAABoAAg4ABSQA +AiP_SUMJ4AP6BrQDqAf4A5gEnASmB5oEDkMGAQAAAQALAQQyARAAAQDgAwIBCMfD20H9AAAAEb0A +AQfVfDYBF91wML0BvQIBERVYaAGnj_lkvQMmCAAhAQBDlgEAACmkA68QBQ01SU4r_0NPTBMtAAIL +AAEKAAAQAAAIAAEUAAYKAAA3AAIYAAUYAAUYAAJHAAIYAAUYAAUYAAU1_0lDAvoDrAYGAAAA27Mg +6EEGAAAgJ8vh7kEGAAAgZgH470EGAACA9Enf50EOQwYBAAACAAMBACECogUAAAAQAAEA-gYEAQjI +20FSAQAAQikBAADEJAEAx8NCHgEAALeeQx4BAADDKKQDthADDVRF_0NPTBYhAAIRAAAWAAEOAAUY +AAUKAAEJAAQ7AAEKAAUYAAchAAAO_0lDA9IEvASkBQ5DBgEAAAsAIgFUyQkL2gMAAADcAwABAOwD +AAJArgUAAwCwBQAEQLIFAAVA7gMABgCqBwAHQPgGAAhA8gYACUCsBwAKALIDAAG-AMEH28fDQdoA +AADIxEH2AAAAycNBWgEAAMrGQVsBAADBBMZB8AAAAMEFw0EOAQAAwQbABwGYL4pCvQHuwAcBkUQ3 +cQHNZe8j7sAHvQK9A-7AB70EvQXuwAcBW8JWOb0G7sAHAfER8Vm9B-7AB70IvQnuwAe9Cr0L7sAH +vQy9De7ABwEBW4MSAb5vcEXuwAcBvoUxJAGMsuRO7sAHAcN9DFW9Du7ABwF0Xb5yvQ_uwAe9EAGx +lhY77sAHvREBNRLHJe7AB70SvRPuwAe9FL0V7sAHvRYB4yVPOO7ABwHGncEPvRfuwAcBzKEMJAFl +nKx37sAHAW8s6S0BdQIrWe7ABwGqhHRKAYPkpm7uwAcB3KmwXL0Y7sAHAdqI-Xa9Ge7AB70avRvu +wAe9HAEQMrQt7sAHvR29Hu7AB70fvSDuwAe9IQHCj6g97sAHvSK9I-7ABwFRY8oGvSTuwAcBZykp +FAFwbg4K7iYgAMAHAYUKtycB_C_SRu5MIAAAgMAHATghGy4BJskmXO5MIQAAgMAHAfxtLE0B7SrE +Wu5MIgAAgMAHARMNOFO9Je5MIwAAgMAHAVRzCmW9Ju5MJAAAgMAHAbsKanYBqLJ3PO5MJQAAgMAH +vScB5q7tR-5MJgAAgMAHvSgBOzWCFO5MJwAAgMAHvSkBZAPxTO5MKAAAgMAHvSq9K-5MKQAAgMAH +vSy9Le5MKgAAgMAHvS4BML5UBu5MKwAAgMAHvS-9MO5MLAAAgMAHvTEBEKllVe5MLQAAgMAHvTIB +KiBxV-5MLgAAgMAHAXCgahABuNG7Mu5MLwAAgMAHARbBpBm9M-5MMAAAgMAHAQhsNx4BU6tBUe5M +MQAAgMAHAUx3SCe9NO5MMgAAgMAHAbW8sDS9Ne5MMwAAgMAHAbMMHDm9Nu5MNAAAgMAHAUqq2E69 +N-5MNQAAgMAHAU_KnFsBc-Njd-5MNgAAgMAHAfNvLmi9OO5MNwAAgMAHAe6Cj3QB_LLvXe5MOAAA +gMAHAW9jpXgBYC8XQ-5MOQAAgMAHvTm9Ou5MOgAAgMAHvTsB7DlkGu5MOwAAgMAHvTwBKB5jI-5M +PAAAgMAHvT29Pu5MPQAAgMAHvT-9QO5MPgAAgMAHvUG9Qu5MPwAAgMAHvUO9RO5MQAAAgMAHvUUB +B8LAIe5MQQAAgMAHvUa9R-5MQgAAgMAHvUi9Se5MQwAAgMAHAapn8AYBum8Xcu5MRAAAgMAHAcV9 +Ywq9Su5MRQAAgMAHAQSYPxG9S-5MRgAAgMAHATULcRsBG0ccE-5MRwAAgMAHAfV32ygBhH0EI-5M +SAAAgMAHAXuryjIBkyTHQO5MSQAAgMAHAQq-njwBvL7JFe5MSgAAgMAHAcRnHUO9TO5MSwAAgMAH +Ab7UxUy9Te5MTAAAgMAHAZwpf1m9Tu5MTQAAgMAHAatvy18B7PrWOu5MTgAAgMAHAYwZRGwBF1hH +Su5MTwAAgMEIJgAAwQm-T-wOwAbFQvwAAAALvlBNTwEAAExPAQAAvlFNTQEAAExNAQAAvlJNUgEA +AExSAQAAvlNN_wAAAEz_AAAAvAAEuyCbTAsBAAAkAQAVQ9YBAADBCsPFQgwBAADACiQBAEPWAQAA +w8VCDQEAAMAKJAEAQ9cBAAAppAPhEE8YDSYmJisrAAgQdklnSWd2Z1hYdoVnWElYhbeoqJmKioqo +qJmZqLeKinuKe6iot6iZtw8ABQoABAoACRAADMICAAwwAAwOQDoACyAAESBY_0NPTALJCBkAABAA +Ag8AABgJAAYbAAAaAAEMAAYlAAAYCQAGGwAAHAABDAAHJwAAJgABDAAHMQAAGgkABx0AABAAAAcA +Ah4ABRgAAjUAAVAAAh4ABRgABTUAAU8AAh4AAhgAAjUAAVAAAh4AAhgAAjUAAU8AAh4ABRgAAjUA +AVAAAh4ABRgAAjUAAU8AAh4AAhgAAjUAAVAAAh4AAhgAAjUAAU8AAh4AAhgAAjUAAVAAAh4ABRgA +BTUAAU8AAh4ABRgABTUAAVAAAh4ABRgAAjUAAU8AAh4ABRgAAjUAAVAAAh4AAhgABTUAAU8AAh4A +AhgABTUAAVAAAh4AAhgAAjUAAU8AAh4AAhgAAjUAAVAAAh4AAhgABTUAAU8AAh4ABRgAAjUAAVAA +Ah4ABRgABTUAAU8AAh4ABRgABTUAAVAAAh4ABRgABTUAAU8AAh4ABRgAAjUAAVAAAh4ABRgAAjUA +AU8AAh4AAhgAAjUAAVAAAh4AAhgABTUAAU8AAh4AAhgAAjUAAVAAAh4AAhgAAjUAAU8AAh4AAhgA +BTUAAVAAAh4AAhgAAjUAAU8AAh4ABRgAAjUAAVAAAh4ABRgABTUABE8AAh4ABRgABTUABlAAAh4A +BRgABTUABk8AAh4ABRgABTUABlAAAh4ABRgAAjUABk8AAh4ABRgAAjUABlAAAh4ABRgABTUABk8A +Ah4AAhgABTUABlAAAh4AAhgABTUABk8AAh4AAhgABTUABlAAAh4AAhgAAjUABk8AAh4AAhgAAjUA +BlAAAh4AAhgABTUABk8AAh4AAhgAAjUABlAAAh4AAhgABTUABk8AAh4AAhgABTUABlAAAh4ABRgA +BTUABk8AAh4ABRgAAjUABlAAAh4ABRgABTUABk8AAh4ABRgAAjUABlAAAh4ABRgAAjUABk8AAh4A +BRgAAjUABlAAAh4ABRgAAjUABk8AAh4ABRgABTUABlAAAh4ABRgAAjUABk8AAh4ABRgABTUABlAA +Ah4ABRgABTUABk8AAh4AAhgAAjUABlAAAh4AAhgABTUABk8AAh4AAhgABTUABlAAAh4AAhgAAjUA +Bk8AAh4AAhgAAjUABlAAAh4AAhgAAjUABk8AAh4AAhgAAjUABlAAAh4AAhgABTUABk8AAh4AAhgA +AjUABlAAAh4AAhgAAjUABk8AAh4ABRgABTUABlAAAh4ABRgAAjUABk8AAh4ABRgAAjUABlAAAh4A +BRgABTUABk8AAh4ABRgABTUABlAAAh4ABRgABTUABk8AAh4ABRgABTUABlAAAh4ABRgAAjUABk8A +Ah4ABRgAAjUABlAAAh4ABRgAAjUABk8AAh4ABRgABTUABlAAAh4ABRgABTUACFcAABAABQ8DFQAA +GgACDgAAEgABDgAFDgABOQAMDgAMBwAMCwAMCAADCgAIIAALRwkAABIAAQ4ABRwAAhsACCMJAAAa +AAEOAAUkAAIj_0lDC64H4APsA7QD-AO0BZgErAecBLYFmgQOQwYBqgcAAQAEAQATAZoBAAEAsAUE +AQwAx9tB7AAAAEJaAAAA28MlAgCkA-sQARL_Q09MBRUAAwgAAA4AARAABQ4ABQwAARIAAR3_SUMC +2AO0AQYAAEDEFeXqQQYAAOB5H7jmQQYAAOBlp4ntQQYAAKB0uzbtQQYAAIB3OzHgQQYAAACnFmnu +QQYAACADusDmQQYAAIBU8EfiQQYAAGDzKePlQQYAAKDai2PlQQYAAAAjsE3rQQYAAABT9QDrQQYA +AEBIYGDkQQYAAECc9r_qQQYAAOAtcU_uQQYAAMA_1hvgQQYAAODUgHvjQQYAAIAufjPoQQYAAIDS +JO3pQQYAACA4bZPsQQYAAEBaKd7jQQYAAMDwyPftQQYAAKC2mnHhQQYAAIB6P6jnQQYAAKB2KmLg +QQYAAEAqygfjQQYAAGD128ztQQYAAKDNOAblQQYAAAD5ZADmQQYAAOAnZB_jQQYAAOD4L-vnQQYA +AIDc4d3nQQYAAGB-AdzoQQYAAOAo8rTqQQYAAKDkVGHiQQYAAOBNcADsQQYAAOB7trLjQQYAAMB7 +7HXhQQYAAMAlWTjgQQYAAKCQRU7iQQYAACAU_VfkQQYAAGDJTAPlQQYAACAARojnQQYAAABucUno +QQYAACDyEh_qQQYAAGA0iu3oQQYAACADXTLqQQYAAABD6t3qQQYAAIDEINPqQQYAAKCwxoHuQQYA +AAAZWhrnQQYAACBz3fHrQQYAAAAVaTPsQQYAAGBMK7noQQYAAGBZMWjsQQYAAGAUV9bqQQYAAIAC +D5ngQQYAAEBuFT7kQQYAAABB4JjhQQYAAED_3xfiQQYAAGCdDYrkQQYAACC9V9DrQQYAAOB-NN_n +QQYAAKAiz1jmQQYAAEAeL87oQQYAAGBlSm7sQQYAAMDZ50TpQQYAAIAzzETtQQYAAOAY1zDqQQYA +AMC6T1vtQQYAAMBjHbzpQQYAAODvqa_uQQYAAAAv2s3tQQYAAMAUE1nkQQYAAMC1Id_nQQYAAICp +AYLjQQYAAMBWyGfpQQYAAEDFr4zvQQ5DBgEAAAEAAwIAEwHKBAAAAPIGCQGqBwcBs8fDu1Cj6Avb +w3Hc7EmTAOrxKaQDnREEAyshF_9DT0wGFQUAABoPAAEIAAUSAAAxCQACCgADGv9JQwAOQwYBAAAB +AA4CCJ4BARAAAQCyBQUBsAUEAQjHw9tB_QAAABHcQf0AAAARAWfmCWq9ACECANxB_QAAABG9Ab0C +IQIA3EH9AAAAEQFy8248vQMhAgDcQf0AAAARvQQB8TYdXyECANxB_QAAABEBf1IOUb0FIQIA3EH9 +AAAAEb0GAR9sPishAgDcQf0AAAARAavZgx-9ByECANxB_QAAABEBGc3gWwF5IX4TIQIAJggAIQEA +Q5YBAAAppAOnEQcNK56trcsr_0NPTBOlAQACCwABCgAAEAAACAABGgAGCgAAPQAACAABEAAGCgAF +GAACOQADVAAACAABEAAGCgACGAACOQADUwAACAABEAAGCgAFGAACOQADVAAACAABEAAGCgACGAAF +OQADUwAACAABEAAGCgAFGAACOQADVAAACAABEAAGCgACGAAFOQADUwAACAABEAAGCgAFGAACOQAD +VAAACAABEAAGCgAFGAAFOQAGQf9JQwL6A6wGBgAAACGZd-5BBgAAoND1bOdBBgAAYOdUmeBBBgAA +YAWf0u9BBgAAQKf-qeRBBgAAIFrQvOVBBgAAgBGtYONBBgAAYK03aO9BDkMGAQACTQIFAgDmC0-u +BgABAJQFAAEAtAYAAACwBwABALIHAAIAtAcAAwC2BwAEALgHAAUAugcABgC8BwAHAL4HAAgAwAcA +CQDCBwAKAMQHAAsAxgcADADIBwANAMoHAA4AzAcADwDOBwAQANAHABEA0gcAEgDUBwATANYHABQA +2AcAFQDaBwAWANwHABcA3gcAGADgBwAZAOIHABoA5AcAGwDmBwAcAJoHAB0A6AcAHgDqBwAfAOwH +ACAA7gcAIQDwBwAiAPIHACMA9AcAJAD2BwAlAPgHACYA-gcAJwD8BwAoAMoEACkA_gcAKgCACAAr +AIIIACwAkgcALQCECAAuAIYIAC8AiAgAMACKCAAxAJYHADIAjAgAMwCOCAA0AJAIADUAkggANgCU +CAA3AJYIADgAmAgAOQCaCAA6AJwIADsAnggAPACgCAA9AKIIAD4ApAgAPwCmCABAAKgIAEEAqggA +QgCsCABDAK4IAEQAsAgARQCyCABGALQIAEcAtggASAC4CABJALoIAEoAvAgASwAQAAEA8gYJAfgG +CAEIwUzATEGWAQAAQR0BAADHw7NHyMO0R8nDtUfKw7ZHwQTDt0fBBcO4R8EGw7lHwQfDukfBCMRB +XQEAAMEJxEFeAQAAwQrFQV0BAADBC8VBXgEAAMEMxkFdAQAAwQ3GQV4BAADBDsAEQV0BAADBD8AE +QV4BAADBEMAFQV0BAADBEcAFQV4BAADBEsAGQV0BAADBE8AGQV4BAADBFMAHQV0BAADBFcAHQV4B +AADBFsAIQV0BAADBF8AIQV4BAADBGMAJwRnACsEawAvBG8AMwRzADcEdwA7BHsAPwR_AEMEgwBHB +IcASwSLAE8EjwBTBJMAVwSXAFsEmwBfBJ8AYwSizwSnAKbtQo2mLAwAA28ApR8EswCm7EKPoLsAs +z9DAKbWanUezrxVDXQEAAMErwCzP0MAptZqdtJ1Hs68VQ14BAADBKutYAdvAKbsPnkfBLcAtQV0B +AADBLsAtQV4BAADBL8AutKLAL7sfoK_ALrsIosAvuxigr67ALrqirsEwwC-0osAuux-gr8Avuwii +wC67GKCvrsAvuqLALrsZoK-uwTHbwCm1nkfBMsAyQV0BAADBM8AyQV4BAADBNMAzuxOiwDS7DaCv +wDO2oMA0ux2ir67AM7mirsE1wDS7E6LAM7sNoK_ANLagwDO7HaKvrsA0uaLAM7saoK-uwTbbwCm6 +nkfBN8A3QV0BAADBOMA3QV4BAADBOdvAKbsQnkfBOsA6QV0BAADBO8A6QV4BAADBPMAxwDmdwSrA +MMA4ncAqs6LAMbOio-gEtOoCs53BK8AqwDadwSrAK8A1ncAqs6LANrOio-gEtOoCs53BK8AqwDyd +wSrAK8A7ncAqs6LAPLOio-gEtOoCs53BK8AswCtDXQEAAMAswCpDXgEAAMAhwCOtwCGVwCWtrsE9 +wCLAJK3AIpXAJq2uwT7AGcAbrcAZwB2trsAbwB2trsE_wBrAHK3AGsAera7AHMAera7BQMAZuxyi +wBq3oK_AGbseoMAataKvrsAZuxmgwBq6oq-uwUHAGrscosAZt6CvwBq7HqDAGbWir67AGrsZoMAZ +uqKvrsFCwCG7DqLAIrsSoK_AIbsSosAiuw6gr67AIbsXoMAiuwmir67BQ8Aiuw6iwCG7EqCvwCK7 +EqLAIbsOoK-uwCK7F6DAIbsJoq-uwUTcwClHwUXARUFdAQAAwUbARUFeAQAAwUfAKMBEncFIwCfA +Q53ASLOiwCizoqPoBLTqArOdwUnASMA-ncFIwEnAPZ3ASLOiwD6zoqPoBLTqArOdwUnASMBHncFI +wEnARp3ASLOiwEezoqPoBLTqArOdwUnASMAqncFIwEnAK53ASLOiwCqzoqPoBLTqArOdwUnAQsBA +ncFKwEHAP53ASrOiwEKzoqPoBLTqArOdwUvAJcEnwCbBKMAjwSXAJMEmwCHBI8AiwSTAIMBInbOv +wSLAH8BJncAis6LAILOio-gEtOoCs52zr8EhwB3BH8AewSDAG8EdwBzBHsAZwRvAGsEcwEjASp2z +r8EawEnAS53AGrOiwEizoqPoBLTqArOds6_BGZMp63H8xMAKwBqdFUNeAQAAwQrEwAnAGZ3ACrOi +wBqzoqPoBLTqArOdQ10BAADFwAzAHJ0VQ14BAADBDMXAC8AbncAMs6LAHLOio-gEtOoCs51DXQEA +AMbADsAenRVDXgEAAMEOxsANwB2dwA6zosAes6Kj6AS06gKznUNdAQAAwATAEMAgnRVDXgEAAMEQ +wATAD8AfncAQs6LAILOio-gEtOoCs51DXQEAAMAFwBLAIp0VQ14BAADBEsAFwBHAIZ3AErOiwCKz +oqPoBLTqArOdQ10BAADABsAUwCSdFUNeAQAAwRTABsATwCOdwBSzosAks6Kj6AS06gKznUNdAQAA +wAfAFsAmnRVDXgEAAMEWwAfAFcAlncAWs6LAJrOio-gEtOoCs51DXQEAAMAIwBjAKJ0VQ14BAADB +GMAIwBfAJ53AGLOiwCizoqPoBLTqArOdQ10BAAAppAOwEYABE0UXFxccHBwcHSsrKysrKzAwMDAw +MDAwMDIXFxcXFxcXFxcXFxcXFxcZAA0KIyZncRMwMDCUtCswMJS0KzAxMDAxJnYmdiZ3MDJJSWJj +ra28viEwMSZ2JnYmdiZ4JngXFxcXFxcwgBcXFxcXFzCAHkmKSYpJik6PTo9Oj06PTo__Q09MGpIO +AAMZAAAQAAIKAAUMAAYlAAASCQADFQAAEgkAAxUAABIJAAMVAAASCQAEFQAAEgkABBUAABIJAAQV +AAASCQAEFQAAEgkABBUAABQKAAcZAAAUCgAHGQAAFAoABxkAABQKAAcZAAAUCgAHGQAAFAoABxkA +ABQPAAcZAAAUDwAHGQAAFA8ABxkAABQPAAcZAAAUDwAHGQAAFA8ABxkAABQPAAcZAAAUDwAHGQAA +FA8ABxkAABQPAAcZAAASAAQRAAASAAQRAAASAAQRAAASAAQRAAASAAQRAAASAAQRAAASAAQRAAAS +AAQRAAASAAQRAAASAAQRAAASAAQRAAASAAQRAAASAAQRAAASAAQRAAASAAQRAAASAAQRAAAaFAAC +CAAIEgAAMQAAEgkABRUAAAgAAggABQgAAA8AAAwPAAAOCQABEgACCAAEEgAKTwAADA8AAA4JAAES +AAIIAAMIAAMKAA1JAAAFAAAeCQACCAAGKQAAHgACEAAHLQAAHgACEAAHLQAAHgMDAAIaAAIKAwAC +GAAEDgMDAAIaAAMKAwACGAAFDgMAAhoABdkBAAAeAwMAAhoAAgoDAAIYAAQOAwMAAhoAAwoDAAIY +AAUOAwMAAhoAAgoDAAIYAAf_AQAAHgkAAggABSkAAB4AAhAABy0AAB4AAhAABy0AAB4DAwACGgAD +DAMAAhgABA4DAwACGAACCgMAAhoABQ4DAAIaAAXbAQAAHgMDAAIaAAMMAwACGAAEDgMDAAIYAAIK +AwACGgAFDgMDAAIaAAIKAwACGAAHgQIAABYJAAIIAAUhAAAWAAIIAAcdAAAWAAIIAAcdAAAYCQAC +CAAGIwAAGAACCgAHIQAAGAACCgAHIQAADAACFAAFHwAADAACFAADDgMDAAIQAAIKAwACGAAFCgAD +CAAEdwAADAACDAAFFwAADAACDAADFAMDAAIQAAIKAwACGAAFCgADCAAEdQAADAACDAAFFwAADAAC +DAADEAMDAAIQAAIKAwACFAAFCgADCAAEbQ8AAA4ABxMPAAAOAAcbAAAWAwACCgADDAMDAAMKAAY7 +AAAWAwACCgADDAMDAAMKAAY7AAAWAwACCgADDAMAAgoABAwDAAIKAAZRAAAWAwACCgADDAMAAgoA +BAwDAAIKAAZRAAAcAwMAAg4AAwwDAAIMAAMOAwMAAgwAAw4DAAIOAAQMAwMAAgwAAwwDAAIOAAa7 +AQAAHAMDAAIOAAMMAwACDAADDgMDAAIMAAMOAwACDgAEDAMDAAIMAAMMAwACDgAGuwEAABwDAwAC +DgADDAMAAgwABA4DAwACDgADDAMAAgwABQ4DAwACDAADDAMAAg4AB7sBAAAcAwMAAg4AAwwDAAIM +AAQOAwMAAg4AAwwDAAIMAAUOAwMAAgwAAwwDAAIOAAe7AQAAFAkABRcAABQPAAcZAAAUDwAHGQAA +FAACCgAFHQAAFAACCgADFAMDAAIQAAIKAwACDgAFCgADCAAEcQAAFAACDAAFHwAAFAACDAADDAMD +AAIQAAIKAwACEAAFCgADCAAEbQAAFAACDAAFHwAAFAACDAADDAMDAAIQAAIKAwACEAAFCgADCAAE +bQAAFAACDAAFHwAAFAACDAADDAMDAAIQAAIKAwACEAAFCgADCAAEbQAAFAACFAAFJwAAFAACFAAD +DgMDAAIQAAIKAwACGAAFCgADCAAEfwAACgAECQAACgAECQAACgAECQAACgAECQAACgAECQAACgAE +CQAACgMAAgoAAw4ABCMAAAoDAAIKAAMMAwMAAg4AAgoDAAIOAAUKAAMIAAIMAARrAAAKAAQJAAAK +AAQJAAAKAAQJAAAKAAQJAAAKAAQJAAAKAAQJAAAKAwACDAADDgAEJQAACgMAAgwAAwwDAwACDgAC +CgMAAhAABQoAAwgAAgwABEcABS8AAAwKAAAOAwACDAALLQoAAA4DAAIMAAMKAwMAAhAAAgoDAAIO +AAUKAAMIAAdrAAAMCgAADgMAAgwACy0KAAAOAwACDAADCgMDAAIQAAIKAwACDgAFCgADCAAHawAA +DAoAAA4DAAIMAAstCgAADgMAAgwAAwoDAwACEAACCgMAAg4ABQoAAwgAB2sAAAwPAAAOAwACDAAL +LQ8AAA4DAAIMAAMKAwMAAhAAAgoDAAIOAAUKAAMIAAdrAAAMDwAADgMAAgwACy0PAAAOAwACDAAD +CgMDAAIQAAIKAwACDgAFCgADCAAHawAADA8AAA4DAAIMAAstDwAADgMAAgwAAwoDAwACEAACCgMA +Ag4ABQoAAwgAB2sAAAwPAAAOAwACDAALLQ8AAA4DAAIMAAMKAwMAAhAAAgoDAAIOAAUKAAMIAAdr +AAAMDwAADgMAAgwACy0PAAAOAwACDAADCgMDAAIQAAIKAwACDgAFCgADCP9JQwS6BboEvAWsBg5D +BgEAAAYABwABlgEGggUAAACIBQABAN4GAAIA4AYAAwCiBQAEABAAAQAIwQXABUE_AQAAx8NBHQEA +AMjABUFAAQAAuwiaycNBHgEAALsImsrExriicRNHvIAAuxjGuyCcnqCvScTGvIAAnbsKorigux6d +cTiXAAAAQrQBAADFvQCbJAEAScTGvIAAnbsKorigux-dccVJw8Tnt5pDHgEAAMAFQgYBAAAkAAAO +wAVBlgEAAEJcAQAAJAAAwQTABCikA9ESCxMrJzo3Z6hYNzxa_0NPTBajAQADEQAAFgACCgAGHwAA +IAABCgAGKQAAIgACCgAFHAAERwAAIAABCgAFFgAEPwABFAABHAAFDAADEAMAAgoAARgAB28AARQD +AwMAARgABBIAAw4AAgoABAwABQoABQwAARoAAyUABHEAARQDAwMAARgABBIAAw4AAgoABAwAAmcA +AQoAABYAARQAARIAB0UAAgoACQkAABYAAgoABQwACisAAA7_SUMJuAXoBrwEgAVgugSMBKwG_gQG +AAAAAAAA8EEOQwYBAAACAAMBACgC_gMAAAAQAAEA7AMCAQjI20H_AAAAQikBAADEJAEAx8PEQZYB +AABC_wAAACQAAEOWAQAAwyikA-kSAw1TaP9DT0wQJwACBQAAGAABDgAFDAAFCgABCQAEMQABDAAA +EAABCgAFDAANMQAADv9JQwPSBP4DrAYOQwYBAAAHAAUBAnoH2gMAAACuBQABALAFAAJAsgUAA0Du +AwAEAKwHAAVAvggABgCyAwAB28fDQVoBAADIxEFbAQAAycRB8AAAAMrDQQ4BAADBBMAEQdYBAADB +BcAEwAVC_AAAAAu-AE1PAQAATE8BAAC-AU1SAQAATFIBAAAkAQAVQx8CAADBBsPABUIMAQAAwAYk +AQBDHwIAAMPABUINAQAAwAYkAQBDIAIAACmkA5UTFwQNJiYmKwAJCgAKEAAMED8ACyAAEiBd_0NP +TAJmBQAAEAACDwAAGAkABhsAABwAAQwABicAACYAAQwABjEAABoJAAcdAAAaAAIOAAcnAAAaAAIO +AAASAAIOAAUOAAE5QQAMJgALRwkAABIAAg4ABRwAAhsACCMJAAAaAAIOAAUkAAIj_0lDCuADwAj4 +A7QFmASsB5wEtgW-CJoEDkMGAQAAAQAOAgieAQEQAAEAsgUDAbAFAgEIx8PbQf0AAAAR3EH9AAAA +Eb0AvQEhAgDcQf0AAAARASopmmIBB9V8NiECANxB_QAAABG9AgEX3XAwIQIA3EH9AAAAEQHY7C8V +vQMhAgDcQf0AAAARAWcmM2e9BCECANxB_QAAABG9BQERFVhoIQIA3EH9AAAAEb0GAaeP-WQhAgDc +Qf0AAAARAR1ItUe9ByECACYIACEBAEOWAQAAKaQDohMHDSutra28K_9DT0wTpQEAAgsAAQoAABAA +AAgAARoABgoAAD0AAAgAARAABgoAAhgAAjkAA1QAAAgAARAABgoABRgABTkAA1MAAAgAARAABgoA +AhgABTkAA1QAAAgAARAABgoABRgAAjkAA1MAAAgAARAABgoABRgAAjkAA1QAAAgAARAABgoAAhgA +BTkAA1MAAAgAARAABgoAAhgABTkAA1QAAAgAARAABgoABRgAAjkABkH_SUMC-gOsBgYAAKCrc3fp +QQYAAADbsyDoQQYAAEArICviQQYAACAny-HuQQYAACBmAfjvQQYAAOBQidbhQQYAAKDBhWHrQQYA +AID0Sd_nQQ5DBgEAAAIAAwEAIgKiBQAAABAAAQCsBwUBCMjbQVIBAABCKQEAAMQkAQDHw0IeAQAA +uxCeQx4BAADDKKQDqxMDDVRK_0NPTBYhAAIRAAAWAAEOAAUYAAUKAAEJAAQ7AAEKAAUYAAghAAAO +_0lDA9IEvASkBQ5DBgEAAQwBCAEGzwENrgIAAUDaAwAAANwDAAEA4AMAAkDsAwADQK4FAAQAsAUA +BUDuAwAGAMIIAAdAxAgACEDGCAAJQJoGAApAyAgACwCyAwAB28fDQdoAAADIxEHwAAAAycRB9gAA +AMrDQVoBAADBBMAEQVsBAADBBcNBDgEAAMEGJgAAwQcmAADBCCYAAMEJvgDsDiYAAMEKvgHsDsAG +xkL8AAAAC8ZBCAEAAEL8AAAAC7wAAkwlAgAAJAEATAgBAAC-Ak1PAQAATE8BAAC-A01NAQAATE0B +AAC-BE1SAQAATFIBAAC-BU3_AAAATP8AAAAkAQAVQyQCAADBC8PGQgwBAADACyQBAEMkAgAAw8ZC +DQEAAMALJAEAQyYCAAAppAPWEy4EDSYmJiswLRwcAAViGQAFCgAECgAJEj8rAAgSAAzqAQAMYAAM +Fj8ACyAAESBY_0NPTAKjAQUAABAAAg8AABgJAAYbAAAgAAEMAAYrAAAaAAEMAAYlAAAYCQAHGwAA +HAACDAAHJwAAGgkABx0AACQABSMAACQABSMAACwABSsDFQAAEAAFDwMVAAAWAAIOAAAOAAEOAAUO +AAE7AAEOAAUIAAUOAAEJAAgDAAgLAAwOAAwHAAwLAAwqAAs_CQAADgABDgAFHAACGwAIHwkAABYA +AQ4ABSQAAiP_SUMM4APsA7QD-APMCLQFyAiYBJwEtgWaBJAEDkMGAQAACwAGBADfAQvqBgAAAM4I +AAEA7gYAAgDQCAADANIIAAQA1AgABQDKBAAGANYIAAcA2AgACADOBAAJANoIAAoAwggHAcQICAHG +CAkBsAUFAbTHs8izycW7GKPoLdvDuMSanXHFtJ3FtZ2atZu7QJxJxLicyrXDmrbEmp24nMEExsfA +BMiTAurPs8fDuKPoJbPIxLij6Brcw7jEmp1xxLXDmrbEmp24nLianUmTAerjkwDq2LTBBbPBBsAG +uxij6G-zwQezwQizwQnACbqj6ErABbSt6Ce0wAmgtJ7BCsAKuyCj6AzACLTACqCuwQjqDcAHtMAK +uyCeoK7BB8AFvIAAregMwAW0oLtxrsEF6gfABbSgwQWTCeqy3cAGcd5C7AAAAMAHwAgkAgBJkwbq +jCmkA-YTIgQXK2gXOg0SGSYmbBcZEjUSEzAhKyYwDQAMCiwwDSIYXRf_Q09MBsoCBQAAEAACDgAC +HQAAGg8AAQgABRIAADEAARgAAQgAAQgABAoDAwABCAACCgMAAQgAAwoAAgoABGUAABYAAQgAAx0A +ABYDAAEIAAIIAAEIAAMKAAQ5AAAIAAIHAAAIAAMgAAQvAAAaDwABCAAEEAAALwAAGg8AAQgABBAA +AC8AARYAAQgAAQgABAoAAQgDAwABCAACCAABCAADCgACCgAEQQAEBwAELQAAFgADFQAAGhQAAggA +BRIAADEAAC4AAy0AAC4AAy0AABoUAAIIAAQQAAAvAAAIAAIOAAQMAAAZAAAkAwABCgADCgAEOQAA +CAACHAAFCAAAIwACKAABCgAIDgAAPwACKAABCgMAAhwAB18AAAgAAg4ABgwAABkAAA4DAAIQAAIK +AAcjAAAFAAISAAQMAAQtAAEgAAMKAAEQAAUOAAIkAAIxAAQR_0lDAdgDDkMGAQAAAQAEAgAaAcoE +AAAAmgYKAbAFBQGzx8O7GaPoEtvDcdxC7AAAACQAAEmTAOrqKaQDmBQEAytEF_9DT0wGGAUAABoP +AAEIAAUSAAAxCQACCgABEAAJCv9JQwHYAw5DBgEAAAMABAEAQgPcCAAAAMoEAAEAEAABALAFBQEI +ycUmAAAVQy8CAADHs8jEuxmj6BPDxHHbQf0AAAARIQAASZMB6unFvEAGtcVBCAEAAEElAgAAmp67 +IJtDCwEAACmkA64UBg06K0kYhf9DT0wTRwACCwAAGAABCgAAEgAKMwAAGg8AAQgABRIAADEAAQwA +AgoAAAgAARAABhcABBIABC8AAQoAABgDAAMOAAEIAAEKAAUIAAcg_0lDBcoI3giQBJYE-gMOQwYB +AAIcAgQEApgGHq4GAAEAlAUAAQDcCAAAAOAIAAEAygQAAgDiCAADAOQIAAQA5ggABQDoCAAGAOoG +AAcA6ggACADsCAAJAM4IAAoA7ggACwDwCAAMAPIIAA0A9AgADgD2CAAPAPgIABAA-ggAEQD8CAAS +AP4IABMAgAkAFACCCQAVAIQJABYAhgkAFwCICQAYAIoJABkAjAkAGgAQAAEAmgYKAcIIBwHECAgB +xggJAQjBG8AbQS8CAADHwBtBCwEAALWbyLPJxcSj6HnP0LXFmp1Hys_QtcWanbSdR8EExrsIoMa7 +GKKvAf8A_wCtxrsYoMa7CKKvvQCtr8rABLsIoMAEuxiirwH_AP8ArcAEuxigwAS7CKKvvQGtr8EE +w8VHwQXABUJdAQAAwASuQ10BAADABUJeAQAAxq5DXgEAAJMC6oSzwQbABrsYo2l6AgAAs8EHwAe4 +o-hTs8EIs8EJs8EKwAq4o-gow8AHuMAKmp1HwQXACMAFQV0BAACuwQjACcAFQV4BAACuwQmTCurU +28AHR8ELwAvACENdAQAAwAvACUNeAQAAkwfqqbPBB8AHuKNpjQAAANvAB7eduJxHwQzbwAe0nbic +R8ENwA1BXQEAAMEOwA1BXgEAAMEPwAxBXQEAAMAOtKDAD7sfoq-uwQjADEFeAQAAwA-0oMAOux-i +r67BCbPBCsAKuKPoLsPAB7jACpqdR8EFwAVCXQEAAMAIrkNdAQAAwAVCXgEAAMAJrkNeAQAAkwrq +zpMH63D_tMEQwBC7GaNpkAAAAMPAEEfBBcAFQV0BAADBEcAFQV4BAADBEtzAEEfBE8ATuyCj6CPA +EcAToMASuyDAE56ir8EIwBLAE6DAEbsgwBOeoq_BCeonwBLAE7sgnqDAEbtAwBOeoq_BCMARwBO7 +IJ6gwBK7QMATnqKvwQnb3cAQR0fBFMAUwAhDXQEAAMAUwAlDXgEAAJMQ62z_27NHwRXDs0fBFsAV +wBZBXQEAAENdAQAAwBXAFkFeAQAAQ14BAACzwQfAB7ijaYcAAACzwQrACrij6HbAB7jACpqdwRDD +wBBHwQXbwBBHwRfbwAe0nbicuMAKmp1HwRjbwAe1nbicuMAKmp1HwRnABcAXQV0BAADAGEFdAQAA +lcAZQV0BAACtrkNdAQAAwAXAF0FeAQAAwBhBXgEAAJXAGUFeAQAAra5DXgEAAJMK6oaTB-t2_8Oz +R8EF3sAGR8EawAVCXQEAAMAaQV0BAACuQ10BAADABUJeAQAAwBpBXgEAAK5DXgEAAJMG64L9KaQD +txRSEys3JysACwhORAlYTg8cTkkZRTEhMDo_PxkhMDAXQDU1MDJnZzA6Tk4XHgANCiEwMCMmU1MN +YgATCCswMB4cHElLPzEwISFOUJ6eFx4cIWdnHP9DT0wa5AYAAxkAABgAAgoABiEAACwAAgoABRgA +A00AABoPAAEIAAQsAABLAAAWCQABEgABCAAFMwAAFgkAARIAAQgAAwgABTsAAAwAAAMDAwMAAQ4A +AwwDAAEQAAQOAAY_AwMDAAEOAAMMAwABEAAEDgAFRwAADgAABQMDAwACEAADDAMAAhIABA4ABkMD +AwMAAhAAAwwDAAISAAQOAAZLAAAWAAEMAAQhAAIKAAUQAAgZAAIKAAUQAAcoAARJAAAiFAACEAAI +GgAASQAAGhQAAggABBAAAC8AABYAAxQAAykAABoUAAIIAAQQAAAvAAAWAAEMAAIIAAEIAAcxAAIQ +AAIKAAgZAAIQAAIKAAgMAAQtAAASCQAFFQ8AAA4ABxMPAAAOAAcSAAQtAAAaFAACCAAHEAAALwAA +FAkDAAIIAAIKAAUrAAAUCQMAAggAAgoABSsAABoAAggAByEAABoAAggAByEAABYAAggABQ4DAwAC +FAACCgMAAhYAB2UAABYAAggABQ4DAwACFAACCgMAAhYAB2UAABoUAAIIAAQQAAAvAAAWAAEMAAII +AAEIAAcxAAIKAAUQAAgZAAIKAAUQAAgMAAQHAAUtAAAqFAACGAAIIgAAYQAAFgABDAAFIQAAHAAC +CgAHJQAAHAACCgAHJQAAIAABGAAFNwAACAACGAAFCAAAHwAADgMAAhYAAxoDAAIYAwACCgAHZQAA +DgMAAhYAAxoDAAIYAwACCgAJKQAAOwAADgMAAhYDAAIYAAQOAwACGAMAAgoAB3MAAA4DAAIWAwAC +GAAEDgMAAhgDAAIKAAd7AAAcCQABFgAGNQACEAAADgAHHQACEAAADgAHKgAFTwAAEgkABBUAABoA +AQwABCUPAAAOAAIOAAohDwAADgACDgAKIQAAGhQAAggABxAAAC8AABoUAAIIAAQQAAAvAAAgAAII +AAEIAAYvAAAWAAEMAAUhAAAYCQAFGwAAHAkDAwACCAACCgACCgABCAAHRwAAHAkDAwACCAACCgAC +CgABCAAHRwACCgAADgACDAAFDgMDAAIQAAYOAAIQAAxjAAIKAAAOAAIMAAUOAwMAAhAABg4AAhAA +DD0ABAcABS0AABYAAQwABCEAACgAASAABUcAAgoABRAAAhwACzUAAgoABRAAAhw6_0lDBLoF3giW +BLwFBgAAAOAf4O9BBgAAAOAf4O9BDkMGAQAADgAHAgK0Ag6CBQAAAIgFAAEA3gYAAgDgBgADAI4J +AAQA3AgABQCQCQAGAJIJAAcAlAkACADKBAAJAOYIAAoA-ggACwD8CAAMABAAAQCuAgAD4AMCAQjB +DcANQT8BAADHw0EdAQAAyMANQUABAAC7CJrJw0EeAQAAuwiaysANQQsBAAC7IJrBBMTGuKJxE0e0 +uxjGuyCcnqCvScTbQigBAADGtJ3ABJskAQDABJq4orSecRNHvIAAr0nDxOe3mkMeAQAAwA1CBgEA +ACQAAA7ADUEvAgAAwQXADUEIAQAAQSUCAAC7CJvBBsAGuwibwQcmAADBCLPBCcAJwAej6H3ABcAJ +R8EKwApBXQEAAMELwApBXgEAAMEMwAu7CKDAC7sYoq8B_wD_AK3AC7sYoMALuwiir70Ara_BC8AM +uwigwAy7GKKvAf8A_wCtwAy7GKDADLsIoq-9Aa2vwQzACEIsAQAAwAwkAQAOwAhCLAEAAMALJAEA +DpMJ63__3EH9AAAAEcAIwAYhAgAopAOsFR0TKyY6NUFdnjc8MFgoHDYmMAAJCFhODlhOD0REHv9D +T0wW3QIAAxEAABYAAgoABh8AACAAAQoABikAACIAAgoABRwABEcAACAAAQoABRYABD8AACgAAgoA +BRgABUkAARQAARwABQwAAQ4DAAIKAAEYAAdtAAEUAwMAAQoABQoDAAEYAAIKAAMtAANQAAMmAAIK +AAUMAAWtAQABCgAAFgABFAABEgAHRQACCgAJCQAAGAACCgAHIQAAMAACCgAFCAAFHgAFXwAAMAAC +KAAFVwAAIAAFHwAAGhQAAggABTAAAE8AABYAAgwABSEAABwAAgoAByUAABwAAgoAByUAABQAAAsD +AwMAAhYAAwwDAAIYAAQOAAZPAwMDAAIWAAMMAwACGAAEDgAGVwAAFAAACwMDAwACFgADDAMAAhgA +BA4ABk8DAwMAAhYAAwwDAAIYAAQOAAZXAAIUAAUKAAIJAAQTAAIUAAUKAAIJAAQyAAVNAAAOAAAI +AAEUAAYKAAIWAAI7_0lDD8oI2AS6BbwEgAVg3gi6BJAEjASWBLwF_gTQBPoDBgAAAOAf4O9BBgAA +AOAf4O9BDkMGAQAABAAEAQBGBP4DAAAA3AgAAQDKBAACABAAAQDsAwMBCMrbQf8AAABCKQEAAMYk +AQDHw8ZBLwIAAEIqAQAAsyQBABVDLwIAAMizycW7GaPoFMTFccTFR0L_AAAAJAAASZMC6ujDKKQD +3BUGDVR2K04Y_0NPTBBKAAIFAAAYAAEOAAUMAAUKAAEJAAQxAAAYAAEMAAASAAEKAAUOAAUMAAEL +AApNAAAaDwABCAAFEgAAMQABDAACCgABDA8ADS8AAA7_SUME0gTUBN4I_gMOQwYBAAESASIBDNYN +E64CAAEA2gMAAADcAwABAOADAAJA7AMAA0DuAwAEAJYJAAVAmAkABkCaCQAHQJwJAAhAngkACUCg +CQAKQKIJAAsApAkADECmCQANQKgJAA5AqgkAD0CsCQAQQK4JABFAsgMAAb4GwQy-B8ENvgjBDr4J +wQ--CsEQvgvBEdvHw0HaAAAAyMRB8AAAAMnEQfYAAADKw0EOAQAAwQTFQuwAAACztLW2t7i5ursI +uwm7CrsLuwy7DbsOuw-6t7sNtLsKubsPtrsMs7sJuLW7DrsLuwgmIAC2TCAAAIC7CkwhAACAuw5M +IgAAgLdMIwAAgLsJTCQAAIC7D0wlAACAuwhMJgAAgLRMJwAAgLVMKAAAgLpMKQAAgLNMKgAAgLlM +KwAAgLsNTCwAAIC7C0wtAACAuEwuAACAuwxMLwAAgLRMMAAAgLsJTDEAAIC7C0wyAACAuwpMMwAA +gLNMNAAAgLsITDUAAIC7DEw2AACAt0w3AACAuw1MOAAAgLZMOQAAgLpMOgAAgLsPTDsAAIC7Dkw8 +AACAuEw9AACAuUw-AACAtUw_AACAt0xAAACAs0xBAACAuExCAACAuwlMQwAAgLpMRAAAgLsMTEUA +AIC1TEYAAIC7CkxHAACAuw5MSAAAgLRMSQAAgLZMSgAAgLsITEsAAIC7C0xMAACAuUxNAACAuw9M +TgAAgLsNTE8AAIAkAQDBBcVC7AAAALi7Drqzuwm1uwu3uw25uw-7CLS7Cra7DLm7C7a6s7sNuLsK +uw67D7sIuwy3uwm0tSYgALsPTCAAAIC4TCEAAIC0TCIAAIC2TCMAAIC6TCQAAIC7DkwlAACAuUwm +AACAuwlMJwAAgLsLTCgAAIC7CEwpAACAuwxMKgAAgLVMKwAAgLsKTCwAAICzTC0AAIC3TC4AAIC7 +DUwvAACAuwhMMAAAgLlMMQAAgLdMMgAAgLRMMwAAgLZMNAAAgLsLTDUAAIC7D0w2AACAs0w3AACA +uEw4AACAuwxMOQAAgLVMOgAAgLsNTDsAAIC7CUw8AACAukw9AACAuwpMPgAAgLsOTD8AAIC7DExA +AACAuw9MQQAAgLsKTEIAAIC3TEMAAIC0TEQAAIC4TEUAAIC7CExGAACAukxHAACAuUxIAACAtUxJ +AACAuw1MSgAAgLsOTEsAAICzTEwAAIC2TE0AAIC7CUxOAACAuwtMTwAAgCQBAMEGxULsAAAAuwu7 +DrsPuwy4uwi6uwm7C7sNuw67D7m6uwm7CLq5uwi7DbsLuwm6uw-6uwy7D7sJuwu6uw27DCYgALsL +TCAAAIC7DUwhAACAuUwiAACAukwjAACAuw5MJAAAgLsJTCUAAIC7DUwmAACAuw9MJwAAgLsOTCgA +AIC7CEwpAACAuw1MKgAAgLlMKwAAgLhMLAAAgLsMTC0AAIC6TC4AAIC4TC8AAIC7C0wwAACAuwxM +MQAAgLsOTDIAAIC7D0wzAACAuw5MNAAAgLsPTDUAAIC7CUw2AACAuwhMNwAAgLsJTDgAAIC7Dkw5 +AACAuEw6AACAuUw7AACAuwhMPAAAgLlMPQAAgLhMPgAAgLsMTD8AAIC7CUxAAACAuw9MQQAAgLhM +QgAAgLsLTEMAAIC5TEQAAIC7CExFAACAuw1MRgAAgLsMTEcAAIC4TEgAAIC7DExJAACAuw1MSgAA +gLsOTEsAAIC7C0xMAACAuwhMTQAAgLhMTgAAgLlMTwAAgCQBAMEHxULsAAAAuwi7CbsJuwu7DbsP +uw-4urq7CLsLuw67DrsMubsJuw27D7q7DLsIuwm7C7q6uwy6ubsPuw27CyYgALsJTCAAAIC6TCEA +AIC7D0wiAACAuwtMIwAAgLsITCQAAIC5TCUAAIC5TCYAAIC7DkwnAACAuwxMKAAAgLsNTCkAAIC4 +TCoAAIC7DkwrAACAuw1MLAAAgLsNTC0AAIC6TC4AAIC4TC8AAIC7D0wwAACAuEwxAACAuwhMMgAA +gLsLTDMAAIC7Dkw0AACAuw5MNQAAgLlMNgAAgLsOTDcAAIC5TDgAAIC7CUw5AACAuwxMOgAAgLsJ +TDsAAIC7DEw8AACAuEw9AACAuw9MPgAAgLsITD8AAIC7CExAAACAuExBAACAuwxMQgAAgLsJTEMA +AIC7DExEAACAuExFAACAuw5MRgAAgLlMRwAAgLsITEgAAIC7DUxJAACAuUxKAACAuExLAACAuw9M +TAAAgLsNTE0AAIC7C0xOAACAuwtMTwAAgCQBAMEIxULsAAAAswGZeYJaAaHr2W69AL0BJgUAJAEA +wQnFQuwAAAAB5ouiUAEk0U1cAfM-cG0B6XZterMmBQAkAQDBCsAExkL8AAAAC74CTU8BAABMTwEA +AL4DTU0BAABMTQEAAL4ETVIBAABMUgEAAL4FTf8AAABM_wAAACQBABVDUQIAAMELw8ZCDAEAAMAL +JAEAQ1ECAADDxkINAQAAwAskAQBDWAIAACmkA5UWTXwNJiYmLSZ7igBoAgBoAgBsAiZ7jwBoAgBo +AgBrAiuKngBqAgBsAgBuAiuPmQBqAgBsAgBuBJQAIwoyAAysAQAMSgAMDj8AC1gAESBY_0NPTAKB +CH0AABAAAg8AABgJAAYbAAAgAAEMAAYrAAAaAAEMAAYlAAAaCQAHHQAAFAABFAAFDgAALQABCAAB +CAABCAABCAABCAABCAABCAABCAACCA8AAggAAggAAggAAggAAggAAnUAAQgKAAIKCgACCgoAAgoK +AAIKAAEIAAIIAAEICgACCAACCgAFdyMABwgABwoABggoAAcKAAcIAAYIAAYIAAYIAAYIIwAHCAAH +CiMAB3UABggoAAcIAAcKAAYIKAAHCiMABwoABggjAAcIAAcKAAYIAAYIAAZ3AAYIAAYIAAYIAAcI +IwAHCiMABwgABwoABggABggoAAcKIwAHCAAHVQAFJwAAFAABFAAFDgAALQoAAgoAAQgAAQgAAggK +AAIKCgACCgoAAgoAAggKAAIKCgACdQoAAgoAAQgAAQgKAAIKCgACCAACCAACCg8AAgoAAQgAAggA +AQgABHcABwoABggABggABggjAAcKAAYIKAAHCigABwojAAcKAAYIIwAHdwAHCAAGCAAGCAAGCCMA +BwgABwoABggjAAcKIwAHCgAHCCMABwgAB3UABwgABwgABwoABggABggABggABwgABggABggjAAcI +AAcKAAYIAAYIKAAHVwAFJwAAFAABFAAFDgAAKwACCAACCAACCAACCgABCAACCAABCA8AAggAAggA +AggAAgoAAQgAAQgAAggAAnsKAAEKDwACCAACCgACCAoAAgoKAAIIAAIKDwACCgoAAggABXUABwgA +BwoABggjAAcKKAAHCAAHCAAHCigABwoABggjAAcKAAYIAAZ1AAcIAAcIAAcIAAcIAAcIAAcKAAcI +AAcIKAAHCgAGCAAGCAAHCAAGCCMAB3soAAcKIwAHCgAGCCgABwgABwojAAcIAAcIAAcIAAcKAAcI +AAYIAAZXAAUnAAAUAAEUAAUOAAAtAAIIAAIIDwACCAACCAACCAACCgABCAABCAABCA8AAggAAggA +AggAAgoAAXcPAAIIAAIKCgACCgACCA8AAgoAAQgKAAIKAAEICgACCAACCAAFdQAHCCMABwgABwoA +BwgABggjAAcIAAcIAAcKIwAHCAAHCAAHCgAGCAAGdwAHCgAGCCgABwgABwgABwojAAcKAAYIKAAH +CigABwojAAcKAAd5AAcIIwAHCigABwojAAcKAAYIKAAHCgAGCCMABwgABwgABwgAB1UABScAABYA +ARQABQ4EAAEYAAUYAAUYAAIYAAVxAAUpAAAWAAEUAAUOBAAFGAAFGAAFGAAFGAAEcQAFKQAAIAAC +DgAAGAABDgAFDgABRQAMDgAMBwAMCwAMPgALUwkAABgAAQ4ABRwAAhsACCkJAAAgAAEOAAUkAAIj +_0lDCrAJ4APsA7QD-APYA5gEnASaBKIJBgAAgJt34-FBBgAAwKl_KuVBDkMGAQAAAQAIAQMlARAA +AQDgAwIBCMfD20LsAAAAAQEjRWe9AL0BAXZUMhC9AiYFACQBAEOWAQAAKaQDvhYCDa3_Q09MEx8A +AgsAAQoAABIAARQABQ4DAAUYAAIYAAIYAAUYAAVv_0lDAtgDrAYGAAAgcbX57UEGAADAn1sX40EG +AAAAPlx66EEOQwYBAAIWAgYMAY0FGK4GAAEAlAUAAQDKBAAAALAGAAEAsgYAAgC0BgADAPwHAAQA +sgkABQC0CQAGALYJAAcAuAkACAC6CQAJAOIHAAoA5gcACwDoBwAMAOwHAA0A8AcADgC8CQAPAL4J +ABAAwAkAEQDCCQASAMQJABMA7gYAFAAQAAEAngkJAaAJCgGWCQUBmAkGAZoJBwGcCQgBpAkMAaYJ +DQGoCQ4BqgkPAawJEAGuCREBCMEVs8fDuxCj6C3Qw53Iz8RHyc_EccW7CKDFuxiirwH_AP8ArcW7 +GKDFuwiir70Ara9JkwDqz8AVQZYBAABBHQEAAMrbQR0BAADBBNxBHQEAAMEF3UEdAQAAwQbeQR0B +AADBB14EAEEdAQAAwQheBQBBHQEAAMEJxrNHwgrBD8a0R8ILwRDGtUfCDMERxrZHwg3BEsa3R8IO +wROzx8O7UKNpmwEAAMAKz9DABsNHnUeds6_BFMO7EKPoF8AUXgYAwAvADMAN78AEs0edncEU6mnD +uyCj6BfAFF4HAMALwAzADe_ABLRHnZ3BFOpNw7swo-gXwBReCADAC8AMwA3vwAS1R52dwRTqMcO7 +QKPoF8AUXgkAwAvADMAN78AEtkedncEU6hXAFF4KAMALwAzADe_ABLdHnZ3BFMAUs6_BFF4LAMAU +wAjDR-7BFMAUwA6ds6_BFMAOwQrADcEOXgsAwAy7Cu7BDcALwQzAFMELwA_P0MAHw0edR52zr8EU +w7sQo-gXwBReCgDAEMARwBLvwAWzR52dwRTqacO7IKPoF8AUXgkAwBDAEcAS78AFtEedncEU6k3D +uzCj6BfAFF4IAMAQwBHAEu_ABbVHnZ3BFOoxw7tAo-gXwBReBwDAEMARwBLvwAW2R52dwRTqFcAU +XgYAwBDAEcAS78AFt0edncEUwBSzr8EUXgsAwBTACcNH7sEUwBTAE52zr8EUwBPBD8ASwRNeCwDA +EbsK7sESwBDBEcAUwRDDtJ3H62L-xrRHwAydwBKds6_BFMa0cca1R8ANncATnbOvSca1cca2R8AO +ncAPnbOvSca2cca3R8AKncAQnbOvSca3ccazR8ALncARnbOvScazccAUSSmkA8IWRRQsFxkSTkQI +GEQrKysrNQAKDCYmJiYoOk4hZytnK2crZw1oIT8wFxc1FxhOIWcrZytnK2cNaCE_MBcXNRcXJ0RO +Tk5OIf9DT0wa2AUAAxkAABoPAAEIAAUSAAAxAAAeAAESAAMvAAAiCQADJQkAAhgAABMDAwMAARwA +AwwDAAEeAAQOAAZbAwMDAAEcAAMMAwABHgAEDgAFOwAELwAAEgACCgAFDAAGJwAAEgABCAAHGQAA +EgABCAAHGQAAEgABCAAHGQAAEgABCAAHGQAAEgADCAAHGQAAEgADCAAHGQAACgAACgkABhcAAAoA +AAoJAAYXAAAKAAAKCQAGFwAACgAACgkABhcAAAoAAAoJAAYXAAAaDwABCAAIGAAANwAACAMAAgwJ +AAEODwAFCgAENwAACAkeAAAXAAIMFA8PAAIRAAEeDwAIGwAACAkABQgAACcAAgwUDw8AAhEAAR4P +AAgbAAAICQAFCAAAJwACDBQPDwACEQABHg8ACBsAAAgJAAUIAAAnAAIMFA8PAAIRAAEeDwAIGwAA +EwACDBQPDwACEQABHg8ABikAAAgOAAQLAAAKAAMKDg8AAhMAAwkAAAgDDgADCAAEFQAACgAECQAA +CgAECQAACgADCgACCAACEQADCQAACgAECQAACgAECQAACAMAAgoJAAEODwAFCgAENQAACAkeAAAX +AAIMFA8PAAIRAAEeDwAIGwAACAkABQgAACcAAgwUDw8AAhEAAR4PAAgbAAAICQAFCAAAJwACDBQP +DwACEQABHg8ACBsAAAgJAAUIAAAnAAIMFA8PAAIRAAEeDwAIGwAAEwACDBQPDwACEQABHg8ABikA +AAgOAAQLAAAKAAMKDg8AAhMAAwkAAAgDDgADCAAEFQAACgAECQAACgAECQAACgADCgACCAACEQAD +CQAACgAECQAACgAEHgABCgAGOQAADgMJAAIKAAMKAAMIAAQvCQACCgMJAAIKAAMKAAMIAAMvCQAC +CgMJAAIKAAMKAAMIAAMvCQACCgMJAAIKAAMKAAMIAAMvCQACCgMJAAIKAAMKAAMIAAMvCQACDP9J +QwK6BKwGBgAAAOAf4O9BDkMGAQAACQAHAALMAQmCBQAAAIgFAAEA3gYAAgDgBgADAKIFAAQAtAYA +BQDKBAAGAOYGAAcAEAABAAjBCMAIQT8BAADHw0EdAQAAyMAIQUABAAC7CJrJw0EeAQAAuwiaysTG +uKJxE0e8gAC7GMa7IJyeoK9JxMa7QJ27CaK3oLsOnXHFuwigxbsYoq8B_wD_AK3FuxigxbsIoq-9 +AK2vScPE57Sdt5pDHgEAAMAIQgYBAAAkAAAOwAhBlgEAAMEEwARBHQEAAMEFs8EGwAa4o-gywAXA +BkfBB8AFwAZxwAe7CKDAB7sYoq8B_wD_AK3AB7sYoMAHuwiir70Bra9JkwbqysAEKKQDmBcTEysn +OjdnSU5ECEE8MDIxKHFTGf9DT0wW8AEAAxEAABYAAgoABh8AACAAAQoABikAACIAAgoABRwABEcA +ACAAAQoABRYABD8AARQAARwABQwAAxADAAIKAAEYAAdvAAEUAwMDAAEYAAMQAAMMAAIKAAQMAABb +AwMDAAEcAAMMAwABHgAEDgAGWwMDAwABHAADDAMAAR4ABA4ABWMAAQoAABYDAAEUAAESAAIKAAdR +AAIKAAkJAAAWAAIKAAcfAAAQAAIKAAcZAAAaFAACCAAEEAAALwAAFA4ABRcOAAMKAwMDAAIOAAMM +AwACEAAEDgAGPwMDAwACDgADDAMAAhAABA4ABScABC0AAA7_SUMHvASABWC6BIwE_gSsBgYAAADg +H-DvQQYAAADgH-DvQQ5DBgEAAAIAAwEAKAL-AwAAABAAAQDsAwMBCMjbQf8AAABCKQEAAMQkAQDH +w8RBlgEAAEL_AAAAJAAAQ5YBAADDKKQDvRcDDVNo_0NPTBAnAAIFAAAYAAEOAAUMAAUKAAEJAAQx +AAEMAAAQAAEKAAUMAA0xAAAO_0lDA9IE_gOsBg5DBgGkCQMAAwIAAAYD6gYAAQDOCAABAMYJAAEA +z9Cu0a4opAPGFwED_0NPTAUQAAAIAAAOAwMAAQoDAAIKA_9JQwAOQwYBpgkDAAMDAAAJA-oGAAEA +zggAAQDGCQABAM_Qrc-V0a2vKKQDyxcBA_9DT0wFEwAACAAADgMDAwoDAAIMAwMDDwP_SUMADkMG +AagJAwADAgAABwPqBgABAM4IAAEAxgkAAQDP0JWv0a4opAPPFwED_0NPTAUTAAAIAAAOAwMDAAEK +AwMDAAMOA_9JQwAOQwYBqgkDAAMDAAAJA-oGAAEAzggAAQDGCQABAM_RrdDRla2vKKQD0xcBA_9D +T0wFFgAACAAADgMDAwABCgMAAgwDAwoDAwP_SUMADkMGAawJAwADAwAABwPqBgABAM4IAAEAxgkA +AQDP0NGVr64opAPXFwED_0NPTAUTAAAIAAAOAwMAAQoDAwABCAMDA_9JQwAOQwYBrgkCAAIEAAAL +AuoGAAEA8AYAAQDP0KDPuyDQnqKvKKQD3BcBA_9DT0wFEQAACAAADgMKAAIKAwABCAMP_0lDAA5D +BgEAAAcABQEEbAfaAwAAANwDAAEA3gMAAgDiAwADAOgDAARA7gMABQCqBQAGALIDAAHbx8NB2gAA +AMjEQe8AAADJw0EBAQAAysZB9AAAAMEEw0EOAQAAwQXABcVC_AAAAAu-AE39AAAATP0AAAC-AU0E +AQAATAQBAAC-Ak0JAQAATAkBAAC-A00KAQAATAoBAAAkAQAVQ1UBAADBBimkA4MYFwQNJiYmKwAI +CgAJYgAMIAAMJgAMND86_0NPTAJGBQAAEAACDwAAGAkABhsAABYAAQwABiEAABgJAAYbAAAWAAEM +AAchAAAaCQAHHQAAFgACDgAADgABCgAFDgABNT8_QAAMIP9JQwe0A-gD-AOcBIIE3gOqBQ5DBgEA +AggCBAEAywEKpgUAAQCoBQABAMgJAAAAygkAAQDMCQACAM4JAAMA0AkABADSCQAFAMoEAAYAEAAB +AOgDBAEIwQfAB89B_QAAABEhAAAVQ2oCAADT0JcESAAAAKnoDNtCAwEAANAkAQDUz0ELAQAAx8O3 +msjQQR4BAADEpegMz0IKAQAA0CQBANTQQv4AAAAkAAAOwAfQQv8AAAAkAAAVQ2sCAADJwAfQQv8A +AAAkAAAVQ2wCAADKxUEdAQAAwQTGQR0BAADBBbPBBsAGw6PoIcAEwAZxE0cBXFxcXK5JwAXABnET +RwE2NjY2rkmTBurbxcbEFUMeAQAAQx4BAADAB0IEAQAAJAAAKaQDmhgXE2Q1AAsIJhk1AAsIN11f +Ky0wSUkXSzX_Q09MD9ABAAMDAAASAAIKAAAUAAAIAAEOAAYVAAovAAAIAAAOAAIOAAgUAAAvAAAM +AAEKAAUMAAELAAQdAAAsAAEOAAY5AAA2AAEkAANZAAAIAAEIAAUWAAQsAABJAAAMAAEOAAUSAAER +AAQhAAEIAAkHAAAWAAIKAAAQAAEIAA83AAAWAAIKAAAQAAEIAA83AAAgAAEKAAcpAAAgAAEKAAcp +AAAaFAACCAAELAAASwACFAAFDAAHHwACFAAFDAAHIgAESQABCgAAFgABCgAAFgAMPwACCv9JQwyI +BNYJvATYCdQJlAT8A7oElgT-A4YE-gMOQwYBAAACAAMAACMCpgUAAAAQAAEACMjEQWoCAADHw0IE +AQAAJAAADsNCCQEAAMRBbAIAACQBACmkA8kYBA4oNU7_Q09MEB4AAgUAABoAAQoABiMAAQ4ACQ0A +AQ4ABQ4AAQoABRf_SUMEkgSIBNgJ1AkOQwYBAAEBAQMAABQCoAUAAQAQAAEACMfDQWoCAABCCQEA +AM8kAQAOwyikA94YAg1V_0NPTBEVAAIHAAEKAAUQAAUOAAENAAQZAAAO_0lDApIE1AkOQwYBAAEE +AQUAAEEFoAUAAQCmBQAAANoJAAEA3AkAAgAQAAEACMrGQWoCAADHw0IKAQAAzyQBAMjDQgQBAAAk +AAAOw0IKAQAAxkFrAgAAQv8AAAAkAABCXAAAAMQkAQAkAQDJxSikA_MYBQ4oOjWp_0NPTBNCAAIL +AAAaAAEKAAYjAAAgAAEOAAUSAAERAAQtAAEOAAkNAAAWAAEOAAUSAAEKAAUMAAgQAAUOAAENAAM3 +AAQjAAAO_0lDBtYJiATUCZQEuAH-Aw5DBgEAAAgACQEDjQEI2gMAAADcAwABAN4DAAIA4AMAA0Du +AwAEAPQGAAUAqgUABkDeCQAHQLIDAAHbx8NB2gAAAMjEQe8AAADJxEHwAAAAysNBDgEAAMEEwARB +ugEAAMEFwARBVQEAAMEGwATFQvwAAAALxUL8AAAAC7yAALsgm0xwAgAAwAVMUwEAALRMcQIAACQB +AEwIAQAAvgBN_QAAAEz9AAAAvgFNcgIAAExyAgAAJAEAFUNvAgAAwQfDvgJDbwIAACmkA4IZHQQN +JiYmKzAACQoACRAmOiYhAAgeAAx6PwALJgkm_0NPTAJuBQAAEAACDwAAGAkABhsAABYAAQwABiEA +ACAAAQwABisAABoJAAcdAAAWAAIOAAcjAAAWAAIOAAcjAAAaAAIOAAASAAEKAAUOAAE_AAEKAAUO +AAEHAAMIAAgJAAcIAAYLAAgHQQAMKgALQwkAABL_SUMI4AO0A_QG-APeCZwE3gOqBQ5DBgEAAQEB +BAAAGAKQBAABABAAAQAIx8PDQQgBAABC_AAAAM8kAQBDCAEAACmkA6gZAg1s_0NPTA8VAAIDAAEK +AAAMAAEKAAUIAAUOAAEN_0lDAvgDkAQOQwYBAAIQAgUCAP0BEuYJAAEA6AkAAQCQBAAAANwJAAEA +6gkAAgDsCQADAO4JAAQA8AkABQDgCQAGAOIJAAcA8gkACAD0CQAJAPYJAAoA-AkACwDKBAAMAPoJ +AA0AzgQADgAQAAEAqgUGAeADAwEIwQ_AD0EIAQAAx9tC7AAAAMNBUwEAAM8kAgDI3ELsAAAAJAAA +ydxC7AAAALQmAQAkAQDKxUEdAQAAwQTGQR0BAADBBcNBcAIAAMEGw0FxAgAAwQfABOfABqNplgAA +AMRCCQEAANAkAQBCCgEAAMYkAQDBCMRCBAEAACQAAA7ACEEdAQAAwQnACefBCsAIwQu0wQzADMAH +o-hBxEIKAQAAwAskAQDBC8RCBAEAACQAAA7AC0EdAQAAwQ2zwQ7ADsAKo-gTwAnADnETR8ANwA5H +rkmTDurokwzqusVCXAAAAMAIJAEADsAFs3ETR49J62X_xcAGt5pDHgEAAMUopAO4GRsTLVo1Sysr +Ky06bDcwHhc1RDcyNUkXGD8rEjb_Q09MEowCAAMJAAAUAAIKAAYdAAAWAAEKAAUOAAEIAAUQAAEl +AAQfAAAiAAEUAAk1AAAiAAEUAAUOAwAEDwAENQAALAABFgAHQQAALAABFgAHQQAAHAABCAAHIwAA +IgABCAAHKQAADgACIAABEgAIEgAASQAAGAABCgAFDgABDQADGgAFEgABEQAFOwABCgAJCQAAIgAC +DAAHLQAALgACFgADQwAAJgAEJQAAGhQAAggABSIAAEEAAB4AAQoABRIAAhEABScAAQoACQkAADAA +AhoAB0kAABoUAAIIAAUuAABNAAIWAAUMAAIkGgAEEwAEPwABFgAFDgACDQAEFQACIAAJJwABFgAA +FgACFAAHPwAADv9JQwySBKYF4AmIBLwE2AOUBGC6BOIJkAS4AQ5DBgEAAwADBAEAFAPmCQABAOgJ +AAEAkAQAAQDeCQcB20LsAAAA0SQBAEJyAgAAz9AlAgCkA_sZAQP_Q09MEBsAAA0AAA4AAQ4ABQ4A +AQ0AAxgABRAAARQAASP_SUMC5AnYAw5DBgEAAAcACQEDhAEH2gMAAADcAwABAN4DAAIA4AMAA0Du +AwAEAJwGAAUA_AkABkCyAwAB28fDQdoAAADIxEHvAAAAycRB8AAAAMrDQQ4BAADBBMAEQY4BAADB +BcAExUL8AAAAC8VC_AAAAAu8gAC7IJtMcAIAAMAFTFMBAAC0THECAAAkAQBMCAEAAL4ATf0AAABM +_QAAAL4BTXICAABMcgIAACQBABVDfgIAAMEGw74CQ34CAAAppAOBGhwEDSYmJisACQwACRAmOiYh +AAgeAAxkPwALJgkm_0NPTAJlBQAAEAACDwAAGAkABhsAABYAAQwABiEAACAAAQwABisAABoJAAcd +AAAUAAIOAAchAAAaAAIOAAASAAEKAAUOAAE_AAEKAAUOAAEHAAMIAAgJAAcIAAYLAAgHQQAMKgAL +QwkAABL_SUMH4AO0A_gD_AmcBN4DnAYOQwYBAAEBAQQAABgCkAQAAQAQAAEACMfDw0EIAQAAQvwA +AADPJAEAQwgBAAAppAOnGgINbP9DT0wPFQACAwABCgAADAABCgAFCAAFDgABDf9JQwL4A5AEDkMG +AQACCQIDAQCsAQvmCQABAOgJAAEA8gkAAACQBAABAKYFAAIA6gkAAwDuCQAEAOAJAAUA4gkABgDK +BAAHABAAAQDgAwMBCMEIwAhBCAEAAMjEQVMBAABC7AAAACQAAMnbQuwAAAAkAADKxkEdAQAAwQTE +QXACAADBBcRBcQIAAMEGwATnwAWj6F3D6AzFQgkBAADDJAEADsVCCQEAAM8kAQBCCgEAANAkAQDH +xUIEAQAAJAAADrTBB8AHwAaj6BrFQgoBAADDJAEAx8VCBAEAACQAAA6TB-rhxkJcAAAAwyQBAA7q +ncbABbeaQx4BAADGKKQDtxoVAAMILVA3KystKxI7Zzc1OjUYOg02_0NPTBK-AQADCQAAFAACCgAG +HQAAGgABCAAFDgAJLwAAIgABFAAJNQAALAABFgAHQQAAHAABCAAHIwAAIgABCAAHKQAADgACIAAB +EgAFEgAASQAACAADDgAADQABDgAFDgABDQAEFQAAEAABDgAFDgABDQADIgAFEgABEQAEPwABDgAJ +DQAAGhQAAggABSIAAEEAABAAAQ4ABRIAAREABB0AAQ4ACSoABD8AARYABQ4AAQ0ABh0AARYAABYA +AhQABz8AAA7_SUMMkgSmBeAJiAS8BNgDlARgugTiCZAEuAEOQwYBAAMAAwQBABQD5gkAAQDoCQAB +AJAEAAEA_AkGAdtC7AAAANEkAQBCcgIAAM_QJQIApAPvGgED_0NPTBAbAAANAAAOAAEOAAUOAAEN +AAMYAAUQAAEUAAEj_0lDAuQJ2AMOQwYBAAEZAQgBG_QFGooBAAFA2gMAAADcAwABAN4DAAIA4AMA +A0DqAwAEQOIDAAUA6AMABgDoBQAHQO4DAAgA_AkACUC2AwAKQP4JAAsAgAoADACCCgANQIQKAA4A +hgoADwCICgAQAIoKABEAjAoAEkCOCgATAJAKABQAkgoAFUCUCgAWAJYKABcAmAoAGECyAwAB28fD +QdoAAADIxEHvAAAAycRB8AAAAMrEQfUAAADBBMNBAQEAAMEFwAVB9AAAAMEGwAVBdAEAAMEHw0EO +AQAAwQjACEF-AgAAwQnEwARC_AAAAAvFQvwAAAAkAABMCAEAAL4ATY0CAABMjQIAAL4BTY4CAABM +jgIAAL4CTf0AAABM_QAAAL4DTQQBAABMBAEAAL4ETY8CAABMjwIAAL4FTQoBAABMCgEAALyAALsg +m0xwAgAAvIAAuyCbTJACAAC0TJECAAC1TJICAAC-BuxMDAEAACQBABVD2wAAAMEKxMAKQvwAAAAL +vgdNUgEAAExSAQAAtEwLAQAAJAEAFUN_AgAAwQvDCxVD3AAAAMEMxMVC_AAAAAu-CE2NAgAATI0C +AAC-CU2OAgAATI4CAAC-Ck39AAAATP0AAAAkAQAVQ4ECAADBDcAMvgvsFUOCAgAAwQ7DCxVD4gAA +AMEPwA8LvgxN4gAAAEziAAAAvg1N4wAAAEzjAAAAFUOEAgAAwRDEwApC_AAAAAvACkEIAQAAQvwA +AAALwA5M3AAAAMAQTJMCAAAkAQBMCAEAAL4OTQQBAABMBAEAAL4PTU0BAABMTQEAAL4QTVIBAABM +UgEAALyAALsgm0wLAQAAJAEAFUOFAgAAwRHExUL8AAAAC74RTf0AAABM_QAAAL4STTcAAABMNwAA +ACQBABVDhgIAAMESwwsVQ5QCAADBE8ATC74TTQIBAABMAgEAAL4UTQMBAABMAwEAABVDlQIAAMEU +xMVC_AAAAAvFQvwAAAALwBRMlAIAACQBAEwIAQAAvhVNlgIAAEyWAgAAvhZNlwIAAEyXAgAAvhdN +mAIAAEyYAgAAJAEAFUOJAgAAwRXDCxVDmQIAAMEWwBYLvhhNmgIAAEyaAgAAFUOVAgAAwRfEwBVC +_AAAAAvAFUEIAQAAQvwAAAALwBdMmQIAACQBAEwIAQAAvhlNlgIAAEyWAgAAvhpNlwIAAEyXAgAA +JAEAFUOMAgAAwRgppAP4Gq0BBA0mJiYrKzAwKwAJFAAJDAAOJAAMJAAMLgAMHgAMKAAMNEA7OyIA +BkYrAAsOAAkMQCEACwoACgoACB4ADCAADB4_AAsKAAKwAQALCgAKCgADQAAMJj8ACA4ACQ5EJiYA +CDgADAgADDBAOgALHgAILAAMJj8ACwoACgoAAzoADEY_AAgKAAgMJiYACFQADDwADC4_AAsKAAoK +AANCPwAIDAAJDEQmAAhIAAxIPzr_Q09MGcMDAAAnAAAQAAIPAAAYCQAGGwAAFgABDAAGIQAAIAAB +DAAGKwAAOgABDAAHRQAAGAkABxsAABYAAgwAByEAABoAAgwAByUAABoJAAcdAAAaAAIOAAcnAAAa +AAEMAAASAAIuAAUOAAFhAAEKAA0OABgVP0A_PQADCAAICQADCAAICgAMAwMACD4AC2UAACYAAQwA +AB4AAg4ABQ4AAUkADAMABkAAC10AABoJAAAOAAkrAAAsAAEMAAAkAAEKAAUOAAFJABgVAAxSAAtl +AAAUAAIOAAAMAwALLwAAGAkAAAwACScAABgAAgwAABAAASFAABQVAAAkAAEMAAAcAAIOAAUOAAFV +AAIOAAUIAAUOAAEZKCgACBEADBQADAcADAMAAwgACDQAC1kAACYAAQwAAB4AAQoABQ4AAVMADAgA +DD4AC1kAAB4JAAASAAkzAAAuAAISAAAUAAE1AAwHABQVAAAyAAEMAAAqAAEKAAUOAAFtAAEKAAUO +AAEJAAcDKXkADFoAC3EAABgJAAAMAAknAAAiAAIMAAAUAAEnABQZAAA0AAEMAAAsAAImAAUOAAGN +AQACJgAFCAAFDgABMwAHJgAIJQAYeP9JQxn-CeADuAO2A5gKtAPoA-oDqAr4A4oKggr8CaoKiAqc +BIIEhAreA5IKkASMCugFsgrEAw5DBgEAAgECBQAAEwOoBQABAJAEAAEAEAABAAjHw0LsAAAAw0GR +AgAAz9AlAwCkA6MbAQ3_Q09MGhgAAhkAAA4AAQoABQ4AAQoABSIAAQoAAUP_SUMCogrYAw5DBgEA +AgECBQAAEwOoBQABAJAEAAEAEAABAAjHw0LsAAAAw0GSAgAAz9AlAwCkA7UbAQ3_Q09MGhgAAhkA +AA4AAQoABQ4AAQoABSIAAQoAAUP_SUMC2AOkCg5DBgEAAwEDBAAALwS2CgABAKgFAAEAkAQAAQAQ +AAEACMfDw0EIAQAAQvwAAADRJAEAQwgBAADDz0OcAgAAw9BDnQIAAMNCBAEAACQAACmkA8QbBQ5u +Jigw_0NPTA8tAAIDAAEKAAAMAAEKAAUIAAUOAAENAAgnAAEKAAAaAAYjAAEKAAAOAAYXAAEK_0lD +BYgE-AO6CpAEuAoOQwYBAAABAAMBABwBEAABAOoDBAEIx9tBBAEAAEIpAQAAwyQBAA7DQk8BAAAk +AAAppAPXGwMOVTD_Q09MEBUAAgUAAS4ABQwABQoAAQkABDkAAQr_SUMD0gSIBJ4FDkMGAQABAQED +AAAWArwKAAEAEAABAAjHw0IFAQAAzyQBAA7DQgYBAAAlAACkA-sbAg48_0NPTBIVAAIJAAEKAAUQ +AAEPAAQJAAAOAAEK_0lDAooEjAQOQwYBAAECAQMAABwDvAoAAQC-CgAAABAAAQAIyM_oDMRCBQEA +AM8kAQAOxEJSAQAAJAAAx8MopAOBHAYOEgALCDb_Q09MEyQAAgsAAAgAAxgAABcAAQoABRAAAQ8A +BBEAADIAAQoACTsAAA7_SUMCigSkBQ5DBgEAAAEAAQICBgHACgAAQJgKGAGSChUBvgDHvgEopAOi +HAMAAyb_Q09MGQYAAxcAAA7_SUMADkMGAcAKAQABAgIADgGoBQABAJgKAACSCgEAz5cESAAAAKno +A9so3CikA6McBAM1CAj_Q09MDR4AAAgAAAgAAA4AAg4ACBQAAC8AAA4AAgcAAAUAAA7_SUMADkMG +AQABAAECAQIaAcIKAAFAwAoAAQu-AE2WAgAATJYCAAC-AU2XAgAATJcCAAAopAOrHAYDCgAMCD__ +Q09MFAkAAAUAAA4AAQz_SUMADkMGAQADAAMGAgAPA2YAAQCoBQABAJAEAAEAwAoAAMIKAAPb0O1C +lgIAANzP0NElBACkA60cAQP_Q09MHh4AAAkAAA4AASoAASkAATQABRAAARAAARIAAQoAATv_SUMB +rAoOQwYBAAMAAwYCAA8DxAoAAQCoBQABAJAEAAEAwAoAAMIKAAPb0O1ClwIAANzP0NElBACkA7Ec +AQP_Q09MHh4AAAkAAA4AASoAASkAATQABRAAARAAARgAAQoAAUH_SUMBrgoOQwYBAAACAAMAABUC +xgoAAAAQAAEACMjEQgYBAAAEpAIAAJaWJAEAx8MopAO_HAIOWf9DT0wWFgACEQAANgABCgAFEgQA +BxUABD8AAA7_SUMBjAQOQwYBAAIBAgQAABIDwgoAAQDKCgABABAAAQAIx8NBpgIAAELsAAAAz9Al +AgCkA94cAQ3_Q09MGhUAAhkAAA4AAQoABRQABQ4AARAAAR3_SUMCzArYAw5DBgEAAgECBAAAEgPC +CgABAMoKAAEAEAABAAjHw0GnAgAAQuwAAADP0CUCAKQD7hwBDf9DT0waFQACGQAADgABCgAFFAAF +DgABEAABHf9JQwLYA84KDkMGAQACAQICAAARA8IKAAEAygoAAQAQAAEACMfDz0OoAgAAw9BDqQIA +ACmkA_wcAw0mJv9DT0wPEgACAwABCgAAFAAGHQABCgAADP9JQwLQCtIKDkMGAQAAAgAFAgNHAoQK +AAAA1AoAAUCKAQADggoNAb4CyNxC_AAAACQAAMfDw0L8AAAAC74ATasCAABMqwIAACQBAEOmAgAA +w8NC_AAAAAu-AU2rAgAATKsCAAAkAQBDpwIAAMMopAOFHRQAAwgACgoACCw_AAgKAAgyPwAIMP9D +T0wdNQADJwAAFAABIAAJMwABCAAAGAABCAAFDgABEUAACCcAAQgAABgAAQgABQ4AARFAAAgnAAAO +_0lDA8wK-APOCg5DBgEAAgMCBgEAPgW6BAABAJQFAAEAwgoAAACWBAABABAAAQDUCgEBCMnFQagC +AADHw0ELAQAAyNtCKQEAAMXP0MQkBAAOw0KsAgAAz9AkAgAOxc9CKgEAANDQxJ0kAgBDrQIAACmk +A5kdBg4mKElBYv9DT0wbTgACEwAAGgABCgAGIwAAIAABDgAGLQABEgAFCgABDAABDgABEAABMwAE +EQABDgAFGgABDgABJwAEDQABCgAAGgABDAAFDAABEAABEgACLf9JQwbSBNQE0AraCtgKlgQOQwYB +AAIEAgYBAEAGugQAAQCUBQABAMIKAAAAlgQAAQDcCgACABAAAQDUCgEBCMrGQagCAADHw0ELAQAA +yM9CKgEAANDQxJ0kAgDJw0KvAgAAz9AkAgAO20IpAQAAxs_QxCQEAA7GxUOtAgAAKaQDtR0HDiYo +Sz9LJv9DT0wbVAACEwAAGgABCgAGIwAAIAABDgAGLQAAIAABDAAFDAABEAABEgACLQAEKwABDgAF +GgABDgABJwAEDQABEgAFCgABDAABDgABEAABMwAEEQABCgAAGv9JQwbSBNAK1ATaCt4KlgQOQwYB +1AoDBAMFAQA2B7oEAAEAlAUAAQCWBAABAPIJAAAAygoAAQDKBAACABAAAQCKAQACCMrGQakCAADI +xOgMxMfG20OpAgAA6gjGQa0CAADHs8nF0aPoEc_QxZ1xE0fDxUeuSZMC6uwppAPGHQ4AAggoEg8m +DQAHCCY_F_9DT0wJSQACCAAAEgABCgAGGwAACAADCAAABwAAEAACDwABCgAADAAIDwAABQAAEAAB +CgAGIQAAGg8AAQgABCAAAD8AAQwAARIABQwAAQz_SUMC2grSCg5DBgEAAgYCBAEAWQiCBQABAJYE +AAEAjAUAAADgCgABAOIKAAIA5AoAAwDKBAAEAKYKAAUA4AMDAdC3msfDz0EeAQAAw5yeyMS7GKDE +uxCgr8S7CKCvxK_JJgAAyrPBBMAExKPoFMZCLAEAAMUkAQAOwAS3ncEE6ujbQuwAAADGxCQCAMEF +z0JcAAAAwAUkAQAppAP0HQoEGTxaFzA6K0Y6_0NPTA51AQAAKgABGAADQQAAKAABIgABCgAFFgAE +aQAAJAMAASIAAwwDAAEiAAQMAwABIgAECgADsQEAACYABCUAABoUAAIIAAQuAABNAAEaAAUKAAEJ +AAQkAAIKAAZPAAAcAAEUAAUOAAEcAAEpAAUvAAEKAAUOAAIN_0lDBNgEvATYA7gBDkMGAQABAQED +AAAkAoIFAAEA4AoAAADPQR0BAADPQR4BAAC0nrWiR7z_AK3Hz0IeAQAAw55DHgEAACmkA5QeAwRz +RP9DT0wQIgAABQAAKAABCgAFDAMAAQoABRYAAg4AAwoABXcAAQoABRj_SUMCvAS6BA5DBgEAAAUA +BwEAtgEF5goAAACQBAABAMoKAAIAuAMAAwAQAAEAtgMKAQjBBNtBBAEAAEIpAQAAwAQkAQAOwARB +CAEAAMjEQaUCAADJxEHcAAAAysAEQZwCAADABEGRAgAAqegKxkGNAgAAx-oQxkGOAgAAx8AEtEMH +AQAAwARBtAIAAOgvwARBtAIAAEG1AgAAw6noH8AEQbQCAABC_QAAAMAExRHoCA7FQR0BAAAkAgAO +KcAEw0IpAQAAxsAExRHoCA7FQR0BAAAkAwBDtAIAAMAEQbQCAADDQ7UCAAAppAOuHhEAAwhaKyYo +WCYNJy2AlAiZRf9DT0wQswEAAwUAAQ4ABQwABQoAAgkABBkAABQAAgoABh0AABIAAQgABhkAABYA +AQgABh0AAAgAAgoABRwAAgoACCIAAFEAABwAAQoACEYAAGsAABwAAQoABiUAAgoAACIABjMAAAgA +AgoABxIAAgoABQwABRoABBoAAGUAAgoABQwABQoAAgwABQwKAAUnAAUPAAAFAAIKAAAQAAEYAAUK +AAEMAAIMAAUMCgAFMwAIMQACCgAFDAAAGP9JQw64A4gE6grSBKIKygroCroEjgSaCpAEuAr6A5wK +DkMGAQACAQIEAAATA7oEAAEAlAUAAQAQAAEACMfDQbQCAABCqwIAAM_QJAIAKaQDyh4CDVP_Q09M +GhIAAhkAAQoABQwABRoAAQ4AASf_SUMC1groCg5DBgEAAAMABAAAZAPGCgAAAKYKAAEAEAABAAjJ +xUEIAQAAQZMCAADIxUGcAgAAxUGRAgAAqegqxELiAAAAxUE_AQAAxUELAQAAJAIADsVCBgEAAASk +AgAAlpYkAQDH6h3FQgYBAAAEpAIAAJaWJAEAx8RC4wAAAMMkAQAOwyikA84eCgACCEFPc1gOWjz_ +Q09MFmgAAhEAABwAAQoABQgABi0AAAgAAQoABRwAAQoACCIAAFEAARAABQgAAQoABQ4AAQoABSkA +BA8AAC4AAQoABRIEAAcVAAY0AABrAAAuAAEKAAUSBAAHFQAENwABEAAFDAABCwAEFwAADv9JQwmm +CqIKxgOMBJAEuAqWBMQD_gQOQwYBAAEBAQMAAA0C7AoAAQAQAAEACMfDQhYBAADPJAEAKaQDih8C +DTX_Q09MDwwAAgMAAQoABQwAAQv_SUMBrAQOQwYBAAEBAQMAABYC7goAAQAQAAEACMfPEekIDsNB +twIAAEICAQAAwyUBAKQDnR8BDf9DT0wTFgACCwAADgMABRoAAQoABRYABRQAARP_SUMC7gqEBA5D +BgEAAQMBBAIASATsCgABAMAEAAAAxAoAAQDoCQACAOADAwHoBQcBz0GiAgAAyM9BdAIAAMnF6Czb +QuwAAAABdGxhUwFfX2RlJgIAJAEAQlwAAADFJAEAQlwAAADEJAEAx-oDxMfDQjcAAADcJQEApAO4 +HwkAAAgmKBLQDQ__Q09MFFkAAA0AACIAARoABjsAABYAARoABi8AAAgAAwwAAAsAABgAARQABQ4D +AAUYAAgnAANCAAUOAAENAAMaAAUOAAENAAaBAQAABQAAGAACHwAADgABFAAFEgABEf9JQwXECtgD +uAFu6AkOQwYBAAEDAQYDAG0E8AoAAQDoCQAAAMQKAAEA8goAAgDoBQcB4AMDAYwKEgHbQgMBAADP +JAEAyMRBHQEAAMnFs0cBdGxhU6noO8W0RwFfX2Rlqegw3ELsAAAAxUIqAQAAtbckAgAkAQDHxUJO +AQAAs7ckAgAOxEIeAQAAuxCeQx4BAADdQuwAAAALxEyiAgAAw0x0AgAAJQEApAPWHwkAAAg8KHJu +P0v_Q09MEHUAAAUAACIAAQ4ABQwAAQsABC8AACwAARYABkEAAAgAASAAAgwACBwAASAAAgwACBgA +AIsBAAAOAAEUAAUOAAEgAAUMCgABEQADLQAEIQABIAAFDgoAARMABB8AARYABRgACDUAAA4AARoA +BQ4AARwABiQABk3_SUMGvATUBNgDugScBYYEDkMGAQAEBAQEAQCDAQjCCgABAGYAAQCoBQABAJAE +AAEA9AoAAADECgABAPYKAAIAEAABAIwKEgEIysZBCAEAAEL8AAAA0iQBANbPQo0CAADR0iQCAMfD +QgoBAADQJAEAyMNBCAEAAMnbQuwAAAALxEyiAgAA0UxUAQAAxUGlAgAATKUCAADPTLwCAADFQdwA +AABM3AAAAMVBkwIAAEyTAgAAz0ELAQAATAsBAADSQZQCAABMtwIAACUBAKQDjCAODlU_PCgmISE6 +ITo6Ojr_Q09MEm4AAgkAAAwAAQoABQgABQ4AAQ0ABB0AACAAAQ4ABSAAAQoAASkABC0AACIAARQA +BRIAAREABDUAACAAARQABjMAAA4AARoABQ4AARUABg0fAAEUAAoFAAYJAAEUAAoNAAEUAAoPAAEO +AAoNAAEINf9JQwq4A6YKqAr4A9gDygqUBJoKkASWBA5DBgEABAIEBAAAPwbCCgABAMQKAAEAqAUA +AQCQBAABAPoKAAAAEAABAAjIxEEIAQAAQvwAAADSJAEA1sRCmAIAANDSQZQCAAAkAgDUz0KOAgAA +0dIkAgBCCgEAANBBogIAACQBAMfDKKQDtSAEDlVahv9DT0wSSwACCQAADAABCgAFCAAFDgABDQAE +HQAAGgABCgAFDgABGAABCAAFLQAEIwAAIAABDgAFIAABCgABKQADNAAFEgABFgAFJwAEYQAADv9J +QwfECqgK-AOwCpQEkAScCg5DBgEAAgECBAAAGQPECgABAKgKAAEAEAABAAjHz5cESAAAAKnoDNBC +AwEAAM_DJQIAzyikA9EgAw01O_9DT0wRKgACBwAACAAADgACHAAIFAAAPQAADgABDgAFDAABGAAB +IwADFQAABQAADv9JQwGGBA5DBgEABAIEBQMAcQbmCQABAOAJAAEAoAoAAQDoCQABAKgFAAAAygoA +AQDgAwMB_AkJAYwKEgHSlugQ20IAAQAAu0C7CJskAQDW3ELsAAAAC9DRnUxwAgAAJAEAQnICAADP +0iQCAMfbQuwAAADDQR0BAABCKgEAANAkAQDRt5okAgDIw9C3mkMeAQAA3ULsAAAAC8NMVAEAAMRM +pQIAANJMdAIAACUBAKQD9CAIBBcADwiWjzL_Q09MEoABAAAJAAAIAwAEDAAADQAADgABFAAFDg8A +AxMABCkAABQAAQ4ABQ4AARYAARQABzcAA0wABRAAARQAASMABG0AABIAARQABQ4AAQgABQwABQwA +AQsAAyAAARIAAlMABCUAAQgAABYAARQABzEAAA4AARoABQ4AAQ4ABhIABhQABkH_SUMGgAS8BNQE +5AnYA7oEDkMGAQAEAwQHAQBgB8IKAAEAZgABAOYJAAEAkAQAAQD8CgAAAMQKAAEAEAABAJIKFQEI +ycVBCAEAAEL8AAAA0iQBANbSQZkCAABCmgIAANHPQXACAADPQZACAAAkAwDH0sNBpQIAAEOlAgAA +20GWAgAAQikBAADFz9DDQVQBAADSJAUAyMRCFgEAAMMkAQAOxCikA6UhBg5VkUGCO_9DT0wSbwAC +CQAADAABCgAFCAAFDgABDQAEHQAAKAABCAAFCAAFEAABFAABDgAFEgABDgAFUQAENwABCAAACgAB +HAAKLQAAIgABJgAFEAAFCgABDAABEAABEgABHAAFCgABXQAEVwABFgAFDAABCwAEFQAADv9JQwu0 +CuAJ0gT4A6wKygqQBKgFsgqgCqwEDkMGAQAEAwQHAQBsB8IKAAEAxAoAAQDmCQABAJAEAAEA_AoA +AAD6CgABABAAAQCSChUBCMnFQQgBAABC_AAAANIkAQDWxUKYAgAA0NJBlAIAACQCANTSQZkCAABC +mgIAANHPQXACAADPQZACAADQQXQCAAAkBADH0sNBpQIAAEOlAgAA20GXAgAAQikBAADFz9DDQVQB +AADSJAUAyMQopAPJIQYOVVqvQYH_Q09MEn4AAgkAAAwAAQoABQgABQ4AAQ0ABB0AABoAAQoABQ4A +ARgAAQgABS0ABCMAACgAAQgABQgABRAAARQAAQ4ABRIAAQ4ABRAAARYABXcABDcAAQgAAAoAARwA +Ci0AACAAASYABRAABQoAAQwAARAAARgAARwABQoAAWMABFUAAA7_SUMNtArgCdIErgr4A6gKygqw +CpAEqAWgCrIK6AkOQwYBAAACAAUBA1ECugMAAAD-CgABQLIDAAG-AsjbQdoAAABBgQIAAEL8AAAA +JAAAx8PDQvwAAAALvgBNqwIAAEyrAgAAJAEAQ6YCAADDw0L8AAAAC74BTasCAABMqwIAACQBAEOn +AgAAwyikA-IhDhJoAAgUPywACBo_AAgy_0NPTBY7AAMhAAAUAAESAAUIAAUgAAlNAAEIAAAYAAEI +AAUOAAERQAAIJwABCAAAGAABCAAFDgABEUAACCcAAA7_SUMFzAq0A_gDggrOCg5DBgEAAgMCBwEA +MwW6BAABAJQFAAEAwgoAAACWBAABABAAAQD-CgEBCMnFQagCAADHw0ELAQAAyNtCKQEAAMXP0MTD +JAUADsXPQioBAADQ0MSdJAIAQ60CAAAppAPmIQUOJidQYv9DT0wXQgACEwAAGgABCgAGIwAAIAAB +DgAGLQABOAAFCgABDAABDgABEAABFgABSQAENwABCgAAGgABDAAFDAABEAABEgACLf9JQwXSBNQE +0AraCpYEDkMGAQACBAIHAQA1BroEAAEAlAUAAQDCCgAAAJYEAAEA3AoAAgAQAAEA_goBAQjKxkGo +AgAAx8NBCwEAAMjPQioBAADQ0MSdJAIAydtCKQEAAMbP0MTDJAUADsbFQ60CAAAppAPzIQYOJihK +UCb_Q09MF0gAAhMAABoAAQoABiMAACAAAQ4ABi0AACAAAQwABQwAARAAARIAAi0ABCsAATgABQoA +AQwAAQ4AARAAARYAAUkABDcAAQoAABr_SUMF0gTQCtQE2gqWBA5DBgH-CgQEBAUAAE8IugQAAQCU +BQABAJYEAAEAwgoAAQCACwAAAMoKAAEAygQAAgAQAAEACMrGQakCAADIxOgZxEIqAQAAsyQBAMfG +OEUAAABDqQIAAOoIxkGtAgAAx9JCrAIAAMOzJAIADrPJxdGj6BHP0MWdcRNHw8VHrkmTAursKaQD +giINAAIIKBI8Og0nQSY_F_9DT0wFYgACCAAAEgABCgAGGwAACAADCAAABwAAGAoABQwAAQsABB0A +AQoAAAwADA8AAAUAABgAAQoABikAAQ4ABRoAARYAAS8ABA0AABoPAAEIAAQgAAA_AAEMAAESAAUM +AAEUAAQH_0lDBNQE2grYCtIKDkMGAQAAAgAFAQE7ArwDAAAAzAoAAQCyAwAB20HaAAAAQYECAABC +_AAAACQAAMfDw0L8AAAAC74ATasCAABMqwIAACQBABVDpgIAAMjDxEOnAgAAwyikA6AiCANoAAgy +PzYn_0NPTBY2AAAhAAAUAAESAAUIAAUgAAlNAAAgAAEIAAAYAAEIAAUOAAExAAwkAApHAAEIAAAY +AAYfAAAO_0lDBcwKtAP4A4IKzgoOQwYBAAIHAgUAAIkBCboEAAEAlAUAAQDCCgAAAJYEAAEAygoA +AgCCCwADAIALAAQAygQABQAQAAEACMEGwAZBqAIAAMfDQQsBAADIwAZBqQIAAMnABkHCAgAAysXo +IMAGxUIqAQAAsyQBABVDwgIAAMrABjhFAAAAQ6kCAADGQioBAACzJAEAwQTDQqwCAADABLMkAgAO +xsS0nnHGxLSeR7Sds69Js8EFwAXEo-gUz9DABZ1xE0fABMAFR65JkwXq6CmkA6QiDhMrJistEmRA +P0ZQME4X_0NPTBefAQADEwAAGgACCgAGIwAAIAABDgAGLQAAEgACCgAGGwAAHAACCgAGJQAACAAD +CAAABwAAFAACCgAAFgoABQwAAQsACjkAAgoAAAwACh0AACAAARAABQwAAQsABS8AAQ4ABRoAAhYA +AS8ABA0AARAAARgAAwoDAAEQAAEYAAMKAAIKAANvAAAaFAACCAAEIAAAPwABDAABEgAGDAACFAAF +B_9JQwbUBNAKhAvYCpYE0goOQwYBAAAEAAUBA0EEvgMAAACGCwABQIgLAAJAzAoAAwCyAwABvgDI +vgHJ20HaAAAAQYECAABC_AAAACQAAMfDw0L8AAAAC74CTasCAABMqwIAACQBABVDpgIAAMrDxkOn +AgAAwyikA8oiCiEAFHAACDI_Nif_Q09MHTYABi8AACIAARIABQgABSAACVsAACAAARYAABgAARYA +BQ4AAU0ADEAACmMAARYAABgABi0AAA7_SUMFzAq0A_gDggrOCg5DBgGGCwEDAQMAAGwE5gUAAQCK +CwAAAIwLAAEAjgsAAgDPuxihvP8Arbz_AKvoVs-7EKG8_wCtx8-7CKG8_wCtyM-8_wCtycO8_wCr +6B-zx8S8_wCr6BKzyMW8_wCr6AWzyeoLkwLqB5MB6gOTALPTz8O7EKCd08_EuwigndPPxZ3T6gjP +tLsYoJ3TzyikA80iFwRJMDAiJw0nDScNDw4PDg8PDSYmFw8n_0NPTAKgAQMAAAgDAwABEAADDAAE +FAAGDAAARwAAEgMAARAAAwgABSsAABIDAAEQFAAFKQAAEgABDgAFHwAACAABDgAGFQAACgACCQAA +CAABDgAGFQMAAAoAAgkAAAgAAQ4ABhUDAAAKAAQLAwQABAcDBAAEBQQAAgMAAA4AAg0AARADAAEM +AAUdAAEQAwABDAAFHQABEAAFDwABEAMAARAABSEAAA7_SUMADkMGAYgLAQABBQEAGQGCCwABAIYL +AQHPs3Hbz7NH7RZJs6voCs-0cdvPtEftSc8opAP5IgMESzH_Q09MAjADAAAIAwABEAACCgABEAAB +EAACHwADMgAEVQMAARAAAgoAARAAARAAAh8AAhsAAA7_SUMADkMGAQACBwIFAQB-CboEAAEAlAUA +AQDCCgAAAJYEAAEAygoAAgCCCwADAIALAAQAygQABQAQAAEAiAsCAQjBBsAGQagCAADHw0ELAQAA +yMAGQakCAADJwAZBwgIAAMrF6CDABsVCKgEAALMkAQAVQ8ICAADKwAY4RQAAAEOpAgAA28btDsZC +KgEAALMkAQDBBMNCrAIAAMAEsyQCAA6zwQXABcSj6BTP0MAFnXETR8AEwAVHrkmTBeroKaQDhCMO +EysmKy0SZEEYP0YwThf_Q09MF4wBAAMTAAAaAAIKAAYjAAAgAAEOAAYtAAASAAIKAAYbAAAcAAIK +AAYlAAAIAAMIAAAHAAAUAAIKAAAWCgAFDAABCwAKOQACCgAADAAKLwABFgABFQACIAABEAAFDAAB +CwAFHQABDgAFGgACFgABLwAEDQAAGhQAAggABCAAAD8AAQwAARIABgwAAhQABQf_SUMG1ATQCoQL +2AqWBNIKDkMGAQAAAgAFAQE7AsADAAAAzAoAAQCyAwAB20HaAAAAQYECAABC_AAAACQAAMfDw0L8 +AAAAC74ATasCAABMqwIAACQBABVDpgIAAMjDxEOnAgAAwyikA6ojCANoAAgqPzYn_0NPTBY2AAAh +AAAUAAESAAUIAAUgAAlNAAAgAAEIAAAYAAEIAAUOAAExAAwkAApHAAEIAAAYAAYfAAAO_0lDBcwK +tAP4A4IKzgoOQwYBAAIGAgUAAGwIugQAAQCUBQABAMIKAAAAlgQAAQDKCgACAIALAAMAygQABAAQ +AAEACMEFwAVBqAIAAMfDQQsBAADIwAVBqQIAAMnABUHIAgAAysXoIMAFxUIqAQAAsyQBABVDyAIA +AMrABThFAAAAQ6kCAADDQqwCAADGsyQCAA6zwQTABMSj6BPP0MAEnXETR8bABEeuSZME6ukppAOu +IwwTKyYrLRJkQEEwSRf_Q09MF3cAAxMAABoAAgoABiMAACAAAQ4ABi0AABIAAgoABhsAACAAAgoA +BikAAAgAAwgAAAcAABgAAgoAABoKAAUMAAELAApBAAIKAAAMAAodAAEOAAUaAAEWAAEvAAQNAAAa +FAACCAAEIAAAPwABDAABEgAGDAABFAAFB_9JQwbUBNAKkAvYCpYE0goOQwYBAAABAAUBAk4BwgMA +AACyAwAB20HaAAAAQYECAABC_AAAACQAAMfDw0L8AAAAC74ATasCAABMqwIAACQBAEOmAgAAw8NC +_AAAAAu-AU2rAgAATKsCAAAkAQBDpwIAAMMopAPOIwgDaC0_LC0_LP9DT0wWOwAAIQAAFAABEgAF +CAAFIAAJTQABCAAAGAABCAAFDgABEUAACCcAAQgAABgAAQgABQ4AARFAAAgnAAAO_0lDBcwKtAP4 +A4IKzgoOQwYBAAIBAgQAABMDugQAAQCUBQABABAAAQAIx8NBqAIAAEKsAgAAz9AkAgAppAPSIwIN +U_9DT0wXEgACEwABCgAFEAAFGgABDgABJ_9JQwLQCtgKDkMGAQACAQIEAAATA7oEAAEAlAUAAQAQ +AAEACMfDQagCAABCrwIAAM_QJAIAKaQD2CMCDVP_Q09MFxIAAhMAAQoABRAABRoAAQ4AASf_SUMC +0AreCg5DBgEAAgQCBwAASAaCBQABAJYEAAEAigUAAACMBQABAOAKAAIAkgsAAwDPQR4BAADH0Lea +yMTDxJyeycPFnbSeys9C_gAAACQAAA7PQR0BAADGtaJxE0fFuxjGt5y7CJqeoK9Jz0IeAQAAxZ1D +HgEAACmkA-UjCAQmGSMjNYBE_0NPTApVAQAAJgABCgAGLwAAKgABGAADQQAAKAABIgABHgAEZwAA +JAABHgACIAADYQABCgAJCQABCgAFDAABIAAFDAABIgMAAgoDAAEcAAIKAAeXAQABCgAFGP9JQwO8 +BPwDugQOQwYBAAEBAQMAACQCggUAAQDgCgAAAM9BHQEAAM9BHgEAALSetaJHvP8ArcfPQh4BAADD +nkMeAQAAKaQD9iMDBHNE_0NPTAwiAAAFAAAoAAEKAAUMAwABCgAFFgACDgADCgAFdwABCgAFGP9J +QwK8BLoEDkMGAQACAgIGAQBSBIIFAAEAlgQAAQCMBQAAAOAKAAEAsgMAAdC3msfDz0EeAQAAw5ye +yM9CXAAAANtB2gAAAEHwAAAAQgABAADEtJ4kAQAkAQBCXAAAANtB2gAAAEHwAAAAQuwAAADEuxig +JgEAtCQCACQBACmkA4QkBQQZPLeZ_0NPTApQAQAAKgABGAADQQAAKAABIgABCgAFFgAEaQABCgAF +DgABEgAFCAAFFAAFDgABIAACLQADOwAIDgABEgAFCAAFFAAFDgMAASIABgoAATsAAzv_SUMG4AOA +BLQDvATYA7gBDkMGAQABAQEDAAAkAoIFAAEA4AoAAADPQR0BAADPQR4BAAC0nrWiR7z_AK3Hz0Ie +AQAAw55DHgEAACmkA5AkAwRzRP9DT0wMIgAABQAAKAABCgAFDAMAAQoABRYAAg4AAwoABXcAAQoA +BRj_SUMCvAS6BA5DBgEAAgACBgEBOQKCBQABAJYEAAEAsgMAAc9CXAAAANtB2gAAAEHwAAAAQuwA +AAC9ACYBALQkAgAkAQAO20HiAAAAQecAAABC4gAAAM_QJAIAKaQDniQDBLRs_0NPTAoyAQABCgAF +DgABEgAFCAAFFAAFDgMABRoAASkAAzsABAkAARIABQgABRgABQgAAQwAARP_SUMGzgPgA7QD2AO4 +AcQDBgAAAAAAAOBBDkMGAQABAAEDAQAiAYIFAAEAsgMAAdtB4gAAAEHnAAAAQuMAAADPJAEADs9C +HgEAAI5DHgEAACmkA6YkAwRuP_9DT0wMGAAABQABEgAFCAAFGAAFDAABCwAEMQABCv9JQwTOA7wE +xgPEAw5DBgEAAgECBQAAKgOCBQABAJYEAAEAjAUAAADQt5rHz0L-AAAAJAAADs9CHgEAAMPPQR4B +AADDnBHpAw7Dnp1DHgEAACmkA7QkBAQZNYr_Q09MCiQBAAAqAAEYAANBAAEKAAkJAAEKAAUYAAEi +AwMAAQoABRYABib_SUMCvAT8Aw5DBgEAAQIBBAAAQgOCBQABAIgFAAAAygQAAQDPQR0BAADHz0Ee +AQAAtJ7Iz0EeAQAAtJ7IxLOm6CTDxLWiR7sYxLecuwianqK8_wCt6AvPxLSdQx4BAAApkgHq2Smk +A70kCAQoMElsMAkX_0NPTAxcAAAFAAAgAAEKAAYpAAAQAAEKAAUWAAMvAAAaAAEKAAUWFAABCgAE +EAAAUQAACAMDAAEUAAEMAAMOAwACCgMAAQgAAgoABQwABg4AAGsAAQoAABYAAQgABycAAUD_SUMC +vAS6BA5DBgEAAAAAAAAAAQAppAPRJAED_0NPTAoA_0lDAA5DBgEAAAAAAAAAAQAppAPUJAED_0NP +TAwA_0lDAA5DBgEAAQcBAwECSwiKAQABANoDAAAA3AMAAQCMCgACQOIDAAMA5AMABECOCgAFAJQL +AAYAsgMAAdvHw0HaAAAAyMRBhgIAAMnDQQEBAADKxkHyAAAAwQTDQZQCAADBBcAFC74ATQIBAABM +AgEAAL4BTQMBAABMAwEAABVD8gAAAMEGKaQD2SQPBA0mJiYrLAADIAAMJD8r_0NPTAI9BQAAEAAC +DwAAGAkABhsAACYAAQwABjEAABgJAAYbAAAUAAEMAAcfAAAeCQAHIQAAJgACEgAADAABJQAMB_9J +QwW0A6gKggSMCuQDDkMGAQABAAEDAQAPAewKAAEA5AMEAc9BogIAAEI3AAAA2yUBAKQD8CQBA_9D +T0wUEgAADQAADgABGgAFFgAFEgABEf9JQwLECm4OQwYBAAEBAQQCABsCsAEAAQDECgAAAOQDBAGM +CgIB20IDAQAAzyQBAMfcQuwAAAALw0yiAgAAJQEApAOBJQIDOv9DT0wQIQAABQAAIgABCAAFDAAB +CwAEKQAADgABGgAFDgABHAAGKf9JQwLYA4YEDkMGAQAAEAALAQXFARDaAwAAANwDAAEAigoAAgDu +AwADAJYLAARAmAsABUCaCwAGQJwLAAdAngsACECgCwAJQKILAApApAsAC0CmCwAMQKgLAA1AqgsA +DkCsCwAPALIDAAHbx8NB2gAAAMjEQYUCAADJw0EOAQAAyiYAAMEEJgAAwQUmAADBBiYAAMEHJgAA +wQgmAADBCSYAAMEKJgAAwQsmAADBDCYAAMENvgDsDrO0tbe7CLsQuyC7QLyAALsbuzYmCwDBDsbF +QvwAAAALvgFNTwEAAExPAQAAvgJNrAIAAEysAgAAvgNNrwIAAEyvAgAAvgRN1wIAAEzXAgAAvAAB +uyCbTHACAAAkAQAVQ9YCAADBD8PFQgwBAADADyQBAEPWAgAAKaQDiSUoBA0mJigcHBwcHBwcHBwA +BWYZABgKAAiAAQAMCAAMHAAMUkA6AAsUWP9DT0wCsQEFAAAQAAIPAAAYCQAGGwAAJAABDAAGLwAA +GgkABh0AABYABRUAAB4ABR0AACAABR8AACAABR8AACAABR8AACAABR8AACgABScAACgABScAACgA +BScAACgABScDFQAAFgMAAQwAAQwAAQwAAQwAAgwAAgwAAgwAAgwAAwwAAgwAB48BAAAUAAEOAAAM +AAEYAAUOAAE3AAwIewAMCwADCAAIJAALRQkAAAwAARgABRwAAhv_SUMGtAP4A4oKmASsC5wEDkMG +AQAACQAGCgDOAgncBgAAAMoEAAEA6gYAAgCwCwADALILAAQAtAsABQC2CwAGALgLAAcA7gYACACW +CwQBmAsFAZoLBgGcCwcBngsIAaALCQGiCwoBpAsLAaYLDAGoCw0BJgAAx7PIxLwAAaPoIMS8gACj +6ArDxHHEtKBJ6gzDxHHEtKC8GwGuSZMB6tuzybPKs8jEvAABo2kVAQAAxsa0oK7GtaCuxragrsa3 +oK7BBMAEuwiiwAS8_wCtrrtjrsEE28VxwARJ3MAEccVJw8VHwQXDwAVHwQbDwAZHwQfDwARHvAEB +msAEAQABAQGarsEI3cVxwAi7GKDACLsIoq9J3sVxwAi7EKDACLsQoq9JXgQAxXHACLsIoMAIuxii +r0leBQDFccAIScAHAQEBAQGawAYBAQABAJquwAW8AQGarsUBAAEBAZquwQheBgDABHHACLsYoMAI +uwiir0leBwDABHHACLsQoMAIuxCir0leCADABHHACLsIoMAIuxiir0leCQDABHHACEnFlugGtM7J +6hjABcPDw8AHwAWuR0dHrsnGw8PGR0euypMB6-f-KaQDnSUiBBcwJiYNOxkNDUBiWCEjHCEjYk5O +WC2tXV1dMhcSDU4sHP9DT0wGmAMFAAAQAAQPAAAaDwABCAAGFAAAMwAACAABCAAGCgAAEQkAAgoA +AQoABREAAAUJAAIKAwABCgACChoABDEAABAAAg8AABIAAhEAABoPAAEIAAkUAAAzAAASAAEKAwAB +DAADCgMAAQwAAwoDAAEMAAMKAwABDAAFcQAACgMAAg4AAwoDAAIKAAUQAAU_AAEKAAIKAAMTAAES +AAMMAAIdAAASCQAEFQAAEgkABRUAABIJAAUVAAAQAwkAAwwABBIDAAIKAAk_AAEUAAIKAwACCgAD +DAMAAgwABUMAARQAAgoDAAIKAAMMAwACDAAFQwADFAACCgMAAgoAAwwDAAIMAAVDAAMUAAIKAAMd +AAAQAwACCgAGGgMAAgoABxYDAAIKAAUSAwABCAAJfwADHAADDAMAAgoAAwwDAAIMAAVNAAMcAAMM +AwACCgADDAMAAgwABU0AAxwAAwwDAAIKAAMMAwACDAAFTQADHAADDAADJwAACAMZAAAHAAAIAAAK +AAULAAAFAAAIAAIKCQkJAAIKAAgnAAEMCQkABQ7_SUMADkMGAQAACwAHBgCsAwvuBgAAAKgFAAEA +ugsAAgDgCQADALwLAAQAvgsABQDACwAGAMILAAcAxAsACADGCwAJABAAAQCWCwQBqgsOAaILCgGk +CwsBpgsMAagLDQEIwQrACkHkAgAA6BPACkHlAgAAwApBnQIAAKvoAinACsAKQZ0CAAAVQ-UCAADI +xEEdAQAAycRBHgEAALebysAKxrmdFUPkAgAAwQTABLSdt5rBBcAKJgAAFUPmAgAAwQazwQfAB8AF +o2m9AAAAwAfGo-gOwAbAB3HFwAdHSeujAMAGwAe0nkfHwAfGnJboScO7CKDDuxiir8fbw7sYoke7 +GKDbw7sQorz_AK1HuxCgr9vDuwiivP8ArUe7CKCv28O8_wCtR6_Hw9zAB8abs69HuxigrsfqPMa5 +peg3wAfGnLep6C_bw7sYoke7GKDbw7sQorz_AK1HuxCgr9vDuwiivP8ArUe7CKCv28O8_wCtR6_H +wAbAB3HABsAHxp5Hw65JkwfrP__ACiYAABVD5wIAAMEIs8EJwAnABaPob8AFwAmewQfACbec6AnA +BsAHR8fqCcAGwAe3nkfHwAm3oxHpBg7AB7ek6ArACMAJccNJ6jfACMAJcd3bw7sYokdH3tvDuxCi +vP8ArUdHrl4EANvDuwiivP8ArUdHrl4FANvDvP8ArUdHrkmTCeqMKaQD1iUlAAMIhgpTJjJGLURE +ITUSLCc360lP608eRDUnISENLUkmDYWQF_9DT0wTjgQAAwsAAAgAAgoABxgAAgoABSYAAgoACAwA +AGcAAQcAABQAAgoAACIAAgoADEkAAB4AAQgABiUAABwAAQgABRYAAzkAABwAAgoAABYAARQACk8A +ABoDAAIUAAIKAAQ5AAAkAAIKAAAeAAtLAAAiFAACEAAIIgAAUQAACAACEAAEEgAAIQACGAADEgAB +EgAHNQAABQAACAACGAACEAAELwAACAMDAAIQAAUUAAAnAAAIAwABCgADCgMAAQwABSsAAAgDAAEK +AAEMAAQOAAMMAwABCgMAAQwAAwwABRIABAwDAAEKAwABDAADCgAFEgAECgABCgABCAAHzwEAAQoA +AQoDAAIQAAIWAAMMAAdBAAAIAAEUAAQKAAIQAAIWGQAAVwAACAMAAQoAAQwABA4AAwwDAAEKAwAB +DAADDAAFEgAEDAMAAQoDAAEMAAMKAAUSAAQKAAEKAAEIAAfXAQACGAADEgACGAACEAADFgADLwAF +RwAAKgACCgAAJAALVwAAKBQAAhYABSgAAGMAABgAAhIABSkAAAgAAhYZAAAbAAAQAAIYAAYhAAAF +AAAQAAIYAAIQAAQ_AAAIAAIWAAYKAAISGQAANwACHgADGAAELwAABQACHgADGAABHAABCgABDAAF +DgABHAABCgMAAQwAAwwAB38AAxwAAQoDAAEMAAMKAAcSAAMcAAEKAAEIAAhv_0lDB8gLvAS6CroE +zgvKC8wLDkMGAQACAQIKBQAbA64GAAEAlAUAAQAQAAEAmgsGAZwLBwGeCwgBoAsJAZYLBAEIx8NC +1wIAAM_Qw0HmAgAA29zd3l4EACQIACmkA5cmAg17_0NPTBcjAAITAAEKAAUcCgABEAABCgAFHAAB +FgABFgABFgABFgADrwH_SUMCrgvMCw5DBgEAAgICCgUATASuBgABAJQFAAEA7gYAAAAQAAEAogsK +AaQLCwGmCwwBqAsNAZgLBQEIyM_QtJ1Hx8_QtJ1xz9C2nUdJz9C2nXHDScRC1wIAAM_QxEHnAgAA +29zd3l4EACQIAA7P0LSdR8fP0LSdcc_Qtp1HSc_Qtp1xw0kppAObJggOITongiE6Jv9DT0wXZwAC +EwAAEAkAARIABCUJAAESAAMKCQABEgAENQkAARIAAwoAAh8AAQoABRwKAAEQAAEKAAUiAAEeAAEe +AAEeAAEeAAPVAQAECQAAEAkAARIABCUJAAESAAMKCQABEgAENQkAARIAAwr_SUMCrgvOCw5DBgEA +CAwIBAAAxgQUrgYAAQCUBQABAMALAAEAmgsAAQCcCwABAJ4LAAEAoAsAAQCWCwABALwLAAAA0AsA +AQDSCwACANQLAAMA1gsABADCCwAFAOgIAAYA2AsABwCiBwAIAKQHAAkA2gsACgAQAAEACMELwAtB +5AIAAMfP0EfRs0euyM_QtJ1H0bRHrsnP0LWdR9G1R67Kz9C2nUfRtkeuwQS3wQW0wQbABsOjaeoA +AADSxLsYokdbBADFuxCivP8ArUeuWwUAxrsIorz_AK1HrlsGAMAEvP8ArUeu0cAFkcEFR67BB9LF +uxiiR1sEAMa7EKK8_wCtR65bBQDABLsIorz_AK1HrlsGAMS8_wCtR67RwAWRwQVHrsEI0sa7GKJH +WwQAwAS7EKK8_wCtR65bBQDEuwiivP8ArUeuWwYAxbz_AK1HrtHABZHBBUeuwQnSwAS7GKJHWwQA +xLsQorz_AK1HrlsFAMW7CKK8_wCtR65bBgDGvP8ArUeu0cAFkcEFR67BCsAHyMAIycAJysAKwQST +BusT_1sHAMS7GKJHuxigWwcAxbsQorz_AK1HuxCgr1sHAMa7CKK8_wCtR7sIoK9bBwDABLz_AK1H +r9HABZHBBUeuwQdbBwDFuxiiR7sYoFsHAMa7EKK8_wCtR7sQoK9bBwDABLsIorz_AK1Huwigr1sH +AMS8_wCtR6_RwAWRwQVHrsEIWwcAxrsYoke7GKBbBwDABLsQorz_AK1HuxCgr1sHAMS7CKK8_wCt +R7sIoK9bBwDFvP8ArUev0cAFkcEFR67BCVsHAMAEuxiiR7sYoFsHAMS7EKK8_wCtR7sQoK9bBwDF +uwiivP8ArUe7CKCvWwcAxrz_AK1Hr9HABZHBBUeuwQrP0HHAB0nP0LSdccAISc_QtZ1xwAlJz9C2 +nXHACkkppAOpJikTLSs1NTwUQAA1AgA1AgA1AgA1BhISEhceAEACAEACAEACAEAGISsrK_9DT0wY +_QQAAxUAABwAAgoABiUAABIJAAIcAAEYAARJAAASCQABEgADCgABGAAESQAAEgkAARIAAwoAARgA +BEkAABIJAAESAAMKAAEYAAVJAAAYAAMXAAAiFAACEAAHJAAAUwAAEgABFAABDgAEDAADFAMAAQ4A +AwwABhAAAxQDAAEOAAMKAAYQAAMUAAIKAAYQAAEYAAmDAgAAEgABFAABDgAEDAADFAMAAQ4AAwwA +BhAAAxQDAAIOAAMKAAYQAAMUAAEKAAYQAAEYAAmDAgAAEgABFAABDgAEDAADFAMAAg4AAwwABhAA +AxQDAAEOAAMKAAYQAAMUAAEKAAYQAAEYAAmDAgAAEgABFAACDgAEDAADFAMAAQ4AAwwABhAAAxQD +AAEOAAMKAAYQAAMUAAEKAAYQAAEYAAmDAgAACgADCQAACgADCQAACgADCQAACgAEOAAFSQAAEgMD +AAMKAAEOAAQOAAMMAwADCgMAAQ4AAwwABRIABAwDAAMKAwABDgADCgAFEgAECgADCgACCgAGEgAB +GAAJjQIAABIDAwADCgABDgAEDgADDAMAAwoDAAEOAAMMAAUSAAQMAwADCgMAAg4AAwoABRIABAoA +AwoAAQoABhIAARgACY0CAAASAwMAAwoAAQ4ABA4AAwwDAAMKAwACDgADDAAFEgAEDAMAAwoDAAEO +AAMKAAUSAAQKAAMKAAEKAAYSAAEYAAmNAgAAEgMDAAMKAAIOAAQOAAMMAwADCgMAAQ4AAwwABRIA +BAwDAAMKAwABDgADCgAFEgAECgADCgABCgAGEgABGAAJjQIJAAIcAAMfCQABEgADCgADHwkAARIA +AwoAAx8JAAESAAMK_0lDAcgLDkMGAQAADgAgASuwKg7aAwAAANwDAAEA4AMAAkCKCgADAO4DAAQA +3AsABUDeCwAGQOALAAdA4gsACEDkCwAJQOYLAApA6AsAC0DqCwAMQOwLAA0AsgMAAb4mwQu-J8EM +28fDQdoAAADIxEHwAAAAycRBhQIAAMrDQQ4BAADBBLs5uzG7Kbshuxm7EbsJtLs6uzK7Krsiuxq7 +ErsKtbs7uzO7K7sjuxu7E7sLtrs8uzS7LLskuz-7N7svuycmIAC7H0wgAACAuxdMIQAAgLsPTCIA +AIC6TCMAAIC7PkwkAACAuzZMJQAAgLsuTCYAAIC7JkwnAACAux5MKAAAgLsWTCkAAIC7DkwqAACA +uUwrAACAuz1MLAAAgLs1TC0AAIC7LUwuAACAuyVMLwAAgLsdTDAAAIC7FUwxAACAuw1MMgAAgLhM +MwAAgLscTDQAAIC7FEw1AACAuwxMNgAAgLdMNwAAgMEFuw67EbsLuxi0uLa7HLsPubsVuwq7F7sT +uwy3uxq7CLsQursbuxS7DbW7Kbs0ux-7Jbsvuze7HrsoJiAAuzNMIAAAgLstTCEAAIC7IUwiAACA +uzBMIwAAgLssTCQAAIC7MUwlAACAuydMJgAAgLs4TCcAAIC7IkwoAACAuzVMKQAAgLsuTCoAAIC7 +KkwrAACAuzJMLAAAgLskTC0AAIC7HUwuAACAuyBMLwAAgMEGtLW3ubsIuwq7DLsOuw-7EbsTuxW7 +F7sZuxu7HCYQAMEHCwEAgoAATAAAAIABAIAAAEwAAACQAQKAgABMAAAAoLVMAAAAsLwAAkwAAADA +AQKCgABMAAAA0AECAoAATAAAAOABAACAAEwAAADwvAICTPcCAAABAAKAAEz4AgAAAQCCAABM-QIA +AAEAgIAATPoCAAABAoAAAEz7AgAAAQIAgABM_AIAALNM_QIAAAECggAATP4CAACzTAAAAIgBAoKA +AEwAAACYAQKCAABMAAAAqAEAgAAATAAAALgBAIKAAEwAAADIvAACTAAAANgBAoCAAEwAAADotUwA +AAD4AQACgABM_wIAAAEAggAATAADAAABAICAAEwBAwAAAQICgABMAgMAAAECAIAATAMDAAABAoAA +AEwEAwAAvAICTAUDAAABAACAAEwGAwAAAQCAAABMAQAAgLVMAQAAkAEAgoAATAEAAKABAACAAEwB +AACwAQKAgABMAQAAwAEAggAATAEAANC8AAJMAQAA4AECAoAATAEAAPABAoKAAEwHAwAAAQCAgABM +CAMAAAECAIAATAkDAAABAoIAAEwKAwAAvAICTAsDAAABAAKAAEwMAwAAAQKAAABMDQMAALNMDgMA +AAECgoAATAEAAIgBAICAAEwBAACYAQAAgABMAQAAqLwAAkwBAAC4AQCAAABMAQAAyAECAIAATAEA +ANi1TAEAAOgBAoIAAEwBAAD4AQKAAABMDwMAAAECAoAATBADAAC8AgJMEQMAAAEAgoAATBIDAAAB +AAKAAEwTAwAAs0wUAwAAAQCCAABMFQMAAAECgIAATBYDAAALARBACEBMAAAAgLwAQEwAAACBAQAA +CABMAAAAggEQAAhATAAAAIMBEAAAQEwAAACEAQBACEBMAAAAhQEAQABATAAAAIa7EEwAAACHAQBA +CABMAAAAiAEQQABATAAAAIkBAAAAQEwAAACKARBACABMAAAAiwEQAAgATAAAAIyzTAAAAI28EEBM +AAAAjgEAAAhATAAAAI8BAEAAQEwAAICAARBACABMAACAgbsQTAAAgIIBEEAAQEwAAICDARBACEBM +AACAhAEAAABATAAAgIUBAAAIAEwAAICGARAACEBMAACAhwEQAAgATAAAgIizTAAAgIm8AEBMAACA +igEAAAhATAAAgIsBEAAAQEwAAICMAQBACABMAACAjQEAQAhATAAAgI68EEBMAACAj7NMAAAAkAEQ +AAhATAAAAJEBEEAAQEwAAACSAQBACEBMAAAAkwEAAAhATAAAAJS7EEwAAACVARBACABMAAAAlrwA +QEwAAACXvBBATAAAAJgBAAAIAEwAAACZARAACABMAAAAmgEQAABATAAAAJsBAEAIAEwAAACcAQBA +AEBMAAAAnQEAAABATAAAAJ4BEEAIQEwAAACfARBACABMAACAkAEAAAgATAAAgJEBAAAIQEwAAICS +vABATAAAgJMBAEAAQEwAAICUARBACEBMAACAlbsQTAAAgJYBAAAAQEwAAICXAQBACEBMAACAmAEQ +AABATAAAgJkBEEAAQEwAAICaARAACABMAACAm7NMAACAnLwQQEwAAICdARAACEBMAACAngEAQAgA +TAAAgJ8LvAQBTAAAAICzTAAAEIABAAEABEwAACCAAQQBAQBMAAAwgAEEAAEATAAAQIABBAAABEwA +AFCAAQQBAQRMAABggAEAAAEETAAAcIABAAAABEwAAICAAQABAQRMAACQgAEAAQEATAAAoIABBAAB +BEwAALCAAQQBAARMAADAgAEAAAEATAAA0IC3TAAA4IC8AAFMAADwgAEAAQEETAAACIABBAABBEwA +ABiAs0wAACiAAQABAARMAAA4gAEEAAAETAAASIABAAABAEwAAFiAAQQAAQBMAABogLwEAUwAAHiA +t0wAAIiAvAABTAAAmIABAAABBEwAAKiAAQQBAQBMAAC4gAEAAQEATAAAyIABBAEABEwAANiAAQQB +AQRMAADogAEAAAAETAAA-IABAAEBBEwAAACBAQQAAQBMAAAQgQEAAAEATAAAIIEBAAEABEwAADCB +vAABTAAAQIEBBAEBBEwAAFCBAQQAAARMAABggbNMAABwgQEEAQAETAAAgIEBAAAABEwAAJCBt0wA +AKCBAQABAQBMAACwgQEAAAEETAAAwIG8BAFMAADQgQEEAQEATAAA4IEBBAABBEwAAPCBAQAAAARM +AAAIgbwEAUwAABiBAQABAQRMAAAogbNMAAA4gQEEAAEATAAASIEBAAEABEwAAFiBvAABTAAAaIEB +BAABBEwAAHiBAQAAAQBMAACIgQEEAQEETAAAmIEBBAEBAEwAAKiBAQQAAARMAAC4gQEEAQAETAAA +yIEBAAABBEwAANiBt0wAAOiBAQABAQBMAAD4gQu9AEwAAACAvQFMAAABgAFAEEAATAAAAoC9AkwA +AAOAs0wAAASAAQAQQABMAAAFgL0DTAAABoABQABAAEwAAAeAvQRMAAAIgAEAAEAATAAACYC7QEwA +AAqAvQVMAAALgL0GTAAADIC8QBBMAAANgLwAEEwAAA6AvQdMAAAPgL0ITACAAIC7QEwAgAGAvQlM +AIACgL0KTACAA4ABABBAAEwAgASAvQtMAIAFgLNMAIAGgL0MTACAB4C8ABBMAIAIgL0NTACACYAB +AABAAEwAgAqAvEAQTACAC4C9DkwAgAyAAUAAQABMAIANgAFAEEAATACADoC9D0wAgA-AAUAAQABM +AAAQgAEAEEAATAAAEYC9EEwAABKAs0wAABOAvEAQTAAAFIC9EUwAABWAvRJMAAAWgL0TTAAAF4C9 +FEwAABiAvRVMAAAZgL0WTAAAGoABQBBAAEwAABuAvRdMAAAcgAEAAEAATAAAHYC7QEwAAB6AvAAQ +TAAAH4C9GEwAgBCAvRlMAIARgLNMAIASgAEAEEAATACAE4ABQABAAEwAgBSAvRpMAIAVgL0bTACA +FoC7QEwAgBeAvRxMAIAYgLwAEEwAgBmAvR1MAIAagL0eTACAG4C8QBBMAIAcgL0fTACAHYABAABA +AEwAgB6AAUAQQABMAIAfgAu8gABMAAAAgAEAAAQBTAAQAIABAAAEAEwAIACAAQAAACBMADAAgAGA +AAQgTABAAIABgAAAAUwAUACAAYAAACFMAGAAgAGAAAQATABwAIABAAAAAUwAgACAAQAABCBMAJAA +gAGAAAAgTACgAIABgAAEIUwAsACAAQAABCFMAMAAgLNMANAAgAGAAAQBTADgAIABAAAAIUwA8ACA +AYAABAFMAAgAgAGAAAAhTAAYAIC8gABMACgAgAEAAAQBTAA4AIABAAAEAEwASACAAYAABCBMAFgA +gAEAAAQhTABoAIABAAAAIEwAeACAAQAABCBMAIgAgLNMAJgAgAGAAAQhTACoAIABgAAAAUwAuACA +AYAAACBMAMgAgAEAAAAhTADYAIABAAAAAUwA6ACAAYAABABMAPgAgAEAAAQATAAAAYC8gABMABAB +gAEAAAAgTAAgAYABgAAAIUwAMAGAAYAAAAFMAEABgAEAAAQhTABQAYABgAAEIEwAYAGAAQAAAAFM +AHABgAGAAAQhTACAAYABAAAAIUwAkAGAAQAABAFMAKABgAEAAAQgTACwAYABgAAEAEwAwAGAAYAA +ACBMANABgLNMAOABgAGAAAQBTADwAYABgAAAIUwACAGAAQAAAAFMABgBgAEAAAQBTAAoAYABgAAE +IEwAOAGAAQAAACBMAEgBgAGAAAQBTABYAYC8gABMAGgBgAEAAAQhTAB4AYABgAAEAEwAiAGAAYAA +BCFMAJgBgLNMAKgBgAEAAAAhTAC4AYABgAAAAUwAyAGAAQAABABMANgBgAEAAAQgTADoAYABgAAA +IEwA-AGACwEIAAAQTAAAAIC8ACBMAAEAgAEAACAQTAACAIABCCAgEEwAAwCAAQAgABBMAAQAgAEA +ACAATAAFAIABCAAgAEwABgCAAQAAABBMAAcAgLNMAAgAgAEIIAAQTAAJAIABACAgAEwACgCAuwhM +AAsAgAEIACAQTAAMAIABCCAgAEwADQCAvAggTAAOAIABACAgEEwADwCAAQAAIBBMgAAAgAEIICAQ +TIABAIC7CEyAAgCAAQAAIABMgAMAgAEIICAATIAEAIABCAAAEEyABQCAAQAgABBMgAYAgLwIIEyA +BwCAAQgAIABMgAgAgLwAIEyACQCAAQggABBMgAoAgAEIACAQTIALAICzTIAMAIABACAgEEyADQCA +AQAgIABMgA4AgAEAAAAQTIAPAIABACAAEEwAEACAAQgAIBBMABEAgAEIICAQTAASAIC8CCBMABMA +gAEAACAATAAUAIABAAAAEEwAFQCAAQgAABBMABYAgAEAICAATAAXAIABCCAgAEwAGACAs0wAGQCA +uwhMABoAgAEAACAQTAAbAIC8ACBMABwAgAEIIAAQTAAdAIABACAgEEwAHgCAAQgAIABMAB8AgLsI +TIAQAIABACAgAEyAEQCAAQAAIABMgBIAgAEIAAAQTIATAIABACAAEEyAFACAvAggTIAVAIABCCAg +EEyAFgCAAQAAIBBMgBcAgAEAICAQTIAYAIABCAAgEEyAGQCAvAAgTIAaAIABCCAgAEyAGwCAAQgA +IABMgBwAgLNMgB0AgAEAAAAQTIAeAIABCCAAEEyAHwCACwEAABAATAAAAIABAQQAAkwQAACAvAAE +TCAAAIABAQQQAEwwAACAAQEEEAJMQAAAgLNMUAAAgLRMYAAAgAEBABACTHAAAIABAAQAAkyAAACA +AQEAEABMkAAAgAEBAAACTKAAAIABAAQQAkywAACAAQAAEAJMwAAAgLwBBEzQAACAAQAEEABM4AAA +gAEAAAACTPAAAIABAQAQAkwIAACAs0wYAACAAQEEAAJMKAAAgAEABBACTDgAAIABAAAQAExIAACA +AQEAAAJMWAAAgAEAAAACTGgAAIC8AQRMeAAAgAEBBBAATIgAAIABAAQAAkyYAACAAQAAEAJMqAAA +gAEBABAATLgAAIC8AARMyAAAgAEBBBACTNgAAIC0TOgAAIABAAQQAEz4AACAAQAAAAJMAAEAgAEA +ABAATBABAIABAQQAAkwgAQCAAQEAEAJMMAEAgAEBABAATEABAIABAAQAAkxQAQCAAQAEEAJMYAEA +gAEBBBAATHABAIC8AQRMgAEAgAEBBBACTJABAIABAAQQAEygAQCAtEywAQCAs0zAAQCAAQAAEAJM +0AEAgAEBAAACTOABAIC8AARM8AEAgAEABBAATAgBAIABAQQAAkwYAQCAAQEAEAJMKAEAgLRMOAEA +gAEAAAACTEgBAIABAAAQAExYAQCAvAEETGgBAIABAAQQAkx4AQCAAQEAAAJMiAEAgAEAABACTJgB +AICzTKgBAIABAQQQAky4AQCAAQEEEABMyAEAgLwABEzYAQCAAQAEAAJM6AEAgAEBABAATPgBAIAL +ASAIAAhMAAAAgAEAAAIATAEAAIABAAAACEwCAACAuyBMAwAAgAEgAAIATAQAAIABIAgCCEwFAACA +AQAIAghMBgAAgLwACEwHAACAAQAAAghMCAAAgAEACAAITAkAAIABAAgCAEwKAACAASAAAghMCwAA +gLwgCEwMAACAs0wNAACAASAAAAhMDgAAgAEgCAIATA8AAIC8AAhM9wIAAAEgCAIITAcDAAABIAgA +CEwXAwAAAQAAAAhMGAMAAAEAAAIITBkDAAABAAgCAEwaAwAAASAIAgBMGwMAALsgTBwDAAABIAAA +CEwdAwAAvCAITB4DAAABIAACAEwfAwAAAQAIAghMIAMAALNMIQMAAAEgAAIITCIDAAABAAgACEwj +AwAAAQAAAgBMJAMAAAEgCAIATBAAAIABAAgCCEwRAACAuyBMEgAAgLwACEwTAACAAQAIAAhMFAAA +gAEgAAAITBUAAIABIAACCEwWAACAAQAAAgBMFwAAgLNMGAAAgAEgAAIATBkAAIABAAACCEwaAACA +ASAIAAhMGwAAgAEgCAIITBwAAIABAAgCAEwdAACAvCAITB4AAIABAAAACEwfAACAAQAAAgBMJQMA +ALwACEwmAwAAASAAAghMJwMAAAEgCAIATCgDAAC7IEwpAwAAAQAAAghMKgMAAAEAAAAITCsDAAAB +IAgACEwsAwAAASAIAghMLQMAAAEgAAAITC4DAAABAAgACEwvAwAAs0wwAwAAAQAIAgBMMQMAALwg +CEwyAwAAASAAAgBMMwMAAAEACAIITDQDAAAmCADBCL0gAQAAgB8BAAD4AQEAgB8AAQD4AQC8gB-8 +-AG9ISYIAMEJwATGQvwAAAALviJNTwEAAExPAQAAviNNrAIAAEysAgAAviRNrwIAAEyvAgAAviVN +1wIAAEzXAgAAu0C7IJtMcAIAALtAuyCbTJACAAC7QLsgm0wLAQAAJAEAFUPzAgAAwQrDxkIMAQAA +wAokAQBD8wIAAMAExkL8AAAAC74oTU8BAABMTwEAAL4pTawCAABMrAIAAL4qTa8CAABMrwIAALzA +ALsgm0xwAgAAu0C7IJtMkAIAALtAuyCbTAsBAAAkAQAVQ_YCAADBDcPGQgwBAADADSQBAEP2AgAA +KaQD4SbZBCwNJiYmLQ1OTk5iADcCADcCADQCDw0wOjo1P7LVyw8AIQgINTU1ISs1NTUrNTU1NTUh +NSE1NTU1KzUhNTU1NTU1KzU1ITU1NTUrNTU1NTUrNTUhNTU1KzU1ITU1NSs1NSE1Ngg1KzU1NTU1 +JjU1NTU1ISs1NTUmNTU1NTU1ISs1NTU1KyE1NTU1JjUrKzU1NTU1NTU1NTUrNTUmNTU1NTUhKzU2 +CCshNTU1NTU1NTU1NTU1ISs1NSE1NTU1KyErNTU1NTU1NTU1NSs1NSE1NSE1NSs1NTUrNSE1NSs1 +NTU1NTU1ITYIJiY1JiE1JjUmNSYmJisrJiYmJiY1JiEmKyY1KyY1NSY1NSYhKyYmJiYmJjUmNSYr +JiYhNTUmJiYmKyYmKyY1NggrNTU1NTU1NTU1NTU1ITU1NTUrNTU1NTU1ITU1NTU1NTUrNTU1NTU1 +NTU1NTU1ITU1NTU1NTUrNTU1ITU1NTU2CDUrNTU1NTU1ITU1JjU1KzU1NSY1NTU1KzUrNTUhNTU1 +NTU1KzU1NTU1ISY1KzU1NSY1NTU1KzU1NTUrNTUhNTYINTUrNTUhITU1NTU1NSs1NTUhNTU1NTUr +NTU1NSs1ITU1NTU1NTU1NSs1NSEhNTUrNTU1ITU1KzU1NSE1NSs1Ngg1NTUmNTU1KzU1NTUrITU1 +KzU1NTU1NSY1KzU1ITU1NTU1Jis1NTU1ITU1NTU1KzU1KzU1JjU1NTU1NSE1KzU1Eg8NZzoAAgoA +CVwADAgADAgADFpANjY1AAsuABEKAAkmAAwMAAwMQDs2NQALFFj_Q09MAsQFLQAAEAACDwAAGAkA +BhsAACAAAQwABisAACQAAQwABi8AABoJAAcdAAAUAAALAAIIAAIIAAIIAAIIAAIIAAIIAAIIAAE3 +AAIIAAIIAAIIAAIIAAIIAAIIAAIIAAE3AAIIAAIIAAIIAAIIAAIIAAIIAAIIAAE3AAIIAAIIAAII +AAIIAAIIAAIIAAIIAAU3AAcIAAcIAAcIAAYIAAcIAAcIAAcIAAc3AAcIAAcIAAcIAAYIAAcIAAcI +AAcIAAc3AAcIAAcIAAcIAAYIAAcIAAcIAAcIAAg_AAAUAAALAAIIAAIIAAIIAAIIAAEIAAEnAAEI +AAIIAAIIAAEIAAIIAAInAAIIAAIIAAIIAAEIAAIIAAInAAIIAAEIAAIIAAIIAAIIAAEnAAIIAAII +AAIIAAIIAAIIAAInAAIIAAUIAAcIAAcIAAcIAAcnAAcIAAcIAAcIAAcIAAcIAAcnAAcIAAcIAAcI +AAcIAAcIAAkvAAAiAwABCAABCAABCAABCAACCAACCAACCAACCAACCAACCAACCAACCAACCAACCAAC +CAAHmwEAABoAABEAARIACg4AigEBIQCOAQ0ACg4AigEBNQCKAR8AARIACgwAiwEBNQCLAQIAqgIf +AAESAAgKAIwBATUAigECAKgCHQABEgAHCAB2ASYAdgIA-gEbAAESLQCSAQE1AJABAgC0AhkAARI2 +AIsBATUAiwECAKoCFwABEjUAigEBNQCKAQIAqAIVAAESAJUBDgCVAQsAlQEMAJoBJwAAIAAAFwAC +GAAFGAAFGAAFRwAFGAADGAADGAAHTwAAFAACDgAADAABGAAFDgABNwAMCHsADAsPAAgHDzcACCIA +C0UJAAAMAAEYAAUcAAIbAAgnAAAgAAIOAAAYAAEYAAUOAAFPAAwIABgJAAMIAAgJDzcACDoAC10J +AAAYAAEYAAUcAAIb_0lDCOADtAPsC4oK-AOYBJwE5gsGAAAAAAII4EEGAAAACAIA4EEGAAAAAAAI +4EEGAAAACAAA4EEGAAAAAAAA4EEGAAAAAAIA4EEGAAAACAAI4EEGAAAACAII4EEGAAAACAIA4EEG +AAAACAAI4EEGAAAAAAIA4EEGAAAACAII4EEGAAAAAAAI4EEGAAAAAAII4EEGAAAAAAAA4EEGAAAA +CAAA4EEGAAAACAAA4EEGAAAACAAI4EEGAAAAAAII4EEGAAAACAIA4EEGAAAACAII4EEGAAAAAAAA +4EEGAAAAAAAI4EEGAAAAAAIA4EEGAAAAAAAI4EEGAAAACAII4EEGAAAAAAAA4EEGAAAACAIA4EEG +AAAACAAA4EEGAAAAAAIA4EEGAAAACAAI4EEGAAAAAAII4EEGAAAgAAAA70EGAADgAwAA4EEOQwYB +AAALAAgDAKsCC6gFAAAAugsAAQDqDAACAMoEAAMA7AwABADuDAAFAPAMAAYA8gwABwD0DAAIAPYM +AAkAEAABANwLBQHgCwcB3gsGAQjBCsAKQZ0CAADHw0EdAQAAyCYAAMmzysa7OKPoIdvGR7SewQTF +xnHEwAS4oke7H8AEuyCcnqK0rUmTA-rbwAomAAAVQzwDAADBBbPBBsAGuxCjabEAAADABcAGcSYA +ABZJwQfcwAZHwQizysa7GKPoTcAHxrmbs69xE0fF3cZHtJ7ACJ27HJxHux_GuZyeoK9JwAe3xrmb +s6-dcRNHxbsc3ca7GJ1HtJ7ACJ27HJydR7sfxrmcnqCvSZMD6q_AB7NxwAezR7SgwAezR7sfoq9J +tMrGuqPoFsAHxnHAB8ZHxrSet5q2naJJkwPq58AHunHAB7pHuKDAB7pHuxuir0mTButL_8AKJgAA +FUM9AwAAwQmzysa7EKPoEcAJxnHABbsPxp5HSZMD6usppAOhKxwTKygXKyZsGURFQSMspcsABApi +JlgXYh5EKz8X_0NPTBP-AgADCwAAFAACCgAGHQAAHgABCAAGJQAAHAAEGwAAGg8AAQgABRIAADEA +ACAAAQgAAgoABDEAARAAAgoDAAESAAIcAAMOAwACCgACGAAFDgADYQAELwAAHAACCgAAFgALOwAA +JhQAAhQACB4AAFUAABoAAhAAAxYABz8AAB4AARYABTMAABoPAAEIAAUSAAAxAAIOAwABCAACCgAF +DAABEAMDAAEIAAIKAAIKAAMYAAQOAwACCgABCAAGlwEAAg4AAQgDAwABCAACCgAGDgABEAACCgMD +AwABCAABCAAEDAACCgADGAAFEAMAAgoAAQgABpMBAAQvAAIOAAIKAwACDgACDAACCgMAAg4AAg4A +BVsAABoPAAEIAAQQAAAvAAIOAAIKAAIOAAIOAwMAAQgAAgoAAggABCsABC0AAg4AAgoDAAIOAAIM +AAIKAwACDgACDgAFGwAFRwAAIgACCgAAHAALRwAAGg8AAQgABRIAADEAAhYAAgoAAhAAAgoABBH_ +SUME-Az6DLoKugQOQwYBAAIBAgUAABQDrgYAAQCUBQABABAAAQAIx8NC1wIAAM_Qw0E8AwAAJAMA +KaQD0CsCDVj_Q09MFxMAAhMAAQoABRwKAAEQAAEKAAU7_0lDAvgMrgsOQwYBAAIBAgUAABQDrgYA +AQCUBQABABAAAQAIx8NC1wIAAM_Qw0E9AwAAJAMAKaQD1CsCDVj_Q09MFxMAAhMAAQoABRwKAAEQ +AAEKAAU7_0lDAq4L-gwOQwYBAAMIAwUEAOUCC64GAAEAlAUAAQDuDAABAOgIAAAA8gwAAQD8DAAC +AP4MAAMAjAcABADKBAAFAO4GAAYAEAABAOgLCwHqCwwB4gsIAeQLCQEIwQfAB8_QR0NAAwAAwAfP +0LSdR0NBAwAA20IpAQAAwAe3AQ8PDw8kAwAO20IpAQAAwAe7EAH__wAAJAMADtxCKQEAAMAHtQEz +MzMzJAMADtxCKQEAAMAHuwgB_wD_ACQDAA7bQikBAADAB7QBVVVVVSQDAA6zx8O7EKPoVNHDR8jA +B0FAAwAAycAHQUEDAADKs8EEs8EFwAW7CKPoHMAE3cAFR8bEwAVHrt7ABUets6JHr8EEkwXq38AH +xkNAAwAAwAfFwASuQ0EDAACTAOqowAdBQAMAAMEGwAfAB0FBAwAAQ0ADAADAB8AGQ0EDAADbQikB +AADAB7QBVVVVVSQDAA7cQikBAADAB7sIAf8A_wAkAwAO3EIpAQAAwAe1ATMzMzMkAwAO20IpAQAA +wAe7EAH__wAAJAMADttCKQEAAMAHtwEPDw8PJAMADs_QccAHQUADAABJz9C0nXHAB0FBAwAASSmk +A9grHRM1QV1iXWJfLBcrLRI1dhcrOhkwSTJdYl1iXzpE_0NPTBjxAgADFQACCgAAFAkAByEAAgoA +ABQJAAESAAgzAAEWAAUKAAIMAAEIAAUdAAQVAAEWAAUKAAIMAAIIAAUdAAQVAAEWAAUKAAIMAAEI +AAUdAAQVAAEWAAUKAAIMAAIIAAUdAAQVAAEWAAUKAAIMAAEIAAUdAAQVAAAiDwABEAAFGgAASQAA +GgABEAADKQAAGgACCgAGIwAAGgACCgAGIwAAEAADDwAAGhQAAggABRAAAC8AAgoAAQ4UAwMAARIA +AQ4ABAwAARQABBAABksABC0AAgoAABQABh0AAgoAABQAARIACAgABD8AABAAAgoABxkAAgoAABQA +AgoACicAAgoAABQABx0AARYABQoAAgwAAQgABR0ABBUAARYABQoAAgwAAggABR0ABBUAARYABQoA +AgwAAQgABR0ABBUAARYABQoAAgwAAggABR0ABBUAARYABQoAAgwAAQgABR0ABBUJAAIUAAIKAAYh +CQABEgADCgACCv9JQwPSBIINgA0OQwYB6AsCAgIEAAAxBJQFAAEAhA0AAQDuBgAAABAAAQAIyMRB +QAMAAM-ixEFBAwAArtCtx8RCQQMAAMOuQ0EDAADEQkADAADDz6CuQ0ADAAAppAONLAQNXURO_0NP +TAUsAAIIAAAQAwMAAQoABRgAAhQAAQoABhYAA2kAAQoABRYABx8AAQoABRYAAQr_SUMCgg2ADQ5D +BgHqCwICAgQAADEElAUAAQCEDQABAO4GAAAAEAABAAjIxEFBAwAAz6LEQUADAACu0K3HxEJAAwAA +w65DQAMAAMRCQQMAAMPPoK5DQQMAACmkA5MsBA1dRE7_Q09MBSwAAggAABADAwABCgAFGAACFAAB +CgAGFgADaQABCgAFFgAHHwABCgAFFgABCv9JQwKCDYANDkMGAQAABgAGAgDOAQaoBQAAALoLAAEA +hg0AAgCIDQADAIoNAAQAEAABAOYLCgHgAwIBCMEFwAVBnQIAAMfDQR0BAADIxOe1rOgcxOe3rOgW +xOe5o-gQOJEAAAARBEYDAAAhAQAvxEIqAQAAs7UkAgDJxOe3o-gOxEIqAQAAs7UkAgDqDMRCKgEA +ALW3JAIAysTnuaPoDsRCKgEAALO1JAIA6gzEQioBAAC3uSQCAMEEwAXbQo0CAADcQuwAAADFJAEA +JAEAQ0cDAADABdtCjQIAANxC7AAAAMYkAQAkAQBDSAMAAMAF20KNAgAA3ELsAAAAwAQkAQAkAQBD +SQMAACmkA6csDBMrJ11JCj-epYWFiv9DT0wT8AEAAwsAABQAAgoABh0AAB4AAQgABiUAAAgAARIA +ARYABAoAARIAARYABAoAARIAARIZAACNAQAADAAACAAGDAAFEwAEEwAAFgABEgAFDAoAAREABCcA +ABYAARIAARIABAgAARIABQwKAAERAAUcAAESAAUMCgABEQAEgQEAABYAARIAARIABAgAARIABQwK +AAERAAUcAAESAAUMCgABEQAFgQEAAgoAABAAAQgABSAAARQABQ4AAQ0AAzMACCEAAgoAABAAAQgA +BSAAARQABQ4AAQ0AAzMACCEAAgoAABAAAQgABSAAARQABQ4AAg0AAzP_SUMJ1ASODdgDugqSDWC6 +BJoKkA0OQwYBAAIBAgQAADUDrgYAAQCUBQABABAAAQAIx8NBRwMAAEKsAgAAz9AkAgAOw0FIAwAA +Qq8CAADP0CQCAA7DQUkDAABCrAIAAM_QJAIAKaQDuywEDVhYU_9DT0wXMAACEwABCgAFDAAFGgoA +AR8ABBUAAQoABQwABRoKAAEfAAQVAAEKAAUMAAUaCgABH_9JQwWODZIN3grYCpANDkMGAQACAQIE +AAA1A64GAAEAlAUAAQAQAAEACMfDQUkDAABCrwIAAM_QJAIADsNBSAMAAEKsAgAAz9AkAgAOw0FH +AwAAQq8CAADP0CQCACmkA8EsBA1YWFP_Q09MFzAAAhMAAQoABQwABRoKAAEfAAQVAAEKAAUMAAUa +CgABHwAEFQABCgAFDAAFGgoAAR__SUMFjg2SDd4K2AqQDQ5DBgEAAAcACAEEtwEH2gMAAADcAwAB +AP4JAAIA7gMAAwCUDQAEQJYNAAVAmA0ABgCyAwABvgLBBdvHw0HaAAAAyMRBfwIAAMnDQQ4BAADK +xsVC_AAAAAu-AE1PAQAATE8BAAC-AU1NAQAATE0BAAC8AAG7IJtMcAIAALNMkAIAACQBABVDSgMA +AMEEw8VCDAEAAMAEJAEAQ0oDAADGwARC_AAAAAvABEEIAQAAQvwAAAALvMAATE0DAAAkAQBMCAEA +AL4DTU8BAABMTwEAACQBABVDTAMAAMEGw8VCDAEAAMAGJAEAQ0wDAAAppAPaLCMYDSYmAAcKAAg4 +AAwIQDshAAtKABEKAAkMRCsACBI_AAsUWP9DT0wChwEZAAAQAAIPAAAYCQAGGwAAJgABDAAGMQAA +GgkABh0AABQAAQ4AAAwAARoABQ4AATkADA4ADA8AAwgACAkABjAAC0cJAAAMAAEaAAUcAAIbAAgp +AAAcAAEOAAAUAAIIAAUOAAFBAAIIAAUIAAUOAAETLQAIBQAMKgALRQkAABQAARoABRwAAhv_SUMI +_gm0A5gNlA34A5gEnASQBA5DBgEAAAoABAAAoQEKqAUAAAC6CwABAJwNAAIAng0AAwDKBAAEAM4E +AAUAoA0ABgCiDQAHAO4GAAgAEAABAAjBCcAJQZ0CAADHw0EdAQAAyMNBHgEAAMnACSYAABVDUgMA +AMqzwQTABLwAAaPoDMbABHHABEmTBOrus8EEs8EFwAS8AAGj6EjABMWcwQbEwAa1oke7GMAGt5y7 +CJqeorz_AK3BB8AFxsAER53AB528AAGcwQXGwARHwQjGwARxxsAFR0nGwAVxwAhJkwTqssAJwAmz +FUNTAwAAQ1QDAAAppAPlLBETKyYoPzomGUkhd1UhMCYZU_9DT0wTrwEAAwsAABQAAgoABh0AAB4A +AQgABiUAACQAAQgABisAABAAAgoAAAoACiMAABoUAAIIAAYUAAAzCQADCgADHAAEMQAAGgADDhQA +AggABhQAAEEAACYAAggABC0AABwDAAESAAIiAAMOAwACCgMAAh4AAgoABQwABqEBAAAIAwACCAkA +BAoAAxYABjUAABAJAAUTCQADCgkABBEJAAMKAAMqAAQ_AAIKAAAKAAIKAAAK_0lDBqYNvASkDboK +qA26BA5DBgEAAgECBgEAFAOuBgABAJQFAAEAEAABAJYNBQEIx8_QcRNH20IpAQAAwyQBAK5JKaQD +gi0CDVj_Q09MGhAAAhkJAAQWAAEsAAUKAAEJ_0lDAdIEDkMGAZYNAAcABQAAeQeeDQAAAMoEAAEA +zgQAAgCqDQADAPAGAAQA7gYABQAQAAEACMEGwAZBUgMAAMfABkFUAwAAyMAGQVMDAADJs8qzwQTA +BLej6ELEtJ28AAGcyMXDxEedvAABnMnDxEfBBcPEccPFR0nDxXHABUnGw8PER8PFR528AAGcR7sY +wAS7CJqeoK_KkwTqusAGxENUAwAAwAbFQ1MDAADGKKQDiy0PEysrLQ0wKzccJiKAGSss_0NPTAWU +AQADCAAAEAACCgAGGQAAEAACCgAGGQAAEAACCgAGGQAAKAACJwAAGhQAAggABBAAAC8AAAgDAAEI +AAIKAAUbAAAIAwABCAkAAwwABSEAABAJAAQTCQACCgkAAxEJAAIKAAMNAAEiCQMJAAIKCQADDAAF +EAMAAgoAAggAB0MABC0AAgoAAAoABhMAAgoAAAoABhMAAA7_SUMDpg2kDagNDkMGAQAAAgADAgAz +AsoEAAAAEAABAJQNBAGWDQUBCMjbQU8BAABCKQEAAMQkAQAOxEEIAQAAQU0DAADHw7Ol6BDcQikB +AADEJAEADpIA6u0ppAO9LQUNVVg6F_9DT0wTMwACCwABCAAFEgAFCgABCQAEGQAAGgABCgAFCAAG +DAABCAAEEAAARwABLAAFCgABCQAEEv9JQwTSBJ4Fmg2QBA5DBgEAAAkABgEDfAnaAwAAANwDAAEA +_gkAAgDuAwADAJ4NAARArA0ABUCuDQAGQLANAAcAsg0ACECyAwABvgLBCNvHw0HaAAAAyMRBfwIA +AMnDQQ4BAADKJgAAwQQmAADBBSYAAMEGxsVC_AAAAAu-AE1PAQAATE8BAAC-AU1NAQAATE0BAAC8 +gAC7IJtMCwEAALtAuyCbTJACAAAkAQAVQ1gDAADBB8PFQgwBAADAByQBAENYAwAAKaQD0y0YGA0m +JigcHAAFCgAIigEADC5AOzUAC3RY_0NPTAJiGQAAEAACDwAAGAkABhsAACYAAQwABjEAABoJAAYd +AAASAAURAAASAAURAAASAAURAAAaAAEOAAASAAEaAAUOAAFFAAwOAAwLAAMIAAgNDwAINgALUwkA +ABIAARoABRwAAhv_SUMG_gm0A_gDmAScBLANDkMGAQAADQALAQi6BA34BgAAAMoKAAEAygQAAgC0 +DQADANoDAAQAtg0ABQC4DQAGALoNAAcAvA0ACAC-DQAJAMANAAoAwg0ACwAQAAEAsg0IAQjBDMAM +QZ0CAABBHQEAAMfADEEIAQAAQaUCAADIs8nFt6PoLcPFccPFR7sIoMPFR7sYoq8B_wD_AK3DxUe7 +GKDDxUe7CKKvvQCtr0mTAurQwAzDs0fDtke7EKDDtUe7EKKvw7RHw7NHuxCgw7ZHuxCir8O1R8O0 +R7sQoMOzR7sQoq_DtkfDtUe7EKDDtEe7EKKvJggAFUNiAwAAysAMw7VHuxCgw7VHuxCir8OzR70B +rcO0RwH__wAAra_Dtke7EKDDtke7EKKvw7RHvQKtw7VHAf__AACtr8OzR7sQoMOzR7sQoq_DtUe9 +A63DtkcB__8AAK2vw7RHuxCgw7RHuxCir8O2R70ErcOzRwH__wAAra8mCAAVQ2MDAADBBMAMs0Nk +AwAAs8nFt6PoEdtCKQEAAMAMJAEADpMC6uyzycW7CKPoFMAExXETR8bFt526rUeuSZMC6ujEaeAA +AADEQR0BAADBBcAFs0fBBsAFtEfBB8AGuwigwAa7GKKvAf8A_wCtwAa7GKDABrsIoq-9Ba2vwQjA +B7sIoMAHuxiirwH_AP8ArcAHuxigwAe7CKKvvQatr8EJwAi7EKLACb0Hra_BCsAJuxCgwAgB__8A +AK2vwQvABLNxE0fACK5JwAS0cRNHwAquScAEtXETR8AJrknABLZxE0fAC65JwAS3cRNHwAiuScAE +uHETR8AKrknABLlxE0fACa5JwAS6cRNHwAuuSbPJxbej6BHbQikBAADADCQBAA6TAursKaQD4y0t +E0RGJnFdGQ1TU1NiKA2UlJSjLS0mPxkrThkiKyEjra1EVTU1NTU1NTU3Jj8Y_0NPTBPoBAADCwAA +EAACCgAFCgAGIwAAEgACCgAFCAAGIwAAGg8AAQgABBAAAC8JAAIKAwMDCQACDAADDAMJAAIOAAQO +AAZDAwMDCQACDAADDAMJAAIOAAQOAAUrAAQtAAAQAAIKAAAKAAAbCQACCAMJAAIMAAMMAwkAAg4A +BD0JAAIIAwkAAgwAAwwDCQACDgAEPQkAAggDCQACDAADDAMJAAIOAAQ9CQACCAMJAAIMAAMMAwkA +Ag4ADkUAABAAAgoAAAoAABsDCQACDAADDAMJAAIOAAQKAwkAAgoAAxwDCQACCgAHdwMJAAIMAAMM +AwkAAg4ABAoDCQACCgADHAMJAAIKAAd3AwkAAgwAAwwDCQACDgAECgMJAAIKAAMcAwkAAgoAB3cD +CQACDAADDAMJAAIOAAQKAwkAAgoAAxwDCQACCgASfwACCgAACgAGEwAAGg8AAQgABBAAAC8AARQA +BQoAAgkABBIABC0AABoPAAEIAAUQAAAvDgAEDAkDAAEIAAIKGgAELQAACAAGCAAABwAAEgoABxcA +ABYPAAQbAAAWDwAEGwAAEgMDAwACEAADCgMAAhIABA4ABhwDAwMAAhAAAwwDAAISAAQMAAaxAQAA +EgMDAwACEAADCgMAAhIABA4ABhwDAwMAAhAAAwwDAAISAAQMAAaxAQAAEgMAAg4AAwwDAAIKAAY5 +AAASAwACDAADDgMAAgoACTkOAAQMAAQPDgAEDAAEDw4ABAwABA8OAAQMAAQPDgAEDAAEDw4ABAwA +BA8OAAQMAAQPDgAEDAAEDwAAGg8AAQgABBAAAC8AARQABQoAAgkABBL_SUMI0gTGDboKygrEDboE +kATIDQYAAADgH-DvQQYAAAAA4P_vQQYAAAAA4P_vQQYAAAAA4P_vQQYAAAAA4P_vQQYAAADgH-Dv +QQYAAADgH-DvQQYAAAAA4P_vQQ5DBgEAAgMCBgIBqAEFrgYAAQCUBQABALQNAAAAygQAAQAQAAEA +sg0IAZ4NBAEIycVBYgMAAMfbQikBAADFJAEADtyzccOzR8O4R7sQoq7Dtke7EKCuSdy0ccO1R8O6 +R7sQoq7DuEe7EKCuSdy1ccO3R8O0R7sQoq7Duke7EKCuSdy2ccO5R8O2R7sQoq7DtEe7EKCuSbPI +xLej6DncxHHcxEe7CKDcxEe7GKKvAf8A_wCt3MRHuxig3MRHuwiir70Ara9Jz9DEnXETR9zER65J +kwHqxCmkA6kuDA4oPGxsbG0ncV8_F_9DT0wauwEAAhkAABAAAQoABhkAARQABQoAAQkABBMJAAIK +CQACCgMJAAIOAAQMAwkAAgwABU0JAAIKCQACCgMJAAIOAAQMAwkAAgwABU0JAAIKCQACCgMJAAIO +AAQMAwkAAgwABU0JAAIKCQACCgMJAAIOAAQMAwkAAgwABU0AABoPAAEIAAQQAAAvCQACCgMDAwkA +AgwAAwwDCQACDgAEDgAGQwMDAwkAAgwAAwwDCQACDgAEDgAFUQkAARIABQwJ_0lDAtIExA0GAAAA +4B_g70EOQwYBsg0ACQAGAgSPBQm0DQAAANoDAAEAygQAAgDKDQADAMwNAAQAzg0ABQD2BwAGAPgH +AAcAEAABAKwNBQGuDQYBCMEIwAhBYgMAAMfACEFjAwAAyLPJxbsIo-gM28VxxMVHSZMC6vDEs3HE +s0cBTdM0TZ3ACEFkAwAAnbOvScS0ccS0R70AncSzR7Oi27NHs6Kj6AS06gKznbOvScS1ccS1RwE0 +TdM0ncS0R7Oi27RHs6Kj6AS06gKznbOvScS2ccS2RwFN0zRNncS1R7Oi27VHs6Kj6AS06gKznbOv +ScS3ccS3R70BncS2R7Oi27ZHs6Kj6AS06gKznbOvScS4ccS4RwE0TdM0ncS3R7Oi27dHs6Kj6AS0 +6gKznbOvScS5ccS5RwFN0zRNncS4R7Oi27hHs6Kj6AS06gKznbOvScS6ccS6R70CncS5R7Oi27lH +s6Kj6AS06gKznbOvScAIxLpHs6LbukezoqPoBLTqArNDZAMAALPJxbsIo-hUw8VHxMVHncrGAf__ +AACtwQTGuxCiwQXABMAEmrsRosAEwAWanbsPosAFwAWancEGxr0Drcaas6_GAf__AACtxpqzr53B +B9zFccAGwAeuSZMC6qjDs3Hcs0fcuke7EKDcuke7EKKvndy5R7sQoNy5R7sQoq-ds69Jw7Rx3LRH +3LNHuwig3LNHuxiir53cukeds69Jw7Vx3LVH3LRHuxCg3LRHuxCir53cs0e7EKDcs0e7EKKvnbOv +ScO2cdy2R9y1R7sIoNy1R7sYoq-d3LRHnbOvScO3cdy3R9y2R7sQoNy2R7sQoq-d3LVHuxCg3LVH +uxCir52zr0nDuHHcuEfct0e7CKDct0e7GKKvndy2R52zr0nDuXHcuUfcuEe7EKDcuEe7EKKvndy3 +R7sQoNy3R7sQoq-ds69Jw7px3LpH3LlHuwig3LlHuxiir53cuEeds69JKaQDxS4fEystKyYZdpmo +qJmoqJl9Ky0wI4BzMBm8iryKvIq8iv9DT0wFpAYAAwgAABAAAgoABhkAABAAAgoABhkAABoPAAEI +AAUQAAAvCgACCgkAAxIABC0JAAIKAwkAAgoABhoAAgoABgwAA00JAAIKAwkAAgoAAxoDAwkAAg4A +AgoDCgACDgAFCgADCAACDAADiwEJAAIKAwkAAgoABhoDAwkAAg4AAgoDCgACDgAFCgADCAACDAAD +iwEJAAIKAwkAAgoABhoDAwkAAg4AAgoDCgACDgAFCgADCAACDAADiwEJAAIKAwkAAgoAAxoDAwkA +Ag4AAgoDCgACDgAFCgADCAACDAADiwEJAAIKAwkAAgoABhoDAwkAAg4AAgoDCgACDgAFCgADCAAC +DAADiwEJAAIKAwkAAgoABhoDAwkAAg4AAgoDCgACDgAFCgADCAACDAADiwEJAAIKAwkAAgoAAxoD +AwkAAg4AAgoDCgACDgAFCgADCAACDAADiwEAAgoAAAoDCQACDgACCgMKAAIOAAUKAAMIAAZZAAAa +DwABCAAFEAAALwAAEgkAAgoJAAQjAAASAAEKAAgbAAASAAEOAAUfAAASAwMDAwACCgADEAADDAAC +CgAEEAADDAACCgAGbwAAEgMDAwABCgADHAACDAACCgMDAwABCgAGHAACDAAFiwEJAAIKAAIKAAQO +AAQtCQACCgMJAAIKAwMJAAIMAAMMAwkAAg4ABQ4DAwkAAgwAAwwDCQACDgAFEAADowEJAAIKAwkA +AgoDAwkAAgwAAwwDCQACDgAFDgkAAwwAA28JAAIKAwkAAgoDAwkAAgwAAwwDCQACDgAFDgMDCQAC +DAADDAMJAAIOAAUQAAOjAQkAAgoDCQACCgMDCQACDAADDAMJAAIOAAUOCQADDAADbwkAAgoDCQAC +CgMDCQACDAADDAMJAAIOAAUOAwMJAAIMAAMMAwkAAg4ABRAAA6MBCQACCgMJAAIKAwMJAAIMAAMM +AwkAAg4ABQ4JAAMMAANvCQACCgMJAAIKAwMJAAIMAAMMAwkAAg4ABQ4DAwkAAgwAAwwDCQACDgAF +EAADowEJAAIKAwkAAgoDAwkAAgwAAwwDCQACDgAFDgkAAwz_SUMDxg3EDcgNBgAAYJqmaepBBgAA +YJqmaepBBgAAYJqmaepBBgAAAADg_-9BDkMGAQAACQAGAQN8CdoDAAAA3AMAAQD-CQACAO4DAAMA +ng0ABECsDQAFQK4NAAZA0A0ABwCyDQAIQLIDAAG-AsEI28fDQdoAAADIxEF_AgAAycNBDgEAAMom +AADBBCYAAMEFJgAAwQbGxUL8AAAAC74ATU8BAABMTwEAAL4BTU0BAABMTQEAALyAALsgm0wLAQAA +u0C7IJtMkAIAACQBABVDaAMAAMEHw8VCDAEAAMAHJAEAQ2gDAAAppAOBLxcYDSYmKBwcAAUSAAh- +AAwuQDs1AAt0WP9DT0wCYhkAABAAAg8AABgJAAYbAAAmAAEMAAYxAAAaCQAGHQAAEgAFEQAAEgAF +EQAAEgAFEQAAJgABDgAAHgABGgAFDgABXQAMDgAMCwADCAAIDQ8ACE4AC2sJAAAeAAEaAAUcAAIb +_0lDBtAN_gm0A_gDmAScBA5DBgEAAA0ACwEHhQQN-AYAAADKCgABALQNAAIA2gMAAwDKBAAEALYN +AAUAuA0ABgC6DQAHALwNAAgAvg0ACQDADQAKAMINAAsAEAABALINCAEIwQzADEGdAgAAQR0BAADH +wAxBCAEAAEGlAgAAyMAMw7NHw7ZHuxCgw7VHuxCir8O0R8OzR7sQoMO2R7sQoq_DtUfDtEe7EKDD +s0e7EKKvw7ZHw7VHuxCgw7RHuxCiryYIABVDYgMAAMnADMO1R7sQoMO1R7sQoq_Ds0e9AK3DtEcB +__8AAK2vw7ZHuxCgw7ZHuxCir8O0R70BrcO1RwH__wAAra_Ds0e7EKDDs0e7EKKvw7VHvQKtw7ZH +Af__AACtr8O0R7sQoMO0R7sQoq_Dtke9A63Ds0cB__8AAK2vJggAFUNjAwAAysAMs0NkAwAAs8EE +wAS3o-gR20IpAQAAwAwkAQAOkwTq67PBBMAEuwij6BXGwARxE0fFwAS3nbqtR65JkwTq5sRp2gAA +AMRBHQEAAMEFwAWzR8EGwAW0R8EHwAa7CKDABrsYoq8B_wD_AK3ABrsYoMAGuwiir70Era_BCMAH +uwigwAe7GKKvAf8A_wCtwAe7GKDAB7sIoq-9Ba2vwQnACLsQosAJvQatr8EKwAm7EKDACAH__wAA +ra_BC8azcRNHwAiuSca0cRNHwAquSca1cRNHwAmuSca2cRNHwAuuSca3cRNHwAiuSca4cRNHwAqu +Sca5cRNHwAmuSca6cRNHwAuuSbPBBMAEt6PoEdtCKQEAAMAMJAEADpME6usppAOVLykTREYNU1NT +YigNlJSUoygtMD8ZNVMZIishI62tRFUwMDAwMDAwMjA_GP9DT0wTqgQAAwsAABAAAgoABQoABiMA +ABIAAgoABQgABiMAABAAAgoAAAoAABsJAAIIAwkAAgwAAwwDCQACDgAEPQkAAggDCQACDAADDAMJ +AAIOAAQ9CQACCAMJAAIMAAMMAwkAAg4ABD0JAAIIAwkAAgwAAwwDCQACDgAORQAAEAACCgAACgAA +GwMJAAIMAAMMAwkAAg4ABAoDCQACCgADHAMJAAIKAAd3AwkAAgwAAwwDCQACDgAECgMJAAIKAAMc +AwkAAgoAB3cDCQACDAADDAMJAAIOAAQKAwkAAgoAAxwDCQACCgAHdwMJAAIMAAMMAwkAAg4ABAoD +CQACCgADHAMJAAIKABF_AAIKAAAKAAYTAAAaFAACCAAEEAAALwABFAAFCgACCQAEEgAELQAAGhQA +AggABRAAAC8JAAUMCQMAAggAAgoaAAQtAAAIAAYIAAAHAAASCgAHFwAAFg8ABBsAABYPAAQbAAAS +AwMDAAIQAAMKAwACEgAEDgAGHAMDAwACEAADDAMAAhIABAwABrEBAAASAwMDAAIQAAMKAwACEgAE +DgAGHAMDAwACEAADDAMAAhIABAwABrEBAAASAwACDgADDAMAAgoABjkAABIDAAIMAAMOAwACCgAJ +OQkABAwABA8JAAQMAAQPCQAEDAAEDwkABAwABA8JAAQMAAQPCQAEDAAEDwkABAwABA8JAAQMAAQP +AAAaFAACCAAEEAAALwABFAAFCgACCQAEEv9JQwjSBMYNugrKCsQNugSQBMgNBgAAAADg_-9BBgAA +AADg_-9BBgAAAADg_-9BBgAAAADg_-9BBgAAAOAf4O9BBgAAAOAf4O9BBgAAAADg_-9BDkMGAQAC +AwIGAgGoAQWuBgABAJQFAAEAtA0AAADKBAABABAAAQCyDQgBng0EAQjJxUFiAwAAx9tCKQEAAMUk +AQAO3LNxw7NHw7hHuxCirsO2R7sQoK5J3LRxw7VHw7pHuxCirsO4R7sQoK5J3LVxw7dHw7RHuxCi +rsO6R7sQoK5J3LZxw7lHw7ZHuxCirsO0R7sQoK5Js8jEt6PoOdzEcdzER7sIoNzER7sYoq8B_wD_ +AK3cxEe7GKDcxEe7CKKvvQCtr0nP0MSdcRNH3MRHrkmTAerEKaQD1S8MDig8bGxsbSdxXz8X_0NP +TBq7AQACGQAAEAABCgAGGQABFAAFCgABCQAEEwkAAgoJAAIKAwkAAg4ABAwDCQACDAAFTQkAAgoJ +AAIKAwkAAg4ABAwDCQACDAAFTQkAAgoJAAIKAwkAAg4ABAwDCQACDAAFTQkAAgoJAAIKAwkAAg4A +BAwDCQACDAAFTQAAGg8AAQgABBAAAC8JAAIKAwMDCQACDAADDAMJAAIOAAQOAAZDAwMDCQACDAAD +DAMJAAIOAAQOAAVRCQABEgAFDAn_SUMC0gTEDQYAAADgH-DvQQ5DBgGyDQAJAAYCBI8FCbQNAAAA +2gMAAQDKBAACAMoNAAMAzA0ABADODQAFAPYHAAYA-AcABwAQAAEArA0FAa4NBgEIwQjACEFiAwAA +x8AIQWMDAADIs8nFuwij6AzbxXHExUdJkwLq8MSzccSzRwFN0zRNncAIQWQDAACds69JxLRxxLRH +vQCdxLNHs6Lbs0ezoqPoBLTqArOds69JxLVxxLVHATRN0zSdxLRHs6LbtEezoqPoBLTqArOds69J +xLZxxLZHAU3TNE2dxLVHs6LbtUezoqPoBLTqArOds69JxLdxxLdHvQGdxLZHs6LbtkezoqPoBLTq +ArOds69JxLhxxLhHATRN0zSdxLdHs6Lbt0ezoqPoBLTqArOds69JxLlxxLlHAU3TNE2dxLhHs6Lb +uEezoqPoBLTqArOds69JxLpxxLpHvQKdxLlHs6LbuUezoqPoBLTqArOds69JwAjEukezotu6R7Oi +o-gEtOoCs0NkAwAAs8nFuwij6FTDxUfExUedysYB__8AAK3BBMa7EKLBBcAEwASauxGiwATABZqd +uw-iwAXABZqdwQbGvQOtxpqzr8YB__8AAK3GmrOvncEH3MVxwAbAB65JkwLqqMOzcdyzR9y6R7sQ +oNy6R7sQoq-d3LlHuxCg3LlHuxCir52zr0nDtHHctEfcs0e7CKDcs0e7GKKvndy6R52zr0nDtXHc +tUfctEe7EKDctEe7EKKvndyzR7sQoNyzR7sQoq-ds69Jw7Zx3LZH3LVHuwig3LVHuxiir53ctEed +s69Jw7dx3LdH3LZHuxCg3LZHuxCir53ctUe7EKDctUe7EKKvnbOvScO4cdy4R9y3R7sIoNy3R7sY +oq-d3LZHnbOvScO5cdy5R9y4R7sQoNy4R7sQoq-d3LdHuxCg3LdHuxCir52zr0nDunHcukfcuUe7 +CKDcuUe7GKKvndy4R52zr0kppAPxLx8TKy0rJhl2maiomaiomX0rLTAjgHMwGbyKvIq8iryK_0NP +TAWkBgADCAAAEAACCgAGGQAAEAACCgAGGQAAGg8AAQgABRAAAC8KAAIKCQADEgAELQkAAgoDCQAC +CgAGGgACCgAGDAADTQkAAgoDCQACCgADGgMDCQACDgACCgMKAAIOAAUKAAMIAAIMAAOLAQkAAgoD +CQACCgAGGgMDCQACDgACCgMKAAIOAAUKAAMIAAIMAAOLAQkAAgoDCQACCgAGGgMDCQACDgACCgMK +AAIOAAUKAAMIAAIMAAOLAQkAAgoDCQACCgADGgMDCQACDgACCgMKAAIOAAUKAAMIAAIMAAOLAQkA +AgoDCQACCgAGGgMDCQACDgACCgMKAAIOAAUKAAMIAAIMAAOLAQkAAgoDCQACCgAGGgMDCQACDgAC +CgMKAAIOAAUKAAMIAAIMAAOLAQkAAgoDCQACCgADGgMDCQACDgACCgMKAAIOAAUKAAMIAAIMAAOL +AQACCgAACgMJAAIOAAIKAwoAAg4ABQoAAwgABlkAABoPAAEIAAUQAAAvAAASCQACCgkABCMAABIA +AQoACBsAABIAAQ4ABR8AABIDAwMDAAIKAAMQAAMMAAIKAAQQAAMMAAIKAAZvAAASAwMDAAEKAAMc +AAIMAAIKAwMDAAEKAAYcAAIMAAWLAQkAAgoAAgoABA4ABC0JAAIKAwkAAgoDAwkAAgwAAwwDCQAC +DgAFDgMDCQACDAADDAMJAAIOAAUQAAOjAQkAAgoDCQACCgMDCQACDAADDAMJAAIOAAUOCQADDAAD +bwkAAgoDCQACCgMDCQACDAADDAMJAAIOAAUOAwMJAAIMAAMMAwkAAg4ABRAAA6MBCQACCgMJAAIK +AwMJAAIMAAMMAwkAAg4ABQ4JAAMMAANvCQACCgMJAAIKAwMJAAIMAAMMAwkAAg4ABQ4DAwkAAgwA +AwwDCQACDgAFEAADowEJAAIKAwkAAgoDAwkAAgwAAwwDCQACDgAFDgkAAwwAA28JAAIKAwkAAgoD +AwkAAgwAAwwDCQACDgAFDgMDCQACDAADDAMJAAIOAAUQAAOjAQkAAgoDCQACCgMDCQACDAADDAMJ +AAIOAAUOCQADDP9JQwPGDcQNyA0GAABgmqZp6kEGAABgmqZp6kEGAABgmqZp6kEGAAAAAOD_70E= diff --git a/app/src/main/assets/js/lib/dayjs.min.js b/app/src/main/assets/js/lib/dayjs.min.js deleted file mode 100644 index 4acc24c630..0000000000 --- a/app/src/main/assets/js/lib/dayjs.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){"use strict";var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",f="month",h="quarter",c="year",d="date",$="Invalid Date",l=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},g={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(v=i),i||!r&&v},w=function(t,e){if(p(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=g;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match(l);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===$)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t)= 0x0000)); + } + + return { + encode: function(str) { + return str.replace(/./g, function(a) { + var code = a.charCodeAt(0); + if (isAscii(code)) { + return encodeURIComponent(a); + } else { + var key = code.toString(16); + if (key.length != 4) key = ('000' + key).match(/....$/)[0]; + return U2Ghash[key] || a; + } + }); + }, + decode: function(str) { + return str.replace(/%[0-9A-F]{2}%[0-9A-F]{2}/g, function(a) { + if (a in G2Uhash) { + return String.fromCharCode('0x' + G2Uhash[a]); + } else { + return a; + } + }).replace(/%[\w]{2}/g, function(a) { + return decodeURIComponent(a); + + }); + } + }; +} \ No newline at end of file diff --git a/app/src/main/assets/js/lib/net.js b/app/src/main/assets/js/lib/net.js new file mode 100644 index 0000000000..adf63a4dc3 --- /dev/null +++ b/app/src/main/assets/js/lib/net.js @@ -0,0 +1,17 @@ +let req = (url, options) => http(url, Object.assign({ + async: false +}, options)); + +function http(url, options = {}) { + if (options?.async === false) return _http(url, options) + return new Promise(resolve => _http(url, Object.assign({ + complete: res => resolve(res) + }, options))).catch(err => { + console.error(err.name, err.message, err.stack) + return { + ok: false, + status: 500, + url + } + }) +}; \ No newline at end of file diff --git a/app/src/main/assets/js/lib/similarity.js b/app/src/main/assets/js/lib/similarity.js new file mode 100644 index 0000000000..3dfc497d5c --- /dev/null +++ b/app/src/main/assets/js/lib/similarity.js @@ -0,0 +1 @@ +function compareTwoStrings(first,second){if((first=first.replace(/\s+/g,""))===(second=second.replace(/\s+/g,"")))return 1;if(first.length<2||second.length<2)return 0;var firstBigrams=new Map;for(let i=0;iratings[bestMatchIndex].rating&&(bestMatchIndex=i)}return{ratings:ratings,bestMatch:ratings[bestMatchIndex],bestMatchIndex:bestMatchIndex}}function lcs(str1,str2){if(!str1||!str2)return{length:0,sequence:"",offset:0};for(var sequence="",str1Length=str1.length,str2Length=str2.length,num=new Array(str1Length),maxlen=0,lastSubsBegin=0,i=0;imaxlen&&(maxlen=num[i][j],lastSubsBegin===(thisSubsBegin=i-num[i][j]+1)?sequence+=str1[i]:(lastSubsBegin=thisSubsBegin,sequence="",sequence+=str1.substr(lastSubsBegin,i+1-lastSubsBegin))));return{length:maxlen,sequence:sequence,offset:thisSubsBegin}}function findBestLCS(mainString,targetStrings){var results=[];let bestMatchIndex=0;for(let i=0;iresults[bestMatchIndex].lcs.length&&(bestMatchIndex=i)}return{allLCS:results,bestMatch:results[bestMatchIndex],bestMatchIndex:bestMatchIndex}}export{compareTwoStrings,findBestMatch,findBestLCS}; \ No newline at end of file diff --git a/app/src/main/assets/js/lib/underscore-esm-min.js b/app/src/main/assets/js/lib/underscore-esm-min.js deleted file mode 100644 index 1e1ebb9f83..0000000000 --- a/app/src/main/assets/js/lib/underscore-esm-min.js +++ /dev/null @@ -1,5 +0,0 @@ -// Underscore.js 1.13.4 -// https://underscorejs.org -// (c) 2009-2022 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors -// Underscore may be freely distributed under the MIT license. -var VERSION="1.13.4",root="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||Function("return this")()||{},ArrayProto=Array.prototype,ObjProto=Object.prototype,SymbolProto="undefined"!=typeof Symbol?Symbol.prototype:null,push=ArrayProto.push,slice=ArrayProto.slice,toString=ObjProto.toString,hasOwnProperty=ObjProto.hasOwnProperty,supportsArrayBuffer="undefined"!=typeof ArrayBuffer,supportsDataView="undefined"!=typeof DataView,nativeIsArray=Array.isArray,nativeKeys=Object.keys,nativeCreate=Object.create,nativeIsView=supportsArrayBuffer&&ArrayBuffer.isView,_isNaN=isNaN,_isFinite=isFinite,hasEnumBug=!{toString:null}.propertyIsEnumerable("toString"),nonEnumerableProps=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],MAX_ARRAY_INDEX=Math.pow(2,53)-1;function restArguments(e,t){return t=null==t?e.length-1:+t,function(){for(var n=Math.max(arguments.length-t,0),r=Array(n),i=0;i=0&&n<=MAX_ARRAY_INDEX}}function shallowProperty(e){return function(t){return null==t?void 0:t[e]}}var getByteLength=shallowProperty("byteLength"),isBufferLike=createSizePropertyCheck(getByteLength),typedArrayPattern=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;function isTypedArray(e){return nativeIsView?nativeIsView(e)&&!isDataView$1(e):isBufferLike(e)&&typedArrayPattern.test(toString.call(e))}var isTypedArray$1=supportsArrayBuffer?isTypedArray:constant(!1),getLength=shallowProperty("length");function emulatedSet(e){for(var t={},n=e.length,r=0;r":">",'"':""","'":"'","`":"`"},_escape=createEscaper(escapeMap),unescapeMap=invert(escapeMap),_unescape=createEscaper(unescapeMap),templateSettings=_$1.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},noMatch=/(.)^/,escapes={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},escapeRegExp=/\\|'|\r|\n|\u2028|\u2029/g;function escapeChar(e){return"\\"+escapes[e]}var bareIdentifier=/^\s*(\w|\$)+\s*$/;function template(e,t,n){!t&&n&&(t=n),t=defaults({},t,_$1.templateSettings);var r=RegExp([(t.escape||noMatch).source,(t.interpolate||noMatch).source,(t.evaluate||noMatch).source].join("|")+"|$","g"),i=0,a="__p+='";e.replace(r,(function(t,n,r,u,o){return a+=e.slice(i,o).replace(escapeRegExp,escapeChar),i=o+t.length,n?a+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?a+="'+\n((__t=("+r+"))==null?'':__t)+\n'":u&&(a+="';\n"+u+"\n__p+='"),t})),a+="';\n";var u,o=t.variable;if(o){if(!bareIdentifier.test(o))throw new Error("variable is not a bare identifier: "+o)}else a="with(obj||{}){\n"+a+"}\n",o="obj";a="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{u=new Function(o,"_",a)}catch(e){throw e.source=a,e}var s=function(e){return u.call(this,e,_$1)};return s.source="function("+o+"){\n"+a+"}",s}function result(e,t,n){var r=(t=toPath(t)).length;if(!r)return isFunction$1(n)?n.call(e):n;for(var i=0;i1)flatten$1(o,t-1,n,r),i=r.length;else for(var s=0,c=o.length;st?(r&&(clearTimeout(r),r=null),o=c,u=e.apply(i,a),r||(i=a=null)):r||!1===n.trailing||(r=setTimeout(s,f)),u};return c.cancel=function(){clearTimeout(r),o=0,r=i=a=null},c}function debounce(e,t,n){var r,i,a,u,o,s=function(){var c=now()-i;t>c?r=setTimeout(s,t-c):(r=null,n||(u=e.apply(o,a)),r||(a=o=null))},c=restArguments((function(c){return o=this,a=c,i=now(),r||(r=setTimeout(s,t),n&&(u=e.apply(o,a))),u}));return c.cancel=function(){clearTimeout(r),r=a=o=null},c}function wrap(e,t){return partial(t,e)}function negate(e){return function(){return!e.apply(this,arguments)}}function compose(){var e=arguments,t=e.length-1;return function(){for(var n=t,r=e[t].apply(this,arguments);n--;)r=e[n].call(this,r);return r}}function after(e,t){return function(){if(--e<1)return t.apply(this,arguments)}}function before(e,t){var n;return function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=null),n}}var once=partial(before,2);function findKey(e,t,n){t=cb(t,n);for(var r,i=keys(e),a=0,u=i.length;a0?0:i-1;a>=0&&a0?u=a>=0?a:Math.max(a+o,u):o=a>=0?Math.min(a+1,o):a+o+1;else if(n&&a&&o)return r[a=n(r,i)]===i?a:-1;if(i!=i)return(a=t(slice.call(r,u,o),isNaN$1))>=0?a+u:-1;for(a=e>0?u:o-1;a>=0&&a0?0:u-1;for(i||(r=t[a?a[o]:o],o+=e);o>=0&&o=3;return t(e,optimizeCb(n,i,4),r,a)}}var reduce=createReduce(1),reduceRight=createReduce(-1);function filter(e,t,n){var r=[];return t=cb(t,n),each(e,(function(e,n,i){t(e,n,i)&&r.push(e)})),r}function reject(e,t,n){return filter(e,negate(cb(t)),n)}function every(e,t,n){t=cb(t,n);for(var r=!isArrayLike(e)&&keys(e),i=(r||e).length,a=0;a=0}var invoke=restArguments((function(e,t,n){var r,i;return isFunction$1(t)?i=t:(t=toPath(t),r=t.slice(0,-1),t=t[t.length-1]),map(e,(function(e){var a=i;if(!a){if(r&&r.length&&(e=deepGet(e,r)),null==e)return;a=e[t]}return null==a?a:a.apply(e,n)}))}));function pluck(e,t){return map(e,property(t))}function where(e,t){return filter(e,matcher(t))}function max(e,t,n){var r,i,a=-1/0,u=-1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var o=0,s=(e=isArrayLike(e)?e:values(e)).length;oa&&(a=r);else t=cb(t,n),each(e,(function(e,n,r){((i=t(e,n,r))>u||i===-1/0&&a===-1/0)&&(a=e,u=i)}));return a}function min(e,t,n){var r,i,a=1/0,u=1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var o=0,s=(e=isArrayLike(e)?e:values(e)).length;or||void 0===n)return 1;if(n1&&(r=optimizeCb(r,t[1])),t=allKeys(e)):(r=keyInObj,t=flatten$1(t,!1,!1),e=Object(e));for(var i=0,a=t.length;i1&&(n=t[1])):(t=map(flatten$1(t,!1,!1),String),r=function(e,n){return!contains(t,n)}),pick(e,r,n)}));function initial(e,t,n){return slice.call(e,0,Math.max(0,e.length-(null==t||n?1:t)))}function first(e,t,n){return null==e||e.length<1?null==t||n?void 0:[]:null==t||n?e[0]:initial(e,e.length-t)}function rest(e,t,n){return slice.call(e,null==t||n?1:t)}function last(e,t,n){return null==e||e.length<1?null==t||n?void 0:[]:null==t||n?e[e.length-1]:rest(e,Math.max(0,e.length-t))}function compact(e){return filter(e,Boolean)}function flatten(e,t){return flatten$1(e,t,!1)}var difference=restArguments((function(e,t){return t=flatten$1(t,!0,!0),filter(e,(function(e){return!contains(t,e)}))})),without=restArguments((function(e,t){return difference(e,t)}));function uniq(e,t,n,r){isBoolean(t)||(r=n,n=t,t=!1),null!=n&&(n=cb(n,r));for(var i=[],a=[],u=0,o=getLength(e);u>>0;if(typeof callback!=="function"){throw new TypeError(callback+' is not a function');}if(arguments.length>1){T=thisArg}k=0;while(k0){s+='&'}if(param[1]===null){s+=param[0]}else{s+=param[0];s+='=';if(typeof param[1]!=='undefined'){s+=encodeURIComponent(param[1])}}}return s.length>0?'?'+s:s};Uri.prototype.getQueryParamValue=function(key){var param,i,l;for(i=0,l=this.queryPairs.length;i0){this.queryPairs.push([key,val])}return this};Uri.prototype.hasQueryParam=function(key){var i,len=this.queryPairs.length;for(i=0;i=0){this.deleteQueryParam(key,decode(oldVal)).addQueryParam(key,newVal,index)}}else{for(i=0;i spiders = new ConcurrentHashMap<>(); + private static ConcurrentHashMap spiders = new ConcurrentHashMap<>(); + private static ConcurrentHashMap> classs = new ConcurrentHashMap<>(); + + public static void load() { + for (Spider spider : spiders.values()){ + spider.cancelByTag(); + spider.destroy(); + } + spiders.clear(); + classs.clear(); + } + + public static void stopAll() { + for (Spider spider : spiders.values()){ + spider.cancelByTag(); + } + } + + private boolean loadClassLoader(String jar, String key) { + boolean success = false; + Class classInit = null; + try { + File cacheDir = new File(App.getInstance().getCacheDir().getAbsolutePath() + "/catvod_jsapi"); + if (!cacheDir.exists()) + cacheDir.mkdirs(); + DexClassLoader classLoader = new DexClassLoader(jar, cacheDir.getAbsolutePath(), null, App.getInstance().getClassLoader()); + // make force wait here, some device async dex load + int count = 0; + do { + try { + classInit = classLoader.loadClass("com.github.catvod.js.Method"); + if (classInit != null) { + System.out.println("自定义jsapi加载成功!"); + success = true; + break; + } + Thread.sleep(200); + } catch (Throwable th) { + th.printStackTrace(); + } + count++; + } while (count < 5); + + if (success) { + classs.put(key, classInit); + } + } catch (Throwable th) { + th.printStackTrace(); + } + return success; + } + + private Class loadJarInternal(String jar, String md5, String key) { + if (classs.contains(key)) + return classs.get(key); + File cache = new File(App.getInstance().getFilesDir().getAbsolutePath() + "/" + key + ".jar"); + if (!md5.isEmpty()) { + if (cache.exists() && MD5.getFileMd5(cache).equalsIgnoreCase(md5)) { + loadClassLoader(cache.getAbsolutePath(), key); + return classs.get(key); + } + } + try { + Response response = OkGo.get(jar).execute(); + InputStream is = response.body().byteStream(); + OutputStream os = new FileOutputStream(cache); + try { + byte[] buffer = new byte[2048]; + int length; + while ((length = is.read(buffer)) > 0) { + os.write(buffer, 0, length); + } + } finally { + try { + is.close(); + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + loadClassLoader(cache.getAbsolutePath(), key); + return classs.get(key); + } catch (Throwable e) { + e.printStackTrace(); + } + return null; + } + private volatile String recentJarKey = ""; - public Spider getSpider(String key, String cls, String ext, String jar) { + + public Spider getSpider(String key, String api, String ext, String jar) { + Class classLoader = null; + if (!jar.isEmpty()) { + String[] urls = jar.split(";md5;"); + String jarUrl = urls[0]; + String jarKey = MD5.string2MD5(jarUrl); + String jarMd5 = urls.length > 1 ? urls[1].trim() : ""; + classLoader = loadJarInternal(jarUrl, jarMd5, jarKey); + } + recentJarKey = key; if (spiders.containsKey(key)) return spiders.get(key); try { - SpiderJS sp = new SpiderJS(key, cls, ext); + Spider sp = new JsSpider(key, api, classLoader); sp.init(App.getInstance(), ext); spiders.put(key, sp); return sp; } catch (Throwable th) { th.printStackTrace(); + LOG.e("QuJS", th); } return new SpiderNull(); } + + public Object[] proxyInvoke(Map params) { + try { + Spider proxyFun = spiders.get(recentJarKey); + if (proxyFun != null) { + return proxyFun.proxyLocal(params); + } + } catch (Throwable th) { + LOG.e("proxyInvoke", th); + } + return null; + } } diff --git a/app/src/main/java/com/github/catvod/crawler/Spider.java b/app/src/main/java/com/github/catvod/crawler/Spider.java index 338837444c..0f374c7e51 100644 --- a/app/src/main/java/com/github/catvod/crawler/Spider.java +++ b/app/src/main/java/com/github/catvod/crawler/Spider.java @@ -1,113 +1,67 @@ package com.github.catvod.crawler; import android.content.Context; - import com.github.tvbox.osc.util.OkGoHelper; - -import org.json.JSONObject; - +import com.github.tvbox.osc.util.js.Connect; import java.util.HashMap; import java.util.List; - +import java.util.Map; import okhttp3.Dns; public abstract class Spider { - public static JSONObject empty = new JSONObject(); + public void init(Context context) throws Exception {} - protected static Context mContext; - - public void init(Context context) { - mContext = context; + public void init(Context context, String extend) throws Exception { + init(context); } - public void init(Context context, String extend) { - init(context); + public String homeContent(boolean filter) throws Exception { + return ""; } - /** - * 首页数据内容 - * - * @param filter 是否开启筛选 - * @return - */ - public String homeContent(boolean filter) { + public String homeVideoContent() throws Exception { return ""; } - /** - * 首页最近更新数据 如果上面的homeContent中不包含首页最近更新视频的数据 可以使用这个接口返回 - * - * @return - */ - public String homeVideoContent() { + public String categoryContent(String tid, String pg, boolean filter, HashMap < String, String > extend) throws Exception { return ""; } - /** - * 分类数据 - * - * @param tid - * @param pg - * @param filter - * @param extend - * @return - */ - public String categoryContent(String tid, String pg, boolean filter, HashMap extend) { + public String detailContent(List < String > ids) throws Exception { return ""; } - /** - * 详情数据 - * - * @param ids - * @return - */ - public String detailContent(List ids) { + public String searchContent(String key, boolean quick) throws Exception { return ""; } - /** - * 搜索数据内容 - * - * @param key - * @param quick - * @return - */ - public String searchContent(String key, boolean quick) { + public String searchContent(String key, boolean quick, String pg) throws Exception { return ""; } - /** - * 播放信息 - * - * @param flag - * @param id - * @return - */ - public String playerContent(String flag, String id, List vipFlags) { + public String playerContent(String flag, String id, List < String > vipFlags) throws Exception { return ""; } - /** - * webview解析时使用 可自定义判断当前加载的 url 是否是视频 - * - * @param url - * @return - */ - public boolean isVideoFormat(String url) { + public boolean manualVideoCheck() throws Exception { return false; } - /** - * 是否手动检测webview中加载的url - * - * @return - */ - public boolean manualVideoCheck() { + public boolean isVideoFormat(String url) throws Exception { return false; } + public Object[] proxyLocal(Map < String, String > params) throws Exception { + return null; + } + + public void cancelByTag() { + + } + + public void destroy() {} + public static Dns safeDns() { return OkGoHelper.dnsOverHttps; } diff --git a/app/src/main/java/com/github/catvod/net/OkHttp.java b/app/src/main/java/com/github/catvod/net/OkHttp.java new file mode 100644 index 0000000000..25a185340d --- /dev/null +++ b/app/src/main/java/com/github/catvod/net/OkHttp.java @@ -0,0 +1,79 @@ +package com.github.catvod.net; + +import android.util.ArrayMap; + +import com.github.tvbox.osc.util.OkGoHelper; +import com.github.tvbox.osc.util.urlhttp.BrotliInterceptor; + +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.TimeUnit; + +import okhttp3.Call; +import okhttp3.Dns; +import okhttp3.Headers; +import okhttp3.HttpUrl; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.dnsoverhttps.DnsOverHttps; + +public class OkHttp { + + private static final int TIMEOUT = 30 * 1000; + + private OkHttpClient client; + private OkHttpClient noRedirect; + + private static class Loader { + static volatile OkHttp INSTANCE = new OkHttp(); + } + + public static OkHttp get() { + return Loader.INSTANCE; + } + + public static OkHttpClient client() { + if (get().client != null) return get().client; + return get().client = client(TIMEOUT); + } + + public static OkHttpClient noRedirect() { + if (get().noRedirect != null) return get().noRedirect; + return get().noRedirect = client().newBuilder().followRedirects(false).followSslRedirects(false).build(); + } + + public static Dns dns() { + return OkGoHelper.dnsOverHttps != null ? OkGoHelper.dnsOverHttps : Dns.SYSTEM; + } + + public static OkHttpClient client(int timeout) { + return new OkHttpClient.Builder().connectionSpecs(OkGoHelper.getConnectionSpec()).addInterceptor(new BrotliInterceptor()).connectTimeout(timeout, TimeUnit.MILLISECONDS).readTimeout(timeout, TimeUnit.MILLISECONDS).writeTimeout(timeout, TimeUnit.MILLISECONDS).dns(dns()).hostnameVerifier(SSLSocketFactoryCompat.hostnameVerifier).sslSocketFactory(new SSLSocketFactoryCompat(), SSLSocketFactoryCompat.trustAllCert).build(); + } + + public static Call newCall(String url) { + return client().newCall(new Request.Builder().url(url).build()); + } + + public static Call newCall(OkHttpClient client, String url) { + return client.newCall(new Request.Builder().url(url).build()); + } + + public static Call newCall(String url, Headers headers) { + return client().newCall(new Request.Builder().url(url).headers(headers).build()); + } + + public static Call newCall(String url, ArrayMap params) { + return client().newCall(new Request.Builder().url(buildUrl(url, params)).build()); + } + + public static Call newCall(OkHttpClient client, String url, RequestBody body) { + return client.newCall(new Request.Builder().url(url).post(body).build()); + } + + private static HttpUrl buildUrl(String url, ArrayMap params) { + HttpUrl.Builder builder = Objects.requireNonNull(HttpUrl.parse(url)).newBuilder(); + for (Map.Entry entry : params.entrySet()) builder.addQueryParameter(entry.getKey(), entry.getValue()); + return builder.build(); + } +} diff --git a/app/src/main/java/com/github/catvod/net/SSLSocketFactoryCompat.java b/app/src/main/java/com/github/catvod/net/SSLSocketFactoryCompat.java new file mode 100644 index 0000000000..7a6a2f30a4 --- /dev/null +++ b/app/src/main/java/com/github/catvod/net/SSLSocketFactoryCompat.java @@ -0,0 +1,122 @@ +package com.github.catvod.net; + +import org.conscrypt.Conscrypt; + +import java.io.IOException; +import java.net.InetAddress; +import java.net.Socket; +import java.security.GeneralSecurityException; +import java.security.Provider; +import java.security.Security; +import java.security.cert.X509Certificate; +import java.util.LinkedList; +import java.util.List; + +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocket; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.X509TrustManager; + +public class SSLSocketFactoryCompat extends SSLSocketFactory { + + public static final HostnameVerifier hostnameVerifier = (hostname, session) -> true; + + public static final X509TrustManager trustAllCert = new X509TrustManager() { + @Override + public void checkClientTrusted(X509Certificate[] chain, String authType) { + } + + @Override + public void checkServerTrusted(X509Certificate[] chain, String authType) { + } + + @Override + public X509Certificate[] getAcceptedIssuers() { + return new X509Certificate[]{}; + } + }; + + static String[] protocols = null; + static String[] cipherSuites = null; + + static { + try { + SSLSocket socket = (SSLSocket) SSLSocketFactory.getDefault().createSocket(); + if (socket != null) { + List protocols = new LinkedList<>(); + for (String protocol : socket.getSupportedProtocols()) if (!protocol.toUpperCase().contains("SSL")) protocols.add(protocol); + SSLSocketFactoryCompat.protocols = protocols.toArray(new String[protocols.size()]); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + private final SSLSocketFactory defaultFactory; + + public SSLSocketFactoryCompat() { + try { + Provider provider = Conscrypt.newProvider(); + Security.insertProviderAt(provider, 1); + SSLContext sslContext = SSLContext.getInstance("TLS", provider); + sslContext.init(null, new X509TrustManager[]{trustAllCert}, null); + defaultFactory = sslContext.getSocketFactory(); + HttpsURLConnection.setDefaultSSLSocketFactory(defaultFactory); + } catch (GeneralSecurityException e) { + throw new AssertionError(); + } + } + + private void upgradeTLS(SSLSocket ssl) { + if (protocols != null) { + ssl.setEnabledProtocols(protocols); + } + } + + @Override + public String[] getDefaultCipherSuites() { + return cipherSuites; + } + + @Override + public String[] getSupportedCipherSuites() { + return cipherSuites; + } + + @Override + public Socket createSocket(Socket s, String host, int port, boolean autoClose) throws IOException { + Socket ssl = defaultFactory.createSocket(s, host, port, autoClose); + if (ssl instanceof SSLSocket) upgradeTLS((SSLSocket) ssl); + return ssl; + } + + @Override + public Socket createSocket(String host, int port) throws IOException { + Socket ssl = defaultFactory.createSocket(host, port); + if (ssl instanceof SSLSocket) upgradeTLS((SSLSocket) ssl); + return ssl; + } + + @Override + public Socket createSocket(String host, int port, InetAddress localHost, int localPort) throws IOException { + Socket ssl = defaultFactory.createSocket(host, port, localHost, localPort); + if (ssl instanceof SSLSocket) upgradeTLS((SSLSocket) ssl); + return ssl; + } + + @Override + public Socket createSocket(InetAddress host, int port) throws IOException { + Socket ssl = defaultFactory.createSocket(host, port); + if (ssl instanceof SSLSocket) upgradeTLS((SSLSocket) ssl); + return ssl; + } + + @Override + public Socket createSocket(InetAddress address, int port, InetAddress localAddress, int localPort) throws IOException { + Socket ssl = defaultFactory.createSocket(address, port, localAddress, localPort); + if (ssl instanceof SSLSocket) upgradeTLS((SSLSocket) ssl); + return ssl; + } +} diff --git a/app/src/main/java/com/github/tvbox/osc/base/App.java b/app/src/main/java/com/github/tvbox/osc/base/App.java index de90400e8f..e7cdf8eb67 100644 --- a/app/src/main/java/com/github/tvbox/osc/base/App.java +++ b/app/src/main/java/com/github/tvbox/osc/base/App.java @@ -2,7 +2,7 @@ import android.app.Activity; import androidx.multidex.MultiDexApplication; - +import com.github.catvod.crawler.JsLoader; import com.github.tvbox.osc.bean.VodInfo; import com.github.tvbox.osc.callback.EmptyCallback; import com.github.tvbox.osc.callback.LoadingCallback; @@ -15,11 +15,11 @@ import com.github.tvbox.osc.util.LOG; import com.github.tvbox.osc.util.OkGoHelper; import com.github.tvbox.osc.util.PlayerHelper; -import com.github.tvbox.osc.util.js.JSEngine; + import com.kingja.loadsir.core.LoadSir; import com.orhanobut.hawk.Hawk; import com.p2p.P2PClass; - +import com.whl.quickjs.android.QuickJSLoader; import me.jessyan.autosize.AutoSizeConfig; import me.jessyan.autosize.unit.Subunits; @@ -56,7 +56,7 @@ public void onCreate() { .setSupportSP(false) .setSupportSubunits(Subunits.MM); PlayerHelper.init(); - JSEngine.getInstance().create(); + QuickJSLoader.init(); FileUtils.cleanPlayerCache(); } @@ -76,7 +76,7 @@ public static App getInstance() { @Override public void onTerminate() { super.onTerminate(); - JSEngine.getInstance().destroy(); + JsLoader.load(); } @@ -110,4 +110,4 @@ public void setDashData(String data) { public String getDashData() { return dashData; } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/github/tvbox/osc/event/LogEvent.java b/app/src/main/java/com/github/tvbox/osc/event/LogEvent.java new file mode 100644 index 0000000000..7a179afd44 --- /dev/null +++ b/app/src/main/java/com/github/tvbox/osc/event/LogEvent.java @@ -0,0 +1,17 @@ +package com.github.tvbox.osc.event; + +public class LogEvent { + private String text; + + public LogEvent(String str) { + this.text = str; + } + + public String getText() { + return this.text; + } + + public void setText(String str) { + this.text = str; + } +} diff --git a/app/src/main/java/com/github/tvbox/osc/ui/activity/FastSearchActivity.java b/app/src/main/java/com/github/tvbox/osc/ui/activity/FastSearchActivity.java index 241da99406..a5c18f2eaa 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/activity/FastSearchActivity.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/activity/FastSearchActivity.java @@ -13,6 +13,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.chad.library.adapter.base.BaseQuickAdapter; +import com.github.catvod.crawler.JsLoader; import com.github.tvbox.osc.R; import com.github.tvbox.osc.api.ApiConfig; import com.github.tvbox.osc.base.BaseActivity; @@ -26,7 +27,7 @@ import com.github.tvbox.osc.ui.adapter.SearchWordAdapter; import com.github.tvbox.osc.util.FastClickCheckUtil; import com.github.tvbox.osc.util.SearchHelper; -import com.github.tvbox.osc.util.js.JSEngine; + import com.github.tvbox.osc.viewmodel.SourceViewModel; import com.google.gson.Gson; import com.google.gson.JsonArray; @@ -196,7 +197,7 @@ public void onItemClick(BaseQuickAdapter adapter, View view, int position) { if (searchExecutorService != null) { pauseRunnable = searchExecutorService.shutdownNow(); searchExecutorService = null; - JSEngine.getInstance().stopAll(); + JsLoader.load(); } } catch (Throwable th) { th.printStackTrace(); @@ -223,7 +224,7 @@ public void onItemClick(BaseQuickAdapter adapter, View view, int position) { if (searchExecutorService != null) { pauseRunnable = searchExecutorService.shutdownNow(); searchExecutorService = null; - JSEngine.getInstance().stopAll(); + JsLoader.load(); } } catch (Throwable th) { th.printStackTrace(); @@ -382,7 +383,7 @@ private void searchResult() { if (searchExecutorService != null) { searchExecutorService.shutdownNow(); searchExecutorService = null; - JSEngine.getInstance().stopAll(); + JsLoader.load(); } } catch (Throwable th) { th.printStackTrace(); @@ -514,11 +515,11 @@ protected void onDestroy() { if (searchExecutorService != null) { searchExecutorService.shutdownNow(); searchExecutorService = null; - JSEngine.getInstance().stopAll(); + JsLoader.load(); } } catch (Throwable th) { th.printStackTrace(); } EventBus.getDefault().unregister(this); } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java b/app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java index 83b4f5bde6..0e095fd529 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java @@ -1343,14 +1343,18 @@ boolean checkVideoFormat(String url) { if (url.contains("url=http") || url.contains(".html")) { return false; } - if (sourceBean.getType() == 3) { - Spider sp = ApiConfig.get().getCSP(sourceBean); - if (sp != null && sp.manualVideoCheck()) - return sp.isVideoFormat(url); + try { + if (sourceBean.getType() == 3) { + Spider sp = ApiConfig.get().getCSP(sourceBean); + if (sp != null && sp.manualVideoCheck()) + return sp.isVideoFormat(url); + } + } catch (Exception e) { + e.printStackTrace(); } return VideoParseRuler.checkIsVideoForParse(webUrl, url); } - + class MyWebView extends WebView { public MyWebView(@NonNull Context context) { super(context); @@ -1738,5 +1742,4 @@ public void onReceivedSslError(XWalkView view, ValueCallback callback, callback.onReceiveValue(true); } } - } diff --git a/app/src/main/java/com/github/tvbox/osc/ui/activity/SearchActivity.java b/app/src/main/java/com/github/tvbox/osc/ui/activity/SearchActivity.java index 8031af1555..e63cfdd9d6 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/activity/SearchActivity.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/activity/SearchActivity.java @@ -20,6 +20,7 @@ import androidx.lifecycle.ViewModelProvider; import com.chad.library.adapter.base.BaseQuickAdapter; +import com.github.catvod.crawler.JsLoader; import com.github.tvbox.osc.R; import com.github.tvbox.osc.api.ApiConfig; import com.github.tvbox.osc.base.BaseActivity; @@ -39,7 +40,7 @@ import com.github.tvbox.osc.util.HawkConfig; import com.github.tvbox.osc.util.LOG; import com.github.tvbox.osc.util.SearchHelper; -import com.github.tvbox.osc.util.js.JSEngine; + import com.github.tvbox.osc.viewmodel.SourceViewModel; import com.google.gson.JsonArray; import com.google.gson.JsonElement; @@ -197,7 +198,7 @@ public void onItemClick(BaseQuickAdapter adapter, View view, int position) { if (searchExecutorService != null) { pauseRunnable = searchExecutorService.shutdownNow(); searchExecutorService = null; - JSEngine.getInstance().stopAll(); + JsLoader.load(); } } catch (Throwable th) { th.printStackTrace(); @@ -463,7 +464,7 @@ private void searchResult() { if (searchExecutorService != null) { searchExecutorService.shutdownNow(); searchExecutorService = null; - JSEngine.getInstance().stopAll(); + JsLoader.load(); } } catch (Throwable th) { th.printStackTrace(); @@ -552,11 +553,11 @@ protected void onDestroy() { if (searchExecutorService != null) { searchExecutorService.shutdownNow(); searchExecutorService = null; - JSEngine.getInstance().stopAll(); + JsLoader.load(); } } catch (Throwable th) { th.printStackTrace(); } EventBus.getDefault().unregister(this); } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/github/tvbox/osc/ui/fragment/GridFragment.java b/app/src/main/java/com/github/tvbox/osc/ui/fragment/GridFragment.java index fcbb6aeca5..b6fec35671 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/fragment/GridFragment.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/fragment/GridFragment.java @@ -51,6 +51,7 @@ public class GridFragment extends BaseLazyFragment { private boolean isLoad = false; private boolean isTop = true; private View focusedView = null; + private String default_sourceKey = null; private class GridInfo{ public String sortID=""; public TvRecyclerView mGridView; @@ -169,7 +170,7 @@ private void initView() { @Override public void onLoadMoreRequested() { gridAdapter.setEnableLoadMore(true); - sourceViewModel.getList(sortData, page); + sourceViewModel.getList(sortData, page, default_sourceKey); } }, mGridView); mGridView.setOnItemListener(new TvRecyclerView.OnItemListener() { @@ -292,7 +293,7 @@ private void initData() { isLoad = false; scrollTop(); toggleFilterColor(); - sourceViewModel.getList(sortData, page); + sourceViewModel.getList(sortData, page, default_sourceKey); } private void toggleFilterColor() { @@ -326,4 +327,4 @@ public void change() { if (gridFilterDialog != null) gridFilterDialog.show(); } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/github/tvbox/osc/util/FileUtils.java b/app/src/main/java/com/github/tvbox/osc/util/FileUtils.java index d23baa427e..6839f0ab69 100644 --- a/app/src/main/java/com/github/tvbox/osc/util/FileUtils.java +++ b/app/src/main/java/com/github/tvbox/osc/util/FileUtils.java @@ -1,10 +1,18 @@ package com.github.tvbox.osc.util; +import android.content.Context; import android.os.Environment; import android.text.TextUtils; - +import android.util.Base64; import com.github.tvbox.osc.base.App; - +import com.github.tvbox.osc.server.ControlManager; +import com.github.tvbox.osc.util.StringUtils; +import com.google.gson.Gson; +import com.google.gson.JsonObject; +import com.lzy.okgo.OkGo; +import com.lzy.okgo.model.HttpHeaders; +import com.orhanobut.hawk.Hawk; +import org.json.JSONObject; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; @@ -15,13 +23,197 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; +import java.math.BigDecimal; +import java.util.Map; +import java.util.UUID; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class FileUtils { + public static File open(String str) { + return new File(App.getInstance() + .getExternalCacheDir() + .getAbsolutePath() + "/qjscache_" + str + ".js"); + } + + public static String genUUID() { + return UUID.randomUUID() + .toString() + .replaceAll("-", ""); + } + + public static String getCache(String name) { + try { + String code = ""; + File file = open(name); + if (file.exists()) { + code = new String(readSimple(file)); + } + if (TextUtils.isEmpty(code)) { + return ""; + } + JsonObject asJsonObject = (new Gson() + .fromJson(code, JsonObject.class)) + .getAsJsonObject(); + if (((long) asJsonObject.get("expires") + .getAsInt()) > System.currentTimeMillis() / 1000) { + return new String(Base64.decode(asJsonObject.get("data") + .getAsString(), Base64.URL_SAFE)); + } + recursiveDelete(open(name)); + return ""; + } catch (Exception e4) { + return ""; + } + } + + public static byte[] getCacheByte(String name) { + try { + File file = open("B_" + name); + if (file.exists()) { + return readSimple(file); + } + return null; + } catch (Exception e4) { + return null; + } + } + + public static void setCache(int time, String name, String data) { + try { + JSONObject jSONObject = new JSONObject(); + jSONObject.put("expires", (int)(time + (System.currentTimeMillis() / 1000))); + jSONObject.put("data", Base64.encodeToString(data.getBytes(), Base64.URL_SAFE)); + writeSimple(jSONObject.toString().getBytes(), open(name)); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void setCacheByte(String name, byte[] data) { + try { + writeSimple(byteMerger("//DRPY".getBytes(),Base64.encode(data, Base64.URL_SAFE)), open("B_" + name)); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static byte[] byteMerger(byte[] bt1, byte[] bt2){ + byte[] bt3 = new byte[bt1.length+bt2.length]; + System.arraycopy(bt1, 0, bt3, 0, bt1.length); + System.arraycopy(bt2, 0, bt3, bt1.length, bt2.length); + return bt3; + } + + public static String get(String str) { + return get(str, null); + } + + public static String get(String str, Map headerMap) { + try { + HttpHeaders h = new HttpHeaders(); + if (headerMap != null) { + for (String key : headerMap.keySet()) { + h.put(key, headerMap.get(key)); + } + return OkGo.get(str).headers(h).execute().body().string(); + } else { + return OkGo.get(str).headers("User-Agent", str.startsWith("https://gitcode.net/") ? UA.randomOne() : "okhttp/3.15").execute().body().string(); + } + + } catch (IOException e) { + return ""; + } + } + + private static final Pattern URLJOIN = Pattern.compile("^http.*\\.(js|txt|json|m3u)$", Pattern.MULTILINE | Pattern.CASE_INSENSITIVE); + + public static String loadModule(String name) { + try { + if (name.endsWith("ali.js")) { + name = "ali.js"; + } else if (name.endsWith("ali_api.js")) { + name = "ali_api.js"; + } else if (name.contains("similarity.js")) { + name = "similarity.js"; + } else if (name.contains("gbk.js")) { + name = "gbk.js"; + } else if (name.contains("模板.js")) { + name = "模板.js"; + } else if (name.contains("cat.js")) { + name = "cat.js"; + } + Matcher m = URLJOIN.matcher(name); + if (m.find()) { + if (!Hawk.get(HawkConfig.DEBUG_OPEN, false)) { + String cache = getCache(MD5.encode(name)); + if (StringUtils.isEmpty(cache)) { + String netStr = get(name); + if (!TextUtils.isEmpty(netStr)) { + setCache(604800, MD5.encode(name), netStr); + } + return netStr; + } + return cache; + } else { + return get(name); + } + } else if (name.startsWith("assets://")) { + return getAsOpen(name.substring(9)); + } else if (isAsFile(name, "js/lib")) { + return getAsOpen("js/lib/" + name); + } else if (name.startsWith("file://")) { + return get(ControlManager.get() + .getAddress(true) + "file/" + name.replace("file:///", "") + .replace("file://", "")); + } else if (name.startsWith("clan://localhost/")) { + return get(ControlManager.get() + .getAddress(true) + "file/" + name.replace("clan://localhost/", "")); + } else if (name.startsWith("clan://")) { + String substring = name.substring(7); + int indexOf = substring.indexOf(47); + return get("http://" + substring.substring(0, indexOf) + "/file/" + substring.substring(indexOf + 1)); + } + } catch (Exception e) { + e.printStackTrace(); + return name; + } + return name; + } + + public static boolean isAsFile(String name, String path) { + try { + for (String fname: App.getInstance() + .getAssets() + .list(path)) { + if (fname.equals(name.trim())) { + return true; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } + + public static String getAsOpen(String name) { + try { + InputStream is = App.getInstance() + .getAssets() + .open(name); + byte[] data = new byte[is.available()]; + is.read(data); + return new String(data, "UTF-8"); + } catch (Exception e) { + e.printStackTrace(); + } + return ""; + } + public static boolean writeSimple(byte[] data, File dst) { try { - if (dst.exists()) - dst.delete(); + if (dst.exists()) dst.delete(); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(dst)); bos.write(data); bos.close(); @@ -45,47 +237,18 @@ public static byte[] readSimple(File src) { } return null; } - - public static void copyFile(File source, File dest) throws IOException { - InputStream is = null; - OutputStream os = null; - try { - is = new FileInputStream(source); - os = new FileOutputStream(dest); - byte[] buffer = new byte[1024]; - int length; - while ((length = is.read(buffer)) > 0) { - os.write(buffer, 0, length); - } - } finally { - is.close(); - os.close(); - } - } - - public static void recursiveDelete(File file) { - if (!file.exists()) - return; - if (file.isDirectory()) { - for (File f : file.listFiles()) { - recursiveDelete(f); - } - } - file.delete(); - } - + public static String readFileToString(String path, String charsetName) { // 定义返回结果 - String jsonString = ""; + StringBuilder jsonString = new StringBuilder(); BufferedReader in = null; try { - in = new BufferedReader(new InputStreamReader(new FileInputStream(new File(path)), charsetName));// 读取文件 - String thisLine = null; + in = new BufferedReader(new InputStreamReader(new FileInputStream(path), charsetName));// 读取文件 + String thisLine; while ((thisLine = in.readLine()) != null) { - jsonString += thisLine; + jsonString.append(thisLine); } - in.close(); } catch (IOException e) { e.printStackTrace(); } finally { @@ -97,29 +260,22 @@ public static String readFileToString(String path, String charsetName) { } } // 返回拼接好的JSON String - return jsonString; - } - - public static String getAssetFile(String assetName) throws IOException { - InputStream is = App.getInstance().getAssets().open(assetName); - byte[] data = new byte[is.available()]; - is.read(data); - return new String(data, "UTF-8"); + return jsonString.toString(); } - - public static boolean isAssetFile(String name, String path) { - try { - for(String one : App.getInstance().getAssets().list(path)) { - if (one.equals(name)) return true; + + public static void copyFile(File source, File dest) throws IOException { + try (InputStream is = new FileInputStream(source); OutputStream os = new FileOutputStream(dest)) { + byte[] buffer = new byte[1024]; + int length; + while ((length = is.read(buffer)) > 0) { + os.write(buffer, 0, length); } - } catch (Exception e) { - e.printStackTrace(); } - return false; } public static String getRootPath() { - return Environment.getExternalStorageDirectory().getAbsolutePath(); + return Environment.getExternalStorageDirectory() + .getAbsolutePath(); } public static File getLocal(String path) { @@ -127,104 +283,184 @@ public static File getLocal(String path) { } public static File getCacheDir() { - return App.getInstance().getCacheDir(); + return App.getInstance() + .getCacheDir(); + } + public static File getExternalCacheDir() { + return App.getInstance() + .getExternalCacheDir(); + } + public static String getExternalCachePath() { + return getExternalCacheDir() + .getAbsolutePath(); } - public static String getCachePath() { - return getCacheDir().getAbsolutePath(); + return getCacheDir() + .getAbsolutePath(); } - - public static void cleanDirectory(File dir) { - if (!dir.exists()) return; - File[] files = dir.listFiles(); - if (files == null || files.length == 0) return; - for(File one : files) { - try { - deleteFile(one); - } catch (Exception e) { - e.printStackTrace(); + public static void recursiveDelete(File file) { + if (!file.exists()) return; + if (file.isDirectory()) { + for (File f: file.listFiles()) { + recursiveDelete(f); } } + file.delete(); } - public static void deleteFile(File file) { - if (!file.exists()) return; - if (file.isFile()) { - if (file.canWrite()) file.delete(); - return; + /** + * 获取缓存大小 + * @param context + * @return + * @throws Exception + */ + public static String getTotalCacheSize(Context context) { + long cacheSize = getFolderSize(context.getCacheDir()); + if (Environment.getExternalStorageState() + .equals(Environment.MEDIA_MOUNTED)) { + cacheSize += getFolderSize(context.getExternalCacheDir()); } - if (file.isDirectory()) { - File[] files = file.listFiles(); - if (files == null || files.length == 0) { - if (file.canWrite()) file.delete(); - return; + return getFormatSize(cacheSize); + } + + // 获取文件 + //Context.getExternalFilesDir() --> SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据 + //Context.getExternalCacheDir() --> SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据 + public static long getFolderSize(File file) { + long size = 0; + try { + File[] fileList = file.listFiles(); + for (File value: fileList) { + // 如果下面还有文件 + if (value.isDirectory()) { + size = size + getFolderSize(value); + } else { + size = size + value.length(); + } } - for(File one : files) { - deleteFile(one); + } catch (Exception e) { + e.printStackTrace(); + } + return size; + } + + /** + * 格式化单位 + * + * @param size + * @return + */ + public static String getFormatSize(double size) { + double kiloByte = size / 1024; + if (kiloByte < 1) { + // return size + "Byte"; + return "0K"; + } + + double megaByte = kiloByte / 1024; + if (megaByte < 1) { + BigDecimal result1 = new BigDecimal(Double.toString(kiloByte)); + return result1.setScale(2, BigDecimal.ROUND_HALF_UP) + .toPlainString() + "KB"; + } + + double gigaByte = megaByte / 1024; + if (gigaByte < 1) { + BigDecimal result2 = new BigDecimal(Double.toString(megaByte)); + return result2.setScale(2, BigDecimal.ROUND_HALF_UP) + .toPlainString() + "MB"; + } + + double teraBytes = gigaByte / 1024; + if (teraBytes < 1) { + BigDecimal result3 = new BigDecimal(Double.toString(gigaByte)); + return result3.setScale(2, BigDecimal.ROUND_HALF_UP) + .toPlainString() + "GB"; + } + BigDecimal result4 = new BigDecimal(teraBytes); + return result4.setScale(2, BigDecimal.ROUND_HALF_UP) + .toPlainString() + "TB"; + } + /*** + * 清理所有缓存 + */ + public static void clearAllCache() { + deleteDir(getCacheDir()); + if (Environment.getExternalStorageState() + .equals(Environment.MEDIA_MOUNTED)) { + deleteDir(getExternalCacheDir()); + } + } + + private static boolean deleteDir(File dir) { + if (dir != null && dir.isDirectory()) { + String[] children = dir.list(); + for (String child: children) { + boolean success = deleteDir(new File(dir, child)); + if (!success) { + return false; + } } } - return; + return dir.delete(); } + //启动app清除 public static void cleanPlayerCache() { String ijkCachePath = getCachePath() + "/ijkcaches/"; String thunderCachePath = getCachePath() + "/thunder/"; + String jpaliCachePath = getCachePath() + "/jpali/Downloads/"; File ijkCacheDir = new File(ijkCachePath); File thunderCacheDir = new File(thunderCachePath); + File jpaliCacheDir = new File(jpaliCachePath); try { - if (ijkCacheDir.exists()) cleanDirectory(ijkCacheDir); + if (ijkCacheDir.exists()) deleteDir(ijkCacheDir); } catch (Exception e) { e.printStackTrace(); } try { - if (thunderCacheDir.exists()) cleanDirectory(thunderCacheDir); + if (thunderCacheDir.exists()) deleteDir(thunderCacheDir); } catch (Exception e) { e.printStackTrace(); } - } - - public static String read(String path) { try { - BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(getLocal(path)))); - StringBuilder sb = new StringBuilder(); - String text; - while ((text = br.readLine()) != null) sb.append(text).append("\n"); - br.close(); - return sb.toString(); + if (jpaliCacheDir.exists()) deleteDir(jpaliCacheDir); } catch (Exception e) { - return ""; + e.printStackTrace(); } } - public static String getFileName(String filePath){ - if(TextUtils.isEmpty(filePath)) return ""; + //0805同步q版 + public static String getFileName(String filePath) { + if (TextUtils.isEmpty(filePath)) return ""; String fileName = filePath; int p = fileName.lastIndexOf(File.separatorChar); - if(p != -1){ + if (p != -1) { fileName = fileName.substring(p + 1); } return fileName; } - public static String getFileNameWithoutExt(String filePath){ - if(TextUtils.isEmpty(filePath)) return ""; + public static String getFileNameWithoutExt(String filePath) { + if (TextUtils.isEmpty(filePath)) return ""; String fileName = filePath; int p = fileName.lastIndexOf(File.separatorChar); - if(p != -1){ + if (p != -1) { fileName = fileName.substring(p + 1); } p = fileName.indexOf('.'); - if(p != -1){ + if (p != -1) { fileName = fileName.substring(0, p); } return fileName; } - public static String getFileExt(String fileName){ - if(TextUtils.isEmpty(fileName)) return ""; + public static String getFileExt(String fileName) { + if (TextUtils.isEmpty(fileName)) return ""; int p = fileName.lastIndexOf('.'); - if(p != -1) { - return fileName.substring(p).toLowerCase(); + if (p != -1) { + return fileName.substring(p) + .toLowerCase(); } return ""; } @@ -235,4 +471,36 @@ public static boolean hasExtension(String path) { // 如果路径中有点号,并且点号在最后一个斜杠之后,认为有后缀 return lastDotIndex > lastSlashIndex && lastDotIndex < path.length() - 1; } + + public static void cleanDirectory(File dir) { + if (!dir.exists()) return; + File[] files = dir.listFiles(); + if (files == null || files.length == 0) return; + for(File one : files) { + try { + deleteFile(one); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + public static void deleteFile(File file) { + if (!file.exists()) return; + if (file.isFile()) { + if (file.canWrite()) file.delete(); + return; + } + if (file.isDirectory()) { + File[] files = file.listFiles(); + if (files == null || files.length == 0) { + if (file.canWrite()) file.delete(); + return; + } + for(File one : files) { + deleteFile(one); + } + } + return; + } } diff --git a/app/src/main/java/com/github/tvbox/osc/util/HeavyTaskUtil.java b/app/src/main/java/com/github/tvbox/osc/util/HeavyTaskUtil.java new file mode 100644 index 0000000000..c3b516a8c4 --- /dev/null +++ b/app/src/main/java/com/github/tvbox/osc/util/HeavyTaskUtil.java @@ -0,0 +1,39 @@ +package com.github.tvbox.osc.util; + +import java.util.concurrent.ExecutorService; +import java.util.concurrent.LinkedBlockingDeque; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +/** + * 作者:By hdy + * 日期:On 2018/12/6 + * 时间:At 21:27 + */ +public class HeavyTaskUtil { + //这里的代码是拿的AsyncTask的源码,作用是创建合理可用的线程池容量 + private static final int CPU_COUNT = Runtime.getRuntime().availableProcessors(); + private static final int CORE_POOL_SIZE = Math.max(2, Math.min(CPU_COUNT - 1, 3)) + 2; + private static LinkedBlockingDeque taskQueue = new LinkedBlockingDeque<>(8192); + private static ExecutorService executorService = new ThreadPoolExecutor(CORE_POOL_SIZE, 6, + 10L, TimeUnit.SECONDS, taskQueue); + + public static void executeNewTask(Runnable command) { +// Log.d(TAG, "executeNewTask: CPU_COUNT=" + CPU_COUNT + ", CORE_POOL_SIZE=" + CORE_POOL_SIZE); + executorService.execute(command); + } + + public static void executeBigTask(Runnable command) { + executorService.execute(command); + } + + public static ExecutorService getBigTaskExecutorService() { + return executorService; + } + + public static LinkedBlockingDeque getBigTaskQueue() { + return taskQueue; + } + + +} diff --git a/app/src/main/java/com/github/tvbox/osc/util/LOG.java b/app/src/main/java/com/github/tvbox/osc/util/LOG.java index c904d3de66..4a3e4b96b6 100644 --- a/app/src/main/java/com/github/tvbox/osc/util/LOG.java +++ b/app/src/main/java/com/github/tvbox/osc/util/LOG.java @@ -2,6 +2,10 @@ import android.util.Log; +import com.github.tvbox.osc.event.LogEvent; + +import org.greenrobot.eventbus.EventBus; + /** * @author pj567 * @date :2020/12/18 @@ -10,11 +14,33 @@ public class LOG { private static String TAG = "TVBox"; + public static void e(Throwable t) { + Log.e(TAG, t.getMessage(), t); + EventBus.getDefault().post(new LogEvent(String.format("E/%s ==> ", TAG) + Log.getStackTraceString(t))); + } + + public static void e(String tag, Throwable t) { + Log.e(tag, t.getMessage(), t); + EventBus.getDefault().post(new LogEvent(String.format("E/%s ==> ", tag) + Log.getStackTraceString(t))); + } + public static void e(String msg) { Log.e(TAG, "" + msg); + EventBus.getDefault().post(new LogEvent(String.format("E/%s ==> ", TAG) + msg)); + } + + public static void e(String tag, String msg) { + Log.e(tag, msg); + EventBus.getDefault().post(new LogEvent(String.format("E/%s ==> ", tag) + msg)); } public static void i(String msg) { - Log.i(TAG, "" + msg); + Log.i(TAG, msg); + EventBus.getDefault().post(new LogEvent(String.format("I/%s ==> ", TAG) + msg)); + } + + public static void i(String tag, String msg) { + Log.i(tag, msg); + EventBus.getDefault().post(new LogEvent(String.format("I/%s ==> ", tag) + msg)); } } \ No newline at end of file diff --git a/app/src/main/java/com/github/tvbox/osc/util/OkGoHelper.java b/app/src/main/java/com/github/tvbox/osc/util/OkGoHelper.java index 307b9a5291..2d37d57c4f 100644 --- a/app/src/main/java/com/github/tvbox/osc/util/OkGoHelper.java +++ b/app/src/main/java/com/github/tvbox/osc/util/OkGoHelper.java @@ -1,10 +1,16 @@ package com.github.tvbox.osc.util; +import static okhttp3.ConnectionSpec.CLEARTEXT; +import static okhttp3.ConnectionSpec.COMPATIBLE_TLS; +import static okhttp3.ConnectionSpec.MODERN_TLS; +import static okhttp3.ConnectionSpec.RESTRICTED_TLS; + import android.graphics.Bitmap; +import com.github.catvod.net.SSLSocketFactoryCompat; import com.github.tvbox.osc.base.App; import com.github.tvbox.osc.picasso.MyOkhttpDownLoader; -import com.github.tvbox.osc.util.SSL.SSLSocketFactoryCompat; +import com.github.tvbox.osc.util.urlhttp.BrotliInterceptor; import com.lzy.okgo.OkGo; import com.lzy.okgo.https.HttpsUtils; import com.lzy.okgo.interceptor.HttpLoggingInterceptor; @@ -13,25 +19,25 @@ import com.squareup.picasso.Picasso; import java.io.File; -import java.security.cert.CertificateException; import java.util.ArrayList; -import java.util.concurrent.PriorityBlockingQueue; -import java.util.concurrent.ThreadPoolExecutor; +import java.util.List; import java.util.concurrent.TimeUnit; import java.util.logging.Level; import javax.net.ssl.SSLSocketFactory; -import javax.net.ssl.X509TrustManager; import okhttp3.Cache; +import okhttp3.ConnectionSpec; import okhttp3.HttpUrl; import okhttp3.OkHttpClient; import okhttp3.dnsoverhttps.DnsOverHttps; + +import okhttp3.internal.Util; import okhttp3.internal.Version; import xyz.doikki.videoplayer.exo.ExoMediaSourceHelper; public class OkGoHelper { - public static final long DEFAULT_MILLISECONDS = 8000; //默认的超时时间 + public static final long DEFAULT_MILLISECONDS = 10000; //默认的超时时间 static void initExoOkHttpClient() { OkHttpClient.Builder builder = new OkHttpClient.Builder(); @@ -44,13 +50,12 @@ static void initExoOkHttpClient() { loggingInterceptor.setPrintLevel(HttpLoggingInterceptor.Level.NONE); loggingInterceptor.setColorLevel(Level.OFF); } - builder.addInterceptor(loggingInterceptor); - + builder.connectionSpecs(getConnectionSpec()); + builder.addInterceptor(new BrotliInterceptor()); builder.retryOnConnectionFailure(true); builder.followRedirects(true); builder.followSslRedirects(true); - try { setOkHttpSsl(builder); } catch (Throwable th) { @@ -65,6 +70,9 @@ static void initExoOkHttpClient() { public static ArrayList dnsHttpsList = new ArrayList<>(); + public static List getConnectionSpec() { + return Util.immutableList(RESTRICTED_TLS, MODERN_TLS, COMPATIBLE_TLS, CLEARTEXT); + } public static String getDohUrl(int type) { switch (type) { @@ -78,9 +86,13 @@ public static String getDohUrl(int type) { return "https://doh.360.cn/dns-query"; } case 4: { - return "https://dns.adguard.com/dns-query"; + // return "https://1.1.1.1/dns-query"; // takagen99 - removed Cloudflare + return "https://dns.google/dns-query"; } case 5: { + return "https://dns.adguard.com/dns-query"; + } + case 6: { return "https://dns.quad9.net/dns-query"; } } @@ -92,6 +104,7 @@ static void initDnsOverHttps() { dnsHttpsList.add("腾讯"); dnsHttpsList.add("阿里"); dnsHttpsList.add("360"); + dnsHttpsList.add("Google"); dnsHttpsList.add("AdGuard"); dnsHttpsList.add("Quad9"); OkHttpClient.Builder builder = new OkHttpClient.Builder(); @@ -103,19 +116,18 @@ static void initDnsOverHttps() { loggingInterceptor.setPrintLevel(HttpLoggingInterceptor.Level.NONE); loggingInterceptor.setColorLevel(Level.OFF); } - builder.addInterceptor(loggingInterceptor); + builder.addInterceptor(new BrotliInterceptor()); try { setOkHttpSsl(builder); } catch (Throwable th) { th.printStackTrace(); } - builder.cache(new Cache(new File(App.getInstance().getCacheDir().getAbsolutePath(), "dohcache"), 100 * 1024 * 1024)); + builder.connectionSpecs(getConnectionSpec()); + builder.cache(new Cache(new File(App.getInstance().getCacheDir().getAbsolutePath(), "dohcache"), 10 * 1024 * 1024)); OkHttpClient dohClient = builder.build(); String dohUrl = getDohUrl(Hawk.get(HawkConfig.DOH_URL, 0)); dnsOverHttps = new DnsOverHttps.Builder().client(dohClient).url(dohUrl.isEmpty() ? null : HttpUrl.get(dohUrl)).build(); } - - static OkHttpClient defaultClient = null; static OkHttpClient noRedirectClient = null; @@ -142,14 +154,12 @@ public static void init() { } //builder.retryOnConnectionFailure(false); - - builder.addInterceptor(loggingInterceptor); - - builder.readTimeout(DEFAULT_MILLISECONDS, TimeUnit.MILLISECONDS); - builder.writeTimeout(DEFAULT_MILLISECONDS, TimeUnit.MILLISECONDS); - builder.connectTimeout(DEFAULT_MILLISECONDS, TimeUnit.MILLISECONDS); - - builder.dns(dnsOverHttps); + builder.connectionSpecs(getConnectionSpec()); + builder.addInterceptor(new BrotliInterceptor()); + builder.readTimeout(DEFAULT_MILLISECONDS, TimeUnit.MILLISECONDS) + .writeTimeout(DEFAULT_MILLISECONDS, TimeUnit.MILLISECONDS) + .connectTimeout(DEFAULT_MILLISECONDS, TimeUnit.MILLISECONDS) + .dns(dnsOverHttps); try { setOkHttpSsl(builder); } catch (Throwable th) { @@ -172,10 +182,11 @@ public static void init() { } static void initPicasso(OkHttpClient client) { - client.dispatcher().setMaxRequestsPerHost(10); + client.dispatcher().setMaxRequestsPerHost(32); MyOkhttpDownLoader downloader = new MyOkhttpDownLoader(client); Picasso picasso = new Picasso.Builder(App.getInstance()) .downloader(downloader) + .executor(HeavyTaskUtil.getBigTaskExecutorService()) .defaultBitmapConfig(Bitmap.Config.RGB_565) .build(); Picasso.setSingletonInstance(picasso); @@ -183,27 +194,14 @@ static void initPicasso(OkHttpClient client) { private static synchronized void setOkHttpSsl(OkHttpClient.Builder builder) { try { - // 自定义一个信任所有证书的TrustManager,添加SSLSocketFactory的时候要用到 - final X509TrustManager trustAllCert = - new X509TrustManager() { - @Override - public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException { - } - - @Override - public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException { - } - - @Override - public java.security.cert.X509Certificate[] getAcceptedIssuers() { - return new java.security.cert.X509Certificate[]{}; - } - }; - final SSLSocketFactory sslSocketFactory = new SSLSocketFactoryCompat(trustAllCert); - builder.sslSocketFactory(sslSocketFactory, trustAllCert); + + final SSLSocketFactory sslSocketFactory = new SSLSocketFactoryCompat(); + builder.sslSocketFactory(sslSocketFactory, SSLSocketFactoryCompat.trustAllCert); builder.hostnameVerifier(HttpsUtils.UnSafeHostnameVerifier); } catch (Exception e) { throw new RuntimeException(e); } } + + } diff --git a/quickjs/src/main/java/com/github/tvbox/quickjs/JSUtils.java b/app/src/main/java/com/github/tvbox/osc/util/StringUtils.java similarity index 74% rename from quickjs/src/main/java/com/github/tvbox/quickjs/JSUtils.java rename to app/src/main/java/com/github/tvbox/osc/util/StringUtils.java index 03b669c130..af57650791 100644 --- a/quickjs/src/main/java/com/github/tvbox/quickjs/JSUtils.java +++ b/app/src/main/java/com/github/tvbox/osc/util/StringUtils.java @@ -1,4 +1,4 @@ -package com.github.tvbox.quickjs; +package com.github.tvbox.osc.util; import java.lang.reflect.Array; @@ -6,7 +6,7 @@ import java.util.List; import java.util.Map; -public class JSUtils { +public class StringUtils { public static boolean isEmpty( CharSequence str) { return str == null || str.length() == 0; @@ -148,6 +148,10 @@ public static String listToString(List list) { return listToString(list, "&&"); } + public static boolean isBlank(String text) { + return trim(text).length() == 0; + } + public static String trimBlanks(String str) { if (str == null || str.length() == 0) { return str; @@ -164,4 +168,52 @@ public static String trimBlanks(String str) { return ((st > 0) || (len < str.length())) ? str.substring(st, len) : str; } + public static String trim(String string) { + if (string == null || string.length() == 0 || " ".equals(string)) return ""; + int start = 0, len = string.length(); + int end = len - 1; + while ((start < end) && ((string.charAt(start) <= ' ') || (string.charAt(start) == ' '))) { + ++start; + } + while ((start < end) && ((string.charAt(end) <= ' ') || (string.charAt(end) == ' '))) { + --end; + } + if (end < len) ++end; + return ((start > 0) || (end < len)) ? string.substring(start, end) : string; + } + + public static boolean isJsonType(String text) { + boolean result = false; + if (isNotEmpty(text)) { + text = trim(text); + if (text.startsWith("{") && text.endsWith("}")) { + result = true; + } else if (text.startsWith("[") && text.endsWith("]")) { + result = true; + } + } + return result; + } + + public static boolean isJsonObject(String text) { + boolean result = false; + if (isNotEmpty(text)) { + text = trim(text); + if (text.startsWith("{") && text.endsWith("}")) { + result = true; + } + } + return result; + } + + public static boolean isJsonArray(String text) { + boolean result = false; + if (isNotEmpty(text)) { + text = trim(text); + if (text.startsWith("[") && text.endsWith("]")) { + result = true; + } + } + return result; + } } diff --git a/app/src/main/java/com/github/tvbox/osc/util/js/Async.java b/app/src/main/java/com/github/tvbox/osc/util/js/Async.java new file mode 100644 index 0000000000..27a8d08c50 --- /dev/null +++ b/app/src/main/java/com/github/tvbox/osc/util/js/Async.java @@ -0,0 +1,48 @@ +package com.github.tvbox.osc.util.js; + +import com.whl.quickjs.wrapper.JSCallFunction; +import com.whl.quickjs.wrapper.JSFunction; +import com.whl.quickjs.wrapper.JSObject; + +import java9.util.concurrent.CompletableFuture; + +public class Async { + + private final CompletableFuture future; + + public static CompletableFuture run(JSObject object, String name, Object[] args) { + return new Async().call(object, name, args); + } + + private Async() { + this.future = new CompletableFuture<>(); + } + + private CompletableFuture call(JSObject object, String name, Object[] args) { + JSFunction function = object.getJSFunction(name); + if (function == null) return empty(); + Object result = function.call(args); + if (result instanceof JSObject) then(result); + else future.complete(result); + return future; + } + + private CompletableFuture empty() { + future.complete(null); + return future; + } + + private void then(Object result) { + JSObject promise = (JSObject) result; + JSFunction then = promise.getJSFunction("then"); + if (then != null) then.call(callback); + } + + private final JSCallFunction callback = new JSCallFunction() { + @Override + public Object call(Object... args) { + future.complete(args[0]); + return null; + } + }; +} \ No newline at end of file diff --git a/app/src/main/java/com/github/tvbox/osc/util/js/Connect.java b/app/src/main/java/com/github/tvbox/osc/util/js/Connect.java new file mode 100644 index 0000000000..256befb377 --- /dev/null +++ b/app/src/main/java/com/github/tvbox/osc/util/js/Connect.java @@ -0,0 +1,130 @@ +package com.github.tvbox.osc.util.js; + +import android.util.Base64; + +import com.github.catvod.net.OkHttp; +import com.github.tvbox.osc.util.LOG; +import com.google.common.net.HttpHeaders; +import com.lzy.okgo.OkGo; +import com.whl.quickjs.wrapper.JSArray; +import com.whl.quickjs.wrapper.JSObject; +import com.whl.quickjs.wrapper.JSUtils; +import com.whl.quickjs.wrapper.QuickJSContext; + +import java.util.List; +import java.util.Map; +import java.util.Random; +import java.util.concurrent.TimeUnit; + +import okhttp3.Call; +import okhttp3.FormBody; +import okhttp3.Headers; +import okhttp3.MediaType; +import okhttp3.MultipartBody; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; + +public class Connect { + static OkHttpClient client; + + public static Call to(String url, Req req) { + client = req.getRedirect() == 1 ? OkHttp.client() : OkHttp.noRedirect(); + client = client.newBuilder() + .connectTimeout(req.getTimeout(), TimeUnit.MILLISECONDS) + .readTimeout(req.getTimeout(), TimeUnit.MILLISECONDS) + .writeTimeout(req.getTimeout(), TimeUnit.MILLISECONDS).build(); + return client.newCall(getRequest(url, req, Headers.of(req.getHeader()))); + } + + public static JSObject success(QuickJSContext ctx, Req req, Response res) { + try { + JSObject jsObject = ctx.createJSObject(); + JSObject jsHeader = ctx.createJSObject(); + setHeader(ctx, res, jsHeader); + jsObject.set("headers", jsHeader); + if (req.getBuffer() == 0) jsObject.set("content", new String(res.body().bytes(), req.getCharset())); + if (req.getBuffer() == 1) { + JSArray array = ctx.createJSArray(); + for (byte aByte : res.body().bytes()) array.push((int) aByte); + jsObject.set("content", array); + } + if (req.getBuffer() == 2) jsObject.set("content", Base64.encodeToString(res.body().bytes(), Base64.DEFAULT)); + return jsObject; + } catch (Exception e) { + return error(ctx); + } + } + + public static JSObject error(QuickJSContext ctx) { + JSObject jsObject = ctx.createJSObject(); + JSObject jsHeader = ctx.createJSObject(); + jsObject.set("headers", jsHeader); + jsObject.set("content", ""); + return jsObject; + } + + private static Request getRequest(String url, Req req, Headers headers) { + if (req.getMethod().equalsIgnoreCase("post")) { + return new Request.Builder().url(url).tag("js_okhttp_tag").headers(headers).post(getPostBody(req, headers.get(HttpHeaders.CONTENT_TYPE))).build(); + } else if (req.getMethod().equalsIgnoreCase("header")) { + return new Request.Builder().url(url).tag("js_okhttp_tag").headers(headers).head().build(); + } else { + return new Request.Builder().url(url).tag("js_okhttp_tag").headers(headers).get().build(); + } + } + + private static RequestBody getPostBody(Req req, String contentType) { + if (req.getData() != null && req.getPostType().equals("json")) return getJsonBody(req); + if (req.getData() != null && req.getPostType().equals("form")) return getFormBody(req); + if (req.getData() != null && req.getPostType().equals("form-data")) return getFormDataBody(req); + if (req.getBody() != null && contentType != null) return RequestBody.create(MediaType.get(contentType), req.getBody()); + return RequestBody.create(null, ""); + } + + private static RequestBody getJsonBody(Req req) { + return RequestBody.create(MediaType.get("application/json"), req.getData().toString()); + } + + private static RequestBody getFormBody(Req req) { + FormBody.Builder formBody = new FormBody.Builder(); + Map params = Json.toMap(req.getData()); + for (String key : params.keySet()) formBody.add(key, params.get(key)); + return formBody.build(); + } + + private static RequestBody getFormDataBody(Req req) { + String boundary = "--dio-boundary-" + new Random().nextInt(42949) + "" + new Random().nextInt(67296); + MultipartBody.Builder builder = new MultipartBody.Builder(boundary).setType(MultipartBody.FORM); + Map params = Json.toMap(req.getData()); + for (String key : params.keySet()) builder.addFormDataPart(key, params.get(key)); + return builder.build(); + } + + private static void setHeader(QuickJSContext ctx, Response res, JSObject object) { + for (Map.Entry> entry : res.headers().toMultimap().entrySet()) { + if (entry.getValue().size() == 1) object.set(entry.getKey(), entry.getValue().get(0)); + if (entry.getValue().size() >= 2) object.set(entry.getKey(), new JSUtils().toArray(ctx, entry.getValue())); + } + } + public static void cancelByTag(Object tag) { + try { + if (client != null) { + for (Call call : client.dispatcher().queuedCalls()) { + if (tag.equals(call.request().tag())) { + call.cancel(); + } + } + for (Call call : client.dispatcher().runningCalls()) { + if (tag.equals(call.request().tag())) { + call.cancel(); + } + } + } + OkGo.getInstance().cancelTag(tag); + } catch (Exception e) { + LOG.e(e); + } + } +} diff --git a/app/src/main/java/com/github/tvbox/osc/util/js/Crypto.java b/app/src/main/java/com/github/tvbox/osc/util/js/Crypto.java new file mode 100644 index 0000000000..948133ee52 --- /dev/null +++ b/app/src/main/java/com/github/tvbox/osc/util/js/Crypto.java @@ -0,0 +1,82 @@ +package com.github.tvbox.osc.util.js; + +import android.util.Base64; + +import java.security.Key; +import java.security.KeyFactory; +import java.security.PublicKey; +import java.security.interfaces.RSAPrivateKey; +import java.security.interfaces.RSAPublicKey; +import java.security.spec.PKCS8EncodedKeySpec; +import java.security.spec.X509EncodedKeySpec; +import java.util.Arrays; + +import javax.crypto.Cipher; +import javax.crypto.spec.IvParameterSpec; +import javax.crypto.spec.SecretKeySpec; + +public class Crypto { + + public static String aes(String mode, boolean encrypt, String input, boolean inBase64, String key, String iv, boolean outBase64) { + try { + byte[] keyBuf = key.getBytes(); + if (keyBuf.length < 16) keyBuf = Arrays.copyOf(keyBuf, 16); + byte[] ivBuf = iv == null ? new byte[0] : iv.getBytes(); + if (ivBuf.length < 16) ivBuf = Arrays.copyOf(ivBuf, 16); + Cipher cipher = Cipher.getInstance(mode + "Padding"); + SecretKeySpec keySpec = new SecretKeySpec(keyBuf, "AES"); + if (iv == null) cipher.init(encrypt ? Cipher.ENCRYPT_MODE : Cipher.DECRYPT_MODE, keySpec); + else cipher.init(encrypt ? Cipher.ENCRYPT_MODE : Cipher.DECRYPT_MODE, keySpec, new IvParameterSpec(ivBuf)); + byte[] inBuf = inBase64 ? Base64.decode(input.replaceAll("_", "/").replaceAll("-", "+"), Base64.DEFAULT) : input.getBytes("UTF-8"); + return outBase64 ? Base64.encodeToString(cipher.doFinal(inBuf), Base64.NO_WRAP) : new String(cipher.doFinal(inBuf), "UTF-8"); + } catch (Exception e) { + e.printStackTrace(); + return ""; + } + } + + public static String rsa(boolean pub, boolean encrypt, String input, boolean inBase64, String key, boolean outBase64) { + try { + Key rsaKey = generateKey(pub, key); + int len = getModulusLength(rsaKey); + byte[] outBytes = new byte[0]; + byte[] inBytes = inBase64 ? Base64.decode(input.replaceAll("_", "/").replaceAll("-", "+"), Base64.DEFAULT) : input.getBytes("UTF-8"); + Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); + cipher.init(encrypt ? Cipher.ENCRYPT_MODE : Cipher.DECRYPT_MODE, rsaKey); + int blockLen = encrypt ? len / 8 - 11 : len / 8; + int bufIdx = 0; + while (bufIdx < inBytes.length) { + int bufEndIdx = Math.min(bufIdx + blockLen, inBytes.length); + byte[] tmpInBytes = new byte[bufEndIdx - bufIdx]; + System.arraycopy(inBytes, bufIdx, tmpInBytes, 0, tmpInBytes.length); + byte[] tmpBytes = cipher.doFinal(tmpInBytes); + bufIdx = bufEndIdx; + outBytes = concatArrays(outBytes, tmpBytes); + } + return outBase64 ? Base64.encodeToString(outBytes, Base64.NO_WRAP) : new String(outBytes, "UTF-8"); + } catch (Exception e) { + e.printStackTrace(); + return ""; + } + } + + private static Key generateKey(boolean pub, String key) throws Exception { + if (pub) key = key.replaceAll("\r\n", "").replaceAll("\n", "").replace("-----BEGIN PUBLIC KEY-----", "").replace("-----END PUBLIC KEY-----", ""); + else key = key.replaceAll("\r\n", "").replaceAll("\n", "").replace("-----BEGIN PRIVATE KEY-----", "").replace("-----END PRIVATE KEY-----", ""); + return pub ? KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(Base64.decode(key, Base64.DEFAULT))) : KeyFactory.getInstance("RSA").generatePrivate(new PKCS8EncodedKeySpec(Base64.decode(key, Base64.DEFAULT))); + } + + private static int getModulusLength(Key key) { + if (key instanceof PublicKey) return ((RSAPublicKey) key).getModulus().bitLength(); + else return ((RSAPrivateKey) key).getModulus().bitLength(); + } + + private static byte[] concatArrays(byte[] a, byte[] b) { + int aLen = a.length; + int bLen = b.length; + byte[] result = new byte[aLen + bLen]; + System.arraycopy(a, 0, result, 0, aLen); + System.arraycopy(b, 0, result, aLen, bLen); + return result; + } +} diff --git a/app/src/main/java/com/github/tvbox/osc/util/js/FunCall.java b/app/src/main/java/com/github/tvbox/osc/util/js/FunCall.java new file mode 100644 index 0000000000..19607e8e8f --- /dev/null +++ b/app/src/main/java/com/github/tvbox/osc/util/js/FunCall.java @@ -0,0 +1,42 @@ +package com.github.tvbox.osc.util.js; + +import com.whl.quickjs.wrapper.JSCallFunction; +import com.whl.quickjs.wrapper.JSFunction; +import com.whl.quickjs.wrapper.JSObject; + +import java.util.concurrent.Callable; + +public class FunCall implements Callable { + + private final JSObject jsObject; + private final Object[] args; + private final String name; + private Object result; + + public static FunCall call(JSObject jsObject, String name, Object... args) { + return new FunCall(jsObject, name, args); + } + + private FunCall(JSObject jsObject, String name, Object... args) { + this.jsObject = jsObject; + this.name = name; + this.args = args; + } + + @Override + public Object call() throws Exception { + result = jsObject.getJSFunction(name).call(args); + if (!(result instanceof JSObject)) return result; + JSObject promise = (JSObject) result; + JSFunction then = promise.getJSFunction("then"); + if (then != null) then.call(jsCallFunction); + return result; + } + + private final JSCallFunction jsCallFunction = new JSCallFunction() { + @Override + public Object call(Object... args) { + return result = args[0]; + } + }; +} diff --git a/app/src/main/java/com/github/tvbox/osc/util/js/Global.java b/app/src/main/java/com/github/tvbox/osc/util/js/Global.java new file mode 100644 index 0000000000..11d4466e33 --- /dev/null +++ b/app/src/main/java/com/github/tvbox/osc/util/js/Global.java @@ -0,0 +1,331 @@ +package com.github.tvbox.osc.util.js; + +import androidx.annotation.Keep; +import androidx.annotation.NonNull; + +import com.github.tvbox.osc.server.ControlManager; +import com.github.tvbox.osc.util.LOG; +import com.github.tvbox.osc.util.rsa.RSAEncrypt; +import com.whl.quickjs.wrapper.ContextSetter; +import com.whl.quickjs.wrapper.Function; +import com.whl.quickjs.wrapper.JSArray; +import com.whl.quickjs.wrapper.JSFunction; +import com.whl.quickjs.wrapper.JSObject; +import com.whl.quickjs.wrapper.JSUtils; +import com.whl.quickjs.wrapper.QuickJSContext; + +import org.json.JSONObject; + +import java.io.IOException; +import java.net.URLEncoder; + +import java.util.Timer; +import java.util.TimerTask; +import java.util.concurrent.ExecutorService; + +import okhttp3.Call; +import okhttp3.Callback; +import okhttp3.Response; + +public class Global { + private QuickJSContext runtime; + public ExecutorService executor; + private final Timer timer; + + public Global(ExecutorService executor) { + this.executor = executor; + this.timer = new Timer(); + } + + @Keep + @Function + public String getProxy(boolean local) { + return ControlManager.get().getAddress(local) + "proxy?do=js"; + } + + @Keep + @Function + public String js2Proxy(Boolean dynamic, Integer siteType, String siteKey, String url, JSObject headers) { + return getProxy(true) + "&from=catvod" + "&siteType=" + siteType + "&siteKey=" + siteKey + "&header=" + URLEncoder.encode(headers.toJsonString()) + "&url=" + URLEncoder.encode(url); + } + + @Keep + @Function + public String joinUrl(String parent, String child) { + return HtmlParser.joinUrl(parent, child); + } + + @Keep + @Function + public String pd(String html, String rule, String add_url) { + return HtmlParser.parseDomForUrl(html, rule, add_url); + } + + @Keep + @Function + public String pdfh(String html, String rule) { + return HtmlParser.parseDomForUrl(html, rule, ""); + } + + @Keep + @Function + public JSArray pdfa(String html, String rule) { + + return new JSUtils().toArray(runtime, HtmlParser.parseDomForArray(html, rule)); + } + + @Keep + @Function + public JSArray pdfla(String html, String p1, String list_text, String list_url, String add_url) { + return new JSUtils().toArray(runtime, HtmlParser.parseDomForList(html, p1, list_text, list_url, add_url)); + } + + @Keep + @Function + public String s2t(String text) { + try { + return Trans.s2t(false, text); + } catch (Exception e) { + return ""; + } + } + + @Keep + @Function + public String t2s(String text) { + try { + return Trans.t2s(false, text); + } catch (Exception e) { + return ""; + } + } + + @Keep + @Function + public String aesX(String mode, boolean encrypt, String input, boolean inBase64, String key, String iv, boolean outBase64) { + String result = Crypto.aes(mode, encrypt, input, inBase64, key, iv, outBase64); + //LOG.e("aesX",String.format("mode:%s\nencrypt:%s\ninBase64:%s\noutBase64:%s\nkey:%s\niv:%s\ninput:\n%s\nresult:\n%s", mode, encrypt, inBase64, outBase64, key, iv, input, result)); + return result; + } + + @Keep + @Function + public String rsaX(String mode, boolean pub, boolean encrypt, String input, boolean inBase64, String key, boolean outBase64) { + String result = Crypto.rsa(pub, encrypt, input, inBase64, key, outBase64); + //LOG.e("aesX",String.format("mode:%s\npub:%s\nencrypt:%s\ninBase64:%s\noutBase64:%s\nkey:\n%s\ninput:\n%s\nresult:\n%s", mode, pub, encrypt, inBase64, outBase64, key, input, result)); + return result; + } + + @Keep + @Function + public String rsaEncrypt(String data, String key) { + return rsaEncrypt(data, key, null); + } + /** + * RSA 加密 + * + * @param data 要加密的数据 + * @param key 密钥,type 为 1 则公钥,type 为 2 则私钥 + * @param options 加密的选项,包含加密配置和类型:{ config: "RSA/ECB/PKCS1Padding", type: 1, long: 1 } + * config 加密的配置,默认 RSA/ECB/PKCS1Padding (可选) + * type 加密类型,1 公钥加密 私钥解密,2 私钥加密 公钥解密(可选,默认 1) + * long 加密方式,1 普通,2 分段(可选,默认 1) + * block 分段长度,false 固定117,true 自动(可选,默认 true ) + * @return 返回加密结果 + */ + + @Keep + @Function + public String rsaEncrypt(String data, String key, JSObject options) { + int mLong = 1; + int mType = 1; + boolean mBlock = true; + String mConfig = null; + if (options != null) { + JSONObject op = options.toJsonObject(); + if (op.has("config")) { + try { + mConfig = (String) op.get("config"); + } catch (Exception e) { + e.printStackTrace(); + } + } + if (op.has("type")) { + try { + mType = ((Double) op.get("type")).intValue(); + } catch (Exception e) { + e.printStackTrace(); + } + } + if (op.has("long")) { + try { + mLong = ((Double) op.get("long")).intValue(); + } catch (Exception e) { + e.printStackTrace(); + } + } + if (op.has("block")) { + try { + mBlock = (Boolean) op.get("block"); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + try { + switch (mType) { + case 1: + if (mConfig != null) { + return RSAEncrypt.encryptByPublicKey(data, key, mConfig, mLong, mBlock); + } else { + return RSAEncrypt.encryptByPublicKey(data, key, mLong, mBlock); + } + case 2: + if (mConfig != null) { + return RSAEncrypt.encryptByPrivateKey(data, key, mConfig, mLong, mBlock); + } else { + return RSAEncrypt.encryptByPrivateKey(data, key, mLong, mBlock); + } + default: + return ""; + } + } catch (Exception e) { + return ""; + } + } + + @Keep + @Function + public String rsaDecrypt(String encryptBase64Data, String key) { + return rsaDecrypt(encryptBase64Data, key, null); + } + + /** + * RSA 解密 + * + * @param encryptBase64Data 加密后的 Base64 字符串 + * @param key 密钥,type 为 1 则私钥,type 为 2 则公钥 + * @param options 解密的选项,包含解密配置和类型:{ config: "RSA/ECB/PKCS1Padding", type: 1, long: 1 } + * config 解密的配置,默认 RSA/ECB/PKCS1Padding (可选) + * type 解密类型,1 公钥加密 私钥解密,2 私钥加密 公钥解密(可选,默认 1) + * long 解密方式,1 普通,2 分段(可选,默认 1) + * block 分段长度,false 固定128,true 自动(可选,默认 true ) + * @return 返回解密结果 + */ + @Keep + @Function + public String rsaDecrypt(String encryptBase64Data, String key, JSObject options) { + int mLong = 1; + int mType = 1; + boolean mBlock = true; + String mConfig = null; + if (options != null) { + JSONObject op = options.toJsonObject(); + if (op.has("config")) { + try { + mConfig = (String) op.get("config"); + } catch (Exception e) { + e.printStackTrace(); + } + } + if (op.has("type")) { + try { + mType = ((Double) op.get("type")).intValue(); + } catch (Exception e) { + e.printStackTrace(); + } + } + if (op.has("long")) { + try { + mLong = ((Double) op.get("long")).intValue(); + } catch (Exception e) { + e.printStackTrace(); + } + } + if (op.has("block")) { + try { + mBlock = (Boolean) op.get("block"); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + try { + switch (mType) { + case 1: + if (mConfig != null) { + return RSAEncrypt.decryptByPrivateKey(encryptBase64Data, key, mConfig, mLong, mBlock); + } else { + return RSAEncrypt.decryptByPrivateKey(encryptBase64Data, key, mLong, mBlock); + } + case 2: + if (mConfig != null) { + return RSAEncrypt.decryptByPublicKey(encryptBase64Data, key, mConfig, mLong, mBlock); + } else { + return RSAEncrypt.decryptByPublicKey(encryptBase64Data, key, mLong, mBlock); + } + default: + return ""; + } + } catch (Exception e) { + return ""; + } + } + + private JSObject req(String url, JSObject options) { + try { + Req req = Req.objectFrom(options.toJsonObject().toString()); + Response res = Connect.to(url, req).execute(); + return Connect.success(runtime, req, res); + } catch (Exception e) { + return Connect.error(runtime); + } + } + + @Keep + @Function + public JSObject _http(String url, JSObject options) { + JSFunction complete = options.getJSFunction("complete"); + if (complete == null) return req(url, options); + Req req = Req.objectFrom(options.toJsonObject().toString()); + Connect.to(url, req).enqueue(getCallback(complete, req)); + return null; + } + + @Keep + @Function + public void setTimeout(JSFunction func, Integer delay) { + func.hold(); + timer.schedule(new TimerTask() { + @Override + public void run() { + if (!executor.isShutdown()) executor.submit(() -> {func.call();}); + } + }, delay); + } + + private Callback getCallback(JSFunction complete, Req req) { + return new Callback() { + @Override + public void onResponse(@NonNull Call call, @NonNull Response res) { + executor.submit(() -> { + complete.call(Connect.success(runtime, req, res)); + }); + } + + @Override + public void onFailure(@NonNull Call call, @NonNull IOException e) { + executor.submit(() -> { + complete.call(Connect.error(runtime)); + }); + } + }; + } + @Keep + // 声明用于依赖注入的 QuickJSContext + @ContextSetter + public void setJSContext(QuickJSContext runtime) { + this.runtime = runtime; + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/github/tvbox/osc/util/js/HtmlParser.java b/app/src/main/java/com/github/tvbox/osc/util/js/HtmlParser.java index 413c7fe9ba..8e7dc093cb 100644 --- a/app/src/main/java/com/github/tvbox/osc/util/js/HtmlParser.java +++ b/app/src/main/java/com/github/tvbox/osc/util/js/HtmlParser.java @@ -2,7 +2,7 @@ import android.text.TextUtils; -import com.github.tvbox.quickjs.JSUtils; +import com.github.tvbox.osc.util.StringUtils; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; @@ -14,26 +14,39 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import java.util.regex.Matcher; import java.util.regex.Pattern; public class HtmlParser { private static String pdfh_html = ""; private static String pdfa_html = ""; - + private static final Pattern p = Pattern.compile("url\\((.*?)\\)", Pattern.MULTILINE | Pattern.DOTALL); + private static final Pattern NOADD_INDEX = Pattern.compile(":eq|:lt|:gt|:first|:last|^body$|^#"); // 不自动加eq下标索引 + private static final Pattern URLJOIN_ATTR = Pattern.compile("(url|src|href|-original|-src|-play|-url|style)$", Pattern.MULTILINE | Pattern.CASE_INSENSITIVE); // 需要自动urljoin的属性 + private static final Pattern SPECIAL_URL = Pattern.compile("^(ftp|magnet|thunder|ws):", Pattern.MULTILINE | Pattern.CASE_INSENSITIVE); // 过滤特殊链接,不走urlJoin private static Document pdfh_doc = null; private static Document pdfa_doc = null; public static String joinUrl(String parent, String child) { - if (JSUtils.isEmpty(parent)) { + if (StringUtils.isEmpty(parent)) { return child; } + + URL url; + String q = parent; try { - return new URL(new URL(parent), child).toExternalForm(); + url = new URL(new URL(parent), child); + q = url.toExternalForm(); } catch (MalformedURLException e) { e.printStackTrace(); - return parent; } +// if (q.contains("#")) { +// q = q.replaceAll("^(.+?)#.*?$", "$1"); +// } + return q; } public static class Painfo { @@ -84,7 +97,7 @@ private static Painfo getParseInfo(String nparse) { } public static boolean isIndex(String str) { - if (JSUtils.isEmpty(str)) { + if (StringUtils.isEmpty(str)) { return false; } for (String str2 : new String[]{":eq", ":lt", ":gt", ":first", ":last", "body", "#"}) { @@ -99,7 +112,7 @@ public static boolean isIndex(String str) { } public static boolean isUrl(String str) { - if (JSUtils.isEmpty(str)) { + if (StringUtils.isEmpty(str)) { return false; } for (String str2 : new String[]{"url", "src", "href", "-original", "-play"}) { @@ -124,7 +137,9 @@ private static String parseHikerToJq(String parse, boolean first) { for (int i = 0; i < parses.length; i++) { String[] pss = parses[i].split(" "); String ps = pss[pss.length - 1]; //如果分割&&后带空格就取最后一个元素 - if (!isIndex(ps)) { + Matcher m = NOADD_INDEX.matcher(ps); + //if (!isIndex(ps)) { + if (!m.find()) { if (!first && i >= parses.length - 1) { //不传first且遇到最后一个,不用补eq(0) new_parses.add(parses[i]); } else { @@ -138,7 +153,9 @@ private static String parseHikerToJq(String parse, boolean first) { } else { String[] pss = parse.split(" "); String ps = pss[pss.length - 1]; //如果分割&&后带空格就取最后一个元素 - if (!isIndex(ps) && first) { + Matcher m = NOADD_INDEX.matcher(ps); + //if (!isIndex(ps) && first) { + if (!m.find() && first) { parse = parse + ":eq(0)"; } } @@ -174,7 +191,7 @@ public static String parseDomForUrl(String html, String rule, String add_url) { } } String result; - if (JSUtils.isNotEmpty(option)) { + if (StringUtils.isNotEmpty(option)) { if (option.equals("Text")) { result = ret.text(); } else if (option.equals("Html")) { @@ -182,14 +199,21 @@ public static String parseDomForUrl(String html, String rule, String add_url) { } else { result = ret.attr(option); if (option.toLowerCase().contains("style") && result.contains("url(")) { - Matcher m = Pattern.compile("url\\((.*?)\\)", Pattern.MULTILINE | Pattern.DOTALL).matcher(result); + Matcher m = p.matcher(result); if (m.find()) { result = m.group(1); } + if (StringUtils.isNotEmpty(result)) { + // 2023/07/28新增 style取内部链接自动去除首尾单双引号 + result = result.replaceAll("^['|\"](.*)['|\"]$", "$1"); + } } - if (JSUtils.isNotEmpty(result) && JSUtils.isNotEmpty(add_url)) { + if (StringUtils.isNotEmpty(result) && StringUtils.isNotEmpty(add_url)) { // 需要自动urljoin的属性 - if (isUrl(option)) { + Matcher m = URLJOIN_ATTR.matcher(option); + Matcher n = SPECIAL_URL.matcher(result); + //if (isUrl(option)) { + if (m.find() && !n.find()) { if (result.contains("http")) { result = result.substring(result.indexOf("http")); } else { @@ -205,7 +229,7 @@ public static String parseDomForUrl(String html, String rule, String add_url) { } - public static List parseDomForList(String html, String rule) { + public static List parseDomForArray(String html, String rule) { if (!pdfa_html.equals(html)) { pdfa_html = html; pdfa_doc = Jsoup.parse(html); @@ -214,8 +238,8 @@ public static List parseDomForList(String html, String rule) { rule = parseHikerToJq(rule, false); String[] parses = rule.split(" "); Elements ret = new Elements(); - for (String nparse : parses) { - ret = parseOneRule(doc, nparse, ret); + for (String pars : parses) { + ret = parseOneRule(doc, pars, ret); if (ret.isEmpty()) { return new ArrayList<>(); } @@ -230,40 +254,48 @@ public static List parseDomForList(String html, String rule) { private static Elements parseOneRule(Document doc, String nparse, Elements ret) { Painfo painfo = getParseInfo(nparse); - if (nparse.contains(":eq")) { - if (ret.isEmpty()) { - if(painfo.nparse_index < 0){ - Elements r = doc.select(painfo.nparse_rule); - ret = r.eq(r.size() + painfo.nparse_index); - } else { - ret = doc.select(painfo.nparse_rule).eq(painfo.nparse_index); - } - } else { - if(painfo.nparse_index < 0){ - Elements r = ret.select(painfo.nparse_rule); - ret = r.eq(r.size() + painfo.nparse_index); - } else { - ret = ret.select(painfo.nparse_rule).eq(painfo.nparse_index); - } - } + if (ret.isEmpty()) { + ret = doc.select(painfo.nparse_rule); } else { - if (ret.isEmpty()) { - ret = doc.select(nparse); + ret = ret.select(painfo.nparse_rule); + } + + if (nparse.contains(":eq")) { + if(painfo.nparse_index < 0){ + ret = ret.eq(ret.size() + painfo.nparse_index); } else { - ret = ret.select(nparse); + ret = ret.eq(painfo.nparse_index); } } + if (painfo.excludes != null && !ret.isEmpty()) { ret = ret.clone(); //克隆一个, 免得直接remove会影响doc的缓存 for (String exclude : painfo.excludes) { ret.select(exclude).remove(); - //ret = ret.not(exclude).remove(); - //Elements selector = ret.select(exclude); - //for (Element element : selector) { - // element.remove(); - //} } } return ret; } + + public static List parseDomForList(String html, String p1, String list_text, String list_url, String add_url) { + if (!pdfa_html.equals(html)) { + pdfa_html = html; + pdfa_doc = Jsoup.parse(html); + } + Document doc = pdfa_doc; + p1 = parseHikerToJq(p1, false); + String[] parses = p1.split(" "); + Elements ret = new Elements(); + for (String pars : parses) { + ret = parseOneRule(doc, pars, ret); + if (ret.isEmpty()) { + return new ArrayList<>(); + } + } + List new_vod_list = new ArrayList<>(); + for(Element it : ret){ + new_vod_list.add(parseDomForUrl(it.outerHtml(), list_text, "").trim() + '$' + parseDomForUrl(it.outerHtml(), list_url, add_url)); + } + return new_vod_list; + } } diff --git a/app/src/main/java/com/github/tvbox/osc/util/js/JSEngine.java b/app/src/main/java/com/github/tvbox/osc/util/js/JSEngine.java deleted file mode 100644 index 21cfac0584..0000000000 --- a/app/src/main/java/com/github/tvbox/osc/util/js/JSEngine.java +++ /dev/null @@ -1,478 +0,0 @@ -package com.github.tvbox.osc.util.js; - -import android.content.Context; -import android.content.SharedPreferences; -import android.os.Handler; -import android.os.HandlerThread; -import android.util.Base64; -import android.util.Log; - -import com.github.tvbox.osc.base.App; -import com.github.tvbox.osc.util.OkGoHelper; -import com.github.tvbox.quickjs.JSArray; -import com.github.tvbox.quickjs.JSCallFunction; -import com.github.tvbox.quickjs.JSModule; -import com.github.tvbox.quickjs.JSObject; -import com.github.tvbox.quickjs.QuickJSContext; -import com.google.gson.Gson; -import com.lzy.okgo.OkGo; - -import org.json.JSONObject; - -import java.io.InputStream; -import java.net.URL; -import java.util.Iterator; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.TimeUnit; - -import okhttp3.Headers; -import okhttp3.MediaType; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.RequestBody; -import okhttp3.Response; - -public class JSEngine { - private static final String TAG = "JSEngine"; - - static JSEngine instance = null; - - public static JSEngine getInstance() { - if (instance == null) - instance = new JSEngine(); - return instance; - } - - public class JSThread { - private QuickJSContext jsContext; - private Handler handler; - private Thread thread; - private volatile byte retain; - - public QuickJSContext getJsContext() { - return jsContext; - } - - public JSObject getGlobalObj() { - return jsContext.getGlobalObject(); - } - - public T post(Event event) throws Throwable { - if ((thread != null && thread.isInterrupted())) { - Log.e("QuickJS", "QuickJS is released"); - return null; - } - if (Thread.currentThread() == thread) { - return event.run(jsContext, getGlobalObj()); - } - if (handler == null) { - return event.run(jsContext, getGlobalObj()); - } - Object[] result = new Object[2]; - RuntimeException[] errors = new RuntimeException[1]; - handler.post(() -> { - try { - result[0] = event.run(jsContext, getGlobalObj()); - } catch (RuntimeException e) { - errors[0] = e; - } - synchronized (result) { - result[1] = true; - result.notifyAll(); - } - }); - synchronized (result) { - try { - if (result[1] == null) { - result.wait(); - } - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - if (errors[0] != null) { - throw errors[0]; - } - return (T) result[0]; - } - - public void postVoid(Event event) throws Throwable { - postVoid(event, true); - } - - public void postVoid(Event event, boolean block) throws Throwable { - if ((thread != null && thread.isInterrupted())) { - Log.e("QuickJS", "QuickJS is released"); - return; - } - if (Thread.currentThread() == thread) { - event.run(jsContext, getGlobalObj()); - return; - } - if (handler == null) { - event.run(jsContext, getGlobalObj()); - return; - } - Object[] result = new Object[2]; - RuntimeException[] errors = new RuntimeException[1]; - handler.post(() -> { - try { - event.run(jsContext, getGlobalObj()); - } catch (RuntimeException e) { - errors[0] = e; - } - if (block) { - synchronized (result) { - result[1] = true; - result.notifyAll(); - } - } - }); - if (block) { - synchronized (result) { - try { - if (result[1] == null) { - result.wait(); - } - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - if (errors[0] != null) { - throw errors[0]; - } - } - } - - public void init() { - initConsole(); - initOkHttp(); - initLocalStorage(); - } - - void initConsole() { - jsContext.evaluate("var console = {};"); - JSObject console = (JSObject) jsContext.getGlobalObject().getProperty("console"); - console.setProperty("log", new JSCallFunction() { - @Override - public Object call(Object... args) { - StringBuilder b = new StringBuilder(); - for (Object o : args) { - b.append(o == null ? "null" : o.toString()); - } - System.out.println(TAG + " >>> " + b.toString()); - return null; - } - }); - } - - void initLocalStorage() { - jsContext.evaluate("var local = {};"); - JSObject console = (JSObject) jsContext.getGlobalObject().getProperty("local"); - console.setProperty("get", new JSCallFunction() { - @Override - public Object call(Object... args) { - SharedPreferences sharedPreferences = App.getInstance().getSharedPreferences("js_engine_" + args[0].toString(), Context.MODE_PRIVATE); - return sharedPreferences.getString(args[1].toString(), ""); - } - }); - console.setProperty("set", new JSCallFunction() { - @Override - public Object call(Object... args) { - SharedPreferences sharedPreferences = App.getInstance().getSharedPreferences("js_engine_" + args[0].toString(), Context.MODE_PRIVATE); - sharedPreferences.edit().putString(args[1].toString(), args[2].toString()).commit(); - return null; - } - }); - console.setProperty("delete", new JSCallFunction() { - @Override - public Object call(Object... args) { - SharedPreferences sharedPreferences = App.getInstance().getSharedPreferences("js_engine_" + args[0].toString(), Context.MODE_PRIVATE); - sharedPreferences.edit().remove(args[1].toString()).commit(); - return null; - } - }); - } - - void initOkHttp() { - jsContext.getGlobalObject().setProperty("req", new JSCallFunction() { - @Override - public Object call(Object... args) { - try { - String url = args[0].toString(); - JSONObject opt = new JSONObject(jsContext.stringify((JSObject) args[1])); - Headers.Builder headerBuilder = new Headers.Builder(); - JSONObject optHeader = opt.optJSONObject("headers"); - if (optHeader != null) { - Iterator hdKeys = optHeader.keys(); - while (hdKeys.hasNext()) { - String k = hdKeys.next(); - String v = optHeader.optString(k); - headerBuilder.add(k, v); - } - } - Headers headers = headerBuilder.build(); - String method = opt.optString("method", "get"); - Request.Builder requestBuilder = new Request.Builder().url(url).headers(headers).tag("js_okhttp_tag"); - Request request = null; - if (method.equalsIgnoreCase("post")) { - RequestBody body = null; - String data = opt.optString("data", "").trim(); - if (!data.isEmpty()) { - body = RequestBody.create(MediaType.parse("application/json"), data); - } - if (body == null) { - String dataBody = opt.optString("body", "").trim(); - if (!dataBody.isEmpty() && headers.get("Content-Type") != null) { - body = RequestBody.create(MediaType.parse(headers.get("Content-Type")), opt.optString("body", "")); - } - } - if (body == null) { - body = RequestBody.create(null, ""); - } - request = requestBuilder.post(body).build(); - } else if (method.equalsIgnoreCase("header")) { - request = requestBuilder.head().build(); - } else { - request = requestBuilder.get().build(); - } - int redirect = opt.optInt("redirect", 1); - OkHttpClient client = null; - if (redirect == 1) { - client = OkGoHelper.getDefaultClient(); - } else { - client = OkGoHelper.getNoRedirectClient(); - } - OkHttpClient.Builder clientBuilder = client.newBuilder(); - int timeout = 10000; - if (opt.has("timeout")) { - timeout = opt.optInt("timeout"); - } - clientBuilder.readTimeout(timeout, TimeUnit.MILLISECONDS); - clientBuilder.writeTimeout(timeout, TimeUnit.MILLISECONDS); - clientBuilder.connectTimeout(timeout, TimeUnit.MILLISECONDS); - Response response = clientBuilder.build().newCall(request).execute(); - - JSObject jsObject = jsContext.createNewJSObject(); - Set resHeaders = response.headers().names(); - JSObject resHeader = jsContext.createNewJSObject(); - for (String header : resHeaders) { - resHeader.setProperty(header, response.header(header)); - } - jsObject.setProperty("headers", resHeader); - int returnBuffer = opt.optInt("buffer", 0); - if (returnBuffer == 1) { - JSArray array = jsContext.createNewJSArray(); - byte[] bytes = response.body().bytes(); - for (int i = 0; i < bytes.length; i++) { - array.set(bytes[i], i); - } - jsObject.setProperty("content", array); - } else if (returnBuffer == 2) { - jsObject.setProperty("content", Base64.encodeToString(response.body().bytes(), Base64.DEFAULT)); - } else { - String res; - if(headers.get("Content-Type")!=null && headers.get("Content-Type").contains("=")){ - byte[] responseBytes = UTF8BOMFighter.removeUTF8BOM(response.body().bytes()); - res=new String(responseBytes,headers.get("Content-Type").split("=")[1].trim()); - }else { - res=response.body().string(); - } - jsObject.setProperty("content", res); - } - return jsObject; - } catch (Throwable throwable) { - throwable.printStackTrace(); - } - JSObject jsObject = jsContext.createNewJSObject(); - JSObject resHeader = jsContext.createNewJSObject(); - jsObject.setProperty("headers", resHeader); - jsObject.setProperty("content", ""); - return jsObject; - } - }); - jsContext.getGlobalObject().setProperty("joinUrl", new JSCallFunction() { - @Override - public String call(Object... args) { - URL url; - String q=""; - try { - String parent = args[0].toString(); - String child = args[1].toString(); - // TODO - if(parent.isEmpty()){ - return child; - } - url = new URL(new URL(parent),child); - q= url.toExternalForm(); - } catch (Throwable throwable) { - throwable.printStackTrace(); - } - return q; - } - }); - jsContext.getGlobalObject().setProperty("pdfh", new JSCallFunction() { - @Override - public String call(Object... args) { - try { -// LOG.i("pdfh----------------:"+args[1].toString().trim()); - String html=args[0].toString(); - return HtmlParser.parseDomForUrl(html, args[1].toString().trim(), ""); - } catch (Throwable throwable) { - throwable.printStackTrace(); - } - return ""; - } - }); - jsContext.getGlobalObject().setProperty("pdfa", new JSCallFunction() { - @Override - public Object call(Object... args) { - try { -// LOG.i("pdfa----------------:"+args[1].toString().trim()); - String html=args[0].toString(); - return jsContext.parseJSON(new Gson().toJson(HtmlParser.parseDomForList(html, args[1].toString().trim()))); - } catch (Throwable throwable) { - throwable.printStackTrace(); - } - return null; - } - }); - jsContext.getGlobalObject().setProperty("pd", new JSCallFunction() { - @Override - public String call(Object... args) { - try { -// LOG.i("pd----------------:"+args[2].toString().trim()); - String html=args[0].toString(); - return HtmlParser.parseDomForUrl(html, args[1].toString().trim(), args[2].toString()); - } catch (Throwable throwable) { - throwable.printStackTrace(); - } - return ""; - } - }); - } - - } - - private ConcurrentHashMap threads = new ConcurrentHashMap<>(); - static ConcurrentHashMap moduleCache = new ConcurrentHashMap<>(); - - static String loadModule(String name) { - try { - String cache = moduleCache.get(name); - if (cache != null && !cache.isEmpty()) - return cache; - String content = null; - if (name.startsWith("http://") || name.startsWith("https://")) { - content = OkGo.get(name).headers("User-Agent", "Mozilla/5.0").execute().body().string(); - } - if (name.startsWith("assets://")) { - InputStream is = App.getInstance().getAssets().open(name.substring(9)); - byte[] data = new byte[is.available()]; - is.read(data); - content = new String(data, "UTF-8"); - } - if (content != null && !content.isEmpty()) { - moduleCache.put(name, content); - return content; - } - } catch (Exception e) { - e.printStackTrace(); - } - return ""; - } - - public void create() { - System.loadLibrary("quickjs"); - } - - public JSThread getJSThread() { - byte count = Byte.MAX_VALUE; - JSThread thread = null; - for (String name : threads.keySet()) { - JSThread jsThread = threads.get(name); - if (jsThread.retain < count && jsThread.retain < 1) { - thread = jsThread; - count = jsThread.retain; - } - } - if (thread == null) { - Object[] objects = new Object[2]; - String name = "QuickJS-Thread-" + threads.size(); - HandlerThread handlerThread = new HandlerThread(name + "-0"); - handlerThread.start(); - Handler handler = new Handler(handlerThread.getLooper()); - handler.post(() -> { - objects[0] = QuickJSContext.create(); - synchronized (objects) { - objects[1] = true; - objects.notify(); - } - }); - synchronized (objects) { - try { - if (objects[1] == null) { - objects.wait(); - } - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - QuickJSContext jsContext = (QuickJSContext) objects[0]; - JSModule.setModuleLoader(new JSModule.Loader() { - @Override - public String getModuleScript(String moduleName) { - return loadModule(moduleName); - } - }); - JSThread jsThread = new JSThread(); - jsThread.handler = handler; - jsThread.thread = handlerThread; - jsThread.jsContext = jsContext; - jsThread.retain = 0; - thread = jsThread; - try { - jsThread.postVoid((ctx, globalThis) -> { - jsThread.init(); - return null; - }); - } catch (Throwable throwable) { - throwable.printStackTrace(); - } - threads.put(name, jsThread); - } - thread.retain++; - String name = thread.thread.getName(); - name = name.substring(0, name.lastIndexOf("-") + 1) + thread.retain; - thread.thread.setName(name); - return thread; - } - - public void destroy() { - for (String name : threads.keySet()) { - JSThread jsThread = threads.get(name); - if (jsThread != null && jsThread.thread != null) { - jsThread.thread.interrupt(); - } - if (jsThread.jsContext != null) { - jsThread.jsContext.destroyContext(); - } - } - threads.clear(); - } - - public void stopAll() { - OkGo.getInstance().cancelTag("js_okhttp_tag"); - for (String name : threads.keySet()) { - JSThread jsThread = threads.get(name); - if (jsThread.handler != null) { - jsThread.handler.removeCallbacksAndMessages(null); - } - } - } - - public interface Event { - T run(QuickJSContext ctx, JSObject globalThis); - } -} diff --git a/app/src/main/java/com/github/tvbox/osc/util/js/JsSpider.java b/app/src/main/java/com/github/tvbox/osc/util/js/JsSpider.java new file mode 100644 index 0000000000..cb29e333d6 --- /dev/null +++ b/app/src/main/java/com/github/tvbox/osc/util/js/JsSpider.java @@ -0,0 +1,352 @@ +package com.github.tvbox.osc.util.js; + +import android.content.Context; +import android.text.TextUtils; +import android.util.Base64; +import com.whl.quickjs.wrapper.UriUtil; +import com.github.catvod.crawler.Spider; +import com.github.tvbox.osc.util.FileUtils; +import com.github.tvbox.osc.util.LOG; +import com.github.tvbox.osc.util.MD5; + +import com.whl.quickjs.android.QuickJSLoader; +import com.whl.quickjs.wrapper.Function; +import com.whl.quickjs.wrapper.JSArray; + +import com.whl.quickjs.wrapper.JSCallFunction; +import com.whl.quickjs.wrapper.JSObject; +import com.whl.quickjs.wrapper.JSUtils; +import com.whl.quickjs.wrapper.QuickJSContext; + +import org.json.JSONArray; + +import java.io.ByteArrayInputStream; +import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; + +import java9.util.concurrent.CompletableFuture; + +public class JsSpider extends Spider { + + private final ExecutorService executor; + private final Class dex; + private QuickJSContext ctx; + private JSObject jsObject; + private final String key; + private final String api; + private boolean cat; + + public JsSpider(String key, String api, Class cls) throws Exception { + this.key = "J" + MD5.encode(key); + this.executor = Executors.newSingleThreadExecutor(); + this.api = api; + this.dex = cls; + initializeJS(); + } + public void cancelByTag() { + Connect.cancelByTag("js_okhttp_tag"); + } + + private void submit(Runnable runnable) { + executor.submit(runnable); + } + + private Future submit(Callable callable) { + return executor.submit(callable); + } + + private Object call(String func, Object... args) throws Exception { + //return executor.submit((FunCall.call(jsObject, func, args))).get(); + return CompletableFuture.supplyAsync(() -> Async.run(jsObject, func, args), executor).join().get(); + } + + private JSObject cfg(String ext) { + JSObject cfg = ctx.createJSObject(); + cfg.set("stype", 3); + cfg.set("skey", key); + if (Json.invalid(ext)) cfg.set("ext", ext); + else cfg.set("ext", (JSObject) ctx.parse(ext)); + return cfg; + } + + @Override + public void init(Context context, String extend) throws Exception { + if (cat) call("init", submit(() -> cfg(extend)).get()); + else call("init", Json.valid(extend) ? ctx.parse(extend) : extend); + } + + @Override + public String homeContent(boolean filter) throws Exception { + return (String) call("home", filter); + } + + @Override + public String homeVideoContent() throws Exception { + return (String) call("homeVod"); + } + + @Override + public String categoryContent(String tid, String pg, boolean filter, HashMap extend) throws Exception { + JSObject obj = submit(() -> new JSUtils().toObj(ctx, extend)).get(); + return (String) call("category", tid, pg, filter, obj); + } + + @Override + public String detailContent(List ids) throws Exception { + return (String) call("detail", ids.get(0)); + } + + @Override + public String searchContent(String key, boolean quick) throws Exception { + return (String) call("search", key, quick); + } + + @Override + public String searchContent(String key, boolean quick, String pg) throws Exception { + return (String) call("search", key, quick, pg); + } + + @Override + public String playerContent(String flag, String id, List vipFlags) throws Exception { + JSArray array = submit(() -> new JSUtils().toArray(ctx, vipFlags)).get(); + return (String) call("play", flag, id, array); + } + + @Override + public boolean manualVideoCheck() throws Exception { + return (Boolean) call("sniffer"); + } + + @Override + public boolean isVideoFormat(String url) throws Exception { + return (Boolean) call("isVideo", url); + } + + @Override + public Object[] proxyLocal(Map params) throws Exception { + if ("catvod".equals(params.get("from"))) return proxy2(params); + else return submit(() -> proxy1(params)).get(); + } + + @Override + public void destroy() { + submit(() -> { + executor.shutdownNow(); + ctx.destroy(); + }); + } + + private static final String SPIDER_STRING_CODE = "import * as spider from '%s'\n\n" + + "if (!globalThis.__JS_SPIDER__) {\n" + + " if (spider.__jsEvalReturn) {\n" + + " globalThis.req = http\n" + + " globalThis.__JS_SPIDER__ = spider.__jsEvalReturn()\n" + + " globalThis.__JS_SPIDER__.is_cat = true\n" + + " } else if (spider.default) {\n" + + " globalThis.__JS_SPIDER__ = typeof spider.default === 'function' ? spider.default() : spider.default\n" + + " }\n" + + "}"; + private void initializeJS() throws Exception { + submit(() -> { + if (ctx == null) createCtx(); + if (dex != null) createDex(); + + String content = FileUtils.loadModule(api); + if(content.startsWith("//bb")){ + cat = true; + byte[] b = Base64.decode(content.replace("//bb",""), 0); + //ctx.execute(byteFF(b), key + ".js"); + //ctx.evaluateModule(String.format(SPIDER_STRING_CODE, key + ".js") + "globalThis." + key + " = __JS_SPIDER__;", "tv_box_root.js"); + ctx.execute(byteFF(b), key + ".js","__jsEvalReturn"); + ctx.evaluate("globalThis." + key + " = __JS_SPIDER__;"); + } else { + if (content.contains("__JS_SPIDER__")) { + content = content.replaceAll("__JS_SPIDER__\\s*=", "export default "); + } + String moduleExtName = "default"; + if (content.contains("__jsEvalReturn") && !content.contains("export default")) { + moduleExtName = "__jsEvalReturn"; + cat = true; + } + //ctx.evaluateModule(content, api); + //ctx.evaluateModule(String.format(SPIDER_STRING_CODE, api) + "globalThis." + key + " = __JS_SPIDER__;", "tv_box_root.js"); + ctx.evaluateModule(content, api, moduleExtName); + ctx.evaluate("globalThis." + key + " = __JS_SPIDER__;"); + } + jsObject = (JSObject) ctx.get(ctx.getGlobalObject(), key); + return null; + }).get(); + } + + public static byte[] byteFF(byte[] bytes) { + byte[] newBt = new byte[bytes.length - 4]; + newBt[0] = 1; + System.arraycopy(bytes, 5, newBt, 1, bytes.length - 5); + return newBt; + } + + private void createCtx() { + ctx = QuickJSContext.create(); + ctx.setModuleLoader(new QuickJSContext.BytecodeModuleLoader() { + @Override + public byte[] getModuleBytecode(String moduleName) { + String ss = FileUtils.loadModule(moduleName); + if(ss.startsWith("//DRPY")){ + return Base64.decode(ss.replace("//DRPY",""), Base64.URL_SAFE); + } else if(ss.startsWith("//bb")){ + byte[] b = Base64.decode(ss.replace("//bb",""), 0); + return byteFF(b); + } else { + /*if (moduleName.contains("cheerio.min.js")) { + FileUtils.setCacheByte("cheerio.min", ctx.compileModule(ss, "cheerio.min.js")); + } else if (moduleName.contains("crypto-js.js")) { + FileUtils.setCacheByte("crypto-js", ctx.compileModule(ss, "crypto-js.js")); + }*/ + return ctx.compileModule(ss, moduleName); + } + } + + @Override + public String moduleNormalizeName(String moduleBaseName, String moduleName) { + return UriUtil.resolve(moduleBaseName, moduleName); + } + }); + ctx.setConsole(new QuickJSContext.Console() { + @Override + public void log(String s) { + LOG.i("QuJs", s); + } + }); + + ctx.getGlobalObject().bind(new Global(executor)); + + JSObject local = ctx.createJSObject(); + ctx.getGlobalObject().set("local", local); + local.bind(new local()); + + ctx.getGlobalObject().getContext().evaluate(FileUtils.loadModule("net.js")); + } + + private void createDex() { + try { + JSObject obj = ctx.createJSObject(); + Class clz = dex; + Class[] classes = clz.getDeclaredClasses(); + ctx.getGlobalObject().set("jsapi", obj); + if (classes.length == 0) invokeSingle(clz, obj); + if (classes.length >= 1) invokeMultiple(clz, obj); + } catch (Throwable e) { + e.printStackTrace(); + LOG.e(e); + } + } + + private void invokeSingle(Class clz, JSObject jsObj) throws Throwable { + invoke(clz, jsObj, clz.getDeclaredConstructor(QuickJSContext.class).newInstance(ctx)); + } + + private void invokeMultiple(Class clz, JSObject jsObj) throws Throwable { + for (Class subClz : clz.getDeclaredClasses()) { + Object javaObj = subClz.getDeclaredConstructor(clz).newInstance(clz.getDeclaredConstructor(QuickJSContext.class).newInstance(ctx)); + JSObject subObj = ctx.createJSObject(); + invoke(subClz, subObj, javaObj); + jsObj.set(subClz.getSimpleName(), subObj); + } + } + + private void invoke(Class clz, JSObject jsObj, Object javaObj) { + for (Method method : clz.getMethods()) { + if (!method.isAnnotationPresent(Function.class)) continue; + invoke(jsObj, method, javaObj); + } + } + + private void invoke(JSObject jsObj, Method method, Object javaObj) { + jsObj.set(method.getName(), new JSCallFunction() { + @Override + public Object call(Object... objects) { + try { + return method.invoke(javaObj, objects); + } catch (Throwable e) { + return null; + } + } + }); + } + + private String getContent() { + String global = "globalThis." + key; + String content = FileUtils.loadModule(api); + if (content.contains("__jsEvalReturn")) { + ctx.evaluate("req = http"); + return content.concat(global).concat(" = __jsEvalReturn()"); + } else if (content.contains("__JS_SPIDER__")) { + return content.replace("__JS_SPIDER__", global); + } else { + return content.replaceAll("export default.*?[{]", global + " = {"); + } + } + + private Object[] proxy1(Map params) { + JSObject object = new JSUtils().toObj(ctx, params); + JSONArray array = ((JSArray) jsObject.getJSFunction("proxy").call(object)).toJsonArray(); + Object[] result = new Object[3]; + result[0] = array.opt(0); + result[1] = array.opt(1); + result[2] = getStream(array.opt(2)); + return result; + } + + + private Object[] proxy2(Map params) throws Exception { + String url = params.get("url"); + String header = params.get("header"); + JSArray array = submit(() -> new JSUtils().toArray(ctx, Arrays.asList(url.split("/")))).get(); + Object object = submit(() -> ctx.parse(header)).get(); + String json = (String) call("proxy", array, object); + Res res = Res.objectFrom(json); + String contentType = res.getContentType(); + if (TextUtils.isEmpty(contentType)) contentType = "application/octet-stream"; + Object[] result = new Object[3]; + result[0] = 200; + result[1] = contentType; + if (res.getBuffer() == 2) { + result[2] = new ByteArrayInputStream(Base64.decode(res.getContent(), Base64.DEFAULT)); + } else { + result[2] = new ByteArrayInputStream(res.getContent().getBytes()); + } + return result; + } + + /* private Object[] proxy2(Map params) throws Exception { + String url = params.get("url"); + String header = params.get("header"); + JSArray array = submit(() -> new JSUtils().toArray(ctx, Arrays.asList(url.split("/")))).get(); + Object object = submit(() -> ctx.parse(header)).get(); + String json = (String) call("proxy", array, object); + Res res = Res.objectFrom(json); + Object[] result = new Object[3]; + result[0] = 200; + result[1] = "application/octet-stream"; + result[2] = new ByteArrayInputStream(Base64.decode(res.getContent(), Base64.DEFAULT)); + return result; + }*/ + + private ByteArrayInputStream getStream(Object o) { + if (o instanceof JSONArray) { + JSONArray a = (JSONArray) o; + byte[] bytes = new byte[a.length()]; + for (int i = 0; i < a.length(); i++) bytes[i] = (byte) a.optInt(i); + return new ByteArrayInputStream(bytes); + } else { + return new ByteArrayInputStream(o.toString().getBytes()); + } + } +} diff --git a/app/src/main/java/com/github/tvbox/osc/util/js/Json.java b/app/src/main/java/com/github/tvbox/osc/util/js/Json.java new file mode 100644 index 0000000000..579cc0da21 --- /dev/null +++ b/app/src/main/java/com/github/tvbox/osc/util/js/Json.java @@ -0,0 +1,68 @@ +package com.github.tvbox.osc.util.js; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class Json { + + public static boolean valid(String text) { + try { + new JSONObject(text); + return true; + } catch (Exception e) { + return false; + } + } + + public static boolean invalid(String text) { + return !valid(text); + } + + public static String safeString(JsonObject obj, String key) { + try { + return obj.getAsJsonPrimitive(key).getAsString().trim(); + } catch (Exception e) { + return ""; + } + } + + public static List safeListString(JsonObject obj, String key) { + List result = new ArrayList<>(); + if (!obj.has(key)) return result; + if (obj.get(key).isJsonObject()) result.add(safeString(obj, key)); + else for (JsonElement opt : obj.getAsJsonArray(key)) result.add(opt.getAsString()); + return result; + } + + public static List safeListElement(JsonObject obj, String key) { + List result = new ArrayList<>(); + if (!obj.has(key)) return result; + if (obj.get(key).isJsonObject()) result.add(obj.get(key).getAsJsonObject()); + for (JsonElement opt : obj.getAsJsonArray(key)) result.add(opt.getAsJsonObject()); + return result; + } + + public static JsonObject safeObject(JsonElement element) { + try { + if (element.isJsonPrimitive()) element = JsonParser.parseString(element.getAsJsonPrimitive().getAsString()); + return element.getAsJsonObject(); + } catch (Exception e) { + return new JsonObject(); + } + } + + public static Map toMap(JsonElement element) { + Map map = new HashMap<>(); + JsonObject object = safeObject(element); + for (String key : object.keySet()) map.put(key, safeString(object, key)); + return map; + } +} diff --git a/app/src/main/java/com/github/tvbox/osc/util/js/Req.java b/app/src/main/java/com/github/tvbox/osc/util/js/Req.java new file mode 100644 index 0000000000..883e83d9f9 --- /dev/null +++ b/app/src/main/java/com/github/tvbox/osc/util/js/Req.java @@ -0,0 +1,84 @@ +package com.github.tvbox.osc.util.js; + +import android.text.TextUtils; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.annotations.SerializedName; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +public class Req { + + @SerializedName("buffer") + private Integer buffer; + @SerializedName("redirect") + private Integer redirect; + @SerializedName("timeout") + private Integer timeout; + @SerializedName("postType") + private String postType; + @SerializedName("method") + private String method; + @SerializedName("body") + private String body; + @SerializedName("data") + private JsonElement data; + @SerializedName("headers") + private JsonElement headers; + + public static Req objectFrom(String json) { + return new Gson().fromJson(json, Req.class); + } + + public int getBuffer() { + return buffer == null ? 0 : buffer; + } + + public Integer getRedirect() { + return redirect == null ? 1 : redirect; + } + + public Integer getTimeout() { + return timeout == null ? 10000 : timeout; + } + + public String getPostType() { + return TextUtils.isEmpty(postType) ? "json" : postType; + } + + public String getMethod() { + return TextUtils.isEmpty(method) ? "get" : method; + } + + public String getBody() { + return body; + } + + public JsonElement getData() { + return data; + } + + private JsonElement getHeaders() { + return headers; + } + + public Map getHeader() { + return Json.toMap(getHeaders()); + } + + public String getCharset() { + Map header = getHeader(); + List keys = Arrays.asList("Content-Type", "content-type"); + for (String key : keys) if (header.containsKey(key)) return getCharset(Objects.requireNonNull(header.get(key))); + return "UTF-8"; + } + + private String getCharset(String value) { + for (String text : value.split(";")) if (text.contains("charset=")) return text.split("=")[1]; + return "UTF-8"; + } +} diff --git a/app/src/main/java/com/github/tvbox/osc/util/js/Res.java b/app/src/main/java/com/github/tvbox/osc/util/js/Res.java new file mode 100644 index 0000000000..876affa53d --- /dev/null +++ b/app/src/main/java/com/github/tvbox/osc/util/js/Res.java @@ -0,0 +1,62 @@ +package com.github.tvbox.osc.util.js; + +import android.text.TextUtils; +import android.util.Base64; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.annotations.SerializedName; + +import java.io.ByteArrayInputStream; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +public class Res { + + @SerializedName("code") + private Integer code; + @SerializedName("buffer") + private Integer buffer; + @SerializedName("content") + private String content; + @SerializedName("headers") + private JsonElement headers; + + public static Res objectFrom(String json) { + return new Gson().fromJson(json, Res.class); + } + + public int getCode() { + return code == null ? 200 : code; + } + + public int getBuffer() { + return buffer == null ? 0 : buffer; + } + + public String getContent() { + return TextUtils.isEmpty(content) ? "" : content; + } + + private JsonElement getHeaders() { + return headers; + } + + public Map getHeader() { + return Json.toMap(getHeaders()); + } + + public String getContentType() { + Map header = getHeader(); + List keys = Arrays.asList("Content-Type", "content-type"); + for (String key : keys) if (header.containsKey(key)) return Objects.requireNonNull(header.get(key)); + return "application/octet-stream"; + } + + public ByteArrayInputStream getStream() { + if (getBuffer() == 2) return new ByteArrayInputStream(Base64.decode(getContent(), Base64.DEFAULT)); + return new ByteArrayInputStream(getContent().getBytes()); + } +} diff --git a/app/src/main/java/com/github/tvbox/osc/util/js/SpiderJS.java b/app/src/main/java/com/github/tvbox/osc/util/js/SpiderJS.java index 4524dcff2e..037088e878 100644 --- a/app/src/main/java/com/github/tvbox/osc/util/js/SpiderJS.java +++ b/app/src/main/java/com/github/tvbox/osc/util/js/SpiderJS.java @@ -1,147 +1,240 @@ package com.github.tvbox.osc.util.js; import android.content.Context; - +import com.whl.quickjs.wrapper.UriUtil; import com.github.catvod.crawler.Spider; -import com.github.tvbox.quickjs.JSArray; -import com.github.tvbox.quickjs.JSModule; -import com.github.tvbox.quickjs.JSObject; - +import com.github.tvbox.osc.util.FileUtils; +import com.github.tvbox.osc.util.LOG; +import com.github.tvbox.osc.util.MD5; +import com.github.tvbox.osc.util.js.FunCall; +import com.whl.quickjs.android.QuickJSLoader; +import com.whl.quickjs.wrapper.Function; +import com.whl.quickjs.wrapper.JSArray; +import com.whl.quickjs.wrapper.JSCallFunction; +import com.whl.quickjs.wrapper.JSFunction; +import com.whl.quickjs.wrapper.JSObject; +import com.whl.quickjs.wrapper.JSUtils; +import com.whl.quickjs.wrapper.QuickJSContext; + +import org.json.JSONArray; +import java.io.ByteArrayInputStream; +import java.lang.reflect.Method; import java.util.HashMap; import java.util.List; -import java.util.UUID; +import java.util.Map; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; public class SpiderJS extends Spider { - private String key; - private String js; - private String ext; - private JSObject jsObject = null; - private JSEngine.JSThread jsThread = null; + private final String key; + private final String js; + private JSObject jsObject; + + public QuickJSContext runtime; + public ExecutorService executor; - public SpiderJS(String key, String js, String ext) { - this.key = key; + public SpiderJS(String key, String js, Class cls) throws Exception { this.js = js; - this.ext = ext; + this.executor = Executors.newSingleThreadExecutor(); + this.key = "J" + MD5.encode(key); + initjs(cls); + } + + public void destroy() { + submit(() -> { + executor.shutdownNow(); + runtime.destroy(); + }); + } + + private void submit(Runnable runnable) { + executor.submit(runnable); } - void checkLoaderJS() { - if (jsThread == null) { - jsThread = JSEngine.getInstance().getJSThread(); - } - if (jsObject == null && jsThread != null) { - try { - jsThread.postVoid((ctx, globalThis) -> { - String moduleKey = "__" + UUID.randomUUID().toString().replace("-", "") + "__"; - String jsContent = JSEngine.getInstance().loadModule(js); + private Future submit(Callable callable) { + return executor.submit(callable); + } + + private Object call(String func, Object... args) throws Exception { + return executor.submit(FunCall.call(jsObject, func, args)).get(); + } + + private void initjs(Class cls) throws Exception { + submit(() -> { + if (runtime == null) this.runtime = QuickJSContext.create(); + runtime.setModuleLoader(new QuickJSContext.DefaultModuleLoader() { + @Override + public String getModuleStringCode(String moduleName) { + return FileUtils.loadModule(moduleName); + } + + @Override + public String moduleNormalizeName(String moduleBaseName, String moduleName) { + return UriUtil.resolve(moduleBaseName, moduleName); + } + }); + + initConsole(); + runtime.getGlobalObject().bind(new Global(executor)); + + if(cls != null){ + Class[] classes = cls.getDeclaredClasses(); + JSObject apiObj = runtime.createJSObject(); + + LOG.e("cls","" + classes.length); + for (Class classe : classes) { + Object javaObj = null; try { - if (js.contains(".js?")) { - int spIdx = js.indexOf(".js?"); - String[] query = js.substring(spIdx + 4).split("&|="); - js = js.substring(0, spIdx); - for (int i = 0; i < query.length; i += 2) { - String key = query[i]; - String val = query[i + 1]; - String sub = JSModule.convertModuleName(js, val); - String content = JSEngine.getInstance().loadModule(sub); - jsContent = jsContent.replace("__" + key.toUpperCase() + "__", content); - } - } + javaObj = classe.getDeclaredConstructor(cls).newInstance(cls.getDeclaredConstructor(QuickJSContext.class).newInstance(runtime)); } catch (Exception e) { e.printStackTrace(); } - if(jsContent.contains("export default{")){ - jsContent = jsContent.replace("export default{", "globalThis." + moduleKey+" ={"); - }else if(jsContent.contains("export default {")){ - jsContent = jsContent.replace("export default {", "globalThis." + moduleKey+" ={"); - }else { - jsContent = jsContent.replace("__JS_SPIDER__", "globalThis." + moduleKey); + if (javaObj == null) { + throw new NullPointerException("The JavaObj cannot be null. An error occurred in newInstance!"); } - ctx.evaluateModule(jsContent, js); - jsObject = (JSObject) ctx.getProperty(globalThis, moduleKey); - jsObject.getJSFunction("init").call(ext); - return null; - }); - } catch (Throwable throwable) { - throwable.printStackTrace(); + JSObject claObj = runtime.createJSObject(); + Method[] methods = classe.getDeclaredMethods(); + for (Method method : methods) { + if (method.isAnnotationPresent(Function.class)) { + Object finalJavaObj = javaObj; + claObj.set(method.getName(), new JSCallFunction() { + @Override + public Object call(Object... objects) { + try { + return method.invoke(finalJavaObj, objects); + } catch (Throwable e) { + return null; + } + } + }); + } + } + apiObj.set(classe.getSimpleName(), claObj); + LOG.e("cls", classe.getSimpleName()); + } + runtime.getGlobalObject().set("jsapi", apiObj); + } + String jsContent = FileUtils.loadModule(js); + + if (jsContent.contains("__jsEvalReturn")) { + runtime.evaluate("req = http"); + jsContent = jsContent + "\n\nglobalThis." + key + " = __jsEvalReturn()"; + } else if (jsContent.contains("export default{") || jsContent.contains("export default {")) { + jsContent = jsContent.replaceAll("export default.*?[{]", "globalThis." + key + " = {"); + } else { + jsContent = jsContent.replace("__JS_SPIDER__", "globalThis." + key); } - } + //LOG.e("cls", jsContent); + runtime.evaluateModule(jsContent + "\n\n;console.log(typeof(" + key + ".init));\n\nconsole.log(typeof(req));\n\nconsole.log(Object.keys(" + key + "));", js); + jsObject = (JSObject) runtime.get(runtime.getGlobalObject(), key); + return null; + }).get(); } - String postFunc(String func, Object... args) { - checkLoaderJS(); - if (jsObject != null) { - try { - return jsThread.post((ctx, globalThis) -> (String) jsObject.getJSFunction(func).call(args)); - } catch (Throwable throwable) { - throwable.printStackTrace(); + private void initConsole() { + JSObject local = runtime.createJSObject(); + runtime.getGlobalObject().set("local", local); + local.bind(new local()); + + runtime.setConsole(new QuickJSContext.Console() { + @Override + public void log(String s) { + LOG.i("QuJs", s); } - } - return ""; + }); + + runtime.evaluate(FileUtils.loadModule("net.js")); + } + + public void cancelByTag() { + Connect.cancelByTag("js_okhttp_tag"); } @Override - public void init(Context context, String extend) { + public void init(Context context, final String extend) throws Exception { super.init(context, extend); - checkLoaderJS(); + String ext = FileUtils.loadModule(extend); + call("init", Json.valid(ext) ? runtime.parse(ext) : ext); } @Override - public String homeContent(boolean filter) { - return postFunc("home", filter); + public String homeContent(boolean filter) throws Exception { + return (String) call("home", filter); } @Override - public String homeVideoContent() { - return postFunc("homeVod"); + public String homeVideoContent() throws Exception { + return (String) call("homeVod"); } @Override - public String categoryContent(String tid, String pg, boolean filter, HashMap extend) { - try { - JSObject obj = jsThread.post((ctx, globalThis) -> { - JSObject o = ctx.createNewJSObject(); - if (extend != null) { - for (String s : extend.keySet()) { - o.setProperty(s, extend.get(s)); - } - } - return o; - }); - return postFunc("category", tid, pg, filter, obj); - } catch (Throwable throwable) { - throwable.printStackTrace(); - } - return ""; + public String categoryContent(String tid, String pg, boolean filter, HashMap extend) throws Exception { + JSObject obj = submit(() -> new JSUtils().toObj(runtime, extend)).get(); + return (String) call("category", tid, pg, filter, obj); + } + @Override + public String detailContent(List ids) throws Exception { + return (String) call("detail", ids.get(0)); } @Override - public String detailContent(List ids) { - return postFunc("detail", ids.get(0)); + public String playerContent(String flag, String id, List vipFlags) throws Exception { + JSArray array = submit(() -> new JSUtils().toArray(runtime, vipFlags)).get(); + return (String) call("play", flag, id, array); } @Override - public String playerContent(String flag, String id, List vipFlags) { - try { - JSArray array = jsThread.post((ctx, globalThis) -> { - JSArray arr = ctx.createNewJSArray(); - if (vipFlags != null) { - for (int i = 0; i < vipFlags.size(); i++) { - arr.set(vipFlags.get(i), i); + public String searchContent(String key, boolean quick) throws Exception { + return (String) call("search", key, quick); + } + + @Override + public String searchContent(String key, boolean quick, String pg) throws Exception { + return (String) call("search", key, quick, pg); + } + + @Override + public Object[] proxyLocal(Map params) throws Exception { + return submit(() -> { + try { + JSObject o = new JSUtils().toObj(runtime, params); + JSFunction jsFunction = jsObject.getJSFunction("proxy"); + JSONArray opt = new JSONArray(jsFunction.call(null, new Object[]{o}).toString()); + Object[] result = new Object[3]; + result[0] = opt.opt(0); + result[1] = opt.opt(1); + Object obj = opt.opt(2); + ByteArrayInputStream baos; + if (obj instanceof JSONArray) { + JSONArray json = (JSONArray) obj; + byte[] b = new byte[json.length()]; + for (int i = 0; i < json.length(); i++) { + b[i] = (byte) json.optInt(i); } + baos = new ByteArrayInputStream(b); + } else { + baos = new ByteArrayInputStream(opt.opt(2).toString().getBytes()); } - return arr; - }); - return postFunc("play", flag, id, array); - } catch (Throwable throwable) { - throwable.printStackTrace(); - } - return ""; + result[2] = baos; + return result; + } catch (Throwable throwable) { + LOG.e(throwable); + return new Object[0]; + } + }).get(); + } + + @Override + public boolean manualVideoCheck() throws Exception { + return (Boolean) call("sniffer"); } @Override - public String searchContent(String key, boolean quick) { - return postFunc("search", key, quick); + public boolean isVideoFormat(String url) throws Exception { + return (Boolean) call("isVideo", url); } } diff --git a/app/src/main/java/com/github/tvbox/osc/util/js/Trans.java b/app/src/main/java/com/github/tvbox/osc/util/js/Trans.java new file mode 100644 index 0000000000..5c1071396d --- /dev/null +++ b/app/src/main/java/com/github/tvbox/osc/util/js/Trans.java @@ -0,0 +1,68 @@ +package com.github.tvbox.osc.util.js; + +import android.text.TextUtils; + +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; + +public class Trans { + + private final Map s2t; + private final Map t2s; + private final boolean trans; + + private static class Loader { + static volatile Trans INSTANCE = new Trans(); + } + + private static Trans get() { + return Loader.INSTANCE; + } + + private Trans() { + s2t = new HashMap<>(); + t2s = new HashMap<>(); + trans = Locale.getDefault().getCountry().equals("TW"); + if (trans) init(); + } + + private void init() { + char[] UTF8T = "萬與醜專業叢東絲丟兩嚴喪個爿豐臨為麗舉麼義烏樂喬習鄉書買亂爭於虧雲亙亞產畝親褻嚲億僅從侖倉儀們價眾優夥會傴傘偉傳傷倀倫傖偽佇體餘傭僉俠侶僥偵側僑儈儕儂俁儔儼倆儷儉債傾傯僂僨償儻儐儲儺兒兌兗黨蘭關興茲養獸囅內岡冊寫軍農塚馮衝決況凍淨淒涼淩減湊凜幾鳳鳧憑凱擊氹鑿芻劃劉則剛創刪別剗剄劊劌剴劑剮劍剝劇勸辦務勱動勵勁勞勢勳猛勩勻匭匱區醫華協單賣盧鹵臥衛卻巹廠廳歷厲壓厭厙廁廂厴廈廚廄廝縣參靉靆雙發變敘疊葉號歎嘰籲後嚇呂嗎唚噸聽啟吳嘸囈嘔嚦唄員咼嗆嗚詠哢嚨嚀噝吒噅鹹呱響啞噠嘵嗶噦嘩噲嚌噥喲嘜嗊嘮啢嗩唕喚呼嘖嗇囀齧囉嘽嘯噴嘍嚳囁嗬噯噓嚶囑嚕劈囂謔團園囪圍圇國圖圓聖壙場阪壞塊堅壇壢壩塢墳墜壟壟壚壘墾坰堊墊埡墶壋塏堖塒塤堝墊垵塹墮壪牆壯聲殼壺壼處備復夠頭誇夾奪奩奐奮獎奧妝婦媽嫵嫗媯姍婁婭嬈嬌孌娛媧嫻嫿嬰嬋嬸媼嬡嬪嬙嬤孫學孿寧寶實寵審憲宮寬賓寢對尋導壽將爾塵堯尷屍盡層屭屜屆屬屢屨嶼歲豈嶇崗峴嶴嵐島嶺崠巋嶨嶧峽嶢嶠崢巒嶗崍嶮嶄嶸嶔崳嶁脊巔鞏巰幣帥師幃帳簾幟帶幀幫幬幘幗冪襆幹並廣莊慶廬廡庫應廟龐廢廎廩開異棄張彌弳彎彈強歸當錄彠彥徹徑徠禦憶懺憂愾懷態慫憮慪悵愴憐總懟懌戀懇惡慟懨愷惻惱惲悅愨懸慳憫驚懼慘懲憊愜慚憚慣湣慍憤憒願懾憖怵懣懶懍戇戔戲戧戰戩戶紮撲扡執擴捫掃揚擾撫拋摶摳掄搶護報擔擬攏揀擁攔擰撥擇掛摯攣掗撾撻挾撓擋撟掙擠揮撏撈損撿換搗據撚擄摑擲撣摻摜摣攬撳攙擱摟攪攜攝攄擺搖擯攤攖撐攆擷擼攛擻攢敵斂數齋斕斗斬斷無舊時曠暘曇晝曨顯晉曬曉曄暈暉暫曖劄術樸機殺雜權條來楊榪傑極構樅樞棗櫪梘棖槍楓梟櫃檸檉梔柵標棧櫛櫳棟櫨櫟欄樹棲樣欒棬椏橈楨檔榿橋樺檜槳樁夢檮棶檢欞槨櫝槧欏橢樓欖櫬櫚櫸檟檻檳櫧橫檣櫻櫫櫥櫓櫞簷檁歡歟歐殲歿殤殘殞殮殫殯毆毀轂畢斃氈毿氌氣氫氬氳彙漢汙湯洶遝溝沒灃漚瀝淪滄渢溈滬濔濘淚澩瀧瀘濼瀉潑澤涇潔灑窪浹淺漿澆湞溮濁測澮濟瀏滻渾滸濃潯濜塗湧濤澇淶漣潿渦溳渙滌潤澗漲澀澱淵淥漬瀆漸澠漁瀋滲溫遊灣濕潰濺漵漊潷滾滯灩灄滿瀅濾濫灤濱灘澦瀠瀟瀲濰潛瀦瀾瀨瀕灝滅燈靈災燦煬爐燉煒熗點煉熾爍爛烴燭煙煩燒燁燴燙燼熱煥燜燾煆糊溜愛爺牘犛牽犧犢強狀獷獁猶狽麅獮獰獨狹獅獪猙獄猻獫獵獼玀豬貓蝟獻獺璣璵瑒瑪瑋環現瑲璽瑉玨琺瓏璫琿璡璉瑣瓊瑤璦璿瓔瓚甕甌電畫暢佘疇癤療瘧癘瘍鬁瘡瘋皰屙癰痙癢瘂癆瘓癇癡癉瘮瘞瘺癟癱癮癭癩癬癲臒皚皺皸盞鹽監蓋盜盤瞘眥矓著睜睞瞼瞞矚矯磯礬礦碭碼磚硨硯碸礪礱礫礎硜矽碩硤磽磑礄確鹼礙磧磣堿镟滾禮禕禰禎禱禍稟祿禪離禿稈種積稱穢穠穭稅穌穩穡窮竊竅窯竄窩窺竇窶豎競篤筍筆筧箋籠籩築篳篩簹箏籌簽簡籙簀篋籜籮簞簫簣簍籃籬籪籟糴類秈糶糲粵糞糧糝餱緊縶糸糾紆紅紂纖紇約級紈纊紀紉緯紜紘純紕紗綱納紝縱綸紛紙紋紡紵紖紐紓線紺絏紱練組紳細織終縐絆紼絀紹繹經紿綁絨結絝繞絰絎繪給絢絳絡絕絞統綆綃絹繡綌綏絛繼綈績緒綾緓續綺緋綽緔緄繩維綿綬繃綢綯綹綣綜綻綰綠綴緇緙緗緘緬纜緹緲緝縕繢緦綞緞緶線緱縋緩締縷編緡緣縉縛縟縝縫縗縞纏縭縊縑繽縹縵縲纓縮繆繅纈繚繕繒韁繾繰繯繳纘罌網羅罰罷羆羈羥羨翹翽翬耮耬聳恥聶聾職聹聯聵聰肅腸膚膁腎腫脹脅膽勝朧腖臚脛膠脈膾髒臍腦膿臠腳脫腡臉臘醃膕齶膩靦膃騰臏臢輿艤艦艙艫艱豔艸藝節羋薌蕪蘆蓯葦藶莧萇蒼苧蘇檾蘋莖蘢蔦塋煢繭荊薦薘莢蕘蓽蕎薈薺蕩榮葷滎犖熒蕁藎蓀蔭蕒葒葤藥蒞蓧萊蓮蒔萵薟獲蕕瑩鶯蓴蘀蘿螢營縈蕭薩蔥蕆蕢蔣蔞藍薊蘺蕷鎣驀薔蘞藺藹蘄蘊藪槁蘚虜慮虛蟲虯蟣雖蝦蠆蝕蟻螞蠶蠔蜆蠱蠣蟶蠻蟄蛺蟯螄蠐蛻蝸蠟蠅蟈蟬蠍螻蠑螿蟎蠨釁銜補襯袞襖嫋褘襪襲襏裝襠褌褳襝褲襇褸襤繈襴見觀覎規覓視覘覽覺覬覡覿覥覦覯覲覷觴觸觶讋譽謄訁計訂訃認譏訐訌討讓訕訖訓議訊記訒講諱謳詎訝訥許訛論訩訟諷設訪訣證詁訶評詛識詗詐訴診詆謅詞詘詔詖譯詒誆誄試詿詩詰詼誠誅詵話誕詬詮詭詢詣諍該詳詫諢詡譸誡誣語誚誤誥誘誨誑說誦誒請諸諏諾讀諑誹課諉諛誰諗調諂諒諄誶談誼謀諶諜謊諫諧謔謁謂諤諭諼讒諮諳諺諦謎諞諝謨讜謖謝謠謗諡謙謐謹謾謫譾謬譚譖譙讕譜譎讞譴譫讖穀豶貝貞負貟貢財責賢敗賬貨質販貪貧貶購貯貫貳賤賁貰貼貴貺貸貿費賀貽賊贄賈賄貲賃賂贓資賅贐賕賑賚賒賦賭齎贖賞賜贔賙賡賠賧賴賵贅賻賺賽賾贗讚贇贈贍贏贛赬趙趕趨趲躉躍蹌蹠躒踐躂蹺蹕躚躋踴躊蹤躓躑躡蹣躕躥躪躦軀車軋軌軒軑軔轉軛輪軟轟軲軻轤軸軹軼軤軫轢軺輕軾載輊轎輈輇輅較輒輔輛輦輩輝輥輞輬輟輜輳輻輯轀輸轡轅轄輾轆轍轔辭辯辮邊遼達遷過邁運還這進遠違連遲邇逕跡適選遜遞邐邏遺遙鄧鄺鄔郵鄒鄴鄰鬱郤郟鄶鄭鄆酈鄖鄲醞醱醬釅釃釀釋里钜鑒鑾鏨釓釔針釘釗釙釕釷釺釧釤鈒釩釣鍆釹鍚釵鈃鈣鈈鈦鈍鈔鍾鈉鋇鋼鈑鈐鑰欽鈞鎢鉤鈧鈁鈥鈄鈕鈀鈺錢鉦鉗鈷缽鈳鉕鈽鈸鉞鑽鉬鉭鉀鈿鈾鐵鉑鈴鑠鉛鉚鈰鉉鉈鉍鈹鐸鉶銬銠鉺銪鋏鋣鐃銍鐺銅鋁銱銦鎧鍘銖銑鋌銩銛鏵銓鉿銚鉻銘錚銫鉸銥鏟銃鐋銨銀銣鑄鐒鋪鋙錸鋱鏈鏗銷鎖鋰鋥鋤鍋鋯鋨鏽銼鋝鋒鋅鋶鐦鐧銳銻鋃鋟鋦錒錆鍺錯錨錡錁錕錩錫錮鑼錘錐錦鍁錈錇錟錠鍵鋸錳錙鍥鍈鍇鏘鍶鍔鍤鍬鍾鍛鎪鍠鍰鎄鍍鎂鏤鎡鏌鎮鎛鎘鑷鐫鎳鎿鎦鎬鎊鎰鎔鏢鏜鏍鏰鏞鏡鏑鏃鏇鏐鐔钁鐐鏷鑥鐓鑭鐠鑹鏹鐙鑊鐳鐶鐲鐮鐿鑔鑣鑞鑲長門閂閃閆閈閉問闖閏闈閑閎間閔閌悶閘鬧閨聞闥閩閭闓閥閣閡閫鬮閱閬闍閾閹閶鬩閿閽閻閼闡闌闃闠闊闋闔闐闒闕闞闤隊陽陰陣階際陸隴陳陘陝隉隕險隨隱隸雋難雛讎靂霧霽黴靄靚靜靨韃鞽韉韝韋韌韍韓韙韞韜韻頁頂頃頇項順須頊頑顧頓頎頒頌頏預顱領頗頸頡頰頲頜潁熲頦頤頻頮頹頷頴穎顆題顒顎顓顏額顳顢顛顙顥纇顫顬顰顴風颺颭颮颯颶颸颼颻飀飄飆飆飛饗饜飣饑飥餳飩餼飪飫飭飯飲餞飾飽飼飿飴餌饒餉餄餎餃餏餅餑餖餓餘餒餕餜餛餡館餷饋餶餿饞饁饃餺餾饈饉饅饊饌饢馬馭馱馴馳驅馹駁驢駔駛駟駙駒騶駐駝駑駕驛駘驍罵駰驕驊駱駭駢驫驪騁驗騂駸駿騏騎騍騅騌驌驂騙騭騤騷騖驁騮騫騸驃騾驄驏驟驥驦驤髏髖髕鬢魘魎魚魛魢魷魨魯魴魺鮁鮃鯰鱸鮋鮓鮒鮊鮑鱟鮍鮐鮭鮚鮳鮪鮞鮦鰂鮜鱠鱭鮫鮮鮺鯗鱘鯁鱺鰱鰹鯉鰣鰷鯀鯊鯇鮶鯽鯒鯖鯪鯕鯫鯡鯤鯧鯝鯢鯰鯛鯨鯵鯴鯔鱝鰈鰏鱨鯷鰮鰃鰓鱷鰍鰒鰉鰁鱂鯿鰠鼇鰭鰨鰥鰩鰟鰜鰳鰾鱈鱉鰻鰵鱅鰼鱖鱔鱗鱒鱯鱤鱧鱣鳥鳩雞鳶鳴鳲鷗鴉鶬鴇鴆鴣鶇鸕鴨鴞鴦鴒鴟鴝鴛鴬鴕鷥鷙鴯鴰鵂鴴鵃鴿鸞鴻鵐鵓鸝鵑鵠鵝鵒鷳鵜鵡鵲鶓鵪鶤鵯鵬鵮鶉鶊鵷鷫鶘鶡鶚鶻鶿鶥鶩鷊鷂鶲鶹鶺鷁鶼鶴鷖鸚鷓鷚鷯鷦鷲鷸鷺鸇鷹鸌鸏鸛鸘鹺麥麩黃黌黶黷黲黽黿鼂鼉鞀鼴齇齊齏齒齔齕齗齟齡齙齠齜齦齬齪齲齷龍龔龕龜誌制谘範鬆冇嚐嘗鬨準鐘彆閒乾儘臟拚作".toCharArray(); + char[] UTF8S = "万与丑专业丛东丝丢两严丧个丬丰临为丽举么义乌乐乔习乡书买乱争于亏云亘亚产亩亲亵亸亿仅从仑仓仪们价众优伙会伛伞伟传伤伥伦伧伪伫体余佣佥侠侣侥侦侧侨侩侪侬俣俦俨俩俪俭债倾偬偻偾偿傥傧储傩儿兑兖党兰关兴兹养兽冁内冈册写军农冢冯冲决况冻净凄凉凌减凑凛几凤凫凭凯击凼凿刍划刘则刚创删别刬刭刽刿剀剂剐剑剥剧劝办务劢动励劲劳势勋勐勚匀匦匮区医华协单卖卢卤卧卫却卺厂厅历厉压厌厍厕厢厣厦厨厩厮县参叆叇双发变叙叠叶号叹叽吁后吓吕吗吣吨听启吴呒呓呕呖呗员呙呛呜咏咔咙咛咝咤咴咸哌响哑哒哓哔哕哗哙哜哝哟唛唝唠唡唢唣唤唿啧啬啭啮啰啴啸喷喽喾嗫呵嗳嘘嘤嘱噜噼嚣嚯团园囱围囵国图圆圣圹场坂坏块坚坛坜坝坞坟坠垄垅垆垒垦垧垩垫垭垯垱垲垴埘埙埚埝埯堑堕塆墙壮声壳壶壸处备复够头夸夹夺奁奂奋奖奥妆妇妈妩妪妫姗娄娅娆娇娈娱娲娴婳婴婵婶媪嫒嫔嫱嬷孙学孪宁宝实宠审宪宫宽宾寝对寻导寿将尔尘尧尴尸尽层屃屉届属屡屦屿岁岂岖岗岘岙岚岛岭岽岿峃峄峡峣峤峥峦崂崃崄崭嵘嵚嵛嵝嵴巅巩巯币帅师帏帐帘帜带帧帮帱帻帼幂幞干并广庄庆庐庑库应庙庞废庼廪开异弃张弥弪弯弹强归当录彟彦彻径徕御忆忏忧忾怀态怂怃怄怅怆怜总怼怿恋恳恶恸恹恺恻恼恽悦悫悬悭悯惊惧惨惩惫惬惭惮惯愍愠愤愦愿慑慭憷懑懒懔戆戋戏戗战戬户扎扑扦执扩扪扫扬扰抚抛抟抠抡抢护报担拟拢拣拥拦拧拨择挂挚挛挜挝挞挟挠挡挢挣挤挥挦捞损捡换捣据捻掳掴掷掸掺掼揸揽揿搀搁搂搅携摄摅摆摇摈摊撄撑撵撷撸撺擞攒敌敛数斋斓斗斩断无旧时旷旸昙昼昽显晋晒晓晔晕晖暂暧札术朴机杀杂权条来杨杩杰极构枞枢枣枥枧枨枪枫枭柜柠柽栀栅标栈栉栊栋栌栎栏树栖样栾桊桠桡桢档桤桥桦桧桨桩梦梼梾检棂椁椟椠椤椭楼榄榇榈榉槚槛槟槠横樯樱橥橱橹橼檐檩欢欤欧歼殁殇残殒殓殚殡殴毁毂毕毙毡毵氇气氢氩氲汇汉污汤汹沓沟没沣沤沥沦沧沨沩沪沵泞泪泶泷泸泺泻泼泽泾洁洒洼浃浅浆浇浈浉浊测浍济浏浐浑浒浓浔浕涂涌涛涝涞涟涠涡涢涣涤润涧涨涩淀渊渌渍渎渐渑渔渖渗温游湾湿溃溅溆溇滗滚滞滟滠满滢滤滥滦滨滩滪潆潇潋潍潜潴澜濑濒灏灭灯灵灾灿炀炉炖炜炝点炼炽烁烂烃烛烟烦烧烨烩烫烬热焕焖焘煅煳熘爱爷牍牦牵牺犊强状犷犸犹狈狍狝狞独狭狮狯狰狱狲猃猎猕猡猪猫猬献獭玑玙玚玛玮环现玱玺珉珏珐珑珰珲琎琏琐琼瑶瑷璇璎瓒瓮瓯电画畅畲畴疖疗疟疠疡疬疮疯疱疴痈痉痒痖痨痪痫痴瘅瘆瘗瘘瘪瘫瘾瘿癞癣癫癯皑皱皲盏盐监盖盗盘眍眦眬着睁睐睑瞒瞩矫矶矾矿砀码砖砗砚砜砺砻砾础硁硅硕硖硗硙硚确硷碍碛碜碱碹磙礼祎祢祯祷祸禀禄禅离秃秆种积称秽秾稆税稣稳穑穷窃窍窑窜窝窥窦窭竖竞笃笋笔笕笺笼笾筑筚筛筜筝筹签简箓箦箧箨箩箪箫篑篓篮篱簖籁籴类籼粜粝粤粪粮糁糇紧絷纟纠纡红纣纤纥约级纨纩纪纫纬纭纮纯纰纱纲纳纴纵纶纷纸纹纺纻纼纽纾线绀绁绂练组绅细织终绉绊绋绌绍绎经绐绑绒结绔绕绖绗绘给绚绛络绝绞统绠绡绢绣绤绥绦继绨绩绪绫绬续绮绯绰绱绲绳维绵绶绷绸绹绺绻综绽绾绿缀缁缂缃缄缅缆缇缈缉缊缋缌缍缎缏缐缑缒缓缔缕编缗缘缙缚缛缜缝缞缟缠缡缢缣缤缥缦缧缨缩缪缫缬缭缮缯缰缱缲缳缴缵罂网罗罚罢罴羁羟羡翘翙翚耢耧耸耻聂聋职聍联聩聪肃肠肤肷肾肿胀胁胆胜胧胨胪胫胶脉脍脏脐脑脓脔脚脱脶脸腊腌腘腭腻腼腽腾膑臜舆舣舰舱舻艰艳艹艺节芈芗芜芦苁苇苈苋苌苍苎苏苘苹茎茏茑茔茕茧荆荐荙荚荛荜荞荟荠荡荣荤荥荦荧荨荩荪荫荬荭荮药莅莜莱莲莳莴莶获莸莹莺莼萚萝萤营萦萧萨葱蒇蒉蒋蒌蓝蓟蓠蓣蓥蓦蔷蔹蔺蔼蕲蕴薮藁藓虏虑虚虫虬虮虽虾虿蚀蚁蚂蚕蚝蚬蛊蛎蛏蛮蛰蛱蛲蛳蛴蜕蜗蜡蝇蝈蝉蝎蝼蝾螀螨蟏衅衔补衬衮袄袅袆袜袭袯装裆裈裢裣裤裥褛褴襁襕见观觃规觅视觇览觉觊觋觌觍觎觏觐觑觞触觯詟誉誊讠计订讣认讥讦讧讨让讪讫训议讯记讱讲讳讴讵讶讷许讹论讻讼讽设访诀证诂诃评诅识诇诈诉诊诋诌词诎诏诐译诒诓诔试诖诗诘诙诚诛诜话诞诟诠诡询诣诤该详诧诨诩诪诫诬语诮误诰诱诲诳说诵诶请诸诹诺读诼诽课诿谀谁谂调谄谅谆谇谈谊谋谌谍谎谏谐谑谒谓谔谕谖谗谘谙谚谛谜谝谞谟谠谡谢谣谤谥谦谧谨谩谪谫谬谭谮谯谰谱谲谳谴谵谶谷豮贝贞负贠贡财责贤败账货质贩贪贫贬购贮贯贰贱贲贳贴贵贶贷贸费贺贻贼贽贾贿赀赁赂赃资赅赆赇赈赉赊赋赌赍赎赏赐赑赒赓赔赕赖赗赘赙赚赛赜赝赞赟赠赡赢赣赪赵赶趋趱趸跃跄跖跞践跶跷跸跹跻踊踌踪踬踯蹑蹒蹰蹿躏躜躯车轧轨轩轪轫转轭轮软轰轱轲轳轴轵轶轷轸轹轺轻轼载轾轿辀辁辂较辄辅辆辇辈辉辊辋辌辍辎辏辐辑辒输辔辕辖辗辘辙辚辞辩辫边辽达迁过迈运还这进远违连迟迩迳迹适选逊递逦逻遗遥邓邝邬邮邹邺邻郁郄郏郐郑郓郦郧郸酝酦酱酽酾酿释里鉅鉴銮錾钆钇针钉钊钋钌钍钎钏钐钑钒钓钔钕钖钗钘钙钚钛钝钞钟钠钡钢钣钤钥钦钧钨钩钪钫钬钭钮钯钰钱钲钳钴钵钶钷钸钹钺钻钼钽钾钿铀铁铂铃铄铅铆铈铉铊铋铍铎铏铐铑铒铕铗铘铙铚铛铜铝铞铟铠铡铢铣铤铥铦铧铨铪铫铬铭铮铯铰铱铲铳铴铵银铷铸铹铺铻铼铽链铿销锁锂锃锄锅锆锇锈锉锊锋锌锍锎锏锐锑锒锓锔锕锖锗错锚锜锞锟锠锡锢锣锤锥锦锨锩锫锬锭键锯锰锱锲锳锴锵锶锷锸锹锺锻锼锽锾锿镀镁镂镃镆镇镈镉镊镌镍镎镏镐镑镒镕镖镗镙镚镛镜镝镞镟镠镡镢镣镤镥镦镧镨镩镪镫镬镭镮镯镰镱镲镳镴镶长门闩闪闫闬闭问闯闰闱闲闳间闵闶闷闸闹闺闻闼闽闾闿阀阁阂阃阄阅阆阇阈阉阊阋阌阍阎阏阐阑阒阓阔阕阖阗阘阙阚阛队阳阴阵阶际陆陇陈陉陕陧陨险随隐隶隽难雏雠雳雾霁霉霭靓静靥鞑鞒鞯鞴韦韧韨韩韪韫韬韵页顶顷顸项顺须顼顽顾顿颀颁颂颃预颅领颇颈颉颊颋颌颍颎颏颐频颒颓颔颕颖颗题颙颚颛颜额颞颟颠颡颢颣颤颥颦颧风飏飐飑飒飓飔飕飖飗飘飙飚飞飨餍饤饥饦饧饨饩饪饫饬饭饮饯饰饱饲饳饴饵饶饷饸饹饺饻饼饽饾饿馀馁馂馃馄馅馆馇馈馉馊馋馌馍馎馏馐馑馒馓馔馕马驭驮驯驰驱驲驳驴驵驶驷驸驹驺驻驼驽驾驿骀骁骂骃骄骅骆骇骈骉骊骋验骍骎骏骐骑骒骓骔骕骖骗骘骙骚骛骜骝骞骟骠骡骢骣骤骥骦骧髅髋髌鬓魇魉鱼鱽鱾鱿鲀鲁鲂鲄鲅鲆鲇鲈鲉鲊鲋鲌鲍鲎鲏鲐鲑鲒鲓鲔鲕鲖鲗鲘鲙鲚鲛鲜鲝鲞鲟鲠鲡鲢鲣鲤鲥鲦鲧鲨鲩鲪鲫鲬鲭鲮鲯鲰鲱鲲鲳鲴鲵鲶鲷鲸鲹鲺鲻鲼鲽鲾鲿鳀鳁鳂鳃鳄鳅鳆鳇鳈鳉鳊鳋鳌鳍鳎鳏鳐鳑鳒鳓鳔鳕鳖鳗鳘鳙鳛鳜鳝鳞鳟鳠鳡鳢鳣鸟鸠鸡鸢鸣鸤鸥鸦鸧鸨鸩鸪鸫鸬鸭鸮鸯鸰鸱鸲鸳鸴鸵鸶鸷鸸鸹鸺鸻鸼鸽鸾鸿鹀鹁鹂鹃鹄鹅鹆鹇鹈鹉鹊鹋鹌鹍鹎鹏鹐鹑鹒鹓鹔鹕鹖鹗鹘鹚鹛鹜鹝鹞鹟鹠鹡鹢鹣鹤鹥鹦鹧鹨鹩鹪鹫鹬鹭鹯鹰鹱鹲鹳鹴鹾麦麸黄黉黡黩黪黾鼋鼌鼍鼗鼹齄齐齑齿龀龁龂龃龄龅龆龇龈龉龊龋龌龙龚龛龟志制咨范松冇尝尝闹准钟彆闲干尽脏拼作".toCharArray(); + for (int i = 0, n = UTF8T.length; i < n; ++i) { + s2t.put(UTF8S[i], UTF8T[i]); + t2s.put(UTF8T[i], UTF8S[i]); + } + } + + private String get(String text, Map map) { + if (TextUtils.isEmpty(text)) return text; + char[] chars = text.toCharArray(); + for (int i = 0; i < chars.length; ++i) { + Character found = map.get(chars[i]); + if (found != null) chars[i] = found; + } + return String.valueOf(chars); + } + + public static boolean pass() { + return !get().trans; + } + + public static String s2t(String text) { + return s2t(pass(), text); + } + + public static String t2s(String text) { + return t2s(pass(), text); + } + + public static String s2t(boolean pass, String text) { + return pass ? text : get().get(text, get().s2t); + } + + public static String t2s(boolean pass, String text) { + return pass ? text : get().get(text, get().t2s); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/github/tvbox/osc/util/js/UTF8BOMFighter.java b/app/src/main/java/com/github/tvbox/osc/util/js/UTF8BOMFighter.java index 0f9df40751..02db020bb8 100644 --- a/app/src/main/java/com/github/tvbox/osc/util/js/UTF8BOMFighter.java +++ b/app/src/main/java/com/github/tvbox/osc/util/js/UTF8BOMFighter.java @@ -1,17 +1,15 @@ package com.github.tvbox.osc.util.js; public class UTF8BOMFighter { - private static final byte[] UTF8_BOM_BYTES = new byte[]{(byte) 0xEF, (byte) 0xBB, (byte) 0xBF}; + private static final byte[] UTF8_BOM_BYTES = new byte[] { + (byte) 0xEF, (byte) 0xBB, (byte) 0xBF + }; - private UTF8BOMFighter() { - } + private UTF8BOMFighter() {} static public String removeUTF8BOM(String xmlText) { byte[] bytes = xmlText.getBytes(); - boolean containsBOM = bytes.length > 3 - && bytes[0] == UTF8_BOM_BYTES[0] - && bytes[1] == UTF8_BOM_BYTES[1] - && bytes[2] == UTF8_BOM_BYTES[2]; + boolean containsBOM = bytes.length > 3 && bytes[0] == UTF8_BOM_BYTES[0] && bytes[1] == UTF8_BOM_BYTES[1] && bytes[2] == UTF8_BOM_BYTES[2]; if (containsBOM) { xmlText = new String(bytes, 3, bytes.length - 3); } @@ -19,10 +17,7 @@ static public String removeUTF8BOM(String xmlText) { } static byte[] removeUTF8BOM(byte[] bytes) { - boolean containsBOM = bytes.length > 3 - && bytes[0] == UTF8_BOM_BYTES[0] - && bytes[1] == UTF8_BOM_BYTES[1] - && bytes[2] == UTF8_BOM_BYTES[2]; + boolean containsBOM = bytes.length > 3 && bytes[0] == UTF8_BOM_BYTES[0] && bytes[1] == UTF8_BOM_BYTES[1] && bytes[2] == UTF8_BOM_BYTES[2]; if (containsBOM) { byte[] copy = new byte[bytes.length - 3]; System.arraycopy(bytes, 3, copy, 0, bytes.length - 3); @@ -30,4 +25,4 @@ static byte[] removeUTF8BOM(byte[] bytes) { } return bytes; } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/github/tvbox/osc/util/js/local.java b/app/src/main/java/com/github/tvbox/osc/util/js/local.java new file mode 100644 index 0000000000..c054832cdf --- /dev/null +++ b/app/src/main/java/com/github/tvbox/osc/util/js/local.java @@ -0,0 +1,30 @@ +package com.github.tvbox.osc.util.js; + +import androidx.annotation.Keep; +import com.orhanobut.hawk.Hawk; +import com.whl.quickjs.wrapper.Function; + +public class local {@Keep@Function + public void delete(String str, String str2) { + try { + Hawk.delete("jsRuntime_" + str + "_" + str2); + } catch (Exception e) { + e.printStackTrace(); + } + }@Keep@Function + public String get(String str, String str2) { + try { + return Hawk.get("jsRuntime_" + str + "_" + str2, ""); + } catch (Exception e) { + Hawk.delete(str); + return str2; + } + }@Keep@Function + public void set(String str, String str2, String str3) { + try { + Hawk.put("jsRuntime_" + str + "_" + str2, str3); + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/github/tvbox/osc/util/rsa/DataUtils.java b/app/src/main/java/com/github/tvbox/osc/util/rsa/DataUtils.java new file mode 100644 index 0000000000..5e787e6730 --- /dev/null +++ b/app/src/main/java/com/github/tvbox/osc/util/rsa/DataUtils.java @@ -0,0 +1,43 @@ +package com.github.tvbox.osc.util.rsa; + +import android.util.Base64; + +import java.nio.ByteBuffer; +import java.nio.charset.StandardCharsets; + +/** + * 数据工具类 + */ +public class DataUtils { + + /** + * 将 Base64 字符串 解码成 字节数组 + */ + public static byte[] base64Decode(String data) { + return Base64.decode(data.getBytes(), Base64.NO_WRAP); + } + + /** + * 将 字节数组 转换成 Base64 编码 + */ + public static String base64Encode(byte[] data) { + return Base64.encodeToString(data, Base64.NO_WRAP); + } + + /** + * 将字节数组转换成 int 类型 + */ + public static int byte2Int(byte[] bytes) { + ByteBuffer buffer = ByteBuffer.wrap(bytes); + return buffer.getInt(); + } + + /** + * 将 int 转换成 byte 数组 + */ + public static byte[] int2byte(int data) { + ByteBuffer buffer = ByteBuffer.allocate(4); + buffer.putInt(data); + return buffer.array(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/github/tvbox/osc/util/rsa/RSAEncrypt.java b/app/src/main/java/com/github/tvbox/osc/util/rsa/RSAEncrypt.java new file mode 100644 index 0000000000..da1e8d5b52 --- /dev/null +++ b/app/src/main/java/com/github/tvbox/osc/util/rsa/RSAEncrypt.java @@ -0,0 +1,343 @@ +package com.github.tvbox.osc.util.rsa; + +import android.util.Log; + +import java.io.ByteArrayOutputStream; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; +import java.security.KeyFactory; +import java.security.KeyPair; +import java.security.KeyPairGenerator; +import java.security.NoSuchAlgorithmException; +import java.security.PrivateKey; +import java.security.PublicKey; +import java.security.interfaces.RSAPrivateKey; +import java.security.interfaces.RSAPublicKey; +import java.security.spec.InvalidKeySpecException; +import java.security.spec.PKCS8EncodedKeySpec; +import java.security.spec.X509EncodedKeySpec; + +import javax.crypto.Cipher; + +/** + * RSA 非对称加密算法,加解密工具类, + * 加密长度 不能超过 128 个字节。 + */ +public class RSAEncrypt { + + public static final String TAG = RSAEncrypt.class.getSimpleName() + " --> "; + + /** + * 标准 jdk 加密填充方式,加解密算法/工作模式/填充方式 + */ + public static final String ECB_PKCS1_PADDING = "RSA/ECB/PKCS1Padding"; + + /** + * RSA 加密算法 + */ + public static final String KEY_ALGORITHM = "RSA"; + + /** + * RSA 最大加密明文大小 + */ + private static final int MAX_ENCRYPT_BLOCK = 117; + /** + * RSA最大解密密文大小 + */ + private static final int MAX_DECRYPT_BLOCK = 128; + + /** + * 随机生成 RSA 密钥对 + * + * @param keyLength 密钥长度,范围:512~2048,一般:1024 + */ + public static KeyPair getKeyPair(int keyLength) { + try { + KeyPairGenerator generator = KeyPairGenerator.getInstance(KEY_ALGORITHM); + generator.initialize(keyLength); + return generator.genKeyPair(); + } catch (Exception e) { + handleException(e); + } + return null; + } + + /** + * 获取公钥 Base64 编码 + * + * @param publicKey 公钥 + */ + public static String getPublicKeyBase64(PublicKey publicKey) { + return DataUtils.base64Encode(publicKey.getEncoded()); + } + + /** + * 获取私钥 Base64 编码 + * + * @param privateKey 公钥 + */ + public static String getPrivateKeyBase64(PrivateKey privateKey) { + return DataUtils.base64Encode(privateKey.getEncoded()); + } + + /** + * 获取 PublicKey 对象 + * + * @param pubKey 公钥,X509 格式de + */ + public static PublicKey getPublicKey(String pubKey) { + try { + // 将公钥进行 Base64 解码 创建 PublicKey 对象并返回 + return KeyFactory.getInstance(KEY_ALGORITHM).generatePublic(new X509EncodedKeySpec(DataUtils.base64Decode(pubKey))); + } catch (NoSuchAlgorithmException unused) { + handleException(new Exception("无此算法")); + } catch (InvalidKeySpecException unused2) { + handleException(new Exception("公钥非法")); + } catch (NullPointerException unused3) { + handleException(new Exception("公钥数据为空")); + } + return null; + } + + /** + * 获取 PrivateKey 对象 + * + * @param prvKey 私钥,PKCS8 格式 + */ + public static PrivateKey getPrivateKey(String prvKey) { + try { + // 将私钥进行 Base64 解码 创建 PrivateKey 对象并返回 + return KeyFactory.getInstance(KEY_ALGORITHM).generatePrivate(new PKCS8EncodedKeySpec(DataUtils.base64Decode(prvKey))); + } catch (NoSuchAlgorithmException unused) { + handleException(new Exception("无此算法")); + } catch (InvalidKeySpecException unused2) { + handleException(new Exception("私钥非法")); + } catch (NullPointerException unused3) { + handleException(new Exception("私钥数据为空")); + } + return null; + } + + // --------------------- 1 公钥加密,私钥解密 --------------------- + + /** + * 使用公钥将数据进行分段加密 + * + * @param data 要加密的数据 + * @param pubKey 公钥 Base64 字符串,X509 格式 + * @return 加密后的 Base64 编码数据,加密失败返回 null + */ + public static String encryptByPublicKey(String data, String pubKey, int mlong, boolean block) { + return encryptByPublicKey(data, pubKey, ECB_PKCS1_PADDING, mlong, block); + } + + public static String encryptByPublicKey(String data, String pubKey, String config, int mlong, boolean block) { + try { + byte[] bytes = data.getBytes("UTF-8"); + // 创建 Cipher 对象 + Cipher cipher = Cipher.getInstance(config); + // 初始化 Cipher 对象,加密模式 + RSAPublicKey rSAPublicKey = (RSAPublicKey) getPublicKey(pubKey); + cipher.init(Cipher.ENCRYPT_MODE, rSAPublicKey); + if(mlong == 1){ + return DataUtils.base64Encode(cipher.doFinal(bytes)); + } + int bitLength = MAX_ENCRYPT_BLOCK; + if(block){ + bitLength = rSAPublicKey.getModulus().bitLength() / 8 - 11; + } + int inputLen = bytes.length; + // 保存加密的数据 + ByteArrayOutputStream out = new ByteArrayOutputStream(); + int offSet = 0, i = 0; + byte[] cache; + // 使用 RSA 对数据分段加密 + while (inputLen - offSet > 0) { + if (inputLen - offSet > bitLength) { + cache = cipher.doFinal(bytes, offSet, bitLength); + } else { + cache = cipher.doFinal(bytes, offSet, inputLen - offSet); + } + // 将加密以后的数据保存到内存 + out.write(cache, 0, cache.length); + i++; + offSet = i * bitLength; + } + byte[] encryptedData = out.toByteArray(); + out.close(); + // 将加密后的数据转换成 Base64 字符串 + return DataUtils.base64Encode(encryptedData); + } catch (Exception e) { + handleException(e); + } + return null; + } + + /** + * 使用私钥将加密后的 Base64 字符串进行分段解密 + * + * + * @param encryptBase64Data 加密后的 Base64 字符串 + * @param prvKey 私钥 Base64 字符串,PKCS8 格式 + * @return 解密后的明文,解密失败返回 null + */ + public static String decryptByPrivateKey(String encryptBase64Data, String prvKey, int mlong, boolean block) { + return decryptByPrivateKey(encryptBase64Data, prvKey, ECB_PKCS1_PADDING, mlong, block); + } + + public static String decryptByPrivateKey(String encryptBase64Data, String prvKey, String config, int mlong, boolean block) { + try { + // 将要解密的数据,进行 Base64 解码 + byte[] encryptedData = DataUtils.base64Decode(encryptBase64Data); + // 创建 Cipher 对象,用来解密 + Cipher cipher = Cipher.getInstance(config); + // 初始化 Cipher 对象,解密模式 + RSAPrivateKey rSAPrivateKey = (RSAPrivateKey) getPrivateKey(prvKey); + cipher.init(Cipher.DECRYPT_MODE, rSAPrivateKey); + if(mlong == 1){ + return new String(cipher.doFinal(encryptedData)); + } + int bitLength = MAX_DECRYPT_BLOCK; + if(block){ + bitLength = rSAPrivateKey.getModulus().bitLength() / 8; + } + int inputLen = encryptedData.length; + // 保存解密的数据 + ByteArrayOutputStream out = new ByteArrayOutputStream(); + int offSet = 0, i = 0; + byte[] cache; + // 对数据分段解密 + while (inputLen - offSet > 0) { + if (inputLen - offSet > bitLength) { + cache = cipher.doFinal(encryptedData, offSet, bitLength); + } else { + cache = cipher.doFinal(encryptedData, offSet, inputLen - offSet); + } + // 将解密后的数据保存到内存 + out.write(cache, 0, cache.length); + i++; + offSet = i * bitLength; + } + out.close(); + return out.toString("UTF-8"); + } catch (Exception e) { + handleException(e); + } + return null; + } + + // --------------------- 2 私钥加密,公钥解密 --------------------- + + /** + * 使用 私钥 将数据进行分段加密 + * + * @param data 要加密的数据 + * @param prvKey 私钥 Base64 字符串,PKCS8 格式 + * @return 加密后的 Base64 编码数据,加密失败返回 null + */ + public static String encryptByPrivateKey(String data, String prvKey, int mlong, boolean block) { + return encryptByPrivateKey(data, prvKey, ECB_PKCS1_PADDING, mlong, block); + } + + public static String encryptByPrivateKey(String data, String prvKey, String config, int mlong, boolean block) { + try { + byte[] bytes = data.getBytes("UTF-8"); + // 创建 Cipher 对象 + Cipher cipher = Cipher.getInstance(config); + // 初始化 Cipher 对象,加密模式 + RSAPrivateKey rSAPrivateKey = (RSAPrivateKey) getPrivateKey(prvKey); + cipher.init(Cipher.ENCRYPT_MODE, rSAPrivateKey); + if(mlong == 1){ + return DataUtils.base64Encode(cipher.doFinal(bytes)); + } + int bitLength = MAX_ENCRYPT_BLOCK; + if(block){ + bitLength = rSAPrivateKey.getModulus().bitLength() / 8 - 11; + } + int inputLen = bytes.length; + // 保存加密的数据 + ByteArrayOutputStream out = new ByteArrayOutputStream(); + int offSet = 0, i = 0; + byte[] cache; + // 使用 RSA 对数据分段加密 + while (inputLen - offSet > 0) { + if (inputLen - offSet > bitLength) { + cache = cipher.doFinal(bytes, offSet, bitLength); + } else { + cache = cipher.doFinal(bytes, offSet, inputLen - offSet); + } + // 将加密以后的数据保存到内存 + out.write(cache, 0, cache.length); + i++; + offSet = i * bitLength; + } + byte[] encryptedData = out.toByteArray(); + out.close(); + // 将加密后的数据转换成 Base64 字符串 + return DataUtils.base64Encode(encryptedData); + } catch (Exception e) { + handleException(e); + } + return null; + } + + /** + * 使用 公钥 将加密后的 Base64 字符串进行分段解密 + * + * @param encryptBase64Data 加密后的 Base64 字符串 + * @param pubKey 公钥 Base64 字符串,X509 格式 + * @return 解密后的明文,解密失败返回 null + */ + + public static String decryptByPublicKey(String encryptBase64Data, String pubKey, int mlong, boolean block) { + return decryptByPublicKey(encryptBase64Data, pubKey, ECB_PKCS1_PADDING, mlong, block); + } + public static String decryptByPublicKey(String encryptBase64Data, String pubKey, String config, int mlong, boolean block) { + try { + // 将要解密的数据,进行 Base64 解码 + byte[] encryptedData = DataUtils.base64Decode(encryptBase64Data); + // 创建 Cipher 对象,用来解密 + Cipher cipher = Cipher.getInstance(config); + // 初始化 Cipher 对象,解密模式 + RSAPublicKey rSAPublicKey = (RSAPublicKey) getPublicKey(pubKey); + cipher.init(Cipher.DECRYPT_MODE, rSAPublicKey); + if(mlong == 1){ + return new String(cipher.doFinal(encryptedData)); + } + int bitLength = MAX_DECRYPT_BLOCK; + if(block){ + bitLength = rSAPublicKey.getModulus().bitLength() / 8; + } + int inputLen = encryptedData.length; + // 保存解密的数据 + ByteArrayOutputStream out = new ByteArrayOutputStream(); + int offSet = 0, i = 0; + byte[] cache; + // 对数据分段解密 + while (inputLen - offSet > 0) { + if (inputLen - offSet > bitLength) { + cache = cipher.doFinal(encryptedData, offSet, bitLength); + } else { + cache = cipher.doFinal(encryptedData, offSet, inputLen - offSet); + } + // 将解密后的数据保存到内存 + out.write(cache, 0, cache.length); + i++; + offSet = i * bitLength; + } + out.close(); + return out.toString("UTF-8"); + } catch (Exception e) { + handleException(e); + } + return null; + } + + /** + * 处理异常 + */ + private static void handleException(Exception e) { + e.printStackTrace(); + Log.e(TAG, TAG + e); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/github/tvbox/osc/util/urlhttp/BrotliInterceptor.java b/app/src/main/java/com/github/tvbox/osc/util/urlhttp/BrotliInterceptor.java new file mode 100644 index 0000000000..2b56289fb2 --- /dev/null +++ b/app/src/main/java/com/github/tvbox/osc/util/urlhttp/BrotliInterceptor.java @@ -0,0 +1,71 @@ +package com.github.tvbox.osc.util.urlhttp; + + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import com.github.tvbox.osc.util.urlhttp.internal.BrotliSource; + +import org.jetbrains.annotations.NotNull; + +import java.io.IOException; + +import okhttp3.Interceptor; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.internal.http.RealResponseBody; +import okio.GzipSource; +import okio.Okio; +import okio.Source; + +public class BrotliInterceptor implements Interceptor { + + @NonNull + @Override + public Response intercept(Chain chain) throws IOException { + Request userRequest = chain.request(); + if (chain.request().header("Accept-Encoding") == null) { + userRequest = chain.request().newBuilder() + .header("Accept-Encoding", "br,gzip") + .build(); + return uncompress(chain.proceed(userRequest)); + } + return chain.proceed(userRequest); + } + public static boolean isEmpty(CharSequence str) { + return str == null || str.length() == 0; + } + + public static boolean isNotEmpty(@Nullable CharSequence str) { + return !isEmpty(str); + } + @NotNull + public final Response uncompress(@NotNull Response response) throws IOException { + ResponseBody body = response.body(); + if (body != null) { + String encoding = response.header("Content-Encoding"); + if (isNotEmpty(encoding)) { + Source brotliSource; + if (encoding.equals("br")) { + brotliSource = BrotliSource.create(body.source()); + } else if (encoding.equals("gzip")) { + brotliSource = new GzipSource(body.source()); + } else { + return response; + } + return response.newBuilder() + .removeHeader("Content-Encoding") + .removeHeader("Content-Length") + .body(RealResponseBody.create(body.contentType(), -1L, Okio.buffer(brotliSource))) + .build(); + } else { + return response; + } + } else { + return response; + } + } +} + + diff --git a/app/src/main/java/com/github/tvbox/osc/util/urlhttp/internal/BrotliSource.java b/app/src/main/java/com/github/tvbox/osc/util/urlhttp/internal/BrotliSource.java new file mode 100644 index 0000000000..fedb28e5b9 --- /dev/null +++ b/app/src/main/java/com/github/tvbox/osc/util/urlhttp/internal/BrotliSource.java @@ -0,0 +1,16 @@ +package com.github.tvbox.osc.util.urlhttp.internal; + +import org.brotli.dec.BrotliInputStream; + +import java.io.IOException; + +import okio.BufferedSource; +import okio.Okio; +import okio.Source; + +public final class BrotliSource { + public static Source create(BufferedSource source) throws IOException { + BrotliInputStream brotliInputStream = new BrotliInputStream(source.inputStream()); + return Okio.source(brotliInputStream); + } +} diff --git a/app/src/main/java/com/github/tvbox/osc/viewmodel/SourceViewModel.java b/app/src/main/java/com/github/tvbox/osc/viewmodel/SourceViewModel.java index e6dbc74aba..2500529671 100644 --- a/app/src/main/java/com/github/tvbox/osc/viewmodel/SourceViewModel.java +++ b/app/src/main/java/com/github/tvbox/osc/viewmodel/SourceViewModel.java @@ -3,11 +3,11 @@ import android.text.TextUtils; import android.util.Base64; - import androidx.annotation.NonNull; import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel; +import com.github.catvod.crawler.JsLoader; import com.github.catvod.crawler.Spider; import com.github.tvbox.osc.api.ApiConfig; import com.github.tvbox.osc.base.App; @@ -38,12 +38,11 @@ import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; +import okhttp3.Call; import org.greenrobot.eventbus.EventBus; import org.json.JSONObject; - import java.io.IOException; - import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; @@ -62,8 +61,6 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import okhttp3.Call; - /** * @author pj567 * @date :2020/12/18 @@ -76,6 +73,32 @@ public class SourceViewModel extends ViewModel { public MutableLiveData quickSearchResult; public MutableLiveData detailResult; public MutableLiveData playResult; + private ExecutorService searchExecutorService; + + public void initExecutor() { + if (searchExecutorService != null) { + searchExecutorService.shutdownNow(); + searchExecutorService = null; + JsLoader.stopAll(); + } + searchExecutorService = Executors.newFixedThreadPool(5); + } + + public void execute(Runnable runnable) { + if (searchExecutorService != null) { + searchExecutorService.execute(runnable); + } + } + + public List shutdownNow() { + return searchExecutorService == null ? new ArrayList<>() : searchExecutorService.shutdownNow(); + } + + public void destroyExecutor() { + if (searchExecutorService != null) { + searchExecutorService = null; + } + } public SourceViewModel() { sortResult = new MutableLiveData<>(); @@ -197,7 +220,7 @@ public void onError(Response response) { } }); }else if (type == 4) { - String extend=sourceBean.getExt(); + String extend=sourceBean.getExt(); extend=getFixUrl(extend); if(URLEncoder.encode(extend).length()<1000){ OkGo.get(sourceBean.getApi()) @@ -213,7 +236,6 @@ public String convertResponse(okhttp3.Response response) throws Throwable { throw new IllegalStateException("网络请求错误"); } } - @Override public void onSuccess(Response response) { String sortJson = response.body(); @@ -240,7 +262,6 @@ public void done(List videos) { sortResult.postValue(null); } } - @Override public void onError(Response response) { super.onError(response); @@ -257,7 +278,6 @@ public void onError(Response response) { public void onFailure(@NonNull Call call, IOException e) { sortResult.postValue(null); } - @Override public void onResponse(@NonNull Call call, @NonNull okhttp3.Response response) throws IOException { assert response.body() != null; @@ -267,24 +287,24 @@ public void onResponse(@NonNull Call call, @NonNull okhttp3.Response response) t AbsXml absXml = json(null, sortJson, sourceBean.getKey()); if (absXml != null && absXml.movie != null && absXml.movie.videoList != null && absXml.movie.videoList.size() > 0) { sortXml.videoList = absXml.movie.videoList; - sortResult.postValue(sortXml); + sortResult.postValue(sortXml); } } else { sortResult.postValue(sortXml); - } + } } }); } catch (Exception ignored) { sortResult.postValue(null); } - } + } } else { sortResult.postValue(null); } } // categoryContent - public void getList(MovieSort.SortData sortData, int page) { - SourceBean homeSourceBean = ApiConfig.get().getHomeSourceBean(); + public void getList(MovieSort.SortData sortData, int page, String sourceKey) { + SourceBean homeSourceBean = TextUtils.isEmpty(sourceKey) ? ApiConfig.get().getHomeSourceBean(): ApiConfig.get().getSource(sourceKey); int type = homeSourceBean.getType(); if (type == 3) { spThreadPool.execute(new Runnable() { @@ -335,17 +355,17 @@ public void onError(Response response) { } }); }else if (type == 4) { - String ext= ""; + String ext=""; if (sortData.filterSelect != null && sortData.filterSelect.size() > 0) { try { - String selectExt = new JSONObject(sortData.filterSelect).toString(); - ext = Base64.encodeToString(selectExt.getBytes("UTF-8"), Base64.DEFAULT | Base64.NO_WRAP); + String selectExt = new JSONObject(sortData.filterSelect).toString(); + ext = Base64.encodeToString(selectExt.getBytes("UTF-8"), Base64.DEFAULT | Base64.NO_WRAP); LOG.i(ext); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } }else { - ext = Base64.encodeToString("{}".getBytes(), Base64.DEFAULT | Base64.NO_WRAP); + ext = Base64.encodeToString("{}".getBytes(), Base64.DEFAULT | Base64.NO_WRAP); } OkGo.get(homeSourceBean.getApi()) .tag(homeSourceBean.getApi()) @@ -385,7 +405,7 @@ public void onError(Response response) { interface HomeRecCallback { void done(List videos); } -// homeVideoContent + //homeVideoContent void getHomeRecList(SourceBean sourceBean, ArrayList ids, HomeRecCallback callback) { int type = sourceBean.getType(); if (type == 3) { @@ -470,10 +490,12 @@ public void onError(Response response) { } else { callback.done(null); } - } - // detailContent + } + + // detailContent public void getDetail(String sourceKey, String urlid) { - if (urlid.startsWith("push://") && ApiConfig.get().getSource("push_agent") != null) { + + if (urlid.startsWith("push://") && ApiConfig.get().getSource("push_agent") != null) { String pushUrl = urlid.substring(7); if (pushUrl.startsWith("b64:")) { try { @@ -487,8 +509,8 @@ public void getDetail(String sourceKey, String urlid) { sourceKey = "push_agent"; urlid = pushUrl; } - String id = urlid; - + String id = urlid; + SourceBean sourceBean = ApiConfig.get().getSource(sourceKey); int type = sourceBean.getType(); if (type == 3) { @@ -497,7 +519,7 @@ public void getDetail(String sourceKey, String urlid) { public void run() { try { Spider sp = ApiConfig.get().getCSP(sourceBean); - List ids = new ArrayList<>(); + List ids = new ArrayList<>(); ids.add(id); String json=sp.detailContent(ids); LOG.i("JSON:"+json); @@ -556,7 +578,7 @@ public void getSearch(String sourceKey, String wd) { if(!TextUtils.isEmpty(search)){ json(searchResult, search, sourceBean.getKey()); } else { - json(searchResult, "", sourceBean.getKey()); + json(searchResult, "", sourceBean.getKey()); } } catch (Throwable th) { th.printStackTrace(); @@ -565,7 +587,7 @@ public void getSearch(String sourceKey, String wd) { } else if (type == 0 || type == 1) { OkGo.get(sourceBean.getApi()) .params("wd", wd) - .params(type == 1 ? "ac" : null, type == 1 ? "detail" : null) + .params("ac", "detail") .tag("search") .execute(new AbsCallback() { @Override @@ -643,7 +665,7 @@ public void getQuickSearch(String sourceKey, String wd) { } else if (type == 0 || type == 1) { OkGo.get(sourceBean.getApi()) .params("wd", wd) - .params(type == 1 ? "ac" : null, type == 1 ? "detail" : null) + .params("ac", "detail") .tag("quick_search") .execute(new AbsCallback() { @Override @@ -716,9 +738,9 @@ public void getPlay(String sourceKey, String playFlag, String progressKey, Strin @Override public void run() { Spider sp = ApiConfig.get().getCSP(sourceBean); - if(TextUtils.isEmpty(url))return; - String json = sp.playerContent(playFlag, url, ApiConfig.get().getVipParseFlags()); + if(TextUtils.isEmpty(url))return; try { + String json = sp.playerContent(playFlag, url, ApiConfig.get().getVipParseFlags()); JSONObject result = new JSONObject(json); result.put("key", url); result.put("proKey", progressKey); @@ -754,7 +776,7 @@ public void run() { playResult.postValue(null); } } else if (type == 4) { - String extend=sourceBean.getExt(); + String extend=sourceBean.getExt(); extend=getFixUrl(extend); if(URLEncoder.encode(extend).length()>1000)extend=""; OkGo.get(sourceBean.getApi()) @@ -800,7 +822,7 @@ public void onError(Response response) { playResult.postValue(null); } } - + private String getFixUrl(String content){ if (content.startsWith("http://127.0.0.1")) { String path = content.replaceAll("^http.+/file/", FileUtils.getRootPath()+"/"); @@ -871,6 +893,7 @@ private AbsSortXml sortXml(MutableLiveData result, String xml) { xstream.autodetectAnnotations(true); xstream.processAnnotations(AbsSortXml.class); xstream.ignoreUnknownElements(); + xstream.allowTypes(new Class[]{AbsSortXml.class}); AbsSortXml data = (AbsSortXml) xstream.fromXML(xml); for (MovieSort.SortData sort : data.classes.sortList) { if (sort.filters == null) { @@ -921,7 +944,8 @@ private void absXml(AbsXml data, String sourceKey) { } } } - + + private AbsXml checkPush(AbsXml data) { if (data.movie != null && data.movie.videoList != null && data.movie.videoList.size() > 0) { Movie.Video video = data.movie.videoList.get(0); @@ -1056,7 +1080,7 @@ public void checkThunder(AbsXml data, int index) { if (data.movie != null && data.movie.videoList != null && data.movie.videoList.size() == 1) { Movie.Video video = data.movie.videoList.get(0); if (video != null && video.urlBean != null && video.urlBean.infoList != null) { - boolean hasThunder=false; + boolean hasThunder=false; thunderLoop: for (int idx=0;idx urlMap) { for (int key : urlMap.keySet()) { @@ -1096,18 +1120,17 @@ public void list(Map urlMap) { infoBeanList.add(new Movie.Video.UrlBean.UrlInfo.InfoBean(ss[0], ss[1])); } else { infoBeanList.add(new Movie.Video.UrlBean.UrlInfo.InfoBean((infoBeanList.size() + 1) + "", ss[0])); - } + } } - } + } } video.urlBean.infoList.get(key).beanList = infoBeanList; } detailResult.postValue(data); } - + @Override - public void play(String url) { - + public void play(String url) { } }); } @@ -1124,6 +1147,7 @@ private AbsXml xml(MutableLiveData result, String xml, String sourceKey) xstream.autodetectAnnotations(true); xstream.processAnnotations(AbsXml.class); xstream.ignoreUnknownElements(); + xstream.allowTypes(new Class[]{AbsXml.class}); if (xml.contains("")) { xml = xml.replace("", "0"); } @@ -1138,9 +1162,9 @@ private AbsXml xml(MutableLiveData result, String xml, String sourceKey) EventBus.getDefault().post(new RefreshEvent(RefreshEvent.TYPE_QUICK_SEARCH_RESULT, data)); } else if (result != null) { if (result == detailResult) { - data = checkPush(data); + data = checkPush(data); checkThunder(data,0); - }else { + } else { result.postValue(data); } } @@ -1186,9 +1210,9 @@ private AbsXml json(MutableLiveData result, String json, String sourceKe EventBus.getDefault().post(new RefreshEvent(RefreshEvent.TYPE_QUICK_SEARCH_RESULT, data)); } else if (result != null) { if (result == detailResult) { - data = checkPush(data); + data = checkPush(data); checkThunder(data,0); - }else { + } else { result.postValue(data); } } diff --git a/quickjs/proguard-rules.pro b/quickjs/proguard-rules.pro deleted file mode 100644 index c844e01654..0000000000 --- a/quickjs/proguard-rules.pro +++ /dev/null @@ -1,23 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile - --keep class com.github.tvbox.quickjs.** {*;} \ No newline at end of file diff --git a/quickjs/src/main/AndroidManifest.xml b/quickjs/src/main/AndroidManifest.xml deleted file mode 100644 index e22efb377e..0000000000 --- a/quickjs/src/main/AndroidManifest.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/quickjs/src/main/java/com/github/tvbox/quickjs/JSArray.java b/quickjs/src/main/java/com/github/tvbox/quickjs/JSArray.java deleted file mode 100644 index 2d0c0836b8..0000000000 --- a/quickjs/src/main/java/com/github/tvbox/quickjs/JSArray.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.github.tvbox.quickjs; - -public class JSArray extends JSObject { - - public JSArray(QuickJSContext context, long pointer) { - super(context, pointer); - } - - public int length() { - checkReleased(); - return getContext().length(this); - } - - public Object get(int index) { - checkReleased(); - return getContext().get(this, index); - } - - public void set(Object value, int index) { - checkReleased(); - getContext().set(this, value, index); - } - -} diff --git a/quickjs/src/main/java/com/github/tvbox/quickjs/JSCallFunction.java b/quickjs/src/main/java/com/github/tvbox/quickjs/JSCallFunction.java deleted file mode 100644 index 19849d46bd..0000000000 --- a/quickjs/src/main/java/com/github/tvbox/quickjs/JSCallFunction.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.github.tvbox.quickjs; - -public interface JSCallFunction { - - Object call(Object... args); - -} diff --git a/quickjs/src/main/java/com/github/tvbox/quickjs/JSFunction.java b/quickjs/src/main/java/com/github/tvbox/quickjs/JSFunction.java deleted file mode 100644 index 013da4dbc2..0000000000 --- a/quickjs/src/main/java/com/github/tvbox/quickjs/JSFunction.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.github.tvbox.quickjs; - -public class JSFunction extends JSObject { - - private final long objPointer; - - public JSFunction(QuickJSContext context, long objPointer, long pointer) { - super(context, pointer); - this.objPointer = objPointer; - } - - public Object call(Object... args) { - return getContext().call(this, objPointer, args); - } - -} diff --git a/quickjs/src/main/java/com/github/tvbox/quickjs/JSMethod.java b/quickjs/src/main/java/com/github/tvbox/quickjs/JSMethod.java deleted file mode 100644 index 8a352d84f1..0000000000 --- a/quickjs/src/main/java/com/github/tvbox/quickjs/JSMethod.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.github.tvbox.quickjs; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Retention(value = RetentionPolicy.RUNTIME) -@Target(value = {ElementType.METHOD}) -public @interface JSMethod { -} \ No newline at end of file diff --git a/quickjs/src/main/java/com/github/tvbox/quickjs/JSModule.java b/quickjs/src/main/java/com/github/tvbox/quickjs/JSModule.java deleted file mode 100644 index ed021fbf4b..0000000000 --- a/quickjs/src/main/java/com/github/tvbox/quickjs/JSModule.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.github.tvbox.quickjs; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -/** - * Created by Harlon Wang on 2021/10/12. - */ -public final class JSModule { - - private static Loader sModuleLoader; - - public interface Loader { - String getModuleScript(String moduleName); - } - - public static void setModuleLoader(Loader sModuleLoader) { - JSModule.sModuleLoader = sModuleLoader; - } - - static String getModuleScript(String moduleName) { - return sModuleLoader.getModuleScript(moduleName); - } - - static boolean isRemote(String name) { - return name.startsWith("http://") || name.startsWith("https://") || name.startsWith("assets://"); - } - - public static String convertModuleName(String moduleBaseName, String moduleName) { - if (moduleName == null || moduleName.length() == 0) { - return moduleName; - } - if (isRemote(moduleName)) - return moduleName; - moduleName = moduleName.replace("//", "/"); - if (moduleName.startsWith("./")) { - moduleName = moduleName.substring(2); - } - if (moduleName.charAt(0) == '/') { - return moduleName; - } - if (moduleBaseName == null || moduleBaseName.length() == 0) { - return moduleName; - } - if (!isRemote(moduleBaseName)) - moduleBaseName = moduleBaseName.replace("//", "/"); - if (moduleBaseName.startsWith("./")) { - moduleBaseName = moduleBaseName.substring(2); - } - if (moduleBaseName.equals("/")) { - return "/" + moduleName; - } - if (moduleBaseName.endsWith("/")) { - return moduleBaseName + moduleName; - } - String[] parentSplit = moduleBaseName.split("/"); - String[] pathSplit = moduleName.split("/"); - List parentStack = new ArrayList<>(); - List pathStack = new ArrayList<>(); - Collections.addAll(parentStack, parentSplit); - Collections.addAll(pathStack, pathSplit); - while (!pathStack.isEmpty()) { - String tmp = pathStack.get(0); - if (tmp.equals("..")) { - pathStack.remove(0); - parentStack.remove(parentStack.size() - 1); - } else { - break; - } - } - if (!parentStack.isEmpty()) { - parentStack.remove(parentStack.size() - 1); - } - StringBuilder builder = new StringBuilder(); - if (moduleBaseName.startsWith("/")) { - builder.append("/"); - } - for (String it : parentStack) { - builder.append(it).append("/"); - } - for (String it : pathStack) { - builder.append(it).append("/"); - } - builder.deleteCharAt(builder.length() - 1); - return builder.toString(); - } - -} diff --git a/quickjs/src/main/java/com/github/tvbox/quickjs/JSObject.java b/quickjs/src/main/java/com/github/tvbox/quickjs/JSObject.java deleted file mode 100644 index b341fd4c99..0000000000 --- a/quickjs/src/main/java/com/github/tvbox/quickjs/JSObject.java +++ /dev/null @@ -1,257 +0,0 @@ -package com.github.tvbox.quickjs; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; - -public class JSObject { - - private final QuickJSContext context; - private final long pointer; - - private boolean isReleased; - - public JSObject(QuickJSContext context, long pointer) { - this.context = context; - this.pointer = pointer; - } - - public long getPointer() { - return pointer; - } - - public QuickJSContext getContext() { - return context; - } - - public Object getProperty(String name) { - checkReleased(); - return context.getProperty(this, name); - } - - public void setProperty(String name, String value) { - context.setProperty(this, name, value); - } - - public void setProperty(String name, int value) { - context.setProperty(this, name, value); - } - - public void setProperty(String name, JSObject value) { - context.setProperty(this, name, value); - } - - public void setProperty(String name, boolean value) { - context.setProperty(this, name, value); - } - - public void setProperty(String name, double value) { - context.setProperty(this, name, value); - } - - public void setProperty(String name, JSCallFunction value) { - context.setProperty(this, name, value); - } - - /** - * Class 添加 {@link JSMethod} 的方法会被注入到 JSContext 中 - * 注意:该方法暂不支持匿名内部类的注册,因为匿名内部类构造参数不是无参的,newInstance 时会报错 - * @param name - * @param clazz - */ - public void setProperty(String name, Class clazz) { - Object javaObj = null; - try { - javaObj = clazz.newInstance(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } catch (InstantiationException e) { - e.printStackTrace(); - } - - if (javaObj == null) { - throw new NullPointerException("The JavaObj cannot be null. An error occurred in newInstance!"); - } - - JSObject jsObj = context.createNewJSObject(); - Method[] methods = clazz.getMethods(); - for (Method method : methods) { - if (method.isAnnotationPresent(JSMethod.class)) { - Object finalJavaObj = javaObj; - jsObj.setProperty(method.getName(), args -> { - try { - return method.invoke(finalJavaObj, args); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } catch (InvocationTargetException e) { - e.printStackTrace(); - } - return null; - }); - } - } - - setProperty(name, jsObj); - } - - public String getString(String name) { - Object value = getProperty(name); - return value instanceof String ? (String) value : null; - } - - /** - * See {@link JSObject#getString(String)} - */ - @Deprecated - public String getStringProperty(String name) { - Object value = getProperty(name); - return value instanceof String ? (String) value : null; - } - - public Integer getInteger(String name) { - Object value = getProperty(name); - return value instanceof Integer ? (Integer) value : null; - } - - /** - * See {@link JSObject#getInteger(String)} - */ - @Deprecated - public Integer getIntProperty(String name) { - Object value = getProperty(name); - return value instanceof Integer ? (Integer) value : null; - } - - public Boolean getBoolean(String name) { - Object value = getProperty(name); - return value instanceof Boolean ? (Boolean) value : null; - } - - /** - * See {@link JSObject#getBoolean(String)} - */ - @Deprecated - public Boolean getBooleanProperty(String name) { - Object value = getProperty(name); - return value instanceof Boolean ? (Boolean) value : null; - } - - public Double getDouble(String name) { - Object value = getProperty(name); - return value instanceof Double ? (Double) value : null; - } - - /** - * See {@link JSObject#getDouble(String)} - */ - @Deprecated - public Double getDoubleProperty(String name) { - Object value = getProperty(name); - return value instanceof Double ? (Double) value : null; - } - - public JSObject getJSObject(String name) { - Object value = getProperty(name); - return value instanceof JSObject ? (JSObject) value : null; - } - - /** - * See {@link JSObject#getJSObject(String)} - */ - @Deprecated - public JSObject getJSObjectProperty(String name) { - Object value = getProperty(name); - return value instanceof JSObject ? (JSObject) value : null; - } - - public JSFunction getJSFunction(String name) { - Object value = getProperty(name); - return value instanceof JSFunction ? (JSFunction) value : null; - } - - /** - * See {@link JSObject#getJSFunction(String)} - */ - @Deprecated - public JSFunction getJSFunctionProperty(String name) { - Object value = getProperty(name); - return value instanceof JSFunction ? (JSFunction) value : null; - } - - public JSArray getJSArray(String name) { - Object value = getProperty(name); - return value instanceof JSArray ? (JSArray) value : null; - } - - /** - * See {@link JSObject#getJSArray(String)} - */ - @Deprecated - public JSArray getJSArrayProperty(String name) { - Object value = getProperty(name); - return value instanceof JSArray ? (JSArray) value : null; - } - - public JSArray getNames() { - JSFunction getOwnPropertyNames = (JSFunction) context.evaluate("Object.getOwnPropertyNames"); - return (JSArray) getOwnPropertyNames.call(this); - } - - /** - * See {@link JSObject#getNames()} - */ - @Deprecated - public JSArray getOwnPropertyNames() { - JSFunction getOwnPropertyNames = (JSFunction) context.evaluate("Object.getOwnPropertyNames"); - return (JSArray) getOwnPropertyNames.call(this); - } - - /** - * JSObject 确定不再使用后,调用该方法可主动释放对 JS 对象的引用。 - * 注意:该方法不能调用多次以及释放后不能再被使用对应的 JS 对象。 - */ - public void release() { - checkReleased(); - - context.freeValue(this); - isReleased = true; - } - - public void hold() { - context.hold(this); - } - - @Override - public String toString() { - checkReleased(); - - Object formatString = context.evaluate("__format_string;"); - if (formatString instanceof JSFunction) { - return (String) ((JSFunction) formatString).call(this); - } - - return super.toString(); - } - - public String stringify() { - return context.stringify(this); - } - - final void checkReleased() { - if (isReleased) { - throw new NullPointerException("This JSObject was Released, Can not call this!"); - } - } - - public boolean isAlive() { - return context.isLiveObject(this); - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - JSObject jsObject = (JSObject) o; - return pointer == jsObject.pointer && isReleased == jsObject.isReleased && context == jsObject.context; - } - -} diff --git a/quickjs/src/main/java/com/github/tvbox/quickjs/NativeCleaner.java b/quickjs/src/main/java/com/github/tvbox/quickjs/NativeCleaner.java deleted file mode 100644 index 0e7ec537c3..0000000000 --- a/quickjs/src/main/java/com/github/tvbox/quickjs/NativeCleaner.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.github.tvbox.quickjs; - -import java.lang.ref.PhantomReference; -import java.lang.ref.ReferenceQueue; -import java.util.HashSet; -import java.util.Set; - -/** - * https://youtu.be/7_caITSjk1k - */ -abstract class NativeCleaner { - - private Set> phantomReferences = new HashSet<>(); - private ReferenceQueue referenceQueue = new ReferenceQueue<>(); - - /** - * Returns the size of not removed objects. - */ - public int size() { - return phantomReferences.size(); - } - - /** - * Registers the object and the native pointer to this cleaner. - * - * @param referent the object - * @param pointer the native pointer - */ - public void register(T referent, long pointer) { - phantomReferences.add(new NativeReference<>(referent, pointer, referenceQueue)); - } - - /** - * Releases the native resources associated with the native pointer. - * It's called in {@link #clean()} on objects recycled by GC, - * or in {@link #forceClean()} on all objects. - * It's only called once on each object. - * - * @param pointer the native pointer - */ - public abstract void onRemove(long pointer); - - /** - * Calls {@link #onRemove(long)} on objects recycled by GC. - */ - @SuppressWarnings("unchecked") - public void clean() { - NativeReference ref; - while ((ref = (NativeReference) referenceQueue.poll()) != null) { - if (phantomReferences.contains(ref)) { - onRemove(ref.pointer); - phantomReferences.remove(ref); - } - } - } - - /** - * Calls {@link #onRemove(long)} on all objects. - */ - public void forceClean() { - for (NativeReference ref : phantomReferences) { - onRemove(ref.pointer); - } - phantomReferences.clear(); - } - - private static class NativeReference extends PhantomReference { - - private long pointer; - - private NativeReference(T referent, long pointer, ReferenceQueue q) { - super(referent, q); - this.pointer = pointer; - } - } -} diff --git a/quickjs/src/main/java/com/github/tvbox/quickjs/QuickJSContext.java b/quickjs/src/main/java/com/github/tvbox/quickjs/QuickJSContext.java deleted file mode 100644 index b77f1bbae2..0000000000 --- a/quickjs/src/main/java/com/github/tvbox/quickjs/QuickJSContext.java +++ /dev/null @@ -1,225 +0,0 @@ -package com.github.tvbox.quickjs; - -public class QuickJSContext { - - private static final String UNKNOWN_FILE = "unknown.js"; - - public static QuickJSContext create() { - return new QuickJSContext(); - } - - public static QuickJSContext create(int maxStackSize) { - QuickJSContext context = create(); - context.setMaxStackSize(maxStackSize); - return context; - } - - private final long context; - private final NativeCleaner nativeCleaner = new NativeCleaner() { - @Override - public void onRemove(long pointer) { - freeDupValue(context, pointer); - } - }; - private final long currentThreadId; - - private QuickJSContext() { - try { - context = createContext(); - } catch (UnsatisfiedLinkError e) { - throw new QuickJSException("The so library must be initialized before createContext!"); - } - currentThreadId = Thread.currentThread().getId(); - } - - private void checkSameThread() { - boolean isSameThread = currentThreadId == Thread.currentThread().getId(); - if (!isSameThread) { - throw new QuickJSException("Must be call same thread in QuickJSContext.create!"); - } - } - - public Object evaluate(String script) { - return evaluate(script, UNKNOWN_FILE); - } - - public Object evaluate(String script, String fileName) { - checkSameThread(); - return evaluate(context, script, fileName); - } - - public JSObject getGlobalObject() { - checkSameThread(); - return getGlobalObject(context); - } - - public void destroyContext() { - checkSameThread(); - - nativeCleaner.forceClean(); - destroyContext(context); - } - - public String stringify(JSObject jsObj) { - checkSameThread(); - return stringify(context, jsObj.getPointer()); - } - - public Object getProperty(JSObject jsObj, String name) { - checkSameThread(); - return getProperty(context, jsObj.getPointer(), name); - } - - public void setProperty(JSObject jsObj, String name, Object value) { - checkSameThread(); - - setProperty(context, jsObj.getPointer(), name, value); - } - - public void freeValue(JSObject jsObj) { - checkSameThread(); - freeValue(context, jsObj.getPointer()); - } - - /** - * Native 层注册的 JS 方法里的对象需要在其他地方使用, - * 调用该方法进行计数加一增加引用,不然 JS 方法执行完会被回收掉。 - * 注意:不再使用的时候,调用对应的 {@link #freeDupValue(JSObject)} 方法进行计数减一。 - */ - private void dupValue(JSObject jsObj) { - checkSameThread(); - dupValue(context, jsObj.getPointer()); - } - - /** - * 引用计数减一,对应 {@link #dupValue(JSObject)} - */ - private void freeDupValue(JSObject jsObj) { - checkSameThread(); - freeDupValue(context, jsObj.getPointer()); - } - - public int length(JSArray jsArray) { - checkSameThread(); - return length(context, jsArray.getPointer()); - } - - public Object get(JSArray jsArray, int index) { - checkSameThread(); - return get(context, jsArray.getPointer(), index); - } - - public void set(JSArray jsArray, Object value, int index) { - checkSameThread(); - set(context, jsArray.getPointer(), value, index); - } - - Object call(JSObject func, long objPointer, Object... args) { - checkSameThread(); - - return call(context, func.getPointer(), objPointer, args); - } - - /** - * Automatically manage the release of objects, - * the hold method is equivalent to call the - * dupValue and freeDupValue methods with NativeCleaner. - */ - public void hold(JSObject jsObj) { - checkSameThread(); - - dupValue(jsObj); - nativeCleaner.register(jsObj, jsObj.getPointer()); - } - - public JSObject createNewJSObject() { - return parseJSON("{}"); - } - - public JSArray createNewJSArray() { - return (JSArray) parseJSON("[]"); - } - - public JSObject parseJSON(String json) { - checkSameThread(); - return parseJSON(context, json); - } - - public byte[] compile(String sourceCode) { - checkSameThread(); - return compile(context, sourceCode, UNKNOWN_FILE); - } - - public byte[] compile(String sourceCode, String fileName) { - checkSameThread(); - return compile(context, sourceCode, fileName); - } - - public Object execute(byte[] code) { - checkSameThread(); - return execute(context, code); - } - - public Object evaluateModule(String script, String moduleName) { - return evaluateModule(context, script, moduleName); - } - - public Object evaluateModule(String script) { - checkSameThread(); - return evaluateModule(script, UNKNOWN_FILE); - } - - public void throwJSException(String error) { - checkSameThread(); - - // throw $error; - String errorScript = "throw " + "\"" + error + "\"" + ";"; - evaluate(errorScript); - } - - public void setMaxStackSize(int maxStackSize) { - checkSameThread(); - setMaxStackSize(context, maxStackSize); - } - - public boolean isLiveObject(JSObject jsObj) { - return isLiveObject(context, jsObj.getPointer()); - } - - public void runGC() { - runGC(context); - } - - // context - private native long createContext(); - private native void destroyContext(long context); - - private native Object evaluate(long context, String script, String fileName); - private native Object evaluateModule(long context, String script, String fileName); - private native JSObject getGlobalObject(long context); - private native Object call(long context, long func, long thisObj, Object[] args); - - private native Object getProperty(long context, long objValue, String name); - private native void setProperty(long context, long objValue, String name, Object value); - private native String stringify(long context, long objValue); - private native int length(long context, long objValue); - private native Object get(long context, long objValue, int index); - private native void set(long context, long objValue, Object value, int index); - private native void freeValue(long context, long objValue); - private native void dupValue(long context, long objValue); - private native void freeDupValue(long context, long objValue); - - // JSON.parse - private native JSObject parseJSON(long context, String json); - - // bytecode - private native byte[] compile(long context, String sourceCode, String fileName); - private native Object execute(long context, byte[] bytecode); - - // The default is 1024 * 256, and 0 means unlimited. - private native void setMaxStackSize(long context, int size); - - private native boolean isLiveObject(long context, long objValue); - - private native void runGC(long context); -} diff --git a/quickjs/src/main/java/com/github/tvbox/quickjs/QuickJSException.java b/quickjs/src/main/java/com/github/tvbox/quickjs/QuickJSException.java deleted file mode 100644 index b3d39839ce..0000000000 --- a/quickjs/src/main/java/com/github/tvbox/quickjs/QuickJSException.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.github.tvbox.quickjs; - -/** - * Created by Harlon Wang on 2022/2/8. - */ -public class QuickJSException extends RuntimeException { - - private final boolean jsError; - - public QuickJSException(String message) { - this(message, false); - } - - public QuickJSException(String message, boolean jsError) { - super(message); - this.jsError = jsError; - } - - public boolean isJSError() { - return jsError; - } -} diff --git a/quickjs/src/main/jniLibs/armeabi-v7a/libquickjs.so b/quickjs/src/main/jniLibs/armeabi-v7a/libquickjs.so deleted file mode 100644 index e0ac32811c..0000000000 Binary files a/quickjs/src/main/jniLibs/armeabi-v7a/libquickjs.so and /dev/null differ diff --git a/settings.gradle b/settings.gradle index 30f86e81c8..fa6e396ff4 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,4 +1,4 @@ rootProject.name = "TVBox" include ':app' include ':player' -include ':quickjs' \ No newline at end of file +//include ':quickjs'