diff --git a/packages/compare-images/package.json b/packages/compare-images/package.json index dc6ac0bc2..95530fd71 100644 --- a/packages/compare-images/package.json +++ b/packages/compare-images/package.json @@ -1,6 +1,6 @@ { "name": "@itk-wasm/compare-images-build", - "version": "5.4.0", + "version": "5.4.1", "private": true, "description": "@itk-wasm/compare-stringify build configuration", "type": "module", diff --git a/packages/compare-images/pixi.toml b/packages/compare-images/pixi.toml index bfebfeda2..8f5575a33 100644 --- a/packages/compare-images/pixi.toml +++ b/packages/compare-images/pixi.toml @@ -1,5 +1,5 @@ -[project] -authors = ["Matt McCormick "] +[workspace] +authors = ["Matt McCormick "] channels = ["conda-forge"] description = "Compare images with a tolerance for regression testing." name = "compare-images" diff --git a/packages/compare-images/python/itkwasm-compare-images-emscripten/itkwasm_compare_images_emscripten/_version.py b/packages/compare-images/python/itkwasm-compare-images-emscripten/itkwasm_compare_images_emscripten/_version.py index fc30498fa..1e41bf8f7 100644 --- a/packages/compare-images/python/itkwasm-compare-images-emscripten/itkwasm_compare_images_emscripten/_version.py +++ b/packages/compare-images/python/itkwasm-compare-images-emscripten/itkwasm_compare_images_emscripten/_version.py @@ -1 +1 @@ -__version__ = "5.4.0" +__version__ = "5.4.1" diff --git a/packages/compare-images/python/itkwasm-compare-images-emscripten/itkwasm_compare_images_emscripten/js_package.py b/packages/compare-images/python/itkwasm-compare-images-emscripten/itkwasm_compare_images_emscripten/js_package.py index 5f9265f59..e6ebc251b 100644 --- a/packages/compare-images/python/itkwasm-compare-images-emscripten/itkwasm_compare_images_emscripten/js_package.py +++ b/packages/compare-images/python/itkwasm-compare-images-emscripten/itkwasm_compare_images_emscripten/js_package.py @@ -3,6 +3,6 @@ from itkwasm.pyodide import JsPackageConfig, JsPackage from ._version import __version__ -default_js_module = """data:text/javascript;base64,dmFyIEVJPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgY0k9KEEsZSk9Pntmb3IodmFyIEkgaW4gZSlFSShBLEkse2dldDplW0ldLGVudW1lcmFibGU6ITB9KX07dmFyIGxJPSI1LjQuMCIsdGU9bEk7dmFyIGZJPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sZD1mSTt2YXIgdUk9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LEY9dUk7ZnVuY3Rpb24gZEkoQSxlKXtsZXQgST1udWxsO3N3aXRjaChBKXtjYXNlIGQuVUludDg6e0k9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBkLkludDg6e0k9bmV3IEludDhBcnJheShlKTticmVha31jYXNlIGQuVUludDE2OntJPW5ldyBVaW50MTZBcnJheShlKTticmVha31jYXNlIGQuSW50MTY6e0k9bmV3IEludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBkLlVJbnQzMjp7ST1uZXcgVWludDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSBkLkludDMyOntJPW5ldyBJbnQzMkFycmF5KGUpO2JyZWFrfWNhc2UgZC5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP0k9bmV3IEJpZ1VpbnQ2NEFycmF5KGUpOkk9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBkLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP0k9bmV3IEJpZ0ludDY0QXJyYXkoZSk6ST1uZXcgVWludDhBcnJheShlKTticmVha31jYXNlIEYuRmxvYXQzMjp7ST1uZXcgRmxvYXQzMkFycmF5KGUpO2JyZWFrfWNhc2UgRi5GbG9hdDY0OntJPW5ldyBGbG9hdDY0QXJyYXkoZSk7YnJlYWt9Y2FzZSJudWxsIjp7ST1udWxsO2JyZWFrfWNhc2UgbnVsbDp7ST1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIEl9dmFyIEg9ZEk7dmFyIGhJPXtVbmtub3duOiJVbmtub3duIixTY2FsYXI6IlNjYWxhciIsUkdCOiJSR0IiLFJHQkE6IlJHQkEiLE9mZnNldDoiT2Zmc2V0IixWZWN0b3I6IlZlY3RvciIsUG9pbnQ6IlBvaW50IixDb3ZhcmlhbnRWZWN0b3I6IkNvdmFyaWFudFZlY3RvciIsU3ltbWV0cmljU2Vjb25kUmFua1RlbnNvcjoiU3ltbWV0cmljU2Vjb25kUmFua1RlbnNvciIsRGlmZnVzaW9uVGVuc29yM0Q6IkRpZmZ1c2lvblRlbnNvcjNEIixDb21wbGV4OiJDb21wbGV4IixGaXhlZEFycmF5OiJGaXhlZEFycmF5IixBcnJheToiQXJyYXkiLE1hdHJpeDoiTWF0cml4IixWYXJpYWJsZUxlbmd0aFZlY3RvcjoiVmFyaWFibGVMZW5ndGhWZWN0b3IiLFZhcmlhYmxlU2l6ZU1hdHJpeDoiVmFyaWFibGVTaXplTWF0cml4In0sRz1oSTt2YXIgSWU9Y2xhc3N7ZGltZW5zaW9uO2NvbXBvbmVudFR5cGU7cGl4ZWxUeXBlO2NvbXBvbmVudHM7Y29uc3RydWN0b3IoZT0yLEk9ZC5VSW50OCx0PUcuU2NhbGFyLHI9MSl7dGhpcy5kaW1lbnNpb249ZSx0aGlzLmNvbXBvbmVudFR5cGU9SSx0aGlzLnBpeGVsVHlwZT10LHRoaXMuY29tcG9uZW50cz1yfX0sdmU9SWU7ZnVuY3Rpb24geUkoQSxlLEksdCxyKXtBW3QrSSplXT1yfXZhciBaZT15STt2YXIgcmU9Y2xhc3N7aW1hZ2VUeXBlO25hbWU9IkltYWdlIjtvcmlnaW47c3BhY2luZztkaXJlY3Rpb247c2l6ZTttZXRhZGF0YTtkYXRhO2NvbnN0cnVjdG9yKGU9bmV3IHZlKXt0aGlzLmltYWdlVHlwZT1lO2xldCBJPWUuZGltZW5zaW9uO3RoaXMub3JpZ2luPW5ldyBBcnJheShJKSx0aGlzLm9yaWdpbi5maWxsKDApLHRoaXMuc3BhY2luZz1uZXcgQXJyYXkoSSksdGhpcy5zcGFjaW5nLmZpbGwoMSksdGhpcy5kaXJlY3Rpb249bmV3IEZsb2F0NjRBcnJheShJKkkpLHRoaXMuZGlyZWN0aW9uLmZpbGwoMCk7Zm9yKGxldCB0PTA7dDxJO3QrKylaZSh0aGlzLmRpcmVjdGlvbixJLHQsdCwxKTt0aGlzLnNpemU9bmV3IEFycmF5KEkpLHRoaXMuc2l6ZS5maWxsKDApLHRoaXMubWV0YWRhdGE9bmV3IE1hcCx0aGlzLmRhdGE9bnVsbH19LFZlPXJlO2Z1bmN0aW9uIERJKEEsZSl7bGV0IEk9ey4uLkEuaW1hZ2VUeXBlfTtpZih0eXBlb2YgZTwidSImJnR5cGVvZiBlLnBpeGVsVHlwZTwidSImJihJLnBpeGVsVHlwZT1lLnBpeGVsVHlwZSxlLnBpeGVsVHlwZT09PUcuU2NhbGFyJiZJLmNvbXBvbmVudHMhPT0xKSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjYXN0IG11bHRpLWNvbXBvbmVudCBpbWFnZSB0byBhIHNjYWxhciBpbWFnZSIpO3R5cGVvZiBlPCJ1IiYmdHlwZW9mIGUuY29tcG9uZW50VHlwZTwidSImJmUuY29tcG9uZW50VHlwZSE9PUEuaW1hZ2VUeXBlLmNvbXBvbmVudFR5cGUmJihJLmNvbXBvbmVudFR5cGU9ZS5jb21wb25lbnRUeXBlKTtsZXQgdD1uZXcgVmUoSSk7aWYodC5uYW1lPUEubmFtZSx0Lm9yaWdpbj1BcnJheS5mcm9tKEEub3JpZ2luKSx0LnNwYWNpbmc9QXJyYXkuZnJvbShBLnNwYWNpbmcpLHQuZGlyZWN0aW9uPUEuZGlyZWN0aW9uLnNsaWNlKCksdC5zaXplPUFycmF5LmZyb20oQS5zaXplKSx0Lm1ldGFkYXRhPW5ldyBNYXAoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShBcnJheS5mcm9tKEEubWV0YWRhdGEpKSkpLEEuZGF0YSE9PW51bGwpaWYodHlwZW9mIGU8InUiJiZ0eXBlb2YgZS5jb21wb25lbnRUeXBlPCJ1IiYmZS5jb21wb25lbnRUeXBlIT09QS5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSlzd2l0Y2goQS5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSl7Y2FzZSBkLlVJbnQ4OmNhc2UgZC5JbnQ4OmNhc2UgZC5VSW50MTY6Y2FzZSBkLkludDE2OmNhc2UgZC5VSW50MzI6Y2FzZSBkLkludDMyOmNhc2UgRi5GbG9hdDMyOmNhc2UgRi5GbG9hdDY0OnN3aXRjaCh0LmltYWdlVHlwZS5jb21wb25lbnRUeXBlKXtjYXNlIGQuVUludDg6aWYoQS5kYXRhIGluc3RhbmNlb2YgQmlnSW50NjRBcnJheXx8QS5kYXRhIGluc3RhbmNlb2YgQmlnVWludDY0QXJyYXkpe3QuZGF0YT1uZXcgVWludDhBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKX1lbHNlIHQuZGF0YT1uZXcgVWludDhBcnJheShBLmRhdGEpO2JyZWFrO2Nhc2UgZC5JbnQ4OmlmKEEuZGF0YSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXl8fEEuZGF0YSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KXt0LmRhdGE9bmV3IEludDhBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKX1lbHNlIHQuZGF0YT1uZXcgSW50OEFycmF5KEEuZGF0YSk7YnJlYWs7Y2FzZSBkLlVJbnQxNjppZihBLmRhdGEgaW5zdGFuY2VvZiBCaWdJbnQ2NEFycmF5fHxBLmRhdGEgaW5zdGFuY2VvZiBCaWdVaW50NjRBcnJheSl7dC5kYXRhPW5ldyBVaW50MTZBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKX1lbHNlIHQuZGF0YT1uZXcgVWludDE2QXJyYXkoQS5kYXRhKTticmVhaztjYXNlIGQuSW50MTY6aWYoQS5kYXRhIGluc3RhbmNlb2YgQmlnSW50NjRBcnJheXx8QS5kYXRhIGluc3RhbmNlb2YgQmlnVWludDY0QXJyYXkpe3QuZGF0YT1uZXcgSW50MTZBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKX1lbHNlIHQuZGF0YT1uZXcgSW50MTZBcnJheShBLmRhdGEpO2JyZWFrO2Nhc2UgZC5VSW50MzI6aWYoQS5kYXRhIGluc3RhbmNlb2YgQmlnSW50NjRBcnJheXx8QS5kYXRhIGluc3RhbmNlb2YgQmlnVWludDY0QXJyYXkpe3QuZGF0YT1uZXcgVWludDMyQXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCByPTA7cjx0LmRhdGEubGVuZ3RoO3IrKyl0LmRhdGFbcl09TnVtYmVyKEEuZGF0YVtyXSl9ZWxzZSB0LmRhdGE9bmV3IFVpbnQzMkFycmF5KEEuZGF0YSk7YnJlYWs7Y2FzZSBkLkludDMyOmlmKEEuZGF0YSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXl8fEEuZGF0YSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KXt0LmRhdGE9bmV3IEludDMyQXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCByPTA7cjx0LmRhdGEubGVuZ3RoO3IrKyl0LmRhdGFbcl09TnVtYmVyKEEuZGF0YVtyXSl9ZWxzZSB0LmRhdGE9bmV3IEludDMyQXJyYXkoQS5kYXRhKTticmVhaztjYXNlIEYuRmxvYXQzMjppZihBLmRhdGEgaW5zdGFuY2VvZiBCaWdJbnQ2NEFycmF5fHxBLmRhdGEgaW5zdGFuY2VvZiBCaWdVaW50NjRBcnJheSl7dC5kYXRhPW5ldyBGbG9hdDMyQXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCByPTA7cjx0LmRhdGEubGVuZ3RoO3IrKyl0LmRhdGFbcl09TnVtYmVyKEEuZGF0YVtyXSl9ZWxzZSB0LmRhdGE9bmV3IEZsb2F0MzJBcnJheShBLmRhdGEpO2JyZWFrO2Nhc2UgRi5GbG9hdDY0OmlmKEEuZGF0YSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXl8fEEuZGF0YSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KXt0LmRhdGE9bmV3IEZsb2F0NjRBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKX1lbHNlIHQuZGF0YT1uZXcgRmxvYXQ2NEFycmF5KEEuZGF0YSk7YnJlYWs7Y2FzZSBkLlVJbnQ2NDp0LmRhdGE9bmV3IEJpZ1VpbnQ2NEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPUJpZ0ludC5hc0ludE4oNjQsQmlnSW50KEEuZGF0YVtyXSkpO2JyZWFrO2Nhc2UgZC5JbnQ2NDp0LmRhdGE9bmV3IEJpZ0ludDY0QXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCByPTA7cjx0LmRhdGEubGVuZ3RoO3IrKyl0LmRhdGFbcl09QmlnSW50LmFzVWludE4oNjQsQmlnSW50KEEuZGF0YVtyXSkpO2JyZWFrfWJyZWFrO2Nhc2UgZC5VSW50NjQ6Y2FzZSBkLkludDY0OnN3aXRjaCh0LmltYWdlVHlwZS5jb21wb25lbnRUeXBlKXtjYXNlIGQuVUludDg6dC5kYXRhPW5ldyBVaW50OEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPU51bWJlcihBLmRhdGFbcl0pO2JyZWFrO2Nhc2UgZC5JbnQ4OnQuZGF0YT1uZXcgSW50OEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPU51bWJlcihBLmRhdGFbcl0pO2JyZWFrO2Nhc2UgZC5VSW50MTY6dC5kYXRhPW5ldyBVaW50MTZBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKTticmVhaztjYXNlIGQuSW50MTY6dC5kYXRhPW5ldyBJbnQxNkFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPU51bWJlcihBLmRhdGFbcl0pO2JyZWFrO2Nhc2UgZC5VSW50MzI6dC5kYXRhPW5ldyBVaW50MzJBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKTticmVhaztjYXNlIGQuSW50MzI6dC5kYXRhPW5ldyBJbnQzMkFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPU51bWJlcihBLmRhdGFbcl0pO2JyZWFrO2Nhc2UgRi5GbG9hdDMyOnQuZGF0YT1uZXcgRmxvYXQzMkFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPU51bWJlcihBLmRhdGFbcl0pO2JyZWFrO2Nhc2UgRi5GbG9hdDY0OnQuZGF0YT1uZXcgRmxvYXQ2NEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPU51bWJlcihBLmRhdGFbcl0pO2JyZWFrO2Nhc2UgZC5VSW50NjQ6aWYoQS5kYXRhIGluc3RhbmNlb2YgQmlnSW50NjRBcnJheXx8QS5kYXRhIGluc3RhbmNlb2YgQmlnVWludDY0QXJyYXkpdC5kYXRhPW5ldyBCaWdVaW50NjRBcnJheShBLmRhdGEpO2Vsc2V7dC5kYXRhPW5ldyBCaWdVaW50NjRBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1CaWdJbnQuYXNVaW50Tig2NCxCaWdJbnQoQS5kYXRhW3JdKSl9YnJlYWs7Y2FzZSBkLkludDY0OmlmKEEuZGF0YSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXl8fEEuZGF0YSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KXQuZGF0YT1uZXcgQmlnSW50NjRBcnJheShBLmRhdGEpO2Vsc2V7dC5kYXRhPW5ldyBCaWdJbnQ2NEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPUJpZ0ludC5hc0ludE4oNjQsQmlnSW50KEEuZGF0YVtyXSkpfWJyZWFrfWJyZWFrfWVsc2V7bGV0IHI9QS5kYXRhLmNvbnN0cnVjdG9yO3QuZGF0YT1uZXcgcihBLmRhdGEubGVuZ3RoKSx0LmRhdGEhPW51bGwmJnQuZGF0YS5zZXQoQS5kYXRhLDApfXJldHVybiB0fXZhciBSQT1ESTt2YXIgcEk9e1RleHRGaWxlOiJUZXh0RmlsZSIsQmluYXJ5RmlsZToiQmluYXJ5RmlsZSIsVGV4dFN0cmVhbToiVGV4dFN0cmVhbSIsQmluYXJ5U3RyZWFtOiJCaW5hcnlTdHJlYW0iLEltYWdlOiJJbWFnZSIsUG9pbnRTZXQ6IlBvaW50U2V0IixNZXNoOiJNZXNoIixQb2x5RGF0YToiUG9seURhdGEiLFRyYW5zZm9ybUxpc3Q6IlRyYW5zZm9ybUxpc3QiLEpzb25Db21wYXRpYmxlOiJKc29uQ29tcGF0aWJsZSJ9LGg9cEk7dmFyIHplPVN5bWJvbCgiQ29tbGluay5wcm94eSIpLHdJPVN5bWJvbCgiQ29tbGluay5lbmRwb2ludCIpLG9lPVN5bWJvbCgiQ29tbGluay5yZWxlYXNlUHJveHkiKSxnZT1TeW1ib2woIkNvbWxpbmsuZmluYWxpemVyIiksTkE9U3ltYm9sKCJDb21saW5rLnRocm93biIpLF9lPUE9PnR5cGVvZiBBPT0ib2JqZWN0IiYmQSE9PW51bGx8fHR5cGVvZiBBPT0iZnVuY3Rpb24iLG1JPXtjYW5IYW5kbGU6QT0+X2UoQSkmJkFbemVdLHNlcmlhbGl6ZShBKXtsZXR7cG9ydDE6ZSxwb3J0MjpJfT1uZXcgTWVzc2FnZUNoYW5uZWw7cmV0dXJuIEF0KEEsZSksW0ksW0ldXX0sZGVzZXJpYWxpemUoQSl7cmV0dXJuIEEuc3RhcnQoKSxhZShBKX19LFNJPXtjYW5IYW5kbGU6QT0+X2UoQSkmJk5BIGluIEEsc2VyaWFsaXplKHt2YWx1ZTpBfSl7bGV0IGU7cmV0dXJuIEEgaW5zdGFuY2VvZiBFcnJvcj9lPXtpc0Vycm9yOiEwLHZhbHVlOnttZXNzYWdlOkEubWVzc2FnZSxuYW1lOkEubmFtZSxzdGFjazpBLnN0YWNrfX06ZT17aXNFcnJvcjohMSx2YWx1ZTpBfSxbZSxbXV19LGRlc2VyaWFsaXplKEEpe3Rocm93IEEuaXNFcnJvcj9PYmplY3QuYXNzaWduKG5ldyBFcnJvcihBLnZhbHVlLm1lc3NhZ2UpLEEudmFsdWUpOkEudmFsdWV9fSwkZT1uZXcgTWFwKFtbInByb3h5IixtSV0sWyJ0aHJvdyIsU0ldXSk7ZnVuY3Rpb24gRkkoQSxlKXtmb3IobGV0IEkgb2YgQSlpZihlPT09SXx8ST09PSIqInx8SSBpbnN0YW5jZW9mIFJlZ0V4cCYmSS50ZXN0KGUpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEF0KEEsZT1nbG9iYWxUaGlzLEk9WyIqIl0pe2UuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gdChyKXtpZighcnx8IXIuZGF0YSlyZXR1cm47aWYoIUZJKEksci5vcmlnaW4pKXtjb25zb2xlLndhcm4oYEludmFsaWQgb3JpZ2luICcke3Iub3JpZ2lufScgZm9yIGNvbWxpbmsgcHJveHlgKTtyZXR1cm59bGV0e2lkOmksdHlwZTpnLHBhdGg6c309T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0sci5kYXRhKSxFPShyLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKFopLEM7dHJ5e2xldCBvPXMuc2xpY2UoMCwtMSkucmVkdWNlKChmLEIpPT5mW0JdLEEpLG49cy5yZWR1Y2UoKGYsQik9PmZbQl0sQSk7c3dpdGNoKGcpe2Nhc2UiR0VUIjpDPW47YnJlYWs7Y2FzZSJTRVQiOm9bcy5zbGljZSgtMSlbMF1dPVooci5kYXRhLnZhbHVlKSxDPSEwO2JyZWFrO2Nhc2UiQVBQTFkiOkM9bi5hcHBseShvLEUpO2JyZWFrO2Nhc2UiQ09OU1RSVUNUIjp7bGV0IGY9bmV3IG4oLi4uRSk7Qz1HSShmKX1icmVhaztjYXNlIkVORFBPSU5UIjp7bGV0e3BvcnQxOmYscG9ydDI6Qn09bmV3IE1lc3NhZ2VDaGFubmVsO0F0KEEsQiksQz1uZShmLFtmXSl9YnJlYWs7Y2FzZSJSRUxFQVNFIjpDPXZvaWQgMDticmVhaztkZWZhdWx0OnJldHVybn19Y2F0Y2gobyl7Qz17dmFsdWU6byxbTkFdOjB9fVByb21pc2UucmVzb2x2ZShDKS5jYXRjaChvPT4oe3ZhbHVlOm8sW05BXTowfSkpLnRoZW4obz0+e2xldFtuLGZdPWJBKG8pO2UucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4pLHtpZDppfSksZiksZz09PSJSRUxFQVNFIiYmKGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdCksZXQoZSksZ2UgaW4gQSYmdHlwZW9mIEFbZ2VdPT0iZnVuY3Rpb24iJiZBW2dlXSgpKX0pLmNhdGNoKG89PntsZXRbbixmXT1iQSh7dmFsdWU6bmV3IFR5cGVFcnJvcigiVW5zZXJpYWxpemFibGUgcmV0dXJuIHZhbHVlIiksW05BXTowfSk7ZS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbikse2lkOml9KSxmKX0pfSksZS5zdGFydCYmZS5zdGFydCgpfWZ1bmN0aW9uIFJJKEEpe3JldHVybiBBLmNvbnN0cnVjdG9yLm5hbWU9PT0iTWVzc2FnZVBvcnQifWZ1bmN0aW9uIGV0KEEpe1JJKEEpJiZBLmNsb3NlKCl9ZnVuY3Rpb24gYWUoQSxlKXtyZXR1cm4gaWUoQSxbXSxlKX1mdW5jdGlvbiBVQShBKXtpZihBKXRocm93IG5ldyBFcnJvcigiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlIil9ZnVuY3Rpb24gdHQoQSl7cmV0dXJuIHooQSx7dHlwZToiUkVMRUFTRSJ9KS50aGVuKCgpPT57ZXQoQSl9KX12YXIga0E9bmV3IFdlYWtNYXAsR0E9IkZpbmFsaXphdGlvblJlZ2lzdHJ5ImluIGdsb2JhbFRoaXMmJm5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShBPT57bGV0IGU9KGtBLmdldChBKXx8MCktMTtrQS5zZXQoQSxlKSxlPT09MCYmdHQoQSl9KTtmdW5jdGlvbiBVSShBLGUpe2xldCBJPShrQS5nZXQoZSl8fDApKzE7a0Euc2V0KGUsSSksR0EmJkdBLnJlZ2lzdGVyKEEsZSxBKX1mdW5jdGlvbiBOSShBKXtHQSYmR0EudW5yZWdpc3RlcihBKX1mdW5jdGlvbiBpZShBLGU9W10sST1mdW5jdGlvbigpe30pe2xldCB0PSExLHI9bmV3IFByb3h5KEkse2dldChpLGcpe2lmKFVBKHQpLGc9PT1vZSlyZXR1cm4oKT0+e05JKHIpLHR0KEEpLHQ9ITB9O2lmKGc9PT0idGhlbiIpe2lmKGUubGVuZ3RoPT09MClyZXR1cm57dGhlbjooKT0+cn07bGV0IHM9eihBLHt0eXBlOiJHRVQiLHBhdGg6ZS5tYXAoRT0+RS50b1N0cmluZygpKX0pLnRoZW4oWik7cmV0dXJuIHMudGhlbi5iaW5kKHMpfXJldHVybiBpZShBLFsuLi5lLGddKX0sc2V0KGksZyxzKXtVQSh0KTtsZXRbRSxDXT1iQShzKTtyZXR1cm4geihBLHt0eXBlOiJTRVQiLHBhdGg6Wy4uLmUsZ10ubWFwKG89Pm8udG9TdHJpbmcoKSksdmFsdWU6RX0sQykudGhlbihaKX0sYXBwbHkoaSxnLHMpe1VBKHQpO2xldCBFPWVbZS5sZW5ndGgtMV07aWYoRT09PXdJKXJldHVybiB6KEEse3R5cGU6IkVORFBPSU5UIn0pLnRoZW4oWik7aWYoRT09PSJiaW5kIilyZXR1cm4gaWUoQSxlLnNsaWNlKDAsLTEpKTtsZXRbQyxvXT1YZShzKTtyZXR1cm4geihBLHt0eXBlOiJBUFBMWSIscGF0aDplLm1hcChuPT5uLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpDfSxvKS50aGVuKFopfSxjb25zdHJ1Y3QoaSxnKXtVQSh0KTtsZXRbcyxFXT1YZShnKTtyZXR1cm4geihBLHt0eXBlOiJDT05TVFJVQ1QiLHBhdGg6ZS5tYXAoQz0+Qy50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6c30sRSkudGhlbihaKX19KTtyZXR1cm4gVUkocixBKSxyfWZ1bmN0aW9uIGtJKEEpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLEEpfWZ1bmN0aW9uIFhlKEEpe2xldCBlPUEubWFwKGJBKTtyZXR1cm5bZS5tYXAoST0+SVswXSksa0koZS5tYXAoST0+SVsxXSkpXX12YXIgSXQ9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gbmUoQSxlKXtyZXR1cm4gSXQuc2V0KEEsZSksQX1mdW5jdGlvbiBHSShBKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihBLHtbemVdOiEwfSl9ZnVuY3Rpb24gYkEoQSl7Zm9yKGxldFtlLEldb2YgJGUpaWYoSS5jYW5IYW5kbGUoQSkpe2xldFt0LHJdPUkuc2VyaWFsaXplKEEpO3JldHVyblt7dHlwZToiSEFORExFUiIsbmFtZTplLHZhbHVlOnR9LHJdfXJldHVyblt7dHlwZToiUkFXIix2YWx1ZTpBfSxJdC5nZXQoQSl8fFtdXX1mdW5jdGlvbiBaKEEpe3N3aXRjaChBLnR5cGUpe2Nhc2UiSEFORExFUiI6cmV0dXJuICRlLmdldChBLm5hbWUpLmRlc2VyaWFsaXplKEEudmFsdWUpO2Nhc2UiUkFXIjpyZXR1cm4gQS52YWx1ZX19ZnVuY3Rpb24geihBLGUsSSl7cmV0dXJuIG5ldyBQcm9taXNlKHQ9PntsZXQgcj1iSSgpO0EuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gaShnKXshZy5kYXRhfHwhZy5kYXRhLmlkfHxnLmRhdGEuaWQhPT1yfHwoQS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixpKSx0KGcuZGF0YSkpfSksQS5zdGFydCYmQS5zdGFydCgpLEEucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7aWQ6cn0sZSksSSl9KX1mdW5jdGlvbiBiSSgpe3JldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikudG9TdHJpbmcoMTYpKS5qb2luKCItIil9ZnVuY3Rpb24gbkEoQSxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseShlLGFyZ3VtZW50cyl9fXZhcnt0b1N0cmluZzpMSX09T2JqZWN0LnByb3RvdHlwZSx7Z2V0UHJvdG90eXBlT2Y6Q2V9PU9iamVjdCx7aXRlcmF0b3I6SkEsdG9TdHJpbmdUYWc6aXR9PVN5bWJvbCxNQT0oQT0+ZT0+e2xldCBJPUxJLmNhbGwoZSk7cmV0dXJuIEFbSV18fChBW0ldPUkuc2xpY2UoOCwtMSkudG9Mb3dlckNhc2UoKSl9KShPYmplY3QuY3JlYXRlKG51bGwpKSxKPUE9PihBPUEudG9Mb3dlckNhc2UoKSxlPT5NQShlKT09PUEpLFlBPUE9PmU9PnR5cGVvZiBlPT09QSx7aXNBcnJheTokfT1BcnJheSxfPVlBKCJ1bmRlZmluZWQiKTtmdW5jdGlvbiBzQShBKXtyZXR1cm4gQSE9PW51bGwmJiFfKEEpJiZBLmNvbnN0cnVjdG9yIT09bnVsbCYmIV8oQS5jb25zdHJ1Y3RvcikmJmsoQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikmJkEuY29uc3RydWN0b3IuaXNCdWZmZXIoQSl9dmFyIG90PUooIkFycmF5QnVmZmVyIik7ZnVuY3Rpb24gSkkoQSl7bGV0IGU7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJkFycmF5QnVmZmVyLmlzVmlldz9lPUFycmF5QnVmZmVyLmlzVmlldyhBKTplPUEmJkEuYnVmZmVyJiZvdChBLmJ1ZmZlciksZX12YXIgTUk9WUEoInN0cmluZyIpLGs9WUEoImZ1bmN0aW9uIiksYXQ9WUEoIm51bWJlciIpLENBPUE9PkEhPT1udWxsJiZ0eXBlb2YgQT09Im9iamVjdCIsWUk9QT0+QT09PSEwfHxBPT09ITEsTEE9QT0+e2lmKE1BKEEpIT09Im9iamVjdCIpcmV0dXJuITE7bGV0IGU9Q2UoQSk7cmV0dXJuKGU9PT1udWxsfHxlPT09T2JqZWN0LnByb3RvdHlwZXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09bnVsbCkmJiEoaXQgaW4gQSkmJiEoSkEgaW4gQSl9LEhJPUE9PntpZighQ0EoQSl8fHNBKEEpKXJldHVybiExO3RyeXtyZXR1cm4gT2JqZWN0LmtleXMoQSkubGVuZ3RoPT09MCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKEEpPT09T2JqZWN0LnByb3RvdHlwZX1jYXRjaHtyZXR1cm4hMX19LHFJPUooIkRhdGUiKSxUST1KKCJGaWxlIikseEk9SigiQmxvYiIpLE9JPUooIkZpbGVMaXN0IiksS0k9QT0+Q0EoQSkmJmsoQS5waXBlKSxQST1BPT57bGV0IGU7cmV0dXJuIEEmJih0eXBlb2YgRm9ybURhdGE9PSJmdW5jdGlvbiImJkEgaW5zdGFuY2VvZiBGb3JtRGF0YXx8ayhBLmFwcGVuZCkmJigoZT1NQShBKSk9PT0iZm9ybWRhdGEifHxlPT09Im9iamVjdCImJmsoQS50b1N0cmluZykmJkEudG9TdHJpbmcoKT09PSJbb2JqZWN0IEZvcm1EYXRhXSIpKX0sV0k9SigiVVJMU2VhcmNoUGFyYW1zIiksW2pJLHZJLFpJLFZJXT1bIlJlYWRhYmxlU3RyZWFtIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiSGVhZGVycyJdLm1hcChKKSxYST1BPT5BLnRyaW0/QS50cmltKCk6QS5yZXBsYWNlKC9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZywiIik7ZnVuY3Rpb24gQkEoQSxlLHthbGxPd25LZXlzOkk9ITF9PXt9KXtpZihBPT09bnVsbHx8dHlwZW9mIEE+InUiKXJldHVybjtsZXQgdCxyO2lmKHR5cGVvZiBBIT0ib2JqZWN0IiYmKEE9W0FdKSwkKEEpKWZvcih0PTAscj1BLmxlbmd0aDt0PHI7dCsrKWUuY2FsbChudWxsLEFbdF0sdCxBKTtlbHNle2lmKHNBKEEpKXJldHVybjtsZXQgaT1JP09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpOk9iamVjdC5rZXlzKEEpLGc9aS5sZW5ndGgscztmb3IodD0wO3Q8Zzt0Kyspcz1pW3RdLGUuY2FsbChudWxsLEFbc10scyxBKX19ZnVuY3Rpb24gbnQoQSxlKXtpZihzQShBKSlyZXR1cm4gbnVsbDtlPWUudG9Mb3dlckNhc2UoKTtsZXQgST1PYmplY3Qua2V5cyhBKSx0PUkubGVuZ3RoLHI7Zm9yKDt0LS0gPjA7KWlmKHI9SVt0XSxlPT09ci50b0xvd2VyQ2FzZSgpKXJldHVybiByO3JldHVybiBudWxsfXZhciBWPXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzpnbG9iYWwsc3Q9QT0+IV8oQSkmJkEhPT1WO2Z1bmN0aW9uIHNlKCl7bGV0e2Nhc2VsZXNzOkEsc2tpcFVuZGVmaW5lZDplfT1zdCh0aGlzKSYmdGhpc3x8e30sST17fSx0PShyLGkpPT57bGV0IGc9QSYmbnQoSSxpKXx8aTtMQShJW2ddKSYmTEEocik/SVtnXT1zZShJW2ddLHIpOkxBKHIpP0lbZ109c2Uoe30scik6JChyKT9JW2ddPXIuc2xpY2UoKTooIWV8fCFfKHIpKSYmKElbZ109cil9O2ZvcihsZXQgcj0wLGk9YXJndW1lbnRzLmxlbmd0aDtyPGk7cisrKWFyZ3VtZW50c1tyXSYmQkEoYXJndW1lbnRzW3JdLHQpO3JldHVybiBJfXZhciB6ST0oQSxlLEkse2FsbE93bktleXM6dH09e30pPT4oQkEoZSwocixpKT0+e0kmJmsocik/QVtpXT1uQShyLEkpOkFbaV09cn0se2FsbE93bktleXM6dH0pLEEpLF9JPUE9PihBLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKEE9QS5zbGljZSgxKSksQSksJEk9KEEsZSxJLHQpPT57QS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSx0KSxBLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1BLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJzdXBlciIse3ZhbHVlOmUucHJvdG90eXBlfSksSSYmT2JqZWN0LmFzc2lnbihBLnByb3RvdHlwZSxJKX0sQXI9KEEsZSxJLHQpPT57bGV0IHIsaSxnLHM9e307aWYoZT1lfHx7fSxBPT1udWxsKXJldHVybiBlO2Rve2ZvcihyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpLGk9ci5sZW5ndGg7aS0tID4wOylnPXJbaV0sKCF0fHx0KGcsQSxlKSkmJiFzW2ddJiYoZVtnXT1BW2ddLHNbZ109ITApO0E9SSE9PSExJiZDZShBKX13aGlsZShBJiYoIUl8fEkoQSxlKSkmJkEhPT1PYmplY3QucHJvdG90eXBlKTtyZXR1cm4gZX0sZXI9KEEsZSxJKT0+e0E9U3RyaW5nKEEpLChJPT09dm9pZCAwfHxJPkEubGVuZ3RoKSYmKEk9QS5sZW5ndGgpLEktPWUubGVuZ3RoO2xldCB0PUEuaW5kZXhPZihlLEkpO3JldHVybiB0IT09LTEmJnQ9PT1JfSx0cj1BPT57aWYoIUEpcmV0dXJuIG51bGw7aWYoJChBKSlyZXR1cm4gQTtsZXQgZT1BLmxlbmd0aDtpZighYXQoZSkpcmV0dXJuIG51bGw7bGV0IEk9bmV3IEFycmF5KGUpO2Zvcig7ZS0tID4wOylJW2VdPUFbZV07cmV0dXJuIEl9LElyPShBPT5lPT5BJiZlIGluc3RhbmNlb2YgQSkodHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZDZShVaW50OEFycmF5KSkscnI9KEEsZSk9PntsZXQgdD0oQSYmQVtKQV0pLmNhbGwoQSkscjtmb3IoOyhyPXQubmV4dCgpKSYmIXIuZG9uZTspe2xldCBpPXIudmFsdWU7ZS5jYWxsKEEsaVswXSxpWzFdKX19LGdyPShBLGUpPT57bGV0IEksdD1bXTtmb3IoOyhJPUEuZXhlYyhlKSkhPT1udWxsOyl0LnB1c2goSSk7cmV0dXJuIHR9LGlyPUooIkhUTUxGb3JtRWxlbWVudCIpLG9yPUE9PkEudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bLV9cc10oW2EtelxkXSkoXHcqKS9nLGZ1bmN0aW9uKEksdCxyKXtyZXR1cm4gdC50b1VwcGVyQ2FzZSgpK3J9KSxndD0oKHtoYXNPd25Qcm9wZXJ0eTpBfSk9PihlLEkpPT5BLmNhbGwoZSxJKSkoT2JqZWN0LnByb3RvdHlwZSksYXI9SigiUmVnRXhwIiksQ3Q9KEEsZSk9PntsZXQgST1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhBKSx0PXt9O0JBKEksKHIsaSk9PntsZXQgZzsoZz1lKHIsaSxBKSkhPT0hMSYmKHRbaV09Z3x8cil9KSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhBLHQpfSxucj1BPT57Q3QoQSwoZSxJKT0+e2lmKGsoQSkmJlsiYXJndW1lbnRzIiwiY2FsbGVyIiwiY2FsbGVlIl0uaW5kZXhPZihJKSE9PS0xKXJldHVybiExO2xldCB0PUFbSV07aWYoayh0KSl7aWYoZS5lbnVtZXJhYmxlPSExLCJ3cml0YWJsZSJpbiBlKXtlLndyaXRhYmxlPSExO3JldHVybn1lLnNldHx8KGUuc2V0PSgpPT57dGhyb3cgRXJyb3IoIkNhbiBub3QgcmV3cml0ZSByZWFkLW9ubHkgbWV0aG9kICciK0krIiciKX0pfX0pfSxzcj0oQSxlKT0+e2xldCBJPXt9LHQ9cj0+e3IuZm9yRWFjaChpPT57SVtpXT0hMH0pfTtyZXR1cm4gJChBKT90KEEpOnQoU3RyaW5nKEEpLnNwbGl0KGUpKSxJfSxDcj0oKT0+e30sQnI9KEEsZSk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOmU7ZnVuY3Rpb24gUXIoQSl7cmV0dXJuISEoQSYmayhBLmFwcGVuZCkmJkFbaXRdPT09IkZvcm1EYXRhIiYmQVtKQV0pfXZhciBFcj1BPT57bGV0IGU9bmV3IEFycmF5KDEwKSxJPSh0LHIpPT57aWYoQ0EodCkpe2lmKGUuaW5kZXhPZih0KT49MClyZXR1cm47aWYoc0EodCkpcmV0dXJuIHQ7aWYoISgidG9KU09OImluIHQpKXtlW3JdPXQ7bGV0IGk9JCh0KT9bXTp7fTtyZXR1cm4gQkEodCwoZyxzKT0+e2xldCBFPUkoZyxyKzEpOyFfKEUpJiYoaVtzXT1FKX0pLGVbcl09dm9pZCAwLGl9fXJldHVybiB0fTtyZXR1cm4gSShBLDApfSxjcj1KKCJBc3luY0Z1bmN0aW9uIiksbHI9QT0+QSYmKENBKEEpfHxrKEEpKSYmayhBLnRoZW4pJiZrKEEuY2F0Y2gpLEJ0PSgoQSxlKT0+QT9zZXRJbW1lZGlhdGU6ZT8oKEksdCk9PihWLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCh7c291cmNlOnIsZGF0YTppfSk9PntyPT09ViYmaT09PUkmJnQubGVuZ3RoJiZ0LnNoaWZ0KCkoKX0sITEpLHI9Pnt0LnB1c2gociksVi5wb3N0TWVzc2FnZShJLCIqIil9KSkoYGF4aW9zQCR7TWF0aC5yYW5kb20oKX1gLFtdKTpJPT5zZXRUaW1lb3V0KEkpKSh0eXBlb2Ygc2V0SW1tZWRpYXRlPT0iZnVuY3Rpb24iLGsoVi5wb3N0TWVzc2FnZSkpLGZyPXR5cGVvZiBxdWV1ZU1pY3JvdGFzazwidSI/cXVldWVNaWNyb3Rhc2suYmluZChWKTp0eXBlb2YgcHJvY2VzczwidSImJnByb2Nlc3MubmV4dFRpY2t8fEJ0LHVyPUE9PkEhPW51bGwmJmsoQVtKQV0pLGE9e2lzQXJyYXk6JCxpc0FycmF5QnVmZmVyOm90LGlzQnVmZmVyOnNBLGlzRm9ybURhdGE6UEksaXNBcnJheUJ1ZmZlclZpZXc6SkksaXNTdHJpbmc6TUksaXNOdW1iZXI6YXQsaXNCb29sZWFuOllJLGlzT2JqZWN0OkNBLGlzUGxhaW5PYmplY3Q6TEEsaXNFbXB0eU9iamVjdDpISSxpc1JlYWRhYmxlU3RyZWFtOmpJLGlzUmVxdWVzdDp2SSxpc1Jlc3BvbnNlOlpJLGlzSGVhZGVyczpWSSxpc1VuZGVmaW5lZDpfLGlzRGF0ZTpxSSxpc0ZpbGU6VEksaXNCbG9iOnhJLGlzUmVnRXhwOmFyLGlzRnVuY3Rpb246ayxpc1N0cmVhbTpLSSxpc1VSTFNlYXJjaFBhcmFtczpXSSxpc1R5cGVkQXJyYXk6SXIsaXNGaWxlTGlzdDpPSSxmb3JFYWNoOkJBLG1lcmdlOnNlLGV4dGVuZDp6SSx0cmltOlhJLHN0cmlwQk9NOl9JLGluaGVyaXRzOiRJLHRvRmxhdE9iamVjdDpBcixraW5kT2Y6TUEsa2luZE9mVGVzdDpKLGVuZHNXaXRoOmVyLHRvQXJyYXk6dHIsZm9yRWFjaEVudHJ5OnJyLG1hdGNoQWxsOmdyLGlzSFRNTEZvcm06aXIsaGFzT3duUHJvcGVydHk6Z3QsaGFzT3duUHJvcDpndCxyZWR1Y2VEZXNjcmlwdG9yczpDdCxmcmVlemVNZXRob2RzOm5yLHRvT2JqZWN0U2V0OnNyLHRvQ2FtZWxDYXNlOm9yLG5vb3A6Q3IsdG9GaW5pdGVOdW1iZXI6QnIsZmluZEtleTpudCxnbG9iYWw6Vixpc0NvbnRleHREZWZpbmVkOnN0LGlzU3BlY0NvbXBsaWFudEZvcm06UXIsdG9KU09OT2JqZWN0OkVyLGlzQXN5bmNGbjpjcixpc1RoZW5hYmxlOmxyLHNldEltbWVkaWF0ZTpCdCxhc2FwOmZyLGlzSXRlcmFibGU6dXJ9O2Z1bmN0aW9uIEFBKEEsZSxJLHQscil7RXJyb3IuY2FsbCh0aGlzKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLHRoaXMuY29uc3RydWN0b3IpOnRoaXMuc3RhY2s9bmV3IEVycm9yKCkuc3RhY2ssdGhpcy5tZXNzYWdlPUEsdGhpcy5uYW1lPSJBeGlvc0Vycm9yIixlJiYodGhpcy5jb2RlPWUpLEkmJih0aGlzLmNvbmZpZz1JKSx0JiYodGhpcy5yZXF1ZXN0PXQpLHImJih0aGlzLnJlc3BvbnNlPXIsdGhpcy5zdGF0dXM9ci5zdGF0dXM/ci5zdGF0dXM6bnVsbCl9YS5pbmhlcml0cyhBQSxFcnJvcix7dG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJue21lc3NhZ2U6dGhpcy5tZXNzYWdlLG5hbWU6dGhpcy5uYW1lLGRlc2NyaXB0aW9uOnRoaXMuZGVzY3JpcHRpb24sbnVtYmVyOnRoaXMubnVtYmVyLGZpbGVOYW1lOnRoaXMuZmlsZU5hbWUsbGluZU51bWJlcjp0aGlzLmxpbmVOdW1iZXIsY29sdW1uTnVtYmVyOnRoaXMuY29sdW1uTnVtYmVyLHN0YWNrOnRoaXMuc3RhY2ssY29uZmlnOmEudG9KU09OT2JqZWN0KHRoaXMuY29uZmlnKSxjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5zdGF0dXN9fX0pO3ZhciBRdD1BQS5wcm90b3R5cGUsRXQ9e307WyJFUlJfQkFEX09QVElPTl9WQUxVRSIsIkVSUl9CQURfT1BUSU9OIiwiRUNPTk5BQk9SVEVEIiwiRVRJTUVET1VUIiwiRVJSX05FVFdPUksiLCJFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIiwiRVJSX0RFUFJFQ0FURUQiLCJFUlJfQkFEX1JFU1BPTlNFIiwiRVJSX0JBRF9SRVFVRVNUIiwiRVJSX0NBTkNFTEVEIiwiRVJSX05PVF9TVVBQT1JUIiwiRVJSX0lOVkFMSURfVVJMIl0uZm9yRWFjaChBPT57RXRbQV09e3ZhbHVlOkF9fSk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQUEsRXQpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRdCwiaXNBeGlvc0Vycm9yIix7dmFsdWU6ITB9KTtBQS5mcm9tPShBLGUsSSx0LHIsaSk9PntsZXQgZz1PYmplY3QuY3JlYXRlKFF0KTthLnRvRmxhdE9iamVjdChBLGcsZnVuY3Rpb24obyl7cmV0dXJuIG8hPT1FcnJvci5wcm90b3R5cGV9LEM9PkMhPT0iaXNBeGlvc0Vycm9yIik7bGV0IHM9QSYmQS5tZXNzYWdlP0EubWVzc2FnZToiRXJyb3IiLEU9ZT09bnVsbCYmQT9BLmNvZGU6ZTtyZXR1cm4gQUEuY2FsbChnLHMsRSxJLHQsciksQSYmZy5jYXVzZT09bnVsbCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGcsImNhdXNlIix7dmFsdWU6QSxjb25maWd1cmFibGU6ITB9KSxnLm5hbWU9QSYmQS5uYW1lfHwiRXJyb3IiLGkmJk9iamVjdC5hc3NpZ24oZyxpKSxnfTt2YXIgdT1BQTt2YXIgSEE9bnVsbDtmdW5jdGlvbiBCZShBKXtyZXR1cm4gYS5pc1BsYWluT2JqZWN0KEEpfHxhLmlzQXJyYXkoQSl9ZnVuY3Rpb24gbHQoQSl7cmV0dXJuIGEuZW5kc1dpdGgoQSwiW10iKT9BLnNsaWNlKDAsLTIpOkF9ZnVuY3Rpb24gY3QoQSxlLEkpe3JldHVybiBBP0EuY29uY2F0KGUpLm1hcChmdW5jdGlvbihyLGkpe3JldHVybiByPWx0KHIpLCFJJiZpPyJbIityKyJdIjpyfSkuam9pbihJPyIuIjoiIik6ZX1mdW5jdGlvbiBkcihBKXtyZXR1cm4gYS5pc0FycmF5KEEpJiYhQS5zb21lKEJlKX12YXIgaHI9YS50b0ZsYXRPYmplY3QoYSx7fSxudWxsLGZ1bmN0aW9uKGUpe3JldHVybi9eaXNbQS1aXS8udGVzdChlKX0pO2Z1bmN0aW9uIHlyKEEsZSxJKXtpZighYS5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ0YXJnZXQgbXVzdCBiZSBhbiBvYmplY3QiKTtlPWV8fG5ldyhIQXx8Rm9ybURhdGEpLEk9YS50b0ZsYXRPYmplY3QoSSx7bWV0YVRva2VuczohMCxkb3RzOiExLGluZGV4ZXM6ITF9LCExLGZ1bmN0aW9uKGwsYyl7cmV0dXJuIWEuaXNVbmRlZmluZWQoY1tsXSl9KTtsZXQgdD1JLm1ldGFUb2tlbnMscj1JLnZpc2l0b3J8fG8saT1JLmRvdHMsZz1JLmluZGV4ZXMsRT0oSS5CbG9ifHx0eXBlb2YgQmxvYjwidSImJkJsb2IpJiZhLmlzU3BlY0NvbXBsaWFudEZvcm0oZSk7aWYoIWEuaXNGdW5jdGlvbihyKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ2aXNpdG9yIG11c3QgYmUgYSBmdW5jdGlvbiIpO2Z1bmN0aW9uIEMoUSl7aWYoUT09PW51bGwpcmV0dXJuIiI7aWYoYS5pc0RhdGUoUSkpcmV0dXJuIFEudG9JU09TdHJpbmcoKTtpZihhLmlzQm9vbGVhbihRKSlyZXR1cm4gUS50b1N0cmluZygpO2lmKCFFJiZhLmlzQmxvYihRKSl0aHJvdyBuZXcgdSgiQmxvYiBpcyBub3Qgc3VwcG9ydGVkLiBVc2UgYSBCdWZmZXIgaW5zdGVhZC4iKTtyZXR1cm4gYS5pc0FycmF5QnVmZmVyKFEpfHxhLmlzVHlwZWRBcnJheShRKT9FJiZ0eXBlb2YgQmxvYj09ImZ1bmN0aW9uIj9uZXcgQmxvYihbUV0pOkJ1ZmZlci5mcm9tKFEpOlF9ZnVuY3Rpb24gbyhRLGwsYyl7bGV0IHk9UTtpZihRJiYhYyYmdHlwZW9mIFE9PSJvYmplY3QiKXtpZihhLmVuZHNXaXRoKGwsInt9IikpbD10P2w6bC5zbGljZSgwLC0yKSxRPUpTT04uc3RyaW5naWZ5KFEpO2Vsc2UgaWYoYS5pc0FycmF5KFEpJiZkcihRKXx8KGEuaXNGaWxlTGlzdChRKXx8YS5lbmRzV2l0aChsLCJbXSIpKSYmKHk9YS50b0FycmF5KFEpKSlyZXR1cm4gbD1sdChsKSx5LmZvckVhY2goZnVuY3Rpb24ocCxOKXshKGEuaXNVbmRlZmluZWQocCl8fHA9PT1udWxsKSYmZS5hcHBlbmQoZz09PSEwP2N0KFtsXSxOLGkpOmc9PT1udWxsP2w6bCsiW10iLEMocCkpfSksITF9cmV0dXJuIEJlKFEpPyEwOihlLmFwcGVuZChjdChjLGwsaSksQyhRKSksITEpfWxldCBuPVtdLGY9T2JqZWN0LmFzc2lnbihocix7ZGVmYXVsdFZpc2l0b3I6byxjb252ZXJ0VmFsdWU6Qyxpc1Zpc2l0YWJsZTpCZX0pO2Z1bmN0aW9uIEIoUSxsKXtpZighYS5pc1VuZGVmaW5lZChRKSl7aWYobi5pbmRleE9mKFEpIT09LTEpdGhyb3cgRXJyb3IoIkNpcmN1bGFyIHJlZmVyZW5jZSBkZXRlY3RlZCBpbiAiK2wuam9pbigiLiIpKTtuLnB1c2goUSksYS5mb3JFYWNoKFEsZnVuY3Rpb24oeSxVKXsoIShhLmlzVW5kZWZpbmVkKHkpfHx5PT09bnVsbCkmJnIuY2FsbChlLHksYS5pc1N0cmluZyhVKT9VLnRyaW0oKTpVLGwsZikpPT09ITAmJkIoeSxsP2wuY29uY2F0KFUpOltVXSl9KSxuLnBvcCgpfX1pZighYS5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJkYXRhIG11c3QgYmUgYW4gb2JqZWN0Iik7cmV0dXJuIEIoQSksZX12YXIgUD15cjtmdW5jdGlvbiBmdChBKXtsZXQgZT17IiEiOiIlMjEiLCInIjoiJTI3IiwiKCI6IiUyOCIsIikiOiIlMjkiLCJ+IjoiJTdFIiwiJTIwIjoiKyIsIiUwMCI6IlwwIn07cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC9bIScoKX5dfCUyMHwlMDAvZyxmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0pfWZ1bmN0aW9uIHV0KEEsZSl7dGhpcy5fcGFpcnM9W10sQSYmUChBLHRoaXMsZSl9dmFyIGR0PXV0LnByb3RvdHlwZTtkdC5hcHBlbmQ9ZnVuY3Rpb24oZSxJKXt0aGlzLl9wYWlycy5wdXNoKFtlLEldKX07ZHQudG9TdHJpbmc9ZnVuY3Rpb24oZSl7bGV0IEk9ZT9mdW5jdGlvbih0KXtyZXR1cm4gZS5jYWxsKHRoaXMsdCxmdCl9OmZ0O3JldHVybiB0aGlzLl9wYWlycy5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIEkoclswXSkrIj0iK0koclsxXSl9LCIiKS5qb2luKCImIil9O3ZhciBxQT11dDtmdW5jdGlvbiBEcihBKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEEpLnJlcGxhY2UoLyUzQS9naSwiOiIpLnJlcGxhY2UoLyUyNC9nLCIkIikucmVwbGFjZSgvJTJDL2dpLCIsIikucmVwbGFjZSgvJTIwL2csIisiKX1mdW5jdGlvbiBRQShBLGUsSSl7aWYoIWUpcmV0dXJuIEE7bGV0IHQ9SSYmSS5lbmNvZGV8fERyO2EuaXNGdW5jdGlvbihJKSYmKEk9e3NlcmlhbGl6ZTpJfSk7bGV0IHI9SSYmSS5zZXJpYWxpemUsaTtpZihyP2k9cihlLEkpOmk9YS5pc1VSTFNlYXJjaFBhcmFtcyhlKT9lLnRvU3RyaW5nKCk6bmV3IHFBKGUsSSkudG9TdHJpbmcodCksaSl7bGV0IGc9QS5pbmRleE9mKCIjIik7ZyE9PS0xJiYoQT1BLnNsaWNlKDAsZykpLEErPShBLmluZGV4T2YoIj8iKT09PS0xPyI/IjoiJiIpK2l9cmV0dXJuIEF9dmFyIFFlPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5oYW5kbGVycz1bXX11c2UoZSxJLHQpe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDplLHJlamVjdGVkOkksc3luY2hyb25vdXM6dD90LnN5bmNocm9ub3VzOiExLHJ1bldoZW46dD90LnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9ZWplY3QoZSl7dGhpcy5oYW5kbGVyc1tlXSYmKHRoaXMuaGFuZGxlcnNbZV09bnVsbCl9Y2xlYXIoKXt0aGlzLmhhbmRsZXJzJiYodGhpcy5oYW5kbGVycz1bXSl9Zm9yRWFjaChlKXthLmZvckVhY2godGhpcy5oYW5kbGVycyxmdW5jdGlvbih0KXt0IT09bnVsbCYmZSh0KX0pfX0sRWU9UWU7dmFyIFRBPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfTt2YXIgaHQ9dHlwZW9mIFVSTFNlYXJjaFBhcmFtczwidSI/VVJMU2VhcmNoUGFyYW1zOnFBO3ZhciB5dD10eXBlb2YgRm9ybURhdGE8InUiP0Zvcm1EYXRhOm51bGw7dmFyIER0PXR5cGVvZiBCbG9iPCJ1Ij9CbG9iOm51bGw7dmFyIHB0PXtpc0Jyb3dzZXI6ITAsY2xhc3Nlczp7VVJMU2VhcmNoUGFyYW1zOmh0LEZvcm1EYXRhOnl0LEJsb2I6RHR9LHByb3RvY29sczpbImh0dHAiLCJodHRwcyIsImZpbGUiLCJibG9iIiwidXJsIiwiZGF0YSJdfTt2YXIgZmU9e307Y0koZmUse2hhc0Jyb3dzZXJFbnY6KCk9PmxlLGhhc1N0YW5kYXJkQnJvd3NlckVudjooKT0+cHIsaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52OigpPT53cixuYXZpZ2F0b3I6KCk9PmNlLG9yaWdpbjooKT0+bXJ9KTt2YXIgbGU9dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiBkb2N1bWVudDwidSIsY2U9dHlwZW9mIG5hdmlnYXRvcj09Im9iamVjdCImJm5hdmlnYXRvcnx8dm9pZCAwLHByPWxlJiYoIWNlfHxbIlJlYWN0TmF0aXZlIiwiTmF0aXZlU2NyaXB0IiwiTlMiXS5pbmRleE9mKGNlLnByb2R1Y3QpPDApLHdyPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZTwidSImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSYmdHlwZW9mIHNlbGYuaW1wb3J0U2NyaXB0cz09ImZ1bmN0aW9uIixtcj1sZSYmd2luZG93LmxvY2F0aW9uLmhyZWZ8fCJodHRwOi8vbG9jYWxob3N0Ijt2YXIgRD17Li4uZmUsLi4ucHR9O2Z1bmN0aW9uIHVlKEEsZSl7cmV0dXJuIFAoQSxuZXcgRC5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcyx7dmlzaXRvcjpmdW5jdGlvbihJLHQscixpKXtyZXR1cm4gRC5pc05vZGUmJmEuaXNCdWZmZXIoSSk/KHRoaXMuYXBwZW5kKHQsSS50b1N0cmluZygiYmFzZTY0IikpLCExKTppLmRlZmF1bHRWaXNpdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sLi4uZX0pfWZ1bmN0aW9uIFNyKEEpe3JldHVybiBhLm1hdGNoQWxsKC9cdyt8XFsoXHcqKV0vZyxBKS5tYXAoZT0+ZVswXT09PSJbXSI/IiI6ZVsxXXx8ZVswXSl9ZnVuY3Rpb24gRnIoQSl7bGV0IGU9e30sST1PYmplY3Qua2V5cyhBKSx0LHI9SS5sZW5ndGgsaTtmb3IodD0wO3Q8cjt0KyspaT1JW3RdLGVbaV09QVtpXTtyZXR1cm4gZX1mdW5jdGlvbiBScihBKXtmdW5jdGlvbiBlKEksdCxyLGkpe2xldCBnPUlbaSsrXTtpZihnPT09Il9fcHJvdG9fXyIpcmV0dXJuITA7bGV0IHM9TnVtYmVyLmlzRmluaXRlKCtnKSxFPWk+PUkubGVuZ3RoO3JldHVybiBnPSFnJiZhLmlzQXJyYXkocik/ci5sZW5ndGg6ZyxFPyhhLmhhc093blByb3AocixnKT9yW2ddPVtyW2ddLHRdOnJbZ109dCwhcyk6KCghcltnXXx8IWEuaXNPYmplY3QocltnXSkpJiYocltnXT1bXSksZShJLHQscltnXSxpKSYmYS5pc0FycmF5KHJbZ10pJiYocltnXT1GcihyW2ddKSksIXMpfWlmKGEuaXNGb3JtRGF0YShBKSYmYS5pc0Z1bmN0aW9uKEEuZW50cmllcykpe2xldCBJPXt9O3JldHVybiBhLmZvckVhY2hFbnRyeShBLCh0LHIpPT57ZShTcih0KSxyLEksMCl9KSxJfXJldHVybiBudWxsfXZhciB4QT1ScjtmdW5jdGlvbiBVcihBLGUsSSl7aWYoYS5pc1N0cmluZyhBKSl0cnl7cmV0dXJuKGV8fEpTT04ucGFyc2UpKEEpLGEudHJpbShBKX1jYXRjaCh0KXtpZih0Lm5hbWUhPT0iU3ludGF4RXJyb3IiKXRocm93IHR9cmV0dXJuKEl8fEpTT04uc3RyaW5naWZ5KShBKX12YXIgZGU9e3RyYW5zaXRpb25hbDpUQSxhZGFwdGVyOlsieGhyIiwiaHR0cCIsImZldGNoIl0sdHJhbnNmb3JtUmVxdWVzdDpbZnVuY3Rpb24oZSxJKXtsZXQgdD1JLmdldENvbnRlbnRUeXBlKCl8fCIiLHI9dC5pbmRleE9mKCJhcHBsaWNhdGlvbi9qc29uIik+LTEsaT1hLmlzT2JqZWN0KGUpO2lmKGkmJmEuaXNIVE1MRm9ybShlKSYmKGU9bmV3IEZvcm1EYXRhKGUpKSxhLmlzRm9ybURhdGEoZSkpcmV0dXJuIHI/SlNPTi5zdHJpbmdpZnkoeEEoZSkpOmU7aWYoYS5pc0FycmF5QnVmZmVyKGUpfHxhLmlzQnVmZmVyKGUpfHxhLmlzU3RyZWFtKGUpfHxhLmlzRmlsZShlKXx8YS5pc0Jsb2IoZSl8fGEuaXNSZWFkYWJsZVN0cmVhbShlKSlyZXR1cm4gZTtpZihhLmlzQXJyYXlCdWZmZXJWaWV3KGUpKXJldHVybiBlLmJ1ZmZlcjtpZihhLmlzVVJMU2VhcmNoUGFyYW1zKGUpKXJldHVybiBJLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIsITEpLGUudG9TdHJpbmcoKTtsZXQgcztpZihpKXtpZih0LmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpPi0xKXJldHVybiB1ZShlLHRoaXMuZm9ybVNlcmlhbGl6ZXIpLnRvU3RyaW5nKCk7aWYoKHM9YS5pc0ZpbGVMaXN0KGUpKXx8dC5pbmRleE9mKCJtdWx0aXBhcnQvZm9ybS1kYXRhIik+LTEpe2xldCBFPXRoaXMuZW52JiZ0aGlzLmVudi5Gb3JtRGF0YTtyZXR1cm4gUChzP3siZmlsZXNbXSI6ZX06ZSxFJiZuZXcgRSx0aGlzLmZvcm1TZXJpYWxpemVyKX19cmV0dXJuIGl8fHI/KEkuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL2pzb24iLCExKSxVcihlKSk6ZX1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbihlKXtsZXQgST10aGlzLnRyYW5zaXRpb25hbHx8ZGUudHJhbnNpdGlvbmFsLHQ9SSYmSS5mb3JjZWRKU09OUGFyc2luZyxyPXRoaXMucmVzcG9uc2VUeXBlPT09Impzb24iO2lmKGEuaXNSZXNwb25zZShlKXx8YS5pc1JlYWRhYmxlU3RyZWFtKGUpKXJldHVybiBlO2lmKGUmJmEuaXNTdHJpbmcoZSkmJih0JiYhdGhpcy5yZXNwb25zZVR5cGV8fHIpKXtsZXQgZz0hKEkmJkkuc2lsZW50SlNPTlBhcnNpbmcpJiZyO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShlLHRoaXMucGFyc2VSZXZpdmVyKX1jYXRjaChzKXtpZihnKXRocm93IHMubmFtZT09PSJTeW50YXhFcnJvciI/dS5mcm9tKHMsdS5FUlJfQkFEX1JFU1BPTlNFLHRoaXMsbnVsbCx0aGlzLnJlc3BvbnNlKTpzfX1yZXR1cm4gZX1dLHRpbWVvdXQ6MCx4c3JmQ29va2llTmFtZToiWFNSRi1UT0tFTiIseHNyZkhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiIsbWF4Q29udGVudExlbmd0aDotMSxtYXhCb2R5TGVuZ3RoOi0xLGVudjp7Rm9ybURhdGE6RC5jbGFzc2VzLkZvcm1EYXRhLEJsb2I6RC5jbGFzc2VzLkJsb2J9LHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKGUpe3JldHVybiBlPj0yMDAmJmU8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiwiQ29udGVudC1UeXBlIjp2b2lkIDB9fX07YS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCJdLEE9PntkZS5oZWFkZXJzW0FdPXt9fSk7dmFyIGVBPWRlO3ZhciBOcj1hLnRvT2JqZWN0U2V0KFsiYWdlIiwiYXV0aG9yaXphdGlvbiIsImNvbnRlbnQtbGVuZ3RoIiwiY29udGVudC10eXBlIiwiZXRhZyIsImV4cGlyZXMiLCJmcm9tIiwiaG9zdCIsImlmLW1vZGlmaWVkLXNpbmNlIiwiaWYtdW5tb2RpZmllZC1zaW5jZSIsImxhc3QtbW9kaWZpZWQiLCJsb2NhdGlvbiIsIm1heC1mb3J3YXJkcyIsInByb3h5LWF1dGhvcml6YXRpb24iLCJyZWZlcmVyIiwicmV0cnktYWZ0ZXIiLCJ1c2VyLWFnZW50Il0pLHd0PUE9PntsZXQgZT17fSxJLHQscjtyZXR1cm4gQSYmQS5zcGxpdChgCmApLmZvckVhY2goZnVuY3Rpb24oZyl7cj1nLmluZGV4T2YoIjoiKSxJPWcuc3Vic3RyaW5nKDAscikudHJpbSgpLnRvTG93ZXJDYXNlKCksdD1nLnN1YnN0cmluZyhyKzEpLnRyaW0oKSwhKCFJfHxlW0ldJiZOcltJXSkmJihJPT09InNldC1jb29raWUiP2VbSV0/ZVtJXS5wdXNoKHQpOmVbSV09W3RdOmVbSV09ZVtJXT9lW0ldKyIsICIrdDp0KX0pLGV9O3ZhciBtdD1TeW1ib2woImludGVybmFscyIpO2Z1bmN0aW9uIEVBKEEpe3JldHVybiBBJiZTdHJpbmcoQSkudHJpbSgpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gT0EoQSl7cmV0dXJuIEE9PT0hMXx8QT09bnVsbD9BOmEuaXNBcnJheShBKT9BLm1hcChPQSk6U3RyaW5nKEEpfWZ1bmN0aW9uIGtyKEEpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCksST0vKFteXHMsOz1dKylccyooPzo9XHMqKFteLDtdKykpPy9nLHQ7Zm9yKDt0PUkuZXhlYyhBKTspZVt0WzFdXT10WzJdO3JldHVybiBlfXZhciBHcj1BPT4vXlstX2EtekEtWjAtOV5gfH4sISMkJSYnKisuXSskLy50ZXN0KEEudHJpbSgpKTtmdW5jdGlvbiBoZShBLGUsSSx0LHIpe2lmKGEuaXNGdW5jdGlvbih0KSlyZXR1cm4gdC5jYWxsKHRoaXMsZSxJKTtpZihyJiYoZT1JKSwhIWEuaXNTdHJpbmcoZSkpe2lmKGEuaXNTdHJpbmcodCkpcmV0dXJuIGUuaW5kZXhPZih0KSE9PS0xO2lmKGEuaXNSZWdFeHAodCkpcmV0dXJuIHQudGVzdChlKX19ZnVuY3Rpb24gYnIoQSl7cmV0dXJuIEEudHJpbSgpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvKFthLXpcZF0pKFx3KikvZywoZSxJLHQpPT5JLnRvVXBwZXJDYXNlKCkrdCl9ZnVuY3Rpb24gTHIoQSxlKXtsZXQgST1hLnRvQ2FtZWxDYXNlKCIgIitlKTtbImdldCIsInNldCIsImhhcyJdLmZvckVhY2godD0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLHQrSSx7dmFsdWU6ZnVuY3Rpb24ocixpLGcpe3JldHVybiB0aGlzW3RdLmNhbGwodGhpcyxlLHIsaSxnKX0sY29uZmlndXJhYmxlOiEwfSl9KX12YXIgdEE9Y2xhc3N7Y29uc3RydWN0b3IoZSl7ZSYmdGhpcy5zZXQoZSl9c2V0KGUsSSx0KXtsZXQgcj10aGlzO2Z1bmN0aW9uIGkocyxFLEMpe2xldCBvPUVBKEUpO2lmKCFvKXRocm93IG5ldyBFcnJvcigiaGVhZGVyIG5hbWUgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmciKTtsZXQgbj1hLmZpbmRLZXkocixvKTsoIW58fHJbbl09PT12b2lkIDB8fEM9PT0hMHx8Qz09PXZvaWQgMCYmcltuXSE9PSExKSYmKHJbbnx8RV09T0EocykpfWxldCBnPShzLEUpPT5hLmZvckVhY2gocywoQyxvKT0+aShDLG8sRSkpO2lmKGEuaXNQbGFpbk9iamVjdChlKXx8ZSBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3IpZyhlLEkpO2Vsc2UgaWYoYS5pc1N0cmluZyhlKSYmKGU9ZS50cmltKCkpJiYhR3IoZSkpZyh3dChlKSxJKTtlbHNlIGlmKGEuaXNPYmplY3QoZSkmJmEuaXNJdGVyYWJsZShlKSl7bGV0IHM9e30sRSxDO2ZvcihsZXQgbyBvZiBlKXtpZighYS5pc0FycmF5KG8pKXRocm93IFR5cGVFcnJvcigiT2JqZWN0IGl0ZXJhdG9yIG11c3QgcmV0dXJuIGEga2V5LXZhbHVlIHBhaXIiKTtzW0M9b1swXV09KEU9c1tDXSk/YS5pc0FycmF5KEUpP1suLi5FLG9bMV1dOltFLG9bMV1dOm9bMV19ZyhzLEkpfWVsc2UgZSE9bnVsbCYmaShJLGUsdCk7cmV0dXJuIHRoaXN9Z2V0KGUsSSl7aWYoZT1FQShlKSxlKXtsZXQgdD1hLmZpbmRLZXkodGhpcyxlKTtpZih0KXtsZXQgcj10aGlzW3RdO2lmKCFJKXJldHVybiByO2lmKEk9PT0hMClyZXR1cm4ga3Iocik7aWYoYS5pc0Z1bmN0aW9uKEkpKXJldHVybiBJLmNhbGwodGhpcyxyLHQpO2lmKGEuaXNSZWdFeHAoSSkpcmV0dXJuIEkuZXhlYyhyKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJwYXJzZXIgbXVzdCBiZSBib29sZWFufHJlZ2V4cHxmdW5jdGlvbiIpfX19aGFzKGUsSSl7aWYoZT1FQShlKSxlKXtsZXQgdD1hLmZpbmRLZXkodGhpcyxlKTtyZXR1cm4hISh0JiZ0aGlzW3RdIT09dm9pZCAwJiYoIUl8fGhlKHRoaXMsdGhpc1t0XSx0LEkpKSl9cmV0dXJuITF9ZGVsZXRlKGUsSSl7bGV0IHQ9dGhpcyxyPSExO2Z1bmN0aW9uIGkoZyl7aWYoZz1FQShnKSxnKXtsZXQgcz1hLmZpbmRLZXkodCxnKTtzJiYoIUl8fGhlKHQsdFtzXSxzLEkpKSYmKGRlbGV0ZSB0W3NdLHI9ITApfX1yZXR1cm4gYS5pc0FycmF5KGUpP2UuZm9yRWFjaChpKTppKGUpLHJ9Y2xlYXIoZSl7bGV0IEk9T2JqZWN0LmtleXModGhpcyksdD1JLmxlbmd0aCxyPSExO2Zvcig7dC0tOyl7bGV0IGk9SVt0XTsoIWV8fGhlKHRoaXMsdGhpc1tpXSxpLGUsITApKSYmKGRlbGV0ZSB0aGlzW2ldLHI9ITApfXJldHVybiByfW5vcm1hbGl6ZShlKXtsZXQgST10aGlzLHQ9e307cmV0dXJuIGEuZm9yRWFjaCh0aGlzLChyLGkpPT57bGV0IGc9YS5maW5kS2V5KHQsaSk7aWYoZyl7SVtnXT1PQShyKSxkZWxldGUgSVtpXTtyZXR1cm59bGV0IHM9ZT9icihpKTpTdHJpbmcoaSkudHJpbSgpO3MhPT1pJiZkZWxldGUgSVtpXSxJW3NdPU9BKHIpLHRbc109ITB9KSx0aGlzfWNvbmNhdCguLi5lKXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5jb25jYXQodGhpcywuLi5lKX10b0pTT04oZSl7bGV0IEk9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gYS5mb3JFYWNoKHRoaXMsKHQscik9Pnt0IT1udWxsJiZ0IT09ITEmJihJW3JdPWUmJmEuaXNBcnJheSh0KT90LmpvaW4oIiwgIik6dCl9KSxJfVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpW1N5bWJvbC5pdGVyYXRvcl0oKX10b1N0cmluZygpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKS5tYXAoKFtlLEldKT0+ZSsiOiAiK0kpLmpvaW4oYApgKX1nZXRTZXRDb29raWUoKXtyZXR1cm4gdGhpcy5nZXQoInNldC1jb29raWUiKXx8W119Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm4iQXhpb3NIZWFkZXJzIn1zdGF0aWMgZnJvbShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHRoaXM/ZTpuZXcgdGhpcyhlKX1zdGF0aWMgY29uY2F0KGUsLi4uSSl7bGV0IHQ9bmV3IHRoaXMoZSk7cmV0dXJuIEkuZm9yRWFjaChyPT50LnNldChyKSksdH1zdGF0aWMgYWNjZXNzb3IoZSl7bGV0IHQ9KHRoaXNbbXRdPXRoaXNbbXRdPXthY2Nlc3NvcnM6e319KS5hY2Nlc3NvcnMscj10aGlzLnByb3RvdHlwZTtmdW5jdGlvbiBpKGcpe2xldCBzPUVBKGcpO3Rbc118fChMcihyLGcpLHRbc109ITApfXJldHVybiBhLmlzQXJyYXkoZSk/ZS5mb3JFYWNoKGkpOmkoZSksdGhpc319O3RBLmFjY2Vzc29yKFsiQ29udGVudC1UeXBlIiwiQ29udGVudC1MZW5ndGgiLCJBY2NlcHQiLCJBY2NlcHQtRW5jb2RpbmciLCJVc2VyLUFnZW50IiwiQXV0aG9yaXphdGlvbiJdKTthLnJlZHVjZURlc2NyaXB0b3JzKHRBLnByb3RvdHlwZSwoe3ZhbHVlOkF9LGUpPT57bGV0IEk9ZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSk7cmV0dXJue2dldDooKT0+QSxzZXQodCl7dGhpc1tJXT10fX19KTthLmZyZWV6ZU1ldGhvZHModEEpO3ZhciBTPXRBO2Z1bmN0aW9uIGNBKEEsZSl7bGV0IEk9dGhpc3x8ZUEsdD1lfHxJLHI9Uy5mcm9tKHQuaGVhZGVycyksaT10LmRhdGE7cmV0dXJuIGEuZm9yRWFjaChBLGZ1bmN0aW9uKHMpe2k9cy5jYWxsKEksaSxyLm5vcm1hbGl6ZSgpLGU/ZS5zdGF0dXM6dm9pZCAwKX0pLHIubm9ybWFsaXplKCksaX1mdW5jdGlvbiBsQShBKXtyZXR1cm4hIShBJiZBLl9fQ0FOQ0VMX18pfWZ1bmN0aW9uIFN0KEEsZSxJKXt1LmNhbGwodGhpcyxBPz8iY2FuY2VsZWQiLHUuRVJSX0NBTkNFTEVELGUsSSksdGhpcy5uYW1lPSJDYW5jZWxlZEVycm9yIn1hLmluaGVyaXRzKFN0LHUse19fQ0FOQ0VMX186ITB9KTt2YXIgcT1TdDtmdW5jdGlvbiBmQShBLGUsSSl7bGV0IHQ9SS5jb25maWcudmFsaWRhdGVTdGF0dXM7IUkuc3RhdHVzfHwhdHx8dChJLnN0YXR1cyk/QShJKTplKG5ldyB1KCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrSS5zdGF0dXMsW3UuRVJSX0JBRF9SRVFVRVNULHUuRVJSX0JBRF9SRVNQT05TRV1bTWF0aC5mbG9vcihJLnN0YXR1cy8xMDApLTRdLEkuY29uZmlnLEkucmVxdWVzdCxJKSl9ZnVuY3Rpb24geWUoQSl7bGV0IGU9L14oWy0rXHddezEsMjV9KSg6P1wvXC98OikvLmV4ZWMoQSk7cmV0dXJuIGUmJmVbMV18fCIifWZ1bmN0aW9uIEpyKEEsZSl7QT1BfHwxMDtsZXQgST1uZXcgQXJyYXkoQSksdD1uZXcgQXJyYXkoQSkscj0wLGk9MCxnO3JldHVybiBlPWUhPT12b2lkIDA/ZToxZTMsZnVuY3Rpb24oRSl7bGV0IEM9RGF0ZS5ub3coKSxvPXRbaV07Z3x8KGc9QyksSVtyXT1FLHRbcl09QztsZXQgbj1pLGY9MDtmb3IoO24hPT1yOylmKz1JW24rK10sbj1uJUE7aWYocj0ocisxKSVBLHI9PT1pJiYoaT0oaSsxKSVBKSxDLWc8ZSlyZXR1cm47bGV0IEI9byYmQy1vO3JldHVybiBCP01hdGgucm91bmQoZioxZTMvQik6dm9pZCAwfX12YXIgRnQ9SnI7ZnVuY3Rpb24gTXIoQSxlKXtsZXQgST0wLHQ9MWUzL2UscixpLGc9KEMsbz1EYXRlLm5vdygpKT0+e0k9byxyPW51bGwsaSYmKGNsZWFyVGltZW91dChpKSxpPW51bGwpLEEoLi4uQyl9O3JldHVyblsoLi4uQyk9PntsZXQgbz1EYXRlLm5vdygpLG49by1JO24+PXQ/ZyhDLG8pOihyPUMsaXx8KGk9c2V0VGltZW91dCgoKT0+e2k9bnVsbCxnKHIpfSx0LW4pKSl9LCgpPT5yJiZnKHIpXX12YXIgUnQ9TXI7dmFyIElBPShBLGUsST0zKT0+e2xldCB0PTAscj1GdCg1MCwyNTApO3JldHVybiBSdChpPT57bGV0IGc9aS5sb2FkZWQscz1pLmxlbmd0aENvbXB1dGFibGU/aS50b3RhbDp2b2lkIDAsRT1nLXQsQz1yKEUpLG89Zzw9czt0PWc7bGV0IG49e2xvYWRlZDpnLHRvdGFsOnMscHJvZ3Jlc3M6cz9nL3M6dm9pZCAwLGJ5dGVzOkUscmF0ZTpDfHx2b2lkIDAsZXN0aW1hdGVkOkMmJnMmJm8/KHMtZykvQzp2b2lkIDAsZXZlbnQ6aSxsZW5ndGhDb21wdXRhYmxlOnMhPW51bGwsW2U/ImRvd25sb2FkIjoidXBsb2FkIl06ITB9O0Eobil9LEkpfSxEZT0oQSxlKT0+e2xldCBJPUEhPW51bGw7cmV0dXJuW3Q9PmVbMF0oe2xlbmd0aENvbXB1dGFibGU6SSx0b3RhbDpBLGxvYWRlZDp0fSksZVsxXV19LHBlPUE9PiguLi5lKT0+YS5hc2FwKCgpPT5BKC4uLmUpKTt2YXIgVXQ9RC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/KChBLGUpPT5JPT4oST1uZXcgVVJMKEksRC5vcmlnaW4pLEEucHJvdG9jb2w9PT1JLnByb3RvY29sJiZBLmhvc3Q9PT1JLmhvc3QmJihlfHxBLnBvcnQ9PT1JLnBvcnQpKSkobmV3IFVSTChELm9yaWdpbiksRC5uYXZpZ2F0b3ImJi8obXNpZXx0cmlkZW50KS9pLnRlc3QoRC5uYXZpZ2F0b3IudXNlckFnZW50KSk6KCk9PiEwO3ZhciBOdD1ELmhhc1N0YW5kYXJkQnJvd3NlckVudj97d3JpdGUoQSxlLEksdCxyLGkpe2xldCBnPVtBKyI9IitlbmNvZGVVUklDb21wb25lbnQoZSldO2EuaXNOdW1iZXIoSSkmJmcucHVzaCgiZXhwaXJlcz0iK25ldyBEYXRlKEkpLnRvR01UU3RyaW5nKCkpLGEuaXNTdHJpbmcodCkmJmcucHVzaCgicGF0aD0iK3QpLGEuaXNTdHJpbmcocikmJmcucHVzaCgiZG9tYWluPSIrciksaT09PSEwJiZnLnB1c2goInNlY3VyZSIpLGRvY3VtZW50LmNvb2tpZT1nLmpvaW4oIjsgIil9LHJlYWQoQSl7bGV0IGU9ZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIihefDtcXHMqKSgiK0ErIik9KFteO10qKSIpKTtyZXR1cm4gZT9kZWNvZGVVUklDb21wb25lbnQoZVszXSk6bnVsbH0scmVtb3ZlKEEpe3RoaXMud3JpdGUoQSwiIixEYXRlLm5vdygpLTg2NGU1KX19Ont3cml0ZSgpe30scmVhZCgpe3JldHVybiBudWxsfSxyZW1vdmUoKXt9fTtmdW5jdGlvbiB3ZShBKXtyZXR1cm4vXihbYS16XVthLXpcZCtcLS5dKjopP1wvXC8vaS50ZXN0KEEpfWZ1bmN0aW9uIG1lKEEsZSl7cmV0dXJuIGU/QS5yZXBsYWNlKC9cLz9cLyQvLCIiKSsiLyIrZS5yZXBsYWNlKC9eXC8rLywiIik6QX1mdW5jdGlvbiB1QShBLGUsSSl7bGV0IHQ9IXdlKGUpO3JldHVybiBBJiYodHx8ST09ITEpP21lKEEsZSk6ZX12YXIga3Q9QT0+QSBpbnN0YW5jZW9mIFM/ey4uLkF9OkE7ZnVuY3Rpb24gTShBLGUpe2U9ZXx8e307bGV0IEk9e307ZnVuY3Rpb24gdChDLG8sbixmKXtyZXR1cm4gYS5pc1BsYWluT2JqZWN0KEMpJiZhLmlzUGxhaW5PYmplY3Qobyk/YS5tZXJnZS5jYWxsKHtjYXNlbGVzczpmfSxDLG8pOmEuaXNQbGFpbk9iamVjdChvKT9hLm1lcmdlKHt9LG8pOmEuaXNBcnJheShvKT9vLnNsaWNlKCk6b31mdW5jdGlvbiByKEMsbyxuLGYpe2lmKGEuaXNVbmRlZmluZWQobykpe2lmKCFhLmlzVW5kZWZpbmVkKEMpKXJldHVybiB0KHZvaWQgMCxDLG4sZil9ZWxzZSByZXR1cm4gdChDLG8sbixmKX1mdW5jdGlvbiBpKEMsbyl7aWYoIWEuaXNVbmRlZmluZWQobykpcmV0dXJuIHQodm9pZCAwLG8pfWZ1bmN0aW9uIGcoQyxvKXtpZihhLmlzVW5kZWZpbmVkKG8pKXtpZighYS5pc1VuZGVmaW5lZChDKSlyZXR1cm4gdCh2b2lkIDAsQyl9ZWxzZSByZXR1cm4gdCh2b2lkIDAsbyl9ZnVuY3Rpb24gcyhDLG8sbil7aWYobiBpbiBlKXJldHVybiB0KEMsbyk7aWYobiBpbiBBKXJldHVybiB0KHZvaWQgMCxDKX1sZXQgRT17dXJsOmksbWV0aG9kOmksZGF0YTppLGJhc2VVUkw6Zyx0cmFuc2Zvcm1SZXF1ZXN0OmcsdHJhbnNmb3JtUmVzcG9uc2U6ZyxwYXJhbXNTZXJpYWxpemVyOmcsdGltZW91dDpnLHRpbWVvdXRNZXNzYWdlOmcsd2l0aENyZWRlbnRpYWxzOmcsd2l0aFhTUkZUb2tlbjpnLGFkYXB0ZXI6ZyxyZXNwb25zZVR5cGU6Zyx4c3JmQ29va2llTmFtZTpnLHhzcmZIZWFkZXJOYW1lOmcsb25VcGxvYWRQcm9ncmVzczpnLG9uRG93bmxvYWRQcm9ncmVzczpnLGRlY29tcHJlc3M6ZyxtYXhDb250ZW50TGVuZ3RoOmcsbWF4Qm9keUxlbmd0aDpnLGJlZm9yZVJlZGlyZWN0OmcsdHJhbnNwb3J0OmcsaHR0cEFnZW50OmcsaHR0cHNBZ2VudDpnLGNhbmNlbFRva2VuOmcsc29ja2V0UGF0aDpnLHJlc3BvbnNlRW5jb2Rpbmc6Zyx2YWxpZGF0ZVN0YXR1czpzLGhlYWRlcnM6KEMsbyxuKT0+cihrdChDKSxrdChvKSxuLCEwKX07cmV0dXJuIGEuZm9yRWFjaChPYmplY3Qua2V5cyh7Li4uQSwuLi5lfSksZnVuY3Rpb24obyl7bGV0IG49RVtvXXx8cixmPW4oQVtvXSxlW29dLG8pO2EuaXNVbmRlZmluZWQoZikmJm4hPT1zfHwoSVtvXT1mKX0pLEl9dmFyIEtBPUE9PntsZXQgZT1NKHt9LEEpLHtkYXRhOkksd2l0aFhTUkZUb2tlbjp0LHhzcmZIZWFkZXJOYW1lOnIseHNyZkNvb2tpZU5hbWU6aSxoZWFkZXJzOmcsYXV0aDpzfT1lO2lmKGUuaGVhZGVycz1nPVMuZnJvbShnKSxlLnVybD1RQSh1QShlLmJhc2VVUkwsZS51cmwsZS5hbGxvd0Fic29sdXRlVXJscyksQS5wYXJhbXMsQS5wYXJhbXNTZXJpYWxpemVyKSxzJiZnLnNldCgiQXV0aG9yaXphdGlvbiIsIkJhc2ljICIrYnRvYSgocy51c2VybmFtZXx8IiIpKyI6Iisocy5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQocy5wYXNzd29yZCkpOiIiKSkpLGEuaXNGb3JtRGF0YShJKSl7aWYoRC5oYXNTdGFuZGFyZEJyb3dzZXJFbnZ8fEQuaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52KWcuc2V0Q29udGVudFR5cGUodm9pZCAwKTtlbHNlIGlmKGEuaXNGdW5jdGlvbihJLmdldEhlYWRlcnMpKXtsZXQgRT1JLmdldEhlYWRlcnMoKSxDPVsiY29udGVudC10eXBlIiwiY29udGVudC1sZW5ndGgiXTtPYmplY3QuZW50cmllcyhFKS5mb3JFYWNoKChbbyxuXSk9PntDLmluY2x1ZGVzKG8udG9Mb3dlckNhc2UoKSkmJmcuc2V0KG8sbil9KX19aWYoRC5oYXNTdGFuZGFyZEJyb3dzZXJFbnYmJih0JiZhLmlzRnVuY3Rpb24odCkmJih0PXQoZSkpLHR8fHQhPT0hMSYmVXQoZS51cmwpKSl7bGV0IEU9ciYmaSYmTnQucmVhZChpKTtFJiZnLnNldChyLEUpfXJldHVybiBlfTt2YXIgWXI9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0PCJ1IixHdD1ZciYmZnVuY3Rpb24oQSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKEksdCl7bGV0IHI9S0EoQSksaT1yLmRhdGEsZz1TLmZyb20oci5oZWFkZXJzKS5ub3JtYWxpemUoKSx7cmVzcG9uc2VUeXBlOnMsb25VcGxvYWRQcm9ncmVzczpFLG9uRG93bmxvYWRQcm9ncmVzczpDfT1yLG8sbixmLEIsUTtmdW5jdGlvbiBsKCl7QiYmQigpLFEmJlEoKSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKG8pLHIuc2lnbmFsJiZyLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsbyl9bGV0IGM9bmV3IFhNTEh0dHBSZXF1ZXN0O2Mub3BlbihyLm1ldGhvZC50b1VwcGVyQ2FzZSgpLHIudXJsLCEwKSxjLnRpbWVvdXQ9ci50aW1lb3V0O2Z1bmN0aW9uIHkoKXtpZighYylyZXR1cm47bGV0IHA9Uy5mcm9tKCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiaW4gYyYmYy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSksTD17ZGF0YTohc3x8cz09PSJ0ZXh0Inx8cz09PSJqc29uIj9jLnJlc3BvbnNlVGV4dDpjLnJlc3BvbnNlLHN0YXR1czpjLnN0YXR1cyxzdGF0dXNUZXh0OmMuc3RhdHVzVGV4dCxoZWFkZXJzOnAsY29uZmlnOkEscmVxdWVzdDpjfTtmQShmdW5jdGlvbihiKXtJKGIpLGwoKX0sZnVuY3Rpb24oYil7dChiKSxsKCl9LEwpLGM9bnVsbH0ib25sb2FkZW5kImluIGM/Yy5vbmxvYWRlbmQ9eTpjLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpeyFjfHxjLnJlYWR5U3RhdGUhPT00fHxjLnN0YXR1cz09PTAmJiEoYy5yZXNwb25zZVVSTCYmYy5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpPT09MCl8fHNldFRpbWVvdXQoeSl9LGMub25hYm9ydD1mdW5jdGlvbigpe2MmJih0KG5ldyB1KCJSZXF1ZXN0IGFib3J0ZWQiLHUuRUNPTk5BQk9SVEVELEEsYykpLGM9bnVsbCl9LGMub25lcnJvcj1mdW5jdGlvbihOKXtsZXQgTD1OJiZOLm1lc3NhZ2U/Ti5tZXNzYWdlOiJOZXR3b3JrIEVycm9yIixqPW5ldyB1KEwsdS5FUlJfTkVUV09SSyxBLGMpO2ouZXZlbnQ9Tnx8bnVsbCx0KGopLGM9bnVsbH0sYy5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXtsZXQgTj1yLnRpbWVvdXQ/InRpbWVvdXQgb2YgIityLnRpbWVvdXQrIm1zIGV4Y2VlZGVkIjoidGltZW91dCBleGNlZWRlZCIsTD1yLnRyYW5zaXRpb25hbHx8VEE7ci50aW1lb3V0RXJyb3JNZXNzYWdlJiYoTj1yLnRpbWVvdXRFcnJvck1lc3NhZ2UpLHQobmV3IHUoTixMLmNsYXJpZnlUaW1lb3V0RXJyb3I/dS5FVElNRURPVVQ6dS5FQ09OTkFCT1JURUQsQSxjKSksYz1udWxsfSxpPT09dm9pZCAwJiZnLnNldENvbnRlbnRUeXBlKG51bGwpLCJzZXRSZXF1ZXN0SGVhZGVyImluIGMmJmEuZm9yRWFjaChnLnRvSlNPTigpLGZ1bmN0aW9uKE4sTCl7Yy5zZXRSZXF1ZXN0SGVhZGVyKEwsTil9KSxhLmlzVW5kZWZpbmVkKHIud2l0aENyZWRlbnRpYWxzKXx8KGMud2l0aENyZWRlbnRpYWxzPSEhci53aXRoQ3JlZGVudGlhbHMpLHMmJnMhPT0ianNvbiImJihjLnJlc3BvbnNlVHlwZT1yLnJlc3BvbnNlVHlwZSksQyYmKFtmLFFdPUlBKEMsITApLGMuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGYpKSxFJiZjLnVwbG9hZCYmKFtuLEJdPUlBKEUpLGMudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixuKSxjLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJsb2FkZW5kIixCKSksKHIuY2FuY2VsVG9rZW58fHIuc2lnbmFsKSYmKG89cD0+e2MmJih0KCFwfHxwLnR5cGU/bmV3IHEobnVsbCxBLGMpOnApLGMuYWJvcnQoKSxjPW51bGwpfSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnN1YnNjcmliZShvKSxyLnNpZ25hbCYmKHIuc2lnbmFsLmFib3J0ZWQ/bygpOnIuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixvKSkpO2xldCBVPXllKHIudXJsKTtpZihVJiZELnByb3RvY29scy5pbmRleE9mKFUpPT09LTEpe3QobmV3IHUoIlVuc3VwcG9ydGVkIHByb3RvY29sICIrVSsiOiIsdS5FUlJfQkFEX1JFUVVFU1QsQSkpO3JldHVybn1jLnNlbmQoaXx8bnVsbCl9KX07dmFyIEhyPShBLGUpPT57bGV0e2xlbmd0aDpJfT1BPUE/QS5maWx0ZXIoQm9vbGVhbik6W107aWYoZXx8SSl7bGV0IHQ9bmV3IEFib3J0Q29udHJvbGxlcixyLGk9ZnVuY3Rpb24oQyl7aWYoIXIpe3I9ITAscygpO2xldCBvPUMgaW5zdGFuY2VvZiBFcnJvcj9DOnRoaXMucmVhc29uO3QuYWJvcnQobyBpbnN0YW5jZW9mIHU/bzpuZXcgcShvIGluc3RhbmNlb2YgRXJyb3I/by5tZXNzYWdlOm8pKX19LGc9ZSYmc2V0VGltZW91dCgoKT0+e2c9bnVsbCxpKG5ldyB1KGB0aW1lb3V0ICR7ZX0gb2YgbXMgZXhjZWVkZWRgLHUuRVRJTUVET1VUKSl9LGUpLHM9KCk9PntBJiYoZyYmY2xlYXJUaW1lb3V0KGcpLGc9bnVsbCxBLmZvckVhY2goQz0+e0MudW5zdWJzY3JpYmU/Qy51bnN1YnNjcmliZShpKTpDLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixpKX0pLEE9bnVsbCl9O0EuZm9yRWFjaChDPT5DLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixpKSk7bGV0e3NpZ25hbDpFfT10O3JldHVybiBFLnVuc3Vic2NyaWJlPSgpPT5hLmFzYXAocyksRX19LGJ0PUhyO3ZhciBxcj1mdW5jdGlvbiooQSxlKXtsZXQgST1BLmJ5dGVMZW5ndGg7aWYoIWV8fEk8ZSl7eWllbGQgQTtyZXR1cm59bGV0IHQ9MCxyO2Zvcig7dDxJOylyPXQrZSx5aWVsZCBBLnNsaWNlKHQsciksdD1yfSxUcj1hc3luYyBmdW5jdGlvbiooQSxlKXtmb3IgYXdhaXQobGV0IEkgb2YgeHIoQSkpeWllbGQqcXIoSSxlKX0seHI9YXN5bmMgZnVuY3Rpb24qKEEpe2lmKEFbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKXt5aWVsZCpBO3JldHVybn1sZXQgZT1BLmdldFJlYWRlcigpO3RyeXtmb3IoOzspe2xldHtkb25lOkksdmFsdWU6dH09YXdhaXQgZS5yZWFkKCk7aWYoSSlicmVhazt5aWVsZCB0fX1maW5hbGx5e2F3YWl0IGUuY2FuY2VsKCl9fSxTZT0oQSxlLEksdCk9PntsZXQgcj1UcihBLGUpLGk9MCxnLHM9RT0+e2d8fChnPSEwLHQmJnQoRSkpfTtyZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHthc3luYyBwdWxsKEUpe3RyeXtsZXR7ZG9uZTpDLHZhbHVlOm99PWF3YWl0IHIubmV4dCgpO2lmKEMpe3MoKSxFLmNsb3NlKCk7cmV0dXJufWxldCBuPW8uYnl0ZUxlbmd0aDtpZihJKXtsZXQgZj1pKz1uO0koZil9RS5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KG8pKX1jYXRjaChDKXt0aHJvdyBzKEMpLEN9fSxjYW5jZWwoRSl7cmV0dXJuIHMoRSksci5yZXR1cm4oKX19LHtoaWdoV2F0ZXJNYXJrOjJ9KX07dmFyIEx0PTY0KjEwMjQse2lzRnVuY3Rpb246UEF9PWEsSHQ9KCh7ZmV0Y2g6QSxSZXF1ZXN0OmUsUmVzcG9uc2U6SX0pPT4oe2ZldGNoOkEsUmVxdWVzdDplLFJlc3BvbnNlOkl9KSkoYS5nbG9iYWwpLHtSZWFkYWJsZVN0cmVhbTpKdCxUZXh0RW5jb2RlcjpNdH09YS5nbG9iYWwsWXQ9KEEsLi4uZSk9Pnt0cnl7cmV0dXJuISFBKC4uLmUpfWNhdGNoe3JldHVybiExfX0sT3I9QT0+e2xldHtmZXRjaDplLFJlcXVlc3Q6SSxSZXNwb25zZTp0fT1PYmplY3QuYXNzaWduKHt9LEh0LEEpLHI9UEEoZSksaT1QQShJKSxnPVBBKHQpO2lmKCFyKXJldHVybiExO2xldCBzPXImJlBBKEp0KSxFPXImJih0eXBlb2YgTXQ9PSJmdW5jdGlvbiI/KFE9Pmw9PlEuZW5jb2RlKGwpKShuZXcgTXQpOmFzeW5jIFE9Pm5ldyBVaW50OEFycmF5KGF3YWl0IG5ldyBJKFEpLmFycmF5QnVmZmVyKCkpKSxDPWkmJnMmJll0KCgpPT57bGV0IFE9ITEsbD1uZXcgSShELm9yaWdpbix7Ym9keTpuZXcgSnQsbWV0aG9kOiJQT1NUIixnZXQgZHVwbGV4KCl7cmV0dXJuIFE9ITAsImhhbGYifX0pLmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKTtyZXR1cm4gUSYmIWx9KSxvPWcmJnMmJll0KCgpPT5hLmlzUmVhZGFibGVTdHJlYW0obmV3IHQoIiIpLmJvZHkpKSxuPXtzdHJlYW06byYmKFE9PlEuYm9keSl9O3ImJlsidGV4dCIsImFycmF5QnVmZmVyIiwiYmxvYiIsImZvcm1EYXRhIiwic3RyZWFtIl0uZm9yRWFjaChRPT57IW5bUV0mJihuW1FdPShsLGMpPT57bGV0IHk9bCYmbFtRXTtpZih5KXJldHVybiB5LmNhbGwobCk7dGhyb3cgbmV3IHUoYFJlc3BvbnNlIHR5cGUgJyR7UX0nIGlzIG5vdCBzdXBwb3J0ZWRgLHUuRVJSX05PVF9TVVBQT1JULGMpfSl9KTtsZXQgZj1hc3luYyBRPT57aWYoUT09bnVsbClyZXR1cm4gMDtpZihhLmlzQmxvYihRKSlyZXR1cm4gUS5zaXplO2lmKGEuaXNTcGVjQ29tcGxpYW50Rm9ybShRKSlyZXR1cm4oYXdhaXQgbmV3IEkoRC5vcmlnaW4se21ldGhvZDoiUE9TVCIsYm9keTpRfSkuYXJyYXlCdWZmZXIoKSkuYnl0ZUxlbmd0aDtpZihhLmlzQXJyYXlCdWZmZXJWaWV3KFEpfHxhLmlzQXJyYXlCdWZmZXIoUSkpcmV0dXJuIFEuYnl0ZUxlbmd0aDtpZihhLmlzVVJMU2VhcmNoUGFyYW1zKFEpJiYoUT1RKyIiKSxhLmlzU3RyaW5nKFEpKXJldHVybihhd2FpdCBFKFEpKS5ieXRlTGVuZ3RofSxCPWFzeW5jKFEsbCk9PntsZXQgYz1hLnRvRmluaXRlTnVtYmVyKFEuZ2V0Q29udGVudExlbmd0aCgpKTtyZXR1cm4gYz8/ZihsKX07cmV0dXJuIGFzeW5jIFE9PntsZXR7dXJsOmwsbWV0aG9kOmMsZGF0YTp5LHNpZ25hbDpVLGNhbmNlbFRva2VuOnAsdGltZW91dDpOLG9uRG93bmxvYWRQcm9ncmVzczpMLG9uVXBsb2FkUHJvZ3Jlc3M6aixyZXNwb25zZVR5cGU6YixoZWFkZXJzOkFlLHdpdGhDcmVkZW50aWFsczptQT0ic2FtZS1vcmlnaW4iLGZldGNoT3B0aW9uczpPZX09S0EoUSk7Yj1iPyhiKyIiKS50b0xvd2VyQ2FzZSgpOiJ0ZXh0IjtsZXQgU0E9YnQoW1UscCYmcC50b0Fib3J0U2lnbmFsKCldLE4pLGFBPW51bGwsdj1TQSYmU0EudW5zdWJzY3JpYmUmJigoKT0+e1NBLnVuc3Vic2NyaWJlKCl9KSxLZTt0cnl7aWYoaiYmQyYmYyE9PSJnZXQiJiZjIT09ImhlYWQiJiYoS2U9YXdhaXQgQihBZSx5KSkhPT0wKXtsZXQgSz1uZXcgSShsLHttZXRob2Q6IlBPU1QiLGJvZHk6eSxkdXBsZXg6ImhhbGYifSksWDtpZihhLmlzRm9ybURhdGEoeSkmJihYPUsuaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpKSYmQWUuc2V0Q29udGVudFR5cGUoWCksSy5ib2R5KXtsZXRbZWUsRkFdPURlKEtlLElBKHBlKGopKSk7eT1TZShLLmJvZHksTHQsZWUsRkEpfX1hLmlzU3RyaW5nKG1BKXx8KG1BPW1BPyJpbmNsdWRlIjoib21pdCIpO2xldCBZPWkmJiJjcmVkZW50aWFscyJpbiBJLnByb3RvdHlwZSxQZT17Li4uT2Usc2lnbmFsOlNBLG1ldGhvZDpjLnRvVXBwZXJDYXNlKCksaGVhZGVyczpBZS5ub3JtYWxpemUoKS50b0pTT04oKSxib2R5OnksZHVwbGV4OiJoYWxmIixjcmVkZW50aWFsczpZP21BOnZvaWQgMH07YUE9aSYmbmV3IEkobCxQZSk7bGV0IE89YXdhaXQoaT9lKGFBLE9lKTplKGwsUGUpKSxXZT1vJiYoYj09PSJzdHJlYW0ifHxiPT09InJlc3BvbnNlIik7aWYobyYmKEx8fFdlJiZ2KSl7bGV0IEs9e307WyJzdGF0dXMiLCJzdGF0dXNUZXh0IiwiaGVhZGVycyJdLmZvckVhY2goamU9PntLW2plXT1PW2plXX0pO2xldCBYPWEudG9GaW5pdGVOdW1iZXIoTy5oZWFkZXJzLmdldCgiY29udGVudC1sZW5ndGgiKSksW2VlLEZBXT1MJiZEZShYLElBKHBlKEwpLCEwKSl8fFtdO089bmV3IHQoU2UoTy5ib2R5LEx0LGVlLCgpPT57RkEmJkZBKCksdiYmdigpfSksSyl9Yj1ifHwidGV4dCI7bGV0IFFJPWF3YWl0IG5bYS5maW5kS2V5KG4sYil8fCJ0ZXh0Il0oTyxRKTtyZXR1cm4hV2UmJnYmJnYoKSxhd2FpdCBuZXcgUHJvbWlzZSgoSyxYKT0+e2ZBKEssWCx7ZGF0YTpRSSxoZWFkZXJzOlMuZnJvbShPLmhlYWRlcnMpLHN0YXR1czpPLnN0YXR1cyxzdGF0dXNUZXh0Ok8uc3RhdHVzVGV4dCxjb25maWc6USxyZXF1ZXN0OmFBfSl9KX1jYXRjaChZKXt0aHJvdyB2JiZ2KCksWSYmWS5uYW1lPT09IlR5cGVFcnJvciImJi9Mb2FkIGZhaWxlZHxmZXRjaC9pLnRlc3QoWS5tZXNzYWdlKT9PYmplY3QuYXNzaWduKG5ldyB1KCJOZXR3b3JrIEVycm9yIix1LkVSUl9ORVRXT1JLLFEsYUEpLHtjYXVzZTpZLmNhdXNlfHxZfSk6dS5mcm9tKFksWSYmWS5jb2RlLFEsYUEpfX19LEtyPW5ldyBNYXAsRmU9QT0+e2xldCBlPWEubWVyZ2UuY2FsbCh7c2tpcFVuZGVmaW5lZDohMH0sSHQsQT9BLmVudjpudWxsKSx7ZmV0Y2g6SSxSZXF1ZXN0OnQsUmVzcG9uc2U6cn09ZSxpPVt0LHIsSV0sZz1pLmxlbmd0aCxzPWcsRSxDLG89S3I7Zm9yKDtzLS07KUU9aVtzXSxDPW8uZ2V0KEUpLEM9PT12b2lkIDAmJm8uc2V0KEUsQz1zP25ldyBNYXA6T3IoZSkpLG89QztyZXR1cm4gQ30sZWE9RmUoKTt2YXIgUmU9e2h0dHA6SEEseGhyOkd0LGZldGNoOntnZXQ6RmV9fTthLmZvckVhY2goUmUsKEEsZSk9PntpZihBKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsIm5hbWUiLHt2YWx1ZTplfSl9Y2F0Y2h7fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJhZGFwdGVyTmFtZSIse3ZhbHVlOmV9KX19KTt2YXIgcXQ9QT0+YC0gJHtBfWAsV3I9QT0+YS5pc0Z1bmN0aW9uKEEpfHxBPT09bnVsbHx8QT09PSExLFdBPXtnZXRBZGFwdGVyOihBLGUpPT57QT1hLmlzQXJyYXkoQSk/QTpbQV07bGV0e2xlbmd0aDpJfT1BLHQscixpPXt9O2ZvcihsZXQgZz0wO2c8STtnKyspe3Q9QVtnXTtsZXQgcztpZihyPXQsIVdyKHQpJiYocj1SZVsocz1TdHJpbmcodCkpLnRvTG93ZXJDYXNlKCldLHI9PT12b2lkIDApKXRocm93IG5ldyB1KGBVbmtub3duIGFkYXB0ZXIgJyR7c30nYCk7aWYociYmKGEuaXNGdW5jdGlvbihyKXx8KHI9ci5nZXQoZSkpKSlicmVhaztpW3N8fCIjIitnXT1yfWlmKCFyKXtsZXQgZz1PYmplY3QuZW50cmllcyhpKS5tYXAoKFtFLENdKT0+YGFkYXB0ZXIgJHtFfSBgKyhDPT09ITE/ImlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVudmlyb25tZW50IjoiaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnVpbGQiKSkscz1JP2cubGVuZ3RoPjE/YHNpbmNlIDoKYCtnLm1hcChxdCkuam9pbihgCmApOiIgIitxdChnWzBdKToiYXMgbm8gYWRhcHRlciBzcGVjaWZpZWQiO3Rocm93IG5ldyB1KCJUaGVyZSBpcyBubyBzdWl0YWJsZSBhZGFwdGVyIHRvIGRpc3BhdGNoIHRoZSByZXF1ZXN0ICIrcywiRVJSX05PVF9TVVBQT1JUIil9cmV0dXJuIHJ9LGFkYXB0ZXJzOlJlfTtmdW5jdGlvbiBVZShBKXtpZihBLmNhbmNlbFRva2VuJiZBLmNhbmNlbFRva2VuLnRocm93SWZSZXF1ZXN0ZWQoKSxBLnNpZ25hbCYmQS5zaWduYWwuYWJvcnRlZCl0aHJvdyBuZXcgcShudWxsLEEpfWZ1bmN0aW9uIGpBKEEpe3JldHVybiBVZShBKSxBLmhlYWRlcnM9Uy5mcm9tKEEuaGVhZGVycyksQS5kYXRhPWNBLmNhbGwoQSxBLnRyYW5zZm9ybVJlcXVlc3QpLFsicG9zdCIsInB1dCIsInBhdGNoIl0uaW5kZXhPZihBLm1ldGhvZCkhPT0tMSYmQS5oZWFkZXJzLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLCExKSxXQS5nZXRBZGFwdGVyKEEuYWRhcHRlcnx8ZUEuYWRhcHRlcixBKShBKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBVZShBKSx0LmRhdGE9Y0EuY2FsbChBLEEudHJhbnNmb3JtUmVzcG9uc2UsdCksdC5oZWFkZXJzPVMuZnJvbSh0LmhlYWRlcnMpLHR9LGZ1bmN0aW9uKHQpe3JldHVybiBsQSh0KXx8KFVlKEEpLHQmJnQucmVzcG9uc2UmJih0LnJlc3BvbnNlLmRhdGE9Y0EuY2FsbChBLEEudHJhbnNmb3JtUmVzcG9uc2UsdC5yZXNwb25zZSksdC5yZXNwb25zZS5oZWFkZXJzPVMuZnJvbSh0LnJlc3BvbnNlLmhlYWRlcnMpKSksUHJvbWlzZS5yZWplY3QodCl9KX12YXIgdkE9IjEuMTIuMCI7dmFyIFpBPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaCgoQSxlKT0+e1pBW0FdPWZ1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdD09PUF8fCJhIisoZTwxPyJuICI6IiAiKStBfX0pO3ZhciBUdD17fTtaQS50cmFuc2l0aW9uYWw9ZnVuY3Rpb24oZSxJLHQpe2Z1bmN0aW9uIHIoaSxnKXtyZXR1cm4iW0F4aW9zIHYiK3ZBKyJdIFRyYW5zaXRpb25hbCBvcHRpb24gJyIraSsiJyIrZysodD8iLiAiK3Q6IiIpfXJldHVybihpLGcscyk9PntpZihlPT09ITEpdGhyb3cgbmV3IHUocihnLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKEk/IiBpbiAiK0k6IiIpKSx1LkVSUl9ERVBSRUNBVEVEKTtyZXR1cm4gSSYmIVR0W2ddJiYoVHRbZ109ITAsY29uc29sZS53YXJuKHIoZywiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrSSsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSxlP2UoaSxnLHMpOiEwfX07WkEuc3BlbGxpbmc9ZnVuY3Rpb24oZSl7cmV0dXJuKEksdCk9Pihjb25zb2xlLndhcm4oYCR7dH0gaXMgbGlrZWx5IGEgbWlzc3BlbGxpbmcgb2YgJHtlfWApLCEwKX07ZnVuY3Rpb24ganIoQSxlLEkpe2lmKHR5cGVvZiBBIT0ib2JqZWN0Iil0aHJvdyBuZXcgdSgib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIsdS5FUlJfQkFEX09QVElPTl9WQUxVRSk7bGV0IHQ9T2JqZWN0LmtleXMoQSkscj10Lmxlbmd0aDtmb3IoO3ItLSA+MDspe2xldCBpPXRbcl0sZz1lW2ldO2lmKGcpe2xldCBzPUFbaV0sRT1zPT09dm9pZCAwfHxnKHMsaSxBKTtpZihFIT09ITApdGhyb3cgbmV3IHUoIm9wdGlvbiAiK2krIiBtdXN0IGJlICIrRSx1LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtjb250aW51ZX1pZihJIT09ITApdGhyb3cgbmV3IHUoIlVua25vd24gb3B0aW9uICIraSx1LkVSUl9CQURfT1BUSU9OKX19dmFyIGRBPXthc3NlcnRPcHRpb25zOmpyLHZhbGlkYXRvcnM6WkF9O3ZhciBUPWRBLnZhbGlkYXRvcnMsckE9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5kZWZhdWx0cz1lfHx7fSx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgRWUscmVzcG9uc2U6bmV3IEVlfX1hc3luYyByZXF1ZXN0KGUsSSl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLl9yZXF1ZXN0KGUsSSl9Y2F0Y2godCl7aWYodCBpbnN0YW5jZW9mIEVycm9yKXtsZXQgcj17fTtFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZShyKTpyPW5ldyBFcnJvcjtsZXQgaT1yLnN0YWNrP3Iuc3RhY2sucmVwbGFjZSgvXi4rXG4vLCIiKToiIjt0cnl7dC5zdGFjaz9pJiYhU3RyaW5nKHQuc3RhY2spLmVuZHNXaXRoKGkucmVwbGFjZSgvXi4rXG4uK1xuLywiIikpJiYodC5zdGFjays9YApgK2kpOnQuc3RhY2s9aX1jYXRjaHt9fXRocm93IHR9fV9yZXF1ZXN0KGUsSSl7dHlwZW9mIGU9PSJzdHJpbmciPyhJPUl8fHt9LEkudXJsPWUpOkk9ZXx8e30sST1NKHRoaXMuZGVmYXVsdHMsSSk7bGV0e3RyYW5zaXRpb25hbDp0LHBhcmFtc1NlcmlhbGl6ZXI6cixoZWFkZXJzOml9PUk7dCE9PXZvaWQgMCYmZEEuYXNzZXJ0T3B0aW9ucyh0LHtzaWxlbnRKU09OUGFyc2luZzpULnRyYW5zaXRpb25hbChULmJvb2xlYW4pLGZvcmNlZEpTT05QYXJzaW5nOlQudHJhbnNpdGlvbmFsKFQuYm9vbGVhbiksY2xhcmlmeVRpbWVvdXRFcnJvcjpULnRyYW5zaXRpb25hbChULmJvb2xlYW4pfSwhMSksciE9bnVsbCYmKGEuaXNGdW5jdGlvbihyKT9JLnBhcmFtc1NlcmlhbGl6ZXI9e3NlcmlhbGl6ZTpyfTpkQS5hc3NlcnRPcHRpb25zKHIse2VuY29kZTpULmZ1bmN0aW9uLHNlcmlhbGl6ZTpULmZ1bmN0aW9ufSwhMCkpLEkuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDB8fCh0aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwP0kuYWxsb3dBYnNvbHV0ZVVybHM9dGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJsczpJLmFsbG93QWJzb2x1dGVVcmxzPSEwKSxkQS5hc3NlcnRPcHRpb25zKEkse2Jhc2VVcmw6VC5zcGVsbGluZygiYmFzZVVSTCIpLHdpdGhYc3JmVG9rZW46VC5zcGVsbGluZygid2l0aFhTUkZUb2tlbiIpfSwhMCksSS5tZXRob2Q9KEkubWV0aG9kfHx0aGlzLmRlZmF1bHRzLm1ldGhvZHx8ImdldCIpLnRvTG93ZXJDYXNlKCk7bGV0IGc9aSYmYS5tZXJnZShpLmNvbW1vbixpW0kubWV0aG9kXSk7aSYmYS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsImNvbW1vbiJdLFE9PntkZWxldGUgaVtRXX0pLEkuaGVhZGVycz1TLmNvbmNhdChnLGkpO2xldCBzPVtdLEU9ITA7dGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKGZ1bmN0aW9uKGwpe3R5cGVvZiBsLnJ1bldoZW49PSJmdW5jdGlvbiImJmwucnVuV2hlbihJKT09PSExfHwoRT1FJiZsLnN5bmNocm9ub3VzLHMudW5zaGlmdChsLmZ1bGZpbGxlZCxsLnJlamVjdGVkKSl9KTtsZXQgQz1bXTt0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKGZ1bmN0aW9uKGwpe0MucHVzaChsLmZ1bGZpbGxlZCxsLnJlamVjdGVkKX0pO2xldCBvLG49MCxmO2lmKCFFKXtsZXQgUT1bakEuYmluZCh0aGlzKSx2b2lkIDBdO2ZvcihRLnVuc2hpZnQoLi4ucyksUS5wdXNoKC4uLkMpLGY9US5sZW5ndGgsbz1Qcm9taXNlLnJlc29sdmUoSSk7bjxmOylvPW8udGhlbihRW24rK10sUVtuKytdKTtyZXR1cm4gb31mPXMubGVuZ3RoO2xldCBCPUk7Zm9yKG49MDtuPGY7KXtsZXQgUT1zW24rK10sbD1zW24rK107dHJ5e0I9UShCKX1jYXRjaChjKXtsLmNhbGwodGhpcyxjKTticmVha319dHJ5e289akEuY2FsbCh0aGlzLEIpfWNhdGNoKFEpe3JldHVybiBQcm9taXNlLnJlamVjdChRKX1mb3Iobj0wLGY9Qy5sZW5ndGg7bjxmOylvPW8udGhlbihDW24rK10sQ1tuKytdKTtyZXR1cm4gb31nZXRVcmkoZSl7ZT1NKHRoaXMuZGVmYXVsdHMsZSk7bGV0IEk9dUEoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMpO3JldHVybiBRQShJLGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplcil9fTthLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwib3B0aW9ucyJdLGZ1bmN0aW9uKGUpe3JBLnByb3RvdHlwZVtlXT1mdW5jdGlvbihJLHQpe3JldHVybiB0aGlzLnJlcXVlc3QoTSh0fHx7fSx7bWV0aG9kOmUsdXJsOkksZGF0YToodHx8e30pLmRhdGF9KSl9fSk7YS5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sZnVuY3Rpb24oZSl7ZnVuY3Rpb24gSSh0KXtyZXR1cm4gZnVuY3Rpb24oaSxnLHMpe3JldHVybiB0aGlzLnJlcXVlc3QoTShzfHx7fSx7bWV0aG9kOmUsaGVhZGVyczp0P3siQ29udGVudC1UeXBlIjoibXVsdGlwYXJ0L2Zvcm0tZGF0YSJ9Ont9LHVybDppLGRhdGE6Z30pKX19ckEucHJvdG90eXBlW2VdPUkoKSxyQS5wcm90b3R5cGVbZSsiRm9ybSJdPUkoITApfSk7dmFyIGhBPXJBO3ZhciBOZT1jbGFzcyBBe2NvbnN0cnVjdG9yKGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoImV4ZWN1dG9yIG11c3QgYmUgYSBmdW5jdGlvbi4iKTtsZXQgSTt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24oaSl7ST1pfSk7bGV0IHQ9dGhpczt0aGlzLnByb21pc2UudGhlbihyPT57aWYoIXQuX2xpc3RlbmVycylyZXR1cm47bGV0IGk9dC5fbGlzdGVuZXJzLmxlbmd0aDtmb3IoO2ktLSA+MDspdC5fbGlzdGVuZXJzW2ldKHIpO3QuX2xpc3RlbmVycz1udWxsfSksdGhpcy5wcm9taXNlLnRoZW49cj0+e2xldCBpLGc9bmV3IFByb21pc2Uocz0+e3Quc3Vic2NyaWJlKHMpLGk9c30pLnRoZW4ocik7cmV0dXJuIGcuY2FuY2VsPWZ1bmN0aW9uKCl7dC51bnN1YnNjcmliZShpKX0sZ30sZShmdW5jdGlvbihpLGcscyl7dC5yZWFzb258fCh0LnJlYXNvbj1uZXcgcShpLGcscyksSSh0LnJlYXNvbikpfSl9dGhyb3dJZlJlcXVlc3RlZCgpe2lmKHRoaXMucmVhc29uKXRocm93IHRoaXMucmVhc29ufXN1YnNjcmliZShlKXtpZih0aGlzLnJlYXNvbil7ZSh0aGlzLnJlYXNvbik7cmV0dXJufXRoaXMuX2xpc3RlbmVycz90aGlzLl9saXN0ZW5lcnMucHVzaChlKTp0aGlzLl9saXN0ZW5lcnM9W2VdfXVuc3Vic2NyaWJlKGUpe2lmKCF0aGlzLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBJPXRoaXMuX2xpc3RlbmVycy5pbmRleE9mKGUpO0khPT0tMSYmdGhpcy5fbGlzdGVuZXJzLnNwbGljZShJLDEpfXRvQWJvcnRTaWduYWwoKXtsZXQgZT1uZXcgQWJvcnRDb250cm9sbGVyLEk9dD0+e2UuYWJvcnQodCl9O3JldHVybiB0aGlzLnN1YnNjcmliZShJKSxlLnNpZ25hbC51bnN1YnNjcmliZT0oKT0+dGhpcy51bnN1YnNjcmliZShJKSxlLnNpZ25hbH1zdGF0aWMgc291cmNlKCl7bGV0IGU7cmV0dXJue3Rva2VuOm5ldyBBKGZ1bmN0aW9uKHIpe2U9cn0pLGNhbmNlbDplfX19LHh0PU5lO2Z1bmN0aW9uIGtlKEEpe3JldHVybiBmdW5jdGlvbihJKXtyZXR1cm4gQS5hcHBseShudWxsLEkpfX1mdW5jdGlvbiBHZShBKXtyZXR1cm4gYS5pc09iamVjdChBKSYmQS5pc0F4aW9zRXJyb3I9PT0hMH12YXIgYmU9e0NvbnRpbnVlOjEwMCxTd2l0Y2hpbmdQcm90b2NvbHM6MTAxLFByb2Nlc3Npbmc6MTAyLEVhcmx5SGludHM6MTAzLE9rOjIwMCxDcmVhdGVkOjIwMSxBY2NlcHRlZDoyMDIsTm9uQXV0aG9yaXRhdGl2ZUluZm9ybWF0aW9uOjIwMyxOb0NvbnRlbnQ6MjA0LFJlc2V0Q29udGVudDoyMDUsUGFydGlhbENvbnRlbnQ6MjA2LE11bHRpU3RhdHVzOjIwNyxBbHJlYWR5UmVwb3J0ZWQ6MjA4LEltVXNlZDoyMjYsTXVsdGlwbGVDaG9pY2VzOjMwMCxNb3ZlZFBlcm1hbmVudGx5OjMwMSxGb3VuZDozMDIsU2VlT3RoZXI6MzAzLE5vdE1vZGlmaWVkOjMwNCxVc2VQcm94eTozMDUsVW51c2VkOjMwNixUZW1wb3JhcnlSZWRpcmVjdDozMDcsUGVybWFuZW50UmVkaXJlY3Q6MzA4LEJhZFJlcXVlc3Q6NDAwLFVuYXV0aG9yaXplZDo0MDEsUGF5bWVudFJlcXVpcmVkOjQwMixGb3JiaWRkZW46NDAzLE5vdEZvdW5kOjQwNCxNZXRob2ROb3RBbGxvd2VkOjQwNSxOb3RBY2NlcHRhYmxlOjQwNixQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NDA3LFJlcXVlc3RUaW1lb3V0OjQwOCxDb25mbGljdDo0MDksR29uZTo0MTAsTGVuZ3RoUmVxdWlyZWQ6NDExLFByZWNvbmRpdGlvbkZhaWxlZDo0MTIsUGF5bG9hZFRvb0xhcmdlOjQxMyxVcmlUb29Mb25nOjQxNCxVbnN1cHBvcnRlZE1lZGlhVHlwZTo0MTUsUmFuZ2VOb3RTYXRpc2ZpYWJsZTo0MTYsRXhwZWN0YXRpb25GYWlsZWQ6NDE3LEltQVRlYXBvdDo0MTgsTWlzZGlyZWN0ZWRSZXF1ZXN0OjQyMSxVbnByb2Nlc3NhYmxlRW50aXR5OjQyMixMb2NrZWQ6NDIzLEZhaWxlZERlcGVuZGVuY3k6NDI0LFRvb0Vhcmx5OjQyNSxVcGdyYWRlUmVxdWlyZWQ6NDI2LFByZWNvbmRpdGlvblJlcXVpcmVkOjQyOCxUb29NYW55UmVxdWVzdHM6NDI5LFJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZTo0MzEsVW5hdmFpbGFibGVGb3JMZWdhbFJlYXNvbnM6NDUxLEludGVybmFsU2VydmVyRXJyb3I6NTAwLE5vdEltcGxlbWVudGVkOjUwMSxCYWRHYXRld2F5OjUwMixTZXJ2aWNlVW5hdmFpbGFibGU6NTAzLEdhdGV3YXlUaW1lb3V0OjUwNCxIdHRwVmVyc2lvbk5vdFN1cHBvcnRlZDo1MDUsVmFyaWFudEFsc29OZWdvdGlhdGVzOjUwNixJbnN1ZmZpY2llbnRTdG9yYWdlOjUwNyxMb29wRGV0ZWN0ZWQ6NTA4LE5vdEV4dGVuZGVkOjUxMCxOZXR3b3JrQXV0aGVudGljYXRpb25SZXF1aXJlZDo1MTF9O09iamVjdC5lbnRyaWVzKGJlKS5mb3JFYWNoKChbQSxlXSk9PntiZVtlXT1BfSk7dmFyIE90PWJlO2Z1bmN0aW9uIEt0KEEpe2xldCBlPW5ldyBoQShBKSxJPW5BKGhBLnByb3RvdHlwZS5yZXF1ZXN0LGUpO3JldHVybiBhLmV4dGVuZChJLGhBLnByb3RvdHlwZSxlLHthbGxPd25LZXlzOiEwfSksYS5leHRlbmQoSSxlLG51bGwse2FsbE93bktleXM6ITB9KSxJLmNyZWF0ZT1mdW5jdGlvbihyKXtyZXR1cm4gS3QoTShBLHIpKX0sSX12YXIgdz1LdChlQSk7dy5BeGlvcz1oQTt3LkNhbmNlbGVkRXJyb3I9cTt3LkNhbmNlbFRva2VuPXh0O3cuaXNDYW5jZWw9bEE7dy5WRVJTSU9OPXZBO3cudG9Gb3JtRGF0YT1QO3cuQXhpb3NFcnJvcj11O3cuQ2FuY2VsPXcuQ2FuY2VsZWRFcnJvcjt3LmFsbD1mdW5jdGlvbihlKXtyZXR1cm4gUHJvbWlzZS5hbGwoZSl9O3cuc3ByZWFkPWtlO3cuaXNBeGlvc0Vycm9yPUdlO3cubWVyZ2VDb25maWc9TTt3LkF4aW9zSGVhZGVycz1TO3cuZm9ybVRvSlNPTj1BPT54QShhLmlzSFRNTEZvcm0oQSk/bmV3IEZvcm1EYXRhKEEpOkEpO3cuZ2V0QWRhcHRlcj1XQS5nZXRBZGFwdGVyO3cuSHR0cFN0YXR1c0NvZGU9T3Q7dy5kZWZhdWx0PXc7dmFyIGdBPXc7dmFye0F4aW9zOl9hLEF4aW9zRXJyb3I6JGEsQ2FuY2VsZWRFcnJvcjpBbixpc0NhbmNlbDplbixDYW5jZWxUb2tlbjp0bixWRVJTSU9OOkluLGFsbDpybixDYW5jZWw6Z24saXNBeGlvc0Vycm9yOm9uLHNwcmVhZDphbix0b0Zvcm1EYXRhOm5uLEF4aW9zSGVhZGVyczpzbixIdHRwU3RhdHVzQ29kZTpDbixmb3JtVG9KU09OOkJuLGdldEFkYXB0ZXI6UW4sbWVyZ2VDb25maWc6RW59PWdBO2FzeW5jIGZ1bmN0aW9uIHZyKEEsZSl7bGV0IEk9QSx0PW51bGw7aWYoST09bnVsbCl0PW5ldyBXb3JrZXIobmV3IFVSTCgiLi93ZWItd29ya2Vycy9pdGstd2FzbS1waXBlbGluZS53b3JrZXIuanMiLGltcG9ydC5tZXRhLnVybCkse3R5cGU6Im1vZHVsZSJ9KTtlbHNlIGlmKEkuc3RhcnRzV2l0aCgiaHR0cCIpKXtsZXQgcj1hd2FpdCBnQS5nZXQoSSx7cmVzcG9uc2VUeXBlOiJibG9iIixwYXJhbXM6ZX0pLGk9VVJMLmNyZWF0ZU9iamVjdFVSTChyLmRhdGEpO3Q9bmV3IFdvcmtlcihpLHt0eXBlOiJtb2R1bGUifSl9ZWxzZSB0PW5ldyBXb3JrZXIoSSx7dHlwZToibW9kdWxlIn0pO3JldHVybiB0fXZhciB5QT12cjtmdW5jdGlvbiBQdChBKXtsZXQgZT1hZShBKSxJPUE7cmV0dXJuIEkudGVybWluYXRlZD0hMSxJLndvcmtlclByb3h5PWUsSS5vcmlnaW5hbFRlcm1pbmF0ZT1JLnRlcm1pbmF0ZSxJLnRlcm1pbmF0ZT0oKT0+e0kudGVybWluYXRlZD0hMCxJLndvcmtlclByb3h5W29lXSgpLEkub3JpZ2luYWxUZXJtaW5hdGUoKX0se3dvcmtlclByb3h5OmUsd29ya2VyOkl9fWFzeW5jIGZ1bmN0aW9uIFpyKEEsZSxJKXtsZXQgdDtpZihBIT1udWxsKXtsZXQgaT1BO3JldHVybiBpLndvcmtlclByb3h5IT09dm9pZCAwPyh0PWkud29ya2VyUHJveHkse3dvcmtlclByb3h5OnQsd29ya2VyOml9KTpQdChBKX1sZXQgcj1hd2FpdCB5QShlLEkpO3JldHVybiBQdChyKX12YXIgV3Q9WnI7dmFyIERBLHgsSmUsTGU9e2Vudjp7ZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aDpmdW5jdGlvbihBKXtKZT1uZXcgVWludDhBcnJheSh4LmV4cG9ydHMubWVtb3J5LmJ1ZmZlcil9fX0sVkE9Y2xhc3N7aW5pdCgpe3JldHVybiBEQXx8KHR5cGVvZiBmZXRjaDwidSI/REE9ZmV0Y2goImRhdGE6YXBwbGljYXRpb24vd2FzbTtiYXNlNjQsIitqdCkudGhlbihlPT5lLmFycmF5QnVmZmVyKCkpLnRoZW4oZT0+V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoZSxMZSkpLnRoZW4odGhpcy5faW5pdCk6REE9V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoQnVmZmVyLmZyb20oanQsImJhc2U2NCIpLExlKS50aGVuKHRoaXMuX2luaXQpLERBKX1faW5pdChlKXt4PWUuaW5zdGFuY2UsTGUuZW52LmVtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgoMCl9ZGVjb2RlKGUsST0wKXtpZigheCl0aHJvdyBuZXcgRXJyb3IoIlpTVEREZWNvZGVyOiBBd2FpdCAuaW5pdCgpIGJlZm9yZSBkZWNvZGluZy4iKTtsZXQgdD1lLmJ5dGVMZW5ndGgscj14LmV4cG9ydHMubWFsbG9jKHQpO0plLnNldChlLHIpLEk9SXx8TnVtYmVyKHguZXhwb3J0cy5aU1REX2ZpbmREZWNvbXByZXNzZWRTaXplKHIsdCkpO2xldCBpPXguZXhwb3J0cy5tYWxsb2MoSSksZz14LmV4cG9ydHMuWlNURF9kZWNvbXByZXNzKGksSSxyLHQpLHM9SmUuc2xpY2UoaSxpK2cpO3JldHVybiB4LmV4cG9ydHMuZnJlZShyKSx4LmV4cG9ydHMuZnJlZShpKSxzfX0sanQ9IkFHRnpiUUVBQUFBQmJnNWdBMzkvZndGL1lBRi9BWDlnQW45L0FHQUJmd0JnQlg5L2YzOS9BWDlnQTM5L2Z3QmdCSDkvZjM4QmYyQUFBWDlnQW45L0FYOWdCMzkvZjM5L2YzOEJmMkFDZjM4QmZtQUlmMzkvZjM5L2YzOEJmMkFGZjM5L2YzOEFZQTUvZjM5L2YzOS9mMzkvZjM5L2Z3Ri9BaWNCQTJWdWRoOWxiWE5qY21sd2RHVnVYMjV2ZEdsbWVWOXRaVzF2Y25sZlozSnZkM1JvQUFNREl5SUhBQUFCQVFNSEF3RUFDUVFBQlFFSUNBRUZCZ1FFQkFNR0FBQUtBQVVMREEwR0JBVUJjQUVCQVFVSEFRR0FBb0NBQWdZSUFYOEJRWUNqQkFzSHJnRUxCbTFsYlc5eWVRSUFCbTFoYkd4dll3QUZCR1p5WldVQUJneGFVMVJFWDJselJYSnliM0lBRWhsYVUxUkVYMlpwYm1SRVpXTnZiWEJ5WlhOelpXUlRhWHBsQUJ3UFdsTlVSRjlrWldOdmJYQnlaWE56QUNJWlgxOXBibVJwY21WamRGOW1kVzVqZEdsdmJsOTBZV0pzWlFFQUVGOWZaWEp5Ym05ZmJHOWpZWFJwYjI0QUFRbHpkR0ZqYTFOaGRtVUFCd3h6ZEdGamExSmxjM1J2Y21VQUNBcHpkR0ZqYTBGc2JHOWpBQWtLaS9JQklnVUFRWVFmQ3pNQkFYOGdBZ1JBSUFBaEF3TkFJQU1nQVMwQUFEb0FBQ0FEUVFGcUlRTWdBVUVCYWlFQklBSkJBV3NpQWcwQUN3c2dBQXNwQVFGL0lBSUVRQ0FBSVFNRFFDQURJQUU2QUFBZ0EwRUJhaUVESUFKQkFXc2lBZzBBQ3dzZ0FBdHNBUUovUVlBZktBSUFJZ0VnQUVFSGFrRjRjU0lDYWlFQUFrQWdBa0VBSUFBZ0FVMGJEUUFnQUQ4QVFSQjBTd1JBSUFBL0FFRVFkR3RCLy84RGFrRVFka0FBUVg5R0JIOUJBQVZCQUJBQVFRRUxSUTBCQzBHQUh5QUFOZ0lBSUFFUEMwR0VIMEV3TmdJQVFYOEx1U2NCQzM4akFFRVFheUlLSkFBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBQkI5QUZOQkVCQmlCOG9BZ0FpQmtFUUlBQkJDMnBCZUhFZ0FFRUxTUnNpQlVFRGRpSUFkaUlCUVFOeEJFQUNRQ0FCUVg5elFRRnhJQUJxSWdKQkEzUWlBVUd3SDJvaUFDQUJRYmdmYWlnQ0FDSUJLQUlJSWdSR0JFQkJpQjhnQmtGK0lBSjNjVFlDQUF3QkN5QUVJQUEyQWd3Z0FDQUVOZ0lJQ3lBQlFRaHFJUUFnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1Ed3NnQlVHUUh5Z0NBQ0lIVFEwQklBRUVRQUpBUVFJZ0FIUWlBa0VBSUFKcmNpQUJJQUIwY1dnaUFVRURkQ0lBUWJBZmFpSUNJQUJCdUI5cUtBSUFJZ0FvQWdnaUJFWUVRRUdJSHlBR1FYNGdBWGR4SWdZMkFnQU1BUXNnQkNBQ05nSU1JQUlnQkRZQ0NBc2dBQ0FGUVFOeU5nSUVJQUFnQldvaUNDQUJRUU4wSWdFZ0JXc2lCRUVCY2pZQ0JDQUFJQUZxSUFRMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFGQm5COG9BZ0FoQWdKL0lBWkJBU0FIUVFOMmRDSURjVVVFUUVHSUh5QURJQVp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBeUFCSUFJMkFnZ2dBeUFDTmdJTUlBSWdBVFlDRENBQ0lBTTJBZ2dMSUFCQkNHb2hBRUdjSHlBSU5nSUFRWkFmSUFRMkFnQU1Ed3RCakI4b0FnQWlDMFVOQVNBTGFFRUNkRUc0SVdvb0FnQWlBaWdDQkVGNGNTQUZheUVESUFJaEFRTkFBa0FnQVNnQ0VDSUFSUVJBSUFFb0FoUWlBRVVOQVFzZ0FDZ0NCRUY0Y1NBRmF5SUJJQU1nQVNBRFNTSUJHeUVESUFBZ0FpQUJHeUVDSUFBaEFRd0JDd3NnQWlnQ0dDRUpJQUlnQWlnQ0RDSUVSd1JBUVpnZktBSUFHaUFDS0FJSUlnQWdCRFlDRENBRUlBQTJBZ2dNRGdzZ0FrRVVhaUlCS0FJQUlnQkZCRUFnQWlnQ0VDSUFSUTBESUFKQkVHb2hBUXNEUUNBQklRZ2dBQ0lFUVJScUlnRW9BZ0FpQUEwQUlBUkJFR29oQVNBRUtBSVFJZ0FOQUFzZ0NFRUFOZ0lBREEwTFFYOGhCU0FBUWI5L1N3MEFJQUJCQzJvaUFFRjRjU0VGUVl3ZktBSUFJZ2hGRFFCQkFDQUZheUVEQWtBQ1FBSkFBbjlCQUNBRlFZQUNTUTBBR2tFZklBVkIvLy8vQjBzTkFCb2dCVUVtSUFCQkNIWm5JZ0JyZGtFQmNTQUFRUUYwYTBFK2Fnc2lCMEVDZEVHNElXb29BZ0FpQVVVRVFFRUFJUUFNQVF0QkFDRUFJQVZCR1NBSFFRRjJhMEVBSUFkQkgwY2JkQ0VDQTBBQ1FDQUJLQUlFUVhoeElBVnJJZ1lnQTA4TkFDQUJJUVFnQmlJRERRQkJBQ0VESUFFaEFBd0RDeUFBSUFFb0FoUWlCaUFHSUFFZ0FrRWRka0VFY1dvb0FoQWlBVVliSUFBZ0Joc2hBQ0FDUVFGMElRSWdBUTBBQ3dzZ0FDQUVja1VFUUVFQUlRUkJBaUFIZENJQVFRQWdBR3R5SUFoeElnQkZEUU1nQUdoQkFuUkJ1Q0ZxS0FJQUlRQUxJQUJGRFFFTEEwQWdBQ2dDQkVGNGNTQUZheUlDSUFOSklRRWdBaUFESUFFYklRTWdBQ0FFSUFFYklRUWdBQ2dDRUNJQkJIOGdBUVVnQUNnQ0ZBc2lBQTBBQ3dzZ0JFVU5BQ0FEUVpBZktBSUFJQVZyVHcwQUlBUW9BaGdoQnlBRUlBUW9BZ3dpQWtjRVFFR1lIeWdDQUJvZ0JDZ0NDQ0lBSUFJMkFnd2dBaUFBTmdJSURBd0xJQVJCRkdvaUFTZ0NBQ0lBUlFSQUlBUW9BaEFpQUVVTkF5QUVRUkJxSVFFTEEwQWdBU0VHSUFBaUFrRVVhaUlCS0FJQUlnQU5BQ0FDUVJCcUlRRWdBaWdDRUNJQURRQUxJQVpCQURZQ0FBd0xDeUFGUVpBZktBSUFJZ1JOQkVCQm5COG9BZ0FoQUFKQUlBUWdCV3NpQVVFUVR3UkFJQUFnQldvaUFpQUJRUUZ5TmdJRUlBQWdCR29nQVRZQ0FDQUFJQVZCQTNJMkFnUU1BUXNnQUNBRVFRTnlOZ0lFSUFBZ0JHb2lBU0FCS0FJRVFRRnlOZ0lFUVFBaEFrRUFJUUVMUVpBZklBRTJBZ0JCbkI4Z0FqWUNBQ0FBUVFocUlRQU1EUXNnQlVHVUh5Z0NBQ0lDU1FSQVFaUWZJQUlnQldzaUFUWUNBRUdnSDBHZ0h5Z0NBQ0lBSUFWcUlnSTJBZ0FnQWlBQlFRRnlOZ0lFSUFBZ0JVRURjallDQkNBQVFRaHFJUUFNRFF0QkFDRUFJQVZCTDJvaUF3Si9RZUFpS0FJQUJFQkI2Q0lvQWdBTUFRdEI3Q0pDZnpjQ0FFSGtJa0tBb0lDQWdJQUVOd0lBUWVBaUlBcEJER3BCY0hGQjJLclZxZ1Z6TmdJQVFmUWlRUUEyQWdCQnhDSkJBRFlDQUVHQUlBc2lBV29pQmtFQUlBRnJJZ2h4SWdFZ0JVME5ERUhBSWlnQ0FDSUVCRUJCdUNJb0FnQWlCeUFCYWlJSklBZE5JQVFnQ1VseURRMExBa0JCeENJdEFBQkJCSEZGQkVBQ1FBSkFBa0FDUUVHZ0h5Z0NBQ0lFQkVCQnlDSWhBQU5BSUFRZ0FDZ0NBQ0lIVHdSQUlBY2dBQ2dDQkdvZ0JFc05Bd3NnQUNnQ0NDSUFEUUFMQzBFQUVBUWlBa0YvUmcwRElBRWhCa0hrSWlnQ0FDSUFRUUZySWdRZ0FuRUVRQ0FCSUFKcklBSWdCR3BCQUNBQWEzRnFJUVlMSUFVZ0JrOE5BMEhBSWlnQ0FDSUFCRUJCdUNJb0FnQWlCQ0FHYWlJSUlBUk5JQUFnQ0VseURRUUxJQVlRQkNJQUlBSkhEUUVNQlFzZ0JpQUNheUFJY1NJR0VBUWlBaUFBS0FJQUlBQW9BZ1JxUmcwQklBSWhBQXNnQUVGL1JnMEJJQVZCTUdvZ0JrMEVRQ0FBSVFJTUJBdEI2Q0lvQWdBaUFpQURJQVpyYWtFQUlBSnJjU0lDRUFSQmYwWU5BU0FDSUFacUlRWWdBQ0VDREFNTElBSkJmMGNOQWd0QnhDSkJ4Q0lvQWdCQkJISTJBZ0FMSUFFUUJDSUNRWDlHUVFBUUJDSUFRWDlHY2lBQUlBSk5jZzBGSUFBZ0Ftc2lCaUFGUVNocVRRMEZDMEc0SWtHNElpZ0NBQ0FHYWlJQU5nSUFRYndpS0FJQUlBQkpCRUJCdkNJZ0FEWUNBQXNDUUVHZ0h5Z0NBQ0lEQkVCQnlDSWhBQU5BSUFJZ0FDZ0NBQ0lCSUFBb0FnUWlCR3BHRFFJZ0FDZ0NDQ0lBRFFBTERBUUxRWmdmS0FJQUlnQkJBQ0FBSUFKTkcwVUVRRUdZSHlBQ05nSUFDMEVBSVFCQnpDSWdCallDQUVISUlpQUNOZ0lBUWFnZlFYODJBZ0JCckI5QjRDSW9BZ0EyQWdCQjFDSkJBRFlDQUFOQUlBQkJBM1FpQVVHNEgyb2dBVUd3SDJvaUJEWUNBQ0FCUWJ3ZmFpQUVOZ0lBSUFCQkFXb2lBRUVnUncwQUMwR1VIeUFHUVNocklnQkJlQ0FDYTBFSGNTSUJheUlFTmdJQVFhQWZJQUVnQW1vaUFUWUNBQ0FCSUFSQkFYSTJBZ1FnQUNBQ2FrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBUUxJQUlnQTAwZ0FTQURTM0lOQWlBQUtBSU1RUWh4RFFJZ0FDQUVJQVpxTmdJRVFhQWZJQU5CZUNBRGEwRUhjU0lBYWlJQk5nSUFRWlFmUVpRZktBSUFJQVpxSWdJZ0FHc2lBRFlDQUNBQklBQkJBWEkyQWdRZ0FpQURha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQU1MUVFBaEJBd0tDMEVBSVFJTUNBdEJtQjhvQWdBZ0Frc0VRRUdZSHlBQ05nSUFDeUFDSUFacUlRRkJ5Q0loQUFKQUFrQUNRQU5BSUFFZ0FDZ0NBRWNFUUNBQUtBSUlJZ0FOQVF3Q0N3c2dBQzBBREVFSWNVVU5BUXRCeUNJaEFBTkFJQU1nQUNnQ0FDSUJUd1JBSUFFZ0FDZ0NCR29pQkNBRFN3MERDeUFBS0FJSUlRQU1BQXNBQ3lBQUlBSTJBZ0FnQUNBQUtBSUVJQVpxTmdJRUlBSkJlQ0FDYTBFSGNXb2lCeUFGUVFOeU5nSUVJQUZCZUNBQmEwRUhjV29pQmlBRklBZHFJZ1ZySVFBZ0F5QUdSZ1JBUWFBZklBVTJBZ0JCbEI5QmxCOG9BZ0FnQUdvaUFEWUNBQ0FGSUFCQkFYSTJBZ1FNQ0F0Qm5COG9BZ0FnQmtZRVFFR2NIeUFGTmdJQVFaQWZRWkFmS0FJQUlBQnFJZ0EyQWdBZ0JTQUFRUUZ5TmdJRUlBQWdCV29nQURZQ0FBd0lDeUFHS0FJRUlnTkJBM0ZCQVVjTkJpQURRWGh4SVFrZ0EwSC9BVTBFUUNBR0tBSU1JZ0VnQmlnQ0NDSUNSZ1JBUVlnZlFZZ2ZLQUlBUVg0Z0EwRURkbmR4TmdJQURBY0xJQUlnQVRZQ0RDQUJJQUkyQWdnTUJnc2dCaWdDR0NFSUlBWWdCaWdDRENJQ1J3UkFJQVlvQWdnaUFTQUNOZ0lNSUFJZ0FUWUNDQXdGQ3lBR1FSUnFJZ0VvQWdBaUEwVUVRQ0FHS0FJUUlnTkZEUVFnQmtFUWFpRUJDd05BSUFFaEJDQURJZ0pCRkdvaUFTZ0NBQ0lERFFBZ0FrRVFhaUVCSUFJb0FoQWlBdzBBQ3lBRVFRQTJBZ0FNQkF0QmxCOGdCa0VvYXlJQVFYZ2dBbXRCQjNFaUFXc2lDRFlDQUVHZ0h5QUJJQUpxSWdFMkFnQWdBU0FJUVFGeU5nSUVJQUFnQW1wQktEWUNCRUdrSDBId0lpZ0NBRFlDQUNBRElBUkJKeUFFYTBFSGNXcEJMMnNpQUNBQUlBTkJFR3BKR3lJQlFSczJBZ1FnQVVIUUlpa0NBRGNDRUNBQlFjZ2lLUUlBTndJSVFkQWlJQUZCQ0dvMkFnQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFkUWlRUUEyQWdBZ0FVRVlhaUVBQTBBZ0FFRUhOZ0lFSUFCQkNHb2dBRUVFYWlFQUlBUkpEUUFMSUFFZ0EwWU5BQ0FCSUFFb0FnUkJmbkUyQWdRZ0F5QUJJQU5ySWdKQkFYSTJBZ1FnQVNBQ05nSUFJQUpCL3dGTkJFQWdBa0Y0Y1VHd0gyb2hBQUovUVlnZktBSUFJZ0ZCQVNBQ1FRTjJkQ0lDY1VVRVFFR0lIeUFCSUFKeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQVNBQUlBTTJBZ2dnQVNBRE5nSU1JQU1nQURZQ0RDQURJQUUyQWdnTUFRdEJIeUVBSUFKQi8vLy9CMDBFUUNBQ1FTWWdBa0VJZG1jaUFHdDJRUUZ4SUFCQkFYUnJRVDVxSVFBTElBTWdBRFlDSENBRFFnQTNBaEFnQUVFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUJFRUJJQUIwSWdaeFJRUkFRWXdmSUFRZ0JuSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkdTQUFRUUYyYTBFQUlBQkJIMGNiZENFQUlBRW9BZ0FoQkFOQUlBUWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCQ0FBUVFGMElRQWdBU0FFUVFSeGFpSUdLQUlRSWdRTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xRWlFmS0FJQUlnQWdCVTBOQUVHVUh5QUFJQVZySWdFMkFnQkJvQjlCb0I4b0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQWdMUVlRZlFUQTJBZ0JCQUNFQURBY0xRUUFoQWdzZ0NFVU5BQUpBSUFZb0Fod2lBVUVDZEVHNElXb2lCQ2dDQUNBR1JnUkFJQVFnQWpZQ0FDQUNEUUZCakI5QmpCOG9BZ0JCZmlBQmQzRTJBZ0FNQWdzZ0NFRVFRUlFnQ0NnQ0VDQUdSaHRxSUFJMkFnQWdBa1VOQVFzZ0FpQUlOZ0lZSUFZb0FoQWlBUVJBSUFJZ0FUWUNFQ0FCSUFJMkFoZ0xJQVlvQWhRaUFVVU5BQ0FDSUFFMkFoUWdBU0FDTmdJWUN5QUFJQWxxSVFBZ0JpQUphaUlHS0FJRUlRTUxJQVlnQTBGK2NUWUNCQ0FGSUFCQkFYSTJBZ1FnQUNBRmFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVGNGNVR3dIMm9oQVFKL1FZZ2ZLQUlBSWdKQkFTQUFRUU4yZENJQWNVVUVRRUdJSHlBQUlBSnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEFDQUJJQVUyQWdnZ0FDQUZOZ0lNSUFVZ0FUWUNEQ0FGSUFBMkFnZ01BUXRCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQVVnQXpZQ0hDQUZRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlBa0VCSUFOMElnUnhSUVJBUVl3ZklBSWdCSEkyQWdBZ0FTQUZOZ0lBREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFnTkFJQUlpQVNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQWlBRFFRRjBJUU1nQVNBQ1FRUnhhaUlFS0FJUUlnSU5BQXNnQkNBRk5nSVFDeUFGSUFFMkFoZ2dCU0FGTmdJTUlBVWdCVFlDQ0F3QkN5QUJLQUlJSWdBZ0JUWUNEQ0FCSUFVMkFnZ2dCVUVBTmdJWUlBVWdBVFlDRENBRklBQTJBZ2dMSUFkQkNHb2hBQXdDQ3dKQUlBZEZEUUFDUUNBRUtBSWNJZ0JCQW5SQnVDRnFJZ0VvQWdBZ0JFWUVRQ0FCSUFJMkFnQWdBZzBCUVl3ZklBaEJmaUFBZDNFaUNEWUNBQXdDQ3lBSFFSQkJGQ0FIS0FJUUlBUkdHMm9nQWpZQ0FDQUNSUTBCQ3lBQ0lBYzJBaGdnQkNnQ0VDSUFCRUFnQWlBQU5nSVFJQUFnQWpZQ0dBc2dCQ2dDRkNJQVJRMEFJQUlnQURZQ0ZDQUFJQUkyQWhnTEFrQWdBMEVQVFFSQUlBUWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0JHb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBUWdCVUVEY2pZQ0JDQUVJQVZxSWdJZ0EwRUJjallDQkNBQ0lBTnFJQU0yQWdBZ0EwSC9BVTBFUUNBRFFYaHhRYkFmYWlFQUFuOUJpQjhvQWdBaUFVRUJJQU5CQTNaMElnTnhSUVJBUVlnZklBRWdBM0kyQWdBZ0FBd0JDeUFBS0FJSUN5RUJJQUFnQWpZQ0NDQUJJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0FUWUNDQXdCQzBFZklRQWdBMEgvLy84SFRRUkFJQU5CSmlBRFFRaDJaeUlBYTNaQkFYRWdBRUVCZEd0QlBtb2hBQXNnQWlBQU5nSWNJQUpDQURjQ0VDQUFRUUowUWJnaGFpRUJBa0FDUUNBSVFRRWdBSFFpQm5GRkJFQkJqQjhnQmlBSWNqWUNBQ0FCSUFJMkFnQU1BUXNnQTBFWklBQkJBWFpyUVFBZ0FFRWZSeHQwSVFBZ0FTZ0NBQ0VGQTBBZ0JTSUJLQUlFUVhoeElBTkdEUUlnQUVFZGRpRUdJQUJCQVhRaEFDQUJJQVpCQkhGcUlnWW9BaEFpQlEwQUN5QUdJQUkyQWhBTElBSWdBVFlDR0NBQ0lBSTJBZ3dnQWlBQ05nSUlEQUVMSUFFb0FnZ2lBQ0FDTmdJTUlBRWdBallDQ0NBQ1FRQTJBaGdnQWlBQk5nSU1JQUlnQURZQ0NBc2dCRUVJYWlFQURBRUxBa0FnQ1VVTkFBSkFJQUlvQWh3aUFFRUNkRUc0SVdvaUFTZ0NBQ0FDUmdSQUlBRWdCRFlDQUNBRURRRkJqQjhnQzBGK0lBQjNjVFlDQUF3Q0N5QUpRUkJCRkNBSktBSVFJQUpHRzJvZ0JEWUNBQ0FFUlEwQkN5QUVJQWsyQWhnZ0FpZ0NFQ0lBQkVBZ0JDQUFOZ0lRSUFBZ0JEWUNHQXNnQWlnQ0ZDSUFSUTBBSUFRZ0FEWUNGQ0FBSUFRMkFoZ0xBa0FnQTBFUFRRUkFJQUlnQXlBRmFpSUFRUU55TmdJRUlBQWdBbW9pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQUlnQlVFRGNqWUNCQ0FDSUFWcUlnUWdBMEVCY2pZQ0JDQURJQVJxSUFNMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFCQm5COG9BZ0FoQVFKL1FRRWdCMEVEZG5RaUJTQUdjVVVFUUVHSUh5QUZJQVp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hCaUFBSUFFMkFnZ2dCaUFCTmdJTUlBRWdBRFlDRENBQklBWTJBZ2dMUVp3ZklBUTJBZ0JCa0I4Z0F6WUNBQXNnQWtFSWFpRUFDeUFLUVJCcUpBQWdBQXZTQ3dFSGZ3SkFJQUJGRFFBZ0FFRUlheUlDSUFCQkJHc29BZ0FpQVVGNGNTSUFhaUVGQWtBZ0FVRUJjUTBBSUFGQkEzRkZEUUVnQWlBQ0tBSUFJZ0ZySWdKQm1COG9BZ0JKRFFFZ0FDQUJhaUVBQWtBQ1FFR2NIeWdDQUNBQ1J3UkFJQUZCL3dGTkJFQWdBVUVEZGlFRUlBSW9BZ3dpQVNBQ0tBSUlJZ05HQkVCQmlCOUJpQjhvQWdCQmZpQUVkM0UyQWdBTUJRc2dBeUFCTmdJTUlBRWdBellDQ0F3RUN5QUNLQUlZSVFZZ0FpQUNLQUlNSWdGSEJFQWdBaWdDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFKQkZHb2lCQ2dDQUNJRFJRUkFJQUlvQWhBaUEwVU5BaUFDUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRktBSUVJZ0ZCQTNGQkEwY05Ba0dRSHlBQU5nSUFJQVVnQVVGK2NUWUNCQ0FDSUFCQkFYSTJBZ1FnQlNBQU5nSUFEd3RCQUNFQkN5QUdSUTBBQWtBZ0FpZ0NIQ0lEUVFKMFFiZ2hhaUlFS0FJQUlBSkdCRUFnQkNBQk5nSUFJQUVOQVVHTUgwR01IeWdDQUVGK0lBTjNjVFlDQUF3Q0N5QUdRUkJCRkNBR0tBSVFJQUpHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQVkyQWhnZ0FpZ0NFQ0lEQkVBZ0FTQUROZ0lRSUFNZ0FUWUNHQXNnQWlnQ0ZDSURSUTBBSUFFZ0F6WUNGQ0FESUFFMkFoZ0xJQUlnQlU4TkFDQUZLQUlFSWdGQkFYRkZEUUFDUUFKQUFrQUNRQ0FCUVFKeFJRUkFRYUFmS0FJQUlBVkdCRUJCb0I4Z0FqWUNBRUdVSDBHVUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FDUVp3ZktBSUFSdzBHUVpBZlFRQTJBZ0JCbkI5QkFEWUNBQThMUVp3ZktBSUFJQVZHQkVCQm5COGdBallDQUVHUUgwR1FIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQUlBSnFJQUEyQWdBUEN5QUJRWGh4SUFCcUlRQWdBVUgvQVUwRVFDQUJRUU4ySVFRZ0JTZ0NEQ0lCSUFVb0FnZ2lBMFlFUUVHSUgwR0lIeWdDQUVGK0lBUjNjVFlDQUF3RkN5QURJQUUyQWd3Z0FTQUROZ0lJREFRTElBVW9BaGdoQmlBRklBVW9BZ3dpQVVjRVFFR1lIeWdDQUJvZ0JTZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQVZCRkdvaUJDZ0NBQ0lEUlFSQUlBVW9BaEFpQTBVTkFpQUZRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGSUFGQmZuRTJBZ1FnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUF3REMwRUFJUUVMSUFaRkRRQUNRQ0FGS0FJY0lnTkJBblJCdUNGcUlnUW9BZ0FnQlVZRVFDQUVJQUUyQWdBZ0FRMEJRWXdmUVl3ZktBSUFRWDRnQTNkeE5nSUFEQUlMSUFaQkVFRVVJQVlvQWhBZ0JVWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0JqWUNHQ0FGS0FJUUlnTUVRQ0FCSUFNMkFoQWdBeUFCTmdJWUN5QUZLQUlVSWdORkRRQWdBU0FETmdJVUlBTWdBVFlDR0FzZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FDQUNRWndmS0FJQVJ3MEFRWkFmSUFBMkFnQVBDeUFBUWY4QlRRUkFJQUJCZUhGQnNCOXFJUUVDZjBHSUh5Z0NBQ0lEUVFFZ0FFRURkblFpQUhGRkJFQkJpQjhnQUNBRGNqWUNBQ0FCREFFTElBRW9BZ2dMSVFBZ0FTQUNOZ0lJSUFBZ0FqWUNEQ0FDSUFFMkFnd2dBaUFBTmdJSUR3dEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBSWdBellDSENBQ1FnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQUNRRUdNSHlnQ0FDSUVRUUVnQTNRaUIzRkZCRUJCakI4Z0JDQUhjallDQUNBQklBSTJBZ0FnQWlBQk5nSVlEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQVFOQUlBRWlCQ2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBU0FEUVFGMElRTWdCQ0FCUVFSeGFpSUhRUkJxS0FJQUlnRU5BQXNnQnlBQ05nSVFJQUlnQkRZQ0dBc2dBaUFDTmdJTUlBSWdBallDQ0F3QkN5QUVLQUlJSWdBZ0FqWUNEQ0FFSUFJMkFnZ2dBa0VBTmdJWUlBSWdCRFlDRENBQ0lBQTJBZ2dMUWFnZlFhZ2ZLQUlBUVFGcklnQkJmeUFBR3pZQ0FBc0xCQUFqQUFzR0FDQUFKQUFMRUFBakFDQUFhMEZ3Y1NJQUpBQWdBQXRLQVFGL0lBQWdBVWtFUUNBQUlBRWdBaEFDRHdzZ0FnUkFJQUFnQW1vaEF5QUJJQUpxSVFFRFFDQURRUUZySWdNZ0FVRUJheUlCTFFBQU9nQUFJQUpCQVdzaUFnMEFDd3NnQUF2OURnSVJmd0YrSXdCQk1Hc2lCeVFBUWJoL0lRZ0NRQ0FGUlEwQUlBUXNBQUFpQ1VIL0FYRWhDd0pBSUFsQkFFZ0VRQ0FMUWY0QWEwRUJkaUlHSUFWUERRSkJiQ0VJSUF0Qi93QnJJZ3RCL3dGTERRSWdCRUVCYWlFSVFRQWhCUU5BSUFVZ0MwOEVRQ0FMSVFnZ0JpRUxEQU1GSUFBZ0JXb2dDQ0FGUVFGMmFpSUVMUUFBUVFSMk9nQUFJQUFnQlVFQmNtb2dCQzBBQUVFUGNUb0FBQ0FGUVFKcUlRVU1BUXNBQ3dBTElBVWdDMDBOQVNBSFFmOEJOZ0lFSUFZZ0IwRUVhaUFIUVFocUlBUkJBV29pRGlBTEVBd2lCRUdJZjBzRVFDQUVJUWdNQWd0QlZDRUlJQWNvQWdnaUVFRUdTdzBCSUFjb0FnUWlFVUVCZENJSlFRSnFyVUlCSUJDdGhpSVlRUUVnRUhRaURVRUJhaUlGclVJQ2hueDhRZ3Q4UXZ6Ly8vLy8vLy8vL3dDRFF1UUNWZzBCUVZJaENDQVJRZjhCU3cwQklBMUJmM05CQW5SQjVBSnFyU0FSUVFGcUloVkJBWFN0SUJoOFFnaDhWQTBCSUFzZ0JHc2hGaUFFSUE1cUlSY2dCa0dBQkdvaUVpQUZRUUowYWlJUklBbHFRUUpxSVE0Z0JrR0VCR29oRTBHQWdBSWdFSFJCRUhZaENVRUFJUVZCQVNFUElBMUJBV3NpRkNFS0EwQWdCU0FWUmtVRVFBSkFJQVlnQlVFQmRDSUlhaThCQUNJRVFmLy9BMFlFUUNBVElBcEJBblJxSUFVNkFBSWdDa0VCYXlFS1FRRWhCQXdCQ3lBUFFRQWdDU0FFd1VvYklROExJQWdnRVdvZ0JEc0JBQ0FGUVFGcUlRVU1BUXNMSUFZZ0R6c0JnZ1FnQmlBUU93R0FCQUpBSUFvZ0ZFWUVRQ0FOUVFOMklRaENBQ0VZUVFBaER3TkFJQXdnRlVZRVFDQUlJQTFCQVhacVFRTnFJZ2xCQVhRaENFRUFJUVJCQUNFS0EwQkJBQ0VGSUFvZ0RVOE5CQU5BSUFWQkFrWkZCRUFnRXlBRklBbHNJQVJxSUJSeFFRSjBhaUFPSUFVZ0NtcHFMUUFBT2dBQ0lBVkJBV29oQlF3QkN3c2dDa0VDYWlFS0lBUWdDR29nRkhFaEJBd0FDd0FGSUFZZ0RFRUJkR291QVFBaENTQU9JQTlxSWdRZ0dEY0FBRUVJSVFVRFFDQUZJQWxPUlFSQUlBUWdCV29nR0RjQUFDQUZRUWhxSVFVTUFRc0xJQmhDZ1lLRWlKQ2d3SUFCZkNFWUlBeEJBV29oRENBSklBOXFJUThNQVFzQUN3QUxJQTFCQTNZZ0RVRUJkbXBCQTJvaENFRUFJUVVEUUNBTUlCVkdSUVJBUVFBaENTQUdJQXhCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQUpSa1VFUUNBVElBVkJBblJxSUF3NkFBSURRQ0FGSUFocUlCUnhJZ1VnQ2tzTkFBc2dDVUVCYWlFSkRBRUxDeUFNUVFGcUlRd01BUXNMUVg4aENDQUZEUUlMSUJCQkFXb2hDRUVBSVFVRFFDQUZJQTFHUlFSQUlCRWdFeUFGUVFKMGFpSU9MUUFDUVFGMGFpSUVJQVF2QVFBaUNVRUJhanNCQUNBT0lBZ2dDV2RCWUhOcUlnUTZBQU1nRGlBSklBUjBJQTFyT3dFQUlBVkJBV29oQlF3QkN3c0NRQUpBSUFZdkFZSUVCRUFnQjBFY2FpSUVJQmNnRmhBTklnaEJpSDlMRFFJZ0IwRVVhaUFFSUJJUURpQUhRUXhxSUFRZ0VoQU9RUUFoQlFOQUlBZEJIR29pQkJBUElBVkIrd0ZMY2cwQ0lBQWdCV29pQmlBSFFSUnFJQVFRRURvQUFDQUdJQWRCREdvZ0JCQVFPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVTUF3VWdBQ0FFYWlBSFFSUnFJQWRCSEdvaUJCQVFPZ0FBSUFZZ0IwRU1haUFFRUJBNkFBTWdCVUVFYWlFRkRBRUxBQXNBQ3lBSFFSeHFJZ1FnRnlBV0VBMGlDRUdJZjBzTkFTQUhRUlJxSUFRZ0VoQU9JQWRCREdvZ0JDQVNFQTVCQUNFRkEwQWdCMEVjYWlJRUVBOGdCVUg3QVV0eVJRUkFJQUFnQldvaUJpQUhRUlJxSUFRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVUZJQUFnQkdvZ0IwRVVhaUFIUVJ4cUlnUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQURJQVZCQkdvaEJRd0NDd3NMQW44RFFFRzZmeUVJSUFWQi9RRkxEUU1nQUNBRmFpSUdJQWRCRkdvZ0IwRWNhaUlKRUJFNkFBQWdCa0VCYWlFRUlBa1FEMEVEUmdSQUlBZEJER29oQ0VFQ0RBSUxJQVZCL0FGTERRTWdCaUFIUVF4cUlBZEJIR29pQkJBUk9nQUJJQVZCQW1vaEJTQUVFQTlCQTBjTkFBc2dBQ0FGYWlFRUlBZEJGR29oQ0VFREN5QUVJQWdnQjBFY2FoQVJPZ0FBSUFacUlBQnJJUWdNQVFzQ2Z3TkFRYnAvSVFnZ0JVSDlBVXNOQWlBQUlBVnFJZ1lnQjBFVWFpQUhRUnhxSWdrUUVEb0FBQ0FHUVFGcUlRUWdDUkFQUVFOR0JFQWdCMEVNYWlFSVFRSU1BZ3NnQlVIOEFVc05BaUFHSUFkQkRHb2dCMEVjYWlJRUVCQTZBQUVnQlVFQ2FpRUZJQVFRRDBFRFJ3MEFDeUFBSUFWcUlRUWdCMEVVYWlFSVFRTUxJQVFnQ0NBSFFSeHFFQkE2QUFBZ0Jtb2dBR3NoQ0FzZ0NFR0lmMHNOQVFzZ0NDRUVRUUFoQlNBQlFRQkJOQkFESVFsQkFDRUtBMEFnQkNBRlJ3UkFJQUFnQldvaUJpMEFBQ0lCUVF0TEJFQkJiQ0VJREFNRklBa2dBVUVDZEdvaUFTQUJLQUlBUVFGcU5nSUFJQVZCQVdvaEJVRUJJQVl0QUFCMFFRRjFJQXBxSVFvTUFnc0FDd3RCYkNFSUlBcEZEUUFnQ21jaUJVRWZjeUlCUVF0TERRQWdBMEVnSUFWck5nSUFRUUZCQWlBQmRDQUtheUlEWjBFZmN5SUJkQ0FEUncwQUlBQWdCR29nQVVFQmFpSUFPZ0FBSUFrZ0FFRUNkR29pQUNBQUtBSUFRUUZxTmdJQUlBa29BZ1FpQUVFQ1NTQUFRUUZ4Y2cwQUlBSWdCRUVCYWpZQ0FDQUxRUUZxSVFnTElBZEJNR29rQUNBSUM2QUZBUXgvSXdCQkVHc2lEQ1FBQW44Z0JFRUhUUVJBSUF4Q0FEY0RDQ0FNUVFocUlnVWdBeUFFRUFJYVFXd2dBQ0FCSUFJZ0JVRUlFQXdpQUNBQUlBUkxHeUFBSUFCQmlYOUpHd3dCQ3lBQVFRQWdBU2dDQUVFQmFpSU5RUUYwRUFNaEQwRlVJQU1vQUFBaUJrRVBjU0lBUVFwTERRQWFJQUlnQUVFRmFqWUNBQ0FESUFScUlnSkJCR3NoQnlBQ1FRZHJJUXNnQUVFR2FpRU9RUVFoQWlBR1FRUjJJUVZCSUNBQWRDSUlRUUZ5SVFsQkFDRUFRUUVoQmlBRElRUURRQUpBSUFaQkFYRkZCRUFEUUNBRlFYOXpRWUNBZ0lCNGNtZ2lCa0VZU1VVRVFDQUFRU1JxSVFBZ0JDQUxUUVIvSUFSQkEyb0ZJQVFnQzJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTElBSWdCa0VlY1NJS2FrRUNhaUVDSUFaQkFYWkJBMndnQUdvZ0JTQUtka0VEY1dvaUFDQU5UdzBCQW44Z0JDQUxTeUFDUVFOMklBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFRZ0IydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTElBVWdDRUVCYTNFaUJpQUlRUUYwUVFGcklnb2dDV3NpRUVrRWZ5QU9RUUZyQlNBRklBcHhJZ1VnRUVFQUlBVWdDRTRiYXlFR0lBNExJUVVnRHlBQVFRRjBhaUFHUVFGcklnbzdBUUFnQUVFQmFpRUFJQUlnQldvaEFpQUlRUUVnQm1zZ0NpQUdRUUJLR3lBSmFpSUpTZ1JBSUFsQkFrZ05BVUVnSUFsbklnVnJJUTVCQVNBRlFSOXpkQ0VJQ3lBQUlBMVBEUUFnQ2tFQVJ5RUdBbjhnQkNBTFN5QUNRUU4xSUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQUlnQkNBSGEwRURkR3BCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTFFXd2dDVUVCUncwQUdrRlFJQUFnRFVzTkFCcEJiQ0FDUVNCS0RRQWFJQUVnQUVFQmF6WUNBQ0FFSUFKQkIycEJBM1ZxSUFOckN5QU1RUkJxSkFBTDhnRUJBWDhnQWtVRVFDQUFRZ0EzQWdBZ0FFRUFOZ0lRSUFCQ0FEY0NDRUc0Znc4TElBQWdBVFlDRENBQUlBRkJCR28yQWhBZ0FrRUVUd1JBSUFBZ0FTQUNhaUlCUVFScklnTTJBZ2dnQUNBREtBQUFOZ0lBSUFGQkFXc3RBQUFpQVFSQUlBQWdBV2RCRjJzMkFnUWdBZzhMSUFCQkFEWUNCRUYvRHdzZ0FDQUJOZ0lJSUFBZ0FTMEFBQ0lETmdJQUFrQUNRQUpBSUFKQkFtc09BZ0VBQWdzZ0FDQUJMUUFDUVJCMElBTnlJZ00yQWdBTElBQWdBUzBBQVVFSWRDQURhallDQUFzZ0FTQUNha0VCYXkwQUFDSUJSUVJBSUFCQkFEWUNCRUZzRHdzZ0FDQUJaeUFDUVFOMGEwRUphallDQkNBQ0MwUUJBbjhnQVNBQ0x3RUFJZ01nQVNnQ0JHb2lCRFlDQkNBQUlBTkJBblJCb0IxcUtBSUFJQUVvQWdCQkFDQUVhM1p4TmdJQUlBRVFEeG9nQUNBQ1FRUnFOZ0lFQzU4QkFRUi9RUU1oQVNBQUtBSUVJZ0pCSUUwRVFDQUFLQUlJSWdFZ0FDZ0NFRThFUUNBQUlBSkJCM0UyQWdRZ0FDQUJJQUpCQTNacklnSTJBZ2dnQUNBQ0tBQUFOZ0lBUVFBUEN5QUFLQUlNSWdNZ0FVWUVRRUVCUVFJZ0FrRWdTUnNQQ3lBQUlBRWdBU0FEYXlBQ1FRTjJJZ1FnQVNBRWF5QURTU0lCR3lJRGF5SUVOZ0lJSUFBZ0FpQURRUU4wYXpZQ0JDQUFJQVFvQUFBMkFnQUxJQUVMU0FFRWZ5QUFLQUlFSUFBb0FnQkJBblJxSWdJdEFBSWdBaThCQUNFRUlBRWdBU2dDQkNJRklBSXRBQU1pQW1vMkFnUWdBQ0FFSUFFb0FnQWdCWFJCQUNBQ2EzWnFOZ0lBQzFJQkJIOGdBQ2dDQkNBQUtBSUFRUUowYWlJQ0xRQUNJQUl2QVFBaEJDQUJJQUl0QUFNaUFpQUJLQUlFYWlJRk5nSUVJQUFnQkNBQ1FRSjBRYUFkYWlnQ0FDQUJLQUlBUVFBZ0JXdDJjV28yQWdBTENBQWdBRUdJZjBzTEdnQWdBQVJBSUFFRVFDQUNJQUFnQVJFQ0FBOExJQUFRQmdzTHBnZ0NEWDhCZmlNQVFSQnJJZ2trQUNBSlFRQTJBZ3dnQ1VFQU5nSUlBbjhDUUNBRFFlZ0phaUFESUFsQkNHb2dDVUVNYWlBQklBSWdBMEdBQVdvUUN5SVBRWWgvU3cwQVFWUWdDU2dDRENJRUlBQW9BZ0FpQVVIL0FYRkJBV3BMRFFFYUlBQkJCR29oQ3lBQUlBRkIvNEdBZUhFZ0JFRVFkRUdBZ1B3SGNYSTJBZ0JCZnlBRUlBUkJBRWdiUVFGcUlRQkJBQ0VCSUFrb0FnZ2hCVUVBSVFJRFFDQUFJQUpHQkVBZ0JVRURheUVCUVFBaEFBTkFBa0JCQUNFQ0lBQWdBVTRFUUFOQUlBQWdCVTROQWlBRElBQWdBMnBCNkFscUxRQUFRUUowYWtGQWF5SUJJQUVvQWdBaUFVRUJhallDQUNBQklBTnFJQUE2QU9nSElBQkJBV29oQUF3QUN3QUZBMEFnQWtFRVJrVUVRQ0FESUFNZ0FDQUNhaUlIYWtIb0NXb3RBQUJCQW5ScVFVQnJJZ2dnQ0NnQ0FDSUlRUUZxTmdJQUlBTWdDR29nQnpvQTZBY2dBa0VCYWlFQ0RBRUxDeUFBUVFScUlRQU1BZ3NBQ3dzZ0JFRUJhaUVPSUFNb0FnQWhCMEVBSVFCQkFTRUlBMEFnQ0NBT1JnMERJQTRnQ0dzaEJDQURJQWhCQW5ScUtBSUFJUVVDUUFKQUFrQUNRQUpBQWtCQkFTQUlkRUVCZFNJTlFRRnJEZ2dBQVFRQ0JBUUVBd1FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFBSVFFRFFDQUNJQVpHRFFVZ0F5QUNJQWRxYWkwQTZBY2hDaUFMSUFGQkFYUnFJZ3dnQkRvQUFTQU1JQW82QUFBZ0FrRUJhaUVDSUFGQkFXb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQ2lBQUlRRURRQ0FDSUFwR0RRUWdDeUFCUVFGMGFpSUdJQU1nQWlBSGFtb3RBT2dISWd3NkFBSWdCaUFFT2dBQklBWWdERG9BQUNBR0lBUTZBQU1nQWtFQmFpRUNJQUZCQW1vaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFFUVFoMFFZRCtBM0VoQkNBQUlRRURRQ0FDSUFaR0RRTWdDeUFCUVFGMGFpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK053QUFJQUpCQVdvaEFpQUJRUVJxSVFFTUFBc0FDMEVBSVFJZ0JVRUFJQVZCQUVvYklRWWdCRUVJZEVHQS9nTnhJUVFnQUNFQkEwQWdBaUFHUmcwQ0lBc2dBVUVCZEdvaUNpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0loRTNBQWdnQ2lBUk53QUFJQUpCQVdvaEFpQUJRUWhxSVFFTUFBc0FDMEVBSVFFZ0JVRUFJQVZCQUVvYklRb2dCRUVJZEVHQS9nTnhJUXdnQUNFRUEwQWdBU0FLUmcwQklBc2dCRUVCZEdvaEVDQU1JQU1nQVNBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0lSRkJBQ0VDQTBBZ0FpQU5Ua1VFUUNBUUlBSkJBWFJxSWdZZ0VUY0FHQ0FHSUJFM0FCQWdCaUFSTndBSUlBWWdFVGNBQUNBQ1FSQnFJUUlNQVFzTElBRkJBV29oQVNBRUlBMXFJUVFNQUFzQUN5QUlRUUZxSVFnZ0JTQUhhaUVISUFVZ0RXd2dBR29oQUF3QUN3QUZJQU1nQWtFQ2RHb2lCMEZBYXlBQk5nSUFJQUpCQVdvaEFpQUhLQUlBSUFGcUlRRU1BUXNBQ3dBTElBOExJQWxCRUdva0FBdnlBZ0VHZnlNQVFTQnJJZ1VrQUNBRUtBSUFJUVlnQlVFTWFpQUNJQU1RRFNJRFFZaC9UUVJBSUFSQkJHb2hBaUFBSUFGcUlnbEJBMnNoQkVFQUlBWkJFSFpyUVI5eElRTURRQ0FGUVF4cUVBOGdBQ0FFVDNKRkJFQWdBaUFGS0FJTUlnWWdCU2dDRUNJSGRDQURka0VCZEdvaUNDMEFBU0VLSUFBZ0NDMEFBRG9BQUNBQ0lBWWdCeUFLYWlJR2RDQURka0VCZEdvaUJ5MEFBQ0VJSUFVZ0JpQUhMUUFCYWpZQ0VDQUFJQWc2QUFFZ0FFRUNhaUVBREFFTEN3TkFJQVZCREdvUUR5RUhJQVVvQWd3aEJpQUZLQUlRSVFRZ0FDQUpUeUFIY2tVRVFDQUNJQVlnQkhRZ0EzWkJBWFJxSWdZdEFBQWhCeUFGSUFRZ0JpMEFBV28yQWhBZ0FDQUhPZ0FBSUFCQkFXb2hBQXdCQ3dzRFFDQUFJQWxQUlFSQUlBSWdCaUFFZENBRGRrRUJkR29pQnkwQUFTRUlJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdCQ0FJYWlFRURBRUxDMEZzUVd3Z0FTQUZLQUlVSUFVb0FoaEhHeUFFUVNCSEd5RURDeUFGUVNCcUpBQWdBd3ZQRkFFamZ5TUFRZEFBYXlJRkpBQkJiQ0VKQWtBZ0EwRUtTUTBBQWtBZ0F5QUNMd0FFSWdjZ0FpOEFBQ0lJSUFJdkFBSWlEV3BxUVFacUlneEpEUUFnQkM4QkFpRUdJQVZCUEdvZ0FrRUdhaUlDSUFnUURTSUpRWWgvU3cwQklBVkJLR29nQWlBSWFpSUNJQTBRRFNJSlFZaC9TdzBCSUFWQkZHb2dBaUFOYWlJQ0lBY1FEU0lKUVloL1N3MEJJQVVnQWlBSGFpQURJQXhyRUEwaUNVR0lmMHNOQVNBRVFRUnFJUW9nQUNBQmFpSWZRUU5ySVNCQkFDQUdhMEVmY1NFTElBVW9BZ2doRVNBRktBSWNJUklnQlNnQ01DRVRJQVVvQWtRaEZDQUZLQUlFSVFrZ0JTZ0NHQ0VOSUFVb0Fpd2hEQ0FGS0FKQUlRWWdCU2dDRUNFaElBVW9BaVFoSWlBRktBSTRJU01nQlNnQ1RDRWtJQVVvQWdBaEZTQUZLQUlVSVJZZ0JTZ0NLQ0VYSUFVb0Fqd2hHRUVCSVE4Z0FDQUJRUU5xUVFKMklnUnFJZ01nQkdvaUFpQUVhaUlaSVFRZ0FpRUlJQU1oQndOQUlBOUJBWEZGSUFRZ0lFOXlSUVJBSUFBZ0NpQVlJQVowSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEdpQU9MUUFESVJBZ0J5QUtJQmNnREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnRGkwQUFpRWJJQTR0QUFNaER5QUlJQW9nRmlBTmRDQUxka0VDZEdvaURpOEJBRHNBQUNBT0xRQUNJUndnRGkwQUF5RWRJQVFnQ2lBVklBbDBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloSGlBT0xRQURJUTRnQUNBUWFpSWxJQW9nR0NBR0lCcHFJZ1owSUF0MlFRSjBhaUlRTHdFQU93QUFJQkF0QUFJZ0VDMEFBeUVtSUFjZ0Qyb2lKeUFLSUJjZ0RDQWJhaUlhZENBTGRrRUNkR29pQnk4QkFEc0FBQ0FITFFBQ0lRd2dCeTBBQXlFUUlBZ2dIV29pR3lBS0lCWWdEU0FjYWlJUGRDQUxka0VDZEdvaUNDOEJBRHNBQUNBSUxRQUNJUTBnQ0MwQUF5RWNJQVFnRG1vaUhTQUtJQlVnQ1NBZWFpSU9kQ0FMZGtFQ2RHb2lDUzhCQURzQUFDQUdhaUVBUVFNaEJ3Si9JQlFnSkVrRVFDQUFJUVpCQXd3QkN5QUFRUWR4SVFZZ0ZDQUFRUU4yYXlJVUtBQUFJUmhCQUFzZ0NTMEFBeUVlSUFrdEFBSWhDQ0FNSUJwcUlRQWdFeUFqU1FSL0lBQUZJQk1nQUVFRGRtc2lFeWdBQUNFWFFRQWhCeUFBUVFkeEN5RU1JQTBnRDJvaEFDQUhjaUVKUVFNaER3Si9JQklnSWtrRVFDQUFJUTFCQXd3QkN5QUFRUWR4SVEwZ0VpQUFRUU4yYXlJU0tBQUFJUlpCQUFzZ0NDQU9haUVBSUFseUlCRWdJVWtFZnlBQUJTQVJJQUJCQTNackloRW9BQUFoRlVFQUlROGdBRUVIY1FzaENTQWxJQ1pxSVFBZ0VDQW5haUVISUJzZ0hHb2hDQ0FkSUI1cUlRUWdEM0pGSVE4TUFRc0xJQVVnRERZQ0xDQUZJQVkyQWtBZ0JTQU5OZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFJZ0Iwa2dBQ0FEUzNJTkFFRnNJUWtnQ0NBWlN3MEJJQU5CQTJzaENRTkFJQVZCUEdvUUQwVWdBQ0FKU1hFRVFDQUFJQW9nQlNnQ1BDSU5JQVVvQWtBaURIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0FDQU9MUUFEYWlJR0lBb2dEU0FNSUE0dEFBSnFJZ0IwSUF0MlFRSjBhaUlNTHdFQU93QUFJQVVnQUNBTUxRQUNhallDUUNBR0lBd3RBQU5xSVFBTUFRVWdBMEVDYXlFTUEwQWdCVUU4YWhBUElRWWdCU2dDUENFTklBVW9Ba0FoQ1NBQUlBeExJQVp5UlFSQUlBQWdDaUFOSUFsMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0NTQUdMUUFDYWpZQ1FDQUFJQVl0QUFOcUlRQU1BUXNMQTBBZ0FDQU1TMFVFUUNBQUlBb2dEU0FKZENBTGRrRUNkR29pQmk4QkFEc0FBQ0FBSUFZdEFBTnFJUUFnQ1NBR0xRQUNhaUVKREFFTEN3SkFJQUFnQTA4TkFDQUFJQW9nRFNBSmRDQUxkaUlBUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUpJQU10QUFKcUlRa01BUXNnQ1VFZlN3MEFRU0FnQ1NBS0lBQkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRa0xJQUpCQTJzaERBTkFJQVZCS0dvUUQwVWdCeUFNU1hFRVFDQUhJQW9nQlNnQ0tDSUdJQVVvQWl3aUFIUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0J5QU5MUUFEYWlJRElBb2dCaUFBSUEwdEFBSnFJZ0IwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQUNBR0xRQUNhallDTENBRElBWXRBQU5xSVFjTUFRVWdBa0VDYXlFR0EwQWdCVUVvYWhBUElRTWdCU2dDS0NFTUlBVW9BaXdoQUNBR0lBZEpJQU55UlFSQUlBY2dDaUFNSUFCMElBdDJRUUowYWlJREx3RUFPd0FBSUFVZ0FDQURMUUFDYWpZQ0xDQUhJQU10QUFOcUlRY01BUXNMQTBBZ0JpQUhTVVVFUUNBSElBb2dEQ0FBZENBTGRrRUNkR29pQXk4QkFEc0FBQ0FISUFNdEFBTnFJUWNnQUNBRExRQUNhaUVBREFFTEN3SkFJQUlnQjAwTkFDQUhJQW9nRENBQWRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUFJQU10QUFKcUlRQU1BUXNnQUVFZlN3MEFRU0FnQUNBS0lBSkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRQUxJQmxCQTJzaERBTkFJQVZCRkdvUUQwVWdDQ0FNU1hFRVFDQUlJQW9nQlNnQ0ZDSUdJQVVvQWhnaUFuUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0NDQU5MUUFEYWlJRElBb2dCaUFDSUEwdEFBSnFJZ0owSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQWlBR0xRQUNhallDR0NBRElBWXRBQU5xSVFnTUFRVWdHVUVDYXlFREEwQWdCVUVVYWhBUElRSWdCU2dDRkNFR0lBVW9BaGdoQnlBRElBaEpJQUp5UlFSQUlBZ2dDaUFHSUFkMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFVZ0J5QUNMUUFDYWpZQ0dDQUlJQUl0QUFOcUlRZ01BUXNMQTBBZ0F5QUlTVVVFUUNBSUlBb2dCaUFIZENBTGRrRUNkR29pQWk4QkFEc0FBQ0FJSUFJdEFBTnFJUWdnQnlBQ0xRQUNhaUVIREFFTEN3SkFJQWdnR1U4TkFDQUlJQW9nQmlBSGRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUhJQU10QUFKcUlRY01BUXNnQjBFZlN3MEFRU0FnQnlBS0lBSkJBblJxTFFBQ2FpSUNJQUpCSUU4YklRY0xBMEFnQlJBUFJTQUVJQ0JKY1FSQUlBUWdDaUFGS0FJQUlnWWdCU2dDQkNJQ2RDQUxka0VDZEdvaURDOEJBRHNBQUNBRUlBd3RBQU5xSWdNZ0NpQUdJQUlnREMwQUFtb2lBblFnQzNaQkFuUnFJZ1F2QVFBN0FBQWdCU0FDSUFRdEFBSnFOZ0lFSUFNZ0JDMEFBMm9oQkF3QkJTQWZRUUpySVFNRFFDQUZFQThoQWlBRktBSUFJUVlnQlNnQ0JDRUlJQU1nQkVrZ0FuSkZCRUFnQkNBS0lBWWdDSFFnQzNaQkFuUnFJZ0l2QVFBN0FBQWdCU0FJSUFJdEFBSnFOZ0lFSUFRZ0FpMEFBMm9oQkF3QkN3c0RRQ0FESUFSSlJRUkFJQVFnQ2lBR0lBaDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBUWdBaTBBQTJvaEJDQUlJQUl0QUFKcUlRZ01BUXNMQWtBZ0JDQWZUdzBBSUFRZ0NpQUdJQWgwSUF0MklnSkJBblJxSWdNdEFBQTZBQUFnQXkwQUEwRUJSZ1JBSUFnZ0F5MEFBbW9oQ0F3QkN5QUlRUjlMRFFCQklDQUlJQW9nQWtFQ2RHb3RBQUpxSWdJZ0FrRWdUeHNoQ0F0QmJFRnNRV3hCYkVGc1FXeEJiRUZzSUFFZ0NFRWdSeHNnQlNnQ0NDQUZLQUlNUnhzZ0IwRWdSeHNnQlNnQ0hDQUZLQUlnUnhzZ0FFRWdSeHNnQlNnQ01DQUZLQUkwUnhzZ0NVRWdSeHNnQlNnQ1JDQUZLQUpJUnhzaENRd0pDd0FMQUFzQUN3QUxBQXNBQ3dBTEFBdEJiQ0VKQ3lBRlFkQUFhaVFBSUFrTDdCQUJIbjhqQUVIUUFHc2lCU1FBUVd3aENRSkFJQU5CQ2trTkFBSkFJQU1nQWk4QUJDSUdJQUl2QUFBaUJ5QUNMd0FDSWdocWFrRUdhaUlPU1EwQUlBUXZBUUloRHlBRlFUeHFJQUpCQm1vaUFpQUhFQTBpQ1VHSWYwc05BU0FGUVNocUlBSWdCMm9pQWlBSUVBMGlDVUdJZjBzTkFTQUZRUlJxSUFJZ0NHb2lBaUFHRUEwaUNVR0lmMHNOQVNBRklBSWdCbW9nQXlBT2F4QU5JZ2xCaUg5TERRRWdCRUVFYWlFS0lBQWdBV29pSEVFRGF5RWRRUUFnRDJ0QkgzRWhDeUFGS0FJSUlSRWdCU2dDSENFU0lBVW9BakFoRXlBRktBSkVJUlFnQlNnQ0JDRUpJQVVvQWhnaEJpQUZLQUlzSVFjZ0JTZ0NRQ0VJSUFVb0FoQWhIaUFGS0FJa0lSOGdCU2dDT0NFZ0lBVW9Ba3doSVNBRktBSUFJUlVnQlNnQ0ZDRVdJQVVvQWlnaEZ5QUZLQUk4SVJoQkFTRU5JQUFnQVVFRGFrRUNkaUlDYWlJT0lBSnFJZzhnQW1vaUdTRUVJQThoQWlBT0lRTURRQ0FOUlNBRUlCMVBja1VFUUNBS0lCZ2dDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBQWdDaUFYSUFkMElBdDJRUUYwYWlJTUxRQUJJUkFnQXlBTUxRQUFPZ0FBSUFvZ0ZpQUdkQ0FMZGtFQmRHb2lEQzBBQVNFYUlBSWdEQzBBQURvQUFDQUtJQlVnQ1hRZ0MzWkJBWFJxSWd3dEFBRWhHeUFFSUF3dEFBQTZBQUFnQ2lBWUlBZ2dEV29pQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUVnQ2lBWElBY2dFR29pQjNRZ0MzWkJBWFJxSWd3dEFBRWhFQ0FESUF3dEFBQTZBQUVnQ2lBV0lBWWdHbW9pREhRZ0MzWkJBWFJxSWdZdEFBRWhHaUFDSUFZdEFBQTZBQUVnQ2lBVklBa2dHMm9pRzNRZ0MzWkJBWFJxSWdrdEFBRWhJaUFFSUFrdEFBQTZBQUVnQ0NBTmFpRUdRUU1oQ1FKL0lCUWdJVWtFUUVFRElRMGdCZ3dCQ3lBVUlBWkJBM1pySWhRb0FBQWhHRUVBSVEwZ0JrRUhjUXNoQ0NBSElCQnFJUVlnRXlBZ1NRUi9JQVlGSUJNZ0JrRURkbXNpRXlnQUFDRVhRUUFoQ1NBR1FRZHhDeUVISUF3Z0dtb2hEQ0FKSUExeUlSQkJBeUVOQW44Z0VpQWZTUVJBSUF3aEJrRUREQUVMSUF4QkIzRWhCaUFTSUF4QkEzWnJJaElvQUFBaEZrRUFDeUFiSUNKcUlRd2dFSEloRUNBUklCNUpCSDhnREFVZ0VTQU1RUU4yYXlJUktBQUFJUlZCQUNFTklBeEJCM0VMSVFrZ0JFRUNhaUVFSUFKQkFtb2hBaUFEUVFKcUlRTWdBRUVDYWlFQUlBMGdFSEpGSVEwTUFRc0xJQVVnQnpZQ0xDQUZJQWcyQWtBZ0JTQUdOZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFBZ0Rrc2dBeUFQUzNJTkFFRnNJUWtnQWlBWlN3MEJJQTVCQTJzaENRTkFJQVZCUEdvUUR5QUFJQWxQY2tVRVFDQUtJQVVvQWp3aUJpQUZLQUpBSWdkMElBdDJRUUYwYWlJSUxRQUJJUXdnQUNBSUxRQUFPZ0FBSUFvZ0JpQUhJQXhxSWdaMElBdDJRUUYwYWlJSExRQUFJUWdnQlNBR0lBY3RBQUZxTmdKQUlBQWdDRG9BQVNBQVFRSnFJUUFNQVFzTEEwQWdCVUU4YWhBUElRY2dCU2dDUENFR0lBVW9Ba0FoQ1NBQUlBNVBJQWR5UlFSQUlBb2dCaUFKZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQ1NBR0xRQUJhallDUUNBQUlBYzZBQUFnQUVFQmFpRUFEQUVMQ3dOQUlBQWdEazlGQkVBZ0NpQUdJQWwwSUF0MlFRRjBhaUlITFFBQklBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0NXb2hDUXdCQ3dzZ0QwRURheUVBQTBBZ0JVRW9haEFQSUFBZ0EwMXlSUVJBSUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQURJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaXdnQXlBSU9nQUJJQU5CQW1vaEF3d0JDd3NEUUNBRlFTaHFFQThoQnlBRktBSW9JUVlnQlNnQ0xDRUFJQU1nRDA4Z0IzSkZCRUFnQ2lBR0lBQjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQUFJQVl0QUFGcU5nSXNJQU1nQnpvQUFDQURRUUZxSVFNTUFRc0xBMEFnQXlBUFQwVUVRQ0FLSUFZZ0FIUWdDM1pCQVhScUlnY3RBQUVoQ0NBRElBY3RBQUE2QUFBZ0EwRUJhaUVESUFBZ0NHb2hBQXdCQ3dzZ0dVRURheUVEQTBBZ0JVRVVhaEFQSUFJZ0EwOXlSUVJBSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQUNJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaGdnQWlBSU9nQUJJQUpCQW1vaEFnd0JDd3NEUUNBRlFSUnFFQThoQnlBRktBSVVJUVlnQlNnQ0dDRURJQUlnR1U4Z0IzSkZCRUFnQ2lBR0lBTjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQURJQVl0QUFGcU5nSVlJQUlnQnpvQUFDQUNRUUZxSVFJTUFRc0xBMEFnQWlBWlQwVUVRQ0FLSUFZZ0EzUWdDM1pCQVhScUlnY3RBQUVoQ0NBQ0lBY3RBQUE2QUFBZ0FrRUJhaUVDSUFNZ0NHb2hBd3dCQ3dzRFFDQUZFQThnQkNBZFQzSkZCRUFnQ2lBRktBSUFJZ0lnQlNnQ0JDSUdkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUtJQUlnQmlBSWFpSUNkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdBaUFHTFFBQmFqWUNCQ0FFSUFjNkFBRWdCRUVDYWlFRURBRUxDd05BSUFVUUR5RUhJQVVvQWdBaEJpQUZLQUlFSVFJZ0JDQWNUeUFIY2tVRVFDQUtJQVlnQW5RZ0MzWkJBWFJxSWdZdEFBQWhCeUFGSUFJZ0JpMEFBV28yQWdRZ0JDQUhPZ0FBSUFSQkFXb2hCQXdCQ3dzRFFDQUVJQnhQUlFSQUlBb2dCaUFDZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FFUVFGcUlRUWdBaUFJYWlFQ0RBRUxDMEZzUVd4QmJFRnNRV3hCYkVGc1FXd2dBU0FDUVNCSEd5QUZLQUlJSUFVb0FneEhHeUFEUVNCSEd5QUZLQUljSUFVb0FpQkhHeUFBUVNCSEd5QUZLQUl3SUFVb0FqUkhHeUFKUVNCSEd5QUZLQUpFSUFVb0FraEhHeUVKREFFTFFXd2hDUXNnQlVIUUFHb2tBQ0FKQzFnQkEzOENRQ0FBS0FLUTZ3RWlBVVVOQUNBQktBSUFJQUZCdE5VQmFpZ0NBQ0lDSUFGQnVOVUJhaWdDQUNJREVCTWdBZ1JBSUFNZ0FTQUNFUUlBREFFTElBRVFCZ3NnQUVFQU5nS2c2d0VnQUVJQU53T1E2d0VMNlFNQ0JIOENmaUFBUVFCQktCQURJUVFnQWtFQlFRVWdBeHNpQUVrRVFDQUFEd3NnQVVVRVFFRi9Ed3RCQVNFR0FrQUNRQ0FEUVFGR0RRQWdBeUVHSUFFb0FBQWlCVUdvNnI1cFJnMEFRWFloQXlBRlFYQnhRZERVdE1JQlJ3MEJRUWdoQXlBQ1FRaEpEUUVnQVRVQUJDRUlJQVJCQVRZQ0ZDQUVJQWczQXdCQkFBOExJQUVnQWlBR0VCb2lBeUFDU3cwQUlBUWdBellDR0VGeUlRTWdBQ0FCYWlJRlFRRnJMUUFBSWdKQkNIRU5BQ0FDUVNCeElnWkZCRUJCY0NFRElBVXRBQUFpQlVHbkFVc05BU0FGUVFkeHJVSUJJQVZCQTNaQkNtcXRoaUlJUWdPSWZpQUlmQ0VKSUFCQkFXb2hBQXNnQWtFR2RpRUZJQUpCQW5aQkFDRURBa0FDUUFKQUFrQWdBa0VEY1VFQmF3NERBQUVDQXdzZ0FDQUJhaTBBQUNFRElBQkJBV29oQUF3Q0N5QUFJQUZxTHdBQUlRTWdBRUVDYWlFQURBRUxJQUFnQVdvb0FBQWhBeUFBUVFScUlRQUxRUUZ4SVFJQ2ZnSkFBa0FDUUFKQUlBVkJBV3NPQXdFQ0F3QUxRbjhnQmtVTkF4b2dBQ0FCYWpFQUFBd0RDeUFBSUFGcU13QUFRb0FDZkF3Q0N5QUFJQUZxTlFBQURBRUxJQUFnQVdvcEFBQUxJUWdnQkNBQ05nSWdJQVFnQXpZQ0hDQUVJQWczQXdCQkFDRURJQVJCQURZQ0ZDQUVJQWdnQ1NBR0d5SUlOd01JSUFSQ2dJQUlJQWdnQ0VLQWdBaGFHejRDRUFzZ0F3dGZBUUYvUWJoL0lRTWdBVUVCUVFVZ0Foc2lBazhFZnlBQUlBSnFRUUZyTFFBQUlnQkJBM0ZCQW5SQm9CNXFLQUlBSUFKcUlBQkJCSFpCREhGQnNCNXFLQUlBYWlBQVFTQnhJZ0ZGYWlBQlFRVjJJQUJCd0FCSmNXb0ZRYmgvQ3dzTUFDQUFJQUVnQWtFQUVCa0xsd01DQlg4Q2ZpTUFRVUJxSWdRa0FBSkFBMEFnQVVFRlR3UkFBa0FnQUNnQUFFRndjVUhRMUxUQ0FVWUVRRUorSVFjZ0FVRUlTUTBFSUFBb0FBUWlBa0YzU3cwRUlBSkJDR29pQXlBQlN3MEVJQUpCZ1g5SkRRRU1CQXNnQkVFWWFpQUFJQUVRR3lFQ1FuNGdCQ2tER0VJQUlBUW9BaXhCQVVjYklBSWJJZ2RDZlZZTkF5QUhJQWg4SWdnZ0IxUkNmaUVIRFFNQ1FBSkFJQUZCQ0VrTkFDQUFLQUFBUVhCeFFkRFV0TUlCUncwQUlBQW9BQVFpQWtGM1N3MEZRYmgvSUFKQkNHb2lBaUFCSUFKSkd5RUREQUVMSUFSQkdHb2dBQ0FCRUJzaUFrR0lmMHNFUUNBQ0lRTU1BUXRCdUg4aEF5QUNEUUFnQVNBRUtBSXdJZ0pySVFVZ0FDQUNhaUVHQTBBZ0JpQUZJQVJCREdvUUhTSURRWWgvU3cwQklBTkJBMm9pQWlBRlN3UkFRYmgvSVFNTUFnc2dCU0FDYXlFRklBSWdCbW9oQmlBRUtBSVFSUTBBQ3lBRUtBSTRCSDlCdUg4aEF5QUZRUVJKRFFFZ0JrRUVhZ1VnQmdzZ0FHc2hBd3NnQTBHSWYwc05Bd3NnQVNBRGF5RUJJQUFnQTJvaEFBd0JDd3RDZmlBSUlBRWJJUWNMSUFSQlFHc2tBQ0FIQzJRQkFYOUJ1SDhoQXdKQUlBRkJBMGtOQUNBQUxRQUNJUUVnQWlBQUx3QUFJZ0JCQVhFMkFnUWdBaUFBUVFGMlFRTnhJZ00yQWdBZ0FpQUFJQUZCRUhSeVFRTjJJZ0EyQWdnQ1FBSkFJQU5CQVdzT0F3SUJBQUVMUVd3UEN5QUFJUU1MSUFNTFJBRUNmeUFCSUFJb0FnUWlBeUFCS0FJRWFpSUVOZ0lFSUFBZ0EwRUNkRUdnSFdvb0FnQWdBU2dDQUVFQUlBUnJkbkUyQWdBZ0FSQVBHaUFBSUFKQkNHbzJBZ1FMemdFQkJuOUJ1bjhoQ2dKQUlBSW9BZ1FpQ0NBQ0tBSUFJZ2xxSWcwZ0FTQUFhMHNOQUVGc0lRb2dDU0FFSUFNb0FnQWlDMnRMRFFBZ0FDQUphaUlFSUFJb0FnZ2lER3NoQWlBQUlBRkJJR3NpQUNBTElBbEJBQkFnSUFNZ0NTQUxhallDQUFKQUFrQWdCQ0FGYXlBTVR3UkFJQUloQlF3QkN5QU1JQVFnQm10TERRSWdCeUFISUFJZ0JXc2lBbW9pQVNBSWFrOEVRQ0FFSUFFZ0NCQUtHZ3dDQ3lBQ0lBaHFJUWdnQkNBQlFRQWdBbXNRQ2lBQ2F5RUVDeUFFSUFBZ0JTQUlRUUVRSUFzZ0RTRUtDeUFLQzhjRUFRSi9JQUFnQTJvaEJnSkFJQU5CQjB3RVFBTkFJQUFnQms4TkFpQUFJQUl0QUFBNkFBQWdBRUVCYWlFQUlBSkJBV29oQWd3QUN3QUxJQVJCQVVZRVFBSkFJQUFnQW1zaUJVRUhUUVJBSUFBZ0FpMEFBRG9BQUNBQUlBSXRBQUU2QUFFZ0FDQUNMUUFDT2dBQ0lBQWdBaTBBQXpvQUF5QUFJQUlnQlVFQ2RDSUZRY0FlYWlnQ0FHb2lBaWdBQURZQUJDQUNJQVZCNEI1cUtBSUFheUVDREFFTElBQWdBaWtBQURjQUFBc2dBa0VJYWlFQ0lBQkJDR29oQUFzZ0FTQUdUd1JBSUFBZ0Eyb2hBU0FFUVFGSElBQWdBbXRCRDBweVJRUkFBMEFnQUNBQ0tRQUFOd0FBSUFKQkNHb2hBaUFBUVFocUlnQWdBVWtOQUF3REN3QUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQTBFUlNRMEJJQUJCRUdvaEFBTkFJQUFnQWlrQUVEY0FBQ0FBSUFJcEFCZzNBQWdnQUNBQ0tRQWdOd0FRSUFBZ0Fpa0FLRGNBR0NBQ1FTQnFJUUlnQUVFZ2FpSUFJQUZKRFFBTERBRUxBa0FnQUNBQlN3UkFJQUFoQVF3QkN5QUJJQUJySVFVQ1FDQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUlBSWhBd05BSUFBZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQUVFSWFpSUFJQUZKRFFBTERBRUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQlVFUlNBMEFJQUJCRUdvaEFDQUNJUU1EUUNBQUlBTXBBQkEzQUFBZ0FDQURLUUFZTndBSUlBQWdBeWtBSURjQUVDQUFJQU1wQUNnM0FCZ2dBMEVnYWlFRElBQkJJR29pQUNBQlNRMEFDd3NnQWlBRmFpRUNDd05BSUFFZ0JrOE5BU0FCSUFJdEFBQTZBQUFnQVVFQmFpRUJJQUpCQVdvaEFnd0FDd0FMQzY0SEFnVi9BWDRqQUVHQUFXc2lFU1FBSUJFZ0F6WUNmRUYvSVE4Q1FBSkFBa0FDUUFKQUlBSU9CQUVBQXdJRUN5QUdSUVJBUWJoL0lROE1CQXRCYkNFUElBVXRBQUFpQWlBRFN3MERJQWdnQWtFQ2RDSUNhaWdDQUNFRElBSWdCMm9vQWdBaEFpQUFRUUE2QUFzZ0FFSUFOd0lBSUFBZ0FqWUNEQ0FBSUFNNkFBb2dBRUVBT3dFSUlBRWdBRFlDQUVFQklROE1Bd3NnQVNBSk5nSUFRUUFoRHd3Q0N5QUtSUVJBUVd3aER3d0NDMEVBSVE4Z0MwVWdERUVaU0hJTkFVRUlJQVIwUVFocUlRQkJBQ0VEQTBBZ0FDQURUUTBDSUFOQlFHc2hBd3dBQ3dBTFFXd2hEeUFSSUJGQi9BQnFJQkZCK0FCcUlBVWdCaEFNSWdOQmlIOUxEUUFnRVNnQ2VDSUNJQVJMRFFBZ0VTZ0NmRUVCYWlFSklBQkJDR29oQzBHQWdBSWdBblJCRUhVaEJVRUJJUkJCQVNBQ2RDSVBRUUZySWdvaEVnTkFJQWtnRGtjRVFBSkFJQkVnRGtFQmRDSUVhaThCQUNJTVFmLy9BMFlFUUNBTElCSkJBM1JxSUE0MkFnUWdFa0VCYXlFU1FRRWhEQXdCQ3lBUVFRQWdCU0FNd1VvYklSQUxJQVFnRFdvZ0REc0JBQ0FPUVFGcUlRNE1BUXNMSUFBZ0FqWUNCQ0FBSUJBMkFnQUNRQ0FLSUJKR0JFQWdEVUhxQUdvaEJrRUFJUkJCQUNFTUEwQWdDU0FRUmdSQUlBOUJBM1lnRDBFQmRtcEJBMm9pQlVFQmRDRUVRUUFoREVFQUlSSURRRUVBSVE0Z0R5QVNUUTBFQTBBZ0RrRUNSd1JBSUFzZ0JTQU9iQ0FNYWlBS2NVRURkR29nQmlBT0lCSnFhaTBBQURZQ0JDQU9RUUZxSVE0TUFRc0xJQkpCQW1vaEVpQUVJQXhxSUFweElRd01BQXNBQlNBUklCQkJBWFJxTGdFQUlRVWdCaUFNYWlJRUlCTTNBQUJCQ0NFT0EwQWdCU0FPU2dSQUlBUWdEbW9nRXpjQUFDQU9RUWhxSVE0TUFRc0xJQk5DZ1lLRWlKQ2d3SUFCZkNFVElCQkJBV29oRUNBRklBeHFJUXdNQVFzQUN3QUxJQTlCQTNZZ0QwRUJkbXBCQTJvaEJVRUFJUkJCQUNFT0EwQWdDU0FRUmcwQlFRQWhEQ0FSSUJCQkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FNUndSQUlBc2dEa0VEZEdvZ0VEWUNCQU5BSUFVZ0Rtb2dDbkVpRGlBU1N3MEFDeUFNUVFGcUlRd01BUXNMSUJCQkFXb2hFQXdBQ3dBTElBSkJBV29oQlVFQUlRd0RRQ0FNSUE5SEJFQWdEU0FMSUF4QkEzUnFJZ2tvQWdRaUJFRUJkR29pQWlBQ0x3RUFJZ1pCQVdvN0FRQWdDU0FGSUFablFXQnphaUlDT2dBRElBa2dCaUFDZENBUGF6c0JBQ0FKSUFnZ0JFRUNkQ0lDYWlnQ0FEb0FBaUFKSUFJZ0Iyb29BZ0EyQWdRZ0RFRUJhaUVNREFFTEN5QUJJQUEyQWdBZ0F5RVBDeUFSUVlBQmFpUUFJQThMN1ZvQ08zOEdmaU1BUWVBQmF5SUVKQUFDUUVHdzdBa1FCU0lGUlFSQVFVQWhCd3dCQ3lBRlFnQTNBdlRxQVNBRlFRQTJBc1RyQVNBRlFRQTJBclRyQVNBRlFnQTNBcHpyQVNBRlFRQTJBcmpwQVNBRlFRQTJBcXpzQ1NBRlFnQTNBdFRyQVNBRlFnQTNBcXpyQVNBRlFnQTNBNGpyQVNBRlFnQTNBdVRxQVNBRlFnQTNBdVRyQVNBRlFZR0FnTUFBTmdLODZ3RWdCVUlBTndLazZ3RWdCVUg4NmdGcVFRQTJBZ0FnQlVHUTZ3RnFRZ0EzQXdBZ0JSQVlJQVZCck5VQmFpRVVJQVZCK09zQmFpRWNJQVZCc09vQmFpRWlJQVZCb0RCcUlTb2dCVUdZSUdvaEt5QUZRYWpRQUdvaEhpQUZRUkJxSVN3Z0JVRUlhaUVvSUFWQkJHb2hMU0FGUWNEcEFXb2hLU0FGUVlqckFXb2dCRUdVQVdvaEx5QUVRWXdCYWlFd0lBUkJoQUZxSVRFZ0JFSGNBR29oTWlBRVFkUUFhaUV6SUFSQnpBQnFJVFFnQUNFZEFrQUNRQUpBQWtBQ1FBTkFRUUZCQlNBRktBTGs2Z0ViSVFZQ1FBTkFJQU1nQmtrTkFTQUNLQUFBUVhCeFFkRFV0TUlCUmdSQVFiaC9JUWNnQTBFSVNRMElJQUlvQUFRaURrRjNTd1JBUVhJaEJ3d0pDeUFESUE1QkNHb2lDVWtOQ0NBT1FZQi9Td1JBSUFraEJ3d0pDeUFESUFscklRTWdBaUFKYWlFQ0RBRUxDeUFGUWdBM0FxenBBU0FGUWdBM0EranBBU0FGUVFBMkFwanJBU0FGUWdBM0E0RHFBU0FGUWdNM0EvanBBU0FGUWJUcEFXcENBRGNDQUNBRlFmRHBBV3BDQURjREFDQUZRYWpRQUdvaUNVR01nSURnQURZQ0FDQUZRYXpRQVdwQjRCSXBBZ0EzQWdBZ0JVRzAwQUZxUWVnU0tBSUFOZ0lBSUFVZ0JVRVFhallDQUNBRklBVkJvREJxTmdJRUlBVWdCVUdZSUdvMkFnZ2dCU0FKTmdJTUlBVkJBVUVGSUFVb0F1VHFBUnMyQXJ6cEFRSkFJQUZGRFFBZ0JTZ0NyT2tCSWdrZ0hVWU5BQ0FGSUFrMkFyanBBU0FGSUIwMkFxenBBU0FGS0FLdzZRRWhEaUFGSUIwMkFyRHBBU0FGSUIwZ0RpQUphMm8yQXJUcEFRdEJ1SDhoQ1NBRFFRVkJDU0FGS0FMazZnRWlCaHRKRFFVZ0FrRUJRUVVnQmhzZ0JoQWFJZzVCaUg5TEJFQWdEaUVKREFVTElBTWdEa0VEYWtrTkJTQXBJQUlnRGlBR0VCa2lCa0dJZjBzRVFDQUdJUWtNQlFzZ0JnMEZBa0FDUUNBRktBS282d0ZCQVVjTkFDQUZLQUtrNndFaUNVVU5BQ0FGS0FLVTZ3RkZEUUFnQ1NnQ0JFRUJheUlISUFVb0F0enBBU0lLclVLSGxhK3ZtTGJlbTU1L2ZrTEp6OW15OGVXNjZpZUZRaGVKUXMvVzA3N1N4NnZaUW41QytmUGQ4Wm4ybWFzV2ZDSS9RaUdJSUQrRlFzL1cwNzdTeDZ2WlFuNGlQMElkaUNBL2hVTDU4OTN4bWZhWnF4WitJajlDSUlnZ1A0V25jU0VHSUFrb0FnQWhGUU5BUVFBaENBSkFJQlVnQmtFQ2RHb29BZ0FpQ1VVTkFDQUpLQUlJUVFoSkRRQWdDU2dDQkNJU0tBQUFRYmZJd3VGK1J3MEFJQklvQUFRaENBc2dDQ0FLUndSQUlBWWdCM0ZCQVdvaEJpQUlEUUVMQ3lBSlJRMEFJQVVRR0NBRlFYODJBcURyQVNBRklBazJBcFRyQVNBRklBVW9BdHpwQVNJSU5nS1k2d0VNQVFzZ0JTZ0MzT2tCSVFnTEFrQWdDRVVOQUNBRktBS1k2d0VnQ0VZTkFFRmdJUWtNQmdzQ1FDQUZLQUxnNlFFRVFDQUZJQVVvQXVqcUFTSUpSVFlDN09vQklBa05BU0FGUXZucTBORG55YUhrNFFBM0E2anFBU0FGUWdBM0E2RHFBU0FGUXMvVzA3N1N4NnZaUWpjRG1Pb0JJQVZDMXV1Qzd1cjlpZlhnQURjRGtPb0JJQVZDQURjRGlPb0JJQ0pCQUVFb0VBTWFEQUVMSUFWQkFEWUM3T29CQ3lBQklCMXFJU1VnQlNBRktRUG82UUVnRHExOE53UG82UUVnQXlBT2F5RURJQUlnRG1vaEFpQWRJUTREUUNBQ0lBTWdCRUVzYWhBZEloVkJpSDlMQkVBZ0ZTRUpEQVlMSUFOQkEyc2lOU0FWU1EwRUlBSkJBMm9oRzBGc0lRa0NRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBRUtBSXNEZ01DQVFBVkN5QVZRZi8vQjBzTkV5QVZRUU5KRFJJZ0JTa0R5T2tCSVQ4Q1FBSkFJQnN0QUFBaUNVRURjU0lhUVFGckRnTUdBUUFIQ3lBRktBS0E2Z0VOQUVGaUlRa01GUXNnRlVFRlNRMFNJQnNvQUFBaEF3Si9Ba0FDUUFKQUlBbEJBblpCQTNFaUNVRUNhdzRDQVFJQUN5QUpRUUJISVFjZ0EwRUVka0gvQjNFaEMwRURJUVlnQTBFT2RrSC9CM0VNQWd0QkJDRUdJQU5CQkhaQi8vOEFjU0VMUVFFaEJ5QURRUkoyREFFTElBTkJCSFpCLy84UGNTSUxRWUNBQ0VzTkUwRUJJUWRCQlNFR0lBSXRBQWRCQ25RZ0EwRVdkbklMSWdnZ0Jtb2lDU0FWU3cwU0FrQWdDMEdCQmtrTkFDQUZLQUtjNndGRkRRQkJBQ0VEQTBBZ0EwR0RnQUZMRFFFZ0EwRkFheUVEREFBTEFBc2dCaUFiYWlFUElCcEJBMGNOQmlBRktBSU1JZ0l0QUFGQkNIUWhBeUFIRFFjZ0EwVU5DQ0FFUWZBQWFpQVBJQWdRRFNJRFFZaC9TdzBKSUFKQkJHb2hCaUFMSUJ4cUloSkJBMnNoQ2tFQUlBSXZBUUpyUVI5eElRY2dIQ0VEQTBBZ0JFSHdBR29RRDBVZ0F5QUtTWEVFUUNBRElBWWdCQ2dDY0NJSUlBUW9BblFpRDNRZ0IzWkJBblJxSWdJdkFRQTdBQUFnQXlBQ0xRQURhaUlESUFZZ0NDQVBJQUl0QUFKcUlnaDBJQWQyUVFKMGFpSUNMd0VBT3dBQUlBUWdDQ0FDTFFBQ2FqWUNkQ0FESUFJdEFBTnFJUU1NQVFVZ0VrRUNheUVJQTBBZ0JFSHdBR29RRHlFUElBUW9BbkFoQ2lBRUtBSjBJUUlnQXlBSVN5QVBja1VFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pQ2k4QkFEc0FBQ0FFSUFJZ0NpMEFBbW8yQW5RZ0F5QUtMUUFEYWlFRERBRUxDd05BSUFNZ0NFMEVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lEeThCQURzQUFDQURJQTh0QUFOcUlRTWdBaUFQTFFBQ2FpRUNEQUVMQ3dKQUlBTWdFazhOQUNBRElBWWdDaUFDZENBSGRrRUNkR29pQXkwQUFEb0FBQ0FETFFBRFFRRkdCRUFnQWlBRExRQUNhaUVDREFFTElBSkJIMHNOQUVFZ0lBSWdBeTBBQW1vaUFpQUNRU0JQR3lFQ0MwRnNRV3dnQ3lBRUtBSjRJQVFvQW54SEd5QUNRU0JIR3lFRERBc0xBQXNBQ3lBRUtBSTBJZ0lnSlNBT2Ewc05DaUFPUlFSQVFRQWhDU0FDRFFJTURnc2dEaUFiTFFBQUlBSVFBeG9nQWlFSkRBd0xJQlVnSlNBT2Ewc05DU0FPRFFGQkFDRUpJQlZGRFF3TFFiWi9JUWtNRVFzZ0RpQWJJQlVRQWhvZ0ZTRUpEQW9MSUJ3Z0d3Si9Ba0FDUUFKQUlBbEJBblpCQTNGQkFXc09Bd0VBQWdBTElBbEJBM1loQTBFQkRBSUxJQnN2QUFCQkJIWWhBMEVDREFFTElCVkJCRWtORGlBQ0x3QURJQUl0QUFWQkVIUnlJZ0pCajRDQUFVc05EaUFDUVFSMklRTkJBd3NpQW1vdEFBQWdBMEVnYWhBRElRa2dCU0FETmdLQTZ3RWdCU0FKTmdMdzZnRWdBa0VCYWlFSkRBVUxJQlVDZndKQUFrQUNRQ0FKUVFKMlFRTnhRUUZyRGdNQkFBSUFDeUFKUVFOMklRTkJBUXdDQ3lBYkx3QUFRUVIySVFOQkFnd0JDeUFDTHdBRElBSXRBQVZCRUhSeVFRUjJJUU5CQXdzaUFpQURhaUlKUVNCcVNRUkFJQWtnRlVzTkRTQWNJQUlnRzJvZ0F4QUNJUUlnQlNBRE5nS0E2d0VnQlNBQ05nTHc2Z0VnQWlBRGFpSUNRZ0EzQUJnZ0FrSUFOd0FRSUFKQ0FEY0FDQ0FDUWdBM0FBQU1CUXNnQlNBRE5nS0E2d0VnQlNBQ0lCdHFOZ0x3NmdFTUJBc2dCMFVFUUNBZUlBOGdDQ0FVRUJRaUFrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGU0VEREFNTElBdEZJQWhGY2cwTElBdEJDSFlpQXlBSUlBdEpCSDhnQ0VFRWRDQUxiZ1ZCRHd0QkdHd2lBa0dNQ0dvb0FnQnNJQUpCaUFocUtBSUFhaUlHUVFOMklBWnFJQUpCZ0FocUtBSUFJQUpCaEFocUtBSUFJQU5zYWtrRVFDTUFRUkJySWhBa0FDQWVLQUlBSVFNZ0ZFSHdCR3BCQUVIc0FCQURJUVpCVkNFQ0FrQWdBMEgvQVhFaURFRU1TdzBBQWtBZ0ZFSGNDV29nQmlBUVFRaHFJQkJCREdvZ0R5QUlJQlJCM0F0cUloY1FDeUlTUVloL1N3MEFJQkFvQWd3aUJpQU1TdzBCSUJSQnFBVnFJUTBnRkVHa0JXb2hOaUFlUVFScUlSRWdBMEdBZ0lCNGNTRTNJQVpCQVdvaUV5RUNJQVloQXdOQUlBSWlCMEVCYXlFQ0lBTWlDa0VCYXlFRElCUWdDa0VDZEdvb0F2QUVSUTBBQzBFQklBY2dCMEVCVFJzaEZrRUFJUWRCQVNFQ0EwQWdBaUFXUndSQUlCUWdBa0VDZENJRGFpZ0M4QVFoR0NBRElBMXFJQWMyQWdBZ0FrRUJhaUVDSUFjZ0dHb2hCd3dCQ3dzZ0RTQUhOZ0lBUVFBaEFpQVFLQUlJSVFNRFFDQUNJQU5IQkVBZ0RTQUNJQlJxUWR3SmFpMEFBQ0lZUVFKMGFpSVpJQmtvQWdBaUdVRUJhallDQUNBVUlCbEJBWFJxSWhrZ0dEb0EzUVVnR1NBQ09nRGNCU0FDUVFGcUlRSU1BUXNMUVFBaEF5QU5RUUEyQWdBZ0RDQUdRWDl6YWlFR1FRRWhBZ05BSUFJZ0ZrY0VRQ0FVSUFKQkFuUnFJZzBnQXpZQ0FDQU5LQUx3QkNBQ0lBWnFkQ0FEYWlFRElBSkJBV29oQWd3QkN3c2dEQ0FUSUFwcklnWnJRUUZxSVFvZ0JpRURBMEFnQXlBS1NRUkFJQlFnQTBFMGJHb2hEVUVCSVFJRFFDQUNJQlpIQkVBZ0RTQUNRUUowSWhocUlCUWdHR29vQWdBZ0EzWTJBZ0FnQWtFQmFpRUNEQUVMQ3lBRFFRRnFJUU1NQVFzTElCY2dGRUUwRUFJaE9DQVVRWkFNYWlFNUlCTWdER3NoT2lBVVFkd0ZhaUVYUVFBaENnTkFBa0FDUUNBSElBcEhCRUJCQVNBTUlCTWdGeUFLUVFGMGFpSUNMUUFCSWcxcklnTnJJaGgwSVJrZ0FpMEFBQ0VXSURnZ0RVRUNkR29pSHlnQ0FDRUNJQVlnR0UwRVFDQTJRUUVnQXlBNmFpSU5JQTFCQVV3YklpQkJBblFpSkdvb0FnQWhEU0E1SUJRZ0EwRTBiR3BCTkJBQ0lTRWdEVUVCZENFbUlCRWdBa0VDZEdvaEl5QWdRUUZORFFJZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRWdJQ0VnSkdvb0FnQWhKRUVBSVFJRFFDQUNJQ1JHRFFNZ0l5QUNRUUowYWlBZ05nRUFJQUpCQVdvaEFnd0FDd0FMSUFJZ0FpQVphaUlOSUFJZ0RVc2JJUTBnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFREEwQWdBaUFOUmcwRElCRWdBa0VDZEdvZ0F6WUJBQ0FDUVFGcUlRSU1BQXNBQ3lBZUlBeEJFSFFnTjNJZ0RISkJnQUp5TmdJQURBTUxJQWNnRFdzaEpDQVhJQ1pxSVNaQkFDRU5BMEFnRFNBa1JnMEJRUUVnR0NBVElDWWdEVUVCZEdvaUp5MEFBU0lDYXlJN2EzUWlQQ0FoSUFKQkFuUnFJaUFvQWdBaUFtb2hQU0FESUR0cVFSQjBRWUNBL0FkeElDY3RBQUJCQ0hSeUlCWnlRWUNBZ0JCeUlTY0RRQ0FqSUFKQkFuUnFJQ2MyQVFBZ0FrRUJhaUlDSUQxSkRRQUxJQ0FnSUNnQ0FDQThhallDQUNBTlFRRnFJUTBNQUFzQUN5QWZJQjhvQWdBZ0dXbzJBZ0FnQ2tFQmFpRUtEQUFMQUFzZ0VpRUNDeUFRUVJCcUpBQWdBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRmlFRERBTUxJQjRnRHlBSUlCUVFGQ0lDUVloL1N5QUNJQWhQY2cwTElCd2dDeUFDSUE5cUlBZ2dBbXNnSGhBWElRTU1BZ3NnQXdSQUlCd2dDeUFQSUFnZ0FoQVdJUU1NQWdzZ0hDQUxJQThnQ0NBQ0VCY2hBd3dCQ3lBY0lBc2dEeUFJSUFJUUZTRURDeUFEUVloL1N3MElJQVVnQ3pZQ2dPc0JJQVVnSERZQzhPb0JJQVZCQVRZQ2dPb0JJQnBCQWtZRVFDQUZJQjQyQWd3TElBc2dIR29pQWtJQU53QUFJQUpDQURjQUdDQUNRZ0EzQUJBZ0FrSUFOd0FJSUFsQmlIOUxEUW9MSUFrZ0ZVWU5DQ0FWSUFscklRWWdCU2dDbk9zQklRb0NRQ0FKSUJ0cUlnTXRBQUFpRDBVRVFFRUJJUUpCQUNFUFFiaC9JUWtnQmtFQlJnMEJEQXNMQW44Z0EwRUJhaUFQd0NJQ1FRQk9EUUFhSUFKQmYwWUVRQ0FHUVFOSURRc2dBeThBQVVHQS9nRnFJUThnQTBFRGFnd0JDeUFHUVFKSURRb2dBeTBBQVNBUFFRaDBja0dBZ0FKcklROGdBMEVDYWdzaEVrRzRmeUVKSUJKQkFXb2lBaUFWSUJ0cUlnZExEUW9nTENBRklCSXRBQUFpRWtFR2RrRWpRUWtnQWlBSElBSnJRY0FRUWRBUlFmQVNJQVVvQW9UcUFTQUtJQThnRkJBaElnbEJpSDlMRFFnZ0t5QW9JQkpCQkhaQkEzRkJIMEVJSUFJZ0NXb2lBaUFISUFKclFZQUxRWUFNUVlBWElBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlDRUdJZjBzTkNFRnNJUWtnS2lBdElCSkJBblpCQTNGQk5FRUpJQUlnQ0dvaUFpQUhJQUpyUVlBTlFlQU9RWkFaSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUIwR0lmMHNOQ2lBQ0lBZHFJQU5ySWdJaENTQUNRWWgvU3cwS0N5QU9JQTlCQUV4eURRRUxRYnAvSVFrTUNBc2dKU0FPYXlFSklBWWdBbXNoQmlBQ0lBTnFJUWNDUUFKQUFrQWdDa1VFUUNBUFFRbElJQVVwQThqcEFVS0JnSUFJVkhJTkFpQW9LQUlBSWdKQkNHb2hFaUFDS0FJRUlRcEJBQ0VEUVFBaEFnTkFJQU1nQ25aRkJFQWdBaUFTSUFOQkEzUnFMUUFDUVJaTGFpRUNJQU5CQVdvaEF3d0JDd3NnQlVFQU5nS2M2d0VnQWtFSUlBcHJkRUVVVHcwQkRBTUxJQVZCQURZQ25Pc0JDeUFFSUFVb0F2RHFBU0lETmdMY0FTQUpJQTVxSVJZZ0F5QUZLQUtBNndGcUlSY0NRQ0FQUlFSQUlBNGhCd3dCQ3lBRktBSzQ2UUVoR2lBRktBSzA2UUVoR0NBRktBS3c2UUVoRWlBRlFRRTJBb1RxQVVFQUlRTURRQ0FEUVFOSEJFQWdCQ0FEUVFKMElnSnFJQUlnQldwQnJOQUJhaWdDQURZQ1pDQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFUaHFJZ0lnQnlBR0VBMUJpSDlMRFFOQkNDQVBJQTlCQ0U0YklSOGdOQ0FDSUFVb0FnQVFIaUF6SUFJZ0JTZ0NDQkFlSURJZ0FpQUZLQUlFRUI0Z0RpQVNheUVaUVFBaENBTkFJQVJCT0dvUUQwRURSaUFJSUI5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdkQkVIWWlFVUgvQVhFaEN5QUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZ3hCRUhZaUlVSC9BWEVoRUNBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUVlnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNrSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lLYXlJTklBSWdBaUFOU3hzaUV5QUthallDUENBR0lBUW9BamdnQ25SQkFDQVRhM1lnQWlBVGF5SVRkR29oQ2lBRVFUaHFFQThhSUFJZ0RVME5BU0FFSUFRb0Fqd2lBaUFUYWpZQ1BDQUVLQUk0SUFKMFFRQWdFMnQySUFwcUlRb01BUXNnQkNBQ0lBUW9BandpRFdvMkFqd2dCQ2dDT0NBTmRFRUFJQXByZGlBR2FpRUtJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQW8yQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBREJFQWdCQ2dDWkNFS0RBTUxJQVFvQW1naENnd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQVlnQTBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdaRklBWnFJUW9nQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlBbzJBbVFMcHlFQ0lFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQkJxTmdJOElBUW9BamdnQm5SQkFDQWhhM1lnQW1vaEFnc2dDeUFRYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUF0cU5nSThJQVFvQWpnZ0JuUkJBQ0FSYTNZZ0Eyb2hBd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lCa0VBSUFkQkdIWWlDeUFFS0FJOGFpSVFhM1lnQzBFQ2RFR2dIV29vQWdCeElBZEIvLzhEY1dvMkFrd2dCQ0FRSUF4QkdIWWlCMm9pQ3pZQ1BDQUVJQWRCQW5SQm9CMXFLQUlBSUFaQkFDQUxhM1p4SUF4Qi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ1pCR0hZaUJ5QUVLQUk4YWlJTE5nSThJQVFnQjBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUF0cmRuRWdCa0gvL3dOeGFqWUNWQ0FFUWZBQWFpQUlRUXhzYWlJR0lBbzJBZ2dnQmlBQ05nSUVJQVlnQXpZQ0FDQUlRUUZxSVFnZ0F5QVphaUFDYWlFWkRBRUxDeUFJSUI5SURRTWdGa0VnYXlFaElBNGhCd05BSUFSQk9Hb1FEMEVEUmlBSUlBOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnWkJFSFlpSTBIL0FYRWhDaUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWcxQkVIWWlJRUgvQVhFaEV5QUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFNZ1FVSWdpQ0JBUWlDSXB5RUxBa0FnUWtJUWlLY2lERUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJTWF5SVJJQUlnQWlBUlN4c2lFQ0FNYWpZQ1BDQURJQVFvQWpnZ0RIUkJBQ0FRYTNZZ0FpQVFheUlNZEdvaEVDQUVRVGhxRUE4YUlBSWdFVTBOQVNBRUlBUW9BandpQWlBTWFqWUNQQ0FFS0FJNElBSjBRUUFnREd0MklCQnFJUkFNQVFzZ0JDQUNJQVFvQWp3aUVHbzJBandnQkNnQ09DQVFkRUVBSUF4cmRpQURhaUVRSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUJBMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQUxCRUFnQkNnQ1pDRVFEQU1MSUFRb0FtZ2hFQXdCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFNZ0MwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnTkZJQU5xSVJBZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQkEyQW1RTHB5RU1JRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUJOcU5nSThJQVFvQWpnZ0FuUkJBQ0FnYTNZZ0RHb2hEQXNnQ2lBVGFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lBcHFOZ0k4SUFRb0FqZ2dBblJCQUNBamEzWWdDMm9oQ3dzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQWtFQUlBWkJHSFlpQXlBRUtBSThhaUlLYTNZZ0EwRUNkRUdnSFdvb0FnQnhJQVpCLy84RGNXbzJBa3dnQkNBS0lBMUJHSFlpQTJvaUJqWUNQQ0FFSUFOQkFuUkJvQjFxS0FJQUlBSkJBQ0FHYTNaeElBMUIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdKQkdIWWlBeUFFS0FJOGFpSUdOZ0k4SUFRZ0EwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBWnJkbkVnQWtILy93TnhhallDVkFKQUFrQUNRQ0FFS0FMY0FTSURJQVJCOEFCcUlBaEJCM0ZCREd4cUloTW9BZ0FpRVdvaUl5QVhTdzBBSUFjZ0V5Z0NCQ0lOSUJGcUlncHFJQ0ZMRFFBZ0NrRWdhaUFXSUFkclRRMEJDeUFFSUJNb0FnZzJBaGdnQkNBVEtRSUFOd01RSUFjZ0ZpQUVRUkJxSUFSQjNBRnFJQmNnRWlBWUlCb1FIeUVLREFFTElBY2dFV29oQWlBVEtBSUlJUVlnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0FKQUlCRkJFVWtOQUNBSElBTXBBQkEzQUJBZ0J5QURLUUFZTndBWUlCRkJFR3RCRVVnTkFDQURRUkJxSVFNZ0IwRWdhaUVSQTBBZ0VTQURLUUFRTndBQUlCRWdBeWtBR0RjQUNDQVJJQU1wQUNBM0FCQWdFU0FES1FBb053QVlJQU5CSUdvaEF5QVJRU0JxSWhFZ0Fra05BQXNMSUFJZ0Jtc2hBeUFFSUNNMkF0d0JJQUlnRW1zZ0Jra0VRQ0FHSUFJZ0dHdExEUWNnR2lBYUlBTWdFbXNpQTJvaUVTQU5hazhFUUNBQ0lCRWdEUkFLR2d3Q0N5QURJQTFxSVEwZ0FpQVJRUUFnQTJzUUNpQURheUVDSUJJaEF3c2dCa0VRVHdSQUlBSWdBeWtBQURjQUFDQUNJQU1wQUFnM0FBZ2dEVUVSU0EwQklBSWdEV29oQmlBQ1FSQnFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBR1NRMEFDd3dCQ3dKQUlBWkJCMDBFUUNBQ0lBTXRBQUE2QUFBZ0FpQURMUUFCT2dBQklBSWdBeTBBQWpvQUFpQUNJQU10QUFNNkFBTWdBaUFESUFaQkFuUWlCa0hBSG1vb0FnQnFJZ01vQUFBMkFBUWdBeUFHUWVBZWFpZ0NBR3NoQXd3QkN5QUNJQU1wQUFBM0FBQUxJQTFCQ1VrTkFDQUNJQTFxSVJFZ0FrRUlhaUlHSUFOQkNHb2lBMnRCRDB3RVFBTkFJQVlnQXlrQUFEY0FBQ0FEUVFocUlRTWdCa0VJYWlJR0lCRkpEUUFNQWdzQUN5QUdJQU1wQUFBM0FBQWdCaUFES1FBSU53QUlJQTFCR1VnTkFDQUNRUmhxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQVJTUTBBQ3dzZ0NrR0lmMHNFUUNBS0lRa01CZ1VnRXlBUU5nSUlJQk1nRERZQ0JDQVRJQXMyQWdBZ0NFRUJhaUVJSUFjZ0Ntb2hCeUFMSUJscUlBeHFJUmtNQWdzQUN3c2dDQ0FQU0EwRElBZ2dIMnNoQmdOQUFrQWdCaUFQVGdSQVFRQWhBd05BSUFOQkEwWU5BaUFGSUFOQkFuUWlBbXBCck5BQmFpQUNJQVJxS0FKa05nSUFJQU5CQVdvaEF3d0FDd0FMQWtBQ1FBSkFJQVFvQXR3QklnTWdCRUh3QUdvZ0JrRUhjVUVNYkdvaUNDZ0NBQ0lNYWlJUUlCZExEUUFnQnlBSUtBSUVJZ3NnREdvaUNtb2dJVXNOQUNBS1FTQnFJQllnQjJ0TkRRRUxJQVFnQ0NnQ0NEWUNLQ0FFSUFncEFnQTNBeUFnQnlBV0lBUkJJR29nQkVIY0FXb2dGeUFTSUJnZ0doQWZJUW9NQVFzZ0J5QU1haUVDSUFnb0FnZ2hDQ0FISUFNcEFBQTNBQUFnQnlBREtRQUlOd0FJQWtBZ0RFRVJTUTBBSUFjZ0F5a0FFRGNBRUNBSElBTXBBQmczQUJnZ0RFRVFhMEVSU0EwQUlBTkJFR29oQXlBSFFTQnFJUXdEUUNBTUlBTXBBQkEzQUFBZ0RDQURLUUFZTndBSUlBd2dBeWtBSURjQUVDQU1JQU1wQUNnM0FCZ2dBMEVnYWlFRElBeEJJR29pRENBQ1NRMEFDd3NnQWlBSWF5RURJQVFnRURZQzNBRWdBaUFTYXlBSVNRUkFJQWdnQWlBWWEwc05CeUFhSUJvZ0F5QVNheUlEYWlJTUlBdHFUd1JBSUFJZ0RDQUxFQW9hREFJTElBTWdDMm9oQ3lBQ0lBeEJBQ0FEYXhBS0lBTnJJUUlnRWlFREN5QUlRUkJQQkVBZ0FpQURLUUFBTndBQUlBSWdBeWtBQ0RjQUNDQUxRUkZJRFFFZ0FpQUxhaUVJSUFKQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFJZ0F5MEFBRG9BQUNBQ0lBTXRBQUU2QUFFZ0FpQURMUUFDT2dBQ0lBSWdBeTBBQXpvQUF5QUNJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBSWdBeWtBQURjQUFBc2dDMEVKU1EwQUlBSWdDMm9oRENBQ1FRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0RFa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dDMEVaU0EwQUlBSkJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBeEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0dCU0FHUVFGcUlRWWdCeUFLYWlFSERBSUxBQXNMSUFRb0F0d0JJUU1MUWJwL0lRa2dGeUFEYXlJQ0lCWWdCMnRMRFFJZ0J3Ui9JQWNnQXlBQ0VBSWdBbW9GUVFBTElBNXJJUWtNQWdzZ0JVRUFOZ0tjNndFTElBUWdCU2dDOE9vQklnTTJBdHdCSUFrZ0Rtb2hEQ0FESUFVb0FvRHJBV29oRUFKQUlBOUZCRUFnRGlFR0RBRUxJQVVvQXJqcEFTRU5JQVVvQXJUcEFTRVRJQVVvQXJEcEFTRVNJQVZCQVRZQ2hPb0JRUUFoQXdOQUlBTkJBMGNFUUNBRUlBTkJBblFpQW1vZ0FpQUZha0dzMEFGcUtBSUFOZ0tjQVNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUWZBQWFpSUNJQWNnQmhBTlFZaC9TdzBCSURFZ0FpQUZLQUlBRUI0Z01DQUNJQVVvQWdnUUhpQXZJQUlnQlNnQ0JCQWVJQXhCSUdzaEdDQU9JUVlEUUNBRUtBS0lBU0FFS0FLRUFVRURkR29wQWdBaVFLY2lDa0VRZGlJWlFmOEJjU0VMSUFRb0FwZ0JJQVFvQXBRQlFRTjBhaWtDQUNKQnB5SVdRUkIySWg5Qi93RnhJUm9nQkNnQ2tBRWdCQ2dDakFGQkEzUnFLUUlBSWtKQ0lJaW5JUWNnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NkQ0lJYXlJUklBSWdBaUFSU3hzaUZ5QUlhallDZENBSElBUW9BbkFnQ0hSQkFDQVhhM1lnQWlBWGF5SVhkR29oQ0NBRVFmQUFhaEFQR2lBQ0lCRk5EUUVnQkNBRUtBSjBJZ0lnRjJvMkFuUWdCQ2dDY0NBQ2RFRUFJQmRyZGlBSWFpRUlEQUVMSUFRZ0FpQUVLQUowSWhGcU5nSjBJQVFvQW5BZ0VYUkJBQ0FJYTNZZ0Iyb2hDQ0FFUWZBQWFoQVBHZ3NnQkNrQ25BRWhSQ0FFSUFnMkFwd0JJQVFnUkRjQ29BRU1BUXNDUUNBQ1JRUkFJQU1FUUNBRUtBS2NBU0VJREFNTElBUW9BcUFCSVFnTUFRc2dCQ0FFS0FKMElnSkJBV28yQW5RQ2Z5QUhJQU5GYWlBRUtBSndJQUowUVI5MmFpSUNRUU5HQkVBZ0JDZ0NuQUZCQVdzTUFRc2dBa0VDZENBRWFpZ0NuQUVMSWdkRklBZHFJUWdnQWtFQlJ3UkFJQVFnQkNnQ29BRTJBcVFCQ3dzZ0JDQUVLQUtjQVRZQ29BRWdCQ0FJTmdLY0FRdW5JUUlnUVVLQWdQd0hnMUJGQkVBZ0JDQUVLQUowSWdjZ0dtbzJBblFnQkNnQ2NDQUhkRUVBSUI5cmRpQUNhaUVDQ3lBTElCcHFRUlJQQkVBZ0JFSHdBR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ2RDSUhJQXRxTmdKMElBUW9BbkFnQjNSQkFDQVphM1lnQTJvaEF3c2dCRUh3QUdvUUR4b2dCQ0FFS0FKd0lnZEJBQ0FLUVJoMklnc2dCQ2dDZEdvaUdtdDJJQXRCQW5SQm9CMXFLQUlBY1NBS1FmLy9BM0ZxTmdLRUFTQUVJQm9nRmtFWWRpSUthaUlMTmdKMElBUWdDa0VDZEVHZ0hXb29BZ0FnQjBFQUlBdHJkbkVnRmtILy93TnhhallDbEFFZ0JFSHdBR29RRHhvZ0JDQkNweUlIUVJoMklnb2dCQ2dDZEdvaUN6WUNkQ0FFSUFwQkFuUkJvQjFxS0FJQUlBUW9BbkJCQUNBTGEzWnhJQWRCLy84RGNXbzJBb3dCSUFRZ0F6WUNPQ0FFSUFJMkFqd2dCQ0FJTmdKQUFrQUNRQUpBSUFRb0F0d0JJZ3NnQTJvaUZpQVFTdzBBSUFZZ0FpQURhaUlLYWlBWVN3MEFJQXBCSUdvZ0RDQUdhMDBOQVFzZ0JDQUVRVUJyS0FJQU5nSUlJQVFnQkNrRE9EY0RBQ0FHSUF3Z0JDQUVRZHdCYWlBUUlCSWdFeUFORUI4aENnd0JDeUFESUFacUlRY2dCaUFMS1FBQU53QUFJQVlnQ3lrQUNEY0FDQUpBSUFOQkVVa05BQ0FHSUFzcEFCQTNBQkFnQmlBTEtRQVlOd0FZSUFOQkVHdEJFVWdOQUNBTFFSQnFJUU1nQmtFZ2FpRUxBMEFnQ3lBREtRQVFOd0FBSUFzZ0F5a0FHRGNBQ0NBTElBTXBBQ0EzQUJBZ0N5QURLUUFvTndBWUlBTkJJR29oQXlBTFFTQnFJZ3NnQjBrTkFBc0xJQWNnQ0dzaEF5QUVJQlkyQXR3QklBY2dFbXNnQ0VrRVFDQUlJQWNnRTJ0TERRUWdEU0FOSUFNZ0Vtc2lBMm9pQ3lBQ2FrOEVRQ0FISUFzZ0FoQUtHZ3dDQ3lBSElBdEJBQ0FEYXhBS0lBUWdBaUFEYWlJQ05nSThJQU5ySVFjZ0VpRURDeUFJUVJCUEJFQWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQ0FDUVJGSURRRWdBaUFIYWlFSUlBZEJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBY2dBeTBBQURvQUFDQUhJQU10QUFFNkFBRWdCeUFETFFBQ09nQUNJQWNnQXkwQUF6b0FBeUFISUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQWNnQXlrQUFEY0FBQXNnQWtFSlNRMEFJQUlnQjJvaEN5QUhRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dDMGtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQWtFWlNBMEFJQWRCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXRKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdEQ3lBR0lBcHFJUVlnQkVId0FHb1FEeUVESUE5QkFXc2lEdzBBQzBFQUlRSWdBMEVDU1EwQkEwQWdBa0VEUndSQUlBVWdBa0VDZENJRGFrR3MwQUZxSUFNZ0JHb29BcHdCTmdJQUlBSkJBV29oQWd3QkN3c2dCQ2dDM0FFaEF3dEJ1bjhoQ1NBUUlBTnJJZ0lnRENBR2Ewc05BQ0FHQkg4Z0JpQURJQUlRQWlBQ2FnVkJBQXNnRG1zaENRc2dDVUdJZjBzTkJnc0NRQ0FGS0FMczZnRkZEUUFnQlNBRktRT0k2Z0VnQ2ExOE53T0k2Z0VDUUNBRktBTFE2Z0VpQWlBSmFpSUlRUjlOQkVBZ0RrVU5BU0FDSUNKcUlBNGdDUkFDR2lBRktBTFE2Z0VnQ1dvaENBd0JDeUFPSVFNZ0FnUkFJQUlnSW1vZ0EwRWdJQUpyRUFJYUlBVW9BdERxQVNFQ0lBVkJBRFlDME9vQklBVWdCU2tEa09vQklBVXBBTERxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRGtPb0JJQVVnQlNrRG1Pb0JJQVVwQUxqcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RtT29CSUFVZ0JTa0RvT29CSUFVcEFNRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEb09vQklBVWdCU2tEcU9vQklBVXBBTWpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRHFPb0JJQU1nQW10QklHb2hBd3NnQ1NBT2FpSUNJQU5CSUdwUEJFQWdBa0VnYXlFR0lBVXBBNmpxQVNFL0lBVXBBNkRxQVNGQUlBVXBBNWpxQVNGQklBVXBBNURxQVNGQ0EwQWdBeWtBR0VMUDF0Tyswc2VyMlVKK0lEOThRaCtKUW9lVnI2K1l0dDZibm45K0lUOGdBeWtBRUVMUDF0Tyswc2VyMlVKK0lFQjhRaCtKUW9lVnI2K1l0dDZibm45K0lVQWdBeWtBQ0VMUDF0Tyswc2VyMlVKK0lFRjhRaCtKUW9lVnI2K1l0dDZibm45K0lVRWdBeWtBQUVMUDF0Tyswc2VyMlVKK0lFSjhRaCtKUW9lVnI2K1l0dDZibm45K0lVSWdBMEVnYWlJRElBWk5EUUFMSUFVZ1B6Y0RxT29CSUFVZ1FEY0RvT29CSUFVZ1FUY0RtT29CSUFVZ1FqY0RrT29CQ3lBQ0lBTk5EUUVnSWlBRElBSWdBMnNpQ0JBQ0dnc2dCU0FJTmdMUTZnRUxJRFVnRldzaEF5QVZJQnRxSVFJZ0NTQU9haUVPSUFRb0FqQkZEUUFMSUNrcEF3QWlQMEovVVNBL0lBNGdIV3VzVVhKRkJFQkJiQ0VKREFZTElBVW9BdURwQVFSQVFXb2hDU0FEUVFSSkRRWWdCU2dDNk9vQlJRUkFJQ0lnQlNnQzBPb0JhaUVLQW40Z0JTa0RpT29CSWo5Q0lGb0VRQ0FGS1FPWTZnRWlRRUlIaVNBRktRT1E2Z0VpUVVJQmlYd2dCU2tEb09vQklrSkNESWw4SUFVcEE2anFBU0pEUWhLSmZDQkJRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOUlFQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZvVkNoNVd2cjVpMjNwdWVmMzVDbmFPMTZvT3hqWXI2QUgwZ1FrTFAxdE8rMHNlcjJVSitRaCtKUW9lVnI2K1l0dDZibm45K2hVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNCRFFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5REFFTElBVXBBNkRxQVVMRno5bXk4ZVc2NmlkOEN5QS9mQ0UvSUNJaEJnTkFJQW9nQmtFSWFpSUhUd1JBSUFZcEFBQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUliaVVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0UvSUFjaEJnd0JDd3NDUUNBS0lBWkJCR29pQ0VrRVFDQUdJUWdNQVFzZ0JqVUFBRUtIbGErdm1MYmVtNTUvZmlBL2hVSVhpVUxQMXRPKzBzZXIyVUorUXZuejNmR1o5cG1yRm53aFB3c0RRQ0FJSUFwSkJFQWdDREVBQUVMRno5bXk4ZVc2NmlkK0lEK0ZRZ3VKUW9lVnI2K1l0dDZibm45K0lUOGdDRUVCYWlFSURBRUxDeUFDS0FBQUlEOUNJWWdnUDRWQ3o5YlR2dExIcTlsQ2ZpSS9RaDJJSUQrRlF2bnozZkdaOXBtckZuNGlQMElnaUNBL2hhZEhEUWNMSUFOQkJHc2hBeUFDUVFScUlRSUxJQTRnSFdzaUNVR0pmMDhOQkNBQklBbHJJUUVnQ1NBZGFpRWRRUUVoUGd3QkN3dEJ1SDhoQnlBRERRUWdIU0FBYXlFSERBUUxRV3doQ1F3QkMwRzRmeUVKQzBHNGZ5RUhJQWxCZGtZZ1BuRU5BUXNnQ1NFSEN5Z0NBQTBBSUFWQi9Pb0JhaWdDQUNFQklBVkIrT29CYWlnQ0FDRUFJQVVRR0NBRktBS3c2d0VnQUNBQkVCTWdCVUVBTmdLdzZ3RWdCU2dDcE9zQklnSUVRQUpBQWtBQ1FBSkFJQUlvQWdBaUF3UkFJQUJGRFFJZ0FTQURJQUFSQWdBTUFRc2dBRVVOQWdzZ0FTQUNJQUFSQWdBTUFnc2dBeEFHQ3lBQ0VBWUxJQVZCQURZQ3BPc0JDeUFBQkVBZ0FTQUZJQUFSQWdBTUFRc2dCUkFHQ3lBRVFlQUJhaVFBSUFjTEM2Z1ZDUUJCaUFnTERRRUFBQUFCQUFBQUFnQUFBQUlBUWFBSUM3TUdBUUFBQUFFQUFBQUNBQUFBQWdBQUFDWUFBQUNDQUFBQUlRVUFBRW9BQUFCbkNBQUFKZ0FBQU1BQkFBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUtRQUFBQ3dDQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBTHdBQUFNb0NBQUNBQUFBQWlnVUFBRW9BQUFDRUNRQUFOUUFBQUhNREFBQ0FBQUFBblFVQUFFb0FBQUNnQ1FBQVBRQUFBSUVEQUFDQUFBQUE2d1VBQUVzQUFBQStDZ0FBUkFBQUFKNERBQUNBQUFBQVRRWUFBRXNBQUFDcUNnQUFTd0FBQUxNREFBQ0FBQUFBd1FZQUFFMEFBQUFmRFFBQVRRQUFBRk1FQUFDQUFBQUFJd2dBQUZFQUFBQ21Ed0FBVkFBQUFKa0VBQUNBQUFBQVN3a0FBRmNBQUFDeEVnQUFXQUFBQU5vRUFBQ0FBQUFBYndrQUFGMEFBQUFqRkFBQVZBQUFBRVVGQUFDQUFBQUFWQW9BQUdvQUFBQ01GQUFBYWdBQUFLOEZBQUNBQUFBQWRna0FBSHdBQUFCT0VBQUFmQUFBQU5JQ0FBQ0FBQUFBWXdjQUFKRUFBQUNRQndBQWtnQUFBQUFBQUFBQkFBQUFBUUFBQUFVQUFBQU5BQUFBSFFBQUFEMEFBQUI5QUFBQS9RQUFBUDBCQUFEOUF3QUEvUWNBQVAwUEFBRDlId0FBL1Q4QUFQMS9BQUQ5L3dBQS9mOEJBUDMvQXdEOS93Y0EvZjhQQVAzL0h3RDkvejhBL2Y5L0FQMy8vd0Q5Ly84Qi9mLy9BLzMvL3dmOS8vOFAvZi8vSC8zLy96LzkvLzkvQUFBQUFBRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBREFBQUFCQUFBQUFVQUFBQUdBQUFBQndBQUFBZ0FBQUFKQUFBQUNnQUFBQXNBQUFBTUFBQUFEUUFBQUE0QUFBQVBBQUFBRUFBQUFCRUFBQUFTQUFBQUV3QUFBQlFBQUFBVkFBQUFGZ0FBQUJjQUFBQVlBQUFBR1FBQUFCb0FBQUFiQUFBQUhBQUFBQjBBQUFBZUFBQUFId0FBQUNBQUFBQWhBQUFBSWdBQUFDTUFBQUFsQUFBQUp3QUFBQ2tBQUFBckFBQUFMd0FBQURNQUFBQTdBQUFBUXdBQUFGTUFBQUJqQUFBQWd3QUFBQU1CQUFBREFnQUFBd1FBQUFNSUFBQURFQUFBQXlBQUFBTkFBQUFEZ0FBQUF3QUJBRUhnRHd0UkFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJBQUFBQVVBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFFSEVFQXVMQVFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBU0FBQUFGQUFBQUJZQUFBQVlBQUFBSEFBQUFDQUFBQUFvQUFBQU1BQUFBRUFBQUFDQUFBQUFBQUVBQUFBQ0FBQUFCQUFBQUFnQUFBQVFBQUFBSUFBQUFFQUFBQUNBQUFBQUFBRUFRWkFTQytZRUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBQkFBQUFCQUFBQUFnQUFBQUFBQUFBQVFBQkFRWUFBQUFBQUFBRUFBQUFBQkFBQUFRQUFBQUFJQUFBQlFFQUFBQUFBQUFGQXdBQUFBQUFBQVVFQUFBQUFBQUFCUVlBQUFBQUFBQUZCd0FBQUFBQUFBVUpBQUFBQUFBQUJRb0FBQUFBQUFBRkRBQUFBQUFBQUFZT0FBQUFBQUFCQlJBQUFBQUFBQUVGRkFBQUFBQUFBUVVXQUFBQUFBQUNCUndBQUFBQUFBTUZJQUFBQUFBQUJBVXdBQUFBSUFBR0JVQUFBQUFBQUFjRmdBQUFBQUFBQ0FZQUFRQUFBQUFLQmdBRUFBQUFBQXdHQUJBQUFDQUFBQVFBQUFBQUFBQUFCQUVBQUFBQUFBQUZBZ0FBQUNBQUFBVUVBQUFBQUFBQUJRVUFBQUFnQUFBRkJ3QUFBQUFBQUFVSUFBQUFJQUFBQlFvQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUlBQUJCUkFBQUFBQUFBRUZFZ0FBQUNBQUFRVVdBQUFBQUFBQ0JSZ0FBQUFnQUFNRklBQUFBQUFBQXdVb0FBQUFBQUFHQkVBQUFBQVFBQVlFUUFBQUFDQUFCd1dBQUFBQUFBQUpCZ0FDQUFBQUFBc0dBQWdBQURBQUFBUUFBQUFBRUFBQUJBRUFBQUFnQUFBRkFnQUFBQ0FBQUFVREFBQUFJQUFBQlFVQUFBQWdBQUFGQmdBQUFDQUFBQVVJQUFBQUlBQUFCUWtBQUFBZ0FBQUZDd0FBQUNBQUFBVU1BQUFBQUFBQUJnOEFBQUFnQUFFRkVnQUFBQ0FBQVFVVUFBQUFJQUFDQlJnQUFBQWdBQUlGSEFBQUFDQUFBd1VvQUFBQUlBQUVCVEFBQUFBQUFCQUdBQUFCQUFBQUR3WUFnQUFBQUFBT0JnQkFBQUFBQUEwR0FDQUFRWUFYQzRjQ0FRQUJBUVVBQUFBQUFBQUZBQUFBQUFBQUJnUTlBQUFBQUFBSkJmMEJBQUFBQUE4Ri9YOEFBQUFBRlFYOS94OEFBQUFEQlFVQUFBQUFBQWNFZlFBQUFBQUFEQVg5RHdBQUFBQVNCZjMvQXdBQUFCY0YvZjkvQUFBQUJRVWRBQUFBQUFBSUJQMEFBQUFBQUE0Ri9UOEFBQUFBRkFYOS93OEFBQUFDQlFFQUFBQVFBQWNFZlFBQUFBQUFDd1g5QndBQUFBQVJCZjMvQVFBQUFCWUYvZjgvQUFBQUJBVU5BQUFBRUFBSUJQMEFBQUFBQUEwRi9SOEFBQUFBRXdYOS93Y0FBQUFCQlFFQUFBQVFBQVlFUFFBQUFBQUFDZ1g5QXdBQUFBQVFCZjMvQUFBQUFCd0YvZi8vRHdBQUd3WDkvLzhIQUFBYUJmMy8vd01BQUJrRi9mLy9BUUFBR0FYOS8vOEFRWkFaQzRZRUFRQUJBUVlBQUFBQUFBQUdBd0FBQUFBQUFBUUVBQUFBSUFBQUJRVUFBQUFBQUFBRkJnQUFBQUFBQUFVSUFBQUFBQUFBQlFrQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUFBQUFCaEFBQUFBQUFBQUdFd0FBQUFBQUFBWVdBQUFBQUFBQUJoa0FBQUFBQUFBR0hBQUFBQUFBQUFZZkFBQUFBQUFBQmlJQUFBQUFBQUVHSlFBQUFBQUFBUVlwQUFBQUFBQUNCaThBQUFBQUFBTUdPd0FBQUFBQUJBWlRBQUFBQUFBSEJvTUFBQUFBQUFrR0F3SUFBQkFBQUFRRUFBQUFBQUFBQkFVQUFBQWdBQUFGQmdBQUFBQUFBQVVIQUFBQUlBQUFCUWtBQUFBQUFBQUZDZ0FBQUFBQUFBWU1BQUFBQUFBQUJnOEFBQUFBQUFBR0VnQUFBQUFBQUFZVkFBQUFBQUFBQmhnQUFBQUFBQUFHR3dBQUFBQUFBQVllQUFBQUFBQUFCaUVBQUFBQUFBRUdJd0FBQUFBQUFRWW5BQUFBQUFBQ0Jpc0FBQUFBQUFNR013QUFBQUFBQkFaREFBQUFBQUFGQm1NQUFBQUFBQWdHQXdFQUFDQUFBQVFFQUFBQU1BQUFCQVFBQUFBUUFBQUVCUUFBQUNBQUFBVUhBQUFBSUFBQUJRZ0FBQUFnQUFBRkNnQUFBQ0FBQUFVTEFBQUFBQUFBQmc0QUFBQUFBQUFHRVFBQUFBQUFBQVlVQUFBQUFBQUFCaGNBQUFBQUFBQUdHZ0FBQUFBQUFBWWRBQUFBQUFBQUJpQUFBQUFBQUJBR0F3QUJBQUFBRHdZRGdBQUFBQUFPQmdOQUFBQUFBQTBHQXlBQUFBQUFEQVlERUFBQUFBQUxCZ01JQUFBQUFBb0dBd1FBUWFRZEM5a0JBUUFBQUFNQUFBQUhBQUFBRHdBQUFCOEFBQUEvQUFBQWZ3QUFBUDhBQUFEL0FRQUEvd01BQVA4SEFBRC9Ed0FBL3g4QUFQOC9BQUQvZndBQS8vOEFBUC8vQVFELy93TUEvLzhIQVAvL0R3RC8veDhBLy84L0FQLy9md0QvLy84QS8vLy9BZi8vL3dQLy8vOEgvLy8vRC8vLy94Ly8vLzgvLy8vL2Z3QUFBQUFCQUFBQUFnQUFBQVFBQUFBQUFBQUFBZ0FBQUFRQUFBQUlBQUFBQUFBQUFBRUFBQUFDQUFBQUFRQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBZ0FBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0JCZ0I4TEE0QVJBUT09Ijt2YXIgdnQ9bmV3IFZBLFp0PSExO2FzeW5jIGZ1bmN0aW9uIFZyKEEsZSxJKXtsZXQgdD0idW5rbm93biI7dHlwZW9mIEEhPSJzdHJpbmciP3Q9QS5ocmVmOkEuc3RhcnRzV2l0aCgiaHR0cCIpP3Q9QTp0PXR5cGVvZiBlPCJ1Ij9gJHtlfS8ke0F9YDpBLHQuZW5kc1dpdGgoIi5qcyIpJiYodD10LnN1YnN0cmluZygwLHQubGVuZ3RoLTMpKSx0LmVuZHNXaXRoKCIud2FzbSIpJiYodD10LnN1YnN0cmluZygwLHQubGVuZ3RoLTUpKSx0LmVuZHNXaXRoKCIud2FzbS56c3QiKSYmKHQ9dC5zdWJzdHJpbmcoMCx0Lmxlbmd0aC05KSk7bGV0IHI9YCR7dH0ud2FzbWAsaT1hd2FpdCBnQS5nZXQoYCR7cn0uenN0YCx7cmVzcG9uc2VUeXBlOiJhcnJheWJ1ZmZlciIscGFyYW1zOkl9KTtadHx8KGF3YWl0IHZ0LmluaXQoKSxadD0hMCk7bGV0IHM9dnQuZGVjb2RlKG5ldyBVaW50OEFycmF5KGkuZGF0YSkpLmJ1ZmZlcjtyZXR1cm4oYXdhaXQgaW1wb3J0KGAke3R9LmpzYCkpLmRlZmF1bHQoe3dhc21CaW5hcnk6c30pfXZhciBWdD1Wcjt2YXIgWHQ9YXN5bmMoKT0+V2ViQXNzZW1ibHkudmFsaWRhdGUobmV3IFVpbnQ4QXJyYXkoWzAsOTcsMTE1LDEwOSwxLDAsMCwwLDEsNSwxLDk2LDAsMSwxMjMsMywyLDEsMCwxMCwxMCwxLDgsMCw2NSwwLDI1MywxNSwyNTMsOTgsMTFdKSk7dmFyICR0PXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPT0iZnVuY3Rpb24iLHp0PW5ldyBUZXh0RW5jb2RlcixfdD1uZXcgVGV4dERlY29kZXIoInV0Zi04Iik7ZnVuY3Rpb24gWHIoQSxlKXtsZXQgST17ZmxhZ3M6InIiLGVuY29kaW5nOiJiaW5hcnkifSx0PUEuZnNfb3BlbihlLEkuZmxhZ3MpLGk9QS5mc19zdGF0KGUpLnNpemUsZz1udWxsOyR0P2c9bmV3IFNoYXJlZEFycmF5QnVmZmVyKGkpOmc9bmV3IEFycmF5QnVmZmVyKGkpO2xldCBzPW5ldyBVaW50OEFycmF5KGcpO3JldHVybiBBLmZzX3JlYWQodCxzLDAsaSwwKSxBLmZzX2Nsb3NlKHQpLHN9ZnVuY3Rpb24gQUkoQSxlLEkpe2xldCB0PW51bGw7JHQ/dD1uZXcgU2hhcmVkQXJyYXlCdWZmZXIoSSk6dD1uZXcgQXJyYXlCdWZmZXIoSSk7bGV0IHI9bmV3IFVpbnQ4QXJyYXkodCksaT1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsZSxJKTtyZXR1cm4gci5zZXQoaSkscn1mdW5jdGlvbiBtKEEsZSxJLHQpe2xldCByPTA7cmV0dXJuIGUhPT1udWxsJiYocj1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9hcnJheV9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxJLHQsZS5idWZmZXIuYnl0ZUxlbmd0aF0pLEEuSEVBUFU4LnNldChuZXcgVWludDhBcnJheShlLmJ1ZmZlcikscikpLHJ9ZnVuY3Rpb24gVyhBLGUsSSl7bGV0IHQ9SlNPTi5zdHJpbmdpZnkoZSkscj1BLmxlbmd0aEJ5dGVzVVRGOCh0KSsxLGk9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfanNvbl9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxJLHJdKTtBLnN0cmluZ1RvVVRGOCh0LGkscil9ZnVuY3Rpb24gUihBLGUsSSx0KXtsZXQgcj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLEldKSxpPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUsSV0pLGc9QUkoQSxyLGkpO3JldHVybiBIKHQsZy5idWZmZXIpfWZ1bmN0aW9uIHBBKEEsZSl7bGV0IEk9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2pzb25fYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiXSxbMCxlXSksdD1BLlVURjhUb1N0cmluZyhJKTtyZXR1cm4gSlNPTi5wYXJzZSh0KX1mdW5jdGlvbiB6cihBLGUsSSx0KXt0IT1udWxsJiZ0Lmxlbmd0aD4wJiZ0LmZvckVhY2goZnVuY3Rpb24oQyxvKXtzd2l0Y2goQy50eXBlKXtjYXNlIGguVGV4dFN0cmVhbTp7bGV0IG49enQuZW5jb2RlKEMuZGF0YS5kYXRhKSxmPW0oQSxuLG8sMCksQj17c2l6ZTpuLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWB9O1coQSxCLG8pO2JyZWFrfWNhc2UgaC5Kc29uQ29tcGF0aWJsZTp7bGV0IG49enQuZW5jb2RlKEpTT04uc3RyaW5naWZ5KEMuZGF0YSkpLGY9bShBLG4sbywwKSxCPXtzaXplOm4uYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YH07VyhBLEIsbyk7YnJlYWt9Y2FzZSBoLkJpbmFyeVN0cmVhbTp7bGV0IG49Qy5kYXRhLmRhdGEsZj1tKEEsbixvLDApLEI9e3NpemU6bi5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gfTtXKEEsQixvKTticmVha31jYXNlIGguVGV4dEZpbGU6e0EuZnNfd3JpdGVGaWxlKEMuZGF0YS5wYXRoLEMuZGF0YS5kYXRhKTticmVha31jYXNlIGguQmluYXJ5RmlsZTp7QS5mc193cml0ZUZpbGUoQy5kYXRhLnBhdGgsQy5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgaC5JbWFnZTp7bGV0IG49Qy5kYXRhLGY9bShBLG4uZGF0YSxvLDApLEI9bShBLG4uZGlyZWN0aW9uLG8sMSksUT10eXBlb2Ygbi5tZXRhZGF0YT8uZW50cmllczwidSI/QXJyYXkuZnJvbShuLm1ldGFkYXRhLmVudHJpZXMoKSk6W10sbD17aW1hZ2VUeXBlOm4uaW1hZ2VUeXBlLG5hbWU6bi5uYW1lLG9yaWdpbjpuLm9yaWdpbixzcGFjaW5nOm4uc3BhY2luZyxkaXJlY3Rpb246YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWAsc2l6ZTpuLnNpemUsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YCxtZXRhZGF0YTpRfTtXKEEsbCxvKTticmVha31jYXNlIGguTWVzaDp7bGV0IG49Qy5kYXRhLGY9bShBLG4ucG9pbnRzLG8sMCksQj1tKEEsbi5jZWxscyxvLDEpLFE9bShBLG4ucG9pbnREYXRhLG8sMiksbD1tKEEsbi5jZWxsRGF0YSxvLDMpLGM9e21lc2hUeXBlOm4ubWVzaFR5cGUsbmFtZTpuLm5hbWUsbnVtYmVyT2ZQb2ludHM6bi5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsbnVtYmVyT2ZDZWxsczpuLm51bWJlck9mQ2VsbHMsY2VsbHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWAsY2VsbEJ1ZmZlclNpemU6bi5jZWxsQnVmZmVyU2l6ZSxudW1iZXJPZlBvaW50UGl4ZWxzOm4ubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOm4ubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTtXKEEsYyxvKTticmVha31jYXNlIGguUG9pbnRTZXQ6e2xldCBuPUMuZGF0YSxmPW0oQSxuLnBvaW50cyxvLDApLEI9bShBLG4ucG9pbnREYXRhLG8sMSksUT17cG9pbnRTZXRUeXBlOm4ucG9pbnRTZXRUeXBlLG5hbWU6bi5uYW1lLG51bWJlck9mUG9pbnRzOm4ubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gLG51bWJlck9mUG9pbnRQaXhlbHM6bi5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0J9YH07VyhBLFEsbyk7YnJlYWt9Y2FzZSBoLlRyYW5zZm9ybUxpc3Q6e2xldCBuPUMuZGF0YSxmPVtdLEI9MDtuLmZvckVhY2goUT0+e2xldCBsPSIiLGM9IiI7US50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGw9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHttKEEsUS5maXhlZFBhcmFtZXRlcnMsbyxCKX1gLEIrPTEsYz1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke20oQSxRLnBhcmFtZXRlcnMsbyxCKX1gLEIrPTEpO2xldCB5PXt0cmFuc2Zvcm1UeXBlOlEudHJhbnNmb3JtVHlwZSxudW1iZXJPZkZpeGVkUGFyYW1ldGVyczpRLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzLG51bWJlck9mUGFyYW1ldGVyczpRLm51bWJlck9mUGFyYW1ldGVycyxuYW1lOlEubmFtZSxpbnB1dFNwYWNlTmFtZTpRLmlucHV0U3BhY2VOYW1lLG91dHB1dFNwYWNlTmFtZTpRLm91dHB1dFNwYWNlTmFtZSxwYXJhbWV0ZXJzOmMsZml4ZWRQYXJhbWV0ZXJzOmx9O2YucHVzaCh5KX0pLFcoQSxmLG8pO2JyZWFrfWNhc2UgaC5Qb2x5RGF0YTp7bGV0IG49Qy5kYXRhLGY9bShBLG4ucG9pbnRzLG8sMCksQj1tKEEsbi52ZXJ0aWNlcyxvLDEpLFE9bShBLG4ubGluZXMsbywyKSxsPW0oQSxuLnBvbHlnb25zLG8sMyksYz1tKEEsbi50cmlhbmdsZVN0cmlwcyxvLDQpLHk9bShBLG4ucG9pbnREYXRhLG8sNSksVT1tKEEsbi5wb2ludERhdGEsbyw2KSxwPXtwb2x5RGF0YVR5cGU6bi5wb2x5RGF0YVR5cGUsbmFtZTpuLm5hbWUsbnVtYmVyT2ZQb2ludHM6bi5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsdmVydGljZXNCdWZmZXJTaXplOm4udmVydGljZXNCdWZmZXJTaXplLHZlcnRpY2VzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Qn1gLGxpbmVzQnVmZmVyU2l6ZTpuLmxpbmVzQnVmZmVyU2l6ZSxsaW5lczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YCxwb2x5Z29uc0J1ZmZlclNpemU6bi5wb2x5Z29uc0J1ZmZlclNpemUscG9seWdvbnM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsdHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplOm4udHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplLHRyaWFuZ2xlU3RyaXBzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLG51bWJlck9mUG9pbnRQaXhlbHM6bi5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3l9YCxudW1iZXJPZkNlbGxQaXhlbHM6bi5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtVfWB9O1coQSxwLG8pO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIGlucHV0IEludGVyZmFjZVR5cGUiKX19KSxBLnJlc2V0TW9kdWxlU3Rkb3V0KCksQS5yZXNldE1vZHVsZVN0ZGVycigpO2xldCByPUEuc3RhY2tTYXZlKCksaT0wO3RyeXtpPUEuY2FsbE1haW4oZS5zbGljZSgpKX1jYXRjaChDKXt0aHJvdyB0eXBlb2YgQz09Im51bWJlciImJihjb25zb2xlLmxvZygiRXhjZXB0aW9uIHdoaWxlIHJ1bm5pbmcgcGlwZWxpbmU6IiksY29uc29sZS5sb2coInN0ZG91dDoiLEEuZ2V0TW9kdWxlU3Rkb3V0KCkpLGNvbnNvbGUuZXJyb3IoInN0ZGVycjoiLEEuZ2V0TW9kdWxlU3RkZXJyKCkpLHR5cGVvZiBBLmdldEV4Y2VwdGlvbk1lc3NhZ2U8InUiP2NvbnNvbGUuZXJyb3IoImV4Y2VwdGlvbjoiLEEuZ2V0RXhjZXB0aW9uTWVzc2FnZShDKSk6Y29uc29sZS5lcnJvcigiQnVpbGQgbW9kdWxlIGluIERlYnVnIG1vZGUgZm9yIGV4Y2VwdGlvbiBtZXNzYWdlIGluZm9ybWF0aW9uLiIpKSxDfWZpbmFsbHl7QS5zdGFja1Jlc3RvcmUocil9bGV0IGc9QS5nZXRNb2R1bGVTdGRvdXQoKSxzPUEuZ2V0TW9kdWxlU3RkZXJyKCksRT1bXTtyZXR1cm4gSSE9bnVsbCYmSS5sZW5ndGg+MCYmaT09PTAmJkkuZm9yRWFjaChmdW5jdGlvbihDLG8pe2xldCBuPW51bGw7c3dpdGNoKEMudHlwZSl7Y2FzZSBoLlRleHRTdHJlYW06e2xldCBCPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG8sMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbywwXSksbD1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsQixRKTtuPXtkYXRhOl90LmRlY29kZShsKX07YnJlYWt9Y2FzZSBoLkpzb25Db21wYXRpYmxlOntsZXQgQj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxvLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG8sMF0pLGw9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLEIsUSk7bj1KU09OLnBhcnNlKF90LmRlY29kZShsKSk7YnJlYWt9Y2FzZSBoLkJpbmFyeVN0cmVhbTp7bGV0IEI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxvLDBdKTtuPXtkYXRhOkFJKEEsQixRKX07YnJlYWt9Y2FzZSBoLlRleHRGaWxlOntuPXtwYXRoOkMuZGF0YS5wYXRoLGRhdGE6QS5mc19yZWFkRmlsZShDLmRhdGEucGF0aCx7ZW5jb2Rpbmc6InV0ZjgifSl9O2JyZWFrfWNhc2UgaC5CaW5hcnlGaWxlOntuPXtwYXRoOkMuZGF0YS5wYXRoLGRhdGE6WHIoQSxDLmRhdGEucGF0aCl9O2JyZWFrfWNhc2UgaC5JbWFnZTp7bGV0IEI9cEEoQSxvKTtCLmRhdGE9UihBLG8sMCxCLmltYWdlVHlwZS5jb21wb25lbnRUeXBlKSxCLmRpcmVjdGlvbj1SKEEsbywxLEYuRmxvYXQ2NCksQi5tZXRhZGF0YT1uZXcgTWFwKEIubWV0YWRhdGEpLG49QjticmVha31jYXNlIGguTWVzaDp7bGV0IEI9cEEoQSxvKTtCLm51bWJlck9mUG9pbnRzPjA/Qi5wb2ludHM9UihBLG8sMCxCLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6Qi5wb2ludHM9SChCLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZDZWxscz4wP0IuY2VsbHM9UihBLG8sMSxCLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlKTpCLmNlbGxzPUgoQi5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZQb2ludFBpeGVscz4wP0IucG9pbnREYXRhPVIoQSxvLDIsQi5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5wb2ludERhdGE9SChCLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZkNlbGxQaXhlbHM+MD9CLmNlbGxEYXRhPVIoQSxvLDMsQi5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpCLmNlbGxEYXRhPUgoQi5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksbj1CO2JyZWFrfWNhc2UgaC5Qb2ludFNldDp7bGV0IEI9cEEoQSxvKTtCLm51bWJlck9mUG9pbnRzPjA/Qi5wb2ludHM9UihBLG8sMCxCLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUpOkIucG9pbnRzPUgoQi5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qi5wb2ludERhdGE9UihBLG8sMSxCLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5wb2ludERhdGE9SChCLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLG49QjticmVha31jYXNlIGguVHJhbnNmb3JtTGlzdDp7bGV0IEI9cEEoQSxvKSxRPTA7Qi5mb3JFYWNoKChsLGMpPT57bC50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGwubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM+MCYmKEJbY10uZml4ZWRQYXJhbWV0ZXJzPVIoQSxvLFEsRi5GbG9hdDY0KSksUSs9MSxsLm51bWJlck9mUGFyYW1ldGVycz4wJiYoQltjXS5wYXJhbWV0ZXJzPVIoQSxvLFEsbC50cmFuc2Zvcm1UeXBlLnBhcmFtZXRlcnNWYWx1ZVR5cGUpKSxRKz0xKX0pLG49QjticmVha31jYXNlIGguUG9seURhdGE6e2xldCBCPXBBKEEsbyk7Qi5udW1iZXJPZlBvaW50cz4wP0IucG9pbnRzPVIoQSxvLDAsRi5GbG9hdDMyKTpCLnBvaW50cz1uZXcgRmxvYXQzMkFycmF5LEIudmVydGljZXNCdWZmZXJTaXplPjA/Qi52ZXJ0aWNlcz1SKEEsbywxLGQuVUludDMyKTpCLnZlcnRpY2VzPW5ldyBVaW50MzJBcnJheSxCLmxpbmVzQnVmZmVyU2l6ZT4wP0IubGluZXM9UihBLG8sMixkLlVJbnQzMik6Qi5saW5lcz1uZXcgVWludDMyQXJyYXksQi5wb2x5Z29uc0J1ZmZlclNpemU+MD9CLnBvbHlnb25zPVIoQSxvLDMsZC5VSW50MzIpOkIucG9seWdvbnM9bmV3IFVpbnQzMkFycmF5LEIudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplPjA/Qi50cmlhbmdsZVN0cmlwcz1SKEEsbyw0LGQuVUludDMyKTpCLnRyaWFuZ2xlU3RyaXBzPW5ldyBVaW50MzJBcnJheSxCLm51bWJlck9mUG9pbnRQaXhlbHM+MD9CLnBvaW50RGF0YT1SKEEsbyw1LEIucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpCLnBvaW50RGF0YT1IKEIucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZkNlbGxQaXhlbHM+MD9CLmNlbGxEYXRhPVIoQSxvLDYsQi5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5jZWxsRGF0YT1IKEIucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxuPUI7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgb3V0cHV0IEludGVyZmFjZVR5cGUiKX1sZXQgZj17dHlwZTpDLnR5cGUsZGF0YTpufTtFLnB1c2goZil9KSx7cmV0dXJuVmFsdWU6aSxzdGRvdXQ6ZyxzdGRlcnI6cyxvdXRwdXRzOkV9fXZhciBlST16cjt2YXIgX3I9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI8InUiO2Z1bmN0aW9uICRyKEEsZSl7aWYoQT09bnVsbClyZXR1cm5bXTtsZXQgST1bXTtmb3IobGV0IHQ9MDt0PEEubGVuZ3RoO3QrKyl7bGV0IHI9QWcoQVt0XSxlKTtyIT09bnVsbCYmSS5wdXNoKHIpfXJldHVybiBJfWZ1bmN0aW9uIEFnKEEsZSl7aWYoQT09bnVsbClyZXR1cm4gbnVsbDtsZXQgST1udWxsO3JldHVybiBBLmJ1ZmZlciE9PXZvaWQgMD9JPUEuYnVmZmVyOkEuYnl0ZUxlbmd0aCE9PXZvaWQgMCYmKEk9QSksX3ImJkkgaW5zdGFuY2VvZiBTaGFyZWRBcnJheUJ1ZmZlcj9udWxsOmU/STpJLnNsaWNlKDApfXZhciB0ST0kcjtmdW5jdGlvbiBlZyhBKXtyZXR1cm5bQS5kYXRhLEEuZGlyZWN0aW9uXX12YXIgSUk9ZWc7ZnVuY3Rpb24gdGcoQSl7cmV0dXJuW0EucG9pbnRzLEEucG9pbnREYXRhLEEuY2VsbHMsQS5jZWxsRGF0YV19dmFyIHJJPXRnO2Z1bmN0aW9uIElnKEEpe3JldHVybltBLnBvaW50cyxBLnZlcnRpY2VzLEEubGluZXMsQS5wb2x5Z29ucyxBLnRyaWFuZ2xlU3RyaXBzLEEucG9pbnREYXRhLEEuY2VsbERhdGFdfXZhciBnST1JZzt2YXIgcmc7ZnVuY3Rpb24gWEEoKXtyZXR1cm4gcmd9dmFyIGdnO2Z1bmN0aW9uIGlJKCl7cmV0dXJuIGdnfXZhciBpZztmdW5jdGlvbiB6QSgpe3JldHVybiBpZ312YXIgTWU9bmV3IE1hcDtmdW5jdGlvbiBvZygpe2xldCBBPXpBKCk7cmV0dXJuIHR5cGVvZiBBPiJ1IiYmKEE9bnVsbCksQX1mdW5jdGlvbiBvSSgpe2xldCBBPVhBKCk7cmV0dXJuIHR5cGVvZiBBPiJ1IiYmKEE9bmV3IFVSTCgiL3BpcGVsaW5lcyIsZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luKS5ocmVmKSxBfWZ1bmN0aW9uIF9BKCl7bGV0IEE9aUkoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT17fSksQX1hc3luYyBmdW5jdGlvbiBhZyhBLGUsSSl7bGV0IHQ9QSxyPUE7aWYodHlwZW9mIEEhPSJzdHJpbmciJiYodD1uZXcgVVJMKEEuaHJlZikscj10LmhyZWYpLE1lLmhhcyhyKSlyZXR1cm4gTWUuZ2V0KHIpO3tsZXQgaT1hd2FpdCBWdChBLGU/LnRvU3RyaW5nKCk/P29JKCksST8/X0EoKSk7cmV0dXJuIE1lLnNldChyLGkpLGl9fWFzeW5jIGZ1bmN0aW9uIG5nKEEsZSxJLHQscil7aWYoIWF3YWl0IFh0KCkpe2xldCBjPSJXZWJBc3NlbWJseSBTSU1EIHN1cHBvcnQgaXMgcmVxdWlyZWQgLS0gcGxlYXNlIHVwZGF0ZSB5b3VyIGJyb3dzZXIuIjt0aHJvdyBhbGVydChjKSxuZXcgRXJyb3IoYyl9bGV0IGk9cj8ud2ViV29ya2VyPz9udWxsO2lmKGk9PT0hMSl7bGV0IGM9YXdhaXQgYWcoQS50b1N0cmluZygpLHI/LnBpcGVsaW5lQmFzZVVybCxyPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz9fQSgpKTtyZXR1cm4gZUkoYyxlLEksdCl9bGV0IGc9aSxzPXI/LnBpcGVsaW5lV29ya2VyVXJsPz9vZygpLEU9dHlwZW9mIHMhPSJzdHJpbmciJiZ0eXBlb2Ygcz8uaHJlZjwidSI/cy5ocmVmOnMse3dvcmtlclByb3h5OkMsd29ya2VyOm99PWF3YWl0IFd0KGcsRSxyPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz9fQSgpKTtnPW87bGV0IG49W107dCE9bnVsbCYmdC5sZW5ndGg+MCYmdC5mb3JFYWNoKGZ1bmN0aW9uKGMpe2lmKGMudHlwZT09PWguQmluYXJ5U3RyZWFtKXtsZXQgeT1jLmRhdGEuZGF0YTtuLnB1c2goeSl9ZWxzZSBpZihjLnR5cGU9PT1oLkJpbmFyeUZpbGUpe2xldCB5PWMuZGF0YS5kYXRhO24ucHVzaCh5KX1lbHNlIGlmKGMudHlwZT09PWguSW1hZ2Upe2xldCB5PWMuZGF0YTt5LmRhdGEhPT1udWxsJiZuLnB1c2goLi4uSUkoeSkpfWVsc2UgaWYoYy50eXBlPT09aC5NZXNoKXtsZXQgeT1jLmRhdGE7bi5wdXNoKC4uLnJJKHkpKX1lbHNlIGlmKGMudHlwZT09PWguUG9seURhdGEpe2xldCB5PWMuZGF0YTtuLnB1c2goLi4uZ0koeSkpfX0pO2xldCBmPXI/LnBpcGVsaW5lQmFzZVVybD8/b0koKSxCPXR5cGVvZiBmIT0ic3RyaW5nIiYmdHlwZW9mIGY/LmhyZWY8InUiP2YuaHJlZjpmLFE9dCE9bnVsbD9uZSh0LHRJKG4scj8ubm9Db3B5KSk6bnVsbCxsPWF3YWl0IEMucnVuUGlwZWxpbmUoQS50b1N0cmluZygpLEIsZSxJLFEscj8ucGlwZWxpbmVRdWVyeVBhcmFtcz8/X0EoKSk7cmV0dXJue3JldHVyblZhbHVlOmwucmV0dXJuVmFsdWUsc3Rkb3V0Omwuc3Rkb3V0LHN0ZGVycjpsLnN0ZGVycixvdXRwdXRzOmwub3V0cHV0cyx3ZWJXb3JrZXI6Z319dmFyIHdBPW5nO3ZhciBzZz1udWxsO2Z1bmN0aW9uIGFJKCl7cmV0dXJuIHNnfXZhciBZZSxDZz1gaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9AaXRrLXdhc20vY29tcGFyZS1pbWFnZXNAJHt0ZX0vZGlzdC9waXBlbGluZXNgO2Z1bmN0aW9uIGlzKEEpe1llPUF9ZnVuY3Rpb24gJEEoKXtpZih0eXBlb2YgWWU8InUiKXJldHVybiBZZTtsZXQgQT1YQSgpO3JldHVybiB0eXBlb2YgQTwidSI/QTpDZ312YXIgSGUsQmc9bnVsbDtmdW5jdGlvbiBuSShBKXtIZT1BfWZ1bmN0aW9uIGlBKCl7aWYodHlwZW9mIEhlPCJ1IilyZXR1cm4gSGU7bGV0IEE9ekEoKTtyZXR1cm4gdHlwZW9mIEE8InUiP0E6Qmd9dmFyIG9BPW51bGw7YXN5bmMgZnVuY3Rpb24gc0koKXtsZXQgQT1pQSgpLGU9dHlwZW9mIEEhPSJzdHJpbmciJiZ0eXBlb2YgQT8uaHJlZjwidSI/QS5ocmVmOkE7b0E9YXdhaXQgeUEoZSl9ZnVuY3Rpb24gUXMoQSl7b0E9QX1hc3luYyBmdW5jdGlvbiBDSSgpe2lmKG9BIT09bnVsbClyZXR1cm4gb0EudGVybWluYXRlZCYmYXdhaXQgc0koKSxvQTtsZXQgQT1hSSgpO3JldHVybiBBIT09bnVsbD9BOihhd2FpdCBzSSgpLG9BKX1hc3luYyBmdW5jdGlvbiBRZyhBLGU9e2Jhc2VsaW5lSW1hZ2VzOltdfSl7bGV0IEk9W3t0eXBlOmguSnNvbkNvbXBhdGlibGV9LHt0eXBlOmguSW1hZ2V9LHt0eXBlOmguSW1hZ2V9XSx0PVt7dHlwZTpoLkltYWdlLGRhdGE6QX1dLHI9W107aWYoci5wdXNoKCIwIiksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCIyIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLHR5cGVvZiBlLmJhc2VsaW5lSW1hZ2VzPCJ1Iil7aWYoZS5iYXNlbGluZUltYWdlcy5sZW5ndGg8MSl0aHJvdyBuZXcgRXJyb3IoJyJiYXNlbGluZS1pbWFnZXMiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAxJyk7ci5wdXNoKCItLWJhc2VsaW5lLWltYWdlcyIpLGF3YWl0IFByb21pc2UuYWxsKGUuYmFzZWxpbmVJbWFnZXMubWFwKGFzeW5jIGw9PntsZXQgYz10Lmxlbmd0aC50b1N0cmluZygpO3QucHVzaCh7dHlwZTpoLkltYWdlLGRhdGE6bH0pLHIucHVzaChjKX0pKX10eXBlb2YgZS5kaWZmZXJlbmNlVGhyZXNob2xkPCJ1IiYmci5wdXNoKCItLWRpZmZlcmVuY2UtdGhyZXNob2xkIixlLmRpZmZlcmVuY2VUaHJlc2hvbGQudG9TdHJpbmcoKSksdHlwZW9mIGUucmFkaXVzVG9sZXJhbmNlPCJ1IiYmci5wdXNoKCItLXJhZGl1cy10b2xlcmFuY2UiLGUucmFkaXVzVG9sZXJhbmNlLnRvU3RyaW5nKCkpLHR5cGVvZiBlLnNwYXRpYWxUb2xlcmFuY2U8InUiJiZyLnB1c2goIi0tc3BhdGlhbC10b2xlcmFuY2UiLGUuc3BhdGlhbFRvbGVyYW5jZS50b1N0cmluZygpKSx0eXBlb2YgZS5udW1iZXJPZlBpeGVsc1RvbGVyYW5jZTwidSImJnIucHVzaCgiLS1udW1iZXItb2YtcGl4ZWxzLXRvbGVyYW5jZSIsZS5udW1iZXJPZlBpeGVsc1RvbGVyYW5jZS50b1N0cmluZygpKSx0eXBlb2YgZS5pZ25vcmVCb3VuZGFyeVBpeGVsczwidSImJmUuaWdub3JlQm91bmRhcnlQaXhlbHMmJnIucHVzaCgiLS1pZ25vcmUtYm91bmRhcnktcGl4ZWxzIik7bGV0IEM9ImNvbXBhcmUtZG91YmxlLWltYWdlcyIse3dlYldvcmtlcjpvLHJldHVyblZhbHVlOm4sc3RkZXJyOmYsb3V0cHV0czpCfT1hd2FpdCB3QShDLHIsSSx0LHtwaXBlbGluZUJhc2VVcmw6JEEoKSxwaXBlbGluZVdvcmtlclVybDppQSgpLHdlYldvcmtlcjplPy53ZWJXb3JrZXI/P251bGx9KTtpZihuIT09MCl0aHJvdyBuZXcgRXJyb3IoZik7cmV0dXJue3dlYldvcmtlcjpvLG1ldHJpY3M6QlswXS5kYXRhLGRpZmZlcmVuY2VJbWFnZTpCWzFdLmRhdGEsZGlmZmVyZW5jZVVjaGFyMmRJbWFnZTpCWzJdLmRhdGF9fXZhciBxZT1RZzthc3luYyBmdW5jdGlvbiBFZyhBLGUpe2xldCBJPWU7aWYoSS5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSE9PUYuRmxvYXQ2NCl7bGV0IHQ7ZS5pbWFnZVR5cGUucGl4ZWxUeXBlIT09Ry5TY2FsYXImJmUuaW1hZ2VUeXBlLnBpeGVsVHlwZSE9PUcuVmFyaWFibGVMZW5ndGhWZWN0b3ImJih0PUcuVmFyaWFibGVMZW5ndGhWZWN0b3IpLEk9UkEoZSx7Y29tcG9uZW50VHlwZTpGLkZsb2F0NjQscGl4ZWxUeXBlOnR9KX1lbHNlIGlmKGUuaW1hZ2VUeXBlLnBpeGVsVHlwZSE9PUcuU2NhbGFyJiZlLmltYWdlVHlwZS5waXhlbFR5cGUhPT1HLlZhcmlhYmxlTGVuZ3RoVmVjdG9yKXtsZXQgdD1HLlZhcmlhYmxlTGVuZ3RoVmVjdG9yO0k9UkEoZSx7cGl4ZWxUeXBlOnR9KX1yZXR1cm4gSS5pbWFnZVR5cGUucGl4ZWxUeXBlPT09Ry5WYXJpYWJsZUxlbmd0aFZlY3RvciYmKEk9KGF3YWl0IEEoSSkpLm1hZ25pdHVkZUltYWdlKSxJfXZhciBUZT1FZzthc3luYyBmdW5jdGlvbiBjZyhBLGU9e30pe2xldCBJPVt7dHlwZTpoLkltYWdlfV0sdD1be3R5cGU6aC5JbWFnZSxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpLHIucHVzaCgiLS1tZW1vcnktaW8iKTtsZXQgcz0idmVjdG9yLW1hZ25pdHVkZSIsRT1lPy53ZWJXb3JrZXI7RT09PXZvaWQgMCYmKEU9YXdhaXQgQ0koKSk7bGV0e3dlYldvcmtlcjpDLHJldHVyblZhbHVlOm8sc3RkZXJyOm4sb3V0cHV0czpmfT1hd2FpdCB3QShzLHIsSSx0LHtwaXBlbGluZUJhc2VVcmw6JEEoKSxwaXBlbGluZVdvcmtlclVybDppQSgpLHdlYldvcmtlcjpFLG5vQ29weTplPy5ub0NvcHl9KTtpZihvIT09MCYmbiE9PSIiKXRocm93IG5ldyBFcnJvcihuKTtyZXR1cm57d2ViV29ya2VyOkMsbWFnbml0dWRlSW1hZ2U6ZlswXT8uZGF0YX19dmFyIHhlPWNnO2FzeW5jIGZ1bmN0aW9uIGxnKEEsZT17YmFzZWxpbmVJbWFnZXM6W119KXthc3luYyBmdW5jdGlvbiBJKGcpe2xldHt3ZWJXb3JrZXI6cyxtYWduaXR1ZGVJbWFnZTpFfT1hd2FpdCB4ZShnKTtyZXR1cm4gcz8udGVybWluYXRlKCkse21hZ25pdHVkZUltYWdlOkV9fWxldCB0PWF3YWl0IFRlKEksQSkscj1hd2FpdCBQcm9taXNlLmFsbChlLmJhc2VsaW5lSW1hZ2VzLm1hcChhc3luYyBnPT5hd2FpdCBUZShJLGcpKSksaT17Li4uZX07cmV0dXJuIGkuYmFzZWxpbmVJbWFnZXM9cixxZSh0LGkpfXZhciBmZz1sZzt2YXIgQkk9J2RhdGE6dGV4dC9qYXZhc2NyaXB0O2NoYXJzZXQ9dXRmLTgsdmFyIFllPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgcWU9KEEsdCk9Pntmb3IodmFyIGUgaW4gdClZZShBLGUse2dldDp0W2VdLGVudW1lcmFibGU6ITB9KX07dmFyIE50PVN5bWJvbCgiQ29tbGluay5wcm94eSIpLE1lPVN5bWJvbCgiQ29tbGluay5lbmRwb2ludCIpLEtlPVN5bWJvbCgiQ29tbGluay5yZWxlYXNlUHJveHkiKSxWQT1TeW1ib2woIkNvbWxpbmsuZmluYWxpemVyIiksbUE9U3ltYm9sKCJDb21saW5rLnRocm93biIpLFV0PUE9PnR5cGVvZiBBPT0ib2JqZWN0IiYmQSE9PW51bGx8fHR5cGVvZiBBPT0iZnVuY3Rpb24iLE9lPXtjYW5IYW5kbGU6QT0+VXQoQSkmJkFbTnRdLHNlcmlhbGl6ZShBKXtsZXR7cG9ydDE6dCxwb3J0MjplfT1uZXcgTWVzc2FnZUNoYW5uZWw7cmV0dXJuIEZBKEEsdCksW2UsW2VdXX0sZGVzZXJpYWxpemUoQSl7cmV0dXJuIEEuc3RhcnQoKSxqZShBKX19LFRlPXtjYW5IYW5kbGU6QT0+VXQoQSkmJm1BIGluIEEsc2VyaWFsaXplKHt2YWx1ZTpBfSl7bGV0IHQ7cmV0dXJuIEEgaW5zdGFuY2VvZiBFcnJvcj90PXtpc0Vycm9yOiEwLHZhbHVlOnttZXNzYWdlOkEubWVzc2FnZSxuYW1lOkEubmFtZSxzdGFjazpBLnN0YWNrfX06dD17aXNFcnJvcjohMSx2YWx1ZTpBfSxbdCxbXV19LGRlc2VyaWFsaXplKEEpe3Rocm93IEEuaXNFcnJvcj9PYmplY3QuYXNzaWduKG5ldyBFcnJvcihBLnZhbHVlLm1lc3NhZ2UpLEEudmFsdWUpOkEudmFsdWV9fSxHdD1uZXcgTWFwKFtbInByb3h5IixPZV0sWyJ0aHJvdyIsVGVdXSk7ZnVuY3Rpb24geGUoQSx0KXtmb3IobGV0IGUgb2YgQSlpZih0PT09ZXx8ZT09PSIqInx8ZSBpbnN0YW5jZW9mIFJlZ0V4cCYmZS50ZXN0KHQpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEZBKEEsdD1nbG9iYWxUaGlzLGU9WyIqIl0pe3QuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gSShyKXtpZighcnx8IXIuZGF0YSlyZXR1cm47aWYoIXhlKGUsci5vcmlnaW4pKXtjb25zb2xlLndhcm4oYEludmFsaWQgb3JpZ2luIFwnJHtyLm9yaWdpbn1cJyBmb3IgY29tbGluayBwcm94eWApO3JldHVybn1sZXR7aWQ6Zyx0eXBlOm8scGF0aDpufT1PYmplY3QuYXNzaWduKHtwYXRoOltdfSxyLmRhdGEpLEU9KHIuZGF0YS5hcmd1bWVudExpc3R8fFtdKS5tYXAoVyksQjt0cnl7bGV0IHM9bi5zbGljZSgwLC0xKS5yZWR1Y2UoKGwsYSk9PmxbYV0sQSksQz1uLnJlZHVjZSgobCxhKT0+bFthXSxBKTtzd2l0Y2gobyl7Y2FzZSJHRVQiOkI9QzticmVhaztjYXNlIlNFVCI6c1tuLnNsaWNlKC0xKVswXV09VyhyLmRhdGEudmFsdWUpLEI9ITA7YnJlYWs7Y2FzZSJBUFBMWSI6Qj1DLmFwcGx5KHMsRSk7YnJlYWs7Y2FzZSJDT05TVFJVQ1QiOntsZXQgbD1uZXcgQyguLi5FKTtCPVhlKGwpfWJyZWFrO2Nhc2UiRU5EUE9JTlQiOntsZXR7cG9ydDE6bCxwb3J0MjphfT1uZXcgTWVzc2FnZUNoYW5uZWw7RkEoQSxhKSxCPV9BKGwsW2xdKX1icmVhaztjYXNlIlJFTEVBU0UiOkI9dm9pZCAwO2JyZWFrO2RlZmF1bHQ6cmV0dXJufX1jYXRjaChzKXtCPXt2YWx1ZTpzLFttQV06MH19UHJvbWlzZS5yZXNvbHZlKEIpLmNhdGNoKHM9Pih7dmFsdWU6cyxbbUFdOjB9KSkudGhlbihzPT57bGV0W0MsbF09U0Eocyk7dC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sQykse2lkOmd9KSxsKSxvPT09IlJFTEVBU0UiJiYodC5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixJKSxrdCh0KSxWQSBpbiBBJiZ0eXBlb2YgQVtWQV09PSJmdW5jdGlvbiImJkFbVkFdKCkpfSkuY2F0Y2gocz0+e2xldFtDLGxdPVNBKHt2YWx1ZTpuZXcgVHlwZUVycm9yKCJVbnNlcmlhbGl6YWJsZSByZXR1cm4gdmFsdWUiKSxbbUFdOjB9KTt0LnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxDKSx7aWQ6Z30pLGwpfSl9KSx0LnN0YXJ0JiZ0LnN0YXJ0KCl9ZnVuY3Rpb24gUGUoQSl7cmV0dXJuIEEuY29uc3RydWN0b3IubmFtZT09PSJNZXNzYWdlUG9ydCJ9ZnVuY3Rpb24ga3QoQSl7UGUoQSkmJkEuY2xvc2UoKX1mdW5jdGlvbiBqZShBLHQpe3JldHVybiBYQShBLFtdLHQpfWZ1bmN0aW9uIHlBKEEpe2lmKEEpdGhyb3cgbmV3IEVycm9yKCJQcm94eSBoYXMgYmVlbiByZWxlYXNlZCBhbmQgaXMgbm90IHVzZWFibGUiKX1mdW5jdGlvbiBMdChBKXtyZXR1cm4gXyhBLHt0eXBlOiJSRUxFQVNFIn0pLnRoZW4oKCk9PntrdChBKX0pfXZhciB3QT1uZXcgV2Vha01hcCxwQT0iRmluYWxpemF0aW9uUmVnaXN0cnkiaW4gZ2xvYmFsVGhpcyYmbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KEE9PntsZXQgdD0od0EuZ2V0KEEpfHwwKS0xO3dBLnNldChBLHQpLHQ9PT0wJiZMdChBKX0pO2Z1bmN0aW9uIFdlKEEsdCl7bGV0IGU9KHdBLmdldCh0KXx8MCkrMTt3QS5zZXQodCxlKSxwQSYmcEEucmVnaXN0ZXIoQSx0LEEpfWZ1bmN0aW9uIFplKEEpe3BBJiZwQS51bnJlZ2lzdGVyKEEpfWZ1bmN0aW9uIFhBKEEsdD1bXSxlPWZ1bmN0aW9uKCl7fSl7bGV0IEk9ITEscj1uZXcgUHJveHkoZSx7Z2V0KGcsbyl7aWYoeUEoSSksbz09PUtlKXJldHVybigpPT57WmUociksTHQoQSksST0hMH07aWYobz09PSJ0aGVuIil7aWYodC5sZW5ndGg9PT0wKXJldHVybnt0aGVuOigpPT5yfTtsZXQgbj1fKEEse3R5cGU6IkdFVCIscGF0aDp0Lm1hcChFPT5FLnRvU3RyaW5nKCkpfSkudGhlbihXKTtyZXR1cm4gbi50aGVuLmJpbmQobil9cmV0dXJuIFhBKEEsWy4uLnQsb10pfSxzZXQoZyxvLG4pe3lBKEkpO2xldFtFLEJdPVNBKG4pO3JldHVybiBfKEEse3R5cGU6IlNFVCIscGF0aDpbLi4udCxvXS5tYXAocz0+cy50b1N0cmluZygpKSx2YWx1ZTpFfSxCKS50aGVuKFcpfSxhcHBseShnLG8sbil7eUEoSSk7bGV0IEU9dFt0Lmxlbmd0aC0xXTtpZihFPT09TWUpcmV0dXJuIF8oQSx7dHlwZToiRU5EUE9JTlQifSkudGhlbihXKTtpZihFPT09ImJpbmQiKXJldHVybiBYQShBLHQuc2xpY2UoMCwtMSkpO2xldFtCLHNdPVJ0KG4pO3JldHVybiBfKEEse3R5cGU6IkFQUExZIixwYXRoOnQubWFwKEM9PkMudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OkJ9LHMpLnRoZW4oVyl9LGNvbnN0cnVjdChnLG8pe3lBKEkpO2xldFtuLEVdPVJ0KG8pO3JldHVybiBfKEEse3R5cGU6IkNPTlNUUlVDVCIscGF0aDp0Lm1hcChCPT5CLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpufSxFKS50aGVuKFcpfX0pO3JldHVybiBXZShyLEEpLHJ9ZnVuY3Rpb24gVmUoQSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sQSl9ZnVuY3Rpb24gUnQoQSl7bGV0IHQ9QS5tYXAoU0EpO3JldHVyblt0Lm1hcChlPT5lWzBdKSxWZSh0Lm1hcChlPT5lWzFdKSldfXZhciBidD1uZXcgV2Vha01hcDtmdW5jdGlvbiBfQShBLHQpe3JldHVybiBidC5zZXQoQSx0KSxBfWZ1bmN0aW9uIFhlKEEpe3JldHVybiBPYmplY3QuYXNzaWduKEEse1tOdF06ITB9KX1mdW5jdGlvbiBTQShBKXtmb3IobGV0W3QsZV1vZiBHdClpZihlLmNhbkhhbmRsZShBKSl7bGV0W0kscl09ZS5zZXJpYWxpemUoQSk7cmV0dXJuW3t0eXBlOiJIQU5ETEVSIixuYW1lOnQsdmFsdWU6SX0scl19cmV0dXJuW3t0eXBlOiJSQVciLHZhbHVlOkF9LGJ0LmdldChBKXx8W11dfWZ1bmN0aW9uIFcoQSl7c3dpdGNoKEEudHlwZSl7Y2FzZSJIQU5ETEVSIjpyZXR1cm4gR3QuZ2V0KEEubmFtZSkuZGVzZXJpYWxpemUoQS52YWx1ZSk7Y2FzZSJSQVciOnJldHVybiBBLnZhbHVlfX1mdW5jdGlvbiBfKEEsdCxlKXtyZXR1cm4gbmV3IFByb21pc2UoST0+e2xldCByPV9lKCk7QS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBnKG8peyFvLmRhdGF8fCFvLmRhdGEuaWR8fG8uZGF0YS5pZCE9PXJ8fChBLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGcpLEkoby5kYXRhKSl9KSxBLnN0YXJ0JiZBLnN0YXJ0KCksQS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKHtpZDpyfSx0KSxlKX0pfWZ1bmN0aW9uIF9lKCl7cmV0dXJuIG5ldyBBcnJheSg0KS5maWxsKDApLm1hcCgoKT0+TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKk51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygxNikpLmpvaW4oIi0iKX1mdW5jdGlvbiBvQShBLHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBBLmFwcGx5KHQsYXJndW1lbnRzKX19dmFye3RvU3RyaW5nOnplfT1PYmplY3QucHJvdG90eXBlLHtnZXRQcm90b3R5cGVPZjp2QX09T2JqZWN0LHtpdGVyYXRvcjpOQSx0b1N0cmluZ1RhZzpZdH09U3ltYm9sLFVBPShBPT50PT57bGV0IGU9emUuY2FsbCh0KTtyZXR1cm4gQVtlXXx8KEFbZV09ZS5zbGljZSg4LC0xKS50b0xvd2VyQ2FzZSgpKX0pKE9iamVjdC5jcmVhdGUobnVsbCkpLEw9QT0+KEE9QS50b0xvd2VyQ2FzZSgpLHQ9PlVBKHQpPT09QSksR0E9QT0+dD0+dHlwZW9mIHQ9PT1BLHtpc0FycmF5OnZ9PUFycmF5LHo9R0EoInVuZGVmaW5lZCIpO2Z1bmN0aW9uIGdBKEEpe3JldHVybiBBIT09bnVsbCYmIXooQSkmJkEuY29uc3RydWN0b3IhPT1udWxsJiYheihBLmNvbnN0cnVjdG9yKSYmTihBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKSYmQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihBKX12YXIgcXQ9TCgiQXJyYXlCdWZmZXIiKTtmdW5jdGlvbiB2ZShBKXtsZXQgdDtyZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyPCJ1IiYmQXJyYXlCdWZmZXIuaXNWaWV3P3Q9QXJyYXlCdWZmZXIuaXNWaWV3KEEpOnQ9QSYmQS5idWZmZXImJnF0KEEuYnVmZmVyKSx0fXZhciAkZT1HQSgic3RyaW5nIiksTj1HQSgiZnVuY3Rpb24iKSxNdD1HQSgibnVtYmVyIiksaUE9QT0+QSE9PW51bGwmJnR5cGVvZiBBPT0ib2JqZWN0IixBST1BPT5BPT09ITB8fEE9PT0hMSxSQT1BPT57aWYoVUEoQSkhPT0ib2JqZWN0IilyZXR1cm4hMTtsZXQgdD12QShBKTtyZXR1cm4odD09PW51bGx8fHQ9PT1PYmplY3QucHJvdG90eXBlfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCk9PT1udWxsKSYmIShZdCBpbiBBKSYmIShOQSBpbiBBKX0sdEk9QT0+e2lmKCFpQShBKXx8Z0EoQSkpcmV0dXJuITE7dHJ5e3JldHVybiBPYmplY3Qua2V5cyhBKS5sZW5ndGg9PT0wJiZPYmplY3QuZ2V0UHJvdG90eXBlT2YoQSk9PT1PYmplY3QucHJvdG90eXBlfWNhdGNoe3JldHVybiExfX0sZUk9TCgiRGF0ZSIpLElJPUwoIkZpbGUiKSxyST1MKCJCbG9iIiksb0k9TCgiRmlsZUxpc3QiKSxnST1BPT5pQShBKSYmTihBLnBpcGUpLGlJPUE9PntsZXQgdDtyZXR1cm4gQSYmKHR5cGVvZiBGb3JtRGF0YT09ImZ1bmN0aW9uIiYmQSBpbnN0YW5jZW9mIEZvcm1EYXRhfHxOKEEuYXBwZW5kKSYmKCh0PVVBKEEpKT09PSJmb3JtZGF0YSJ8fHQ9PT0ib2JqZWN0IiYmTihBLnRvU3RyaW5nKSYmQS50b1N0cmluZygpPT09IltvYmplY3QgRm9ybURhdGFdIikpfSxzST1MKCJVUkxTZWFyY2hQYXJhbXMiKSxbbkksQ0ksQkksYUldPVsiUmVhZGFibGVTdHJlYW0iLCJSZXF1ZXN0IiwiUmVzcG9uc2UiLCJIZWFkZXJzIl0ubWFwKEwpLFFJPUE9PkEudHJpbT9BLnRyaW0oKTpBLnJlcGxhY2UoL15bXFxzXFx1RkVGRlxceEEwXSt8W1xcc1xcdUZFRkZcXHhBMF0rJC9nLCIiKTtmdW5jdGlvbiBzQShBLHQse2FsbE93bktleXM6ZT0hMX09e30pe2lmKEE9PT1udWxsfHx0eXBlb2YgQT4idSIpcmV0dXJuO2xldCBJLHI7aWYodHlwZW9mIEEhPSJvYmplY3QiJiYoQT1bQV0pLHYoQSkpZm9yKEk9MCxyPUEubGVuZ3RoO0k8cjtJKyspdC5jYWxsKG51bGwsQVtJXSxJLEEpO2Vsc2V7aWYoZ0EoQSkpcmV0dXJuO2xldCBnPWU/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQSk6T2JqZWN0LmtleXMoQSksbz1nLmxlbmd0aCxuO2ZvcihJPTA7STxvO0krKyluPWdbSV0sdC5jYWxsKG51bGwsQVtuXSxuLEEpfX1mdW5jdGlvbiBLdChBLHQpe2lmKGdBKEEpKXJldHVybiBudWxsO3Q9dC50b0xvd2VyQ2FzZSgpO2xldCBlPU9iamVjdC5rZXlzKEEpLEk9ZS5sZW5ndGgscjtmb3IoO0ktLSA+MDspaWYocj1lW0ldLHQ9PT1yLnRvTG93ZXJDYXNlKCkpcmV0dXJuIHI7cmV0dXJuIG51bGx9dmFyIFo9dHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Omdsb2JhbCxPdD1BPT4heihBKSYmQSE9PVo7ZnVuY3Rpb24gekEoKXtsZXR7Y2FzZWxlc3M6QSxza2lwVW5kZWZpbmVkOnR9PU90KHRoaXMpJiZ0aGlzfHx7fSxlPXt9LEk9KHIsZyk9PntsZXQgbz1BJiZLdChlLGcpfHxnO1JBKGVbb10pJiZSQShyKT9lW29dPXpBKGVbb10scik6UkEocik/ZVtvXT16QSh7fSxyKTp2KHIpP2Vbb109ci5zbGljZSgpOighdHx8IXoocikpJiYoZVtvXT1yKX07Zm9yKGxldCByPTAsZz1hcmd1bWVudHMubGVuZ3RoO3I8ZztyKyspYXJndW1lbnRzW3JdJiZzQShhcmd1bWVudHNbcl0sSSk7cmV0dXJuIGV9dmFyIEVJPShBLHQsZSx7YWxsT3duS2V5czpJfT17fSk9PihzQSh0LChyLGcpPT57ZSYmTihyKT9BW2ddPW9BKHIsZSk6QVtnXT1yfSx7YWxsT3duS2V5czpJfSksQSksY0k9QT0+KEEuY2hhckNvZGVBdCgwKT09PTY1Mjc5JiYoQT1BLnNsaWNlKDEpKSxBKSxmST0oQSx0LGUsSSk9PntBLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlLEkpLEEucHJvdG90eXBlLmNvbnN0cnVjdG9yPUEsT2JqZWN0LmRlZmluZVByb3BlcnR5KEEsInN1cGVyIix7dmFsdWU6dC5wcm90b3R5cGV9KSxlJiZPYmplY3QuYXNzaWduKEEucHJvdG90eXBlLGUpfSxsST0oQSx0LGUsSSk9PntsZXQgcixnLG8sbj17fTtpZih0PXR8fHt9LEE9PW51bGwpcmV0dXJuIHQ7ZG97Zm9yKHI9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQSksZz1yLmxlbmd0aDtnLS0gPjA7KW89cltnXSwoIUl8fEkobyxBLHQpKSYmIW5bb10mJih0W29dPUFbb10sbltvXT0hMCk7QT1lIT09ITEmJnZBKEEpfXdoaWxlKEEmJighZXx8ZShBLHQpKSYmQSE9PU9iamVjdC5wcm90b3R5cGUpO3JldHVybiB0fSx1ST0oQSx0LGUpPT57QT1TdHJpbmcoQSksKGU9PT12b2lkIDB8fGU+QS5sZW5ndGgpJiYoZT1BLmxlbmd0aCksZS09dC5sZW5ndGg7bGV0IEk9QS5pbmRleE9mKHQsZSk7cmV0dXJuIEkhPT0tMSYmST09PWV9LGRJPUE9PntpZighQSlyZXR1cm4gbnVsbDtpZih2KEEpKXJldHVybiBBO2xldCB0PUEubGVuZ3RoO2lmKCFNdCh0KSlyZXR1cm4gbnVsbDtsZXQgZT1uZXcgQXJyYXkodCk7Zm9yKDt0LS0gPjA7KWVbdF09QVt0XTtyZXR1cm4gZX0sREk9KEE9PnQ9PkEmJnQgaW5zdGFuY2VvZiBBKSh0eXBlb2YgVWludDhBcnJheTwidSImJnZBKFVpbnQ4QXJyYXkpKSxoST0oQSx0KT0+e2xldCBJPShBJiZBW05BXSkuY2FsbChBKSxyO2Zvcig7KHI9SS5uZXh0KCkpJiYhci5kb25lOyl7bGV0IGc9ci52YWx1ZTt0LmNhbGwoQSxnWzBdLGdbMV0pfX0seUk9KEEsdCk9PntsZXQgZSxJPVtdO2Zvcig7KGU9QS5leGVjKHQpKSE9PW51bGw7KUkucHVzaChlKTtyZXR1cm4gSX0sbUk9TCgiSFRNTEZvcm1FbGVtZW50Iiksd0k9QT0+QS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xcc10oW2EtelxcZF0pKFxcdyopL2csZnVuY3Rpb24oZSxJLHIpe3JldHVybiBJLnRvVXBwZXJDYXNlKCkrcn0pLEh0PSgoe2hhc093blByb3BlcnR5OkF9KT0+KHQsZSk9PkEuY2FsbCh0LGUpKShPYmplY3QucHJvdG90eXBlKSxwST1MKCJSZWdFeHAiKSxUdD0oQSx0KT0+e2xldCBlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEEpLEk9e307c0EoZSwocixnKT0+e2xldCBvOyhvPXQocixnLEEpKSE9PSExJiYoSVtnXT1vfHxyKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEEsSSl9LFNJPUE9PntUdChBLCh0LGUpPT57aWYoTihBKSYmWyJhcmd1bWVudHMiLCJjYWxsZXIiLCJjYWxsZWUiXS5pbmRleE9mKGUpIT09LTEpcmV0dXJuITE7bGV0IEk9QVtlXTtpZihOKEkpKXtpZih0LmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIHQpe3Qud3JpdGFibGU9ITE7cmV0dXJufXQuc2V0fHwodC5zZXQ9KCk9Pnt0aHJvdyBFcnJvcigiQ2FuIG5vdCByZXdyaXRlIHJlYWQtb25seSBtZXRob2QgXCciK2UrIlwnIil9KX19KX0sRkk9KEEsdCk9PntsZXQgZT17fSxJPXI9PntyLmZvckVhY2goZz0+e2VbZ109ITB9KX07cmV0dXJuIHYoQSk/SShBKTpJKFN0cmluZyhBKS5zcGxpdCh0KSksZX0sUkk9KCk9Pnt9LE5JPShBLHQpPT5BIT1udWxsJiZOdW1iZXIuaXNGaW5pdGUoQT0rQSk/QTp0O2Z1bmN0aW9uIFVJKEEpe3JldHVybiEhKEEmJk4oQS5hcHBlbmQpJiZBW1l0XT09PSJGb3JtRGF0YSImJkFbTkFdKX12YXIgR0k9QT0+e2xldCB0PW5ldyBBcnJheSgxMCksZT0oSSxyKT0+e2lmKGlBKEkpKXtpZih0LmluZGV4T2YoSSk+PTApcmV0dXJuO2lmKGdBKEkpKXJldHVybiBJO2lmKCEoInRvSlNPTiJpbiBJKSl7dFtyXT1JO2xldCBnPXYoSSk/W106e307cmV0dXJuIHNBKEksKG8sbik9PntsZXQgRT1lKG8scisxKTsheihFKSYmKGdbbl09RSl9KSx0W3JdPXZvaWQgMCxnfX1yZXR1cm4gSX07cmV0dXJuIGUoQSwwKX0sa0k9TCgiQXN5bmNGdW5jdGlvbiIpLExJPUE9PkEmJihpQShBKXx8TihBKSkmJk4oQS50aGVuKSYmTihBLmNhdGNoKSx4dD0oKEEsdCk9PkE/c2V0SW1tZWRpYXRlOnQ/KChlLEkpPT4oWi5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwoe3NvdXJjZTpyLGRhdGE6Z30pPT57cj09PVomJmc9PT1lJiZJLmxlbmd0aCYmSS5zaGlmdCgpKCl9LCExKSxyPT57SS5wdXNoKHIpLFoucG9zdE1lc3NhZ2UoZSwiKiIpfSkpKGBheGlvc0Ake01hdGgucmFuZG9tKCl9YCxbXSk6ZT0+c2V0VGltZW91dChlKSkodHlwZW9mIHNldEltbWVkaWF0ZT09ImZ1bmN0aW9uIixOKFoucG9zdE1lc3NhZ2UpKSxiST10eXBlb2YgcXVldWVNaWNyb3Rhc2s8InUiP3F1ZXVlTWljcm90YXNrLmJpbmQoWik6dHlwZW9mIHByb2Nlc3M8InUiJiZwcm9jZXNzLm5leHRUaWNrfHx4dCxKST1BPT5BIT1udWxsJiZOKEFbTkFdKSxpPXtpc0FycmF5OnYsaXNBcnJheUJ1ZmZlcjpxdCxpc0J1ZmZlcjpnQSxpc0Zvcm1EYXRhOmlJLGlzQXJyYXlCdWZmZXJWaWV3OnZlLGlzU3RyaW5nOiRlLGlzTnVtYmVyOk10LGlzQm9vbGVhbjpBSSxpc09iamVjdDppQSxpc1BsYWluT2JqZWN0OlJBLGlzRW1wdHlPYmplY3Q6dEksaXNSZWFkYWJsZVN0cmVhbTpuSSxpc1JlcXVlc3Q6Q0ksaXNSZXNwb25zZTpCSSxpc0hlYWRlcnM6YUksaXNVbmRlZmluZWQ6eixpc0RhdGU6ZUksaXNGaWxlOklJLGlzQmxvYjpySSxpc1JlZ0V4cDpwSSxpc0Z1bmN0aW9uOk4saXNTdHJlYW06Z0ksaXNVUkxTZWFyY2hQYXJhbXM6c0ksaXNUeXBlZEFycmF5OkRJLGlzRmlsZUxpc3Q6b0ksZm9yRWFjaDpzQSxtZXJnZTp6QSxleHRlbmQ6RUksdHJpbTpRSSxzdHJpcEJPTTpjSSxpbmhlcml0czpmSSx0b0ZsYXRPYmplY3Q6bEksa2luZE9mOlVBLGtpbmRPZlRlc3Q6TCxlbmRzV2l0aDp1SSx0b0FycmF5OmRJLGZvckVhY2hFbnRyeTpoSSxtYXRjaEFsbDp5SSxpc0hUTUxGb3JtOm1JLGhhc093blByb3BlcnR5Okh0LGhhc093blByb3A6SHQscmVkdWNlRGVzY3JpcHRvcnM6VHQsZnJlZXplTWV0aG9kczpTSSx0b09iamVjdFNldDpGSSx0b0NhbWVsQ2FzZTp3SSxub29wOlJJLHRvRmluaXRlTnVtYmVyOk5JLGZpbmRLZXk6S3QsZ2xvYmFsOlosaXNDb250ZXh0RGVmaW5lZDpPdCxpc1NwZWNDb21wbGlhbnRGb3JtOlVJLHRvSlNPTk9iamVjdDpHSSxpc0FzeW5jRm46a0ksaXNUaGVuYWJsZTpMSSxzZXRJbW1lZGlhdGU6eHQsYXNhcDpiSSxpc0l0ZXJhYmxlOkpJfTtmdW5jdGlvbiAkKEEsdCxlLEkscil7RXJyb3IuY2FsbCh0aGlzKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLHRoaXMuY29uc3RydWN0b3IpOnRoaXMuc3RhY2s9bmV3IEVycm9yKCkuc3RhY2ssdGhpcy5tZXNzYWdlPUEsdGhpcy5uYW1lPSJBeGlvc0Vycm9yIix0JiYodGhpcy5jb2RlPXQpLGUmJih0aGlzLmNvbmZpZz1lKSxJJiYodGhpcy5yZXF1ZXN0PUkpLHImJih0aGlzLnJlc3BvbnNlPXIsdGhpcy5zdGF0dXM9ci5zdGF0dXM/ci5zdGF0dXM6bnVsbCl9aS5pbmhlcml0cygkLEVycm9yLHt0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6aS50b0pTT05PYmplY3QodGhpcy5jb25maWcpLGNvZGU6dGhpcy5jb2RlLHN0YXR1czp0aGlzLnN0YXR1c319fSk7dmFyIFB0PSQucHJvdG90eXBlLGp0PXt9O1siRVJSX0JBRF9PUFRJT05fVkFMVUUiLCJFUlJfQkFEX09QVElPTiIsIkVDT05OQUJPUlRFRCIsIkVUSU1FRE9VVCIsIkVSUl9ORVRXT1JLIiwiRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUUyIsIkVSUl9ERVBSRUNBVEVEIiwiRVJSX0JBRF9SRVNQT05TRSIsIkVSUl9CQURfUkVRVUVTVCIsIkVSUl9DQU5DRUxFRCIsIkVSUl9OT1RfU1VQUE9SVCIsIkVSUl9JTlZBTElEX1VSTCJdLmZvckVhY2goQT0+e2p0W0FdPXt2YWx1ZTpBfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKCQsanQpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShQdCwiaXNBeGlvc0Vycm9yIix7dmFsdWU6ITB9KTskLmZyb209KEEsdCxlLEkscixnKT0+e2xldCBvPU9iamVjdC5jcmVhdGUoUHQpO2kudG9GbGF0T2JqZWN0KEEsbyxmdW5jdGlvbihzKXtyZXR1cm4gcyE9PUVycm9yLnByb3RvdHlwZX0sQj0+QiE9PSJpc0F4aW9zRXJyb3IiKTtsZXQgbj1BJiZBLm1lc3NhZ2U/QS5tZXNzYWdlOiJFcnJvciIsRT10PT1udWxsJiZBP0EuY29kZTp0O3JldHVybiAkLmNhbGwobyxuLEUsZSxJLHIpLEEmJm8uY2F1c2U9PW51bGwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCJjYXVzZSIse3ZhbHVlOkEsY29uZmlndXJhYmxlOiEwfSksby5uYW1lPUEmJkEubmFtZXx8IkVycm9yIixnJiZPYmplY3QuYXNzaWduKG8sZyksb307dmFyIHU9JDt2YXIga0E9bnVsbDtmdW5jdGlvbiAkQShBKXtyZXR1cm4gaS5pc1BsYWluT2JqZWN0KEEpfHxpLmlzQXJyYXkoQSl9ZnVuY3Rpb24gWnQoQSl7cmV0dXJuIGkuZW5kc1dpdGgoQSwiW10iKT9BLnNsaWNlKDAsLTIpOkF9ZnVuY3Rpb24gV3QoQSx0LGUpe3JldHVybiBBP0EuY29uY2F0KHQpLm1hcChmdW5jdGlvbihyLGcpe3JldHVybiByPVp0KHIpLCFlJiZnPyJbIityKyJdIjpyfSkuam9pbihlPyIuIjoiIik6dH1mdW5jdGlvbiBISShBKXtyZXR1cm4gaS5pc0FycmF5KEEpJiYhQS5zb21lKCRBKX12YXIgWUk9aS50b0ZsYXRPYmplY3QoaSx7fSxudWxsLGZ1bmN0aW9uKHQpe3JldHVybi9eaXNbQS1aXS8udGVzdCh0KX0pO2Z1bmN0aW9uIHFJKEEsdCxlKXtpZighaS5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ0YXJnZXQgbXVzdCBiZSBhbiBvYmplY3QiKTt0PXR8fG5ldyhrQXx8Rm9ybURhdGEpLGU9aS50b0ZsYXRPYmplY3QoZSx7bWV0YVRva2VuczohMCxkb3RzOiExLGluZGV4ZXM6ITF9LCExLGZ1bmN0aW9uKGYsYyl7cmV0dXJuIWkuaXNVbmRlZmluZWQoY1tmXSl9KTtsZXQgST1lLm1ldGFUb2tlbnMscj1lLnZpc2l0b3J8fHMsZz1lLmRvdHMsbz1lLmluZGV4ZXMsRT0oZS5CbG9ifHx0eXBlb2YgQmxvYjwidSImJkJsb2IpJiZpLmlzU3BlY0NvbXBsaWFudEZvcm0odCk7aWYoIWkuaXNGdW5jdGlvbihyKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ2aXNpdG9yIG11c3QgYmUgYSBmdW5jdGlvbiIpO2Z1bmN0aW9uIEIoUSl7aWYoUT09PW51bGwpcmV0dXJuIiI7aWYoaS5pc0RhdGUoUSkpcmV0dXJuIFEudG9JU09TdHJpbmcoKTtpZihpLmlzQm9vbGVhbihRKSlyZXR1cm4gUS50b1N0cmluZygpO2lmKCFFJiZpLmlzQmxvYihRKSl0aHJvdyBuZXcgdSgiQmxvYiBpcyBub3Qgc3VwcG9ydGVkLiBVc2UgYSBCdWZmZXIgaW5zdGVhZC4iKTtyZXR1cm4gaS5pc0FycmF5QnVmZmVyKFEpfHxpLmlzVHlwZWRBcnJheShRKT9FJiZ0eXBlb2YgQmxvYj09ImZ1bmN0aW9uIj9uZXcgQmxvYihbUV0pOkJ1ZmZlci5mcm9tKFEpOlF9ZnVuY3Rpb24gcyhRLGYsYyl7bGV0IEQ9UTtpZihRJiYhYyYmdHlwZW9mIFE9PSJvYmplY3QiKXtpZihpLmVuZHNXaXRoKGYsInt9IikpZj1JP2Y6Zi5zbGljZSgwLC0yKSxRPUpTT04uc3RyaW5naWZ5KFEpO2Vsc2UgaWYoaS5pc0FycmF5KFEpJiZISShRKXx8KGkuaXNGaWxlTGlzdChRKXx8aS5lbmRzV2l0aChmLCJbXSIpKSYmKEQ9aS50b0FycmF5KFEpKSlyZXR1cm4gZj1adChmKSxELmZvckVhY2goZnVuY3Rpb24oeSxSKXshKGkuaXNVbmRlZmluZWQoeSl8fHk9PT1udWxsKSYmdC5hcHBlbmQobz09PSEwP1d0KFtmXSxSLGcpOm89PT1udWxsP2Y6ZisiW10iLEIoeSkpfSksITF9cmV0dXJuICRBKFEpPyEwOih0LmFwcGVuZChXdChjLGYsZyksQihRKSksITEpfWxldCBDPVtdLGw9T2JqZWN0LmFzc2lnbihZSSx7ZGVmYXVsdFZpc2l0b3I6cyxjb252ZXJ0VmFsdWU6Qixpc1Zpc2l0YWJsZTokQX0pO2Z1bmN0aW9uIGEoUSxmKXtpZighaS5pc1VuZGVmaW5lZChRKSl7aWYoQy5pbmRleE9mKFEpIT09LTEpdGhyb3cgRXJyb3IoIkNpcmN1bGFyIHJlZmVyZW5jZSBkZXRlY3RlZCBpbiAiK2Yuam9pbigiLiIpKTtDLnB1c2goUSksaS5mb3JFYWNoKFEsZnVuY3Rpb24oRCxGKXsoIShpLmlzVW5kZWZpbmVkKEQpfHxEPT09bnVsbCkmJnIuY2FsbCh0LEQsaS5pc1N0cmluZyhGKT9GLnRyaW0oKTpGLGYsbCkpPT09ITAmJmEoRCxmP2YuY29uY2F0KEYpOltGXSl9KSxDLnBvcCgpfX1pZighaS5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJkYXRhIG11c3QgYmUgYW4gb2JqZWN0Iik7cmV0dXJuIGEoQSksdH12YXIgVD1xSTtmdW5jdGlvbiBWdChBKXtsZXQgdD17IiEiOiIlMjUyMSIsIlwnIjoiJTI1MjciLCIoIjoiJTI1MjgiLCIpIjoiJTI1MjkiLCJ+IjoiJTI1N0UiLCIlMjUyMCI6IisiLCIlMjUwMCI6IlxcMCJ9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyFcJygpfl18JTI1MjB8JTI1MDAvZyxmdW5jdGlvbihJKXtyZXR1cm4gdFtJXX0pfWZ1bmN0aW9uIFh0KEEsdCl7dGhpcy5fcGFpcnM9W10sQSYmVChBLHRoaXMsdCl9dmFyIF90PVh0LnByb3RvdHlwZTtfdC5hcHBlbmQ9ZnVuY3Rpb24odCxlKXt0aGlzLl9wYWlycy5wdXNoKFt0LGVdKX07X3QudG9TdHJpbmc9ZnVuY3Rpb24odCl7bGV0IGU9dD9mdW5jdGlvbihJKXtyZXR1cm4gdC5jYWxsKHRoaXMsSSxWdCl9OlZ0O3JldHVybiB0aGlzLl9wYWlycy5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIGUoclswXSkrIj0iK2UoclsxXSl9LCIiKS5qb2luKCImIil9O3ZhciBMQT1YdDtmdW5jdGlvbiBNSShBKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEEpLnJlcGxhY2UoLyUyNTNBL2dpLCI6IikucmVwbGFjZSgvJTI1MjQvZywiJCIpLnJlcGxhY2UoLyUyNTJDL2dpLCIsIikucmVwbGFjZSgvJTI1MjAvZywiKyIpfWZ1bmN0aW9uIG5BKEEsdCxlKXtpZighdClyZXR1cm4gQTtsZXQgST1lJiZlLmVuY29kZXx8TUk7aS5pc0Z1bmN0aW9uKGUpJiYoZT17c2VyaWFsaXplOmV9KTtsZXQgcj1lJiZlLnNlcmlhbGl6ZSxnO2lmKHI/Zz1yKHQsZSk6Zz1pLmlzVVJMU2VhcmNoUGFyYW1zKHQpP3QudG9TdHJpbmcoKTpuZXcgTEEodCxlKS50b1N0cmluZyhJKSxnKXtsZXQgbz1BLmluZGV4T2YoIiUyMyIpO28hPT0tMSYmKEE9QS5zbGljZSgwLG8pKSxBKz0oQS5pbmRleE9mKCI/Iik9PT0tMT8iPyI6IiYiKStnfXJldHVybiBBfXZhciBBdD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaGFuZGxlcnM9W119dXNlKHQsZSxJKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6dCxyZWplY3RlZDplLHN5bmNocm9ub3VzOkk/SS5zeW5jaHJvbm91czohMSxydW5XaGVuOkk/SS5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfWVqZWN0KHQpe3RoaXMuaGFuZGxlcnNbdF0mJih0aGlzLmhhbmRsZXJzW3RdPW51bGwpfWNsZWFyKCl7dGhpcy5oYW5kbGVycyYmKHRoaXMuaGFuZGxlcnM9W10pfWZvckVhY2godCl7aS5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24oSSl7SSE9PW51bGwmJnQoSSl9KX19LHR0PUF0O3ZhciBiQT17c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX07dmFyIHp0PXR5cGVvZiBVUkxTZWFyY2hQYXJhbXM8InUiP1VSTFNlYXJjaFBhcmFtczpMQTt2YXIgdnQ9dHlwZW9mIEZvcm1EYXRhPCJ1Ij9Gb3JtRGF0YTpudWxsO3ZhciAkdD10eXBlb2YgQmxvYjwidSI/QmxvYjpudWxsO3ZhciBBZT17aXNCcm93c2VyOiEwLGNsYXNzZXM6e1VSTFNlYXJjaFBhcmFtczp6dCxGb3JtRGF0YTp2dCxCbG9iOiR0fSxwcm90b2NvbHM6WyJodHRwIiwiaHR0cHMiLCJmaWxlIiwiYmxvYiIsInVybCIsImRhdGEiXX07dmFyIHJ0PXt9O3FlKHJ0LHtoYXNCcm93c2VyRW52OigpPT5JdCxoYXNTdGFuZGFyZEJyb3dzZXJFbnY6KCk9PktJLGhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudjooKT0+T0ksbmF2aWdhdG9yOigpPT5ldCxvcmlnaW46KCk9PlRJfSk7dmFyIEl0PXR5cGVvZiB3aW5kb3c8InUiJiZ0eXBlb2YgZG9jdW1lbnQ8InUiLGV0PXR5cGVvZiBuYXZpZ2F0b3I9PSJvYmplY3QiJiZuYXZpZ2F0b3J8fHZvaWQgMCxLST1JdCYmKCFldHx8WyJSZWFjdE5hdGl2ZSIsIk5hdGl2ZVNjcmlwdCIsIk5TIl0uaW5kZXhPZihldC5wcm9kdWN0KTwwKSxPST10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU8InUiJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnR5cGVvZiBzZWxmLmltcG9ydFNjcmlwdHM9PSJmdW5jdGlvbiIsVEk9SXQmJndpbmRvdy5sb2NhdGlvbi5ocmVmfHwiaHR0cDovL2xvY2FsaG9zdCI7dmFyIGg9ey4uLnJ0LC4uLkFlfTtmdW5jdGlvbiBvdChBLHQpe3JldHVybiBUKEEsbmV3IGguY2xhc3Nlcy5VUkxTZWFyY2hQYXJhbXMse3Zpc2l0b3I6ZnVuY3Rpb24oZSxJLHIsZyl7cmV0dXJuIGguaXNOb2RlJiZpLmlzQnVmZmVyKGUpPyh0aGlzLmFwcGVuZChJLGUudG9TdHJpbmcoImJhc2U2NCIpKSwhMSk6Zy5kZWZhdWx0VmlzaXRvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LC4uLnR9KX1mdW5jdGlvbiB4SShBKXtyZXR1cm4gaS5tYXRjaEFsbCgvXFx3K3xcXFsoXFx3KildL2csQSkubWFwKHQ9PnRbMF09PT0iW10iPyIiOnRbMV18fHRbMF0pfWZ1bmN0aW9uIFBJKEEpe2xldCB0PXt9LGU9T2JqZWN0LmtleXMoQSksSSxyPWUubGVuZ3RoLGc7Zm9yKEk9MDtJPHI7SSsrKWc9ZVtJXSx0W2ddPUFbZ107cmV0dXJuIHR9ZnVuY3Rpb24gakkoQSl7ZnVuY3Rpb24gdChlLEkscixnKXtsZXQgbz1lW2crK107aWYobz09PSJfX3Byb3RvX18iKXJldHVybiEwO2xldCBuPU51bWJlci5pc0Zpbml0ZSgrbyksRT1nPj1lLmxlbmd0aDtyZXR1cm4gbz0hbyYmaS5pc0FycmF5KHIpP3IubGVuZ3RoOm8sRT8oaS5oYXNPd25Qcm9wKHIsbyk/cltvXT1bcltvXSxJXTpyW29dPUksIW4pOigoIXJbb118fCFpLmlzT2JqZWN0KHJbb10pKSYmKHJbb109W10pLHQoZSxJLHJbb10sZykmJmkuaXNBcnJheShyW29dKSYmKHJbb109UEkocltvXSkpLCFuKX1pZihpLmlzRm9ybURhdGEoQSkmJmkuaXNGdW5jdGlvbihBLmVudHJpZXMpKXtsZXQgZT17fTtyZXR1cm4gaS5mb3JFYWNoRW50cnkoQSwoSSxyKT0+e3QoeEkoSSkscixlLDApfSksZX1yZXR1cm4gbnVsbH12YXIgSkE9akk7ZnVuY3Rpb24gV0koQSx0LGUpe2lmKGkuaXNTdHJpbmcoQSkpdHJ5e3JldHVybih0fHxKU09OLnBhcnNlKShBKSxpLnRyaW0oQSl9Y2F0Y2goSSl7aWYoSS5uYW1lIT09IlN5bnRheEVycm9yIil0aHJvdyBJfXJldHVybihlfHxKU09OLnN0cmluZ2lmeSkoQSl9dmFyIGd0PXt0cmFuc2l0aW9uYWw6YkEsYWRhcHRlcjpbInhociIsImh0dHAiLCJmZXRjaCJdLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKHQsZSl7bGV0IEk9ZS5nZXRDb250ZW50VHlwZSgpfHwiIixyPUkuaW5kZXhPZigiYXBwbGljYXRpb24vanNvbiIpPi0xLGc9aS5pc09iamVjdCh0KTtpZihnJiZpLmlzSFRNTEZvcm0odCkmJih0PW5ldyBGb3JtRGF0YSh0KSksaS5pc0Zvcm1EYXRhKHQpKXJldHVybiByP0pTT04uc3RyaW5naWZ5KEpBKHQpKTp0O2lmKGkuaXNBcnJheUJ1ZmZlcih0KXx8aS5pc0J1ZmZlcih0KXx8aS5pc1N0cmVhbSh0KXx8aS5pc0ZpbGUodCl8fGkuaXNCbG9iKHQpfHxpLmlzUmVhZGFibGVTdHJlYW0odCkpcmV0dXJuIHQ7aWYoaS5pc0FycmF5QnVmZmVyVmlldyh0KSlyZXR1cm4gdC5idWZmZXI7aWYoaS5pc1VSTFNlYXJjaFBhcmFtcyh0KSlyZXR1cm4gZS5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiLCExKSx0LnRvU3RyaW5nKCk7bGV0IG47aWYoZyl7aWYoSS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKT4tMSlyZXR1cm4gb3QodCx0aGlzLmZvcm1TZXJpYWxpemVyKS50b1N0cmluZygpO2lmKChuPWkuaXNGaWxlTGlzdCh0KSl8fEkuaW5kZXhPZigibXVsdGlwYXJ0L2Zvcm0tZGF0YSIpPi0xKXtsZXQgRT10aGlzLmVudiYmdGhpcy5lbnYuRm9ybURhdGE7cmV0dXJuIFQobj97ImZpbGVzW10iOnR9OnQsRSYmbmV3IEUsdGhpcy5mb3JtU2VyaWFsaXplcil9fXJldHVybiBnfHxyPyhlLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi9qc29uIiwhMSksV0kodCkpOnR9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24odCl7bGV0IGU9dGhpcy50cmFuc2l0aW9uYWx8fGd0LnRyYW5zaXRpb25hbCxJPWUmJmUuZm9yY2VkSlNPTlBhcnNpbmcscj10aGlzLnJlc3BvbnNlVHlwZT09PSJqc29uIjtpZihpLmlzUmVzcG9uc2UodCl8fGkuaXNSZWFkYWJsZVN0cmVhbSh0KSlyZXR1cm4gdDtpZih0JiZpLmlzU3RyaW5nKHQpJiYoSSYmIXRoaXMucmVzcG9uc2VUeXBlfHxyKSl7bGV0IG89IShlJiZlLnNpbGVudEpTT05QYXJzaW5nKSYmcjt0cnl7cmV0dXJuIEpTT04ucGFyc2UodCx0aGlzLnBhcnNlUmV2aXZlcil9Y2F0Y2gobil7aWYobyl0aHJvdyBuLm5hbWU9PT0iU3ludGF4RXJyb3IiP3UuZnJvbShuLHUuRVJSX0JBRF9SRVNQT05TRSx0aGlzLG51bGwsdGhpcy5yZXNwb25zZSk6bn19cmV0dXJuIHR9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSxlbnY6e0Zvcm1EYXRhOmguY2xhc3Nlcy5Gb3JtRGF0YSxCbG9iOmguY2xhc3Nlcy5CbG9ifSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbih0KXtyZXR1cm4gdD49MjAwJiZ0PDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiIsIkNvbnRlbnQtVHlwZSI6dm9pZCAwfX19O2kuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giXSxBPT57Z3QuaGVhZGVyc1tBXT17fX0pO3ZhciBBQT1ndDt2YXIgWkk9aS50b09iamVjdFNldChbImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdKSx0ZT1BPT57bGV0IHQ9e30sZSxJLHI7cmV0dXJuIEEmJkEuc3BsaXQoYCUwQWApLmZvckVhY2goZnVuY3Rpb24obyl7cj1vLmluZGV4T2YoIjoiKSxlPW8uc3Vic3RyaW5nKDAscikudHJpbSgpLnRvTG93ZXJDYXNlKCksST1vLnN1YnN0cmluZyhyKzEpLnRyaW0oKSwhKCFlfHx0W2VdJiZaSVtlXSkmJihlPT09InNldC1jb29raWUiP3RbZV0/dFtlXS5wdXNoKEkpOnRbZV09W0ldOnRbZV09dFtlXT90W2VdKyIsICIrSTpJKX0pLHR9O3ZhciBlZT1TeW1ib2woImludGVybmFscyIpO2Z1bmN0aW9uIENBKEEpe3JldHVybiBBJiZTdHJpbmcoQSkudHJpbSgpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gSEEoQSl7cmV0dXJuIEE9PT0hMXx8QT09bnVsbD9BOmkuaXNBcnJheShBKT9BLm1hcChIQSk6U3RyaW5nKEEpfWZ1bmN0aW9uIFZJKEEpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCksZT0vKFteXFxzLDs9XSspXFxzKig/Oj1cXHMqKFteLDtdKykpPy9nLEk7Zm9yKDtJPWUuZXhlYyhBKTspdFtJWzFdXT1JWzJdO3JldHVybiB0fXZhciBYST1BPT4vXlstX2EtekEtWjAtOV5gfH4sISUyMyQlJlwnKisuXSskLy50ZXN0KEEudHJpbSgpKTtmdW5jdGlvbiBpdChBLHQsZSxJLHIpe2lmKGkuaXNGdW5jdGlvbihJKSlyZXR1cm4gSS5jYWxsKHRoaXMsdCxlKTtpZihyJiYodD1lKSwhIWkuaXNTdHJpbmcodCkpe2lmKGkuaXNTdHJpbmcoSSkpcmV0dXJuIHQuaW5kZXhPZihJKSE9PS0xO2lmKGkuaXNSZWdFeHAoSSkpcmV0dXJuIEkudGVzdCh0KX19ZnVuY3Rpb24gX0koQSl7cmV0dXJuIEEudHJpbSgpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvKFthLXpcXGRdKShcXHcqKS9nLCh0LGUsSSk9PmUudG9VcHBlckNhc2UoKStJKX1mdW5jdGlvbiB6SShBLHQpe2xldCBlPWkudG9DYW1lbENhc2UoIiAiK3QpO1siZ2V0Iiwic2V0IiwiaGFzIl0uZm9yRWFjaChJPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsSStlLHt2YWx1ZTpmdW5jdGlvbihyLGcsbyl7cmV0dXJuIHRoaXNbSV0uY2FsbCh0aGlzLHQscixnLG8pfSxjb25maWd1cmFibGU6ITB9KX0pfXZhciB0QT1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0JiZ0aGlzLnNldCh0KX1zZXQodCxlLEkpe2xldCByPXRoaXM7ZnVuY3Rpb24gZyhuLEUsQil7bGV0IHM9Q0EoRSk7aWYoIXMpdGhyb3cgbmV3IEVycm9yKCJoZWFkZXIgbmFtZSBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZyIpO2xldCBDPWkuZmluZEtleShyLHMpOyghQ3x8cltDXT09PXZvaWQgMHx8Qj09PSEwfHxCPT09dm9pZCAwJiZyW0NdIT09ITEpJiYocltDfHxFXT1IQShuKSl9bGV0IG89KG4sRSk9PmkuZm9yRWFjaChuLChCLHMpPT5nKEIscyxFKSk7aWYoaS5pc1BsYWluT2JqZWN0KHQpfHx0IGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3RvcilvKHQsZSk7ZWxzZSBpZihpLmlzU3RyaW5nKHQpJiYodD10LnRyaW0oKSkmJiFYSSh0KSlvKHRlKHQpLGUpO2Vsc2UgaWYoaS5pc09iamVjdCh0KSYmaS5pc0l0ZXJhYmxlKHQpKXtsZXQgbj17fSxFLEI7Zm9yKGxldCBzIG9mIHQpe2lmKCFpLmlzQXJyYXkocykpdGhyb3cgVHlwZUVycm9yKCJPYmplY3QgaXRlcmF0b3IgbXVzdCByZXR1cm4gYSBrZXktdmFsdWUgcGFpciIpO25bQj1zWzBdXT0oRT1uW0JdKT9pLmlzQXJyYXkoRSk/Wy4uLkUsc1sxXV06W0Usc1sxXV06c1sxXX1vKG4sZSl9ZWxzZSB0IT1udWxsJiZnKGUsdCxJKTtyZXR1cm4gdGhpc31nZXQodCxlKXtpZih0PUNBKHQpLHQpe2xldCBJPWkuZmluZEtleSh0aGlzLHQpO2lmKEkpe2xldCByPXRoaXNbSV07aWYoIWUpcmV0dXJuIHI7aWYoZT09PSEwKXJldHVybiBWSShyKTtpZihpLmlzRnVuY3Rpb24oZSkpcmV0dXJuIGUuY2FsbCh0aGlzLHIsSSk7aWYoaS5pc1JlZ0V4cChlKSlyZXR1cm4gZS5leGVjKHIpO3Rocm93IG5ldyBUeXBlRXJyb3IoInBhcnNlciBtdXN0IGJlIGJvb2xlYW58cmVnZXhwfGZ1bmN0aW9uIil9fX1oYXModCxlKXtpZih0PUNBKHQpLHQpe2xldCBJPWkuZmluZEtleSh0aGlzLHQpO3JldHVybiEhKEkmJnRoaXNbSV0hPT12b2lkIDAmJighZXx8aXQodGhpcyx0aGlzW0ldLEksZSkpKX1yZXR1cm4hMX1kZWxldGUodCxlKXtsZXQgST10aGlzLHI9ITE7ZnVuY3Rpb24gZyhvKXtpZihvPUNBKG8pLG8pe2xldCBuPWkuZmluZEtleShJLG8pO24mJighZXx8aXQoSSxJW25dLG4sZSkpJiYoZGVsZXRlIElbbl0scj0hMCl9fXJldHVybiBpLmlzQXJyYXkodCk/dC5mb3JFYWNoKGcpOmcodCkscn1jbGVhcih0KXtsZXQgZT1PYmplY3Qua2V5cyh0aGlzKSxJPWUubGVuZ3RoLHI9ITE7Zm9yKDtJLS07KXtsZXQgZz1lW0ldOyghdHx8aXQodGhpcyx0aGlzW2ddLGcsdCwhMCkpJiYoZGVsZXRlIHRoaXNbZ10scj0hMCl9cmV0dXJuIHJ9bm9ybWFsaXplKHQpe2xldCBlPXRoaXMsST17fTtyZXR1cm4gaS5mb3JFYWNoKHRoaXMsKHIsZyk9PntsZXQgbz1pLmZpbmRLZXkoSSxnKTtpZihvKXtlW29dPUhBKHIpLGRlbGV0ZSBlW2ddO3JldHVybn1sZXQgbj10P19JKGcpOlN0cmluZyhnKS50cmltKCk7biE9PWcmJmRlbGV0ZSBlW2ddLGVbbl09SEEociksSVtuXT0hMH0pLHRoaXN9Y29uY2F0KC4uLnQpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yLmNvbmNhdCh0aGlzLC4uLnQpfXRvSlNPTih0KXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBpLmZvckVhY2godGhpcywoSSxyKT0+e0khPW51bGwmJkkhPT0hMSYmKGVbcl09dCYmaS5pc0FycmF5KEkpP0kuam9pbigiLCAiKTpJKX0pLGV9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSlbU3ltYm9sLml0ZXJhdG9yXSgpfXRvU3RyaW5nKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpLm1hcCgoW3QsZV0pPT50KyI6ICIrZSkuam9pbihgJTBBYCl9Z2V0U2V0Q29va2llKCl7cmV0dXJuIHRoaXMuZ2V0KCJzZXQtY29va2llIil8fFtdfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkF4aW9zSGVhZGVycyJ9c3RhdGljIGZyb20odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiB0aGlzP3Q6bmV3IHRoaXModCl9c3RhdGljIGNvbmNhdCh0LC4uLmUpe2xldCBJPW5ldyB0aGlzKHQpO3JldHVybiBlLmZvckVhY2gocj0+SS5zZXQocikpLEl9c3RhdGljIGFjY2Vzc29yKHQpe2xldCBJPSh0aGlzW2VlXT10aGlzW2VlXT17YWNjZXNzb3JzOnt9fSkuYWNjZXNzb3JzLHI9dGhpcy5wcm90b3R5cGU7ZnVuY3Rpb24gZyhvKXtsZXQgbj1DQShvKTtJW25dfHwoekkocixvKSxJW25dPSEwKX1yZXR1cm4gaS5pc0FycmF5KHQpP3QuZm9yRWFjaChnKTpnKHQpLHRoaXN9fTt0QS5hY2Nlc3NvcihbIkNvbnRlbnQtVHlwZSIsIkNvbnRlbnQtTGVuZ3RoIiwiQWNjZXB0IiwiQWNjZXB0LUVuY29kaW5nIiwiVXNlci1BZ2VudCIsIkF1dGhvcml6YXRpb24iXSk7aS5yZWR1Y2VEZXNjcmlwdG9ycyh0QS5wcm90b3R5cGUsKHt2YWx1ZTpBfSx0KT0+e2xldCBlPXRbMF0udG9VcHBlckNhc2UoKSt0LnNsaWNlKDEpO3JldHVybntnZXQ6KCk9PkEsc2V0KEkpe3RoaXNbZV09SX19fSk7aS5mcmVlemVNZXRob2RzKHRBKTt2YXIgcD10QTtmdW5jdGlvbiBCQShBLHQpe2xldCBlPXRoaXN8fEFBLEk9dHx8ZSxyPXAuZnJvbShJLmhlYWRlcnMpLGc9SS5kYXRhO3JldHVybiBpLmZvckVhY2goQSxmdW5jdGlvbihuKXtnPW4uY2FsbChlLGcsci5ub3JtYWxpemUoKSx0P3Quc3RhdHVzOnZvaWQgMCl9KSxyLm5vcm1hbGl6ZSgpLGd9ZnVuY3Rpb24gYUEoQSl7cmV0dXJuISEoQSYmQS5fX0NBTkNFTF9fKX1mdW5jdGlvbiBJZShBLHQsZSl7dS5jYWxsKHRoaXMsQT8/ImNhbmNlbGVkIix1LkVSUl9DQU5DRUxFRCx0LGUpLHRoaXMubmFtZT0iQ2FuY2VsZWRFcnJvciJ9aS5pbmhlcml0cyhJZSx1LHtfX0NBTkNFTF9fOiEwfSk7dmFyIEg9SWU7ZnVuY3Rpb24gUUEoQSx0LGUpe2xldCBJPWUuY29uZmlnLnZhbGlkYXRlU3RhdHVzOyFlLnN0YXR1c3x8IUl8fEkoZS5zdGF0dXMpP0EoZSk6dChuZXcgdSgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK2Uuc3RhdHVzLFt1LkVSUl9CQURfUkVRVUVTVCx1LkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3IoZS5zdGF0dXMvMTAwKS00XSxlLmNvbmZpZyxlLnJlcXVlc3QsZSkpfWZ1bmN0aW9uIHN0KEEpe2xldCB0PS9eKFstK1xcd117MSwyNX0pKDo/XFwvXFwvfDopLy5leGVjKEEpO3JldHVybiB0JiZ0WzFdfHwiIn1mdW5jdGlvbiB2SShBLHQpe0E9QXx8MTA7bGV0IGU9bmV3IEFycmF5KEEpLEk9bmV3IEFycmF5KEEpLHI9MCxnPTAsbztyZXR1cm4gdD10IT09dm9pZCAwP3Q6MWUzLGZ1bmN0aW9uKEUpe2xldCBCPURhdGUubm93KCkscz1JW2ddO298fChvPUIpLGVbcl09RSxJW3JdPUI7bGV0IEM9ZyxsPTA7Zm9yKDtDIT09cjspbCs9ZVtDKytdLEM9QyVBO2lmKHI9KHIrMSklQSxyPT09ZyYmKGc9KGcrMSklQSksQi1vPHQpcmV0dXJuO2xldCBhPXMmJkItcztyZXR1cm4gYT9NYXRoLnJvdW5kKGwqMWUzL2EpOnZvaWQgMH19dmFyIHJlPXZJO2Z1bmN0aW9uICRJKEEsdCl7bGV0IGU9MCxJPTFlMy90LHIsZyxvPShCLHM9RGF0ZS5ub3coKSk9PntlPXMscj1udWxsLGcmJihjbGVhclRpbWVvdXQoZyksZz1udWxsKSxBKC4uLkIpfTtyZXR1cm5bKC4uLkIpPT57bGV0IHM9RGF0ZS5ub3coKSxDPXMtZTtDPj1JP28oQixzKToocj1CLGd8fChnPXNldFRpbWVvdXQoKCk9PntnPW51bGwsbyhyKX0sSS1DKSkpfSwoKT0+ciYmbyhyKV19dmFyIG9lPSRJO3ZhciBlQT0oQSx0LGU9Myk9PntsZXQgST0wLHI9cmUoNTAsMjUwKTtyZXR1cm4gb2UoZz0+e2xldCBvPWcubG9hZGVkLG49Zy5sZW5ndGhDb21wdXRhYmxlP2cudG90YWw6dm9pZCAwLEU9by1JLEI9cihFKSxzPW88PW47ST1vO2xldCBDPXtsb2FkZWQ6byx0b3RhbDpuLHByb2dyZXNzOm4/by9uOnZvaWQgMCxieXRlczpFLHJhdGU6Qnx8dm9pZCAwLGVzdGltYXRlZDpCJiZuJiZzPyhuLW8pL0I6dm9pZCAwLGV2ZW50OmcsbGVuZ3RoQ29tcHV0YWJsZTpuIT1udWxsLFt0PyJkb3dubG9hZCI6InVwbG9hZCJdOiEwfTtBKEMpfSxlKX0sbnQ9KEEsdCk9PntsZXQgZT1BIT1udWxsO3JldHVybltJPT50WzBdKHtsZW5ndGhDb21wdXRhYmxlOmUsdG90YWw6QSxsb2FkZWQ6SX0pLHRbMV1dfSxDdD1BPT4oLi4udCk9PmkuYXNhcCgoKT0+QSguLi50KSk7dmFyIGdlPWguaGFzU3RhbmRhcmRCcm93c2VyRW52PygoQSx0KT0+ZT0+KGU9bmV3IFVSTChlLGgub3JpZ2luKSxBLnByb3RvY29sPT09ZS5wcm90b2NvbCYmQS5ob3N0PT09ZS5ob3N0JiYodHx8QS5wb3J0PT09ZS5wb3J0KSkpKG5ldyBVUkwoaC5vcmlnaW4pLGgubmF2aWdhdG9yJiYvKG1zaWV8dHJpZGVudCkvaS50ZXN0KGgubmF2aWdhdG9yLnVzZXJBZ2VudCkpOigpPT4hMDt2YXIgaWU9aC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/e3dyaXRlKEEsdCxlLEkscixnKXtsZXQgbz1bQSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpXTtpLmlzTnVtYmVyKGUpJiZvLnB1c2goImV4cGlyZXM9IituZXcgRGF0ZShlKS50b0dNVFN0cmluZygpKSxpLmlzU3RyaW5nKEkpJiZvLnB1c2goInBhdGg9IitJKSxpLmlzU3RyaW5nKHIpJiZvLnB1c2goImRvbWFpbj0iK3IpLGc9PT0hMCYmby5wdXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9by5qb2luKCI7ICIpfSxyZWFkKEEpe2xldCB0PWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxcXHMqKSgiK0ErIik9KFteO10qKSIpKTtyZXR1cm4gdD9kZWNvZGVVUklDb21wb25lbnQodFszXSk6bnVsbH0scmVtb3ZlKEEpe3RoaXMud3JpdGUoQSwiIixEYXRlLm5vdygpLTg2NGU1KX19Ont3cml0ZSgpe30scmVhZCgpe3JldHVybiBudWxsfSxyZW1vdmUoKXt9fTtmdW5jdGlvbiBCdChBKXtyZXR1cm4vXihbYS16XVthLXpcXGQrXFwtLl0qOik/XFwvXFwvL2kudGVzdChBKX1mdW5jdGlvbiBhdChBLHQpe3JldHVybiB0P0EucmVwbGFjZSgvXFwvP1xcLyQvLCIiKSsiLyIrdC5yZXBsYWNlKC9eXFwvKy8sIiIpOkF9ZnVuY3Rpb24gRUEoQSx0LGUpe2xldCBJPSFCdCh0KTtyZXR1cm4gQSYmKEl8fGU9PSExKT9hdChBLHQpOnR9dmFyIHNlPUE9PkEgaW5zdGFuY2VvZiBwP3suLi5BfTpBO2Z1bmN0aW9uIGIoQSx0KXt0PXR8fHt9O2xldCBlPXt9O2Z1bmN0aW9uIEkoQixzLEMsbCl7cmV0dXJuIGkuaXNQbGFpbk9iamVjdChCKSYmaS5pc1BsYWluT2JqZWN0KHMpP2kubWVyZ2UuY2FsbCh7Y2FzZWxlc3M6bH0sQixzKTppLmlzUGxhaW5PYmplY3Qocyk/aS5tZXJnZSh7fSxzKTppLmlzQXJyYXkocyk/cy5zbGljZSgpOnN9ZnVuY3Rpb24gcihCLHMsQyxsKXtpZihpLmlzVW5kZWZpbmVkKHMpKXtpZighaS5pc1VuZGVmaW5lZChCKSlyZXR1cm4gSSh2b2lkIDAsQixDLGwpfWVsc2UgcmV0dXJuIEkoQixzLEMsbCl9ZnVuY3Rpb24gZyhCLHMpe2lmKCFpLmlzVW5kZWZpbmVkKHMpKXJldHVybiBJKHZvaWQgMCxzKX1mdW5jdGlvbiBvKEIscyl7aWYoaS5pc1VuZGVmaW5lZChzKSl7aWYoIWkuaXNVbmRlZmluZWQoQikpcmV0dXJuIEkodm9pZCAwLEIpfWVsc2UgcmV0dXJuIEkodm9pZCAwLHMpfWZ1bmN0aW9uIG4oQixzLEMpe2lmKEMgaW4gdClyZXR1cm4gSShCLHMpO2lmKEMgaW4gQSlyZXR1cm4gSSh2b2lkIDAsQil9bGV0IEU9e3VybDpnLG1ldGhvZDpnLGRhdGE6ZyxiYXNlVVJMOm8sdHJhbnNmb3JtUmVxdWVzdDpvLHRyYW5zZm9ybVJlc3BvbnNlOm8scGFyYW1zU2VyaWFsaXplcjpvLHRpbWVvdXQ6byx0aW1lb3V0TWVzc2FnZTpvLHdpdGhDcmVkZW50aWFsczpvLHdpdGhYU1JGVG9rZW46byxhZGFwdGVyOm8scmVzcG9uc2VUeXBlOm8seHNyZkNvb2tpZU5hbWU6byx4c3JmSGVhZGVyTmFtZTpvLG9uVXBsb2FkUHJvZ3Jlc3M6byxvbkRvd25sb2FkUHJvZ3Jlc3M6byxkZWNvbXByZXNzOm8sbWF4Q29udGVudExlbmd0aDpvLG1heEJvZHlMZW5ndGg6byxiZWZvcmVSZWRpcmVjdDpvLHRyYW5zcG9ydDpvLGh0dHBBZ2VudDpvLGh0dHBzQWdlbnQ6byxjYW5jZWxUb2tlbjpvLHNvY2tldFBhdGg6byxyZXNwb25zZUVuY29kaW5nOm8sdmFsaWRhdGVTdGF0dXM6bixoZWFkZXJzOihCLHMsQyk9PnIoc2UoQiksc2UocyksQywhMCl9O3JldHVybiBpLmZvckVhY2goT2JqZWN0LmtleXMoey4uLkEsLi4udH0pLGZ1bmN0aW9uKHMpe2xldCBDPUVbc118fHIsbD1DKEFbc10sdFtzXSxzKTtpLmlzVW5kZWZpbmVkKGwpJiZDIT09bnx8KGVbc109bCl9KSxlfXZhciBZQT1BPT57bGV0IHQ9Yih7fSxBKSx7ZGF0YTplLHdpdGhYU1JGVG9rZW46SSx4c3JmSGVhZGVyTmFtZTpyLHhzcmZDb29raWVOYW1lOmcsaGVhZGVyczpvLGF1dGg6bn09dDtpZih0LmhlYWRlcnM9bz1wLmZyb20obyksdC51cmw9bkEoRUEodC5iYXNlVVJMLHQudXJsLHQuYWxsb3dBYnNvbHV0ZVVybHMpLEEucGFyYW1zLEEucGFyYW1zU2VyaWFsaXplciksbiYmby5zZXQoIkF1dGhvcml6YXRpb24iLCJCYXNpYyAiK2J0b2EoKG4udXNlcm5hbWV8fCIiKSsiOiIrKG4ucGFzc3dvcmQ/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KG4ucGFzc3dvcmQpKToiIikpKSxpLmlzRm9ybURhdGEoZSkpe2lmKGguaGFzU3RhbmRhcmRCcm93c2VyRW52fHxoLmhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudilvLnNldENvbnRlbnRUeXBlKHZvaWQgMCk7ZWxzZSBpZihpLmlzRnVuY3Rpb24oZS5nZXRIZWFkZXJzKSl7bGV0IEU9ZS5nZXRIZWFkZXJzKCksQj1bImNvbnRlbnQtdHlwZSIsImNvbnRlbnQtbGVuZ3RoIl07T2JqZWN0LmVudHJpZXMoRSkuZm9yRWFjaCgoW3MsQ10pPT57Qi5pbmNsdWRlcyhzLnRvTG93ZXJDYXNlKCkpJiZvLnNldChzLEMpfSl9fWlmKGguaGFzU3RhbmRhcmRCcm93c2VyRW52JiYoSSYmaS5pc0Z1bmN0aW9uKEkpJiYoST1JKHQpKSxJfHxJIT09ITEmJmdlKHQudXJsKSkpe2xldCBFPXImJmcmJmllLnJlYWQoZyk7RSYmby5zZXQocixFKX1yZXR1cm4gdH07dmFyIEFyPXR5cGVvZiBYTUxIdHRwUmVxdWVzdDwidSIsbmU9QXImJmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlLEkpe2xldCByPVlBKEEpLGc9ci5kYXRhLG89cC5mcm9tKHIuaGVhZGVycykubm9ybWFsaXplKCkse3Jlc3BvbnNlVHlwZTpuLG9uVXBsb2FkUHJvZ3Jlc3M6RSxvbkRvd25sb2FkUHJvZ3Jlc3M6Qn09cixzLEMsbCxhLFE7ZnVuY3Rpb24gZigpe2EmJmEoKSxRJiZRKCksci5jYW5jZWxUb2tlbiYmci5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShzKSxyLnNpZ25hbCYmci5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHMpfWxldCBjPW5ldyBYTUxIdHRwUmVxdWVzdDtjLm9wZW4oci5tZXRob2QudG9VcHBlckNhc2UoKSxyLnVybCwhMCksYy50aW1lb3V0PXIudGltZW91dDtmdW5jdGlvbiBEKCl7aWYoIWMpcmV0dXJuO2xldCB5PXAuZnJvbSgiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIGMmJmMuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLGs9e2RhdGE6IW58fG49PT0idGV4dCJ8fG49PT0ianNvbiI/Yy5yZXNwb25zZVRleHQ6Yy5yZXNwb25zZSxzdGF0dXM6Yy5zdGF0dXMsc3RhdHVzVGV4dDpjLnN0YXR1c1RleHQsaGVhZGVyczp5LGNvbmZpZzpBLHJlcXVlc3Q6Y307UUEoZnVuY3Rpb24oRyl7ZShHKSxmKCl9LGZ1bmN0aW9uKEcpe0koRyksZigpfSxrKSxjPW51bGx9Im9ubG9hZGVuZCJpbiBjP2Mub25sb2FkZW5kPUQ6Yy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXshY3x8Yy5yZWFkeVN0YXRlIT09NHx8Yy5zdGF0dXM9PT0wJiYhKGMucmVzcG9uc2VVUkwmJmMucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKT09PTApfHxzZXRUaW1lb3V0KEQpfSxjLm9uYWJvcnQ9ZnVuY3Rpb24oKXtjJiYoSShuZXcgdSgiUmVxdWVzdCBhYm9ydGVkIix1LkVDT05OQUJPUlRFRCxBLGMpKSxjPW51bGwpfSxjLm9uZXJyb3I9ZnVuY3Rpb24oUil7bGV0IGs9UiYmUi5tZXNzYWdlP1IubWVzc2FnZToiTmV0d29yayBFcnJvciIsUD1uZXcgdShrLHUuRVJSX05FVFdPUkssQSxjKTtQLmV2ZW50PVJ8fG51bGwsSShQKSxjPW51bGx9LGMub250aW1lb3V0PWZ1bmN0aW9uKCl7bGV0IFI9ci50aW1lb3V0PyJ0aW1lb3V0IG9mICIrci50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiLGs9ci50cmFuc2l0aW9uYWx8fGJBO3IudGltZW91dEVycm9yTWVzc2FnZSYmKFI9ci50aW1lb3V0RXJyb3JNZXNzYWdlKSxJKG5ldyB1KFIsay5jbGFyaWZ5VGltZW91dEVycm9yP3UuRVRJTUVET1VUOnUuRUNPTk5BQk9SVEVELEEsYykpLGM9bnVsbH0sZz09PXZvaWQgMCYmby5zZXRDb250ZW50VHlwZShudWxsKSwic2V0UmVxdWVzdEhlYWRlciJpbiBjJiZpLmZvckVhY2goby50b0pTT04oKSxmdW5jdGlvbihSLGspe2Muc2V0UmVxdWVzdEhlYWRlcihrLFIpfSksaS5pc1VuZGVmaW5lZChyLndpdGhDcmVkZW50aWFscyl8fChjLndpdGhDcmVkZW50aWFscz0hIXIud2l0aENyZWRlbnRpYWxzKSxuJiZuIT09Impzb24iJiYoYy5yZXNwb25zZVR5cGU9ci5yZXNwb25zZVR5cGUpLEImJihbbCxRXT1lQShCLCEwKSxjLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixsKSksRSYmYy51cGxvYWQmJihbQyxhXT1lQShFKSxjLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsQyksYy51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVuZCIsYSkpLChyLmNhbmNlbFRva2VufHxyLnNpZ25hbCkmJihzPXk9PntjJiYoSSgheXx8eS50eXBlP25ldyBIKG51bGwsQSxjKTp5KSxjLmFib3J0KCksYz1udWxsKX0sci5jYW5jZWxUb2tlbiYmci5jYW5jZWxUb2tlbi5zdWJzY3JpYmUocyksci5zaWduYWwmJihyLnNpZ25hbC5hYm9ydGVkP3MoKTpyLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIscykpKTtsZXQgRj1zdChyLnVybCk7aWYoRiYmaC5wcm90b2NvbHMuaW5kZXhPZihGKT09PS0xKXtJKG5ldyB1KCJVbnN1cHBvcnRlZCBwcm90b2NvbCAiK0YrIjoiLHUuRVJSX0JBRF9SRVFVRVNULEEpKTtyZXR1cm59Yy5zZW5kKGd8fG51bGwpfSl9O3ZhciB0cj0oQSx0KT0+e2xldHtsZW5ndGg6ZX09QT1BP0EuZmlsdGVyKEJvb2xlYW4pOltdO2lmKHR8fGUpe2xldCBJPW5ldyBBYm9ydENvbnRyb2xsZXIscixnPWZ1bmN0aW9uKEIpe2lmKCFyKXtyPSEwLG4oKTtsZXQgcz1CIGluc3RhbmNlb2YgRXJyb3I/Qjp0aGlzLnJlYXNvbjtJLmFib3J0KHMgaW5zdGFuY2VvZiB1P3M6bmV3IEgocyBpbnN0YW5jZW9mIEVycm9yP3MubWVzc2FnZTpzKSl9fSxvPXQmJnNldFRpbWVvdXQoKCk9PntvPW51bGwsZyhuZXcgdShgdGltZW91dCAke3R9IG9mIG1zIGV4Y2VlZGVkYCx1LkVUSU1FRE9VVCkpfSx0KSxuPSgpPT57QSYmKG8mJmNsZWFyVGltZW91dChvKSxvPW51bGwsQS5mb3JFYWNoKEI9PntCLnVuc3Vic2NyaWJlP0IudW5zdWJzY3JpYmUoZyk6Qi5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsZyl9KSxBPW51bGwpfTtBLmZvckVhY2goQj0+Qi5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsZykpO2xldHtzaWduYWw6RX09STtyZXR1cm4gRS51bnN1YnNjcmliZT0oKT0+aS5hc2FwKG4pLEV9fSxDZT10cjt2YXIgZXI9ZnVuY3Rpb24qKEEsdCl7bGV0IGU9QS5ieXRlTGVuZ3RoO2lmKCF0fHxlPHQpe3lpZWxkIEE7cmV0dXJufWxldCBJPTAscjtmb3IoO0k8ZTspcj1JK3QseWllbGQgQS5zbGljZShJLHIpLEk9cn0sSXI9YXN5bmMgZnVuY3Rpb24qKEEsdCl7Zm9yIGF3YWl0KGxldCBlIG9mIHJyKEEpKXlpZWxkKmVyKGUsdCl9LHJyPWFzeW5jIGZ1bmN0aW9uKihBKXtpZihBW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl7eWllbGQqQTtyZXR1cm59bGV0IHQ9QS5nZXRSZWFkZXIoKTt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTplLHZhbHVlOkl9PWF3YWl0IHQucmVhZCgpO2lmKGUpYnJlYWs7eWllbGQgSX19ZmluYWxseXthd2FpdCB0LmNhbmNlbCgpfX0sUXQ9KEEsdCxlLEkpPT57bGV0IHI9SXIoQSx0KSxnPTAsbyxuPUU9PntvfHwobz0hMCxJJiZJKEUpKX07cmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7YXN5bmMgcHVsbChFKXt0cnl7bGV0e2RvbmU6Qix2YWx1ZTpzfT1hd2FpdCByLm5leHQoKTtpZihCKXtuKCksRS5jbG9zZSgpO3JldHVybn1sZXQgQz1zLmJ5dGVMZW5ndGg7aWYoZSl7bGV0IGw9Zys9QztlKGwpfUUuZW5xdWV1ZShuZXcgVWludDhBcnJheShzKSl9Y2F0Y2goQil7dGhyb3cgbihCKSxCfX0sY2FuY2VsKEUpe3JldHVybiBuKEUpLHIucmV0dXJuKCl9fSx7aGlnaFdhdGVyTWFyazoyfSl9O3ZhciBCZT02NCoxMDI0LHtpc0Z1bmN0aW9uOnFBfT1pLGNlPSgoe2ZldGNoOkEsUmVxdWVzdDp0LFJlc3BvbnNlOmV9KT0+KHtmZXRjaDpBLFJlcXVlc3Q6dCxSZXNwb25zZTplfSkpKGkuZ2xvYmFsKSx7UmVhZGFibGVTdHJlYW06YWUsVGV4dEVuY29kZXI6UWV9PWkuZ2xvYmFsLEVlPShBLC4uLnQpPT57dHJ5e3JldHVybiEhQSguLi50KX1jYXRjaHtyZXR1cm4hMX19LG9yPUE9PntsZXR7ZmV0Y2g6dCxSZXF1ZXN0OmUsUmVzcG9uc2U6SX09T2JqZWN0LmFzc2lnbih7fSxjZSxBKSxyPXFBKHQpLGc9cUEoZSksbz1xQShJKTtpZighcilyZXR1cm4hMTtsZXQgbj1yJiZxQShhZSksRT1yJiYodHlwZW9mIFFlPT0iZnVuY3Rpb24iPyhRPT5mPT5RLmVuY29kZShmKSkobmV3IFFlKTphc3luYyBRPT5uZXcgVWludDhBcnJheShhd2FpdCBuZXcgZShRKS5hcnJheUJ1ZmZlcigpKSksQj1nJiZuJiZFZSgoKT0+e2xldCBRPSExLGY9bmV3IGUoaC5vcmlnaW4se2JvZHk6bmV3IGFlLG1ldGhvZDoiUE9TVCIsZ2V0IGR1cGxleCgpe3JldHVybiBRPSEwLCJoYWxmIn19KS5oZWFkZXJzLmhhcygiQ29udGVudC1UeXBlIik7cmV0dXJuIFEmJiFmfSkscz1vJiZuJiZFZSgoKT0+aS5pc1JlYWRhYmxlU3RyZWFtKG5ldyBJKCIiKS5ib2R5KSksQz17c3RyZWFtOnMmJihRPT5RLmJvZHkpfTtyJiZbInRleHQiLCJhcnJheUJ1ZmZlciIsImJsb2IiLCJmb3JtRGF0YSIsInN0cmVhbSJdLmZvckVhY2goUT0+eyFDW1FdJiYoQ1tRXT0oZixjKT0+e2xldCBEPWYmJmZbUV07aWYoRClyZXR1cm4gRC5jYWxsKGYpO3Rocm93IG5ldyB1KGBSZXNwb25zZSB0eXBlIFwnJHtRfVwnIGlzIG5vdCBzdXBwb3J0ZWRgLHUuRVJSX05PVF9TVVBQT1JULGMpfSl9KTtsZXQgbD1hc3luYyBRPT57aWYoUT09bnVsbClyZXR1cm4gMDtpZihpLmlzQmxvYihRKSlyZXR1cm4gUS5zaXplO2lmKGkuaXNTcGVjQ29tcGxpYW50Rm9ybShRKSlyZXR1cm4oYXdhaXQgbmV3IGUoaC5vcmlnaW4se21ldGhvZDoiUE9TVCIsYm9keTpRfSkuYXJyYXlCdWZmZXIoKSkuYnl0ZUxlbmd0aDtpZihpLmlzQXJyYXlCdWZmZXJWaWV3KFEpfHxpLmlzQXJyYXlCdWZmZXIoUSkpcmV0dXJuIFEuYnl0ZUxlbmd0aDtpZihpLmlzVVJMU2VhcmNoUGFyYW1zKFEpJiYoUT1RKyIiKSxpLmlzU3RyaW5nKFEpKXJldHVybihhd2FpdCBFKFEpKS5ieXRlTGVuZ3RofSxhPWFzeW5jKFEsZik9PntsZXQgYz1pLnRvRmluaXRlTnVtYmVyKFEuZ2V0Q29udGVudExlbmd0aCgpKTtyZXR1cm4gYz8/bChmKX07cmV0dXJuIGFzeW5jIFE9PntsZXR7dXJsOmYsbWV0aG9kOmMsZGF0YTpELHNpZ25hbDpGLGNhbmNlbFRva2VuOnksdGltZW91dDpSLG9uRG93bmxvYWRQcm9ncmVzczprLG9uVXBsb2FkUHJvZ3Jlc3M6UCxyZXNwb25zZVR5cGU6RyxoZWFkZXJzOldBLHdpdGhDcmVkZW50aWFsczpkQT0ic2FtZS1vcmlnaW4iLGZldGNoT3B0aW9uczptdH09WUEoUSk7Rz1HPyhHKyIiKS50b0xvd2VyQ2FzZSgpOiJ0ZXh0IjtsZXQgREE9Q2UoW0YseSYmeS50b0Fib3J0U2lnbmFsKCldLFIpLHJBPW51bGwsaj1EQSYmREEudW5zdWJzY3JpYmUmJigoKT0+e0RBLnVuc3Vic2NyaWJlKCl9KSx3dDt0cnl7aWYoUCYmQiYmYyE9PSJnZXQiJiZjIT09ImhlYWQiJiYod3Q9YXdhaXQgYShXQSxEKSkhPT0wKXtsZXQgTz1uZXcgZShmLHttZXRob2Q6IlBPU1QiLGJvZHk6RCxkdXBsZXg6ImhhbGYifSksWDtpZihpLmlzRm9ybURhdGEoRCkmJihYPU8uaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpKSYmV0Euc2V0Q29udGVudFR5cGUoWCksTy5ib2R5KXtsZXRbWkEsaEFdPW50KHd0LGVBKEN0KFApKSk7RD1RdChPLmJvZHksQmUsWkEsaEEpfX1pLmlzU3RyaW5nKGRBKXx8KGRBPWRBPyJpbmNsdWRlIjoib21pdCIpO2xldCBKPWcmJiJjcmVkZW50aWFscyJpbiBlLnByb3RvdHlwZSxwdD17Li4ubXQsc2lnbmFsOkRBLG1ldGhvZDpjLnRvVXBwZXJDYXNlKCksaGVhZGVyczpXQS5ub3JtYWxpemUoKS50b0pTT04oKSxib2R5OkQsZHVwbGV4OiJoYWxmIixjcmVkZW50aWFsczpKP2RBOnZvaWQgMH07ckE9ZyYmbmV3IGUoZixwdCk7bGV0IEs9YXdhaXQoZz90KHJBLG10KTp0KGYscHQpKSxTdD1zJiYoRz09PSJzdHJlYW0ifHxHPT09InJlc3BvbnNlIik7aWYocyYmKGt8fFN0JiZqKSl7bGV0IE89e307WyJzdGF0dXMiLCJzdGF0dXNUZXh0IiwiaGVhZGVycyJdLmZvckVhY2goRnQ9PntPW0Z0XT1LW0Z0XX0pO2xldCBYPWkudG9GaW5pdGVOdW1iZXIoSy5oZWFkZXJzLmdldCgiY29udGVudC1sZW5ndGgiKSksW1pBLGhBXT1rJiZudChYLGVBKEN0KGspLCEwKSl8fFtdO0s9bmV3IEkoUXQoSy5ib2R5LEJlLFpBLCgpPT57aEEmJmhBKCksaiYmaigpfSksTyl9Rz1HfHwidGV4dCI7bGV0IEhlPWF3YWl0IENbaS5maW5kS2V5KEMsRyl8fCJ0ZXh0Il0oSyxRKTtyZXR1cm4hU3QmJmomJmooKSxhd2FpdCBuZXcgUHJvbWlzZSgoTyxYKT0+e1FBKE8sWCx7ZGF0YTpIZSxoZWFkZXJzOnAuZnJvbShLLmhlYWRlcnMpLHN0YXR1czpLLnN0YXR1cyxzdGF0dXNUZXh0Oksuc3RhdHVzVGV4dCxjb25maWc6USxyZXF1ZXN0OnJBfSl9KX1jYXRjaChKKXt0aHJvdyBqJiZqKCksSiYmSi5uYW1lPT09IlR5cGVFcnJvciImJi9Mb2FkIGZhaWxlZHxmZXRjaC9pLnRlc3QoSi5tZXNzYWdlKT9PYmplY3QuYXNzaWduKG5ldyB1KCJOZXR3b3JrIEVycm9yIix1LkVSUl9ORVRXT1JLLFEsckEpLHtjYXVzZTpKLmNhdXNlfHxKfSk6dS5mcm9tKEosSiYmSi5jb2RlLFEsckEpfX19LGdyPW5ldyBNYXAsRXQ9QT0+e2xldCB0PWkubWVyZ2UuY2FsbCh7c2tpcFVuZGVmaW5lZDohMH0sY2UsQT9BLmVudjpudWxsKSx7ZmV0Y2g6ZSxSZXF1ZXN0OkksUmVzcG9uc2U6cn09dCxnPVtJLHIsZV0sbz1nLmxlbmd0aCxuPW8sRSxCLHM9Z3I7Zm9yKDtuLS07KUU9Z1tuXSxCPXMuZ2V0KEUpLEI9PT12b2lkIDAmJnMuc2V0KEUsQj1uP25ldyBNYXA6b3IodCkpLHM9QjtyZXR1cm4gQn0sR2c9RXQoKTt2YXIgY3Q9e2h0dHA6a0EseGhyOm5lLGZldGNoOntnZXQ6RXR9fTtpLmZvckVhY2goY3QsKEEsdCk9PntpZihBKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsIm5hbWUiLHt2YWx1ZTp0fSl9Y2F0Y2h7fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJhZGFwdGVyTmFtZSIse3ZhbHVlOnR9KX19KTt2YXIgZmU9QT0+YC0gJHtBfWAsc3I9QT0+aS5pc0Z1bmN0aW9uKEEpfHxBPT09bnVsbHx8QT09PSExLE1BPXtnZXRBZGFwdGVyOihBLHQpPT57QT1pLmlzQXJyYXkoQSk/QTpbQV07bGV0e2xlbmd0aDplfT1BLEkscixnPXt9O2ZvcihsZXQgbz0wO288ZTtvKyspe0k9QVtvXTtsZXQgbjtpZihyPUksIXNyKEkpJiYocj1jdFsobj1TdHJpbmcoSSkpLnRvTG93ZXJDYXNlKCldLHI9PT12b2lkIDApKXRocm93IG5ldyB1KGBVbmtub3duIGFkYXB0ZXIgXCcke259XCdgKTtpZihyJiYoaS5pc0Z1bmN0aW9uKHIpfHwocj1yLmdldCh0KSkpKWJyZWFrO2dbbnx8IiUyMyIrb109cn1pZighcil7bGV0IG89T2JqZWN0LmVudHJpZXMoZykubWFwKChbRSxCXSk9PmBhZGFwdGVyICR7RX0gYCsoQj09PSExPyJpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBlbnZpcm9ubWVudCI6ImlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJ1aWxkIikpLG49ZT9vLmxlbmd0aD4xP2BzaW5jZSA6JTBBYCtvLm1hcChmZSkuam9pbihgJTBBYCk6IiAiK2ZlKG9bMF0pOiJhcyBubyBhZGFwdGVyIHNwZWNpZmllZCI7dGhyb3cgbmV3IHUoIlRoZXJlIGlzIG5vIHN1aXRhYmxlIGFkYXB0ZXIgdG8gZGlzcGF0Y2ggdGhlIHJlcXVlc3QgIituLCJFUlJfTk9UX1NVUFBPUlQiKX1yZXR1cm4gcn0sYWRhcHRlcnM6Y3R9O2Z1bmN0aW9uIGZ0KEEpe2lmKEEuY2FuY2VsVG9rZW4mJkEuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLEEuc2lnbmFsJiZBLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBIKG51bGwsQSl9ZnVuY3Rpb24gS0EoQSl7cmV0dXJuIGZ0KEEpLEEuaGVhZGVycz1wLmZyb20oQS5oZWFkZXJzKSxBLmRhdGE9QkEuY2FsbChBLEEudHJhbnNmb3JtUmVxdWVzdCksWyJwb3N0IiwicHV0IiwicGF0Y2giXS5pbmRleE9mKEEubWV0aG9kKSE9PS0xJiZBLmhlYWRlcnMuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsITEpLE1BLmdldEFkYXB0ZXIoQS5hZGFwdGVyfHxBQS5hZGFwdGVyLEEpKEEpLnRoZW4oZnVuY3Rpb24oSSl7cmV0dXJuIGZ0KEEpLEkuZGF0YT1CQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxJKSxJLmhlYWRlcnM9cC5mcm9tKEkuaGVhZGVycyksSX0sZnVuY3Rpb24oSSl7cmV0dXJuIGFBKEkpfHwoZnQoQSksSSYmSS5yZXNwb25zZSYmKEkucmVzcG9uc2UuZGF0YT1CQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxJLnJlc3BvbnNlKSxJLnJlc3BvbnNlLmhlYWRlcnM9cC5mcm9tKEkucmVzcG9uc2UuaGVhZGVycykpKSxQcm9taXNlLnJlamVjdChJKX0pfXZhciBPQT0iMS4xMi4wIjt2YXIgVEE9e307WyJvYmplY3QiLCJib29sZWFuIiwibnVtYmVyIiwiZnVuY3Rpb24iLCJzdHJpbmciLCJzeW1ib2wiXS5mb3JFYWNoKChBLHQpPT57VEFbQV09ZnVuY3Rpb24oSSl7cmV0dXJuIHR5cGVvZiBJPT09QXx8ImEiKyh0PDE/Im4gIjoiICIpK0F9fSk7dmFyIGxlPXt9O1RBLnRyYW5zaXRpb25hbD1mdW5jdGlvbih0LGUsSSl7ZnVuY3Rpb24gcihnLG8pe3JldHVybiJbQXhpb3MgdiIrT0ErIl0gVHJhbnNpdGlvbmFsIG9wdGlvbiBcJyIrZysiXCciK28rKEk/Ii4gIitJOiIiKX1yZXR1cm4oZyxvLG4pPT57aWYodD09PSExKXRocm93IG5ldyB1KHIobywiIGhhcyBiZWVuIHJlbW92ZWQiKyhlPyIgaW4gIitlOiIiKSksdS5FUlJfREVQUkVDQVRFRCk7cmV0dXJuIGUmJiFsZVtvXSYmKGxlW29dPSEwLGNvbnNvbGUud2FybihyKG8sIiBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYiK2UrIiBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZWFyIGZ1dHVyZSIpKSksdD90KGcsbyxuKTohMH19O1RBLnNwZWxsaW5nPWZ1bmN0aW9uKHQpe3JldHVybihlLEkpPT4oY29uc29sZS53YXJuKGAke0l9IGlzIGxpa2VseSBhIG1pc3NwZWxsaW5nIG9mICR7dH1gKSwhMCl9O2Z1bmN0aW9uIG5yKEEsdCxlKXtpZih0eXBlb2YgQSE9Im9iamVjdCIpdGhyb3cgbmV3IHUoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiLHUuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2xldCBJPU9iamVjdC5rZXlzKEEpLHI9SS5sZW5ndGg7Zm9yKDtyLS0gPjA7KXtsZXQgZz1JW3JdLG89dFtnXTtpZihvKXtsZXQgbj1BW2ddLEU9bj09PXZvaWQgMHx8byhuLGcsQSk7aWYoRSE9PSEwKXRocm93IG5ldyB1KCJvcHRpb24gIitnKyIgbXVzdCBiZSAiK0UsdS5FUlJfQkFEX09QVElPTl9WQUxVRSk7Y29udGludWV9aWYoZSE9PSEwKXRocm93IG5ldyB1KCJVbmtub3duIG9wdGlvbiAiK2csdS5FUlJfQkFEX09QVElPTil9fXZhciBjQT17YXNzZXJ0T3B0aW9uczpucix2YWxpZGF0b3JzOlRBfTt2YXIgWT1jQS52YWxpZGF0b3JzLElBPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuZGVmYXVsdHM9dHx8e30sdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IHR0LHJlc3BvbnNlOm5ldyB0dH19YXN5bmMgcmVxdWVzdCh0LGUpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fcmVxdWVzdCh0LGUpfWNhdGNoKEkpe2lmKEkgaW5zdGFuY2VvZiBFcnJvcil7bGV0IHI9e307RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2Uocik6cj1uZXcgRXJyb3I7bGV0IGc9ci5zdGFjaz9yLnN0YWNrLnJlcGxhY2UoL14uK1xcbi8sIiIpOiIiO3RyeXtJLnN0YWNrP2cmJiFTdHJpbmcoSS5zdGFjaykuZW5kc1dpdGgoZy5yZXBsYWNlKC9eLitcXG4uK1xcbi8sIiIpKSYmKEkuc3RhY2srPWAlMEFgK2cpOkkuc3RhY2s9Z31jYXRjaHt9fXRocm93IEl9fV9yZXF1ZXN0KHQsZSl7dHlwZW9mIHQ9PSJzdHJpbmciPyhlPWV8fHt9LGUudXJsPXQpOmU9dHx8e30sZT1iKHRoaXMuZGVmYXVsdHMsZSk7bGV0e3RyYW5zaXRpb25hbDpJLHBhcmFtc1NlcmlhbGl6ZXI6cixoZWFkZXJzOmd9PWU7SSE9PXZvaWQgMCYmY0EuYXNzZXJ0T3B0aW9ucyhJLHtzaWxlbnRKU09OUGFyc2luZzpZLnRyYW5zaXRpb25hbChZLmJvb2xlYW4pLGZvcmNlZEpTT05QYXJzaW5nOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbiksY2xhcmlmeVRpbWVvdXRFcnJvcjpZLnRyYW5zaXRpb25hbChZLmJvb2xlYW4pfSwhMSksciE9bnVsbCYmKGkuaXNGdW5jdGlvbihyKT9lLnBhcmFtc1NlcmlhbGl6ZXI9e3NlcmlhbGl6ZTpyfTpjQS5hc3NlcnRPcHRpb25zKHIse2VuY29kZTpZLmZ1bmN0aW9uLHNlcmlhbGl6ZTpZLmZ1bmN0aW9ufSwhMCkpLGUuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDB8fCh0aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwP2UuYWxsb3dBYnNvbHV0ZVVybHM9dGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJsczplLmFsbG93QWJzb2x1dGVVcmxzPSEwKSxjQS5hc3NlcnRPcHRpb25zKGUse2Jhc2VVcmw6WS5zcGVsbGluZygiYmFzZVVSTCIpLHdpdGhYc3JmVG9rZW46WS5zcGVsbGluZygid2l0aFhTUkZUb2tlbiIpfSwhMCksZS5tZXRob2Q9KGUubWV0aG9kfHx0aGlzLmRlZmF1bHRzLm1ldGhvZHx8ImdldCIpLnRvTG93ZXJDYXNlKCk7bGV0IG89ZyYmaS5tZXJnZShnLmNvbW1vbixnW2UubWV0aG9kXSk7ZyYmaS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsImNvbW1vbiJdLFE9PntkZWxldGUgZ1tRXX0pLGUuaGVhZGVycz1wLmNvbmNhdChvLGcpO2xldCBuPVtdLEU9ITA7dGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKGZ1bmN0aW9uKGYpe3R5cGVvZiBmLnJ1bldoZW49PSJmdW5jdGlvbiImJmYucnVuV2hlbihlKT09PSExfHwoRT1FJiZmLnN5bmNocm9ub3VzLG4udW5zaGlmdChmLmZ1bGZpbGxlZCxmLnJlamVjdGVkKSl9KTtsZXQgQj1bXTt0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKGZ1bmN0aW9uKGYpe0IucHVzaChmLmZ1bGZpbGxlZCxmLnJlamVjdGVkKX0pO2xldCBzLEM9MCxsO2lmKCFFKXtsZXQgUT1bS0EuYmluZCh0aGlzKSx2b2lkIDBdO2ZvcihRLnVuc2hpZnQoLi4ubiksUS5wdXNoKC4uLkIpLGw9US5sZW5ndGgscz1Qcm9taXNlLnJlc29sdmUoZSk7QzxsOylzPXMudGhlbihRW0MrK10sUVtDKytdKTtyZXR1cm4gc31sPW4ubGVuZ3RoO2xldCBhPWU7Zm9yKEM9MDtDPGw7KXtsZXQgUT1uW0MrK10sZj1uW0MrK107dHJ5e2E9UShhKX1jYXRjaChjKXtmLmNhbGwodGhpcyxjKTticmVha319dHJ5e3M9S0EuY2FsbCh0aGlzLGEpfWNhdGNoKFEpe3JldHVybiBQcm9taXNlLnJlamVjdChRKX1mb3IoQz0wLGw9Qi5sZW5ndGg7QzxsOylzPXMudGhlbihCW0MrK10sQltDKytdKTtyZXR1cm4gc31nZXRVcmkodCl7dD1iKHRoaXMuZGVmYXVsdHMsdCk7bGV0IGU9RUEodC5iYXNlVVJMLHQudXJsLHQuYWxsb3dBYnNvbHV0ZVVybHMpO3JldHVybiBuQShlLHQucGFyYW1zLHQucGFyYW1zU2VyaWFsaXplcil9fTtpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwib3B0aW9ucyJdLGZ1bmN0aW9uKHQpe0lBLnByb3RvdHlwZVt0XT1mdW5jdGlvbihlLEkpe3JldHVybiB0aGlzLnJlcXVlc3QoYihJfHx7fSx7bWV0aG9kOnQsdXJsOmUsZGF0YTooSXx8e30pLmRhdGF9KSl9fSk7aS5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShJKXtyZXR1cm4gZnVuY3Rpb24oZyxvLG4pe3JldHVybiB0aGlzLnJlcXVlc3QoYihufHx7fSx7bWV0aG9kOnQsaGVhZGVyczpJP3siQ29udGVudC1UeXBlIjoibXVsdGlwYXJ0L2Zvcm0tZGF0YSJ9Ont9LHVybDpnLGRhdGE6b30pKX19SUEucHJvdG90eXBlW3RdPWUoKSxJQS5wcm90b3R5cGVbdCsiRm9ybSJdPWUoITApfSk7dmFyIGZBPUlBO3ZhciBsdD1jbGFzcyBBe2NvbnN0cnVjdG9yKHQpe2lmKHR5cGVvZiB0IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoImV4ZWN1dG9yIG11c3QgYmUgYSBmdW5jdGlvbi4iKTtsZXQgZTt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24oZyl7ZT1nfSk7bGV0IEk9dGhpczt0aGlzLnByb21pc2UudGhlbihyPT57aWYoIUkuX2xpc3RlbmVycylyZXR1cm47bGV0IGc9SS5fbGlzdGVuZXJzLmxlbmd0aDtmb3IoO2ctLSA+MDspSS5fbGlzdGVuZXJzW2ddKHIpO0kuX2xpc3RlbmVycz1udWxsfSksdGhpcy5wcm9taXNlLnRoZW49cj0+e2xldCBnLG89bmV3IFByb21pc2Uobj0+e0kuc3Vic2NyaWJlKG4pLGc9bn0pLnRoZW4ocik7cmV0dXJuIG8uY2FuY2VsPWZ1bmN0aW9uKCl7SS51bnN1YnNjcmliZShnKX0sb30sdChmdW5jdGlvbihnLG8sbil7SS5yZWFzb258fChJLnJlYXNvbj1uZXcgSChnLG8sbiksZShJLnJlYXNvbikpfSl9dGhyb3dJZlJlcXVlc3RlZCgpe2lmKHRoaXMucmVhc29uKXRocm93IHRoaXMucmVhc29ufXN1YnNjcmliZSh0KXtpZih0aGlzLnJlYXNvbil7dCh0aGlzLnJlYXNvbik7cmV0dXJufXRoaXMuX2xpc3RlbmVycz90aGlzLl9saXN0ZW5lcnMucHVzaCh0KTp0aGlzLl9saXN0ZW5lcnM9W3RdfXVuc3Vic2NyaWJlKHQpe2lmKCF0aGlzLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBlPXRoaXMuX2xpc3RlbmVycy5pbmRleE9mKHQpO2UhPT0tMSYmdGhpcy5fbGlzdGVuZXJzLnNwbGljZShlLDEpfXRvQWJvcnRTaWduYWwoKXtsZXQgdD1uZXcgQWJvcnRDb250cm9sbGVyLGU9ST0+e3QuYWJvcnQoSSl9O3JldHVybiB0aGlzLnN1YnNjcmliZShlKSx0LnNpZ25hbC51bnN1YnNjcmliZT0oKT0+dGhpcy51bnN1YnNjcmliZShlKSx0LnNpZ25hbH1zdGF0aWMgc291cmNlKCl7bGV0IHQ7cmV0dXJue3Rva2VuOm5ldyBBKGZ1bmN0aW9uKHIpe3Q9cn0pLGNhbmNlbDp0fX19LHVlPWx0O2Z1bmN0aW9uIHV0KEEpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gQS5hcHBseShudWxsLGUpfX1mdW5jdGlvbiBkdChBKXtyZXR1cm4gaS5pc09iamVjdChBKSYmQS5pc0F4aW9zRXJyb3I9PT0hMH12YXIgRHQ9e0NvbnRpbnVlOjEwMCxTd2l0Y2hpbmdQcm90b2NvbHM6MTAxLFByb2Nlc3Npbmc6MTAyLEVhcmx5SGludHM6MTAzLE9rOjIwMCxDcmVhdGVkOjIwMSxBY2NlcHRlZDoyMDIsTm9uQXV0aG9yaXRhdGl2ZUluZm9ybWF0aW9uOjIwMyxOb0NvbnRlbnQ6MjA0LFJlc2V0Q29udGVudDoyMDUsUGFydGlhbENvbnRlbnQ6MjA2LE11bHRpU3RhdHVzOjIwNyxBbHJlYWR5UmVwb3J0ZWQ6MjA4LEltVXNlZDoyMjYsTXVsdGlwbGVDaG9pY2VzOjMwMCxNb3ZlZFBlcm1hbmVudGx5OjMwMSxGb3VuZDozMDIsU2VlT3RoZXI6MzAzLE5vdE1vZGlmaWVkOjMwNCxVc2VQcm94eTozMDUsVW51c2VkOjMwNixUZW1wb3JhcnlSZWRpcmVjdDozMDcsUGVybWFuZW50UmVkaXJlY3Q6MzA4LEJhZFJlcXVlc3Q6NDAwLFVuYXV0aG9yaXplZDo0MDEsUGF5bWVudFJlcXVpcmVkOjQwMixGb3JiaWRkZW46NDAzLE5vdEZvdW5kOjQwNCxNZXRob2ROb3RBbGxvd2VkOjQwNSxOb3RBY2NlcHRhYmxlOjQwNixQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NDA3LFJlcXVlc3RUaW1lb3V0OjQwOCxDb25mbGljdDo0MDksR29uZTo0MTAsTGVuZ3RoUmVxdWlyZWQ6NDExLFByZWNvbmRpdGlvbkZhaWxlZDo0MTIsUGF5bG9hZFRvb0xhcmdlOjQxMyxVcmlUb29Mb25nOjQxNCxVbnN1cHBvcnRlZE1lZGlhVHlwZTo0MTUsUmFuZ2VOb3RTYXRpc2ZpYWJsZTo0MTYsRXhwZWN0YXRpb25GYWlsZWQ6NDE3LEltQVRlYXBvdDo0MTgsTWlzZGlyZWN0ZWRSZXF1ZXN0OjQyMSxVbnByb2Nlc3NhYmxlRW50aXR5OjQyMixMb2NrZWQ6NDIzLEZhaWxlZERlcGVuZGVuY3k6NDI0LFRvb0Vhcmx5OjQyNSxVcGdyYWRlUmVxdWlyZWQ6NDI2LFByZWNvbmRpdGlvblJlcXVpcmVkOjQyOCxUb29NYW55UmVxdWVzdHM6NDI5LFJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZTo0MzEsVW5hdmFpbGFibGVGb3JMZWdhbFJlYXNvbnM6NDUxLEludGVybmFsU2VydmVyRXJyb3I6NTAwLE5vdEltcGxlbWVudGVkOjUwMSxCYWRHYXRld2F5OjUwMixTZXJ2aWNlVW5hdmFpbGFibGU6NTAzLEdhdGV3YXlUaW1lb3V0OjUwNCxIdHRwVmVyc2lvbk5vdFN1cHBvcnRlZDo1MDUsVmFyaWFudEFsc29OZWdvdGlhdGVzOjUwNixJbnN1ZmZpY2llbnRTdG9yYWdlOjUwNyxMb29wRGV0ZWN0ZWQ6NTA4LE5vdEV4dGVuZGVkOjUxMCxOZXR3b3JrQXV0aGVudGljYXRpb25SZXF1aXJlZDo1MTF9O09iamVjdC5lbnRyaWVzKER0KS5mb3JFYWNoKChbQSx0XSk9PntEdFt0XT1BfSk7dmFyIGRlPUR0O2Z1bmN0aW9uIERlKEEpe2xldCB0PW5ldyBmQShBKSxlPW9BKGZBLnByb3RvdHlwZS5yZXF1ZXN0LHQpO3JldHVybiBpLmV4dGVuZChlLGZBLnByb3RvdHlwZSx0LHthbGxPd25LZXlzOiEwfSksaS5leHRlbmQoZSx0LG51bGwse2FsbE93bktleXM6ITB9KSxlLmNyZWF0ZT1mdW5jdGlvbihyKXtyZXR1cm4gRGUoYihBLHIpKX0sZX12YXIgbT1EZShBQSk7bS5BeGlvcz1mQTttLkNhbmNlbGVkRXJyb3I9SDttLkNhbmNlbFRva2VuPXVlO20uaXNDYW5jZWw9YUE7bS5WRVJTSU9OPU9BO20udG9Gb3JtRGF0YT1UO20uQXhpb3NFcnJvcj11O20uQ2FuY2VsPW0uQ2FuY2VsZWRFcnJvcjttLmFsbD1mdW5jdGlvbih0KXtyZXR1cm4gUHJvbWlzZS5hbGwodCl9O20uc3ByZWFkPXV0O20uaXNBeGlvc0Vycm9yPWR0O20ubWVyZ2VDb25maWc9YjttLkF4aW9zSGVhZGVycz1wO20uZm9ybVRvSlNPTj1BPT5KQShpLmlzSFRNTEZvcm0oQSk/bmV3IEZvcm1EYXRhKEEpOkEpO20uZ2V0QWRhcHRlcj1NQS5nZXRBZGFwdGVyO20uSHR0cFN0YXR1c0NvZGU9ZGU7bS5kZWZhdWx0PW07dmFyIHhBPW07dmFye0F4aW9zOlJpLEF4aW9zRXJyb3I6TmksQ2FuY2VsZWRFcnJvcjpVaSxpc0NhbmNlbDpHaSxDYW5jZWxUb2tlbjpraSxWRVJTSU9OOkxpLGFsbDpiaSxDYW5jZWw6SmksaXNBeGlvc0Vycm9yOkhpLHNwcmVhZDpZaSx0b0Zvcm1EYXRhOnFpLEF4aW9zSGVhZGVyczpNaSxIdHRwU3RhdHVzQ29kZTpLaSxmb3JtVG9KU09OOk9pLGdldEFkYXB0ZXI6VGksbWVyZ2VDb25maWc6eGl9PXhBO3ZhciBsQSxNLHl0LGh0PXtlbnY6e2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGg6ZnVuY3Rpb24oQSl7eXQ9bmV3IFVpbnQ4QXJyYXkoTS5leHBvcnRzLm1lbW9yeS5idWZmZXIpfX19LFBBPWNsYXNze2luaXQoKXtyZXR1cm4gbEF8fCh0eXBlb2YgZmV0Y2g8InUiP2xBPWZldGNoKCJkYXRhOmFwcGxpY2F0aW9uL3dhc207YmFzZTY0LCIraGUpLnRoZW4odD0+dC5hcnJheUJ1ZmZlcigpKS50aGVuKHQ9PldlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKHQsaHQpKS50aGVuKHRoaXMuX2luaXQpOmxBPVdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEJ1ZmZlci5mcm9tKGhlLCJiYXNlNjQiKSxodCkudGhlbih0aGlzLl9pbml0KSxsQSl9X2luaXQodCl7TT10Lmluc3RhbmNlLGh0LmVudi5lbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoKDApfWRlY29kZSh0LGU9MCl7aWYoIU0pdGhyb3cgbmV3IEVycm9yKCJaU1RERGVjb2RlcjogQXdhaXQgLmluaXQoKSBiZWZvcmUgZGVjb2RpbmcuIik7bGV0IEk9dC5ieXRlTGVuZ3RoLHI9TS5leHBvcnRzLm1hbGxvYyhJKTt5dC5zZXQodCxyKSxlPWV8fE51bWJlcihNLmV4cG9ydHMuWlNURF9maW5kRGVjb21wcmVzc2VkU2l6ZShyLEkpKTtsZXQgZz1NLmV4cG9ydHMubWFsbG9jKGUpLG89TS5leHBvcnRzLlpTVERfZGVjb21wcmVzcyhnLGUscixJKSxuPXl0LnNsaWNlKGcsZytvKTtyZXR1cm4gTS5leHBvcnRzLmZyZWUociksTS5leHBvcnRzLmZyZWUoZyksbn19LGhlPSJBR0Z6YlFFQUFBQUJiZzVnQTM5L2Z3Ri9ZQUYvQVg5Z0FuOS9BR0FCZndCZ0JYOS9mMzkvQVg5Z0EzOS9md0JnQkg5L2YzOEJmMkFBQVg5Z0FuOS9BWDlnQjM5L2YzOS9mMzhCZjJBQ2YzOEJmbUFJZjM5L2YzOS9mMzhCZjJBRmYzOS9mMzhBWUE1L2YzOS9mMzkvZjM5L2YzOS9md0YvQWljQkEyVnVkaDlsYlhOamNtbHdkR1Z1WDI1dmRHbG1lVjl0WlcxdmNubGZaM0p2ZDNSb0FBTURJeUlIQUFBQkFRTUhBd0VBQ1FRQUJRRUlDQUVGQmdRRUJBTUdBQUFLQUFVTERBMEdCQVVCY0FFQkFRVUhBUUdBQW9DQUFnWUlBWDhCUVlDakJBc0hyZ0VMQm0xbGJXOXllUUlBQm0xaGJHeHZZd0FGQkdaeVpXVUFCZ3hhVTFSRVgybHpSWEp5YjNJQUVobGFVMVJFWDJacGJtUkVaV052YlhCeVpYTnpaV1JUYVhwbEFCd1BXbE5VUkY5a1pXTnZiWEJ5WlhOekFDSVpYMTlwYm1ScGNtVmpkRjltZFc1amRHbHZibDkwWVdKc1pRRUFFRjlmWlhKeWJtOWZiRzlqWVhScGIyNEFBUWx6ZEdGamExTmhkbVVBQnd4emRHRmphMUpsYzNSdmNtVUFDQXB6ZEdGamEwRnNiRzlqQUFrS2kvSUJJZ1VBUVlRZkN6TUJBWDhnQWdSQUlBQWhBd05BSUFNZ0FTMEFBRG9BQUNBRFFRRnFJUU1nQVVFQmFpRUJJQUpCQVdzaUFnMEFDd3NnQUFzcEFRRi9JQUlFUUNBQUlRTURRQ0FESUFFNkFBQWdBMEVCYWlFRElBSkJBV3NpQWcwQUN3c2dBQXRzQVFKL1FZQWZLQUlBSWdFZ0FFRUhha0Y0Y1NJQ2FpRUFBa0FnQWtFQUlBQWdBVTBiRFFBZ0FEOEFRUkIwU3dSQUlBQS9BRUVRZEd0Qi8vOERha0VRZGtBQVFYOUdCSDlCQUFWQkFCQUFRUUVMUlEwQkMwR0FIeUFBTmdJQUlBRVBDMEdFSDBFd05nSUFRWDhMdVNjQkMzOGpBRUVRYXlJS0pBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQUJCOUFGTkJFQkJpQjhvQWdBaUJrRVFJQUJCQzJwQmVIRWdBRUVMU1JzaUJVRURkaUlBZGlJQlFRTnhCRUFDUUNBQlFYOXpRUUZ4SUFCcUlnSkJBM1FpQVVHd0gyb2lBQ0FCUWJnZmFpZ0NBQ0lCS0FJSUlnUkdCRUJCaUI4Z0JrRitJQUozY1RZQ0FBd0JDeUFFSUFBMkFnd2dBQ0FFTmdJSUN5QUJRUWhxSVFBZ0FTQUNRUU4wSWdKQkEzSTJBZ1FnQVNBQ2FpSUJJQUVvQWdSQkFYSTJBZ1FNRHdzZ0JVR1FIeWdDQUNJSFRRMEJJQUVFUUFKQVFRSWdBSFFpQWtFQUlBSnJjaUFCSUFCMGNXZ2lBVUVEZENJQVFiQWZhaUlDSUFCQnVCOXFLQUlBSWdBb0FnZ2lCRVlFUUVHSUh5QUdRWDRnQVhkeElnWTJBZ0FNQVFzZ0JDQUNOZ0lNSUFJZ0JEWUNDQXNnQUNBRlFRTnlOZ0lFSUFBZ0JXb2lDQ0FCUVFOMElnRWdCV3NpQkVFQmNqWUNCQ0FBSUFGcUlBUTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRRkJuQjhvQWdBaEFnSi9JQVpCQVNBSFFRTjJkQ0lEY1VVRVFFR0lIeUFESUFaeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQXlBQklBSTJBZ2dnQXlBQ05nSU1JQUlnQVRZQ0RDQUNJQU0yQWdnTElBQkJDR29oQUVHY0h5QUlOZ0lBUVpBZklBUTJBZ0FNRHd0QmpCOG9BZ0FpQzBVTkFTQUxhRUVDZEVHNElXb29BZ0FpQWlnQ0JFRjRjU0FGYXlFRElBSWhBUU5BQWtBZ0FTZ0NFQ0lBUlFSQUlBRW9BaFFpQUVVTkFRc2dBQ2dDQkVGNGNTQUZheUlCSUFNZ0FTQURTU0lCR3lFRElBQWdBaUFCR3lFQ0lBQWhBUXdCQ3dzZ0FpZ0NHQ0VKSUFJZ0FpZ0NEQ0lFUndSQVFaZ2ZLQUlBR2lBQ0tBSUlJZ0FnQkRZQ0RDQUVJQUEyQWdnTURnc2dBa0VVYWlJQktBSUFJZ0JGQkVBZ0FpZ0NFQ0lBUlEwRElBSkJFR29oQVFzRFFDQUJJUWdnQUNJRVFSUnFJZ0VvQWdBaUFBMEFJQVJCRUdvaEFTQUVLQUlRSWdBTkFBc2dDRUVBTmdJQURBMExRWDhoQlNBQVFiOS9TdzBBSUFCQkMyb2lBRUY0Y1NFRlFZd2ZLQUlBSWdoRkRRQkJBQ0FGYXlFREFrQUNRQUpBQW45QkFDQUZRWUFDU1EwQUdrRWZJQVZCLy8vL0Iwc05BQm9nQlVFbUlBQkJDSFpuSWdCcmRrRUJjU0FBUVFGMGEwRSthZ3NpQjBFQ2RFRzRJV29vQWdBaUFVVUVRRUVBSVFBTUFRdEJBQ0VBSUFWQkdTQUhRUUYyYTBFQUlBZEJIMGNiZENFQ0EwQUNRQ0FCS0FJRVFYaHhJQVZySWdZZ0EwOE5BQ0FCSVFRZ0JpSUREUUJCQUNFRElBRWhBQXdEQ3lBQUlBRW9BaFFpQmlBR0lBRWdBa0VkZGtFRWNXb29BaEFpQVVZYklBQWdCaHNoQUNBQ1FRRjBJUUlnQVEwQUN3c2dBQ0FFY2tVRVFFRUFJUVJCQWlBSGRDSUFRUUFnQUd0eUlBaHhJZ0JGRFFNZ0FHaEJBblJCdUNGcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJQ0lBTkpJUUVnQWlBRElBRWJJUU1nQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBRFFaQWZLQUlBSUFWclR3MEFJQVFvQWhnaEJ5QUVJQVFvQWd3aUFrY0VRRUdZSHlnQ0FCb2dCQ2dDQ0NJQUlBSTJBZ3dnQWlBQU5nSUlEQXdMSUFSQkZHb2lBU2dDQUNJQVJRUkFJQVFvQWhBaUFFVU5BeUFFUVJCcUlRRUxBMEFnQVNFR0lBQWlBa0VVYWlJQktBSUFJZ0FOQUNBQ1FSQnFJUUVnQWlnQ0VDSUFEUUFMSUFaQkFEWUNBQXdMQ3lBRlFaQWZLQUlBSWdSTkJFQkJuQjhvQWdBaEFBSkFJQVFnQldzaUFVRVFUd1JBSUFBZ0JXb2lBaUFCUVFGeU5nSUVJQUFnQkdvZ0FUWUNBQ0FBSUFWQkEzSTJBZ1FNQVFzZ0FDQUVRUU55TmdJRUlBQWdCR29pQVNBQktBSUVRUUZ5TmdJRVFRQWhBa0VBSVFFTFFaQWZJQUUyQWdCQm5COGdBallDQUNBQVFRaHFJUUFNRFFzZ0JVR1VIeWdDQUNJQ1NRUkFRWlFmSUFJZ0JXc2lBVFlDQUVHZ0gwR2dIeWdDQUNJQUlBVnFJZ0kyQWdBZ0FpQUJRUUZ5TmdJRUlBQWdCVUVEY2pZQ0JDQUFRUWhxSVFBTURRdEJBQ0VBSUFWQkwyb2lBd0ovUWVBaUtBSUFCRUJCNkNJb0FnQU1BUXRCN0NKQ2Z6Y0NBRUhrSWtLQW9JQ0FnSUFFTndJQVFlQWlJQXBCREdwQmNIRkIyS3JWcWdWek5nSUFRZlFpUVFBMkFnQkJ4Q0pCQURZQ0FFR0FJQXNpQVdvaUJrRUFJQUZySWdoeElnRWdCVTBOREVIQUlpZ0NBQ0lFQkVCQnVDSW9BZ0FpQnlBQmFpSUpJQWROSUFRZ0NVbHlEUTBMQWtCQnhDSXRBQUJCQkhGRkJFQUNRQUpBQWtBQ1FFR2dIeWdDQUNJRUJFQkJ5Q0loQUFOQUlBUWdBQ2dDQUNJSFR3UkFJQWNnQUNnQ0JHb2dCRXNOQXdzZ0FDZ0NDQ0lBRFFBTEMwRUFFQVFpQWtGL1JnMERJQUVoQmtIa0lpZ0NBQ0lBUVFGcklnUWdBbkVFUUNBQklBSnJJQUlnQkdwQkFDQUFhM0ZxSVFZTElBVWdCazhOQTBIQUlpZ0NBQ0lBQkVCQnVDSW9BZ0FpQkNBR2FpSUlJQVJOSUFBZ0NFbHlEUVFMSUFZUUJDSUFJQUpIRFFFTUJRc2dCaUFDYXlBSWNTSUdFQVFpQWlBQUtBSUFJQUFvQWdScVJnMEJJQUloQUFzZ0FFRi9SZzBCSUFWQk1Hb2dCazBFUUNBQUlRSU1CQXRCNkNJb0FnQWlBaUFESUFacmFrRUFJQUpyY1NJQ0VBUkJmMFlOQVNBQ0lBWnFJUVlnQUNFQ0RBTUxJQUpCZjBjTkFndEJ4Q0pCeENJb0FnQkJCSEkyQWdBTElBRVFCQ0lDUVg5R1FRQVFCQ0lBUVg5R2NpQUFJQUpOY2cwRklBQWdBbXNpQmlBRlFTaHFUUTBGQzBHNElrRzRJaWdDQUNBR2FpSUFOZ0lBUWJ3aUtBSUFJQUJKQkVCQnZDSWdBRFlDQUFzQ1FFR2dIeWdDQUNJREJFQkJ5Q0loQUFOQUlBSWdBQ2dDQUNJQklBQW9BZ1FpQkdwR0RRSWdBQ2dDQ0NJQURRQUxEQVFMUVpnZktBSUFJZ0JCQUNBQUlBSk5HMFVFUUVHWUh5QUNOZ0lBQzBFQUlRQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFhZ2ZRWDgyQWdCQnJCOUI0Q0lvQWdBMkFnQkIxQ0pCQURZQ0FBTkFJQUJCQTNRaUFVRzRIMm9nQVVHd0gyb2lCRFlDQUNBQlFid2ZhaUFFTmdJQUlBQkJBV29pQUVFZ1J3MEFDMEdVSHlBR1FTaHJJZ0JCZUNBQ2EwRUhjU0lCYXlJRU5nSUFRYUFmSUFFZ0Ftb2lBVFlDQUNBQklBUkJBWEkyQWdRZ0FDQUNha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQVFMSUFJZ0EwMGdBU0FEUzNJTkFpQUFLQUlNUVFoeERRSWdBQ0FFSUFacU5nSUVRYUFmSUFOQmVDQURhMEVIY1NJQWFpSUJOZ0lBUVpRZlFaUWZLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFNTFFRQWhCQXdLQzBFQUlRSU1DQXRCbUI4b0FnQWdBa3NFUUVHWUh5QUNOZ0lBQ3lBQ0lBWnFJUUZCeUNJaEFBSkFBa0FDUUFOQUlBRWdBQ2dDQUVjRVFDQUFLQUlJSWdBTkFRd0NDd3NnQUMwQURFRUljVVVOQVF0QnlDSWhBQU5BSUFNZ0FDZ0NBQ0lCVHdSQUlBRWdBQ2dDQkdvaUJDQURTdzBEQ3lBQUtBSUlJUUFNQUFzQUN5QUFJQUkyQWdBZ0FDQUFLQUlFSUFacU5nSUVJQUpCZUNBQ2EwRUhjV29pQnlBRlFRTnlOZ0lFSUFGQmVDQUJhMEVIY1dvaUJpQUZJQWRxSWdWcklRQWdBeUFHUmdSQVFhQWZJQVUyQWdCQmxCOUJsQjhvQWdBZ0FHb2lBRFlDQUNBRklBQkJBWEkyQWdRTUNBdEJuQjhvQWdBZ0JrWUVRRUdjSHlBRk5nSUFRWkFmUVpBZktBSUFJQUJxSWdBMkFnQWdCU0FBUVFGeU5nSUVJQUFnQldvZ0FEWUNBQXdJQ3lBR0tBSUVJZ05CQTNGQkFVY05CaUFEUVhoeElRa2dBMEgvQVUwRVFDQUdLQUlNSWdFZ0JpZ0NDQ0lDUmdSQVFZZ2ZRWWdmS0FJQVFYNGdBMEVEZG5keE5nSUFEQWNMSUFJZ0FUWUNEQ0FCSUFJMkFnZ01CZ3NnQmlnQ0dDRUlJQVlnQmlnQ0RDSUNSd1JBSUFZb0FnZ2lBU0FDTmdJTUlBSWdBVFlDQ0F3RkN5QUdRUlJxSWdFb0FnQWlBMFVFUUNBR0tBSVFJZ05GRFFRZ0JrRVFhaUVCQ3dOQUlBRWhCQ0FESWdKQkZHb2lBU2dDQUNJRERRQWdBa0VRYWlFQklBSW9BaEFpQXcwQUN5QUVRUUEyQWdBTUJBdEJsQjhnQmtFb2F5SUFRWGdnQW10QkIzRWlBV3NpQ0RZQ0FFR2dIeUFCSUFKcUlnRTJBZ0FnQVNBSVFRRnlOZ0lFSUFBZ0FtcEJLRFlDQkVHa0gwSHdJaWdDQURZQ0FDQURJQVJCSnlBRWEwRUhjV3BCTDJzaUFDQUFJQU5CRUdwSkd5SUJRUnMyQWdRZ0FVSFFJaWtDQURjQ0VDQUJRY2dpS1FJQU53SUlRZEFpSUFGQkNHbzJBZ0JCekNJZ0JqWUNBRUhJSWlBQ05nSUFRZFFpUVFBMkFnQWdBVUVZYWlFQUEwQWdBRUVITmdJRUlBQkJDR29nQUVFRWFpRUFJQVJKRFFBTElBRWdBMFlOQUNBQklBRW9BZ1JCZm5FMkFnUWdBeUFCSUFOcklnSkJBWEkyQWdRZ0FTQUNOZ0lBSUFKQi93Rk5CRUFnQWtGNGNVR3dIMm9oQUFKL1FZZ2ZLQUlBSWdGQkFTQUNRUU4yZENJQ2NVVUVRRUdJSHlBQklBSnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEFTQUFJQU0yQWdnZ0FTQUROZ0lNSUFNZ0FEWUNEQ0FESUFFMkFnZ01BUXRCSHlFQUlBSkIvLy8vQjAwRVFDQUNRU1lnQWtFSWRtY2lBR3QyUVFGeElBQkJBWFJyUVQ1cUlRQUxJQU1nQURZQ0hDQURRZ0EzQWhBZ0FFRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlCRUVCSUFCMElnWnhSUVJBUVl3ZklBUWdCbkkyQWdBZ0FTQUROZ0lBREFFTElBSkJHU0FBUVFGMmEwRUFJQUJCSDBjYmRDRUFJQUVvQWdBaEJBTkFJQVFpQVNnQ0JFRjRjU0FDUmcwQ0lBQkJIWFloQkNBQVFRRjBJUUFnQVNBRVFRUnhhaUlHS0FJUUlnUU5BQXNnQmlBRE5nSVFDeUFESUFFMkFoZ2dBeUFETmdJTUlBTWdBellDQ0F3QkN5QUJLQUlJSWdBZ0F6WUNEQ0FCSUFNMkFnZ2dBMEVBTmdJWUlBTWdBVFlDRENBRElBQTJBZ2dMUVpRZktBSUFJZ0FnQlUwTkFFR1VIeUFBSUFWcklnRTJBZ0JCb0I5Qm9COG9BZ0FpQUNBRmFpSUNOZ0lBSUFJZ0FVRUJjallDQkNBQUlBVkJBM0kyQWdRZ0FFRUlhaUVBREFnTFFZUWZRVEEyQWdCQkFDRUFEQWNMUVFBaEFnc2dDRVVOQUFKQUlBWW9BaHdpQVVFQ2RFRzRJV29pQkNnQ0FDQUdSZ1JBSUFRZ0FqWUNBQ0FDRFFGQmpCOUJqQjhvQWdCQmZpQUJkM0UyQWdBTUFnc2dDRUVRUVJRZ0NDZ0NFQ0FHUmh0cUlBSTJBZ0FnQWtVTkFRc2dBaUFJTmdJWUlBWW9BaEFpQVFSQUlBSWdBVFlDRUNBQklBSTJBaGdMSUFZb0FoUWlBVVVOQUNBQ0lBRTJBaFFnQVNBQ05nSVlDeUFBSUFscUlRQWdCaUFKYWlJR0tBSUVJUU1MSUFZZ0EwRitjVFlDQkNBRklBQkJBWEkyQWdRZ0FDQUZhaUFBTmdJQUlBQkIvd0ZOQkVBZ0FFRjRjVUd3SDJvaEFRSi9RWWdmS0FJQUlnSkJBU0FBUVFOMmRDSUFjVVVFUUVHSUh5QUFJQUp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBQ0FCSUFVMkFnZ2dBQ0FGTmdJTUlBVWdBVFlDRENBRklBQTJBZ2dNQVF0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFVZ0F6WUNIQ0FGUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQWtFQklBTjBJZ1J4UlFSQVFZd2ZJQUlnQkhJMkFnQWdBU0FGTmdJQURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBZ05BSUFJaUFTZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFpQURRUUYwSVFNZ0FTQUNRUVJ4YWlJRUtBSVFJZ0lOQUFzZ0JDQUZOZ0lRQ3lBRklBRTJBaGdnQlNBRk5nSU1JQVVnQlRZQ0NBd0JDeUFCS0FJSUlnQWdCVFlDRENBQklBVTJBZ2dnQlVFQU5nSVlJQVVnQVRZQ0RDQUZJQUEyQWdnTElBZEJDR29oQUF3Q0N3SkFJQWRGRFFBQ1FDQUVLQUljSWdCQkFuUkJ1Q0ZxSWdFb0FnQWdCRVlFUUNBQklBSTJBZ0FnQWcwQlFZd2ZJQWhCZmlBQWQzRWlDRFlDQUF3Q0N5QUhRUkJCRkNBSEtBSVFJQVJHRzJvZ0FqWUNBQ0FDUlEwQkN5QUNJQWMyQWhnZ0JDZ0NFQ0lBQkVBZ0FpQUFOZ0lRSUFBZ0FqWUNHQXNnQkNnQ0ZDSUFSUTBBSUFJZ0FEWUNGQ0FBSUFJMkFoZ0xBa0FnQTBFUFRRUkFJQVFnQXlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnSWdBMEVCY2pZQ0JDQUNJQU5xSUFNMkFnQWdBMEgvQVUwRVFDQURRWGh4UWJBZmFpRUFBbjlCaUI4b0FnQWlBVUVCSUFOQkEzWjBJZ054UlFSQVFZZ2ZJQUVnQTNJMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0FqWUNDQ0FCSUFJMkFnd2dBaUFBTmdJTUlBSWdBVFlDQ0F3QkMwRWZJUUFnQTBILy8vOEhUUVJBSUFOQkppQURRUWgyWnlJQWEzWkJBWEVnQUVFQmRHdEJQbW9oQUFzZ0FpQUFOZ0ljSUFKQ0FEY0NFQ0FBUVFKMFFiZ2hhaUVCQWtBQ1FDQUlRUUVnQUhRaUJuRkZCRUJCakI4Z0JpQUljallDQUNBQklBSTJBZ0FNQVFzZ0EwRVpJQUJCQVhaclFRQWdBRUVmUnh0MElRQWdBU2dDQUNFRkEwQWdCU0lCS0FJRVFYaHhJQU5HRFFJZ0FFRWRkaUVHSUFCQkFYUWhBQ0FCSUFaQkJIRnFJZ1lvQWhBaUJRMEFDeUFHSUFJMkFoQUxJQUlnQVRZQ0dDQUNJQUkyQWd3Z0FpQUNOZ0lJREFFTElBRW9BZ2dpQUNBQ05nSU1JQUVnQWpZQ0NDQUNRUUEyQWhnZ0FpQUJOZ0lNSUFJZ0FEWUNDQXNnQkVFSWFpRUFEQUVMQWtBZ0NVVU5BQUpBSUFJb0Fod2lBRUVDZEVHNElXb2lBU2dDQUNBQ1JnUkFJQUVnQkRZQ0FDQUVEUUZCakI4Z0MwRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFKR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBaWdDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FpZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFJZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQW1vaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFJZ0JVRURjallDQkNBQ0lBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRQkJuQjhvQWdBaEFRSi9RUUVnQjBFRGRuUWlCU0FHY1VVRVFFR0lIeUFGSUFaeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQmlBQUlBRTJBZ2dnQmlBQk5nSU1JQUVnQURZQ0RDQUJJQVkyQWdnTFFad2ZJQVEyQWdCQmtCOGdBellDQUFzZ0FrRUlhaUVBQ3lBS1FSQnFKQUFnQUF2U0N3RUhmd0pBSUFCRkRRQWdBRUVJYXlJQ0lBQkJCR3NvQWdBaUFVRjRjU0lBYWlFRkFrQWdBVUVCY1EwQUlBRkJBM0ZGRFFFZ0FpQUNLQUlBSWdGcklnSkJtQjhvQWdCSkRRRWdBQ0FCYWlFQUFrQUNRRUdjSHlnQ0FDQUNSd1JBSUFGQi93Rk5CRUFnQVVFRGRpRUVJQUlvQWd3aUFTQUNLQUlJSWdOR0JFQkJpQjlCaUI4b0FnQkJmaUFFZDNFMkFnQU1CUXNnQXlBQk5nSU1JQUVnQXpZQ0NBd0VDeUFDS0FJWUlRWWdBaUFDS0FJTUlnRkhCRUFnQWlnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBSkJGR29pQkNnQ0FDSURSUVJBSUFJb0FoQWlBMFVOQWlBQ1FSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZLQUlFSWdGQkEzRkJBMGNOQWtHUUh5QUFOZ0lBSUFVZ0FVRitjVFlDQkNBQ0lBQkJBWEkyQWdRZ0JTQUFOZ0lBRHd0QkFDRUJDeUFHUlEwQUFrQWdBaWdDSENJRFFRSjBRYmdoYWlJRUtBSUFJQUpHQkVBZ0JDQUJOZ0lBSUFFTkFVR01IMEdNSHlnQ0FFRitJQU4zY1RZQ0FBd0NDeUFHUVJCQkZDQUdLQUlRSUFKR0cyb2dBVFlDQUNBQlJRMEJDeUFCSUFZMkFoZ2dBaWdDRUNJREJFQWdBU0FETmdJUUlBTWdBVFlDR0FzZ0FpZ0NGQ0lEUlEwQUlBRWdBellDRkNBRElBRTJBaGdMSUFJZ0JVOE5BQ0FGS0FJRUlnRkJBWEZGRFFBQ1FBSkFBa0FDUUNBQlFRSnhSUVJBUWFBZktBSUFJQVZHQkVCQm9COGdBallDQUVHVUgwR1VIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQ1Fad2ZLQUlBUncwR1FaQWZRUUEyQWdCQm5COUJBRFlDQUE4TFFad2ZLQUlBSUFWR0JFQkJuQjhnQWpZQ0FFR1FIMEdRSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUFJQUpxSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFnQVVIL0FVMEVRQ0FCUVFOMklRUWdCU2dDRENJQklBVW9BZ2dpQTBZRVFFR0lIMEdJSHlnQ0FFRitJQVIzY1RZQ0FBd0ZDeUFESUFFMkFnd2dBU0FETmdJSURBUUxJQVVvQWhnaEJpQUZJQVVvQWd3aUFVY0VRRUdZSHlnQ0FCb2dCU2dDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFWQkZHb2lCQ2dDQUNJRFJRUkFJQVVvQWhBaUEwVU5BaUFGUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRklBRkJmbkUyQWdRZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FBd0RDMEVBSVFFTElBWkZEUUFDUUNBRktBSWNJZ05CQW5SQnVDRnFJZ1FvQWdBZ0JVWUVRQ0FFSUFFMkFnQWdBUTBCUVl3ZlFZd2ZLQUlBUVg0Z0EzZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ01FUUNBQklBTTJBaEFnQXlBQk5nSVlDeUFGS0FJVUlnTkZEUUFnQVNBRE5nSVVJQU1nQVRZQ0dBc2dBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQ0FDUVp3ZktBSUFSdzBBUVpBZklBQTJBZ0FQQ3lBQVFmOEJUUVJBSUFCQmVIRkJzQjlxSVFFQ2YwR0lIeWdDQUNJRFFRRWdBRUVEZG5RaUFIRkZCRUJCaUI4Z0FDQURjallDQUNBQkRBRUxJQUVvQWdnTElRQWdBU0FDTmdJSUlBQWdBallDRENBQ0lBRTJBZ3dnQWlBQU5nSUlEd3RCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQUlnQXpZQ0hDQUNRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0FDUUVHTUh5Z0NBQ0lFUVFFZ0EzUWlCM0ZGQkVCQmpCOGdCQ0FIY2pZQ0FDQUJJQUkyQWdBZ0FpQUJOZ0lZREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFRTkFJQUVpQkNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQVNBRFFRRjBJUU1nQkNBQlFRUnhhaUlIUVJCcUtBSUFJZ0VOQUFzZ0J5QUNOZ0lRSUFJZ0JEWUNHQXNnQWlBQ05nSU1JQUlnQWpZQ0NBd0JDeUFFS0FJSUlnQWdBallDRENBRUlBSTJBZ2dnQWtFQU5nSVlJQUlnQkRZQ0RDQUNJQUEyQWdnTFFhZ2ZRYWdmS0FJQVFRRnJJZ0JCZnlBQUd6WUNBQXNMQkFBakFBc0dBQ0FBSkFBTEVBQWpBQ0FBYTBGd2NTSUFKQUFnQUF0S0FRRi9JQUFnQVVrRVFDQUFJQUVnQWhBQ0R3c2dBZ1JBSUFBZ0Ftb2hBeUFCSUFKcUlRRURRQ0FEUVFGcklnTWdBVUVCYXlJQkxRQUFPZ0FBSUFKQkFXc2lBZzBBQ3dzZ0FBdjlEZ0lSZndGK0l3QkJNR3NpQnlRQVFiaC9JUWdDUUNBRlJRMEFJQVFzQUFBaUNVSC9BWEVoQ3dKQUlBbEJBRWdFUUNBTFFmNEFhMEVCZGlJR0lBVlBEUUpCYkNFSUlBdEIvd0JySWd0Qi93RkxEUUlnQkVFQmFpRUlRUUFoQlFOQUlBVWdDMDhFUUNBTElRZ2dCaUVMREFNRklBQWdCV29nQ0NBRlFRRjJhaUlFTFFBQVFRUjJPZ0FBSUFBZ0JVRUJjbW9nQkMwQUFFRVBjVG9BQUNBRlFRSnFJUVVNQVFzQUN3QUxJQVVnQzAwTkFTQUhRZjhCTmdJRUlBWWdCMEVFYWlBSFFRaHFJQVJCQVdvaURpQUxFQXdpQkVHSWYwc0VRQ0FFSVFnTUFndEJWQ0VJSUFjb0FnZ2lFRUVHU3cwQklBY29BZ1FpRVVFQmRDSUpRUUpxclVJQklCQ3RoaUlZUVFFZ0VIUWlEVUVCYWlJRnJVSUNobng4UWd0OFF2ei8vLy8vLy8vLy93Q0RRdVFDVmcwQlFWSWhDQ0FSUWY4QlN3MEJJQTFCZjNOQkFuUkI1QUpxclNBUlFRRnFJaFZCQVhTdElCaDhRZ2g4VkEwQklBc2dCR3NoRmlBRUlBNXFJUmNnQmtHQUJHb2lFaUFGUVFKMGFpSVJJQWxxUVFKcUlRNGdCa0dFQkdvaEUwR0FnQUlnRUhSQkVIWWhDVUVBSVFWQkFTRVBJQTFCQVdzaUZDRUtBMEFnQlNBVlJrVUVRQUpBSUFZZ0JVRUJkQ0lJYWk4QkFDSUVRZi8vQTBZRVFDQVRJQXBCQW5ScUlBVTZBQUlnQ2tFQmF5RUtRUUVoQkF3QkN5QVBRUUFnQ1NBRXdVb2JJUThMSUFnZ0VXb2dCRHNCQUNBRlFRRnFJUVVNQVFzTElBWWdEenNCZ2dRZ0JpQVFPd0dBQkFKQUlBb2dGRVlFUUNBTlFRTjJJUWhDQUNFWVFRQWhEd05BSUF3Z0ZVWUVRQ0FJSUExQkFYWnFRUU5xSWdsQkFYUWhDRUVBSVFSQkFDRUtBMEJCQUNFRklBb2dEVThOQkFOQUlBVkJBa1pGQkVBZ0V5QUZJQWxzSUFScUlCUnhRUUowYWlBT0lBVWdDbXBxTFFBQU9nQUNJQVZCQVdvaEJRd0JDd3NnQ2tFQ2FpRUtJQVFnQ0dvZ0ZIRWhCQXdBQ3dBRklBWWdERUVCZEdvdUFRQWhDU0FPSUE5cUlnUWdHRGNBQUVFSUlRVURRQ0FGSUFsT1JRUkFJQVFnQldvZ0dEY0FBQ0FGUVFocUlRVU1BUXNMSUJoQ2dZS0VpSkNnd0lBQmZDRVlJQXhCQVdvaERDQUpJQTlxSVE4TUFRc0FDd0FMSUExQkEzWWdEVUVCZG1wQkEyb2hDRUVBSVFVRFFDQU1JQlZHUlFSQVFRQWhDU0FHSUF4QkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FKUmtVRVFDQVRJQVZCQW5ScUlBdzZBQUlEUUNBRklBaHFJQlJ4SWdVZ0Nrc05BQXNnQ1VFQmFpRUpEQUVMQ3lBTVFRRnFJUXdNQVFzTFFYOGhDQ0FGRFFJTElCQkJBV29oQ0VFQUlRVURRQ0FGSUExR1JRUkFJQkVnRXlBRlFRSjBhaUlPTFFBQ1FRRjBhaUlFSUFRdkFRQWlDVUVCYWpzQkFDQU9JQWdnQ1dkQllITnFJZ1E2QUFNZ0RpQUpJQVIwSUExck93RUFJQVZCQVdvaEJRd0JDd3NDUUFKQUlBWXZBWUlFQkVBZ0IwRWNhaUlFSUJjZ0ZoQU5JZ2hCaUg5TERRSWdCMEVVYWlBRUlCSVFEaUFIUVF4cUlBUWdFaEFPUVFBaEJRTkFJQWRCSEdvaUJCQVBJQVZCK3dGTGNnMENJQUFnQldvaUJpQUhRUlJxSUFRUUVEb0FBQ0FHSUFkQkRHb2dCQkFRT2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVU1Bd1VnQUNBRWFpQUhRUlJxSUFkQkhHb2lCQkFRT2dBQUlBWWdCMEVNYWlBRUVCQTZBQU1nQlVFRWFpRUZEQUVMQUFzQUN5QUhRUnhxSWdRZ0Z5QVdFQTBpQ0VHSWYwc05BU0FIUVJScUlBUWdFaEFPSUFkQkRHb2dCQ0FTRUE1QkFDRUZBMEFnQjBFY2FpSUVFQThnQlVIN0FVdHlSUVJBSUFBZ0JXb2lCaUFIUVJScUlBUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVGSUFBZ0JHb2dCMEVVYWlBSFFSeHFJZ1FRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FESUFWQkJHb2hCUXdDQ3dzTEFuOERRRUc2ZnlFSUlBVkIvUUZMRFFNZ0FDQUZhaUlHSUFkQkZHb2dCMEVjYWlJSkVCRTZBQUFnQmtFQmFpRUVJQWtRRDBFRFJnUkFJQWRCREdvaENFRUNEQUlMSUFWQi9BRkxEUU1nQmlBSFFReHFJQWRCSEdvaUJCQVJPZ0FCSUFWQkFtb2hCU0FFRUE5QkEwY05BQXNnQUNBRmFpRUVJQWRCRkdvaENFRURDeUFFSUFnZ0IwRWNhaEFST2dBQUlBWnFJQUJySVFnTUFRc0Nmd05BUWJwL0lRZ2dCVUg5QVVzTkFpQUFJQVZxSWdZZ0IwRVVhaUFIUVJ4cUlna1FFRG9BQUNBR1FRRnFJUVFnQ1JBUFFRTkdCRUFnQjBFTWFpRUlRUUlNQWdzZ0JVSDhBVXNOQWlBR0lBZEJER29nQjBFY2FpSUVFQkE2QUFFZ0JVRUNhaUVGSUFRUUQwRURSdzBBQ3lBQUlBVnFJUVFnQjBFVWFpRUlRUU1MSUFRZ0NDQUhRUnhxRUJBNkFBQWdCbW9nQUdzaENBc2dDRUdJZjBzTkFRc2dDQ0VFUVFBaEJTQUJRUUJCTkJBRElRbEJBQ0VLQTBBZ0JDQUZSd1JBSUFBZ0JXb2lCaTBBQUNJQlFRdExCRUJCYkNFSURBTUZJQWtnQVVFQ2RHb2lBU0FCS0FJQVFRRnFOZ0lBSUFWQkFXb2hCVUVCSUFZdEFBQjBRUUYxSUFwcUlRb01BZ3NBQ3d0QmJDRUlJQXBGRFFBZ0NtY2lCVUVmY3lJQlFRdExEUUFnQTBFZ0lBVnJOZ0lBUVFGQkFpQUJkQ0FLYXlJRFowRWZjeUlCZENBRFJ3MEFJQUFnQkdvZ0FVRUJhaUlBT2dBQUlBa2dBRUVDZEdvaUFDQUFLQUlBUVFGcU5nSUFJQWtvQWdRaUFFRUNTU0FBUVFGeGNnMEFJQUlnQkVFQmFqWUNBQ0FMUVFGcUlRZ0xJQWRCTUdva0FDQUlDNkFGQVF4L0l3QkJFR3NpRENRQUFuOGdCRUVIVFFSQUlBeENBRGNEQ0NBTVFRaHFJZ1VnQXlBRUVBSWFRV3dnQUNBQklBSWdCVUVJRUF3aUFDQUFJQVJMR3lBQUlBQkJpWDlKR3d3QkN5QUFRUUFnQVNnQ0FFRUJhaUlOUVFGMEVBTWhEMEZVSUFNb0FBQWlCa0VQY1NJQVFRcExEUUFhSUFJZ0FFRUZhallDQUNBRElBUnFJZ0pCQkdzaEJ5QUNRUWRySVFzZ0FFRUdhaUVPUVFRaEFpQUdRUVIySVFWQklDQUFkQ0lJUVFGeUlRbEJBQ0VBUVFFaEJpQURJUVFEUUFKQUlBWkJBWEZGQkVBRFFDQUZRWDl6UVlDQWdJQjRjbWdpQmtFWVNVVUVRQ0FBUVNScUlRQWdCQ0FMVFFSL0lBUkJBMm9GSUFRZ0MydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xJQUlnQmtFZWNTSUtha0VDYWlFQ0lBWkJBWFpCQTJ3Z0FHb2dCU0FLZGtFRGNXb2lBQ0FOVHcwQkFuOGdCQ0FMU3lBQ1FRTjJJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBUWdCMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVUxJQVVnQ0VFQmEzRWlCaUFJUVFGMFFRRnJJZ29nQ1dzaUVFa0VmeUFPUVFGckJTQUZJQXB4SWdVZ0VFRUFJQVVnQ0U0YmF5RUdJQTRMSVFVZ0R5QUFRUUYwYWlBR1FRRnJJZ283QVFBZ0FFRUJhaUVBSUFJZ0JXb2hBaUFJUVFFZ0Jtc2dDaUFHUVFCS0d5QUphaUlKU2dSQUlBbEJBa2dOQVVFZ0lBbG5JZ1ZySVE1QkFTQUZRUjl6ZENFSUN5QUFJQTFQRFFBZ0NrRUFSeUVHQW44Z0JDQUxTeUFDUVFOMUlBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFJZ0JDQUhhMEVEZEdwQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xRV3dnQ1VFQlJ3MEFHa0ZRSUFBZ0RVc05BQnBCYkNBQ1FTQktEUUFhSUFFZ0FFRUJhellDQUNBRUlBSkJCMnBCQTNWcUlBTnJDeUFNUVJCcUpBQUw4Z0VCQVg4Z0FrVUVRQ0FBUWdBM0FnQWdBRUVBTmdJUUlBQkNBRGNDQ0VHNGZ3OExJQUFnQVRZQ0RDQUFJQUZCQkdvMkFoQWdBa0VFVHdSQUlBQWdBU0FDYWlJQlFRUnJJZ00yQWdnZ0FDQURLQUFBTmdJQUlBRkJBV3N0QUFBaUFRUkFJQUFnQVdkQkYyczJBZ1FnQWc4TElBQkJBRFlDQkVGL0R3c2dBQ0FCTmdJSUlBQWdBUzBBQUNJRE5nSUFBa0FDUUFKQUlBSkJBbXNPQWdFQUFnc2dBQ0FCTFFBQ1FSQjBJQU55SWdNMkFnQUxJQUFnQVMwQUFVRUlkQ0FEYWpZQ0FBc2dBU0FDYWtFQmF5MEFBQ0lCUlFSQUlBQkJBRFlDQkVGc0R3c2dBQ0FCWnlBQ1FRTjBhMEVKYWpZQ0JDQUNDMFFCQW44Z0FTQUNMd0VBSWdNZ0FTZ0NCR29pQkRZQ0JDQUFJQU5CQW5SQm9CMXFLQUlBSUFFb0FnQkJBQ0FFYTNaeE5nSUFJQUVRRHhvZ0FDQUNRUVJxTmdJRUM1OEJBUVIvUVFNaEFTQUFLQUlFSWdKQklFMEVRQ0FBS0FJSUlnRWdBQ2dDRUU4RVFDQUFJQUpCQjNFMkFnUWdBQ0FCSUFKQkEzWnJJZ0kyQWdnZ0FDQUNLQUFBTmdJQVFRQVBDeUFBS0FJTUlnTWdBVVlFUUVFQlFRSWdBa0VnU1JzUEN5QUFJQUVnQVNBRGF5QUNRUU4ySWdRZ0FTQUVheUFEU1NJQkd5SURheUlFTmdJSUlBQWdBaUFEUVFOMGF6WUNCQ0FBSUFRb0FBQTJBZ0FMSUFFTFNBRUVmeUFBS0FJRUlBQW9BZ0JCQW5ScUlnSXRBQUlnQWk4QkFDRUVJQUVnQVNnQ0JDSUZJQUl0QUFNaUFtbzJBZ1FnQUNBRUlBRW9BZ0FnQlhSQkFDQUNhM1pxTmdJQUMxSUJCSDhnQUNnQ0JDQUFLQUlBUVFKMGFpSUNMUUFDSUFJdkFRQWhCQ0FCSUFJdEFBTWlBaUFCS0FJRWFpSUZOZ0lFSUFBZ0JDQUNRUUowUWFBZGFpZ0NBQ0FCS0FJQVFRQWdCV3QyY1dvMkFnQUxDQUFnQUVHSWYwc0xHZ0FnQUFSQUlBRUVRQ0FDSUFBZ0FSRUNBQThMSUFBUUJnc0xwZ2dDRFg4QmZpTUFRUkJySWdra0FDQUpRUUEyQWd3Z0NVRUFOZ0lJQW44Q1FDQURRZWdKYWlBRElBbEJDR29nQ1VFTWFpQUJJQUlnQTBHQUFXb1FDeUlQUVloL1N3MEFRVlFnQ1NnQ0RDSUVJQUFvQWdBaUFVSC9BWEZCQVdwTERRRWFJQUJCQkdvaEN5QUFJQUZCLzRHQWVIRWdCRUVRZEVHQWdQd0hjWEkyQWdCQmZ5QUVJQVJCQUVnYlFRRnFJUUJCQUNFQklBa29BZ2doQlVFQUlRSURRQ0FBSUFKR0JFQWdCVUVEYXlFQlFRQWhBQU5BQWtCQkFDRUNJQUFnQVU0RVFBTkFJQUFnQlU0TkFpQURJQUFnQTJwQjZBbHFMUUFBUVFKMGFrRkFheUlCSUFFb0FnQWlBVUVCYWpZQ0FDQUJJQU5xSUFBNkFPZ0hJQUJCQVdvaEFBd0FDd0FGQTBBZ0FrRUVSa1VFUUNBRElBTWdBQ0FDYWlJSGFrSG9DV290QUFCQkFuUnFRVUJySWdnZ0NDZ0NBQ0lJUVFGcU5nSUFJQU1nQ0dvZ0J6b0E2QWNnQWtFQmFpRUNEQUVMQ3lBQVFRUnFJUUFNQWdzQUN3c2dCRUVCYWlFT0lBTW9BZ0FoQjBFQUlRQkJBU0VJQTBBZ0NDQU9SZzBESUE0Z0NHc2hCQ0FESUFoQkFuUnFLQUlBSVFVQ1FBSkFBa0FDUUFKQUFrQkJBU0FJZEVFQmRTSU5RUUZyRGdnQUFRUUNCQVFFQXdRTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBQUlRRURRQ0FDSUFaR0RRVWdBeUFDSUFkcWFpMEE2QWNoQ2lBTElBRkJBWFJxSWd3Z0JEb0FBU0FNSUFvNkFBQWdBa0VCYWlFQ0lBRkJBV29oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaENpQUFJUUVEUUNBQ0lBcEdEUVFnQ3lBQlFRRjBhaUlHSUFNZ0FpQUhhbW90QU9nSElndzZBQUlnQmlBRU9nQUJJQVlnRERvQUFDQUdJQVE2QUFNZ0FrRUJhaUVDSUFGQkFtb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBRVFRaDBRWUQrQTNFaEJDQUFJUUVEUUNBQ0lBWkdEUU1nQ3lBQlFRRjBhaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitOd0FBSUFKQkFXb2hBaUFCUVFScUlRRU1BQXNBQzBFQUlRSWdCVUVBSUFWQkFFb2JJUVlnQkVFSWRFR0EvZ054SVFRZ0FDRUJBMEFnQWlBR1JnMENJQXNnQVVFQmRHb2lDaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJaEUzQUFnZ0NpQVJOd0FBSUFKQkFXb2hBaUFCUVFocUlRRU1BQXNBQzBFQUlRRWdCVUVBSUFWQkFFb2JJUW9nQkVFSWRFR0EvZ054SVF3Z0FDRUVBMEFnQVNBS1JnMEJJQXNnQkVFQmRHb2hFQ0FNSUFNZ0FTQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJUkZCQUNFQ0EwQWdBaUFOVGtVRVFDQVFJQUpCQVhScUlnWWdFVGNBR0NBR0lCRTNBQkFnQmlBUk53QUlJQVlnRVRjQUFDQUNRUkJxSVFJTUFRc0xJQUZCQVdvaEFTQUVJQTFxSVFRTUFBc0FDeUFJUVFGcUlRZ2dCU0FIYWlFSElBVWdEV3dnQUdvaEFBd0FDd0FGSUFNZ0FrRUNkR29pQjBGQWF5QUJOZ0lBSUFKQkFXb2hBaUFIS0FJQUlBRnFJUUVNQVFzQUN3QUxJQThMSUFsQkVHb2tBQXZ5QWdFR2Z5TUFRU0JySWdVa0FDQUVLQUlBSVFZZ0JVRU1haUFDSUFNUURTSURRWWgvVFFSQUlBUkJCR29oQWlBQUlBRnFJZ2xCQTJzaEJFRUFJQVpCRUhaclFSOXhJUU1EUUNBRlFReHFFQThnQUNBRVQzSkZCRUFnQWlBRktBSU1JZ1lnQlNnQ0VDSUhkQ0FEZGtFQmRHb2lDQzBBQVNFS0lBQWdDQzBBQURvQUFDQUNJQVlnQnlBS2FpSUdkQ0FEZGtFQmRHb2lCeTBBQUNFSUlBVWdCaUFITFFBQmFqWUNFQ0FBSUFnNkFBRWdBRUVDYWlFQURBRUxDd05BSUFWQkRHb1FEeUVISUFVb0Fnd2hCaUFGS0FJUUlRUWdBQ0FKVHlBSGNrVUVRQ0FDSUFZZ0JIUWdBM1pCQVhScUlnWXRBQUFoQnlBRklBUWdCaTBBQVdvMkFoQWdBQ0FIT2dBQUlBQkJBV29oQUF3QkN3c0RRQ0FBSUFsUFJRUkFJQUlnQmlBRWRDQURka0VCZEdvaUJ5MEFBU0VJSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQkNBSWFpRUVEQUVMQzBGc1FXd2dBU0FGS0FJVUlBVW9BaGhIR3lBRVFTQkhHeUVEQ3lBRlFTQnFKQUFnQXd2UEZBRWpmeU1BUWRBQWF5SUZKQUJCYkNFSkFrQWdBMEVLU1EwQUFrQWdBeUFDTHdBRUlnY2dBaThBQUNJSUlBSXZBQUlpRFdwcVFRWnFJZ3hKRFFBZ0JDOEJBaUVHSUFWQlBHb2dBa0VHYWlJQ0lBZ1FEU0lKUVloL1N3MEJJQVZCS0dvZ0FpQUlhaUlDSUEwUURTSUpRWWgvU3cwQklBVkJGR29nQWlBTmFpSUNJQWNRRFNJSlFZaC9TdzBCSUFVZ0FpQUhhaUFESUF4ckVBMGlDVUdJZjBzTkFTQUVRUVJxSVFvZ0FDQUJhaUlmUVFOcklTQkJBQ0FHYTBFZmNTRUxJQVVvQWdnaEVTQUZLQUljSVJJZ0JTZ0NNQ0VUSUFVb0FrUWhGQ0FGS0FJRUlRa2dCU2dDR0NFTklBVW9BaXdoRENBRktBSkFJUVlnQlNnQ0VDRWhJQVVvQWlRaElpQUZLQUk0SVNNZ0JTZ0NUQ0VrSUFVb0FnQWhGU0FGS0FJVUlSWWdCU2dDS0NFWElBVW9BandoR0VFQklROGdBQ0FCUVFOcVFRSjJJZ1JxSWdNZ0JHb2lBaUFFYWlJWklRUWdBaUVJSUFNaEJ3TkFJQTlCQVhGRklBUWdJRTl5UlFSQUlBQWdDaUFZSUFaMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhHaUFPTFFBRElSQWdCeUFLSUJjZ0RIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0RpMEFBaUViSUE0dEFBTWhEeUFJSUFvZ0ZpQU5kQ0FMZGtFQ2RHb2lEaThCQURzQUFDQU9MUUFDSVJ3Z0RpMEFBeUVkSUFRZ0NpQVZJQWwwSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEhpQU9MUUFESVE0Z0FDQVFhaUlsSUFvZ0dDQUdJQnBxSWdaMElBdDJRUUowYWlJUUx3RUFPd0FBSUJBdEFBSWdFQzBBQXlFbUlBY2dEMm9pSnlBS0lCY2dEQ0FiYWlJYWRDQUxka0VDZEdvaUJ5OEJBRHNBQUNBSExRQUNJUXdnQnkwQUF5RVFJQWdnSFdvaUd5QUtJQllnRFNBY2FpSVBkQ0FMZGtFQ2RHb2lDQzhCQURzQUFDQUlMUUFDSVEwZ0NDMEFBeUVjSUFRZ0Rtb2lIU0FLSUJVZ0NTQWVhaUlPZENBTGRrRUNkR29pQ1M4QkFEc0FBQ0FHYWlFQVFRTWhCd0ovSUJRZ0pFa0VRQ0FBSVFaQkF3d0JDeUFBUVFkeElRWWdGQ0FBUVFOMmF5SVVLQUFBSVJoQkFBc2dDUzBBQXlFZUlBa3RBQUloQ0NBTUlCcHFJUUFnRXlBalNRUi9JQUFGSUJNZ0FFRURkbXNpRXlnQUFDRVhRUUFoQnlBQVFRZHhDeUVNSUEwZ0Qyb2hBQ0FIY2lFSlFRTWhEd0ovSUJJZ0lra0VRQ0FBSVExQkF3d0JDeUFBUVFkeElRMGdFaUFBUVFOMmF5SVNLQUFBSVJaQkFBc2dDQ0FPYWlFQUlBbHlJQkVnSVVrRWZ5QUFCU0FSSUFCQkEzWnJJaEVvQUFBaEZVRUFJUThnQUVFSGNRc2hDU0FsSUNacUlRQWdFQ0FuYWlFSElCc2dIR29oQ0NBZElCNXFJUVFnRDNKRklROE1BUXNMSUFVZ0REWUNMQ0FGSUFZMkFrQWdCU0FOTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBSWdCMGtnQUNBRFMzSU5BRUZzSVFrZ0NDQVpTdzBCSUFOQkEyc2hDUU5BSUFWQlBHb1FEMFVnQUNBSlNYRUVRQ0FBSUFvZ0JTZ0NQQ0lOSUFVb0FrQWlESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdBQ0FPTFFBRGFpSUdJQW9nRFNBTUlBNHRBQUpxSWdCMElBdDJRUUowYWlJTUx3RUFPd0FBSUFVZ0FDQU1MUUFDYWpZQ1FDQUdJQXd0QUFOcUlRQU1BUVVnQTBFQ2F5RU1BMEFnQlVFOGFoQVBJUVlnQlNnQ1BDRU5JQVVvQWtBaENTQUFJQXhMSUFaeVJRUkFJQUFnQ2lBTklBbDBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdDU0FHTFFBQ2FqWUNRQ0FBSUFZdEFBTnFJUUFNQVFzTEEwQWdBQ0FNUzBVRVFDQUFJQW9nRFNBSmRDQUxka0VDZEdvaUJpOEJBRHNBQUNBQUlBWXRBQU5xSVFBZ0NTQUdMUUFDYWlFSkRBRUxDd0pBSUFBZ0EwOE5BQ0FBSUFvZ0RTQUpkQ0FMZGlJQVFRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FKSUFNdEFBSnFJUWtNQVFzZ0NVRWZTdzBBUVNBZ0NTQUtJQUJCQW5ScUxRQUNhaUlBSUFCQklFOGJJUWtMSUFKQkEyc2hEQU5BSUFWQktHb1FEMFVnQnlBTVNYRUVRQ0FISUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lBSFFnQzNaQkFuUnFJZzB2QVFBN0FBQWdCeUFOTFFBRGFpSURJQW9nQmlBQUlBMHRBQUpxSWdCMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FDQUdMUUFDYWpZQ0xDQURJQVl0QUFOcUlRY01BUVVnQWtFQ2F5RUdBMEFnQlVFb2FoQVBJUU1nQlNnQ0tDRU1JQVVvQWl3aEFDQUdJQWRKSUFOeVJRUkFJQWNnQ2lBTUlBQjBJQXQyUVFKMGFpSURMd0VBT3dBQUlBVWdBQ0FETFFBQ2FqWUNMQ0FISUFNdEFBTnFJUWNNQVFzTEEwQWdCaUFIU1VVRVFDQUhJQW9nRENBQWRDQUxka0VDZEdvaUF5OEJBRHNBQUNBSElBTXRBQU5xSVFjZ0FDQURMUUFDYWlFQURBRUxDd0pBSUFJZ0IwME5BQ0FISUFvZ0RDQUFkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FBSUFNdEFBSnFJUUFNQVFzZ0FFRWZTdzBBUVNBZ0FDQUtJQUpCQW5ScUxRQUNhaUlBSUFCQklFOGJJUUFMSUJsQkEyc2hEQU5BSUFWQkZHb1FEMFVnQ0NBTVNYRUVRQ0FJSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lBblFnQzNaQkFuUnFJZzB2QVFBN0FBQWdDQ0FOTFFBRGFpSURJQW9nQmlBQ0lBMHRBQUpxSWdKMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FpQUdMUUFDYWpZQ0dDQURJQVl0QUFOcUlRZ01BUVVnR1VFQ2F5RURBMEFnQlVFVWFoQVBJUUlnQlNnQ0ZDRUdJQVVvQWhnaEJ5QURJQWhKSUFKeVJRUkFJQWdnQ2lBR0lBZDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBVWdCeUFDTFFBQ2FqWUNHQ0FJSUFJdEFBTnFJUWdNQVFzTEEwQWdBeUFJU1VVRVFDQUlJQW9nQmlBSGRDQUxka0VDZEdvaUFpOEJBRHNBQUNBSUlBSXRBQU5xSVFnZ0J5QUNMUUFDYWlFSERBRUxDd0pBSUFnZ0dVOE5BQ0FJSUFvZ0JpQUhkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FISUFNdEFBSnFJUWNNQVFzZ0IwRWZTdzBBUVNBZ0J5QUtJQUpCQW5ScUxRQUNhaUlDSUFKQklFOGJJUWNMQTBBZ0JSQVBSU0FFSUNCSmNRUkFJQVFnQ2lBRktBSUFJZ1lnQlNnQ0JDSUNkQ0FMZGtFQ2RHb2lEQzhCQURzQUFDQUVJQXd0QUFOcUlnTWdDaUFHSUFJZ0RDMEFBbW9pQW5RZ0MzWkJBblJxSWdRdkFRQTdBQUFnQlNBQ0lBUXRBQUpxTmdJRUlBTWdCQzBBQTJvaEJBd0JCU0FmUVFKcklRTURRQ0FGRUE4aEFpQUZLQUlBSVFZZ0JTZ0NCQ0VJSUFNZ0JFa2dBbkpGQkVBZ0JDQUtJQVlnQ0hRZ0MzWkJBblJxSWdJdkFRQTdBQUFnQlNBSUlBSXRBQUpxTmdJRUlBUWdBaTBBQTJvaEJBd0JDd3NEUUNBRElBUkpSUVJBSUFRZ0NpQUdJQWgwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVFnQWkwQUEyb2hCQ0FJSUFJdEFBSnFJUWdNQVFzTEFrQWdCQ0FmVHcwQUlBUWdDaUFHSUFoMElBdDJJZ0pCQW5ScUlnTXRBQUE2QUFBZ0F5MEFBMEVCUmdSQUlBZ2dBeTBBQW1vaENBd0JDeUFJUVI5TERRQkJJQ0FJSUFvZ0FrRUNkR290QUFKcUlnSWdBa0VnVHhzaENBdEJiRUZzUVd4QmJFRnNRV3hCYkVGc0lBRWdDRUVnUnhzZ0JTZ0NDQ0FGS0FJTVJ4c2dCMEVnUnhzZ0JTZ0NIQ0FGS0FJZ1J4c2dBRUVnUnhzZ0JTZ0NNQ0FGS0FJMFJ4c2dDVUVnUnhzZ0JTZ0NSQ0FGS0FKSVJ4c2hDUXdKQ3dBTEFBc0FDd0FMQUFzQUN3QUxBQXRCYkNFSkN5QUZRZEFBYWlRQUlBa0w3QkFCSG44akFFSFFBR3NpQlNRQVFXd2hDUUpBSUFOQkNra05BQUpBSUFNZ0FpOEFCQ0lHSUFJdkFBQWlCeUFDTHdBQ0lnaHFha0VHYWlJT1NRMEFJQVF2QVFJaER5QUZRVHhxSUFKQkJtb2lBaUFIRUEwaUNVR0lmMHNOQVNBRlFTaHFJQUlnQjJvaUFpQUlFQTBpQ1VHSWYwc05BU0FGUVJScUlBSWdDR29pQWlBR0VBMGlDVUdJZjBzTkFTQUZJQUlnQm1vZ0F5QU9heEFOSWdsQmlIOUxEUUVnQkVFRWFpRUtJQUFnQVdvaUhFRURheUVkUVFBZ0QydEJIM0VoQ3lBRktBSUlJUkVnQlNnQ0hDRVNJQVVvQWpBaEV5QUZLQUpFSVJRZ0JTZ0NCQ0VKSUFVb0FoZ2hCaUFGS0FJc0lRY2dCU2dDUUNFSUlBVW9BaEFoSGlBRktBSWtJUjhnQlNnQ09DRWdJQVVvQWt3aElTQUZLQUlBSVJVZ0JTZ0NGQ0VXSUFVb0FpZ2hGeUFGS0FJOElSaEJBU0VOSUFBZ0FVRURha0VDZGlJQ2FpSU9JQUpxSWc4Z0Ftb2lHU0VFSUE4aEFpQU9JUU1EUUNBTlJTQUVJQjFQY2tVRVFDQUtJQmdnQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUFnQ2lBWElBZDBJQXQyUVFGMGFpSU1MUUFCSVJBZ0F5QU1MUUFBT2dBQUlBb2dGaUFHZENBTGRrRUJkR29pREMwQUFTRWFJQUlnREMwQUFEb0FBQ0FLSUJVZ0NYUWdDM1pCQVhScUlnd3RBQUVoR3lBRUlBd3RBQUE2QUFBZ0NpQVlJQWdnRFdvaUNIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFFZ0NpQVhJQWNnRUdvaUIzUWdDM1pCQVhScUlnd3RBQUVoRUNBRElBd3RBQUE2QUFFZ0NpQVdJQVlnR21vaURIUWdDM1pCQVhScUlnWXRBQUVoR2lBQ0lBWXRBQUE2QUFFZ0NpQVZJQWtnRzJvaUczUWdDM1pCQVhScUlna3RBQUVoSWlBRUlBa3RBQUE2QUFFZ0NDQU5haUVHUVFNaENRSi9JQlFnSVVrRVFFRURJUTBnQmd3QkN5QVVJQVpCQTNackloUW9BQUFoR0VFQUlRMGdCa0VIY1FzaENDQUhJQkJxSVFZZ0V5QWdTUVIvSUFZRklCTWdCa0VEZG1zaUV5Z0FBQ0VYUVFBaENTQUdRUWR4Q3lFSElBd2dHbW9oRENBSklBMXlJUkJCQXlFTkFuOGdFaUFmU1FSQUlBd2hCa0VEREFFTElBeEJCM0VoQmlBU0lBeEJBM1pySWhJb0FBQWhGa0VBQ3lBYklDSnFJUXdnRUhJaEVDQVJJQjVKQkg4Z0RBVWdFU0FNUVFOMmF5SVJLQUFBSVJWQkFDRU5JQXhCQjNFTElRa2dCRUVDYWlFRUlBSkJBbW9oQWlBRFFRSnFJUU1nQUVFQ2FpRUFJQTBnRUhKRklRME1BUXNMSUFVZ0J6WUNMQ0FGSUFnMkFrQWdCU0FHTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBQWdEa3NnQXlBUFMzSU5BRUZzSVFrZ0FpQVpTdzBCSUE1QkEyc2hDUU5BSUFWQlBHb1FEeUFBSUFsUGNrVUVRQ0FLSUFVb0Fqd2lCaUFGS0FKQUlnZDBJQXQyUVFGMGFpSUlMUUFCSVF3Z0FDQUlMUUFBT2dBQUlBb2dCaUFISUF4cUlnWjBJQXQyUVFGMGFpSUhMUUFBSVFnZ0JTQUdJQWN0QUFGcU5nSkFJQUFnQ0RvQUFTQUFRUUpxSVFBTUFRc0xBMEFnQlVFOGFoQVBJUWNnQlNnQ1BDRUdJQVVvQWtBaENTQUFJQTVQSUFkeVJRUkFJQW9nQmlBSmRDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0NTQUdMUUFCYWpZQ1FDQUFJQWM2QUFBZ0FFRUJhaUVBREFFTEN3TkFJQUFnRGs5RkJFQWdDaUFHSUFsMElBdDJRUUYwYWlJSExRQUJJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdDV29oQ1F3QkN3c2dEMEVEYXlFQUEwQWdCVUVvYWhBUElBQWdBMDF5UlFSQUlBb2dCU2dDS0NJR0lBVW9BaXdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFESUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWl3Z0F5QUlPZ0FCSUFOQkFtb2hBd3dCQ3dzRFFDQUZRU2hxRUE4aEJ5QUZLQUlvSVFZZ0JTZ0NMQ0VBSUFNZ0QwOGdCM0pGQkVBZ0NpQUdJQUIwSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FBSUFZdEFBRnFOZ0lzSUFNZ0J6b0FBQ0FEUVFGcUlRTU1BUXNMQTBBZ0F5QVBUMFVFUUNBS0lBWWdBSFFnQzNaQkFYUnFJZ2N0QUFFaENDQURJQWN0QUFBNkFBQWdBMEVCYWlFRElBQWdDR29oQUF3QkN3c2dHVUVEYXlFREEwQWdCVUVVYWhBUElBSWdBMDl5UlFSQUlBb2dCU2dDRkNJR0lBVW9BaGdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFDSUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWhnZ0FpQUlPZ0FCSUFKQkFtb2hBZ3dCQ3dzRFFDQUZRUlJxRUE4aEJ5QUZLQUlVSVFZZ0JTZ0NHQ0VESUFJZ0dVOGdCM0pGQkVBZ0NpQUdJQU4wSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FESUFZdEFBRnFOZ0lZSUFJZ0J6b0FBQ0FDUVFGcUlRSU1BUXNMQTBBZ0FpQVpUMFVFUUNBS0lBWWdBM1FnQzNaQkFYUnFJZ2N0QUFFaENDQUNJQWN0QUFBNkFBQWdBa0VCYWlFQ0lBTWdDR29oQXd3QkN3c0RRQ0FGRUE4Z0JDQWRUM0pGQkVBZ0NpQUZLQUlBSWdJZ0JTZ0NCQ0lHZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FLSUFJZ0JpQUlhaUlDZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQWlBR0xRQUJhallDQkNBRUlBYzZBQUVnQkVFQ2FpRUVEQUVMQ3dOQUlBVVFEeUVISUFVb0FnQWhCaUFGS0FJRUlRSWdCQ0FjVHlBSGNrVUVRQ0FLSUFZZ0FuUWdDM1pCQVhScUlnWXRBQUFoQnlBRklBSWdCaTBBQVdvMkFnUWdCQ0FIT2dBQUlBUkJBV29oQkF3QkN3c0RRQ0FFSUJ4UFJRUkFJQW9nQmlBQ2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBRVFRRnFJUVFnQWlBSWFpRUNEQUVMQzBGc1FXeEJiRUZzUVd4QmJFRnNRV3dnQVNBQ1FTQkhHeUFGS0FJSUlBVW9BZ3hIR3lBRFFTQkhHeUFGS0FJY0lBVW9BaUJIR3lBQVFTQkhHeUFGS0FJd0lBVW9BalJIR3lBSlFTQkhHeUFGS0FKRUlBVW9Ba2hIR3lFSkRBRUxRV3doQ1FzZ0JVSFFBR29rQUNBSkMxZ0JBMzhDUUNBQUtBS1E2d0VpQVVVTkFDQUJLQUlBSUFGQnROVUJhaWdDQUNJQ0lBRkJ1TlVCYWlnQ0FDSURFQk1nQWdSQUlBTWdBU0FDRVFJQURBRUxJQUVRQmdzZ0FFRUFOZ0tnNndFZ0FFSUFOd09RNndFTDZRTUNCSDhDZmlBQVFRQkJLQkFESVFRZ0FrRUJRUVVnQXhzaUFFa0VRQ0FBRHdzZ0FVVUVRRUYvRHd0QkFTRUdBa0FDUUNBRFFRRkdEUUFnQXlFR0lBRW9BQUFpQlVHbzZyNXBSZzBBUVhZaEF5QUZRWEJ4UWREVXRNSUJSdzBCUVFnaEF5QUNRUWhKRFFFZ0FUVUFCQ0VJSUFSQkFUWUNGQ0FFSUFnM0F3QkJBQThMSUFFZ0FpQUdFQm9pQXlBQ1N3MEFJQVFnQXpZQ0dFRnlJUU1nQUNBQmFpSUZRUUZyTFFBQUlnSkJDSEVOQUNBQ1FTQnhJZ1pGQkVCQmNDRURJQVV0QUFBaUJVR25BVXNOQVNBRlFRZHhyVUlCSUFWQkEzWkJDbXF0aGlJSVFnT0lmaUFJZkNFSklBQkJBV29oQUFzZ0FrRUdkaUVGSUFKQkFuWkJBQ0VEQWtBQ1FBSkFBa0FnQWtFRGNVRUJhdzREQUFFQ0F3c2dBQ0FCYWkwQUFDRURJQUJCQVdvaEFBd0NDeUFBSUFGcUx3QUFJUU1nQUVFQ2FpRUFEQUVMSUFBZ0FXb29BQUFoQXlBQVFRUnFJUUFMUVFGeElRSUNmZ0pBQWtBQ1FBSkFJQVZCQVdzT0F3RUNBd0FMUW44Z0JrVU5BeG9nQUNBQmFqRUFBQXdEQ3lBQUlBRnFNd0FBUW9BQ2ZBd0NDeUFBSUFGcU5RQUFEQUVMSUFBZ0FXb3BBQUFMSVFnZ0JDQUNOZ0lnSUFRZ0F6WUNIQ0FFSUFnM0F3QkJBQ0VESUFSQkFEWUNGQ0FFSUFnZ0NTQUdHeUlJTndNSUlBUkNnSUFJSUFnZ0NFS0FnQWhhR3o0Q0VBc2dBd3RmQVFGL1FiaC9JUU1nQVVFQlFRVWdBaHNpQWs4RWZ5QUFJQUpxUVFGckxRQUFJZ0JCQTNGQkFuUkJvQjVxS0FJQUlBSnFJQUJCQkhaQkRIRkJzQjVxS0FJQWFpQUFRU0J4SWdGRmFpQUJRUVYySUFCQndBQkpjV29GUWJoL0N3c01BQ0FBSUFFZ0FrRUFFQmtMbHdNQ0JYOENmaU1BUVVCcUlnUWtBQUpBQTBBZ0FVRUZUd1JBQWtBZ0FDZ0FBRUZ3Y1VIUTFMVENBVVlFUUVKK0lRY2dBVUVJU1EwRUlBQW9BQVFpQWtGM1N3MEVJQUpCQ0dvaUF5QUJTdzBFSUFKQmdYOUpEUUVNQkFzZ0JFRVlhaUFBSUFFUUd5RUNRbjRnQkNrREdFSUFJQVFvQWl4QkFVY2JJQUliSWdkQ2ZWWU5BeUFISUFoOElnZ2dCMVJDZmlFSERRTUNRQUpBSUFGQkNFa05BQ0FBS0FBQVFYQnhRZERVdE1JQlJ3MEFJQUFvQUFRaUFrRjNTdzBGUWJoL0lBSkJDR29pQWlBQklBSkpHeUVEREFFTElBUkJHR29nQUNBQkVCc2lBa0dJZjBzRVFDQUNJUU1NQVF0QnVIOGhBeUFDRFFBZ0FTQUVLQUl3SWdKcklRVWdBQ0FDYWlFR0EwQWdCaUFGSUFSQkRHb1FIU0lEUVloL1N3MEJJQU5CQTJvaUFpQUZTd1JBUWJoL0lRTU1BZ3NnQlNBQ2F5RUZJQUlnQm1vaEJpQUVLQUlRUlEwQUN5QUVLQUk0Qkg5QnVIOGhBeUFGUVFSSkRRRWdCa0VFYWdVZ0Jnc2dBR3NoQXdzZ0EwR0lmMHNOQXdzZ0FTQURheUVCSUFBZ0Eyb2hBQXdCQ3d0Q2ZpQUlJQUViSVFjTElBUkJRR3NrQUNBSEMyUUJBWDlCdUg4aEF3SkFJQUZCQTBrTkFDQUFMUUFDSVFFZ0FpQUFMd0FBSWdCQkFYRTJBZ1FnQWlBQVFRRjJRUU54SWdNMkFnQWdBaUFBSUFGQkVIUnlRUU4ySWdBMkFnZ0NRQUpBSUFOQkFXc09Bd0lCQUFFTFFXd1BDeUFBSVFNTElBTUxSQUVDZnlBQklBSW9BZ1FpQXlBQktBSUVhaUlFTmdJRUlBQWdBMEVDZEVHZ0hXb29BZ0FnQVNnQ0FFRUFJQVJyZG5FMkFnQWdBUkFQR2lBQUlBSkJDR28yQWdRTHpnRUJCbjlCdW44aENnSkFJQUlvQWdRaUNDQUNLQUlBSWdscUlnMGdBU0FBYTBzTkFFRnNJUW9nQ1NBRUlBTW9BZ0FpQzJ0TERRQWdBQ0FKYWlJRUlBSW9BZ2dpREdzaEFpQUFJQUZCSUdzaUFDQUxJQWxCQUJBZ0lBTWdDU0FMYWpZQ0FBSkFBa0FnQkNBRmF5QU1Ud1JBSUFJaEJRd0JDeUFNSUFRZ0JtdExEUUlnQnlBSElBSWdCV3NpQW1vaUFTQUlhazhFUUNBRUlBRWdDQkFLR2d3Q0N5QUNJQWhxSVFnZ0JDQUJRUUFnQW1zUUNpQUNheUVFQ3lBRUlBQWdCU0FJUVFFUUlBc2dEU0VLQ3lBS0M4Y0VBUUovSUFBZ0Eyb2hCZ0pBSUFOQkIwd0VRQU5BSUFBZ0JrOE5BaUFBSUFJdEFBQTZBQUFnQUVFQmFpRUFJQUpCQVdvaEFnd0FDd0FMSUFSQkFVWUVRQUpBSUFBZ0Ftc2lCVUVIVFFSQUlBQWdBaTBBQURvQUFDQUFJQUl0QUFFNkFBRWdBQ0FDTFFBQ09nQUNJQUFnQWkwQUF6b0FBeUFBSUFJZ0JVRUNkQ0lGUWNBZWFpZ0NBR29pQWlnQUFEWUFCQ0FDSUFWQjRCNXFLQUlBYXlFQ0RBRUxJQUFnQWlrQUFEY0FBQXNnQWtFSWFpRUNJQUJCQ0dvaEFBc2dBU0FHVHdSQUlBQWdBMm9oQVNBRVFRRkhJQUFnQW10QkQwcHlSUVJBQTBBZ0FDQUNLUUFBTndBQUlBSkJDR29oQWlBQVFRaHFJZ0FnQVVrTkFBd0RDd0FMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0EwRVJTUTBCSUFCQkVHb2hBQU5BSUFBZ0Fpa0FFRGNBQUNBQUlBSXBBQmczQUFnZ0FDQUNLUUFnTndBUUlBQWdBaWtBS0RjQUdDQUNRU0JxSVFJZ0FFRWdhaUlBSUFGSkRRQUxEQUVMQWtBZ0FDQUJTd1JBSUFBaEFRd0JDeUFCSUFCcklRVUNRQ0FFUVFGSElBQWdBbXRCRDBweVJRUkFJQUloQXdOQUlBQWdBeWtBQURjQUFDQURRUWhxSVFNZ0FFRUlhaUlBSUFGSkRRQUxEQUVMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0JVRVJTQTBBSUFCQkVHb2hBQ0FDSVFNRFFDQUFJQU1wQUJBM0FBQWdBQ0FES1FBWU53QUlJQUFnQXlrQUlEY0FFQ0FBSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUJCSUdvaUFDQUJTUTBBQ3dzZ0FpQUZhaUVDQ3dOQUlBRWdCazhOQVNBQklBSXRBQUE2QUFBZ0FVRUJhaUVCSUFKQkFXb2hBZ3dBQ3dBTEM2NEhBZ1YvQVg0akFFR0FBV3NpRVNRQUlCRWdBellDZkVGL0lROENRQUpBQWtBQ1FBSkFJQUlPQkFFQUF3SUVDeUFHUlFSQVFiaC9JUThNQkF0QmJDRVBJQVV0QUFBaUFpQURTdzBESUFnZ0FrRUNkQ0lDYWlnQ0FDRURJQUlnQjJvb0FnQWhBaUFBUVFBNkFBc2dBRUlBTndJQUlBQWdBallDRENBQUlBTTZBQW9nQUVFQU93RUlJQUVnQURZQ0FFRUJJUThNQXdzZ0FTQUpOZ0lBUVFBaER3d0NDeUFLUlFSQVFXd2hEd3dDQzBFQUlROGdDMFVnREVFWlNISU5BVUVJSUFSMFFRaHFJUUJCQUNFREEwQWdBQ0FEVFEwQ0lBTkJRR3NoQXd3QUN3QUxRV3doRHlBUklCRkIvQUJxSUJGQitBQnFJQVVnQmhBTUlnTkJpSDlMRFFBZ0VTZ0NlQ0lDSUFSTERRQWdFU2dDZkVFQmFpRUpJQUJCQ0dvaEMwR0FnQUlnQW5SQkVIVWhCVUVCSVJCQkFTQUNkQ0lQUVFGcklnb2hFZ05BSUFrZ0RrY0VRQUpBSUJFZ0RrRUJkQ0lFYWk4QkFDSU1RZi8vQTBZRVFDQUxJQkpCQTNScUlBNDJBZ1FnRWtFQmF5RVNRUUVoREF3QkN5QVFRUUFnQlNBTXdVb2JJUkFMSUFRZ0RXb2dERHNCQUNBT1FRRnFJUTRNQVFzTElBQWdBallDQkNBQUlCQTJBZ0FDUUNBS0lCSkdCRUFnRFVIcUFHb2hCa0VBSVJCQkFDRU1BMEFnQ1NBUVJnUkFJQTlCQTNZZ0QwRUJkbXBCQTJvaUJVRUJkQ0VFUVFBaERFRUFJUklEUUVFQUlRNGdEeUFTVFEwRUEwQWdEa0VDUndSQUlBc2dCU0FPYkNBTWFpQUtjVUVEZEdvZ0JpQU9JQkpxYWkwQUFEWUNCQ0FPUVFGcUlRNE1BUXNMSUJKQkFtb2hFaUFFSUF4cUlBcHhJUXdNQUFzQUJTQVJJQkJCQVhScUxnRUFJUVVnQmlBTWFpSUVJQk0zQUFCQkNDRU9BMEFnQlNBT1NnUkFJQVFnRG1vZ0V6Y0FBQ0FPUVFocUlRNE1BUXNMSUJOQ2dZS0VpSkNnd0lBQmZDRVRJQkJCQVdvaEVDQUZJQXhxSVF3TUFRc0FDd0FMSUE5QkEzWWdEMEVCZG1wQkEyb2hCVUVBSVJCQkFDRU9BMEFnQ1NBUVJnMEJRUUFoRENBUklCQkJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBTVJ3UkFJQXNnRGtFRGRHb2dFRFlDQkFOQUlBVWdEbW9nQ25FaURpQVNTdzBBQ3lBTVFRRnFJUXdNQVFzTElCQkJBV29oRUF3QUN3QUxJQUpCQVdvaEJVRUFJUXdEUUNBTUlBOUhCRUFnRFNBTElBeEJBM1JxSWdrb0FnUWlCRUVCZEdvaUFpQUNMd0VBSWdaQkFXbzdBUUFnQ1NBRklBWm5RV0J6YWlJQ09nQURJQWtnQmlBQ2RDQVBhenNCQUNBSklBZ2dCRUVDZENJQ2FpZ0NBRG9BQWlBSklBSWdCMm9vQWdBMkFnUWdERUVCYWlFTURBRUxDeUFCSUFBMkFnQWdBeUVQQ3lBUlFZQUJhaVFBSUE4TDdWb0NPMzhHZmlNQVFlQUJheUlFSkFBQ1FFR3c3QWtRQlNJRlJRUkFRVUFoQnd3QkN5QUZRZ0EzQXZUcUFTQUZRUUEyQXNUckFTQUZRUUEyQXJUckFTQUZRZ0EzQXB6ckFTQUZRUUEyQXJqcEFTQUZRUUEyQXF6c0NTQUZRZ0EzQXRUckFTQUZRZ0EzQXF6ckFTQUZRZ0EzQTRqckFTQUZRZ0EzQXVUcUFTQUZRZ0EzQXVUckFTQUZRWUdBZ01BQU5nSzg2d0VnQlVJQU53S2s2d0VnQlVIODZnRnFRUUEyQWdBZ0JVR1E2d0ZxUWdBM0F3QWdCUkFZSUFWQnJOVUJhaUVVSUFWQitPc0JhaUVjSUFWQnNPb0JhaUVpSUFWQm9EQnFJU29nQlVHWUlHb2hLeUFGUWFqUUFHb2hIaUFGUVJCcUlTd2dCVUVJYWlFb0lBVkJCR29oTFNBRlFjRHBBV29oS1NBRlFZanJBV29nQkVHVUFXb2hMeUFFUVl3QmFpRXdJQVJCaEFGcUlURWdCRUhjQUdvaE1pQUVRZFFBYWlFeklBUkJ6QUJxSVRRZ0FDRWRBa0FDUUFKQUFrQUNRQU5BUVFGQkJTQUZLQUxrNmdFYklRWUNRQU5BSUFNZ0Jra05BU0FDS0FBQVFYQnhRZERVdE1JQlJnUkFRYmgvSVFjZ0EwRUlTUTBJSUFJb0FBUWlEa0YzU3dSQVFYSWhCd3dKQ3lBRElBNUJDR29pQ1VrTkNDQU9RWUIvU3dSQUlBa2hCd3dKQ3lBRElBbHJJUU1nQWlBSmFpRUNEQUVMQ3lBRlFnQTNBcXpwQVNBRlFnQTNBK2pwQVNBRlFRQTJBcGpyQVNBRlFnQTNBNERxQVNBRlFnTTNBL2pwQVNBRlFiVHBBV3BDQURjQ0FDQUZRZkRwQVdwQ0FEY0RBQ0FGUWFqUUFHb2lDVUdNZ0lEZ0FEWUNBQ0FGUWF6UUFXcEI0QklwQWdBM0FnQWdCVUcwMEFGcVFlZ1NLQUlBTmdJQUlBVWdCVUVRYWpZQ0FDQUZJQVZCb0RCcU5nSUVJQVVnQlVHWUlHbzJBZ2dnQlNBSk5nSU1JQVZCQVVFRklBVW9BdVRxQVJzMkFyenBBUUpBSUFGRkRRQWdCU2dDck9rQklna2dIVVlOQUNBRklBazJBcmpwQVNBRklCMDJBcXpwQVNBRktBS3c2UUVoRGlBRklCMDJBckRwQVNBRklCMGdEaUFKYTJvMkFyVHBBUXRCdUg4aENTQURRUVZCQ1NBRktBTGs2Z0VpQmh0SkRRVWdBa0VCUVFVZ0Joc2dCaEFhSWc1QmlIOUxCRUFnRGlFSkRBVUxJQU1nRGtFRGFra05CU0FwSUFJZ0RpQUdFQmtpQmtHSWYwc0VRQ0FHSVFrTUJRc2dCZzBGQWtBQ1FDQUZLQUtvNndGQkFVY05BQ0FGS0FLazZ3RWlDVVVOQUNBRktBS1U2d0ZGRFFBZ0NTZ0NCRUVCYXlJSElBVW9BdHpwQVNJS3JVS0hsYSt2bUxiZW01NS9ma0xKejlteThlVzY2aWVGUWhlSlFzL1cwNzdTeDZ2WlFuNUMrZlBkOFpuMm1hc1dmQ0kvUWlHSUlEK0ZRcy9XMDc3U3g2dlpRbjRpUDBJZGlDQS9oVUw1ODkzeG1mYVpxeForSWo5Q0lJZ2dQNFduY1NFR0lBa29BZ0FoRlFOQVFRQWhDQUpBSUJVZ0JrRUNkR29vQWdBaUNVVU5BQ0FKS0FJSVFRaEpEUUFnQ1NnQ0JDSVNLQUFBUWJmSXd1RitSdzBBSUJJb0FBUWhDQXNnQ0NBS1J3UkFJQVlnQjNGQkFXb2hCaUFJRFFFTEN5QUpSUTBBSUFVUUdDQUZRWDgyQXFEckFTQUZJQWsyQXBUckFTQUZJQVVvQXR6cEFTSUlOZ0tZNndFTUFRc2dCU2dDM09rQklRZ0xBa0FnQ0VVTkFDQUZLQUtZNndFZ0NFWU5BRUZnSVFrTUJnc0NRQ0FGS0FMZzZRRUVRQ0FGSUFVb0F1anFBU0lKUlRZQzdPb0JJQWtOQVNBRlF2bnEwTkRueWFIazRRQTNBNmpxQVNBRlFnQTNBNkRxQVNBRlFzL1cwNzdTeDZ2WlFqY0RtT29CSUFWQzF1dUM3dXI5aWZYZ0FEY0RrT29CSUFWQ0FEY0RpT29CSUNKQkFFRW9FQU1hREFFTElBVkJBRFlDN09vQkN5QUJJQjFxSVNVZ0JTQUZLUVBvNlFFZ0RxMThOd1BvNlFFZ0F5QU9heUVESUFJZ0Rtb2hBaUFkSVE0RFFDQUNJQU1nQkVFc2FoQWRJaFZCaUg5TEJFQWdGU0VKREFZTElBTkJBMnNpTlNBVlNRMEVJQUpCQTJvaEcwRnNJUWtDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQUVLQUlzRGdNQ0FRQVZDeUFWUWYvL0Iwc05FeUFWUVFOSkRSSWdCU2tEeU9rQklUOENRQUpBSUJzdEFBQWlDVUVEY1NJYVFRRnJEZ01HQVFBSEN5QUZLQUtBNmdFTkFFRmlJUWtNRlFzZ0ZVRUZTUTBTSUJzb0FBQWhBd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRWlDVUVDYXc0Q0FRSUFDeUFKUVFCSElRY2dBMEVFZGtIL0IzRWhDMEVESVFZZ0EwRU9ka0gvQjNFTUFndEJCQ0VHSUFOQkJIWkIvLzhBY1NFTFFRRWhCeUFEUVJKMkRBRUxJQU5CQkhaQi8vOFBjU0lMUVlDQUNFc05FMEVCSVFkQkJTRUdJQUl0QUFkQkNuUWdBMEVXZG5JTElnZ2dCbW9pQ1NBVlN3MFNBa0FnQzBHQkJra05BQ0FGS0FLYzZ3RkZEUUJCQUNFREEwQWdBMEdEZ0FGTERRRWdBMEZBYXlFRERBQUxBQXNnQmlBYmFpRVBJQnBCQTBjTkJpQUZLQUlNSWdJdEFBRkJDSFFoQXlBSERRY2dBMFVOQ0NBRVFmQUFhaUFQSUFnUURTSURRWWgvU3cwSklBSkJCR29oQmlBTElCeHFJaEpCQTJzaENrRUFJQUl2QVFKclFSOXhJUWNnSENFREEwQWdCRUh3QUdvUUQwVWdBeUFLU1hFRVFDQURJQVlnQkNnQ2NDSUlJQVFvQW5RaUQzUWdCM1pCQW5ScUlnSXZBUUE3QUFBZ0F5QUNMUUFEYWlJRElBWWdDQ0FQSUFJdEFBSnFJZ2gwSUFkMlFRSjBhaUlDTHdFQU93QUFJQVFnQ0NBQ0xRQUNhallDZENBRElBSXRBQU5xSVFNTUFRVWdFa0VDYXlFSUEwQWdCRUh3QUdvUUR5RVBJQVFvQW5BaENpQUVLQUowSVFJZ0F5QUlTeUFQY2tVRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUNpOEJBRHNBQUNBRUlBSWdDaTBBQW1vMkFuUWdBeUFLTFFBRGFpRUREQUVMQ3dOQUlBTWdDRTBFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pRHk4QkFEc0FBQ0FESUE4dEFBTnFJUU1nQWlBUExRQUNhaUVDREFFTEN3SkFJQU1nRWs4TkFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUF5MEFBRG9BQUNBRExRQURRUUZHQkVBZ0FpQURMUUFDYWlFQ0RBRUxJQUpCSDBzTkFFRWdJQUlnQXkwQUFtb2lBaUFDUVNCUEd5RUNDMEZzUVd3Z0N5QUVLQUo0SUFRb0FueEhHeUFDUVNCSEd5RUREQXNMQUFzQUN5QUVLQUkwSWdJZ0pTQU9hMHNOQ2lBT1JRUkFRUUFoQ1NBQ0RRSU1EZ3NnRGlBYkxRQUFJQUlRQXhvZ0FpRUpEQXdMSUJVZ0pTQU9hMHNOQ1NBT0RRRkJBQ0VKSUJWRkRRd0xRYlovSVFrTUVRc2dEaUFiSUJVUUFob2dGU0VKREFvTElCd2dHd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRkJBV3NPQXdFQUFnQUxJQWxCQTNZaEEwRUJEQUlMSUJzdkFBQkJCSFloQTBFQ0RBRUxJQlZCQkVrTkRpQUNMd0FESUFJdEFBVkJFSFJ5SWdKQmo0Q0FBVXNORGlBQ1FRUjJJUU5CQXdzaUFtb3RBQUFnQTBFZ2FoQURJUWtnQlNBRE5nS0E2d0VnQlNBSk5nTHc2Z0VnQWtFQmFpRUpEQVVMSUJVQ2Z3SkFBa0FDUUNBSlFRSjJRUU54UVFGckRnTUJBQUlBQ3lBSlFRTjJJUU5CQVF3Q0N5QWJMd0FBUVFSMklRTkJBZ3dCQ3lBQ0x3QURJQUl0QUFWQkVIUnlRUVIySVFOQkF3c2lBaUFEYWlJSlFTQnFTUVJBSUFrZ0ZVc05EU0FjSUFJZ0cyb2dBeEFDSVFJZ0JTQUROZ0tBNndFZ0JTQUNOZ0x3NmdFZ0FpQURhaUlDUWdBM0FCZ2dBa0lBTndBUUlBSkNBRGNBQ0NBQ1FnQTNBQUFNQlFzZ0JTQUROZ0tBNndFZ0JTQUNJQnRxTmdMdzZnRU1CQXNnQjBVRVFDQWVJQThnQ0NBVUVCUWlBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRlNFRERBTUxJQXRGSUFoRmNnMExJQXRCQ0hZaUF5QUlJQXRKQkg4Z0NFRUVkQ0FMYmdWQkR3dEJHR3dpQWtHTUNHb29BZ0JzSUFKQmlBaHFLQUlBYWlJR1FRTjJJQVpxSUFKQmdBaHFLQUlBSUFKQmhBaHFLQUlBSUFOc2Fra0VRQ01BUVJCckloQWtBQ0FlS0FJQUlRTWdGRUh3QkdwQkFFSHNBQkFESVFaQlZDRUNBa0FnQTBIL0FYRWlERUVNU3cwQUFrQWdGRUhjQ1dvZ0JpQVFRUWhxSUJCQkRHb2dEeUFJSUJSQjNBdHFJaGNRQ3lJU1FZaC9TdzBBSUJBb0Fnd2lCaUFNU3cwQklCUkJxQVZxSVEwZ0ZFR2tCV29oTmlBZVFRUnFJUkVnQTBHQWdJQjRjU0UzSUFaQkFXb2lFeUVDSUFZaEF3TkFJQUlpQjBFQmF5RUNJQU1pQ2tFQmF5RURJQlFnQ2tFQ2RHb29BdkFFUlEwQUMwRUJJQWNnQjBFQlRSc2hGa0VBSVFkQkFTRUNBMEFnQWlBV1J3UkFJQlFnQWtFQ2RDSURhaWdDOEFRaEdDQURJQTFxSUFjMkFnQWdBa0VCYWlFQ0lBY2dHR29oQnd3QkN3c2dEU0FITmdJQVFRQWhBaUFRS0FJSUlRTURRQ0FDSUFOSEJFQWdEU0FDSUJScVFkd0phaTBBQUNJWVFRSjBhaUlaSUJrb0FnQWlHVUVCYWpZQ0FDQVVJQmxCQVhScUloa2dHRG9BM1FVZ0dTQUNPZ0RjQlNBQ1FRRnFJUUlNQVFzTFFRQWhBeUFOUVFBMkFnQWdEQ0FHUVg5emFpRUdRUUVoQWdOQUlBSWdGa2NFUUNBVUlBSkJBblJxSWcwZ0F6WUNBQ0FOS0FMd0JDQUNJQVpxZENBRGFpRURJQUpCQVdvaEFnd0JDd3NnRENBVElBcHJJZ1pyUVFGcUlRb2dCaUVEQTBBZ0F5QUtTUVJBSUJRZ0EwRTBiR29oRFVFQklRSURRQ0FDSUJaSEJFQWdEU0FDUVFKMEloaHFJQlFnR0dvb0FnQWdBM1kyQWdBZ0FrRUJhaUVDREFFTEN5QURRUUZxSVFNTUFRc0xJQmNnRkVFMEVBSWhPQ0FVUVpBTWFpRTVJQk1nREdzaE9pQVVRZHdGYWlFWFFRQWhDZ05BQWtBQ1FDQUhJQXBIQkVCQkFTQU1JQk1nRnlBS1FRRjBhaUlDTFFBQklnMXJJZ05ySWhoMElSa2dBaTBBQUNFV0lEZ2dEVUVDZEdvaUh5Z0NBQ0VDSUFZZ0dFMEVRQ0EyUVFFZ0F5QTZhaUlOSUExQkFVd2JJaUJCQW5RaUpHb29BZ0FoRFNBNUlCUWdBMEUwYkdwQk5CQUNJU0VnRFVFQmRDRW1JQkVnQWtFQ2RHb2hJeUFnUVFGTkRRSWdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVnSUNFZ0pHb29BZ0FoSkVFQUlRSURRQ0FDSUNSR0RRTWdJeUFDUVFKMGFpQWdOZ0VBSUFKQkFXb2hBZ3dBQ3dBTElBSWdBaUFaYWlJTklBSWdEVXNiSVEwZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRURBMEFnQWlBTlJnMERJQkVnQWtFQ2RHb2dBellCQUNBQ1FRRnFJUUlNQUFzQUN5QWVJQXhCRUhRZ04zSWdESEpCZ0FKeU5nSUFEQU1MSUFjZ0RXc2hKQ0FYSUNacUlTWkJBQ0VOQTBBZ0RTQWtSZzBCUVFFZ0dDQVRJQ1lnRFVFQmRHb2lKeTBBQVNJQ2F5STdhM1FpUENBaElBSkJBblJxSWlBb0FnQWlBbW9oUFNBRElEdHFRUkIwUVlDQS9BZHhJQ2N0QUFCQkNIUnlJQlp5UVlDQWdCQnlJU2NEUUNBaklBSkJBblJxSUNjMkFRQWdBa0VCYWlJQ0lEMUpEUUFMSUNBZ0lDZ0NBQ0E4YWpZQ0FDQU5RUUZxSVEwTUFBc0FDeUFmSUI4b0FnQWdHV28yQWdBZ0NrRUJhaUVLREFBTEFBc2dFaUVDQ3lBUVFSQnFKQUFnQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZpRUREQU1MSUI0Z0R5QUlJQlFRRkNJQ1FZaC9TeUFDSUFoUGNnMExJQndnQ3lBQ0lBOXFJQWdnQW1zZ0hoQVhJUU1NQWdzZ0F3UkFJQndnQ3lBUElBZ2dBaEFXSVFNTUFnc2dIQ0FMSUE4Z0NDQUNFQmNoQXd3QkN5QWNJQXNnRHlBSUlBSVFGU0VEQ3lBRFFZaC9TdzBJSUFVZ0N6WUNnT3NCSUFVZ0hEWUM4T29CSUFWQkFUWUNnT29CSUJwQkFrWUVRQ0FGSUI0MkFnd0xJQXNnSEdvaUFrSUFOd0FBSUFKQ0FEY0FHQ0FDUWdBM0FCQWdBa0lBTndBSUlBbEJpSDlMRFFvTElBa2dGVVlOQ0NBVklBbHJJUVlnQlNnQ25Pc0JJUW9DUUNBSklCdHFJZ010QUFBaUQwVUVRRUVCSVFKQkFDRVBRYmgvSVFrZ0JrRUJSZzBCREFzTEFuOGdBMEVCYWlBUHdDSUNRUUJPRFFBYUlBSkJmMFlFUUNBR1FRTklEUXNnQXk4QUFVR0EvZ0ZxSVE4Z0EwRURhZ3dCQ3lBR1FRSklEUW9nQXkwQUFTQVBRUWgwY2tHQWdBSnJJUThnQTBFQ2Fnc2hFa0c0ZnlFSklCSkJBV29pQWlBVklCdHFJZ2RMRFFvZ0xDQUZJQkl0QUFBaUVrRUdka0VqUVFrZ0FpQUhJQUpyUWNBUVFkQVJRZkFTSUFVb0FvVHFBU0FLSUE4Z0ZCQWhJZ2xCaUg5TERRZ2dLeUFvSUJKQkJIWkJBM0ZCSDBFSUlBSWdDV29pQWlBSElBSnJRWUFMUVlBTVFZQVhJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQ0VHSWYwc05DRUZzSVFrZ0tpQXRJQkpCQW5aQkEzRkJORUVKSUFJZ0NHb2lBaUFISUFKclFZQU5RZUFPUVpBWklBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlCMEdJZjBzTkNpQUNJQWRxSUFOcklnSWhDU0FDUVloL1N3MEtDeUFPSUE5QkFFeHlEUUVMUWJwL0lRa01DQXNnSlNBT2F5RUpJQVlnQW1zaEJpQUNJQU5xSVFjQ1FBSkFBa0FnQ2tVRVFDQVBRUWxJSUFVcEE4anBBVUtCZ0lBSVZISU5BaUFvS0FJQUlnSkJDR29oRWlBQ0tBSUVJUXBCQUNFRFFRQWhBZ05BSUFNZ0NuWkZCRUFnQWlBU0lBTkJBM1JxTFFBQ1FSWkxhaUVDSUFOQkFXb2hBd3dCQ3dzZ0JVRUFOZ0tjNndFZ0FrRUlJQXByZEVFVVR3MEJEQU1MSUFWQkFEWUNuT3NCQ3lBRUlBVW9BdkRxQVNJRE5nTGNBU0FKSUE1cUlSWWdBeUFGS0FLQTZ3RnFJUmNDUUNBUFJRUkFJQTRoQnd3QkN5QUZLQUs0NlFFaEdpQUZLQUswNlFFaEdDQUZLQUt3NlFFaEVpQUZRUUUyQW9UcUFVRUFJUU1EUUNBRFFRTkhCRUFnQkNBRFFRSjBJZ0pxSUFJZ0JXcEJyTkFCYWlnQ0FEWUNaQ0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRVGhxSWdJZ0J5QUdFQTFCaUg5TERRTkJDQ0FQSUE5QkNFNGJJUjhnTkNBQ0lBVW9BZ0FRSGlBeklBSWdCU2dDQ0JBZUlESWdBaUFGS0FJRUVCNGdEaUFTYXlFWlFRQWhDQU5BSUFSQk9Hb1FEMEVEUmlBSUlCOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnZEJFSFlpRVVIL0FYRWhDeUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWd4QkVIWWlJVUgvQVhFaEVDQUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFZZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDa0gvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJS2F5SU5JQUlnQWlBTlN4c2lFeUFLYWpZQ1BDQUdJQVFvQWpnZ0NuUkJBQ0FUYTNZZ0FpQVRheUlUZEdvaENpQUVRVGhxRUE4YUlBSWdEVTBOQVNBRUlBUW9BandpQWlBVGFqWUNQQ0FFS0FJNElBSjBRUUFnRTJ0MklBcHFJUW9NQVFzZ0JDQUNJQVFvQWp3aURXbzJBandnQkNnQ09DQU5kRUVBSUFwcmRpQUdhaUVLSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUFvMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQURCRUFnQkNnQ1pDRUtEQU1MSUFRb0FtZ2hDZ3dCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFZZ0EwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnWkZJQVpxSVFvZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQW8yQW1RTHB5RUNJRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUJCcU5nSThJQVFvQWpnZ0JuUkJBQ0FoYTNZZ0Ftb2hBZ3NnQ3lBUWFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lBdHFOZ0k4SUFRb0FqZ2dCblJCQUNBUmEzWWdBMm9oQXdzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQmtFQUlBZEJHSFlpQ3lBRUtBSThhaUlRYTNZZ0MwRUNkRUdnSFdvb0FnQnhJQWRCLy84RGNXbzJBa3dnQkNBUUlBeEJHSFlpQjJvaUN6WUNQQ0FFSUFkQkFuUkJvQjFxS0FJQUlBWkJBQ0FMYTNaeElBeEIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdaQkdIWWlCeUFFS0FJOGFpSUxOZ0k4SUFRZ0IwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBdHJkbkVnQmtILy93TnhhallDVkNBRVFmQUFhaUFJUVF4c2FpSUdJQW8yQWdnZ0JpQUNOZ0lFSUFZZ0F6WUNBQ0FJUVFGcUlRZ2dBeUFaYWlBQ2FpRVpEQUVMQ3lBSUlCOUlEUU1nRmtFZ2F5RWhJQTRoQndOQUlBUkJPR29RRDBFRFJpQUlJQTlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ1pCRUhZaUkwSC9BWEVoQ2lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklnMUJFSFlpSUVIL0FYRWhFeUFFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRTWdRVUlnaUNCQVFpQ0lweUVMQWtBZ1FrSVFpS2NpREVIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSU1heUlSSUFJZ0FpQVJTeHNpRUNBTWFqWUNQQ0FESUFRb0FqZ2dESFJCQUNBUWEzWWdBaUFRYXlJTWRHb2hFQ0FFUVRocUVBOGFJQUlnRVUwTkFTQUVJQVFvQWp3aUFpQU1hallDUENBRUtBSTRJQUowUVFBZ0RHdDJJQkJxSVJBTUFRc2dCQ0FDSUFRb0Fqd2lFR28yQWp3Z0JDZ0NPQ0FRZEVFQUlBeHJkaUFEYWlFUUlBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlCQTJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FMQkVBZ0JDZ0NaQ0VRREFNTElBUW9BbWdoRUF3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBTWdDMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ05GSUFOcUlSQWdBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUJBMkFtUUxweUVNSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lCTnFOZ0k4SUFRb0FqZ2dBblJCQUNBZ2EzWWdER29oREFzZ0NpQVRha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQXBxTmdJOElBUW9BamdnQW5SQkFDQWphM1lnQzJvaEN3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUFrRUFJQVpCR0hZaUF5QUVLQUk4YWlJS2EzWWdBMEVDZEVHZ0hXb29BZ0J4SUFaQi8vOERjV28yQWt3Z0JDQUtJQTFCR0hZaUEyb2lCallDUENBRUlBTkJBblJCb0IxcUtBSUFJQUpCQUNBR2EzWnhJQTFCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnSkJHSFlpQXlBRUtBSThhaUlHTmdJOElBUWdBMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQVpyZG5FZ0FrSC8vd054YWpZQ1ZBSkFBa0FDUUNBRUtBTGNBU0lESUFSQjhBQnFJQWhCQjNGQkRHeHFJaE1vQWdBaUVXb2lJeUFYU3cwQUlBY2dFeWdDQkNJTklCRnFJZ3BxSUNGTERRQWdDa0VnYWlBV0lBZHJUUTBCQ3lBRUlCTW9BZ2cyQWhnZ0JDQVRLUUlBTndNUUlBY2dGaUFFUVJCcUlBUkIzQUZxSUJjZ0VpQVlJQm9RSHlFS0RBRUxJQWNnRVdvaEFpQVRLQUlJSVFZZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNBSkFJQkZCRVVrTkFDQUhJQU1wQUJBM0FCQWdCeUFES1FBWU53QVlJQkZCRUd0QkVVZ05BQ0FEUVJCcUlRTWdCMEVnYWlFUkEwQWdFU0FES1FBUU53QUFJQkVnQXlrQUdEY0FDQ0FSSUFNcEFDQTNBQkFnRVNBREtRQW9Od0FZSUFOQklHb2hBeUFSUVNCcUloRWdBa2tOQUFzTElBSWdCbXNoQXlBRUlDTTJBdHdCSUFJZ0Vtc2dCa2tFUUNBR0lBSWdHR3RMRFFjZ0dpQWFJQU1nRW1zaUEyb2lFU0FOYWs4RVFDQUNJQkVnRFJBS0dnd0NDeUFESUExcUlRMGdBaUFSUVFBZ0Eyc1FDaUFEYXlFQ0lCSWhBd3NnQmtFUVR3UkFJQUlnQXlrQUFEY0FBQ0FDSUFNcEFBZzNBQWdnRFVFUlNBMEJJQUlnRFdvaEJpQUNRUkJxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQUdTUTBBQ3d3QkN3SkFJQVpCQjAwRVFDQUNJQU10QUFBNkFBQWdBaUFETFFBQk9nQUJJQUlnQXkwQUFqb0FBaUFDSUFNdEFBTTZBQU1nQWlBRElBWkJBblFpQmtIQUhtb29BZ0JxSWdNb0FBQTJBQVFnQXlBR1FlQWVhaWdDQUdzaEF3d0JDeUFDSUFNcEFBQTNBQUFMSUExQkNVa05BQ0FDSUExcUlSRWdBa0VJYWlJR0lBTkJDR29pQTJ0QkQwd0VRQU5BSUFZZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQmtFSWFpSUdJQkZKRFFBTUFnc0FDeUFHSUFNcEFBQTNBQUFnQmlBREtRQUlOd0FJSUExQkdVZ05BQ0FDUVJocUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFSU1EwQUN3c2dDa0dJZjBzRVFDQUtJUWtNQmdVZ0V5QVFOZ0lJSUJNZ0REWUNCQ0FUSUFzMkFnQWdDRUVCYWlFSUlBY2dDbW9oQnlBTElCbHFJQXhxSVJrTUFnc0FDd3NnQ0NBUFNBMERJQWdnSDJzaEJnTkFBa0FnQmlBUFRnUkFRUUFoQXdOQUlBTkJBMFlOQWlBRklBTkJBblFpQW1wQnJOQUJhaUFDSUFScUtBSmtOZ0lBSUFOQkFXb2hBd3dBQ3dBTEFrQUNRQUpBSUFRb0F0d0JJZ01nQkVId0FHb2dCa0VIY1VFTWJHb2lDQ2dDQUNJTWFpSVFJQmRMRFFBZ0J5QUlLQUlFSWdzZ0RHb2lDbW9nSVVzTkFDQUtRU0JxSUJZZ0IydE5EUUVMSUFRZ0NDZ0NDRFlDS0NBRUlBZ3BBZ0EzQXlBZ0J5QVdJQVJCSUdvZ0JFSGNBV29nRnlBU0lCZ2dHaEFmSVFvTUFRc2dCeUFNYWlFQ0lBZ29BZ2doQ0NBSElBTXBBQUEzQUFBZ0J5QURLUUFJTndBSUFrQWdERUVSU1EwQUlBY2dBeWtBRURjQUVDQUhJQU1wQUJnM0FCZ2dERUVRYTBFUlNBMEFJQU5CRUdvaEF5QUhRU0JxSVF3RFFDQU1JQU1wQUJBM0FBQWdEQ0FES1FBWU53QUlJQXdnQXlrQUlEY0FFQ0FNSUFNcEFDZzNBQmdnQTBFZ2FpRURJQXhCSUdvaURDQUNTUTBBQ3dzZ0FpQUlheUVESUFRZ0VEWUMzQUVnQWlBU2F5QUlTUVJBSUFnZ0FpQVlhMHNOQnlBYUlCb2dBeUFTYXlJRGFpSU1JQXRxVHdSQUlBSWdEQ0FMRUFvYURBSUxJQU1nQzJvaEN5QUNJQXhCQUNBRGF4QUtJQU5ySVFJZ0VpRURDeUFJUVJCUEJFQWdBaUFES1FBQU53QUFJQUlnQXlrQUNEY0FDQ0FMUVJGSURRRWdBaUFMYWlFSUlBSkJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBSWdBeTBBQURvQUFDQUNJQU10QUFFNkFBRWdBaUFETFFBQ09nQUNJQUlnQXkwQUF6b0FBeUFDSUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQUlnQXlrQUFEY0FBQXNnQzBFSlNRMEFJQUlnQzJvaERDQUNRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dERWtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQzBFWlNBMEFJQUpCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXhKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdHQlNBR1FRRnFJUVlnQnlBS2FpRUhEQUlMQUFzTElBUW9BdHdCSVFNTFFicC9JUWtnRnlBRGF5SUNJQllnQjJ0TERRSWdCd1IvSUFjZ0F5QUNFQUlnQW1vRlFRQUxJQTVySVFrTUFnc2dCVUVBTmdLYzZ3RUxJQVFnQlNnQzhPb0JJZ00yQXR3QklBa2dEbW9oRENBRElBVW9Bb0RyQVdvaEVBSkFJQTlGQkVBZ0RpRUdEQUVMSUFVb0FyanBBU0VOSUFVb0FyVHBBU0VUSUFVb0FyRHBBU0VTSUFWQkFUWUNoT29CUVFBaEF3TkFJQU5CQTBjRVFDQUVJQU5CQW5RaUFtb2dBaUFGYWtHczBBRnFLQUlBTmdLY0FTQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFmQUFhaUlDSUFjZ0JoQU5RWWgvU3cwQklERWdBaUFGS0FJQUVCNGdNQ0FDSUFVb0FnZ1FIaUF2SUFJZ0JTZ0NCQkFlSUF4QklHc2hHQ0FPSVFZRFFDQUVLQUtJQVNBRUtBS0VBVUVEZEdvcEFnQWlRS2NpQ2tFUWRpSVpRZjhCY1NFTElBUW9BcGdCSUFRb0FwUUJRUU4wYWlrQ0FDSkJweUlXUVJCMkloOUIvd0Z4SVJvZ0JDZ0NrQUVnQkNnQ2pBRkJBM1JxS1FJQUlrSkNJSWluSVFjZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDRUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDZENJSWF5SVJJQUlnQWlBUlN4c2lGeUFJYWpZQ2RDQUhJQVFvQW5BZ0NIUkJBQ0FYYTNZZ0FpQVhheUlYZEdvaENDQUVRZkFBYWhBUEdpQUNJQkZORFFFZ0JDQUVLQUowSWdJZ0YybzJBblFnQkNnQ2NDQUNkRUVBSUJkcmRpQUlhaUVJREFFTElBUWdBaUFFS0FKMEloRnFOZ0owSUFRb0FuQWdFWFJCQUNBSWEzWWdCMm9oQ0NBRVFmQUFhaEFQR2dzZ0JDa0NuQUVoUkNBRUlBZzJBcHdCSUFRZ1JEY0NvQUVNQVFzQ1FDQUNSUVJBSUFNRVFDQUVLQUtjQVNFSURBTUxJQVFvQXFBQklRZ01BUXNnQkNBRUtBSjBJZ0pCQVdvMkFuUUNmeUFISUFORmFpQUVLQUp3SUFKMFFSOTJhaUlDUVFOR0JFQWdCQ2dDbkFGQkFXc01BUXNnQWtFQ2RDQUVhaWdDbkFFTElnZEZJQWRxSVFnZ0FrRUJSd1JBSUFRZ0JDZ0NvQUUyQXFRQkN3c2dCQ0FFS0FLY0FUWUNvQUVnQkNBSU5nS2NBUXVuSVFJZ1FVS0FnUHdIZzFCRkJFQWdCQ0FFS0FKMElnY2dHbW8yQW5RZ0JDZ0NjQ0FIZEVFQUlCOXJkaUFDYWlFQ0N5QUxJQnBxUVJSUEJFQWdCRUh3QUdvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NkQ0lISUF0cU5nSjBJQVFvQW5BZ0IzUkJBQ0FaYTNZZ0Eyb2hBd3NnQkVId0FHb1FEeG9nQkNBRUtBSndJZ2RCQUNBS1FSaDJJZ3NnQkNnQ2RHb2lHbXQySUF0QkFuUkJvQjFxS0FJQWNTQUtRZi8vQTNGcU5nS0VBU0FFSUJvZ0ZrRVlkaUlLYWlJTE5nSjBJQVFnQ2tFQ2RFR2dIV29vQWdBZ0IwRUFJQXRyZG5FZ0ZrSC8vd054YWpZQ2xBRWdCRUh3QUdvUUR4b2dCQ0JDcHlJSFFSaDJJZ29nQkNnQ2RHb2lDellDZENBRUlBcEJBblJCb0IxcUtBSUFJQVFvQW5CQkFDQUxhM1p4SUFkQi8vOERjV28yQW93QklBUWdBellDT0NBRUlBSTJBandnQkNBSU5nSkFBa0FDUUFKQUlBUW9BdHdCSWdzZ0Eyb2lGaUFRU3cwQUlBWWdBaUFEYWlJS2FpQVlTdzBBSUFwQklHb2dEQ0FHYTAwTkFRc2dCQ0FFUVVCcktBSUFOZ0lJSUFRZ0JDa0RPRGNEQUNBR0lBd2dCQ0FFUWR3QmFpQVFJQklnRXlBTkVCOGhDZ3dCQ3lBRElBWnFJUWNnQmlBTEtRQUFOd0FBSUFZZ0N5a0FDRGNBQ0FKQUlBTkJFVWtOQUNBR0lBc3BBQkEzQUJBZ0JpQUxLUUFZTndBWUlBTkJFR3RCRVVnTkFDQUxRUkJxSVFNZ0JrRWdhaUVMQTBBZ0N5QURLUUFRTndBQUlBc2dBeWtBR0RjQUNDQUxJQU1wQUNBM0FCQWdDeUFES1FBb053QVlJQU5CSUdvaEF5QUxRU0JxSWdzZ0Iwa05BQXNMSUFjZ0NHc2hBeUFFSUJZMkF0d0JJQWNnRW1zZ0NFa0VRQ0FJSUFjZ0UydExEUVFnRFNBTklBTWdFbXNpQTJvaUN5QUNhazhFUUNBSElBc2dBaEFLR2d3Q0N5QUhJQXRCQUNBRGF4QUtJQVFnQWlBRGFpSUNOZ0k4SUFOcklRY2dFaUVEQ3lBSVFSQlBCRUFnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0NBQ1FSRklEUUVnQWlBSGFpRUlJQWRCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQWNnQXkwQUFEb0FBQ0FISUFNdEFBRTZBQUVnQnlBRExRQUNPZ0FDSUFjZ0F5MEFBem9BQXlBSElBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFjZ0F5a0FBRGNBQUFzZ0FrRUpTUTBBSUFJZ0Iyb2hDeUFIUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnQzBrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0FrRVpTQTBBSUFkQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF0SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3REN5QUdJQXBxSVFZZ0JFSHdBR29RRHlFRElBOUJBV3NpRHcwQUMwRUFJUUlnQTBFQ1NRMEJBMEFnQWtFRFJ3UkFJQVVnQWtFQ2RDSURha0dzMEFGcUlBTWdCR29vQXB3Qk5nSUFJQUpCQVdvaEFnd0JDd3NnQkNnQzNBRWhBd3RCdW44aENTQVFJQU5ySWdJZ0RDQUdhMHNOQUNBR0JIOGdCaUFESUFJUUFpQUNhZ1ZCQUFzZ0Rtc2hDUXNnQ1VHSWYwc05CZ3NDUUNBRktBTHM2Z0ZGRFFBZ0JTQUZLUU9JNmdFZ0NhMThOd09JNmdFQ1FDQUZLQUxRNmdFaUFpQUphaUlJUVI5TkJFQWdEa1VOQVNBQ0lDSnFJQTRnQ1JBQ0dpQUZLQUxRNmdFZ0NXb2hDQXdCQ3lBT0lRTWdBZ1JBSUFJZ0ltb2dBMEVnSUFKckVBSWFJQVVvQXREcUFTRUNJQVZCQURZQzBPb0JJQVVnQlNrRGtPb0JJQVVwQUxEcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RrT29CSUFVZ0JTa0RtT29CSUFVcEFManFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEbU9vQklBVWdCU2tEb09vQklBVXBBTURxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG9Pb0JJQVVnQlNrRHFPb0JJQVVwQU1qcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RxT29CSUFNZ0FtdEJJR29oQXdzZ0NTQU9haUlDSUFOQklHcFBCRUFnQWtFZ2F5RUdJQVVwQTZqcUFTRS9JQVVwQTZEcUFTRkFJQVVwQTVqcUFTRkJJQVVwQTVEcUFTRkNBMEFnQXlrQUdFTFAxdE8rMHNlcjJVSitJRDk4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVDhnQXlrQUVFTFAxdE8rMHNlcjJVSitJRUI4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUFnQXlrQUNFTFAxdE8rMHNlcjJVSitJRUY4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUVnQXlrQUFFTFAxdE8rMHNlcjJVSitJRUo4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUlnQTBFZ2FpSURJQVpORFFBTElBVWdQemNEcU9vQklBVWdRRGNEb09vQklBVWdRVGNEbU9vQklBVWdRamNEa09vQkN5QUNJQU5ORFFFZ0lpQURJQUlnQTJzaUNCQUNHZ3NnQlNBSU5nTFE2Z0VMSURVZ0ZXc2hBeUFWSUJ0cUlRSWdDU0FPYWlFT0lBUW9BakJGRFFBTElDa3BBd0FpUDBKL1VTQS9JQTRnSFd1c1VYSkZCRUJCYkNFSkRBWUxJQVVvQXVEcEFRUkFRV29oQ1NBRFFRUkpEUVlnQlNnQzZPb0JSUVJBSUNJZ0JTZ0MwT29CYWlFS0FuNGdCU2tEaU9vQklqOUNJRm9FUUNBRktRT1k2Z0VpUUVJSGlTQUZLUU9RNmdFaVFVSUJpWHdnQlNrRG9Pb0JJa0pDRElsOElBVXBBNmpxQVNKRFFoS0pmQ0JCUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlJRUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9mb1ZDaDVXdnI1aTIzcHVlZjM1Q25hTzE2b094allyNkFIMGdRa0xQMXRPKzBzZXIyVUorUWgrSlFvZVZyNitZdHQ2Ym5uOStoVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTQkRRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOURBRUxJQVVwQTZEcUFVTEZ6OW15OGVXNjZpZDhDeUEvZkNFL0lDSWhCZ05BSUFvZ0JrRUlhaUlIVHdSQUlBWXBBQUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9maUEvaFVJYmlVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNFL0lBY2hCZ3dCQ3dzQ1FDQUtJQVpCQkdvaUNFa0VRQ0FHSVFnTUFRc2dCalVBQUVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUlYaVVMUDF0Tyswc2VyMlVKK1F2bnozZkdaOXBtckZud2hQd3NEUUNBSUlBcEpCRUFnQ0RFQUFFTEZ6OW15OGVXNjZpZCtJRCtGUWd1SlFvZVZyNitZdHQ2Ym5uOStJVDhnQ0VFQmFpRUlEQUVMQ3lBQ0tBQUFJRDlDSVlnZ1A0VkN6OWJUdnRMSHE5bENmaUkvUWgySUlEK0ZRdm56M2ZHWjlwbXJGbjRpUDBJZ2lDQS9oYWRIRFFjTElBTkJCR3NoQXlBQ1FRUnFJUUlMSUE0Z0hXc2lDVUdKZjA4TkJDQUJJQWxySVFFZ0NTQWRhaUVkUVFFaFBnd0JDd3RCdUg4aEJ5QUREUVFnSFNBQWF5RUhEQVFMUVd3aENRd0JDMEc0ZnlFSkMwRzRmeUVISUFsQmRrWWdQbkVOQVFzZ0NTRUhDeWdDQUEwQUlBVkIvT29CYWlnQ0FDRUJJQVZCK09vQmFpZ0NBQ0VBSUFVUUdDQUZLQUt3NndFZ0FDQUJFQk1nQlVFQU5nS3c2d0VnQlNnQ3BPc0JJZ0lFUUFKQUFrQUNRQUpBSUFJb0FnQWlBd1JBSUFCRkRRSWdBU0FESUFBUkFnQU1BUXNnQUVVTkFnc2dBU0FDSUFBUkFnQU1BZ3NnQXhBR0N5QUNFQVlMSUFWQkFEWUNwT3NCQ3lBQUJFQWdBU0FGSUFBUkFnQU1BUXNnQlJBR0N5QUVRZUFCYWlRQUlBY0xDNmdWQ1FCQmlBZ0xEUUVBQUFBQkFBQUFBZ0FBQUFJQVFhQUlDN01HQVFBQUFBRUFBQUFDQUFBQUFnQUFBQ1lBQUFDQ0FBQUFJUVVBQUVvQUFBQm5DQUFBSmdBQUFNQUJBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFLUUFBQUN3Q0FBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUx3QUFBTW9DQUFDQUFBQUFpZ1VBQUVvQUFBQ0VDUUFBTlFBQUFITURBQUNBQUFBQW5RVUFBRW9BQUFDZ0NRQUFQUUFBQUlFREFBQ0FBQUFBNndVQUFFc0FBQUErQ2dBQVJBQUFBSjREQUFDQUFBQUFUUVlBQUVzQUFBQ3FDZ0FBU3dBQUFMTURBQUNBQUFBQXdRWUFBRTBBQUFBZkRRQUFUUUFBQUZNRUFBQ0FBQUFBSXdnQUFGRUFBQUNtRHdBQVZBQUFBSmtFQUFDQUFBQUFTd2tBQUZjQUFBQ3hFZ0FBV0FBQUFOb0VBQUNBQUFBQWJ3a0FBRjBBQUFBakZBQUFWQUFBQUVVRkFBQ0FBQUFBVkFvQUFHb0FBQUNNRkFBQWFnQUFBSzhGQUFDQUFBQUFkZ2tBQUh3QUFBQk9FQUFBZkFBQUFOSUNBQUNBQUFBQVl3Y0FBSkVBQUFDUUJ3QUFrZ0FBQUFBQUFBQUJBQUFBQVFBQUFBVUFBQUFOQUFBQUhRQUFBRDBBQUFCOUFBQUEvUUFBQVAwQkFBRDlBd0FBL1FjQUFQMFBBQUQ5SHdBQS9UOEFBUDEvQUFEOS93QUEvZjhCQVAzL0F3RDkvd2NBL2Y4UEFQMy9Id0Q5L3o4QS9mOS9BUDMvL3dEOS8vOEIvZi8vQS8zLy93ZjkvLzhQL2YvL0gvMy8vei85Ly85L0FBQUFBQUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFSQUFBQUVnQUFBQk1BQUFBVUFBQUFGUUFBQUJZQUFBQVhBQUFBR0FBQUFCa0FBQUFhQUFBQUd3QUFBQndBQUFBZEFBQUFIZ0FBQUI4QUFBQURBQUFBQkFBQUFBVUFBQUFHQUFBQUJ3QUFBQWdBQUFBSkFBQUFDZ0FBQUFzQUFBQU1BQUFBRFFBQUFBNEFBQUFQQUFBQUVBQUFBQkVBQUFBU0FBQUFFd0FBQUJRQUFBQVZBQUFBRmdBQUFCY0FBQUFZQUFBQUdRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBSHdBQUFDQUFBQUFoQUFBQUlnQUFBQ01BQUFBbEFBQUFKd0FBQUNrQUFBQXJBQUFBTHdBQUFETUFBQUE3QUFBQVF3QUFBRk1BQUFCakFBQUFnd0FBQUFNQkFBQURBZ0FBQXdRQUFBTUlBQUFERUFBQUF5QUFBQU5BQUFBRGdBQUFBd0FCQUVIZ0R3dFJBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCQUFBQUFVQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QUFBQVFBRUhFRUF1TEFRRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVNBQUFBRkFBQUFCWUFBQUFZQUFBQUhBQUFBQ0FBQUFBb0FBQUFNQUFBQUVBQUFBQ0FBQUFBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFBQUVBUVpBU0MrWUVBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQUJBQUFBQkFBQUFBZ0FBQUFBQUFBQUFRQUJBUVlBQUFBQUFBQUVBQUFBQUJBQUFBUUFBQUFBSUFBQUJRRUFBQUFBQUFBRkF3QUFBQUFBQUFVRUFBQUFBQUFBQlFZQUFBQUFBQUFGQndBQUFBQUFBQVVKQUFBQUFBQUFCUW9BQUFBQUFBQUZEQUFBQUFBQUFBWU9BQUFBQUFBQkJSQUFBQUFBQUFFRkZBQUFBQUFBQVFVV0FBQUFBQUFDQlJ3QUFBQUFBQU1GSUFBQUFBQUFCQVV3QUFBQUlBQUdCVUFBQUFBQUFBY0ZnQUFBQUFBQUNBWUFBUUFBQUFBS0JnQUVBQUFBQUF3R0FCQUFBQ0FBQUFRQUFBQUFBQUFBQkFFQUFBQUFBQUFGQWdBQUFDQUFBQVVFQUFBQUFBQUFCUVVBQUFBZ0FBQUZCd0FBQUFBQUFBVUlBQUFBSUFBQUJRb0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFJQUFCQlJBQUFBQUFBQUVGRWdBQUFDQUFBUVVXQUFBQUFBQUNCUmdBQUFBZ0FBTUZJQUFBQUFBQUF3VW9BQUFBQUFBR0JFQUFBQUFRQUFZRVFBQUFBQ0FBQndXQUFBQUFBQUFKQmdBQ0FBQUFBQXNHQUFnQUFEQUFBQVFBQUFBQUVBQUFCQUVBQUFBZ0FBQUZBZ0FBQUNBQUFBVURBQUFBSUFBQUJRVUFBQUFnQUFBRkJnQUFBQ0FBQUFVSUFBQUFJQUFBQlFrQUFBQWdBQUFGQ3dBQUFDQUFBQVVNQUFBQUFBQUFCZzhBQUFBZ0FBRUZFZ0FBQUNBQUFRVVVBQUFBSUFBQ0JSZ0FBQUFnQUFJRkhBQUFBQ0FBQXdVb0FBQUFJQUFFQlRBQUFBQUFBQkFHQUFBQkFBQUFEd1lBZ0FBQUFBQU9CZ0JBQUFBQUFBMEdBQ0FBUVlBWEM0Y0NBUUFCQVFVQUFBQUFBQUFGQUFBQUFBQUFCZ1E5QUFBQUFBQUpCZjBCQUFBQUFBOEYvWDhBQUFBQUZRWDkveDhBQUFBREJRVUFBQUFBQUFjRWZRQUFBQUFBREFYOUR3QUFBQUFTQmYzL0F3QUFBQmNGL2Y5L0FBQUFCUVVkQUFBQUFBQUlCUDBBQUFBQUFBNEYvVDhBQUFBQUZBWDkvdzhBQUFBQ0JRRUFBQUFRQUFjRWZRQUFBQUFBQ3dYOUJ3QUFBQUFSQmYzL0FRQUFBQllGL2Y4L0FBQUFCQVVOQUFBQUVBQUlCUDBBQUFBQUFBMEYvUjhBQUFBQUV3WDkvd2NBQUFBQkJRRUFBQUFRQUFZRVBRQUFBQUFBQ2dYOUF3QUFBQUFRQmYzL0FBQUFBQndGL2YvL0R3QUFHd1g5Ly84SEFBQWFCZjMvL3dNQUFCa0YvZi8vQVFBQUdBWDkvLzhBUVpBWkM0WUVBUUFCQVFZQUFBQUFBQUFHQXdBQUFBQUFBQVFFQUFBQUlBQUFCUVVBQUFBQUFBQUZCZ0FBQUFBQUFBVUlBQUFBQUFBQUJRa0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFBQUFBQmhBQUFBQUFBQUFHRXdBQUFBQUFBQVlXQUFBQUFBQUFCaGtBQUFBQUFBQUdIQUFBQUFBQUFBWWZBQUFBQUFBQUJpSUFBQUFBQUFFR0pRQUFBQUFBQVFZcEFBQUFBQUFDQmk4QUFBQUFBQU1HT3dBQUFBQUFCQVpUQUFBQUFBQUhCb01BQUFBQUFBa0dBd0lBQUJBQUFBUUVBQUFBQUFBQUJBVUFBQUFnQUFBRkJnQUFBQUFBQUFVSEFBQUFJQUFBQlFrQUFBQUFBQUFGQ2dBQUFBQUFBQVlNQUFBQUFBQUFCZzhBQUFBQUFBQUdFZ0FBQUFBQUFBWVZBQUFBQUFBQUJoZ0FBQUFBQUFBR0d3QUFBQUFBQUFZZUFBQUFBQUFBQmlFQUFBQUFBQUVHSXdBQUFBQUFBUVluQUFBQUFBQUNCaXNBQUFBQUFBTUdNd0FBQUFBQUJBWkRBQUFBQUFBRkJtTUFBQUFBQUFnR0F3RUFBQ0FBQUFRRUFBQUFNQUFBQkFRQUFBQVFBQUFFQlFBQUFDQUFBQVVIQUFBQUlBQUFCUWdBQUFBZ0FBQUZDZ0FBQUNBQUFBVUxBQUFBQUFBQUJnNEFBQUFBQUFBR0VRQUFBQUFBQUFZVUFBQUFBQUFBQmhjQUFBQUFBQUFHR2dBQUFBQUFBQVlkQUFBQUFBQUFCaUFBQUFBQUFCQUdBd0FCQUFBQUR3WURnQUFBQUFBT0JnTkFBQUFBQUEwR0F5QUFBQUFBREFZREVBQUFBQUFMQmdNSUFBQUFBQW9HQXdRQVFhUWRDOWtCQVFBQUFBTUFBQUFIQUFBQUR3QUFBQjhBQUFBL0FBQUFmd0FBQVA4QUFBRC9BUUFBL3dNQUFQOEhBQUQvRHdBQS94OEFBUDgvQUFEL2Z3QUEvLzhBQVAvL0FRRC8vd01BLy84SEFQLy9Ed0QvL3g4QS8vOC9BUC8vZndELy8vOEEvLy8vQWYvLy93UC8vLzhILy8vL0QvLy8veC8vLy84Ly8vLy9md0FBQUFBQkFBQUFBZ0FBQUFRQUFBQUFBQUFBQWdBQUFBUUFBQUFJQUFBQUFBQUFBQUVBQUFBQ0FBQUFBUUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQWdBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dCQmdCOExBNEFSQVE9PSI7dmFyIHllPW5ldyBQQSxtZT0hMTthc3luYyBmdW5jdGlvbiBDcihBLHQsZSl7bGV0IEk9bnVsbDt0eXBlb2YgQSE9InN0cmluZyI/ST1BLmhyZWY6QS5zdGFydHNXaXRoKCJodHRwIik/ST1BOkk9YCR7dH0vJHtBfWAsSS5lbmRzV2l0aCgiLmpzIikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtMykpLEkuZW5kc1dpdGgoIi53YXNtIikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtNSkpLEkuZW5kc1dpdGgoIi53YXNtLnpzdCIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTkpKTtsZXQgcj1gJHtJfS53YXNtYCxnPWF3YWl0IHhBLmdldChgJHtyfS56c3RgLHtyZXNwb25zZVR5cGU6ImFycmF5YnVmZmVyIixwYXJhbXM6ZX0pO21lfHwoYXdhaXQgeWUuaW5pdCgpLG1lPSEwKTtsZXQgbj15ZS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoZy5kYXRhKSkuYnVmZmVyO3JldHVybihhd2FpdCBpbXBvcnQoYCR7SX0uanNgKSkuZGVmYXVsdCh7d2FzbUJpbmFyeTpufSl9dmFyIHdlPUNyO3ZhciBqQT1uZXcgTWFwO2FzeW5jIGZ1bmN0aW9uIEJyKEEsdCxlKXtsZXQgST1BLHI9QSxnPW51bGw7cmV0dXJuIHR5cGVvZiBBIT0ic3RyaW5nIiYmKEk9bmV3IFVSTChBLmhyZWYpLHI9SS5ocmVmKSxqQS5oYXMocik/Zz1hd2FpdCBqQS5nZXQocik6KGpBLnNldChyLHdlKEksdCxlKSksZz1hd2FpdCBqQS5nZXQocikpLGd9dmFyIHBlPUJyO3ZhciBhcj17VGV4dEZpbGU6IlRleHRGaWxlIixCaW5hcnlGaWxlOiJCaW5hcnlGaWxlIixUZXh0U3RyZWFtOiJUZXh0U3RyZWFtIixCaW5hcnlTdHJlYW06IkJpbmFyeVN0cmVhbSIsSW1hZ2U6IkltYWdlIixQb2ludFNldDoiUG9pbnRTZXQiLE1lc2g6Ik1lc2giLFBvbHlEYXRhOiJQb2x5RGF0YSIsVHJhbnNmb3JtTGlzdDoiVHJhbnNmb3JtTGlzdCIsSnNvbkNvbXBhdGlibGU6Ikpzb25Db21wYXRpYmxlIn0sZD1hcjt2YXIgUXI9e0ludDg6ImludDgiLFVJbnQ4OiJ1aW50OCIsSW50MTY6ImludDE2IixVSW50MTY6InVpbnQxNiIsSW50MzI6ImludDMyIixVSW50MzI6InVpbnQzMiIsSW50NjQ6ImludDY0IixVSW50NjQ6InVpbnQ2NCIsU2l6ZVZhbHVlVHlwZToidWludDY0IixJZGVudGlmaWVyVHlwZToidWludDY0IixJbmRleFZhbHVlVHlwZToiaW50NjQiLE9mZnNldFZhbHVlVHlwZToiaW50NjQifSxVPVFyO3ZhciBFcj17RmxvYXQzMjoiZmxvYXQzMiIsRmxvYXQ2NDoiZmxvYXQ2NCIsU3BhY2VQcmVjaXNpb25UeXBlOiJmbG9hdDY0In0sVj1FcjtmdW5jdGlvbiBjcihBLHQpe2xldCBlPW51bGw7c3dpdGNoKEEpe2Nhc2UgVS5VSW50ODp7ZT1uZXcgVWludDhBcnJheSh0KTticmVha31jYXNlIFUuSW50ODp7ZT1uZXcgSW50OEFycmF5KHQpO2JyZWFrfWNhc2UgVS5VSW50MTY6e2U9bmV3IFVpbnQxNkFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQxNjp7ZT1uZXcgSW50MTZBcnJheSh0KTticmVha31jYXNlIFUuVUludDMyOntlPW5ldyBVaW50MzJBcnJheSh0KTticmVha31jYXNlIFUuSW50MzI6e2U9bmV3IEludDMyQXJyYXkodCk7YnJlYWt9Y2FzZSBVLlVJbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnVWludDY0QXJyYXk9PSJmdW5jdGlvbiI/ZT1uZXcgQmlnVWludDY0QXJyYXkodCk6ZT1uZXcgVWludDhBcnJheSh0KTticmVha31jYXNlIFUuSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ0ludDY0QXJyYXk9PSJmdW5jdGlvbiI/ZT1uZXcgQmlnSW50NjRBcnJheSh0KTplPW5ldyBVaW50OEFycmF5KHQpO2JyZWFrfWNhc2UgVi5GbG9hdDMyOntlPW5ldyBGbG9hdDMyQXJyYXkodCk7YnJlYWt9Y2FzZSBWLkZsb2F0NjQ6e2U9bmV3IEZsb2F0NjRBcnJheSh0KTticmVha31jYXNlIm51bGwiOntlPW51bGw7YnJlYWt9Y2FzZSBudWxsOntlPW51bGw7YnJlYWt9ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlR5cGUgaXMgbm90IHN1cHBvcnRlZCBhcyBhIFR5cGVkQXJyYXkiKX1yZXR1cm4gZX12YXIgcT1jcjt2YXIgUmU9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI9PSJmdW5jdGlvbiIsU2U9bmV3IFRleHRFbmNvZGVyLEZlPW5ldyBUZXh0RGVjb2RlcigidXRmLTgiKTtmdW5jdGlvbiBmcihBLHQpe2xldCBlPXtmbGFnczoiciIsZW5jb2Rpbmc6ImJpbmFyeSJ9LEk9QS5mc19vcGVuKHQsZS5mbGFncyksZz1BLmZzX3N0YXQodCkuc2l6ZSxvPW51bGw7UmU/bz1uZXcgU2hhcmVkQXJyYXlCdWZmZXIoZyk6bz1uZXcgQXJyYXlCdWZmZXIoZyk7bGV0IG49bmV3IFVpbnQ4QXJyYXkobyk7cmV0dXJuIEEuZnNfcmVhZChJLG4sMCxnLDApLEEuZnNfY2xvc2UoSSksbn1mdW5jdGlvbiBOZShBLHQsZSl7bGV0IEk9bnVsbDtSZT9JPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihlKTpJPW5ldyBBcnJheUJ1ZmZlcihlKTtsZXQgcj1uZXcgVWludDhBcnJheShJKSxnPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcix0LGUpO3JldHVybiByLnNldChnKSxyfWZ1bmN0aW9uIHcoQSx0LGUsSSl7bGV0IHI9MDtyZXR1cm4gdCE9PW51bGwmJihyPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2FycmF5X2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUsSSx0LmJ1ZmZlci5ieXRlTGVuZ3RoXSksQS5IRUFQVTguc2V0KG5ldyBVaW50OEFycmF5KHQuYnVmZmVyKSxyKSkscn1mdW5jdGlvbiB4KEEsdCxlKXtsZXQgST1KU09OLnN0cmluZ2lmeSh0KSxyPUEubGVuZ3RoQnl0ZXNVVEY4KEkpKzEsZz1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9qc29uX2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUscl0pO0Euc3RyaW5nVG9VVEY4KEksZyxyKX1mdW5jdGlvbiBTKEEsdCxlLEkpe2xldCByPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsZV0pLGc9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxlXSksbz1OZShBLHIsZyk7cmV0dXJuIHEoSSxvLmJ1ZmZlcil9ZnVuY3Rpb24gdUEoQSx0KXtsZXQgZT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfanNvbl9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciJdLFswLHRdKSxJPUEuVVRGOFRvU3RyaW5nKGUpO3JldHVybiBKU09OLnBhcnNlKEkpfWZ1bmN0aW9uIGxyKEEsdCxlLEkpe0khPW51bGwmJkkubGVuZ3RoPjAmJkkuZm9yRWFjaChmdW5jdGlvbihCLHMpe3N3aXRjaChCLnR5cGUpe2Nhc2UgZC5UZXh0U3RyZWFtOntsZXQgQz1TZS5lbmNvZGUoQi5kYXRhLmRhdGEpLGw9dyhBLEMscywwKSxhPXtzaXplOkMuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07eChBLGEscyk7YnJlYWt9Y2FzZSBkLkpzb25Db21wYXRpYmxlOntsZXQgQz1TZS5lbmNvZGUoSlNPTi5zdHJpbmdpZnkoQi5kYXRhKSksbD13KEEsQyxzLDApLGE9e3NpemU6Qy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTt4KEEsYSxzKTticmVha31jYXNlIGQuQmluYXJ5U3RyZWFtOntsZXQgQz1CLmRhdGEuZGF0YSxsPXcoQSxDLHMsMCksYT17c2l6ZTpDLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O3goQSxhLHMpO2JyZWFrfWNhc2UgZC5UZXh0RmlsZTp7QS5mc193cml0ZUZpbGUoQi5kYXRhLnBhdGgsQi5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgZC5CaW5hcnlGaWxlOntBLmZzX3dyaXRlRmlsZShCLmRhdGEucGF0aCxCLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBkLkltYWdlOntsZXQgQz1CLmRhdGEsbD13KEEsQy5kYXRhLHMsMCksYT13KEEsQy5kaXJlY3Rpb24scywxKSxRPXR5cGVvZiBDLm1ldGFkYXRhPy5lbnRyaWVzPCJ1Ij9BcnJheS5mcm9tKEMubWV0YWRhdGEuZW50cmllcygpKTpbXSxmPXtpbWFnZVR5cGU6Qy5pbWFnZVR5cGUsbmFtZTpDLm5hbWUsb3JpZ2luOkMub3JpZ2luLHNwYWNpbmc6Qy5zcGFjaW5nLGRpcmVjdGlvbjpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2F9YCxzaXplOkMuc2l6ZSxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG1ldGFkYXRhOlF9O3goQSxmLHMpO2JyZWFrfWNhc2UgZC5NZXNoOntsZXQgQz1CLmRhdGEsbD13KEEsQy5wb2ludHMscywwKSxhPXcoQSxDLmNlbGxzLHMsMSksUT13KEEsQy5wb2ludERhdGEscywyKSxmPXcoQSxDLmNlbGxEYXRhLHMsMyksYz17bWVzaFR5cGU6Qy5tZXNoVHlwZSxuYW1lOkMubmFtZSxudW1iZXJPZlBvaW50czpDLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxudW1iZXJPZkNlbGxzOkMubnVtYmVyT2ZDZWxscyxjZWxsczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2F9YCxjZWxsQnVmZmVyU2l6ZTpDLmNlbGxCdWZmZXJTaXplLG51bWJlck9mUG9pbnRQaXhlbHM6Qy5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YCxudW1iZXJPZkNlbGxQaXhlbHM6Qy5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWB9O3goQSxjLHMpO2JyZWFrfWNhc2UgZC5Qb2ludFNldDp7bGV0IEM9Qi5kYXRhLGw9dyhBLEMucG9pbnRzLHMsMCksYT13KEEsQy5wb2ludERhdGEscywxKSxRPXtwb2ludFNldFR5cGU6Qy5wb2ludFNldFR5cGUsbmFtZTpDLm5hbWUsbnVtYmVyT2ZQb2ludHM6Qy5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbnVtYmVyT2ZQb2ludFBpeGVsczpDLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7YX1gfTt4KEEsUSxzKTticmVha31jYXNlIGQuVHJhbnNmb3JtTGlzdDp7bGV0IEM9Qi5kYXRhLGw9W10sYT0wO0MuZm9yRWFjaChRPT57bGV0IGY9IiIsYz0iIjtRLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYoZj1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3coQSxRLmZpeGVkUGFyYW1ldGVycyxzLGEpfWAsYSs9MSxjPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dyhBLFEucGFyYW1ldGVycyxzLGEpfWAsYSs9MSk7bGV0IEQ9e3RyYW5zZm9ybVR5cGU6US50cmFuc2Zvcm1UeXBlLG51bWJlck9mRml4ZWRQYXJhbWV0ZXJzOlEubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnMsbnVtYmVyT2ZQYXJhbWV0ZXJzOlEubnVtYmVyT2ZQYXJhbWV0ZXJzLG5hbWU6US5uYW1lLGlucHV0U3BhY2VOYW1lOlEuaW5wdXRTcGFjZU5hbWUsb3V0cHV0U3BhY2VOYW1lOlEub3V0cHV0U3BhY2VOYW1lLHBhcmFtZXRlcnM6YyxmaXhlZFBhcmFtZXRlcnM6Zn07bC5wdXNoKEQpfSkseChBLGwscyk7YnJlYWt9Y2FzZSBkLlBvbHlEYXRhOntsZXQgQz1CLmRhdGEsbD13KEEsQy5wb2ludHMscywwKSxhPXcoQSxDLnZlcnRpY2VzLHMsMSksUT13KEEsQy5saW5lcyxzLDIpLGY9dyhBLEMucG9seWdvbnMscywzKSxjPXcoQSxDLnRyaWFuZ2xlU3RyaXBzLHMsNCksRD13KEEsQy5wb2ludERhdGEscyw1KSxGPXcoQSxDLnBvaW50RGF0YSxzLDYpLHk9e3BvbHlEYXRhVHlwZTpDLnBvbHlEYXRhVHlwZSxuYW1lOkMubmFtZSxudW1iZXJPZlBvaW50czpDLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCx2ZXJ0aWNlc0J1ZmZlclNpemU6Qy52ZXJ0aWNlc0J1ZmZlclNpemUsdmVydGljZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHthfWAsbGluZXNCdWZmZXJTaXplOkMubGluZXNCdWZmZXJTaXplLGxpbmVzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLHBvbHlnb25zQnVmZmVyU2l6ZTpDLnBvbHlnb25zQnVmZmVyU2l6ZSxwb2x5Z29uczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YCx0cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU6Qy50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemUsdHJpYW5nbGVTdHJpcHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWAsbnVtYmVyT2ZQb2ludFBpeGVsczpDLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7RH1gLG51bWJlck9mQ2VsbFBpeGVsczpDLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0Z9YH07eChBLHkscyk7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgaW5wdXQgSW50ZXJmYWNlVHlwZSIpfX0pLEEucmVzZXRNb2R1bGVTdGRvdXQoKSxBLnJlc2V0TW9kdWxlU3RkZXJyKCk7bGV0IHI9QS5zdGFja1NhdmUoKSxnPTA7dHJ5e2c9QS5jYWxsTWFpbih0LnNsaWNlKCkpfWNhdGNoKEIpe3Rocm93IHR5cGVvZiBCPT0ibnVtYmVyIiYmKGNvbnNvbGUubG9nKCJFeGNlcHRpb24gd2hpbGUgcnVubmluZyBwaXBlbGluZToiKSxjb25zb2xlLmxvZygic3Rkb3V0OiIsQS5nZXRNb2R1bGVTdGRvdXQoKSksY29uc29sZS5lcnJvcigic3RkZXJyOiIsQS5nZXRNb2R1bGVTdGRlcnIoKSksdHlwZW9mIEEuZ2V0RXhjZXB0aW9uTWVzc2FnZTwidSI/Y29uc29sZS5lcnJvcigiZXhjZXB0aW9uOiIsQS5nZXRFeGNlcHRpb25NZXNzYWdlKEIpKTpjb25zb2xlLmVycm9yKCJCdWlsZCBtb2R1bGUgaW4gRGVidWcgbW9kZSBmb3IgZXhjZXB0aW9uIG1lc3NhZ2UgaW5mb3JtYXRpb24uIikpLEJ9ZmluYWxseXtBLnN0YWNrUmVzdG9yZShyKX1sZXQgbz1BLmdldE1vZHVsZVN0ZG91dCgpLG49QS5nZXRNb2R1bGVTdGRlcnIoKSxFPVtdO3JldHVybiBlIT1udWxsJiZlLmxlbmd0aD4wJiZnPT09MCYmZS5mb3JFYWNoKGZ1bmN0aW9uKEIscyl7bGV0IEM9bnVsbDtzd2l0Y2goQi50eXBlKXtjYXNlIGQuVGV4dFN0cmVhbTp7bGV0IGE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxmPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixhLFEpO0M9e2RhdGE6RmUuZGVjb2RlKGYpfTticmVha31jYXNlIGQuSnNvbkNvbXBhdGlibGU6e2xldCBhPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksZj1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsYSxRKTtDPUpTT04ucGFyc2UoRmUuZGVjb2RlKGYpKTticmVha31jYXNlIGQuQmluYXJ5U3RyZWFtOntsZXQgYT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pO0M9e2RhdGE6TmUoQSxhLFEpfTticmVha31jYXNlIGQuVGV4dEZpbGU6e0M9e3BhdGg6Qi5kYXRhLnBhdGgsZGF0YTpBLmZzX3JlYWRGaWxlKEIuZGF0YS5wYXRoLHtlbmNvZGluZzoidXRmOCJ9KX07YnJlYWt9Y2FzZSBkLkJpbmFyeUZpbGU6e0M9e3BhdGg6Qi5kYXRhLnBhdGgsZGF0YTpmcihBLEIuZGF0YS5wYXRoKX07YnJlYWt9Y2FzZSBkLkltYWdlOntsZXQgYT11QShBLHMpO2EuZGF0YT1TKEEscywwLGEuaW1hZ2VUeXBlLmNvbXBvbmVudFR5cGUpLGEuZGlyZWN0aW9uPVMoQSxzLDEsVi5GbG9hdDY0KSxhLm1ldGFkYXRhPW5ldyBNYXAoYS5tZXRhZGF0YSksQz1hO2JyZWFrfWNhc2UgZC5NZXNoOntsZXQgYT11QShBLHMpO2EubnVtYmVyT2ZQb2ludHM+MD9hLnBvaW50cz1TKEEscywwLGEubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTphLnBvaW50cz1xKGEubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYS5udW1iZXJPZkNlbGxzPjA/YS5jZWxscz1TKEEscywxLGEubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUpOmEuY2VsbHM9cShhLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYS5udW1iZXJPZlBvaW50UGl4ZWxzPjA/YS5wb2ludERhdGE9UyhBLHMsMixhLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTphLnBvaW50RGF0YT1xKGEubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mQ2VsbFBpeGVscz4wP2EuY2VsbERhdGE9UyhBLHMsMyxhLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOmEuY2VsbERhdGE9cShhLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDPWE7YnJlYWt9Y2FzZSBkLlBvaW50U2V0OntsZXQgYT11QShBLHMpO2EubnVtYmVyT2ZQb2ludHM+MD9hLnBvaW50cz1TKEEscywwLGEucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6YS5wb2ludHM9cShhLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mUG9pbnRQaXhlbHM+MD9hLnBvaW50RGF0YT1TKEEscywxLGEucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTphLnBvaW50RGF0YT1xKGEucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQz1hO2JyZWFrfWNhc2UgZC5UcmFuc2Zvcm1MaXN0OntsZXQgYT11QShBLHMpLFE9MDthLmZvckVhY2goKGYsYyk9PntmLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYoZi5udW1iZXJPZkZpeGVkUGFyYW1ldGVycz4wJiYoYVtjXS5maXhlZFBhcmFtZXRlcnM9UyhBLHMsUSxWLkZsb2F0NjQpKSxRKz0xLGYubnVtYmVyT2ZQYXJhbWV0ZXJzPjAmJihhW2NdLnBhcmFtZXRlcnM9UyhBLHMsUSxmLnRyYW5zZm9ybVR5cGUucGFyYW1ldGVyc1ZhbHVlVHlwZSkpLFErPTEpfSksQz1hO2JyZWFrfWNhc2UgZC5Qb2x5RGF0YTp7bGV0IGE9dUEoQSxzKTthLm51bWJlck9mUG9pbnRzPjA/YS5wb2ludHM9UyhBLHMsMCxWLkZsb2F0MzIpOmEucG9pbnRzPW5ldyBGbG9hdDMyQXJyYXksYS52ZXJ0aWNlc0J1ZmZlclNpemU+MD9hLnZlcnRpY2VzPVMoQSxzLDEsVS5VSW50MzIpOmEudmVydGljZXM9bmV3IFVpbnQzMkFycmF5LGEubGluZXNCdWZmZXJTaXplPjA/YS5saW5lcz1TKEEscywyLFUuVUludDMyKTphLmxpbmVzPW5ldyBVaW50MzJBcnJheSxhLnBvbHlnb25zQnVmZmVyU2l6ZT4wP2EucG9seWdvbnM9UyhBLHMsMyxVLlVJbnQzMik6YS5wb2x5Z29ucz1uZXcgVWludDMyQXJyYXksYS50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU+MD9hLnRyaWFuZ2xlU3RyaXBzPVMoQSxzLDQsVS5VSW50MzIpOmEudHJpYW5nbGVTdHJpcHM9bmV3IFVpbnQzMkFycmF5LGEubnVtYmVyT2ZQb2ludFBpeGVscz4wP2EucG9pbnREYXRhPVMoQSxzLDUsYS5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOmEucG9pbnREYXRhPXEoYS5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mQ2VsbFBpeGVscz4wP2EuY2VsbERhdGE9UyhBLHMsNixhLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTphLmNlbGxEYXRhPXEoYS5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEM9YTticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBvdXRwdXQgSW50ZXJmYWNlVHlwZSIpfWxldCBsPXt0eXBlOkIudHlwZSxkYXRhOkN9O0UucHVzaChsKX0pLHtyZXR1cm5WYWx1ZTpnLHN0ZG91dDpvLHN0ZGVycjpuLG91dHB1dHM6RX19dmFyIFVlPWxyO3ZhciB1cj10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcjwidSI7ZnVuY3Rpb24gZHIoQSx0KXtpZihBPT1udWxsKXJldHVybltdO2xldCBlPVtdO2ZvcihsZXQgST0wO0k8QS5sZW5ndGg7SSsrKXtsZXQgcj1EcihBW0ldLHQpO3IhPT1udWxsJiZlLnB1c2gocil9cmV0dXJuIGV9ZnVuY3Rpb24gRHIoQSx0KXtpZihBPT1udWxsKXJldHVybiBudWxsO2xldCBlPW51bGw7cmV0dXJuIEEuYnVmZmVyIT09dm9pZCAwP2U9QS5idWZmZXI6QS5ieXRlTGVuZ3RoIT09dm9pZCAwJiYoZT1BKSx1ciYmZSBpbnN0YW5jZW9mIFNoYXJlZEFycmF5QnVmZmVyP251bGw6dD9lOmUuc2xpY2UoMCl9dmFyIEdlPWRyO2Z1bmN0aW9uIGhyKEEpe3JldHVybltBLmRhdGEsQS5kaXJlY3Rpb25dfXZhciBrZT1ocjtmdW5jdGlvbiB5cihBKXtyZXR1cm5bQS5wb2ludHMsQS5wb2ludERhdGEsQS5jZWxscyxBLmNlbGxEYXRhXX12YXIgTGU9eXI7ZnVuY3Rpb24gbXIoQSl7cmV0dXJuW0EucG9pbnRzLEEudmVydGljZXMsQS5saW5lcyxBLnBvbHlnb25zLEEudHJpYW5nbGVTdHJpcHMsQS5wb2ludERhdGEsQS5jZWxsRGF0YV19dmFyIGJlPW1yO2FzeW5jIGZ1bmN0aW9uIHdyKEEsdCxlLEkpe2xldCByPVVlKEEsdCxlLEkpLGc9W107cmV0dXJuIHIub3V0cHV0cy5mb3JFYWNoKGZ1bmN0aW9uKG8pe2lmKG8udHlwZT09PWQuQmluYXJ5U3RyZWFtfHxvLnR5cGU9PT1kLkJpbmFyeUZpbGUpe2xldCBuPW8uZGF0YTtnLnB1c2gobil9ZWxzZSBpZihvLnR5cGU9PT1kLkltYWdlKXtsZXQgbj1vLmRhdGE7Zy5wdXNoKC4uLmtlKG4pKX1lbHNlIGlmKG8udHlwZT09PWQuTWVzaCl7bGV0IG49by5kYXRhO2cucHVzaCguLi5MZShuKSl9ZWxzZSBpZihvLnR5cGU9PT1kLlBvbHlEYXRhKXtsZXQgbj1vLmRhdGE7Zy5wdXNoKC4uLmJlKG4pKX19KSxfQShyLEdlKGcsITApKX12YXIgSmU9d3I7dmFyIHByPXtydW5QaXBlbGluZTphc3luYyBmdW5jdGlvbihBLHQsZSxJLHIsZyl7bGV0IG89YXdhaXQgcGUoQSx0LGcpO3JldHVybiBhd2FpdCBKZShvLGUsSSxyKX19O0ZBKHByKTslMEEvKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOiUwQSUwQWNvbWxpbmsvZGlzdC9lc20vY29tbGluay5tanM6JTBBICAoKiolMEEgICAqIEBsaWNlbnNlJTBBICAgKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDJTBBICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCUwQSAgICopJTBBKi8lMEEnO25JKEJJKTtleHBvcnR7cWUgYXMgY29tcGFyZURvdWJsZUltYWdlcyxmZyBhcyBjb21wYXJlSW1hZ2VzLENJIGFzIGdldERlZmF1bHRXZWJXb3JrZXIsaUEgYXMgZ2V0UGlwZWxpbmVXb3JrZXJVcmwsJEEgYXMgZ2V0UGlwZWxpbmVzQmFzZVVybCxRcyBhcyBzZXREZWZhdWx0V2ViV29ya2VyLG5JIGFzIHNldFBpcGVsaW5lV29ya2VyVXJsLGlzIGFzIHNldFBpcGVsaW5lc0Jhc2VVcmwseGUgYXMgdmVjdG9yTWFnbml0dWRlLHRlIGFzIHZlcnNpb259OwovKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOgoKY29tbGluay9kaXN0L2VzbS9jb21saW5rLm1qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAogICAqKQoqLwo=""" +default_js_module = """data:text/javascript;base64,dmFyIEVJPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgY0k9KEEsZSk9Pntmb3IodmFyIEkgaW4gZSlFSShBLEkse2dldDplW0ldLGVudW1lcmFibGU6ITB9KX07dmFyIGxJPSI1LjQuMSIsdGU9bEk7dmFyIGZJPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sZD1mSTt2YXIgdUk9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LEY9dUk7ZnVuY3Rpb24gZEkoQSxlKXtsZXQgST1udWxsO3N3aXRjaChBKXtjYXNlIGQuVUludDg6e0k9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBkLkludDg6e0k9bmV3IEludDhBcnJheShlKTticmVha31jYXNlIGQuVUludDE2OntJPW5ldyBVaW50MTZBcnJheShlKTticmVha31jYXNlIGQuSW50MTY6e0k9bmV3IEludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBkLlVJbnQzMjp7ST1uZXcgVWludDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSBkLkludDMyOntJPW5ldyBJbnQzMkFycmF5KGUpO2JyZWFrfWNhc2UgZC5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP0k9bmV3IEJpZ1VpbnQ2NEFycmF5KGUpOkk9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBkLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP0k9bmV3IEJpZ0ludDY0QXJyYXkoZSk6ST1uZXcgVWludDhBcnJheShlKTticmVha31jYXNlIEYuRmxvYXQzMjp7ST1uZXcgRmxvYXQzMkFycmF5KGUpO2JyZWFrfWNhc2UgRi5GbG9hdDY0OntJPW5ldyBGbG9hdDY0QXJyYXkoZSk7YnJlYWt9Y2FzZSJudWxsIjp7ST1udWxsO2JyZWFrfWNhc2UgbnVsbDp7ST1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIEl9dmFyIEg9ZEk7dmFyIGhJPXtVbmtub3duOiJVbmtub3duIixTY2FsYXI6IlNjYWxhciIsUkdCOiJSR0IiLFJHQkE6IlJHQkEiLE9mZnNldDoiT2Zmc2V0IixWZWN0b3I6IlZlY3RvciIsUG9pbnQ6IlBvaW50IixDb3ZhcmlhbnRWZWN0b3I6IkNvdmFyaWFudFZlY3RvciIsU3ltbWV0cmljU2Vjb25kUmFua1RlbnNvcjoiU3ltbWV0cmljU2Vjb25kUmFua1RlbnNvciIsRGlmZnVzaW9uVGVuc29yM0Q6IkRpZmZ1c2lvblRlbnNvcjNEIixDb21wbGV4OiJDb21wbGV4IixGaXhlZEFycmF5OiJGaXhlZEFycmF5IixBcnJheToiQXJyYXkiLE1hdHJpeDoiTWF0cml4IixWYXJpYWJsZUxlbmd0aFZlY3RvcjoiVmFyaWFibGVMZW5ndGhWZWN0b3IiLFZhcmlhYmxlU2l6ZU1hdHJpeDoiVmFyaWFibGVTaXplTWF0cml4In0sRz1oSTt2YXIgSWU9Y2xhc3N7ZGltZW5zaW9uO2NvbXBvbmVudFR5cGU7cGl4ZWxUeXBlO2NvbXBvbmVudHM7Y29uc3RydWN0b3IoZT0yLEk9ZC5VSW50OCx0PUcuU2NhbGFyLHI9MSl7dGhpcy5kaW1lbnNpb249ZSx0aGlzLmNvbXBvbmVudFR5cGU9SSx0aGlzLnBpeGVsVHlwZT10LHRoaXMuY29tcG9uZW50cz1yfX0sdmU9SWU7ZnVuY3Rpb24geUkoQSxlLEksdCxyKXtBW3QrSSplXT1yfXZhciBaZT15STt2YXIgcmU9Y2xhc3N7aW1hZ2VUeXBlO25hbWU9IkltYWdlIjtvcmlnaW47c3BhY2luZztkaXJlY3Rpb247c2l6ZTttZXRhZGF0YTtkYXRhO2NvbnN0cnVjdG9yKGU9bmV3IHZlKXt0aGlzLmltYWdlVHlwZT1lO2xldCBJPWUuZGltZW5zaW9uO3RoaXMub3JpZ2luPW5ldyBBcnJheShJKSx0aGlzLm9yaWdpbi5maWxsKDApLHRoaXMuc3BhY2luZz1uZXcgQXJyYXkoSSksdGhpcy5zcGFjaW5nLmZpbGwoMSksdGhpcy5kaXJlY3Rpb249bmV3IEZsb2F0NjRBcnJheShJKkkpLHRoaXMuZGlyZWN0aW9uLmZpbGwoMCk7Zm9yKGxldCB0PTA7dDxJO3QrKylaZSh0aGlzLmRpcmVjdGlvbixJLHQsdCwxKTt0aGlzLnNpemU9bmV3IEFycmF5KEkpLHRoaXMuc2l6ZS5maWxsKDApLHRoaXMubWV0YWRhdGE9bmV3IE1hcCx0aGlzLmRhdGE9bnVsbH19LFZlPXJlO2Z1bmN0aW9uIERJKEEsZSl7bGV0IEk9ey4uLkEuaW1hZ2VUeXBlfTtpZih0eXBlb2YgZTwidSImJnR5cGVvZiBlLnBpeGVsVHlwZTwidSImJihJLnBpeGVsVHlwZT1lLnBpeGVsVHlwZSxlLnBpeGVsVHlwZT09PUcuU2NhbGFyJiZJLmNvbXBvbmVudHMhPT0xKSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjYXN0IG11bHRpLWNvbXBvbmVudCBpbWFnZSB0byBhIHNjYWxhciBpbWFnZSIpO3R5cGVvZiBlPCJ1IiYmdHlwZW9mIGUuY29tcG9uZW50VHlwZTwidSImJmUuY29tcG9uZW50VHlwZSE9PUEuaW1hZ2VUeXBlLmNvbXBvbmVudFR5cGUmJihJLmNvbXBvbmVudFR5cGU9ZS5jb21wb25lbnRUeXBlKTtsZXQgdD1uZXcgVmUoSSk7aWYodC5uYW1lPUEubmFtZSx0Lm9yaWdpbj1BcnJheS5mcm9tKEEub3JpZ2luKSx0LnNwYWNpbmc9QXJyYXkuZnJvbShBLnNwYWNpbmcpLHQuZGlyZWN0aW9uPUEuZGlyZWN0aW9uLnNsaWNlKCksdC5zaXplPUFycmF5LmZyb20oQS5zaXplKSx0Lm1ldGFkYXRhPW5ldyBNYXAoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShBcnJheS5mcm9tKEEubWV0YWRhdGEpKSkpLEEuZGF0YSE9PW51bGwpaWYodHlwZW9mIGU8InUiJiZ0eXBlb2YgZS5jb21wb25lbnRUeXBlPCJ1IiYmZS5jb21wb25lbnRUeXBlIT09QS5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSlzd2l0Y2goQS5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSl7Y2FzZSBkLlVJbnQ4OmNhc2UgZC5JbnQ4OmNhc2UgZC5VSW50MTY6Y2FzZSBkLkludDE2OmNhc2UgZC5VSW50MzI6Y2FzZSBkLkludDMyOmNhc2UgRi5GbG9hdDMyOmNhc2UgRi5GbG9hdDY0OnN3aXRjaCh0LmltYWdlVHlwZS5jb21wb25lbnRUeXBlKXtjYXNlIGQuVUludDg6aWYoQS5kYXRhIGluc3RhbmNlb2YgQmlnSW50NjRBcnJheXx8QS5kYXRhIGluc3RhbmNlb2YgQmlnVWludDY0QXJyYXkpe3QuZGF0YT1uZXcgVWludDhBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKX1lbHNlIHQuZGF0YT1uZXcgVWludDhBcnJheShBLmRhdGEpO2JyZWFrO2Nhc2UgZC5JbnQ4OmlmKEEuZGF0YSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXl8fEEuZGF0YSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KXt0LmRhdGE9bmV3IEludDhBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKX1lbHNlIHQuZGF0YT1uZXcgSW50OEFycmF5KEEuZGF0YSk7YnJlYWs7Y2FzZSBkLlVJbnQxNjppZihBLmRhdGEgaW5zdGFuY2VvZiBCaWdJbnQ2NEFycmF5fHxBLmRhdGEgaW5zdGFuY2VvZiBCaWdVaW50NjRBcnJheSl7dC5kYXRhPW5ldyBVaW50MTZBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKX1lbHNlIHQuZGF0YT1uZXcgVWludDE2QXJyYXkoQS5kYXRhKTticmVhaztjYXNlIGQuSW50MTY6aWYoQS5kYXRhIGluc3RhbmNlb2YgQmlnSW50NjRBcnJheXx8QS5kYXRhIGluc3RhbmNlb2YgQmlnVWludDY0QXJyYXkpe3QuZGF0YT1uZXcgSW50MTZBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKX1lbHNlIHQuZGF0YT1uZXcgSW50MTZBcnJheShBLmRhdGEpO2JyZWFrO2Nhc2UgZC5VSW50MzI6aWYoQS5kYXRhIGluc3RhbmNlb2YgQmlnSW50NjRBcnJheXx8QS5kYXRhIGluc3RhbmNlb2YgQmlnVWludDY0QXJyYXkpe3QuZGF0YT1uZXcgVWludDMyQXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCByPTA7cjx0LmRhdGEubGVuZ3RoO3IrKyl0LmRhdGFbcl09TnVtYmVyKEEuZGF0YVtyXSl9ZWxzZSB0LmRhdGE9bmV3IFVpbnQzMkFycmF5KEEuZGF0YSk7YnJlYWs7Y2FzZSBkLkludDMyOmlmKEEuZGF0YSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXl8fEEuZGF0YSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KXt0LmRhdGE9bmV3IEludDMyQXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCByPTA7cjx0LmRhdGEubGVuZ3RoO3IrKyl0LmRhdGFbcl09TnVtYmVyKEEuZGF0YVtyXSl9ZWxzZSB0LmRhdGE9bmV3IEludDMyQXJyYXkoQS5kYXRhKTticmVhaztjYXNlIEYuRmxvYXQzMjppZihBLmRhdGEgaW5zdGFuY2VvZiBCaWdJbnQ2NEFycmF5fHxBLmRhdGEgaW5zdGFuY2VvZiBCaWdVaW50NjRBcnJheSl7dC5kYXRhPW5ldyBGbG9hdDMyQXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCByPTA7cjx0LmRhdGEubGVuZ3RoO3IrKyl0LmRhdGFbcl09TnVtYmVyKEEuZGF0YVtyXSl9ZWxzZSB0LmRhdGE9bmV3IEZsb2F0MzJBcnJheShBLmRhdGEpO2JyZWFrO2Nhc2UgRi5GbG9hdDY0OmlmKEEuZGF0YSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXl8fEEuZGF0YSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KXt0LmRhdGE9bmV3IEZsb2F0NjRBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKX1lbHNlIHQuZGF0YT1uZXcgRmxvYXQ2NEFycmF5KEEuZGF0YSk7YnJlYWs7Y2FzZSBkLlVJbnQ2NDp0LmRhdGE9bmV3IEJpZ1VpbnQ2NEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPUJpZ0ludC5hc0ludE4oNjQsQmlnSW50KEEuZGF0YVtyXSkpO2JyZWFrO2Nhc2UgZC5JbnQ2NDp0LmRhdGE9bmV3IEJpZ0ludDY0QXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCByPTA7cjx0LmRhdGEubGVuZ3RoO3IrKyl0LmRhdGFbcl09QmlnSW50LmFzVWludE4oNjQsQmlnSW50KEEuZGF0YVtyXSkpO2JyZWFrfWJyZWFrO2Nhc2UgZC5VSW50NjQ6Y2FzZSBkLkludDY0OnN3aXRjaCh0LmltYWdlVHlwZS5jb21wb25lbnRUeXBlKXtjYXNlIGQuVUludDg6dC5kYXRhPW5ldyBVaW50OEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPU51bWJlcihBLmRhdGFbcl0pO2JyZWFrO2Nhc2UgZC5JbnQ4OnQuZGF0YT1uZXcgSW50OEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPU51bWJlcihBLmRhdGFbcl0pO2JyZWFrO2Nhc2UgZC5VSW50MTY6dC5kYXRhPW5ldyBVaW50MTZBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKTticmVhaztjYXNlIGQuSW50MTY6dC5kYXRhPW5ldyBJbnQxNkFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPU51bWJlcihBLmRhdGFbcl0pO2JyZWFrO2Nhc2UgZC5VSW50MzI6dC5kYXRhPW5ldyBVaW50MzJBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKTticmVhaztjYXNlIGQuSW50MzI6dC5kYXRhPW5ldyBJbnQzMkFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPU51bWJlcihBLmRhdGFbcl0pO2JyZWFrO2Nhc2UgRi5GbG9hdDMyOnQuZGF0YT1uZXcgRmxvYXQzMkFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPU51bWJlcihBLmRhdGFbcl0pO2JyZWFrO2Nhc2UgRi5GbG9hdDY0OnQuZGF0YT1uZXcgRmxvYXQ2NEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPU51bWJlcihBLmRhdGFbcl0pO2JyZWFrO2Nhc2UgZC5VSW50NjQ6aWYoQS5kYXRhIGluc3RhbmNlb2YgQmlnSW50NjRBcnJheXx8QS5kYXRhIGluc3RhbmNlb2YgQmlnVWludDY0QXJyYXkpdC5kYXRhPW5ldyBCaWdVaW50NjRBcnJheShBLmRhdGEpO2Vsc2V7dC5kYXRhPW5ldyBCaWdVaW50NjRBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1CaWdJbnQuYXNVaW50Tig2NCxCaWdJbnQoQS5kYXRhW3JdKSl9YnJlYWs7Y2FzZSBkLkludDY0OmlmKEEuZGF0YSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXl8fEEuZGF0YSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KXQuZGF0YT1uZXcgQmlnSW50NjRBcnJheShBLmRhdGEpO2Vsc2V7dC5kYXRhPW5ldyBCaWdJbnQ2NEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPUJpZ0ludC5hc0ludE4oNjQsQmlnSW50KEEuZGF0YVtyXSkpfWJyZWFrfWJyZWFrfWVsc2V7bGV0IHI9QS5kYXRhLmNvbnN0cnVjdG9yO3QuZGF0YT1uZXcgcihBLmRhdGEubGVuZ3RoKSx0LmRhdGEhPW51bGwmJnQuZGF0YS5zZXQoQS5kYXRhLDApfXJldHVybiB0fXZhciBSQT1ESTt2YXIgcEk9e1RleHRGaWxlOiJUZXh0RmlsZSIsQmluYXJ5RmlsZToiQmluYXJ5RmlsZSIsVGV4dFN0cmVhbToiVGV4dFN0cmVhbSIsQmluYXJ5U3RyZWFtOiJCaW5hcnlTdHJlYW0iLEltYWdlOiJJbWFnZSIsUG9pbnRTZXQ6IlBvaW50U2V0IixNZXNoOiJNZXNoIixQb2x5RGF0YToiUG9seURhdGEiLFRyYW5zZm9ybUxpc3Q6IlRyYW5zZm9ybUxpc3QiLEpzb25Db21wYXRpYmxlOiJKc29uQ29tcGF0aWJsZSJ9LGg9cEk7dmFyIHplPVN5bWJvbCgiQ29tbGluay5wcm94eSIpLHdJPVN5bWJvbCgiQ29tbGluay5lbmRwb2ludCIpLG9lPVN5bWJvbCgiQ29tbGluay5yZWxlYXNlUHJveHkiKSxnZT1TeW1ib2woIkNvbWxpbmsuZmluYWxpemVyIiksTkE9U3ltYm9sKCJDb21saW5rLnRocm93biIpLF9lPUE9PnR5cGVvZiBBPT0ib2JqZWN0IiYmQSE9PW51bGx8fHR5cGVvZiBBPT0iZnVuY3Rpb24iLG1JPXtjYW5IYW5kbGU6QT0+X2UoQSkmJkFbemVdLHNlcmlhbGl6ZShBKXtsZXR7cG9ydDE6ZSxwb3J0MjpJfT1uZXcgTWVzc2FnZUNoYW5uZWw7cmV0dXJuIEF0KEEsZSksW0ksW0ldXX0sZGVzZXJpYWxpemUoQSl7cmV0dXJuIEEuc3RhcnQoKSxhZShBKX19LFNJPXtjYW5IYW5kbGU6QT0+X2UoQSkmJk5BIGluIEEsc2VyaWFsaXplKHt2YWx1ZTpBfSl7bGV0IGU7cmV0dXJuIEEgaW5zdGFuY2VvZiBFcnJvcj9lPXtpc0Vycm9yOiEwLHZhbHVlOnttZXNzYWdlOkEubWVzc2FnZSxuYW1lOkEubmFtZSxzdGFjazpBLnN0YWNrfX06ZT17aXNFcnJvcjohMSx2YWx1ZTpBfSxbZSxbXV19LGRlc2VyaWFsaXplKEEpe3Rocm93IEEuaXNFcnJvcj9PYmplY3QuYXNzaWduKG5ldyBFcnJvcihBLnZhbHVlLm1lc3NhZ2UpLEEudmFsdWUpOkEudmFsdWV9fSwkZT1uZXcgTWFwKFtbInByb3h5IixtSV0sWyJ0aHJvdyIsU0ldXSk7ZnVuY3Rpb24gRkkoQSxlKXtmb3IobGV0IEkgb2YgQSlpZihlPT09SXx8ST09PSIqInx8SSBpbnN0YW5jZW9mIFJlZ0V4cCYmSS50ZXN0KGUpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEF0KEEsZT1nbG9iYWxUaGlzLEk9WyIqIl0pe2UuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gdChyKXtpZighcnx8IXIuZGF0YSlyZXR1cm47aWYoIUZJKEksci5vcmlnaW4pKXtjb25zb2xlLndhcm4oYEludmFsaWQgb3JpZ2luICcke3Iub3JpZ2lufScgZm9yIGNvbWxpbmsgcHJveHlgKTtyZXR1cm59bGV0e2lkOmksdHlwZTpnLHBhdGg6c309T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0sci5kYXRhKSxFPShyLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKFopLEM7dHJ5e2xldCBvPXMuc2xpY2UoMCwtMSkucmVkdWNlKChmLEIpPT5mW0JdLEEpLG49cy5yZWR1Y2UoKGYsQik9PmZbQl0sQSk7c3dpdGNoKGcpe2Nhc2UiR0VUIjpDPW47YnJlYWs7Y2FzZSJTRVQiOm9bcy5zbGljZSgtMSlbMF1dPVooci5kYXRhLnZhbHVlKSxDPSEwO2JyZWFrO2Nhc2UiQVBQTFkiOkM9bi5hcHBseShvLEUpO2JyZWFrO2Nhc2UiQ09OU1RSVUNUIjp7bGV0IGY9bmV3IG4oLi4uRSk7Qz1HSShmKX1icmVhaztjYXNlIkVORFBPSU5UIjp7bGV0e3BvcnQxOmYscG9ydDI6Qn09bmV3IE1lc3NhZ2VDaGFubmVsO0F0KEEsQiksQz1uZShmLFtmXSl9YnJlYWs7Y2FzZSJSRUxFQVNFIjpDPXZvaWQgMDticmVhaztkZWZhdWx0OnJldHVybn19Y2F0Y2gobyl7Qz17dmFsdWU6byxbTkFdOjB9fVByb21pc2UucmVzb2x2ZShDKS5jYXRjaChvPT4oe3ZhbHVlOm8sW05BXTowfSkpLnRoZW4obz0+e2xldFtuLGZdPWJBKG8pO2UucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4pLHtpZDppfSksZiksZz09PSJSRUxFQVNFIiYmKGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdCksZXQoZSksZ2UgaW4gQSYmdHlwZW9mIEFbZ2VdPT0iZnVuY3Rpb24iJiZBW2dlXSgpKX0pLmNhdGNoKG89PntsZXRbbixmXT1iQSh7dmFsdWU6bmV3IFR5cGVFcnJvcigiVW5zZXJpYWxpemFibGUgcmV0dXJuIHZhbHVlIiksW05BXTowfSk7ZS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbikse2lkOml9KSxmKX0pfSksZS5zdGFydCYmZS5zdGFydCgpfWZ1bmN0aW9uIFJJKEEpe3JldHVybiBBLmNvbnN0cnVjdG9yLm5hbWU9PT0iTWVzc2FnZVBvcnQifWZ1bmN0aW9uIGV0KEEpe1JJKEEpJiZBLmNsb3NlKCl9ZnVuY3Rpb24gYWUoQSxlKXtyZXR1cm4gaWUoQSxbXSxlKX1mdW5jdGlvbiBVQShBKXtpZihBKXRocm93IG5ldyBFcnJvcigiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlIil9ZnVuY3Rpb24gdHQoQSl7cmV0dXJuIHooQSx7dHlwZToiUkVMRUFTRSJ9KS50aGVuKCgpPT57ZXQoQSl9KX12YXIga0E9bmV3IFdlYWtNYXAsR0E9IkZpbmFsaXphdGlvblJlZ2lzdHJ5ImluIGdsb2JhbFRoaXMmJm5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShBPT57bGV0IGU9KGtBLmdldChBKXx8MCktMTtrQS5zZXQoQSxlKSxlPT09MCYmdHQoQSl9KTtmdW5jdGlvbiBVSShBLGUpe2xldCBJPShrQS5nZXQoZSl8fDApKzE7a0Euc2V0KGUsSSksR0EmJkdBLnJlZ2lzdGVyKEEsZSxBKX1mdW5jdGlvbiBOSShBKXtHQSYmR0EudW5yZWdpc3RlcihBKX1mdW5jdGlvbiBpZShBLGU9W10sST1mdW5jdGlvbigpe30pe2xldCB0PSExLHI9bmV3IFByb3h5KEkse2dldChpLGcpe2lmKFVBKHQpLGc9PT1vZSlyZXR1cm4oKT0+e05JKHIpLHR0KEEpLHQ9ITB9O2lmKGc9PT0idGhlbiIpe2lmKGUubGVuZ3RoPT09MClyZXR1cm57dGhlbjooKT0+cn07bGV0IHM9eihBLHt0eXBlOiJHRVQiLHBhdGg6ZS5tYXAoRT0+RS50b1N0cmluZygpKX0pLnRoZW4oWik7cmV0dXJuIHMudGhlbi5iaW5kKHMpfXJldHVybiBpZShBLFsuLi5lLGddKX0sc2V0KGksZyxzKXtVQSh0KTtsZXRbRSxDXT1iQShzKTtyZXR1cm4geihBLHt0eXBlOiJTRVQiLHBhdGg6Wy4uLmUsZ10ubWFwKG89Pm8udG9TdHJpbmcoKSksdmFsdWU6RX0sQykudGhlbihaKX0sYXBwbHkoaSxnLHMpe1VBKHQpO2xldCBFPWVbZS5sZW5ndGgtMV07aWYoRT09PXdJKXJldHVybiB6KEEse3R5cGU6IkVORFBPSU5UIn0pLnRoZW4oWik7aWYoRT09PSJiaW5kIilyZXR1cm4gaWUoQSxlLnNsaWNlKDAsLTEpKTtsZXRbQyxvXT1YZShzKTtyZXR1cm4geihBLHt0eXBlOiJBUFBMWSIscGF0aDplLm1hcChuPT5uLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpDfSxvKS50aGVuKFopfSxjb25zdHJ1Y3QoaSxnKXtVQSh0KTtsZXRbcyxFXT1YZShnKTtyZXR1cm4geihBLHt0eXBlOiJDT05TVFJVQ1QiLHBhdGg6ZS5tYXAoQz0+Qy50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6c30sRSkudGhlbihaKX19KTtyZXR1cm4gVUkocixBKSxyfWZ1bmN0aW9uIGtJKEEpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLEEpfWZ1bmN0aW9uIFhlKEEpe2xldCBlPUEubWFwKGJBKTtyZXR1cm5bZS5tYXAoST0+SVswXSksa0koZS5tYXAoST0+SVsxXSkpXX12YXIgSXQ9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gbmUoQSxlKXtyZXR1cm4gSXQuc2V0KEEsZSksQX1mdW5jdGlvbiBHSShBKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihBLHtbemVdOiEwfSl9ZnVuY3Rpb24gYkEoQSl7Zm9yKGxldFtlLEldb2YgJGUpaWYoSS5jYW5IYW5kbGUoQSkpe2xldFt0LHJdPUkuc2VyaWFsaXplKEEpO3JldHVyblt7dHlwZToiSEFORExFUiIsbmFtZTplLHZhbHVlOnR9LHJdfXJldHVyblt7dHlwZToiUkFXIix2YWx1ZTpBfSxJdC5nZXQoQSl8fFtdXX1mdW5jdGlvbiBaKEEpe3N3aXRjaChBLnR5cGUpe2Nhc2UiSEFORExFUiI6cmV0dXJuICRlLmdldChBLm5hbWUpLmRlc2VyaWFsaXplKEEudmFsdWUpO2Nhc2UiUkFXIjpyZXR1cm4gQS52YWx1ZX19ZnVuY3Rpb24geihBLGUsSSl7cmV0dXJuIG5ldyBQcm9taXNlKHQ9PntsZXQgcj1iSSgpO0EuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gaShnKXshZy5kYXRhfHwhZy5kYXRhLmlkfHxnLmRhdGEuaWQhPT1yfHwoQS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixpKSx0KGcuZGF0YSkpfSksQS5zdGFydCYmQS5zdGFydCgpLEEucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7aWQ6cn0sZSksSSl9KX1mdW5jdGlvbiBiSSgpe3JldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikudG9TdHJpbmcoMTYpKS5qb2luKCItIil9ZnVuY3Rpb24gbkEoQSxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseShlLGFyZ3VtZW50cyl9fXZhcnt0b1N0cmluZzpMSX09T2JqZWN0LnByb3RvdHlwZSx7Z2V0UHJvdG90eXBlT2Y6Q2V9PU9iamVjdCx7aXRlcmF0b3I6SkEsdG9TdHJpbmdUYWc6aXR9PVN5bWJvbCxNQT0oQT0+ZT0+e2xldCBJPUxJLmNhbGwoZSk7cmV0dXJuIEFbSV18fChBW0ldPUkuc2xpY2UoOCwtMSkudG9Mb3dlckNhc2UoKSl9KShPYmplY3QuY3JlYXRlKG51bGwpKSxKPUE9PihBPUEudG9Mb3dlckNhc2UoKSxlPT5NQShlKT09PUEpLFlBPUE9PmU9PnR5cGVvZiBlPT09QSx7aXNBcnJheTokfT1BcnJheSxfPVlBKCJ1bmRlZmluZWQiKTtmdW5jdGlvbiBzQShBKXtyZXR1cm4gQSE9PW51bGwmJiFfKEEpJiZBLmNvbnN0cnVjdG9yIT09bnVsbCYmIV8oQS5jb25zdHJ1Y3RvcikmJmsoQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikmJkEuY29uc3RydWN0b3IuaXNCdWZmZXIoQSl9dmFyIG90PUooIkFycmF5QnVmZmVyIik7ZnVuY3Rpb24gSkkoQSl7bGV0IGU7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJkFycmF5QnVmZmVyLmlzVmlldz9lPUFycmF5QnVmZmVyLmlzVmlldyhBKTplPUEmJkEuYnVmZmVyJiZvdChBLmJ1ZmZlciksZX12YXIgTUk9WUEoInN0cmluZyIpLGs9WUEoImZ1bmN0aW9uIiksYXQ9WUEoIm51bWJlciIpLENBPUE9PkEhPT1udWxsJiZ0eXBlb2YgQT09Im9iamVjdCIsWUk9QT0+QT09PSEwfHxBPT09ITEsTEE9QT0+e2lmKE1BKEEpIT09Im9iamVjdCIpcmV0dXJuITE7bGV0IGU9Q2UoQSk7cmV0dXJuKGU9PT1udWxsfHxlPT09T2JqZWN0LnByb3RvdHlwZXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09bnVsbCkmJiEoaXQgaW4gQSkmJiEoSkEgaW4gQSl9LEhJPUE9PntpZighQ0EoQSl8fHNBKEEpKXJldHVybiExO3RyeXtyZXR1cm4gT2JqZWN0LmtleXMoQSkubGVuZ3RoPT09MCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKEEpPT09T2JqZWN0LnByb3RvdHlwZX1jYXRjaHtyZXR1cm4hMX19LHFJPUooIkRhdGUiKSxUST1KKCJGaWxlIikseEk9SigiQmxvYiIpLE9JPUooIkZpbGVMaXN0IiksS0k9QT0+Q0EoQSkmJmsoQS5waXBlKSxQST1BPT57bGV0IGU7cmV0dXJuIEEmJih0eXBlb2YgRm9ybURhdGE9PSJmdW5jdGlvbiImJkEgaW5zdGFuY2VvZiBGb3JtRGF0YXx8ayhBLmFwcGVuZCkmJigoZT1NQShBKSk9PT0iZm9ybWRhdGEifHxlPT09Im9iamVjdCImJmsoQS50b1N0cmluZykmJkEudG9TdHJpbmcoKT09PSJbb2JqZWN0IEZvcm1EYXRhXSIpKX0sV0k9SigiVVJMU2VhcmNoUGFyYW1zIiksW2pJLHZJLFpJLFZJXT1bIlJlYWRhYmxlU3RyZWFtIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiSGVhZGVycyJdLm1hcChKKSxYST1BPT5BLnRyaW0/QS50cmltKCk6QS5yZXBsYWNlKC9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZywiIik7ZnVuY3Rpb24gQkEoQSxlLHthbGxPd25LZXlzOkk9ITF9PXt9KXtpZihBPT09bnVsbHx8dHlwZW9mIEE+InUiKXJldHVybjtsZXQgdCxyO2lmKHR5cGVvZiBBIT0ib2JqZWN0IiYmKEE9W0FdKSwkKEEpKWZvcih0PTAscj1BLmxlbmd0aDt0PHI7dCsrKWUuY2FsbChudWxsLEFbdF0sdCxBKTtlbHNle2lmKHNBKEEpKXJldHVybjtsZXQgaT1JP09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpOk9iamVjdC5rZXlzKEEpLGc9aS5sZW5ndGgscztmb3IodD0wO3Q8Zzt0Kyspcz1pW3RdLGUuY2FsbChudWxsLEFbc10scyxBKX19ZnVuY3Rpb24gbnQoQSxlKXtpZihzQShBKSlyZXR1cm4gbnVsbDtlPWUudG9Mb3dlckNhc2UoKTtsZXQgST1PYmplY3Qua2V5cyhBKSx0PUkubGVuZ3RoLHI7Zm9yKDt0LS0gPjA7KWlmKHI9SVt0XSxlPT09ci50b0xvd2VyQ2FzZSgpKXJldHVybiByO3JldHVybiBudWxsfXZhciBWPXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzpnbG9iYWwsc3Q9QT0+IV8oQSkmJkEhPT1WO2Z1bmN0aW9uIHNlKCl7bGV0e2Nhc2VsZXNzOkEsc2tpcFVuZGVmaW5lZDplfT1zdCh0aGlzKSYmdGhpc3x8e30sST17fSx0PShyLGkpPT57bGV0IGc9QSYmbnQoSSxpKXx8aTtMQShJW2ddKSYmTEEocik/SVtnXT1zZShJW2ddLHIpOkxBKHIpP0lbZ109c2Uoe30scik6JChyKT9JW2ddPXIuc2xpY2UoKTooIWV8fCFfKHIpKSYmKElbZ109cil9O2ZvcihsZXQgcj0wLGk9YXJndW1lbnRzLmxlbmd0aDtyPGk7cisrKWFyZ3VtZW50c1tyXSYmQkEoYXJndW1lbnRzW3JdLHQpO3JldHVybiBJfXZhciB6ST0oQSxlLEkse2FsbE93bktleXM6dH09e30pPT4oQkEoZSwocixpKT0+e0kmJmsocik/QVtpXT1uQShyLEkpOkFbaV09cn0se2FsbE93bktleXM6dH0pLEEpLF9JPUE9PihBLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKEE9QS5zbGljZSgxKSksQSksJEk9KEEsZSxJLHQpPT57QS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSx0KSxBLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1BLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJzdXBlciIse3ZhbHVlOmUucHJvdG90eXBlfSksSSYmT2JqZWN0LmFzc2lnbihBLnByb3RvdHlwZSxJKX0sQXI9KEEsZSxJLHQpPT57bGV0IHIsaSxnLHM9e307aWYoZT1lfHx7fSxBPT1udWxsKXJldHVybiBlO2Rve2ZvcihyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpLGk9ci5sZW5ndGg7aS0tID4wOylnPXJbaV0sKCF0fHx0KGcsQSxlKSkmJiFzW2ddJiYoZVtnXT1BW2ddLHNbZ109ITApO0E9SSE9PSExJiZDZShBKX13aGlsZShBJiYoIUl8fEkoQSxlKSkmJkEhPT1PYmplY3QucHJvdG90eXBlKTtyZXR1cm4gZX0sZXI9KEEsZSxJKT0+e0E9U3RyaW5nKEEpLChJPT09dm9pZCAwfHxJPkEubGVuZ3RoKSYmKEk9QS5sZW5ndGgpLEktPWUubGVuZ3RoO2xldCB0PUEuaW5kZXhPZihlLEkpO3JldHVybiB0IT09LTEmJnQ9PT1JfSx0cj1BPT57aWYoIUEpcmV0dXJuIG51bGw7aWYoJChBKSlyZXR1cm4gQTtsZXQgZT1BLmxlbmd0aDtpZighYXQoZSkpcmV0dXJuIG51bGw7bGV0IEk9bmV3IEFycmF5KGUpO2Zvcig7ZS0tID4wOylJW2VdPUFbZV07cmV0dXJuIEl9LElyPShBPT5lPT5BJiZlIGluc3RhbmNlb2YgQSkodHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZDZShVaW50OEFycmF5KSkscnI9KEEsZSk9PntsZXQgdD0oQSYmQVtKQV0pLmNhbGwoQSkscjtmb3IoOyhyPXQubmV4dCgpKSYmIXIuZG9uZTspe2xldCBpPXIudmFsdWU7ZS5jYWxsKEEsaVswXSxpWzFdKX19LGdyPShBLGUpPT57bGV0IEksdD1bXTtmb3IoOyhJPUEuZXhlYyhlKSkhPT1udWxsOyl0LnB1c2goSSk7cmV0dXJuIHR9LGlyPUooIkhUTUxGb3JtRWxlbWVudCIpLG9yPUE9PkEudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bLV9cc10oW2EtelxkXSkoXHcqKS9nLGZ1bmN0aW9uKEksdCxyKXtyZXR1cm4gdC50b1VwcGVyQ2FzZSgpK3J9KSxndD0oKHtoYXNPd25Qcm9wZXJ0eTpBfSk9PihlLEkpPT5BLmNhbGwoZSxJKSkoT2JqZWN0LnByb3RvdHlwZSksYXI9SigiUmVnRXhwIiksQ3Q9KEEsZSk9PntsZXQgST1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhBKSx0PXt9O0JBKEksKHIsaSk9PntsZXQgZzsoZz1lKHIsaSxBKSkhPT0hMSYmKHRbaV09Z3x8cil9KSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhBLHQpfSxucj1BPT57Q3QoQSwoZSxJKT0+e2lmKGsoQSkmJlsiYXJndW1lbnRzIiwiY2FsbGVyIiwiY2FsbGVlIl0uaW5kZXhPZihJKSE9PS0xKXJldHVybiExO2xldCB0PUFbSV07aWYoayh0KSl7aWYoZS5lbnVtZXJhYmxlPSExLCJ3cml0YWJsZSJpbiBlKXtlLndyaXRhYmxlPSExO3JldHVybn1lLnNldHx8KGUuc2V0PSgpPT57dGhyb3cgRXJyb3IoIkNhbiBub3QgcmV3cml0ZSByZWFkLW9ubHkgbWV0aG9kICciK0krIiciKX0pfX0pfSxzcj0oQSxlKT0+e2xldCBJPXt9LHQ9cj0+e3IuZm9yRWFjaChpPT57SVtpXT0hMH0pfTtyZXR1cm4gJChBKT90KEEpOnQoU3RyaW5nKEEpLnNwbGl0KGUpKSxJfSxDcj0oKT0+e30sQnI9KEEsZSk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOmU7ZnVuY3Rpb24gUXIoQSl7cmV0dXJuISEoQSYmayhBLmFwcGVuZCkmJkFbaXRdPT09IkZvcm1EYXRhIiYmQVtKQV0pfXZhciBFcj1BPT57bGV0IGU9bmV3IEFycmF5KDEwKSxJPSh0LHIpPT57aWYoQ0EodCkpe2lmKGUuaW5kZXhPZih0KT49MClyZXR1cm47aWYoc0EodCkpcmV0dXJuIHQ7aWYoISgidG9KU09OImluIHQpKXtlW3JdPXQ7bGV0IGk9JCh0KT9bXTp7fTtyZXR1cm4gQkEodCwoZyxzKT0+e2xldCBFPUkoZyxyKzEpOyFfKEUpJiYoaVtzXT1FKX0pLGVbcl09dm9pZCAwLGl9fXJldHVybiB0fTtyZXR1cm4gSShBLDApfSxjcj1KKCJBc3luY0Z1bmN0aW9uIiksbHI9QT0+QSYmKENBKEEpfHxrKEEpKSYmayhBLnRoZW4pJiZrKEEuY2F0Y2gpLEJ0PSgoQSxlKT0+QT9zZXRJbW1lZGlhdGU6ZT8oKEksdCk9PihWLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCh7c291cmNlOnIsZGF0YTppfSk9PntyPT09ViYmaT09PUkmJnQubGVuZ3RoJiZ0LnNoaWZ0KCkoKX0sITEpLHI9Pnt0LnB1c2gociksVi5wb3N0TWVzc2FnZShJLCIqIil9KSkoYGF4aW9zQCR7TWF0aC5yYW5kb20oKX1gLFtdKTpJPT5zZXRUaW1lb3V0KEkpKSh0eXBlb2Ygc2V0SW1tZWRpYXRlPT0iZnVuY3Rpb24iLGsoVi5wb3N0TWVzc2FnZSkpLGZyPXR5cGVvZiBxdWV1ZU1pY3JvdGFzazwidSI/cXVldWVNaWNyb3Rhc2suYmluZChWKTp0eXBlb2YgcHJvY2VzczwidSImJnByb2Nlc3MubmV4dFRpY2t8fEJ0LHVyPUE9PkEhPW51bGwmJmsoQVtKQV0pLGE9e2lzQXJyYXk6JCxpc0FycmF5QnVmZmVyOm90LGlzQnVmZmVyOnNBLGlzRm9ybURhdGE6UEksaXNBcnJheUJ1ZmZlclZpZXc6SkksaXNTdHJpbmc6TUksaXNOdW1iZXI6YXQsaXNCb29sZWFuOllJLGlzT2JqZWN0OkNBLGlzUGxhaW5PYmplY3Q6TEEsaXNFbXB0eU9iamVjdDpISSxpc1JlYWRhYmxlU3RyZWFtOmpJLGlzUmVxdWVzdDp2SSxpc1Jlc3BvbnNlOlpJLGlzSGVhZGVyczpWSSxpc1VuZGVmaW5lZDpfLGlzRGF0ZTpxSSxpc0ZpbGU6VEksaXNCbG9iOnhJLGlzUmVnRXhwOmFyLGlzRnVuY3Rpb246ayxpc1N0cmVhbTpLSSxpc1VSTFNlYXJjaFBhcmFtczpXSSxpc1R5cGVkQXJyYXk6SXIsaXNGaWxlTGlzdDpPSSxmb3JFYWNoOkJBLG1lcmdlOnNlLGV4dGVuZDp6SSx0cmltOlhJLHN0cmlwQk9NOl9JLGluaGVyaXRzOiRJLHRvRmxhdE9iamVjdDpBcixraW5kT2Y6TUEsa2luZE9mVGVzdDpKLGVuZHNXaXRoOmVyLHRvQXJyYXk6dHIsZm9yRWFjaEVudHJ5OnJyLG1hdGNoQWxsOmdyLGlzSFRNTEZvcm06aXIsaGFzT3duUHJvcGVydHk6Z3QsaGFzT3duUHJvcDpndCxyZWR1Y2VEZXNjcmlwdG9yczpDdCxmcmVlemVNZXRob2RzOm5yLHRvT2JqZWN0U2V0OnNyLHRvQ2FtZWxDYXNlOm9yLG5vb3A6Q3IsdG9GaW5pdGVOdW1iZXI6QnIsZmluZEtleTpudCxnbG9iYWw6Vixpc0NvbnRleHREZWZpbmVkOnN0LGlzU3BlY0NvbXBsaWFudEZvcm06UXIsdG9KU09OT2JqZWN0OkVyLGlzQXN5bmNGbjpjcixpc1RoZW5hYmxlOmxyLHNldEltbWVkaWF0ZTpCdCxhc2FwOmZyLGlzSXRlcmFibGU6dXJ9O2Z1bmN0aW9uIEFBKEEsZSxJLHQscil7RXJyb3IuY2FsbCh0aGlzKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLHRoaXMuY29uc3RydWN0b3IpOnRoaXMuc3RhY2s9bmV3IEVycm9yKCkuc3RhY2ssdGhpcy5tZXNzYWdlPUEsdGhpcy5uYW1lPSJBeGlvc0Vycm9yIixlJiYodGhpcy5jb2RlPWUpLEkmJih0aGlzLmNvbmZpZz1JKSx0JiYodGhpcy5yZXF1ZXN0PXQpLHImJih0aGlzLnJlc3BvbnNlPXIsdGhpcy5zdGF0dXM9ci5zdGF0dXM/ci5zdGF0dXM6bnVsbCl9YS5pbmhlcml0cyhBQSxFcnJvcix7dG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJue21lc3NhZ2U6dGhpcy5tZXNzYWdlLG5hbWU6dGhpcy5uYW1lLGRlc2NyaXB0aW9uOnRoaXMuZGVzY3JpcHRpb24sbnVtYmVyOnRoaXMubnVtYmVyLGZpbGVOYW1lOnRoaXMuZmlsZU5hbWUsbGluZU51bWJlcjp0aGlzLmxpbmVOdW1iZXIsY29sdW1uTnVtYmVyOnRoaXMuY29sdW1uTnVtYmVyLHN0YWNrOnRoaXMuc3RhY2ssY29uZmlnOmEudG9KU09OT2JqZWN0KHRoaXMuY29uZmlnKSxjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5zdGF0dXN9fX0pO3ZhciBRdD1BQS5wcm90b3R5cGUsRXQ9e307WyJFUlJfQkFEX09QVElPTl9WQUxVRSIsIkVSUl9CQURfT1BUSU9OIiwiRUNPTk5BQk9SVEVEIiwiRVRJTUVET1VUIiwiRVJSX05FVFdPUksiLCJFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIiwiRVJSX0RFUFJFQ0FURUQiLCJFUlJfQkFEX1JFU1BPTlNFIiwiRVJSX0JBRF9SRVFVRVNUIiwiRVJSX0NBTkNFTEVEIiwiRVJSX05PVF9TVVBQT1JUIiwiRVJSX0lOVkFMSURfVVJMIl0uZm9yRWFjaChBPT57RXRbQV09e3ZhbHVlOkF9fSk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQUEsRXQpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRdCwiaXNBeGlvc0Vycm9yIix7dmFsdWU6ITB9KTtBQS5mcm9tPShBLGUsSSx0LHIsaSk9PntsZXQgZz1PYmplY3QuY3JlYXRlKFF0KTthLnRvRmxhdE9iamVjdChBLGcsZnVuY3Rpb24obyl7cmV0dXJuIG8hPT1FcnJvci5wcm90b3R5cGV9LEM9PkMhPT0iaXNBeGlvc0Vycm9yIik7bGV0IHM9QSYmQS5tZXNzYWdlP0EubWVzc2FnZToiRXJyb3IiLEU9ZT09bnVsbCYmQT9BLmNvZGU6ZTtyZXR1cm4gQUEuY2FsbChnLHMsRSxJLHQsciksQSYmZy5jYXVzZT09bnVsbCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGcsImNhdXNlIix7dmFsdWU6QSxjb25maWd1cmFibGU6ITB9KSxnLm5hbWU9QSYmQS5uYW1lfHwiRXJyb3IiLGkmJk9iamVjdC5hc3NpZ24oZyxpKSxnfTt2YXIgdT1BQTt2YXIgSEE9bnVsbDtmdW5jdGlvbiBCZShBKXtyZXR1cm4gYS5pc1BsYWluT2JqZWN0KEEpfHxhLmlzQXJyYXkoQSl9ZnVuY3Rpb24gbHQoQSl7cmV0dXJuIGEuZW5kc1dpdGgoQSwiW10iKT9BLnNsaWNlKDAsLTIpOkF9ZnVuY3Rpb24gY3QoQSxlLEkpe3JldHVybiBBP0EuY29uY2F0KGUpLm1hcChmdW5jdGlvbihyLGkpe3JldHVybiByPWx0KHIpLCFJJiZpPyJbIityKyJdIjpyfSkuam9pbihJPyIuIjoiIik6ZX1mdW5jdGlvbiBkcihBKXtyZXR1cm4gYS5pc0FycmF5KEEpJiYhQS5zb21lKEJlKX12YXIgaHI9YS50b0ZsYXRPYmplY3QoYSx7fSxudWxsLGZ1bmN0aW9uKGUpe3JldHVybi9eaXNbQS1aXS8udGVzdChlKX0pO2Z1bmN0aW9uIHlyKEEsZSxJKXtpZighYS5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ0YXJnZXQgbXVzdCBiZSBhbiBvYmplY3QiKTtlPWV8fG5ldyhIQXx8Rm9ybURhdGEpLEk9YS50b0ZsYXRPYmplY3QoSSx7bWV0YVRva2VuczohMCxkb3RzOiExLGluZGV4ZXM6ITF9LCExLGZ1bmN0aW9uKGwsYyl7cmV0dXJuIWEuaXNVbmRlZmluZWQoY1tsXSl9KTtsZXQgdD1JLm1ldGFUb2tlbnMscj1JLnZpc2l0b3J8fG8saT1JLmRvdHMsZz1JLmluZGV4ZXMsRT0oSS5CbG9ifHx0eXBlb2YgQmxvYjwidSImJkJsb2IpJiZhLmlzU3BlY0NvbXBsaWFudEZvcm0oZSk7aWYoIWEuaXNGdW5jdGlvbihyKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ2aXNpdG9yIG11c3QgYmUgYSBmdW5jdGlvbiIpO2Z1bmN0aW9uIEMoUSl7aWYoUT09PW51bGwpcmV0dXJuIiI7aWYoYS5pc0RhdGUoUSkpcmV0dXJuIFEudG9JU09TdHJpbmcoKTtpZihhLmlzQm9vbGVhbihRKSlyZXR1cm4gUS50b1N0cmluZygpO2lmKCFFJiZhLmlzQmxvYihRKSl0aHJvdyBuZXcgdSgiQmxvYiBpcyBub3Qgc3VwcG9ydGVkLiBVc2UgYSBCdWZmZXIgaW5zdGVhZC4iKTtyZXR1cm4gYS5pc0FycmF5QnVmZmVyKFEpfHxhLmlzVHlwZWRBcnJheShRKT9FJiZ0eXBlb2YgQmxvYj09ImZ1bmN0aW9uIj9uZXcgQmxvYihbUV0pOkJ1ZmZlci5mcm9tKFEpOlF9ZnVuY3Rpb24gbyhRLGwsYyl7bGV0IHk9UTtpZihRJiYhYyYmdHlwZW9mIFE9PSJvYmplY3QiKXtpZihhLmVuZHNXaXRoKGwsInt9IikpbD10P2w6bC5zbGljZSgwLC0yKSxRPUpTT04uc3RyaW5naWZ5KFEpO2Vsc2UgaWYoYS5pc0FycmF5KFEpJiZkcihRKXx8KGEuaXNGaWxlTGlzdChRKXx8YS5lbmRzV2l0aChsLCJbXSIpKSYmKHk9YS50b0FycmF5KFEpKSlyZXR1cm4gbD1sdChsKSx5LmZvckVhY2goZnVuY3Rpb24ocCxOKXshKGEuaXNVbmRlZmluZWQocCl8fHA9PT1udWxsKSYmZS5hcHBlbmQoZz09PSEwP2N0KFtsXSxOLGkpOmc9PT1udWxsP2w6bCsiW10iLEMocCkpfSksITF9cmV0dXJuIEJlKFEpPyEwOihlLmFwcGVuZChjdChjLGwsaSksQyhRKSksITEpfWxldCBuPVtdLGY9T2JqZWN0LmFzc2lnbihocix7ZGVmYXVsdFZpc2l0b3I6byxjb252ZXJ0VmFsdWU6Qyxpc1Zpc2l0YWJsZTpCZX0pO2Z1bmN0aW9uIEIoUSxsKXtpZighYS5pc1VuZGVmaW5lZChRKSl7aWYobi5pbmRleE9mKFEpIT09LTEpdGhyb3cgRXJyb3IoIkNpcmN1bGFyIHJlZmVyZW5jZSBkZXRlY3RlZCBpbiAiK2wuam9pbigiLiIpKTtuLnB1c2goUSksYS5mb3JFYWNoKFEsZnVuY3Rpb24oeSxVKXsoIShhLmlzVW5kZWZpbmVkKHkpfHx5PT09bnVsbCkmJnIuY2FsbChlLHksYS5pc1N0cmluZyhVKT9VLnRyaW0oKTpVLGwsZikpPT09ITAmJkIoeSxsP2wuY29uY2F0KFUpOltVXSl9KSxuLnBvcCgpfX1pZighYS5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJkYXRhIG11c3QgYmUgYW4gb2JqZWN0Iik7cmV0dXJuIEIoQSksZX12YXIgUD15cjtmdW5jdGlvbiBmdChBKXtsZXQgZT17IiEiOiIlMjEiLCInIjoiJTI3IiwiKCI6IiUyOCIsIikiOiIlMjkiLCJ+IjoiJTdFIiwiJTIwIjoiKyIsIiUwMCI6IlwwIn07cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC9bIScoKX5dfCUyMHwlMDAvZyxmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0pfWZ1bmN0aW9uIHV0KEEsZSl7dGhpcy5fcGFpcnM9W10sQSYmUChBLHRoaXMsZSl9dmFyIGR0PXV0LnByb3RvdHlwZTtkdC5hcHBlbmQ9ZnVuY3Rpb24oZSxJKXt0aGlzLl9wYWlycy5wdXNoKFtlLEldKX07ZHQudG9TdHJpbmc9ZnVuY3Rpb24oZSl7bGV0IEk9ZT9mdW5jdGlvbih0KXtyZXR1cm4gZS5jYWxsKHRoaXMsdCxmdCl9OmZ0O3JldHVybiB0aGlzLl9wYWlycy5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIEkoclswXSkrIj0iK0koclsxXSl9LCIiKS5qb2luKCImIil9O3ZhciBxQT11dDtmdW5jdGlvbiBEcihBKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEEpLnJlcGxhY2UoLyUzQS9naSwiOiIpLnJlcGxhY2UoLyUyNC9nLCIkIikucmVwbGFjZSgvJTJDL2dpLCIsIikucmVwbGFjZSgvJTIwL2csIisiKX1mdW5jdGlvbiBRQShBLGUsSSl7aWYoIWUpcmV0dXJuIEE7bGV0IHQ9SSYmSS5lbmNvZGV8fERyO2EuaXNGdW5jdGlvbihJKSYmKEk9e3NlcmlhbGl6ZTpJfSk7bGV0IHI9SSYmSS5zZXJpYWxpemUsaTtpZihyP2k9cihlLEkpOmk9YS5pc1VSTFNlYXJjaFBhcmFtcyhlKT9lLnRvU3RyaW5nKCk6bmV3IHFBKGUsSSkudG9TdHJpbmcodCksaSl7bGV0IGc9QS5pbmRleE9mKCIjIik7ZyE9PS0xJiYoQT1BLnNsaWNlKDAsZykpLEErPShBLmluZGV4T2YoIj8iKT09PS0xPyI/IjoiJiIpK2l9cmV0dXJuIEF9dmFyIFFlPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5oYW5kbGVycz1bXX11c2UoZSxJLHQpe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDplLHJlamVjdGVkOkksc3luY2hyb25vdXM6dD90LnN5bmNocm9ub3VzOiExLHJ1bldoZW46dD90LnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9ZWplY3QoZSl7dGhpcy5oYW5kbGVyc1tlXSYmKHRoaXMuaGFuZGxlcnNbZV09bnVsbCl9Y2xlYXIoKXt0aGlzLmhhbmRsZXJzJiYodGhpcy5oYW5kbGVycz1bXSl9Zm9yRWFjaChlKXthLmZvckVhY2godGhpcy5oYW5kbGVycyxmdW5jdGlvbih0KXt0IT09bnVsbCYmZSh0KX0pfX0sRWU9UWU7dmFyIFRBPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfTt2YXIgaHQ9dHlwZW9mIFVSTFNlYXJjaFBhcmFtczwidSI/VVJMU2VhcmNoUGFyYW1zOnFBO3ZhciB5dD10eXBlb2YgRm9ybURhdGE8InUiP0Zvcm1EYXRhOm51bGw7dmFyIER0PXR5cGVvZiBCbG9iPCJ1Ij9CbG9iOm51bGw7dmFyIHB0PXtpc0Jyb3dzZXI6ITAsY2xhc3Nlczp7VVJMU2VhcmNoUGFyYW1zOmh0LEZvcm1EYXRhOnl0LEJsb2I6RHR9LHByb3RvY29sczpbImh0dHAiLCJodHRwcyIsImZpbGUiLCJibG9iIiwidXJsIiwiZGF0YSJdfTt2YXIgZmU9e307Y0koZmUse2hhc0Jyb3dzZXJFbnY6KCk9PmxlLGhhc1N0YW5kYXJkQnJvd3NlckVudjooKT0+cHIsaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52OigpPT53cixuYXZpZ2F0b3I6KCk9PmNlLG9yaWdpbjooKT0+bXJ9KTt2YXIgbGU9dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiBkb2N1bWVudDwidSIsY2U9dHlwZW9mIG5hdmlnYXRvcj09Im9iamVjdCImJm5hdmlnYXRvcnx8dm9pZCAwLHByPWxlJiYoIWNlfHxbIlJlYWN0TmF0aXZlIiwiTmF0aXZlU2NyaXB0IiwiTlMiXS5pbmRleE9mKGNlLnByb2R1Y3QpPDApLHdyPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZTwidSImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSYmdHlwZW9mIHNlbGYuaW1wb3J0U2NyaXB0cz09ImZ1bmN0aW9uIixtcj1sZSYmd2luZG93LmxvY2F0aW9uLmhyZWZ8fCJodHRwOi8vbG9jYWxob3N0Ijt2YXIgRD17Li4uZmUsLi4ucHR9O2Z1bmN0aW9uIHVlKEEsZSl7cmV0dXJuIFAoQSxuZXcgRC5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcyx7dmlzaXRvcjpmdW5jdGlvbihJLHQscixpKXtyZXR1cm4gRC5pc05vZGUmJmEuaXNCdWZmZXIoSSk/KHRoaXMuYXBwZW5kKHQsSS50b1N0cmluZygiYmFzZTY0IikpLCExKTppLmRlZmF1bHRWaXNpdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sLi4uZX0pfWZ1bmN0aW9uIFNyKEEpe3JldHVybiBhLm1hdGNoQWxsKC9cdyt8XFsoXHcqKV0vZyxBKS5tYXAoZT0+ZVswXT09PSJbXSI/IiI6ZVsxXXx8ZVswXSl9ZnVuY3Rpb24gRnIoQSl7bGV0IGU9e30sST1PYmplY3Qua2V5cyhBKSx0LHI9SS5sZW5ndGgsaTtmb3IodD0wO3Q8cjt0KyspaT1JW3RdLGVbaV09QVtpXTtyZXR1cm4gZX1mdW5jdGlvbiBScihBKXtmdW5jdGlvbiBlKEksdCxyLGkpe2xldCBnPUlbaSsrXTtpZihnPT09Il9fcHJvdG9fXyIpcmV0dXJuITA7bGV0IHM9TnVtYmVyLmlzRmluaXRlKCtnKSxFPWk+PUkubGVuZ3RoO3JldHVybiBnPSFnJiZhLmlzQXJyYXkocik/ci5sZW5ndGg6ZyxFPyhhLmhhc093blByb3AocixnKT9yW2ddPVtyW2ddLHRdOnJbZ109dCwhcyk6KCghcltnXXx8IWEuaXNPYmplY3QocltnXSkpJiYocltnXT1bXSksZShJLHQscltnXSxpKSYmYS5pc0FycmF5KHJbZ10pJiYocltnXT1GcihyW2ddKSksIXMpfWlmKGEuaXNGb3JtRGF0YShBKSYmYS5pc0Z1bmN0aW9uKEEuZW50cmllcykpe2xldCBJPXt9O3JldHVybiBhLmZvckVhY2hFbnRyeShBLCh0LHIpPT57ZShTcih0KSxyLEksMCl9KSxJfXJldHVybiBudWxsfXZhciB4QT1ScjtmdW5jdGlvbiBVcihBLGUsSSl7aWYoYS5pc1N0cmluZyhBKSl0cnl7cmV0dXJuKGV8fEpTT04ucGFyc2UpKEEpLGEudHJpbShBKX1jYXRjaCh0KXtpZih0Lm5hbWUhPT0iU3ludGF4RXJyb3IiKXRocm93IHR9cmV0dXJuKEl8fEpTT04uc3RyaW5naWZ5KShBKX12YXIgZGU9e3RyYW5zaXRpb25hbDpUQSxhZGFwdGVyOlsieGhyIiwiaHR0cCIsImZldGNoIl0sdHJhbnNmb3JtUmVxdWVzdDpbZnVuY3Rpb24oZSxJKXtsZXQgdD1JLmdldENvbnRlbnRUeXBlKCl8fCIiLHI9dC5pbmRleE9mKCJhcHBsaWNhdGlvbi9qc29uIik+LTEsaT1hLmlzT2JqZWN0KGUpO2lmKGkmJmEuaXNIVE1MRm9ybShlKSYmKGU9bmV3IEZvcm1EYXRhKGUpKSxhLmlzRm9ybURhdGEoZSkpcmV0dXJuIHI/SlNPTi5zdHJpbmdpZnkoeEEoZSkpOmU7aWYoYS5pc0FycmF5QnVmZmVyKGUpfHxhLmlzQnVmZmVyKGUpfHxhLmlzU3RyZWFtKGUpfHxhLmlzRmlsZShlKXx8YS5pc0Jsb2IoZSl8fGEuaXNSZWFkYWJsZVN0cmVhbShlKSlyZXR1cm4gZTtpZihhLmlzQXJyYXlCdWZmZXJWaWV3KGUpKXJldHVybiBlLmJ1ZmZlcjtpZihhLmlzVVJMU2VhcmNoUGFyYW1zKGUpKXJldHVybiBJLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIsITEpLGUudG9TdHJpbmcoKTtsZXQgcztpZihpKXtpZih0LmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpPi0xKXJldHVybiB1ZShlLHRoaXMuZm9ybVNlcmlhbGl6ZXIpLnRvU3RyaW5nKCk7aWYoKHM9YS5pc0ZpbGVMaXN0KGUpKXx8dC5pbmRleE9mKCJtdWx0aXBhcnQvZm9ybS1kYXRhIik+LTEpe2xldCBFPXRoaXMuZW52JiZ0aGlzLmVudi5Gb3JtRGF0YTtyZXR1cm4gUChzP3siZmlsZXNbXSI6ZX06ZSxFJiZuZXcgRSx0aGlzLmZvcm1TZXJpYWxpemVyKX19cmV0dXJuIGl8fHI/KEkuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL2pzb24iLCExKSxVcihlKSk6ZX1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbihlKXtsZXQgST10aGlzLnRyYW5zaXRpb25hbHx8ZGUudHJhbnNpdGlvbmFsLHQ9SSYmSS5mb3JjZWRKU09OUGFyc2luZyxyPXRoaXMucmVzcG9uc2VUeXBlPT09Impzb24iO2lmKGEuaXNSZXNwb25zZShlKXx8YS5pc1JlYWRhYmxlU3RyZWFtKGUpKXJldHVybiBlO2lmKGUmJmEuaXNTdHJpbmcoZSkmJih0JiYhdGhpcy5yZXNwb25zZVR5cGV8fHIpKXtsZXQgZz0hKEkmJkkuc2lsZW50SlNPTlBhcnNpbmcpJiZyO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShlLHRoaXMucGFyc2VSZXZpdmVyKX1jYXRjaChzKXtpZihnKXRocm93IHMubmFtZT09PSJTeW50YXhFcnJvciI/dS5mcm9tKHMsdS5FUlJfQkFEX1JFU1BPTlNFLHRoaXMsbnVsbCx0aGlzLnJlc3BvbnNlKTpzfX1yZXR1cm4gZX1dLHRpbWVvdXQ6MCx4c3JmQ29va2llTmFtZToiWFNSRi1UT0tFTiIseHNyZkhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiIsbWF4Q29udGVudExlbmd0aDotMSxtYXhCb2R5TGVuZ3RoOi0xLGVudjp7Rm9ybURhdGE6RC5jbGFzc2VzLkZvcm1EYXRhLEJsb2I6RC5jbGFzc2VzLkJsb2J9LHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKGUpe3JldHVybiBlPj0yMDAmJmU8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiwiQ29udGVudC1UeXBlIjp2b2lkIDB9fX07YS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCJdLEE9PntkZS5oZWFkZXJzW0FdPXt9fSk7dmFyIGVBPWRlO3ZhciBOcj1hLnRvT2JqZWN0U2V0KFsiYWdlIiwiYXV0aG9yaXphdGlvbiIsImNvbnRlbnQtbGVuZ3RoIiwiY29udGVudC10eXBlIiwiZXRhZyIsImV4cGlyZXMiLCJmcm9tIiwiaG9zdCIsImlmLW1vZGlmaWVkLXNpbmNlIiwiaWYtdW5tb2RpZmllZC1zaW5jZSIsImxhc3QtbW9kaWZpZWQiLCJsb2NhdGlvbiIsIm1heC1mb3J3YXJkcyIsInByb3h5LWF1dGhvcml6YXRpb24iLCJyZWZlcmVyIiwicmV0cnktYWZ0ZXIiLCJ1c2VyLWFnZW50Il0pLHd0PUE9PntsZXQgZT17fSxJLHQscjtyZXR1cm4gQSYmQS5zcGxpdChgCmApLmZvckVhY2goZnVuY3Rpb24oZyl7cj1nLmluZGV4T2YoIjoiKSxJPWcuc3Vic3RyaW5nKDAscikudHJpbSgpLnRvTG93ZXJDYXNlKCksdD1nLnN1YnN0cmluZyhyKzEpLnRyaW0oKSwhKCFJfHxlW0ldJiZOcltJXSkmJihJPT09InNldC1jb29raWUiP2VbSV0/ZVtJXS5wdXNoKHQpOmVbSV09W3RdOmVbSV09ZVtJXT9lW0ldKyIsICIrdDp0KX0pLGV9O3ZhciBtdD1TeW1ib2woImludGVybmFscyIpO2Z1bmN0aW9uIEVBKEEpe3JldHVybiBBJiZTdHJpbmcoQSkudHJpbSgpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gT0EoQSl7cmV0dXJuIEE9PT0hMXx8QT09bnVsbD9BOmEuaXNBcnJheShBKT9BLm1hcChPQSk6U3RyaW5nKEEpfWZ1bmN0aW9uIGtyKEEpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCksST0vKFteXHMsOz1dKylccyooPzo9XHMqKFteLDtdKykpPy9nLHQ7Zm9yKDt0PUkuZXhlYyhBKTspZVt0WzFdXT10WzJdO3JldHVybiBlfXZhciBHcj1BPT4vXlstX2EtekEtWjAtOV5gfH4sISMkJSYnKisuXSskLy50ZXN0KEEudHJpbSgpKTtmdW5jdGlvbiBoZShBLGUsSSx0LHIpe2lmKGEuaXNGdW5jdGlvbih0KSlyZXR1cm4gdC5jYWxsKHRoaXMsZSxJKTtpZihyJiYoZT1JKSwhIWEuaXNTdHJpbmcoZSkpe2lmKGEuaXNTdHJpbmcodCkpcmV0dXJuIGUuaW5kZXhPZih0KSE9PS0xO2lmKGEuaXNSZWdFeHAodCkpcmV0dXJuIHQudGVzdChlKX19ZnVuY3Rpb24gYnIoQSl7cmV0dXJuIEEudHJpbSgpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvKFthLXpcZF0pKFx3KikvZywoZSxJLHQpPT5JLnRvVXBwZXJDYXNlKCkrdCl9ZnVuY3Rpb24gTHIoQSxlKXtsZXQgST1hLnRvQ2FtZWxDYXNlKCIgIitlKTtbImdldCIsInNldCIsImhhcyJdLmZvckVhY2godD0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLHQrSSx7dmFsdWU6ZnVuY3Rpb24ocixpLGcpe3JldHVybiB0aGlzW3RdLmNhbGwodGhpcyxlLHIsaSxnKX0sY29uZmlndXJhYmxlOiEwfSl9KX12YXIgdEE9Y2xhc3N7Y29uc3RydWN0b3IoZSl7ZSYmdGhpcy5zZXQoZSl9c2V0KGUsSSx0KXtsZXQgcj10aGlzO2Z1bmN0aW9uIGkocyxFLEMpe2xldCBvPUVBKEUpO2lmKCFvKXRocm93IG5ldyBFcnJvcigiaGVhZGVyIG5hbWUgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmciKTtsZXQgbj1hLmZpbmRLZXkocixvKTsoIW58fHJbbl09PT12b2lkIDB8fEM9PT0hMHx8Qz09PXZvaWQgMCYmcltuXSE9PSExKSYmKHJbbnx8RV09T0EocykpfWxldCBnPShzLEUpPT5hLmZvckVhY2gocywoQyxvKT0+aShDLG8sRSkpO2lmKGEuaXNQbGFpbk9iamVjdChlKXx8ZSBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3IpZyhlLEkpO2Vsc2UgaWYoYS5pc1N0cmluZyhlKSYmKGU9ZS50cmltKCkpJiYhR3IoZSkpZyh3dChlKSxJKTtlbHNlIGlmKGEuaXNPYmplY3QoZSkmJmEuaXNJdGVyYWJsZShlKSl7bGV0IHM9e30sRSxDO2ZvcihsZXQgbyBvZiBlKXtpZighYS5pc0FycmF5KG8pKXRocm93IFR5cGVFcnJvcigiT2JqZWN0IGl0ZXJhdG9yIG11c3QgcmV0dXJuIGEga2V5LXZhbHVlIHBhaXIiKTtzW0M9b1swXV09KEU9c1tDXSk/YS5pc0FycmF5KEUpP1suLi5FLG9bMV1dOltFLG9bMV1dOm9bMV19ZyhzLEkpfWVsc2UgZSE9bnVsbCYmaShJLGUsdCk7cmV0dXJuIHRoaXN9Z2V0KGUsSSl7aWYoZT1FQShlKSxlKXtsZXQgdD1hLmZpbmRLZXkodGhpcyxlKTtpZih0KXtsZXQgcj10aGlzW3RdO2lmKCFJKXJldHVybiByO2lmKEk9PT0hMClyZXR1cm4ga3Iocik7aWYoYS5pc0Z1bmN0aW9uKEkpKXJldHVybiBJLmNhbGwodGhpcyxyLHQpO2lmKGEuaXNSZWdFeHAoSSkpcmV0dXJuIEkuZXhlYyhyKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJwYXJzZXIgbXVzdCBiZSBib29sZWFufHJlZ2V4cHxmdW5jdGlvbiIpfX19aGFzKGUsSSl7aWYoZT1FQShlKSxlKXtsZXQgdD1hLmZpbmRLZXkodGhpcyxlKTtyZXR1cm4hISh0JiZ0aGlzW3RdIT09dm9pZCAwJiYoIUl8fGhlKHRoaXMsdGhpc1t0XSx0LEkpKSl9cmV0dXJuITF9ZGVsZXRlKGUsSSl7bGV0IHQ9dGhpcyxyPSExO2Z1bmN0aW9uIGkoZyl7aWYoZz1FQShnKSxnKXtsZXQgcz1hLmZpbmRLZXkodCxnKTtzJiYoIUl8fGhlKHQsdFtzXSxzLEkpKSYmKGRlbGV0ZSB0W3NdLHI9ITApfX1yZXR1cm4gYS5pc0FycmF5KGUpP2UuZm9yRWFjaChpKTppKGUpLHJ9Y2xlYXIoZSl7bGV0IEk9T2JqZWN0LmtleXModGhpcyksdD1JLmxlbmd0aCxyPSExO2Zvcig7dC0tOyl7bGV0IGk9SVt0XTsoIWV8fGhlKHRoaXMsdGhpc1tpXSxpLGUsITApKSYmKGRlbGV0ZSB0aGlzW2ldLHI9ITApfXJldHVybiByfW5vcm1hbGl6ZShlKXtsZXQgST10aGlzLHQ9e307cmV0dXJuIGEuZm9yRWFjaCh0aGlzLChyLGkpPT57bGV0IGc9YS5maW5kS2V5KHQsaSk7aWYoZyl7SVtnXT1PQShyKSxkZWxldGUgSVtpXTtyZXR1cm59bGV0IHM9ZT9icihpKTpTdHJpbmcoaSkudHJpbSgpO3MhPT1pJiZkZWxldGUgSVtpXSxJW3NdPU9BKHIpLHRbc109ITB9KSx0aGlzfWNvbmNhdCguLi5lKXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5jb25jYXQodGhpcywuLi5lKX10b0pTT04oZSl7bGV0IEk9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gYS5mb3JFYWNoKHRoaXMsKHQscik9Pnt0IT1udWxsJiZ0IT09ITEmJihJW3JdPWUmJmEuaXNBcnJheSh0KT90LmpvaW4oIiwgIik6dCl9KSxJfVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpW1N5bWJvbC5pdGVyYXRvcl0oKX10b1N0cmluZygpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKS5tYXAoKFtlLEldKT0+ZSsiOiAiK0kpLmpvaW4oYApgKX1nZXRTZXRDb29raWUoKXtyZXR1cm4gdGhpcy5nZXQoInNldC1jb29raWUiKXx8W119Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm4iQXhpb3NIZWFkZXJzIn1zdGF0aWMgZnJvbShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHRoaXM/ZTpuZXcgdGhpcyhlKX1zdGF0aWMgY29uY2F0KGUsLi4uSSl7bGV0IHQ9bmV3IHRoaXMoZSk7cmV0dXJuIEkuZm9yRWFjaChyPT50LnNldChyKSksdH1zdGF0aWMgYWNjZXNzb3IoZSl7bGV0IHQ9KHRoaXNbbXRdPXRoaXNbbXRdPXthY2Nlc3NvcnM6e319KS5hY2Nlc3NvcnMscj10aGlzLnByb3RvdHlwZTtmdW5jdGlvbiBpKGcpe2xldCBzPUVBKGcpO3Rbc118fChMcihyLGcpLHRbc109ITApfXJldHVybiBhLmlzQXJyYXkoZSk/ZS5mb3JFYWNoKGkpOmkoZSksdGhpc319O3RBLmFjY2Vzc29yKFsiQ29udGVudC1UeXBlIiwiQ29udGVudC1MZW5ndGgiLCJBY2NlcHQiLCJBY2NlcHQtRW5jb2RpbmciLCJVc2VyLUFnZW50IiwiQXV0aG9yaXphdGlvbiJdKTthLnJlZHVjZURlc2NyaXB0b3JzKHRBLnByb3RvdHlwZSwoe3ZhbHVlOkF9LGUpPT57bGV0IEk9ZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSk7cmV0dXJue2dldDooKT0+QSxzZXQodCl7dGhpc1tJXT10fX19KTthLmZyZWV6ZU1ldGhvZHModEEpO3ZhciBTPXRBO2Z1bmN0aW9uIGNBKEEsZSl7bGV0IEk9dGhpc3x8ZUEsdD1lfHxJLHI9Uy5mcm9tKHQuaGVhZGVycyksaT10LmRhdGE7cmV0dXJuIGEuZm9yRWFjaChBLGZ1bmN0aW9uKHMpe2k9cy5jYWxsKEksaSxyLm5vcm1hbGl6ZSgpLGU/ZS5zdGF0dXM6dm9pZCAwKX0pLHIubm9ybWFsaXplKCksaX1mdW5jdGlvbiBsQShBKXtyZXR1cm4hIShBJiZBLl9fQ0FOQ0VMX18pfWZ1bmN0aW9uIFN0KEEsZSxJKXt1LmNhbGwodGhpcyxBPz8iY2FuY2VsZWQiLHUuRVJSX0NBTkNFTEVELGUsSSksdGhpcy5uYW1lPSJDYW5jZWxlZEVycm9yIn1hLmluaGVyaXRzKFN0LHUse19fQ0FOQ0VMX186ITB9KTt2YXIgcT1TdDtmdW5jdGlvbiBmQShBLGUsSSl7bGV0IHQ9SS5jb25maWcudmFsaWRhdGVTdGF0dXM7IUkuc3RhdHVzfHwhdHx8dChJLnN0YXR1cyk/QShJKTplKG5ldyB1KCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrSS5zdGF0dXMsW3UuRVJSX0JBRF9SRVFVRVNULHUuRVJSX0JBRF9SRVNQT05TRV1bTWF0aC5mbG9vcihJLnN0YXR1cy8xMDApLTRdLEkuY29uZmlnLEkucmVxdWVzdCxJKSl9ZnVuY3Rpb24geWUoQSl7bGV0IGU9L14oWy0rXHddezEsMjV9KSg6P1wvXC98OikvLmV4ZWMoQSk7cmV0dXJuIGUmJmVbMV18fCIifWZ1bmN0aW9uIEpyKEEsZSl7QT1BfHwxMDtsZXQgST1uZXcgQXJyYXkoQSksdD1uZXcgQXJyYXkoQSkscj0wLGk9MCxnO3JldHVybiBlPWUhPT12b2lkIDA/ZToxZTMsZnVuY3Rpb24oRSl7bGV0IEM9RGF0ZS5ub3coKSxvPXRbaV07Z3x8KGc9QyksSVtyXT1FLHRbcl09QztsZXQgbj1pLGY9MDtmb3IoO24hPT1yOylmKz1JW24rK10sbj1uJUE7aWYocj0ocisxKSVBLHI9PT1pJiYoaT0oaSsxKSVBKSxDLWc8ZSlyZXR1cm47bGV0IEI9byYmQy1vO3JldHVybiBCP01hdGgucm91bmQoZioxZTMvQik6dm9pZCAwfX12YXIgRnQ9SnI7ZnVuY3Rpb24gTXIoQSxlKXtsZXQgST0wLHQ9MWUzL2UscixpLGc9KEMsbz1EYXRlLm5vdygpKT0+e0k9byxyPW51bGwsaSYmKGNsZWFyVGltZW91dChpKSxpPW51bGwpLEEoLi4uQyl9O3JldHVyblsoLi4uQyk9PntsZXQgbz1EYXRlLm5vdygpLG49by1JO24+PXQ/ZyhDLG8pOihyPUMsaXx8KGk9c2V0VGltZW91dCgoKT0+e2k9bnVsbCxnKHIpfSx0LW4pKSl9LCgpPT5yJiZnKHIpXX12YXIgUnQ9TXI7dmFyIElBPShBLGUsST0zKT0+e2xldCB0PTAscj1GdCg1MCwyNTApO3JldHVybiBSdChpPT57bGV0IGc9aS5sb2FkZWQscz1pLmxlbmd0aENvbXB1dGFibGU/aS50b3RhbDp2b2lkIDAsRT1nLXQsQz1yKEUpLG89Zzw9czt0PWc7bGV0IG49e2xvYWRlZDpnLHRvdGFsOnMscHJvZ3Jlc3M6cz9nL3M6dm9pZCAwLGJ5dGVzOkUscmF0ZTpDfHx2b2lkIDAsZXN0aW1hdGVkOkMmJnMmJm8/KHMtZykvQzp2b2lkIDAsZXZlbnQ6aSxsZW5ndGhDb21wdXRhYmxlOnMhPW51bGwsW2U/ImRvd25sb2FkIjoidXBsb2FkIl06ITB9O0Eobil9LEkpfSxEZT0oQSxlKT0+e2xldCBJPUEhPW51bGw7cmV0dXJuW3Q9PmVbMF0oe2xlbmd0aENvbXB1dGFibGU6SSx0b3RhbDpBLGxvYWRlZDp0fSksZVsxXV19LHBlPUE9PiguLi5lKT0+YS5hc2FwKCgpPT5BKC4uLmUpKTt2YXIgVXQ9RC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/KChBLGUpPT5JPT4oST1uZXcgVVJMKEksRC5vcmlnaW4pLEEucHJvdG9jb2w9PT1JLnByb3RvY29sJiZBLmhvc3Q9PT1JLmhvc3QmJihlfHxBLnBvcnQ9PT1JLnBvcnQpKSkobmV3IFVSTChELm9yaWdpbiksRC5uYXZpZ2F0b3ImJi8obXNpZXx0cmlkZW50KS9pLnRlc3QoRC5uYXZpZ2F0b3IudXNlckFnZW50KSk6KCk9PiEwO3ZhciBOdD1ELmhhc1N0YW5kYXJkQnJvd3NlckVudj97d3JpdGUoQSxlLEksdCxyLGkpe2xldCBnPVtBKyI9IitlbmNvZGVVUklDb21wb25lbnQoZSldO2EuaXNOdW1iZXIoSSkmJmcucHVzaCgiZXhwaXJlcz0iK25ldyBEYXRlKEkpLnRvR01UU3RyaW5nKCkpLGEuaXNTdHJpbmcodCkmJmcucHVzaCgicGF0aD0iK3QpLGEuaXNTdHJpbmcocikmJmcucHVzaCgiZG9tYWluPSIrciksaT09PSEwJiZnLnB1c2goInNlY3VyZSIpLGRvY3VtZW50LmNvb2tpZT1nLmpvaW4oIjsgIil9LHJlYWQoQSl7bGV0IGU9ZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIihefDtcXHMqKSgiK0ErIik9KFteO10qKSIpKTtyZXR1cm4gZT9kZWNvZGVVUklDb21wb25lbnQoZVszXSk6bnVsbH0scmVtb3ZlKEEpe3RoaXMud3JpdGUoQSwiIixEYXRlLm5vdygpLTg2NGU1KX19Ont3cml0ZSgpe30scmVhZCgpe3JldHVybiBudWxsfSxyZW1vdmUoKXt9fTtmdW5jdGlvbiB3ZShBKXtyZXR1cm4vXihbYS16XVthLXpcZCtcLS5dKjopP1wvXC8vaS50ZXN0KEEpfWZ1bmN0aW9uIG1lKEEsZSl7cmV0dXJuIGU/QS5yZXBsYWNlKC9cLz9cLyQvLCIiKSsiLyIrZS5yZXBsYWNlKC9eXC8rLywiIik6QX1mdW5jdGlvbiB1QShBLGUsSSl7bGV0IHQ9IXdlKGUpO3JldHVybiBBJiYodHx8ST09ITEpP21lKEEsZSk6ZX12YXIga3Q9QT0+QSBpbnN0YW5jZW9mIFM/ey4uLkF9OkE7ZnVuY3Rpb24gTShBLGUpe2U9ZXx8e307bGV0IEk9e307ZnVuY3Rpb24gdChDLG8sbixmKXtyZXR1cm4gYS5pc1BsYWluT2JqZWN0KEMpJiZhLmlzUGxhaW5PYmplY3Qobyk/YS5tZXJnZS5jYWxsKHtjYXNlbGVzczpmfSxDLG8pOmEuaXNQbGFpbk9iamVjdChvKT9hLm1lcmdlKHt9LG8pOmEuaXNBcnJheShvKT9vLnNsaWNlKCk6b31mdW5jdGlvbiByKEMsbyxuLGYpe2lmKGEuaXNVbmRlZmluZWQobykpe2lmKCFhLmlzVW5kZWZpbmVkKEMpKXJldHVybiB0KHZvaWQgMCxDLG4sZil9ZWxzZSByZXR1cm4gdChDLG8sbixmKX1mdW5jdGlvbiBpKEMsbyl7aWYoIWEuaXNVbmRlZmluZWQobykpcmV0dXJuIHQodm9pZCAwLG8pfWZ1bmN0aW9uIGcoQyxvKXtpZihhLmlzVW5kZWZpbmVkKG8pKXtpZighYS5pc1VuZGVmaW5lZChDKSlyZXR1cm4gdCh2b2lkIDAsQyl9ZWxzZSByZXR1cm4gdCh2b2lkIDAsbyl9ZnVuY3Rpb24gcyhDLG8sbil7aWYobiBpbiBlKXJldHVybiB0KEMsbyk7aWYobiBpbiBBKXJldHVybiB0KHZvaWQgMCxDKX1sZXQgRT17dXJsOmksbWV0aG9kOmksZGF0YTppLGJhc2VVUkw6Zyx0cmFuc2Zvcm1SZXF1ZXN0OmcsdHJhbnNmb3JtUmVzcG9uc2U6ZyxwYXJhbXNTZXJpYWxpemVyOmcsdGltZW91dDpnLHRpbWVvdXRNZXNzYWdlOmcsd2l0aENyZWRlbnRpYWxzOmcsd2l0aFhTUkZUb2tlbjpnLGFkYXB0ZXI6ZyxyZXNwb25zZVR5cGU6Zyx4c3JmQ29va2llTmFtZTpnLHhzcmZIZWFkZXJOYW1lOmcsb25VcGxvYWRQcm9ncmVzczpnLG9uRG93bmxvYWRQcm9ncmVzczpnLGRlY29tcHJlc3M6ZyxtYXhDb250ZW50TGVuZ3RoOmcsbWF4Qm9keUxlbmd0aDpnLGJlZm9yZVJlZGlyZWN0OmcsdHJhbnNwb3J0OmcsaHR0cEFnZW50OmcsaHR0cHNBZ2VudDpnLGNhbmNlbFRva2VuOmcsc29ja2V0UGF0aDpnLHJlc3BvbnNlRW5jb2Rpbmc6Zyx2YWxpZGF0ZVN0YXR1czpzLGhlYWRlcnM6KEMsbyxuKT0+cihrdChDKSxrdChvKSxuLCEwKX07cmV0dXJuIGEuZm9yRWFjaChPYmplY3Qua2V5cyh7Li4uQSwuLi5lfSksZnVuY3Rpb24obyl7bGV0IG49RVtvXXx8cixmPW4oQVtvXSxlW29dLG8pO2EuaXNVbmRlZmluZWQoZikmJm4hPT1zfHwoSVtvXT1mKX0pLEl9dmFyIEtBPUE9PntsZXQgZT1NKHt9LEEpLHtkYXRhOkksd2l0aFhTUkZUb2tlbjp0LHhzcmZIZWFkZXJOYW1lOnIseHNyZkNvb2tpZU5hbWU6aSxoZWFkZXJzOmcsYXV0aDpzfT1lO2lmKGUuaGVhZGVycz1nPVMuZnJvbShnKSxlLnVybD1RQSh1QShlLmJhc2VVUkwsZS51cmwsZS5hbGxvd0Fic29sdXRlVXJscyksQS5wYXJhbXMsQS5wYXJhbXNTZXJpYWxpemVyKSxzJiZnLnNldCgiQXV0aG9yaXphdGlvbiIsIkJhc2ljICIrYnRvYSgocy51c2VybmFtZXx8IiIpKyI6Iisocy5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQocy5wYXNzd29yZCkpOiIiKSkpLGEuaXNGb3JtRGF0YShJKSl7aWYoRC5oYXNTdGFuZGFyZEJyb3dzZXJFbnZ8fEQuaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52KWcuc2V0Q29udGVudFR5cGUodm9pZCAwKTtlbHNlIGlmKGEuaXNGdW5jdGlvbihJLmdldEhlYWRlcnMpKXtsZXQgRT1JLmdldEhlYWRlcnMoKSxDPVsiY29udGVudC10eXBlIiwiY29udGVudC1sZW5ndGgiXTtPYmplY3QuZW50cmllcyhFKS5mb3JFYWNoKChbbyxuXSk9PntDLmluY2x1ZGVzKG8udG9Mb3dlckNhc2UoKSkmJmcuc2V0KG8sbil9KX19aWYoRC5oYXNTdGFuZGFyZEJyb3dzZXJFbnYmJih0JiZhLmlzRnVuY3Rpb24odCkmJih0PXQoZSkpLHR8fHQhPT0hMSYmVXQoZS51cmwpKSl7bGV0IEU9ciYmaSYmTnQucmVhZChpKTtFJiZnLnNldChyLEUpfXJldHVybiBlfTt2YXIgWXI9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0PCJ1IixHdD1ZciYmZnVuY3Rpb24oQSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKEksdCl7bGV0IHI9S0EoQSksaT1yLmRhdGEsZz1TLmZyb20oci5oZWFkZXJzKS5ub3JtYWxpemUoKSx7cmVzcG9uc2VUeXBlOnMsb25VcGxvYWRQcm9ncmVzczpFLG9uRG93bmxvYWRQcm9ncmVzczpDfT1yLG8sbixmLEIsUTtmdW5jdGlvbiBsKCl7QiYmQigpLFEmJlEoKSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKG8pLHIuc2lnbmFsJiZyLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsbyl9bGV0IGM9bmV3IFhNTEh0dHBSZXF1ZXN0O2Mub3BlbihyLm1ldGhvZC50b1VwcGVyQ2FzZSgpLHIudXJsLCEwKSxjLnRpbWVvdXQ9ci50aW1lb3V0O2Z1bmN0aW9uIHkoKXtpZighYylyZXR1cm47bGV0IHA9Uy5mcm9tKCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiaW4gYyYmYy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSksTD17ZGF0YTohc3x8cz09PSJ0ZXh0Inx8cz09PSJqc29uIj9jLnJlc3BvbnNlVGV4dDpjLnJlc3BvbnNlLHN0YXR1czpjLnN0YXR1cyxzdGF0dXNUZXh0OmMuc3RhdHVzVGV4dCxoZWFkZXJzOnAsY29uZmlnOkEscmVxdWVzdDpjfTtmQShmdW5jdGlvbihiKXtJKGIpLGwoKX0sZnVuY3Rpb24oYil7dChiKSxsKCl9LEwpLGM9bnVsbH0ib25sb2FkZW5kImluIGM/Yy5vbmxvYWRlbmQ9eTpjLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpeyFjfHxjLnJlYWR5U3RhdGUhPT00fHxjLnN0YXR1cz09PTAmJiEoYy5yZXNwb25zZVVSTCYmYy5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpPT09MCl8fHNldFRpbWVvdXQoeSl9LGMub25hYm9ydD1mdW5jdGlvbigpe2MmJih0KG5ldyB1KCJSZXF1ZXN0IGFib3J0ZWQiLHUuRUNPTk5BQk9SVEVELEEsYykpLGM9bnVsbCl9LGMub25lcnJvcj1mdW5jdGlvbihOKXtsZXQgTD1OJiZOLm1lc3NhZ2U/Ti5tZXNzYWdlOiJOZXR3b3JrIEVycm9yIixqPW5ldyB1KEwsdS5FUlJfTkVUV09SSyxBLGMpO2ouZXZlbnQ9Tnx8bnVsbCx0KGopLGM9bnVsbH0sYy5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXtsZXQgTj1yLnRpbWVvdXQ/InRpbWVvdXQgb2YgIityLnRpbWVvdXQrIm1zIGV4Y2VlZGVkIjoidGltZW91dCBleGNlZWRlZCIsTD1yLnRyYW5zaXRpb25hbHx8VEE7ci50aW1lb3V0RXJyb3JNZXNzYWdlJiYoTj1yLnRpbWVvdXRFcnJvck1lc3NhZ2UpLHQobmV3IHUoTixMLmNsYXJpZnlUaW1lb3V0RXJyb3I/dS5FVElNRURPVVQ6dS5FQ09OTkFCT1JURUQsQSxjKSksYz1udWxsfSxpPT09dm9pZCAwJiZnLnNldENvbnRlbnRUeXBlKG51bGwpLCJzZXRSZXF1ZXN0SGVhZGVyImluIGMmJmEuZm9yRWFjaChnLnRvSlNPTigpLGZ1bmN0aW9uKE4sTCl7Yy5zZXRSZXF1ZXN0SGVhZGVyKEwsTil9KSxhLmlzVW5kZWZpbmVkKHIud2l0aENyZWRlbnRpYWxzKXx8KGMud2l0aENyZWRlbnRpYWxzPSEhci53aXRoQ3JlZGVudGlhbHMpLHMmJnMhPT0ianNvbiImJihjLnJlc3BvbnNlVHlwZT1yLnJlc3BvbnNlVHlwZSksQyYmKFtmLFFdPUlBKEMsITApLGMuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGYpKSxFJiZjLnVwbG9hZCYmKFtuLEJdPUlBKEUpLGMudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixuKSxjLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJsb2FkZW5kIixCKSksKHIuY2FuY2VsVG9rZW58fHIuc2lnbmFsKSYmKG89cD0+e2MmJih0KCFwfHxwLnR5cGU/bmV3IHEobnVsbCxBLGMpOnApLGMuYWJvcnQoKSxjPW51bGwpfSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnN1YnNjcmliZShvKSxyLnNpZ25hbCYmKHIuc2lnbmFsLmFib3J0ZWQ/bygpOnIuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixvKSkpO2xldCBVPXllKHIudXJsKTtpZihVJiZELnByb3RvY29scy5pbmRleE9mKFUpPT09LTEpe3QobmV3IHUoIlVuc3VwcG9ydGVkIHByb3RvY29sICIrVSsiOiIsdS5FUlJfQkFEX1JFUVVFU1QsQSkpO3JldHVybn1jLnNlbmQoaXx8bnVsbCl9KX07dmFyIEhyPShBLGUpPT57bGV0e2xlbmd0aDpJfT1BPUE/QS5maWx0ZXIoQm9vbGVhbik6W107aWYoZXx8SSl7bGV0IHQ9bmV3IEFib3J0Q29udHJvbGxlcixyLGk9ZnVuY3Rpb24oQyl7aWYoIXIpe3I9ITAscygpO2xldCBvPUMgaW5zdGFuY2VvZiBFcnJvcj9DOnRoaXMucmVhc29uO3QuYWJvcnQobyBpbnN0YW5jZW9mIHU/bzpuZXcgcShvIGluc3RhbmNlb2YgRXJyb3I/by5tZXNzYWdlOm8pKX19LGc9ZSYmc2V0VGltZW91dCgoKT0+e2c9bnVsbCxpKG5ldyB1KGB0aW1lb3V0ICR7ZX0gb2YgbXMgZXhjZWVkZWRgLHUuRVRJTUVET1VUKSl9LGUpLHM9KCk9PntBJiYoZyYmY2xlYXJUaW1lb3V0KGcpLGc9bnVsbCxBLmZvckVhY2goQz0+e0MudW5zdWJzY3JpYmU/Qy51bnN1YnNjcmliZShpKTpDLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixpKX0pLEE9bnVsbCl9O0EuZm9yRWFjaChDPT5DLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixpKSk7bGV0e3NpZ25hbDpFfT10O3JldHVybiBFLnVuc3Vic2NyaWJlPSgpPT5hLmFzYXAocyksRX19LGJ0PUhyO3ZhciBxcj1mdW5jdGlvbiooQSxlKXtsZXQgST1BLmJ5dGVMZW5ndGg7aWYoIWV8fEk8ZSl7eWllbGQgQTtyZXR1cm59bGV0IHQ9MCxyO2Zvcig7dDxJOylyPXQrZSx5aWVsZCBBLnNsaWNlKHQsciksdD1yfSxUcj1hc3luYyBmdW5jdGlvbiooQSxlKXtmb3IgYXdhaXQobGV0IEkgb2YgeHIoQSkpeWllbGQqcXIoSSxlKX0seHI9YXN5bmMgZnVuY3Rpb24qKEEpe2lmKEFbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKXt5aWVsZCpBO3JldHVybn1sZXQgZT1BLmdldFJlYWRlcigpO3RyeXtmb3IoOzspe2xldHtkb25lOkksdmFsdWU6dH09YXdhaXQgZS5yZWFkKCk7aWYoSSlicmVhazt5aWVsZCB0fX1maW5hbGx5e2F3YWl0IGUuY2FuY2VsKCl9fSxTZT0oQSxlLEksdCk9PntsZXQgcj1UcihBLGUpLGk9MCxnLHM9RT0+e2d8fChnPSEwLHQmJnQoRSkpfTtyZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHthc3luYyBwdWxsKEUpe3RyeXtsZXR7ZG9uZTpDLHZhbHVlOm99PWF3YWl0IHIubmV4dCgpO2lmKEMpe3MoKSxFLmNsb3NlKCk7cmV0dXJufWxldCBuPW8uYnl0ZUxlbmd0aDtpZihJKXtsZXQgZj1pKz1uO0koZil9RS5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KG8pKX1jYXRjaChDKXt0aHJvdyBzKEMpLEN9fSxjYW5jZWwoRSl7cmV0dXJuIHMoRSksci5yZXR1cm4oKX19LHtoaWdoV2F0ZXJNYXJrOjJ9KX07dmFyIEx0PTY0KjEwMjQse2lzRnVuY3Rpb246UEF9PWEsSHQ9KCh7ZmV0Y2g6QSxSZXF1ZXN0OmUsUmVzcG9uc2U6SX0pPT4oe2ZldGNoOkEsUmVxdWVzdDplLFJlc3BvbnNlOkl9KSkoYS5nbG9iYWwpLHtSZWFkYWJsZVN0cmVhbTpKdCxUZXh0RW5jb2RlcjpNdH09YS5nbG9iYWwsWXQ9KEEsLi4uZSk9Pnt0cnl7cmV0dXJuISFBKC4uLmUpfWNhdGNoe3JldHVybiExfX0sT3I9QT0+e2xldHtmZXRjaDplLFJlcXVlc3Q6SSxSZXNwb25zZTp0fT1PYmplY3QuYXNzaWduKHt9LEh0LEEpLHI9UEEoZSksaT1QQShJKSxnPVBBKHQpO2lmKCFyKXJldHVybiExO2xldCBzPXImJlBBKEp0KSxFPXImJih0eXBlb2YgTXQ9PSJmdW5jdGlvbiI/KFE9Pmw9PlEuZW5jb2RlKGwpKShuZXcgTXQpOmFzeW5jIFE9Pm5ldyBVaW50OEFycmF5KGF3YWl0IG5ldyBJKFEpLmFycmF5QnVmZmVyKCkpKSxDPWkmJnMmJll0KCgpPT57bGV0IFE9ITEsbD1uZXcgSShELm9yaWdpbix7Ym9keTpuZXcgSnQsbWV0aG9kOiJQT1NUIixnZXQgZHVwbGV4KCl7cmV0dXJuIFE9ITAsImhhbGYifX0pLmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKTtyZXR1cm4gUSYmIWx9KSxvPWcmJnMmJll0KCgpPT5hLmlzUmVhZGFibGVTdHJlYW0obmV3IHQoIiIpLmJvZHkpKSxuPXtzdHJlYW06byYmKFE9PlEuYm9keSl9O3ImJlsidGV4dCIsImFycmF5QnVmZmVyIiwiYmxvYiIsImZvcm1EYXRhIiwic3RyZWFtIl0uZm9yRWFjaChRPT57IW5bUV0mJihuW1FdPShsLGMpPT57bGV0IHk9bCYmbFtRXTtpZih5KXJldHVybiB5LmNhbGwobCk7dGhyb3cgbmV3IHUoYFJlc3BvbnNlIHR5cGUgJyR7UX0nIGlzIG5vdCBzdXBwb3J0ZWRgLHUuRVJSX05PVF9TVVBQT1JULGMpfSl9KTtsZXQgZj1hc3luYyBRPT57aWYoUT09bnVsbClyZXR1cm4gMDtpZihhLmlzQmxvYihRKSlyZXR1cm4gUS5zaXplO2lmKGEuaXNTcGVjQ29tcGxpYW50Rm9ybShRKSlyZXR1cm4oYXdhaXQgbmV3IEkoRC5vcmlnaW4se21ldGhvZDoiUE9TVCIsYm9keTpRfSkuYXJyYXlCdWZmZXIoKSkuYnl0ZUxlbmd0aDtpZihhLmlzQXJyYXlCdWZmZXJWaWV3KFEpfHxhLmlzQXJyYXlCdWZmZXIoUSkpcmV0dXJuIFEuYnl0ZUxlbmd0aDtpZihhLmlzVVJMU2VhcmNoUGFyYW1zKFEpJiYoUT1RKyIiKSxhLmlzU3RyaW5nKFEpKXJldHVybihhd2FpdCBFKFEpKS5ieXRlTGVuZ3RofSxCPWFzeW5jKFEsbCk9PntsZXQgYz1hLnRvRmluaXRlTnVtYmVyKFEuZ2V0Q29udGVudExlbmd0aCgpKTtyZXR1cm4gYz8/ZihsKX07cmV0dXJuIGFzeW5jIFE9PntsZXR7dXJsOmwsbWV0aG9kOmMsZGF0YTp5LHNpZ25hbDpVLGNhbmNlbFRva2VuOnAsdGltZW91dDpOLG9uRG93bmxvYWRQcm9ncmVzczpMLG9uVXBsb2FkUHJvZ3Jlc3M6aixyZXNwb25zZVR5cGU6YixoZWFkZXJzOkFlLHdpdGhDcmVkZW50aWFsczptQT0ic2FtZS1vcmlnaW4iLGZldGNoT3B0aW9uczpPZX09S0EoUSk7Yj1iPyhiKyIiKS50b0xvd2VyQ2FzZSgpOiJ0ZXh0IjtsZXQgU0E9YnQoW1UscCYmcC50b0Fib3J0U2lnbmFsKCldLE4pLGFBPW51bGwsdj1TQSYmU0EudW5zdWJzY3JpYmUmJigoKT0+e1NBLnVuc3Vic2NyaWJlKCl9KSxLZTt0cnl7aWYoaiYmQyYmYyE9PSJnZXQiJiZjIT09ImhlYWQiJiYoS2U9YXdhaXQgQihBZSx5KSkhPT0wKXtsZXQgSz1uZXcgSShsLHttZXRob2Q6IlBPU1QiLGJvZHk6eSxkdXBsZXg6ImhhbGYifSksWDtpZihhLmlzRm9ybURhdGEoeSkmJihYPUsuaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpKSYmQWUuc2V0Q29udGVudFR5cGUoWCksSy5ib2R5KXtsZXRbZWUsRkFdPURlKEtlLElBKHBlKGopKSk7eT1TZShLLmJvZHksTHQsZWUsRkEpfX1hLmlzU3RyaW5nKG1BKXx8KG1BPW1BPyJpbmNsdWRlIjoib21pdCIpO2xldCBZPWkmJiJjcmVkZW50aWFscyJpbiBJLnByb3RvdHlwZSxQZT17Li4uT2Usc2lnbmFsOlNBLG1ldGhvZDpjLnRvVXBwZXJDYXNlKCksaGVhZGVyczpBZS5ub3JtYWxpemUoKS50b0pTT04oKSxib2R5OnksZHVwbGV4OiJoYWxmIixjcmVkZW50aWFsczpZP21BOnZvaWQgMH07YUE9aSYmbmV3IEkobCxQZSk7bGV0IE89YXdhaXQoaT9lKGFBLE9lKTplKGwsUGUpKSxXZT1vJiYoYj09PSJzdHJlYW0ifHxiPT09InJlc3BvbnNlIik7aWYobyYmKEx8fFdlJiZ2KSl7bGV0IEs9e307WyJzdGF0dXMiLCJzdGF0dXNUZXh0IiwiaGVhZGVycyJdLmZvckVhY2goamU9PntLW2plXT1PW2plXX0pO2xldCBYPWEudG9GaW5pdGVOdW1iZXIoTy5oZWFkZXJzLmdldCgiY29udGVudC1sZW5ndGgiKSksW2VlLEZBXT1MJiZEZShYLElBKHBlKEwpLCEwKSl8fFtdO089bmV3IHQoU2UoTy5ib2R5LEx0LGVlLCgpPT57RkEmJkZBKCksdiYmdigpfSksSyl9Yj1ifHwidGV4dCI7bGV0IFFJPWF3YWl0IG5bYS5maW5kS2V5KG4sYil8fCJ0ZXh0Il0oTyxRKTtyZXR1cm4hV2UmJnYmJnYoKSxhd2FpdCBuZXcgUHJvbWlzZSgoSyxYKT0+e2ZBKEssWCx7ZGF0YTpRSSxoZWFkZXJzOlMuZnJvbShPLmhlYWRlcnMpLHN0YXR1czpPLnN0YXR1cyxzdGF0dXNUZXh0Ok8uc3RhdHVzVGV4dCxjb25maWc6USxyZXF1ZXN0OmFBfSl9KX1jYXRjaChZKXt0aHJvdyB2JiZ2KCksWSYmWS5uYW1lPT09IlR5cGVFcnJvciImJi9Mb2FkIGZhaWxlZHxmZXRjaC9pLnRlc3QoWS5tZXNzYWdlKT9PYmplY3QuYXNzaWduKG5ldyB1KCJOZXR3b3JrIEVycm9yIix1LkVSUl9ORVRXT1JLLFEsYUEpLHtjYXVzZTpZLmNhdXNlfHxZfSk6dS5mcm9tKFksWSYmWS5jb2RlLFEsYUEpfX19LEtyPW5ldyBNYXAsRmU9QT0+e2xldCBlPWEubWVyZ2UuY2FsbCh7c2tpcFVuZGVmaW5lZDohMH0sSHQsQT9BLmVudjpudWxsKSx7ZmV0Y2g6SSxSZXF1ZXN0OnQsUmVzcG9uc2U6cn09ZSxpPVt0LHIsSV0sZz1pLmxlbmd0aCxzPWcsRSxDLG89S3I7Zm9yKDtzLS07KUU9aVtzXSxDPW8uZ2V0KEUpLEM9PT12b2lkIDAmJm8uc2V0KEUsQz1zP25ldyBNYXA6T3IoZSkpLG89QztyZXR1cm4gQ30sZWE9RmUoKTt2YXIgUmU9e2h0dHA6SEEseGhyOkd0LGZldGNoOntnZXQ6RmV9fTthLmZvckVhY2goUmUsKEEsZSk9PntpZihBKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsIm5hbWUiLHt2YWx1ZTplfSl9Y2F0Y2h7fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJhZGFwdGVyTmFtZSIse3ZhbHVlOmV9KX19KTt2YXIgcXQ9QT0+YC0gJHtBfWAsV3I9QT0+YS5pc0Z1bmN0aW9uKEEpfHxBPT09bnVsbHx8QT09PSExLFdBPXtnZXRBZGFwdGVyOihBLGUpPT57QT1hLmlzQXJyYXkoQSk/QTpbQV07bGV0e2xlbmd0aDpJfT1BLHQscixpPXt9O2ZvcihsZXQgZz0wO2c8STtnKyspe3Q9QVtnXTtsZXQgcztpZihyPXQsIVdyKHQpJiYocj1SZVsocz1TdHJpbmcodCkpLnRvTG93ZXJDYXNlKCldLHI9PT12b2lkIDApKXRocm93IG5ldyB1KGBVbmtub3duIGFkYXB0ZXIgJyR7c30nYCk7aWYociYmKGEuaXNGdW5jdGlvbihyKXx8KHI9ci5nZXQoZSkpKSlicmVhaztpW3N8fCIjIitnXT1yfWlmKCFyKXtsZXQgZz1PYmplY3QuZW50cmllcyhpKS5tYXAoKFtFLENdKT0+YGFkYXB0ZXIgJHtFfSBgKyhDPT09ITE/ImlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVudmlyb25tZW50IjoiaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnVpbGQiKSkscz1JP2cubGVuZ3RoPjE/YHNpbmNlIDoKYCtnLm1hcChxdCkuam9pbihgCmApOiIgIitxdChnWzBdKToiYXMgbm8gYWRhcHRlciBzcGVjaWZpZWQiO3Rocm93IG5ldyB1KCJUaGVyZSBpcyBubyBzdWl0YWJsZSBhZGFwdGVyIHRvIGRpc3BhdGNoIHRoZSByZXF1ZXN0ICIrcywiRVJSX05PVF9TVVBQT1JUIil9cmV0dXJuIHJ9LGFkYXB0ZXJzOlJlfTtmdW5jdGlvbiBVZShBKXtpZihBLmNhbmNlbFRva2VuJiZBLmNhbmNlbFRva2VuLnRocm93SWZSZXF1ZXN0ZWQoKSxBLnNpZ25hbCYmQS5zaWduYWwuYWJvcnRlZCl0aHJvdyBuZXcgcShudWxsLEEpfWZ1bmN0aW9uIGpBKEEpe3JldHVybiBVZShBKSxBLmhlYWRlcnM9Uy5mcm9tKEEuaGVhZGVycyksQS5kYXRhPWNBLmNhbGwoQSxBLnRyYW5zZm9ybVJlcXVlc3QpLFsicG9zdCIsInB1dCIsInBhdGNoIl0uaW5kZXhPZihBLm1ldGhvZCkhPT0tMSYmQS5oZWFkZXJzLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLCExKSxXQS5nZXRBZGFwdGVyKEEuYWRhcHRlcnx8ZUEuYWRhcHRlcixBKShBKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBVZShBKSx0LmRhdGE9Y0EuY2FsbChBLEEudHJhbnNmb3JtUmVzcG9uc2UsdCksdC5oZWFkZXJzPVMuZnJvbSh0LmhlYWRlcnMpLHR9LGZ1bmN0aW9uKHQpe3JldHVybiBsQSh0KXx8KFVlKEEpLHQmJnQucmVzcG9uc2UmJih0LnJlc3BvbnNlLmRhdGE9Y0EuY2FsbChBLEEudHJhbnNmb3JtUmVzcG9uc2UsdC5yZXNwb25zZSksdC5yZXNwb25zZS5oZWFkZXJzPVMuZnJvbSh0LnJlc3BvbnNlLmhlYWRlcnMpKSksUHJvbWlzZS5yZWplY3QodCl9KX12YXIgdkE9IjEuMTIuMCI7dmFyIFpBPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaCgoQSxlKT0+e1pBW0FdPWZ1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdD09PUF8fCJhIisoZTwxPyJuICI6IiAiKStBfX0pO3ZhciBUdD17fTtaQS50cmFuc2l0aW9uYWw9ZnVuY3Rpb24oZSxJLHQpe2Z1bmN0aW9uIHIoaSxnKXtyZXR1cm4iW0F4aW9zIHYiK3ZBKyJdIFRyYW5zaXRpb25hbCBvcHRpb24gJyIraSsiJyIrZysodD8iLiAiK3Q6IiIpfXJldHVybihpLGcscyk9PntpZihlPT09ITEpdGhyb3cgbmV3IHUocihnLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKEk/IiBpbiAiK0k6IiIpKSx1LkVSUl9ERVBSRUNBVEVEKTtyZXR1cm4gSSYmIVR0W2ddJiYoVHRbZ109ITAsY29uc29sZS53YXJuKHIoZywiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrSSsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSxlP2UoaSxnLHMpOiEwfX07WkEuc3BlbGxpbmc9ZnVuY3Rpb24oZSl7cmV0dXJuKEksdCk9Pihjb25zb2xlLndhcm4oYCR7dH0gaXMgbGlrZWx5IGEgbWlzc3BlbGxpbmcgb2YgJHtlfWApLCEwKX07ZnVuY3Rpb24ganIoQSxlLEkpe2lmKHR5cGVvZiBBIT0ib2JqZWN0Iil0aHJvdyBuZXcgdSgib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIsdS5FUlJfQkFEX09QVElPTl9WQUxVRSk7bGV0IHQ9T2JqZWN0LmtleXMoQSkscj10Lmxlbmd0aDtmb3IoO3ItLSA+MDspe2xldCBpPXRbcl0sZz1lW2ldO2lmKGcpe2xldCBzPUFbaV0sRT1zPT09dm9pZCAwfHxnKHMsaSxBKTtpZihFIT09ITApdGhyb3cgbmV3IHUoIm9wdGlvbiAiK2krIiBtdXN0IGJlICIrRSx1LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtjb250aW51ZX1pZihJIT09ITApdGhyb3cgbmV3IHUoIlVua25vd24gb3B0aW9uICIraSx1LkVSUl9CQURfT1BUSU9OKX19dmFyIGRBPXthc3NlcnRPcHRpb25zOmpyLHZhbGlkYXRvcnM6WkF9O3ZhciBUPWRBLnZhbGlkYXRvcnMsckE9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5kZWZhdWx0cz1lfHx7fSx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgRWUscmVzcG9uc2U6bmV3IEVlfX1hc3luYyByZXF1ZXN0KGUsSSl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLl9yZXF1ZXN0KGUsSSl9Y2F0Y2godCl7aWYodCBpbnN0YW5jZW9mIEVycm9yKXtsZXQgcj17fTtFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZShyKTpyPW5ldyBFcnJvcjtsZXQgaT1yLnN0YWNrP3Iuc3RhY2sucmVwbGFjZSgvXi4rXG4vLCIiKToiIjt0cnl7dC5zdGFjaz9pJiYhU3RyaW5nKHQuc3RhY2spLmVuZHNXaXRoKGkucmVwbGFjZSgvXi4rXG4uK1xuLywiIikpJiYodC5zdGFjays9YApgK2kpOnQuc3RhY2s9aX1jYXRjaHt9fXRocm93IHR9fV9yZXF1ZXN0KGUsSSl7dHlwZW9mIGU9PSJzdHJpbmciPyhJPUl8fHt9LEkudXJsPWUpOkk9ZXx8e30sST1NKHRoaXMuZGVmYXVsdHMsSSk7bGV0e3RyYW5zaXRpb25hbDp0LHBhcmFtc1NlcmlhbGl6ZXI6cixoZWFkZXJzOml9PUk7dCE9PXZvaWQgMCYmZEEuYXNzZXJ0T3B0aW9ucyh0LHtzaWxlbnRKU09OUGFyc2luZzpULnRyYW5zaXRpb25hbChULmJvb2xlYW4pLGZvcmNlZEpTT05QYXJzaW5nOlQudHJhbnNpdGlvbmFsKFQuYm9vbGVhbiksY2xhcmlmeVRpbWVvdXRFcnJvcjpULnRyYW5zaXRpb25hbChULmJvb2xlYW4pfSwhMSksciE9bnVsbCYmKGEuaXNGdW5jdGlvbihyKT9JLnBhcmFtc1NlcmlhbGl6ZXI9e3NlcmlhbGl6ZTpyfTpkQS5hc3NlcnRPcHRpb25zKHIse2VuY29kZTpULmZ1bmN0aW9uLHNlcmlhbGl6ZTpULmZ1bmN0aW9ufSwhMCkpLEkuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDB8fCh0aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwP0kuYWxsb3dBYnNvbHV0ZVVybHM9dGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJsczpJLmFsbG93QWJzb2x1dGVVcmxzPSEwKSxkQS5hc3NlcnRPcHRpb25zKEkse2Jhc2VVcmw6VC5zcGVsbGluZygiYmFzZVVSTCIpLHdpdGhYc3JmVG9rZW46VC5zcGVsbGluZygid2l0aFhTUkZUb2tlbiIpfSwhMCksSS5tZXRob2Q9KEkubWV0aG9kfHx0aGlzLmRlZmF1bHRzLm1ldGhvZHx8ImdldCIpLnRvTG93ZXJDYXNlKCk7bGV0IGc9aSYmYS5tZXJnZShpLmNvbW1vbixpW0kubWV0aG9kXSk7aSYmYS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsImNvbW1vbiJdLFE9PntkZWxldGUgaVtRXX0pLEkuaGVhZGVycz1TLmNvbmNhdChnLGkpO2xldCBzPVtdLEU9ITA7dGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKGZ1bmN0aW9uKGwpe3R5cGVvZiBsLnJ1bldoZW49PSJmdW5jdGlvbiImJmwucnVuV2hlbihJKT09PSExfHwoRT1FJiZsLnN5bmNocm9ub3VzLHMudW5zaGlmdChsLmZ1bGZpbGxlZCxsLnJlamVjdGVkKSl9KTtsZXQgQz1bXTt0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKGZ1bmN0aW9uKGwpe0MucHVzaChsLmZ1bGZpbGxlZCxsLnJlamVjdGVkKX0pO2xldCBvLG49MCxmO2lmKCFFKXtsZXQgUT1bakEuYmluZCh0aGlzKSx2b2lkIDBdO2ZvcihRLnVuc2hpZnQoLi4ucyksUS5wdXNoKC4uLkMpLGY9US5sZW5ndGgsbz1Qcm9taXNlLnJlc29sdmUoSSk7bjxmOylvPW8udGhlbihRW24rK10sUVtuKytdKTtyZXR1cm4gb31mPXMubGVuZ3RoO2xldCBCPUk7Zm9yKG49MDtuPGY7KXtsZXQgUT1zW24rK10sbD1zW24rK107dHJ5e0I9UShCKX1jYXRjaChjKXtsLmNhbGwodGhpcyxjKTticmVha319dHJ5e289akEuY2FsbCh0aGlzLEIpfWNhdGNoKFEpe3JldHVybiBQcm9taXNlLnJlamVjdChRKX1mb3Iobj0wLGY9Qy5sZW5ndGg7bjxmOylvPW8udGhlbihDW24rK10sQ1tuKytdKTtyZXR1cm4gb31nZXRVcmkoZSl7ZT1NKHRoaXMuZGVmYXVsdHMsZSk7bGV0IEk9dUEoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMpO3JldHVybiBRQShJLGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplcil9fTthLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwib3B0aW9ucyJdLGZ1bmN0aW9uKGUpe3JBLnByb3RvdHlwZVtlXT1mdW5jdGlvbihJLHQpe3JldHVybiB0aGlzLnJlcXVlc3QoTSh0fHx7fSx7bWV0aG9kOmUsdXJsOkksZGF0YToodHx8e30pLmRhdGF9KSl9fSk7YS5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sZnVuY3Rpb24oZSl7ZnVuY3Rpb24gSSh0KXtyZXR1cm4gZnVuY3Rpb24oaSxnLHMpe3JldHVybiB0aGlzLnJlcXVlc3QoTShzfHx7fSx7bWV0aG9kOmUsaGVhZGVyczp0P3siQ29udGVudC1UeXBlIjoibXVsdGlwYXJ0L2Zvcm0tZGF0YSJ9Ont9LHVybDppLGRhdGE6Z30pKX19ckEucHJvdG90eXBlW2VdPUkoKSxyQS5wcm90b3R5cGVbZSsiRm9ybSJdPUkoITApfSk7dmFyIGhBPXJBO3ZhciBOZT1jbGFzcyBBe2NvbnN0cnVjdG9yKGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoImV4ZWN1dG9yIG11c3QgYmUgYSBmdW5jdGlvbi4iKTtsZXQgSTt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24oaSl7ST1pfSk7bGV0IHQ9dGhpczt0aGlzLnByb21pc2UudGhlbihyPT57aWYoIXQuX2xpc3RlbmVycylyZXR1cm47bGV0IGk9dC5fbGlzdGVuZXJzLmxlbmd0aDtmb3IoO2ktLSA+MDspdC5fbGlzdGVuZXJzW2ldKHIpO3QuX2xpc3RlbmVycz1udWxsfSksdGhpcy5wcm9taXNlLnRoZW49cj0+e2xldCBpLGc9bmV3IFByb21pc2Uocz0+e3Quc3Vic2NyaWJlKHMpLGk9c30pLnRoZW4ocik7cmV0dXJuIGcuY2FuY2VsPWZ1bmN0aW9uKCl7dC51bnN1YnNjcmliZShpKX0sZ30sZShmdW5jdGlvbihpLGcscyl7dC5yZWFzb258fCh0LnJlYXNvbj1uZXcgcShpLGcscyksSSh0LnJlYXNvbikpfSl9dGhyb3dJZlJlcXVlc3RlZCgpe2lmKHRoaXMucmVhc29uKXRocm93IHRoaXMucmVhc29ufXN1YnNjcmliZShlKXtpZih0aGlzLnJlYXNvbil7ZSh0aGlzLnJlYXNvbik7cmV0dXJufXRoaXMuX2xpc3RlbmVycz90aGlzLl9saXN0ZW5lcnMucHVzaChlKTp0aGlzLl9saXN0ZW5lcnM9W2VdfXVuc3Vic2NyaWJlKGUpe2lmKCF0aGlzLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBJPXRoaXMuX2xpc3RlbmVycy5pbmRleE9mKGUpO0khPT0tMSYmdGhpcy5fbGlzdGVuZXJzLnNwbGljZShJLDEpfXRvQWJvcnRTaWduYWwoKXtsZXQgZT1uZXcgQWJvcnRDb250cm9sbGVyLEk9dD0+e2UuYWJvcnQodCl9O3JldHVybiB0aGlzLnN1YnNjcmliZShJKSxlLnNpZ25hbC51bnN1YnNjcmliZT0oKT0+dGhpcy51bnN1YnNjcmliZShJKSxlLnNpZ25hbH1zdGF0aWMgc291cmNlKCl7bGV0IGU7cmV0dXJue3Rva2VuOm5ldyBBKGZ1bmN0aW9uKHIpe2U9cn0pLGNhbmNlbDplfX19LHh0PU5lO2Z1bmN0aW9uIGtlKEEpe3JldHVybiBmdW5jdGlvbihJKXtyZXR1cm4gQS5hcHBseShudWxsLEkpfX1mdW5jdGlvbiBHZShBKXtyZXR1cm4gYS5pc09iamVjdChBKSYmQS5pc0F4aW9zRXJyb3I9PT0hMH12YXIgYmU9e0NvbnRpbnVlOjEwMCxTd2l0Y2hpbmdQcm90b2NvbHM6MTAxLFByb2Nlc3Npbmc6MTAyLEVhcmx5SGludHM6MTAzLE9rOjIwMCxDcmVhdGVkOjIwMSxBY2NlcHRlZDoyMDIsTm9uQXV0aG9yaXRhdGl2ZUluZm9ybWF0aW9uOjIwMyxOb0NvbnRlbnQ6MjA0LFJlc2V0Q29udGVudDoyMDUsUGFydGlhbENvbnRlbnQ6MjA2LE11bHRpU3RhdHVzOjIwNyxBbHJlYWR5UmVwb3J0ZWQ6MjA4LEltVXNlZDoyMjYsTXVsdGlwbGVDaG9pY2VzOjMwMCxNb3ZlZFBlcm1hbmVudGx5OjMwMSxGb3VuZDozMDIsU2VlT3RoZXI6MzAzLE5vdE1vZGlmaWVkOjMwNCxVc2VQcm94eTozMDUsVW51c2VkOjMwNixUZW1wb3JhcnlSZWRpcmVjdDozMDcsUGVybWFuZW50UmVkaXJlY3Q6MzA4LEJhZFJlcXVlc3Q6NDAwLFVuYXV0aG9yaXplZDo0MDEsUGF5bWVudFJlcXVpcmVkOjQwMixGb3JiaWRkZW46NDAzLE5vdEZvdW5kOjQwNCxNZXRob2ROb3RBbGxvd2VkOjQwNSxOb3RBY2NlcHRhYmxlOjQwNixQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NDA3LFJlcXVlc3RUaW1lb3V0OjQwOCxDb25mbGljdDo0MDksR29uZTo0MTAsTGVuZ3RoUmVxdWlyZWQ6NDExLFByZWNvbmRpdGlvbkZhaWxlZDo0MTIsUGF5bG9hZFRvb0xhcmdlOjQxMyxVcmlUb29Mb25nOjQxNCxVbnN1cHBvcnRlZE1lZGlhVHlwZTo0MTUsUmFuZ2VOb3RTYXRpc2ZpYWJsZTo0MTYsRXhwZWN0YXRpb25GYWlsZWQ6NDE3LEltQVRlYXBvdDo0MTgsTWlzZGlyZWN0ZWRSZXF1ZXN0OjQyMSxVbnByb2Nlc3NhYmxlRW50aXR5OjQyMixMb2NrZWQ6NDIzLEZhaWxlZERlcGVuZGVuY3k6NDI0LFRvb0Vhcmx5OjQyNSxVcGdyYWRlUmVxdWlyZWQ6NDI2LFByZWNvbmRpdGlvblJlcXVpcmVkOjQyOCxUb29NYW55UmVxdWVzdHM6NDI5LFJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZTo0MzEsVW5hdmFpbGFibGVGb3JMZWdhbFJlYXNvbnM6NDUxLEludGVybmFsU2VydmVyRXJyb3I6NTAwLE5vdEltcGxlbWVudGVkOjUwMSxCYWRHYXRld2F5OjUwMixTZXJ2aWNlVW5hdmFpbGFibGU6NTAzLEdhdGV3YXlUaW1lb3V0OjUwNCxIdHRwVmVyc2lvbk5vdFN1cHBvcnRlZDo1MDUsVmFyaWFudEFsc29OZWdvdGlhdGVzOjUwNixJbnN1ZmZpY2llbnRTdG9yYWdlOjUwNyxMb29wRGV0ZWN0ZWQ6NTA4LE5vdEV4dGVuZGVkOjUxMCxOZXR3b3JrQXV0aGVudGljYXRpb25SZXF1aXJlZDo1MTF9O09iamVjdC5lbnRyaWVzKGJlKS5mb3JFYWNoKChbQSxlXSk9PntiZVtlXT1BfSk7dmFyIE90PWJlO2Z1bmN0aW9uIEt0KEEpe2xldCBlPW5ldyBoQShBKSxJPW5BKGhBLnByb3RvdHlwZS5yZXF1ZXN0LGUpO3JldHVybiBhLmV4dGVuZChJLGhBLnByb3RvdHlwZSxlLHthbGxPd25LZXlzOiEwfSksYS5leHRlbmQoSSxlLG51bGwse2FsbE93bktleXM6ITB9KSxJLmNyZWF0ZT1mdW5jdGlvbihyKXtyZXR1cm4gS3QoTShBLHIpKX0sSX12YXIgdz1LdChlQSk7dy5BeGlvcz1oQTt3LkNhbmNlbGVkRXJyb3I9cTt3LkNhbmNlbFRva2VuPXh0O3cuaXNDYW5jZWw9bEE7dy5WRVJTSU9OPXZBO3cudG9Gb3JtRGF0YT1QO3cuQXhpb3NFcnJvcj11O3cuQ2FuY2VsPXcuQ2FuY2VsZWRFcnJvcjt3LmFsbD1mdW5jdGlvbihlKXtyZXR1cm4gUHJvbWlzZS5hbGwoZSl9O3cuc3ByZWFkPWtlO3cuaXNBeGlvc0Vycm9yPUdlO3cubWVyZ2VDb25maWc9TTt3LkF4aW9zSGVhZGVycz1TO3cuZm9ybVRvSlNPTj1BPT54QShhLmlzSFRNTEZvcm0oQSk/bmV3IEZvcm1EYXRhKEEpOkEpO3cuZ2V0QWRhcHRlcj1XQS5nZXRBZGFwdGVyO3cuSHR0cFN0YXR1c0NvZGU9T3Q7dy5kZWZhdWx0PXc7dmFyIGdBPXc7dmFye0F4aW9zOl9hLEF4aW9zRXJyb3I6JGEsQ2FuY2VsZWRFcnJvcjpBbixpc0NhbmNlbDplbixDYW5jZWxUb2tlbjp0bixWRVJTSU9OOkluLGFsbDpybixDYW5jZWw6Z24saXNBeGlvc0Vycm9yOm9uLHNwcmVhZDphbix0b0Zvcm1EYXRhOm5uLEF4aW9zSGVhZGVyczpzbixIdHRwU3RhdHVzQ29kZTpDbixmb3JtVG9KU09OOkJuLGdldEFkYXB0ZXI6UW4sbWVyZ2VDb25maWc6RW59PWdBO2FzeW5jIGZ1bmN0aW9uIHZyKEEsZSl7bGV0IEk9QSx0PW51bGw7aWYoST09bnVsbCl0PW5ldyBXb3JrZXIobmV3IFVSTCgiLi93ZWItd29ya2Vycy9pdGstd2FzbS1waXBlbGluZS53b3JrZXIuanMiLGltcG9ydC5tZXRhLnVybCkse3R5cGU6Im1vZHVsZSJ9KTtlbHNlIGlmKEkuc3RhcnRzV2l0aCgiaHR0cCIpKXtsZXQgcj1hd2FpdCBnQS5nZXQoSSx7cmVzcG9uc2VUeXBlOiJibG9iIixwYXJhbXM6ZX0pLGk9VVJMLmNyZWF0ZU9iamVjdFVSTChyLmRhdGEpO3Q9bmV3IFdvcmtlcihpLHt0eXBlOiJtb2R1bGUifSl9ZWxzZSB0PW5ldyBXb3JrZXIoSSx7dHlwZToibW9kdWxlIn0pO3JldHVybiB0fXZhciB5QT12cjtmdW5jdGlvbiBQdChBKXtsZXQgZT1hZShBKSxJPUE7cmV0dXJuIEkudGVybWluYXRlZD0hMSxJLndvcmtlclByb3h5PWUsSS5vcmlnaW5hbFRlcm1pbmF0ZT1JLnRlcm1pbmF0ZSxJLnRlcm1pbmF0ZT0oKT0+e0kudGVybWluYXRlZD0hMCxJLndvcmtlclByb3h5W29lXSgpLEkub3JpZ2luYWxUZXJtaW5hdGUoKX0se3dvcmtlclByb3h5OmUsd29ya2VyOkl9fWFzeW5jIGZ1bmN0aW9uIFpyKEEsZSxJKXtsZXQgdDtpZihBIT1udWxsKXtsZXQgaT1BO3JldHVybiBpLndvcmtlclByb3h5IT09dm9pZCAwPyh0PWkud29ya2VyUHJveHkse3dvcmtlclByb3h5OnQsd29ya2VyOml9KTpQdChBKX1sZXQgcj1hd2FpdCB5QShlLEkpO3JldHVybiBQdChyKX12YXIgV3Q9WnI7dmFyIERBLHgsSmUsTGU9e2Vudjp7ZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aDpmdW5jdGlvbihBKXtKZT1uZXcgVWludDhBcnJheSh4LmV4cG9ydHMubWVtb3J5LmJ1ZmZlcil9fX0sVkE9Y2xhc3N7aW5pdCgpe3JldHVybiBEQXx8KHR5cGVvZiBmZXRjaDwidSI/REE9ZmV0Y2goImRhdGE6YXBwbGljYXRpb24vd2FzbTtiYXNlNjQsIitqdCkudGhlbihlPT5lLmFycmF5QnVmZmVyKCkpLnRoZW4oZT0+V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoZSxMZSkpLnRoZW4odGhpcy5faW5pdCk6REE9V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoQnVmZmVyLmZyb20oanQsImJhc2U2NCIpLExlKS50aGVuKHRoaXMuX2luaXQpLERBKX1faW5pdChlKXt4PWUuaW5zdGFuY2UsTGUuZW52LmVtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgoMCl9ZGVjb2RlKGUsST0wKXtpZigheCl0aHJvdyBuZXcgRXJyb3IoIlpTVEREZWNvZGVyOiBBd2FpdCAuaW5pdCgpIGJlZm9yZSBkZWNvZGluZy4iKTtsZXQgdD1lLmJ5dGVMZW5ndGgscj14LmV4cG9ydHMubWFsbG9jKHQpO0plLnNldChlLHIpLEk9SXx8TnVtYmVyKHguZXhwb3J0cy5aU1REX2ZpbmREZWNvbXByZXNzZWRTaXplKHIsdCkpO2xldCBpPXguZXhwb3J0cy5tYWxsb2MoSSksZz14LmV4cG9ydHMuWlNURF9kZWNvbXByZXNzKGksSSxyLHQpLHM9SmUuc2xpY2UoaSxpK2cpO3JldHVybiB4LmV4cG9ydHMuZnJlZShyKSx4LmV4cG9ydHMuZnJlZShpKSxzfX0sanQ9IkFHRnpiUUVBQUFBQmJnNWdBMzkvZndGL1lBRi9BWDlnQW45L0FHQUJmd0JnQlg5L2YzOS9BWDlnQTM5L2Z3QmdCSDkvZjM4QmYyQUFBWDlnQW45L0FYOWdCMzkvZjM5L2YzOEJmMkFDZjM4QmZtQUlmMzkvZjM5L2YzOEJmMkFGZjM5L2YzOEFZQTUvZjM5L2YzOS9mMzkvZjM5L2Z3Ri9BaWNCQTJWdWRoOWxiWE5qY21sd2RHVnVYMjV2ZEdsbWVWOXRaVzF2Y25sZlozSnZkM1JvQUFNREl5SUhBQUFCQVFNSEF3RUFDUVFBQlFFSUNBRUZCZ1FFQkFNR0FBQUtBQVVMREEwR0JBVUJjQUVCQVFVSEFRR0FBb0NBQWdZSUFYOEJRWUNqQkFzSHJnRUxCbTFsYlc5eWVRSUFCbTFoYkd4dll3QUZCR1p5WldVQUJneGFVMVJFWDJselJYSnliM0lBRWhsYVUxUkVYMlpwYm1SRVpXTnZiWEJ5WlhOelpXUlRhWHBsQUJ3UFdsTlVSRjlrWldOdmJYQnlaWE56QUNJWlgxOXBibVJwY21WamRGOW1kVzVqZEdsdmJsOTBZV0pzWlFFQUVGOWZaWEp5Ym05ZmJHOWpZWFJwYjI0QUFRbHpkR0ZqYTFOaGRtVUFCd3h6ZEdGamExSmxjM1J2Y21VQUNBcHpkR0ZqYTBGc2JHOWpBQWtLaS9JQklnVUFRWVFmQ3pNQkFYOGdBZ1JBSUFBaEF3TkFJQU1nQVMwQUFEb0FBQ0FEUVFGcUlRTWdBVUVCYWlFQklBSkJBV3NpQWcwQUN3c2dBQXNwQVFGL0lBSUVRQ0FBSVFNRFFDQURJQUU2QUFBZ0EwRUJhaUVESUFKQkFXc2lBZzBBQ3dzZ0FBdHNBUUovUVlBZktBSUFJZ0VnQUVFSGFrRjRjU0lDYWlFQUFrQWdBa0VBSUFBZ0FVMGJEUUFnQUQ4QVFSQjBTd1JBSUFBL0FFRVFkR3RCLy84RGFrRVFka0FBUVg5R0JIOUJBQVZCQUJBQVFRRUxSUTBCQzBHQUh5QUFOZ0lBSUFFUEMwR0VIMEV3TmdJQVFYOEx1U2NCQzM4akFFRVFheUlLSkFBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBQkI5QUZOQkVCQmlCOG9BZ0FpQmtFUUlBQkJDMnBCZUhFZ0FFRUxTUnNpQlVFRGRpSUFkaUlCUVFOeEJFQUNRQ0FCUVg5elFRRnhJQUJxSWdKQkEzUWlBVUd3SDJvaUFDQUJRYmdmYWlnQ0FDSUJLQUlJSWdSR0JFQkJpQjhnQmtGK0lBSjNjVFlDQUF3QkN5QUVJQUEyQWd3Z0FDQUVOZ0lJQ3lBQlFRaHFJUUFnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1Ed3NnQlVHUUh5Z0NBQ0lIVFEwQklBRUVRQUpBUVFJZ0FIUWlBa0VBSUFKcmNpQUJJQUIwY1dnaUFVRURkQ0lBUWJBZmFpSUNJQUJCdUI5cUtBSUFJZ0FvQWdnaUJFWUVRRUdJSHlBR1FYNGdBWGR4SWdZMkFnQU1BUXNnQkNBQ05nSU1JQUlnQkRZQ0NBc2dBQ0FGUVFOeU5nSUVJQUFnQldvaUNDQUJRUU4wSWdFZ0JXc2lCRUVCY2pZQ0JDQUFJQUZxSUFRMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFGQm5COG9BZ0FoQWdKL0lBWkJBU0FIUVFOMmRDSURjVVVFUUVHSUh5QURJQVp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBeUFCSUFJMkFnZ2dBeUFDTmdJTUlBSWdBVFlDRENBQ0lBTTJBZ2dMSUFCQkNHb2hBRUdjSHlBSU5nSUFRWkFmSUFRMkFnQU1Ed3RCakI4b0FnQWlDMFVOQVNBTGFFRUNkRUc0SVdvb0FnQWlBaWdDQkVGNGNTQUZheUVESUFJaEFRTkFBa0FnQVNnQ0VDSUFSUVJBSUFFb0FoUWlBRVVOQVFzZ0FDZ0NCRUY0Y1NBRmF5SUJJQU1nQVNBRFNTSUJHeUVESUFBZ0FpQUJHeUVDSUFBaEFRd0JDd3NnQWlnQ0dDRUpJQUlnQWlnQ0RDSUVSd1JBUVpnZktBSUFHaUFDS0FJSUlnQWdCRFlDRENBRUlBQTJBZ2dNRGdzZ0FrRVVhaUlCS0FJQUlnQkZCRUFnQWlnQ0VDSUFSUTBESUFKQkVHb2hBUXNEUUNBQklRZ2dBQ0lFUVJScUlnRW9BZ0FpQUEwQUlBUkJFR29oQVNBRUtBSVFJZ0FOQUFzZ0NFRUFOZ0lBREEwTFFYOGhCU0FBUWI5L1N3MEFJQUJCQzJvaUFFRjRjU0VGUVl3ZktBSUFJZ2hGRFFCQkFDQUZheUVEQWtBQ1FBSkFBbjlCQUNBRlFZQUNTUTBBR2tFZklBVkIvLy8vQjBzTkFCb2dCVUVtSUFCQkNIWm5JZ0JyZGtFQmNTQUFRUUYwYTBFK2Fnc2lCMEVDZEVHNElXb29BZ0FpQVVVRVFFRUFJUUFNQVF0QkFDRUFJQVZCR1NBSFFRRjJhMEVBSUFkQkgwY2JkQ0VDQTBBQ1FDQUJLQUlFUVhoeElBVnJJZ1lnQTA4TkFDQUJJUVFnQmlJRERRQkJBQ0VESUFFaEFBd0RDeUFBSUFFb0FoUWlCaUFHSUFFZ0FrRWRka0VFY1dvb0FoQWlBVVliSUFBZ0Joc2hBQ0FDUVFGMElRSWdBUTBBQ3dzZ0FDQUVja1VFUUVFQUlRUkJBaUFIZENJQVFRQWdBR3R5SUFoeElnQkZEUU1nQUdoQkFuUkJ1Q0ZxS0FJQUlRQUxJQUJGRFFFTEEwQWdBQ2dDQkVGNGNTQUZheUlDSUFOSklRRWdBaUFESUFFYklRTWdBQ0FFSUFFYklRUWdBQ2dDRUNJQkJIOGdBUVVnQUNnQ0ZBc2lBQTBBQ3dzZ0JFVU5BQ0FEUVpBZktBSUFJQVZyVHcwQUlBUW9BaGdoQnlBRUlBUW9BZ3dpQWtjRVFFR1lIeWdDQUJvZ0JDZ0NDQ0lBSUFJMkFnd2dBaUFBTmdJSURBd0xJQVJCRkdvaUFTZ0NBQ0lBUlFSQUlBUW9BaEFpQUVVTkF5QUVRUkJxSVFFTEEwQWdBU0VHSUFBaUFrRVVhaUlCS0FJQUlnQU5BQ0FDUVJCcUlRRWdBaWdDRUNJQURRQUxJQVpCQURZQ0FBd0xDeUFGUVpBZktBSUFJZ1JOQkVCQm5COG9BZ0FoQUFKQUlBUWdCV3NpQVVFUVR3UkFJQUFnQldvaUFpQUJRUUZ5TmdJRUlBQWdCR29nQVRZQ0FDQUFJQVZCQTNJMkFnUU1BUXNnQUNBRVFRTnlOZ0lFSUFBZ0JHb2lBU0FCS0FJRVFRRnlOZ0lFUVFBaEFrRUFJUUVMUVpBZklBRTJBZ0JCbkI4Z0FqWUNBQ0FBUVFocUlRQU1EUXNnQlVHVUh5Z0NBQ0lDU1FSQVFaUWZJQUlnQldzaUFUWUNBRUdnSDBHZ0h5Z0NBQ0lBSUFWcUlnSTJBZ0FnQWlBQlFRRnlOZ0lFSUFBZ0JVRURjallDQkNBQVFRaHFJUUFNRFF0QkFDRUFJQVZCTDJvaUF3Si9RZUFpS0FJQUJFQkI2Q0lvQWdBTUFRdEI3Q0pDZnpjQ0FFSGtJa0tBb0lDQWdJQUVOd0lBUWVBaUlBcEJER3BCY0hGQjJLclZxZ1Z6TmdJQVFmUWlRUUEyQWdCQnhDSkJBRFlDQUVHQUlBc2lBV29pQmtFQUlBRnJJZ2h4SWdFZ0JVME5ERUhBSWlnQ0FDSUVCRUJCdUNJb0FnQWlCeUFCYWlJSklBZE5JQVFnQ1VseURRMExBa0JCeENJdEFBQkJCSEZGQkVBQ1FBSkFBa0FDUUVHZ0h5Z0NBQ0lFQkVCQnlDSWhBQU5BSUFRZ0FDZ0NBQ0lIVHdSQUlBY2dBQ2dDQkdvZ0JFc05Bd3NnQUNnQ0NDSUFEUUFMQzBFQUVBUWlBa0YvUmcwRElBRWhCa0hrSWlnQ0FDSUFRUUZySWdRZ0FuRUVRQ0FCSUFKcklBSWdCR3BCQUNBQWEzRnFJUVlMSUFVZ0JrOE5BMEhBSWlnQ0FDSUFCRUJCdUNJb0FnQWlCQ0FHYWlJSUlBUk5JQUFnQ0VseURRUUxJQVlRQkNJQUlBSkhEUUVNQlFzZ0JpQUNheUFJY1NJR0VBUWlBaUFBS0FJQUlBQW9BZ1JxUmcwQklBSWhBQXNnQUVGL1JnMEJJQVZCTUdvZ0JrMEVRQ0FBSVFJTUJBdEI2Q0lvQWdBaUFpQURJQVpyYWtFQUlBSnJjU0lDRUFSQmYwWU5BU0FDSUFacUlRWWdBQ0VDREFNTElBSkJmMGNOQWd0QnhDSkJ4Q0lvQWdCQkJISTJBZ0FMSUFFUUJDSUNRWDlHUVFBUUJDSUFRWDlHY2lBQUlBSk5jZzBGSUFBZ0Ftc2lCaUFGUVNocVRRMEZDMEc0SWtHNElpZ0NBQ0FHYWlJQU5nSUFRYndpS0FJQUlBQkpCRUJCdkNJZ0FEWUNBQXNDUUVHZ0h5Z0NBQ0lEQkVCQnlDSWhBQU5BSUFJZ0FDZ0NBQ0lCSUFBb0FnUWlCR3BHRFFJZ0FDZ0NDQ0lBRFFBTERBUUxRWmdmS0FJQUlnQkJBQ0FBSUFKTkcwVUVRRUdZSHlBQ05nSUFDMEVBSVFCQnpDSWdCallDQUVISUlpQUNOZ0lBUWFnZlFYODJBZ0JCckI5QjRDSW9BZ0EyQWdCQjFDSkJBRFlDQUFOQUlBQkJBM1FpQVVHNEgyb2dBVUd3SDJvaUJEWUNBQ0FCUWJ3ZmFpQUVOZ0lBSUFCQkFXb2lBRUVnUncwQUMwR1VIeUFHUVNocklnQkJlQ0FDYTBFSGNTSUJheUlFTmdJQVFhQWZJQUVnQW1vaUFUWUNBQ0FCSUFSQkFYSTJBZ1FnQUNBQ2FrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBUUxJQUlnQTAwZ0FTQURTM0lOQWlBQUtBSU1RUWh4RFFJZ0FDQUVJQVpxTmdJRVFhQWZJQU5CZUNBRGEwRUhjU0lBYWlJQk5nSUFRWlFmUVpRZktBSUFJQVpxSWdJZ0FHc2lBRFlDQUNBQklBQkJBWEkyQWdRZ0FpQURha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQU1MUVFBaEJBd0tDMEVBSVFJTUNBdEJtQjhvQWdBZ0Frc0VRRUdZSHlBQ05nSUFDeUFDSUFacUlRRkJ5Q0loQUFKQUFrQUNRQU5BSUFFZ0FDZ0NBRWNFUUNBQUtBSUlJZ0FOQVF3Q0N3c2dBQzBBREVFSWNVVU5BUXRCeUNJaEFBTkFJQU1nQUNnQ0FDSUJUd1JBSUFFZ0FDZ0NCR29pQkNBRFN3MERDeUFBS0FJSUlRQU1BQXNBQ3lBQUlBSTJBZ0FnQUNBQUtBSUVJQVpxTmdJRUlBSkJlQ0FDYTBFSGNXb2lCeUFGUVFOeU5nSUVJQUZCZUNBQmEwRUhjV29pQmlBRklBZHFJZ1ZySVFBZ0F5QUdSZ1JBUWFBZklBVTJBZ0JCbEI5QmxCOG9BZ0FnQUdvaUFEWUNBQ0FGSUFCQkFYSTJBZ1FNQ0F0Qm5COG9BZ0FnQmtZRVFFR2NIeUFGTmdJQVFaQWZRWkFmS0FJQUlBQnFJZ0EyQWdBZ0JTQUFRUUZ5TmdJRUlBQWdCV29nQURZQ0FBd0lDeUFHS0FJRUlnTkJBM0ZCQVVjTkJpQURRWGh4SVFrZ0EwSC9BVTBFUUNBR0tBSU1JZ0VnQmlnQ0NDSUNSZ1JBUVlnZlFZZ2ZLQUlBUVg0Z0EwRURkbmR4TmdJQURBY0xJQUlnQVRZQ0RDQUJJQUkyQWdnTUJnc2dCaWdDR0NFSUlBWWdCaWdDRENJQ1J3UkFJQVlvQWdnaUFTQUNOZ0lNSUFJZ0FUWUNDQXdGQ3lBR1FSUnFJZ0VvQWdBaUEwVUVRQ0FHS0FJUUlnTkZEUVFnQmtFUWFpRUJDd05BSUFFaEJDQURJZ0pCRkdvaUFTZ0NBQ0lERFFBZ0FrRVFhaUVCSUFJb0FoQWlBdzBBQ3lBRVFRQTJBZ0FNQkF0QmxCOGdCa0VvYXlJQVFYZ2dBbXRCQjNFaUFXc2lDRFlDQUVHZ0h5QUJJQUpxSWdFMkFnQWdBU0FJUVFGeU5nSUVJQUFnQW1wQktEWUNCRUdrSDBId0lpZ0NBRFlDQUNBRElBUkJKeUFFYTBFSGNXcEJMMnNpQUNBQUlBTkJFR3BKR3lJQlFSczJBZ1FnQVVIUUlpa0NBRGNDRUNBQlFjZ2lLUUlBTndJSVFkQWlJQUZCQ0dvMkFnQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFkUWlRUUEyQWdBZ0FVRVlhaUVBQTBBZ0FFRUhOZ0lFSUFCQkNHb2dBRUVFYWlFQUlBUkpEUUFMSUFFZ0EwWU5BQ0FCSUFFb0FnUkJmbkUyQWdRZ0F5QUJJQU5ySWdKQkFYSTJBZ1FnQVNBQ05nSUFJQUpCL3dGTkJFQWdBa0Y0Y1VHd0gyb2hBQUovUVlnZktBSUFJZ0ZCQVNBQ1FRTjJkQ0lDY1VVRVFFR0lIeUFCSUFKeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQVNBQUlBTTJBZ2dnQVNBRE5nSU1JQU1nQURZQ0RDQURJQUUyQWdnTUFRdEJIeUVBSUFKQi8vLy9CMDBFUUNBQ1FTWWdBa0VJZG1jaUFHdDJRUUZ4SUFCQkFYUnJRVDVxSVFBTElBTWdBRFlDSENBRFFnQTNBaEFnQUVFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUJFRUJJQUIwSWdaeFJRUkFRWXdmSUFRZ0JuSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkdTQUFRUUYyYTBFQUlBQkJIMGNiZENFQUlBRW9BZ0FoQkFOQUlBUWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCQ0FBUVFGMElRQWdBU0FFUVFSeGFpSUdLQUlRSWdRTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xRWlFmS0FJQUlnQWdCVTBOQUVHVUh5QUFJQVZySWdFMkFnQkJvQjlCb0I4b0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQWdMUVlRZlFUQTJBZ0JCQUNFQURBY0xRUUFoQWdzZ0NFVU5BQUpBSUFZb0Fod2lBVUVDZEVHNElXb2lCQ2dDQUNBR1JnUkFJQVFnQWpZQ0FDQUNEUUZCakI5QmpCOG9BZ0JCZmlBQmQzRTJBZ0FNQWdzZ0NFRVFRUlFnQ0NnQ0VDQUdSaHRxSUFJMkFnQWdBa1VOQVFzZ0FpQUlOZ0lZSUFZb0FoQWlBUVJBSUFJZ0FUWUNFQ0FCSUFJMkFoZ0xJQVlvQWhRaUFVVU5BQ0FDSUFFMkFoUWdBU0FDTmdJWUN5QUFJQWxxSVFBZ0JpQUphaUlHS0FJRUlRTUxJQVlnQTBGK2NUWUNCQ0FGSUFCQkFYSTJBZ1FnQUNBRmFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVGNGNVR3dIMm9oQVFKL1FZZ2ZLQUlBSWdKQkFTQUFRUU4yZENJQWNVVUVRRUdJSHlBQUlBSnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEFDQUJJQVUyQWdnZ0FDQUZOZ0lNSUFVZ0FUWUNEQ0FGSUFBMkFnZ01BUXRCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQVVnQXpZQ0hDQUZRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlBa0VCSUFOMElnUnhSUVJBUVl3ZklBSWdCSEkyQWdBZ0FTQUZOZ0lBREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFnTkFJQUlpQVNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQWlBRFFRRjBJUU1nQVNBQ1FRUnhhaUlFS0FJUUlnSU5BQXNnQkNBRk5nSVFDeUFGSUFFMkFoZ2dCU0FGTmdJTUlBVWdCVFlDQ0F3QkN5QUJLQUlJSWdBZ0JUWUNEQ0FCSUFVMkFnZ2dCVUVBTmdJWUlBVWdBVFlDRENBRklBQTJBZ2dMSUFkQkNHb2hBQXdDQ3dKQUlBZEZEUUFDUUNBRUtBSWNJZ0JCQW5SQnVDRnFJZ0VvQWdBZ0JFWUVRQ0FCSUFJMkFnQWdBZzBCUVl3ZklBaEJmaUFBZDNFaUNEWUNBQXdDQ3lBSFFSQkJGQ0FIS0FJUUlBUkdHMm9nQWpZQ0FDQUNSUTBCQ3lBQ0lBYzJBaGdnQkNnQ0VDSUFCRUFnQWlBQU5nSVFJQUFnQWpZQ0dBc2dCQ2dDRkNJQVJRMEFJQUlnQURZQ0ZDQUFJQUkyQWhnTEFrQWdBMEVQVFFSQUlBUWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0JHb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBUWdCVUVEY2pZQ0JDQUVJQVZxSWdJZ0EwRUJjallDQkNBQ0lBTnFJQU0yQWdBZ0EwSC9BVTBFUUNBRFFYaHhRYkFmYWlFQUFuOUJpQjhvQWdBaUFVRUJJQU5CQTNaMElnTnhSUVJBUVlnZklBRWdBM0kyQWdBZ0FBd0JDeUFBS0FJSUN5RUJJQUFnQWpZQ0NDQUJJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0FUWUNDQXdCQzBFZklRQWdBMEgvLy84SFRRUkFJQU5CSmlBRFFRaDJaeUlBYTNaQkFYRWdBRUVCZEd0QlBtb2hBQXNnQWlBQU5nSWNJQUpDQURjQ0VDQUFRUUowUWJnaGFpRUJBa0FDUUNBSVFRRWdBSFFpQm5GRkJFQkJqQjhnQmlBSWNqWUNBQ0FCSUFJMkFnQU1BUXNnQTBFWklBQkJBWFpyUVFBZ0FFRWZSeHQwSVFBZ0FTZ0NBQ0VGQTBBZ0JTSUJLQUlFUVhoeElBTkdEUUlnQUVFZGRpRUdJQUJCQVhRaEFDQUJJQVpCQkhGcUlnWW9BaEFpQlEwQUN5QUdJQUkyQWhBTElBSWdBVFlDR0NBQ0lBSTJBZ3dnQWlBQ05nSUlEQUVMSUFFb0FnZ2lBQ0FDTmdJTUlBRWdBallDQ0NBQ1FRQTJBaGdnQWlBQk5nSU1JQUlnQURZQ0NBc2dCRUVJYWlFQURBRUxBa0FnQ1VVTkFBSkFJQUlvQWh3aUFFRUNkRUc0SVdvaUFTZ0NBQ0FDUmdSQUlBRWdCRFlDQUNBRURRRkJqQjhnQzBGK0lBQjNjVFlDQUF3Q0N5QUpRUkJCRkNBSktBSVFJQUpHRzJvZ0JEWUNBQ0FFUlEwQkN5QUVJQWsyQWhnZ0FpZ0NFQ0lBQkVBZ0JDQUFOZ0lRSUFBZ0JEWUNHQXNnQWlnQ0ZDSUFSUTBBSUFRZ0FEWUNGQ0FBSUFRMkFoZ0xBa0FnQTBFUFRRUkFJQUlnQXlBRmFpSUFRUU55TmdJRUlBQWdBbW9pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQUlnQlVFRGNqWUNCQ0FDSUFWcUlnUWdBMEVCY2pZQ0JDQURJQVJxSUFNMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFCQm5COG9BZ0FoQVFKL1FRRWdCMEVEZG5RaUJTQUdjVVVFUUVHSUh5QUZJQVp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hCaUFBSUFFMkFnZ2dCaUFCTmdJTUlBRWdBRFlDRENBQklBWTJBZ2dMUVp3ZklBUTJBZ0JCa0I4Z0F6WUNBQXNnQWtFSWFpRUFDeUFLUVJCcUpBQWdBQXZTQ3dFSGZ3SkFJQUJGRFFBZ0FFRUlheUlDSUFCQkJHc29BZ0FpQVVGNGNTSUFhaUVGQWtBZ0FVRUJjUTBBSUFGQkEzRkZEUUVnQWlBQ0tBSUFJZ0ZySWdKQm1COG9BZ0JKRFFFZ0FDQUJhaUVBQWtBQ1FFR2NIeWdDQUNBQ1J3UkFJQUZCL3dGTkJFQWdBVUVEZGlFRUlBSW9BZ3dpQVNBQ0tBSUlJZ05HQkVCQmlCOUJpQjhvQWdCQmZpQUVkM0UyQWdBTUJRc2dBeUFCTmdJTUlBRWdBellDQ0F3RUN5QUNLQUlZSVFZZ0FpQUNLQUlNSWdGSEJFQWdBaWdDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFKQkZHb2lCQ2dDQUNJRFJRUkFJQUlvQWhBaUEwVU5BaUFDUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRktBSUVJZ0ZCQTNGQkEwY05Ba0dRSHlBQU5nSUFJQVVnQVVGK2NUWUNCQ0FDSUFCQkFYSTJBZ1FnQlNBQU5nSUFEd3RCQUNFQkN5QUdSUTBBQWtBZ0FpZ0NIQ0lEUVFKMFFiZ2hhaUlFS0FJQUlBSkdCRUFnQkNBQk5nSUFJQUVOQVVHTUgwR01IeWdDQUVGK0lBTjNjVFlDQUF3Q0N5QUdRUkJCRkNBR0tBSVFJQUpHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQVkyQWhnZ0FpZ0NFQ0lEQkVBZ0FTQUROZ0lRSUFNZ0FUWUNHQXNnQWlnQ0ZDSURSUTBBSUFFZ0F6WUNGQ0FESUFFMkFoZ0xJQUlnQlU4TkFDQUZLQUlFSWdGQkFYRkZEUUFDUUFKQUFrQUNRQ0FCUVFKeFJRUkFRYUFmS0FJQUlBVkdCRUJCb0I4Z0FqWUNBRUdVSDBHVUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FDUVp3ZktBSUFSdzBHUVpBZlFRQTJBZ0JCbkI5QkFEWUNBQThMUVp3ZktBSUFJQVZHQkVCQm5COGdBallDQUVHUUgwR1FIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQUlBSnFJQUEyQWdBUEN5QUJRWGh4SUFCcUlRQWdBVUgvQVUwRVFDQUJRUU4ySVFRZ0JTZ0NEQ0lCSUFVb0FnZ2lBMFlFUUVHSUgwR0lIeWdDQUVGK0lBUjNjVFlDQUF3RkN5QURJQUUyQWd3Z0FTQUROZ0lJREFRTElBVW9BaGdoQmlBRklBVW9BZ3dpQVVjRVFFR1lIeWdDQUJvZ0JTZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQVZCRkdvaUJDZ0NBQ0lEUlFSQUlBVW9BaEFpQTBVTkFpQUZRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGSUFGQmZuRTJBZ1FnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUF3REMwRUFJUUVMSUFaRkRRQUNRQ0FGS0FJY0lnTkJBblJCdUNGcUlnUW9BZ0FnQlVZRVFDQUVJQUUyQWdBZ0FRMEJRWXdmUVl3ZktBSUFRWDRnQTNkeE5nSUFEQUlMSUFaQkVFRVVJQVlvQWhBZ0JVWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0JqWUNHQ0FGS0FJUUlnTUVRQ0FCSUFNMkFoQWdBeUFCTmdJWUN5QUZLQUlVSWdORkRRQWdBU0FETmdJVUlBTWdBVFlDR0FzZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FDQUNRWndmS0FJQVJ3MEFRWkFmSUFBMkFnQVBDeUFBUWY4QlRRUkFJQUJCZUhGQnNCOXFJUUVDZjBHSUh5Z0NBQ0lEUVFFZ0FFRURkblFpQUhGRkJFQkJpQjhnQUNBRGNqWUNBQ0FCREFFTElBRW9BZ2dMSVFBZ0FTQUNOZ0lJSUFBZ0FqWUNEQ0FDSUFFMkFnd2dBaUFBTmdJSUR3dEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBSWdBellDSENBQ1FnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQUNRRUdNSHlnQ0FDSUVRUUVnQTNRaUIzRkZCRUJCakI4Z0JDQUhjallDQUNBQklBSTJBZ0FnQWlBQk5nSVlEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQVFOQUlBRWlCQ2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBU0FEUVFGMElRTWdCQ0FCUVFSeGFpSUhRUkJxS0FJQUlnRU5BQXNnQnlBQ05nSVFJQUlnQkRZQ0dBc2dBaUFDTmdJTUlBSWdBallDQ0F3QkN5QUVLQUlJSWdBZ0FqWUNEQ0FFSUFJMkFnZ2dBa0VBTmdJWUlBSWdCRFlDRENBQ0lBQTJBZ2dMUWFnZlFhZ2ZLQUlBUVFGcklnQkJmeUFBR3pZQ0FBc0xCQUFqQUFzR0FDQUFKQUFMRUFBakFDQUFhMEZ3Y1NJQUpBQWdBQXRLQVFGL0lBQWdBVWtFUUNBQUlBRWdBaEFDRHdzZ0FnUkFJQUFnQW1vaEF5QUJJQUpxSVFFRFFDQURRUUZySWdNZ0FVRUJheUlCTFFBQU9nQUFJQUpCQVdzaUFnMEFDd3NnQUF2OURnSVJmd0YrSXdCQk1Hc2lCeVFBUWJoL0lRZ0NRQ0FGUlEwQUlBUXNBQUFpQ1VIL0FYRWhDd0pBSUFsQkFFZ0VRQ0FMUWY0QWEwRUJkaUlHSUFWUERRSkJiQ0VJSUF0Qi93QnJJZ3RCL3dGTERRSWdCRUVCYWlFSVFRQWhCUU5BSUFVZ0MwOEVRQ0FMSVFnZ0JpRUxEQU1GSUFBZ0JXb2dDQ0FGUVFGMmFpSUVMUUFBUVFSMk9nQUFJQUFnQlVFQmNtb2dCQzBBQUVFUGNUb0FBQ0FGUVFKcUlRVU1BUXNBQ3dBTElBVWdDMDBOQVNBSFFmOEJOZ0lFSUFZZ0IwRUVhaUFIUVFocUlBUkJBV29pRGlBTEVBd2lCRUdJZjBzRVFDQUVJUWdNQWd0QlZDRUlJQWNvQWdnaUVFRUdTdzBCSUFjb0FnUWlFVUVCZENJSlFRSnFyVUlCSUJDdGhpSVlRUUVnRUhRaURVRUJhaUlGclVJQ2hueDhRZ3Q4UXZ6Ly8vLy8vLy8vL3dDRFF1UUNWZzBCUVZJaENDQVJRZjhCU3cwQklBMUJmM05CQW5SQjVBSnFyU0FSUVFGcUloVkJBWFN0SUJoOFFnaDhWQTBCSUFzZ0JHc2hGaUFFSUE1cUlSY2dCa0dBQkdvaUVpQUZRUUowYWlJUklBbHFRUUpxSVE0Z0JrR0VCR29oRTBHQWdBSWdFSFJCRUhZaENVRUFJUVZCQVNFUElBMUJBV3NpRkNFS0EwQWdCU0FWUmtVRVFBSkFJQVlnQlVFQmRDSUlhaThCQUNJRVFmLy9BMFlFUUNBVElBcEJBblJxSUFVNkFBSWdDa0VCYXlFS1FRRWhCQXdCQ3lBUFFRQWdDU0FFd1VvYklROExJQWdnRVdvZ0JEc0JBQ0FGUVFGcUlRVU1BUXNMSUFZZ0R6c0JnZ1FnQmlBUU93R0FCQUpBSUFvZ0ZFWUVRQ0FOUVFOMklRaENBQ0VZUVFBaER3TkFJQXdnRlVZRVFDQUlJQTFCQVhacVFRTnFJZ2xCQVhRaENFRUFJUVJCQUNFS0EwQkJBQ0VGSUFvZ0RVOE5CQU5BSUFWQkFrWkZCRUFnRXlBRklBbHNJQVJxSUJSeFFRSjBhaUFPSUFVZ0NtcHFMUUFBT2dBQ0lBVkJBV29oQlF3QkN3c2dDa0VDYWlFS0lBUWdDR29nRkhFaEJBd0FDd0FGSUFZZ0RFRUJkR291QVFBaENTQU9JQTlxSWdRZ0dEY0FBRUVJSVFVRFFDQUZJQWxPUlFSQUlBUWdCV29nR0RjQUFDQUZRUWhxSVFVTUFRc0xJQmhDZ1lLRWlKQ2d3SUFCZkNFWUlBeEJBV29oRENBSklBOXFJUThNQVFzQUN3QUxJQTFCQTNZZ0RVRUJkbXBCQTJvaENFRUFJUVVEUUNBTUlCVkdSUVJBUVFBaENTQUdJQXhCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQUpSa1VFUUNBVElBVkJBblJxSUF3NkFBSURRQ0FGSUFocUlCUnhJZ1VnQ2tzTkFBc2dDVUVCYWlFSkRBRUxDeUFNUVFGcUlRd01BUXNMUVg4aENDQUZEUUlMSUJCQkFXb2hDRUVBSVFVRFFDQUZJQTFHUlFSQUlCRWdFeUFGUVFKMGFpSU9MUUFDUVFGMGFpSUVJQVF2QVFBaUNVRUJhanNCQUNBT0lBZ2dDV2RCWUhOcUlnUTZBQU1nRGlBSklBUjBJQTFyT3dFQUlBVkJBV29oQlF3QkN3c0NRQUpBSUFZdkFZSUVCRUFnQjBFY2FpSUVJQmNnRmhBTklnaEJpSDlMRFFJZ0IwRVVhaUFFSUJJUURpQUhRUXhxSUFRZ0VoQU9RUUFoQlFOQUlBZEJIR29pQkJBUElBVkIrd0ZMY2cwQ0lBQWdCV29pQmlBSFFSUnFJQVFRRURvQUFDQUdJQWRCREdvZ0JCQVFPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVTUF3VWdBQ0FFYWlBSFFSUnFJQWRCSEdvaUJCQVFPZ0FBSUFZZ0IwRU1haUFFRUJBNkFBTWdCVUVFYWlFRkRBRUxBQXNBQ3lBSFFSeHFJZ1FnRnlBV0VBMGlDRUdJZjBzTkFTQUhRUlJxSUFRZ0VoQU9JQWRCREdvZ0JDQVNFQTVCQUNFRkEwQWdCMEVjYWlJRUVBOGdCVUg3QVV0eVJRUkFJQUFnQldvaUJpQUhRUlJxSUFRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVUZJQUFnQkdvZ0IwRVVhaUFIUVJ4cUlnUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQURJQVZCQkdvaEJRd0NDd3NMQW44RFFFRzZmeUVJSUFWQi9RRkxEUU1nQUNBRmFpSUdJQWRCRkdvZ0IwRWNhaUlKRUJFNkFBQWdCa0VCYWlFRUlBa1FEMEVEUmdSQUlBZEJER29oQ0VFQ0RBSUxJQVZCL0FGTERRTWdCaUFIUVF4cUlBZEJIR29pQkJBUk9nQUJJQVZCQW1vaEJTQUVFQTlCQTBjTkFBc2dBQ0FGYWlFRUlBZEJGR29oQ0VFREN5QUVJQWdnQjBFY2FoQVJPZ0FBSUFacUlBQnJJUWdNQVFzQ2Z3TkFRYnAvSVFnZ0JVSDlBVXNOQWlBQUlBVnFJZ1lnQjBFVWFpQUhRUnhxSWdrUUVEb0FBQ0FHUVFGcUlRUWdDUkFQUVFOR0JFQWdCMEVNYWlFSVFRSU1BZ3NnQlVIOEFVc05BaUFHSUFkQkRHb2dCMEVjYWlJRUVCQTZBQUVnQlVFQ2FpRUZJQVFRRDBFRFJ3MEFDeUFBSUFWcUlRUWdCMEVVYWlFSVFRTUxJQVFnQ0NBSFFSeHFFQkE2QUFBZ0Jtb2dBR3NoQ0FzZ0NFR0lmMHNOQVFzZ0NDRUVRUUFoQlNBQlFRQkJOQkFESVFsQkFDRUtBMEFnQkNBRlJ3UkFJQUFnQldvaUJpMEFBQ0lCUVF0TEJFQkJiQ0VJREFNRklBa2dBVUVDZEdvaUFTQUJLQUlBUVFGcU5nSUFJQVZCQVdvaEJVRUJJQVl0QUFCMFFRRjFJQXBxSVFvTUFnc0FDd3RCYkNFSUlBcEZEUUFnQ21jaUJVRWZjeUlCUVF0TERRQWdBMEVnSUFWck5nSUFRUUZCQWlBQmRDQUtheUlEWjBFZmN5SUJkQ0FEUncwQUlBQWdCR29nQVVFQmFpSUFPZ0FBSUFrZ0FFRUNkR29pQUNBQUtBSUFRUUZxTmdJQUlBa29BZ1FpQUVFQ1NTQUFRUUZ4Y2cwQUlBSWdCRUVCYWpZQ0FDQUxRUUZxSVFnTElBZEJNR29rQUNBSUM2QUZBUXgvSXdCQkVHc2lEQ1FBQW44Z0JFRUhUUVJBSUF4Q0FEY0RDQ0FNUVFocUlnVWdBeUFFRUFJYVFXd2dBQ0FCSUFJZ0JVRUlFQXdpQUNBQUlBUkxHeUFBSUFCQmlYOUpHd3dCQ3lBQVFRQWdBU2dDQUVFQmFpSU5RUUYwRUFNaEQwRlVJQU1vQUFBaUJrRVBjU0lBUVFwTERRQWFJQUlnQUVFRmFqWUNBQ0FESUFScUlnSkJCR3NoQnlBQ1FRZHJJUXNnQUVFR2FpRU9RUVFoQWlBR1FRUjJJUVZCSUNBQWRDSUlRUUZ5SVFsQkFDRUFRUUVoQmlBRElRUURRQUpBSUFaQkFYRkZCRUFEUUNBRlFYOXpRWUNBZ0lCNGNtZ2lCa0VZU1VVRVFDQUFRU1JxSVFBZ0JDQUxUUVIvSUFSQkEyb0ZJQVFnQzJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTElBSWdCa0VlY1NJS2FrRUNhaUVDSUFaQkFYWkJBMndnQUdvZ0JTQUtka0VEY1dvaUFDQU5UdzBCQW44Z0JDQUxTeUFDUVFOMklBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFRZ0IydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTElBVWdDRUVCYTNFaUJpQUlRUUYwUVFGcklnb2dDV3NpRUVrRWZ5QU9RUUZyQlNBRklBcHhJZ1VnRUVFQUlBVWdDRTRiYXlFR0lBNExJUVVnRHlBQVFRRjBhaUFHUVFGcklnbzdBUUFnQUVFQmFpRUFJQUlnQldvaEFpQUlRUUVnQm1zZ0NpQUdRUUJLR3lBSmFpSUpTZ1JBSUFsQkFrZ05BVUVnSUFsbklnVnJJUTVCQVNBRlFSOXpkQ0VJQ3lBQUlBMVBEUUFnQ2tFQVJ5RUdBbjhnQkNBTFN5QUNRUU4xSUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQUlnQkNBSGEwRURkR3BCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTFFXd2dDVUVCUncwQUdrRlFJQUFnRFVzTkFCcEJiQ0FDUVNCS0RRQWFJQUVnQUVFQmF6WUNBQ0FFSUFKQkIycEJBM1ZxSUFOckN5QU1RUkJxSkFBTDhnRUJBWDhnQWtVRVFDQUFRZ0EzQWdBZ0FFRUFOZ0lRSUFCQ0FEY0NDRUc0Znc4TElBQWdBVFlDRENBQUlBRkJCR28yQWhBZ0FrRUVUd1JBSUFBZ0FTQUNhaUlCUVFScklnTTJBZ2dnQUNBREtBQUFOZ0lBSUFGQkFXc3RBQUFpQVFSQUlBQWdBV2RCRjJzMkFnUWdBZzhMSUFCQkFEWUNCRUYvRHdzZ0FDQUJOZ0lJSUFBZ0FTMEFBQ0lETmdJQUFrQUNRQUpBSUFKQkFtc09BZ0VBQWdzZ0FDQUJMUUFDUVJCMElBTnlJZ00yQWdBTElBQWdBUzBBQVVFSWRDQURhallDQUFzZ0FTQUNha0VCYXkwQUFDSUJSUVJBSUFCQkFEWUNCRUZzRHdzZ0FDQUJaeUFDUVFOMGEwRUphallDQkNBQ0MwUUJBbjhnQVNBQ0x3RUFJZ01nQVNnQ0JHb2lCRFlDQkNBQUlBTkJBblJCb0IxcUtBSUFJQUVvQWdCQkFDQUVhM1p4TmdJQUlBRVFEeG9nQUNBQ1FRUnFOZ0lFQzU4QkFRUi9RUU1oQVNBQUtBSUVJZ0pCSUUwRVFDQUFLQUlJSWdFZ0FDZ0NFRThFUUNBQUlBSkJCM0UyQWdRZ0FDQUJJQUpCQTNacklnSTJBZ2dnQUNBQ0tBQUFOZ0lBUVFBUEN5QUFLQUlNSWdNZ0FVWUVRRUVCUVFJZ0FrRWdTUnNQQ3lBQUlBRWdBU0FEYXlBQ1FRTjJJZ1FnQVNBRWF5QURTU0lCR3lJRGF5SUVOZ0lJSUFBZ0FpQURRUU4wYXpZQ0JDQUFJQVFvQUFBMkFnQUxJQUVMU0FFRWZ5QUFLQUlFSUFBb0FnQkJBblJxSWdJdEFBSWdBaThCQUNFRUlBRWdBU2dDQkNJRklBSXRBQU1pQW1vMkFnUWdBQ0FFSUFFb0FnQWdCWFJCQUNBQ2EzWnFOZ0lBQzFJQkJIOGdBQ2dDQkNBQUtBSUFRUUowYWlJQ0xRQUNJQUl2QVFBaEJDQUJJQUl0QUFNaUFpQUJLQUlFYWlJRk5nSUVJQUFnQkNBQ1FRSjBRYUFkYWlnQ0FDQUJLQUlBUVFBZ0JXdDJjV28yQWdBTENBQWdBRUdJZjBzTEdnQWdBQVJBSUFFRVFDQUNJQUFnQVJFQ0FBOExJQUFRQmdzTHBnZ0NEWDhCZmlNQVFSQnJJZ2trQUNBSlFRQTJBZ3dnQ1VFQU5nSUlBbjhDUUNBRFFlZ0phaUFESUFsQkNHb2dDVUVNYWlBQklBSWdBMEdBQVdvUUN5SVBRWWgvU3cwQVFWUWdDU2dDRENJRUlBQW9BZ0FpQVVIL0FYRkJBV3BMRFFFYUlBQkJCR29oQ3lBQUlBRkIvNEdBZUhFZ0JFRVFkRUdBZ1B3SGNYSTJBZ0JCZnlBRUlBUkJBRWdiUVFGcUlRQkJBQ0VCSUFrb0FnZ2hCVUVBSVFJRFFDQUFJQUpHQkVBZ0JVRURheUVCUVFBaEFBTkFBa0JCQUNFQ0lBQWdBVTRFUUFOQUlBQWdCVTROQWlBRElBQWdBMnBCNkFscUxRQUFRUUowYWtGQWF5SUJJQUVvQWdBaUFVRUJhallDQUNBQklBTnFJQUE2QU9nSElBQkJBV29oQUF3QUN3QUZBMEFnQWtFRVJrVUVRQ0FESUFNZ0FDQUNhaUlIYWtIb0NXb3RBQUJCQW5ScVFVQnJJZ2dnQ0NnQ0FDSUlRUUZxTmdJQUlBTWdDR29nQnpvQTZBY2dBa0VCYWlFQ0RBRUxDeUFBUVFScUlRQU1BZ3NBQ3dzZ0JFRUJhaUVPSUFNb0FnQWhCMEVBSVFCQkFTRUlBMEFnQ0NBT1JnMERJQTRnQ0dzaEJDQURJQWhCQW5ScUtBSUFJUVVDUUFKQUFrQUNRQUpBQWtCQkFTQUlkRUVCZFNJTlFRRnJEZ2dBQVFRQ0JBUUVBd1FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFBSVFFRFFDQUNJQVpHRFFVZ0F5QUNJQWRxYWkwQTZBY2hDaUFMSUFGQkFYUnFJZ3dnQkRvQUFTQU1JQW82QUFBZ0FrRUJhaUVDSUFGQkFXb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQ2lBQUlRRURRQ0FDSUFwR0RRUWdDeUFCUVFGMGFpSUdJQU1nQWlBSGFtb3RBT2dISWd3NkFBSWdCaUFFT2dBQklBWWdERG9BQUNBR0lBUTZBQU1nQWtFQmFpRUNJQUZCQW1vaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFFUVFoMFFZRCtBM0VoQkNBQUlRRURRQ0FDSUFaR0RRTWdDeUFCUVFGMGFpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK053QUFJQUpCQVdvaEFpQUJRUVJxSVFFTUFBc0FDMEVBSVFJZ0JVRUFJQVZCQUVvYklRWWdCRUVJZEVHQS9nTnhJUVFnQUNFQkEwQWdBaUFHUmcwQ0lBc2dBVUVCZEdvaUNpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0loRTNBQWdnQ2lBUk53QUFJQUpCQVdvaEFpQUJRUWhxSVFFTUFBc0FDMEVBSVFFZ0JVRUFJQVZCQUVvYklRb2dCRUVJZEVHQS9nTnhJUXdnQUNFRUEwQWdBU0FLUmcwQklBc2dCRUVCZEdvaEVDQU1JQU1nQVNBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0lSRkJBQ0VDQTBBZ0FpQU5Ua1VFUUNBUUlBSkJBWFJxSWdZZ0VUY0FHQ0FHSUJFM0FCQWdCaUFSTndBSUlBWWdFVGNBQUNBQ1FSQnFJUUlNQVFzTElBRkJBV29oQVNBRUlBMXFJUVFNQUFzQUN5QUlRUUZxSVFnZ0JTQUhhaUVISUFVZ0RXd2dBR29oQUF3QUN3QUZJQU1nQWtFQ2RHb2lCMEZBYXlBQk5nSUFJQUpCQVdvaEFpQUhLQUlBSUFGcUlRRU1BUXNBQ3dBTElBOExJQWxCRUdva0FBdnlBZ0VHZnlNQVFTQnJJZ1VrQUNBRUtBSUFJUVlnQlVFTWFpQUNJQU1RRFNJRFFZaC9UUVJBSUFSQkJHb2hBaUFBSUFGcUlnbEJBMnNoQkVFQUlBWkJFSFpyUVI5eElRTURRQ0FGUVF4cUVBOGdBQ0FFVDNKRkJFQWdBaUFGS0FJTUlnWWdCU2dDRUNJSGRDQURka0VCZEdvaUNDMEFBU0VLSUFBZ0NDMEFBRG9BQUNBQ0lBWWdCeUFLYWlJR2RDQURka0VCZEdvaUJ5MEFBQ0VJSUFVZ0JpQUhMUUFCYWpZQ0VDQUFJQWc2QUFFZ0FFRUNhaUVBREFFTEN3TkFJQVZCREdvUUR5RUhJQVVvQWd3aEJpQUZLQUlRSVFRZ0FDQUpUeUFIY2tVRVFDQUNJQVlnQkhRZ0EzWkJBWFJxSWdZdEFBQWhCeUFGSUFRZ0JpMEFBV28yQWhBZ0FDQUhPZ0FBSUFCQkFXb2hBQXdCQ3dzRFFDQUFJQWxQUlFSQUlBSWdCaUFFZENBRGRrRUJkR29pQnkwQUFTRUlJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdCQ0FJYWlFRURBRUxDMEZzUVd3Z0FTQUZLQUlVSUFVb0FoaEhHeUFFUVNCSEd5RURDeUFGUVNCcUpBQWdBd3ZQRkFFamZ5TUFRZEFBYXlJRkpBQkJiQ0VKQWtBZ0EwRUtTUTBBQWtBZ0F5QUNMd0FFSWdjZ0FpOEFBQ0lJSUFJdkFBSWlEV3BxUVFacUlneEpEUUFnQkM4QkFpRUdJQVZCUEdvZ0FrRUdhaUlDSUFnUURTSUpRWWgvU3cwQklBVkJLR29nQWlBSWFpSUNJQTBRRFNJSlFZaC9TdzBCSUFWQkZHb2dBaUFOYWlJQ0lBY1FEU0lKUVloL1N3MEJJQVVnQWlBSGFpQURJQXhyRUEwaUNVR0lmMHNOQVNBRVFRUnFJUW9nQUNBQmFpSWZRUU5ySVNCQkFDQUdhMEVmY1NFTElBVW9BZ2doRVNBRktBSWNJUklnQlNnQ01DRVRJQVVvQWtRaEZDQUZLQUlFSVFrZ0JTZ0NHQ0VOSUFVb0Fpd2hEQ0FGS0FKQUlRWWdCU2dDRUNFaElBVW9BaVFoSWlBRktBSTRJU01nQlNnQ1RDRWtJQVVvQWdBaEZTQUZLQUlVSVJZZ0JTZ0NLQ0VYSUFVb0Fqd2hHRUVCSVE4Z0FDQUJRUU5xUVFKMklnUnFJZ01nQkdvaUFpQUVhaUlaSVFRZ0FpRUlJQU1oQndOQUlBOUJBWEZGSUFRZ0lFOXlSUVJBSUFBZ0NpQVlJQVowSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEdpQU9MUUFESVJBZ0J5QUtJQmNnREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnRGkwQUFpRWJJQTR0QUFNaER5QUlJQW9nRmlBTmRDQUxka0VDZEdvaURpOEJBRHNBQUNBT0xRQUNJUndnRGkwQUF5RWRJQVFnQ2lBVklBbDBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloSGlBT0xRQURJUTRnQUNBUWFpSWxJQW9nR0NBR0lCcHFJZ1owSUF0MlFRSjBhaUlRTHdFQU93QUFJQkF0QUFJZ0VDMEFBeUVtSUFjZ0Qyb2lKeUFLSUJjZ0RDQWJhaUlhZENBTGRrRUNkR29pQnk4QkFEc0FBQ0FITFFBQ0lRd2dCeTBBQXlFUUlBZ2dIV29pR3lBS0lCWWdEU0FjYWlJUGRDQUxka0VDZEdvaUNDOEJBRHNBQUNBSUxRQUNJUTBnQ0MwQUF5RWNJQVFnRG1vaUhTQUtJQlVnQ1NBZWFpSU9kQ0FMZGtFQ2RHb2lDUzhCQURzQUFDQUdhaUVBUVFNaEJ3Si9JQlFnSkVrRVFDQUFJUVpCQXd3QkN5QUFRUWR4SVFZZ0ZDQUFRUU4yYXlJVUtBQUFJUmhCQUFzZ0NTMEFBeUVlSUFrdEFBSWhDQ0FNSUJwcUlRQWdFeUFqU1FSL0lBQUZJQk1nQUVFRGRtc2lFeWdBQUNFWFFRQWhCeUFBUVFkeEN5RU1JQTBnRDJvaEFDQUhjaUVKUVFNaER3Si9JQklnSWtrRVFDQUFJUTFCQXd3QkN5QUFRUWR4SVEwZ0VpQUFRUU4yYXlJU0tBQUFJUlpCQUFzZ0NDQU9haUVBSUFseUlCRWdJVWtFZnlBQUJTQVJJQUJCQTNackloRW9BQUFoRlVFQUlROGdBRUVIY1FzaENTQWxJQ1pxSVFBZ0VDQW5haUVISUJzZ0hHb2hDQ0FkSUI1cUlRUWdEM0pGSVE4TUFRc0xJQVVnRERZQ0xDQUZJQVkyQWtBZ0JTQU5OZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFJZ0Iwa2dBQ0FEUzNJTkFFRnNJUWtnQ0NBWlN3MEJJQU5CQTJzaENRTkFJQVZCUEdvUUQwVWdBQ0FKU1hFRVFDQUFJQW9nQlNnQ1BDSU5JQVVvQWtBaURIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0FDQU9MUUFEYWlJR0lBb2dEU0FNSUE0dEFBSnFJZ0IwSUF0MlFRSjBhaUlNTHdFQU93QUFJQVVnQUNBTUxRQUNhallDUUNBR0lBd3RBQU5xSVFBTUFRVWdBMEVDYXlFTUEwQWdCVUU4YWhBUElRWWdCU2dDUENFTklBVW9Ba0FoQ1NBQUlBeExJQVp5UlFSQUlBQWdDaUFOSUFsMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0NTQUdMUUFDYWpZQ1FDQUFJQVl0QUFOcUlRQU1BUXNMQTBBZ0FDQU1TMFVFUUNBQUlBb2dEU0FKZENBTGRrRUNkR29pQmk4QkFEc0FBQ0FBSUFZdEFBTnFJUUFnQ1NBR0xRQUNhaUVKREFFTEN3SkFJQUFnQTA4TkFDQUFJQW9nRFNBSmRDQUxkaUlBUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUpJQU10QUFKcUlRa01BUXNnQ1VFZlN3MEFRU0FnQ1NBS0lBQkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRa0xJQUpCQTJzaERBTkFJQVZCS0dvUUQwVWdCeUFNU1hFRVFDQUhJQW9nQlNnQ0tDSUdJQVVvQWl3aUFIUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0J5QU5MUUFEYWlJRElBb2dCaUFBSUEwdEFBSnFJZ0IwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQUNBR0xRQUNhallDTENBRElBWXRBQU5xSVFjTUFRVWdBa0VDYXlFR0EwQWdCVUVvYWhBUElRTWdCU2dDS0NFTUlBVW9BaXdoQUNBR0lBZEpJQU55UlFSQUlBY2dDaUFNSUFCMElBdDJRUUowYWlJREx3RUFPd0FBSUFVZ0FDQURMUUFDYWpZQ0xDQUhJQU10QUFOcUlRY01BUXNMQTBBZ0JpQUhTVVVFUUNBSElBb2dEQ0FBZENBTGRrRUNkR29pQXk4QkFEc0FBQ0FISUFNdEFBTnFJUWNnQUNBRExRQUNhaUVBREFFTEN3SkFJQUlnQjAwTkFDQUhJQW9nRENBQWRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUFJQU10QUFKcUlRQU1BUXNnQUVFZlN3MEFRU0FnQUNBS0lBSkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRQUxJQmxCQTJzaERBTkFJQVZCRkdvUUQwVWdDQ0FNU1hFRVFDQUlJQW9nQlNnQ0ZDSUdJQVVvQWhnaUFuUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0NDQU5MUUFEYWlJRElBb2dCaUFDSUEwdEFBSnFJZ0owSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQWlBR0xRQUNhallDR0NBRElBWXRBQU5xSVFnTUFRVWdHVUVDYXlFREEwQWdCVUVVYWhBUElRSWdCU2dDRkNFR0lBVW9BaGdoQnlBRElBaEpJQUp5UlFSQUlBZ2dDaUFHSUFkMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFVZ0J5QUNMUUFDYWpZQ0dDQUlJQUl0QUFOcUlRZ01BUXNMQTBBZ0F5QUlTVVVFUUNBSUlBb2dCaUFIZENBTGRrRUNkR29pQWk4QkFEc0FBQ0FJSUFJdEFBTnFJUWdnQnlBQ0xRQUNhaUVIREFFTEN3SkFJQWdnR1U4TkFDQUlJQW9nQmlBSGRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUhJQU10QUFKcUlRY01BUXNnQjBFZlN3MEFRU0FnQnlBS0lBSkJBblJxTFFBQ2FpSUNJQUpCSUU4YklRY0xBMEFnQlJBUFJTQUVJQ0JKY1FSQUlBUWdDaUFGS0FJQUlnWWdCU2dDQkNJQ2RDQUxka0VDZEdvaURDOEJBRHNBQUNBRUlBd3RBQU5xSWdNZ0NpQUdJQUlnREMwQUFtb2lBblFnQzNaQkFuUnFJZ1F2QVFBN0FBQWdCU0FDSUFRdEFBSnFOZ0lFSUFNZ0JDMEFBMm9oQkF3QkJTQWZRUUpySVFNRFFDQUZFQThoQWlBRktBSUFJUVlnQlNnQ0JDRUlJQU1nQkVrZ0FuSkZCRUFnQkNBS0lBWWdDSFFnQzNaQkFuUnFJZ0l2QVFBN0FBQWdCU0FJSUFJdEFBSnFOZ0lFSUFRZ0FpMEFBMm9oQkF3QkN3c0RRQ0FESUFSSlJRUkFJQVFnQ2lBR0lBaDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBUWdBaTBBQTJvaEJDQUlJQUl0QUFKcUlRZ01BUXNMQWtBZ0JDQWZUdzBBSUFRZ0NpQUdJQWgwSUF0MklnSkJBblJxSWdNdEFBQTZBQUFnQXkwQUEwRUJSZ1JBSUFnZ0F5MEFBbW9oQ0F3QkN5QUlRUjlMRFFCQklDQUlJQW9nQWtFQ2RHb3RBQUpxSWdJZ0FrRWdUeHNoQ0F0QmJFRnNRV3hCYkVGc1FXeEJiRUZzSUFFZ0NFRWdSeHNnQlNnQ0NDQUZLQUlNUnhzZ0IwRWdSeHNnQlNnQ0hDQUZLQUlnUnhzZ0FFRWdSeHNnQlNnQ01DQUZLQUkwUnhzZ0NVRWdSeHNnQlNnQ1JDQUZLQUpJUnhzaENRd0pDd0FMQUFzQUN3QUxBQXNBQ3dBTEFBdEJiQ0VKQ3lBRlFkQUFhaVFBSUFrTDdCQUJIbjhqQUVIUUFHc2lCU1FBUVd3aENRSkFJQU5CQ2trTkFBSkFJQU1nQWk4QUJDSUdJQUl2QUFBaUJ5QUNMd0FDSWdocWFrRUdhaUlPU1EwQUlBUXZBUUloRHlBRlFUeHFJQUpCQm1vaUFpQUhFQTBpQ1VHSWYwc05BU0FGUVNocUlBSWdCMm9pQWlBSUVBMGlDVUdJZjBzTkFTQUZRUlJxSUFJZ0NHb2lBaUFHRUEwaUNVR0lmMHNOQVNBRklBSWdCbW9nQXlBT2F4QU5JZ2xCaUg5TERRRWdCRUVFYWlFS0lBQWdBV29pSEVFRGF5RWRRUUFnRDJ0QkgzRWhDeUFGS0FJSUlSRWdCU2dDSENFU0lBVW9BakFoRXlBRktBSkVJUlFnQlNnQ0JDRUpJQVVvQWhnaEJpQUZLQUlzSVFjZ0JTZ0NRQ0VJSUFVb0FoQWhIaUFGS0FJa0lSOGdCU2dDT0NFZ0lBVW9Ba3doSVNBRktBSUFJUlVnQlNnQ0ZDRVdJQVVvQWlnaEZ5QUZLQUk4SVJoQkFTRU5JQUFnQVVFRGFrRUNkaUlDYWlJT0lBSnFJZzhnQW1vaUdTRUVJQThoQWlBT0lRTURRQ0FOUlNBRUlCMVBja1VFUUNBS0lCZ2dDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBQWdDaUFYSUFkMElBdDJRUUYwYWlJTUxRQUJJUkFnQXlBTUxRQUFPZ0FBSUFvZ0ZpQUdkQ0FMZGtFQmRHb2lEQzBBQVNFYUlBSWdEQzBBQURvQUFDQUtJQlVnQ1hRZ0MzWkJBWFJxSWd3dEFBRWhHeUFFSUF3dEFBQTZBQUFnQ2lBWUlBZ2dEV29pQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUVnQ2lBWElBY2dFR29pQjNRZ0MzWkJBWFJxSWd3dEFBRWhFQ0FESUF3dEFBQTZBQUVnQ2lBV0lBWWdHbW9pREhRZ0MzWkJBWFJxSWdZdEFBRWhHaUFDSUFZdEFBQTZBQUVnQ2lBVklBa2dHMm9pRzNRZ0MzWkJBWFJxSWdrdEFBRWhJaUFFSUFrdEFBQTZBQUVnQ0NBTmFpRUdRUU1oQ1FKL0lCUWdJVWtFUUVFRElRMGdCZ3dCQ3lBVUlBWkJBM1pySWhRb0FBQWhHRUVBSVEwZ0JrRUhjUXNoQ0NBSElCQnFJUVlnRXlBZ1NRUi9JQVlGSUJNZ0JrRURkbXNpRXlnQUFDRVhRUUFoQ1NBR1FRZHhDeUVISUF3Z0dtb2hEQ0FKSUExeUlSQkJBeUVOQW44Z0VpQWZTUVJBSUF3aEJrRUREQUVMSUF4QkIzRWhCaUFTSUF4QkEzWnJJaElvQUFBaEZrRUFDeUFiSUNKcUlRd2dFSEloRUNBUklCNUpCSDhnREFVZ0VTQU1RUU4yYXlJUktBQUFJUlZCQUNFTklBeEJCM0VMSVFrZ0JFRUNhaUVFSUFKQkFtb2hBaUFEUVFKcUlRTWdBRUVDYWlFQUlBMGdFSEpGSVEwTUFRc0xJQVVnQnpZQ0xDQUZJQWcyQWtBZ0JTQUdOZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFBZ0Rrc2dBeUFQUzNJTkFFRnNJUWtnQWlBWlN3MEJJQTVCQTJzaENRTkFJQVZCUEdvUUR5QUFJQWxQY2tVRVFDQUtJQVVvQWp3aUJpQUZLQUpBSWdkMElBdDJRUUYwYWlJSUxRQUJJUXdnQUNBSUxRQUFPZ0FBSUFvZ0JpQUhJQXhxSWdaMElBdDJRUUYwYWlJSExRQUFJUWdnQlNBR0lBY3RBQUZxTmdKQUlBQWdDRG9BQVNBQVFRSnFJUUFNQVFzTEEwQWdCVUU4YWhBUElRY2dCU2dDUENFR0lBVW9Ba0FoQ1NBQUlBNVBJQWR5UlFSQUlBb2dCaUFKZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQ1NBR0xRQUJhallDUUNBQUlBYzZBQUFnQUVFQmFpRUFEQUVMQ3dOQUlBQWdEazlGQkVBZ0NpQUdJQWwwSUF0MlFRRjBhaUlITFFBQklBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0NXb2hDUXdCQ3dzZ0QwRURheUVBQTBBZ0JVRW9haEFQSUFBZ0EwMXlSUVJBSUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQURJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaXdnQXlBSU9nQUJJQU5CQW1vaEF3d0JDd3NEUUNBRlFTaHFFQThoQnlBRktBSW9JUVlnQlNnQ0xDRUFJQU1nRDA4Z0IzSkZCRUFnQ2lBR0lBQjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQUFJQVl0QUFGcU5nSXNJQU1nQnpvQUFDQURRUUZxSVFNTUFRc0xBMEFnQXlBUFQwVUVRQ0FLSUFZZ0FIUWdDM1pCQVhScUlnY3RBQUVoQ0NBRElBY3RBQUE2QUFBZ0EwRUJhaUVESUFBZ0NHb2hBQXdCQ3dzZ0dVRURheUVEQTBBZ0JVRVVhaEFQSUFJZ0EwOXlSUVJBSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQUNJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaGdnQWlBSU9nQUJJQUpCQW1vaEFnd0JDd3NEUUNBRlFSUnFFQThoQnlBRktBSVVJUVlnQlNnQ0dDRURJQUlnR1U4Z0IzSkZCRUFnQ2lBR0lBTjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQURJQVl0QUFGcU5nSVlJQUlnQnpvQUFDQUNRUUZxSVFJTUFRc0xBMEFnQWlBWlQwVUVRQ0FLSUFZZ0EzUWdDM1pCQVhScUlnY3RBQUVoQ0NBQ0lBY3RBQUE2QUFBZ0FrRUJhaUVDSUFNZ0NHb2hBd3dCQ3dzRFFDQUZFQThnQkNBZFQzSkZCRUFnQ2lBRktBSUFJZ0lnQlNnQ0JDSUdkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUtJQUlnQmlBSWFpSUNkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdBaUFHTFFBQmFqWUNCQ0FFSUFjNkFBRWdCRUVDYWlFRURBRUxDd05BSUFVUUR5RUhJQVVvQWdBaEJpQUZLQUlFSVFJZ0JDQWNUeUFIY2tVRVFDQUtJQVlnQW5RZ0MzWkJBWFJxSWdZdEFBQWhCeUFGSUFJZ0JpMEFBV28yQWdRZ0JDQUhPZ0FBSUFSQkFXb2hCQXdCQ3dzRFFDQUVJQnhQUlFSQUlBb2dCaUFDZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FFUVFGcUlRUWdBaUFJYWlFQ0RBRUxDMEZzUVd4QmJFRnNRV3hCYkVGc1FXd2dBU0FDUVNCSEd5QUZLQUlJSUFVb0FneEhHeUFEUVNCSEd5QUZLQUljSUFVb0FpQkhHeUFBUVNCSEd5QUZLQUl3SUFVb0FqUkhHeUFKUVNCSEd5QUZLQUpFSUFVb0FraEhHeUVKREFFTFFXd2hDUXNnQlVIUUFHb2tBQ0FKQzFnQkEzOENRQ0FBS0FLUTZ3RWlBVVVOQUNBQktBSUFJQUZCdE5VQmFpZ0NBQ0lDSUFGQnVOVUJhaWdDQUNJREVCTWdBZ1JBSUFNZ0FTQUNFUUlBREFFTElBRVFCZ3NnQUVFQU5nS2c2d0VnQUVJQU53T1E2d0VMNlFNQ0JIOENmaUFBUVFCQktCQURJUVFnQWtFQlFRVWdBeHNpQUVrRVFDQUFEd3NnQVVVRVFFRi9Ed3RCQVNFR0FrQUNRQ0FEUVFGR0RRQWdBeUVHSUFFb0FBQWlCVUdvNnI1cFJnMEFRWFloQXlBRlFYQnhRZERVdE1JQlJ3MEJRUWdoQXlBQ1FRaEpEUUVnQVRVQUJDRUlJQVJCQVRZQ0ZDQUVJQWczQXdCQkFBOExJQUVnQWlBR0VCb2lBeUFDU3cwQUlBUWdBellDR0VGeUlRTWdBQ0FCYWlJRlFRRnJMUUFBSWdKQkNIRU5BQ0FDUVNCeElnWkZCRUJCY0NFRElBVXRBQUFpQlVHbkFVc05BU0FGUVFkeHJVSUJJQVZCQTNaQkNtcXRoaUlJUWdPSWZpQUlmQ0VKSUFCQkFXb2hBQXNnQWtFR2RpRUZJQUpCQW5aQkFDRURBa0FDUUFKQUFrQWdBa0VEY1VFQmF3NERBQUVDQXdzZ0FDQUJhaTBBQUNFRElBQkJBV29oQUF3Q0N5QUFJQUZxTHdBQUlRTWdBRUVDYWlFQURBRUxJQUFnQVdvb0FBQWhBeUFBUVFScUlRQUxRUUZ4SVFJQ2ZnSkFBa0FDUUFKQUlBVkJBV3NPQXdFQ0F3QUxRbjhnQmtVTkF4b2dBQ0FCYWpFQUFBd0RDeUFBSUFGcU13QUFRb0FDZkF3Q0N5QUFJQUZxTlFBQURBRUxJQUFnQVdvcEFBQUxJUWdnQkNBQ05nSWdJQVFnQXpZQ0hDQUVJQWczQXdCQkFDRURJQVJCQURZQ0ZDQUVJQWdnQ1NBR0d5SUlOd01JSUFSQ2dJQUlJQWdnQ0VLQWdBaGFHejRDRUFzZ0F3dGZBUUYvUWJoL0lRTWdBVUVCUVFVZ0Foc2lBazhFZnlBQUlBSnFRUUZyTFFBQUlnQkJBM0ZCQW5SQm9CNXFLQUlBSUFKcUlBQkJCSFpCREhGQnNCNXFLQUlBYWlBQVFTQnhJZ0ZGYWlBQlFRVjJJQUJCd0FCSmNXb0ZRYmgvQ3dzTUFDQUFJQUVnQWtFQUVCa0xsd01DQlg4Q2ZpTUFRVUJxSWdRa0FBSkFBMEFnQVVFRlR3UkFBa0FnQUNnQUFFRndjVUhRMUxUQ0FVWUVRRUorSVFjZ0FVRUlTUTBFSUFBb0FBUWlBa0YzU3cwRUlBSkJDR29pQXlBQlN3MEVJQUpCZ1g5SkRRRU1CQXNnQkVFWWFpQUFJQUVRR3lFQ1FuNGdCQ2tER0VJQUlBUW9BaXhCQVVjYklBSWJJZ2RDZlZZTkF5QUhJQWg4SWdnZ0IxUkNmaUVIRFFNQ1FBSkFJQUZCQ0VrTkFDQUFLQUFBUVhCeFFkRFV0TUlCUncwQUlBQW9BQVFpQWtGM1N3MEZRYmgvSUFKQkNHb2lBaUFCSUFKSkd5RUREQUVMSUFSQkdHb2dBQ0FCRUJzaUFrR0lmMHNFUUNBQ0lRTU1BUXRCdUg4aEF5QUNEUUFnQVNBRUtBSXdJZ0pySVFVZ0FDQUNhaUVHQTBBZ0JpQUZJQVJCREdvUUhTSURRWWgvU3cwQklBTkJBMm9pQWlBRlN3UkFRYmgvSVFNTUFnc2dCU0FDYXlFRklBSWdCbW9oQmlBRUtBSVFSUTBBQ3lBRUtBSTRCSDlCdUg4aEF5QUZRUVJKRFFFZ0JrRUVhZ1VnQmdzZ0FHc2hBd3NnQTBHSWYwc05Bd3NnQVNBRGF5RUJJQUFnQTJvaEFBd0JDd3RDZmlBSUlBRWJJUWNMSUFSQlFHc2tBQ0FIQzJRQkFYOUJ1SDhoQXdKQUlBRkJBMGtOQUNBQUxRQUNJUUVnQWlBQUx3QUFJZ0JCQVhFMkFnUWdBaUFBUVFGMlFRTnhJZ00yQWdBZ0FpQUFJQUZCRUhSeVFRTjJJZ0EyQWdnQ1FBSkFJQU5CQVdzT0F3SUJBQUVMUVd3UEN5QUFJUU1MSUFNTFJBRUNmeUFCSUFJb0FnUWlBeUFCS0FJRWFpSUVOZ0lFSUFBZ0EwRUNkRUdnSFdvb0FnQWdBU2dDQUVFQUlBUnJkbkUyQWdBZ0FSQVBHaUFBSUFKQkNHbzJBZ1FMemdFQkJuOUJ1bjhoQ2dKQUlBSW9BZ1FpQ0NBQ0tBSUFJZ2xxSWcwZ0FTQUFhMHNOQUVGc0lRb2dDU0FFSUFNb0FnQWlDMnRMRFFBZ0FDQUphaUlFSUFJb0FnZ2lER3NoQWlBQUlBRkJJR3NpQUNBTElBbEJBQkFnSUFNZ0NTQUxhallDQUFKQUFrQWdCQ0FGYXlBTVR3UkFJQUloQlF3QkN5QU1JQVFnQm10TERRSWdCeUFISUFJZ0JXc2lBbW9pQVNBSWFrOEVRQ0FFSUFFZ0NCQUtHZ3dDQ3lBQ0lBaHFJUWdnQkNBQlFRQWdBbXNRQ2lBQ2F5RUVDeUFFSUFBZ0JTQUlRUUVRSUFzZ0RTRUtDeUFLQzhjRUFRSi9JQUFnQTJvaEJnSkFJQU5CQjB3RVFBTkFJQUFnQms4TkFpQUFJQUl0QUFBNkFBQWdBRUVCYWlFQUlBSkJBV29oQWd3QUN3QUxJQVJCQVVZRVFBSkFJQUFnQW1zaUJVRUhUUVJBSUFBZ0FpMEFBRG9BQUNBQUlBSXRBQUU2QUFFZ0FDQUNMUUFDT2dBQ0lBQWdBaTBBQXpvQUF5QUFJQUlnQlVFQ2RDSUZRY0FlYWlnQ0FHb2lBaWdBQURZQUJDQUNJQVZCNEI1cUtBSUFheUVDREFFTElBQWdBaWtBQURjQUFBc2dBa0VJYWlFQ0lBQkJDR29oQUFzZ0FTQUdUd1JBSUFBZ0Eyb2hBU0FFUVFGSElBQWdBbXRCRDBweVJRUkFBMEFnQUNBQ0tRQUFOd0FBSUFKQkNHb2hBaUFBUVFocUlnQWdBVWtOQUF3REN3QUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQTBFUlNRMEJJQUJCRUdvaEFBTkFJQUFnQWlrQUVEY0FBQ0FBSUFJcEFCZzNBQWdnQUNBQ0tRQWdOd0FRSUFBZ0Fpa0FLRGNBR0NBQ1FTQnFJUUlnQUVFZ2FpSUFJQUZKRFFBTERBRUxBa0FnQUNBQlN3UkFJQUFoQVF3QkN5QUJJQUJySVFVQ1FDQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUlBSWhBd05BSUFBZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQUVFSWFpSUFJQUZKRFFBTERBRUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQlVFUlNBMEFJQUJCRUdvaEFDQUNJUU1EUUNBQUlBTXBBQkEzQUFBZ0FDQURLUUFZTndBSUlBQWdBeWtBSURjQUVDQUFJQU1wQUNnM0FCZ2dBMEVnYWlFRElBQkJJR29pQUNBQlNRMEFDd3NnQWlBRmFpRUNDd05BSUFFZ0JrOE5BU0FCSUFJdEFBQTZBQUFnQVVFQmFpRUJJQUpCQVdvaEFnd0FDd0FMQzY0SEFnVi9BWDRqQUVHQUFXc2lFU1FBSUJFZ0F6WUNmRUYvSVE4Q1FBSkFBa0FDUUFKQUlBSU9CQUVBQXdJRUN5QUdSUVJBUWJoL0lROE1CQXRCYkNFUElBVXRBQUFpQWlBRFN3MERJQWdnQWtFQ2RDSUNhaWdDQUNFRElBSWdCMm9vQWdBaEFpQUFRUUE2QUFzZ0FFSUFOd0lBSUFBZ0FqWUNEQ0FBSUFNNkFBb2dBRUVBT3dFSUlBRWdBRFlDQUVFQklROE1Bd3NnQVNBSk5nSUFRUUFoRHd3Q0N5QUtSUVJBUVd3aER3d0NDMEVBSVE4Z0MwVWdERUVaU0hJTkFVRUlJQVIwUVFocUlRQkJBQ0VEQTBBZ0FDQURUUTBDSUFOQlFHc2hBd3dBQ3dBTFFXd2hEeUFSSUJGQi9BQnFJQkZCK0FCcUlBVWdCaEFNSWdOQmlIOUxEUUFnRVNnQ2VDSUNJQVJMRFFBZ0VTZ0NmRUVCYWlFSklBQkJDR29oQzBHQWdBSWdBblJCRUhVaEJVRUJJUkJCQVNBQ2RDSVBRUUZySWdvaEVnTkFJQWtnRGtjRVFBSkFJQkVnRGtFQmRDSUVhaThCQUNJTVFmLy9BMFlFUUNBTElCSkJBM1JxSUE0MkFnUWdFa0VCYXlFU1FRRWhEQXdCQ3lBUVFRQWdCU0FNd1VvYklSQUxJQVFnRFdvZ0REc0JBQ0FPUVFGcUlRNE1BUXNMSUFBZ0FqWUNCQ0FBSUJBMkFnQUNRQ0FLSUJKR0JFQWdEVUhxQUdvaEJrRUFJUkJCQUNFTUEwQWdDU0FRUmdSQUlBOUJBM1lnRDBFQmRtcEJBMm9pQlVFQmRDRUVRUUFoREVFQUlSSURRRUVBSVE0Z0R5QVNUUTBFQTBBZ0RrRUNSd1JBSUFzZ0JTQU9iQ0FNYWlBS2NVRURkR29nQmlBT0lCSnFhaTBBQURZQ0JDQU9RUUZxSVE0TUFRc0xJQkpCQW1vaEVpQUVJQXhxSUFweElRd01BQXNBQlNBUklCQkJBWFJxTGdFQUlRVWdCaUFNYWlJRUlCTTNBQUJCQ0NFT0EwQWdCU0FPU2dSQUlBUWdEbW9nRXpjQUFDQU9RUWhxSVE0TUFRc0xJQk5DZ1lLRWlKQ2d3SUFCZkNFVElCQkJBV29oRUNBRklBeHFJUXdNQVFzQUN3QUxJQTlCQTNZZ0QwRUJkbXBCQTJvaEJVRUFJUkJCQUNFT0EwQWdDU0FRUmcwQlFRQWhEQ0FSSUJCQkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FNUndSQUlBc2dEa0VEZEdvZ0VEWUNCQU5BSUFVZ0Rtb2dDbkVpRGlBU1N3MEFDeUFNUVFGcUlRd01BUXNMSUJCQkFXb2hFQXdBQ3dBTElBSkJBV29oQlVFQUlRd0RRQ0FNSUE5SEJFQWdEU0FMSUF4QkEzUnFJZ2tvQWdRaUJFRUJkR29pQWlBQ0x3RUFJZ1pCQVdvN0FRQWdDU0FGSUFablFXQnphaUlDT2dBRElBa2dCaUFDZENBUGF6c0JBQ0FKSUFnZ0JFRUNkQ0lDYWlnQ0FEb0FBaUFKSUFJZ0Iyb29BZ0EyQWdRZ0RFRUJhaUVNREFFTEN5QUJJQUEyQWdBZ0F5RVBDeUFSUVlBQmFpUUFJQThMN1ZvQ08zOEdmaU1BUWVBQmF5SUVKQUFDUUVHdzdBa1FCU0lGUlFSQVFVQWhCd3dCQ3lBRlFnQTNBdlRxQVNBRlFRQTJBc1RyQVNBRlFRQTJBclRyQVNBRlFnQTNBcHpyQVNBRlFRQTJBcmpwQVNBRlFRQTJBcXpzQ1NBRlFnQTNBdFRyQVNBRlFnQTNBcXpyQVNBRlFnQTNBNGpyQVNBRlFnQTNBdVRxQVNBRlFnQTNBdVRyQVNBRlFZR0FnTUFBTmdLODZ3RWdCVUlBTndLazZ3RWdCVUg4NmdGcVFRQTJBZ0FnQlVHUTZ3RnFRZ0EzQXdBZ0JSQVlJQVZCck5VQmFpRVVJQVZCK09zQmFpRWNJQVZCc09vQmFpRWlJQVZCb0RCcUlTb2dCVUdZSUdvaEt5QUZRYWpRQUdvaEhpQUZRUkJxSVN3Z0JVRUlhaUVvSUFWQkJHb2hMU0FGUWNEcEFXb2hLU0FGUVlqckFXb2dCRUdVQVdvaEx5QUVRWXdCYWlFd0lBUkJoQUZxSVRFZ0JFSGNBR29oTWlBRVFkUUFhaUV6SUFSQnpBQnFJVFFnQUNFZEFrQUNRQUpBQWtBQ1FBTkFRUUZCQlNBRktBTGs2Z0ViSVFZQ1FBTkFJQU1nQmtrTkFTQUNLQUFBUVhCeFFkRFV0TUlCUmdSQVFiaC9JUWNnQTBFSVNRMElJQUlvQUFRaURrRjNTd1JBUVhJaEJ3d0pDeUFESUE1QkNHb2lDVWtOQ0NBT1FZQi9Td1JBSUFraEJ3d0pDeUFESUFscklRTWdBaUFKYWlFQ0RBRUxDeUFGUWdBM0FxenBBU0FGUWdBM0EranBBU0FGUVFBMkFwanJBU0FGUWdBM0E0RHFBU0FGUWdNM0EvanBBU0FGUWJUcEFXcENBRGNDQUNBRlFmRHBBV3BDQURjREFDQUZRYWpRQUdvaUNVR01nSURnQURZQ0FDQUZRYXpRQVdwQjRCSXBBZ0EzQWdBZ0JVRzAwQUZxUWVnU0tBSUFOZ0lBSUFVZ0JVRVFhallDQUNBRklBVkJvREJxTmdJRUlBVWdCVUdZSUdvMkFnZ2dCU0FKTmdJTUlBVkJBVUVGSUFVb0F1VHFBUnMyQXJ6cEFRSkFJQUZGRFFBZ0JTZ0NyT2tCSWdrZ0hVWU5BQ0FGSUFrMkFyanBBU0FGSUIwMkFxenBBU0FGS0FLdzZRRWhEaUFGSUIwMkFyRHBBU0FGSUIwZ0RpQUphMm8yQXJUcEFRdEJ1SDhoQ1NBRFFRVkJDU0FGS0FMazZnRWlCaHRKRFFVZ0FrRUJRUVVnQmhzZ0JoQWFJZzVCaUg5TEJFQWdEaUVKREFVTElBTWdEa0VEYWtrTkJTQXBJQUlnRGlBR0VCa2lCa0dJZjBzRVFDQUdJUWtNQlFzZ0JnMEZBa0FDUUNBRktBS282d0ZCQVVjTkFDQUZLQUtrNndFaUNVVU5BQ0FGS0FLVTZ3RkZEUUFnQ1NnQ0JFRUJheUlISUFVb0F0enBBU0lLclVLSGxhK3ZtTGJlbTU1L2ZrTEp6OW15OGVXNjZpZUZRaGVKUXMvVzA3N1N4NnZaUW41QytmUGQ4Wm4ybWFzV2ZDSS9RaUdJSUQrRlFzL1cwNzdTeDZ2WlFuNGlQMElkaUNBL2hVTDU4OTN4bWZhWnF4WitJajlDSUlnZ1A0V25jU0VHSUFrb0FnQWhGUU5BUVFBaENBSkFJQlVnQmtFQ2RHb29BZ0FpQ1VVTkFDQUpLQUlJUVFoSkRRQWdDU2dDQkNJU0tBQUFRYmZJd3VGK1J3MEFJQklvQUFRaENBc2dDQ0FLUndSQUlBWWdCM0ZCQVdvaEJpQUlEUUVMQ3lBSlJRMEFJQVVRR0NBRlFYODJBcURyQVNBRklBazJBcFRyQVNBRklBVW9BdHpwQVNJSU5nS1k2d0VNQVFzZ0JTZ0MzT2tCSVFnTEFrQWdDRVVOQUNBRktBS1k2d0VnQ0VZTkFFRmdJUWtNQmdzQ1FDQUZLQUxnNlFFRVFDQUZJQVVvQXVqcUFTSUpSVFlDN09vQklBa05BU0FGUXZucTBORG55YUhrNFFBM0E2anFBU0FGUWdBM0E2RHFBU0FGUXMvVzA3N1N4NnZaUWpjRG1Pb0JJQVZDMXV1Qzd1cjlpZlhnQURjRGtPb0JJQVZDQURjRGlPb0JJQ0pCQUVFb0VBTWFEQUVMSUFWQkFEWUM3T29CQ3lBQklCMXFJU1VnQlNBRktRUG82UUVnRHExOE53UG82UUVnQXlBT2F5RURJQUlnRG1vaEFpQWRJUTREUUNBQ0lBTWdCRUVzYWhBZEloVkJpSDlMQkVBZ0ZTRUpEQVlMSUFOQkEyc2lOU0FWU1EwRUlBSkJBMm9oRzBGc0lRa0NRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBRUtBSXNEZ01DQVFBVkN5QVZRZi8vQjBzTkV5QVZRUU5KRFJJZ0JTa0R5T2tCSVQ4Q1FBSkFJQnN0QUFBaUNVRURjU0lhUVFGckRnTUdBUUFIQ3lBRktBS0E2Z0VOQUVGaUlRa01GUXNnRlVFRlNRMFNJQnNvQUFBaEF3Si9Ba0FDUUFKQUlBbEJBblpCQTNFaUNVRUNhdzRDQVFJQUN5QUpRUUJISVFjZ0EwRUVka0gvQjNFaEMwRURJUVlnQTBFT2RrSC9CM0VNQWd0QkJDRUdJQU5CQkhaQi8vOEFjU0VMUVFFaEJ5QURRUkoyREFFTElBTkJCSFpCLy84UGNTSUxRWUNBQ0VzTkUwRUJJUWRCQlNFR0lBSXRBQWRCQ25RZ0EwRVdkbklMSWdnZ0Jtb2lDU0FWU3cwU0FrQWdDMEdCQmtrTkFDQUZLQUtjNndGRkRRQkJBQ0VEQTBBZ0EwR0RnQUZMRFFFZ0EwRkFheUVEREFBTEFBc2dCaUFiYWlFUElCcEJBMGNOQmlBRktBSU1JZ0l0QUFGQkNIUWhBeUFIRFFjZ0EwVU5DQ0FFUWZBQWFpQVBJQWdRRFNJRFFZaC9TdzBKSUFKQkJHb2hCaUFMSUJ4cUloSkJBMnNoQ2tFQUlBSXZBUUpyUVI5eElRY2dIQ0VEQTBBZ0JFSHdBR29RRDBVZ0F5QUtTWEVFUUNBRElBWWdCQ2dDY0NJSUlBUW9BblFpRDNRZ0IzWkJBblJxSWdJdkFRQTdBQUFnQXlBQ0xRQURhaUlESUFZZ0NDQVBJQUl0QUFKcUlnaDBJQWQyUVFKMGFpSUNMd0VBT3dBQUlBUWdDQ0FDTFFBQ2FqWUNkQ0FESUFJdEFBTnFJUU1NQVFVZ0VrRUNheUVJQTBBZ0JFSHdBR29RRHlFUElBUW9BbkFoQ2lBRUtBSjBJUUlnQXlBSVN5QVBja1VFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pQ2k4QkFEc0FBQ0FFSUFJZ0NpMEFBbW8yQW5RZ0F5QUtMUUFEYWlFRERBRUxDd05BSUFNZ0NFMEVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lEeThCQURzQUFDQURJQTh0QUFOcUlRTWdBaUFQTFFBQ2FpRUNEQUVMQ3dKQUlBTWdFazhOQUNBRElBWWdDaUFDZENBSGRrRUNkR29pQXkwQUFEb0FBQ0FETFFBRFFRRkdCRUFnQWlBRExRQUNhaUVDREFFTElBSkJIMHNOQUVFZ0lBSWdBeTBBQW1vaUFpQUNRU0JQR3lFQ0MwRnNRV3dnQ3lBRUtBSjRJQVFvQW54SEd5QUNRU0JIR3lFRERBc0xBQXNBQ3lBRUtBSTBJZ0lnSlNBT2Ewc05DaUFPUlFSQVFRQWhDU0FDRFFJTURnc2dEaUFiTFFBQUlBSVFBeG9nQWlFSkRBd0xJQlVnSlNBT2Ewc05DU0FPRFFGQkFDRUpJQlZGRFF3TFFiWi9JUWtNRVFzZ0RpQWJJQlVRQWhvZ0ZTRUpEQW9MSUJ3Z0d3Si9Ba0FDUUFKQUlBbEJBblpCQTNGQkFXc09Bd0VBQWdBTElBbEJBM1loQTBFQkRBSUxJQnN2QUFCQkJIWWhBMEVDREFFTElCVkJCRWtORGlBQ0x3QURJQUl0QUFWQkVIUnlJZ0pCajRDQUFVc05EaUFDUVFSMklRTkJBd3NpQW1vdEFBQWdBMEVnYWhBRElRa2dCU0FETmdLQTZ3RWdCU0FKTmdMdzZnRWdBa0VCYWlFSkRBVUxJQlVDZndKQUFrQUNRQ0FKUVFKMlFRTnhRUUZyRGdNQkFBSUFDeUFKUVFOMklRTkJBUXdDQ3lBYkx3QUFRUVIySVFOQkFnd0JDeUFDTHdBRElBSXRBQVZCRUhSeVFRUjJJUU5CQXdzaUFpQURhaUlKUVNCcVNRUkFJQWtnRlVzTkRTQWNJQUlnRzJvZ0F4QUNJUUlnQlNBRE5nS0E2d0VnQlNBQ05nTHc2Z0VnQWlBRGFpSUNRZ0EzQUJnZ0FrSUFOd0FRSUFKQ0FEY0FDQ0FDUWdBM0FBQU1CUXNnQlNBRE5nS0E2d0VnQlNBQ0lCdHFOZ0x3NmdFTUJBc2dCMFVFUUNBZUlBOGdDQ0FVRUJRaUFrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGU0VEREFNTElBdEZJQWhGY2cwTElBdEJDSFlpQXlBSUlBdEpCSDhnQ0VFRWRDQUxiZ1ZCRHd0QkdHd2lBa0dNQ0dvb0FnQnNJQUpCaUFocUtBSUFhaUlHUVFOMklBWnFJQUpCZ0FocUtBSUFJQUpCaEFocUtBSUFJQU5zYWtrRVFDTUFRUkJySWhBa0FDQWVLQUlBSVFNZ0ZFSHdCR3BCQUVIc0FCQURJUVpCVkNFQ0FrQWdBMEgvQVhFaURFRU1TdzBBQWtBZ0ZFSGNDV29nQmlBUVFRaHFJQkJCREdvZ0R5QUlJQlJCM0F0cUloY1FDeUlTUVloL1N3MEFJQkFvQWd3aUJpQU1TdzBCSUJSQnFBVnFJUTBnRkVHa0JXb2hOaUFlUVFScUlSRWdBMEdBZ0lCNGNTRTNJQVpCQVdvaUV5RUNJQVloQXdOQUlBSWlCMEVCYXlFQ0lBTWlDa0VCYXlFRElCUWdDa0VDZEdvb0F2QUVSUTBBQzBFQklBY2dCMEVCVFJzaEZrRUFJUWRCQVNFQ0EwQWdBaUFXUndSQUlCUWdBa0VDZENJRGFpZ0M4QVFoR0NBRElBMXFJQWMyQWdBZ0FrRUJhaUVDSUFjZ0dHb2hCd3dCQ3dzZ0RTQUhOZ0lBUVFBaEFpQVFLQUlJSVFNRFFDQUNJQU5IQkVBZ0RTQUNJQlJxUWR3SmFpMEFBQ0lZUVFKMGFpSVpJQmtvQWdBaUdVRUJhallDQUNBVUlCbEJBWFJxSWhrZ0dEb0EzUVVnR1NBQ09nRGNCU0FDUVFGcUlRSU1BUXNMUVFBaEF5QU5RUUEyQWdBZ0RDQUdRWDl6YWlFR1FRRWhBZ05BSUFJZ0ZrY0VRQ0FVSUFKQkFuUnFJZzBnQXpZQ0FDQU5LQUx3QkNBQ0lBWnFkQ0FEYWlFRElBSkJBV29oQWd3QkN3c2dEQ0FUSUFwcklnWnJRUUZxSVFvZ0JpRURBMEFnQXlBS1NRUkFJQlFnQTBFMGJHb2hEVUVCSVFJRFFDQUNJQlpIQkVBZ0RTQUNRUUowSWhocUlCUWdHR29vQWdBZ0EzWTJBZ0FnQWtFQmFpRUNEQUVMQ3lBRFFRRnFJUU1NQVFzTElCY2dGRUUwRUFJaE9DQVVRWkFNYWlFNUlCTWdER3NoT2lBVVFkd0ZhaUVYUVFBaENnTkFBa0FDUUNBSElBcEhCRUJCQVNBTUlCTWdGeUFLUVFGMGFpSUNMUUFCSWcxcklnTnJJaGgwSVJrZ0FpMEFBQ0VXSURnZ0RVRUNkR29pSHlnQ0FDRUNJQVlnR0UwRVFDQTJRUUVnQXlBNmFpSU5JQTFCQVV3YklpQkJBblFpSkdvb0FnQWhEU0E1SUJRZ0EwRTBiR3BCTkJBQ0lTRWdEVUVCZENFbUlCRWdBa0VDZEdvaEl5QWdRUUZORFFJZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRWdJQ0VnSkdvb0FnQWhKRUVBSVFJRFFDQUNJQ1JHRFFNZ0l5QUNRUUowYWlBZ05nRUFJQUpCQVdvaEFnd0FDd0FMSUFJZ0FpQVphaUlOSUFJZ0RVc2JJUTBnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFREEwQWdBaUFOUmcwRElCRWdBa0VDZEdvZ0F6WUJBQ0FDUVFGcUlRSU1BQXNBQ3lBZUlBeEJFSFFnTjNJZ0RISkJnQUp5TmdJQURBTUxJQWNnRFdzaEpDQVhJQ1pxSVNaQkFDRU5BMEFnRFNBa1JnMEJRUUVnR0NBVElDWWdEVUVCZEdvaUp5MEFBU0lDYXlJN2EzUWlQQ0FoSUFKQkFuUnFJaUFvQWdBaUFtb2hQU0FESUR0cVFSQjBRWUNBL0FkeElDY3RBQUJCQ0hSeUlCWnlRWUNBZ0JCeUlTY0RRQ0FqSUFKQkFuUnFJQ2MyQVFBZ0FrRUJhaUlDSUQxSkRRQUxJQ0FnSUNnQ0FDQThhallDQUNBTlFRRnFJUTBNQUFzQUN5QWZJQjhvQWdBZ0dXbzJBZ0FnQ2tFQmFpRUtEQUFMQUFzZ0VpRUNDeUFRUVJCcUpBQWdBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRmlFRERBTUxJQjRnRHlBSUlCUVFGQ0lDUVloL1N5QUNJQWhQY2cwTElCd2dDeUFDSUE5cUlBZ2dBbXNnSGhBWElRTU1BZ3NnQXdSQUlCd2dDeUFQSUFnZ0FoQVdJUU1NQWdzZ0hDQUxJQThnQ0NBQ0VCY2hBd3dCQ3lBY0lBc2dEeUFJSUFJUUZTRURDeUFEUVloL1N3MElJQVVnQ3pZQ2dPc0JJQVVnSERZQzhPb0JJQVZCQVRZQ2dPb0JJQnBCQWtZRVFDQUZJQjQyQWd3TElBc2dIR29pQWtJQU53QUFJQUpDQURjQUdDQUNRZ0EzQUJBZ0FrSUFOd0FJSUFsQmlIOUxEUW9MSUFrZ0ZVWU5DQ0FWSUFscklRWWdCU2dDbk9zQklRb0NRQ0FKSUJ0cUlnTXRBQUFpRDBVRVFFRUJJUUpCQUNFUFFiaC9JUWtnQmtFQlJnMEJEQXNMQW44Z0EwRUJhaUFQd0NJQ1FRQk9EUUFhSUFKQmYwWUVRQ0FHUVFOSURRc2dBeThBQVVHQS9nRnFJUThnQTBFRGFnd0JDeUFHUVFKSURRb2dBeTBBQVNBUFFRaDBja0dBZ0FKcklROGdBMEVDYWdzaEVrRzRmeUVKSUJKQkFXb2lBaUFWSUJ0cUlnZExEUW9nTENBRklCSXRBQUFpRWtFR2RrRWpRUWtnQWlBSElBSnJRY0FRUWRBUlFmQVNJQVVvQW9UcUFTQUtJQThnRkJBaElnbEJpSDlMRFFnZ0t5QW9JQkpCQkhaQkEzRkJIMEVJSUFJZ0NXb2lBaUFISUFKclFZQUxRWUFNUVlBWElBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlDRUdJZjBzTkNFRnNJUWtnS2lBdElCSkJBblpCQTNGQk5FRUpJQUlnQ0dvaUFpQUhJQUpyUVlBTlFlQU9RWkFaSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUIwR0lmMHNOQ2lBQ0lBZHFJQU5ySWdJaENTQUNRWWgvU3cwS0N5QU9JQTlCQUV4eURRRUxRYnAvSVFrTUNBc2dKU0FPYXlFSklBWWdBbXNoQmlBQ0lBTnFJUWNDUUFKQUFrQWdDa1VFUUNBUFFRbElJQVVwQThqcEFVS0JnSUFJVkhJTkFpQW9LQUlBSWdKQkNHb2hFaUFDS0FJRUlRcEJBQ0VEUVFBaEFnTkFJQU1nQ25aRkJFQWdBaUFTSUFOQkEzUnFMUUFDUVJaTGFpRUNJQU5CQVdvaEF3d0JDd3NnQlVFQU5nS2M2d0VnQWtFSUlBcHJkRUVVVHcwQkRBTUxJQVZCQURZQ25Pc0JDeUFFSUFVb0F2RHFBU0lETmdMY0FTQUpJQTVxSVJZZ0F5QUZLQUtBNndGcUlSY0NRQ0FQUlFSQUlBNGhCd3dCQ3lBRktBSzQ2UUVoR2lBRktBSzA2UUVoR0NBRktBS3c2UUVoRWlBRlFRRTJBb1RxQVVFQUlRTURRQ0FEUVFOSEJFQWdCQ0FEUVFKMElnSnFJQUlnQldwQnJOQUJhaWdDQURZQ1pDQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFUaHFJZ0lnQnlBR0VBMUJpSDlMRFFOQkNDQVBJQTlCQ0U0YklSOGdOQ0FDSUFVb0FnQVFIaUF6SUFJZ0JTZ0NDQkFlSURJZ0FpQUZLQUlFRUI0Z0RpQVNheUVaUVFBaENBTkFJQVJCT0dvUUQwRURSaUFJSUI5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdkQkVIWWlFVUgvQVhFaEN5QUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZ3hCRUhZaUlVSC9BWEVoRUNBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUVlnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNrSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lLYXlJTklBSWdBaUFOU3hzaUV5QUthallDUENBR0lBUW9BamdnQ25SQkFDQVRhM1lnQWlBVGF5SVRkR29oQ2lBRVFUaHFFQThhSUFJZ0RVME5BU0FFSUFRb0Fqd2lBaUFUYWpZQ1BDQUVLQUk0SUFKMFFRQWdFMnQySUFwcUlRb01BUXNnQkNBQ0lBUW9BandpRFdvMkFqd2dCQ2dDT0NBTmRFRUFJQXByZGlBR2FpRUtJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQW8yQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBREJFQWdCQ2dDWkNFS0RBTUxJQVFvQW1naENnd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQVlnQTBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdaRklBWnFJUW9nQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlBbzJBbVFMcHlFQ0lFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQkJxTmdJOElBUW9BamdnQm5SQkFDQWhhM1lnQW1vaEFnc2dDeUFRYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUF0cU5nSThJQVFvQWpnZ0JuUkJBQ0FSYTNZZ0Eyb2hBd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lCa0VBSUFkQkdIWWlDeUFFS0FJOGFpSVFhM1lnQzBFQ2RFR2dIV29vQWdCeElBZEIvLzhEY1dvMkFrd2dCQ0FRSUF4QkdIWWlCMm9pQ3pZQ1BDQUVJQWRCQW5SQm9CMXFLQUlBSUFaQkFDQUxhM1p4SUF4Qi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ1pCR0hZaUJ5QUVLQUk4YWlJTE5nSThJQVFnQjBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUF0cmRuRWdCa0gvL3dOeGFqWUNWQ0FFUWZBQWFpQUlRUXhzYWlJR0lBbzJBZ2dnQmlBQ05nSUVJQVlnQXpZQ0FDQUlRUUZxSVFnZ0F5QVphaUFDYWlFWkRBRUxDeUFJSUI5SURRTWdGa0VnYXlFaElBNGhCd05BSUFSQk9Hb1FEMEVEUmlBSUlBOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnWkJFSFlpSTBIL0FYRWhDaUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWcxQkVIWWlJRUgvQVhFaEV5QUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFNZ1FVSWdpQ0JBUWlDSXB5RUxBa0FnUWtJUWlLY2lERUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJTWF5SVJJQUlnQWlBUlN4c2lFQ0FNYWpZQ1BDQURJQVFvQWpnZ0RIUkJBQ0FRYTNZZ0FpQVFheUlNZEdvaEVDQUVRVGhxRUE4YUlBSWdFVTBOQVNBRUlBUW9BandpQWlBTWFqWUNQQ0FFS0FJNElBSjBRUUFnREd0MklCQnFJUkFNQVFzZ0JDQUNJQVFvQWp3aUVHbzJBandnQkNnQ09DQVFkRUVBSUF4cmRpQURhaUVRSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUJBMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQUxCRUFnQkNnQ1pDRVFEQU1MSUFRb0FtZ2hFQXdCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFNZ0MwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnTkZJQU5xSVJBZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQkEyQW1RTHB5RU1JRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUJOcU5nSThJQVFvQWpnZ0FuUkJBQ0FnYTNZZ0RHb2hEQXNnQ2lBVGFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lBcHFOZ0k4SUFRb0FqZ2dBblJCQUNBamEzWWdDMm9oQ3dzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQWtFQUlBWkJHSFlpQXlBRUtBSThhaUlLYTNZZ0EwRUNkRUdnSFdvb0FnQnhJQVpCLy84RGNXbzJBa3dnQkNBS0lBMUJHSFlpQTJvaUJqWUNQQ0FFSUFOQkFuUkJvQjFxS0FJQUlBSkJBQ0FHYTNaeElBMUIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdKQkdIWWlBeUFFS0FJOGFpSUdOZ0k4SUFRZ0EwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBWnJkbkVnQWtILy93TnhhallDVkFKQUFrQUNRQ0FFS0FMY0FTSURJQVJCOEFCcUlBaEJCM0ZCREd4cUloTW9BZ0FpRVdvaUl5QVhTdzBBSUFjZ0V5Z0NCQ0lOSUJGcUlncHFJQ0ZMRFFBZ0NrRWdhaUFXSUFkclRRMEJDeUFFSUJNb0FnZzJBaGdnQkNBVEtRSUFOd01RSUFjZ0ZpQUVRUkJxSUFSQjNBRnFJQmNnRWlBWUlCb1FIeUVLREFFTElBY2dFV29oQWlBVEtBSUlJUVlnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0FKQUlCRkJFVWtOQUNBSElBTXBBQkEzQUJBZ0J5QURLUUFZTndBWUlCRkJFR3RCRVVnTkFDQURRUkJxSVFNZ0IwRWdhaUVSQTBBZ0VTQURLUUFRTndBQUlCRWdBeWtBR0RjQUNDQVJJQU1wQUNBM0FCQWdFU0FES1FBb053QVlJQU5CSUdvaEF5QVJRU0JxSWhFZ0Fra05BQXNMSUFJZ0Jtc2hBeUFFSUNNMkF0d0JJQUlnRW1zZ0Jra0VRQ0FHSUFJZ0dHdExEUWNnR2lBYUlBTWdFbXNpQTJvaUVTQU5hazhFUUNBQ0lCRWdEUkFLR2d3Q0N5QURJQTFxSVEwZ0FpQVJRUUFnQTJzUUNpQURheUVDSUJJaEF3c2dCa0VRVHdSQUlBSWdBeWtBQURjQUFDQUNJQU1wQUFnM0FBZ2dEVUVSU0EwQklBSWdEV29oQmlBQ1FSQnFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBR1NRMEFDd3dCQ3dKQUlBWkJCMDBFUUNBQ0lBTXRBQUE2QUFBZ0FpQURMUUFCT2dBQklBSWdBeTBBQWpvQUFpQUNJQU10QUFNNkFBTWdBaUFESUFaQkFuUWlCa0hBSG1vb0FnQnFJZ01vQUFBMkFBUWdBeUFHUWVBZWFpZ0NBR3NoQXd3QkN5QUNJQU1wQUFBM0FBQUxJQTFCQ1VrTkFDQUNJQTFxSVJFZ0FrRUlhaUlHSUFOQkNHb2lBMnRCRDB3RVFBTkFJQVlnQXlrQUFEY0FBQ0FEUVFocUlRTWdCa0VJYWlJR0lCRkpEUUFNQWdzQUN5QUdJQU1wQUFBM0FBQWdCaUFES1FBSU53QUlJQTFCR1VnTkFDQUNRUmhxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQVJTUTBBQ3dzZ0NrR0lmMHNFUUNBS0lRa01CZ1VnRXlBUU5nSUlJQk1nRERZQ0JDQVRJQXMyQWdBZ0NFRUJhaUVJSUFjZ0Ntb2hCeUFMSUJscUlBeHFJUmtNQWdzQUN3c2dDQ0FQU0EwRElBZ2dIMnNoQmdOQUFrQWdCaUFQVGdSQVFRQWhBd05BSUFOQkEwWU5BaUFGSUFOQkFuUWlBbXBCck5BQmFpQUNJQVJxS0FKa05nSUFJQU5CQVdvaEF3d0FDd0FMQWtBQ1FBSkFJQVFvQXR3QklnTWdCRUh3QUdvZ0JrRUhjVUVNYkdvaUNDZ0NBQ0lNYWlJUUlCZExEUUFnQnlBSUtBSUVJZ3NnREdvaUNtb2dJVXNOQUNBS1FTQnFJQllnQjJ0TkRRRUxJQVFnQ0NnQ0NEWUNLQ0FFSUFncEFnQTNBeUFnQnlBV0lBUkJJR29nQkVIY0FXb2dGeUFTSUJnZ0doQWZJUW9NQVFzZ0J5QU1haUVDSUFnb0FnZ2hDQ0FISUFNcEFBQTNBQUFnQnlBREtRQUlOd0FJQWtBZ0RFRVJTUTBBSUFjZ0F5a0FFRGNBRUNBSElBTXBBQmczQUJnZ0RFRVFhMEVSU0EwQUlBTkJFR29oQXlBSFFTQnFJUXdEUUNBTUlBTXBBQkEzQUFBZ0RDQURLUUFZTndBSUlBd2dBeWtBSURjQUVDQU1JQU1wQUNnM0FCZ2dBMEVnYWlFRElBeEJJR29pRENBQ1NRMEFDd3NnQWlBSWF5RURJQVFnRURZQzNBRWdBaUFTYXlBSVNRUkFJQWdnQWlBWWEwc05CeUFhSUJvZ0F5QVNheUlEYWlJTUlBdHFUd1JBSUFJZ0RDQUxFQW9hREFJTElBTWdDMm9oQ3lBQ0lBeEJBQ0FEYXhBS0lBTnJJUUlnRWlFREN5QUlRUkJQQkVBZ0FpQURLUUFBTndBQUlBSWdBeWtBQ0RjQUNDQUxRUkZJRFFFZ0FpQUxhaUVJSUFKQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFJZ0F5MEFBRG9BQUNBQ0lBTXRBQUU2QUFFZ0FpQURMUUFDT2dBQ0lBSWdBeTBBQXpvQUF5QUNJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBSWdBeWtBQURjQUFBc2dDMEVKU1EwQUlBSWdDMm9oRENBQ1FRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0RFa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dDMEVaU0EwQUlBSkJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBeEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0dCU0FHUVFGcUlRWWdCeUFLYWlFSERBSUxBQXNMSUFRb0F0d0JJUU1MUWJwL0lRa2dGeUFEYXlJQ0lCWWdCMnRMRFFJZ0J3Ui9JQWNnQXlBQ0VBSWdBbW9GUVFBTElBNXJJUWtNQWdzZ0JVRUFOZ0tjNndFTElBUWdCU2dDOE9vQklnTTJBdHdCSUFrZ0Rtb2hEQ0FESUFVb0FvRHJBV29oRUFKQUlBOUZCRUFnRGlFR0RBRUxJQVVvQXJqcEFTRU5JQVVvQXJUcEFTRVRJQVVvQXJEcEFTRVNJQVZCQVRZQ2hPb0JRUUFoQXdOQUlBTkJBMGNFUUNBRUlBTkJBblFpQW1vZ0FpQUZha0dzMEFGcUtBSUFOZ0tjQVNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUWZBQWFpSUNJQWNnQmhBTlFZaC9TdzBCSURFZ0FpQUZLQUlBRUI0Z01DQUNJQVVvQWdnUUhpQXZJQUlnQlNnQ0JCQWVJQXhCSUdzaEdDQU9JUVlEUUNBRUtBS0lBU0FFS0FLRUFVRURkR29wQWdBaVFLY2lDa0VRZGlJWlFmOEJjU0VMSUFRb0FwZ0JJQVFvQXBRQlFRTjBhaWtDQUNKQnB5SVdRUkIySWg5Qi93RnhJUm9nQkNnQ2tBRWdCQ2dDakFGQkEzUnFLUUlBSWtKQ0lJaW5JUWNnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NkQ0lJYXlJUklBSWdBaUFSU3hzaUZ5QUlhallDZENBSElBUW9BbkFnQ0hSQkFDQVhhM1lnQWlBWGF5SVhkR29oQ0NBRVFmQUFhaEFQR2lBQ0lCRk5EUUVnQkNBRUtBSjBJZ0lnRjJvMkFuUWdCQ2dDY0NBQ2RFRUFJQmRyZGlBSWFpRUlEQUVMSUFRZ0FpQUVLQUowSWhGcU5nSjBJQVFvQW5BZ0VYUkJBQ0FJYTNZZ0Iyb2hDQ0FFUWZBQWFoQVBHZ3NnQkNrQ25BRWhSQ0FFSUFnMkFwd0JJQVFnUkRjQ29BRU1BUXNDUUNBQ1JRUkFJQU1FUUNBRUtBS2NBU0VJREFNTElBUW9BcUFCSVFnTUFRc2dCQ0FFS0FKMElnSkJBV28yQW5RQ2Z5QUhJQU5GYWlBRUtBSndJQUowUVI5MmFpSUNRUU5HQkVBZ0JDZ0NuQUZCQVdzTUFRc2dBa0VDZENBRWFpZ0NuQUVMSWdkRklBZHFJUWdnQWtFQlJ3UkFJQVFnQkNnQ29BRTJBcVFCQ3dzZ0JDQUVLQUtjQVRZQ29BRWdCQ0FJTmdLY0FRdW5JUUlnUVVLQWdQd0hnMUJGQkVBZ0JDQUVLQUowSWdjZ0dtbzJBblFnQkNnQ2NDQUhkRUVBSUI5cmRpQUNhaUVDQ3lBTElCcHFRUlJQQkVBZ0JFSHdBR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ2RDSUhJQXRxTmdKMElBUW9BbkFnQjNSQkFDQVphM1lnQTJvaEF3c2dCRUh3QUdvUUR4b2dCQ0FFS0FKd0lnZEJBQ0FLUVJoMklnc2dCQ2dDZEdvaUdtdDJJQXRCQW5SQm9CMXFLQUlBY1NBS1FmLy9BM0ZxTmdLRUFTQUVJQm9nRmtFWWRpSUthaUlMTmdKMElBUWdDa0VDZEVHZ0hXb29BZ0FnQjBFQUlBdHJkbkVnRmtILy93TnhhallDbEFFZ0JFSHdBR29RRHhvZ0JDQkNweUlIUVJoMklnb2dCQ2dDZEdvaUN6WUNkQ0FFSUFwQkFuUkJvQjFxS0FJQUlBUW9BbkJCQUNBTGEzWnhJQWRCLy84RGNXbzJBb3dCSUFRZ0F6WUNPQ0FFSUFJMkFqd2dCQ0FJTmdKQUFrQUNRQUpBSUFRb0F0d0JJZ3NnQTJvaUZpQVFTdzBBSUFZZ0FpQURhaUlLYWlBWVN3MEFJQXBCSUdvZ0RDQUdhMDBOQVFzZ0JDQUVRVUJyS0FJQU5nSUlJQVFnQkNrRE9EY0RBQ0FHSUF3Z0JDQUVRZHdCYWlBUUlCSWdFeUFORUI4aENnd0JDeUFESUFacUlRY2dCaUFMS1FBQU53QUFJQVlnQ3lrQUNEY0FDQUpBSUFOQkVVa05BQ0FHSUFzcEFCQTNBQkFnQmlBTEtRQVlOd0FZSUFOQkVHdEJFVWdOQUNBTFFSQnFJUU1nQmtFZ2FpRUxBMEFnQ3lBREtRQVFOd0FBSUFzZ0F5a0FHRGNBQ0NBTElBTXBBQ0EzQUJBZ0N5QURLUUFvTndBWUlBTkJJR29oQXlBTFFTQnFJZ3NnQjBrTkFBc0xJQWNnQ0dzaEF5QUVJQlkyQXR3QklBY2dFbXNnQ0VrRVFDQUlJQWNnRTJ0TERRUWdEU0FOSUFNZ0Vtc2lBMm9pQ3lBQ2FrOEVRQ0FISUFzZ0FoQUtHZ3dDQ3lBSElBdEJBQ0FEYXhBS0lBUWdBaUFEYWlJQ05nSThJQU5ySVFjZ0VpRURDeUFJUVJCUEJFQWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQ0FDUVJGSURRRWdBaUFIYWlFSUlBZEJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBY2dBeTBBQURvQUFDQUhJQU10QUFFNkFBRWdCeUFETFFBQ09nQUNJQWNnQXkwQUF6b0FBeUFISUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQWNnQXlrQUFEY0FBQXNnQWtFSlNRMEFJQUlnQjJvaEN5QUhRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dDMGtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQWtFWlNBMEFJQWRCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXRKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdEQ3lBR0lBcHFJUVlnQkVId0FHb1FEeUVESUE5QkFXc2lEdzBBQzBFQUlRSWdBMEVDU1EwQkEwQWdBa0VEUndSQUlBVWdBa0VDZENJRGFrR3MwQUZxSUFNZ0JHb29BcHdCTmdJQUlBSkJBV29oQWd3QkN3c2dCQ2dDM0FFaEF3dEJ1bjhoQ1NBUUlBTnJJZ0lnRENBR2Ewc05BQ0FHQkg4Z0JpQURJQUlRQWlBQ2FnVkJBQXNnRG1zaENRc2dDVUdJZjBzTkJnc0NRQ0FGS0FMczZnRkZEUUFnQlNBRktRT0k2Z0VnQ2ExOE53T0k2Z0VDUUNBRktBTFE2Z0VpQWlBSmFpSUlRUjlOQkVBZ0RrVU5BU0FDSUNKcUlBNGdDUkFDR2lBRktBTFE2Z0VnQ1dvaENBd0JDeUFPSVFNZ0FnUkFJQUlnSW1vZ0EwRWdJQUpyRUFJYUlBVW9BdERxQVNFQ0lBVkJBRFlDME9vQklBVWdCU2tEa09vQklBVXBBTERxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRGtPb0JJQVVnQlNrRG1Pb0JJQVVwQUxqcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RtT29CSUFVZ0JTa0RvT29CSUFVcEFNRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEb09vQklBVWdCU2tEcU9vQklBVXBBTWpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRHFPb0JJQU1nQW10QklHb2hBd3NnQ1NBT2FpSUNJQU5CSUdwUEJFQWdBa0VnYXlFR0lBVXBBNmpxQVNFL0lBVXBBNkRxQVNGQUlBVXBBNWpxQVNGQklBVXBBNURxQVNGQ0EwQWdBeWtBR0VMUDF0Tyswc2VyMlVKK0lEOThRaCtKUW9lVnI2K1l0dDZibm45K0lUOGdBeWtBRUVMUDF0Tyswc2VyMlVKK0lFQjhRaCtKUW9lVnI2K1l0dDZibm45K0lVQWdBeWtBQ0VMUDF0Tyswc2VyMlVKK0lFRjhRaCtKUW9lVnI2K1l0dDZibm45K0lVRWdBeWtBQUVMUDF0Tyswc2VyMlVKK0lFSjhRaCtKUW9lVnI2K1l0dDZibm45K0lVSWdBMEVnYWlJRElBWk5EUUFMSUFVZ1B6Y0RxT29CSUFVZ1FEY0RvT29CSUFVZ1FUY0RtT29CSUFVZ1FqY0RrT29CQ3lBQ0lBTk5EUUVnSWlBRElBSWdBMnNpQ0JBQ0dnc2dCU0FJTmdMUTZnRUxJRFVnRldzaEF5QVZJQnRxSVFJZ0NTQU9haUVPSUFRb0FqQkZEUUFMSUNrcEF3QWlQMEovVVNBL0lBNGdIV3VzVVhKRkJFQkJiQ0VKREFZTElBVW9BdURwQVFSQVFXb2hDU0FEUVFSSkRRWWdCU2dDNk9vQlJRUkFJQ0lnQlNnQzBPb0JhaUVLQW40Z0JTa0RpT29CSWo5Q0lGb0VRQ0FGS1FPWTZnRWlRRUlIaVNBRktRT1E2Z0VpUVVJQmlYd2dCU2tEb09vQklrSkNESWw4SUFVcEE2anFBU0pEUWhLSmZDQkJRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOUlFQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZvVkNoNVd2cjVpMjNwdWVmMzVDbmFPMTZvT3hqWXI2QUgwZ1FrTFAxdE8rMHNlcjJVSitRaCtKUW9lVnI2K1l0dDZibm45K2hVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNCRFFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5REFFTElBVXBBNkRxQVVMRno5bXk4ZVc2NmlkOEN5QS9mQ0UvSUNJaEJnTkFJQW9nQmtFSWFpSUhUd1JBSUFZcEFBQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUliaVVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0UvSUFjaEJnd0JDd3NDUUNBS0lBWkJCR29pQ0VrRVFDQUdJUWdNQVFzZ0JqVUFBRUtIbGErdm1MYmVtNTUvZmlBL2hVSVhpVUxQMXRPKzBzZXIyVUorUXZuejNmR1o5cG1yRm53aFB3c0RRQ0FJSUFwSkJFQWdDREVBQUVMRno5bXk4ZVc2NmlkK0lEK0ZRZ3VKUW9lVnI2K1l0dDZibm45K0lUOGdDRUVCYWlFSURBRUxDeUFDS0FBQUlEOUNJWWdnUDRWQ3o5YlR2dExIcTlsQ2ZpSS9RaDJJSUQrRlF2bnozZkdaOXBtckZuNGlQMElnaUNBL2hhZEhEUWNMSUFOQkJHc2hBeUFDUVFScUlRSUxJQTRnSFdzaUNVR0pmMDhOQkNBQklBbHJJUUVnQ1NBZGFpRWRRUUVoUGd3QkN3dEJ1SDhoQnlBRERRUWdIU0FBYXlFSERBUUxRV3doQ1F3QkMwRzRmeUVKQzBHNGZ5RUhJQWxCZGtZZ1BuRU5BUXNnQ1NFSEN5Z0NBQTBBSUFWQi9Pb0JhaWdDQUNFQklBVkIrT29CYWlnQ0FDRUFJQVVRR0NBRktBS3c2d0VnQUNBQkVCTWdCVUVBTmdLdzZ3RWdCU2dDcE9zQklnSUVRQUpBQWtBQ1FBSkFJQUlvQWdBaUF3UkFJQUJGRFFJZ0FTQURJQUFSQWdBTUFRc2dBRVVOQWdzZ0FTQUNJQUFSQWdBTUFnc2dBeEFHQ3lBQ0VBWUxJQVZCQURZQ3BPc0JDeUFBQkVBZ0FTQUZJQUFSQWdBTUFRc2dCUkFHQ3lBRVFlQUJhaVFBSUFjTEM2Z1ZDUUJCaUFnTERRRUFBQUFCQUFBQUFnQUFBQUlBUWFBSUM3TUdBUUFBQUFFQUFBQUNBQUFBQWdBQUFDWUFBQUNDQUFBQUlRVUFBRW9BQUFCbkNBQUFKZ0FBQU1BQkFBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUtRQUFBQ3dDQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBTHdBQUFNb0NBQUNBQUFBQWlnVUFBRW9BQUFDRUNRQUFOUUFBQUhNREFBQ0FBQUFBblFVQUFFb0FBQUNnQ1FBQVBRQUFBSUVEQUFDQUFBQUE2d1VBQUVzQUFBQStDZ0FBUkFBQUFKNERBQUNBQUFBQVRRWUFBRXNBQUFDcUNnQUFTd0FBQUxNREFBQ0FBQUFBd1FZQUFFMEFBQUFmRFFBQVRRQUFBRk1FQUFDQUFBQUFJd2dBQUZFQUFBQ21Ed0FBVkFBQUFKa0VBQUNBQUFBQVN3a0FBRmNBQUFDeEVnQUFXQUFBQU5vRUFBQ0FBQUFBYndrQUFGMEFBQUFqRkFBQVZBQUFBRVVGQUFDQUFBQUFWQW9BQUdvQUFBQ01GQUFBYWdBQUFLOEZBQUNBQUFBQWRna0FBSHdBQUFCT0VBQUFmQUFBQU5JQ0FBQ0FBQUFBWXdjQUFKRUFBQUNRQndBQWtnQUFBQUFBQUFBQkFBQUFBUUFBQUFVQUFBQU5BQUFBSFFBQUFEMEFBQUI5QUFBQS9RQUFBUDBCQUFEOUF3QUEvUWNBQVAwUEFBRDlId0FBL1Q4QUFQMS9BQUQ5L3dBQS9mOEJBUDMvQXdEOS93Y0EvZjhQQVAzL0h3RDkvejhBL2Y5L0FQMy8vd0Q5Ly84Qi9mLy9BLzMvL3dmOS8vOFAvZi8vSC8zLy96LzkvLzkvQUFBQUFBRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBREFBQUFCQUFBQUFVQUFBQUdBQUFBQndBQUFBZ0FBQUFKQUFBQUNnQUFBQXNBQUFBTUFBQUFEUUFBQUE0QUFBQVBBQUFBRUFBQUFCRUFBQUFTQUFBQUV3QUFBQlFBQUFBVkFBQUFGZ0FBQUJjQUFBQVlBQUFBR1FBQUFCb0FBQUFiQUFBQUhBQUFBQjBBQUFBZUFBQUFId0FBQUNBQUFBQWhBQUFBSWdBQUFDTUFBQUFsQUFBQUp3QUFBQ2tBQUFBckFBQUFMd0FBQURNQUFBQTdBQUFBUXdBQUFGTUFBQUJqQUFBQWd3QUFBQU1CQUFBREFnQUFBd1FBQUFNSUFBQURFQUFBQXlBQUFBTkFBQUFEZ0FBQUF3QUJBRUhnRHd0UkFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJBQUFBQVVBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFFSEVFQXVMQVFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBU0FBQUFGQUFBQUJZQUFBQVlBQUFBSEFBQUFDQUFBQUFvQUFBQU1BQUFBRUFBQUFDQUFBQUFBQUVBQUFBQ0FBQUFCQUFBQUFnQUFBQVFBQUFBSUFBQUFFQUFBQUNBQUFBQUFBRUFRWkFTQytZRUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBQkFBQUFCQUFBQUFnQUFBQUFBQUFBQVFBQkFRWUFBQUFBQUFBRUFBQUFBQkFBQUFRQUFBQUFJQUFBQlFFQUFBQUFBQUFGQXdBQUFBQUFBQVVFQUFBQUFBQUFCUVlBQUFBQUFBQUZCd0FBQUFBQUFBVUpBQUFBQUFBQUJRb0FBQUFBQUFBRkRBQUFBQUFBQUFZT0FBQUFBQUFCQlJBQUFBQUFBQUVGRkFBQUFBQUFBUVVXQUFBQUFBQUNCUndBQUFBQUFBTUZJQUFBQUFBQUJBVXdBQUFBSUFBR0JVQUFBQUFBQUFjRmdBQUFBQUFBQ0FZQUFRQUFBQUFLQmdBRUFBQUFBQXdHQUJBQUFDQUFBQVFBQUFBQUFBQUFCQUVBQUFBQUFBQUZBZ0FBQUNBQUFBVUVBQUFBQUFBQUJRVUFBQUFnQUFBRkJ3QUFBQUFBQUFVSUFBQUFJQUFBQlFvQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUlBQUJCUkFBQUFBQUFBRUZFZ0FBQUNBQUFRVVdBQUFBQUFBQ0JSZ0FBQUFnQUFNRklBQUFBQUFBQXdVb0FBQUFBQUFHQkVBQUFBQVFBQVlFUUFBQUFDQUFCd1dBQUFBQUFBQUpCZ0FDQUFBQUFBc0dBQWdBQURBQUFBUUFBQUFBRUFBQUJBRUFBQUFnQUFBRkFnQUFBQ0FBQUFVREFBQUFJQUFBQlFVQUFBQWdBQUFGQmdBQUFDQUFBQVVJQUFBQUlBQUFCUWtBQUFBZ0FBQUZDd0FBQUNBQUFBVU1BQUFBQUFBQUJnOEFBQUFnQUFFRkVnQUFBQ0FBQVFVVUFBQUFJQUFDQlJnQUFBQWdBQUlGSEFBQUFDQUFBd1VvQUFBQUlBQUVCVEFBQUFBQUFCQUdBQUFCQUFBQUR3WUFnQUFBQUFBT0JnQkFBQUFBQUEwR0FDQUFRWUFYQzRjQ0FRQUJBUVVBQUFBQUFBQUZBQUFBQUFBQUJnUTlBQUFBQUFBSkJmMEJBQUFBQUE4Ri9YOEFBQUFBRlFYOS94OEFBQUFEQlFVQUFBQUFBQWNFZlFBQUFBQUFEQVg5RHdBQUFBQVNCZjMvQXdBQUFCY0YvZjkvQUFBQUJRVWRBQUFBQUFBSUJQMEFBQUFBQUE0Ri9UOEFBQUFBRkFYOS93OEFBQUFDQlFFQUFBQVFBQWNFZlFBQUFBQUFDd1g5QndBQUFBQVJCZjMvQVFBQUFCWUYvZjgvQUFBQUJBVU5BQUFBRUFBSUJQMEFBQUFBQUEwRi9SOEFBQUFBRXdYOS93Y0FBQUFCQlFFQUFBQVFBQVlFUFFBQUFBQUFDZ1g5QXdBQUFBQVFCZjMvQUFBQUFCd0YvZi8vRHdBQUd3WDkvLzhIQUFBYUJmMy8vd01BQUJrRi9mLy9BUUFBR0FYOS8vOEFRWkFaQzRZRUFRQUJBUVlBQUFBQUFBQUdBd0FBQUFBQUFBUUVBQUFBSUFBQUJRVUFBQUFBQUFBRkJnQUFBQUFBQUFVSUFBQUFBQUFBQlFrQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUFBQUFCaEFBQUFBQUFBQUdFd0FBQUFBQUFBWVdBQUFBQUFBQUJoa0FBQUFBQUFBR0hBQUFBQUFBQUFZZkFBQUFBQUFBQmlJQUFBQUFBQUVHSlFBQUFBQUFBUVlwQUFBQUFBQUNCaThBQUFBQUFBTUdPd0FBQUFBQUJBWlRBQUFBQUFBSEJvTUFBQUFBQUFrR0F3SUFBQkFBQUFRRUFBQUFBQUFBQkFVQUFBQWdBQUFGQmdBQUFBQUFBQVVIQUFBQUlBQUFCUWtBQUFBQUFBQUZDZ0FBQUFBQUFBWU1BQUFBQUFBQUJnOEFBQUFBQUFBR0VnQUFBQUFBQUFZVkFBQUFBQUFBQmhnQUFBQUFBQUFHR3dBQUFBQUFBQVllQUFBQUFBQUFCaUVBQUFBQUFBRUdJd0FBQUFBQUFRWW5BQUFBQUFBQ0Jpc0FBQUFBQUFNR013QUFBQUFBQkFaREFBQUFBQUFGQm1NQUFBQUFBQWdHQXdFQUFDQUFBQVFFQUFBQU1BQUFCQVFBQUFBUUFBQUVCUUFBQUNBQUFBVUhBQUFBSUFBQUJRZ0FBQUFnQUFBRkNnQUFBQ0FBQUFVTEFBQUFBQUFBQmc0QUFBQUFBQUFHRVFBQUFBQUFBQVlVQUFBQUFBQUFCaGNBQUFBQUFBQUdHZ0FBQUFBQUFBWWRBQUFBQUFBQUJpQUFBQUFBQUJBR0F3QUJBQUFBRHdZRGdBQUFBQUFPQmdOQUFBQUFBQTBHQXlBQUFBQUFEQVlERUFBQUFBQUxCZ01JQUFBQUFBb0dBd1FBUWFRZEM5a0JBUUFBQUFNQUFBQUhBQUFBRHdBQUFCOEFBQUEvQUFBQWZ3QUFBUDhBQUFEL0FRQUEvd01BQVA4SEFBRC9Ed0FBL3g4QUFQOC9BQUQvZndBQS8vOEFBUC8vQVFELy93TUEvLzhIQVAvL0R3RC8veDhBLy84L0FQLy9md0QvLy84QS8vLy9BZi8vL3dQLy8vOEgvLy8vRC8vLy94Ly8vLzgvLy8vL2Z3QUFBQUFCQUFBQUFnQUFBQVFBQUFBQUFBQUFBZ0FBQUFRQUFBQUlBQUFBQUFBQUFBRUFBQUFDQUFBQUFRQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBZ0FBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0JCZ0I4TEE0QVJBUT09Ijt2YXIgdnQ9bmV3IFZBLFp0PSExO2FzeW5jIGZ1bmN0aW9uIFZyKEEsZSxJKXtsZXQgdD0idW5rbm93biI7dHlwZW9mIEEhPSJzdHJpbmciP3Q9QS5ocmVmOkEuc3RhcnRzV2l0aCgiaHR0cCIpP3Q9QTp0PXR5cGVvZiBlPCJ1Ij9gJHtlfS8ke0F9YDpBLHQuZW5kc1dpdGgoIi5qcyIpJiYodD10LnN1YnN0cmluZygwLHQubGVuZ3RoLTMpKSx0LmVuZHNXaXRoKCIud2FzbSIpJiYodD10LnN1YnN0cmluZygwLHQubGVuZ3RoLTUpKSx0LmVuZHNXaXRoKCIud2FzbS56c3QiKSYmKHQ9dC5zdWJzdHJpbmcoMCx0Lmxlbmd0aC05KSk7bGV0IHI9YCR7dH0ud2FzbWAsaT1hd2FpdCBnQS5nZXQoYCR7cn0uenN0YCx7cmVzcG9uc2VUeXBlOiJhcnJheWJ1ZmZlciIscGFyYW1zOkl9KTtadHx8KGF3YWl0IHZ0LmluaXQoKSxadD0hMCk7bGV0IHM9dnQuZGVjb2RlKG5ldyBVaW50OEFycmF5KGkuZGF0YSkpLmJ1ZmZlcjtyZXR1cm4oYXdhaXQgaW1wb3J0KGAke3R9LmpzYCkpLmRlZmF1bHQoe3dhc21CaW5hcnk6c30pfXZhciBWdD1Wcjt2YXIgWHQ9YXN5bmMoKT0+V2ViQXNzZW1ibHkudmFsaWRhdGUobmV3IFVpbnQ4QXJyYXkoWzAsOTcsMTE1LDEwOSwxLDAsMCwwLDEsNSwxLDk2LDAsMSwxMjMsMywyLDEsMCwxMCwxMCwxLDgsMCw2NSwwLDI1MywxNSwyNTMsOTgsMTFdKSk7dmFyICR0PXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPT0iZnVuY3Rpb24iLHp0PW5ldyBUZXh0RW5jb2RlcixfdD1uZXcgVGV4dERlY29kZXIoInV0Zi04Iik7ZnVuY3Rpb24gWHIoQSxlKXtsZXQgST17ZmxhZ3M6InIiLGVuY29kaW5nOiJiaW5hcnkifSx0PUEuZnNfb3BlbihlLEkuZmxhZ3MpLGk9QS5mc19zdGF0KGUpLnNpemUsZz1udWxsOyR0P2c9bmV3IFNoYXJlZEFycmF5QnVmZmVyKGkpOmc9bmV3IEFycmF5QnVmZmVyKGkpO2xldCBzPW5ldyBVaW50OEFycmF5KGcpO3JldHVybiBBLmZzX3JlYWQodCxzLDAsaSwwKSxBLmZzX2Nsb3NlKHQpLHN9ZnVuY3Rpb24gQUkoQSxlLEkpe2xldCB0PW51bGw7JHQ/dD1uZXcgU2hhcmVkQXJyYXlCdWZmZXIoSSk6dD1uZXcgQXJyYXlCdWZmZXIoSSk7bGV0IHI9bmV3IFVpbnQ4QXJyYXkodCksaT1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsZSxJKTtyZXR1cm4gci5zZXQoaSkscn1mdW5jdGlvbiBtKEEsZSxJLHQpe2xldCByPTA7cmV0dXJuIGUhPT1udWxsJiYocj1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9hcnJheV9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxJLHQsZS5idWZmZXIuYnl0ZUxlbmd0aF0pLEEuSEVBUFU4LnNldChuZXcgVWludDhBcnJheShlLmJ1ZmZlcikscikpLHJ9ZnVuY3Rpb24gVyhBLGUsSSl7bGV0IHQ9SlNPTi5zdHJpbmdpZnkoZSkscj1BLmxlbmd0aEJ5dGVzVVRGOCh0KSsxLGk9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfanNvbl9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxJLHJdKTtBLnN0cmluZ1RvVVRGOCh0LGkscil9ZnVuY3Rpb24gUihBLGUsSSx0KXtsZXQgcj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLEldKSxpPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUsSV0pLGc9QUkoQSxyLGkpO3JldHVybiBIKHQsZy5idWZmZXIpfWZ1bmN0aW9uIHBBKEEsZSl7bGV0IEk9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2pzb25fYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiXSxbMCxlXSksdD1BLlVURjhUb1N0cmluZyhJKTtyZXR1cm4gSlNPTi5wYXJzZSh0KX1mdW5jdGlvbiB6cihBLGUsSSx0KXt0IT1udWxsJiZ0Lmxlbmd0aD4wJiZ0LmZvckVhY2goZnVuY3Rpb24oQyxvKXtzd2l0Y2goQy50eXBlKXtjYXNlIGguVGV4dFN0cmVhbTp7bGV0IG49enQuZW5jb2RlKEMuZGF0YS5kYXRhKSxmPW0oQSxuLG8sMCksQj17c2l6ZTpuLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWB9O1coQSxCLG8pO2JyZWFrfWNhc2UgaC5Kc29uQ29tcGF0aWJsZTp7bGV0IG49enQuZW5jb2RlKEpTT04uc3RyaW5naWZ5KEMuZGF0YSkpLGY9bShBLG4sbywwKSxCPXtzaXplOm4uYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YH07VyhBLEIsbyk7YnJlYWt9Y2FzZSBoLkJpbmFyeVN0cmVhbTp7bGV0IG49Qy5kYXRhLmRhdGEsZj1tKEEsbixvLDApLEI9e3NpemU6bi5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gfTtXKEEsQixvKTticmVha31jYXNlIGguVGV4dEZpbGU6e0EuZnNfd3JpdGVGaWxlKEMuZGF0YS5wYXRoLEMuZGF0YS5kYXRhKTticmVha31jYXNlIGguQmluYXJ5RmlsZTp7QS5mc193cml0ZUZpbGUoQy5kYXRhLnBhdGgsQy5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgaC5JbWFnZTp7bGV0IG49Qy5kYXRhLGY9bShBLG4uZGF0YSxvLDApLEI9bShBLG4uZGlyZWN0aW9uLG8sMSksUT10eXBlb2Ygbi5tZXRhZGF0YT8uZW50cmllczwidSI/QXJyYXkuZnJvbShuLm1ldGFkYXRhLmVudHJpZXMoKSk6W10sbD17aW1hZ2VUeXBlOm4uaW1hZ2VUeXBlLG5hbWU6bi5uYW1lLG9yaWdpbjpuLm9yaWdpbixzcGFjaW5nOm4uc3BhY2luZyxkaXJlY3Rpb246YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWAsc2l6ZTpuLnNpemUsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YCxtZXRhZGF0YTpRfTtXKEEsbCxvKTticmVha31jYXNlIGguTWVzaDp7bGV0IG49Qy5kYXRhLGY9bShBLG4ucG9pbnRzLG8sMCksQj1tKEEsbi5jZWxscyxvLDEpLFE9bShBLG4ucG9pbnREYXRhLG8sMiksbD1tKEEsbi5jZWxsRGF0YSxvLDMpLGM9e21lc2hUeXBlOm4ubWVzaFR5cGUsbmFtZTpuLm5hbWUsbnVtYmVyT2ZQb2ludHM6bi5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsbnVtYmVyT2ZDZWxsczpuLm51bWJlck9mQ2VsbHMsY2VsbHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWAsY2VsbEJ1ZmZlclNpemU6bi5jZWxsQnVmZmVyU2l6ZSxudW1iZXJPZlBvaW50UGl4ZWxzOm4ubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOm4ubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTtXKEEsYyxvKTticmVha31jYXNlIGguUG9pbnRTZXQ6e2xldCBuPUMuZGF0YSxmPW0oQSxuLnBvaW50cyxvLDApLEI9bShBLG4ucG9pbnREYXRhLG8sMSksUT17cG9pbnRTZXRUeXBlOm4ucG9pbnRTZXRUeXBlLG5hbWU6bi5uYW1lLG51bWJlck9mUG9pbnRzOm4ubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gLG51bWJlck9mUG9pbnRQaXhlbHM6bi5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0J9YH07VyhBLFEsbyk7YnJlYWt9Y2FzZSBoLlRyYW5zZm9ybUxpc3Q6e2xldCBuPUMuZGF0YSxmPVtdLEI9MDtuLmZvckVhY2goUT0+e2xldCBsPSIiLGM9IiI7US50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGw9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHttKEEsUS5maXhlZFBhcmFtZXRlcnMsbyxCKX1gLEIrPTEsYz1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke20oQSxRLnBhcmFtZXRlcnMsbyxCKX1gLEIrPTEpO2xldCB5PXt0cmFuc2Zvcm1UeXBlOlEudHJhbnNmb3JtVHlwZSxudW1iZXJPZkZpeGVkUGFyYW1ldGVyczpRLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzLG51bWJlck9mUGFyYW1ldGVyczpRLm51bWJlck9mUGFyYW1ldGVycyxuYW1lOlEubmFtZSxpbnB1dFNwYWNlTmFtZTpRLmlucHV0U3BhY2VOYW1lLG91dHB1dFNwYWNlTmFtZTpRLm91dHB1dFNwYWNlTmFtZSxwYXJhbWV0ZXJzOmMsZml4ZWRQYXJhbWV0ZXJzOmx9O2YucHVzaCh5KX0pLFcoQSxmLG8pO2JyZWFrfWNhc2UgaC5Qb2x5RGF0YTp7bGV0IG49Qy5kYXRhLGY9bShBLG4ucG9pbnRzLG8sMCksQj1tKEEsbi52ZXJ0aWNlcyxvLDEpLFE9bShBLG4ubGluZXMsbywyKSxsPW0oQSxuLnBvbHlnb25zLG8sMyksYz1tKEEsbi50cmlhbmdsZVN0cmlwcyxvLDQpLHk9bShBLG4ucG9pbnREYXRhLG8sNSksVT1tKEEsbi5wb2ludERhdGEsbyw2KSxwPXtwb2x5RGF0YVR5cGU6bi5wb2x5RGF0YVR5cGUsbmFtZTpuLm5hbWUsbnVtYmVyT2ZQb2ludHM6bi5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsdmVydGljZXNCdWZmZXJTaXplOm4udmVydGljZXNCdWZmZXJTaXplLHZlcnRpY2VzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Qn1gLGxpbmVzQnVmZmVyU2l6ZTpuLmxpbmVzQnVmZmVyU2l6ZSxsaW5lczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YCxwb2x5Z29uc0J1ZmZlclNpemU6bi5wb2x5Z29uc0J1ZmZlclNpemUscG9seWdvbnM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsdHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplOm4udHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplLHRyaWFuZ2xlU3RyaXBzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLG51bWJlck9mUG9pbnRQaXhlbHM6bi5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3l9YCxudW1iZXJPZkNlbGxQaXhlbHM6bi5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtVfWB9O1coQSxwLG8pO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIGlucHV0IEludGVyZmFjZVR5cGUiKX19KSxBLnJlc2V0TW9kdWxlU3Rkb3V0KCksQS5yZXNldE1vZHVsZVN0ZGVycigpO2xldCByPUEuc3RhY2tTYXZlKCksaT0wO3RyeXtpPUEuY2FsbE1haW4oZS5zbGljZSgpKX1jYXRjaChDKXt0aHJvdyB0eXBlb2YgQz09Im51bWJlciImJihjb25zb2xlLmxvZygiRXhjZXB0aW9uIHdoaWxlIHJ1bm5pbmcgcGlwZWxpbmU6IiksY29uc29sZS5sb2coInN0ZG91dDoiLEEuZ2V0TW9kdWxlU3Rkb3V0KCkpLGNvbnNvbGUuZXJyb3IoInN0ZGVycjoiLEEuZ2V0TW9kdWxlU3RkZXJyKCkpLHR5cGVvZiBBLmdldEV4Y2VwdGlvbk1lc3NhZ2U8InUiP2NvbnNvbGUuZXJyb3IoImV4Y2VwdGlvbjoiLEEuZ2V0RXhjZXB0aW9uTWVzc2FnZShDKSk6Y29uc29sZS5lcnJvcigiQnVpbGQgbW9kdWxlIGluIERlYnVnIG1vZGUgZm9yIGV4Y2VwdGlvbiBtZXNzYWdlIGluZm9ybWF0aW9uLiIpKSxDfWZpbmFsbHl7QS5zdGFja1Jlc3RvcmUocil9bGV0IGc9QS5nZXRNb2R1bGVTdGRvdXQoKSxzPUEuZ2V0TW9kdWxlU3RkZXJyKCksRT1bXTtyZXR1cm4gSSE9bnVsbCYmSS5sZW5ndGg+MCYmaT09PTAmJkkuZm9yRWFjaChmdW5jdGlvbihDLG8pe2xldCBuPW51bGw7c3dpdGNoKEMudHlwZSl7Y2FzZSBoLlRleHRTdHJlYW06e2xldCBCPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG8sMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbywwXSksbD1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsQixRKTtuPXtkYXRhOl90LmRlY29kZShsKX07YnJlYWt9Y2FzZSBoLkpzb25Db21wYXRpYmxlOntsZXQgQj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxvLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG8sMF0pLGw9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLEIsUSk7bj1KU09OLnBhcnNlKF90LmRlY29kZShsKSk7YnJlYWt9Y2FzZSBoLkJpbmFyeVN0cmVhbTp7bGV0IEI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxvLDBdKTtuPXtkYXRhOkFJKEEsQixRKX07YnJlYWt9Y2FzZSBoLlRleHRGaWxlOntuPXtwYXRoOkMuZGF0YS5wYXRoLGRhdGE6QS5mc19yZWFkRmlsZShDLmRhdGEucGF0aCx7ZW5jb2Rpbmc6InV0ZjgifSl9O2JyZWFrfWNhc2UgaC5CaW5hcnlGaWxlOntuPXtwYXRoOkMuZGF0YS5wYXRoLGRhdGE6WHIoQSxDLmRhdGEucGF0aCl9O2JyZWFrfWNhc2UgaC5JbWFnZTp7bGV0IEI9cEEoQSxvKTtCLmRhdGE9UihBLG8sMCxCLmltYWdlVHlwZS5jb21wb25lbnRUeXBlKSxCLmRpcmVjdGlvbj1SKEEsbywxLEYuRmxvYXQ2NCksQi5tZXRhZGF0YT1uZXcgTWFwKEIubWV0YWRhdGEpLG49QjticmVha31jYXNlIGguTWVzaDp7bGV0IEI9cEEoQSxvKTtCLm51bWJlck9mUG9pbnRzPjA/Qi5wb2ludHM9UihBLG8sMCxCLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6Qi5wb2ludHM9SChCLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZDZWxscz4wP0IuY2VsbHM9UihBLG8sMSxCLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlKTpCLmNlbGxzPUgoQi5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZQb2ludFBpeGVscz4wP0IucG9pbnREYXRhPVIoQSxvLDIsQi5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5wb2ludERhdGE9SChCLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZkNlbGxQaXhlbHM+MD9CLmNlbGxEYXRhPVIoQSxvLDMsQi5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpCLmNlbGxEYXRhPUgoQi5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksbj1CO2JyZWFrfWNhc2UgaC5Qb2ludFNldDp7bGV0IEI9cEEoQSxvKTtCLm51bWJlck9mUG9pbnRzPjA/Qi5wb2ludHM9UihBLG8sMCxCLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUpOkIucG9pbnRzPUgoQi5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qi5wb2ludERhdGE9UihBLG8sMSxCLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5wb2ludERhdGE9SChCLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLG49QjticmVha31jYXNlIGguVHJhbnNmb3JtTGlzdDp7bGV0IEI9cEEoQSxvKSxRPTA7Qi5mb3JFYWNoKChsLGMpPT57bC50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGwubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM+MCYmKEJbY10uZml4ZWRQYXJhbWV0ZXJzPVIoQSxvLFEsRi5GbG9hdDY0KSksUSs9MSxsLm51bWJlck9mUGFyYW1ldGVycz4wJiYoQltjXS5wYXJhbWV0ZXJzPVIoQSxvLFEsbC50cmFuc2Zvcm1UeXBlLnBhcmFtZXRlcnNWYWx1ZVR5cGUpKSxRKz0xKX0pLG49QjticmVha31jYXNlIGguUG9seURhdGE6e2xldCBCPXBBKEEsbyk7Qi5udW1iZXJPZlBvaW50cz4wP0IucG9pbnRzPVIoQSxvLDAsRi5GbG9hdDMyKTpCLnBvaW50cz1uZXcgRmxvYXQzMkFycmF5LEIudmVydGljZXNCdWZmZXJTaXplPjA/Qi52ZXJ0aWNlcz1SKEEsbywxLGQuVUludDMyKTpCLnZlcnRpY2VzPW5ldyBVaW50MzJBcnJheSxCLmxpbmVzQnVmZmVyU2l6ZT4wP0IubGluZXM9UihBLG8sMixkLlVJbnQzMik6Qi5saW5lcz1uZXcgVWludDMyQXJyYXksQi5wb2x5Z29uc0J1ZmZlclNpemU+MD9CLnBvbHlnb25zPVIoQSxvLDMsZC5VSW50MzIpOkIucG9seWdvbnM9bmV3IFVpbnQzMkFycmF5LEIudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplPjA/Qi50cmlhbmdsZVN0cmlwcz1SKEEsbyw0LGQuVUludDMyKTpCLnRyaWFuZ2xlU3RyaXBzPW5ldyBVaW50MzJBcnJheSxCLm51bWJlck9mUG9pbnRQaXhlbHM+MD9CLnBvaW50RGF0YT1SKEEsbyw1LEIucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpCLnBvaW50RGF0YT1IKEIucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZkNlbGxQaXhlbHM+MD9CLmNlbGxEYXRhPVIoQSxvLDYsQi5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5jZWxsRGF0YT1IKEIucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxuPUI7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgb3V0cHV0IEludGVyZmFjZVR5cGUiKX1sZXQgZj17dHlwZTpDLnR5cGUsZGF0YTpufTtFLnB1c2goZil9KSx7cmV0dXJuVmFsdWU6aSxzdGRvdXQ6ZyxzdGRlcnI6cyxvdXRwdXRzOkV9fXZhciBlST16cjt2YXIgX3I9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI8InUiO2Z1bmN0aW9uICRyKEEsZSl7aWYoQT09bnVsbClyZXR1cm5bXTtsZXQgST1bXTtmb3IobGV0IHQ9MDt0PEEubGVuZ3RoO3QrKyl7bGV0IHI9QWcoQVt0XSxlKTtyIT09bnVsbCYmSS5wdXNoKHIpfXJldHVybiBJfWZ1bmN0aW9uIEFnKEEsZSl7aWYoQT09bnVsbClyZXR1cm4gbnVsbDtsZXQgST1udWxsO3JldHVybiBBLmJ1ZmZlciE9PXZvaWQgMD9JPUEuYnVmZmVyOkEuYnl0ZUxlbmd0aCE9PXZvaWQgMCYmKEk9QSksX3ImJkkgaW5zdGFuY2VvZiBTaGFyZWRBcnJheUJ1ZmZlcj9udWxsOmU/STpJLnNsaWNlKDApfXZhciB0ST0kcjtmdW5jdGlvbiBlZyhBKXtyZXR1cm5bQS5kYXRhLEEuZGlyZWN0aW9uXX12YXIgSUk9ZWc7ZnVuY3Rpb24gdGcoQSl7cmV0dXJuW0EucG9pbnRzLEEucG9pbnREYXRhLEEuY2VsbHMsQS5jZWxsRGF0YV19dmFyIHJJPXRnO2Z1bmN0aW9uIElnKEEpe3JldHVybltBLnBvaW50cyxBLnZlcnRpY2VzLEEubGluZXMsQS5wb2x5Z29ucyxBLnRyaWFuZ2xlU3RyaXBzLEEucG9pbnREYXRhLEEuY2VsbERhdGFdfXZhciBnST1JZzt2YXIgcmc7ZnVuY3Rpb24gWEEoKXtyZXR1cm4gcmd9dmFyIGdnO2Z1bmN0aW9uIGlJKCl7cmV0dXJuIGdnfXZhciBpZztmdW5jdGlvbiB6QSgpe3JldHVybiBpZ312YXIgTWU9bmV3IE1hcDtmdW5jdGlvbiBvZygpe2xldCBBPXpBKCk7cmV0dXJuIHR5cGVvZiBBPiJ1IiYmKEE9bnVsbCksQX1mdW5jdGlvbiBvSSgpe2xldCBBPVhBKCk7cmV0dXJuIHR5cGVvZiBBPiJ1IiYmKEE9bmV3IFVSTCgiL3BpcGVsaW5lcyIsZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luKS5ocmVmKSxBfWZ1bmN0aW9uIF9BKCl7bGV0IEE9aUkoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT17fSksQX1hc3luYyBmdW5jdGlvbiBhZyhBLGUsSSl7bGV0IHQ9QSxyPUE7aWYodHlwZW9mIEEhPSJzdHJpbmciJiYodD1uZXcgVVJMKEEuaHJlZikscj10LmhyZWYpLE1lLmhhcyhyKSlyZXR1cm4gTWUuZ2V0KHIpO3tsZXQgaT1hd2FpdCBWdChBLGU/LnRvU3RyaW5nKCk/P29JKCksST8/X0EoKSk7cmV0dXJuIE1lLnNldChyLGkpLGl9fWFzeW5jIGZ1bmN0aW9uIG5nKEEsZSxJLHQscil7aWYoIWF3YWl0IFh0KCkpe2xldCBjPSJXZWJBc3NlbWJseSBTSU1EIHN1cHBvcnQgaXMgcmVxdWlyZWQgLS0gcGxlYXNlIHVwZGF0ZSB5b3VyIGJyb3dzZXIuIjt0aHJvdyBhbGVydChjKSxuZXcgRXJyb3IoYyl9bGV0IGk9cj8ud2ViV29ya2VyPz9udWxsO2lmKGk9PT0hMSl7bGV0IGM9YXdhaXQgYWcoQS50b1N0cmluZygpLHI/LnBpcGVsaW5lQmFzZVVybCxyPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz9fQSgpKTtyZXR1cm4gZUkoYyxlLEksdCl9bGV0IGc9aSxzPXI/LnBpcGVsaW5lV29ya2VyVXJsPz9vZygpLEU9dHlwZW9mIHMhPSJzdHJpbmciJiZ0eXBlb2Ygcz8uaHJlZjwidSI/cy5ocmVmOnMse3dvcmtlclByb3h5OkMsd29ya2VyOm99PWF3YWl0IFd0KGcsRSxyPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz9fQSgpKTtnPW87bGV0IG49W107dCE9bnVsbCYmdC5sZW5ndGg+MCYmdC5mb3JFYWNoKGZ1bmN0aW9uKGMpe2lmKGMudHlwZT09PWguQmluYXJ5U3RyZWFtKXtsZXQgeT1jLmRhdGEuZGF0YTtuLnB1c2goeSl9ZWxzZSBpZihjLnR5cGU9PT1oLkJpbmFyeUZpbGUpe2xldCB5PWMuZGF0YS5kYXRhO24ucHVzaCh5KX1lbHNlIGlmKGMudHlwZT09PWguSW1hZ2Upe2xldCB5PWMuZGF0YTt5LmRhdGEhPT1udWxsJiZuLnB1c2goLi4uSUkoeSkpfWVsc2UgaWYoYy50eXBlPT09aC5NZXNoKXtsZXQgeT1jLmRhdGE7bi5wdXNoKC4uLnJJKHkpKX1lbHNlIGlmKGMudHlwZT09PWguUG9seURhdGEpe2xldCB5PWMuZGF0YTtuLnB1c2goLi4uZ0koeSkpfX0pO2xldCBmPXI/LnBpcGVsaW5lQmFzZVVybD8/b0koKSxCPXR5cGVvZiBmIT0ic3RyaW5nIiYmdHlwZW9mIGY/LmhyZWY8InUiP2YuaHJlZjpmLFE9dCE9bnVsbD9uZSh0LHRJKG4scj8ubm9Db3B5KSk6bnVsbCxsPWF3YWl0IEMucnVuUGlwZWxpbmUoQS50b1N0cmluZygpLEIsZSxJLFEscj8ucGlwZWxpbmVRdWVyeVBhcmFtcz8/X0EoKSk7cmV0dXJue3JldHVyblZhbHVlOmwucmV0dXJuVmFsdWUsc3Rkb3V0Omwuc3Rkb3V0LHN0ZGVycjpsLnN0ZGVycixvdXRwdXRzOmwub3V0cHV0cyx3ZWJXb3JrZXI6Z319dmFyIHdBPW5nO3ZhciBzZz1udWxsO2Z1bmN0aW9uIGFJKCl7cmV0dXJuIHNnfXZhciBZZSxDZz1gaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9AaXRrLXdhc20vY29tcGFyZS1pbWFnZXNAJHt0ZX0vZGlzdC9waXBlbGluZXNgO2Z1bmN0aW9uIGlzKEEpe1llPUF9ZnVuY3Rpb24gJEEoKXtpZih0eXBlb2YgWWU8InUiKXJldHVybiBZZTtsZXQgQT1YQSgpO3JldHVybiB0eXBlb2YgQTwidSI/QTpDZ312YXIgSGUsQmc9bnVsbDtmdW5jdGlvbiBuSShBKXtIZT1BfWZ1bmN0aW9uIGlBKCl7aWYodHlwZW9mIEhlPCJ1IilyZXR1cm4gSGU7bGV0IEE9ekEoKTtyZXR1cm4gdHlwZW9mIEE8InUiP0E6Qmd9dmFyIG9BPW51bGw7YXN5bmMgZnVuY3Rpb24gc0koKXtsZXQgQT1pQSgpLGU9dHlwZW9mIEEhPSJzdHJpbmciJiZ0eXBlb2YgQT8uaHJlZjwidSI/QS5ocmVmOkE7b0E9YXdhaXQgeUEoZSl9ZnVuY3Rpb24gUXMoQSl7b0E9QX1hc3luYyBmdW5jdGlvbiBDSSgpe2lmKG9BIT09bnVsbClyZXR1cm4gb0EudGVybWluYXRlZCYmYXdhaXQgc0koKSxvQTtsZXQgQT1hSSgpO3JldHVybiBBIT09bnVsbD9BOihhd2FpdCBzSSgpLG9BKX1hc3luYyBmdW5jdGlvbiBRZyhBLGU9e2Jhc2VsaW5lSW1hZ2VzOltdfSl7bGV0IEk9W3t0eXBlOmguSnNvbkNvbXBhdGlibGV9LHt0eXBlOmguSW1hZ2V9LHt0eXBlOmguSW1hZ2V9XSx0PVt7dHlwZTpoLkltYWdlLGRhdGE6QX1dLHI9W107aWYoci5wdXNoKCIwIiksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCIyIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLHR5cGVvZiBlLmJhc2VsaW5lSW1hZ2VzPCJ1Iil7aWYoZS5iYXNlbGluZUltYWdlcy5sZW5ndGg8MSl0aHJvdyBuZXcgRXJyb3IoJyJiYXNlbGluZS1pbWFnZXMiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAxJyk7ci5wdXNoKCItLWJhc2VsaW5lLWltYWdlcyIpLGF3YWl0IFByb21pc2UuYWxsKGUuYmFzZWxpbmVJbWFnZXMubWFwKGFzeW5jIGw9PntsZXQgYz10Lmxlbmd0aC50b1N0cmluZygpO3QucHVzaCh7dHlwZTpoLkltYWdlLGRhdGE6bH0pLHIucHVzaChjKX0pKX10eXBlb2YgZS5kaWZmZXJlbmNlVGhyZXNob2xkPCJ1IiYmci5wdXNoKCItLWRpZmZlcmVuY2UtdGhyZXNob2xkIixlLmRpZmZlcmVuY2VUaHJlc2hvbGQudG9TdHJpbmcoKSksdHlwZW9mIGUucmFkaXVzVG9sZXJhbmNlPCJ1IiYmci5wdXNoKCItLXJhZGl1cy10b2xlcmFuY2UiLGUucmFkaXVzVG9sZXJhbmNlLnRvU3RyaW5nKCkpLHR5cGVvZiBlLnNwYXRpYWxUb2xlcmFuY2U8InUiJiZyLnB1c2goIi0tc3BhdGlhbC10b2xlcmFuY2UiLGUuc3BhdGlhbFRvbGVyYW5jZS50b1N0cmluZygpKSx0eXBlb2YgZS5udW1iZXJPZlBpeGVsc1RvbGVyYW5jZTwidSImJnIucHVzaCgiLS1udW1iZXItb2YtcGl4ZWxzLXRvbGVyYW5jZSIsZS5udW1iZXJPZlBpeGVsc1RvbGVyYW5jZS50b1N0cmluZygpKSx0eXBlb2YgZS5pZ25vcmVCb3VuZGFyeVBpeGVsczwidSImJmUuaWdub3JlQm91bmRhcnlQaXhlbHMmJnIucHVzaCgiLS1pZ25vcmUtYm91bmRhcnktcGl4ZWxzIik7bGV0IEM9ImNvbXBhcmUtZG91YmxlLWltYWdlcyIse3dlYldvcmtlcjpvLHJldHVyblZhbHVlOm4sc3RkZXJyOmYsb3V0cHV0czpCfT1hd2FpdCB3QShDLHIsSSx0LHtwaXBlbGluZUJhc2VVcmw6JEEoKSxwaXBlbGluZVdvcmtlclVybDppQSgpLHdlYldvcmtlcjplPy53ZWJXb3JrZXI/P251bGx9KTtpZihuIT09MCl0aHJvdyBuZXcgRXJyb3IoZik7cmV0dXJue3dlYldvcmtlcjpvLG1ldHJpY3M6QlswXS5kYXRhLGRpZmZlcmVuY2VJbWFnZTpCWzFdLmRhdGEsZGlmZmVyZW5jZVVjaGFyMmRJbWFnZTpCWzJdLmRhdGF9fXZhciBxZT1RZzthc3luYyBmdW5jdGlvbiBFZyhBLGUpe2xldCBJPWU7aWYoSS5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSE9PUYuRmxvYXQ2NCl7bGV0IHQ7ZS5pbWFnZVR5cGUucGl4ZWxUeXBlIT09Ry5TY2FsYXImJmUuaW1hZ2VUeXBlLnBpeGVsVHlwZSE9PUcuVmFyaWFibGVMZW5ndGhWZWN0b3ImJih0PUcuVmFyaWFibGVMZW5ndGhWZWN0b3IpLEk9UkEoZSx7Y29tcG9uZW50VHlwZTpGLkZsb2F0NjQscGl4ZWxUeXBlOnR9KX1lbHNlIGlmKGUuaW1hZ2VUeXBlLnBpeGVsVHlwZSE9PUcuU2NhbGFyJiZlLmltYWdlVHlwZS5waXhlbFR5cGUhPT1HLlZhcmlhYmxlTGVuZ3RoVmVjdG9yKXtsZXQgdD1HLlZhcmlhYmxlTGVuZ3RoVmVjdG9yO0k9UkEoZSx7cGl4ZWxUeXBlOnR9KX1yZXR1cm4gSS5pbWFnZVR5cGUucGl4ZWxUeXBlPT09Ry5WYXJpYWJsZUxlbmd0aFZlY3RvciYmKEk9KGF3YWl0IEEoSSkpLm1hZ25pdHVkZUltYWdlKSxJfXZhciBUZT1FZzthc3luYyBmdW5jdGlvbiBjZyhBLGU9e30pe2xldCBJPVt7dHlwZTpoLkltYWdlfV0sdD1be3R5cGU6aC5JbWFnZSxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpLHIucHVzaCgiLS1tZW1vcnktaW8iKTtsZXQgcz0idmVjdG9yLW1hZ25pdHVkZSIsRT1lPy53ZWJXb3JrZXI7RT09PXZvaWQgMCYmKEU9YXdhaXQgQ0koKSk7bGV0e3dlYldvcmtlcjpDLHJldHVyblZhbHVlOm8sc3RkZXJyOm4sb3V0cHV0czpmfT1hd2FpdCB3QShzLHIsSSx0LHtwaXBlbGluZUJhc2VVcmw6JEEoKSxwaXBlbGluZVdvcmtlclVybDppQSgpLHdlYldvcmtlcjpFLG5vQ29weTplPy5ub0NvcHl9KTtpZihvIT09MCYmbiE9PSIiKXRocm93IG5ldyBFcnJvcihuKTtyZXR1cm57d2ViV29ya2VyOkMsbWFnbml0dWRlSW1hZ2U6ZlswXT8uZGF0YX19dmFyIHhlPWNnO2FzeW5jIGZ1bmN0aW9uIGxnKEEsZT17YmFzZWxpbmVJbWFnZXM6W119KXthc3luYyBmdW5jdGlvbiBJKGcpe2xldHt3ZWJXb3JrZXI6cyxtYWduaXR1ZGVJbWFnZTpFfT1hd2FpdCB4ZShnKTtyZXR1cm4gcz8udGVybWluYXRlKCkse21hZ25pdHVkZUltYWdlOkV9fWxldCB0PWF3YWl0IFRlKEksQSkscj1hd2FpdCBQcm9taXNlLmFsbChlLmJhc2VsaW5lSW1hZ2VzLm1hcChhc3luYyBnPT5hd2FpdCBUZShJLGcpKSksaT17Li4uZX07cmV0dXJuIGkuYmFzZWxpbmVJbWFnZXM9cixxZSh0LGkpfXZhciBmZz1sZzt2YXIgQkk9J2RhdGE6dGV4dC9qYXZhc2NyaXB0O2NoYXJzZXQ9dXRmLTgsdmFyIFllPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgcWU9KEEsdCk9Pntmb3IodmFyIGUgaW4gdClZZShBLGUse2dldDp0W2VdLGVudW1lcmFibGU6ITB9KX07dmFyIE50PVN5bWJvbCgiQ29tbGluay5wcm94eSIpLE1lPVN5bWJvbCgiQ29tbGluay5lbmRwb2ludCIpLEtlPVN5bWJvbCgiQ29tbGluay5yZWxlYXNlUHJveHkiKSxWQT1TeW1ib2woIkNvbWxpbmsuZmluYWxpemVyIiksbUE9U3ltYm9sKCJDb21saW5rLnRocm93biIpLFV0PUE9PnR5cGVvZiBBPT0ib2JqZWN0IiYmQSE9PW51bGx8fHR5cGVvZiBBPT0iZnVuY3Rpb24iLE9lPXtjYW5IYW5kbGU6QT0+VXQoQSkmJkFbTnRdLHNlcmlhbGl6ZShBKXtsZXR7cG9ydDE6dCxwb3J0MjplfT1uZXcgTWVzc2FnZUNoYW5uZWw7cmV0dXJuIEZBKEEsdCksW2UsW2VdXX0sZGVzZXJpYWxpemUoQSl7cmV0dXJuIEEuc3RhcnQoKSxqZShBKX19LFRlPXtjYW5IYW5kbGU6QT0+VXQoQSkmJm1BIGluIEEsc2VyaWFsaXplKHt2YWx1ZTpBfSl7bGV0IHQ7cmV0dXJuIEEgaW5zdGFuY2VvZiBFcnJvcj90PXtpc0Vycm9yOiEwLHZhbHVlOnttZXNzYWdlOkEubWVzc2FnZSxuYW1lOkEubmFtZSxzdGFjazpBLnN0YWNrfX06dD17aXNFcnJvcjohMSx2YWx1ZTpBfSxbdCxbXV19LGRlc2VyaWFsaXplKEEpe3Rocm93IEEuaXNFcnJvcj9PYmplY3QuYXNzaWduKG5ldyBFcnJvcihBLnZhbHVlLm1lc3NhZ2UpLEEudmFsdWUpOkEudmFsdWV9fSxHdD1uZXcgTWFwKFtbInByb3h5IixPZV0sWyJ0aHJvdyIsVGVdXSk7ZnVuY3Rpb24geGUoQSx0KXtmb3IobGV0IGUgb2YgQSlpZih0PT09ZXx8ZT09PSIqInx8ZSBpbnN0YW5jZW9mIFJlZ0V4cCYmZS50ZXN0KHQpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEZBKEEsdD1nbG9iYWxUaGlzLGU9WyIqIl0pe3QuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gSShyKXtpZighcnx8IXIuZGF0YSlyZXR1cm47aWYoIXhlKGUsci5vcmlnaW4pKXtjb25zb2xlLndhcm4oYEludmFsaWQgb3JpZ2luIFwnJHtyLm9yaWdpbn1cJyBmb3IgY29tbGluayBwcm94eWApO3JldHVybn1sZXR7aWQ6Zyx0eXBlOm8scGF0aDpufT1PYmplY3QuYXNzaWduKHtwYXRoOltdfSxyLmRhdGEpLEU9KHIuZGF0YS5hcmd1bWVudExpc3R8fFtdKS5tYXAoVyksQjt0cnl7bGV0IHM9bi5zbGljZSgwLC0xKS5yZWR1Y2UoKGwsYSk9PmxbYV0sQSksQz1uLnJlZHVjZSgobCxhKT0+bFthXSxBKTtzd2l0Y2gobyl7Y2FzZSJHRVQiOkI9QzticmVhaztjYXNlIlNFVCI6c1tuLnNsaWNlKC0xKVswXV09VyhyLmRhdGEudmFsdWUpLEI9ITA7YnJlYWs7Y2FzZSJBUFBMWSI6Qj1DLmFwcGx5KHMsRSk7YnJlYWs7Y2FzZSJDT05TVFJVQ1QiOntsZXQgbD1uZXcgQyguLi5FKTtCPVhlKGwpfWJyZWFrO2Nhc2UiRU5EUE9JTlQiOntsZXR7cG9ydDE6bCxwb3J0MjphfT1uZXcgTWVzc2FnZUNoYW5uZWw7RkEoQSxhKSxCPV9BKGwsW2xdKX1icmVhaztjYXNlIlJFTEVBU0UiOkI9dm9pZCAwO2JyZWFrO2RlZmF1bHQ6cmV0dXJufX1jYXRjaChzKXtCPXt2YWx1ZTpzLFttQV06MH19UHJvbWlzZS5yZXNvbHZlKEIpLmNhdGNoKHM9Pih7dmFsdWU6cyxbbUFdOjB9KSkudGhlbihzPT57bGV0W0MsbF09U0Eocyk7dC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sQykse2lkOmd9KSxsKSxvPT09IlJFTEVBU0UiJiYodC5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixJKSxrdCh0KSxWQSBpbiBBJiZ0eXBlb2YgQVtWQV09PSJmdW5jdGlvbiImJkFbVkFdKCkpfSkuY2F0Y2gocz0+e2xldFtDLGxdPVNBKHt2YWx1ZTpuZXcgVHlwZUVycm9yKCJVbnNlcmlhbGl6YWJsZSByZXR1cm4gdmFsdWUiKSxbbUFdOjB9KTt0LnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxDKSx7aWQ6Z30pLGwpfSl9KSx0LnN0YXJ0JiZ0LnN0YXJ0KCl9ZnVuY3Rpb24gUGUoQSl7cmV0dXJuIEEuY29uc3RydWN0b3IubmFtZT09PSJNZXNzYWdlUG9ydCJ9ZnVuY3Rpb24ga3QoQSl7UGUoQSkmJkEuY2xvc2UoKX1mdW5jdGlvbiBqZShBLHQpe3JldHVybiBYQShBLFtdLHQpfWZ1bmN0aW9uIHlBKEEpe2lmKEEpdGhyb3cgbmV3IEVycm9yKCJQcm94eSBoYXMgYmVlbiByZWxlYXNlZCBhbmQgaXMgbm90IHVzZWFibGUiKX1mdW5jdGlvbiBMdChBKXtyZXR1cm4gXyhBLHt0eXBlOiJSRUxFQVNFIn0pLnRoZW4oKCk9PntrdChBKX0pfXZhciB3QT1uZXcgV2Vha01hcCxwQT0iRmluYWxpemF0aW9uUmVnaXN0cnkiaW4gZ2xvYmFsVGhpcyYmbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KEE9PntsZXQgdD0od0EuZ2V0KEEpfHwwKS0xO3dBLnNldChBLHQpLHQ9PT0wJiZMdChBKX0pO2Z1bmN0aW9uIFdlKEEsdCl7bGV0IGU9KHdBLmdldCh0KXx8MCkrMTt3QS5zZXQodCxlKSxwQSYmcEEucmVnaXN0ZXIoQSx0LEEpfWZ1bmN0aW9uIFplKEEpe3BBJiZwQS51bnJlZ2lzdGVyKEEpfWZ1bmN0aW9uIFhBKEEsdD1bXSxlPWZ1bmN0aW9uKCl7fSl7bGV0IEk9ITEscj1uZXcgUHJveHkoZSx7Z2V0KGcsbyl7aWYoeUEoSSksbz09PUtlKXJldHVybigpPT57WmUociksTHQoQSksST0hMH07aWYobz09PSJ0aGVuIil7aWYodC5sZW5ndGg9PT0wKXJldHVybnt0aGVuOigpPT5yfTtsZXQgbj1fKEEse3R5cGU6IkdFVCIscGF0aDp0Lm1hcChFPT5FLnRvU3RyaW5nKCkpfSkudGhlbihXKTtyZXR1cm4gbi50aGVuLmJpbmQobil9cmV0dXJuIFhBKEEsWy4uLnQsb10pfSxzZXQoZyxvLG4pe3lBKEkpO2xldFtFLEJdPVNBKG4pO3JldHVybiBfKEEse3R5cGU6IlNFVCIscGF0aDpbLi4udCxvXS5tYXAocz0+cy50b1N0cmluZygpKSx2YWx1ZTpFfSxCKS50aGVuKFcpfSxhcHBseShnLG8sbil7eUEoSSk7bGV0IEU9dFt0Lmxlbmd0aC0xXTtpZihFPT09TWUpcmV0dXJuIF8oQSx7dHlwZToiRU5EUE9JTlQifSkudGhlbihXKTtpZihFPT09ImJpbmQiKXJldHVybiBYQShBLHQuc2xpY2UoMCwtMSkpO2xldFtCLHNdPVJ0KG4pO3JldHVybiBfKEEse3R5cGU6IkFQUExZIixwYXRoOnQubWFwKEM9PkMudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OkJ9LHMpLnRoZW4oVyl9LGNvbnN0cnVjdChnLG8pe3lBKEkpO2xldFtuLEVdPVJ0KG8pO3JldHVybiBfKEEse3R5cGU6IkNPTlNUUlVDVCIscGF0aDp0Lm1hcChCPT5CLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpufSxFKS50aGVuKFcpfX0pO3JldHVybiBXZShyLEEpLHJ9ZnVuY3Rpb24gVmUoQSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sQSl9ZnVuY3Rpb24gUnQoQSl7bGV0IHQ9QS5tYXAoU0EpO3JldHVyblt0Lm1hcChlPT5lWzBdKSxWZSh0Lm1hcChlPT5lWzFdKSldfXZhciBidD1uZXcgV2Vha01hcDtmdW5jdGlvbiBfQShBLHQpe3JldHVybiBidC5zZXQoQSx0KSxBfWZ1bmN0aW9uIFhlKEEpe3JldHVybiBPYmplY3QuYXNzaWduKEEse1tOdF06ITB9KX1mdW5jdGlvbiBTQShBKXtmb3IobGV0W3QsZV1vZiBHdClpZihlLmNhbkhhbmRsZShBKSl7bGV0W0kscl09ZS5zZXJpYWxpemUoQSk7cmV0dXJuW3t0eXBlOiJIQU5ETEVSIixuYW1lOnQsdmFsdWU6SX0scl19cmV0dXJuW3t0eXBlOiJSQVciLHZhbHVlOkF9LGJ0LmdldChBKXx8W11dfWZ1bmN0aW9uIFcoQSl7c3dpdGNoKEEudHlwZSl7Y2FzZSJIQU5ETEVSIjpyZXR1cm4gR3QuZ2V0KEEubmFtZSkuZGVzZXJpYWxpemUoQS52YWx1ZSk7Y2FzZSJSQVciOnJldHVybiBBLnZhbHVlfX1mdW5jdGlvbiBfKEEsdCxlKXtyZXR1cm4gbmV3IFByb21pc2UoST0+e2xldCByPV9lKCk7QS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBnKG8peyFvLmRhdGF8fCFvLmRhdGEuaWR8fG8uZGF0YS5pZCE9PXJ8fChBLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGcpLEkoby5kYXRhKSl9KSxBLnN0YXJ0JiZBLnN0YXJ0KCksQS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKHtpZDpyfSx0KSxlKX0pfWZ1bmN0aW9uIF9lKCl7cmV0dXJuIG5ldyBBcnJheSg0KS5maWxsKDApLm1hcCgoKT0+TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKk51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygxNikpLmpvaW4oIi0iKX1mdW5jdGlvbiBvQShBLHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBBLmFwcGx5KHQsYXJndW1lbnRzKX19dmFye3RvU3RyaW5nOnplfT1PYmplY3QucHJvdG90eXBlLHtnZXRQcm90b3R5cGVPZjp2QX09T2JqZWN0LHtpdGVyYXRvcjpOQSx0b1N0cmluZ1RhZzpZdH09U3ltYm9sLFVBPShBPT50PT57bGV0IGU9emUuY2FsbCh0KTtyZXR1cm4gQVtlXXx8KEFbZV09ZS5zbGljZSg4LC0xKS50b0xvd2VyQ2FzZSgpKX0pKE9iamVjdC5jcmVhdGUobnVsbCkpLEw9QT0+KEE9QS50b0xvd2VyQ2FzZSgpLHQ9PlVBKHQpPT09QSksR0E9QT0+dD0+dHlwZW9mIHQ9PT1BLHtpc0FycmF5OnZ9PUFycmF5LHo9R0EoInVuZGVmaW5lZCIpO2Z1bmN0aW9uIGdBKEEpe3JldHVybiBBIT09bnVsbCYmIXooQSkmJkEuY29uc3RydWN0b3IhPT1udWxsJiYheihBLmNvbnN0cnVjdG9yKSYmTihBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKSYmQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihBKX12YXIgcXQ9TCgiQXJyYXlCdWZmZXIiKTtmdW5jdGlvbiB2ZShBKXtsZXQgdDtyZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyPCJ1IiYmQXJyYXlCdWZmZXIuaXNWaWV3P3Q9QXJyYXlCdWZmZXIuaXNWaWV3KEEpOnQ9QSYmQS5idWZmZXImJnF0KEEuYnVmZmVyKSx0fXZhciAkZT1HQSgic3RyaW5nIiksTj1HQSgiZnVuY3Rpb24iKSxNdD1HQSgibnVtYmVyIiksaUE9QT0+QSE9PW51bGwmJnR5cGVvZiBBPT0ib2JqZWN0IixBST1BPT5BPT09ITB8fEE9PT0hMSxSQT1BPT57aWYoVUEoQSkhPT0ib2JqZWN0IilyZXR1cm4hMTtsZXQgdD12QShBKTtyZXR1cm4odD09PW51bGx8fHQ9PT1PYmplY3QucHJvdG90eXBlfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCk9PT1udWxsKSYmIShZdCBpbiBBKSYmIShOQSBpbiBBKX0sdEk9QT0+e2lmKCFpQShBKXx8Z0EoQSkpcmV0dXJuITE7dHJ5e3JldHVybiBPYmplY3Qua2V5cyhBKS5sZW5ndGg9PT0wJiZPYmplY3QuZ2V0UHJvdG90eXBlT2YoQSk9PT1PYmplY3QucHJvdG90eXBlfWNhdGNoe3JldHVybiExfX0sZUk9TCgiRGF0ZSIpLElJPUwoIkZpbGUiKSxyST1MKCJCbG9iIiksb0k9TCgiRmlsZUxpc3QiKSxnST1BPT5pQShBKSYmTihBLnBpcGUpLGlJPUE9PntsZXQgdDtyZXR1cm4gQSYmKHR5cGVvZiBGb3JtRGF0YT09ImZ1bmN0aW9uIiYmQSBpbnN0YW5jZW9mIEZvcm1EYXRhfHxOKEEuYXBwZW5kKSYmKCh0PVVBKEEpKT09PSJmb3JtZGF0YSJ8fHQ9PT0ib2JqZWN0IiYmTihBLnRvU3RyaW5nKSYmQS50b1N0cmluZygpPT09IltvYmplY3QgRm9ybURhdGFdIikpfSxzST1MKCJVUkxTZWFyY2hQYXJhbXMiKSxbbkksQ0ksQkksYUldPVsiUmVhZGFibGVTdHJlYW0iLCJSZXF1ZXN0IiwiUmVzcG9uc2UiLCJIZWFkZXJzIl0ubWFwKEwpLFFJPUE9PkEudHJpbT9BLnRyaW0oKTpBLnJlcGxhY2UoL15bXFxzXFx1RkVGRlxceEEwXSt8W1xcc1xcdUZFRkZcXHhBMF0rJC9nLCIiKTtmdW5jdGlvbiBzQShBLHQse2FsbE93bktleXM6ZT0hMX09e30pe2lmKEE9PT1udWxsfHx0eXBlb2YgQT4idSIpcmV0dXJuO2xldCBJLHI7aWYodHlwZW9mIEEhPSJvYmplY3QiJiYoQT1bQV0pLHYoQSkpZm9yKEk9MCxyPUEubGVuZ3RoO0k8cjtJKyspdC5jYWxsKG51bGwsQVtJXSxJLEEpO2Vsc2V7aWYoZ0EoQSkpcmV0dXJuO2xldCBnPWU/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQSk6T2JqZWN0LmtleXMoQSksbz1nLmxlbmd0aCxuO2ZvcihJPTA7STxvO0krKyluPWdbSV0sdC5jYWxsKG51bGwsQVtuXSxuLEEpfX1mdW5jdGlvbiBLdChBLHQpe2lmKGdBKEEpKXJldHVybiBudWxsO3Q9dC50b0xvd2VyQ2FzZSgpO2xldCBlPU9iamVjdC5rZXlzKEEpLEk9ZS5sZW5ndGgscjtmb3IoO0ktLSA+MDspaWYocj1lW0ldLHQ9PT1yLnRvTG93ZXJDYXNlKCkpcmV0dXJuIHI7cmV0dXJuIG51bGx9dmFyIFo9dHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Omdsb2JhbCxPdD1BPT4heihBKSYmQSE9PVo7ZnVuY3Rpb24gekEoKXtsZXR7Y2FzZWxlc3M6QSxza2lwVW5kZWZpbmVkOnR9PU90KHRoaXMpJiZ0aGlzfHx7fSxlPXt9LEk9KHIsZyk9PntsZXQgbz1BJiZLdChlLGcpfHxnO1JBKGVbb10pJiZSQShyKT9lW29dPXpBKGVbb10scik6UkEocik/ZVtvXT16QSh7fSxyKTp2KHIpP2Vbb109ci5zbGljZSgpOighdHx8IXoocikpJiYoZVtvXT1yKX07Zm9yKGxldCByPTAsZz1hcmd1bWVudHMubGVuZ3RoO3I8ZztyKyspYXJndW1lbnRzW3JdJiZzQShhcmd1bWVudHNbcl0sSSk7cmV0dXJuIGV9dmFyIEVJPShBLHQsZSx7YWxsT3duS2V5czpJfT17fSk9PihzQSh0LChyLGcpPT57ZSYmTihyKT9BW2ddPW9BKHIsZSk6QVtnXT1yfSx7YWxsT3duS2V5czpJfSksQSksY0k9QT0+KEEuY2hhckNvZGVBdCgwKT09PTY1Mjc5JiYoQT1BLnNsaWNlKDEpKSxBKSxmST0oQSx0LGUsSSk9PntBLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlLEkpLEEucHJvdG90eXBlLmNvbnN0cnVjdG9yPUEsT2JqZWN0LmRlZmluZVByb3BlcnR5KEEsInN1cGVyIix7dmFsdWU6dC5wcm90b3R5cGV9KSxlJiZPYmplY3QuYXNzaWduKEEucHJvdG90eXBlLGUpfSxsST0oQSx0LGUsSSk9PntsZXQgcixnLG8sbj17fTtpZih0PXR8fHt9LEE9PW51bGwpcmV0dXJuIHQ7ZG97Zm9yKHI9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQSksZz1yLmxlbmd0aDtnLS0gPjA7KW89cltnXSwoIUl8fEkobyxBLHQpKSYmIW5bb10mJih0W29dPUFbb10sbltvXT0hMCk7QT1lIT09ITEmJnZBKEEpfXdoaWxlKEEmJighZXx8ZShBLHQpKSYmQSE9PU9iamVjdC5wcm90b3R5cGUpO3JldHVybiB0fSx1ST0oQSx0LGUpPT57QT1TdHJpbmcoQSksKGU9PT12b2lkIDB8fGU+QS5sZW5ndGgpJiYoZT1BLmxlbmd0aCksZS09dC5sZW5ndGg7bGV0IEk9QS5pbmRleE9mKHQsZSk7cmV0dXJuIEkhPT0tMSYmST09PWV9LGRJPUE9PntpZighQSlyZXR1cm4gbnVsbDtpZih2KEEpKXJldHVybiBBO2xldCB0PUEubGVuZ3RoO2lmKCFNdCh0KSlyZXR1cm4gbnVsbDtsZXQgZT1uZXcgQXJyYXkodCk7Zm9yKDt0LS0gPjA7KWVbdF09QVt0XTtyZXR1cm4gZX0sREk9KEE9PnQ9PkEmJnQgaW5zdGFuY2VvZiBBKSh0eXBlb2YgVWludDhBcnJheTwidSImJnZBKFVpbnQ4QXJyYXkpKSxoST0oQSx0KT0+e2xldCBJPShBJiZBW05BXSkuY2FsbChBKSxyO2Zvcig7KHI9SS5uZXh0KCkpJiYhci5kb25lOyl7bGV0IGc9ci52YWx1ZTt0LmNhbGwoQSxnWzBdLGdbMV0pfX0seUk9KEEsdCk9PntsZXQgZSxJPVtdO2Zvcig7KGU9QS5leGVjKHQpKSE9PW51bGw7KUkucHVzaChlKTtyZXR1cm4gSX0sbUk9TCgiSFRNTEZvcm1FbGVtZW50Iiksd0k9QT0+QS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xcc10oW2EtelxcZF0pKFxcdyopL2csZnVuY3Rpb24oZSxJLHIpe3JldHVybiBJLnRvVXBwZXJDYXNlKCkrcn0pLEh0PSgoe2hhc093blByb3BlcnR5OkF9KT0+KHQsZSk9PkEuY2FsbCh0LGUpKShPYmplY3QucHJvdG90eXBlKSxwST1MKCJSZWdFeHAiKSxUdD0oQSx0KT0+e2xldCBlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEEpLEk9e307c0EoZSwocixnKT0+e2xldCBvOyhvPXQocixnLEEpKSE9PSExJiYoSVtnXT1vfHxyKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEEsSSl9LFNJPUE9PntUdChBLCh0LGUpPT57aWYoTihBKSYmWyJhcmd1bWVudHMiLCJjYWxsZXIiLCJjYWxsZWUiXS5pbmRleE9mKGUpIT09LTEpcmV0dXJuITE7bGV0IEk9QVtlXTtpZihOKEkpKXtpZih0LmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIHQpe3Qud3JpdGFibGU9ITE7cmV0dXJufXQuc2V0fHwodC5zZXQ9KCk9Pnt0aHJvdyBFcnJvcigiQ2FuIG5vdCByZXdyaXRlIHJlYWQtb25seSBtZXRob2QgXCciK2UrIlwnIil9KX19KX0sRkk9KEEsdCk9PntsZXQgZT17fSxJPXI9PntyLmZvckVhY2goZz0+e2VbZ109ITB9KX07cmV0dXJuIHYoQSk/SShBKTpJKFN0cmluZyhBKS5zcGxpdCh0KSksZX0sUkk9KCk9Pnt9LE5JPShBLHQpPT5BIT1udWxsJiZOdW1iZXIuaXNGaW5pdGUoQT0rQSk/QTp0O2Z1bmN0aW9uIFVJKEEpe3JldHVybiEhKEEmJk4oQS5hcHBlbmQpJiZBW1l0XT09PSJGb3JtRGF0YSImJkFbTkFdKX12YXIgR0k9QT0+e2xldCB0PW5ldyBBcnJheSgxMCksZT0oSSxyKT0+e2lmKGlBKEkpKXtpZih0LmluZGV4T2YoSSk+PTApcmV0dXJuO2lmKGdBKEkpKXJldHVybiBJO2lmKCEoInRvSlNPTiJpbiBJKSl7dFtyXT1JO2xldCBnPXYoSSk/W106e307cmV0dXJuIHNBKEksKG8sbik9PntsZXQgRT1lKG8scisxKTsheihFKSYmKGdbbl09RSl9KSx0W3JdPXZvaWQgMCxnfX1yZXR1cm4gSX07cmV0dXJuIGUoQSwwKX0sa0k9TCgiQXN5bmNGdW5jdGlvbiIpLExJPUE9PkEmJihpQShBKXx8TihBKSkmJk4oQS50aGVuKSYmTihBLmNhdGNoKSx4dD0oKEEsdCk9PkE/c2V0SW1tZWRpYXRlOnQ/KChlLEkpPT4oWi5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwoe3NvdXJjZTpyLGRhdGE6Z30pPT57cj09PVomJmc9PT1lJiZJLmxlbmd0aCYmSS5zaGlmdCgpKCl9LCExKSxyPT57SS5wdXNoKHIpLFoucG9zdE1lc3NhZ2UoZSwiKiIpfSkpKGBheGlvc0Ake01hdGgucmFuZG9tKCl9YCxbXSk6ZT0+c2V0VGltZW91dChlKSkodHlwZW9mIHNldEltbWVkaWF0ZT09ImZ1bmN0aW9uIixOKFoucG9zdE1lc3NhZ2UpKSxiST10eXBlb2YgcXVldWVNaWNyb3Rhc2s8InUiP3F1ZXVlTWljcm90YXNrLmJpbmQoWik6dHlwZW9mIHByb2Nlc3M8InUiJiZwcm9jZXNzLm5leHRUaWNrfHx4dCxKST1BPT5BIT1udWxsJiZOKEFbTkFdKSxpPXtpc0FycmF5OnYsaXNBcnJheUJ1ZmZlcjpxdCxpc0J1ZmZlcjpnQSxpc0Zvcm1EYXRhOmlJLGlzQXJyYXlCdWZmZXJWaWV3OnZlLGlzU3RyaW5nOiRlLGlzTnVtYmVyOk10LGlzQm9vbGVhbjpBSSxpc09iamVjdDppQSxpc1BsYWluT2JqZWN0OlJBLGlzRW1wdHlPYmplY3Q6dEksaXNSZWFkYWJsZVN0cmVhbTpuSSxpc1JlcXVlc3Q6Q0ksaXNSZXNwb25zZTpCSSxpc0hlYWRlcnM6YUksaXNVbmRlZmluZWQ6eixpc0RhdGU6ZUksaXNGaWxlOklJLGlzQmxvYjpySSxpc1JlZ0V4cDpwSSxpc0Z1bmN0aW9uOk4saXNTdHJlYW06Z0ksaXNVUkxTZWFyY2hQYXJhbXM6c0ksaXNUeXBlZEFycmF5OkRJLGlzRmlsZUxpc3Q6b0ksZm9yRWFjaDpzQSxtZXJnZTp6QSxleHRlbmQ6RUksdHJpbTpRSSxzdHJpcEJPTTpjSSxpbmhlcml0czpmSSx0b0ZsYXRPYmplY3Q6bEksa2luZE9mOlVBLGtpbmRPZlRlc3Q6TCxlbmRzV2l0aDp1SSx0b0FycmF5OmRJLGZvckVhY2hFbnRyeTpoSSxtYXRjaEFsbDp5SSxpc0hUTUxGb3JtOm1JLGhhc093blByb3BlcnR5Okh0LGhhc093blByb3A6SHQscmVkdWNlRGVzY3JpcHRvcnM6VHQsZnJlZXplTWV0aG9kczpTSSx0b09iamVjdFNldDpGSSx0b0NhbWVsQ2FzZTp3SSxub29wOlJJLHRvRmluaXRlTnVtYmVyOk5JLGZpbmRLZXk6S3QsZ2xvYmFsOlosaXNDb250ZXh0RGVmaW5lZDpPdCxpc1NwZWNDb21wbGlhbnRGb3JtOlVJLHRvSlNPTk9iamVjdDpHSSxpc0FzeW5jRm46a0ksaXNUaGVuYWJsZTpMSSxzZXRJbW1lZGlhdGU6eHQsYXNhcDpiSSxpc0l0ZXJhYmxlOkpJfTtmdW5jdGlvbiAkKEEsdCxlLEkscil7RXJyb3IuY2FsbCh0aGlzKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLHRoaXMuY29uc3RydWN0b3IpOnRoaXMuc3RhY2s9bmV3IEVycm9yKCkuc3RhY2ssdGhpcy5tZXNzYWdlPUEsdGhpcy5uYW1lPSJBeGlvc0Vycm9yIix0JiYodGhpcy5jb2RlPXQpLGUmJih0aGlzLmNvbmZpZz1lKSxJJiYodGhpcy5yZXF1ZXN0PUkpLHImJih0aGlzLnJlc3BvbnNlPXIsdGhpcy5zdGF0dXM9ci5zdGF0dXM/ci5zdGF0dXM6bnVsbCl9aS5pbmhlcml0cygkLEVycm9yLHt0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6aS50b0pTT05PYmplY3QodGhpcy5jb25maWcpLGNvZGU6dGhpcy5jb2RlLHN0YXR1czp0aGlzLnN0YXR1c319fSk7dmFyIFB0PSQucHJvdG90eXBlLGp0PXt9O1siRVJSX0JBRF9PUFRJT05fVkFMVUUiLCJFUlJfQkFEX09QVElPTiIsIkVDT05OQUJPUlRFRCIsIkVUSU1FRE9VVCIsIkVSUl9ORVRXT1JLIiwiRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUUyIsIkVSUl9ERVBSRUNBVEVEIiwiRVJSX0JBRF9SRVNQT05TRSIsIkVSUl9CQURfUkVRVUVTVCIsIkVSUl9DQU5DRUxFRCIsIkVSUl9OT1RfU1VQUE9SVCIsIkVSUl9JTlZBTElEX1VSTCJdLmZvckVhY2goQT0+e2p0W0FdPXt2YWx1ZTpBfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKCQsanQpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShQdCwiaXNBeGlvc0Vycm9yIix7dmFsdWU6ITB9KTskLmZyb209KEEsdCxlLEkscixnKT0+e2xldCBvPU9iamVjdC5jcmVhdGUoUHQpO2kudG9GbGF0T2JqZWN0KEEsbyxmdW5jdGlvbihzKXtyZXR1cm4gcyE9PUVycm9yLnByb3RvdHlwZX0sQj0+QiE9PSJpc0F4aW9zRXJyb3IiKTtsZXQgbj1BJiZBLm1lc3NhZ2U/QS5tZXNzYWdlOiJFcnJvciIsRT10PT1udWxsJiZBP0EuY29kZTp0O3JldHVybiAkLmNhbGwobyxuLEUsZSxJLHIpLEEmJm8uY2F1c2U9PW51bGwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCJjYXVzZSIse3ZhbHVlOkEsY29uZmlndXJhYmxlOiEwfSksby5uYW1lPUEmJkEubmFtZXx8IkVycm9yIixnJiZPYmplY3QuYXNzaWduKG8sZyksb307dmFyIHU9JDt2YXIga0E9bnVsbDtmdW5jdGlvbiAkQShBKXtyZXR1cm4gaS5pc1BsYWluT2JqZWN0KEEpfHxpLmlzQXJyYXkoQSl9ZnVuY3Rpb24gWnQoQSl7cmV0dXJuIGkuZW5kc1dpdGgoQSwiW10iKT9BLnNsaWNlKDAsLTIpOkF9ZnVuY3Rpb24gV3QoQSx0LGUpe3JldHVybiBBP0EuY29uY2F0KHQpLm1hcChmdW5jdGlvbihyLGcpe3JldHVybiByPVp0KHIpLCFlJiZnPyJbIityKyJdIjpyfSkuam9pbihlPyIuIjoiIik6dH1mdW5jdGlvbiBISShBKXtyZXR1cm4gaS5pc0FycmF5KEEpJiYhQS5zb21lKCRBKX12YXIgWUk9aS50b0ZsYXRPYmplY3QoaSx7fSxudWxsLGZ1bmN0aW9uKHQpe3JldHVybi9eaXNbQS1aXS8udGVzdCh0KX0pO2Z1bmN0aW9uIHFJKEEsdCxlKXtpZighaS5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ0YXJnZXQgbXVzdCBiZSBhbiBvYmplY3QiKTt0PXR8fG5ldyhrQXx8Rm9ybURhdGEpLGU9aS50b0ZsYXRPYmplY3QoZSx7bWV0YVRva2VuczohMCxkb3RzOiExLGluZGV4ZXM6ITF9LCExLGZ1bmN0aW9uKGYsYyl7cmV0dXJuIWkuaXNVbmRlZmluZWQoY1tmXSl9KTtsZXQgST1lLm1ldGFUb2tlbnMscj1lLnZpc2l0b3J8fHMsZz1lLmRvdHMsbz1lLmluZGV4ZXMsRT0oZS5CbG9ifHx0eXBlb2YgQmxvYjwidSImJkJsb2IpJiZpLmlzU3BlY0NvbXBsaWFudEZvcm0odCk7aWYoIWkuaXNGdW5jdGlvbihyKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ2aXNpdG9yIG11c3QgYmUgYSBmdW5jdGlvbiIpO2Z1bmN0aW9uIEIoUSl7aWYoUT09PW51bGwpcmV0dXJuIiI7aWYoaS5pc0RhdGUoUSkpcmV0dXJuIFEudG9JU09TdHJpbmcoKTtpZihpLmlzQm9vbGVhbihRKSlyZXR1cm4gUS50b1N0cmluZygpO2lmKCFFJiZpLmlzQmxvYihRKSl0aHJvdyBuZXcgdSgiQmxvYiBpcyBub3Qgc3VwcG9ydGVkLiBVc2UgYSBCdWZmZXIgaW5zdGVhZC4iKTtyZXR1cm4gaS5pc0FycmF5QnVmZmVyKFEpfHxpLmlzVHlwZWRBcnJheShRKT9FJiZ0eXBlb2YgQmxvYj09ImZ1bmN0aW9uIj9uZXcgQmxvYihbUV0pOkJ1ZmZlci5mcm9tKFEpOlF9ZnVuY3Rpb24gcyhRLGYsYyl7bGV0IEQ9UTtpZihRJiYhYyYmdHlwZW9mIFE9PSJvYmplY3QiKXtpZihpLmVuZHNXaXRoKGYsInt9IikpZj1JP2Y6Zi5zbGljZSgwLC0yKSxRPUpTT04uc3RyaW5naWZ5KFEpO2Vsc2UgaWYoaS5pc0FycmF5KFEpJiZISShRKXx8KGkuaXNGaWxlTGlzdChRKXx8aS5lbmRzV2l0aChmLCJbXSIpKSYmKEQ9aS50b0FycmF5KFEpKSlyZXR1cm4gZj1adChmKSxELmZvckVhY2goZnVuY3Rpb24oeSxSKXshKGkuaXNVbmRlZmluZWQoeSl8fHk9PT1udWxsKSYmdC5hcHBlbmQobz09PSEwP1d0KFtmXSxSLGcpOm89PT1udWxsP2Y6ZisiW10iLEIoeSkpfSksITF9cmV0dXJuICRBKFEpPyEwOih0LmFwcGVuZChXdChjLGYsZyksQihRKSksITEpfWxldCBDPVtdLGw9T2JqZWN0LmFzc2lnbihZSSx7ZGVmYXVsdFZpc2l0b3I6cyxjb252ZXJ0VmFsdWU6Qixpc1Zpc2l0YWJsZTokQX0pO2Z1bmN0aW9uIGEoUSxmKXtpZighaS5pc1VuZGVmaW5lZChRKSl7aWYoQy5pbmRleE9mKFEpIT09LTEpdGhyb3cgRXJyb3IoIkNpcmN1bGFyIHJlZmVyZW5jZSBkZXRlY3RlZCBpbiAiK2Yuam9pbigiLiIpKTtDLnB1c2goUSksaS5mb3JFYWNoKFEsZnVuY3Rpb24oRCxGKXsoIShpLmlzVW5kZWZpbmVkKEQpfHxEPT09bnVsbCkmJnIuY2FsbCh0LEQsaS5pc1N0cmluZyhGKT9GLnRyaW0oKTpGLGYsbCkpPT09ITAmJmEoRCxmP2YuY29uY2F0KEYpOltGXSl9KSxDLnBvcCgpfX1pZighaS5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJkYXRhIG11c3QgYmUgYW4gb2JqZWN0Iik7cmV0dXJuIGEoQSksdH12YXIgVD1xSTtmdW5jdGlvbiBWdChBKXtsZXQgdD17IiEiOiIlMjUyMSIsIlwnIjoiJTI1MjciLCIoIjoiJTI1MjgiLCIpIjoiJTI1MjkiLCJ+IjoiJTI1N0UiLCIlMjUyMCI6IisiLCIlMjUwMCI6IlxcMCJ9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyFcJygpfl18JTI1MjB8JTI1MDAvZyxmdW5jdGlvbihJKXtyZXR1cm4gdFtJXX0pfWZ1bmN0aW9uIFh0KEEsdCl7dGhpcy5fcGFpcnM9W10sQSYmVChBLHRoaXMsdCl9dmFyIF90PVh0LnByb3RvdHlwZTtfdC5hcHBlbmQ9ZnVuY3Rpb24odCxlKXt0aGlzLl9wYWlycy5wdXNoKFt0LGVdKX07X3QudG9TdHJpbmc9ZnVuY3Rpb24odCl7bGV0IGU9dD9mdW5jdGlvbihJKXtyZXR1cm4gdC5jYWxsKHRoaXMsSSxWdCl9OlZ0O3JldHVybiB0aGlzLl9wYWlycy5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIGUoclswXSkrIj0iK2UoclsxXSl9LCIiKS5qb2luKCImIil9O3ZhciBMQT1YdDtmdW5jdGlvbiBNSShBKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEEpLnJlcGxhY2UoLyUyNTNBL2dpLCI6IikucmVwbGFjZSgvJTI1MjQvZywiJCIpLnJlcGxhY2UoLyUyNTJDL2dpLCIsIikucmVwbGFjZSgvJTI1MjAvZywiKyIpfWZ1bmN0aW9uIG5BKEEsdCxlKXtpZighdClyZXR1cm4gQTtsZXQgST1lJiZlLmVuY29kZXx8TUk7aS5pc0Z1bmN0aW9uKGUpJiYoZT17c2VyaWFsaXplOmV9KTtsZXQgcj1lJiZlLnNlcmlhbGl6ZSxnO2lmKHI/Zz1yKHQsZSk6Zz1pLmlzVVJMU2VhcmNoUGFyYW1zKHQpP3QudG9TdHJpbmcoKTpuZXcgTEEodCxlKS50b1N0cmluZyhJKSxnKXtsZXQgbz1BLmluZGV4T2YoIiUyMyIpO28hPT0tMSYmKEE9QS5zbGljZSgwLG8pKSxBKz0oQS5pbmRleE9mKCI/Iik9PT0tMT8iPyI6IiYiKStnfXJldHVybiBBfXZhciBBdD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaGFuZGxlcnM9W119dXNlKHQsZSxJKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6dCxyZWplY3RlZDplLHN5bmNocm9ub3VzOkk/SS5zeW5jaHJvbm91czohMSxydW5XaGVuOkk/SS5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfWVqZWN0KHQpe3RoaXMuaGFuZGxlcnNbdF0mJih0aGlzLmhhbmRsZXJzW3RdPW51bGwpfWNsZWFyKCl7dGhpcy5oYW5kbGVycyYmKHRoaXMuaGFuZGxlcnM9W10pfWZvckVhY2godCl7aS5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24oSSl7SSE9PW51bGwmJnQoSSl9KX19LHR0PUF0O3ZhciBiQT17c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX07dmFyIHp0PXR5cGVvZiBVUkxTZWFyY2hQYXJhbXM8InUiP1VSTFNlYXJjaFBhcmFtczpMQTt2YXIgdnQ9dHlwZW9mIEZvcm1EYXRhPCJ1Ij9Gb3JtRGF0YTpudWxsO3ZhciAkdD10eXBlb2YgQmxvYjwidSI/QmxvYjpudWxsO3ZhciBBZT17aXNCcm93c2VyOiEwLGNsYXNzZXM6e1VSTFNlYXJjaFBhcmFtczp6dCxGb3JtRGF0YTp2dCxCbG9iOiR0fSxwcm90b2NvbHM6WyJodHRwIiwiaHR0cHMiLCJmaWxlIiwiYmxvYiIsInVybCIsImRhdGEiXX07dmFyIHJ0PXt9O3FlKHJ0LHtoYXNCcm93c2VyRW52OigpPT5JdCxoYXNTdGFuZGFyZEJyb3dzZXJFbnY6KCk9PktJLGhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudjooKT0+T0ksbmF2aWdhdG9yOigpPT5ldCxvcmlnaW46KCk9PlRJfSk7dmFyIEl0PXR5cGVvZiB3aW5kb3c8InUiJiZ0eXBlb2YgZG9jdW1lbnQ8InUiLGV0PXR5cGVvZiBuYXZpZ2F0b3I9PSJvYmplY3QiJiZuYXZpZ2F0b3J8fHZvaWQgMCxLST1JdCYmKCFldHx8WyJSZWFjdE5hdGl2ZSIsIk5hdGl2ZVNjcmlwdCIsIk5TIl0uaW5kZXhPZihldC5wcm9kdWN0KTwwKSxPST10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU8InUiJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnR5cGVvZiBzZWxmLmltcG9ydFNjcmlwdHM9PSJmdW5jdGlvbiIsVEk9SXQmJndpbmRvdy5sb2NhdGlvbi5ocmVmfHwiaHR0cDovL2xvY2FsaG9zdCI7dmFyIGg9ey4uLnJ0LC4uLkFlfTtmdW5jdGlvbiBvdChBLHQpe3JldHVybiBUKEEsbmV3IGguY2xhc3Nlcy5VUkxTZWFyY2hQYXJhbXMse3Zpc2l0b3I6ZnVuY3Rpb24oZSxJLHIsZyl7cmV0dXJuIGguaXNOb2RlJiZpLmlzQnVmZmVyKGUpPyh0aGlzLmFwcGVuZChJLGUudG9TdHJpbmcoImJhc2U2NCIpKSwhMSk6Zy5kZWZhdWx0VmlzaXRvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LC4uLnR9KX1mdW5jdGlvbiB4SShBKXtyZXR1cm4gaS5tYXRjaEFsbCgvXFx3K3xcXFsoXFx3KildL2csQSkubWFwKHQ9PnRbMF09PT0iW10iPyIiOnRbMV18fHRbMF0pfWZ1bmN0aW9uIFBJKEEpe2xldCB0PXt9LGU9T2JqZWN0LmtleXMoQSksSSxyPWUubGVuZ3RoLGc7Zm9yKEk9MDtJPHI7SSsrKWc9ZVtJXSx0W2ddPUFbZ107cmV0dXJuIHR9ZnVuY3Rpb24gakkoQSl7ZnVuY3Rpb24gdChlLEkscixnKXtsZXQgbz1lW2crK107aWYobz09PSJfX3Byb3RvX18iKXJldHVybiEwO2xldCBuPU51bWJlci5pc0Zpbml0ZSgrbyksRT1nPj1lLmxlbmd0aDtyZXR1cm4gbz0hbyYmaS5pc0FycmF5KHIpP3IubGVuZ3RoOm8sRT8oaS5oYXNPd25Qcm9wKHIsbyk/cltvXT1bcltvXSxJXTpyW29dPUksIW4pOigoIXJbb118fCFpLmlzT2JqZWN0KHJbb10pKSYmKHJbb109W10pLHQoZSxJLHJbb10sZykmJmkuaXNBcnJheShyW29dKSYmKHJbb109UEkocltvXSkpLCFuKX1pZihpLmlzRm9ybURhdGEoQSkmJmkuaXNGdW5jdGlvbihBLmVudHJpZXMpKXtsZXQgZT17fTtyZXR1cm4gaS5mb3JFYWNoRW50cnkoQSwoSSxyKT0+e3QoeEkoSSkscixlLDApfSksZX1yZXR1cm4gbnVsbH12YXIgSkE9akk7ZnVuY3Rpb24gV0koQSx0LGUpe2lmKGkuaXNTdHJpbmcoQSkpdHJ5e3JldHVybih0fHxKU09OLnBhcnNlKShBKSxpLnRyaW0oQSl9Y2F0Y2goSSl7aWYoSS5uYW1lIT09IlN5bnRheEVycm9yIil0aHJvdyBJfXJldHVybihlfHxKU09OLnN0cmluZ2lmeSkoQSl9dmFyIGd0PXt0cmFuc2l0aW9uYWw6YkEsYWRhcHRlcjpbInhociIsImh0dHAiLCJmZXRjaCJdLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKHQsZSl7bGV0IEk9ZS5nZXRDb250ZW50VHlwZSgpfHwiIixyPUkuaW5kZXhPZigiYXBwbGljYXRpb24vanNvbiIpPi0xLGc9aS5pc09iamVjdCh0KTtpZihnJiZpLmlzSFRNTEZvcm0odCkmJih0PW5ldyBGb3JtRGF0YSh0KSksaS5pc0Zvcm1EYXRhKHQpKXJldHVybiByP0pTT04uc3RyaW5naWZ5KEpBKHQpKTp0O2lmKGkuaXNBcnJheUJ1ZmZlcih0KXx8aS5pc0J1ZmZlcih0KXx8aS5pc1N0cmVhbSh0KXx8aS5pc0ZpbGUodCl8fGkuaXNCbG9iKHQpfHxpLmlzUmVhZGFibGVTdHJlYW0odCkpcmV0dXJuIHQ7aWYoaS5pc0FycmF5QnVmZmVyVmlldyh0KSlyZXR1cm4gdC5idWZmZXI7aWYoaS5pc1VSTFNlYXJjaFBhcmFtcyh0KSlyZXR1cm4gZS5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiLCExKSx0LnRvU3RyaW5nKCk7bGV0IG47aWYoZyl7aWYoSS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKT4tMSlyZXR1cm4gb3QodCx0aGlzLmZvcm1TZXJpYWxpemVyKS50b1N0cmluZygpO2lmKChuPWkuaXNGaWxlTGlzdCh0KSl8fEkuaW5kZXhPZigibXVsdGlwYXJ0L2Zvcm0tZGF0YSIpPi0xKXtsZXQgRT10aGlzLmVudiYmdGhpcy5lbnYuRm9ybURhdGE7cmV0dXJuIFQobj97ImZpbGVzW10iOnR9OnQsRSYmbmV3IEUsdGhpcy5mb3JtU2VyaWFsaXplcil9fXJldHVybiBnfHxyPyhlLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi9qc29uIiwhMSksV0kodCkpOnR9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24odCl7bGV0IGU9dGhpcy50cmFuc2l0aW9uYWx8fGd0LnRyYW5zaXRpb25hbCxJPWUmJmUuZm9yY2VkSlNPTlBhcnNpbmcscj10aGlzLnJlc3BvbnNlVHlwZT09PSJqc29uIjtpZihpLmlzUmVzcG9uc2UodCl8fGkuaXNSZWFkYWJsZVN0cmVhbSh0KSlyZXR1cm4gdDtpZih0JiZpLmlzU3RyaW5nKHQpJiYoSSYmIXRoaXMucmVzcG9uc2VUeXBlfHxyKSl7bGV0IG89IShlJiZlLnNpbGVudEpTT05QYXJzaW5nKSYmcjt0cnl7cmV0dXJuIEpTT04ucGFyc2UodCx0aGlzLnBhcnNlUmV2aXZlcil9Y2F0Y2gobil7aWYobyl0aHJvdyBuLm5hbWU9PT0iU3ludGF4RXJyb3IiP3UuZnJvbShuLHUuRVJSX0JBRF9SRVNQT05TRSx0aGlzLG51bGwsdGhpcy5yZXNwb25zZSk6bn19cmV0dXJuIHR9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSxlbnY6e0Zvcm1EYXRhOmguY2xhc3Nlcy5Gb3JtRGF0YSxCbG9iOmguY2xhc3Nlcy5CbG9ifSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbih0KXtyZXR1cm4gdD49MjAwJiZ0PDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiIsIkNvbnRlbnQtVHlwZSI6dm9pZCAwfX19O2kuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giXSxBPT57Z3QuaGVhZGVyc1tBXT17fX0pO3ZhciBBQT1ndDt2YXIgWkk9aS50b09iamVjdFNldChbImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdKSx0ZT1BPT57bGV0IHQ9e30sZSxJLHI7cmV0dXJuIEEmJkEuc3BsaXQoYCUwQWApLmZvckVhY2goZnVuY3Rpb24obyl7cj1vLmluZGV4T2YoIjoiKSxlPW8uc3Vic3RyaW5nKDAscikudHJpbSgpLnRvTG93ZXJDYXNlKCksST1vLnN1YnN0cmluZyhyKzEpLnRyaW0oKSwhKCFlfHx0W2VdJiZaSVtlXSkmJihlPT09InNldC1jb29raWUiP3RbZV0/dFtlXS5wdXNoKEkpOnRbZV09W0ldOnRbZV09dFtlXT90W2VdKyIsICIrSTpJKX0pLHR9O3ZhciBlZT1TeW1ib2woImludGVybmFscyIpO2Z1bmN0aW9uIENBKEEpe3JldHVybiBBJiZTdHJpbmcoQSkudHJpbSgpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gSEEoQSl7cmV0dXJuIEE9PT0hMXx8QT09bnVsbD9BOmkuaXNBcnJheShBKT9BLm1hcChIQSk6U3RyaW5nKEEpfWZ1bmN0aW9uIFZJKEEpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCksZT0vKFteXFxzLDs9XSspXFxzKig/Oj1cXHMqKFteLDtdKykpPy9nLEk7Zm9yKDtJPWUuZXhlYyhBKTspdFtJWzFdXT1JWzJdO3JldHVybiB0fXZhciBYST1BPT4vXlstX2EtekEtWjAtOV5gfH4sISUyMyQlJlwnKisuXSskLy50ZXN0KEEudHJpbSgpKTtmdW5jdGlvbiBpdChBLHQsZSxJLHIpe2lmKGkuaXNGdW5jdGlvbihJKSlyZXR1cm4gSS5jYWxsKHRoaXMsdCxlKTtpZihyJiYodD1lKSwhIWkuaXNTdHJpbmcodCkpe2lmKGkuaXNTdHJpbmcoSSkpcmV0dXJuIHQuaW5kZXhPZihJKSE9PS0xO2lmKGkuaXNSZWdFeHAoSSkpcmV0dXJuIEkudGVzdCh0KX19ZnVuY3Rpb24gX0koQSl7cmV0dXJuIEEudHJpbSgpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvKFthLXpcXGRdKShcXHcqKS9nLCh0LGUsSSk9PmUudG9VcHBlckNhc2UoKStJKX1mdW5jdGlvbiB6SShBLHQpe2xldCBlPWkudG9DYW1lbENhc2UoIiAiK3QpO1siZ2V0Iiwic2V0IiwiaGFzIl0uZm9yRWFjaChJPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsSStlLHt2YWx1ZTpmdW5jdGlvbihyLGcsbyl7cmV0dXJuIHRoaXNbSV0uY2FsbCh0aGlzLHQscixnLG8pfSxjb25maWd1cmFibGU6ITB9KX0pfXZhciB0QT1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0JiZ0aGlzLnNldCh0KX1zZXQodCxlLEkpe2xldCByPXRoaXM7ZnVuY3Rpb24gZyhuLEUsQil7bGV0IHM9Q0EoRSk7aWYoIXMpdGhyb3cgbmV3IEVycm9yKCJoZWFkZXIgbmFtZSBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZyIpO2xldCBDPWkuZmluZEtleShyLHMpOyghQ3x8cltDXT09PXZvaWQgMHx8Qj09PSEwfHxCPT09dm9pZCAwJiZyW0NdIT09ITEpJiYocltDfHxFXT1IQShuKSl9bGV0IG89KG4sRSk9PmkuZm9yRWFjaChuLChCLHMpPT5nKEIscyxFKSk7aWYoaS5pc1BsYWluT2JqZWN0KHQpfHx0IGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3RvcilvKHQsZSk7ZWxzZSBpZihpLmlzU3RyaW5nKHQpJiYodD10LnRyaW0oKSkmJiFYSSh0KSlvKHRlKHQpLGUpO2Vsc2UgaWYoaS5pc09iamVjdCh0KSYmaS5pc0l0ZXJhYmxlKHQpKXtsZXQgbj17fSxFLEI7Zm9yKGxldCBzIG9mIHQpe2lmKCFpLmlzQXJyYXkocykpdGhyb3cgVHlwZUVycm9yKCJPYmplY3QgaXRlcmF0b3IgbXVzdCByZXR1cm4gYSBrZXktdmFsdWUgcGFpciIpO25bQj1zWzBdXT0oRT1uW0JdKT9pLmlzQXJyYXkoRSk/Wy4uLkUsc1sxXV06W0Usc1sxXV06c1sxXX1vKG4sZSl9ZWxzZSB0IT1udWxsJiZnKGUsdCxJKTtyZXR1cm4gdGhpc31nZXQodCxlKXtpZih0PUNBKHQpLHQpe2xldCBJPWkuZmluZEtleSh0aGlzLHQpO2lmKEkpe2xldCByPXRoaXNbSV07aWYoIWUpcmV0dXJuIHI7aWYoZT09PSEwKXJldHVybiBWSShyKTtpZihpLmlzRnVuY3Rpb24oZSkpcmV0dXJuIGUuY2FsbCh0aGlzLHIsSSk7aWYoaS5pc1JlZ0V4cChlKSlyZXR1cm4gZS5leGVjKHIpO3Rocm93IG5ldyBUeXBlRXJyb3IoInBhcnNlciBtdXN0IGJlIGJvb2xlYW58cmVnZXhwfGZ1bmN0aW9uIil9fX1oYXModCxlKXtpZih0PUNBKHQpLHQpe2xldCBJPWkuZmluZEtleSh0aGlzLHQpO3JldHVybiEhKEkmJnRoaXNbSV0hPT12b2lkIDAmJighZXx8aXQodGhpcyx0aGlzW0ldLEksZSkpKX1yZXR1cm4hMX1kZWxldGUodCxlKXtsZXQgST10aGlzLHI9ITE7ZnVuY3Rpb24gZyhvKXtpZihvPUNBKG8pLG8pe2xldCBuPWkuZmluZEtleShJLG8pO24mJighZXx8aXQoSSxJW25dLG4sZSkpJiYoZGVsZXRlIElbbl0scj0hMCl9fXJldHVybiBpLmlzQXJyYXkodCk/dC5mb3JFYWNoKGcpOmcodCkscn1jbGVhcih0KXtsZXQgZT1PYmplY3Qua2V5cyh0aGlzKSxJPWUubGVuZ3RoLHI9ITE7Zm9yKDtJLS07KXtsZXQgZz1lW0ldOyghdHx8aXQodGhpcyx0aGlzW2ddLGcsdCwhMCkpJiYoZGVsZXRlIHRoaXNbZ10scj0hMCl9cmV0dXJuIHJ9bm9ybWFsaXplKHQpe2xldCBlPXRoaXMsST17fTtyZXR1cm4gaS5mb3JFYWNoKHRoaXMsKHIsZyk9PntsZXQgbz1pLmZpbmRLZXkoSSxnKTtpZihvKXtlW29dPUhBKHIpLGRlbGV0ZSBlW2ddO3JldHVybn1sZXQgbj10P19JKGcpOlN0cmluZyhnKS50cmltKCk7biE9PWcmJmRlbGV0ZSBlW2ddLGVbbl09SEEociksSVtuXT0hMH0pLHRoaXN9Y29uY2F0KC4uLnQpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yLmNvbmNhdCh0aGlzLC4uLnQpfXRvSlNPTih0KXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBpLmZvckVhY2godGhpcywoSSxyKT0+e0khPW51bGwmJkkhPT0hMSYmKGVbcl09dCYmaS5pc0FycmF5KEkpP0kuam9pbigiLCAiKTpJKX0pLGV9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSlbU3ltYm9sLml0ZXJhdG9yXSgpfXRvU3RyaW5nKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpLm1hcCgoW3QsZV0pPT50KyI6ICIrZSkuam9pbihgJTBBYCl9Z2V0U2V0Q29va2llKCl7cmV0dXJuIHRoaXMuZ2V0KCJzZXQtY29va2llIil8fFtdfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkF4aW9zSGVhZGVycyJ9c3RhdGljIGZyb20odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiB0aGlzP3Q6bmV3IHRoaXModCl9c3RhdGljIGNvbmNhdCh0LC4uLmUpe2xldCBJPW5ldyB0aGlzKHQpO3JldHVybiBlLmZvckVhY2gocj0+SS5zZXQocikpLEl9c3RhdGljIGFjY2Vzc29yKHQpe2xldCBJPSh0aGlzW2VlXT10aGlzW2VlXT17YWNjZXNzb3JzOnt9fSkuYWNjZXNzb3JzLHI9dGhpcy5wcm90b3R5cGU7ZnVuY3Rpb24gZyhvKXtsZXQgbj1DQShvKTtJW25dfHwoekkocixvKSxJW25dPSEwKX1yZXR1cm4gaS5pc0FycmF5KHQpP3QuZm9yRWFjaChnKTpnKHQpLHRoaXN9fTt0QS5hY2Nlc3NvcihbIkNvbnRlbnQtVHlwZSIsIkNvbnRlbnQtTGVuZ3RoIiwiQWNjZXB0IiwiQWNjZXB0LUVuY29kaW5nIiwiVXNlci1BZ2VudCIsIkF1dGhvcml6YXRpb24iXSk7aS5yZWR1Y2VEZXNjcmlwdG9ycyh0QS5wcm90b3R5cGUsKHt2YWx1ZTpBfSx0KT0+e2xldCBlPXRbMF0udG9VcHBlckNhc2UoKSt0LnNsaWNlKDEpO3JldHVybntnZXQ6KCk9PkEsc2V0KEkpe3RoaXNbZV09SX19fSk7aS5mcmVlemVNZXRob2RzKHRBKTt2YXIgcD10QTtmdW5jdGlvbiBCQShBLHQpe2xldCBlPXRoaXN8fEFBLEk9dHx8ZSxyPXAuZnJvbShJLmhlYWRlcnMpLGc9SS5kYXRhO3JldHVybiBpLmZvckVhY2goQSxmdW5jdGlvbihuKXtnPW4uY2FsbChlLGcsci5ub3JtYWxpemUoKSx0P3Quc3RhdHVzOnZvaWQgMCl9KSxyLm5vcm1hbGl6ZSgpLGd9ZnVuY3Rpb24gYUEoQSl7cmV0dXJuISEoQSYmQS5fX0NBTkNFTF9fKX1mdW5jdGlvbiBJZShBLHQsZSl7dS5jYWxsKHRoaXMsQT8/ImNhbmNlbGVkIix1LkVSUl9DQU5DRUxFRCx0LGUpLHRoaXMubmFtZT0iQ2FuY2VsZWRFcnJvciJ9aS5pbmhlcml0cyhJZSx1LHtfX0NBTkNFTF9fOiEwfSk7dmFyIEg9SWU7ZnVuY3Rpb24gUUEoQSx0LGUpe2xldCBJPWUuY29uZmlnLnZhbGlkYXRlU3RhdHVzOyFlLnN0YXR1c3x8IUl8fEkoZS5zdGF0dXMpP0EoZSk6dChuZXcgdSgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK2Uuc3RhdHVzLFt1LkVSUl9CQURfUkVRVUVTVCx1LkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3IoZS5zdGF0dXMvMTAwKS00XSxlLmNvbmZpZyxlLnJlcXVlc3QsZSkpfWZ1bmN0aW9uIHN0KEEpe2xldCB0PS9eKFstK1xcd117MSwyNX0pKDo/XFwvXFwvfDopLy5leGVjKEEpO3JldHVybiB0JiZ0WzFdfHwiIn1mdW5jdGlvbiB2SShBLHQpe0E9QXx8MTA7bGV0IGU9bmV3IEFycmF5KEEpLEk9bmV3IEFycmF5KEEpLHI9MCxnPTAsbztyZXR1cm4gdD10IT09dm9pZCAwP3Q6MWUzLGZ1bmN0aW9uKEUpe2xldCBCPURhdGUubm93KCkscz1JW2ddO298fChvPUIpLGVbcl09RSxJW3JdPUI7bGV0IEM9ZyxsPTA7Zm9yKDtDIT09cjspbCs9ZVtDKytdLEM9QyVBO2lmKHI9KHIrMSklQSxyPT09ZyYmKGc9KGcrMSklQSksQi1vPHQpcmV0dXJuO2xldCBhPXMmJkItcztyZXR1cm4gYT9NYXRoLnJvdW5kKGwqMWUzL2EpOnZvaWQgMH19dmFyIHJlPXZJO2Z1bmN0aW9uICRJKEEsdCl7bGV0IGU9MCxJPTFlMy90LHIsZyxvPShCLHM9RGF0ZS5ub3coKSk9PntlPXMscj1udWxsLGcmJihjbGVhclRpbWVvdXQoZyksZz1udWxsKSxBKC4uLkIpfTtyZXR1cm5bKC4uLkIpPT57bGV0IHM9RGF0ZS5ub3coKSxDPXMtZTtDPj1JP28oQixzKToocj1CLGd8fChnPXNldFRpbWVvdXQoKCk9PntnPW51bGwsbyhyKX0sSS1DKSkpfSwoKT0+ciYmbyhyKV19dmFyIG9lPSRJO3ZhciBlQT0oQSx0LGU9Myk9PntsZXQgST0wLHI9cmUoNTAsMjUwKTtyZXR1cm4gb2UoZz0+e2xldCBvPWcubG9hZGVkLG49Zy5sZW5ndGhDb21wdXRhYmxlP2cudG90YWw6dm9pZCAwLEU9by1JLEI9cihFKSxzPW88PW47ST1vO2xldCBDPXtsb2FkZWQ6byx0b3RhbDpuLHByb2dyZXNzOm4/by9uOnZvaWQgMCxieXRlczpFLHJhdGU6Qnx8dm9pZCAwLGVzdGltYXRlZDpCJiZuJiZzPyhuLW8pL0I6dm9pZCAwLGV2ZW50OmcsbGVuZ3RoQ29tcHV0YWJsZTpuIT1udWxsLFt0PyJkb3dubG9hZCI6InVwbG9hZCJdOiEwfTtBKEMpfSxlKX0sbnQ9KEEsdCk9PntsZXQgZT1BIT1udWxsO3JldHVybltJPT50WzBdKHtsZW5ndGhDb21wdXRhYmxlOmUsdG90YWw6QSxsb2FkZWQ6SX0pLHRbMV1dfSxDdD1BPT4oLi4udCk9PmkuYXNhcCgoKT0+QSguLi50KSk7dmFyIGdlPWguaGFzU3RhbmRhcmRCcm93c2VyRW52PygoQSx0KT0+ZT0+KGU9bmV3IFVSTChlLGgub3JpZ2luKSxBLnByb3RvY29sPT09ZS5wcm90b2NvbCYmQS5ob3N0PT09ZS5ob3N0JiYodHx8QS5wb3J0PT09ZS5wb3J0KSkpKG5ldyBVUkwoaC5vcmlnaW4pLGgubmF2aWdhdG9yJiYvKG1zaWV8dHJpZGVudCkvaS50ZXN0KGgubmF2aWdhdG9yLnVzZXJBZ2VudCkpOigpPT4hMDt2YXIgaWU9aC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/e3dyaXRlKEEsdCxlLEkscixnKXtsZXQgbz1bQSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpXTtpLmlzTnVtYmVyKGUpJiZvLnB1c2goImV4cGlyZXM9IituZXcgRGF0ZShlKS50b0dNVFN0cmluZygpKSxpLmlzU3RyaW5nKEkpJiZvLnB1c2goInBhdGg9IitJKSxpLmlzU3RyaW5nKHIpJiZvLnB1c2goImRvbWFpbj0iK3IpLGc9PT0hMCYmby5wdXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9by5qb2luKCI7ICIpfSxyZWFkKEEpe2xldCB0PWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxcXHMqKSgiK0ErIik9KFteO10qKSIpKTtyZXR1cm4gdD9kZWNvZGVVUklDb21wb25lbnQodFszXSk6bnVsbH0scmVtb3ZlKEEpe3RoaXMud3JpdGUoQSwiIixEYXRlLm5vdygpLTg2NGU1KX19Ont3cml0ZSgpe30scmVhZCgpe3JldHVybiBudWxsfSxyZW1vdmUoKXt9fTtmdW5jdGlvbiBCdChBKXtyZXR1cm4vXihbYS16XVthLXpcXGQrXFwtLl0qOik/XFwvXFwvL2kudGVzdChBKX1mdW5jdGlvbiBhdChBLHQpe3JldHVybiB0P0EucmVwbGFjZSgvXFwvP1xcLyQvLCIiKSsiLyIrdC5yZXBsYWNlKC9eXFwvKy8sIiIpOkF9ZnVuY3Rpb24gRUEoQSx0LGUpe2xldCBJPSFCdCh0KTtyZXR1cm4gQSYmKEl8fGU9PSExKT9hdChBLHQpOnR9dmFyIHNlPUE9PkEgaW5zdGFuY2VvZiBwP3suLi5BfTpBO2Z1bmN0aW9uIGIoQSx0KXt0PXR8fHt9O2xldCBlPXt9O2Z1bmN0aW9uIEkoQixzLEMsbCl7cmV0dXJuIGkuaXNQbGFpbk9iamVjdChCKSYmaS5pc1BsYWluT2JqZWN0KHMpP2kubWVyZ2UuY2FsbCh7Y2FzZWxlc3M6bH0sQixzKTppLmlzUGxhaW5PYmplY3Qocyk/aS5tZXJnZSh7fSxzKTppLmlzQXJyYXkocyk/cy5zbGljZSgpOnN9ZnVuY3Rpb24gcihCLHMsQyxsKXtpZihpLmlzVW5kZWZpbmVkKHMpKXtpZighaS5pc1VuZGVmaW5lZChCKSlyZXR1cm4gSSh2b2lkIDAsQixDLGwpfWVsc2UgcmV0dXJuIEkoQixzLEMsbCl9ZnVuY3Rpb24gZyhCLHMpe2lmKCFpLmlzVW5kZWZpbmVkKHMpKXJldHVybiBJKHZvaWQgMCxzKX1mdW5jdGlvbiBvKEIscyl7aWYoaS5pc1VuZGVmaW5lZChzKSl7aWYoIWkuaXNVbmRlZmluZWQoQikpcmV0dXJuIEkodm9pZCAwLEIpfWVsc2UgcmV0dXJuIEkodm9pZCAwLHMpfWZ1bmN0aW9uIG4oQixzLEMpe2lmKEMgaW4gdClyZXR1cm4gSShCLHMpO2lmKEMgaW4gQSlyZXR1cm4gSSh2b2lkIDAsQil9bGV0IEU9e3VybDpnLG1ldGhvZDpnLGRhdGE6ZyxiYXNlVVJMOm8sdHJhbnNmb3JtUmVxdWVzdDpvLHRyYW5zZm9ybVJlc3BvbnNlOm8scGFyYW1zU2VyaWFsaXplcjpvLHRpbWVvdXQ6byx0aW1lb3V0TWVzc2FnZTpvLHdpdGhDcmVkZW50aWFsczpvLHdpdGhYU1JGVG9rZW46byxhZGFwdGVyOm8scmVzcG9uc2VUeXBlOm8seHNyZkNvb2tpZU5hbWU6byx4c3JmSGVhZGVyTmFtZTpvLG9uVXBsb2FkUHJvZ3Jlc3M6byxvbkRvd25sb2FkUHJvZ3Jlc3M6byxkZWNvbXByZXNzOm8sbWF4Q29udGVudExlbmd0aDpvLG1heEJvZHlMZW5ndGg6byxiZWZvcmVSZWRpcmVjdDpvLHRyYW5zcG9ydDpvLGh0dHBBZ2VudDpvLGh0dHBzQWdlbnQ6byxjYW5jZWxUb2tlbjpvLHNvY2tldFBhdGg6byxyZXNwb25zZUVuY29kaW5nOm8sdmFsaWRhdGVTdGF0dXM6bixoZWFkZXJzOihCLHMsQyk9PnIoc2UoQiksc2UocyksQywhMCl9O3JldHVybiBpLmZvckVhY2goT2JqZWN0LmtleXMoey4uLkEsLi4udH0pLGZ1bmN0aW9uKHMpe2xldCBDPUVbc118fHIsbD1DKEFbc10sdFtzXSxzKTtpLmlzVW5kZWZpbmVkKGwpJiZDIT09bnx8KGVbc109bCl9KSxlfXZhciBZQT1BPT57bGV0IHQ9Yih7fSxBKSx7ZGF0YTplLHdpdGhYU1JGVG9rZW46SSx4c3JmSGVhZGVyTmFtZTpyLHhzcmZDb29raWVOYW1lOmcsaGVhZGVyczpvLGF1dGg6bn09dDtpZih0LmhlYWRlcnM9bz1wLmZyb20obyksdC51cmw9bkEoRUEodC5iYXNlVVJMLHQudXJsLHQuYWxsb3dBYnNvbHV0ZVVybHMpLEEucGFyYW1zLEEucGFyYW1zU2VyaWFsaXplciksbiYmby5zZXQoIkF1dGhvcml6YXRpb24iLCJCYXNpYyAiK2J0b2EoKG4udXNlcm5hbWV8fCIiKSsiOiIrKG4ucGFzc3dvcmQ/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KG4ucGFzc3dvcmQpKToiIikpKSxpLmlzRm9ybURhdGEoZSkpe2lmKGguaGFzU3RhbmRhcmRCcm93c2VyRW52fHxoLmhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudilvLnNldENvbnRlbnRUeXBlKHZvaWQgMCk7ZWxzZSBpZihpLmlzRnVuY3Rpb24oZS5nZXRIZWFkZXJzKSl7bGV0IEU9ZS5nZXRIZWFkZXJzKCksQj1bImNvbnRlbnQtdHlwZSIsImNvbnRlbnQtbGVuZ3RoIl07T2JqZWN0LmVudHJpZXMoRSkuZm9yRWFjaCgoW3MsQ10pPT57Qi5pbmNsdWRlcyhzLnRvTG93ZXJDYXNlKCkpJiZvLnNldChzLEMpfSl9fWlmKGguaGFzU3RhbmRhcmRCcm93c2VyRW52JiYoSSYmaS5pc0Z1bmN0aW9uKEkpJiYoST1JKHQpKSxJfHxJIT09ITEmJmdlKHQudXJsKSkpe2xldCBFPXImJmcmJmllLnJlYWQoZyk7RSYmby5zZXQocixFKX1yZXR1cm4gdH07dmFyIEFyPXR5cGVvZiBYTUxIdHRwUmVxdWVzdDwidSIsbmU9QXImJmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlLEkpe2xldCByPVlBKEEpLGc9ci5kYXRhLG89cC5mcm9tKHIuaGVhZGVycykubm9ybWFsaXplKCkse3Jlc3BvbnNlVHlwZTpuLG9uVXBsb2FkUHJvZ3Jlc3M6RSxvbkRvd25sb2FkUHJvZ3Jlc3M6Qn09cixzLEMsbCxhLFE7ZnVuY3Rpb24gZigpe2EmJmEoKSxRJiZRKCksci5jYW5jZWxUb2tlbiYmci5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShzKSxyLnNpZ25hbCYmci5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHMpfWxldCBjPW5ldyBYTUxIdHRwUmVxdWVzdDtjLm9wZW4oci5tZXRob2QudG9VcHBlckNhc2UoKSxyLnVybCwhMCksYy50aW1lb3V0PXIudGltZW91dDtmdW5jdGlvbiBEKCl7aWYoIWMpcmV0dXJuO2xldCB5PXAuZnJvbSgiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIGMmJmMuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLGs9e2RhdGE6IW58fG49PT0idGV4dCJ8fG49PT0ianNvbiI/Yy5yZXNwb25zZVRleHQ6Yy5yZXNwb25zZSxzdGF0dXM6Yy5zdGF0dXMsc3RhdHVzVGV4dDpjLnN0YXR1c1RleHQsaGVhZGVyczp5LGNvbmZpZzpBLHJlcXVlc3Q6Y307UUEoZnVuY3Rpb24oRyl7ZShHKSxmKCl9LGZ1bmN0aW9uKEcpe0koRyksZigpfSxrKSxjPW51bGx9Im9ubG9hZGVuZCJpbiBjP2Mub25sb2FkZW5kPUQ6Yy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXshY3x8Yy5yZWFkeVN0YXRlIT09NHx8Yy5zdGF0dXM9PT0wJiYhKGMucmVzcG9uc2VVUkwmJmMucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKT09PTApfHxzZXRUaW1lb3V0KEQpfSxjLm9uYWJvcnQ9ZnVuY3Rpb24oKXtjJiYoSShuZXcgdSgiUmVxdWVzdCBhYm9ydGVkIix1LkVDT05OQUJPUlRFRCxBLGMpKSxjPW51bGwpfSxjLm9uZXJyb3I9ZnVuY3Rpb24oUil7bGV0IGs9UiYmUi5tZXNzYWdlP1IubWVzc2FnZToiTmV0d29yayBFcnJvciIsUD1uZXcgdShrLHUuRVJSX05FVFdPUkssQSxjKTtQLmV2ZW50PVJ8fG51bGwsSShQKSxjPW51bGx9LGMub250aW1lb3V0PWZ1bmN0aW9uKCl7bGV0IFI9ci50aW1lb3V0PyJ0aW1lb3V0IG9mICIrci50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiLGs9ci50cmFuc2l0aW9uYWx8fGJBO3IudGltZW91dEVycm9yTWVzc2FnZSYmKFI9ci50aW1lb3V0RXJyb3JNZXNzYWdlKSxJKG5ldyB1KFIsay5jbGFyaWZ5VGltZW91dEVycm9yP3UuRVRJTUVET1VUOnUuRUNPTk5BQk9SVEVELEEsYykpLGM9bnVsbH0sZz09PXZvaWQgMCYmby5zZXRDb250ZW50VHlwZShudWxsKSwic2V0UmVxdWVzdEhlYWRlciJpbiBjJiZpLmZvckVhY2goby50b0pTT04oKSxmdW5jdGlvbihSLGspe2Muc2V0UmVxdWVzdEhlYWRlcihrLFIpfSksaS5pc1VuZGVmaW5lZChyLndpdGhDcmVkZW50aWFscyl8fChjLndpdGhDcmVkZW50aWFscz0hIXIud2l0aENyZWRlbnRpYWxzKSxuJiZuIT09Impzb24iJiYoYy5yZXNwb25zZVR5cGU9ci5yZXNwb25zZVR5cGUpLEImJihbbCxRXT1lQShCLCEwKSxjLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixsKSksRSYmYy51cGxvYWQmJihbQyxhXT1lQShFKSxjLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsQyksYy51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVuZCIsYSkpLChyLmNhbmNlbFRva2VufHxyLnNpZ25hbCkmJihzPXk9PntjJiYoSSgheXx8eS50eXBlP25ldyBIKG51bGwsQSxjKTp5KSxjLmFib3J0KCksYz1udWxsKX0sci5jYW5jZWxUb2tlbiYmci5jYW5jZWxUb2tlbi5zdWJzY3JpYmUocyksci5zaWduYWwmJihyLnNpZ25hbC5hYm9ydGVkP3MoKTpyLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIscykpKTtsZXQgRj1zdChyLnVybCk7aWYoRiYmaC5wcm90b2NvbHMuaW5kZXhPZihGKT09PS0xKXtJKG5ldyB1KCJVbnN1cHBvcnRlZCBwcm90b2NvbCAiK0YrIjoiLHUuRVJSX0JBRF9SRVFVRVNULEEpKTtyZXR1cm59Yy5zZW5kKGd8fG51bGwpfSl9O3ZhciB0cj0oQSx0KT0+e2xldHtsZW5ndGg6ZX09QT1BP0EuZmlsdGVyKEJvb2xlYW4pOltdO2lmKHR8fGUpe2xldCBJPW5ldyBBYm9ydENvbnRyb2xsZXIscixnPWZ1bmN0aW9uKEIpe2lmKCFyKXtyPSEwLG4oKTtsZXQgcz1CIGluc3RhbmNlb2YgRXJyb3I/Qjp0aGlzLnJlYXNvbjtJLmFib3J0KHMgaW5zdGFuY2VvZiB1P3M6bmV3IEgocyBpbnN0YW5jZW9mIEVycm9yP3MubWVzc2FnZTpzKSl9fSxvPXQmJnNldFRpbWVvdXQoKCk9PntvPW51bGwsZyhuZXcgdShgdGltZW91dCAke3R9IG9mIG1zIGV4Y2VlZGVkYCx1LkVUSU1FRE9VVCkpfSx0KSxuPSgpPT57QSYmKG8mJmNsZWFyVGltZW91dChvKSxvPW51bGwsQS5mb3JFYWNoKEI9PntCLnVuc3Vic2NyaWJlP0IudW5zdWJzY3JpYmUoZyk6Qi5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsZyl9KSxBPW51bGwpfTtBLmZvckVhY2goQj0+Qi5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsZykpO2xldHtzaWduYWw6RX09STtyZXR1cm4gRS51bnN1YnNjcmliZT0oKT0+aS5hc2FwKG4pLEV9fSxDZT10cjt2YXIgZXI9ZnVuY3Rpb24qKEEsdCl7bGV0IGU9QS5ieXRlTGVuZ3RoO2lmKCF0fHxlPHQpe3lpZWxkIEE7cmV0dXJufWxldCBJPTAscjtmb3IoO0k8ZTspcj1JK3QseWllbGQgQS5zbGljZShJLHIpLEk9cn0sSXI9YXN5bmMgZnVuY3Rpb24qKEEsdCl7Zm9yIGF3YWl0KGxldCBlIG9mIHJyKEEpKXlpZWxkKmVyKGUsdCl9LHJyPWFzeW5jIGZ1bmN0aW9uKihBKXtpZihBW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl7eWllbGQqQTtyZXR1cm59bGV0IHQ9QS5nZXRSZWFkZXIoKTt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTplLHZhbHVlOkl9PWF3YWl0IHQucmVhZCgpO2lmKGUpYnJlYWs7eWllbGQgSX19ZmluYWxseXthd2FpdCB0LmNhbmNlbCgpfX0sUXQ9KEEsdCxlLEkpPT57bGV0IHI9SXIoQSx0KSxnPTAsbyxuPUU9PntvfHwobz0hMCxJJiZJKEUpKX07cmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7YXN5bmMgcHVsbChFKXt0cnl7bGV0e2RvbmU6Qix2YWx1ZTpzfT1hd2FpdCByLm5leHQoKTtpZihCKXtuKCksRS5jbG9zZSgpO3JldHVybn1sZXQgQz1zLmJ5dGVMZW5ndGg7aWYoZSl7bGV0IGw9Zys9QztlKGwpfUUuZW5xdWV1ZShuZXcgVWludDhBcnJheShzKSl9Y2F0Y2goQil7dGhyb3cgbihCKSxCfX0sY2FuY2VsKEUpe3JldHVybiBuKEUpLHIucmV0dXJuKCl9fSx7aGlnaFdhdGVyTWFyazoyfSl9O3ZhciBCZT02NCoxMDI0LHtpc0Z1bmN0aW9uOnFBfT1pLGNlPSgoe2ZldGNoOkEsUmVxdWVzdDp0LFJlc3BvbnNlOmV9KT0+KHtmZXRjaDpBLFJlcXVlc3Q6dCxSZXNwb25zZTplfSkpKGkuZ2xvYmFsKSx7UmVhZGFibGVTdHJlYW06YWUsVGV4dEVuY29kZXI6UWV9PWkuZ2xvYmFsLEVlPShBLC4uLnQpPT57dHJ5e3JldHVybiEhQSguLi50KX1jYXRjaHtyZXR1cm4hMX19LG9yPUE9PntsZXR7ZmV0Y2g6dCxSZXF1ZXN0OmUsUmVzcG9uc2U6SX09T2JqZWN0LmFzc2lnbih7fSxjZSxBKSxyPXFBKHQpLGc9cUEoZSksbz1xQShJKTtpZighcilyZXR1cm4hMTtsZXQgbj1yJiZxQShhZSksRT1yJiYodHlwZW9mIFFlPT0iZnVuY3Rpb24iPyhRPT5mPT5RLmVuY29kZShmKSkobmV3IFFlKTphc3luYyBRPT5uZXcgVWludDhBcnJheShhd2FpdCBuZXcgZShRKS5hcnJheUJ1ZmZlcigpKSksQj1nJiZuJiZFZSgoKT0+e2xldCBRPSExLGY9bmV3IGUoaC5vcmlnaW4se2JvZHk6bmV3IGFlLG1ldGhvZDoiUE9TVCIsZ2V0IGR1cGxleCgpe3JldHVybiBRPSEwLCJoYWxmIn19KS5oZWFkZXJzLmhhcygiQ29udGVudC1UeXBlIik7cmV0dXJuIFEmJiFmfSkscz1vJiZuJiZFZSgoKT0+aS5pc1JlYWRhYmxlU3RyZWFtKG5ldyBJKCIiKS5ib2R5KSksQz17c3RyZWFtOnMmJihRPT5RLmJvZHkpfTtyJiZbInRleHQiLCJhcnJheUJ1ZmZlciIsImJsb2IiLCJmb3JtRGF0YSIsInN0cmVhbSJdLmZvckVhY2goUT0+eyFDW1FdJiYoQ1tRXT0oZixjKT0+e2xldCBEPWYmJmZbUV07aWYoRClyZXR1cm4gRC5jYWxsKGYpO3Rocm93IG5ldyB1KGBSZXNwb25zZSB0eXBlIFwnJHtRfVwnIGlzIG5vdCBzdXBwb3J0ZWRgLHUuRVJSX05PVF9TVVBQT1JULGMpfSl9KTtsZXQgbD1hc3luYyBRPT57aWYoUT09bnVsbClyZXR1cm4gMDtpZihpLmlzQmxvYihRKSlyZXR1cm4gUS5zaXplO2lmKGkuaXNTcGVjQ29tcGxpYW50Rm9ybShRKSlyZXR1cm4oYXdhaXQgbmV3IGUoaC5vcmlnaW4se21ldGhvZDoiUE9TVCIsYm9keTpRfSkuYXJyYXlCdWZmZXIoKSkuYnl0ZUxlbmd0aDtpZihpLmlzQXJyYXlCdWZmZXJWaWV3KFEpfHxpLmlzQXJyYXlCdWZmZXIoUSkpcmV0dXJuIFEuYnl0ZUxlbmd0aDtpZihpLmlzVVJMU2VhcmNoUGFyYW1zKFEpJiYoUT1RKyIiKSxpLmlzU3RyaW5nKFEpKXJldHVybihhd2FpdCBFKFEpKS5ieXRlTGVuZ3RofSxhPWFzeW5jKFEsZik9PntsZXQgYz1pLnRvRmluaXRlTnVtYmVyKFEuZ2V0Q29udGVudExlbmd0aCgpKTtyZXR1cm4gYz8/bChmKX07cmV0dXJuIGFzeW5jIFE9PntsZXR7dXJsOmYsbWV0aG9kOmMsZGF0YTpELHNpZ25hbDpGLGNhbmNlbFRva2VuOnksdGltZW91dDpSLG9uRG93bmxvYWRQcm9ncmVzczprLG9uVXBsb2FkUHJvZ3Jlc3M6UCxyZXNwb25zZVR5cGU6RyxoZWFkZXJzOldBLHdpdGhDcmVkZW50aWFsczpkQT0ic2FtZS1vcmlnaW4iLGZldGNoT3B0aW9uczptdH09WUEoUSk7Rz1HPyhHKyIiKS50b0xvd2VyQ2FzZSgpOiJ0ZXh0IjtsZXQgREE9Q2UoW0YseSYmeS50b0Fib3J0U2lnbmFsKCldLFIpLHJBPW51bGwsaj1EQSYmREEudW5zdWJzY3JpYmUmJigoKT0+e0RBLnVuc3Vic2NyaWJlKCl9KSx3dDt0cnl7aWYoUCYmQiYmYyE9PSJnZXQiJiZjIT09ImhlYWQiJiYod3Q9YXdhaXQgYShXQSxEKSkhPT0wKXtsZXQgTz1uZXcgZShmLHttZXRob2Q6IlBPU1QiLGJvZHk6RCxkdXBsZXg6ImhhbGYifSksWDtpZihpLmlzRm9ybURhdGEoRCkmJihYPU8uaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpKSYmV0Euc2V0Q29udGVudFR5cGUoWCksTy5ib2R5KXtsZXRbWkEsaEFdPW50KHd0LGVBKEN0KFApKSk7RD1RdChPLmJvZHksQmUsWkEsaEEpfX1pLmlzU3RyaW5nKGRBKXx8KGRBPWRBPyJpbmNsdWRlIjoib21pdCIpO2xldCBKPWcmJiJjcmVkZW50aWFscyJpbiBlLnByb3RvdHlwZSxwdD17Li4ubXQsc2lnbmFsOkRBLG1ldGhvZDpjLnRvVXBwZXJDYXNlKCksaGVhZGVyczpXQS5ub3JtYWxpemUoKS50b0pTT04oKSxib2R5OkQsZHVwbGV4OiJoYWxmIixjcmVkZW50aWFsczpKP2RBOnZvaWQgMH07ckE9ZyYmbmV3IGUoZixwdCk7bGV0IEs9YXdhaXQoZz90KHJBLG10KTp0KGYscHQpKSxTdD1zJiYoRz09PSJzdHJlYW0ifHxHPT09InJlc3BvbnNlIik7aWYocyYmKGt8fFN0JiZqKSl7bGV0IE89e307WyJzdGF0dXMiLCJzdGF0dXNUZXh0IiwiaGVhZGVycyJdLmZvckVhY2goRnQ9PntPW0Z0XT1LW0Z0XX0pO2xldCBYPWkudG9GaW5pdGVOdW1iZXIoSy5oZWFkZXJzLmdldCgiY29udGVudC1sZW5ndGgiKSksW1pBLGhBXT1rJiZudChYLGVBKEN0KGspLCEwKSl8fFtdO0s9bmV3IEkoUXQoSy5ib2R5LEJlLFpBLCgpPT57aEEmJmhBKCksaiYmaigpfSksTyl9Rz1HfHwidGV4dCI7bGV0IEhlPWF3YWl0IENbaS5maW5kS2V5KEMsRyl8fCJ0ZXh0Il0oSyxRKTtyZXR1cm4hU3QmJmomJmooKSxhd2FpdCBuZXcgUHJvbWlzZSgoTyxYKT0+e1FBKE8sWCx7ZGF0YTpIZSxoZWFkZXJzOnAuZnJvbShLLmhlYWRlcnMpLHN0YXR1czpLLnN0YXR1cyxzdGF0dXNUZXh0Oksuc3RhdHVzVGV4dCxjb25maWc6USxyZXF1ZXN0OnJBfSl9KX1jYXRjaChKKXt0aHJvdyBqJiZqKCksSiYmSi5uYW1lPT09IlR5cGVFcnJvciImJi9Mb2FkIGZhaWxlZHxmZXRjaC9pLnRlc3QoSi5tZXNzYWdlKT9PYmplY3QuYXNzaWduKG5ldyB1KCJOZXR3b3JrIEVycm9yIix1LkVSUl9ORVRXT1JLLFEsckEpLHtjYXVzZTpKLmNhdXNlfHxKfSk6dS5mcm9tKEosSiYmSi5jb2RlLFEsckEpfX19LGdyPW5ldyBNYXAsRXQ9QT0+e2xldCB0PWkubWVyZ2UuY2FsbCh7c2tpcFVuZGVmaW5lZDohMH0sY2UsQT9BLmVudjpudWxsKSx7ZmV0Y2g6ZSxSZXF1ZXN0OkksUmVzcG9uc2U6cn09dCxnPVtJLHIsZV0sbz1nLmxlbmd0aCxuPW8sRSxCLHM9Z3I7Zm9yKDtuLS07KUU9Z1tuXSxCPXMuZ2V0KEUpLEI9PT12b2lkIDAmJnMuc2V0KEUsQj1uP25ldyBNYXA6b3IodCkpLHM9QjtyZXR1cm4gQn0sR2c9RXQoKTt2YXIgY3Q9e2h0dHA6a0EseGhyOm5lLGZldGNoOntnZXQ6RXR9fTtpLmZvckVhY2goY3QsKEEsdCk9PntpZihBKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsIm5hbWUiLHt2YWx1ZTp0fSl9Y2F0Y2h7fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJhZGFwdGVyTmFtZSIse3ZhbHVlOnR9KX19KTt2YXIgZmU9QT0+YC0gJHtBfWAsc3I9QT0+aS5pc0Z1bmN0aW9uKEEpfHxBPT09bnVsbHx8QT09PSExLE1BPXtnZXRBZGFwdGVyOihBLHQpPT57QT1pLmlzQXJyYXkoQSk/QTpbQV07bGV0e2xlbmd0aDplfT1BLEkscixnPXt9O2ZvcihsZXQgbz0wO288ZTtvKyspe0k9QVtvXTtsZXQgbjtpZihyPUksIXNyKEkpJiYocj1jdFsobj1TdHJpbmcoSSkpLnRvTG93ZXJDYXNlKCldLHI9PT12b2lkIDApKXRocm93IG5ldyB1KGBVbmtub3duIGFkYXB0ZXIgXCcke259XCdgKTtpZihyJiYoaS5pc0Z1bmN0aW9uKHIpfHwocj1yLmdldCh0KSkpKWJyZWFrO2dbbnx8IiUyMyIrb109cn1pZighcil7bGV0IG89T2JqZWN0LmVudHJpZXMoZykubWFwKChbRSxCXSk9PmBhZGFwdGVyICR7RX0gYCsoQj09PSExPyJpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBlbnZpcm9ubWVudCI6ImlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJ1aWxkIikpLG49ZT9vLmxlbmd0aD4xP2BzaW5jZSA6JTBBYCtvLm1hcChmZSkuam9pbihgJTBBYCk6IiAiK2ZlKG9bMF0pOiJhcyBubyBhZGFwdGVyIHNwZWNpZmllZCI7dGhyb3cgbmV3IHUoIlRoZXJlIGlzIG5vIHN1aXRhYmxlIGFkYXB0ZXIgdG8gZGlzcGF0Y2ggdGhlIHJlcXVlc3QgIituLCJFUlJfTk9UX1NVUFBPUlQiKX1yZXR1cm4gcn0sYWRhcHRlcnM6Y3R9O2Z1bmN0aW9uIGZ0KEEpe2lmKEEuY2FuY2VsVG9rZW4mJkEuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLEEuc2lnbmFsJiZBLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBIKG51bGwsQSl9ZnVuY3Rpb24gS0EoQSl7cmV0dXJuIGZ0KEEpLEEuaGVhZGVycz1wLmZyb20oQS5oZWFkZXJzKSxBLmRhdGE9QkEuY2FsbChBLEEudHJhbnNmb3JtUmVxdWVzdCksWyJwb3N0IiwicHV0IiwicGF0Y2giXS5pbmRleE9mKEEubWV0aG9kKSE9PS0xJiZBLmhlYWRlcnMuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsITEpLE1BLmdldEFkYXB0ZXIoQS5hZGFwdGVyfHxBQS5hZGFwdGVyLEEpKEEpLnRoZW4oZnVuY3Rpb24oSSl7cmV0dXJuIGZ0KEEpLEkuZGF0YT1CQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxJKSxJLmhlYWRlcnM9cC5mcm9tKEkuaGVhZGVycyksSX0sZnVuY3Rpb24oSSl7cmV0dXJuIGFBKEkpfHwoZnQoQSksSSYmSS5yZXNwb25zZSYmKEkucmVzcG9uc2UuZGF0YT1CQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxJLnJlc3BvbnNlKSxJLnJlc3BvbnNlLmhlYWRlcnM9cC5mcm9tKEkucmVzcG9uc2UuaGVhZGVycykpKSxQcm9taXNlLnJlamVjdChJKX0pfXZhciBPQT0iMS4xMi4wIjt2YXIgVEE9e307WyJvYmplY3QiLCJib29sZWFuIiwibnVtYmVyIiwiZnVuY3Rpb24iLCJzdHJpbmciLCJzeW1ib2wiXS5mb3JFYWNoKChBLHQpPT57VEFbQV09ZnVuY3Rpb24oSSl7cmV0dXJuIHR5cGVvZiBJPT09QXx8ImEiKyh0PDE/Im4gIjoiICIpK0F9fSk7dmFyIGxlPXt9O1RBLnRyYW5zaXRpb25hbD1mdW5jdGlvbih0LGUsSSl7ZnVuY3Rpb24gcihnLG8pe3JldHVybiJbQXhpb3MgdiIrT0ErIl0gVHJhbnNpdGlvbmFsIG9wdGlvbiBcJyIrZysiXCciK28rKEk/Ii4gIitJOiIiKX1yZXR1cm4oZyxvLG4pPT57aWYodD09PSExKXRocm93IG5ldyB1KHIobywiIGhhcyBiZWVuIHJlbW92ZWQiKyhlPyIgaW4gIitlOiIiKSksdS5FUlJfREVQUkVDQVRFRCk7cmV0dXJuIGUmJiFsZVtvXSYmKGxlW29dPSEwLGNvbnNvbGUud2FybihyKG8sIiBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYiK2UrIiBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZWFyIGZ1dHVyZSIpKSksdD90KGcsbyxuKTohMH19O1RBLnNwZWxsaW5nPWZ1bmN0aW9uKHQpe3JldHVybihlLEkpPT4oY29uc29sZS53YXJuKGAke0l9IGlzIGxpa2VseSBhIG1pc3NwZWxsaW5nIG9mICR7dH1gKSwhMCl9O2Z1bmN0aW9uIG5yKEEsdCxlKXtpZih0eXBlb2YgQSE9Im9iamVjdCIpdGhyb3cgbmV3IHUoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiLHUuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2xldCBJPU9iamVjdC5rZXlzKEEpLHI9SS5sZW5ndGg7Zm9yKDtyLS0gPjA7KXtsZXQgZz1JW3JdLG89dFtnXTtpZihvKXtsZXQgbj1BW2ddLEU9bj09PXZvaWQgMHx8byhuLGcsQSk7aWYoRSE9PSEwKXRocm93IG5ldyB1KCJvcHRpb24gIitnKyIgbXVzdCBiZSAiK0UsdS5FUlJfQkFEX09QVElPTl9WQUxVRSk7Y29udGludWV9aWYoZSE9PSEwKXRocm93IG5ldyB1KCJVbmtub3duIG9wdGlvbiAiK2csdS5FUlJfQkFEX09QVElPTil9fXZhciBjQT17YXNzZXJ0T3B0aW9uczpucix2YWxpZGF0b3JzOlRBfTt2YXIgWT1jQS52YWxpZGF0b3JzLElBPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuZGVmYXVsdHM9dHx8e30sdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IHR0LHJlc3BvbnNlOm5ldyB0dH19YXN5bmMgcmVxdWVzdCh0LGUpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fcmVxdWVzdCh0LGUpfWNhdGNoKEkpe2lmKEkgaW5zdGFuY2VvZiBFcnJvcil7bGV0IHI9e307RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2Uocik6cj1uZXcgRXJyb3I7bGV0IGc9ci5zdGFjaz9yLnN0YWNrLnJlcGxhY2UoL14uK1xcbi8sIiIpOiIiO3RyeXtJLnN0YWNrP2cmJiFTdHJpbmcoSS5zdGFjaykuZW5kc1dpdGgoZy5yZXBsYWNlKC9eLitcXG4uK1xcbi8sIiIpKSYmKEkuc3RhY2srPWAlMEFgK2cpOkkuc3RhY2s9Z31jYXRjaHt9fXRocm93IEl9fV9yZXF1ZXN0KHQsZSl7dHlwZW9mIHQ9PSJzdHJpbmciPyhlPWV8fHt9LGUudXJsPXQpOmU9dHx8e30sZT1iKHRoaXMuZGVmYXVsdHMsZSk7bGV0e3RyYW5zaXRpb25hbDpJLHBhcmFtc1NlcmlhbGl6ZXI6cixoZWFkZXJzOmd9PWU7SSE9PXZvaWQgMCYmY0EuYXNzZXJ0T3B0aW9ucyhJLHtzaWxlbnRKU09OUGFyc2luZzpZLnRyYW5zaXRpb25hbChZLmJvb2xlYW4pLGZvcmNlZEpTT05QYXJzaW5nOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbiksY2xhcmlmeVRpbWVvdXRFcnJvcjpZLnRyYW5zaXRpb25hbChZLmJvb2xlYW4pfSwhMSksciE9bnVsbCYmKGkuaXNGdW5jdGlvbihyKT9lLnBhcmFtc1NlcmlhbGl6ZXI9e3NlcmlhbGl6ZTpyfTpjQS5hc3NlcnRPcHRpb25zKHIse2VuY29kZTpZLmZ1bmN0aW9uLHNlcmlhbGl6ZTpZLmZ1bmN0aW9ufSwhMCkpLGUuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDB8fCh0aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwP2UuYWxsb3dBYnNvbHV0ZVVybHM9dGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJsczplLmFsbG93QWJzb2x1dGVVcmxzPSEwKSxjQS5hc3NlcnRPcHRpb25zKGUse2Jhc2VVcmw6WS5zcGVsbGluZygiYmFzZVVSTCIpLHdpdGhYc3JmVG9rZW46WS5zcGVsbGluZygid2l0aFhTUkZUb2tlbiIpfSwhMCksZS5tZXRob2Q9KGUubWV0aG9kfHx0aGlzLmRlZmF1bHRzLm1ldGhvZHx8ImdldCIpLnRvTG93ZXJDYXNlKCk7bGV0IG89ZyYmaS5tZXJnZShnLmNvbW1vbixnW2UubWV0aG9kXSk7ZyYmaS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsImNvbW1vbiJdLFE9PntkZWxldGUgZ1tRXX0pLGUuaGVhZGVycz1wLmNvbmNhdChvLGcpO2xldCBuPVtdLEU9ITA7dGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKGZ1bmN0aW9uKGYpe3R5cGVvZiBmLnJ1bldoZW49PSJmdW5jdGlvbiImJmYucnVuV2hlbihlKT09PSExfHwoRT1FJiZmLnN5bmNocm9ub3VzLG4udW5zaGlmdChmLmZ1bGZpbGxlZCxmLnJlamVjdGVkKSl9KTtsZXQgQj1bXTt0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKGZ1bmN0aW9uKGYpe0IucHVzaChmLmZ1bGZpbGxlZCxmLnJlamVjdGVkKX0pO2xldCBzLEM9MCxsO2lmKCFFKXtsZXQgUT1bS0EuYmluZCh0aGlzKSx2b2lkIDBdO2ZvcihRLnVuc2hpZnQoLi4ubiksUS5wdXNoKC4uLkIpLGw9US5sZW5ndGgscz1Qcm9taXNlLnJlc29sdmUoZSk7QzxsOylzPXMudGhlbihRW0MrK10sUVtDKytdKTtyZXR1cm4gc31sPW4ubGVuZ3RoO2xldCBhPWU7Zm9yKEM9MDtDPGw7KXtsZXQgUT1uW0MrK10sZj1uW0MrK107dHJ5e2E9UShhKX1jYXRjaChjKXtmLmNhbGwodGhpcyxjKTticmVha319dHJ5e3M9S0EuY2FsbCh0aGlzLGEpfWNhdGNoKFEpe3JldHVybiBQcm9taXNlLnJlamVjdChRKX1mb3IoQz0wLGw9Qi5sZW5ndGg7QzxsOylzPXMudGhlbihCW0MrK10sQltDKytdKTtyZXR1cm4gc31nZXRVcmkodCl7dD1iKHRoaXMuZGVmYXVsdHMsdCk7bGV0IGU9RUEodC5iYXNlVVJMLHQudXJsLHQuYWxsb3dBYnNvbHV0ZVVybHMpO3JldHVybiBuQShlLHQucGFyYW1zLHQucGFyYW1zU2VyaWFsaXplcil9fTtpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwib3B0aW9ucyJdLGZ1bmN0aW9uKHQpe0lBLnByb3RvdHlwZVt0XT1mdW5jdGlvbihlLEkpe3JldHVybiB0aGlzLnJlcXVlc3QoYihJfHx7fSx7bWV0aG9kOnQsdXJsOmUsZGF0YTooSXx8e30pLmRhdGF9KSl9fSk7aS5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShJKXtyZXR1cm4gZnVuY3Rpb24oZyxvLG4pe3JldHVybiB0aGlzLnJlcXVlc3QoYihufHx7fSx7bWV0aG9kOnQsaGVhZGVyczpJP3siQ29udGVudC1UeXBlIjoibXVsdGlwYXJ0L2Zvcm0tZGF0YSJ9Ont9LHVybDpnLGRhdGE6b30pKX19SUEucHJvdG90eXBlW3RdPWUoKSxJQS5wcm90b3R5cGVbdCsiRm9ybSJdPWUoITApfSk7dmFyIGZBPUlBO3ZhciBsdD1jbGFzcyBBe2NvbnN0cnVjdG9yKHQpe2lmKHR5cGVvZiB0IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoImV4ZWN1dG9yIG11c3QgYmUgYSBmdW5jdGlvbi4iKTtsZXQgZTt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24oZyl7ZT1nfSk7bGV0IEk9dGhpczt0aGlzLnByb21pc2UudGhlbihyPT57aWYoIUkuX2xpc3RlbmVycylyZXR1cm47bGV0IGc9SS5fbGlzdGVuZXJzLmxlbmd0aDtmb3IoO2ctLSA+MDspSS5fbGlzdGVuZXJzW2ddKHIpO0kuX2xpc3RlbmVycz1udWxsfSksdGhpcy5wcm9taXNlLnRoZW49cj0+e2xldCBnLG89bmV3IFByb21pc2Uobj0+e0kuc3Vic2NyaWJlKG4pLGc9bn0pLnRoZW4ocik7cmV0dXJuIG8uY2FuY2VsPWZ1bmN0aW9uKCl7SS51bnN1YnNjcmliZShnKX0sb30sdChmdW5jdGlvbihnLG8sbil7SS5yZWFzb258fChJLnJlYXNvbj1uZXcgSChnLG8sbiksZShJLnJlYXNvbikpfSl9dGhyb3dJZlJlcXVlc3RlZCgpe2lmKHRoaXMucmVhc29uKXRocm93IHRoaXMucmVhc29ufXN1YnNjcmliZSh0KXtpZih0aGlzLnJlYXNvbil7dCh0aGlzLnJlYXNvbik7cmV0dXJufXRoaXMuX2xpc3RlbmVycz90aGlzLl9saXN0ZW5lcnMucHVzaCh0KTp0aGlzLl9saXN0ZW5lcnM9W3RdfXVuc3Vic2NyaWJlKHQpe2lmKCF0aGlzLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBlPXRoaXMuX2xpc3RlbmVycy5pbmRleE9mKHQpO2UhPT0tMSYmdGhpcy5fbGlzdGVuZXJzLnNwbGljZShlLDEpfXRvQWJvcnRTaWduYWwoKXtsZXQgdD1uZXcgQWJvcnRDb250cm9sbGVyLGU9ST0+e3QuYWJvcnQoSSl9O3JldHVybiB0aGlzLnN1YnNjcmliZShlKSx0LnNpZ25hbC51bnN1YnNjcmliZT0oKT0+dGhpcy51bnN1YnNjcmliZShlKSx0LnNpZ25hbH1zdGF0aWMgc291cmNlKCl7bGV0IHQ7cmV0dXJue3Rva2VuOm5ldyBBKGZ1bmN0aW9uKHIpe3Q9cn0pLGNhbmNlbDp0fX19LHVlPWx0O2Z1bmN0aW9uIHV0KEEpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gQS5hcHBseShudWxsLGUpfX1mdW5jdGlvbiBkdChBKXtyZXR1cm4gaS5pc09iamVjdChBKSYmQS5pc0F4aW9zRXJyb3I9PT0hMH12YXIgRHQ9e0NvbnRpbnVlOjEwMCxTd2l0Y2hpbmdQcm90b2NvbHM6MTAxLFByb2Nlc3Npbmc6MTAyLEVhcmx5SGludHM6MTAzLE9rOjIwMCxDcmVhdGVkOjIwMSxBY2NlcHRlZDoyMDIsTm9uQXV0aG9yaXRhdGl2ZUluZm9ybWF0aW9uOjIwMyxOb0NvbnRlbnQ6MjA0LFJlc2V0Q29udGVudDoyMDUsUGFydGlhbENvbnRlbnQ6MjA2LE11bHRpU3RhdHVzOjIwNyxBbHJlYWR5UmVwb3J0ZWQ6MjA4LEltVXNlZDoyMjYsTXVsdGlwbGVDaG9pY2VzOjMwMCxNb3ZlZFBlcm1hbmVudGx5OjMwMSxGb3VuZDozMDIsU2VlT3RoZXI6MzAzLE5vdE1vZGlmaWVkOjMwNCxVc2VQcm94eTozMDUsVW51c2VkOjMwNixUZW1wb3JhcnlSZWRpcmVjdDozMDcsUGVybWFuZW50UmVkaXJlY3Q6MzA4LEJhZFJlcXVlc3Q6NDAwLFVuYXV0aG9yaXplZDo0MDEsUGF5bWVudFJlcXVpcmVkOjQwMixGb3JiaWRkZW46NDAzLE5vdEZvdW5kOjQwNCxNZXRob2ROb3RBbGxvd2VkOjQwNSxOb3RBY2NlcHRhYmxlOjQwNixQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NDA3LFJlcXVlc3RUaW1lb3V0OjQwOCxDb25mbGljdDo0MDksR29uZTo0MTAsTGVuZ3RoUmVxdWlyZWQ6NDExLFByZWNvbmRpdGlvbkZhaWxlZDo0MTIsUGF5bG9hZFRvb0xhcmdlOjQxMyxVcmlUb29Mb25nOjQxNCxVbnN1cHBvcnRlZE1lZGlhVHlwZTo0MTUsUmFuZ2VOb3RTYXRpc2ZpYWJsZTo0MTYsRXhwZWN0YXRpb25GYWlsZWQ6NDE3LEltQVRlYXBvdDo0MTgsTWlzZGlyZWN0ZWRSZXF1ZXN0OjQyMSxVbnByb2Nlc3NhYmxlRW50aXR5OjQyMixMb2NrZWQ6NDIzLEZhaWxlZERlcGVuZGVuY3k6NDI0LFRvb0Vhcmx5OjQyNSxVcGdyYWRlUmVxdWlyZWQ6NDI2LFByZWNvbmRpdGlvblJlcXVpcmVkOjQyOCxUb29NYW55UmVxdWVzdHM6NDI5LFJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZTo0MzEsVW5hdmFpbGFibGVGb3JMZWdhbFJlYXNvbnM6NDUxLEludGVybmFsU2VydmVyRXJyb3I6NTAwLE5vdEltcGxlbWVudGVkOjUwMSxCYWRHYXRld2F5OjUwMixTZXJ2aWNlVW5hdmFpbGFibGU6NTAzLEdhdGV3YXlUaW1lb3V0OjUwNCxIdHRwVmVyc2lvbk5vdFN1cHBvcnRlZDo1MDUsVmFyaWFudEFsc29OZWdvdGlhdGVzOjUwNixJbnN1ZmZpY2llbnRTdG9yYWdlOjUwNyxMb29wRGV0ZWN0ZWQ6NTA4LE5vdEV4dGVuZGVkOjUxMCxOZXR3b3JrQXV0aGVudGljYXRpb25SZXF1aXJlZDo1MTF9O09iamVjdC5lbnRyaWVzKER0KS5mb3JFYWNoKChbQSx0XSk9PntEdFt0XT1BfSk7dmFyIGRlPUR0O2Z1bmN0aW9uIERlKEEpe2xldCB0PW5ldyBmQShBKSxlPW9BKGZBLnByb3RvdHlwZS5yZXF1ZXN0LHQpO3JldHVybiBpLmV4dGVuZChlLGZBLnByb3RvdHlwZSx0LHthbGxPd25LZXlzOiEwfSksaS5leHRlbmQoZSx0LG51bGwse2FsbE93bktleXM6ITB9KSxlLmNyZWF0ZT1mdW5jdGlvbihyKXtyZXR1cm4gRGUoYihBLHIpKX0sZX12YXIgbT1EZShBQSk7bS5BeGlvcz1mQTttLkNhbmNlbGVkRXJyb3I9SDttLkNhbmNlbFRva2VuPXVlO20uaXNDYW5jZWw9YUE7bS5WRVJTSU9OPU9BO20udG9Gb3JtRGF0YT1UO20uQXhpb3NFcnJvcj11O20uQ2FuY2VsPW0uQ2FuY2VsZWRFcnJvcjttLmFsbD1mdW5jdGlvbih0KXtyZXR1cm4gUHJvbWlzZS5hbGwodCl9O20uc3ByZWFkPXV0O20uaXNBeGlvc0Vycm9yPWR0O20ubWVyZ2VDb25maWc9YjttLkF4aW9zSGVhZGVycz1wO20uZm9ybVRvSlNPTj1BPT5KQShpLmlzSFRNTEZvcm0oQSk/bmV3IEZvcm1EYXRhKEEpOkEpO20uZ2V0QWRhcHRlcj1NQS5nZXRBZGFwdGVyO20uSHR0cFN0YXR1c0NvZGU9ZGU7bS5kZWZhdWx0PW07dmFyIHhBPW07dmFye0F4aW9zOlJpLEF4aW9zRXJyb3I6TmksQ2FuY2VsZWRFcnJvcjpVaSxpc0NhbmNlbDpHaSxDYW5jZWxUb2tlbjpraSxWRVJTSU9OOkxpLGFsbDpiaSxDYW5jZWw6SmksaXNBeGlvc0Vycm9yOkhpLHNwcmVhZDpZaSx0b0Zvcm1EYXRhOnFpLEF4aW9zSGVhZGVyczpNaSxIdHRwU3RhdHVzQ29kZTpLaSxmb3JtVG9KU09OOk9pLGdldEFkYXB0ZXI6VGksbWVyZ2VDb25maWc6eGl9PXhBO3ZhciBsQSxNLHl0LGh0PXtlbnY6e2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGg6ZnVuY3Rpb24oQSl7eXQ9bmV3IFVpbnQ4QXJyYXkoTS5leHBvcnRzLm1lbW9yeS5idWZmZXIpfX19LFBBPWNsYXNze2luaXQoKXtyZXR1cm4gbEF8fCh0eXBlb2YgZmV0Y2g8InUiP2xBPWZldGNoKCJkYXRhOmFwcGxpY2F0aW9uL3dhc207YmFzZTY0LCIraGUpLnRoZW4odD0+dC5hcnJheUJ1ZmZlcigpKS50aGVuKHQ9PldlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKHQsaHQpKS50aGVuKHRoaXMuX2luaXQpOmxBPVdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEJ1ZmZlci5mcm9tKGhlLCJiYXNlNjQiKSxodCkudGhlbih0aGlzLl9pbml0KSxsQSl9X2luaXQodCl7TT10Lmluc3RhbmNlLGh0LmVudi5lbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoKDApfWRlY29kZSh0LGU9MCl7aWYoIU0pdGhyb3cgbmV3IEVycm9yKCJaU1RERGVjb2RlcjogQXdhaXQgLmluaXQoKSBiZWZvcmUgZGVjb2RpbmcuIik7bGV0IEk9dC5ieXRlTGVuZ3RoLHI9TS5leHBvcnRzLm1hbGxvYyhJKTt5dC5zZXQodCxyKSxlPWV8fE51bWJlcihNLmV4cG9ydHMuWlNURF9maW5kRGVjb21wcmVzc2VkU2l6ZShyLEkpKTtsZXQgZz1NLmV4cG9ydHMubWFsbG9jKGUpLG89TS5leHBvcnRzLlpTVERfZGVjb21wcmVzcyhnLGUscixJKSxuPXl0LnNsaWNlKGcsZytvKTtyZXR1cm4gTS5leHBvcnRzLmZyZWUociksTS5leHBvcnRzLmZyZWUoZyksbn19LGhlPSJBR0Z6YlFFQUFBQUJiZzVnQTM5L2Z3Ri9ZQUYvQVg5Z0FuOS9BR0FCZndCZ0JYOS9mMzkvQVg5Z0EzOS9md0JnQkg5L2YzOEJmMkFBQVg5Z0FuOS9BWDlnQjM5L2YzOS9mMzhCZjJBQ2YzOEJmbUFJZjM5L2YzOS9mMzhCZjJBRmYzOS9mMzhBWUE1L2YzOS9mMzkvZjM5L2YzOS9md0YvQWljQkEyVnVkaDlsYlhOamNtbHdkR1Z1WDI1dmRHbG1lVjl0WlcxdmNubGZaM0p2ZDNSb0FBTURJeUlIQUFBQkFRTUhBd0VBQ1FRQUJRRUlDQUVGQmdRRUJBTUdBQUFLQUFVTERBMEdCQVVCY0FFQkFRVUhBUUdBQW9DQUFnWUlBWDhCUVlDakJBc0hyZ0VMQm0xbGJXOXllUUlBQm0xaGJHeHZZd0FGQkdaeVpXVUFCZ3hhVTFSRVgybHpSWEp5YjNJQUVobGFVMVJFWDJacGJtUkVaV052YlhCeVpYTnpaV1JUYVhwbEFCd1BXbE5VUkY5a1pXTnZiWEJ5WlhOekFDSVpYMTlwYm1ScGNtVmpkRjltZFc1amRHbHZibDkwWVdKc1pRRUFFRjlmWlhKeWJtOWZiRzlqWVhScGIyNEFBUWx6ZEdGamExTmhkbVVBQnd4emRHRmphMUpsYzNSdmNtVUFDQXB6ZEdGamEwRnNiRzlqQUFrS2kvSUJJZ1VBUVlRZkN6TUJBWDhnQWdSQUlBQWhBd05BSUFNZ0FTMEFBRG9BQUNBRFFRRnFJUU1nQVVFQmFpRUJJQUpCQVdzaUFnMEFDd3NnQUFzcEFRRi9JQUlFUUNBQUlRTURRQ0FESUFFNkFBQWdBMEVCYWlFRElBSkJBV3NpQWcwQUN3c2dBQXRzQVFKL1FZQWZLQUlBSWdFZ0FFRUhha0Y0Y1NJQ2FpRUFBa0FnQWtFQUlBQWdBVTBiRFFBZ0FEOEFRUkIwU3dSQUlBQS9BRUVRZEd0Qi8vOERha0VRZGtBQVFYOUdCSDlCQUFWQkFCQUFRUUVMUlEwQkMwR0FIeUFBTmdJQUlBRVBDMEdFSDBFd05nSUFRWDhMdVNjQkMzOGpBRUVRYXlJS0pBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQUJCOUFGTkJFQkJpQjhvQWdBaUJrRVFJQUJCQzJwQmVIRWdBRUVMU1JzaUJVRURkaUlBZGlJQlFRTnhCRUFDUUNBQlFYOXpRUUZ4SUFCcUlnSkJBM1FpQVVHd0gyb2lBQ0FCUWJnZmFpZ0NBQ0lCS0FJSUlnUkdCRUJCaUI4Z0JrRitJQUozY1RZQ0FBd0JDeUFFSUFBMkFnd2dBQ0FFTmdJSUN5QUJRUWhxSVFBZ0FTQUNRUU4wSWdKQkEzSTJBZ1FnQVNBQ2FpSUJJQUVvQWdSQkFYSTJBZ1FNRHdzZ0JVR1FIeWdDQUNJSFRRMEJJQUVFUUFKQVFRSWdBSFFpQWtFQUlBSnJjaUFCSUFCMGNXZ2lBVUVEZENJQVFiQWZhaUlDSUFCQnVCOXFLQUlBSWdBb0FnZ2lCRVlFUUVHSUh5QUdRWDRnQVhkeElnWTJBZ0FNQVFzZ0JDQUNOZ0lNSUFJZ0JEWUNDQXNnQUNBRlFRTnlOZ0lFSUFBZ0JXb2lDQ0FCUVFOMElnRWdCV3NpQkVFQmNqWUNCQ0FBSUFGcUlBUTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRRkJuQjhvQWdBaEFnSi9JQVpCQVNBSFFRTjJkQ0lEY1VVRVFFR0lIeUFESUFaeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQXlBQklBSTJBZ2dnQXlBQ05nSU1JQUlnQVRZQ0RDQUNJQU0yQWdnTElBQkJDR29oQUVHY0h5QUlOZ0lBUVpBZklBUTJBZ0FNRHd0QmpCOG9BZ0FpQzBVTkFTQUxhRUVDZEVHNElXb29BZ0FpQWlnQ0JFRjRjU0FGYXlFRElBSWhBUU5BQWtBZ0FTZ0NFQ0lBUlFSQUlBRW9BaFFpQUVVTkFRc2dBQ2dDQkVGNGNTQUZheUlCSUFNZ0FTQURTU0lCR3lFRElBQWdBaUFCR3lFQ0lBQWhBUXdCQ3dzZ0FpZ0NHQ0VKSUFJZ0FpZ0NEQ0lFUndSQVFaZ2ZLQUlBR2lBQ0tBSUlJZ0FnQkRZQ0RDQUVJQUEyQWdnTURnc2dBa0VVYWlJQktBSUFJZ0JGQkVBZ0FpZ0NFQ0lBUlEwRElBSkJFR29oQVFzRFFDQUJJUWdnQUNJRVFSUnFJZ0VvQWdBaUFBMEFJQVJCRUdvaEFTQUVLQUlRSWdBTkFBc2dDRUVBTmdJQURBMExRWDhoQlNBQVFiOS9TdzBBSUFCQkMyb2lBRUY0Y1NFRlFZd2ZLQUlBSWdoRkRRQkJBQ0FGYXlFREFrQUNRQUpBQW45QkFDQUZRWUFDU1EwQUdrRWZJQVZCLy8vL0Iwc05BQm9nQlVFbUlBQkJDSFpuSWdCcmRrRUJjU0FBUVFGMGEwRSthZ3NpQjBFQ2RFRzRJV29vQWdBaUFVVUVRRUVBSVFBTUFRdEJBQ0VBSUFWQkdTQUhRUUYyYTBFQUlBZEJIMGNiZENFQ0EwQUNRQ0FCS0FJRVFYaHhJQVZySWdZZ0EwOE5BQ0FCSVFRZ0JpSUREUUJCQUNFRElBRWhBQXdEQ3lBQUlBRW9BaFFpQmlBR0lBRWdBa0VkZGtFRWNXb29BaEFpQVVZYklBQWdCaHNoQUNBQ1FRRjBJUUlnQVEwQUN3c2dBQ0FFY2tVRVFFRUFJUVJCQWlBSGRDSUFRUUFnQUd0eUlBaHhJZ0JGRFFNZ0FHaEJBblJCdUNGcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJQ0lBTkpJUUVnQWlBRElBRWJJUU1nQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBRFFaQWZLQUlBSUFWclR3MEFJQVFvQWhnaEJ5QUVJQVFvQWd3aUFrY0VRRUdZSHlnQ0FCb2dCQ2dDQ0NJQUlBSTJBZ3dnQWlBQU5nSUlEQXdMSUFSQkZHb2lBU2dDQUNJQVJRUkFJQVFvQWhBaUFFVU5BeUFFUVJCcUlRRUxBMEFnQVNFR0lBQWlBa0VVYWlJQktBSUFJZ0FOQUNBQ1FSQnFJUUVnQWlnQ0VDSUFEUUFMSUFaQkFEWUNBQXdMQ3lBRlFaQWZLQUlBSWdSTkJFQkJuQjhvQWdBaEFBSkFJQVFnQldzaUFVRVFUd1JBSUFBZ0JXb2lBaUFCUVFGeU5nSUVJQUFnQkdvZ0FUWUNBQ0FBSUFWQkEzSTJBZ1FNQVFzZ0FDQUVRUU55TmdJRUlBQWdCR29pQVNBQktBSUVRUUZ5TmdJRVFRQWhBa0VBSVFFTFFaQWZJQUUyQWdCQm5COGdBallDQUNBQVFRaHFJUUFNRFFzZ0JVR1VIeWdDQUNJQ1NRUkFRWlFmSUFJZ0JXc2lBVFlDQUVHZ0gwR2dIeWdDQUNJQUlBVnFJZ0kyQWdBZ0FpQUJRUUZ5TmdJRUlBQWdCVUVEY2pZQ0JDQUFRUWhxSVFBTURRdEJBQ0VBSUFWQkwyb2lBd0ovUWVBaUtBSUFCRUJCNkNJb0FnQU1BUXRCN0NKQ2Z6Y0NBRUhrSWtLQW9JQ0FnSUFFTndJQVFlQWlJQXBCREdwQmNIRkIyS3JWcWdWek5nSUFRZlFpUVFBMkFnQkJ4Q0pCQURZQ0FFR0FJQXNpQVdvaUJrRUFJQUZySWdoeElnRWdCVTBOREVIQUlpZ0NBQ0lFQkVCQnVDSW9BZ0FpQnlBQmFpSUpJQWROSUFRZ0NVbHlEUTBMQWtCQnhDSXRBQUJCQkhGRkJFQUNRQUpBQWtBQ1FFR2dIeWdDQUNJRUJFQkJ5Q0loQUFOQUlBUWdBQ2dDQUNJSFR3UkFJQWNnQUNnQ0JHb2dCRXNOQXdzZ0FDZ0NDQ0lBRFFBTEMwRUFFQVFpQWtGL1JnMERJQUVoQmtIa0lpZ0NBQ0lBUVFGcklnUWdBbkVFUUNBQklBSnJJQUlnQkdwQkFDQUFhM0ZxSVFZTElBVWdCazhOQTBIQUlpZ0NBQ0lBQkVCQnVDSW9BZ0FpQkNBR2FpSUlJQVJOSUFBZ0NFbHlEUVFMSUFZUUJDSUFJQUpIRFFFTUJRc2dCaUFDYXlBSWNTSUdFQVFpQWlBQUtBSUFJQUFvQWdScVJnMEJJQUloQUFzZ0FFRi9SZzBCSUFWQk1Hb2dCazBFUUNBQUlRSU1CQXRCNkNJb0FnQWlBaUFESUFacmFrRUFJQUpyY1NJQ0VBUkJmMFlOQVNBQ0lBWnFJUVlnQUNFQ0RBTUxJQUpCZjBjTkFndEJ4Q0pCeENJb0FnQkJCSEkyQWdBTElBRVFCQ0lDUVg5R1FRQVFCQ0lBUVg5R2NpQUFJQUpOY2cwRklBQWdBbXNpQmlBRlFTaHFUUTBGQzBHNElrRzRJaWdDQUNBR2FpSUFOZ0lBUWJ3aUtBSUFJQUJKQkVCQnZDSWdBRFlDQUFzQ1FFR2dIeWdDQUNJREJFQkJ5Q0loQUFOQUlBSWdBQ2dDQUNJQklBQW9BZ1FpQkdwR0RRSWdBQ2dDQ0NJQURRQUxEQVFMUVpnZktBSUFJZ0JCQUNBQUlBSk5HMFVFUUVHWUh5QUNOZ0lBQzBFQUlRQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFhZ2ZRWDgyQWdCQnJCOUI0Q0lvQWdBMkFnQkIxQ0pCQURZQ0FBTkFJQUJCQTNRaUFVRzRIMm9nQVVHd0gyb2lCRFlDQUNBQlFid2ZhaUFFTmdJQUlBQkJBV29pQUVFZ1J3MEFDMEdVSHlBR1FTaHJJZ0JCZUNBQ2EwRUhjU0lCYXlJRU5nSUFRYUFmSUFFZ0Ftb2lBVFlDQUNBQklBUkJBWEkyQWdRZ0FDQUNha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQVFMSUFJZ0EwMGdBU0FEUzNJTkFpQUFLQUlNUVFoeERRSWdBQ0FFSUFacU5nSUVRYUFmSUFOQmVDQURhMEVIY1NJQWFpSUJOZ0lBUVpRZlFaUWZLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFNTFFRQWhCQXdLQzBFQUlRSU1DQXRCbUI4b0FnQWdBa3NFUUVHWUh5QUNOZ0lBQ3lBQ0lBWnFJUUZCeUNJaEFBSkFBa0FDUUFOQUlBRWdBQ2dDQUVjRVFDQUFLQUlJSWdBTkFRd0NDd3NnQUMwQURFRUljVVVOQVF0QnlDSWhBQU5BSUFNZ0FDZ0NBQ0lCVHdSQUlBRWdBQ2dDQkdvaUJDQURTdzBEQ3lBQUtBSUlJUUFNQUFzQUN5QUFJQUkyQWdBZ0FDQUFLQUlFSUFacU5nSUVJQUpCZUNBQ2EwRUhjV29pQnlBRlFRTnlOZ0lFSUFGQmVDQUJhMEVIY1dvaUJpQUZJQWRxSWdWcklRQWdBeUFHUmdSQVFhQWZJQVUyQWdCQmxCOUJsQjhvQWdBZ0FHb2lBRFlDQUNBRklBQkJBWEkyQWdRTUNBdEJuQjhvQWdBZ0JrWUVRRUdjSHlBRk5nSUFRWkFmUVpBZktBSUFJQUJxSWdBMkFnQWdCU0FBUVFGeU5nSUVJQUFnQldvZ0FEWUNBQXdJQ3lBR0tBSUVJZ05CQTNGQkFVY05CaUFEUVhoeElRa2dBMEgvQVUwRVFDQUdLQUlNSWdFZ0JpZ0NDQ0lDUmdSQVFZZ2ZRWWdmS0FJQVFYNGdBMEVEZG5keE5nSUFEQWNMSUFJZ0FUWUNEQ0FCSUFJMkFnZ01CZ3NnQmlnQ0dDRUlJQVlnQmlnQ0RDSUNSd1JBSUFZb0FnZ2lBU0FDTmdJTUlBSWdBVFlDQ0F3RkN5QUdRUlJxSWdFb0FnQWlBMFVFUUNBR0tBSVFJZ05GRFFRZ0JrRVFhaUVCQ3dOQUlBRWhCQ0FESWdKQkZHb2lBU2dDQUNJRERRQWdBa0VRYWlFQklBSW9BaEFpQXcwQUN5QUVRUUEyQWdBTUJBdEJsQjhnQmtFb2F5SUFRWGdnQW10QkIzRWlBV3NpQ0RZQ0FFR2dIeUFCSUFKcUlnRTJBZ0FnQVNBSVFRRnlOZ0lFSUFBZ0FtcEJLRFlDQkVHa0gwSHdJaWdDQURZQ0FDQURJQVJCSnlBRWEwRUhjV3BCTDJzaUFDQUFJQU5CRUdwSkd5SUJRUnMyQWdRZ0FVSFFJaWtDQURjQ0VDQUJRY2dpS1FJQU53SUlRZEFpSUFGQkNHbzJBZ0JCekNJZ0JqWUNBRUhJSWlBQ05nSUFRZFFpUVFBMkFnQWdBVUVZYWlFQUEwQWdBRUVITmdJRUlBQkJDR29nQUVFRWFpRUFJQVJKRFFBTElBRWdBMFlOQUNBQklBRW9BZ1JCZm5FMkFnUWdBeUFCSUFOcklnSkJBWEkyQWdRZ0FTQUNOZ0lBSUFKQi93Rk5CRUFnQWtGNGNVR3dIMm9oQUFKL1FZZ2ZLQUlBSWdGQkFTQUNRUU4yZENJQ2NVVUVRRUdJSHlBQklBSnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEFTQUFJQU0yQWdnZ0FTQUROZ0lNSUFNZ0FEWUNEQ0FESUFFMkFnZ01BUXRCSHlFQUlBSkIvLy8vQjAwRVFDQUNRU1lnQWtFSWRtY2lBR3QyUVFGeElBQkJBWFJyUVQ1cUlRQUxJQU1nQURZQ0hDQURRZ0EzQWhBZ0FFRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlCRUVCSUFCMElnWnhSUVJBUVl3ZklBUWdCbkkyQWdBZ0FTQUROZ0lBREFFTElBSkJHU0FBUVFGMmEwRUFJQUJCSDBjYmRDRUFJQUVvQWdBaEJBTkFJQVFpQVNnQ0JFRjRjU0FDUmcwQ0lBQkJIWFloQkNBQVFRRjBJUUFnQVNBRVFRUnhhaUlHS0FJUUlnUU5BQXNnQmlBRE5nSVFDeUFESUFFMkFoZ2dBeUFETmdJTUlBTWdBellDQ0F3QkN5QUJLQUlJSWdBZ0F6WUNEQ0FCSUFNMkFnZ2dBMEVBTmdJWUlBTWdBVFlDRENBRElBQTJBZ2dMUVpRZktBSUFJZ0FnQlUwTkFFR1VIeUFBSUFWcklnRTJBZ0JCb0I5Qm9COG9BZ0FpQUNBRmFpSUNOZ0lBSUFJZ0FVRUJjallDQkNBQUlBVkJBM0kyQWdRZ0FFRUlhaUVBREFnTFFZUWZRVEEyQWdCQkFDRUFEQWNMUVFBaEFnc2dDRVVOQUFKQUlBWW9BaHdpQVVFQ2RFRzRJV29pQkNnQ0FDQUdSZ1JBSUFRZ0FqWUNBQ0FDRFFGQmpCOUJqQjhvQWdCQmZpQUJkM0UyQWdBTUFnc2dDRUVRUVJRZ0NDZ0NFQ0FHUmh0cUlBSTJBZ0FnQWtVTkFRc2dBaUFJTmdJWUlBWW9BaEFpQVFSQUlBSWdBVFlDRUNBQklBSTJBaGdMSUFZb0FoUWlBVVVOQUNBQ0lBRTJBaFFnQVNBQ05nSVlDeUFBSUFscUlRQWdCaUFKYWlJR0tBSUVJUU1MSUFZZ0EwRitjVFlDQkNBRklBQkJBWEkyQWdRZ0FDQUZhaUFBTmdJQUlBQkIvd0ZOQkVBZ0FFRjRjVUd3SDJvaEFRSi9RWWdmS0FJQUlnSkJBU0FBUVFOMmRDSUFjVVVFUUVHSUh5QUFJQUp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBQ0FCSUFVMkFnZ2dBQ0FGTmdJTUlBVWdBVFlDRENBRklBQTJBZ2dNQVF0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFVZ0F6WUNIQ0FGUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQWtFQklBTjBJZ1J4UlFSQVFZd2ZJQUlnQkhJMkFnQWdBU0FGTmdJQURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBZ05BSUFJaUFTZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFpQURRUUYwSVFNZ0FTQUNRUVJ4YWlJRUtBSVFJZ0lOQUFzZ0JDQUZOZ0lRQ3lBRklBRTJBaGdnQlNBRk5nSU1JQVVnQlRZQ0NBd0JDeUFCS0FJSUlnQWdCVFlDRENBQklBVTJBZ2dnQlVFQU5nSVlJQVVnQVRZQ0RDQUZJQUEyQWdnTElBZEJDR29oQUF3Q0N3SkFJQWRGRFFBQ1FDQUVLQUljSWdCQkFuUkJ1Q0ZxSWdFb0FnQWdCRVlFUUNBQklBSTJBZ0FnQWcwQlFZd2ZJQWhCZmlBQWQzRWlDRFlDQUF3Q0N5QUhRUkJCRkNBSEtBSVFJQVJHRzJvZ0FqWUNBQ0FDUlEwQkN5QUNJQWMyQWhnZ0JDZ0NFQ0lBQkVBZ0FpQUFOZ0lRSUFBZ0FqWUNHQXNnQkNnQ0ZDSUFSUTBBSUFJZ0FEWUNGQ0FBSUFJMkFoZ0xBa0FnQTBFUFRRUkFJQVFnQXlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnSWdBMEVCY2pZQ0JDQUNJQU5xSUFNMkFnQWdBMEgvQVUwRVFDQURRWGh4UWJBZmFpRUFBbjlCaUI4b0FnQWlBVUVCSUFOQkEzWjBJZ054UlFSQVFZZ2ZJQUVnQTNJMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0FqWUNDQ0FCSUFJMkFnd2dBaUFBTmdJTUlBSWdBVFlDQ0F3QkMwRWZJUUFnQTBILy8vOEhUUVJBSUFOQkppQURRUWgyWnlJQWEzWkJBWEVnQUVFQmRHdEJQbW9oQUFzZ0FpQUFOZ0ljSUFKQ0FEY0NFQ0FBUVFKMFFiZ2hhaUVCQWtBQ1FDQUlRUUVnQUhRaUJuRkZCRUJCakI4Z0JpQUljallDQUNBQklBSTJBZ0FNQVFzZ0EwRVpJQUJCQVhaclFRQWdBRUVmUnh0MElRQWdBU2dDQUNFRkEwQWdCU0lCS0FJRVFYaHhJQU5HRFFJZ0FFRWRkaUVHSUFCQkFYUWhBQ0FCSUFaQkJIRnFJZ1lvQWhBaUJRMEFDeUFHSUFJMkFoQUxJQUlnQVRZQ0dDQUNJQUkyQWd3Z0FpQUNOZ0lJREFFTElBRW9BZ2dpQUNBQ05nSU1JQUVnQWpZQ0NDQUNRUUEyQWhnZ0FpQUJOZ0lNSUFJZ0FEWUNDQXNnQkVFSWFpRUFEQUVMQWtBZ0NVVU5BQUpBSUFJb0Fod2lBRUVDZEVHNElXb2lBU2dDQUNBQ1JnUkFJQUVnQkRZQ0FDQUVEUUZCakI4Z0MwRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFKR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBaWdDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FpZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFJZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQW1vaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFJZ0JVRURjallDQkNBQ0lBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRQkJuQjhvQWdBaEFRSi9RUUVnQjBFRGRuUWlCU0FHY1VVRVFFR0lIeUFGSUFaeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQmlBQUlBRTJBZ2dnQmlBQk5nSU1JQUVnQURZQ0RDQUJJQVkyQWdnTFFad2ZJQVEyQWdCQmtCOGdBellDQUFzZ0FrRUlhaUVBQ3lBS1FSQnFKQUFnQUF2U0N3RUhmd0pBSUFCRkRRQWdBRUVJYXlJQ0lBQkJCR3NvQWdBaUFVRjRjU0lBYWlFRkFrQWdBVUVCY1EwQUlBRkJBM0ZGRFFFZ0FpQUNLQUlBSWdGcklnSkJtQjhvQWdCSkRRRWdBQ0FCYWlFQUFrQUNRRUdjSHlnQ0FDQUNSd1JBSUFGQi93Rk5CRUFnQVVFRGRpRUVJQUlvQWd3aUFTQUNLQUlJSWdOR0JFQkJpQjlCaUI4b0FnQkJmaUFFZDNFMkFnQU1CUXNnQXlBQk5nSU1JQUVnQXpZQ0NBd0VDeUFDS0FJWUlRWWdBaUFDS0FJTUlnRkhCRUFnQWlnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBSkJGR29pQkNnQ0FDSURSUVJBSUFJb0FoQWlBMFVOQWlBQ1FSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZLQUlFSWdGQkEzRkJBMGNOQWtHUUh5QUFOZ0lBSUFVZ0FVRitjVFlDQkNBQ0lBQkJBWEkyQWdRZ0JTQUFOZ0lBRHd0QkFDRUJDeUFHUlEwQUFrQWdBaWdDSENJRFFRSjBRYmdoYWlJRUtBSUFJQUpHQkVBZ0JDQUJOZ0lBSUFFTkFVR01IMEdNSHlnQ0FFRitJQU4zY1RZQ0FBd0NDeUFHUVJCQkZDQUdLQUlRSUFKR0cyb2dBVFlDQUNBQlJRMEJDeUFCSUFZMkFoZ2dBaWdDRUNJREJFQWdBU0FETmdJUUlBTWdBVFlDR0FzZ0FpZ0NGQ0lEUlEwQUlBRWdBellDRkNBRElBRTJBaGdMSUFJZ0JVOE5BQ0FGS0FJRUlnRkJBWEZGRFFBQ1FBSkFBa0FDUUNBQlFRSnhSUVJBUWFBZktBSUFJQVZHQkVCQm9COGdBallDQUVHVUgwR1VIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQ1Fad2ZLQUlBUncwR1FaQWZRUUEyQWdCQm5COUJBRFlDQUE4TFFad2ZLQUlBSUFWR0JFQkJuQjhnQWpZQ0FFR1FIMEdRSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUFJQUpxSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFnQVVIL0FVMEVRQ0FCUVFOMklRUWdCU2dDRENJQklBVW9BZ2dpQTBZRVFFR0lIMEdJSHlnQ0FFRitJQVIzY1RZQ0FBd0ZDeUFESUFFMkFnd2dBU0FETmdJSURBUUxJQVVvQWhnaEJpQUZJQVVvQWd3aUFVY0VRRUdZSHlnQ0FCb2dCU2dDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFWQkZHb2lCQ2dDQUNJRFJRUkFJQVVvQWhBaUEwVU5BaUFGUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRklBRkJmbkUyQWdRZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FBd0RDMEVBSVFFTElBWkZEUUFDUUNBRktBSWNJZ05CQW5SQnVDRnFJZ1FvQWdBZ0JVWUVRQ0FFSUFFMkFnQWdBUTBCUVl3ZlFZd2ZLQUlBUVg0Z0EzZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ01FUUNBQklBTTJBaEFnQXlBQk5nSVlDeUFGS0FJVUlnTkZEUUFnQVNBRE5nSVVJQU1nQVRZQ0dBc2dBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQ0FDUVp3ZktBSUFSdzBBUVpBZklBQTJBZ0FQQ3lBQVFmOEJUUVJBSUFCQmVIRkJzQjlxSVFFQ2YwR0lIeWdDQUNJRFFRRWdBRUVEZG5RaUFIRkZCRUJCaUI4Z0FDQURjallDQUNBQkRBRUxJQUVvQWdnTElRQWdBU0FDTmdJSUlBQWdBallDRENBQ0lBRTJBZ3dnQWlBQU5nSUlEd3RCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQUlnQXpZQ0hDQUNRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0FDUUVHTUh5Z0NBQ0lFUVFFZ0EzUWlCM0ZGQkVCQmpCOGdCQ0FIY2pZQ0FDQUJJQUkyQWdBZ0FpQUJOZ0lZREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFRTkFJQUVpQkNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQVNBRFFRRjBJUU1nQkNBQlFRUnhhaUlIUVJCcUtBSUFJZ0VOQUFzZ0J5QUNOZ0lRSUFJZ0JEWUNHQXNnQWlBQ05nSU1JQUlnQWpZQ0NBd0JDeUFFS0FJSUlnQWdBallDRENBRUlBSTJBZ2dnQWtFQU5nSVlJQUlnQkRZQ0RDQUNJQUEyQWdnTFFhZ2ZRYWdmS0FJQVFRRnJJZ0JCZnlBQUd6WUNBQXNMQkFBakFBc0dBQ0FBSkFBTEVBQWpBQ0FBYTBGd2NTSUFKQUFnQUF0S0FRRi9JQUFnQVVrRVFDQUFJQUVnQWhBQ0R3c2dBZ1JBSUFBZ0Ftb2hBeUFCSUFKcUlRRURRQ0FEUVFGcklnTWdBVUVCYXlJQkxRQUFPZ0FBSUFKQkFXc2lBZzBBQ3dzZ0FBdjlEZ0lSZndGK0l3QkJNR3NpQnlRQVFiaC9JUWdDUUNBRlJRMEFJQVFzQUFBaUNVSC9BWEVoQ3dKQUlBbEJBRWdFUUNBTFFmNEFhMEVCZGlJR0lBVlBEUUpCYkNFSUlBdEIvd0JySWd0Qi93RkxEUUlnQkVFQmFpRUlRUUFoQlFOQUlBVWdDMDhFUUNBTElRZ2dCaUVMREFNRklBQWdCV29nQ0NBRlFRRjJhaUlFTFFBQVFRUjJPZ0FBSUFBZ0JVRUJjbW9nQkMwQUFFRVBjVG9BQUNBRlFRSnFJUVVNQVFzQUN3QUxJQVVnQzAwTkFTQUhRZjhCTmdJRUlBWWdCMEVFYWlBSFFRaHFJQVJCQVdvaURpQUxFQXdpQkVHSWYwc0VRQ0FFSVFnTUFndEJWQ0VJSUFjb0FnZ2lFRUVHU3cwQklBY29BZ1FpRVVFQmRDSUpRUUpxclVJQklCQ3RoaUlZUVFFZ0VIUWlEVUVCYWlJRnJVSUNobng4UWd0OFF2ei8vLy8vLy8vLy93Q0RRdVFDVmcwQlFWSWhDQ0FSUWY4QlN3MEJJQTFCZjNOQkFuUkI1QUpxclNBUlFRRnFJaFZCQVhTdElCaDhRZ2g4VkEwQklBc2dCR3NoRmlBRUlBNXFJUmNnQmtHQUJHb2lFaUFGUVFKMGFpSVJJQWxxUVFKcUlRNGdCa0dFQkdvaEUwR0FnQUlnRUhSQkVIWWhDVUVBSVFWQkFTRVBJQTFCQVdzaUZDRUtBMEFnQlNBVlJrVUVRQUpBSUFZZ0JVRUJkQ0lJYWk4QkFDSUVRZi8vQTBZRVFDQVRJQXBCQW5ScUlBVTZBQUlnQ2tFQmF5RUtRUUVoQkF3QkN5QVBRUUFnQ1NBRXdVb2JJUThMSUFnZ0VXb2dCRHNCQUNBRlFRRnFJUVVNQVFzTElBWWdEenNCZ2dRZ0JpQVFPd0dBQkFKQUlBb2dGRVlFUUNBTlFRTjJJUWhDQUNFWVFRQWhEd05BSUF3Z0ZVWUVRQ0FJSUExQkFYWnFRUU5xSWdsQkFYUWhDRUVBSVFSQkFDRUtBMEJCQUNFRklBb2dEVThOQkFOQUlBVkJBa1pGQkVBZ0V5QUZJQWxzSUFScUlCUnhRUUowYWlBT0lBVWdDbXBxTFFBQU9nQUNJQVZCQVdvaEJRd0JDd3NnQ2tFQ2FpRUtJQVFnQ0dvZ0ZIRWhCQXdBQ3dBRklBWWdERUVCZEdvdUFRQWhDU0FPSUE5cUlnUWdHRGNBQUVFSUlRVURRQ0FGSUFsT1JRUkFJQVFnQldvZ0dEY0FBQ0FGUVFocUlRVU1BUXNMSUJoQ2dZS0VpSkNnd0lBQmZDRVlJQXhCQVdvaERDQUpJQTlxSVE4TUFRc0FDd0FMSUExQkEzWWdEVUVCZG1wQkEyb2hDRUVBSVFVRFFDQU1JQlZHUlFSQVFRQWhDU0FHSUF4QkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FKUmtVRVFDQVRJQVZCQW5ScUlBdzZBQUlEUUNBRklBaHFJQlJ4SWdVZ0Nrc05BQXNnQ1VFQmFpRUpEQUVMQ3lBTVFRRnFJUXdNQVFzTFFYOGhDQ0FGRFFJTElCQkJBV29oQ0VFQUlRVURRQ0FGSUExR1JRUkFJQkVnRXlBRlFRSjBhaUlPTFFBQ1FRRjBhaUlFSUFRdkFRQWlDVUVCYWpzQkFDQU9JQWdnQ1dkQllITnFJZ1E2QUFNZ0RpQUpJQVIwSUExck93RUFJQVZCQVdvaEJRd0JDd3NDUUFKQUlBWXZBWUlFQkVBZ0IwRWNhaUlFSUJjZ0ZoQU5JZ2hCaUg5TERRSWdCMEVVYWlBRUlCSVFEaUFIUVF4cUlBUWdFaEFPUVFBaEJRTkFJQWRCSEdvaUJCQVBJQVZCK3dGTGNnMENJQUFnQldvaUJpQUhRUlJxSUFRUUVEb0FBQ0FHSUFkQkRHb2dCQkFRT2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVU1Bd1VnQUNBRWFpQUhRUlJxSUFkQkhHb2lCQkFRT2dBQUlBWWdCMEVNYWlBRUVCQTZBQU1nQlVFRWFpRUZEQUVMQUFzQUN5QUhRUnhxSWdRZ0Z5QVdFQTBpQ0VHSWYwc05BU0FIUVJScUlBUWdFaEFPSUFkQkRHb2dCQ0FTRUE1QkFDRUZBMEFnQjBFY2FpSUVFQThnQlVIN0FVdHlSUVJBSUFBZ0JXb2lCaUFIUVJScUlBUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVGSUFBZ0JHb2dCMEVVYWlBSFFSeHFJZ1FRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FESUFWQkJHb2hCUXdDQ3dzTEFuOERRRUc2ZnlFSUlBVkIvUUZMRFFNZ0FDQUZhaUlHSUFkQkZHb2dCMEVjYWlJSkVCRTZBQUFnQmtFQmFpRUVJQWtRRDBFRFJnUkFJQWRCREdvaENFRUNEQUlMSUFWQi9BRkxEUU1nQmlBSFFReHFJQWRCSEdvaUJCQVJPZ0FCSUFWQkFtb2hCU0FFRUE5QkEwY05BQXNnQUNBRmFpRUVJQWRCRkdvaENFRURDeUFFSUFnZ0IwRWNhaEFST2dBQUlBWnFJQUJySVFnTUFRc0Nmd05BUWJwL0lRZ2dCVUg5QVVzTkFpQUFJQVZxSWdZZ0IwRVVhaUFIUVJ4cUlna1FFRG9BQUNBR1FRRnFJUVFnQ1JBUFFRTkdCRUFnQjBFTWFpRUlRUUlNQWdzZ0JVSDhBVXNOQWlBR0lBZEJER29nQjBFY2FpSUVFQkE2QUFFZ0JVRUNhaUVGSUFRUUQwRURSdzBBQ3lBQUlBVnFJUVFnQjBFVWFpRUlRUU1MSUFRZ0NDQUhRUnhxRUJBNkFBQWdCbW9nQUdzaENBc2dDRUdJZjBzTkFRc2dDQ0VFUVFBaEJTQUJRUUJCTkJBRElRbEJBQ0VLQTBBZ0JDQUZSd1JBSUFBZ0JXb2lCaTBBQUNJQlFRdExCRUJCYkNFSURBTUZJQWtnQVVFQ2RHb2lBU0FCS0FJQVFRRnFOZ0lBSUFWQkFXb2hCVUVCSUFZdEFBQjBRUUYxSUFwcUlRb01BZ3NBQ3d0QmJDRUlJQXBGRFFBZ0NtY2lCVUVmY3lJQlFRdExEUUFnQTBFZ0lBVnJOZ0lBUVFGQkFpQUJkQ0FLYXlJRFowRWZjeUlCZENBRFJ3MEFJQUFnQkdvZ0FVRUJhaUlBT2dBQUlBa2dBRUVDZEdvaUFDQUFLQUlBUVFGcU5nSUFJQWtvQWdRaUFFRUNTU0FBUVFGeGNnMEFJQUlnQkVFQmFqWUNBQ0FMUVFGcUlRZ0xJQWRCTUdva0FDQUlDNkFGQVF4L0l3QkJFR3NpRENRQUFuOGdCRUVIVFFSQUlBeENBRGNEQ0NBTVFRaHFJZ1VnQXlBRUVBSWFRV3dnQUNBQklBSWdCVUVJRUF3aUFDQUFJQVJMR3lBQUlBQkJpWDlKR3d3QkN5QUFRUUFnQVNnQ0FFRUJhaUlOUVFGMEVBTWhEMEZVSUFNb0FBQWlCa0VQY1NJQVFRcExEUUFhSUFJZ0FFRUZhallDQUNBRElBUnFJZ0pCQkdzaEJ5QUNRUWRySVFzZ0FFRUdhaUVPUVFRaEFpQUdRUVIySVFWQklDQUFkQ0lJUVFGeUlRbEJBQ0VBUVFFaEJpQURJUVFEUUFKQUlBWkJBWEZGQkVBRFFDQUZRWDl6UVlDQWdJQjRjbWdpQmtFWVNVVUVRQ0FBUVNScUlRQWdCQ0FMVFFSL0lBUkJBMm9GSUFRZ0MydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xJQUlnQmtFZWNTSUtha0VDYWlFQ0lBWkJBWFpCQTJ3Z0FHb2dCU0FLZGtFRGNXb2lBQ0FOVHcwQkFuOGdCQ0FMU3lBQ1FRTjJJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBUWdCMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVUxJQVVnQ0VFQmEzRWlCaUFJUVFGMFFRRnJJZ29nQ1dzaUVFa0VmeUFPUVFGckJTQUZJQXB4SWdVZ0VFRUFJQVVnQ0U0YmF5RUdJQTRMSVFVZ0R5QUFRUUYwYWlBR1FRRnJJZ283QVFBZ0FFRUJhaUVBSUFJZ0JXb2hBaUFJUVFFZ0Jtc2dDaUFHUVFCS0d5QUphaUlKU2dSQUlBbEJBa2dOQVVFZ0lBbG5JZ1ZySVE1QkFTQUZRUjl6ZENFSUN5QUFJQTFQRFFBZ0NrRUFSeUVHQW44Z0JDQUxTeUFDUVFOMUlBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFJZ0JDQUhhMEVEZEdwQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xRV3dnQ1VFQlJ3MEFHa0ZRSUFBZ0RVc05BQnBCYkNBQ1FTQktEUUFhSUFFZ0FFRUJhellDQUNBRUlBSkJCMnBCQTNWcUlBTnJDeUFNUVJCcUpBQUw4Z0VCQVg4Z0FrVUVRQ0FBUWdBM0FnQWdBRUVBTmdJUUlBQkNBRGNDQ0VHNGZ3OExJQUFnQVRZQ0RDQUFJQUZCQkdvMkFoQWdBa0VFVHdSQUlBQWdBU0FDYWlJQlFRUnJJZ00yQWdnZ0FDQURLQUFBTmdJQUlBRkJBV3N0QUFBaUFRUkFJQUFnQVdkQkYyczJBZ1FnQWc4TElBQkJBRFlDQkVGL0R3c2dBQ0FCTmdJSUlBQWdBUzBBQUNJRE5nSUFBa0FDUUFKQUlBSkJBbXNPQWdFQUFnc2dBQ0FCTFFBQ1FSQjBJQU55SWdNMkFnQUxJQUFnQVMwQUFVRUlkQ0FEYWpZQ0FBc2dBU0FDYWtFQmF5MEFBQ0lCUlFSQUlBQkJBRFlDQkVGc0R3c2dBQ0FCWnlBQ1FRTjBhMEVKYWpZQ0JDQUNDMFFCQW44Z0FTQUNMd0VBSWdNZ0FTZ0NCR29pQkRZQ0JDQUFJQU5CQW5SQm9CMXFLQUlBSUFFb0FnQkJBQ0FFYTNaeE5nSUFJQUVRRHhvZ0FDQUNRUVJxTmdJRUM1OEJBUVIvUVFNaEFTQUFLQUlFSWdKQklFMEVRQ0FBS0FJSUlnRWdBQ2dDRUU4RVFDQUFJQUpCQjNFMkFnUWdBQ0FCSUFKQkEzWnJJZ0kyQWdnZ0FDQUNLQUFBTmdJQVFRQVBDeUFBS0FJTUlnTWdBVVlFUUVFQlFRSWdBa0VnU1JzUEN5QUFJQUVnQVNBRGF5QUNRUU4ySWdRZ0FTQUVheUFEU1NJQkd5SURheUlFTmdJSUlBQWdBaUFEUVFOMGF6WUNCQ0FBSUFRb0FBQTJBZ0FMSUFFTFNBRUVmeUFBS0FJRUlBQW9BZ0JCQW5ScUlnSXRBQUlnQWk4QkFDRUVJQUVnQVNnQ0JDSUZJQUl0QUFNaUFtbzJBZ1FnQUNBRUlBRW9BZ0FnQlhSQkFDQUNhM1pxTmdJQUMxSUJCSDhnQUNnQ0JDQUFLQUlBUVFKMGFpSUNMUUFDSUFJdkFRQWhCQ0FCSUFJdEFBTWlBaUFCS0FJRWFpSUZOZ0lFSUFBZ0JDQUNRUUowUWFBZGFpZ0NBQ0FCS0FJQVFRQWdCV3QyY1dvMkFnQUxDQUFnQUVHSWYwc0xHZ0FnQUFSQUlBRUVRQ0FDSUFBZ0FSRUNBQThMSUFBUUJnc0xwZ2dDRFg4QmZpTUFRUkJySWdra0FDQUpRUUEyQWd3Z0NVRUFOZ0lJQW44Q1FDQURRZWdKYWlBRElBbEJDR29nQ1VFTWFpQUJJQUlnQTBHQUFXb1FDeUlQUVloL1N3MEFRVlFnQ1NnQ0RDSUVJQUFvQWdBaUFVSC9BWEZCQVdwTERRRWFJQUJCQkdvaEN5QUFJQUZCLzRHQWVIRWdCRUVRZEVHQWdQd0hjWEkyQWdCQmZ5QUVJQVJCQUVnYlFRRnFJUUJCQUNFQklBa29BZ2doQlVFQUlRSURRQ0FBSUFKR0JFQWdCVUVEYXlFQlFRQWhBQU5BQWtCQkFDRUNJQUFnQVU0RVFBTkFJQUFnQlU0TkFpQURJQUFnQTJwQjZBbHFMUUFBUVFKMGFrRkFheUlCSUFFb0FnQWlBVUVCYWpZQ0FDQUJJQU5xSUFBNkFPZ0hJQUJCQVdvaEFBd0FDd0FGQTBBZ0FrRUVSa1VFUUNBRElBTWdBQ0FDYWlJSGFrSG9DV290QUFCQkFuUnFRVUJySWdnZ0NDZ0NBQ0lJUVFGcU5nSUFJQU1nQ0dvZ0J6b0E2QWNnQWtFQmFpRUNEQUVMQ3lBQVFRUnFJUUFNQWdzQUN3c2dCRUVCYWlFT0lBTW9BZ0FoQjBFQUlRQkJBU0VJQTBBZ0NDQU9SZzBESUE0Z0NHc2hCQ0FESUFoQkFuUnFLQUlBSVFVQ1FBSkFBa0FDUUFKQUFrQkJBU0FJZEVFQmRTSU5RUUZyRGdnQUFRUUNCQVFFQXdRTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBQUlRRURRQ0FDSUFaR0RRVWdBeUFDSUFkcWFpMEE2QWNoQ2lBTElBRkJBWFJxSWd3Z0JEb0FBU0FNSUFvNkFBQWdBa0VCYWlFQ0lBRkJBV29oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaENpQUFJUUVEUUNBQ0lBcEdEUVFnQ3lBQlFRRjBhaUlHSUFNZ0FpQUhhbW90QU9nSElndzZBQUlnQmlBRU9nQUJJQVlnRERvQUFDQUdJQVE2QUFNZ0FrRUJhaUVDSUFGQkFtb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBRVFRaDBRWUQrQTNFaEJDQUFJUUVEUUNBQ0lBWkdEUU1nQ3lBQlFRRjBhaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitOd0FBSUFKQkFXb2hBaUFCUVFScUlRRU1BQXNBQzBFQUlRSWdCVUVBSUFWQkFFb2JJUVlnQkVFSWRFR0EvZ054SVFRZ0FDRUJBMEFnQWlBR1JnMENJQXNnQVVFQmRHb2lDaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJaEUzQUFnZ0NpQVJOd0FBSUFKQkFXb2hBaUFCUVFocUlRRU1BQXNBQzBFQUlRRWdCVUVBSUFWQkFFb2JJUW9nQkVFSWRFR0EvZ054SVF3Z0FDRUVBMEFnQVNBS1JnMEJJQXNnQkVFQmRHb2hFQ0FNSUFNZ0FTQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJUkZCQUNFQ0EwQWdBaUFOVGtVRVFDQVFJQUpCQVhScUlnWWdFVGNBR0NBR0lCRTNBQkFnQmlBUk53QUlJQVlnRVRjQUFDQUNRUkJxSVFJTUFRc0xJQUZCQVdvaEFTQUVJQTFxSVFRTUFBc0FDeUFJUVFGcUlRZ2dCU0FIYWlFSElBVWdEV3dnQUdvaEFBd0FDd0FGSUFNZ0FrRUNkR29pQjBGQWF5QUJOZ0lBSUFKQkFXb2hBaUFIS0FJQUlBRnFJUUVNQVFzQUN3QUxJQThMSUFsQkVHb2tBQXZ5QWdFR2Z5TUFRU0JySWdVa0FDQUVLQUlBSVFZZ0JVRU1haUFDSUFNUURTSURRWWgvVFFSQUlBUkJCR29oQWlBQUlBRnFJZ2xCQTJzaEJFRUFJQVpCRUhaclFSOXhJUU1EUUNBRlFReHFFQThnQUNBRVQzSkZCRUFnQWlBRktBSU1JZ1lnQlNnQ0VDSUhkQ0FEZGtFQmRHb2lDQzBBQVNFS0lBQWdDQzBBQURvQUFDQUNJQVlnQnlBS2FpSUdkQ0FEZGtFQmRHb2lCeTBBQUNFSUlBVWdCaUFITFFBQmFqWUNFQ0FBSUFnNkFBRWdBRUVDYWlFQURBRUxDd05BSUFWQkRHb1FEeUVISUFVb0Fnd2hCaUFGS0FJUUlRUWdBQ0FKVHlBSGNrVUVRQ0FDSUFZZ0JIUWdBM1pCQVhScUlnWXRBQUFoQnlBRklBUWdCaTBBQVdvMkFoQWdBQ0FIT2dBQUlBQkJBV29oQUF3QkN3c0RRQ0FBSUFsUFJRUkFJQUlnQmlBRWRDQURka0VCZEdvaUJ5MEFBU0VJSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQkNBSWFpRUVEQUVMQzBGc1FXd2dBU0FGS0FJVUlBVW9BaGhIR3lBRVFTQkhHeUVEQ3lBRlFTQnFKQUFnQXd2UEZBRWpmeU1BUWRBQWF5SUZKQUJCYkNFSkFrQWdBMEVLU1EwQUFrQWdBeUFDTHdBRUlnY2dBaThBQUNJSUlBSXZBQUlpRFdwcVFRWnFJZ3hKRFFBZ0JDOEJBaUVHSUFWQlBHb2dBa0VHYWlJQ0lBZ1FEU0lKUVloL1N3MEJJQVZCS0dvZ0FpQUlhaUlDSUEwUURTSUpRWWgvU3cwQklBVkJGR29nQWlBTmFpSUNJQWNRRFNJSlFZaC9TdzBCSUFVZ0FpQUhhaUFESUF4ckVBMGlDVUdJZjBzTkFTQUVRUVJxSVFvZ0FDQUJhaUlmUVFOcklTQkJBQ0FHYTBFZmNTRUxJQVVvQWdnaEVTQUZLQUljSVJJZ0JTZ0NNQ0VUSUFVb0FrUWhGQ0FGS0FJRUlRa2dCU2dDR0NFTklBVW9BaXdoRENBRktBSkFJUVlnQlNnQ0VDRWhJQVVvQWlRaElpQUZLQUk0SVNNZ0JTZ0NUQ0VrSUFVb0FnQWhGU0FGS0FJVUlSWWdCU2dDS0NFWElBVW9BandoR0VFQklROGdBQ0FCUVFOcVFRSjJJZ1JxSWdNZ0JHb2lBaUFFYWlJWklRUWdBaUVJSUFNaEJ3TkFJQTlCQVhGRklBUWdJRTl5UlFSQUlBQWdDaUFZSUFaMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhHaUFPTFFBRElSQWdCeUFLSUJjZ0RIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0RpMEFBaUViSUE0dEFBTWhEeUFJSUFvZ0ZpQU5kQ0FMZGtFQ2RHb2lEaThCQURzQUFDQU9MUUFDSVJ3Z0RpMEFBeUVkSUFRZ0NpQVZJQWwwSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEhpQU9MUUFESVE0Z0FDQVFhaUlsSUFvZ0dDQUdJQnBxSWdaMElBdDJRUUowYWlJUUx3RUFPd0FBSUJBdEFBSWdFQzBBQXlFbUlBY2dEMm9pSnlBS0lCY2dEQ0FiYWlJYWRDQUxka0VDZEdvaUJ5OEJBRHNBQUNBSExRQUNJUXdnQnkwQUF5RVFJQWdnSFdvaUd5QUtJQllnRFNBY2FpSVBkQ0FMZGtFQ2RHb2lDQzhCQURzQUFDQUlMUUFDSVEwZ0NDMEFBeUVjSUFRZ0Rtb2lIU0FLSUJVZ0NTQWVhaUlPZENBTGRrRUNkR29pQ1M4QkFEc0FBQ0FHYWlFQVFRTWhCd0ovSUJRZ0pFa0VRQ0FBSVFaQkF3d0JDeUFBUVFkeElRWWdGQ0FBUVFOMmF5SVVLQUFBSVJoQkFBc2dDUzBBQXlFZUlBa3RBQUloQ0NBTUlCcHFJUUFnRXlBalNRUi9JQUFGSUJNZ0FFRURkbXNpRXlnQUFDRVhRUUFoQnlBQVFRZHhDeUVNSUEwZ0Qyb2hBQ0FIY2lFSlFRTWhEd0ovSUJJZ0lra0VRQ0FBSVExQkF3d0JDeUFBUVFkeElRMGdFaUFBUVFOMmF5SVNLQUFBSVJaQkFBc2dDQ0FPYWlFQUlBbHlJQkVnSVVrRWZ5QUFCU0FSSUFCQkEzWnJJaEVvQUFBaEZVRUFJUThnQUVFSGNRc2hDU0FsSUNacUlRQWdFQ0FuYWlFSElCc2dIR29oQ0NBZElCNXFJUVFnRDNKRklROE1BUXNMSUFVZ0REWUNMQ0FGSUFZMkFrQWdCU0FOTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBSWdCMGtnQUNBRFMzSU5BRUZzSVFrZ0NDQVpTdzBCSUFOQkEyc2hDUU5BSUFWQlBHb1FEMFVnQUNBSlNYRUVRQ0FBSUFvZ0JTZ0NQQ0lOSUFVb0FrQWlESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdBQ0FPTFFBRGFpSUdJQW9nRFNBTUlBNHRBQUpxSWdCMElBdDJRUUowYWlJTUx3RUFPd0FBSUFVZ0FDQU1MUUFDYWpZQ1FDQUdJQXd0QUFOcUlRQU1BUVVnQTBFQ2F5RU1BMEFnQlVFOGFoQVBJUVlnQlNnQ1BDRU5JQVVvQWtBaENTQUFJQXhMSUFaeVJRUkFJQUFnQ2lBTklBbDBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdDU0FHTFFBQ2FqWUNRQ0FBSUFZdEFBTnFJUUFNQVFzTEEwQWdBQ0FNUzBVRVFDQUFJQW9nRFNBSmRDQUxka0VDZEdvaUJpOEJBRHNBQUNBQUlBWXRBQU5xSVFBZ0NTQUdMUUFDYWlFSkRBRUxDd0pBSUFBZ0EwOE5BQ0FBSUFvZ0RTQUpkQ0FMZGlJQVFRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FKSUFNdEFBSnFJUWtNQVFzZ0NVRWZTdzBBUVNBZ0NTQUtJQUJCQW5ScUxRQUNhaUlBSUFCQklFOGJJUWtMSUFKQkEyc2hEQU5BSUFWQktHb1FEMFVnQnlBTVNYRUVRQ0FISUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lBSFFnQzNaQkFuUnFJZzB2QVFBN0FBQWdCeUFOTFFBRGFpSURJQW9nQmlBQUlBMHRBQUpxSWdCMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FDQUdMUUFDYWpZQ0xDQURJQVl0QUFOcUlRY01BUVVnQWtFQ2F5RUdBMEFnQlVFb2FoQVBJUU1nQlNnQ0tDRU1JQVVvQWl3aEFDQUdJQWRKSUFOeVJRUkFJQWNnQ2lBTUlBQjBJQXQyUVFKMGFpSURMd0VBT3dBQUlBVWdBQ0FETFFBQ2FqWUNMQ0FISUFNdEFBTnFJUWNNQVFzTEEwQWdCaUFIU1VVRVFDQUhJQW9nRENBQWRDQUxka0VDZEdvaUF5OEJBRHNBQUNBSElBTXRBQU5xSVFjZ0FDQURMUUFDYWlFQURBRUxDd0pBSUFJZ0IwME5BQ0FISUFvZ0RDQUFkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FBSUFNdEFBSnFJUUFNQVFzZ0FFRWZTdzBBUVNBZ0FDQUtJQUpCQW5ScUxRQUNhaUlBSUFCQklFOGJJUUFMSUJsQkEyc2hEQU5BSUFWQkZHb1FEMFVnQ0NBTVNYRUVRQ0FJSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lBblFnQzNaQkFuUnFJZzB2QVFBN0FBQWdDQ0FOTFFBRGFpSURJQW9nQmlBQ0lBMHRBQUpxSWdKMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FpQUdMUUFDYWpZQ0dDQURJQVl0QUFOcUlRZ01BUVVnR1VFQ2F5RURBMEFnQlVFVWFoQVBJUUlnQlNnQ0ZDRUdJQVVvQWhnaEJ5QURJQWhKSUFKeVJRUkFJQWdnQ2lBR0lBZDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBVWdCeUFDTFFBQ2FqWUNHQ0FJSUFJdEFBTnFJUWdNQVFzTEEwQWdBeUFJU1VVRVFDQUlJQW9nQmlBSGRDQUxka0VDZEdvaUFpOEJBRHNBQUNBSUlBSXRBQU5xSVFnZ0J5QUNMUUFDYWlFSERBRUxDd0pBSUFnZ0dVOE5BQ0FJSUFvZ0JpQUhkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FISUFNdEFBSnFJUWNNQVFzZ0IwRWZTdzBBUVNBZ0J5QUtJQUpCQW5ScUxRQUNhaUlDSUFKQklFOGJJUWNMQTBBZ0JSQVBSU0FFSUNCSmNRUkFJQVFnQ2lBRktBSUFJZ1lnQlNnQ0JDSUNkQ0FMZGtFQ2RHb2lEQzhCQURzQUFDQUVJQXd0QUFOcUlnTWdDaUFHSUFJZ0RDMEFBbW9pQW5RZ0MzWkJBblJxSWdRdkFRQTdBQUFnQlNBQ0lBUXRBQUpxTmdJRUlBTWdCQzBBQTJvaEJBd0JCU0FmUVFKcklRTURRQ0FGRUE4aEFpQUZLQUlBSVFZZ0JTZ0NCQ0VJSUFNZ0JFa2dBbkpGQkVBZ0JDQUtJQVlnQ0hRZ0MzWkJBblJxSWdJdkFRQTdBQUFnQlNBSUlBSXRBQUpxTmdJRUlBUWdBaTBBQTJvaEJBd0JDd3NEUUNBRElBUkpSUVJBSUFRZ0NpQUdJQWgwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVFnQWkwQUEyb2hCQ0FJSUFJdEFBSnFJUWdNQVFzTEFrQWdCQ0FmVHcwQUlBUWdDaUFHSUFoMElBdDJJZ0pCQW5ScUlnTXRBQUE2QUFBZ0F5MEFBMEVCUmdSQUlBZ2dBeTBBQW1vaENBd0JDeUFJUVI5TERRQkJJQ0FJSUFvZ0FrRUNkR290QUFKcUlnSWdBa0VnVHhzaENBdEJiRUZzUVd4QmJFRnNRV3hCYkVGc0lBRWdDRUVnUnhzZ0JTZ0NDQ0FGS0FJTVJ4c2dCMEVnUnhzZ0JTZ0NIQ0FGS0FJZ1J4c2dBRUVnUnhzZ0JTZ0NNQ0FGS0FJMFJ4c2dDVUVnUnhzZ0JTZ0NSQ0FGS0FKSVJ4c2hDUXdKQ3dBTEFBc0FDd0FMQUFzQUN3QUxBQXRCYkNFSkN5QUZRZEFBYWlRQUlBa0w3QkFCSG44akFFSFFBR3NpQlNRQVFXd2hDUUpBSUFOQkNra05BQUpBSUFNZ0FpOEFCQ0lHSUFJdkFBQWlCeUFDTHdBQ0lnaHFha0VHYWlJT1NRMEFJQVF2QVFJaER5QUZRVHhxSUFKQkJtb2lBaUFIRUEwaUNVR0lmMHNOQVNBRlFTaHFJQUlnQjJvaUFpQUlFQTBpQ1VHSWYwc05BU0FGUVJScUlBSWdDR29pQWlBR0VBMGlDVUdJZjBzTkFTQUZJQUlnQm1vZ0F5QU9heEFOSWdsQmlIOUxEUUVnQkVFRWFpRUtJQUFnQVdvaUhFRURheUVkUVFBZ0QydEJIM0VoQ3lBRktBSUlJUkVnQlNnQ0hDRVNJQVVvQWpBaEV5QUZLQUpFSVJRZ0JTZ0NCQ0VKSUFVb0FoZ2hCaUFGS0FJc0lRY2dCU2dDUUNFSUlBVW9BaEFoSGlBRktBSWtJUjhnQlNnQ09DRWdJQVVvQWt3aElTQUZLQUlBSVJVZ0JTZ0NGQ0VXSUFVb0FpZ2hGeUFGS0FJOElSaEJBU0VOSUFBZ0FVRURha0VDZGlJQ2FpSU9JQUpxSWc4Z0Ftb2lHU0VFSUE4aEFpQU9JUU1EUUNBTlJTQUVJQjFQY2tVRVFDQUtJQmdnQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUFnQ2lBWElBZDBJQXQyUVFGMGFpSU1MUUFCSVJBZ0F5QU1MUUFBT2dBQUlBb2dGaUFHZENBTGRrRUJkR29pREMwQUFTRWFJQUlnREMwQUFEb0FBQ0FLSUJVZ0NYUWdDM1pCQVhScUlnd3RBQUVoR3lBRUlBd3RBQUE2QUFBZ0NpQVlJQWdnRFdvaUNIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFFZ0NpQVhJQWNnRUdvaUIzUWdDM1pCQVhScUlnd3RBQUVoRUNBRElBd3RBQUE2QUFFZ0NpQVdJQVlnR21vaURIUWdDM1pCQVhScUlnWXRBQUVoR2lBQ0lBWXRBQUE2QUFFZ0NpQVZJQWtnRzJvaUczUWdDM1pCQVhScUlna3RBQUVoSWlBRUlBa3RBQUE2QUFFZ0NDQU5haUVHUVFNaENRSi9JQlFnSVVrRVFFRURJUTBnQmd3QkN5QVVJQVpCQTNackloUW9BQUFoR0VFQUlRMGdCa0VIY1FzaENDQUhJQkJxSVFZZ0V5QWdTUVIvSUFZRklCTWdCa0VEZG1zaUV5Z0FBQ0VYUVFBaENTQUdRUWR4Q3lFSElBd2dHbW9oRENBSklBMXlJUkJCQXlFTkFuOGdFaUFmU1FSQUlBd2hCa0VEREFFTElBeEJCM0VoQmlBU0lBeEJBM1pySWhJb0FBQWhGa0VBQ3lBYklDSnFJUXdnRUhJaEVDQVJJQjVKQkg4Z0RBVWdFU0FNUVFOMmF5SVJLQUFBSVJWQkFDRU5JQXhCQjNFTElRa2dCRUVDYWlFRUlBSkJBbW9oQWlBRFFRSnFJUU1nQUVFQ2FpRUFJQTBnRUhKRklRME1BUXNMSUFVZ0J6WUNMQ0FGSUFnMkFrQWdCU0FHTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBQWdEa3NnQXlBUFMzSU5BRUZzSVFrZ0FpQVpTdzBCSUE1QkEyc2hDUU5BSUFWQlBHb1FEeUFBSUFsUGNrVUVRQ0FLSUFVb0Fqd2lCaUFGS0FKQUlnZDBJQXQyUVFGMGFpSUlMUUFCSVF3Z0FDQUlMUUFBT2dBQUlBb2dCaUFISUF4cUlnWjBJQXQyUVFGMGFpSUhMUUFBSVFnZ0JTQUdJQWN0QUFGcU5nSkFJQUFnQ0RvQUFTQUFRUUpxSVFBTUFRc0xBMEFnQlVFOGFoQVBJUWNnQlNnQ1BDRUdJQVVvQWtBaENTQUFJQTVQSUFkeVJRUkFJQW9nQmlBSmRDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0NTQUdMUUFCYWpZQ1FDQUFJQWM2QUFBZ0FFRUJhaUVBREFFTEN3TkFJQUFnRGs5RkJFQWdDaUFHSUFsMElBdDJRUUYwYWlJSExRQUJJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdDV29oQ1F3QkN3c2dEMEVEYXlFQUEwQWdCVUVvYWhBUElBQWdBMDF5UlFSQUlBb2dCU2dDS0NJR0lBVW9BaXdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFESUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWl3Z0F5QUlPZ0FCSUFOQkFtb2hBd3dCQ3dzRFFDQUZRU2hxRUE4aEJ5QUZLQUlvSVFZZ0JTZ0NMQ0VBSUFNZ0QwOGdCM0pGQkVBZ0NpQUdJQUIwSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FBSUFZdEFBRnFOZ0lzSUFNZ0J6b0FBQ0FEUVFGcUlRTU1BUXNMQTBBZ0F5QVBUMFVFUUNBS0lBWWdBSFFnQzNaQkFYUnFJZ2N0QUFFaENDQURJQWN0QUFBNkFBQWdBMEVCYWlFRElBQWdDR29oQUF3QkN3c2dHVUVEYXlFREEwQWdCVUVVYWhBUElBSWdBMDl5UlFSQUlBb2dCU2dDRkNJR0lBVW9BaGdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFDSUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWhnZ0FpQUlPZ0FCSUFKQkFtb2hBZ3dCQ3dzRFFDQUZRUlJxRUE4aEJ5QUZLQUlVSVFZZ0JTZ0NHQ0VESUFJZ0dVOGdCM0pGQkVBZ0NpQUdJQU4wSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FESUFZdEFBRnFOZ0lZSUFJZ0J6b0FBQ0FDUVFGcUlRSU1BUXNMQTBBZ0FpQVpUMFVFUUNBS0lBWWdBM1FnQzNaQkFYUnFJZ2N0QUFFaENDQUNJQWN0QUFBNkFBQWdBa0VCYWlFQ0lBTWdDR29oQXd3QkN3c0RRQ0FGRUE4Z0JDQWRUM0pGQkVBZ0NpQUZLQUlBSWdJZ0JTZ0NCQ0lHZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FLSUFJZ0JpQUlhaUlDZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQWlBR0xRQUJhallDQkNBRUlBYzZBQUVnQkVFQ2FpRUVEQUVMQ3dOQUlBVVFEeUVISUFVb0FnQWhCaUFGS0FJRUlRSWdCQ0FjVHlBSGNrVUVRQ0FLSUFZZ0FuUWdDM1pCQVhScUlnWXRBQUFoQnlBRklBSWdCaTBBQVdvMkFnUWdCQ0FIT2dBQUlBUkJBV29oQkF3QkN3c0RRQ0FFSUJ4UFJRUkFJQW9nQmlBQ2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBRVFRRnFJUVFnQWlBSWFpRUNEQUVMQzBGc1FXeEJiRUZzUVd4QmJFRnNRV3dnQVNBQ1FTQkhHeUFGS0FJSUlBVW9BZ3hIR3lBRFFTQkhHeUFGS0FJY0lBVW9BaUJIR3lBQVFTQkhHeUFGS0FJd0lBVW9BalJIR3lBSlFTQkhHeUFGS0FKRUlBVW9Ba2hIR3lFSkRBRUxRV3doQ1FzZ0JVSFFBR29rQUNBSkMxZ0JBMzhDUUNBQUtBS1E2d0VpQVVVTkFDQUJLQUlBSUFGQnROVUJhaWdDQUNJQ0lBRkJ1TlVCYWlnQ0FDSURFQk1nQWdSQUlBTWdBU0FDRVFJQURBRUxJQUVRQmdzZ0FFRUFOZ0tnNndFZ0FFSUFOd09RNndFTDZRTUNCSDhDZmlBQVFRQkJLQkFESVFRZ0FrRUJRUVVnQXhzaUFFa0VRQ0FBRHdzZ0FVVUVRRUYvRHd0QkFTRUdBa0FDUUNBRFFRRkdEUUFnQXlFR0lBRW9BQUFpQlVHbzZyNXBSZzBBUVhZaEF5QUZRWEJ4UWREVXRNSUJSdzBCUVFnaEF5QUNRUWhKRFFFZ0FUVUFCQ0VJSUFSQkFUWUNGQ0FFSUFnM0F3QkJBQThMSUFFZ0FpQUdFQm9pQXlBQ1N3MEFJQVFnQXpZQ0dFRnlJUU1nQUNBQmFpSUZRUUZyTFFBQUlnSkJDSEVOQUNBQ1FTQnhJZ1pGQkVCQmNDRURJQVV0QUFBaUJVR25BVXNOQVNBRlFRZHhyVUlCSUFWQkEzWkJDbXF0aGlJSVFnT0lmaUFJZkNFSklBQkJBV29oQUFzZ0FrRUdkaUVGSUFKQkFuWkJBQ0VEQWtBQ1FBSkFBa0FnQWtFRGNVRUJhdzREQUFFQ0F3c2dBQ0FCYWkwQUFDRURJQUJCQVdvaEFBd0NDeUFBSUFGcUx3QUFJUU1nQUVFQ2FpRUFEQUVMSUFBZ0FXb29BQUFoQXlBQVFRUnFJUUFMUVFGeElRSUNmZ0pBQWtBQ1FBSkFJQVZCQVdzT0F3RUNBd0FMUW44Z0JrVU5BeG9nQUNBQmFqRUFBQXdEQ3lBQUlBRnFNd0FBUW9BQ2ZBd0NDeUFBSUFGcU5RQUFEQUVMSUFBZ0FXb3BBQUFMSVFnZ0JDQUNOZ0lnSUFRZ0F6WUNIQ0FFSUFnM0F3QkJBQ0VESUFSQkFEWUNGQ0FFSUFnZ0NTQUdHeUlJTndNSUlBUkNnSUFJSUFnZ0NFS0FnQWhhR3o0Q0VBc2dBd3RmQVFGL1FiaC9JUU1nQVVFQlFRVWdBaHNpQWs4RWZ5QUFJQUpxUVFGckxRQUFJZ0JCQTNGQkFuUkJvQjVxS0FJQUlBSnFJQUJCQkhaQkRIRkJzQjVxS0FJQWFpQUFRU0J4SWdGRmFpQUJRUVYySUFCQndBQkpjV29GUWJoL0N3c01BQ0FBSUFFZ0FrRUFFQmtMbHdNQ0JYOENmaU1BUVVCcUlnUWtBQUpBQTBBZ0FVRUZUd1JBQWtBZ0FDZ0FBRUZ3Y1VIUTFMVENBVVlFUUVKK0lRY2dBVUVJU1EwRUlBQW9BQVFpQWtGM1N3MEVJQUpCQ0dvaUF5QUJTdzBFSUFKQmdYOUpEUUVNQkFzZ0JFRVlhaUFBSUFFUUd5RUNRbjRnQkNrREdFSUFJQVFvQWl4QkFVY2JJQUliSWdkQ2ZWWU5BeUFISUFoOElnZ2dCMVJDZmlFSERRTUNRQUpBSUFGQkNFa05BQ0FBS0FBQVFYQnhRZERVdE1JQlJ3MEFJQUFvQUFRaUFrRjNTdzBGUWJoL0lBSkJDR29pQWlBQklBSkpHeUVEREFFTElBUkJHR29nQUNBQkVCc2lBa0dJZjBzRVFDQUNJUU1NQVF0QnVIOGhBeUFDRFFBZ0FTQUVLQUl3SWdKcklRVWdBQ0FDYWlFR0EwQWdCaUFGSUFSQkRHb1FIU0lEUVloL1N3MEJJQU5CQTJvaUFpQUZTd1JBUWJoL0lRTU1BZ3NnQlNBQ2F5RUZJQUlnQm1vaEJpQUVLQUlRUlEwQUN5QUVLQUk0Qkg5QnVIOGhBeUFGUVFSSkRRRWdCa0VFYWdVZ0Jnc2dBR3NoQXdzZ0EwR0lmMHNOQXdzZ0FTQURheUVCSUFBZ0Eyb2hBQXdCQ3d0Q2ZpQUlJQUViSVFjTElBUkJRR3NrQUNBSEMyUUJBWDlCdUg4aEF3SkFJQUZCQTBrTkFDQUFMUUFDSVFFZ0FpQUFMd0FBSWdCQkFYRTJBZ1FnQWlBQVFRRjJRUU54SWdNMkFnQWdBaUFBSUFGQkVIUnlRUU4ySWdBMkFnZ0NRQUpBSUFOQkFXc09Bd0lCQUFFTFFXd1BDeUFBSVFNTElBTUxSQUVDZnlBQklBSW9BZ1FpQXlBQktBSUVhaUlFTmdJRUlBQWdBMEVDZEVHZ0hXb29BZ0FnQVNnQ0FFRUFJQVJyZG5FMkFnQWdBUkFQR2lBQUlBSkJDR28yQWdRTHpnRUJCbjlCdW44aENnSkFJQUlvQWdRaUNDQUNLQUlBSWdscUlnMGdBU0FBYTBzTkFFRnNJUW9nQ1NBRUlBTW9BZ0FpQzJ0TERRQWdBQ0FKYWlJRUlBSW9BZ2dpREdzaEFpQUFJQUZCSUdzaUFDQUxJQWxCQUJBZ0lBTWdDU0FMYWpZQ0FBSkFBa0FnQkNBRmF5QU1Ud1JBSUFJaEJRd0JDeUFNSUFRZ0JtdExEUUlnQnlBSElBSWdCV3NpQW1vaUFTQUlhazhFUUNBRUlBRWdDQkFLR2d3Q0N5QUNJQWhxSVFnZ0JDQUJRUUFnQW1zUUNpQUNheUVFQ3lBRUlBQWdCU0FJUVFFUUlBc2dEU0VLQ3lBS0M4Y0VBUUovSUFBZ0Eyb2hCZ0pBSUFOQkIwd0VRQU5BSUFBZ0JrOE5BaUFBSUFJdEFBQTZBQUFnQUVFQmFpRUFJQUpCQVdvaEFnd0FDd0FMSUFSQkFVWUVRQUpBSUFBZ0Ftc2lCVUVIVFFSQUlBQWdBaTBBQURvQUFDQUFJQUl0QUFFNkFBRWdBQ0FDTFFBQ09nQUNJQUFnQWkwQUF6b0FBeUFBSUFJZ0JVRUNkQ0lGUWNBZWFpZ0NBR29pQWlnQUFEWUFCQ0FDSUFWQjRCNXFLQUlBYXlFQ0RBRUxJQUFnQWlrQUFEY0FBQXNnQWtFSWFpRUNJQUJCQ0dvaEFBc2dBU0FHVHdSQUlBQWdBMm9oQVNBRVFRRkhJQUFnQW10QkQwcHlSUVJBQTBBZ0FDQUNLUUFBTndBQUlBSkJDR29oQWlBQVFRaHFJZ0FnQVVrTkFBd0RDd0FMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0EwRVJTUTBCSUFCQkVHb2hBQU5BSUFBZ0Fpa0FFRGNBQUNBQUlBSXBBQmczQUFnZ0FDQUNLUUFnTndBUUlBQWdBaWtBS0RjQUdDQUNRU0JxSVFJZ0FFRWdhaUlBSUFGSkRRQUxEQUVMQWtBZ0FDQUJTd1JBSUFBaEFRd0JDeUFCSUFCcklRVUNRQ0FFUVFGSElBQWdBbXRCRDBweVJRUkFJQUloQXdOQUlBQWdBeWtBQURjQUFDQURRUWhxSVFNZ0FFRUlhaUlBSUFGSkRRQUxEQUVMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0JVRVJTQTBBSUFCQkVHb2hBQ0FDSVFNRFFDQUFJQU1wQUJBM0FBQWdBQ0FES1FBWU53QUlJQUFnQXlrQUlEY0FFQ0FBSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUJCSUdvaUFDQUJTUTBBQ3dzZ0FpQUZhaUVDQ3dOQUlBRWdCazhOQVNBQklBSXRBQUE2QUFBZ0FVRUJhaUVCSUFKQkFXb2hBZ3dBQ3dBTEM2NEhBZ1YvQVg0akFFR0FBV3NpRVNRQUlCRWdBellDZkVGL0lROENRQUpBQWtBQ1FBSkFJQUlPQkFFQUF3SUVDeUFHUlFSQVFiaC9JUThNQkF0QmJDRVBJQVV0QUFBaUFpQURTdzBESUFnZ0FrRUNkQ0lDYWlnQ0FDRURJQUlnQjJvb0FnQWhBaUFBUVFBNkFBc2dBRUlBTndJQUlBQWdBallDRENBQUlBTTZBQW9nQUVFQU93RUlJQUVnQURZQ0FFRUJJUThNQXdzZ0FTQUpOZ0lBUVFBaER3d0NDeUFLUlFSQVFXd2hEd3dDQzBFQUlROGdDMFVnREVFWlNISU5BVUVJSUFSMFFRaHFJUUJCQUNFREEwQWdBQ0FEVFEwQ0lBTkJRR3NoQXd3QUN3QUxRV3doRHlBUklCRkIvQUJxSUJGQitBQnFJQVVnQmhBTUlnTkJpSDlMRFFBZ0VTZ0NlQ0lDSUFSTERRQWdFU2dDZkVFQmFpRUpJQUJCQ0dvaEMwR0FnQUlnQW5SQkVIVWhCVUVCSVJCQkFTQUNkQ0lQUVFGcklnb2hFZ05BSUFrZ0RrY0VRQUpBSUJFZ0RrRUJkQ0lFYWk4QkFDSU1RZi8vQTBZRVFDQUxJQkpCQTNScUlBNDJBZ1FnRWtFQmF5RVNRUUVoREF3QkN5QVFRUUFnQlNBTXdVb2JJUkFMSUFRZ0RXb2dERHNCQUNBT1FRRnFJUTRNQVFzTElBQWdBallDQkNBQUlCQTJBZ0FDUUNBS0lCSkdCRUFnRFVIcUFHb2hCa0VBSVJCQkFDRU1BMEFnQ1NBUVJnUkFJQTlCQTNZZ0QwRUJkbXBCQTJvaUJVRUJkQ0VFUVFBaERFRUFJUklEUUVFQUlRNGdEeUFTVFEwRUEwQWdEa0VDUndSQUlBc2dCU0FPYkNBTWFpQUtjVUVEZEdvZ0JpQU9JQkpxYWkwQUFEWUNCQ0FPUVFGcUlRNE1BUXNMSUJKQkFtb2hFaUFFSUF4cUlBcHhJUXdNQUFzQUJTQVJJQkJCQVhScUxnRUFJUVVnQmlBTWFpSUVJQk0zQUFCQkNDRU9BMEFnQlNBT1NnUkFJQVFnRG1vZ0V6Y0FBQ0FPUVFocUlRNE1BUXNMSUJOQ2dZS0VpSkNnd0lBQmZDRVRJQkJCQVdvaEVDQUZJQXhxSVF3TUFRc0FDd0FMSUE5QkEzWWdEMEVCZG1wQkEyb2hCVUVBSVJCQkFDRU9BMEFnQ1NBUVJnMEJRUUFoRENBUklCQkJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBTVJ3UkFJQXNnRGtFRGRHb2dFRFlDQkFOQUlBVWdEbW9nQ25FaURpQVNTdzBBQ3lBTVFRRnFJUXdNQVFzTElCQkJBV29oRUF3QUN3QUxJQUpCQVdvaEJVRUFJUXdEUUNBTUlBOUhCRUFnRFNBTElBeEJBM1JxSWdrb0FnUWlCRUVCZEdvaUFpQUNMd0VBSWdaQkFXbzdBUUFnQ1NBRklBWm5RV0J6YWlJQ09nQURJQWtnQmlBQ2RDQVBhenNCQUNBSklBZ2dCRUVDZENJQ2FpZ0NBRG9BQWlBSklBSWdCMm9vQWdBMkFnUWdERUVCYWlFTURBRUxDeUFCSUFBMkFnQWdBeUVQQ3lBUlFZQUJhaVFBSUE4TDdWb0NPMzhHZmlNQVFlQUJheUlFSkFBQ1FFR3c3QWtRQlNJRlJRUkFRVUFoQnd3QkN5QUZRZ0EzQXZUcUFTQUZRUUEyQXNUckFTQUZRUUEyQXJUckFTQUZRZ0EzQXB6ckFTQUZRUUEyQXJqcEFTQUZRUUEyQXF6c0NTQUZRZ0EzQXRUckFTQUZRZ0EzQXF6ckFTQUZRZ0EzQTRqckFTQUZRZ0EzQXVUcUFTQUZRZ0EzQXVUckFTQUZRWUdBZ01BQU5nSzg2d0VnQlVJQU53S2s2d0VnQlVIODZnRnFRUUEyQWdBZ0JVR1E2d0ZxUWdBM0F3QWdCUkFZSUFWQnJOVUJhaUVVSUFWQitPc0JhaUVjSUFWQnNPb0JhaUVpSUFWQm9EQnFJU29nQlVHWUlHb2hLeUFGUWFqUUFHb2hIaUFGUVJCcUlTd2dCVUVJYWlFb0lBVkJCR29oTFNBRlFjRHBBV29oS1NBRlFZanJBV29nQkVHVUFXb2hMeUFFUVl3QmFpRXdJQVJCaEFGcUlURWdCRUhjQUdvaE1pQUVRZFFBYWlFeklBUkJ6QUJxSVRRZ0FDRWRBa0FDUUFKQUFrQUNRQU5BUVFGQkJTQUZLQUxrNmdFYklRWUNRQU5BSUFNZ0Jra05BU0FDS0FBQVFYQnhRZERVdE1JQlJnUkFRYmgvSVFjZ0EwRUlTUTBJSUFJb0FBUWlEa0YzU3dSQVFYSWhCd3dKQ3lBRElBNUJDR29pQ1VrTkNDQU9RWUIvU3dSQUlBa2hCd3dKQ3lBRElBbHJJUU1nQWlBSmFpRUNEQUVMQ3lBRlFnQTNBcXpwQVNBRlFnQTNBK2pwQVNBRlFRQTJBcGpyQVNBRlFnQTNBNERxQVNBRlFnTTNBL2pwQVNBRlFiVHBBV3BDQURjQ0FDQUZRZkRwQVdwQ0FEY0RBQ0FGUWFqUUFHb2lDVUdNZ0lEZ0FEWUNBQ0FGUWF6UUFXcEI0QklwQWdBM0FnQWdCVUcwMEFGcVFlZ1NLQUlBTmdJQUlBVWdCVUVRYWpZQ0FDQUZJQVZCb0RCcU5nSUVJQVVnQlVHWUlHbzJBZ2dnQlNBSk5nSU1JQVZCQVVFRklBVW9BdVRxQVJzMkFyenBBUUpBSUFGRkRRQWdCU2dDck9rQklna2dIVVlOQUNBRklBazJBcmpwQVNBRklCMDJBcXpwQVNBRktBS3c2UUVoRGlBRklCMDJBckRwQVNBRklCMGdEaUFKYTJvMkFyVHBBUXRCdUg4aENTQURRUVZCQ1NBRktBTGs2Z0VpQmh0SkRRVWdBa0VCUVFVZ0Joc2dCaEFhSWc1QmlIOUxCRUFnRGlFSkRBVUxJQU1nRGtFRGFra05CU0FwSUFJZ0RpQUdFQmtpQmtHSWYwc0VRQ0FHSVFrTUJRc2dCZzBGQWtBQ1FDQUZLQUtvNndGQkFVY05BQ0FGS0FLazZ3RWlDVVVOQUNBRktBS1U2d0ZGRFFBZ0NTZ0NCRUVCYXlJSElBVW9BdHpwQVNJS3JVS0hsYSt2bUxiZW01NS9ma0xKejlteThlVzY2aWVGUWhlSlFzL1cwNzdTeDZ2WlFuNUMrZlBkOFpuMm1hc1dmQ0kvUWlHSUlEK0ZRcy9XMDc3U3g2dlpRbjRpUDBJZGlDQS9oVUw1ODkzeG1mYVpxeForSWo5Q0lJZ2dQNFduY1NFR0lBa29BZ0FoRlFOQVFRQWhDQUpBSUJVZ0JrRUNkR29vQWdBaUNVVU5BQ0FKS0FJSVFRaEpEUUFnQ1NnQ0JDSVNLQUFBUWJmSXd1RitSdzBBSUJJb0FBUWhDQXNnQ0NBS1J3UkFJQVlnQjNGQkFXb2hCaUFJRFFFTEN5QUpSUTBBSUFVUUdDQUZRWDgyQXFEckFTQUZJQWsyQXBUckFTQUZJQVVvQXR6cEFTSUlOZ0tZNndFTUFRc2dCU2dDM09rQklRZ0xBa0FnQ0VVTkFDQUZLQUtZNndFZ0NFWU5BRUZnSVFrTUJnc0NRQ0FGS0FMZzZRRUVRQ0FGSUFVb0F1anFBU0lKUlRZQzdPb0JJQWtOQVNBRlF2bnEwTkRueWFIazRRQTNBNmpxQVNBRlFnQTNBNkRxQVNBRlFzL1cwNzdTeDZ2WlFqY0RtT29CSUFWQzF1dUM3dXI5aWZYZ0FEY0RrT29CSUFWQ0FEY0RpT29CSUNKQkFFRW9FQU1hREFFTElBVkJBRFlDN09vQkN5QUJJQjFxSVNVZ0JTQUZLUVBvNlFFZ0RxMThOd1BvNlFFZ0F5QU9heUVESUFJZ0Rtb2hBaUFkSVE0RFFDQUNJQU1nQkVFc2FoQWRJaFZCaUg5TEJFQWdGU0VKREFZTElBTkJBMnNpTlNBVlNRMEVJQUpCQTJvaEcwRnNJUWtDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQUVLQUlzRGdNQ0FRQVZDeUFWUWYvL0Iwc05FeUFWUVFOSkRSSWdCU2tEeU9rQklUOENRQUpBSUJzdEFBQWlDVUVEY1NJYVFRRnJEZ01HQVFBSEN5QUZLQUtBNmdFTkFFRmlJUWtNRlFzZ0ZVRUZTUTBTSUJzb0FBQWhBd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRWlDVUVDYXc0Q0FRSUFDeUFKUVFCSElRY2dBMEVFZGtIL0IzRWhDMEVESVFZZ0EwRU9ka0gvQjNFTUFndEJCQ0VHSUFOQkJIWkIvLzhBY1NFTFFRRWhCeUFEUVJKMkRBRUxJQU5CQkhaQi8vOFBjU0lMUVlDQUNFc05FMEVCSVFkQkJTRUdJQUl0QUFkQkNuUWdBMEVXZG5JTElnZ2dCbW9pQ1NBVlN3MFNBa0FnQzBHQkJra05BQ0FGS0FLYzZ3RkZEUUJCQUNFREEwQWdBMEdEZ0FGTERRRWdBMEZBYXlFRERBQUxBQXNnQmlBYmFpRVBJQnBCQTBjTkJpQUZLQUlNSWdJdEFBRkJDSFFoQXlBSERRY2dBMFVOQ0NBRVFmQUFhaUFQSUFnUURTSURRWWgvU3cwSklBSkJCR29oQmlBTElCeHFJaEpCQTJzaENrRUFJQUl2QVFKclFSOXhJUWNnSENFREEwQWdCRUh3QUdvUUQwVWdBeUFLU1hFRVFDQURJQVlnQkNnQ2NDSUlJQVFvQW5RaUQzUWdCM1pCQW5ScUlnSXZBUUE3QUFBZ0F5QUNMUUFEYWlJRElBWWdDQ0FQSUFJdEFBSnFJZ2gwSUFkMlFRSjBhaUlDTHdFQU93QUFJQVFnQ0NBQ0xRQUNhallDZENBRElBSXRBQU5xSVFNTUFRVWdFa0VDYXlFSUEwQWdCRUh3QUdvUUR5RVBJQVFvQW5BaENpQUVLQUowSVFJZ0F5QUlTeUFQY2tVRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUNpOEJBRHNBQUNBRUlBSWdDaTBBQW1vMkFuUWdBeUFLTFFBRGFpRUREQUVMQ3dOQUlBTWdDRTBFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pRHk4QkFEc0FBQ0FESUE4dEFBTnFJUU1nQWlBUExRQUNhaUVDREFFTEN3SkFJQU1nRWs4TkFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUF5MEFBRG9BQUNBRExRQURRUUZHQkVBZ0FpQURMUUFDYWlFQ0RBRUxJQUpCSDBzTkFFRWdJQUlnQXkwQUFtb2lBaUFDUVNCUEd5RUNDMEZzUVd3Z0N5QUVLQUo0SUFRb0FueEhHeUFDUVNCSEd5RUREQXNMQUFzQUN5QUVLQUkwSWdJZ0pTQU9hMHNOQ2lBT1JRUkFRUUFoQ1NBQ0RRSU1EZ3NnRGlBYkxRQUFJQUlRQXhvZ0FpRUpEQXdMSUJVZ0pTQU9hMHNOQ1NBT0RRRkJBQ0VKSUJWRkRRd0xRYlovSVFrTUVRc2dEaUFiSUJVUUFob2dGU0VKREFvTElCd2dHd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRkJBV3NPQXdFQUFnQUxJQWxCQTNZaEEwRUJEQUlMSUJzdkFBQkJCSFloQTBFQ0RBRUxJQlZCQkVrTkRpQUNMd0FESUFJdEFBVkJFSFJ5SWdKQmo0Q0FBVXNORGlBQ1FRUjJJUU5CQXdzaUFtb3RBQUFnQTBFZ2FoQURJUWtnQlNBRE5nS0E2d0VnQlNBSk5nTHc2Z0VnQWtFQmFpRUpEQVVMSUJVQ2Z3SkFBa0FDUUNBSlFRSjJRUU54UVFGckRnTUJBQUlBQ3lBSlFRTjJJUU5CQVF3Q0N5QWJMd0FBUVFSMklRTkJBZ3dCQ3lBQ0x3QURJQUl0QUFWQkVIUnlRUVIySVFOQkF3c2lBaUFEYWlJSlFTQnFTUVJBSUFrZ0ZVc05EU0FjSUFJZ0cyb2dBeEFDSVFJZ0JTQUROZ0tBNndFZ0JTQUNOZ0x3NmdFZ0FpQURhaUlDUWdBM0FCZ2dBa0lBTndBUUlBSkNBRGNBQ0NBQ1FnQTNBQUFNQlFzZ0JTQUROZ0tBNndFZ0JTQUNJQnRxTmdMdzZnRU1CQXNnQjBVRVFDQWVJQThnQ0NBVUVCUWlBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRlNFRERBTUxJQXRGSUFoRmNnMExJQXRCQ0hZaUF5QUlJQXRKQkg4Z0NFRUVkQ0FMYmdWQkR3dEJHR3dpQWtHTUNHb29BZ0JzSUFKQmlBaHFLQUlBYWlJR1FRTjJJQVpxSUFKQmdBaHFLQUlBSUFKQmhBaHFLQUlBSUFOc2Fra0VRQ01BUVJCckloQWtBQ0FlS0FJQUlRTWdGRUh3QkdwQkFFSHNBQkFESVFaQlZDRUNBa0FnQTBIL0FYRWlERUVNU3cwQUFrQWdGRUhjQ1dvZ0JpQVFRUWhxSUJCQkRHb2dEeUFJSUJSQjNBdHFJaGNRQ3lJU1FZaC9TdzBBSUJBb0Fnd2lCaUFNU3cwQklCUkJxQVZxSVEwZ0ZFR2tCV29oTmlBZVFRUnFJUkVnQTBHQWdJQjRjU0UzSUFaQkFXb2lFeUVDSUFZaEF3TkFJQUlpQjBFQmF5RUNJQU1pQ2tFQmF5RURJQlFnQ2tFQ2RHb29BdkFFUlEwQUMwRUJJQWNnQjBFQlRSc2hGa0VBSVFkQkFTRUNBMEFnQWlBV1J3UkFJQlFnQWtFQ2RDSURhaWdDOEFRaEdDQURJQTFxSUFjMkFnQWdBa0VCYWlFQ0lBY2dHR29oQnd3QkN3c2dEU0FITmdJQVFRQWhBaUFRS0FJSUlRTURRQ0FDSUFOSEJFQWdEU0FDSUJScVFkd0phaTBBQUNJWVFRSjBhaUlaSUJrb0FnQWlHVUVCYWpZQ0FDQVVJQmxCQVhScUloa2dHRG9BM1FVZ0dTQUNPZ0RjQlNBQ1FRRnFJUUlNQVFzTFFRQWhBeUFOUVFBMkFnQWdEQ0FHUVg5emFpRUdRUUVoQWdOQUlBSWdGa2NFUUNBVUlBSkJBblJxSWcwZ0F6WUNBQ0FOS0FMd0JDQUNJQVpxZENBRGFpRURJQUpCQVdvaEFnd0JDd3NnRENBVElBcHJJZ1pyUVFGcUlRb2dCaUVEQTBBZ0F5QUtTUVJBSUJRZ0EwRTBiR29oRFVFQklRSURRQ0FDSUJaSEJFQWdEU0FDUVFKMEloaHFJQlFnR0dvb0FnQWdBM1kyQWdBZ0FrRUJhaUVDREFFTEN5QURRUUZxSVFNTUFRc0xJQmNnRkVFMEVBSWhPQ0FVUVpBTWFpRTVJQk1nREdzaE9pQVVRZHdGYWlFWFFRQWhDZ05BQWtBQ1FDQUhJQXBIQkVCQkFTQU1JQk1nRnlBS1FRRjBhaUlDTFFBQklnMXJJZ05ySWhoMElSa2dBaTBBQUNFV0lEZ2dEVUVDZEdvaUh5Z0NBQ0VDSUFZZ0dFMEVRQ0EyUVFFZ0F5QTZhaUlOSUExQkFVd2JJaUJCQW5RaUpHb29BZ0FoRFNBNUlCUWdBMEUwYkdwQk5CQUNJU0VnRFVFQmRDRW1JQkVnQWtFQ2RHb2hJeUFnUVFGTkRRSWdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVnSUNFZ0pHb29BZ0FoSkVFQUlRSURRQ0FDSUNSR0RRTWdJeUFDUVFKMGFpQWdOZ0VBSUFKQkFXb2hBZ3dBQ3dBTElBSWdBaUFaYWlJTklBSWdEVXNiSVEwZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRURBMEFnQWlBTlJnMERJQkVnQWtFQ2RHb2dBellCQUNBQ1FRRnFJUUlNQUFzQUN5QWVJQXhCRUhRZ04zSWdESEpCZ0FKeU5nSUFEQU1MSUFjZ0RXc2hKQ0FYSUNacUlTWkJBQ0VOQTBBZ0RTQWtSZzBCUVFFZ0dDQVRJQ1lnRFVFQmRHb2lKeTBBQVNJQ2F5STdhM1FpUENBaElBSkJBblJxSWlBb0FnQWlBbW9oUFNBRElEdHFRUkIwUVlDQS9BZHhJQ2N0QUFCQkNIUnlJQlp5UVlDQWdCQnlJU2NEUUNBaklBSkJBblJxSUNjMkFRQWdBa0VCYWlJQ0lEMUpEUUFMSUNBZ0lDZ0NBQ0E4YWpZQ0FDQU5RUUZxSVEwTUFBc0FDeUFmSUI4b0FnQWdHV28yQWdBZ0NrRUJhaUVLREFBTEFBc2dFaUVDQ3lBUVFSQnFKQUFnQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZpRUREQU1MSUI0Z0R5QUlJQlFRRkNJQ1FZaC9TeUFDSUFoUGNnMExJQndnQ3lBQ0lBOXFJQWdnQW1zZ0hoQVhJUU1NQWdzZ0F3UkFJQndnQ3lBUElBZ2dBaEFXSVFNTUFnc2dIQ0FMSUE4Z0NDQUNFQmNoQXd3QkN5QWNJQXNnRHlBSUlBSVFGU0VEQ3lBRFFZaC9TdzBJSUFVZ0N6WUNnT3NCSUFVZ0hEWUM4T29CSUFWQkFUWUNnT29CSUJwQkFrWUVRQ0FGSUI0MkFnd0xJQXNnSEdvaUFrSUFOd0FBSUFKQ0FEY0FHQ0FDUWdBM0FCQWdBa0lBTndBSUlBbEJpSDlMRFFvTElBa2dGVVlOQ0NBVklBbHJJUVlnQlNnQ25Pc0JJUW9DUUNBSklCdHFJZ010QUFBaUQwVUVRRUVCSVFKQkFDRVBRYmgvSVFrZ0JrRUJSZzBCREFzTEFuOGdBMEVCYWlBUHdDSUNRUUJPRFFBYUlBSkJmMFlFUUNBR1FRTklEUXNnQXk4QUFVR0EvZ0ZxSVE4Z0EwRURhZ3dCQ3lBR1FRSklEUW9nQXkwQUFTQVBRUWgwY2tHQWdBSnJJUThnQTBFQ2Fnc2hFa0c0ZnlFSklCSkJBV29pQWlBVklCdHFJZ2RMRFFvZ0xDQUZJQkl0QUFBaUVrRUdka0VqUVFrZ0FpQUhJQUpyUWNBUVFkQVJRZkFTSUFVb0FvVHFBU0FLSUE4Z0ZCQWhJZ2xCaUg5TERRZ2dLeUFvSUJKQkJIWkJBM0ZCSDBFSUlBSWdDV29pQWlBSElBSnJRWUFMUVlBTVFZQVhJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQ0VHSWYwc05DRUZzSVFrZ0tpQXRJQkpCQW5aQkEzRkJORUVKSUFJZ0NHb2lBaUFISUFKclFZQU5RZUFPUVpBWklBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlCMEdJZjBzTkNpQUNJQWRxSUFOcklnSWhDU0FDUVloL1N3MEtDeUFPSUE5QkFFeHlEUUVMUWJwL0lRa01DQXNnSlNBT2F5RUpJQVlnQW1zaEJpQUNJQU5xSVFjQ1FBSkFBa0FnQ2tVRVFDQVBRUWxJSUFVcEE4anBBVUtCZ0lBSVZISU5BaUFvS0FJQUlnSkJDR29oRWlBQ0tBSUVJUXBCQUNFRFFRQWhBZ05BSUFNZ0NuWkZCRUFnQWlBU0lBTkJBM1JxTFFBQ1FSWkxhaUVDSUFOQkFXb2hBd3dCQ3dzZ0JVRUFOZ0tjNndFZ0FrRUlJQXByZEVFVVR3MEJEQU1MSUFWQkFEWUNuT3NCQ3lBRUlBVW9BdkRxQVNJRE5nTGNBU0FKSUE1cUlSWWdBeUFGS0FLQTZ3RnFJUmNDUUNBUFJRUkFJQTRoQnd3QkN5QUZLQUs0NlFFaEdpQUZLQUswNlFFaEdDQUZLQUt3NlFFaEVpQUZRUUUyQW9UcUFVRUFJUU1EUUNBRFFRTkhCRUFnQkNBRFFRSjBJZ0pxSUFJZ0JXcEJyTkFCYWlnQ0FEWUNaQ0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRVGhxSWdJZ0J5QUdFQTFCaUg5TERRTkJDQ0FQSUE5QkNFNGJJUjhnTkNBQ0lBVW9BZ0FRSGlBeklBSWdCU2dDQ0JBZUlESWdBaUFGS0FJRUVCNGdEaUFTYXlFWlFRQWhDQU5BSUFSQk9Hb1FEMEVEUmlBSUlCOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnZEJFSFlpRVVIL0FYRWhDeUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWd4QkVIWWlJVUgvQVhFaEVDQUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFZZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDa0gvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJS2F5SU5JQUlnQWlBTlN4c2lFeUFLYWpZQ1BDQUdJQVFvQWpnZ0NuUkJBQ0FUYTNZZ0FpQVRheUlUZEdvaENpQUVRVGhxRUE4YUlBSWdEVTBOQVNBRUlBUW9BandpQWlBVGFqWUNQQ0FFS0FJNElBSjBRUUFnRTJ0MklBcHFJUW9NQVFzZ0JDQUNJQVFvQWp3aURXbzJBandnQkNnQ09DQU5kRUVBSUFwcmRpQUdhaUVLSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUFvMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQURCRUFnQkNnQ1pDRUtEQU1MSUFRb0FtZ2hDZ3dCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFZZ0EwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnWkZJQVpxSVFvZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQW8yQW1RTHB5RUNJRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUJCcU5nSThJQVFvQWpnZ0JuUkJBQ0FoYTNZZ0Ftb2hBZ3NnQ3lBUWFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lBdHFOZ0k4SUFRb0FqZ2dCblJCQUNBUmEzWWdBMm9oQXdzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQmtFQUlBZEJHSFlpQ3lBRUtBSThhaUlRYTNZZ0MwRUNkRUdnSFdvb0FnQnhJQWRCLy84RGNXbzJBa3dnQkNBUUlBeEJHSFlpQjJvaUN6WUNQQ0FFSUFkQkFuUkJvQjFxS0FJQUlBWkJBQ0FMYTNaeElBeEIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdaQkdIWWlCeUFFS0FJOGFpSUxOZ0k4SUFRZ0IwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBdHJkbkVnQmtILy93TnhhallDVkNBRVFmQUFhaUFJUVF4c2FpSUdJQW8yQWdnZ0JpQUNOZ0lFSUFZZ0F6WUNBQ0FJUVFGcUlRZ2dBeUFaYWlBQ2FpRVpEQUVMQ3lBSUlCOUlEUU1nRmtFZ2F5RWhJQTRoQndOQUlBUkJPR29RRDBFRFJpQUlJQTlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ1pCRUhZaUkwSC9BWEVoQ2lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklnMUJFSFlpSUVIL0FYRWhFeUFFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRTWdRVUlnaUNCQVFpQ0lweUVMQWtBZ1FrSVFpS2NpREVIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSU1heUlSSUFJZ0FpQVJTeHNpRUNBTWFqWUNQQ0FESUFRb0FqZ2dESFJCQUNBUWEzWWdBaUFRYXlJTWRHb2hFQ0FFUVRocUVBOGFJQUlnRVUwTkFTQUVJQVFvQWp3aUFpQU1hallDUENBRUtBSTRJQUowUVFBZ0RHdDJJQkJxSVJBTUFRc2dCQ0FDSUFRb0Fqd2lFR28yQWp3Z0JDZ0NPQ0FRZEVFQUlBeHJkaUFEYWlFUUlBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlCQTJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FMQkVBZ0JDZ0NaQ0VRREFNTElBUW9BbWdoRUF3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBTWdDMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ05GSUFOcUlSQWdBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUJBMkFtUUxweUVNSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lCTnFOZ0k4SUFRb0FqZ2dBblJCQUNBZ2EzWWdER29oREFzZ0NpQVRha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQXBxTmdJOElBUW9BamdnQW5SQkFDQWphM1lnQzJvaEN3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUFrRUFJQVpCR0hZaUF5QUVLQUk4YWlJS2EzWWdBMEVDZEVHZ0hXb29BZ0J4SUFaQi8vOERjV28yQWt3Z0JDQUtJQTFCR0hZaUEyb2lCallDUENBRUlBTkJBblJCb0IxcUtBSUFJQUpCQUNBR2EzWnhJQTFCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnSkJHSFlpQXlBRUtBSThhaUlHTmdJOElBUWdBMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQVpyZG5FZ0FrSC8vd054YWpZQ1ZBSkFBa0FDUUNBRUtBTGNBU0lESUFSQjhBQnFJQWhCQjNGQkRHeHFJaE1vQWdBaUVXb2lJeUFYU3cwQUlBY2dFeWdDQkNJTklCRnFJZ3BxSUNGTERRQWdDa0VnYWlBV0lBZHJUUTBCQ3lBRUlCTW9BZ2cyQWhnZ0JDQVRLUUlBTndNUUlBY2dGaUFFUVJCcUlBUkIzQUZxSUJjZ0VpQVlJQm9RSHlFS0RBRUxJQWNnRVdvaEFpQVRLQUlJSVFZZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNBSkFJQkZCRVVrTkFDQUhJQU1wQUJBM0FCQWdCeUFES1FBWU53QVlJQkZCRUd0QkVVZ05BQ0FEUVJCcUlRTWdCMEVnYWlFUkEwQWdFU0FES1FBUU53QUFJQkVnQXlrQUdEY0FDQ0FSSUFNcEFDQTNBQkFnRVNBREtRQW9Od0FZSUFOQklHb2hBeUFSUVNCcUloRWdBa2tOQUFzTElBSWdCbXNoQXlBRUlDTTJBdHdCSUFJZ0Vtc2dCa2tFUUNBR0lBSWdHR3RMRFFjZ0dpQWFJQU1nRW1zaUEyb2lFU0FOYWs4RVFDQUNJQkVnRFJBS0dnd0NDeUFESUExcUlRMGdBaUFSUVFBZ0Eyc1FDaUFEYXlFQ0lCSWhBd3NnQmtFUVR3UkFJQUlnQXlrQUFEY0FBQ0FDSUFNcEFBZzNBQWdnRFVFUlNBMEJJQUlnRFdvaEJpQUNRUkJxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQUdTUTBBQ3d3QkN3SkFJQVpCQjAwRVFDQUNJQU10QUFBNkFBQWdBaUFETFFBQk9nQUJJQUlnQXkwQUFqb0FBaUFDSUFNdEFBTTZBQU1nQWlBRElBWkJBblFpQmtIQUhtb29BZ0JxSWdNb0FBQTJBQVFnQXlBR1FlQWVhaWdDQUdzaEF3d0JDeUFDSUFNcEFBQTNBQUFMSUExQkNVa05BQ0FDSUExcUlSRWdBa0VJYWlJR0lBTkJDR29pQTJ0QkQwd0VRQU5BSUFZZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQmtFSWFpSUdJQkZKRFFBTUFnc0FDeUFHSUFNcEFBQTNBQUFnQmlBREtRQUlOd0FJSUExQkdVZ05BQ0FDUVJocUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFSU1EwQUN3c2dDa0dJZjBzRVFDQUtJUWtNQmdVZ0V5QVFOZ0lJSUJNZ0REWUNCQ0FUSUFzMkFnQWdDRUVCYWlFSUlBY2dDbW9oQnlBTElCbHFJQXhxSVJrTUFnc0FDd3NnQ0NBUFNBMERJQWdnSDJzaEJnTkFBa0FnQmlBUFRnUkFRUUFoQXdOQUlBTkJBMFlOQWlBRklBTkJBblFpQW1wQnJOQUJhaUFDSUFScUtBSmtOZ0lBSUFOQkFXb2hBd3dBQ3dBTEFrQUNRQUpBSUFRb0F0d0JJZ01nQkVId0FHb2dCa0VIY1VFTWJHb2lDQ2dDQUNJTWFpSVFJQmRMRFFBZ0J5QUlLQUlFSWdzZ0RHb2lDbW9nSVVzTkFDQUtRU0JxSUJZZ0IydE5EUUVMSUFRZ0NDZ0NDRFlDS0NBRUlBZ3BBZ0EzQXlBZ0J5QVdJQVJCSUdvZ0JFSGNBV29nRnlBU0lCZ2dHaEFmSVFvTUFRc2dCeUFNYWlFQ0lBZ29BZ2doQ0NBSElBTXBBQUEzQUFBZ0J5QURLUUFJTndBSUFrQWdERUVSU1EwQUlBY2dBeWtBRURjQUVDQUhJQU1wQUJnM0FCZ2dERUVRYTBFUlNBMEFJQU5CRUdvaEF5QUhRU0JxSVF3RFFDQU1JQU1wQUJBM0FBQWdEQ0FES1FBWU53QUlJQXdnQXlrQUlEY0FFQ0FNSUFNcEFDZzNBQmdnQTBFZ2FpRURJQXhCSUdvaURDQUNTUTBBQ3dzZ0FpQUlheUVESUFRZ0VEWUMzQUVnQWlBU2F5QUlTUVJBSUFnZ0FpQVlhMHNOQnlBYUlCb2dBeUFTYXlJRGFpSU1JQXRxVHdSQUlBSWdEQ0FMRUFvYURBSUxJQU1nQzJvaEN5QUNJQXhCQUNBRGF4QUtJQU5ySVFJZ0VpRURDeUFJUVJCUEJFQWdBaUFES1FBQU53QUFJQUlnQXlrQUNEY0FDQ0FMUVJGSURRRWdBaUFMYWlFSUlBSkJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBSWdBeTBBQURvQUFDQUNJQU10QUFFNkFBRWdBaUFETFFBQ09nQUNJQUlnQXkwQUF6b0FBeUFDSUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQUlnQXlrQUFEY0FBQXNnQzBFSlNRMEFJQUlnQzJvaERDQUNRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dERWtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQzBFWlNBMEFJQUpCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXhKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdHQlNBR1FRRnFJUVlnQnlBS2FpRUhEQUlMQUFzTElBUW9BdHdCSVFNTFFicC9JUWtnRnlBRGF5SUNJQllnQjJ0TERRSWdCd1IvSUFjZ0F5QUNFQUlnQW1vRlFRQUxJQTVySVFrTUFnc2dCVUVBTmdLYzZ3RUxJQVFnQlNnQzhPb0JJZ00yQXR3QklBa2dEbW9oRENBRElBVW9Bb0RyQVdvaEVBSkFJQTlGQkVBZ0RpRUdEQUVMSUFVb0FyanBBU0VOSUFVb0FyVHBBU0VUSUFVb0FyRHBBU0VTSUFWQkFUWUNoT29CUVFBaEF3TkFJQU5CQTBjRVFDQUVJQU5CQW5RaUFtb2dBaUFGYWtHczBBRnFLQUlBTmdLY0FTQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFmQUFhaUlDSUFjZ0JoQU5RWWgvU3cwQklERWdBaUFGS0FJQUVCNGdNQ0FDSUFVb0FnZ1FIaUF2SUFJZ0JTZ0NCQkFlSUF4QklHc2hHQ0FPSVFZRFFDQUVLQUtJQVNBRUtBS0VBVUVEZEdvcEFnQWlRS2NpQ2tFUWRpSVpRZjhCY1NFTElBUW9BcGdCSUFRb0FwUUJRUU4wYWlrQ0FDSkJweUlXUVJCMkloOUIvd0Z4SVJvZ0JDZ0NrQUVnQkNnQ2pBRkJBM1JxS1FJQUlrSkNJSWluSVFjZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDRUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDZENJSWF5SVJJQUlnQWlBUlN4c2lGeUFJYWpZQ2RDQUhJQVFvQW5BZ0NIUkJBQ0FYYTNZZ0FpQVhheUlYZEdvaENDQUVRZkFBYWhBUEdpQUNJQkZORFFFZ0JDQUVLQUowSWdJZ0YybzJBblFnQkNnQ2NDQUNkRUVBSUJkcmRpQUlhaUVJREFFTElBUWdBaUFFS0FKMEloRnFOZ0owSUFRb0FuQWdFWFJCQUNBSWEzWWdCMm9oQ0NBRVFmQUFhaEFQR2dzZ0JDa0NuQUVoUkNBRUlBZzJBcHdCSUFRZ1JEY0NvQUVNQVFzQ1FDQUNSUVJBSUFNRVFDQUVLQUtjQVNFSURBTUxJQVFvQXFBQklRZ01BUXNnQkNBRUtBSjBJZ0pCQVdvMkFuUUNmeUFISUFORmFpQUVLQUp3SUFKMFFSOTJhaUlDUVFOR0JFQWdCQ2dDbkFGQkFXc01BUXNnQWtFQ2RDQUVhaWdDbkFFTElnZEZJQWRxSVFnZ0FrRUJSd1JBSUFRZ0JDZ0NvQUUyQXFRQkN3c2dCQ0FFS0FLY0FUWUNvQUVnQkNBSU5nS2NBUXVuSVFJZ1FVS0FnUHdIZzFCRkJFQWdCQ0FFS0FKMElnY2dHbW8yQW5RZ0JDZ0NjQ0FIZEVFQUlCOXJkaUFDYWlFQ0N5QUxJQnBxUVJSUEJFQWdCRUh3QUdvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NkQ0lISUF0cU5nSjBJQVFvQW5BZ0IzUkJBQ0FaYTNZZ0Eyb2hBd3NnQkVId0FHb1FEeG9nQkNBRUtBSndJZ2RCQUNBS1FSaDJJZ3NnQkNnQ2RHb2lHbXQySUF0QkFuUkJvQjFxS0FJQWNTQUtRZi8vQTNGcU5nS0VBU0FFSUJvZ0ZrRVlkaUlLYWlJTE5nSjBJQVFnQ2tFQ2RFR2dIV29vQWdBZ0IwRUFJQXRyZG5FZ0ZrSC8vd054YWpZQ2xBRWdCRUh3QUdvUUR4b2dCQ0JDcHlJSFFSaDJJZ29nQkNnQ2RHb2lDellDZENBRUlBcEJBblJCb0IxcUtBSUFJQVFvQW5CQkFDQUxhM1p4SUFkQi8vOERjV28yQW93QklBUWdBellDT0NBRUlBSTJBandnQkNBSU5nSkFBa0FDUUFKQUlBUW9BdHdCSWdzZ0Eyb2lGaUFRU3cwQUlBWWdBaUFEYWlJS2FpQVlTdzBBSUFwQklHb2dEQ0FHYTAwTkFRc2dCQ0FFUVVCcktBSUFOZ0lJSUFRZ0JDa0RPRGNEQUNBR0lBd2dCQ0FFUWR3QmFpQVFJQklnRXlBTkVCOGhDZ3dCQ3lBRElBWnFJUWNnQmlBTEtRQUFOd0FBSUFZZ0N5a0FDRGNBQ0FKQUlBTkJFVWtOQUNBR0lBc3BBQkEzQUJBZ0JpQUxLUUFZTndBWUlBTkJFR3RCRVVnTkFDQUxRUkJxSVFNZ0JrRWdhaUVMQTBBZ0N5QURLUUFRTndBQUlBc2dBeWtBR0RjQUNDQUxJQU1wQUNBM0FCQWdDeUFES1FBb053QVlJQU5CSUdvaEF5QUxRU0JxSWdzZ0Iwa05BQXNMSUFjZ0NHc2hBeUFFSUJZMkF0d0JJQWNnRW1zZ0NFa0VRQ0FJSUFjZ0UydExEUVFnRFNBTklBTWdFbXNpQTJvaUN5QUNhazhFUUNBSElBc2dBaEFLR2d3Q0N5QUhJQXRCQUNBRGF4QUtJQVFnQWlBRGFpSUNOZ0k4SUFOcklRY2dFaUVEQ3lBSVFSQlBCRUFnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0NBQ1FSRklEUUVnQWlBSGFpRUlJQWRCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQWNnQXkwQUFEb0FBQ0FISUFNdEFBRTZBQUVnQnlBRExRQUNPZ0FDSUFjZ0F5MEFBem9BQXlBSElBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFjZ0F5a0FBRGNBQUFzZ0FrRUpTUTBBSUFJZ0Iyb2hDeUFIUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnQzBrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0FrRVpTQTBBSUFkQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF0SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3REN5QUdJQXBxSVFZZ0JFSHdBR29RRHlFRElBOUJBV3NpRHcwQUMwRUFJUUlnQTBFQ1NRMEJBMEFnQWtFRFJ3UkFJQVVnQWtFQ2RDSURha0dzMEFGcUlBTWdCR29vQXB3Qk5nSUFJQUpCQVdvaEFnd0JDd3NnQkNnQzNBRWhBd3RCdW44aENTQVFJQU5ySWdJZ0RDQUdhMHNOQUNBR0JIOGdCaUFESUFJUUFpQUNhZ1ZCQUFzZ0Rtc2hDUXNnQ1VHSWYwc05CZ3NDUUNBRktBTHM2Z0ZGRFFBZ0JTQUZLUU9JNmdFZ0NhMThOd09JNmdFQ1FDQUZLQUxRNmdFaUFpQUphaUlJUVI5TkJFQWdEa1VOQVNBQ0lDSnFJQTRnQ1JBQ0dpQUZLQUxRNmdFZ0NXb2hDQXdCQ3lBT0lRTWdBZ1JBSUFJZ0ltb2dBMEVnSUFKckVBSWFJQVVvQXREcUFTRUNJQVZCQURZQzBPb0JJQVVnQlNrRGtPb0JJQVVwQUxEcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RrT29CSUFVZ0JTa0RtT29CSUFVcEFManFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEbU9vQklBVWdCU2tEb09vQklBVXBBTURxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG9Pb0JJQVVnQlNrRHFPb0JJQVVwQU1qcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RxT29CSUFNZ0FtdEJJR29oQXdzZ0NTQU9haUlDSUFOQklHcFBCRUFnQWtFZ2F5RUdJQVVwQTZqcUFTRS9JQVVwQTZEcUFTRkFJQVVwQTVqcUFTRkJJQVVwQTVEcUFTRkNBMEFnQXlrQUdFTFAxdE8rMHNlcjJVSitJRDk4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVDhnQXlrQUVFTFAxdE8rMHNlcjJVSitJRUI4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUFnQXlrQUNFTFAxdE8rMHNlcjJVSitJRUY4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUVnQXlrQUFFTFAxdE8rMHNlcjJVSitJRUo4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUlnQTBFZ2FpSURJQVpORFFBTElBVWdQemNEcU9vQklBVWdRRGNEb09vQklBVWdRVGNEbU9vQklBVWdRamNEa09vQkN5QUNJQU5ORFFFZ0lpQURJQUlnQTJzaUNCQUNHZ3NnQlNBSU5nTFE2Z0VMSURVZ0ZXc2hBeUFWSUJ0cUlRSWdDU0FPYWlFT0lBUW9BakJGRFFBTElDa3BBd0FpUDBKL1VTQS9JQTRnSFd1c1VYSkZCRUJCYkNFSkRBWUxJQVVvQXVEcEFRUkFRV29oQ1NBRFFRUkpEUVlnQlNnQzZPb0JSUVJBSUNJZ0JTZ0MwT29CYWlFS0FuNGdCU2tEaU9vQklqOUNJRm9FUUNBRktRT1k2Z0VpUUVJSGlTQUZLUU9RNmdFaVFVSUJpWHdnQlNrRG9Pb0JJa0pDRElsOElBVXBBNmpxQVNKRFFoS0pmQ0JCUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlJRUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9mb1ZDaDVXdnI1aTIzcHVlZjM1Q25hTzE2b094allyNkFIMGdRa0xQMXRPKzBzZXIyVUorUWgrSlFvZVZyNitZdHQ2Ym5uOStoVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTQkRRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOURBRUxJQVVwQTZEcUFVTEZ6OW15OGVXNjZpZDhDeUEvZkNFL0lDSWhCZ05BSUFvZ0JrRUlhaUlIVHdSQUlBWXBBQUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9maUEvaFVJYmlVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNFL0lBY2hCZ3dCQ3dzQ1FDQUtJQVpCQkdvaUNFa0VRQ0FHSVFnTUFRc2dCalVBQUVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUlYaVVMUDF0Tyswc2VyMlVKK1F2bnozZkdaOXBtckZud2hQd3NEUUNBSUlBcEpCRUFnQ0RFQUFFTEZ6OW15OGVXNjZpZCtJRCtGUWd1SlFvZVZyNitZdHQ2Ym5uOStJVDhnQ0VFQmFpRUlEQUVMQ3lBQ0tBQUFJRDlDSVlnZ1A0VkN6OWJUdnRMSHE5bENmaUkvUWgySUlEK0ZRdm56M2ZHWjlwbXJGbjRpUDBJZ2lDQS9oYWRIRFFjTElBTkJCR3NoQXlBQ1FRUnFJUUlMSUE0Z0hXc2lDVUdKZjA4TkJDQUJJQWxySVFFZ0NTQWRhaUVkUVFFaFBnd0JDd3RCdUg4aEJ5QUREUVFnSFNBQWF5RUhEQVFMUVd3aENRd0JDMEc0ZnlFSkMwRzRmeUVISUFsQmRrWWdQbkVOQVFzZ0NTRUhDeWdDQUEwQUlBVkIvT29CYWlnQ0FDRUJJQVZCK09vQmFpZ0NBQ0VBSUFVUUdDQUZLQUt3NndFZ0FDQUJFQk1nQlVFQU5nS3c2d0VnQlNnQ3BPc0JJZ0lFUUFKQUFrQUNRQUpBSUFJb0FnQWlBd1JBSUFCRkRRSWdBU0FESUFBUkFnQU1BUXNnQUVVTkFnc2dBU0FDSUFBUkFnQU1BZ3NnQXhBR0N5QUNFQVlMSUFWQkFEWUNwT3NCQ3lBQUJFQWdBU0FGSUFBUkFnQU1BUXNnQlJBR0N5QUVRZUFCYWlRQUlBY0xDNmdWQ1FCQmlBZ0xEUUVBQUFBQkFBQUFBZ0FBQUFJQVFhQUlDN01HQVFBQUFBRUFBQUFDQUFBQUFnQUFBQ1lBQUFDQ0FBQUFJUVVBQUVvQUFBQm5DQUFBSmdBQUFNQUJBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFLUUFBQUN3Q0FBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUx3QUFBTW9DQUFDQUFBQUFpZ1VBQUVvQUFBQ0VDUUFBTlFBQUFITURBQUNBQUFBQW5RVUFBRW9BQUFDZ0NRQUFQUUFBQUlFREFBQ0FBQUFBNndVQUFFc0FBQUErQ2dBQVJBQUFBSjREQUFDQUFBQUFUUVlBQUVzQUFBQ3FDZ0FBU3dBQUFMTURBQUNBQUFBQXdRWUFBRTBBQUFBZkRRQUFUUUFBQUZNRUFBQ0FBQUFBSXdnQUFGRUFBQUNtRHdBQVZBQUFBSmtFQUFDQUFBQUFTd2tBQUZjQUFBQ3hFZ0FBV0FBQUFOb0VBQUNBQUFBQWJ3a0FBRjBBQUFBakZBQUFWQUFBQUVVRkFBQ0FBQUFBVkFvQUFHb0FBQUNNRkFBQWFnQUFBSzhGQUFDQUFBQUFkZ2tBQUh3QUFBQk9FQUFBZkFBQUFOSUNBQUNBQUFBQVl3Y0FBSkVBQUFDUUJ3QUFrZ0FBQUFBQUFBQUJBQUFBQVFBQUFBVUFBQUFOQUFBQUhRQUFBRDBBQUFCOUFBQUEvUUFBQVAwQkFBRDlBd0FBL1FjQUFQMFBBQUQ5SHdBQS9UOEFBUDEvQUFEOS93QUEvZjhCQVAzL0F3RDkvd2NBL2Y4UEFQMy9Id0Q5L3o4QS9mOS9BUDMvL3dEOS8vOEIvZi8vQS8zLy93ZjkvLzhQL2YvL0gvMy8vei85Ly85L0FBQUFBQUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFSQUFBQUVnQUFBQk1BQUFBVUFBQUFGUUFBQUJZQUFBQVhBQUFBR0FBQUFCa0FBQUFhQUFBQUd3QUFBQndBQUFBZEFBQUFIZ0FBQUI4QUFBQURBQUFBQkFBQUFBVUFBQUFHQUFBQUJ3QUFBQWdBQUFBSkFBQUFDZ0FBQUFzQUFBQU1BQUFBRFFBQUFBNEFBQUFQQUFBQUVBQUFBQkVBQUFBU0FBQUFFd0FBQUJRQUFBQVZBQUFBRmdBQUFCY0FBQUFZQUFBQUdRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBSHdBQUFDQUFBQUFoQUFBQUlnQUFBQ01BQUFBbEFBQUFKd0FBQUNrQUFBQXJBQUFBTHdBQUFETUFBQUE3QUFBQVF3QUFBRk1BQUFCakFBQUFnd0FBQUFNQkFBQURBZ0FBQXdRQUFBTUlBQUFERUFBQUF5QUFBQU5BQUFBRGdBQUFBd0FCQUVIZ0R3dFJBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCQUFBQUFVQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QUFBQVFBRUhFRUF1TEFRRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVNBQUFBRkFBQUFCWUFBQUFZQUFBQUhBQUFBQ0FBQUFBb0FBQUFNQUFBQUVBQUFBQ0FBQUFBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFBQUVBUVpBU0MrWUVBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQUJBQUFBQkFBQUFBZ0FBQUFBQUFBQUFRQUJBUVlBQUFBQUFBQUVBQUFBQUJBQUFBUUFBQUFBSUFBQUJRRUFBQUFBQUFBRkF3QUFBQUFBQUFVRUFBQUFBQUFBQlFZQUFBQUFBQUFGQndBQUFBQUFBQVVKQUFBQUFBQUFCUW9BQUFBQUFBQUZEQUFBQUFBQUFBWU9BQUFBQUFBQkJSQUFBQUFBQUFFRkZBQUFBQUFBQVFVV0FBQUFBQUFDQlJ3QUFBQUFBQU1GSUFBQUFBQUFCQVV3QUFBQUlBQUdCVUFBQUFBQUFBY0ZnQUFBQUFBQUNBWUFBUUFBQUFBS0JnQUVBQUFBQUF3R0FCQUFBQ0FBQUFRQUFBQUFBQUFBQkFFQUFBQUFBQUFGQWdBQUFDQUFBQVVFQUFBQUFBQUFCUVVBQUFBZ0FBQUZCd0FBQUFBQUFBVUlBQUFBSUFBQUJRb0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFJQUFCQlJBQUFBQUFBQUVGRWdBQUFDQUFBUVVXQUFBQUFBQUNCUmdBQUFBZ0FBTUZJQUFBQUFBQUF3VW9BQUFBQUFBR0JFQUFBQUFRQUFZRVFBQUFBQ0FBQndXQUFBQUFBQUFKQmdBQ0FBQUFBQXNHQUFnQUFEQUFBQVFBQUFBQUVBQUFCQUVBQUFBZ0FBQUZBZ0FBQUNBQUFBVURBQUFBSUFBQUJRVUFBQUFnQUFBRkJnQUFBQ0FBQUFVSUFBQUFJQUFBQlFrQUFBQWdBQUFGQ3dBQUFDQUFBQVVNQUFBQUFBQUFCZzhBQUFBZ0FBRUZFZ0FBQUNBQUFRVVVBQUFBSUFBQ0JSZ0FBQUFnQUFJRkhBQUFBQ0FBQXdVb0FBQUFJQUFFQlRBQUFBQUFBQkFHQUFBQkFBQUFEd1lBZ0FBQUFBQU9CZ0JBQUFBQUFBMEdBQ0FBUVlBWEM0Y0NBUUFCQVFVQUFBQUFBQUFGQUFBQUFBQUFCZ1E5QUFBQUFBQUpCZjBCQUFBQUFBOEYvWDhBQUFBQUZRWDkveDhBQUFBREJRVUFBQUFBQUFjRWZRQUFBQUFBREFYOUR3QUFBQUFTQmYzL0F3QUFBQmNGL2Y5L0FBQUFCUVVkQUFBQUFBQUlCUDBBQUFBQUFBNEYvVDhBQUFBQUZBWDkvdzhBQUFBQ0JRRUFBQUFRQUFjRWZRQUFBQUFBQ3dYOUJ3QUFBQUFSQmYzL0FRQUFBQllGL2Y4L0FBQUFCQVVOQUFBQUVBQUlCUDBBQUFBQUFBMEYvUjhBQUFBQUV3WDkvd2NBQUFBQkJRRUFBQUFRQUFZRVBRQUFBQUFBQ2dYOUF3QUFBQUFRQmYzL0FBQUFBQndGL2YvL0R3QUFHd1g5Ly84SEFBQWFCZjMvL3dNQUFCa0YvZi8vQVFBQUdBWDkvLzhBUVpBWkM0WUVBUUFCQVFZQUFBQUFBQUFHQXdBQUFBQUFBQVFFQUFBQUlBQUFCUVVBQUFBQUFBQUZCZ0FBQUFBQUFBVUlBQUFBQUFBQUJRa0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFBQUFBQmhBQUFBQUFBQUFHRXdBQUFBQUFBQVlXQUFBQUFBQUFCaGtBQUFBQUFBQUdIQUFBQUFBQUFBWWZBQUFBQUFBQUJpSUFBQUFBQUFFR0pRQUFBQUFBQVFZcEFBQUFBQUFDQmk4QUFBQUFBQU1HT3dBQUFBQUFCQVpUQUFBQUFBQUhCb01BQUFBQUFBa0dBd0lBQUJBQUFBUUVBQUFBQUFBQUJBVUFBQUFnQUFBRkJnQUFBQUFBQUFVSEFBQUFJQUFBQlFrQUFBQUFBQUFGQ2dBQUFBQUFBQVlNQUFBQUFBQUFCZzhBQUFBQUFBQUdFZ0FBQUFBQUFBWVZBQUFBQUFBQUJoZ0FBQUFBQUFBR0d3QUFBQUFBQUFZZUFBQUFBQUFBQmlFQUFBQUFBQUVHSXdBQUFBQUFBUVluQUFBQUFBQUNCaXNBQUFBQUFBTUdNd0FBQUFBQUJBWkRBQUFBQUFBRkJtTUFBQUFBQUFnR0F3RUFBQ0FBQUFRRUFBQUFNQUFBQkFRQUFBQVFBQUFFQlFBQUFDQUFBQVVIQUFBQUlBQUFCUWdBQUFBZ0FBQUZDZ0FBQUNBQUFBVUxBQUFBQUFBQUJnNEFBQUFBQUFBR0VRQUFBQUFBQUFZVUFBQUFBQUFBQmhjQUFBQUFBQUFHR2dBQUFBQUFBQVlkQUFBQUFBQUFCaUFBQUFBQUFCQUdBd0FCQUFBQUR3WURnQUFBQUFBT0JnTkFBQUFBQUEwR0F5QUFBQUFBREFZREVBQUFBQUFMQmdNSUFBQUFBQW9HQXdRQVFhUWRDOWtCQVFBQUFBTUFBQUFIQUFBQUR3QUFBQjhBQUFBL0FBQUFmd0FBQVA4QUFBRC9BUUFBL3dNQUFQOEhBQUQvRHdBQS94OEFBUDgvQUFEL2Z3QUEvLzhBQVAvL0FRRC8vd01BLy84SEFQLy9Ed0QvL3g4QS8vOC9BUC8vZndELy8vOEEvLy8vQWYvLy93UC8vLzhILy8vL0QvLy8veC8vLy84Ly8vLy9md0FBQUFBQkFBQUFBZ0FBQUFRQUFBQUFBQUFBQWdBQUFBUUFBQUFJQUFBQUFBQUFBQUVBQUFBQ0FBQUFBUUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQWdBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dCQmdCOExBNEFSQVE9PSI7dmFyIHllPW5ldyBQQSxtZT0hMTthc3luYyBmdW5jdGlvbiBDcihBLHQsZSl7bGV0IEk9bnVsbDt0eXBlb2YgQSE9InN0cmluZyI/ST1BLmhyZWY6QS5zdGFydHNXaXRoKCJodHRwIik/ST1BOkk9YCR7dH0vJHtBfWAsSS5lbmRzV2l0aCgiLmpzIikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtMykpLEkuZW5kc1dpdGgoIi53YXNtIikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtNSkpLEkuZW5kc1dpdGgoIi53YXNtLnpzdCIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTkpKTtsZXQgcj1gJHtJfS53YXNtYCxnPWF3YWl0IHhBLmdldChgJHtyfS56c3RgLHtyZXNwb25zZVR5cGU6ImFycmF5YnVmZmVyIixwYXJhbXM6ZX0pO21lfHwoYXdhaXQgeWUuaW5pdCgpLG1lPSEwKTtsZXQgbj15ZS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoZy5kYXRhKSkuYnVmZmVyO3JldHVybihhd2FpdCBpbXBvcnQoYCR7SX0uanNgKSkuZGVmYXVsdCh7d2FzbUJpbmFyeTpufSl9dmFyIHdlPUNyO3ZhciBqQT1uZXcgTWFwO2FzeW5jIGZ1bmN0aW9uIEJyKEEsdCxlKXtsZXQgST1BLHI9QSxnPW51bGw7cmV0dXJuIHR5cGVvZiBBIT0ic3RyaW5nIiYmKEk9bmV3IFVSTChBLmhyZWYpLHI9SS5ocmVmKSxqQS5oYXMocik/Zz1hd2FpdCBqQS5nZXQocik6KGpBLnNldChyLHdlKEksdCxlKSksZz1hd2FpdCBqQS5nZXQocikpLGd9dmFyIHBlPUJyO3ZhciBhcj17VGV4dEZpbGU6IlRleHRGaWxlIixCaW5hcnlGaWxlOiJCaW5hcnlGaWxlIixUZXh0U3RyZWFtOiJUZXh0U3RyZWFtIixCaW5hcnlTdHJlYW06IkJpbmFyeVN0cmVhbSIsSW1hZ2U6IkltYWdlIixQb2ludFNldDoiUG9pbnRTZXQiLE1lc2g6Ik1lc2giLFBvbHlEYXRhOiJQb2x5RGF0YSIsVHJhbnNmb3JtTGlzdDoiVHJhbnNmb3JtTGlzdCIsSnNvbkNvbXBhdGlibGU6Ikpzb25Db21wYXRpYmxlIn0sZD1hcjt2YXIgUXI9e0ludDg6ImludDgiLFVJbnQ4OiJ1aW50OCIsSW50MTY6ImludDE2IixVSW50MTY6InVpbnQxNiIsSW50MzI6ImludDMyIixVSW50MzI6InVpbnQzMiIsSW50NjQ6ImludDY0IixVSW50NjQ6InVpbnQ2NCIsU2l6ZVZhbHVlVHlwZToidWludDY0IixJZGVudGlmaWVyVHlwZToidWludDY0IixJbmRleFZhbHVlVHlwZToiaW50NjQiLE9mZnNldFZhbHVlVHlwZToiaW50NjQifSxVPVFyO3ZhciBFcj17RmxvYXQzMjoiZmxvYXQzMiIsRmxvYXQ2NDoiZmxvYXQ2NCIsU3BhY2VQcmVjaXNpb25UeXBlOiJmbG9hdDY0In0sVj1FcjtmdW5jdGlvbiBjcihBLHQpe2xldCBlPW51bGw7c3dpdGNoKEEpe2Nhc2UgVS5VSW50ODp7ZT1uZXcgVWludDhBcnJheSh0KTticmVha31jYXNlIFUuSW50ODp7ZT1uZXcgSW50OEFycmF5KHQpO2JyZWFrfWNhc2UgVS5VSW50MTY6e2U9bmV3IFVpbnQxNkFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQxNjp7ZT1uZXcgSW50MTZBcnJheSh0KTticmVha31jYXNlIFUuVUludDMyOntlPW5ldyBVaW50MzJBcnJheSh0KTticmVha31jYXNlIFUuSW50MzI6e2U9bmV3IEludDMyQXJyYXkodCk7YnJlYWt9Y2FzZSBVLlVJbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnVWludDY0QXJyYXk9PSJmdW5jdGlvbiI/ZT1uZXcgQmlnVWludDY0QXJyYXkodCk6ZT1uZXcgVWludDhBcnJheSh0KTticmVha31jYXNlIFUuSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ0ludDY0QXJyYXk9PSJmdW5jdGlvbiI/ZT1uZXcgQmlnSW50NjRBcnJheSh0KTplPW5ldyBVaW50OEFycmF5KHQpO2JyZWFrfWNhc2UgVi5GbG9hdDMyOntlPW5ldyBGbG9hdDMyQXJyYXkodCk7YnJlYWt9Y2FzZSBWLkZsb2F0NjQ6e2U9bmV3IEZsb2F0NjRBcnJheSh0KTticmVha31jYXNlIm51bGwiOntlPW51bGw7YnJlYWt9Y2FzZSBudWxsOntlPW51bGw7YnJlYWt9ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlR5cGUgaXMgbm90IHN1cHBvcnRlZCBhcyBhIFR5cGVkQXJyYXkiKX1yZXR1cm4gZX12YXIgcT1jcjt2YXIgUmU9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI9PSJmdW5jdGlvbiIsU2U9bmV3IFRleHRFbmNvZGVyLEZlPW5ldyBUZXh0RGVjb2RlcigidXRmLTgiKTtmdW5jdGlvbiBmcihBLHQpe2xldCBlPXtmbGFnczoiciIsZW5jb2Rpbmc6ImJpbmFyeSJ9LEk9QS5mc19vcGVuKHQsZS5mbGFncyksZz1BLmZzX3N0YXQodCkuc2l6ZSxvPW51bGw7UmU/bz1uZXcgU2hhcmVkQXJyYXlCdWZmZXIoZyk6bz1uZXcgQXJyYXlCdWZmZXIoZyk7bGV0IG49bmV3IFVpbnQ4QXJyYXkobyk7cmV0dXJuIEEuZnNfcmVhZChJLG4sMCxnLDApLEEuZnNfY2xvc2UoSSksbn1mdW5jdGlvbiBOZShBLHQsZSl7bGV0IEk9bnVsbDtSZT9JPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihlKTpJPW5ldyBBcnJheUJ1ZmZlcihlKTtsZXQgcj1uZXcgVWludDhBcnJheShJKSxnPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcix0LGUpO3JldHVybiByLnNldChnKSxyfWZ1bmN0aW9uIHcoQSx0LGUsSSl7bGV0IHI9MDtyZXR1cm4gdCE9PW51bGwmJihyPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2FycmF5X2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUsSSx0LmJ1ZmZlci5ieXRlTGVuZ3RoXSksQS5IRUFQVTguc2V0KG5ldyBVaW50OEFycmF5KHQuYnVmZmVyKSxyKSkscn1mdW5jdGlvbiB4KEEsdCxlKXtsZXQgST1KU09OLnN0cmluZ2lmeSh0KSxyPUEubGVuZ3RoQnl0ZXNVVEY4KEkpKzEsZz1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9qc29uX2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUscl0pO0Euc3RyaW5nVG9VVEY4KEksZyxyKX1mdW5jdGlvbiBTKEEsdCxlLEkpe2xldCByPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsZV0pLGc9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxlXSksbz1OZShBLHIsZyk7cmV0dXJuIHEoSSxvLmJ1ZmZlcil9ZnVuY3Rpb24gdUEoQSx0KXtsZXQgZT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfanNvbl9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciJdLFswLHRdKSxJPUEuVVRGOFRvU3RyaW5nKGUpO3JldHVybiBKU09OLnBhcnNlKEkpfWZ1bmN0aW9uIGxyKEEsdCxlLEkpe0khPW51bGwmJkkubGVuZ3RoPjAmJkkuZm9yRWFjaChmdW5jdGlvbihCLHMpe3N3aXRjaChCLnR5cGUpe2Nhc2UgZC5UZXh0U3RyZWFtOntsZXQgQz1TZS5lbmNvZGUoQi5kYXRhLmRhdGEpLGw9dyhBLEMscywwKSxhPXtzaXplOkMuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07eChBLGEscyk7YnJlYWt9Y2FzZSBkLkpzb25Db21wYXRpYmxlOntsZXQgQz1TZS5lbmNvZGUoSlNPTi5zdHJpbmdpZnkoQi5kYXRhKSksbD13KEEsQyxzLDApLGE9e3NpemU6Qy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTt4KEEsYSxzKTticmVha31jYXNlIGQuQmluYXJ5U3RyZWFtOntsZXQgQz1CLmRhdGEuZGF0YSxsPXcoQSxDLHMsMCksYT17c2l6ZTpDLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O3goQSxhLHMpO2JyZWFrfWNhc2UgZC5UZXh0RmlsZTp7QS5mc193cml0ZUZpbGUoQi5kYXRhLnBhdGgsQi5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgZC5CaW5hcnlGaWxlOntBLmZzX3dyaXRlRmlsZShCLmRhdGEucGF0aCxCLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBkLkltYWdlOntsZXQgQz1CLmRhdGEsbD13KEEsQy5kYXRhLHMsMCksYT13KEEsQy5kaXJlY3Rpb24scywxKSxRPXR5cGVvZiBDLm1ldGFkYXRhPy5lbnRyaWVzPCJ1Ij9BcnJheS5mcm9tKEMubWV0YWRhdGEuZW50cmllcygpKTpbXSxmPXtpbWFnZVR5cGU6Qy5pbWFnZVR5cGUsbmFtZTpDLm5hbWUsb3JpZ2luOkMub3JpZ2luLHNwYWNpbmc6Qy5zcGFjaW5nLGRpcmVjdGlvbjpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2F9YCxzaXplOkMuc2l6ZSxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG1ldGFkYXRhOlF9O3goQSxmLHMpO2JyZWFrfWNhc2UgZC5NZXNoOntsZXQgQz1CLmRhdGEsbD13KEEsQy5wb2ludHMscywwKSxhPXcoQSxDLmNlbGxzLHMsMSksUT13KEEsQy5wb2ludERhdGEscywyKSxmPXcoQSxDLmNlbGxEYXRhLHMsMyksYz17bWVzaFR5cGU6Qy5tZXNoVHlwZSxuYW1lOkMubmFtZSxudW1iZXJPZlBvaW50czpDLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxudW1iZXJPZkNlbGxzOkMubnVtYmVyT2ZDZWxscyxjZWxsczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2F9YCxjZWxsQnVmZmVyU2l6ZTpDLmNlbGxCdWZmZXJTaXplLG51bWJlck9mUG9pbnRQaXhlbHM6Qy5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YCxudW1iZXJPZkNlbGxQaXhlbHM6Qy5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWB9O3goQSxjLHMpO2JyZWFrfWNhc2UgZC5Qb2ludFNldDp7bGV0IEM9Qi5kYXRhLGw9dyhBLEMucG9pbnRzLHMsMCksYT13KEEsQy5wb2ludERhdGEscywxKSxRPXtwb2ludFNldFR5cGU6Qy5wb2ludFNldFR5cGUsbmFtZTpDLm5hbWUsbnVtYmVyT2ZQb2ludHM6Qy5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbnVtYmVyT2ZQb2ludFBpeGVsczpDLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7YX1gfTt4KEEsUSxzKTticmVha31jYXNlIGQuVHJhbnNmb3JtTGlzdDp7bGV0IEM9Qi5kYXRhLGw9W10sYT0wO0MuZm9yRWFjaChRPT57bGV0IGY9IiIsYz0iIjtRLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYoZj1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3coQSxRLmZpeGVkUGFyYW1ldGVycyxzLGEpfWAsYSs9MSxjPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dyhBLFEucGFyYW1ldGVycyxzLGEpfWAsYSs9MSk7bGV0IEQ9e3RyYW5zZm9ybVR5cGU6US50cmFuc2Zvcm1UeXBlLG51bWJlck9mRml4ZWRQYXJhbWV0ZXJzOlEubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnMsbnVtYmVyT2ZQYXJhbWV0ZXJzOlEubnVtYmVyT2ZQYXJhbWV0ZXJzLG5hbWU6US5uYW1lLGlucHV0U3BhY2VOYW1lOlEuaW5wdXRTcGFjZU5hbWUsb3V0cHV0U3BhY2VOYW1lOlEub3V0cHV0U3BhY2VOYW1lLHBhcmFtZXRlcnM6YyxmaXhlZFBhcmFtZXRlcnM6Zn07bC5wdXNoKEQpfSkseChBLGwscyk7YnJlYWt9Y2FzZSBkLlBvbHlEYXRhOntsZXQgQz1CLmRhdGEsbD13KEEsQy5wb2ludHMscywwKSxhPXcoQSxDLnZlcnRpY2VzLHMsMSksUT13KEEsQy5saW5lcyxzLDIpLGY9dyhBLEMucG9seWdvbnMscywzKSxjPXcoQSxDLnRyaWFuZ2xlU3RyaXBzLHMsNCksRD13KEEsQy5wb2ludERhdGEscyw1KSxGPXcoQSxDLnBvaW50RGF0YSxzLDYpLHk9e3BvbHlEYXRhVHlwZTpDLnBvbHlEYXRhVHlwZSxuYW1lOkMubmFtZSxudW1iZXJPZlBvaW50czpDLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCx2ZXJ0aWNlc0J1ZmZlclNpemU6Qy52ZXJ0aWNlc0J1ZmZlclNpemUsdmVydGljZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHthfWAsbGluZXNCdWZmZXJTaXplOkMubGluZXNCdWZmZXJTaXplLGxpbmVzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLHBvbHlnb25zQnVmZmVyU2l6ZTpDLnBvbHlnb25zQnVmZmVyU2l6ZSxwb2x5Z29uczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YCx0cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU6Qy50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemUsdHJpYW5nbGVTdHJpcHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWAsbnVtYmVyT2ZQb2ludFBpeGVsczpDLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7RH1gLG51bWJlck9mQ2VsbFBpeGVsczpDLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0Z9YH07eChBLHkscyk7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgaW5wdXQgSW50ZXJmYWNlVHlwZSIpfX0pLEEucmVzZXRNb2R1bGVTdGRvdXQoKSxBLnJlc2V0TW9kdWxlU3RkZXJyKCk7bGV0IHI9QS5zdGFja1NhdmUoKSxnPTA7dHJ5e2c9QS5jYWxsTWFpbih0LnNsaWNlKCkpfWNhdGNoKEIpe3Rocm93IHR5cGVvZiBCPT0ibnVtYmVyIiYmKGNvbnNvbGUubG9nKCJFeGNlcHRpb24gd2hpbGUgcnVubmluZyBwaXBlbGluZToiKSxjb25zb2xlLmxvZygic3Rkb3V0OiIsQS5nZXRNb2R1bGVTdGRvdXQoKSksY29uc29sZS5lcnJvcigic3RkZXJyOiIsQS5nZXRNb2R1bGVTdGRlcnIoKSksdHlwZW9mIEEuZ2V0RXhjZXB0aW9uTWVzc2FnZTwidSI/Y29uc29sZS5lcnJvcigiZXhjZXB0aW9uOiIsQS5nZXRFeGNlcHRpb25NZXNzYWdlKEIpKTpjb25zb2xlLmVycm9yKCJCdWlsZCBtb2R1bGUgaW4gRGVidWcgbW9kZSBmb3IgZXhjZXB0aW9uIG1lc3NhZ2UgaW5mb3JtYXRpb24uIikpLEJ9ZmluYWxseXtBLnN0YWNrUmVzdG9yZShyKX1sZXQgbz1BLmdldE1vZHVsZVN0ZG91dCgpLG49QS5nZXRNb2R1bGVTdGRlcnIoKSxFPVtdO3JldHVybiBlIT1udWxsJiZlLmxlbmd0aD4wJiZnPT09MCYmZS5mb3JFYWNoKGZ1bmN0aW9uKEIscyl7bGV0IEM9bnVsbDtzd2l0Y2goQi50eXBlKXtjYXNlIGQuVGV4dFN0cmVhbTp7bGV0IGE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxmPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixhLFEpO0M9e2RhdGE6RmUuZGVjb2RlKGYpfTticmVha31jYXNlIGQuSnNvbkNvbXBhdGlibGU6e2xldCBhPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksZj1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsYSxRKTtDPUpTT04ucGFyc2UoRmUuZGVjb2RlKGYpKTticmVha31jYXNlIGQuQmluYXJ5U3RyZWFtOntsZXQgYT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pO0M9e2RhdGE6TmUoQSxhLFEpfTticmVha31jYXNlIGQuVGV4dEZpbGU6e0M9e3BhdGg6Qi5kYXRhLnBhdGgsZGF0YTpBLmZzX3JlYWRGaWxlKEIuZGF0YS5wYXRoLHtlbmNvZGluZzoidXRmOCJ9KX07YnJlYWt9Y2FzZSBkLkJpbmFyeUZpbGU6e0M9e3BhdGg6Qi5kYXRhLnBhdGgsZGF0YTpmcihBLEIuZGF0YS5wYXRoKX07YnJlYWt9Y2FzZSBkLkltYWdlOntsZXQgYT11QShBLHMpO2EuZGF0YT1TKEEscywwLGEuaW1hZ2VUeXBlLmNvbXBvbmVudFR5cGUpLGEuZGlyZWN0aW9uPVMoQSxzLDEsVi5GbG9hdDY0KSxhLm1ldGFkYXRhPW5ldyBNYXAoYS5tZXRhZGF0YSksQz1hO2JyZWFrfWNhc2UgZC5NZXNoOntsZXQgYT11QShBLHMpO2EubnVtYmVyT2ZQb2ludHM+MD9hLnBvaW50cz1TKEEscywwLGEubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTphLnBvaW50cz1xKGEubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYS5udW1iZXJPZkNlbGxzPjA/YS5jZWxscz1TKEEscywxLGEubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUpOmEuY2VsbHM9cShhLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYS5udW1iZXJPZlBvaW50UGl4ZWxzPjA/YS5wb2ludERhdGE9UyhBLHMsMixhLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTphLnBvaW50RGF0YT1xKGEubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mQ2VsbFBpeGVscz4wP2EuY2VsbERhdGE9UyhBLHMsMyxhLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOmEuY2VsbERhdGE9cShhLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDPWE7YnJlYWt9Y2FzZSBkLlBvaW50U2V0OntsZXQgYT11QShBLHMpO2EubnVtYmVyT2ZQb2ludHM+MD9hLnBvaW50cz1TKEEscywwLGEucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6YS5wb2ludHM9cShhLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mUG9pbnRQaXhlbHM+MD9hLnBvaW50RGF0YT1TKEEscywxLGEucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTphLnBvaW50RGF0YT1xKGEucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQz1hO2JyZWFrfWNhc2UgZC5UcmFuc2Zvcm1MaXN0OntsZXQgYT11QShBLHMpLFE9MDthLmZvckVhY2goKGYsYyk9PntmLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYoZi5udW1iZXJPZkZpeGVkUGFyYW1ldGVycz4wJiYoYVtjXS5maXhlZFBhcmFtZXRlcnM9UyhBLHMsUSxWLkZsb2F0NjQpKSxRKz0xLGYubnVtYmVyT2ZQYXJhbWV0ZXJzPjAmJihhW2NdLnBhcmFtZXRlcnM9UyhBLHMsUSxmLnRyYW5zZm9ybVR5cGUucGFyYW1ldGVyc1ZhbHVlVHlwZSkpLFErPTEpfSksQz1hO2JyZWFrfWNhc2UgZC5Qb2x5RGF0YTp7bGV0IGE9dUEoQSxzKTthLm51bWJlck9mUG9pbnRzPjA/YS5wb2ludHM9UyhBLHMsMCxWLkZsb2F0MzIpOmEucG9pbnRzPW5ldyBGbG9hdDMyQXJyYXksYS52ZXJ0aWNlc0J1ZmZlclNpemU+MD9hLnZlcnRpY2VzPVMoQSxzLDEsVS5VSW50MzIpOmEudmVydGljZXM9bmV3IFVpbnQzMkFycmF5LGEubGluZXNCdWZmZXJTaXplPjA/YS5saW5lcz1TKEEscywyLFUuVUludDMyKTphLmxpbmVzPW5ldyBVaW50MzJBcnJheSxhLnBvbHlnb25zQnVmZmVyU2l6ZT4wP2EucG9seWdvbnM9UyhBLHMsMyxVLlVJbnQzMik6YS5wb2x5Z29ucz1uZXcgVWludDMyQXJyYXksYS50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU+MD9hLnRyaWFuZ2xlU3RyaXBzPVMoQSxzLDQsVS5VSW50MzIpOmEudHJpYW5nbGVTdHJpcHM9bmV3IFVpbnQzMkFycmF5LGEubnVtYmVyT2ZQb2ludFBpeGVscz4wP2EucG9pbnREYXRhPVMoQSxzLDUsYS5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOmEucG9pbnREYXRhPXEoYS5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mQ2VsbFBpeGVscz4wP2EuY2VsbERhdGE9UyhBLHMsNixhLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTphLmNlbGxEYXRhPXEoYS5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEM9YTticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBvdXRwdXQgSW50ZXJmYWNlVHlwZSIpfWxldCBsPXt0eXBlOkIudHlwZSxkYXRhOkN9O0UucHVzaChsKX0pLHtyZXR1cm5WYWx1ZTpnLHN0ZG91dDpvLHN0ZGVycjpuLG91dHB1dHM6RX19dmFyIFVlPWxyO3ZhciB1cj10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcjwidSI7ZnVuY3Rpb24gZHIoQSx0KXtpZihBPT1udWxsKXJldHVybltdO2xldCBlPVtdO2ZvcihsZXQgST0wO0k8QS5sZW5ndGg7SSsrKXtsZXQgcj1EcihBW0ldLHQpO3IhPT1udWxsJiZlLnB1c2gocil9cmV0dXJuIGV9ZnVuY3Rpb24gRHIoQSx0KXtpZihBPT1udWxsKXJldHVybiBudWxsO2xldCBlPW51bGw7cmV0dXJuIEEuYnVmZmVyIT09dm9pZCAwP2U9QS5idWZmZXI6QS5ieXRlTGVuZ3RoIT09dm9pZCAwJiYoZT1BKSx1ciYmZSBpbnN0YW5jZW9mIFNoYXJlZEFycmF5QnVmZmVyP251bGw6dD9lOmUuc2xpY2UoMCl9dmFyIEdlPWRyO2Z1bmN0aW9uIGhyKEEpe3JldHVybltBLmRhdGEsQS5kaXJlY3Rpb25dfXZhciBrZT1ocjtmdW5jdGlvbiB5cihBKXtyZXR1cm5bQS5wb2ludHMsQS5wb2ludERhdGEsQS5jZWxscyxBLmNlbGxEYXRhXX12YXIgTGU9eXI7ZnVuY3Rpb24gbXIoQSl7cmV0dXJuW0EucG9pbnRzLEEudmVydGljZXMsQS5saW5lcyxBLnBvbHlnb25zLEEudHJpYW5nbGVTdHJpcHMsQS5wb2ludERhdGEsQS5jZWxsRGF0YV19dmFyIGJlPW1yO2FzeW5jIGZ1bmN0aW9uIHdyKEEsdCxlLEkpe2xldCByPVVlKEEsdCxlLEkpLGc9W107cmV0dXJuIHIub3V0cHV0cy5mb3JFYWNoKGZ1bmN0aW9uKG8pe2lmKG8udHlwZT09PWQuQmluYXJ5U3RyZWFtfHxvLnR5cGU9PT1kLkJpbmFyeUZpbGUpe2xldCBuPW8uZGF0YTtnLnB1c2gobil9ZWxzZSBpZihvLnR5cGU9PT1kLkltYWdlKXtsZXQgbj1vLmRhdGE7Zy5wdXNoKC4uLmtlKG4pKX1lbHNlIGlmKG8udHlwZT09PWQuTWVzaCl7bGV0IG49by5kYXRhO2cucHVzaCguLi5MZShuKSl9ZWxzZSBpZihvLnR5cGU9PT1kLlBvbHlEYXRhKXtsZXQgbj1vLmRhdGE7Zy5wdXNoKC4uLmJlKG4pKX19KSxfQShyLEdlKGcsITApKX12YXIgSmU9d3I7dmFyIHByPXtydW5QaXBlbGluZTphc3luYyBmdW5jdGlvbihBLHQsZSxJLHIsZyl7bGV0IG89YXdhaXQgcGUoQSx0LGcpO3JldHVybiBhd2FpdCBKZShvLGUsSSxyKX19O0ZBKHByKTslMEEvKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOiUwQSUwQWNvbWxpbmsvZGlzdC9lc20vY29tbGluay5tanM6JTBBICAoKiolMEEgICAqIEBsaWNlbnNlJTBBICAgKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDJTBBICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCUwQSAgICopJTBBKi8lMEEnO25JKEJJKTtleHBvcnR7cWUgYXMgY29tcGFyZURvdWJsZUltYWdlcyxmZyBhcyBjb21wYXJlSW1hZ2VzLENJIGFzIGdldERlZmF1bHRXZWJXb3JrZXIsaUEgYXMgZ2V0UGlwZWxpbmVXb3JrZXJVcmwsJEEgYXMgZ2V0UGlwZWxpbmVzQmFzZVVybCxRcyBhcyBzZXREZWZhdWx0V2ViV29ya2VyLG5JIGFzIHNldFBpcGVsaW5lV29ya2VyVXJsLGlzIGFzIHNldFBpcGVsaW5lc0Jhc2VVcmwseGUgYXMgdmVjdG9yTWFnbml0dWRlLHRlIGFzIHZlcnNpb259OwovKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOgoKY29tbGluay9kaXN0L2VzbS9jb21saW5rLm1qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAogICAqKQoqLwo=""" default_config = JsPackageConfig(default_js_module) js_package = JsPackage(default_config) diff --git a/packages/compare-images/python/itkwasm-compare-images-wasi/itkwasm_compare_images_wasi/_version.py b/packages/compare-images/python/itkwasm-compare-images-wasi/itkwasm_compare_images_wasi/_version.py index fc30498fa..1e41bf8f7 100644 --- a/packages/compare-images/python/itkwasm-compare-images-wasi/itkwasm_compare_images_wasi/_version.py +++ b/packages/compare-images/python/itkwasm-compare-images-wasi/itkwasm_compare_images_wasi/_version.py @@ -1 +1 @@ -__version__ = "5.4.0" +__version__ = "5.4.1" diff --git a/packages/compare-images/python/itkwasm-compare-images/itkwasm_compare_images/_version.py b/packages/compare-images/python/itkwasm-compare-images/itkwasm_compare_images/_version.py index fc30498fa..1e41bf8f7 100644 --- a/packages/compare-images/python/itkwasm-compare-images/itkwasm_compare_images/_version.py +++ b/packages/compare-images/python/itkwasm-compare-images/itkwasm_compare_images/_version.py @@ -1 +1 @@ -__version__ = "5.4.0" +__version__ = "5.4.1" diff --git a/packages/compare-images/typescript/package.json b/packages/compare-images/typescript/package.json index 9401dd456..adc595544 100644 --- a/packages/compare-images/typescript/package.json +++ b/packages/compare-images/typescript/package.json @@ -1,6 +1,6 @@ { "name": "@itk-wasm/compare-images", - "version": "5.4.0", + "version": "5.4.1", "description": "Compare images with a tolerance for regression testing.", "type": "module", "module": "./dist/index.js", diff --git a/packages/compare-images/typescript/src/compare-double-images-node.ts b/packages/compare-images/typescript/src/compare-double-images-node.ts index ffc1b242b..c957cf40a 100644 --- a/packages/compare-images/typescript/src/compare-double-images-node.ts +++ b/packages/compare-images/typescript/src/compare-double-images-node.ts @@ -3,14 +3,15 @@ import { InterfaceTypes, PipelineOutput, PipelineInput, - runPipelineNode -} from 'itk-wasm' + runPipelineNode, +} from "itk-wasm"; -import CompareDoubleImagesOptions from './compare-double-images-options.js' -import CompareDoubleImagesNodeResult from './compare-double-images-node-result.js' -import CompareImagesMetric from './compare-images-metric.js' +import CompareDoubleImagesOptions from "./compare-double-images-options.js"; +import CompareDoubleImagesNodeResult from "./compare-double-images-node-result.js"; +import CompareImagesMetric from "./compare-images-metric.js"; -import path from 'path' +import path from "path"; +import { fileURLToPath } from "url"; /** * Compare double pixel type images with a tolerance for regression testing. @@ -22,86 +23,88 @@ import path from 'path' */ async function compareDoubleImagesNode( testImage: Image, - options: CompareDoubleImagesOptions = { baselineImages: [] as Image[], } -) : Promise { - + options: CompareDoubleImagesOptions = { baselineImages: [] as Image[] } +): Promise { const desiredOutputs: Array = [ { type: InterfaceTypes.JsonCompatible }, { type: InterfaceTypes.Image }, { type: InterfaceTypes.Image }, - ] + ]; const inputs: Array = [ { type: InterfaceTypes.Image, data: testImage }, - ] + ]; - const args = [] + const args = []; // Inputs - const testImageName = '0' - args.push(testImageName as string) + const testImageName = "0"; + args.push(testImageName as string); // Outputs - const metricsName = '0' - args.push(metricsName) + const metricsName = "0"; + args.push(metricsName); - const differenceImageName = '1' - args.push(differenceImageName) + const differenceImageName = "1"; + args.push(differenceImageName); - const differenceUchar2dImageName = '2' - args.push(differenceUchar2dImageName) + const differenceUchar2dImageName = "2"; + args.push(differenceUchar2dImageName); // Options - args.push('--memory-io') + args.push("--memory-io"); if (typeof options.baselineImages !== "undefined") { - if(options.baselineImages.length < 1) { - throw new Error('"baseline-images" option must have a length > 1') + if (options.baselineImages.length < 1) { + throw new Error('"baseline-images" option must have a length > 1'); } - args.push('--baseline-images') + args.push("--baseline-images"); options.baselineImages.forEach((value) => { - const inputCountString = inputs.length.toString() - inputs.push({ type: InterfaceTypes.Image, data: value as Image }) - args.push(inputCountString) - - }) + const inputCountString = inputs.length.toString(); + inputs.push({ type: InterfaceTypes.Image, data: value as Image }); + args.push(inputCountString); + }); } if (typeof options.differenceThreshold !== "undefined") { - args.push('--difference-threshold', options.differenceThreshold.toString()) - + args.push("--difference-threshold", options.differenceThreshold.toString()); } if (typeof options.radiusTolerance !== "undefined") { - args.push('--radius-tolerance', options.radiusTolerance.toString()) - + args.push("--radius-tolerance", options.radiusTolerance.toString()); } if (typeof options.spatialTolerance !== "undefined") { - args.push('--spatial-tolerance', options.spatialTolerance.toString()) - + args.push("--spatial-tolerance", options.spatialTolerance.toString()); } if (typeof options.numberOfPixelsTolerance !== "undefined") { - args.push('--number-of-pixels-tolerance', options.numberOfPixelsTolerance.toString()) - + args.push( + "--number-of-pixels-tolerance", + options.numberOfPixelsTolerance.toString() + ); } if (typeof options.ignoreBoundaryPixels !== "undefined") { - options.ignoreBoundaryPixels && args.push('--ignore-boundary-pixels') + options.ignoreBoundaryPixels && args.push("--ignore-boundary-pixels"); } - const pipelinePath = path.join(path.dirname(import.meta.url.substring(7)), 'pipelines', 'compare-double-images') - - const { - returnValue, - stderr, - outputs - } = await runPipelineNode(pipelinePath, args, desiredOutputs, inputs) + const pipelinePath = path.join( + path.dirname(fileURLToPath(import.meta.url)), + "pipelines", + "compare-double-images" + ); + + const { returnValue, stderr, outputs } = await runPipelineNode( + pipelinePath, + args, + desiredOutputs, + inputs + ); if (returnValue !== 0) { - throw new Error(stderr) + throw new Error(stderr); } const result = { metrics: outputs[0].data as unknown as CompareImagesMetric, differenceImage: outputs[1].data as Image, differenceUchar2dImage: outputs[2].data as Image, - } - return result + }; + return result; } -export default compareDoubleImagesNode +export default compareDoubleImagesNode; diff --git a/packages/dicom/package.json b/packages/dicom/package.json index 65c60ead6..ae833cded 100644 --- a/packages/dicom/package.json +++ b/packages/dicom/package.json @@ -1,6 +1,6 @@ { "name": "@itk-wasm/dicom-build", - "version": "7.6.3", + "version": "7.6.4", "private": true, "description": "@itk-wasm/dicom build configuration.", "type": "module", diff --git a/packages/dicom/python/itkwasm-dicom-emscripten/itkwasm_dicom_emscripten/_version.py b/packages/dicom/python/itkwasm-dicom-emscripten/itkwasm_dicom_emscripten/_version.py index 710849887..41bff596f 100644 --- a/packages/dicom/python/itkwasm-dicom-emscripten/itkwasm_dicom_emscripten/_version.py +++ b/packages/dicom/python/itkwasm-dicom-emscripten/itkwasm_dicom_emscripten/_version.py @@ -1 +1 @@ -__version__ = "7.6.3" +__version__ = "7.6.4" diff --git a/packages/dicom/python/itkwasm-dicom-emscripten/itkwasm_dicom_emscripten/js_package.py b/packages/dicom/python/itkwasm-dicom-emscripten/itkwasm_dicom_emscripten/js_package.py index 39ed1e4b6..ee12e0502 100644 --- a/packages/dicom/python/itkwasm-dicom-emscripten/itkwasm_dicom_emscripten/js_package.py +++ b/packages/dicom/python/itkwasm-dicom-emscripten/itkwasm_dicom_emscripten/js_package.py @@ -3,6 +3,6 @@ from itkwasm.pyodide import JsPackageConfig, JsPackage from ._version import __version__ -default_js_module = """data:text/javascript;base64,dmFyIGxyPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgY3I9KEEsZSk9Pntmb3IodmFyIHQgaW4gZSlscihBLHQse2dldDplW3RdLGVudW1lcmFibGU6ITB9KX07dmFyIHVyPSI3LjYuMyIsZWU9dXI7dmFyIGZyPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sYj1mcjt2YXIgcHI9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LFg9cHI7ZnVuY3Rpb24gZHIoQSxlKXtsZXQgdD1udWxsO3N3aXRjaChBKXtjYXNlIGIuVUludDg6e3Q9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBiLkludDg6e3Q9bmV3IEludDhBcnJheShlKTticmVha31jYXNlIGIuVUludDE2Ont0PW5ldyBVaW50MTZBcnJheShlKTticmVha31jYXNlIGIuSW50MTY6e3Q9bmV3IEludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBiLlVJbnQzMjp7dD1uZXcgVWludDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSBiLkludDMyOnt0PW5ldyBJbnQzMkFycmF5KGUpO2JyZWFrfWNhc2UgYi5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ1VpbnQ2NEFycmF5KGUpOnQ9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBiLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ0ludDY0QXJyYXkoZSk6dD1uZXcgVWludDhBcnJheShlKTticmVha31jYXNlIFguRmxvYXQzMjp7dD1uZXcgRmxvYXQzMkFycmF5KGUpO2JyZWFrfWNhc2UgWC5GbG9hdDY0Ont0PW5ldyBGbG9hdDY0QXJyYXkoZSk7YnJlYWt9Y2FzZSJudWxsIjp7dD1udWxsO2JyZWFrfWNhc2UgbnVsbDp7dD1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIHR9dmFyIE89ZHI7dmFyIG1yPXtVbmtub3duOiJVbmtub3duIixTY2FsYXI6IlNjYWxhciIsUkdCOiJSR0IiLFJHQkE6IlJHQkEiLE9mZnNldDoiT2Zmc2V0IixWZWN0b3I6IlZlY3RvciIsUG9pbnQ6IlBvaW50IixDb3ZhcmlhbnRWZWN0b3I6IkNvdmFyaWFudFZlY3RvciIsU3ltbWV0cmljU2Vjb25kUmFua1RlbnNvcjoiU3ltbWV0cmljU2Vjb25kUmFua1RlbnNvciIsRGlmZnVzaW9uVGVuc29yM0Q6IkRpZmZ1c2lvblRlbnNvcjNEIixDb21wbGV4OiJDb21wbGV4IixGaXhlZEFycmF5OiJGaXhlZEFycmF5IixBcnJheToiQXJyYXkiLE1hdHJpeDoiTWF0cml4IixWYXJpYWJsZUxlbmd0aFZlY3RvcjoiVmFyaWFibGVMZW5ndGhWZWN0b3IiLFZhcmlhYmxlU2l6ZU1hdHJpeDoiVmFyaWFibGVTaXplTWF0cml4In0sdmU9bXI7dmFyIHRlPWNsYXNze2RpbWVuc2lvbjtjb21wb25lbnRUeXBlO3BpeGVsVHlwZTtjb21wb25lbnRzO2NvbnN0cnVjdG9yKGU9Mix0PWIuVUludDgscj12ZS5TY2FsYXIsaT0xKXt0aGlzLmRpbWVuc2lvbj1lLHRoaXMuY29tcG9uZW50VHlwZT10LHRoaXMucGl4ZWxUeXBlPXIsdGhpcy5jb21wb25lbnRzPWl9fSxaZT10ZTtmdW5jdGlvbiBocihBLGUsdCxyLGkpe0Fbcit0KmVdPWl9dmFyIFZlPWhyO3ZhciByZT1jbGFzc3tpbWFnZVR5cGU7bmFtZT0iSW1hZ2UiO29yaWdpbjtzcGFjaW5nO2RpcmVjdGlvbjtzaXplO21ldGFkYXRhO2RhdGE7Y29uc3RydWN0b3IoZT1uZXcgWmUpe3RoaXMuaW1hZ2VUeXBlPWU7bGV0IHQ9ZS5kaW1lbnNpb247dGhpcy5vcmlnaW49bmV3IEFycmF5KHQpLHRoaXMub3JpZ2luLmZpbGwoMCksdGhpcy5zcGFjaW5nPW5ldyBBcnJheSh0KSx0aGlzLnNwYWNpbmcuZmlsbCgxKSx0aGlzLmRpcmVjdGlvbj1uZXcgRmxvYXQ2NEFycmF5KHQqdCksdGhpcy5kaXJlY3Rpb24uZmlsbCgwKTtmb3IobGV0IHI9MDtyPHQ7cisrKVZlKHRoaXMuZGlyZWN0aW9uLHQscixyLDEpO3RoaXMuc2l6ZT1uZXcgQXJyYXkodCksdGhpcy5zaXplLmZpbGwoMCksdGhpcy5tZXRhZGF0YT1uZXcgTWFwLHRoaXMuZGF0YT1udWxsfX0sWGU9cmU7ZnVuY3Rpb24geXIoQSl7aWYoQS5sZW5ndGg8MSl0aHJvdyBFcnJvcigiQXQgbGVhc3Qgb25lIGltYWdlcyBpcyByZXF1aXJlZC4iKTtsZXQgZT1BWzBdO2lmKGUuZGF0YT09PW51bGwpdGhyb3cgRXJyb3IoIkltYWdlIGRhdGEgaXMgbnVsbC4iKTtsZXQgdD1uZXcgWGUoZS5pbWFnZVR5cGUpO3Qub3JpZ2luPUFycmF5LmZyb20oZS5vcmlnaW4pLHQuc3BhY2luZz1BcnJheS5mcm9tKGUuc3BhY2luZyk7bGV0IHI9dC5pbWFnZVR5cGUuZGltZW5zaW9uO3QuZGlyZWN0aW9uPWUuZGlyZWN0aW9uLnNsaWNlKCk7bGV0IGk9ci0xO3Quc2l6ZT1BcnJheS5mcm9tKGUuc2l6ZSk7bGV0IEk9QS5yZWR1Y2UoKG4sZyk9Pm4rZy5zaXplW2ldLDApO3Quc2l6ZVtpXT1JO2xldCBvPXQuc2l6ZS5yZWR1Y2UoKG4sZyk9Pm4qZywxKSp0LmltYWdlVHlwZS5jb21wb25lbnRzLGE9ZS5kYXRhLmNvbnN0cnVjdG9yO3QuZGF0YT1uZXcgYShvKTtsZXQgRT10LmltYWdlVHlwZS5jb21wb25lbnRzO2ZvcihsZXQgbj0wO248dC5zaXplLmxlbmd0aC0xO24rKylFKj10LnNpemVbbl07bGV0IHM9MDtpZih0LmRhdGEhPW51bGwpZm9yKGxldCBuPTA7bjxBLmxlbmd0aDtuKyspdC5kYXRhLnNldChBW25dLmRhdGEsRSpzKSxzKz1BW25dLnNpemVbaV07ZWxzZSB0aHJvdyBFcnJvcigiQ291bGQgbm90IGNyZWF0ZSByZXN1bHQgaW1hZ2UgZGF0YS4iKTtyZXR1cm4gdH12YXIgaWU9eXI7dmFyIEllPWNsYXNze2Zjbjt3b3JrZXJRdWV1ZTtydW5JbmZvO2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5mY249dCx0aGlzLndvcmtlclF1ZXVlPW5ldyBBcnJheShlKSx0aGlzLndvcmtlclF1ZXVlLmZpbGwobnVsbCksdGhpcy5ydW5JbmZvPVtdfXJ1blRhc2tzKGUsdD1udWxsKXtsZXQgcj17dGFza1F1ZXVlOltdLHJlc3VsdHM6W10sYWRkaW5nVGFza3M6ITEscG9zdHBvbmVkOiExLHJ1bm5pbmdXb3JrZXJzOjAsaW5kZXg6MCxjb21wbGV0ZWRUYXNrczowLHByb2dyZXNzQ2FsbGJhY2s6dCxjYW5jZWxlZDohMX07cmV0dXJuIHRoaXMucnVuSW5mby5wdXNoKHIpLHIuaW5kZXg9dGhpcy5ydW5JbmZvLmxlbmd0aC0xLHtwcm9taXNlOm5ldyBQcm9taXNlKChpLEkpPT57ci5yZXNvbHZlPWksci5yZWplY3Q9SSxyLnJlc3VsdHM9bmV3IEFycmF5KGUubGVuZ3RoKSxyLmNvbXBsZXRlZFRhc2tzPTAsci5hZGRpbmdUYXNrcz0hMCxlLmZvckVhY2goKG8sYSk9Pnt0aGlzLmFkZFRhc2soci5pbmRleCxhLG8pfSksci5hZGRpbmdUYXNrcz0hMX0pLHJ1bklkOnIuaW5kZXh9fXRlcm1pbmF0ZVdvcmtlcnMoKXtmb3IobGV0IGU9MDtlPHRoaXMud29ya2VyUXVldWUubGVuZ3RoO2UrKyl7bGV0IHQ9dGhpcy53b3JrZXJRdWV1ZVtlXTt0Py50ZXJtaW5hdGUoKSx0aGlzLndvcmtlclF1ZXVlW2VdPW51bGx9fWNhbmNlbChlKXtsZXQgdD10aGlzLnJ1bkluZm9bZV07dCE9bnVsbCYmKHQuY2FuY2VsZWQ9ITApfWFkZFRhc2soZSx0LHIpe2xldCBpPXRoaXMucnVuSW5mb1tlXTtpZihpPy5jYW5jZWxlZD09PSEwKXtpLnJlamVjdCgiUmVtYWluaW5nIHRhc2tzIGNhbmNlbGVkIiksdGhpcy5jbGVhclRhc2soaS5pbmRleCk7cmV0dXJufWlmKHRoaXMud29ya2VyUXVldWUubGVuZ3RoPjApe2xldCBJPXRoaXMud29ya2VyUXVldWUucG9wKCk7aS5ydW5uaW5nV29ya2VycysrLHJbci5sZW5ndGgtMV0ud2ViV29ya2VyPUksdGhpcy5mY24oLi4ucikudGhlbigoe3dlYldvcmtlcjpvLC4uLmF9KT0+e2lmKHRoaXMud29ya2VyUXVldWUucHVzaChvKSx0aGlzLnJ1bkluZm9bZV0hPT1udWxsKXtpZihpLnJ1bm5pbmdXb3JrZXJzLS0saS5yZXN1bHRzW3RdPWEsaS5jb21wbGV0ZWRUYXNrcysrLGkucHJvZ3Jlc3NDYWxsYmFjayE9bnVsbCYmaS5wcm9ncmVzc0NhbGxiYWNrKGkuY29tcGxldGVkVGFza3MsaS5yZXN1bHRzLmxlbmd0aCksaS50YXNrUXVldWUubGVuZ3RoPjApe2xldCBFPWkudGFza1F1ZXVlLnNoaWZ0KCk7dGhpcy5hZGRUYXNrKGUsRVswXSxFWzFdKX1lbHNlIGlmKCFpLmFkZGluZ1Rhc2tzJiZpLnJ1bm5pbmdXb3JrZXJzPT09MCl7bGV0IEU9aS5yZXN1bHRzO2kucmVzb2x2ZShFKSx0aGlzLmNsZWFyVGFzayhpLmluZGV4KX19fSkuY2F0Y2gobz0+e2kucmVqZWN0KG8pLHRoaXMuY2xlYXJUYXNrKGkuaW5kZXgpfSl9ZWxzZSBpLnJ1bm5pbmdXb3JrZXJzIT09MHx8aS5wb3N0cG9uZWQ/aS50YXNrUXVldWUucHVzaChbdCxyXSk6KGkucG9zdHBvbmVkPSEwLHNldFRpbWVvdXQoKCk9PntpLnBvc3Rwb25lZD0hMSx0aGlzLmFkZFRhc2soaS5pbmRleCx0LHIpfSw1MCkpfWNsZWFyVGFzayhlKXt0aGlzLnJ1bkluZm9bZV0ucmVzdWx0cz1bXSx0aGlzLnJ1bkluZm9bZV0udGFza1F1ZXVlPVtdLHRoaXMucnVuSW5mb1tlXS5wcm9ncmVzc0NhbGxiYWNrPW51bGwsdGhpcy5ydW5JbmZvW2VdLmNhbmNlbGVkPW51bGwsdGhpcy5ydW5JbmZvW2VdLnJlamVjdD0oKT0+e30sdGhpcy5ydW5JbmZvW2VdLnJlc29sdmU9KCk9Pnt9fX0sb2U9SWU7dmFyIERyPXtUZXh0RmlsZToiVGV4dEZpbGUiLEJpbmFyeUZpbGU6IkJpbmFyeUZpbGUiLFRleHRTdHJlYW06IlRleHRTdHJlYW0iLEJpbmFyeVN0cmVhbToiQmluYXJ5U3RyZWFtIixJbWFnZToiSW1hZ2UiLFBvaW50U2V0OiJQb2ludFNldCIsTWVzaDoiTWVzaCIsUG9seURhdGE6IlBvbHlEYXRhIixUcmFuc2Zvcm1MaXN0OiJUcmFuc2Zvcm1MaXN0IixKc29uQ29tcGF0aWJsZToiSnNvbkNvbXBhdGlibGUifSxmPURyO3ZhciBfZT1TeW1ib2woIkNvbWxpbmsucHJveHkiKSx3cj1TeW1ib2woIkNvbWxpbmsuZW5kcG9pbnQiKSxhZT1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksbmU9U3ltYm9sKCJDb21saW5rLmZpbmFsaXplciIpLFVBPVN5bWJvbCgiQ29tbGluay50aHJvd24iKSwkZT1BPT50eXBlb2YgQT09Im9iamVjdCImJkEhPT1udWxsfHx0eXBlb2YgQT09ImZ1bmN0aW9uIixTcj17Y2FuSGFuZGxlOkE9PiRlKEEpJiZBW19lXSxzZXJpYWxpemUoQSl7bGV0e3BvcnQxOmUscG9ydDI6dH09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiBldChBLGUpLFt0LFt0XV19LGRlc2VyaWFsaXplKEEpe3JldHVybiBBLnN0YXJ0KCksc2UoQSl9fSxGcj17Y2FuSGFuZGxlOkE9PiRlKEEpJiZVQSBpbiBBLHNlcmlhbGl6ZSh7dmFsdWU6QX0pe2xldCBlO3JldHVybiBBIGluc3RhbmNlb2YgRXJyb3I/ZT17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTpBLm1lc3NhZ2UsbmFtZTpBLm5hbWUsc3RhY2s6QS5zdGFja319OmU9e2lzRXJyb3I6ITEsdmFsdWU6QX0sW2UsW11dfSxkZXNlcmlhbGl6ZShBKXt0aHJvdyBBLmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoQS52YWx1ZS5tZXNzYWdlKSxBLnZhbHVlKTpBLnZhbHVlfX0sQXQ9bmV3IE1hcChbWyJwcm94eSIsU3JdLFsidGhyb3ciLEZyXV0pO2Z1bmN0aW9uIFJyKEEsZSl7Zm9yKGxldCB0IG9mIEEpaWYoZT09PXR8fHQ9PT0iKiJ8fHQgaW5zdGFuY2VvZiBSZWdFeHAmJnQudGVzdChlKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBldChBLGU9Z2xvYmFsVGhpcyx0PVsiKiJdKXtlLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIHIoaSl7aWYoIWl8fCFpLmRhdGEpcmV0dXJuO2lmKCFScih0LGkub3JpZ2luKSl7Y29uc29sZS53YXJuKGBJbnZhbGlkIG9yaWdpbiAnJHtpLm9yaWdpbn0nIGZvciBjb21saW5rIHByb3h5YCk7cmV0dXJufWxldHtpZDpJLHR5cGU6byxwYXRoOmF9PU9iamVjdC5hc3NpZ24oe3BhdGg6W119LGkuZGF0YSksRT0oaS5kYXRhLmFyZ3VtZW50TGlzdHx8W10pLm1hcCh6KSxzO3RyeXtsZXQgbj1hLnNsaWNlKDAsLTEpLnJlZHVjZSgodSxDKT0+dVtDXSxBKSxnPWEucmVkdWNlKCh1LEMpPT51W0NdLEEpO3N3aXRjaChvKXtjYXNlIkdFVCI6cz1nO2JyZWFrO2Nhc2UiU0VUIjpuW2Euc2xpY2UoLTEpWzBdXT16KGkuZGF0YS52YWx1ZSkscz0hMDticmVhaztjYXNlIkFQUExZIjpzPWcuYXBwbHkobixFKTticmVhaztjYXNlIkNPTlNUUlVDVCI6e2xldCB1PW5ldyBnKC4uLkUpO3M9YnIodSl9YnJlYWs7Y2FzZSJFTkRQT0lOVCI6e2xldHtwb3J0MTp1LHBvcnQyOkN9PW5ldyBNZXNzYWdlQ2hhbm5lbDtldChBLEMpLHM9QmUodSxbdV0pfWJyZWFrO2Nhc2UiUkVMRUFTRSI6cz12b2lkIDA7YnJlYWs7ZGVmYXVsdDpyZXR1cm59fWNhdGNoKG4pe3M9e3ZhbHVlOm4sW1VBXTowfX1Qcm9taXNlLnJlc29sdmUocykuY2F0Y2gobj0+KHt2YWx1ZTpuLFtVQV06MH0pKS50aGVuKG49PntsZXRbZyx1XT1iQShuKTtlLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnKSx7aWQ6SX0pLHUpLG89PT0iUkVMRUFTRSImJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHIpLHR0KGUpLG5lIGluIEEmJnR5cGVvZiBBW25lXT09ImZ1bmN0aW9uIiYmQVtuZV0oKSl9KS5jYXRjaChuPT57bGV0W2csdV09YkEoe3ZhbHVlOm5ldyBUeXBlRXJyb3IoIlVuc2VyaWFsaXphYmxlIHJldHVybiB2YWx1ZSIpLFtVQV06MH0pO2UucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGcpLHtpZDpJfSksdSl9KX0pLGUuc3RhcnQmJmUuc3RhcnQoKX1mdW5jdGlvbiBrcihBKXtyZXR1cm4gQS5jb25zdHJ1Y3Rvci5uYW1lPT09Ik1lc3NhZ2VQb3J0In1mdW5jdGlvbiB0dChBKXtrcihBKSYmQS5jbG9zZSgpfWZ1bmN0aW9uIHNlKEEsZSl7cmV0dXJuIGdlKEEsW10sZSl9ZnVuY3Rpb24ga0EoQSl7aWYoQSl0aHJvdyBuZXcgRXJyb3IoIlByb3h5IGhhcyBiZWVuIHJlbGVhc2VkIGFuZCBpcyBub3QgdXNlYWJsZSIpfWZ1bmN0aW9uIHJ0KEEpe3JldHVybiBBQShBLHt0eXBlOiJSRUxFQVNFIn0pLnRoZW4oKCk9Pnt0dChBKX0pfXZhciBOQT1uZXcgV2Vha01hcCxHQT0iRmluYWxpemF0aW9uUmVnaXN0cnkiaW4gZ2xvYmFsVGhpcyYmbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KEE9PntsZXQgZT0oTkEuZ2V0KEEpfHwwKS0xO05BLnNldChBLGUpLGU9PT0wJiZydChBKX0pO2Z1bmN0aW9uIFVyKEEsZSl7bGV0IHQ9KE5BLmdldChlKXx8MCkrMTtOQS5zZXQoZSx0KSxHQSYmR0EucmVnaXN0ZXIoQSxlLEEpfWZ1bmN0aW9uIE5yKEEpe0dBJiZHQS51bnJlZ2lzdGVyKEEpfWZ1bmN0aW9uIGdlKEEsZT1bXSx0PWZ1bmN0aW9uKCl7fSl7bGV0IHI9ITEsaT1uZXcgUHJveHkodCx7Z2V0KEksbyl7aWYoa0Eociksbz09PWFlKXJldHVybigpPT57TnIoaSkscnQoQSkscj0hMH07aWYobz09PSJ0aGVuIil7aWYoZS5sZW5ndGg9PT0wKXJldHVybnt0aGVuOigpPT5pfTtsZXQgYT1BQShBLHt0eXBlOiJHRVQiLHBhdGg6ZS5tYXAoRT0+RS50b1N0cmluZygpKX0pLnRoZW4oeik7cmV0dXJuIGEudGhlbi5iaW5kKGEpfXJldHVybiBnZShBLFsuLi5lLG9dKX0sc2V0KEksbyxhKXtrQShyKTtsZXRbRSxzXT1iQShhKTtyZXR1cm4gQUEoQSx7dHlwZToiU0VUIixwYXRoOlsuLi5lLG9dLm1hcChuPT5uLnRvU3RyaW5nKCkpLHZhbHVlOkV9LHMpLnRoZW4oeil9LGFwcGx5KEksbyxhKXtrQShyKTtsZXQgRT1lW2UubGVuZ3RoLTFdO2lmKEU9PT13cilyZXR1cm4gQUEoQSx7dHlwZToiRU5EUE9JTlQifSkudGhlbih6KTtpZihFPT09ImJpbmQiKXJldHVybiBnZShBLGUuc2xpY2UoMCwtMSkpO2xldFtzLG5dPXplKGEpO3JldHVybiBBQShBLHt0eXBlOiJBUFBMWSIscGF0aDplLm1hcChnPT5nLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpzfSxuKS50aGVuKHopfSxjb25zdHJ1Y3QoSSxvKXtrQShyKTtsZXRbYSxFXT16ZShvKTtyZXR1cm4gQUEoQSx7dHlwZToiQ09OU1RSVUNUIixwYXRoOmUubWFwKHM9PnMudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OmF9LEUpLnRoZW4oeil9fSk7cmV0dXJuIFVyKGksQSksaX1mdW5jdGlvbiBHcihBKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxBKX1mdW5jdGlvbiB6ZShBKXtsZXQgZT1BLm1hcChiQSk7cmV0dXJuW2UubWFwKHQ9PnRbMF0pLEdyKGUubWFwKHQ9PnRbMV0pKV19dmFyIGl0PW5ldyBXZWFrTWFwO2Z1bmN0aW9uIEJlKEEsZSl7cmV0dXJuIGl0LnNldChBLGUpLEF9ZnVuY3Rpb24gYnIoQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7W19lXTohMH0pfWZ1bmN0aW9uIGJBKEEpe2ZvcihsZXRbZSx0XW9mIEF0KWlmKHQuY2FuSGFuZGxlKEEpKXtsZXRbcixpXT10LnNlcmlhbGl6ZShBKTtyZXR1cm5be3R5cGU6IkhBTkRMRVIiLG5hbWU6ZSx2YWx1ZTpyfSxpXX1yZXR1cm5be3R5cGU6IlJBVyIsdmFsdWU6QX0saXQuZ2V0KEEpfHxbXV19ZnVuY3Rpb24geihBKXtzd2l0Y2goQS50eXBlKXtjYXNlIkhBTkRMRVIiOnJldHVybiBBdC5nZXQoQS5uYW1lKS5kZXNlcmlhbGl6ZShBLnZhbHVlKTtjYXNlIlJBVyI6cmV0dXJuIEEudmFsdWV9fWZ1bmN0aW9uIEFBKEEsZSx0KXtyZXR1cm4gbmV3IFByb21pc2Uocj0+e2xldCBpPUxyKCk7QS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBJKG8peyFvLmRhdGF8fCFvLmRhdGEuaWR8fG8uZGF0YS5pZCE9PWl8fChBLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLEkpLHIoby5kYXRhKSl9KSxBLnN0YXJ0JiZBLnN0YXJ0KCksQS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKHtpZDppfSxlKSx0KX0pfWZ1bmN0aW9uIExyKCl7cmV0dXJuIG5ldyBBcnJheSg0KS5maWxsKDApLm1hcCgoKT0+TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKk51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygxNikpLmpvaW4oIi0iKX1mdW5jdGlvbiBCQShBLGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBBLmFwcGx5KGUsYXJndW1lbnRzKX19dmFye3RvU3RyaW5nOkpyfT1PYmplY3QucHJvdG90eXBlLHtnZXRQcm90b3R5cGVPZjpRZX09T2JqZWN0LHtpdGVyYXRvcjpKQSx0b1N0cmluZ1RhZzpudH09U3ltYm9sLE1BPShBPT5lPT57bGV0IHQ9SnIuY2FsbChlKTtyZXR1cm4gQVt0XXx8KEFbdF09dC5zbGljZSg4LC0xKS50b0xvd2VyQ2FzZSgpKX0pKE9iamVjdC5jcmVhdGUobnVsbCkpLEg9QT0+KEE9QS50b0xvd2VyQ2FzZSgpLGU9Pk1BKGUpPT09QSksSEE9QT0+ZT0+dHlwZW9mIGU9PT1BLHtpc0FycmF5OnRBfT1BcnJheSxlQT1IQSgidW5kZWZpbmVkIik7ZnVuY3Rpb24gQ0EoQSl7cmV0dXJuIEEhPT1udWxsJiYhZUEoQSkmJkEuY29uc3RydWN0b3IhPT1udWxsJiYhZUEoQS5jb25zdHJ1Y3RvcikmJkwoQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikmJkEuY29uc3RydWN0b3IuaXNCdWZmZXIoQSl9dmFyIGd0PUgoIkFycmF5QnVmZmVyIik7ZnVuY3Rpb24gTXIoQSl7bGV0IGU7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJkFycmF5QnVmZmVyLmlzVmlldz9lPUFycmF5QnVmZmVyLmlzVmlldyhBKTplPUEmJkEuYnVmZmVyJiZndChBLmJ1ZmZlciksZX12YXIgSHI9SEEoInN0cmluZyIpLEw9SEEoImZ1bmN0aW9uIiksYXQ9SEEoIm51bWJlciIpLFFBPUE9PkEhPT1udWxsJiZ0eXBlb2YgQT09Im9iamVjdCIsWXI9QT0+QT09PSEwfHxBPT09ITEsTEE9QT0+e2lmKE1BKEEpIT09Im9iamVjdCIpcmV0dXJuITE7bGV0IGU9UWUoQSk7cmV0dXJuKGU9PT1udWxsfHxlPT09T2JqZWN0LnByb3RvdHlwZXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09bnVsbCkmJiEobnQgaW4gQSkmJiEoSkEgaW4gQSl9LFRyPUE9PntpZighUUEoQSl8fENBKEEpKXJldHVybiExO3RyeXtyZXR1cm4gT2JqZWN0LmtleXMoQSkubGVuZ3RoPT09MCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKEEpPT09T2JqZWN0LnByb3RvdHlwZX1jYXRjaHtyZXR1cm4hMX19LE9yPUgoIkRhdGUiKSx4cj1IKCJGaWxlIikscXI9SCgiQmxvYiIpLFByPUgoIkZpbGVMaXN0IiksS3I9QT0+UUEoQSkmJkwoQS5waXBlKSxXcj1BPT57bGV0IGU7cmV0dXJuIEEmJih0eXBlb2YgRm9ybURhdGE9PSJmdW5jdGlvbiImJkEgaW5zdGFuY2VvZiBGb3JtRGF0YXx8TChBLmFwcGVuZCkmJigoZT1NQShBKSk9PT0iZm9ybWRhdGEifHxlPT09Im9iamVjdCImJkwoQS50b1N0cmluZykmJkEudG9TdHJpbmcoKT09PSJbb2JqZWN0IEZvcm1EYXRhXSIpKX0sanI9SCgiVVJMU2VhcmNoUGFyYW1zIiksW3ZyLFpyLFZyLFhyXT1bIlJlYWRhYmxlU3RyZWFtIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiSGVhZGVycyJdLm1hcChIKSx6cj1BPT5BLnRyaW0/QS50cmltKCk6QS5yZXBsYWNlKC9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZywiIik7ZnVuY3Rpb24gRUEoQSxlLHthbGxPd25LZXlzOnQ9ITF9PXt9KXtpZihBPT09bnVsbHx8dHlwZW9mIEE+InUiKXJldHVybjtsZXQgcixpO2lmKHR5cGVvZiBBIT0ib2JqZWN0IiYmKEE9W0FdKSx0QShBKSlmb3Iocj0wLGk9QS5sZW5ndGg7cjxpO3IrKyllLmNhbGwobnVsbCxBW3JdLHIsQSk7ZWxzZXtpZihDQShBKSlyZXR1cm47bGV0IEk9dD9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKTpPYmplY3Qua2V5cyhBKSxvPUkubGVuZ3RoLGE7Zm9yKHI9MDtyPG87cisrKWE9SVtyXSxlLmNhbGwobnVsbCxBW2FdLGEsQSl9fWZ1bmN0aW9uIHN0KEEsZSl7aWYoQ0EoQSkpcmV0dXJuIG51bGw7ZT1lLnRvTG93ZXJDYXNlKCk7bGV0IHQ9T2JqZWN0LmtleXMoQSkscj10Lmxlbmd0aCxpO2Zvcig7ci0tID4wOylpZihpPXRbcl0sZT09PWkudG9Mb3dlckNhc2UoKSlyZXR1cm4gaTtyZXR1cm4gbnVsbH12YXIgXz10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6Z2xvYmFsLEJ0PUE9PiFlQShBKSYmQSE9PV87ZnVuY3Rpb24gQ2UoKXtsZXR7Y2FzZWxlc3M6QSxza2lwVW5kZWZpbmVkOmV9PUJ0KHRoaXMpJiZ0aGlzfHx7fSx0PXt9LHI9KGksSSk9PntsZXQgbz1BJiZzdCh0LEkpfHxJO0xBKHRbb10pJiZMQShpKT90W29dPUNlKHRbb10saSk6TEEoaSk/dFtvXT1DZSh7fSxpKTp0QShpKT90W29dPWkuc2xpY2UoKTooIWV8fCFlQShpKSkmJih0W29dPWkpfTtmb3IobGV0IGk9MCxJPWFyZ3VtZW50cy5sZW5ndGg7aTxJO2krKylhcmd1bWVudHNbaV0mJkVBKGFyZ3VtZW50c1tpXSxyKTtyZXR1cm4gdH12YXIgX3I9KEEsZSx0LHthbGxPd25LZXlzOnJ9PXt9KT0+KEVBKGUsKGksSSk9Pnt0JiZMKGkpP0FbSV09QkEoaSx0KTpBW0ldPWl9LHthbGxPd25LZXlzOnJ9KSxBKSwkcj1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLEFpPShBLGUsdCxyKT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUsciksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTplLnByb3RvdHlwZX0pLHQmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsdCl9LGVpPShBLGUsdCxyKT0+e2xldCBpLEksbyxhPXt9O2lmKGU9ZXx8e30sQT09bnVsbClyZXR1cm4gZTtkb3tmb3IoaT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxJPWkubGVuZ3RoO0ktLSA+MDspbz1pW0ldLCghcnx8cihvLEEsZSkpJiYhYVtvXSYmKGVbb109QVtvXSxhW29dPSEwKTtBPXQhPT0hMSYmUWUoQSl9d2hpbGUoQSYmKCF0fHx0KEEsZSkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIGV9LHRpPShBLGUsdCk9PntBPVN0cmluZyhBKSwodD09PXZvaWQgMHx8dD5BLmxlbmd0aCkmJih0PUEubGVuZ3RoKSx0LT1lLmxlbmd0aDtsZXQgcj1BLmluZGV4T2YoZSx0KTtyZXR1cm4gciE9PS0xJiZyPT09dH0scmk9QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKHRBKEEpKXJldHVybiBBO2xldCBlPUEubGVuZ3RoO2lmKCFhdChlKSlyZXR1cm4gbnVsbDtsZXQgdD1uZXcgQXJyYXkoZSk7Zm9yKDtlLS0gPjA7KXRbZV09QVtlXTtyZXR1cm4gdH0saWk9KEE9PmU9PkEmJmUgaW5zdGFuY2VvZiBBKSh0eXBlb2YgVWludDhBcnJheTwidSImJlFlKFVpbnQ4QXJyYXkpKSxJaT0oQSxlKT0+e2xldCByPShBJiZBW0pBXSkuY2FsbChBKSxpO2Zvcig7KGk9ci5uZXh0KCkpJiYhaS5kb25lOyl7bGV0IEk9aS52YWx1ZTtlLmNhbGwoQSxJWzBdLElbMV0pfX0sb2k9KEEsZSk9PntsZXQgdCxyPVtdO2Zvcig7KHQ9QS5leGVjKGUpKSE9PW51bGw7KXIucHVzaCh0KTtyZXR1cm4gcn0sbmk9SCgiSFRNTEZvcm1FbGVtZW50IiksZ2k9QT0+QS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xzXShbYS16XGRdKShcdyopL2csZnVuY3Rpb24odCxyLGkpe3JldHVybiByLnRvVXBwZXJDYXNlKCkraX0pLG90PSgoe2hhc093blByb3BlcnR5OkF9KT0+KGUsdCk9PkEuY2FsbChlLHQpKShPYmplY3QucHJvdG90eXBlKSxhaT1IKCJSZWdFeHAiKSxDdD0oQSxlKT0+e2xldCB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEEpLHI9e307RUEodCwoaSxJKT0+e2xldCBvOyhvPWUoaSxJLEEpKSE9PSExJiYocltJXT1vfHxpKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEEscil9LHNpPUE9PntDdChBLChlLHQpPT57aWYoTChBKSYmWyJhcmd1bWVudHMiLCJjYWxsZXIiLCJjYWxsZWUiXS5pbmRleE9mKHQpIT09LTEpcmV0dXJuITE7bGV0IHI9QVt0XTtpZihMKHIpKXtpZihlLmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIGUpe2Uud3JpdGFibGU9ITE7cmV0dXJufWUuc2V0fHwoZS5zZXQ9KCk9Pnt0aHJvdyBFcnJvcigiQ2FuIG5vdCByZXdyaXRlIHJlYWQtb25seSBtZXRob2QgJyIrdCsiJyIpfSl9fSl9LEJpPShBLGUpPT57bGV0IHQ9e30scj1pPT57aS5mb3JFYWNoKEk9Pnt0W0ldPSEwfSl9O3JldHVybiB0QShBKT9yKEEpOnIoU3RyaW5nKEEpLnNwbGl0KGUpKSx0fSxDaT0oKT0+e30sUWk9KEEsZSk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOmU7ZnVuY3Rpb24gRWkoQSl7cmV0dXJuISEoQSYmTChBLmFwcGVuZCkmJkFbbnRdPT09IkZvcm1EYXRhIiYmQVtKQV0pfXZhciBsaT1BPT57bGV0IGU9bmV3IEFycmF5KDEwKSx0PShyLGkpPT57aWYoUUEocikpe2lmKGUuaW5kZXhPZihyKT49MClyZXR1cm47aWYoQ0EocikpcmV0dXJuIHI7aWYoISgidG9KU09OImluIHIpKXtlW2ldPXI7bGV0IEk9dEEocik/W106e307cmV0dXJuIEVBKHIsKG8sYSk9PntsZXQgRT10KG8saSsxKTshZUEoRSkmJihJW2FdPUUpfSksZVtpXT12b2lkIDAsSX19cmV0dXJuIHJ9O3JldHVybiB0KEEsMCl9LGNpPUgoIkFzeW5jRnVuY3Rpb24iKSx1aT1BPT5BJiYoUUEoQSl8fEwoQSkpJiZMKEEudGhlbikmJkwoQS5jYXRjaCksUXQ9KChBLGUpPT5BP3NldEltbWVkaWF0ZTplPygodCxyKT0+KF8uYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKHtzb3VyY2U6aSxkYXRhOkl9KT0+e2k9PT1fJiZJPT09dCYmci5sZW5ndGgmJnIuc2hpZnQoKSgpfSwhMSksaT0+e3IucHVzaChpKSxfLnBvc3RNZXNzYWdlKHQsIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOnQ9PnNldFRpbWVvdXQodCkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsTChfLnBvc3RNZXNzYWdlKSksZmk9dHlwZW9mIHF1ZXVlTWljcm90YXNrPCJ1Ij9xdWV1ZU1pY3JvdGFzay5iaW5kKF8pOnR5cGVvZiBwcm9jZXNzPCJ1IiYmcHJvY2Vzcy5uZXh0VGlja3x8UXQscGk9QT0+QSE9bnVsbCYmTChBW0pBXSksQj17aXNBcnJheTp0QSxpc0FycmF5QnVmZmVyOmd0LGlzQnVmZmVyOkNBLGlzRm9ybURhdGE6V3IsaXNBcnJheUJ1ZmZlclZpZXc6TXIsaXNTdHJpbmc6SHIsaXNOdW1iZXI6YXQsaXNCb29sZWFuOllyLGlzT2JqZWN0OlFBLGlzUGxhaW5PYmplY3Q6TEEsaXNFbXB0eU9iamVjdDpUcixpc1JlYWRhYmxlU3RyZWFtOnZyLGlzUmVxdWVzdDpacixpc1Jlc3BvbnNlOlZyLGlzSGVhZGVyczpYcixpc1VuZGVmaW5lZDplQSxpc0RhdGU6T3IsaXNGaWxlOnhyLGlzQmxvYjpxcixpc1JlZ0V4cDphaSxpc0Z1bmN0aW9uOkwsaXNTdHJlYW06S3IsaXNVUkxTZWFyY2hQYXJhbXM6anIsaXNUeXBlZEFycmF5OmlpLGlzRmlsZUxpc3Q6UHIsZm9yRWFjaDpFQSxtZXJnZTpDZSxleHRlbmQ6X3IsdHJpbTp6cixzdHJpcEJPTTokcixpbmhlcml0czpBaSx0b0ZsYXRPYmplY3Q6ZWksa2luZE9mOk1BLGtpbmRPZlRlc3Q6SCxlbmRzV2l0aDp0aSx0b0FycmF5OnJpLGZvckVhY2hFbnRyeTpJaSxtYXRjaEFsbDpvaSxpc0hUTUxGb3JtOm5pLGhhc093blByb3BlcnR5Om90LGhhc093blByb3A6b3QscmVkdWNlRGVzY3JpcHRvcnM6Q3QsZnJlZXplTWV0aG9kczpzaSx0b09iamVjdFNldDpCaSx0b0NhbWVsQ2FzZTpnaSxub29wOkNpLHRvRmluaXRlTnVtYmVyOlFpLGZpbmRLZXk6c3QsZ2xvYmFsOl8saXNDb250ZXh0RGVmaW5lZDpCdCxpc1NwZWNDb21wbGlhbnRGb3JtOkVpLHRvSlNPTk9iamVjdDpsaSxpc0FzeW5jRm46Y2ksaXNUaGVuYWJsZTp1aSxzZXRJbW1lZGlhdGU6UXQsYXNhcDpmaSxpc0l0ZXJhYmxlOnBpfTtmdW5jdGlvbiByQShBLGUsdCxyLGkpe0Vycm9yLmNhbGwodGhpcyksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrLHRoaXMubWVzc2FnZT1BLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsZSYmKHRoaXMuY29kZT1lKSx0JiYodGhpcy5jb25maWc9dCksciYmKHRoaXMucmVxdWVzdD1yKSxpJiYodGhpcy5yZXNwb25zZT1pLHRoaXMuc3RhdHVzPWkuc3RhdHVzP2kuc3RhdHVzOm51bGwpfUIuaW5oZXJpdHMockEsRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzpCLnRvSlNPTk9iamVjdCh0aGlzLmNvbmZpZyksY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMuc3RhdHVzfX19KTt2YXIgRXQ9ckEucHJvdG90eXBlLGx0PXt9O1siRVJSX0JBRF9PUFRJT05fVkFMVUUiLCJFUlJfQkFEX09QVElPTiIsIkVDT05OQUJPUlRFRCIsIkVUSU1FRE9VVCIsIkVSUl9ORVRXT1JLIiwiRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUUyIsIkVSUl9ERVBSRUNBVEVEIiwiRVJSX0JBRF9SRVNQT05TRSIsIkVSUl9CQURfUkVRVUVTVCIsIkVSUl9DQU5DRUxFRCIsIkVSUl9OT1RfU1VQUE9SVCIsIkVSUl9JTlZBTElEX1VSTCJdLmZvckVhY2goQT0+e2x0W0FdPXt2YWx1ZTpBfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHJBLGx0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoRXQsImlzQXhpb3NFcnJvciIse3ZhbHVlOiEwfSk7ckEuZnJvbT0oQSxlLHQscixpLEkpPT57bGV0IG89T2JqZWN0LmNyZWF0ZShFdCk7Qi50b0ZsYXRPYmplY3QoQSxvLGZ1bmN0aW9uKG4pe3JldHVybiBuIT09RXJyb3IucHJvdG90eXBlfSxzPT5zIT09ImlzQXhpb3NFcnJvciIpO2xldCBhPUEmJkEubWVzc2FnZT9BLm1lc3NhZ2U6IkVycm9yIixFPWU9PW51bGwmJkE/QS5jb2RlOmU7cmV0dXJuIHJBLmNhbGwobyxhLEUsdCxyLGkpLEEmJm8uY2F1c2U9PW51bGwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCJjYXVzZSIse3ZhbHVlOkEsY29uZmlndXJhYmxlOiEwfSksby5uYW1lPUEmJkEubmFtZXx8IkVycm9yIixJJiZPYmplY3QuYXNzaWduKG8sSSksb307dmFyIGQ9ckE7dmFyIFlBPW51bGw7ZnVuY3Rpb24gRWUoQSl7cmV0dXJuIEIuaXNQbGFpbk9iamVjdChBKXx8Qi5pc0FycmF5KEEpfWZ1bmN0aW9uIHV0KEEpe3JldHVybiBCLmVuZHNXaXRoKEEsIltdIik/QS5zbGljZSgwLC0yKTpBfWZ1bmN0aW9uIGN0KEEsZSx0KXtyZXR1cm4gQT9BLmNvbmNhdChlKS5tYXAoZnVuY3Rpb24oaSxJKXtyZXR1cm4gaT11dChpKSwhdCYmST8iWyIraSsiXSI6aX0pLmpvaW4odD8iLiI6IiIpOmV9ZnVuY3Rpb24gZGkoQSl7cmV0dXJuIEIuaXNBcnJheShBKSYmIUEuc29tZShFZSl9dmFyIG1pPUIudG9GbGF0T2JqZWN0KEIse30sbnVsbCxmdW5jdGlvbihlKXtyZXR1cm4vXmlzW0EtWl0vLnRlc3QoZSl9KTtmdW5jdGlvbiBoaShBLGUsdCl7aWYoIUIuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7ZT1lfHxuZXcoWUF8fEZvcm1EYXRhKSx0PUIudG9GbGF0T2JqZWN0KHQse21ldGFUb2tlbnM6ITAsZG90czohMSxpbmRleGVzOiExfSwhMSxmdW5jdGlvbihsLGMpe3JldHVybiFCLmlzVW5kZWZpbmVkKGNbbF0pfSk7bGV0IHI9dC5tZXRhVG9rZW5zLGk9dC52aXNpdG9yfHxuLEk9dC5kb3RzLG89dC5pbmRleGVzLEU9KHQuQmxvYnx8dHlwZW9mIEJsb2I8InUiJiZCbG9iKSYmQi5pc1NwZWNDb21wbGlhbnRGb3JtKGUpO2lmKCFCLmlzRnVuY3Rpb24oaSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBzKFEpe2lmKFE9PT1udWxsKXJldHVybiIiO2lmKEIuaXNEYXRlKFEpKXJldHVybiBRLnRvSVNPU3RyaW5nKCk7aWYoQi5pc0Jvb2xlYW4oUSkpcmV0dXJuIFEudG9TdHJpbmcoKTtpZighRSYmQi5pc0Jsb2IoUSkpdGhyb3cgbmV3IGQoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7cmV0dXJuIEIuaXNBcnJheUJ1ZmZlcihRKXx8Qi5pc1R5cGVkQXJyYXkoUSk/RSYmdHlwZW9mIEJsb2I9PSJmdW5jdGlvbiI/bmV3IEJsb2IoW1FdKTpCdWZmZXIuZnJvbShRKTpRfWZ1bmN0aW9uIG4oUSxsLGMpe2xldCBwPVE7aWYoUSYmIWMmJnR5cGVvZiBRPT0ib2JqZWN0Iil7aWYoQi5lbmRzV2l0aChsLCJ7fSIpKWw9cj9sOmwuc2xpY2UoMCwtMiksUT1KU09OLnN0cmluZ2lmeShRKTtlbHNlIGlmKEIuaXNBcnJheShRKSYmZGkoUSl8fChCLmlzRmlsZUxpc3QoUSl8fEIuZW5kc1dpdGgobCwiW10iKSkmJihwPUIudG9BcnJheShRKSkpcmV0dXJuIGw9dXQobCkscC5mb3JFYWNoKGZ1bmN0aW9uKGgsTil7IShCLmlzVW5kZWZpbmVkKGgpfHxoPT09bnVsbCkmJmUuYXBwZW5kKG89PT0hMD9jdChbbF0sTixJKTpvPT09bnVsbD9sOmwrIltdIixzKGgpKX0pLCExfXJldHVybiBFZShRKT8hMDooZS5hcHBlbmQoY3QoYyxsLEkpLHMoUSkpLCExKX1sZXQgZz1bXSx1PU9iamVjdC5hc3NpZ24obWkse2RlZmF1bHRWaXNpdG9yOm4sY29udmVydFZhbHVlOnMsaXNWaXNpdGFibGU6RWV9KTtmdW5jdGlvbiBDKFEsbCl7aWYoIUIuaXNVbmRlZmluZWQoUSkpe2lmKGcuaW5kZXhPZihRKSE9PS0xKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitsLmpvaW4oIi4iKSk7Zy5wdXNoKFEpLEIuZm9yRWFjaChRLGZ1bmN0aW9uKHAsbSl7KCEoQi5pc1VuZGVmaW5lZChwKXx8cD09PW51bGwpJiZpLmNhbGwoZSxwLEIuaXNTdHJpbmcobSk/bS50cmltKCk6bSxsLHUpKT09PSEwJiZDKHAsbD9sLmNvbmNhdChtKTpbbV0pfSksZy5wb3AoKX19aWYoIUIuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZGF0YSBtdXN0IGJlIGFuIG9iamVjdCIpO3JldHVybiBDKEEpLGV9dmFyIGo9aGk7ZnVuY3Rpb24gZnQoQSl7bGV0IGU9eyIhIjoiJTIxIiwiJyI6IiUyNyIsIigiOiIlMjgiLCIpIjoiJTI5IiwifiI6IiU3RSIsIiUyMCI6IisiLCIlMDAiOiJcMCJ9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyEnKCl+XXwlMjB8JTAwL2csZnVuY3Rpb24ocil7cmV0dXJuIGVbcl19KX1mdW5jdGlvbiBwdChBLGUpe3RoaXMuX3BhaXJzPVtdLEEmJmooQSx0aGlzLGUpfXZhciBkdD1wdC5wcm90b3R5cGU7ZHQuYXBwZW5kPWZ1bmN0aW9uKGUsdCl7dGhpcy5fcGFpcnMucHVzaChbZSx0XSl9O2R0LnRvU3RyaW5nPWZ1bmN0aW9uKGUpe2xldCB0PWU/ZnVuY3Rpb24ocil7cmV0dXJuIGUuY2FsbCh0aGlzLHIsZnQpfTpmdDtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKGkpe3JldHVybiB0KGlbMF0pKyI9Iit0KGlbMV0pfSwiIikuam9pbigiJiIpfTt2YXIgVEE9cHQ7ZnVuY3Rpb24geWkoQSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpLnJlcGxhY2UoLyUyMC9nLCIrIil9ZnVuY3Rpb24gbEEoQSxlLHQpe2lmKCFlKXJldHVybiBBO2xldCByPXQmJnQuZW5jb2RlfHx5aTtCLmlzRnVuY3Rpb24odCkmJih0PXtzZXJpYWxpemU6dH0pO2xldCBpPXQmJnQuc2VyaWFsaXplLEk7aWYoaT9JPWkoZSx0KTpJPUIuaXNVUkxTZWFyY2hQYXJhbXMoZSk/ZS50b1N0cmluZygpOm5ldyBUQShlLHQpLnRvU3RyaW5nKHIpLEkpe2xldCBvPUEuaW5kZXhPZigiIyIpO28hPT0tMSYmKEE9QS5zbGljZSgwLG8pKSxBKz0oQS5pbmRleE9mKCI/Iik9PT0tMT8iPyI6IiYiKStJfXJldHVybiBBfXZhciBsZT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaGFuZGxlcnM9W119dXNlKGUsdCxyKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6ZSxyZWplY3RlZDp0LHN5bmNocm9ub3VzOnI/ci5zeW5jaHJvbm91czohMSxydW5XaGVuOnI/ci5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfWVqZWN0KGUpe3RoaXMuaGFuZGxlcnNbZV0mJih0aGlzLmhhbmRsZXJzW2VdPW51bGwpfWNsZWFyKCl7dGhpcy5oYW5kbGVycyYmKHRoaXMuaGFuZGxlcnM9W10pfWZvckVhY2goZSl7Qi5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24ocil7ciE9PW51bGwmJmUocil9KX19LGNlPWxlO3ZhciBPQT17c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX07dmFyIG10PXR5cGVvZiBVUkxTZWFyY2hQYXJhbXM8InUiP1VSTFNlYXJjaFBhcmFtczpUQTt2YXIgaHQ9dHlwZW9mIEZvcm1EYXRhPCJ1Ij9Gb3JtRGF0YTpudWxsO3ZhciB5dD10eXBlb2YgQmxvYjwidSI/QmxvYjpudWxsO3ZhciBEdD17aXNCcm93c2VyOiEwLGNsYXNzZXM6e1VSTFNlYXJjaFBhcmFtczptdCxGb3JtRGF0YTpodCxCbG9iOnl0fSxwcm90b2NvbHM6WyJodHRwIiwiaHR0cHMiLCJmaWxlIiwiYmxvYiIsInVybCIsImRhdGEiXX07dmFyIHBlPXt9O2NyKHBlLHtoYXNCcm93c2VyRW52OigpPT5mZSxoYXNTdGFuZGFyZEJyb3dzZXJFbnY6KCk9PkRpLGhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudjooKT0+d2ksbmF2aWdhdG9yOigpPT51ZSxvcmlnaW46KCk9PlNpfSk7dmFyIGZlPXR5cGVvZiB3aW5kb3c8InUiJiZ0eXBlb2YgZG9jdW1lbnQ8InUiLHVlPXR5cGVvZiBuYXZpZ2F0b3I9PSJvYmplY3QiJiZuYXZpZ2F0b3J8fHZvaWQgMCxEaT1mZSYmKCF1ZXx8WyJSZWFjdE5hdGl2ZSIsIk5hdGl2ZVNjcmlwdCIsIk5TIl0uaW5kZXhPZih1ZS5wcm9kdWN0KTwwKSx3aT10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU8InUiJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnR5cGVvZiBzZWxmLmltcG9ydFNjcmlwdHM9PSJmdW5jdGlvbiIsU2k9ZmUmJndpbmRvdy5sb2NhdGlvbi5ocmVmfHwiaHR0cDovL2xvY2FsaG9zdCI7dmFyIFM9ey4uLnBlLC4uLkR0fTtmdW5jdGlvbiBkZShBLGUpe3JldHVybiBqKEEsbmV3IFMuY2xhc3Nlcy5VUkxTZWFyY2hQYXJhbXMse3Zpc2l0b3I6ZnVuY3Rpb24odCxyLGksSSl7cmV0dXJuIFMuaXNOb2RlJiZCLmlzQnVmZmVyKHQpPyh0aGlzLmFwcGVuZChyLHQudG9TdHJpbmcoImJhc2U2NCIpKSwhMSk6SS5kZWZhdWx0VmlzaXRvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LC4uLmV9KX1mdW5jdGlvbiBGaShBKXtyZXR1cm4gQi5tYXRjaEFsbCgvXHcrfFxbKFx3KildL2csQSkubWFwKGU9PmVbMF09PT0iW10iPyIiOmVbMV18fGVbMF0pfWZ1bmN0aW9uIFJpKEEpe2xldCBlPXt9LHQ9T2JqZWN0LmtleXMoQSkscixpPXQubGVuZ3RoLEk7Zm9yKHI9MDtyPGk7cisrKUk9dFtyXSxlW0ldPUFbSV07cmV0dXJuIGV9ZnVuY3Rpb24ga2koQSl7ZnVuY3Rpb24gZSh0LHIsaSxJKXtsZXQgbz10W0krK107aWYobz09PSJfX3Byb3RvX18iKXJldHVybiEwO2xldCBhPU51bWJlci5pc0Zpbml0ZSgrbyksRT1JPj10Lmxlbmd0aDtyZXR1cm4gbz0hbyYmQi5pc0FycmF5KGkpP2kubGVuZ3RoOm8sRT8oQi5oYXNPd25Qcm9wKGksbyk/aVtvXT1baVtvXSxyXTppW29dPXIsIWEpOigoIWlbb118fCFCLmlzT2JqZWN0KGlbb10pKSYmKGlbb109W10pLGUodCxyLGlbb10sSSkmJkIuaXNBcnJheShpW29dKSYmKGlbb109UmkoaVtvXSkpLCFhKX1pZihCLmlzRm9ybURhdGEoQSkmJkIuaXNGdW5jdGlvbihBLmVudHJpZXMpKXtsZXQgdD17fTtyZXR1cm4gQi5mb3JFYWNoRW50cnkoQSwocixpKT0+e2UoRmkociksaSx0LDApfSksdH1yZXR1cm4gbnVsbH12YXIgeEE9a2k7ZnVuY3Rpb24gVWkoQSxlLHQpe2lmKEIuaXNTdHJpbmcoQSkpdHJ5e3JldHVybihlfHxKU09OLnBhcnNlKShBKSxCLnRyaW0oQSl9Y2F0Y2gocil7aWYoci5uYW1lIT09IlN5bnRheEVycm9yIil0aHJvdyByfXJldHVybih0fHxKU09OLnN0cmluZ2lmeSkoQSl9dmFyIG1lPXt0cmFuc2l0aW9uYWw6T0EsYWRhcHRlcjpbInhociIsImh0dHAiLCJmZXRjaCJdLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKGUsdCl7bGV0IHI9dC5nZXRDb250ZW50VHlwZSgpfHwiIixpPXIuaW5kZXhPZigiYXBwbGljYXRpb24vanNvbiIpPi0xLEk9Qi5pc09iamVjdChlKTtpZihJJiZCLmlzSFRNTEZvcm0oZSkmJihlPW5ldyBGb3JtRGF0YShlKSksQi5pc0Zvcm1EYXRhKGUpKXJldHVybiBpP0pTT04uc3RyaW5naWZ5KHhBKGUpKTplO2lmKEIuaXNBcnJheUJ1ZmZlcihlKXx8Qi5pc0J1ZmZlcihlKXx8Qi5pc1N0cmVhbShlKXx8Qi5pc0ZpbGUoZSl8fEIuaXNCbG9iKGUpfHxCLmlzUmVhZGFibGVTdHJlYW0oZSkpcmV0dXJuIGU7aWYoQi5pc0FycmF5QnVmZmVyVmlldyhlKSlyZXR1cm4gZS5idWZmZXI7aWYoQi5pc1VSTFNlYXJjaFBhcmFtcyhlKSlyZXR1cm4gdC5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiLCExKSxlLnRvU3RyaW5nKCk7bGV0IGE7aWYoSSl7aWYoci5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKT4tMSlyZXR1cm4gZGUoZSx0aGlzLmZvcm1TZXJpYWxpemVyKS50b1N0cmluZygpO2lmKChhPUIuaXNGaWxlTGlzdChlKSl8fHIuaW5kZXhPZigibXVsdGlwYXJ0L2Zvcm0tZGF0YSIpPi0xKXtsZXQgRT10aGlzLmVudiYmdGhpcy5lbnYuRm9ybURhdGE7cmV0dXJuIGooYT97ImZpbGVzW10iOmV9OmUsRSYmbmV3IEUsdGhpcy5mb3JtU2VyaWFsaXplcil9fXJldHVybiBJfHxpPyh0LnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi9qc29uIiwhMSksVWkoZSkpOmV9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24oZSl7bGV0IHQ9dGhpcy50cmFuc2l0aW9uYWx8fG1lLnRyYW5zaXRpb25hbCxyPXQmJnQuZm9yY2VkSlNPTlBhcnNpbmcsaT10aGlzLnJlc3BvbnNlVHlwZT09PSJqc29uIjtpZihCLmlzUmVzcG9uc2UoZSl8fEIuaXNSZWFkYWJsZVN0cmVhbShlKSlyZXR1cm4gZTtpZihlJiZCLmlzU3RyaW5nKGUpJiYociYmIXRoaXMucmVzcG9uc2VUeXBlfHxpKSl7bGV0IG89ISh0JiZ0LnNpbGVudEpTT05QYXJzaW5nKSYmaTt0cnl7cmV0dXJuIEpTT04ucGFyc2UoZSx0aGlzLnBhcnNlUmV2aXZlcil9Y2F0Y2goYSl7aWYobyl0aHJvdyBhLm5hbWU9PT0iU3ludGF4RXJyb3IiP2QuZnJvbShhLGQuRVJSX0JBRF9SRVNQT05TRSx0aGlzLG51bGwsdGhpcy5yZXNwb25zZSk6YX19cmV0dXJuIGV9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSxlbnY6e0Zvcm1EYXRhOlMuY2xhc3Nlcy5Gb3JtRGF0YSxCbG9iOlMuY2xhc3Nlcy5CbG9ifSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbihlKXtyZXR1cm4gZT49MjAwJiZlPDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiIsIkNvbnRlbnQtVHlwZSI6dm9pZCAwfX19O0IuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giXSxBPT57bWUuaGVhZGVyc1tBXT17fX0pO3ZhciBpQT1tZTt2YXIgTmk9Qi50b09iamVjdFNldChbImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdKSx3dD1BPT57bGV0IGU9e30sdCxyLGk7cmV0dXJuIEEmJkEuc3BsaXQoYApgKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe2k9by5pbmRleE9mKCI6IiksdD1vLnN1YnN0cmluZygwLGkpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLHI9by5zdWJzdHJpbmcoaSsxKS50cmltKCksISghdHx8ZVt0XSYmTmlbdF0pJiYodD09PSJzZXQtY29va2llIj9lW3RdP2VbdF0ucHVzaChyKTplW3RdPVtyXTplW3RdPWVbdF0/ZVt0XSsiLCAiK3I6cil9KSxlfTt2YXIgU3Q9U3ltYm9sKCJpbnRlcm5hbHMiKTtmdW5jdGlvbiBjQShBKXtyZXR1cm4gQSYmU3RyaW5nKEEpLnRyaW0oKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIHFBKEEpe3JldHVybiBBPT09ITF8fEE9PW51bGw/QTpCLmlzQXJyYXkoQSk/QS5tYXAocUEpOlN0cmluZyhBKX1mdW5jdGlvbiBHaShBKXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpLHQ9LyhbXlxzLDs9XSspXHMqKD86PVxzKihbXiw7XSspKT8vZyxyO2Zvcig7cj10LmV4ZWMoQSk7KWVbclsxXV09clsyXTtyZXR1cm4gZX12YXIgYmk9QT0+L15bLV9hLXpBLVowLTleYHx+LCEjJCUmJyorLl0rJC8udGVzdChBLnRyaW0oKSk7ZnVuY3Rpb24gaGUoQSxlLHQscixpKXtpZihCLmlzRnVuY3Rpb24ocikpcmV0dXJuIHIuY2FsbCh0aGlzLGUsdCk7aWYoaSYmKGU9dCksISFCLmlzU3RyaW5nKGUpKXtpZihCLmlzU3RyaW5nKHIpKXJldHVybiBlLmluZGV4T2YocikhPT0tMTtpZihCLmlzUmVnRXhwKHIpKXJldHVybiByLnRlc3QoZSl9fWZ1bmN0aW9uIExpKEEpe3JldHVybiBBLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbYS16XGRdKShcdyopL2csKGUsdCxyKT0+dC50b1VwcGVyQ2FzZSgpK3IpfWZ1bmN0aW9uIEppKEEsZSl7bGV0IHQ9Qi50b0NhbWVsQ2FzZSgiICIrZSk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKHI9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxyK3Qse3ZhbHVlOmZ1bmN0aW9uKGksSSxvKXtyZXR1cm4gdGhpc1tyXS5jYWxsKHRoaXMsZSxpLEksbyl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9dmFyIElBPWNsYXNze2NvbnN0cnVjdG9yKGUpe2UmJnRoaXMuc2V0KGUpfXNldChlLHQscil7bGV0IGk9dGhpcztmdW5jdGlvbiBJKGEsRSxzKXtsZXQgbj1jQShFKTtpZighbil0aHJvdyBuZXcgRXJyb3IoImhlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7bGV0IGc9Qi5maW5kS2V5KGksbik7KCFnfHxpW2ddPT09dm9pZCAwfHxzPT09ITB8fHM9PT12b2lkIDAmJmlbZ10hPT0hMSkmJihpW2d8fEVdPXFBKGEpKX1sZXQgbz0oYSxFKT0+Qi5mb3JFYWNoKGEsKHMsbik9PkkocyxuLEUpKTtpZihCLmlzUGxhaW5PYmplY3QoZSl8fGUgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKW8oZSx0KTtlbHNlIGlmKEIuaXNTdHJpbmcoZSkmJihlPWUudHJpbSgpKSYmIWJpKGUpKW8od3QoZSksdCk7ZWxzZSBpZihCLmlzT2JqZWN0KGUpJiZCLmlzSXRlcmFibGUoZSkpe2xldCBhPXt9LEUscztmb3IobGV0IG4gb2YgZSl7aWYoIUIuaXNBcnJheShuKSl0aHJvdyBUeXBlRXJyb3IoIk9iamVjdCBpdGVyYXRvciBtdXN0IHJldHVybiBhIGtleS12YWx1ZSBwYWlyIik7YVtzPW5bMF1dPShFPWFbc10pP0IuaXNBcnJheShFKT9bLi4uRSxuWzFdXTpbRSxuWzFdXTpuWzFdfW8oYSx0KX1lbHNlIGUhPW51bGwmJkkodCxlLHIpO3JldHVybiB0aGlzfWdldChlLHQpe2lmKGU9Y0EoZSksZSl7bGV0IHI9Qi5maW5kS2V5KHRoaXMsZSk7aWYocil7bGV0IGk9dGhpc1tyXTtpZighdClyZXR1cm4gaTtpZih0PT09ITApcmV0dXJuIEdpKGkpO2lmKEIuaXNGdW5jdGlvbih0KSlyZXR1cm4gdC5jYWxsKHRoaXMsaSxyKTtpZihCLmlzUmVnRXhwKHQpKXJldHVybiB0LmV4ZWMoaSk7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyhlLHQpe2lmKGU9Y0EoZSksZSl7bGV0IHI9Qi5maW5kS2V5KHRoaXMsZSk7cmV0dXJuISEociYmdGhpc1tyXSE9PXZvaWQgMCYmKCF0fHxoZSh0aGlzLHRoaXNbcl0scix0KSkpfXJldHVybiExfWRlbGV0ZShlLHQpe2xldCByPXRoaXMsaT0hMTtmdW5jdGlvbiBJKG8pe2lmKG89Y0Eobyksbyl7bGV0IGE9Qi5maW5kS2V5KHIsbyk7YSYmKCF0fHxoZShyLHJbYV0sYSx0KSkmJihkZWxldGUgclthXSxpPSEwKX19cmV0dXJuIEIuaXNBcnJheShlKT9lLmZvckVhY2goSSk6SShlKSxpfWNsZWFyKGUpe2xldCB0PU9iamVjdC5rZXlzKHRoaXMpLHI9dC5sZW5ndGgsaT0hMTtmb3IoO3ItLTspe2xldCBJPXRbcl07KCFlfHxoZSh0aGlzLHRoaXNbSV0sSSxlLCEwKSkmJihkZWxldGUgdGhpc1tJXSxpPSEwKX1yZXR1cm4gaX1ub3JtYWxpemUoZSl7bGV0IHQ9dGhpcyxyPXt9O3JldHVybiBCLmZvckVhY2godGhpcywoaSxJKT0+e2xldCBvPUIuZmluZEtleShyLEkpO2lmKG8pe3Rbb109cUEoaSksZGVsZXRlIHRbSV07cmV0dXJufWxldCBhPWU/TGkoSSk6U3RyaW5nKEkpLnRyaW0oKTthIT09SSYmZGVsZXRlIHRbSV0sdFthXT1xQShpKSxyW2FdPSEwfSksdGhpc31jb25jYXQoLi4uZSl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4uZSl9dG9KU09OKGUpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIEIuZm9yRWFjaCh0aGlzLChyLGkpPT57ciE9bnVsbCYmciE9PSExJiYodFtpXT1lJiZCLmlzQXJyYXkocik/ci5qb2luKCIsICIpOnIpfSksdH1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbZSx0XSk9PmUrIjogIit0KS5qb2luKGAKYCl9Z2V0U2V0Q29va2llKCl7cmV0dXJuIHRoaXMuZ2V0KCJzZXQtY29va2llIil8fFtdfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkF4aW9zSGVhZGVycyJ9c3RhdGljIGZyb20oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzP2U6bmV3IHRoaXMoZSl9c3RhdGljIGNvbmNhdChlLC4uLnQpe2xldCByPW5ldyB0aGlzKGUpO3JldHVybiB0LmZvckVhY2goaT0+ci5zZXQoaSkpLHJ9c3RhdGljIGFjY2Vzc29yKGUpe2xldCByPSh0aGlzW1N0XT10aGlzW1N0XT17YWNjZXNzb3JzOnt9fSkuYWNjZXNzb3JzLGk9dGhpcy5wcm90b3R5cGU7ZnVuY3Rpb24gSShvKXtsZXQgYT1jQShvKTtyW2FdfHwoSmkoaSxvKSxyW2FdPSEwKX1yZXR1cm4gQi5pc0FycmF5KGUpP2UuZm9yRWFjaChJKTpJKGUpLHRoaXN9fTtJQS5hY2Nlc3NvcihbIkNvbnRlbnQtVHlwZSIsIkNvbnRlbnQtTGVuZ3RoIiwiQWNjZXB0IiwiQWNjZXB0LUVuY29kaW5nIiwiVXNlci1BZ2VudCIsIkF1dGhvcml6YXRpb24iXSk7Qi5yZWR1Y2VEZXNjcmlwdG9ycyhJQS5wcm90b3R5cGUsKHt2YWx1ZTpBfSxlKT0+e2xldCB0PWVbMF0udG9VcHBlckNhc2UoKStlLnNsaWNlKDEpO3JldHVybntnZXQ6KCk9PkEsc2V0KHIpe3RoaXNbdF09cn19fSk7Qi5mcmVlemVNZXRob2RzKElBKTt2YXIgVT1JQTtmdW5jdGlvbiB1QShBLGUpe2xldCB0PXRoaXN8fGlBLHI9ZXx8dCxpPVUuZnJvbShyLmhlYWRlcnMpLEk9ci5kYXRhO3JldHVybiBCLmZvckVhY2goQSxmdW5jdGlvbihhKXtJPWEuY2FsbCh0LEksaS5ub3JtYWxpemUoKSxlP2Uuc3RhdHVzOnZvaWQgMCl9KSxpLm5vcm1hbGl6ZSgpLEl9ZnVuY3Rpb24gZkEoQSl7cmV0dXJuISEoQSYmQS5fX0NBTkNFTF9fKX1mdW5jdGlvbiBGdChBLGUsdCl7ZC5jYWxsKHRoaXMsQT8/ImNhbmNlbGVkIixkLkVSUl9DQU5DRUxFRCxlLHQpLHRoaXMubmFtZT0iQ2FuY2VsZWRFcnJvciJ9Qi5pbmhlcml0cyhGdCxkLHtfX0NBTkNFTF9fOiEwfSk7dmFyIHg9RnQ7ZnVuY3Rpb24gcEEoQSxlLHQpe2xldCByPXQuY29uZmlnLnZhbGlkYXRlU3RhdHVzOyF0LnN0YXR1c3x8IXJ8fHIodC5zdGF0dXMpP0EodCk6ZShuZXcgZCgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK3Quc3RhdHVzLFtkLkVSUl9CQURfUkVRVUVTVCxkLkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3IodC5zdGF0dXMvMTAwKS00XSx0LmNvbmZpZyx0LnJlcXVlc3QsdCkpfWZ1bmN0aW9uIHllKEEpe2xldCBlPS9eKFstK1x3XXsxLDI1fSkoOj9cL1wvfDopLy5leGVjKEEpO3JldHVybiBlJiZlWzFdfHwiIn1mdW5jdGlvbiBNaShBLGUpe0E9QXx8MTA7bGV0IHQ9bmV3IEFycmF5KEEpLHI9bmV3IEFycmF5KEEpLGk9MCxJPTAsbztyZXR1cm4gZT1lIT09dm9pZCAwP2U6MWUzLGZ1bmN0aW9uKEUpe2xldCBzPURhdGUubm93KCksbj1yW0ldO298fChvPXMpLHRbaV09RSxyW2ldPXM7bGV0IGc9SSx1PTA7Zm9yKDtnIT09aTspdSs9dFtnKytdLGc9ZyVBO2lmKGk9KGkrMSklQSxpPT09SSYmKEk9KEkrMSklQSkscy1vPGUpcmV0dXJuO2xldCBDPW4mJnMtbjtyZXR1cm4gQz9NYXRoLnJvdW5kKHUqMWUzL0MpOnZvaWQgMH19dmFyIFJ0PU1pO2Z1bmN0aW9uIEhpKEEsZSl7bGV0IHQ9MCxyPTFlMy9lLGksSSxvPShzLG49RGF0ZS5ub3coKSk9Pnt0PW4saT1udWxsLEkmJihjbGVhclRpbWVvdXQoSSksST1udWxsKSxBKC4uLnMpfTtyZXR1cm5bKC4uLnMpPT57bGV0IG49RGF0ZS5ub3coKSxnPW4tdDtnPj1yP28ocyxuKTooaT1zLEl8fChJPXNldFRpbWVvdXQoKCk9PntJPW51bGwsbyhpKX0sci1nKSkpfSwoKT0+aSYmbyhpKV19dmFyIGt0PUhpO3ZhciBvQT0oQSxlLHQ9Myk9PntsZXQgcj0wLGk9UnQoNTAsMjUwKTtyZXR1cm4ga3QoST0+e2xldCBvPUkubG9hZGVkLGE9SS5sZW5ndGhDb21wdXRhYmxlP0kudG90YWw6dm9pZCAwLEU9by1yLHM9aShFKSxuPW88PWE7cj1vO2xldCBnPXtsb2FkZWQ6byx0b3RhbDphLHByb2dyZXNzOmE/by9hOnZvaWQgMCxieXRlczpFLHJhdGU6c3x8dm9pZCAwLGVzdGltYXRlZDpzJiZhJiZuPyhhLW8pL3M6dm9pZCAwLGV2ZW50OkksbGVuZ3RoQ29tcHV0YWJsZTphIT1udWxsLFtlPyJkb3dubG9hZCI6InVwbG9hZCJdOiEwfTtBKGcpfSx0KX0sRGU9KEEsZSk9PntsZXQgdD1BIT1udWxsO3JldHVybltyPT5lWzBdKHtsZW5ndGhDb21wdXRhYmxlOnQsdG90YWw6QSxsb2FkZWQ6cn0pLGVbMV1dfSx3ZT1BPT4oLi4uZSk9PkIuYXNhcCgoKT0+QSguLi5lKSk7dmFyIFV0PVMuaGFzU3RhbmRhcmRCcm93c2VyRW52PygoQSxlKT0+dD0+KHQ9bmV3IFVSTCh0LFMub3JpZ2luKSxBLnByb3RvY29sPT09dC5wcm90b2NvbCYmQS5ob3N0PT09dC5ob3N0JiYoZXx8QS5wb3J0PT09dC5wb3J0KSkpKG5ldyBVUkwoUy5vcmlnaW4pLFMubmF2aWdhdG9yJiYvKG1zaWV8dHJpZGVudCkvaS50ZXN0KFMubmF2aWdhdG9yLnVzZXJBZ2VudCkpOigpPT4hMDt2YXIgTnQ9Uy5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/e3dyaXRlKEEsZSx0LHIsaSxJKXtsZXQgbz1bQSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGUpXTtCLmlzTnVtYmVyKHQpJiZvLnB1c2goImV4cGlyZXM9IituZXcgRGF0ZSh0KS50b0dNVFN0cmluZygpKSxCLmlzU3RyaW5nKHIpJiZvLnB1c2goInBhdGg9IityKSxCLmlzU3RyaW5nKGkpJiZvLnB1c2goImRvbWFpbj0iK2kpLEk9PT0hMCYmby5wdXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9by5qb2luKCI7ICIpfSxyZWFkKEEpe2xldCBlPWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxzKikoIitBKyIpPShbXjtdKikiKSk7cmV0dXJuIGU/ZGVjb2RlVVJJQ29tcG9uZW50KGVbM10pOm51bGx9LHJlbW92ZShBKXt0aGlzLndyaXRlKEEsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGUoKXt9LHJlYWQoKXtyZXR1cm4gbnVsbH0scmVtb3ZlKCl7fX07ZnVuY3Rpb24gU2UoQSl7cmV0dXJuL14oW2Etel1bYS16XGQrXC0uXSo6KT9cL1wvL2kudGVzdChBKX1mdW5jdGlvbiBGZShBLGUpe3JldHVybiBlP0EucmVwbGFjZSgvXC8/XC8kLywiIikrIi8iK2UucmVwbGFjZSgvXlwvKy8sIiIpOkF9ZnVuY3Rpb24gZEEoQSxlLHQpe2xldCByPSFTZShlKTtyZXR1cm4gQSYmKHJ8fHQ9PSExKT9GZShBLGUpOmV9dmFyIEd0PUE9PkEgaW5zdGFuY2VvZiBVP3suLi5BfTpBO2Z1bmN0aW9uIFkoQSxlKXtlPWV8fHt9O2xldCB0PXt9O2Z1bmN0aW9uIHIocyxuLGcsdSl7cmV0dXJuIEIuaXNQbGFpbk9iamVjdChzKSYmQi5pc1BsYWluT2JqZWN0KG4pP0IubWVyZ2UuY2FsbCh7Y2FzZWxlc3M6dX0scyxuKTpCLmlzUGxhaW5PYmplY3Qobik/Qi5tZXJnZSh7fSxuKTpCLmlzQXJyYXkobik/bi5zbGljZSgpOm59ZnVuY3Rpb24gaShzLG4sZyx1KXtpZihCLmlzVW5kZWZpbmVkKG4pKXtpZighQi5pc1VuZGVmaW5lZChzKSlyZXR1cm4gcih2b2lkIDAscyxnLHUpfWVsc2UgcmV0dXJuIHIocyxuLGcsdSl9ZnVuY3Rpb24gSShzLG4pe2lmKCFCLmlzVW5kZWZpbmVkKG4pKXJldHVybiByKHZvaWQgMCxuKX1mdW5jdGlvbiBvKHMsbil7aWYoQi5pc1VuZGVmaW5lZChuKSl7aWYoIUIuaXNVbmRlZmluZWQocykpcmV0dXJuIHIodm9pZCAwLHMpfWVsc2UgcmV0dXJuIHIodm9pZCAwLG4pfWZ1bmN0aW9uIGEocyxuLGcpe2lmKGcgaW4gZSlyZXR1cm4gcihzLG4pO2lmKGcgaW4gQSlyZXR1cm4gcih2b2lkIDAscyl9bGV0IEU9e3VybDpJLG1ldGhvZDpJLGRhdGE6SSxiYXNlVVJMOm8sdHJhbnNmb3JtUmVxdWVzdDpvLHRyYW5zZm9ybVJlc3BvbnNlOm8scGFyYW1zU2VyaWFsaXplcjpvLHRpbWVvdXQ6byx0aW1lb3V0TWVzc2FnZTpvLHdpdGhDcmVkZW50aWFsczpvLHdpdGhYU1JGVG9rZW46byxhZGFwdGVyOm8scmVzcG9uc2VUeXBlOm8seHNyZkNvb2tpZU5hbWU6byx4c3JmSGVhZGVyTmFtZTpvLG9uVXBsb2FkUHJvZ3Jlc3M6byxvbkRvd25sb2FkUHJvZ3Jlc3M6byxkZWNvbXByZXNzOm8sbWF4Q29udGVudExlbmd0aDpvLG1heEJvZHlMZW5ndGg6byxiZWZvcmVSZWRpcmVjdDpvLHRyYW5zcG9ydDpvLGh0dHBBZ2VudDpvLGh0dHBzQWdlbnQ6byxjYW5jZWxUb2tlbjpvLHNvY2tldFBhdGg6byxyZXNwb25zZUVuY29kaW5nOm8sdmFsaWRhdGVTdGF0dXM6YSxoZWFkZXJzOihzLG4sZyk9PmkoR3QocyksR3QobiksZywhMCl9O3JldHVybiBCLmZvckVhY2goT2JqZWN0LmtleXMoey4uLkEsLi4uZX0pLGZ1bmN0aW9uKG4pe2xldCBnPUVbbl18fGksdT1nKEFbbl0sZVtuXSxuKTtCLmlzVW5kZWZpbmVkKHUpJiZnIT09YXx8KHRbbl09dSl9KSx0fXZhciBQQT1BPT57bGV0IGU9WSh7fSxBKSx7ZGF0YTp0LHdpdGhYU1JGVG9rZW46cix4c3JmSGVhZGVyTmFtZTppLHhzcmZDb29raWVOYW1lOkksaGVhZGVyczpvLGF1dGg6YX09ZTtpZihlLmhlYWRlcnM9bz1VLmZyb20obyksZS51cmw9bEEoZEEoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMpLEEucGFyYW1zLEEucGFyYW1zU2VyaWFsaXplciksYSYmby5zZXQoIkF1dGhvcml6YXRpb24iLCJCYXNpYyAiK2J0b2EoKGEudXNlcm5hbWV8fCIiKSsiOiIrKGEucGFzc3dvcmQ/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KGEucGFzc3dvcmQpKToiIikpKSxCLmlzRm9ybURhdGEodCkpe2lmKFMuaGFzU3RhbmRhcmRCcm93c2VyRW52fHxTLmhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudilvLnNldENvbnRlbnRUeXBlKHZvaWQgMCk7ZWxzZSBpZihCLmlzRnVuY3Rpb24odC5nZXRIZWFkZXJzKSl7bGV0IEU9dC5nZXRIZWFkZXJzKCkscz1bImNvbnRlbnQtdHlwZSIsImNvbnRlbnQtbGVuZ3RoIl07T2JqZWN0LmVudHJpZXMoRSkuZm9yRWFjaCgoW24sZ10pPT57cy5pbmNsdWRlcyhuLnRvTG93ZXJDYXNlKCkpJiZvLnNldChuLGcpfSl9fWlmKFMuaGFzU3RhbmRhcmRCcm93c2VyRW52JiYociYmQi5pc0Z1bmN0aW9uKHIpJiYocj1yKGUpKSxyfHxyIT09ITEmJlV0KGUudXJsKSkpe2xldCBFPWkmJkkmJk50LnJlYWQoSSk7RSYmby5zZXQoaSxFKX1yZXR1cm4gZX07dmFyIFlpPXR5cGVvZiBYTUxIdHRwUmVxdWVzdDwidSIsYnQ9WWkmJmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0LHIpe2xldCBpPVBBKEEpLEk9aS5kYXRhLG89VS5mcm9tKGkuaGVhZGVycykubm9ybWFsaXplKCkse3Jlc3BvbnNlVHlwZTphLG9uVXBsb2FkUHJvZ3Jlc3M6RSxvbkRvd25sb2FkUHJvZ3Jlc3M6c309aSxuLGcsdSxDLFE7ZnVuY3Rpb24gbCgpe0MmJkMoKSxRJiZRKCksaS5jYW5jZWxUb2tlbiYmaS5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShuKSxpLnNpZ25hbCYmaS5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG4pfWxldCBjPW5ldyBYTUxIdHRwUmVxdWVzdDtjLm9wZW4oaS5tZXRob2QudG9VcHBlckNhc2UoKSxpLnVybCwhMCksYy50aW1lb3V0PWkudGltZW91dDtmdW5jdGlvbiBwKCl7aWYoIWMpcmV0dXJuO2xldCBoPVUuZnJvbSgiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIGMmJmMuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLE09e2RhdGE6IWF8fGE9PT0idGV4dCJ8fGE9PT0ianNvbiI/Yy5yZXNwb25zZVRleHQ6Yy5yZXNwb25zZSxzdGF0dXM6Yy5zdGF0dXMsc3RhdHVzVGV4dDpjLnN0YXR1c1RleHQsaGVhZGVyczpoLGNvbmZpZzpBLHJlcXVlc3Q6Y307cEEoZnVuY3Rpb24oSil7dChKKSxsKCl9LGZ1bmN0aW9uKEope3IoSiksbCgpfSxNKSxjPW51bGx9Im9ubG9hZGVuZCJpbiBjP2Mub25sb2FkZW5kPXA6Yy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXshY3x8Yy5yZWFkeVN0YXRlIT09NHx8Yy5zdGF0dXM9PT0wJiYhKGMucmVzcG9uc2VVUkwmJmMucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKT09PTApfHxzZXRUaW1lb3V0KHApfSxjLm9uYWJvcnQ9ZnVuY3Rpb24oKXtjJiYocihuZXcgZCgiUmVxdWVzdCBhYm9ydGVkIixkLkVDT05OQUJPUlRFRCxBLGMpKSxjPW51bGwpfSxjLm9uZXJyb3I9ZnVuY3Rpb24oTil7bGV0IE09TiYmTi5tZXNzYWdlP04ubWVzc2FnZToiTmV0d29yayBFcnJvciIsWj1uZXcgZChNLGQuRVJSX05FVFdPUkssQSxjKTtaLmV2ZW50PU58fG51bGwscihaKSxjPW51bGx9LGMub250aW1lb3V0PWZ1bmN0aW9uKCl7bGV0IE49aS50aW1lb3V0PyJ0aW1lb3V0IG9mICIraS50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiLE09aS50cmFuc2l0aW9uYWx8fE9BO2kudGltZW91dEVycm9yTWVzc2FnZSYmKE49aS50aW1lb3V0RXJyb3JNZXNzYWdlKSxyKG5ldyBkKE4sTS5jbGFyaWZ5VGltZW91dEVycm9yP2QuRVRJTUVET1VUOmQuRUNPTk5BQk9SVEVELEEsYykpLGM9bnVsbH0sST09PXZvaWQgMCYmby5zZXRDb250ZW50VHlwZShudWxsKSwic2V0UmVxdWVzdEhlYWRlciJpbiBjJiZCLmZvckVhY2goby50b0pTT04oKSxmdW5jdGlvbihOLE0pe2Muc2V0UmVxdWVzdEhlYWRlcihNLE4pfSksQi5pc1VuZGVmaW5lZChpLndpdGhDcmVkZW50aWFscyl8fChjLndpdGhDcmVkZW50aWFscz0hIWkud2l0aENyZWRlbnRpYWxzKSxhJiZhIT09Impzb24iJiYoYy5yZXNwb25zZVR5cGU9aS5yZXNwb25zZVR5cGUpLHMmJihbdSxRXT1vQShzLCEwKSxjLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIix1KSksRSYmYy51cGxvYWQmJihbZyxDXT1vQShFKSxjLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZyksYy51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVuZCIsQykpLChpLmNhbmNlbFRva2VufHxpLnNpZ25hbCkmJihuPWg9PntjJiYocighaHx8aC50eXBlP25ldyB4KG51bGwsQSxjKTpoKSxjLmFib3J0KCksYz1udWxsKX0saS5jYW5jZWxUb2tlbiYmaS5jYW5jZWxUb2tlbi5zdWJzY3JpYmUobiksaS5zaWduYWwmJihpLnNpZ25hbC5hYm9ydGVkP24oKTppLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbikpKTtsZXQgbT15ZShpLnVybCk7aWYobSYmUy5wcm90b2NvbHMuaW5kZXhPZihtKT09PS0xKXtyKG5ldyBkKCJVbnN1cHBvcnRlZCBwcm90b2NvbCAiK20rIjoiLGQuRVJSX0JBRF9SRVFVRVNULEEpKTtyZXR1cm59Yy5zZW5kKEl8fG51bGwpfSl9O3ZhciBUaT0oQSxlKT0+e2xldHtsZW5ndGg6dH09QT1BP0EuZmlsdGVyKEJvb2xlYW4pOltdO2lmKGV8fHQpe2xldCByPW5ldyBBYm9ydENvbnRyb2xsZXIsaSxJPWZ1bmN0aW9uKHMpe2lmKCFpKXtpPSEwLGEoKTtsZXQgbj1zIGluc3RhbmNlb2YgRXJyb3I/czp0aGlzLnJlYXNvbjtyLmFib3J0KG4gaW5zdGFuY2VvZiBkP246bmV3IHgobiBpbnN0YW5jZW9mIEVycm9yP24ubWVzc2FnZTpuKSl9fSxvPWUmJnNldFRpbWVvdXQoKCk9PntvPW51bGwsSShuZXcgZChgdGltZW91dCAke2V9IG9mIG1zIGV4Y2VlZGVkYCxkLkVUSU1FRE9VVCkpfSxlKSxhPSgpPT57QSYmKG8mJmNsZWFyVGltZW91dChvKSxvPW51bGwsQS5mb3JFYWNoKHM9PntzLnVuc3Vic2NyaWJlP3MudW5zdWJzY3JpYmUoSSk6cy5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsSSl9KSxBPW51bGwpfTtBLmZvckVhY2gocz0+cy5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsSSkpO2xldHtzaWduYWw6RX09cjtyZXR1cm4gRS51bnN1YnNjcmliZT0oKT0+Qi5hc2FwKGEpLEV9fSxMdD1UaTt2YXIgT2k9ZnVuY3Rpb24qKEEsZSl7bGV0IHQ9QS5ieXRlTGVuZ3RoO2lmKCFlfHx0PGUpe3lpZWxkIEE7cmV0dXJufWxldCByPTAsaTtmb3IoO3I8dDspaT1yK2UseWllbGQgQS5zbGljZShyLGkpLHI9aX0seGk9YXN5bmMgZnVuY3Rpb24qKEEsZSl7Zm9yIGF3YWl0KGxldCB0IG9mIHFpKEEpKXlpZWxkKk9pKHQsZSl9LHFpPWFzeW5jIGZ1bmN0aW9uKihBKXtpZihBW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl7eWllbGQqQTtyZXR1cm59bGV0IGU9QS5nZXRSZWFkZXIoKTt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTp0LHZhbHVlOnJ9PWF3YWl0IGUucmVhZCgpO2lmKHQpYnJlYWs7eWllbGQgcn19ZmluYWxseXthd2FpdCBlLmNhbmNlbCgpfX0sUmU9KEEsZSx0LHIpPT57bGV0IGk9eGkoQSxlKSxJPTAsbyxhPUU9PntvfHwobz0hMCxyJiZyKEUpKX07cmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7YXN5bmMgcHVsbChFKXt0cnl7bGV0e2RvbmU6cyx2YWx1ZTpufT1hd2FpdCBpLm5leHQoKTtpZihzKXthKCksRS5jbG9zZSgpO3JldHVybn1sZXQgZz1uLmJ5dGVMZW5ndGg7aWYodCl7bGV0IHU9SSs9Zzt0KHUpfUUuZW5xdWV1ZShuZXcgVWludDhBcnJheShuKSl9Y2F0Y2gocyl7dGhyb3cgYShzKSxzfX0sY2FuY2VsKEUpe3JldHVybiBhKEUpLGkucmV0dXJuKCl9fSx7aGlnaFdhdGVyTWFyazoyfSl9O3ZhciBKdD02NCoxMDI0LHtpc0Z1bmN0aW9uOktBfT1CLFR0PSgoe2ZldGNoOkEsUmVxdWVzdDplLFJlc3BvbnNlOnR9KT0+KHtmZXRjaDpBLFJlcXVlc3Q6ZSxSZXNwb25zZTp0fSkpKEIuZ2xvYmFsKSx7UmVhZGFibGVTdHJlYW06TXQsVGV4dEVuY29kZXI6SHR9PUIuZ2xvYmFsLFl0PShBLC4uLmUpPT57dHJ5e3JldHVybiEhQSguLi5lKX1jYXRjaHtyZXR1cm4hMX19LFBpPUE9PntsZXR7ZmV0Y2g6ZSxSZXF1ZXN0OnQsUmVzcG9uc2U6cn09T2JqZWN0LmFzc2lnbih7fSxUdCxBKSxpPUtBKGUpLEk9S0EodCksbz1LQShyKTtpZighaSlyZXR1cm4hMTtsZXQgYT1pJiZLQShNdCksRT1pJiYodHlwZW9mIEh0PT0iZnVuY3Rpb24iPyhRPT5sPT5RLmVuY29kZShsKSkobmV3IEh0KTphc3luYyBRPT5uZXcgVWludDhBcnJheShhd2FpdCBuZXcgdChRKS5hcnJheUJ1ZmZlcigpKSkscz1JJiZhJiZZdCgoKT0+e2xldCBRPSExLGw9bmV3IHQoUy5vcmlnaW4se2JvZHk6bmV3IE10LG1ldGhvZDoiUE9TVCIsZ2V0IGR1cGxleCgpe3JldHVybiBRPSEwLCJoYWxmIn19KS5oZWFkZXJzLmhhcygiQ29udGVudC1UeXBlIik7cmV0dXJuIFEmJiFsfSksbj1vJiZhJiZZdCgoKT0+Qi5pc1JlYWRhYmxlU3RyZWFtKG5ldyByKCIiKS5ib2R5KSksZz17c3RyZWFtOm4mJihRPT5RLmJvZHkpfTtpJiZbInRleHQiLCJhcnJheUJ1ZmZlciIsImJsb2IiLCJmb3JtRGF0YSIsInN0cmVhbSJdLmZvckVhY2goUT0+eyFnW1FdJiYoZ1tRXT0obCxjKT0+e2xldCBwPWwmJmxbUV07aWYocClyZXR1cm4gcC5jYWxsKGwpO3Rocm93IG5ldyBkKGBSZXNwb25zZSB0eXBlICcke1F9JyBpcyBub3Qgc3VwcG9ydGVkYCxkLkVSUl9OT1RfU1VQUE9SVCxjKX0pfSk7bGV0IHU9YXN5bmMgUT0+e2lmKFE9PW51bGwpcmV0dXJuIDA7aWYoQi5pc0Jsb2IoUSkpcmV0dXJuIFEuc2l6ZTtpZihCLmlzU3BlY0NvbXBsaWFudEZvcm0oUSkpcmV0dXJuKGF3YWl0IG5ldyB0KFMub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6UX0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYoQi5pc0FycmF5QnVmZmVyVmlldyhRKXx8Qi5pc0FycmF5QnVmZmVyKFEpKXJldHVybiBRLmJ5dGVMZW5ndGg7aWYoQi5pc1VSTFNlYXJjaFBhcmFtcyhRKSYmKFE9USsiIiksQi5pc1N0cmluZyhRKSlyZXR1cm4oYXdhaXQgRShRKSkuYnl0ZUxlbmd0aH0sQz1hc3luYyhRLGwpPT57bGV0IGM9Qi50b0Zpbml0ZU51bWJlcihRLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIGM/P3UobCl9O3JldHVybiBhc3luYyBRPT57bGV0e3VybDpsLG1ldGhvZDpjLGRhdGE6cCxzaWduYWw6bSxjYW5jZWxUb2tlbjpoLHRpbWVvdXQ6TixvbkRvd25sb2FkUHJvZ3Jlc3M6TSxvblVwbG9hZFByb2dyZXNzOloscmVzcG9uc2VUeXBlOkosaGVhZGVyczokQSx3aXRoQ3JlZGVudGlhbHM6U0E9InNhbWUtb3JpZ2luIixmZXRjaE9wdGlvbnM6cWV9PVBBKFEpO0o9Sj8oSisiIikudG9Mb3dlckNhc2UoKToidGV4dCI7bGV0IEZBPUx0KFttLGgmJmgudG9BYm9ydFNpZ25hbCgpXSxOKSxzQT1udWxsLFY9RkEmJkZBLnVuc3Vic2NyaWJlJiYoKCk9PntGQS51bnN1YnNjcmliZSgpfSksUGU7dHJ5e2lmKFomJnMmJmMhPT0iZ2V0IiYmYyE9PSJoZWFkIiYmKFBlPWF3YWl0IEMoJEEscCkpIT09MCl7bGV0IFc9bmV3IHQobCx7bWV0aG9kOiJQT1NUIixib2R5OnAsZHVwbGV4OiJoYWxmIn0pLCQ7aWYoQi5pc0Zvcm1EYXRhKHApJiYoJD1XLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKSkmJiRBLnNldENvbnRlbnRUeXBlKCQpLFcuYm9keSl7bGV0W0FlLFJBXT1EZShQZSxvQSh3ZShaKSkpO3A9UmUoVy5ib2R5LEp0LEFlLFJBKX19Qi5pc1N0cmluZyhTQSl8fChTQT1TQT8iaW5jbHVkZSI6Im9taXQiKTtsZXQgVD1JJiYiY3JlZGVudGlhbHMiaW4gdC5wcm90b3R5cGUsS2U9ey4uLnFlLHNpZ25hbDpGQSxtZXRob2Q6Yy50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6JEEubm9ybWFsaXplKCkudG9KU09OKCksYm9keTpwLGR1cGxleDoiaGFsZiIsY3JlZGVudGlhbHM6VD9TQTp2b2lkIDB9O3NBPUkmJm5ldyB0KGwsS2UpO2xldCBLPWF3YWl0KEk/ZShzQSxxZSk6ZShsLEtlKSksV2U9biYmKEo9PT0ic3RyZWFtInx8Sj09PSJyZXNwb25zZSIpO2lmKG4mJihNfHxXZSYmVikpe2xldCBXPXt9O1sic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXS5mb3JFYWNoKGplPT57V1tqZV09S1tqZV19KTtsZXQgJD1CLnRvRmluaXRlTnVtYmVyKEsuaGVhZGVycy5nZXQoImNvbnRlbnQtbGVuZ3RoIikpLFtBZSxSQV09TSYmRGUoJCxvQSh3ZShNKSwhMCkpfHxbXTtLPW5ldyByKFJlKEsuYm9keSxKdCxBZSwoKT0+e1JBJiZSQSgpLFYmJlYoKX0pLFcpfUo9Snx8InRleHQiO2xldCBFcj1hd2FpdCBnW0IuZmluZEtleShnLEopfHwidGV4dCJdKEssUSk7cmV0dXJuIVdlJiZWJiZWKCksYXdhaXQgbmV3IFByb21pc2UoKFcsJCk9PntwQShXLCQse2RhdGE6RXIsaGVhZGVyczpVLmZyb20oSy5oZWFkZXJzKSxzdGF0dXM6Sy5zdGF0dXMsc3RhdHVzVGV4dDpLLnN0YXR1c1RleHQsY29uZmlnOlEscmVxdWVzdDpzQX0pfSl9Y2F0Y2goVCl7dGhyb3cgViYmVigpLFQmJlQubmFtZT09PSJUeXBlRXJyb3IiJiYvTG9hZCBmYWlsZWR8ZmV0Y2gvaS50ZXN0KFQubWVzc2FnZSk/T2JqZWN0LmFzc2lnbihuZXcgZCgiTmV0d29yayBFcnJvciIsZC5FUlJfTkVUV09SSyxRLHNBKSx7Y2F1c2U6VC5jYXVzZXx8VH0pOmQuZnJvbShULFQmJlQuY29kZSxRLHNBKX19fSxLaT1uZXcgTWFwLGtlPUE9PntsZXQgZT1CLm1lcmdlLmNhbGwoe3NraXBVbmRlZmluZWQ6ITB9LFR0LEE/QS5lbnY6bnVsbCkse2ZldGNoOnQsUmVxdWVzdDpyLFJlc3BvbnNlOml9PWUsST1bcixpLHRdLG89SS5sZW5ndGgsYT1vLEUscyxuPUtpO2Zvcig7YS0tOylFPUlbYV0scz1uLmdldChFKSxzPT09dm9pZCAwJiZuLnNldChFLHM9YT9uZXcgTWFwOlBpKGUpKSxuPXM7cmV0dXJuIHN9LGhnPWtlKCk7dmFyIFVlPXtodHRwOllBLHhocjpidCxmZXRjaDp7Z2V0OmtlfX07Qi5mb3JFYWNoKFVlLChBLGUpPT57aWYoQSl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJuYW1lIix7dmFsdWU6ZX0pfWNhdGNoe31PYmplY3QuZGVmaW5lUHJvcGVydHkoQSwiYWRhcHRlck5hbWUiLHt2YWx1ZTplfSl9fSk7dmFyIE90PUE9PmAtICR7QX1gLGppPUE9PkIuaXNGdW5jdGlvbihBKXx8QT09PW51bGx8fEE9PT0hMSxXQT17Z2V0QWRhcHRlcjooQSxlKT0+e0E9Qi5pc0FycmF5KEEpP0E6W0FdO2xldHtsZW5ndGg6dH09QSxyLGksST17fTtmb3IobGV0IG89MDtvPHQ7bysrKXtyPUFbb107bGV0IGE7aWYoaT1yLCFqaShyKSYmKGk9VWVbKGE9U3RyaW5nKHIpKS50b0xvd2VyQ2FzZSgpXSxpPT09dm9pZCAwKSl0aHJvdyBuZXcgZChgVW5rbm93biBhZGFwdGVyICcke2F9J2ApO2lmKGkmJihCLmlzRnVuY3Rpb24oaSl8fChpPWkuZ2V0KGUpKSkpYnJlYWs7SVthfHwiIyIrb109aX1pZighaSl7bGV0IG89T2JqZWN0LmVudHJpZXMoSSkubWFwKChbRSxzXSk9PmBhZGFwdGVyICR7RX0gYCsocz09PSExPyJpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBlbnZpcm9ubWVudCI6ImlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJ1aWxkIikpLGE9dD9vLmxlbmd0aD4xP2BzaW5jZSA6CmArby5tYXAoT3QpLmpvaW4oYApgKToiICIrT3Qob1swXSk6ImFzIG5vIGFkYXB0ZXIgc3BlY2lmaWVkIjt0aHJvdyBuZXcgZCgiVGhlcmUgaXMgbm8gc3VpdGFibGUgYWRhcHRlciB0byBkaXNwYXRjaCB0aGUgcmVxdWVzdCAiK2EsIkVSUl9OT1RfU1VQUE9SVCIpfXJldHVybiBpfSxhZGFwdGVyczpVZX07ZnVuY3Rpb24gTmUoQSl7aWYoQS5jYW5jZWxUb2tlbiYmQS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksQS5zaWduYWwmJkEuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IHgobnVsbCxBKX1mdW5jdGlvbiBqQShBKXtyZXR1cm4gTmUoQSksQS5oZWFkZXJzPVUuZnJvbShBLmhlYWRlcnMpLEEuZGF0YT11QS5jYWxsKEEsQS50cmFuc2Zvcm1SZXF1ZXN0KSxbInBvc3QiLCJwdXQiLCJwYXRjaCJdLmluZGV4T2YoQS5tZXRob2QpIT09LTEmJkEuaGVhZGVycy5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwhMSksV0EuZ2V0QWRhcHRlcihBLmFkYXB0ZXJ8fGlBLmFkYXB0ZXIsQSkoQSkudGhlbihmdW5jdGlvbihyKXtyZXR1cm4gTmUoQSksci5kYXRhPXVBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLHIpLHIuaGVhZGVycz1VLmZyb20oci5oZWFkZXJzKSxyfSxmdW5jdGlvbihyKXtyZXR1cm4gZkEocil8fChOZShBKSxyJiZyLnJlc3BvbnNlJiYoci5yZXNwb25zZS5kYXRhPXVBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLHIucmVzcG9uc2UpLHIucmVzcG9uc2UuaGVhZGVycz1VLmZyb20oci5yZXNwb25zZS5oZWFkZXJzKSkpLFByb21pc2UucmVqZWN0KHIpfSl9dmFyIHZBPSIxLjEyLjAiO3ZhciBaQT17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKEEsZSk9PntaQVtBXT1mdW5jdGlvbihyKXtyZXR1cm4gdHlwZW9mIHI9PT1BfHwiYSIrKGU8MT8ibiAiOiIgIikrQX19KTt2YXIgeHQ9e307WkEudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKGUsdCxyKXtmdW5jdGlvbiBpKEksbyl7cmV0dXJuIltBeGlvcyB2Iit2QSsiXSBUcmFuc2l0aW9uYWwgb3B0aW9uICciK0krIiciK28rKHI/Ii4gIityOiIiKX1yZXR1cm4oSSxvLGEpPT57aWYoZT09PSExKXRocm93IG5ldyBkKGkobywiIGhhcyBiZWVuIHJlbW92ZWQiKyh0PyIgaW4gIit0OiIiKSksZC5FUlJfREVQUkVDQVRFRCk7cmV0dXJuIHQmJiF4dFtvXSYmKHh0W29dPSEwLGNvbnNvbGUud2FybihpKG8sIiBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYiK3QrIiBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZWFyIGZ1dHVyZSIpKSksZT9lKEksbyxhKTohMH19O1pBLnNwZWxsaW5nPWZ1bmN0aW9uKGUpe3JldHVybih0LHIpPT4oY29uc29sZS53YXJuKGAke3J9IGlzIGxpa2VseSBhIG1pc3NwZWxsaW5nIG9mICR7ZX1gKSwhMCl9O2Z1bmN0aW9uIHZpKEEsZSx0KXtpZih0eXBlb2YgQSE9Im9iamVjdCIpdGhyb3cgbmV3IGQoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiLGQuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2xldCByPU9iamVjdC5rZXlzKEEpLGk9ci5sZW5ndGg7Zm9yKDtpLS0gPjA7KXtsZXQgST1yW2ldLG89ZVtJXTtpZihvKXtsZXQgYT1BW0ldLEU9YT09PXZvaWQgMHx8byhhLEksQSk7aWYoRSE9PSEwKXRocm93IG5ldyBkKCJvcHRpb24gIitJKyIgbXVzdCBiZSAiK0UsZC5FUlJfQkFEX09QVElPTl9WQUxVRSk7Y29udGludWV9aWYodCE9PSEwKXRocm93IG5ldyBkKCJVbmtub3duIG9wdGlvbiAiK0ksZC5FUlJfQkFEX09QVElPTil9fXZhciBtQT17YXNzZXJ0T3B0aW9uczp2aSx2YWxpZGF0b3JzOlpBfTt2YXIgcT1tQS52YWxpZGF0b3JzLG5BPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuZGVmYXVsdHM9ZXx8e30sdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IGNlLHJlc3BvbnNlOm5ldyBjZX19YXN5bmMgcmVxdWVzdChlLHQpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fcmVxdWVzdChlLHQpfWNhdGNoKHIpe2lmKHIgaW5zdGFuY2VvZiBFcnJvcil7bGV0IGk9e307RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UoaSk6aT1uZXcgRXJyb3I7bGV0IEk9aS5zdGFjaz9pLnN0YWNrLnJlcGxhY2UoL14uK1xuLywiIik6IiI7dHJ5e3Iuc3RhY2s/SSYmIVN0cmluZyhyLnN0YWNrKS5lbmRzV2l0aChJLnJlcGxhY2UoL14uK1xuLitcbi8sIiIpKSYmKHIuc3RhY2srPWAKYCtJKTpyLnN0YWNrPUl9Y2F0Y2h7fX10aHJvdyByfX1fcmVxdWVzdChlLHQpe3R5cGVvZiBlPT0ic3RyaW5nIj8odD10fHx7fSx0LnVybD1lKTp0PWV8fHt9LHQ9WSh0aGlzLmRlZmF1bHRzLHQpO2xldHt0cmFuc2l0aW9uYWw6cixwYXJhbXNTZXJpYWxpemVyOmksaGVhZGVyczpJfT10O3IhPT12b2lkIDAmJm1BLmFzc2VydE9wdGlvbnMocix7c2lsZW50SlNPTlBhcnNpbmc6cS50cmFuc2l0aW9uYWwocS5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzpxLnRyYW5zaXRpb25hbChxLmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6cS50cmFuc2l0aW9uYWwocS5ib29sZWFuKX0sITEpLGkhPW51bGwmJihCLmlzRnVuY3Rpb24oaSk/dC5wYXJhbXNTZXJpYWxpemVyPXtzZXJpYWxpemU6aX06bUEuYXNzZXJ0T3B0aW9ucyhpLHtlbmNvZGU6cS5mdW5jdGlvbixzZXJpYWxpemU6cS5mdW5jdGlvbn0sITApKSx0LmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwfHwodGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMD90LmFsbG93QWJzb2x1dGVVcmxzPXRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHM6dC5hbGxvd0Fic29sdXRlVXJscz0hMCksbUEuYXNzZXJ0T3B0aW9ucyh0LHtiYXNlVXJsOnEuc3BlbGxpbmcoImJhc2VVUkwiKSx3aXRoWHNyZlRva2VuOnEuc3BlbGxpbmcoIndpdGhYU1JGVG9rZW4iKX0sITApLHQubWV0aG9kPSh0Lm1ldGhvZHx8dGhpcy5kZWZhdWx0cy5tZXRob2R8fCJnZXQiKS50b0xvd2VyQ2FzZSgpO2xldCBvPUkmJkIubWVyZ2UoSS5jb21tb24sSVt0Lm1ldGhvZF0pO0kmJkIuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giLCJjb21tb24iXSxRPT57ZGVsZXRlIElbUV19KSx0LmhlYWRlcnM9VS5jb25jYXQobyxJKTtsZXQgYT1bXSxFPSEwO3RoaXMuaW50ZXJjZXB0b3JzLnJlcXVlc3QuZm9yRWFjaChmdW5jdGlvbihsKXt0eXBlb2YgbC5ydW5XaGVuPT0iZnVuY3Rpb24iJiZsLnJ1bldoZW4odCk9PT0hMXx8KEU9RSYmbC5zeW5jaHJvbm91cyxhLnVuc2hpZnQobC5mdWxmaWxsZWQsbC5yZWplY3RlZCkpfSk7bGV0IHM9W107dGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaChmdW5jdGlvbihsKXtzLnB1c2gobC5mdWxmaWxsZWQsbC5yZWplY3RlZCl9KTtsZXQgbixnPTAsdTtpZighRSl7bGV0IFE9W2pBLmJpbmQodGhpcyksdm9pZCAwXTtmb3IoUS51bnNoaWZ0KC4uLmEpLFEucHVzaCguLi5zKSx1PVEubGVuZ3RoLG49UHJvbWlzZS5yZXNvbHZlKHQpO2c8dTspbj1uLnRoZW4oUVtnKytdLFFbZysrXSk7cmV0dXJuIG59dT1hLmxlbmd0aDtsZXQgQz10O2ZvcihnPTA7Zzx1Oyl7bGV0IFE9YVtnKytdLGw9YVtnKytdO3RyeXtDPVEoQyl9Y2F0Y2goYyl7bC5jYWxsKHRoaXMsYyk7YnJlYWt9fXRyeXtuPWpBLmNhbGwodGhpcyxDKX1jYXRjaChRKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoUSl9Zm9yKGc9MCx1PXMubGVuZ3RoO2c8dTspbj1uLnRoZW4oc1tnKytdLHNbZysrXSk7cmV0dXJuIG59Z2V0VXJpKGUpe2U9WSh0aGlzLmRlZmF1bHRzLGUpO2xldCB0PWRBKGUuYmFzZVVSTCxlLnVybCxlLmFsbG93QWJzb2x1dGVVcmxzKTtyZXR1cm4gbEEodCxlLnBhcmFtcyxlLnBhcmFtc1NlcmlhbGl6ZXIpfX07Qi5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSxmdW5jdGlvbihlKXtuQS5wcm90b3R5cGVbZV09ZnVuY3Rpb24odCxyKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KFkocnx8e30se21ldGhvZDplLHVybDp0LGRhdGE6KHJ8fHt9KS5kYXRhfSkpfX0pO0IuZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQocil7cmV0dXJuIGZ1bmN0aW9uKEksbyxhKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KFkoYXx8e30se21ldGhvZDplLGhlYWRlcnM6cj97IkNvbnRlbnQtVHlwZSI6Im11bHRpcGFydC9mb3JtLWRhdGEifTp7fSx1cmw6SSxkYXRhOm99KSl9fW5BLnByb3RvdHlwZVtlXT10KCksbkEucHJvdG90eXBlW2UrIkZvcm0iXT10KCEwKX0pO3ZhciBoQT1uQTt2YXIgR2U9Y2xhc3MgQXtjb25zdHJ1Y3RvcihlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7bGV0IHQ7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKEkpe3Q9SX0pO2xldCByPXRoaXM7dGhpcy5wcm9taXNlLnRoZW4oaT0+e2lmKCFyLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBJPXIuX2xpc3RlbmVycy5sZW5ndGg7Zm9yKDtJLS0gPjA7KXIuX2xpc3RlbmVyc1tJXShpKTtyLl9saXN0ZW5lcnM9bnVsbH0pLHRoaXMucHJvbWlzZS50aGVuPWk9PntsZXQgSSxvPW5ldyBQcm9taXNlKGE9PntyLnN1YnNjcmliZShhKSxJPWF9KS50aGVuKGkpO3JldHVybiBvLmNhbmNlbD1mdW5jdGlvbigpe3IudW5zdWJzY3JpYmUoSSl9LG99LGUoZnVuY3Rpb24oSSxvLGEpe3IucmVhc29ufHwoci5yZWFzb249bmV3IHgoSSxvLGEpLHQoci5yZWFzb24pKX0pfXRocm93SWZSZXF1ZXN0ZWQoKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn1zdWJzY3JpYmUoZSl7aWYodGhpcy5yZWFzb24pe2UodGhpcy5yZWFzb24pO3JldHVybn10aGlzLl9saXN0ZW5lcnM/dGhpcy5fbGlzdGVuZXJzLnB1c2goZSk6dGhpcy5fbGlzdGVuZXJzPVtlXX11bnN1YnNjcmliZShlKXtpZighdGhpcy5fbGlzdGVuZXJzKXJldHVybjtsZXQgdD10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZihlKTt0IT09LTEmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UodCwxKX10b0Fib3J0U2lnbmFsKCl7bGV0IGU9bmV3IEFib3J0Q29udHJvbGxlcix0PXI9PntlLmFib3J0KHIpfTtyZXR1cm4gdGhpcy5zdWJzY3JpYmUodCksZS5zaWduYWwudW5zdWJzY3JpYmU9KCk9PnRoaXMudW5zdWJzY3JpYmUodCksZS5zaWduYWx9c3RhdGljIHNvdXJjZSgpe2xldCBlO3JldHVybnt0b2tlbjpuZXcgQShmdW5jdGlvbihpKXtlPWl9KSxjYW5jZWw6ZX19fSxxdD1HZTtmdW5jdGlvbiBiZShBKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIEEuYXBwbHkobnVsbCx0KX19ZnVuY3Rpb24gTGUoQSl7cmV0dXJuIEIuaXNPYmplY3QoQSkmJkEuaXNBeGlvc0Vycm9yPT09ITB9dmFyIEplPXtDb250aW51ZToxMDAsU3dpdGNoaW5nUHJvdG9jb2xzOjEwMSxQcm9jZXNzaW5nOjEwMixFYXJseUhpbnRzOjEwMyxPazoyMDAsQ3JlYXRlZDoyMDEsQWNjZXB0ZWQ6MjAyLE5vbkF1dGhvcml0YXRpdmVJbmZvcm1hdGlvbjoyMDMsTm9Db250ZW50OjIwNCxSZXNldENvbnRlbnQ6MjA1LFBhcnRpYWxDb250ZW50OjIwNixNdWx0aVN0YXR1czoyMDcsQWxyZWFkeVJlcG9ydGVkOjIwOCxJbVVzZWQ6MjI2LE11bHRpcGxlQ2hvaWNlczozMDAsTW92ZWRQZXJtYW5lbnRseTozMDEsRm91bmQ6MzAyLFNlZU90aGVyOjMwMyxOb3RNb2RpZmllZDozMDQsVXNlUHJveHk6MzA1LFVudXNlZDozMDYsVGVtcG9yYXJ5UmVkaXJlY3Q6MzA3LFBlcm1hbmVudFJlZGlyZWN0OjMwOCxCYWRSZXF1ZXN0OjQwMCxVbmF1dGhvcml6ZWQ6NDAxLFBheW1lbnRSZXF1aXJlZDo0MDIsRm9yYmlkZGVuOjQwMyxOb3RGb3VuZDo0MDQsTWV0aG9kTm90QWxsb3dlZDo0MDUsTm90QWNjZXB0YWJsZTo0MDYsUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkOjQwNyxSZXF1ZXN0VGltZW91dDo0MDgsQ29uZmxpY3Q6NDA5LEdvbmU6NDEwLExlbmd0aFJlcXVpcmVkOjQxMSxQcmVjb25kaXRpb25GYWlsZWQ6NDEyLFBheWxvYWRUb29MYXJnZTo0MTMsVXJpVG9vTG9uZzo0MTQsVW5zdXBwb3J0ZWRNZWRpYVR5cGU6NDE1LFJhbmdlTm90U2F0aXNmaWFibGU6NDE2LEV4cGVjdGF0aW9uRmFpbGVkOjQxNyxJbUFUZWFwb3Q6NDE4LE1pc2RpcmVjdGVkUmVxdWVzdDo0MjEsVW5wcm9jZXNzYWJsZUVudGl0eTo0MjIsTG9ja2VkOjQyMyxGYWlsZWREZXBlbmRlbmN5OjQyNCxUb29FYXJseTo0MjUsVXBncmFkZVJlcXVpcmVkOjQyNixQcmVjb25kaXRpb25SZXF1aXJlZDo0MjgsVG9vTWFueVJlcXVlc3RzOjQyOSxSZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6NDMxLFVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zOjQ1MSxJbnRlcm5hbFNlcnZlckVycm9yOjUwMCxOb3RJbXBsZW1lbnRlZDo1MDEsQmFkR2F0ZXdheTo1MDIsU2VydmljZVVuYXZhaWxhYmxlOjUwMyxHYXRld2F5VGltZW91dDo1MDQsSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6NTA1LFZhcmlhbnRBbHNvTmVnb3RpYXRlczo1MDYsSW5zdWZmaWNpZW50U3RvcmFnZTo1MDcsTG9vcERldGVjdGVkOjUwOCxOb3RFeHRlbmRlZDo1MTAsTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NTExfTtPYmplY3QuZW50cmllcyhKZSkuZm9yRWFjaCgoW0EsZV0pPT57SmVbZV09QX0pO3ZhciBQdD1KZTtmdW5jdGlvbiBLdChBKXtsZXQgZT1uZXcgaEEoQSksdD1CQShoQS5wcm90b3R5cGUucmVxdWVzdCxlKTtyZXR1cm4gQi5leHRlbmQodCxoQS5wcm90b3R5cGUsZSx7YWxsT3duS2V5czohMH0pLEIuZXh0ZW5kKHQsZSxudWxsLHthbGxPd25LZXlzOiEwfSksdC5jcmVhdGU9ZnVuY3Rpb24oaSl7cmV0dXJuIEt0KFkoQSxpKSl9LHR9dmFyIEY9S3QoaUEpO0YuQXhpb3M9aEE7Ri5DYW5jZWxlZEVycm9yPXg7Ri5DYW5jZWxUb2tlbj1xdDtGLmlzQ2FuY2VsPWZBO0YuVkVSU0lPTj12QTtGLnRvRm9ybURhdGE9ajtGLkF4aW9zRXJyb3I9ZDtGLkNhbmNlbD1GLkNhbmNlbGVkRXJyb3I7Ri5hbGw9ZnVuY3Rpb24oZSl7cmV0dXJuIFByb21pc2UuYWxsKGUpfTtGLnNwcmVhZD1iZTtGLmlzQXhpb3NFcnJvcj1MZTtGLm1lcmdlQ29uZmlnPVk7Ri5BeGlvc0hlYWRlcnM9VTtGLmZvcm1Ub0pTT049QT0+eEEoQi5pc0hUTUxGb3JtKEEpP25ldyBGb3JtRGF0YShBKTpBKTtGLmdldEFkYXB0ZXI9V0EuZ2V0QWRhcHRlcjtGLkh0dHBTdGF0dXNDb2RlPVB0O0YuZGVmYXVsdD1GO3ZhciBnQT1GO3ZhcntBeGlvczpwYSxBeGlvc0Vycm9yOmRhLENhbmNlbGVkRXJyb3I6bWEsaXNDYW5jZWw6aGEsQ2FuY2VsVG9rZW46eWEsVkVSU0lPTjpEYSxhbGw6d2EsQ2FuY2VsOlNhLGlzQXhpb3NFcnJvcjpGYSxzcHJlYWQ6UmEsdG9Gb3JtRGF0YTprYSxBeGlvc0hlYWRlcnM6VWEsSHR0cFN0YXR1c0NvZGU6TmEsZm9ybVRvSlNPTjpHYSxnZXRBZGFwdGVyOmJhLG1lcmdlQ29uZmlnOkxhfT1nQTthc3luYyBmdW5jdGlvbiBaaShBLGUpe2xldCB0PUEscj1udWxsO2lmKHQ9PW51bGwpcj1uZXcgV29ya2VyKG5ldyBVUkwoIi4vd2ViLXdvcmtlcnMvaXRrLXdhc20tcGlwZWxpbmUud29ya2VyLmpzIixpbXBvcnQubWV0YS51cmwpLHt0eXBlOiJtb2R1bGUifSk7ZWxzZSBpZih0LnN0YXJ0c1dpdGgoImh0dHAiKSl7bGV0IGk9YXdhaXQgZ0EuZ2V0KHQse3Jlc3BvbnNlVHlwZToiYmxvYiIscGFyYW1zOmV9KSxJPVVSTC5jcmVhdGVPYmplY3RVUkwoaS5kYXRhKTtyPW5ldyBXb3JrZXIoSSx7dHlwZToibW9kdWxlIn0pfWVsc2Ugcj1uZXcgV29ya2VyKHQse3R5cGU6Im1vZHVsZSJ9KTtyZXR1cm4gcn12YXIgeUE9Wmk7ZnVuY3Rpb24gV3QoQSl7bGV0IGU9c2UoQSksdD1BO3JldHVybiB0LnRlcm1pbmF0ZWQ9ITEsdC53b3JrZXJQcm94eT1lLHQub3JpZ2luYWxUZXJtaW5hdGU9dC50ZXJtaW5hdGUsdC50ZXJtaW5hdGU9KCk9Pnt0LnRlcm1pbmF0ZWQ9ITAsdC53b3JrZXJQcm94eVthZV0oKSx0Lm9yaWdpbmFsVGVybWluYXRlKCl9LHt3b3JrZXJQcm94eTplLHdvcmtlcjp0fX1hc3luYyBmdW5jdGlvbiBWaShBLGUsdCl7bGV0IHI7aWYoQSE9bnVsbCl7bGV0IEk9QTtyZXR1cm4gSS53b3JrZXJQcm94eSE9PXZvaWQgMD8ocj1JLndvcmtlclByb3h5LHt3b3JrZXJQcm94eTpyLHdvcmtlcjpJfSk6V3QoQSl9bGV0IGk9YXdhaXQgeUEoZSx0KTtyZXR1cm4gV3QoaSl9dmFyIGp0PVZpO3ZhciBEQSxQLEhlLE1lPXtlbnY6e2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGg6ZnVuY3Rpb24oQSl7SGU9bmV3IFVpbnQ4QXJyYXkoUC5leHBvcnRzLm1lbW9yeS5idWZmZXIpfX19LFZBPWNsYXNze2luaXQoKXtyZXR1cm4gREF8fCh0eXBlb2YgZmV0Y2g8InUiP0RBPWZldGNoKCJkYXRhOmFwcGxpY2F0aW9uL3dhc207YmFzZTY0LCIrdnQpLnRoZW4oZT0+ZS5hcnJheUJ1ZmZlcigpKS50aGVuKGU9PldlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGUsTWUpKS50aGVuKHRoaXMuX2luaXQpOkRBPVdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEJ1ZmZlci5mcm9tKHZ0LCJiYXNlNjQiKSxNZSkudGhlbih0aGlzLl9pbml0KSxEQSl9X2luaXQoZSl7UD1lLmluc3RhbmNlLE1lLmVudi5lbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoKDApfWRlY29kZShlLHQ9MCl7aWYoIVApdGhyb3cgbmV3IEVycm9yKCJaU1RERGVjb2RlcjogQXdhaXQgLmluaXQoKSBiZWZvcmUgZGVjb2RpbmcuIik7bGV0IHI9ZS5ieXRlTGVuZ3RoLGk9UC5leHBvcnRzLm1hbGxvYyhyKTtIZS5zZXQoZSxpKSx0PXR8fE51bWJlcihQLmV4cG9ydHMuWlNURF9maW5kRGVjb21wcmVzc2VkU2l6ZShpLHIpKTtsZXQgST1QLmV4cG9ydHMubWFsbG9jKHQpLG89UC5leHBvcnRzLlpTVERfZGVjb21wcmVzcyhJLHQsaSxyKSxhPUhlLnNsaWNlKEksSStvKTtyZXR1cm4gUC5leHBvcnRzLmZyZWUoaSksUC5leHBvcnRzLmZyZWUoSSksYX19LHZ0PSJBR0Z6YlFFQUFBQUJiZzVnQTM5L2Z3Ri9ZQUYvQVg5Z0FuOS9BR0FCZndCZ0JYOS9mMzkvQVg5Z0EzOS9md0JnQkg5L2YzOEJmMkFBQVg5Z0FuOS9BWDlnQjM5L2YzOS9mMzhCZjJBQ2YzOEJmbUFJZjM5L2YzOS9mMzhCZjJBRmYzOS9mMzhBWUE1L2YzOS9mMzkvZjM5L2YzOS9md0YvQWljQkEyVnVkaDlsYlhOamNtbHdkR1Z1WDI1dmRHbG1lVjl0WlcxdmNubGZaM0p2ZDNSb0FBTURJeUlIQUFBQkFRTUhBd0VBQ1FRQUJRRUlDQUVGQmdRRUJBTUdBQUFLQUFVTERBMEdCQVVCY0FFQkFRVUhBUUdBQW9DQUFnWUlBWDhCUVlDakJBc0hyZ0VMQm0xbGJXOXllUUlBQm0xaGJHeHZZd0FGQkdaeVpXVUFCZ3hhVTFSRVgybHpSWEp5YjNJQUVobGFVMVJFWDJacGJtUkVaV052YlhCeVpYTnpaV1JUYVhwbEFCd1BXbE5VUkY5a1pXTnZiWEJ5WlhOekFDSVpYMTlwYm1ScGNtVmpkRjltZFc1amRHbHZibDkwWVdKc1pRRUFFRjlmWlhKeWJtOWZiRzlqWVhScGIyNEFBUWx6ZEdGamExTmhkbVVBQnd4emRHRmphMUpsYzNSdmNtVUFDQXB6ZEdGamEwRnNiRzlqQUFrS2kvSUJJZ1VBUVlRZkN6TUJBWDhnQWdSQUlBQWhBd05BSUFNZ0FTMEFBRG9BQUNBRFFRRnFJUU1nQVVFQmFpRUJJQUpCQVdzaUFnMEFDd3NnQUFzcEFRRi9JQUlFUUNBQUlRTURRQ0FESUFFNkFBQWdBMEVCYWlFRElBSkJBV3NpQWcwQUN3c2dBQXRzQVFKL1FZQWZLQUlBSWdFZ0FFRUhha0Y0Y1NJQ2FpRUFBa0FnQWtFQUlBQWdBVTBiRFFBZ0FEOEFRUkIwU3dSQUlBQS9BRUVRZEd0Qi8vOERha0VRZGtBQVFYOUdCSDlCQUFWQkFCQUFRUUVMUlEwQkMwR0FIeUFBTmdJQUlBRVBDMEdFSDBFd05nSUFRWDhMdVNjQkMzOGpBRUVRYXlJS0pBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQUJCOUFGTkJFQkJpQjhvQWdBaUJrRVFJQUJCQzJwQmVIRWdBRUVMU1JzaUJVRURkaUlBZGlJQlFRTnhCRUFDUUNBQlFYOXpRUUZ4SUFCcUlnSkJBM1FpQVVHd0gyb2lBQ0FCUWJnZmFpZ0NBQ0lCS0FJSUlnUkdCRUJCaUI4Z0JrRitJQUozY1RZQ0FBd0JDeUFFSUFBMkFnd2dBQ0FFTmdJSUN5QUJRUWhxSVFBZ0FTQUNRUU4wSWdKQkEzSTJBZ1FnQVNBQ2FpSUJJQUVvQWdSQkFYSTJBZ1FNRHdzZ0JVR1FIeWdDQUNJSFRRMEJJQUVFUUFKQVFRSWdBSFFpQWtFQUlBSnJjaUFCSUFCMGNXZ2lBVUVEZENJQVFiQWZhaUlDSUFCQnVCOXFLQUlBSWdBb0FnZ2lCRVlFUUVHSUh5QUdRWDRnQVhkeElnWTJBZ0FNQVFzZ0JDQUNOZ0lNSUFJZ0JEWUNDQXNnQUNBRlFRTnlOZ0lFSUFBZ0JXb2lDQ0FCUVFOMElnRWdCV3NpQkVFQmNqWUNCQ0FBSUFGcUlBUTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRRkJuQjhvQWdBaEFnSi9JQVpCQVNBSFFRTjJkQ0lEY1VVRVFFR0lIeUFESUFaeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQXlBQklBSTJBZ2dnQXlBQ05nSU1JQUlnQVRZQ0RDQUNJQU0yQWdnTElBQkJDR29oQUVHY0h5QUlOZ0lBUVpBZklBUTJBZ0FNRHd0QmpCOG9BZ0FpQzBVTkFTQUxhRUVDZEVHNElXb29BZ0FpQWlnQ0JFRjRjU0FGYXlFRElBSWhBUU5BQWtBZ0FTZ0NFQ0lBUlFSQUlBRW9BaFFpQUVVTkFRc2dBQ2dDQkVGNGNTQUZheUlCSUFNZ0FTQURTU0lCR3lFRElBQWdBaUFCR3lFQ0lBQWhBUXdCQ3dzZ0FpZ0NHQ0VKSUFJZ0FpZ0NEQ0lFUndSQVFaZ2ZLQUlBR2lBQ0tBSUlJZ0FnQkRZQ0RDQUVJQUEyQWdnTURnc2dBa0VVYWlJQktBSUFJZ0JGQkVBZ0FpZ0NFQ0lBUlEwRElBSkJFR29oQVFzRFFDQUJJUWdnQUNJRVFSUnFJZ0VvQWdBaUFBMEFJQVJCRUdvaEFTQUVLQUlRSWdBTkFBc2dDRUVBTmdJQURBMExRWDhoQlNBQVFiOS9TdzBBSUFCQkMyb2lBRUY0Y1NFRlFZd2ZLQUlBSWdoRkRRQkJBQ0FGYXlFREFrQUNRQUpBQW45QkFDQUZRWUFDU1EwQUdrRWZJQVZCLy8vL0Iwc05BQm9nQlVFbUlBQkJDSFpuSWdCcmRrRUJjU0FBUVFGMGEwRSthZ3NpQjBFQ2RFRzRJV29vQWdBaUFVVUVRRUVBSVFBTUFRdEJBQ0VBSUFWQkdTQUhRUUYyYTBFQUlBZEJIMGNiZENFQ0EwQUNRQ0FCS0FJRVFYaHhJQVZySWdZZ0EwOE5BQ0FCSVFRZ0JpSUREUUJCQUNFRElBRWhBQXdEQ3lBQUlBRW9BaFFpQmlBR0lBRWdBa0VkZGtFRWNXb29BaEFpQVVZYklBQWdCaHNoQUNBQ1FRRjBJUUlnQVEwQUN3c2dBQ0FFY2tVRVFFRUFJUVJCQWlBSGRDSUFRUUFnQUd0eUlBaHhJZ0JGRFFNZ0FHaEJBblJCdUNGcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJQ0lBTkpJUUVnQWlBRElBRWJJUU1nQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBRFFaQWZLQUlBSUFWclR3MEFJQVFvQWhnaEJ5QUVJQVFvQWd3aUFrY0VRRUdZSHlnQ0FCb2dCQ2dDQ0NJQUlBSTJBZ3dnQWlBQU5nSUlEQXdMSUFSQkZHb2lBU2dDQUNJQVJRUkFJQVFvQWhBaUFFVU5BeUFFUVJCcUlRRUxBMEFnQVNFR0lBQWlBa0VVYWlJQktBSUFJZ0FOQUNBQ1FSQnFJUUVnQWlnQ0VDSUFEUUFMSUFaQkFEWUNBQXdMQ3lBRlFaQWZLQUlBSWdSTkJFQkJuQjhvQWdBaEFBSkFJQVFnQldzaUFVRVFUd1JBSUFBZ0JXb2lBaUFCUVFGeU5nSUVJQUFnQkdvZ0FUWUNBQ0FBSUFWQkEzSTJBZ1FNQVFzZ0FDQUVRUU55TmdJRUlBQWdCR29pQVNBQktBSUVRUUZ5TmdJRVFRQWhBa0VBSVFFTFFaQWZJQUUyQWdCQm5COGdBallDQUNBQVFRaHFJUUFNRFFzZ0JVR1VIeWdDQUNJQ1NRUkFRWlFmSUFJZ0JXc2lBVFlDQUVHZ0gwR2dIeWdDQUNJQUlBVnFJZ0kyQWdBZ0FpQUJRUUZ5TmdJRUlBQWdCVUVEY2pZQ0JDQUFRUWhxSVFBTURRdEJBQ0VBSUFWQkwyb2lBd0ovUWVBaUtBSUFCRUJCNkNJb0FnQU1BUXRCN0NKQ2Z6Y0NBRUhrSWtLQW9JQ0FnSUFFTndJQVFlQWlJQXBCREdwQmNIRkIyS3JWcWdWek5nSUFRZlFpUVFBMkFnQkJ4Q0pCQURZQ0FFR0FJQXNpQVdvaUJrRUFJQUZySWdoeElnRWdCVTBOREVIQUlpZ0NBQ0lFQkVCQnVDSW9BZ0FpQnlBQmFpSUpJQWROSUFRZ0NVbHlEUTBMQWtCQnhDSXRBQUJCQkhGRkJFQUNRQUpBQWtBQ1FFR2dIeWdDQUNJRUJFQkJ5Q0loQUFOQUlBUWdBQ2dDQUNJSFR3UkFJQWNnQUNnQ0JHb2dCRXNOQXdzZ0FDZ0NDQ0lBRFFBTEMwRUFFQVFpQWtGL1JnMERJQUVoQmtIa0lpZ0NBQ0lBUVFGcklnUWdBbkVFUUNBQklBSnJJQUlnQkdwQkFDQUFhM0ZxSVFZTElBVWdCazhOQTBIQUlpZ0NBQ0lBQkVCQnVDSW9BZ0FpQkNBR2FpSUlJQVJOSUFBZ0NFbHlEUVFMSUFZUUJDSUFJQUpIRFFFTUJRc2dCaUFDYXlBSWNTSUdFQVFpQWlBQUtBSUFJQUFvQWdScVJnMEJJQUloQUFzZ0FFRi9SZzBCSUFWQk1Hb2dCazBFUUNBQUlRSU1CQXRCNkNJb0FnQWlBaUFESUFacmFrRUFJQUpyY1NJQ0VBUkJmMFlOQVNBQ0lBWnFJUVlnQUNFQ0RBTUxJQUpCZjBjTkFndEJ4Q0pCeENJb0FnQkJCSEkyQWdBTElBRVFCQ0lDUVg5R1FRQVFCQ0lBUVg5R2NpQUFJQUpOY2cwRklBQWdBbXNpQmlBRlFTaHFUUTBGQzBHNElrRzRJaWdDQUNBR2FpSUFOZ0lBUWJ3aUtBSUFJQUJKQkVCQnZDSWdBRFlDQUFzQ1FFR2dIeWdDQUNJREJFQkJ5Q0loQUFOQUlBSWdBQ2dDQUNJQklBQW9BZ1FpQkdwR0RRSWdBQ2dDQ0NJQURRQUxEQVFMUVpnZktBSUFJZ0JCQUNBQUlBSk5HMFVFUUVHWUh5QUNOZ0lBQzBFQUlRQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFhZ2ZRWDgyQWdCQnJCOUI0Q0lvQWdBMkFnQkIxQ0pCQURZQ0FBTkFJQUJCQTNRaUFVRzRIMm9nQVVHd0gyb2lCRFlDQUNBQlFid2ZhaUFFTmdJQUlBQkJBV29pQUVFZ1J3MEFDMEdVSHlBR1FTaHJJZ0JCZUNBQ2EwRUhjU0lCYXlJRU5nSUFRYUFmSUFFZ0Ftb2lBVFlDQUNBQklBUkJBWEkyQWdRZ0FDQUNha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQVFMSUFJZ0EwMGdBU0FEUzNJTkFpQUFLQUlNUVFoeERRSWdBQ0FFSUFacU5nSUVRYUFmSUFOQmVDQURhMEVIY1NJQWFpSUJOZ0lBUVpRZlFaUWZLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFNTFFRQWhCQXdLQzBFQUlRSU1DQXRCbUI4b0FnQWdBa3NFUUVHWUh5QUNOZ0lBQ3lBQ0lBWnFJUUZCeUNJaEFBSkFBa0FDUUFOQUlBRWdBQ2dDQUVjRVFDQUFLQUlJSWdBTkFRd0NDd3NnQUMwQURFRUljVVVOQVF0QnlDSWhBQU5BSUFNZ0FDZ0NBQ0lCVHdSQUlBRWdBQ2dDQkdvaUJDQURTdzBEQ3lBQUtBSUlJUUFNQUFzQUN5QUFJQUkyQWdBZ0FDQUFLQUlFSUFacU5nSUVJQUpCZUNBQ2EwRUhjV29pQnlBRlFRTnlOZ0lFSUFGQmVDQUJhMEVIY1dvaUJpQUZJQWRxSWdWcklRQWdBeUFHUmdSQVFhQWZJQVUyQWdCQmxCOUJsQjhvQWdBZ0FHb2lBRFlDQUNBRklBQkJBWEkyQWdRTUNBdEJuQjhvQWdBZ0JrWUVRRUdjSHlBRk5nSUFRWkFmUVpBZktBSUFJQUJxSWdBMkFnQWdCU0FBUVFGeU5nSUVJQUFnQldvZ0FEWUNBQXdJQ3lBR0tBSUVJZ05CQTNGQkFVY05CaUFEUVhoeElRa2dBMEgvQVUwRVFDQUdLQUlNSWdFZ0JpZ0NDQ0lDUmdSQVFZZ2ZRWWdmS0FJQVFYNGdBMEVEZG5keE5nSUFEQWNMSUFJZ0FUWUNEQ0FCSUFJMkFnZ01CZ3NnQmlnQ0dDRUlJQVlnQmlnQ0RDSUNSd1JBSUFZb0FnZ2lBU0FDTmdJTUlBSWdBVFlDQ0F3RkN5QUdRUlJxSWdFb0FnQWlBMFVFUUNBR0tBSVFJZ05GRFFRZ0JrRVFhaUVCQ3dOQUlBRWhCQ0FESWdKQkZHb2lBU2dDQUNJRERRQWdBa0VRYWlFQklBSW9BaEFpQXcwQUN5QUVRUUEyQWdBTUJBdEJsQjhnQmtFb2F5SUFRWGdnQW10QkIzRWlBV3NpQ0RZQ0FFR2dIeUFCSUFKcUlnRTJBZ0FnQVNBSVFRRnlOZ0lFSUFBZ0FtcEJLRFlDQkVHa0gwSHdJaWdDQURZQ0FDQURJQVJCSnlBRWEwRUhjV3BCTDJzaUFDQUFJQU5CRUdwSkd5SUJRUnMyQWdRZ0FVSFFJaWtDQURjQ0VDQUJRY2dpS1FJQU53SUlRZEFpSUFGQkNHbzJBZ0JCekNJZ0JqWUNBRUhJSWlBQ05nSUFRZFFpUVFBMkFnQWdBVUVZYWlFQUEwQWdBRUVITmdJRUlBQkJDR29nQUVFRWFpRUFJQVJKRFFBTElBRWdBMFlOQUNBQklBRW9BZ1JCZm5FMkFnUWdBeUFCSUFOcklnSkJBWEkyQWdRZ0FTQUNOZ0lBSUFKQi93Rk5CRUFnQWtGNGNVR3dIMm9oQUFKL1FZZ2ZLQUlBSWdGQkFTQUNRUU4yZENJQ2NVVUVRRUdJSHlBQklBSnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEFTQUFJQU0yQWdnZ0FTQUROZ0lNSUFNZ0FEWUNEQ0FESUFFMkFnZ01BUXRCSHlFQUlBSkIvLy8vQjAwRVFDQUNRU1lnQWtFSWRtY2lBR3QyUVFGeElBQkJBWFJyUVQ1cUlRQUxJQU1nQURZQ0hDQURRZ0EzQWhBZ0FFRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlCRUVCSUFCMElnWnhSUVJBUVl3ZklBUWdCbkkyQWdBZ0FTQUROZ0lBREFFTElBSkJHU0FBUVFGMmEwRUFJQUJCSDBjYmRDRUFJQUVvQWdBaEJBTkFJQVFpQVNnQ0JFRjRjU0FDUmcwQ0lBQkJIWFloQkNBQVFRRjBJUUFnQVNBRVFRUnhhaUlHS0FJUUlnUU5BQXNnQmlBRE5nSVFDeUFESUFFMkFoZ2dBeUFETmdJTUlBTWdBellDQ0F3QkN5QUJLQUlJSWdBZ0F6WUNEQ0FCSUFNMkFnZ2dBMEVBTmdJWUlBTWdBVFlDRENBRElBQTJBZ2dMUVpRZktBSUFJZ0FnQlUwTkFFR1VIeUFBSUFWcklnRTJBZ0JCb0I5Qm9COG9BZ0FpQUNBRmFpSUNOZ0lBSUFJZ0FVRUJjallDQkNBQUlBVkJBM0kyQWdRZ0FFRUlhaUVBREFnTFFZUWZRVEEyQWdCQkFDRUFEQWNMUVFBaEFnc2dDRVVOQUFKQUlBWW9BaHdpQVVFQ2RFRzRJV29pQkNnQ0FDQUdSZ1JBSUFRZ0FqWUNBQ0FDRFFGQmpCOUJqQjhvQWdCQmZpQUJkM0UyQWdBTUFnc2dDRUVRUVJRZ0NDZ0NFQ0FHUmh0cUlBSTJBZ0FnQWtVTkFRc2dBaUFJTmdJWUlBWW9BaEFpQVFSQUlBSWdBVFlDRUNBQklBSTJBaGdMSUFZb0FoUWlBVVVOQUNBQ0lBRTJBaFFnQVNBQ05nSVlDeUFBSUFscUlRQWdCaUFKYWlJR0tBSUVJUU1MSUFZZ0EwRitjVFlDQkNBRklBQkJBWEkyQWdRZ0FDQUZhaUFBTmdJQUlBQkIvd0ZOQkVBZ0FFRjRjVUd3SDJvaEFRSi9RWWdmS0FJQUlnSkJBU0FBUVFOMmRDSUFjVVVFUUVHSUh5QUFJQUp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBQ0FCSUFVMkFnZ2dBQ0FGTmdJTUlBVWdBVFlDRENBRklBQTJBZ2dNQVF0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFVZ0F6WUNIQ0FGUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQWtFQklBTjBJZ1J4UlFSQVFZd2ZJQUlnQkhJMkFnQWdBU0FGTmdJQURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBZ05BSUFJaUFTZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFpQURRUUYwSVFNZ0FTQUNRUVJ4YWlJRUtBSVFJZ0lOQUFzZ0JDQUZOZ0lRQ3lBRklBRTJBaGdnQlNBRk5nSU1JQVVnQlRZQ0NBd0JDeUFCS0FJSUlnQWdCVFlDRENBQklBVTJBZ2dnQlVFQU5nSVlJQVVnQVRZQ0RDQUZJQUEyQWdnTElBZEJDR29oQUF3Q0N3SkFJQWRGRFFBQ1FDQUVLQUljSWdCQkFuUkJ1Q0ZxSWdFb0FnQWdCRVlFUUNBQklBSTJBZ0FnQWcwQlFZd2ZJQWhCZmlBQWQzRWlDRFlDQUF3Q0N5QUhRUkJCRkNBSEtBSVFJQVJHRzJvZ0FqWUNBQ0FDUlEwQkN5QUNJQWMyQWhnZ0JDZ0NFQ0lBQkVBZ0FpQUFOZ0lRSUFBZ0FqWUNHQXNnQkNnQ0ZDSUFSUTBBSUFJZ0FEWUNGQ0FBSUFJMkFoZ0xBa0FnQTBFUFRRUkFJQVFnQXlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnSWdBMEVCY2pZQ0JDQUNJQU5xSUFNMkFnQWdBMEgvQVUwRVFDQURRWGh4UWJBZmFpRUFBbjlCaUI4b0FnQWlBVUVCSUFOQkEzWjBJZ054UlFSQVFZZ2ZJQUVnQTNJMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0FqWUNDQ0FCSUFJMkFnd2dBaUFBTmdJTUlBSWdBVFlDQ0F3QkMwRWZJUUFnQTBILy8vOEhUUVJBSUFOQkppQURRUWgyWnlJQWEzWkJBWEVnQUVFQmRHdEJQbW9oQUFzZ0FpQUFOZ0ljSUFKQ0FEY0NFQ0FBUVFKMFFiZ2hhaUVCQWtBQ1FDQUlRUUVnQUhRaUJuRkZCRUJCakI4Z0JpQUljallDQUNBQklBSTJBZ0FNQVFzZ0EwRVpJQUJCQVhaclFRQWdBRUVmUnh0MElRQWdBU2dDQUNFRkEwQWdCU0lCS0FJRVFYaHhJQU5HRFFJZ0FFRWRkaUVHSUFCQkFYUWhBQ0FCSUFaQkJIRnFJZ1lvQWhBaUJRMEFDeUFHSUFJMkFoQUxJQUlnQVRZQ0dDQUNJQUkyQWd3Z0FpQUNOZ0lJREFFTElBRW9BZ2dpQUNBQ05nSU1JQUVnQWpZQ0NDQUNRUUEyQWhnZ0FpQUJOZ0lNSUFJZ0FEWUNDQXNnQkVFSWFpRUFEQUVMQWtBZ0NVVU5BQUpBSUFJb0Fod2lBRUVDZEVHNElXb2lBU2dDQUNBQ1JnUkFJQUVnQkRZQ0FDQUVEUUZCakI4Z0MwRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFKR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBaWdDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FpZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFJZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQW1vaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFJZ0JVRURjallDQkNBQ0lBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRQkJuQjhvQWdBaEFRSi9RUUVnQjBFRGRuUWlCU0FHY1VVRVFFR0lIeUFGSUFaeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQmlBQUlBRTJBZ2dnQmlBQk5nSU1JQUVnQURZQ0RDQUJJQVkyQWdnTFFad2ZJQVEyQWdCQmtCOGdBellDQUFzZ0FrRUlhaUVBQ3lBS1FSQnFKQUFnQUF2U0N3RUhmd0pBSUFCRkRRQWdBRUVJYXlJQ0lBQkJCR3NvQWdBaUFVRjRjU0lBYWlFRkFrQWdBVUVCY1EwQUlBRkJBM0ZGRFFFZ0FpQUNLQUlBSWdGcklnSkJtQjhvQWdCSkRRRWdBQ0FCYWlFQUFrQUNRRUdjSHlnQ0FDQUNSd1JBSUFGQi93Rk5CRUFnQVVFRGRpRUVJQUlvQWd3aUFTQUNLQUlJSWdOR0JFQkJpQjlCaUI4b0FnQkJmaUFFZDNFMkFnQU1CUXNnQXlBQk5nSU1JQUVnQXpZQ0NBd0VDeUFDS0FJWUlRWWdBaUFDS0FJTUlnRkhCRUFnQWlnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBSkJGR29pQkNnQ0FDSURSUVJBSUFJb0FoQWlBMFVOQWlBQ1FSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZLQUlFSWdGQkEzRkJBMGNOQWtHUUh5QUFOZ0lBSUFVZ0FVRitjVFlDQkNBQ0lBQkJBWEkyQWdRZ0JTQUFOZ0lBRHd0QkFDRUJDeUFHUlEwQUFrQWdBaWdDSENJRFFRSjBRYmdoYWlJRUtBSUFJQUpHQkVBZ0JDQUJOZ0lBSUFFTkFVR01IMEdNSHlnQ0FFRitJQU4zY1RZQ0FBd0NDeUFHUVJCQkZDQUdLQUlRSUFKR0cyb2dBVFlDQUNBQlJRMEJDeUFCSUFZMkFoZ2dBaWdDRUNJREJFQWdBU0FETmdJUUlBTWdBVFlDR0FzZ0FpZ0NGQ0lEUlEwQUlBRWdBellDRkNBRElBRTJBaGdMSUFJZ0JVOE5BQ0FGS0FJRUlnRkJBWEZGRFFBQ1FBSkFBa0FDUUNBQlFRSnhSUVJBUWFBZktBSUFJQVZHQkVCQm9COGdBallDQUVHVUgwR1VIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQ1Fad2ZLQUlBUncwR1FaQWZRUUEyQWdCQm5COUJBRFlDQUE4TFFad2ZLQUlBSUFWR0JFQkJuQjhnQWpZQ0FFR1FIMEdRSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUFJQUpxSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFnQVVIL0FVMEVRQ0FCUVFOMklRUWdCU2dDRENJQklBVW9BZ2dpQTBZRVFFR0lIMEdJSHlnQ0FFRitJQVIzY1RZQ0FBd0ZDeUFESUFFMkFnd2dBU0FETmdJSURBUUxJQVVvQWhnaEJpQUZJQVVvQWd3aUFVY0VRRUdZSHlnQ0FCb2dCU2dDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFWQkZHb2lCQ2dDQUNJRFJRUkFJQVVvQWhBaUEwVU5BaUFGUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRklBRkJmbkUyQWdRZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FBd0RDMEVBSVFFTElBWkZEUUFDUUNBRktBSWNJZ05CQW5SQnVDRnFJZ1FvQWdBZ0JVWUVRQ0FFSUFFMkFnQWdBUTBCUVl3ZlFZd2ZLQUlBUVg0Z0EzZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ01FUUNBQklBTTJBaEFnQXlBQk5nSVlDeUFGS0FJVUlnTkZEUUFnQVNBRE5nSVVJQU1nQVRZQ0dBc2dBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQ0FDUVp3ZktBSUFSdzBBUVpBZklBQTJBZ0FQQ3lBQVFmOEJUUVJBSUFCQmVIRkJzQjlxSVFFQ2YwR0lIeWdDQUNJRFFRRWdBRUVEZG5RaUFIRkZCRUJCaUI4Z0FDQURjallDQUNBQkRBRUxJQUVvQWdnTElRQWdBU0FDTmdJSUlBQWdBallDRENBQ0lBRTJBZ3dnQWlBQU5nSUlEd3RCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQUlnQXpZQ0hDQUNRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0FDUUVHTUh5Z0NBQ0lFUVFFZ0EzUWlCM0ZGQkVCQmpCOGdCQ0FIY2pZQ0FDQUJJQUkyQWdBZ0FpQUJOZ0lZREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFRTkFJQUVpQkNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQVNBRFFRRjBJUU1nQkNBQlFRUnhhaUlIUVJCcUtBSUFJZ0VOQUFzZ0J5QUNOZ0lRSUFJZ0JEWUNHQXNnQWlBQ05nSU1JQUlnQWpZQ0NBd0JDeUFFS0FJSUlnQWdBallDRENBRUlBSTJBZ2dnQWtFQU5nSVlJQUlnQkRZQ0RDQUNJQUEyQWdnTFFhZ2ZRYWdmS0FJQVFRRnJJZ0JCZnlBQUd6WUNBQXNMQkFBakFBc0dBQ0FBSkFBTEVBQWpBQ0FBYTBGd2NTSUFKQUFnQUF0S0FRRi9JQUFnQVVrRVFDQUFJQUVnQWhBQ0R3c2dBZ1JBSUFBZ0Ftb2hBeUFCSUFKcUlRRURRQ0FEUVFGcklnTWdBVUVCYXlJQkxRQUFPZ0FBSUFKQkFXc2lBZzBBQ3dzZ0FBdjlEZ0lSZndGK0l3QkJNR3NpQnlRQVFiaC9JUWdDUUNBRlJRMEFJQVFzQUFBaUNVSC9BWEVoQ3dKQUlBbEJBRWdFUUNBTFFmNEFhMEVCZGlJR0lBVlBEUUpCYkNFSUlBdEIvd0JySWd0Qi93RkxEUUlnQkVFQmFpRUlRUUFoQlFOQUlBVWdDMDhFUUNBTElRZ2dCaUVMREFNRklBQWdCV29nQ0NBRlFRRjJhaUlFTFFBQVFRUjJPZ0FBSUFBZ0JVRUJjbW9nQkMwQUFFRVBjVG9BQUNBRlFRSnFJUVVNQVFzQUN3QUxJQVVnQzAwTkFTQUhRZjhCTmdJRUlBWWdCMEVFYWlBSFFRaHFJQVJCQVdvaURpQUxFQXdpQkVHSWYwc0VRQ0FFSVFnTUFndEJWQ0VJSUFjb0FnZ2lFRUVHU3cwQklBY29BZ1FpRVVFQmRDSUpRUUpxclVJQklCQ3RoaUlZUVFFZ0VIUWlEVUVCYWlJRnJVSUNobng4UWd0OFF2ei8vLy8vLy8vLy93Q0RRdVFDVmcwQlFWSWhDQ0FSUWY4QlN3MEJJQTFCZjNOQkFuUkI1QUpxclNBUlFRRnFJaFZCQVhTdElCaDhRZ2g4VkEwQklBc2dCR3NoRmlBRUlBNXFJUmNnQmtHQUJHb2lFaUFGUVFKMGFpSVJJQWxxUVFKcUlRNGdCa0dFQkdvaEUwR0FnQUlnRUhSQkVIWWhDVUVBSVFWQkFTRVBJQTFCQVdzaUZDRUtBMEFnQlNBVlJrVUVRQUpBSUFZZ0JVRUJkQ0lJYWk4QkFDSUVRZi8vQTBZRVFDQVRJQXBCQW5ScUlBVTZBQUlnQ2tFQmF5RUtRUUVoQkF3QkN5QVBRUUFnQ1NBRXdVb2JJUThMSUFnZ0VXb2dCRHNCQUNBRlFRRnFJUVVNQVFzTElBWWdEenNCZ2dRZ0JpQVFPd0dBQkFKQUlBb2dGRVlFUUNBTlFRTjJJUWhDQUNFWVFRQWhEd05BSUF3Z0ZVWUVRQ0FJSUExQkFYWnFRUU5xSWdsQkFYUWhDRUVBSVFSQkFDRUtBMEJCQUNFRklBb2dEVThOQkFOQUlBVkJBa1pGQkVBZ0V5QUZJQWxzSUFScUlCUnhRUUowYWlBT0lBVWdDbXBxTFFBQU9nQUNJQVZCQVdvaEJRd0JDd3NnQ2tFQ2FpRUtJQVFnQ0dvZ0ZIRWhCQXdBQ3dBRklBWWdERUVCZEdvdUFRQWhDU0FPSUE5cUlnUWdHRGNBQUVFSUlRVURRQ0FGSUFsT1JRUkFJQVFnQldvZ0dEY0FBQ0FGUVFocUlRVU1BUXNMSUJoQ2dZS0VpSkNnd0lBQmZDRVlJQXhCQVdvaERDQUpJQTlxSVE4TUFRc0FDd0FMSUExQkEzWWdEVUVCZG1wQkEyb2hDRUVBSVFVRFFDQU1JQlZHUlFSQVFRQWhDU0FHSUF4QkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FKUmtVRVFDQVRJQVZCQW5ScUlBdzZBQUlEUUNBRklBaHFJQlJ4SWdVZ0Nrc05BQXNnQ1VFQmFpRUpEQUVMQ3lBTVFRRnFJUXdNQVFzTFFYOGhDQ0FGRFFJTElCQkJBV29oQ0VFQUlRVURRQ0FGSUExR1JRUkFJQkVnRXlBRlFRSjBhaUlPTFFBQ1FRRjBhaUlFSUFRdkFRQWlDVUVCYWpzQkFDQU9JQWdnQ1dkQllITnFJZ1E2QUFNZ0RpQUpJQVIwSUExck93RUFJQVZCQVdvaEJRd0JDd3NDUUFKQUlBWXZBWUlFQkVBZ0IwRWNhaUlFSUJjZ0ZoQU5JZ2hCaUg5TERRSWdCMEVVYWlBRUlCSVFEaUFIUVF4cUlBUWdFaEFPUVFBaEJRTkFJQWRCSEdvaUJCQVBJQVZCK3dGTGNnMENJQUFnQldvaUJpQUhRUlJxSUFRUUVEb0FBQ0FHSUFkQkRHb2dCQkFRT2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVU1Bd1VnQUNBRWFpQUhRUlJxSUFkQkhHb2lCQkFRT2dBQUlBWWdCMEVNYWlBRUVCQTZBQU1nQlVFRWFpRUZEQUVMQUFzQUN5QUhRUnhxSWdRZ0Z5QVdFQTBpQ0VHSWYwc05BU0FIUVJScUlBUWdFaEFPSUFkQkRHb2dCQ0FTRUE1QkFDRUZBMEFnQjBFY2FpSUVFQThnQlVIN0FVdHlSUVJBSUFBZ0JXb2lCaUFIUVJScUlBUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVGSUFBZ0JHb2dCMEVVYWlBSFFSeHFJZ1FRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FESUFWQkJHb2hCUXdDQ3dzTEFuOERRRUc2ZnlFSUlBVkIvUUZMRFFNZ0FDQUZhaUlHSUFkQkZHb2dCMEVjYWlJSkVCRTZBQUFnQmtFQmFpRUVJQWtRRDBFRFJnUkFJQWRCREdvaENFRUNEQUlMSUFWQi9BRkxEUU1nQmlBSFFReHFJQWRCSEdvaUJCQVJPZ0FCSUFWQkFtb2hCU0FFRUE5QkEwY05BQXNnQUNBRmFpRUVJQWRCRkdvaENFRURDeUFFSUFnZ0IwRWNhaEFST2dBQUlBWnFJQUJySVFnTUFRc0Nmd05BUWJwL0lRZ2dCVUg5QVVzTkFpQUFJQVZxSWdZZ0IwRVVhaUFIUVJ4cUlna1FFRG9BQUNBR1FRRnFJUVFnQ1JBUFFRTkdCRUFnQjBFTWFpRUlRUUlNQWdzZ0JVSDhBVXNOQWlBR0lBZEJER29nQjBFY2FpSUVFQkE2QUFFZ0JVRUNhaUVGSUFRUUQwRURSdzBBQ3lBQUlBVnFJUVFnQjBFVWFpRUlRUU1MSUFRZ0NDQUhRUnhxRUJBNkFBQWdCbW9nQUdzaENBc2dDRUdJZjBzTkFRc2dDQ0VFUVFBaEJTQUJRUUJCTkJBRElRbEJBQ0VLQTBBZ0JDQUZSd1JBSUFBZ0JXb2lCaTBBQUNJQlFRdExCRUJCYkNFSURBTUZJQWtnQVVFQ2RHb2lBU0FCS0FJQVFRRnFOZ0lBSUFWQkFXb2hCVUVCSUFZdEFBQjBRUUYxSUFwcUlRb01BZ3NBQ3d0QmJDRUlJQXBGRFFBZ0NtY2lCVUVmY3lJQlFRdExEUUFnQTBFZ0lBVnJOZ0lBUVFGQkFpQUJkQ0FLYXlJRFowRWZjeUlCZENBRFJ3MEFJQUFnQkdvZ0FVRUJhaUlBT2dBQUlBa2dBRUVDZEdvaUFDQUFLQUlBUVFGcU5nSUFJQWtvQWdRaUFFRUNTU0FBUVFGeGNnMEFJQUlnQkVFQmFqWUNBQ0FMUVFGcUlRZ0xJQWRCTUdva0FDQUlDNkFGQVF4L0l3QkJFR3NpRENRQUFuOGdCRUVIVFFSQUlBeENBRGNEQ0NBTVFRaHFJZ1VnQXlBRUVBSWFRV3dnQUNBQklBSWdCVUVJRUF3aUFDQUFJQVJMR3lBQUlBQkJpWDlKR3d3QkN5QUFRUUFnQVNnQ0FFRUJhaUlOUVFGMEVBTWhEMEZVSUFNb0FBQWlCa0VQY1NJQVFRcExEUUFhSUFJZ0FFRUZhallDQUNBRElBUnFJZ0pCQkdzaEJ5QUNRUWRySVFzZ0FFRUdhaUVPUVFRaEFpQUdRUVIySVFWQklDQUFkQ0lJUVFGeUlRbEJBQ0VBUVFFaEJpQURJUVFEUUFKQUlBWkJBWEZGQkVBRFFDQUZRWDl6UVlDQWdJQjRjbWdpQmtFWVNVVUVRQ0FBUVNScUlRQWdCQ0FMVFFSL0lBUkJBMm9GSUFRZ0MydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xJQUlnQmtFZWNTSUtha0VDYWlFQ0lBWkJBWFpCQTJ3Z0FHb2dCU0FLZGtFRGNXb2lBQ0FOVHcwQkFuOGdCQ0FMU3lBQ1FRTjJJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBUWdCMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVUxJQVVnQ0VFQmEzRWlCaUFJUVFGMFFRRnJJZ29nQ1dzaUVFa0VmeUFPUVFGckJTQUZJQXB4SWdVZ0VFRUFJQVVnQ0U0YmF5RUdJQTRMSVFVZ0R5QUFRUUYwYWlBR1FRRnJJZ283QVFBZ0FFRUJhaUVBSUFJZ0JXb2hBaUFJUVFFZ0Jtc2dDaUFHUVFCS0d5QUphaUlKU2dSQUlBbEJBa2dOQVVFZ0lBbG5JZ1ZySVE1QkFTQUZRUjl6ZENFSUN5QUFJQTFQRFFBZ0NrRUFSeUVHQW44Z0JDQUxTeUFDUVFOMUlBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFJZ0JDQUhhMEVEZEdwQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xRV3dnQ1VFQlJ3MEFHa0ZRSUFBZ0RVc05BQnBCYkNBQ1FTQktEUUFhSUFFZ0FFRUJhellDQUNBRUlBSkJCMnBCQTNWcUlBTnJDeUFNUVJCcUpBQUw4Z0VCQVg4Z0FrVUVRQ0FBUWdBM0FnQWdBRUVBTmdJUUlBQkNBRGNDQ0VHNGZ3OExJQUFnQVRZQ0RDQUFJQUZCQkdvMkFoQWdBa0VFVHdSQUlBQWdBU0FDYWlJQlFRUnJJZ00yQWdnZ0FDQURLQUFBTmdJQUlBRkJBV3N0QUFBaUFRUkFJQUFnQVdkQkYyczJBZ1FnQWc4TElBQkJBRFlDQkVGL0R3c2dBQ0FCTmdJSUlBQWdBUzBBQUNJRE5nSUFBa0FDUUFKQUlBSkJBbXNPQWdFQUFnc2dBQ0FCTFFBQ1FSQjBJQU55SWdNMkFnQUxJQUFnQVMwQUFVRUlkQ0FEYWpZQ0FBc2dBU0FDYWtFQmF5MEFBQ0lCUlFSQUlBQkJBRFlDQkVGc0R3c2dBQ0FCWnlBQ1FRTjBhMEVKYWpZQ0JDQUNDMFFCQW44Z0FTQUNMd0VBSWdNZ0FTZ0NCR29pQkRZQ0JDQUFJQU5CQW5SQm9CMXFLQUlBSUFFb0FnQkJBQ0FFYTNaeE5nSUFJQUVRRHhvZ0FDQUNRUVJxTmdJRUM1OEJBUVIvUVFNaEFTQUFLQUlFSWdKQklFMEVRQ0FBS0FJSUlnRWdBQ2dDRUU4RVFDQUFJQUpCQjNFMkFnUWdBQ0FCSUFKQkEzWnJJZ0kyQWdnZ0FDQUNLQUFBTmdJQVFRQVBDeUFBS0FJTUlnTWdBVVlFUUVFQlFRSWdBa0VnU1JzUEN5QUFJQUVnQVNBRGF5QUNRUU4ySWdRZ0FTQUVheUFEU1NJQkd5SURheUlFTmdJSUlBQWdBaUFEUVFOMGF6WUNCQ0FBSUFRb0FBQTJBZ0FMSUFFTFNBRUVmeUFBS0FJRUlBQW9BZ0JCQW5ScUlnSXRBQUlnQWk4QkFDRUVJQUVnQVNnQ0JDSUZJQUl0QUFNaUFtbzJBZ1FnQUNBRUlBRW9BZ0FnQlhSQkFDQUNhM1pxTmdJQUMxSUJCSDhnQUNnQ0JDQUFLQUlBUVFKMGFpSUNMUUFDSUFJdkFRQWhCQ0FCSUFJdEFBTWlBaUFCS0FJRWFpSUZOZ0lFSUFBZ0JDQUNRUUowUWFBZGFpZ0NBQ0FCS0FJQVFRQWdCV3QyY1dvMkFnQUxDQUFnQUVHSWYwc0xHZ0FnQUFSQUlBRUVRQ0FDSUFBZ0FSRUNBQThMSUFBUUJnc0xwZ2dDRFg4QmZpTUFRUkJySWdra0FDQUpRUUEyQWd3Z0NVRUFOZ0lJQW44Q1FDQURRZWdKYWlBRElBbEJDR29nQ1VFTWFpQUJJQUlnQTBHQUFXb1FDeUlQUVloL1N3MEFRVlFnQ1NnQ0RDSUVJQUFvQWdBaUFVSC9BWEZCQVdwTERRRWFJQUJCQkdvaEN5QUFJQUZCLzRHQWVIRWdCRUVRZEVHQWdQd0hjWEkyQWdCQmZ5QUVJQVJCQUVnYlFRRnFJUUJCQUNFQklBa29BZ2doQlVFQUlRSURRQ0FBSUFKR0JFQWdCVUVEYXlFQlFRQWhBQU5BQWtCQkFDRUNJQUFnQVU0RVFBTkFJQUFnQlU0TkFpQURJQUFnQTJwQjZBbHFMUUFBUVFKMGFrRkFheUlCSUFFb0FnQWlBVUVCYWpZQ0FDQUJJQU5xSUFBNkFPZ0hJQUJCQVdvaEFBd0FDd0FGQTBBZ0FrRUVSa1VFUUNBRElBTWdBQ0FDYWlJSGFrSG9DV290QUFCQkFuUnFRVUJySWdnZ0NDZ0NBQ0lJUVFGcU5nSUFJQU1nQ0dvZ0J6b0E2QWNnQWtFQmFpRUNEQUVMQ3lBQVFRUnFJUUFNQWdzQUN3c2dCRUVCYWlFT0lBTW9BZ0FoQjBFQUlRQkJBU0VJQTBBZ0NDQU9SZzBESUE0Z0NHc2hCQ0FESUFoQkFuUnFLQUlBSVFVQ1FBSkFBa0FDUUFKQUFrQkJBU0FJZEVFQmRTSU5RUUZyRGdnQUFRUUNCQVFFQXdRTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBQUlRRURRQ0FDSUFaR0RRVWdBeUFDSUFkcWFpMEE2QWNoQ2lBTElBRkJBWFJxSWd3Z0JEb0FBU0FNSUFvNkFBQWdBa0VCYWlFQ0lBRkJBV29oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaENpQUFJUUVEUUNBQ0lBcEdEUVFnQ3lBQlFRRjBhaUlHSUFNZ0FpQUhhbW90QU9nSElndzZBQUlnQmlBRU9nQUJJQVlnRERvQUFDQUdJQVE2QUFNZ0FrRUJhaUVDSUFGQkFtb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBRVFRaDBRWUQrQTNFaEJDQUFJUUVEUUNBQ0lBWkdEUU1nQ3lBQlFRRjBhaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitOd0FBSUFKQkFXb2hBaUFCUVFScUlRRU1BQXNBQzBFQUlRSWdCVUVBSUFWQkFFb2JJUVlnQkVFSWRFR0EvZ054SVFRZ0FDRUJBMEFnQWlBR1JnMENJQXNnQVVFQmRHb2lDaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJaEUzQUFnZ0NpQVJOd0FBSUFKQkFXb2hBaUFCUVFocUlRRU1BQXNBQzBFQUlRRWdCVUVBSUFWQkFFb2JJUW9nQkVFSWRFR0EvZ054SVF3Z0FDRUVBMEFnQVNBS1JnMEJJQXNnQkVFQmRHb2hFQ0FNSUFNZ0FTQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJUkZCQUNFQ0EwQWdBaUFOVGtVRVFDQVFJQUpCQVhScUlnWWdFVGNBR0NBR0lCRTNBQkFnQmlBUk53QUlJQVlnRVRjQUFDQUNRUkJxSVFJTUFRc0xJQUZCQVdvaEFTQUVJQTFxSVFRTUFBc0FDeUFJUVFGcUlRZ2dCU0FIYWlFSElBVWdEV3dnQUdvaEFBd0FDd0FGSUFNZ0FrRUNkR29pQjBGQWF5QUJOZ0lBSUFKQkFXb2hBaUFIS0FJQUlBRnFJUUVNQVFzQUN3QUxJQThMSUFsQkVHb2tBQXZ5QWdFR2Z5TUFRU0JySWdVa0FDQUVLQUlBSVFZZ0JVRU1haUFDSUFNUURTSURRWWgvVFFSQUlBUkJCR29oQWlBQUlBRnFJZ2xCQTJzaEJFRUFJQVpCRUhaclFSOXhJUU1EUUNBRlFReHFFQThnQUNBRVQzSkZCRUFnQWlBRktBSU1JZ1lnQlNnQ0VDSUhkQ0FEZGtFQmRHb2lDQzBBQVNFS0lBQWdDQzBBQURvQUFDQUNJQVlnQnlBS2FpSUdkQ0FEZGtFQmRHb2lCeTBBQUNFSUlBVWdCaUFITFFBQmFqWUNFQ0FBSUFnNkFBRWdBRUVDYWlFQURBRUxDd05BSUFWQkRHb1FEeUVISUFVb0Fnd2hCaUFGS0FJUUlRUWdBQ0FKVHlBSGNrVUVRQ0FDSUFZZ0JIUWdBM1pCQVhScUlnWXRBQUFoQnlBRklBUWdCaTBBQVdvMkFoQWdBQ0FIT2dBQUlBQkJBV29oQUF3QkN3c0RRQ0FBSUFsUFJRUkFJQUlnQmlBRWRDQURka0VCZEdvaUJ5MEFBU0VJSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQkNBSWFpRUVEQUVMQzBGc1FXd2dBU0FGS0FJVUlBVW9BaGhIR3lBRVFTQkhHeUVEQ3lBRlFTQnFKQUFnQXd2UEZBRWpmeU1BUWRBQWF5SUZKQUJCYkNFSkFrQWdBMEVLU1EwQUFrQWdBeUFDTHdBRUlnY2dBaThBQUNJSUlBSXZBQUlpRFdwcVFRWnFJZ3hKRFFBZ0JDOEJBaUVHSUFWQlBHb2dBa0VHYWlJQ0lBZ1FEU0lKUVloL1N3MEJJQVZCS0dvZ0FpQUlhaUlDSUEwUURTSUpRWWgvU3cwQklBVkJGR29nQWlBTmFpSUNJQWNRRFNJSlFZaC9TdzBCSUFVZ0FpQUhhaUFESUF4ckVBMGlDVUdJZjBzTkFTQUVRUVJxSVFvZ0FDQUJhaUlmUVFOcklTQkJBQ0FHYTBFZmNTRUxJQVVvQWdnaEVTQUZLQUljSVJJZ0JTZ0NNQ0VUSUFVb0FrUWhGQ0FGS0FJRUlRa2dCU2dDR0NFTklBVW9BaXdoRENBRktBSkFJUVlnQlNnQ0VDRWhJQVVvQWlRaElpQUZLQUk0SVNNZ0JTZ0NUQ0VrSUFVb0FnQWhGU0FGS0FJVUlSWWdCU2dDS0NFWElBVW9BandoR0VFQklROGdBQ0FCUVFOcVFRSjJJZ1JxSWdNZ0JHb2lBaUFFYWlJWklRUWdBaUVJSUFNaEJ3TkFJQTlCQVhGRklBUWdJRTl5UlFSQUlBQWdDaUFZSUFaMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhHaUFPTFFBRElSQWdCeUFLSUJjZ0RIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0RpMEFBaUViSUE0dEFBTWhEeUFJSUFvZ0ZpQU5kQ0FMZGtFQ2RHb2lEaThCQURzQUFDQU9MUUFDSVJ3Z0RpMEFBeUVkSUFRZ0NpQVZJQWwwSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEhpQU9MUUFESVE0Z0FDQVFhaUlsSUFvZ0dDQUdJQnBxSWdaMElBdDJRUUowYWlJUUx3RUFPd0FBSUJBdEFBSWdFQzBBQXlFbUlBY2dEMm9pSnlBS0lCY2dEQ0FiYWlJYWRDQUxka0VDZEdvaUJ5OEJBRHNBQUNBSExRQUNJUXdnQnkwQUF5RVFJQWdnSFdvaUd5QUtJQllnRFNBY2FpSVBkQ0FMZGtFQ2RHb2lDQzhCQURzQUFDQUlMUUFDSVEwZ0NDMEFBeUVjSUFRZ0Rtb2lIU0FLSUJVZ0NTQWVhaUlPZENBTGRrRUNkR29pQ1M4QkFEc0FBQ0FHYWlFQVFRTWhCd0ovSUJRZ0pFa0VRQ0FBSVFaQkF3d0JDeUFBUVFkeElRWWdGQ0FBUVFOMmF5SVVLQUFBSVJoQkFBc2dDUzBBQXlFZUlBa3RBQUloQ0NBTUlCcHFJUUFnRXlBalNRUi9JQUFGSUJNZ0FFRURkbXNpRXlnQUFDRVhRUUFoQnlBQVFRZHhDeUVNSUEwZ0Qyb2hBQ0FIY2lFSlFRTWhEd0ovSUJJZ0lra0VRQ0FBSVExQkF3d0JDeUFBUVFkeElRMGdFaUFBUVFOMmF5SVNLQUFBSVJaQkFBc2dDQ0FPYWlFQUlBbHlJQkVnSVVrRWZ5QUFCU0FSSUFCQkEzWnJJaEVvQUFBaEZVRUFJUThnQUVFSGNRc2hDU0FsSUNacUlRQWdFQ0FuYWlFSElCc2dIR29oQ0NBZElCNXFJUVFnRDNKRklROE1BUXNMSUFVZ0REWUNMQ0FGSUFZMkFrQWdCU0FOTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBSWdCMGtnQUNBRFMzSU5BRUZzSVFrZ0NDQVpTdzBCSUFOQkEyc2hDUU5BSUFWQlBHb1FEMFVnQUNBSlNYRUVRQ0FBSUFvZ0JTZ0NQQ0lOSUFVb0FrQWlESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdBQ0FPTFFBRGFpSUdJQW9nRFNBTUlBNHRBQUpxSWdCMElBdDJRUUowYWlJTUx3RUFPd0FBSUFVZ0FDQU1MUUFDYWpZQ1FDQUdJQXd0QUFOcUlRQU1BUVVnQTBFQ2F5RU1BMEFnQlVFOGFoQVBJUVlnQlNnQ1BDRU5JQVVvQWtBaENTQUFJQXhMSUFaeVJRUkFJQUFnQ2lBTklBbDBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdDU0FHTFFBQ2FqWUNRQ0FBSUFZdEFBTnFJUUFNQVFzTEEwQWdBQ0FNUzBVRVFDQUFJQW9nRFNBSmRDQUxka0VDZEdvaUJpOEJBRHNBQUNBQUlBWXRBQU5xSVFBZ0NTQUdMUUFDYWlFSkRBRUxDd0pBSUFBZ0EwOE5BQ0FBSUFvZ0RTQUpkQ0FMZGlJQVFRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FKSUFNdEFBSnFJUWtNQVFzZ0NVRWZTdzBBUVNBZ0NTQUtJQUJCQW5ScUxRQUNhaUlBSUFCQklFOGJJUWtMSUFKQkEyc2hEQU5BSUFWQktHb1FEMFVnQnlBTVNYRUVRQ0FISUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lBSFFnQzNaQkFuUnFJZzB2QVFBN0FBQWdCeUFOTFFBRGFpSURJQW9nQmlBQUlBMHRBQUpxSWdCMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FDQUdMUUFDYWpZQ0xDQURJQVl0QUFOcUlRY01BUVVnQWtFQ2F5RUdBMEFnQlVFb2FoQVBJUU1nQlNnQ0tDRU1JQVVvQWl3aEFDQUdJQWRKSUFOeVJRUkFJQWNnQ2lBTUlBQjBJQXQyUVFKMGFpSURMd0VBT3dBQUlBVWdBQ0FETFFBQ2FqWUNMQ0FISUFNdEFBTnFJUWNNQVFzTEEwQWdCaUFIU1VVRVFDQUhJQW9nRENBQWRDQUxka0VDZEdvaUF5OEJBRHNBQUNBSElBTXRBQU5xSVFjZ0FDQURMUUFDYWlFQURBRUxDd0pBSUFJZ0IwME5BQ0FISUFvZ0RDQUFkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FBSUFNdEFBSnFJUUFNQVFzZ0FFRWZTdzBBUVNBZ0FDQUtJQUpCQW5ScUxRQUNhaUlBSUFCQklFOGJJUUFMSUJsQkEyc2hEQU5BSUFWQkZHb1FEMFVnQ0NBTVNYRUVRQ0FJSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lBblFnQzNaQkFuUnFJZzB2QVFBN0FBQWdDQ0FOTFFBRGFpSURJQW9nQmlBQ0lBMHRBQUpxSWdKMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FpQUdMUUFDYWpZQ0dDQURJQVl0QUFOcUlRZ01BUVVnR1VFQ2F5RURBMEFnQlVFVWFoQVBJUUlnQlNnQ0ZDRUdJQVVvQWhnaEJ5QURJQWhKSUFKeVJRUkFJQWdnQ2lBR0lBZDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBVWdCeUFDTFFBQ2FqWUNHQ0FJSUFJdEFBTnFJUWdNQVFzTEEwQWdBeUFJU1VVRVFDQUlJQW9nQmlBSGRDQUxka0VDZEdvaUFpOEJBRHNBQUNBSUlBSXRBQU5xSVFnZ0J5QUNMUUFDYWlFSERBRUxDd0pBSUFnZ0dVOE5BQ0FJSUFvZ0JpQUhkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FISUFNdEFBSnFJUWNNQVFzZ0IwRWZTdzBBUVNBZ0J5QUtJQUpCQW5ScUxRQUNhaUlDSUFKQklFOGJJUWNMQTBBZ0JSQVBSU0FFSUNCSmNRUkFJQVFnQ2lBRktBSUFJZ1lnQlNnQ0JDSUNkQ0FMZGtFQ2RHb2lEQzhCQURzQUFDQUVJQXd0QUFOcUlnTWdDaUFHSUFJZ0RDMEFBbW9pQW5RZ0MzWkJBblJxSWdRdkFRQTdBQUFnQlNBQ0lBUXRBQUpxTmdJRUlBTWdCQzBBQTJvaEJBd0JCU0FmUVFKcklRTURRQ0FGRUE4aEFpQUZLQUlBSVFZZ0JTZ0NCQ0VJSUFNZ0JFa2dBbkpGQkVBZ0JDQUtJQVlnQ0hRZ0MzWkJBblJxSWdJdkFRQTdBQUFnQlNBSUlBSXRBQUpxTmdJRUlBUWdBaTBBQTJvaEJBd0JDd3NEUUNBRElBUkpSUVJBSUFRZ0NpQUdJQWgwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVFnQWkwQUEyb2hCQ0FJSUFJdEFBSnFJUWdNQVFzTEFrQWdCQ0FmVHcwQUlBUWdDaUFHSUFoMElBdDJJZ0pCQW5ScUlnTXRBQUE2QUFBZ0F5MEFBMEVCUmdSQUlBZ2dBeTBBQW1vaENBd0JDeUFJUVI5TERRQkJJQ0FJSUFvZ0FrRUNkR290QUFKcUlnSWdBa0VnVHhzaENBdEJiRUZzUVd4QmJFRnNRV3hCYkVGc0lBRWdDRUVnUnhzZ0JTZ0NDQ0FGS0FJTVJ4c2dCMEVnUnhzZ0JTZ0NIQ0FGS0FJZ1J4c2dBRUVnUnhzZ0JTZ0NNQ0FGS0FJMFJ4c2dDVUVnUnhzZ0JTZ0NSQ0FGS0FKSVJ4c2hDUXdKQ3dBTEFBc0FDd0FMQUFzQUN3QUxBQXRCYkNFSkN5QUZRZEFBYWlRQUlBa0w3QkFCSG44akFFSFFBR3NpQlNRQVFXd2hDUUpBSUFOQkNra05BQUpBSUFNZ0FpOEFCQ0lHSUFJdkFBQWlCeUFDTHdBQ0lnaHFha0VHYWlJT1NRMEFJQVF2QVFJaER5QUZRVHhxSUFKQkJtb2lBaUFIRUEwaUNVR0lmMHNOQVNBRlFTaHFJQUlnQjJvaUFpQUlFQTBpQ1VHSWYwc05BU0FGUVJScUlBSWdDR29pQWlBR0VBMGlDVUdJZjBzTkFTQUZJQUlnQm1vZ0F5QU9heEFOSWdsQmlIOUxEUUVnQkVFRWFpRUtJQUFnQVdvaUhFRURheUVkUVFBZ0QydEJIM0VoQ3lBRktBSUlJUkVnQlNnQ0hDRVNJQVVvQWpBaEV5QUZLQUpFSVJRZ0JTZ0NCQ0VKSUFVb0FoZ2hCaUFGS0FJc0lRY2dCU2dDUUNFSUlBVW9BaEFoSGlBRktBSWtJUjhnQlNnQ09DRWdJQVVvQWt3aElTQUZLQUlBSVJVZ0JTZ0NGQ0VXSUFVb0FpZ2hGeUFGS0FJOElSaEJBU0VOSUFBZ0FVRURha0VDZGlJQ2FpSU9JQUpxSWc4Z0Ftb2lHU0VFSUE4aEFpQU9JUU1EUUNBTlJTQUVJQjFQY2tVRVFDQUtJQmdnQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUFnQ2lBWElBZDBJQXQyUVFGMGFpSU1MUUFCSVJBZ0F5QU1MUUFBT2dBQUlBb2dGaUFHZENBTGRrRUJkR29pREMwQUFTRWFJQUlnREMwQUFEb0FBQ0FLSUJVZ0NYUWdDM1pCQVhScUlnd3RBQUVoR3lBRUlBd3RBQUE2QUFBZ0NpQVlJQWdnRFdvaUNIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFFZ0NpQVhJQWNnRUdvaUIzUWdDM1pCQVhScUlnd3RBQUVoRUNBRElBd3RBQUE2QUFFZ0NpQVdJQVlnR21vaURIUWdDM1pCQVhScUlnWXRBQUVoR2lBQ0lBWXRBQUE2QUFFZ0NpQVZJQWtnRzJvaUczUWdDM1pCQVhScUlna3RBQUVoSWlBRUlBa3RBQUE2QUFFZ0NDQU5haUVHUVFNaENRSi9JQlFnSVVrRVFFRURJUTBnQmd3QkN5QVVJQVpCQTNackloUW9BQUFoR0VFQUlRMGdCa0VIY1FzaENDQUhJQkJxSVFZZ0V5QWdTUVIvSUFZRklCTWdCa0VEZG1zaUV5Z0FBQ0VYUVFBaENTQUdRUWR4Q3lFSElBd2dHbW9oRENBSklBMXlJUkJCQXlFTkFuOGdFaUFmU1FSQUlBd2hCa0VEREFFTElBeEJCM0VoQmlBU0lBeEJBM1pySWhJb0FBQWhGa0VBQ3lBYklDSnFJUXdnRUhJaEVDQVJJQjVKQkg4Z0RBVWdFU0FNUVFOMmF5SVJLQUFBSVJWQkFDRU5JQXhCQjNFTElRa2dCRUVDYWlFRUlBSkJBbW9oQWlBRFFRSnFJUU1nQUVFQ2FpRUFJQTBnRUhKRklRME1BUXNMSUFVZ0J6WUNMQ0FGSUFnMkFrQWdCU0FHTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBQWdEa3NnQXlBUFMzSU5BRUZzSVFrZ0FpQVpTdzBCSUE1QkEyc2hDUU5BSUFWQlBHb1FEeUFBSUFsUGNrVUVRQ0FLSUFVb0Fqd2lCaUFGS0FKQUlnZDBJQXQyUVFGMGFpSUlMUUFCSVF3Z0FDQUlMUUFBT2dBQUlBb2dCaUFISUF4cUlnWjBJQXQyUVFGMGFpSUhMUUFBSVFnZ0JTQUdJQWN0QUFGcU5nSkFJQUFnQ0RvQUFTQUFRUUpxSVFBTUFRc0xBMEFnQlVFOGFoQVBJUWNnQlNnQ1BDRUdJQVVvQWtBaENTQUFJQTVQSUFkeVJRUkFJQW9nQmlBSmRDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0NTQUdMUUFCYWpZQ1FDQUFJQWM2QUFBZ0FFRUJhaUVBREFFTEN3TkFJQUFnRGs5RkJFQWdDaUFHSUFsMElBdDJRUUYwYWlJSExRQUJJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdDV29oQ1F3QkN3c2dEMEVEYXlFQUEwQWdCVUVvYWhBUElBQWdBMDF5UlFSQUlBb2dCU2dDS0NJR0lBVW9BaXdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFESUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWl3Z0F5QUlPZ0FCSUFOQkFtb2hBd3dCQ3dzRFFDQUZRU2hxRUE4aEJ5QUZLQUlvSVFZZ0JTZ0NMQ0VBSUFNZ0QwOGdCM0pGQkVBZ0NpQUdJQUIwSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FBSUFZdEFBRnFOZ0lzSUFNZ0J6b0FBQ0FEUVFGcUlRTU1BUXNMQTBBZ0F5QVBUMFVFUUNBS0lBWWdBSFFnQzNaQkFYUnFJZ2N0QUFFaENDQURJQWN0QUFBNkFBQWdBMEVCYWlFRElBQWdDR29oQUF3QkN3c2dHVUVEYXlFREEwQWdCVUVVYWhBUElBSWdBMDl5UlFSQUlBb2dCU2dDRkNJR0lBVW9BaGdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFDSUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWhnZ0FpQUlPZ0FCSUFKQkFtb2hBZ3dCQ3dzRFFDQUZRUlJxRUE4aEJ5QUZLQUlVSVFZZ0JTZ0NHQ0VESUFJZ0dVOGdCM0pGQkVBZ0NpQUdJQU4wSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FESUFZdEFBRnFOZ0lZSUFJZ0J6b0FBQ0FDUVFGcUlRSU1BUXNMQTBBZ0FpQVpUMFVFUUNBS0lBWWdBM1FnQzNaQkFYUnFJZ2N0QUFFaENDQUNJQWN0QUFBNkFBQWdBa0VCYWlFQ0lBTWdDR29oQXd3QkN3c0RRQ0FGRUE4Z0JDQWRUM0pGQkVBZ0NpQUZLQUlBSWdJZ0JTZ0NCQ0lHZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FLSUFJZ0JpQUlhaUlDZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQWlBR0xRQUJhallDQkNBRUlBYzZBQUVnQkVFQ2FpRUVEQUVMQ3dOQUlBVVFEeUVISUFVb0FnQWhCaUFGS0FJRUlRSWdCQ0FjVHlBSGNrVUVRQ0FLSUFZZ0FuUWdDM1pCQVhScUlnWXRBQUFoQnlBRklBSWdCaTBBQVdvMkFnUWdCQ0FIT2dBQUlBUkJBV29oQkF3QkN3c0RRQ0FFSUJ4UFJRUkFJQW9nQmlBQ2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBRVFRRnFJUVFnQWlBSWFpRUNEQUVMQzBGc1FXeEJiRUZzUVd4QmJFRnNRV3dnQVNBQ1FTQkhHeUFGS0FJSUlBVW9BZ3hIR3lBRFFTQkhHeUFGS0FJY0lBVW9BaUJIR3lBQVFTQkhHeUFGS0FJd0lBVW9BalJIR3lBSlFTQkhHeUFGS0FKRUlBVW9Ba2hIR3lFSkRBRUxRV3doQ1FzZ0JVSFFBR29rQUNBSkMxZ0JBMzhDUUNBQUtBS1E2d0VpQVVVTkFDQUJLQUlBSUFGQnROVUJhaWdDQUNJQ0lBRkJ1TlVCYWlnQ0FDSURFQk1nQWdSQUlBTWdBU0FDRVFJQURBRUxJQUVRQmdzZ0FFRUFOZ0tnNndFZ0FFSUFOd09RNndFTDZRTUNCSDhDZmlBQVFRQkJLQkFESVFRZ0FrRUJRUVVnQXhzaUFFa0VRQ0FBRHdzZ0FVVUVRRUYvRHd0QkFTRUdBa0FDUUNBRFFRRkdEUUFnQXlFR0lBRW9BQUFpQlVHbzZyNXBSZzBBUVhZaEF5QUZRWEJ4UWREVXRNSUJSdzBCUVFnaEF5QUNRUWhKRFFFZ0FUVUFCQ0VJSUFSQkFUWUNGQ0FFSUFnM0F3QkJBQThMSUFFZ0FpQUdFQm9pQXlBQ1N3MEFJQVFnQXpZQ0dFRnlJUU1nQUNBQmFpSUZRUUZyTFFBQUlnSkJDSEVOQUNBQ1FTQnhJZ1pGQkVCQmNDRURJQVV0QUFBaUJVR25BVXNOQVNBRlFRZHhyVUlCSUFWQkEzWkJDbXF0aGlJSVFnT0lmaUFJZkNFSklBQkJBV29oQUFzZ0FrRUdkaUVGSUFKQkFuWkJBQ0VEQWtBQ1FBSkFBa0FnQWtFRGNVRUJhdzREQUFFQ0F3c2dBQ0FCYWkwQUFDRURJQUJCQVdvaEFBd0NDeUFBSUFGcUx3QUFJUU1nQUVFQ2FpRUFEQUVMSUFBZ0FXb29BQUFoQXlBQVFRUnFJUUFMUVFGeElRSUNmZ0pBQWtBQ1FBSkFJQVZCQVdzT0F3RUNBd0FMUW44Z0JrVU5BeG9nQUNBQmFqRUFBQXdEQ3lBQUlBRnFNd0FBUW9BQ2ZBd0NDeUFBSUFGcU5RQUFEQUVMSUFBZ0FXb3BBQUFMSVFnZ0JDQUNOZ0lnSUFRZ0F6WUNIQ0FFSUFnM0F3QkJBQ0VESUFSQkFEWUNGQ0FFSUFnZ0NTQUdHeUlJTndNSUlBUkNnSUFJSUFnZ0NFS0FnQWhhR3o0Q0VBc2dBd3RmQVFGL1FiaC9JUU1nQVVFQlFRVWdBaHNpQWs4RWZ5QUFJQUpxUVFGckxRQUFJZ0JCQTNGQkFuUkJvQjVxS0FJQUlBSnFJQUJCQkhaQkRIRkJzQjVxS0FJQWFpQUFRU0J4SWdGRmFpQUJRUVYySUFCQndBQkpjV29GUWJoL0N3c01BQ0FBSUFFZ0FrRUFFQmtMbHdNQ0JYOENmaU1BUVVCcUlnUWtBQUpBQTBBZ0FVRUZUd1JBQWtBZ0FDZ0FBRUZ3Y1VIUTFMVENBVVlFUUVKK0lRY2dBVUVJU1EwRUlBQW9BQVFpQWtGM1N3MEVJQUpCQ0dvaUF5QUJTdzBFSUFKQmdYOUpEUUVNQkFzZ0JFRVlhaUFBSUFFUUd5RUNRbjRnQkNrREdFSUFJQVFvQWl4QkFVY2JJQUliSWdkQ2ZWWU5BeUFISUFoOElnZ2dCMVJDZmlFSERRTUNRQUpBSUFGQkNFa05BQ0FBS0FBQVFYQnhRZERVdE1JQlJ3MEFJQUFvQUFRaUFrRjNTdzBGUWJoL0lBSkJDR29pQWlBQklBSkpHeUVEREFFTElBUkJHR29nQUNBQkVCc2lBa0dJZjBzRVFDQUNJUU1NQVF0QnVIOGhBeUFDRFFBZ0FTQUVLQUl3SWdKcklRVWdBQ0FDYWlFR0EwQWdCaUFGSUFSQkRHb1FIU0lEUVloL1N3MEJJQU5CQTJvaUFpQUZTd1JBUWJoL0lRTU1BZ3NnQlNBQ2F5RUZJQUlnQm1vaEJpQUVLQUlRUlEwQUN5QUVLQUk0Qkg5QnVIOGhBeUFGUVFSSkRRRWdCa0VFYWdVZ0Jnc2dBR3NoQXdzZ0EwR0lmMHNOQXdzZ0FTQURheUVCSUFBZ0Eyb2hBQXdCQ3d0Q2ZpQUlJQUViSVFjTElBUkJRR3NrQUNBSEMyUUJBWDlCdUg4aEF3SkFJQUZCQTBrTkFDQUFMUUFDSVFFZ0FpQUFMd0FBSWdCQkFYRTJBZ1FnQWlBQVFRRjJRUU54SWdNMkFnQWdBaUFBSUFGQkVIUnlRUU4ySWdBMkFnZ0NRQUpBSUFOQkFXc09Bd0lCQUFFTFFXd1BDeUFBSVFNTElBTUxSQUVDZnlBQklBSW9BZ1FpQXlBQktBSUVhaUlFTmdJRUlBQWdBMEVDZEVHZ0hXb29BZ0FnQVNnQ0FFRUFJQVJyZG5FMkFnQWdBUkFQR2lBQUlBSkJDR28yQWdRTHpnRUJCbjlCdW44aENnSkFJQUlvQWdRaUNDQUNLQUlBSWdscUlnMGdBU0FBYTBzTkFFRnNJUW9nQ1NBRUlBTW9BZ0FpQzJ0TERRQWdBQ0FKYWlJRUlBSW9BZ2dpREdzaEFpQUFJQUZCSUdzaUFDQUxJQWxCQUJBZ0lBTWdDU0FMYWpZQ0FBSkFBa0FnQkNBRmF5QU1Ud1JBSUFJaEJRd0JDeUFNSUFRZ0JtdExEUUlnQnlBSElBSWdCV3NpQW1vaUFTQUlhazhFUUNBRUlBRWdDQkFLR2d3Q0N5QUNJQWhxSVFnZ0JDQUJRUUFnQW1zUUNpQUNheUVFQ3lBRUlBQWdCU0FJUVFFUUlBc2dEU0VLQ3lBS0M4Y0VBUUovSUFBZ0Eyb2hCZ0pBSUFOQkIwd0VRQU5BSUFBZ0JrOE5BaUFBSUFJdEFBQTZBQUFnQUVFQmFpRUFJQUpCQVdvaEFnd0FDd0FMSUFSQkFVWUVRQUpBSUFBZ0Ftc2lCVUVIVFFSQUlBQWdBaTBBQURvQUFDQUFJQUl0QUFFNkFBRWdBQ0FDTFFBQ09nQUNJQUFnQWkwQUF6b0FBeUFBSUFJZ0JVRUNkQ0lGUWNBZWFpZ0NBR29pQWlnQUFEWUFCQ0FDSUFWQjRCNXFLQUlBYXlFQ0RBRUxJQUFnQWlrQUFEY0FBQXNnQWtFSWFpRUNJQUJCQ0dvaEFBc2dBU0FHVHdSQUlBQWdBMm9oQVNBRVFRRkhJQUFnQW10QkQwcHlSUVJBQTBBZ0FDQUNLUUFBTndBQUlBSkJDR29oQWlBQVFRaHFJZ0FnQVVrTkFBd0RDd0FMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0EwRVJTUTBCSUFCQkVHb2hBQU5BSUFBZ0Fpa0FFRGNBQUNBQUlBSXBBQmczQUFnZ0FDQUNLUUFnTndBUUlBQWdBaWtBS0RjQUdDQUNRU0JxSVFJZ0FFRWdhaUlBSUFGSkRRQUxEQUVMQWtBZ0FDQUJTd1JBSUFBaEFRd0JDeUFCSUFCcklRVUNRQ0FFUVFGSElBQWdBbXRCRDBweVJRUkFJQUloQXdOQUlBQWdBeWtBQURjQUFDQURRUWhxSVFNZ0FFRUlhaUlBSUFGSkRRQUxEQUVMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0JVRVJTQTBBSUFCQkVHb2hBQ0FDSVFNRFFDQUFJQU1wQUJBM0FBQWdBQ0FES1FBWU53QUlJQUFnQXlrQUlEY0FFQ0FBSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUJCSUdvaUFDQUJTUTBBQ3dzZ0FpQUZhaUVDQ3dOQUlBRWdCazhOQVNBQklBSXRBQUE2QUFBZ0FVRUJhaUVCSUFKQkFXb2hBZ3dBQ3dBTEM2NEhBZ1YvQVg0akFFR0FBV3NpRVNRQUlCRWdBellDZkVGL0lROENRQUpBQWtBQ1FBSkFJQUlPQkFFQUF3SUVDeUFHUlFSQVFiaC9JUThNQkF0QmJDRVBJQVV0QUFBaUFpQURTdzBESUFnZ0FrRUNkQ0lDYWlnQ0FDRURJQUlnQjJvb0FnQWhBaUFBUVFBNkFBc2dBRUlBTndJQUlBQWdBallDRENBQUlBTTZBQW9nQUVFQU93RUlJQUVnQURZQ0FFRUJJUThNQXdzZ0FTQUpOZ0lBUVFBaER3d0NDeUFLUlFSQVFXd2hEd3dDQzBFQUlROGdDMFVnREVFWlNISU5BVUVJSUFSMFFRaHFJUUJCQUNFREEwQWdBQ0FEVFEwQ0lBTkJRR3NoQXd3QUN3QUxRV3doRHlBUklCRkIvQUJxSUJGQitBQnFJQVVnQmhBTUlnTkJpSDlMRFFBZ0VTZ0NlQ0lDSUFSTERRQWdFU2dDZkVFQmFpRUpJQUJCQ0dvaEMwR0FnQUlnQW5SQkVIVWhCVUVCSVJCQkFTQUNkQ0lQUVFGcklnb2hFZ05BSUFrZ0RrY0VRQUpBSUJFZ0RrRUJkQ0lFYWk4QkFDSU1RZi8vQTBZRVFDQUxJQkpCQTNScUlBNDJBZ1FnRWtFQmF5RVNRUUVoREF3QkN5QVFRUUFnQlNBTXdVb2JJUkFMSUFRZ0RXb2dERHNCQUNBT1FRRnFJUTRNQVFzTElBQWdBallDQkNBQUlCQTJBZ0FDUUNBS0lCSkdCRUFnRFVIcUFHb2hCa0VBSVJCQkFDRU1BMEFnQ1NBUVJnUkFJQTlCQTNZZ0QwRUJkbXBCQTJvaUJVRUJkQ0VFUVFBaERFRUFJUklEUUVFQUlRNGdEeUFTVFEwRUEwQWdEa0VDUndSQUlBc2dCU0FPYkNBTWFpQUtjVUVEZEdvZ0JpQU9JQkpxYWkwQUFEWUNCQ0FPUVFGcUlRNE1BUXNMSUJKQkFtb2hFaUFFSUF4cUlBcHhJUXdNQUFzQUJTQVJJQkJCQVhScUxnRUFJUVVnQmlBTWFpSUVJQk0zQUFCQkNDRU9BMEFnQlNBT1NnUkFJQVFnRG1vZ0V6Y0FBQ0FPUVFocUlRNE1BUXNMSUJOQ2dZS0VpSkNnd0lBQmZDRVRJQkJCQVdvaEVDQUZJQXhxSVF3TUFRc0FDd0FMSUE5QkEzWWdEMEVCZG1wQkEyb2hCVUVBSVJCQkFDRU9BMEFnQ1NBUVJnMEJRUUFoRENBUklCQkJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBTVJ3UkFJQXNnRGtFRGRHb2dFRFlDQkFOQUlBVWdEbW9nQ25FaURpQVNTdzBBQ3lBTVFRRnFJUXdNQVFzTElCQkJBV29oRUF3QUN3QUxJQUpCQVdvaEJVRUFJUXdEUUNBTUlBOUhCRUFnRFNBTElBeEJBM1JxSWdrb0FnUWlCRUVCZEdvaUFpQUNMd0VBSWdaQkFXbzdBUUFnQ1NBRklBWm5RV0J6YWlJQ09nQURJQWtnQmlBQ2RDQVBhenNCQUNBSklBZ2dCRUVDZENJQ2FpZ0NBRG9BQWlBSklBSWdCMm9vQWdBMkFnUWdERUVCYWlFTURBRUxDeUFCSUFBMkFnQWdBeUVQQ3lBUlFZQUJhaVFBSUE4TDdWb0NPMzhHZmlNQVFlQUJheUlFSkFBQ1FFR3c3QWtRQlNJRlJRUkFRVUFoQnd3QkN5QUZRZ0EzQXZUcUFTQUZRUUEyQXNUckFTQUZRUUEyQXJUckFTQUZRZ0EzQXB6ckFTQUZRUUEyQXJqcEFTQUZRUUEyQXF6c0NTQUZRZ0EzQXRUckFTQUZRZ0EzQXF6ckFTQUZRZ0EzQTRqckFTQUZRZ0EzQXVUcUFTQUZRZ0EzQXVUckFTQUZRWUdBZ01BQU5nSzg2d0VnQlVJQU53S2s2d0VnQlVIODZnRnFRUUEyQWdBZ0JVR1E2d0ZxUWdBM0F3QWdCUkFZSUFWQnJOVUJhaUVVSUFWQitPc0JhaUVjSUFWQnNPb0JhaUVpSUFWQm9EQnFJU29nQlVHWUlHb2hLeUFGUWFqUUFHb2hIaUFGUVJCcUlTd2dCVUVJYWlFb0lBVkJCR29oTFNBRlFjRHBBV29oS1NBRlFZanJBV29nQkVHVUFXb2hMeUFFUVl3QmFpRXdJQVJCaEFGcUlURWdCRUhjQUdvaE1pQUVRZFFBYWlFeklBUkJ6QUJxSVRRZ0FDRWRBa0FDUUFKQUFrQUNRQU5BUVFGQkJTQUZLQUxrNmdFYklRWUNRQU5BSUFNZ0Jra05BU0FDS0FBQVFYQnhRZERVdE1JQlJnUkFRYmgvSVFjZ0EwRUlTUTBJSUFJb0FBUWlEa0YzU3dSQVFYSWhCd3dKQ3lBRElBNUJDR29pQ1VrTkNDQU9RWUIvU3dSQUlBa2hCd3dKQ3lBRElBbHJJUU1nQWlBSmFpRUNEQUVMQ3lBRlFnQTNBcXpwQVNBRlFnQTNBK2pwQVNBRlFRQTJBcGpyQVNBRlFnQTNBNERxQVNBRlFnTTNBL2pwQVNBRlFiVHBBV3BDQURjQ0FDQUZRZkRwQVdwQ0FEY0RBQ0FGUWFqUUFHb2lDVUdNZ0lEZ0FEWUNBQ0FGUWF6UUFXcEI0QklwQWdBM0FnQWdCVUcwMEFGcVFlZ1NLQUlBTmdJQUlBVWdCVUVRYWpZQ0FDQUZJQVZCb0RCcU5nSUVJQVVnQlVHWUlHbzJBZ2dnQlNBSk5nSU1JQVZCQVVFRklBVW9BdVRxQVJzMkFyenBBUUpBSUFGRkRRQWdCU2dDck9rQklna2dIVVlOQUNBRklBazJBcmpwQVNBRklCMDJBcXpwQVNBRktBS3c2UUVoRGlBRklCMDJBckRwQVNBRklCMGdEaUFKYTJvMkFyVHBBUXRCdUg4aENTQURRUVZCQ1NBRktBTGs2Z0VpQmh0SkRRVWdBa0VCUVFVZ0Joc2dCaEFhSWc1QmlIOUxCRUFnRGlFSkRBVUxJQU1nRGtFRGFra05CU0FwSUFJZ0RpQUdFQmtpQmtHSWYwc0VRQ0FHSVFrTUJRc2dCZzBGQWtBQ1FDQUZLQUtvNndGQkFVY05BQ0FGS0FLazZ3RWlDVVVOQUNBRktBS1U2d0ZGRFFBZ0NTZ0NCRUVCYXlJSElBVW9BdHpwQVNJS3JVS0hsYSt2bUxiZW01NS9ma0xKejlteThlVzY2aWVGUWhlSlFzL1cwNzdTeDZ2WlFuNUMrZlBkOFpuMm1hc1dmQ0kvUWlHSUlEK0ZRcy9XMDc3U3g2dlpRbjRpUDBJZGlDQS9oVUw1ODkzeG1mYVpxeForSWo5Q0lJZ2dQNFduY1NFR0lBa29BZ0FoRlFOQVFRQWhDQUpBSUJVZ0JrRUNkR29vQWdBaUNVVU5BQ0FKS0FJSVFRaEpEUUFnQ1NnQ0JDSVNLQUFBUWJmSXd1RitSdzBBSUJJb0FBUWhDQXNnQ0NBS1J3UkFJQVlnQjNGQkFXb2hCaUFJRFFFTEN5QUpSUTBBSUFVUUdDQUZRWDgyQXFEckFTQUZJQWsyQXBUckFTQUZJQVVvQXR6cEFTSUlOZ0tZNndFTUFRc2dCU2dDM09rQklRZ0xBa0FnQ0VVTkFDQUZLQUtZNndFZ0NFWU5BRUZnSVFrTUJnc0NRQ0FGS0FMZzZRRUVRQ0FGSUFVb0F1anFBU0lKUlRZQzdPb0JJQWtOQVNBRlF2bnEwTkRueWFIazRRQTNBNmpxQVNBRlFnQTNBNkRxQVNBRlFzL1cwNzdTeDZ2WlFqY0RtT29CSUFWQzF1dUM3dXI5aWZYZ0FEY0RrT29CSUFWQ0FEY0RpT29CSUNKQkFFRW9FQU1hREFFTElBVkJBRFlDN09vQkN5QUJJQjFxSVNVZ0JTQUZLUVBvNlFFZ0RxMThOd1BvNlFFZ0F5QU9heUVESUFJZ0Rtb2hBaUFkSVE0RFFDQUNJQU1nQkVFc2FoQWRJaFZCaUg5TEJFQWdGU0VKREFZTElBTkJBMnNpTlNBVlNRMEVJQUpCQTJvaEcwRnNJUWtDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQUVLQUlzRGdNQ0FRQVZDeUFWUWYvL0Iwc05FeUFWUVFOSkRSSWdCU2tEeU9rQklUOENRQUpBSUJzdEFBQWlDVUVEY1NJYVFRRnJEZ01HQVFBSEN5QUZLQUtBNmdFTkFFRmlJUWtNRlFzZ0ZVRUZTUTBTSUJzb0FBQWhBd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRWlDVUVDYXc0Q0FRSUFDeUFKUVFCSElRY2dBMEVFZGtIL0IzRWhDMEVESVFZZ0EwRU9ka0gvQjNFTUFndEJCQ0VHSUFOQkJIWkIvLzhBY1NFTFFRRWhCeUFEUVJKMkRBRUxJQU5CQkhaQi8vOFBjU0lMUVlDQUNFc05FMEVCSVFkQkJTRUdJQUl0QUFkQkNuUWdBMEVXZG5JTElnZ2dCbW9pQ1NBVlN3MFNBa0FnQzBHQkJra05BQ0FGS0FLYzZ3RkZEUUJCQUNFREEwQWdBMEdEZ0FGTERRRWdBMEZBYXlFRERBQUxBQXNnQmlBYmFpRVBJQnBCQTBjTkJpQUZLQUlNSWdJdEFBRkJDSFFoQXlBSERRY2dBMFVOQ0NBRVFmQUFhaUFQSUFnUURTSURRWWgvU3cwSklBSkJCR29oQmlBTElCeHFJaEpCQTJzaENrRUFJQUl2QVFKclFSOXhJUWNnSENFREEwQWdCRUh3QUdvUUQwVWdBeUFLU1hFRVFDQURJQVlnQkNnQ2NDSUlJQVFvQW5RaUQzUWdCM1pCQW5ScUlnSXZBUUE3QUFBZ0F5QUNMUUFEYWlJRElBWWdDQ0FQSUFJdEFBSnFJZ2gwSUFkMlFRSjBhaUlDTHdFQU93QUFJQVFnQ0NBQ0xRQUNhallDZENBRElBSXRBQU5xSVFNTUFRVWdFa0VDYXlFSUEwQWdCRUh3QUdvUUR5RVBJQVFvQW5BaENpQUVLQUowSVFJZ0F5QUlTeUFQY2tVRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUNpOEJBRHNBQUNBRUlBSWdDaTBBQW1vMkFuUWdBeUFLTFFBRGFpRUREQUVMQ3dOQUlBTWdDRTBFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pRHk4QkFEc0FBQ0FESUE4dEFBTnFJUU1nQWlBUExRQUNhaUVDREFFTEN3SkFJQU1nRWs4TkFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUF5MEFBRG9BQUNBRExRQURRUUZHQkVBZ0FpQURMUUFDYWlFQ0RBRUxJQUpCSDBzTkFFRWdJQUlnQXkwQUFtb2lBaUFDUVNCUEd5RUNDMEZzUVd3Z0N5QUVLQUo0SUFRb0FueEhHeUFDUVNCSEd5RUREQXNMQUFzQUN5QUVLQUkwSWdJZ0pTQU9hMHNOQ2lBT1JRUkFRUUFoQ1NBQ0RRSU1EZ3NnRGlBYkxRQUFJQUlRQXhvZ0FpRUpEQXdMSUJVZ0pTQU9hMHNOQ1NBT0RRRkJBQ0VKSUJWRkRRd0xRYlovSVFrTUVRc2dEaUFiSUJVUUFob2dGU0VKREFvTElCd2dHd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRkJBV3NPQXdFQUFnQUxJQWxCQTNZaEEwRUJEQUlMSUJzdkFBQkJCSFloQTBFQ0RBRUxJQlZCQkVrTkRpQUNMd0FESUFJdEFBVkJFSFJ5SWdKQmo0Q0FBVXNORGlBQ1FRUjJJUU5CQXdzaUFtb3RBQUFnQTBFZ2FoQURJUWtnQlNBRE5nS0E2d0VnQlNBSk5nTHc2Z0VnQWtFQmFpRUpEQVVMSUJVQ2Z3SkFBa0FDUUNBSlFRSjJRUU54UVFGckRnTUJBQUlBQ3lBSlFRTjJJUU5CQVF3Q0N5QWJMd0FBUVFSMklRTkJBZ3dCQ3lBQ0x3QURJQUl0QUFWQkVIUnlRUVIySVFOQkF3c2lBaUFEYWlJSlFTQnFTUVJBSUFrZ0ZVc05EU0FjSUFJZ0cyb2dBeEFDSVFJZ0JTQUROZ0tBNndFZ0JTQUNOZ0x3NmdFZ0FpQURhaUlDUWdBM0FCZ2dBa0lBTndBUUlBSkNBRGNBQ0NBQ1FnQTNBQUFNQlFzZ0JTQUROZ0tBNndFZ0JTQUNJQnRxTmdMdzZnRU1CQXNnQjBVRVFDQWVJQThnQ0NBVUVCUWlBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRlNFRERBTUxJQXRGSUFoRmNnMExJQXRCQ0hZaUF5QUlJQXRKQkg4Z0NFRUVkQ0FMYmdWQkR3dEJHR3dpQWtHTUNHb29BZ0JzSUFKQmlBaHFLQUlBYWlJR1FRTjJJQVpxSUFKQmdBaHFLQUlBSUFKQmhBaHFLQUlBSUFOc2Fra0VRQ01BUVJCckloQWtBQ0FlS0FJQUlRTWdGRUh3QkdwQkFFSHNBQkFESVFaQlZDRUNBa0FnQTBIL0FYRWlERUVNU3cwQUFrQWdGRUhjQ1dvZ0JpQVFRUWhxSUJCQkRHb2dEeUFJSUJSQjNBdHFJaGNRQ3lJU1FZaC9TdzBBSUJBb0Fnd2lCaUFNU3cwQklCUkJxQVZxSVEwZ0ZFR2tCV29oTmlBZVFRUnFJUkVnQTBHQWdJQjRjU0UzSUFaQkFXb2lFeUVDSUFZaEF3TkFJQUlpQjBFQmF5RUNJQU1pQ2tFQmF5RURJQlFnQ2tFQ2RHb29BdkFFUlEwQUMwRUJJQWNnQjBFQlRSc2hGa0VBSVFkQkFTRUNBMEFnQWlBV1J3UkFJQlFnQWtFQ2RDSURhaWdDOEFRaEdDQURJQTFxSUFjMkFnQWdBa0VCYWlFQ0lBY2dHR29oQnd3QkN3c2dEU0FITmdJQVFRQWhBaUFRS0FJSUlRTURRQ0FDSUFOSEJFQWdEU0FDSUJScVFkd0phaTBBQUNJWVFRSjBhaUlaSUJrb0FnQWlHVUVCYWpZQ0FDQVVJQmxCQVhScUloa2dHRG9BM1FVZ0dTQUNPZ0RjQlNBQ1FRRnFJUUlNQVFzTFFRQWhBeUFOUVFBMkFnQWdEQ0FHUVg5emFpRUdRUUVoQWdOQUlBSWdGa2NFUUNBVUlBSkJBblJxSWcwZ0F6WUNBQ0FOS0FMd0JDQUNJQVpxZENBRGFpRURJQUpCQVdvaEFnd0JDd3NnRENBVElBcHJJZ1pyUVFGcUlRb2dCaUVEQTBBZ0F5QUtTUVJBSUJRZ0EwRTBiR29oRFVFQklRSURRQ0FDSUJaSEJFQWdEU0FDUVFKMEloaHFJQlFnR0dvb0FnQWdBM1kyQWdBZ0FrRUJhaUVDREFFTEN5QURRUUZxSVFNTUFRc0xJQmNnRkVFMEVBSWhPQ0FVUVpBTWFpRTVJQk1nREdzaE9pQVVRZHdGYWlFWFFRQWhDZ05BQWtBQ1FDQUhJQXBIQkVCQkFTQU1JQk1nRnlBS1FRRjBhaUlDTFFBQklnMXJJZ05ySWhoMElSa2dBaTBBQUNFV0lEZ2dEVUVDZEdvaUh5Z0NBQ0VDSUFZZ0dFMEVRQ0EyUVFFZ0F5QTZhaUlOSUExQkFVd2JJaUJCQW5RaUpHb29BZ0FoRFNBNUlCUWdBMEUwYkdwQk5CQUNJU0VnRFVFQmRDRW1JQkVnQWtFQ2RHb2hJeUFnUVFGTkRRSWdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVnSUNFZ0pHb29BZ0FoSkVFQUlRSURRQ0FDSUNSR0RRTWdJeUFDUVFKMGFpQWdOZ0VBSUFKQkFXb2hBZ3dBQ3dBTElBSWdBaUFaYWlJTklBSWdEVXNiSVEwZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRURBMEFnQWlBTlJnMERJQkVnQWtFQ2RHb2dBellCQUNBQ1FRRnFJUUlNQUFzQUN5QWVJQXhCRUhRZ04zSWdESEpCZ0FKeU5nSUFEQU1MSUFjZ0RXc2hKQ0FYSUNacUlTWkJBQ0VOQTBBZ0RTQWtSZzBCUVFFZ0dDQVRJQ1lnRFVFQmRHb2lKeTBBQVNJQ2F5STdhM1FpUENBaElBSkJBblJxSWlBb0FnQWlBbW9oUFNBRElEdHFRUkIwUVlDQS9BZHhJQ2N0QUFCQkNIUnlJQlp5UVlDQWdCQnlJU2NEUUNBaklBSkJBblJxSUNjMkFRQWdBa0VCYWlJQ0lEMUpEUUFMSUNBZ0lDZ0NBQ0E4YWpZQ0FDQU5RUUZxSVEwTUFBc0FDeUFmSUI4b0FnQWdHV28yQWdBZ0NrRUJhaUVLREFBTEFBc2dFaUVDQ3lBUVFSQnFKQUFnQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZpRUREQU1MSUI0Z0R5QUlJQlFRRkNJQ1FZaC9TeUFDSUFoUGNnMExJQndnQ3lBQ0lBOXFJQWdnQW1zZ0hoQVhJUU1NQWdzZ0F3UkFJQndnQ3lBUElBZ2dBaEFXSVFNTUFnc2dIQ0FMSUE4Z0NDQUNFQmNoQXd3QkN5QWNJQXNnRHlBSUlBSVFGU0VEQ3lBRFFZaC9TdzBJSUFVZ0N6WUNnT3NCSUFVZ0hEWUM4T29CSUFWQkFUWUNnT29CSUJwQkFrWUVRQ0FGSUI0MkFnd0xJQXNnSEdvaUFrSUFOd0FBSUFKQ0FEY0FHQ0FDUWdBM0FCQWdBa0lBTndBSUlBbEJpSDlMRFFvTElBa2dGVVlOQ0NBVklBbHJJUVlnQlNnQ25Pc0JJUW9DUUNBSklCdHFJZ010QUFBaUQwVUVRRUVCSVFKQkFDRVBRYmgvSVFrZ0JrRUJSZzBCREFzTEFuOGdBMEVCYWlBUHdDSUNRUUJPRFFBYUlBSkJmMFlFUUNBR1FRTklEUXNnQXk4QUFVR0EvZ0ZxSVE4Z0EwRURhZ3dCQ3lBR1FRSklEUW9nQXkwQUFTQVBRUWgwY2tHQWdBSnJJUThnQTBFQ2Fnc2hFa0c0ZnlFSklCSkJBV29pQWlBVklCdHFJZ2RMRFFvZ0xDQUZJQkl0QUFBaUVrRUdka0VqUVFrZ0FpQUhJQUpyUWNBUVFkQVJRZkFTSUFVb0FvVHFBU0FLSUE4Z0ZCQWhJZ2xCaUg5TERRZ2dLeUFvSUJKQkJIWkJBM0ZCSDBFSUlBSWdDV29pQWlBSElBSnJRWUFMUVlBTVFZQVhJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQ0VHSWYwc05DRUZzSVFrZ0tpQXRJQkpCQW5aQkEzRkJORUVKSUFJZ0NHb2lBaUFISUFKclFZQU5RZUFPUVpBWklBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlCMEdJZjBzTkNpQUNJQWRxSUFOcklnSWhDU0FDUVloL1N3MEtDeUFPSUE5QkFFeHlEUUVMUWJwL0lRa01DQXNnSlNBT2F5RUpJQVlnQW1zaEJpQUNJQU5xSVFjQ1FBSkFBa0FnQ2tVRVFDQVBRUWxJSUFVcEE4anBBVUtCZ0lBSVZISU5BaUFvS0FJQUlnSkJDR29oRWlBQ0tBSUVJUXBCQUNFRFFRQWhBZ05BSUFNZ0NuWkZCRUFnQWlBU0lBTkJBM1JxTFFBQ1FSWkxhaUVDSUFOQkFXb2hBd3dCQ3dzZ0JVRUFOZ0tjNndFZ0FrRUlJQXByZEVFVVR3MEJEQU1MSUFWQkFEWUNuT3NCQ3lBRUlBVW9BdkRxQVNJRE5nTGNBU0FKSUE1cUlSWWdBeUFGS0FLQTZ3RnFJUmNDUUNBUFJRUkFJQTRoQnd3QkN5QUZLQUs0NlFFaEdpQUZLQUswNlFFaEdDQUZLQUt3NlFFaEVpQUZRUUUyQW9UcUFVRUFJUU1EUUNBRFFRTkhCRUFnQkNBRFFRSjBJZ0pxSUFJZ0JXcEJyTkFCYWlnQ0FEWUNaQ0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRVGhxSWdJZ0J5QUdFQTFCaUg5TERRTkJDQ0FQSUE5QkNFNGJJUjhnTkNBQ0lBVW9BZ0FRSGlBeklBSWdCU2dDQ0JBZUlESWdBaUFGS0FJRUVCNGdEaUFTYXlFWlFRQWhDQU5BSUFSQk9Hb1FEMEVEUmlBSUlCOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnZEJFSFlpRVVIL0FYRWhDeUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWd4QkVIWWlJVUgvQVhFaEVDQUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFZZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDa0gvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJS2F5SU5JQUlnQWlBTlN4c2lFeUFLYWpZQ1BDQUdJQVFvQWpnZ0NuUkJBQ0FUYTNZZ0FpQVRheUlUZEdvaENpQUVRVGhxRUE4YUlBSWdEVTBOQVNBRUlBUW9BandpQWlBVGFqWUNQQ0FFS0FJNElBSjBRUUFnRTJ0MklBcHFJUW9NQVFzZ0JDQUNJQVFvQWp3aURXbzJBandnQkNnQ09DQU5kRUVBSUFwcmRpQUdhaUVLSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUFvMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQURCRUFnQkNnQ1pDRUtEQU1MSUFRb0FtZ2hDZ3dCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFZZ0EwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnWkZJQVpxSVFvZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQW8yQW1RTHB5RUNJRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUJCcU5nSThJQVFvQWpnZ0JuUkJBQ0FoYTNZZ0Ftb2hBZ3NnQ3lBUWFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lBdHFOZ0k4SUFRb0FqZ2dCblJCQUNBUmEzWWdBMm9oQXdzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQmtFQUlBZEJHSFlpQ3lBRUtBSThhaUlRYTNZZ0MwRUNkRUdnSFdvb0FnQnhJQWRCLy84RGNXbzJBa3dnQkNBUUlBeEJHSFlpQjJvaUN6WUNQQ0FFSUFkQkFuUkJvQjFxS0FJQUlBWkJBQ0FMYTNaeElBeEIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdaQkdIWWlCeUFFS0FJOGFpSUxOZ0k4SUFRZ0IwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBdHJkbkVnQmtILy93TnhhallDVkNBRVFmQUFhaUFJUVF4c2FpSUdJQW8yQWdnZ0JpQUNOZ0lFSUFZZ0F6WUNBQ0FJUVFGcUlRZ2dBeUFaYWlBQ2FpRVpEQUVMQ3lBSUlCOUlEUU1nRmtFZ2F5RWhJQTRoQndOQUlBUkJPR29RRDBFRFJpQUlJQTlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ1pCRUhZaUkwSC9BWEVoQ2lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklnMUJFSFlpSUVIL0FYRWhFeUFFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRTWdRVUlnaUNCQVFpQ0lweUVMQWtBZ1FrSVFpS2NpREVIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSU1heUlSSUFJZ0FpQVJTeHNpRUNBTWFqWUNQQ0FESUFRb0FqZ2dESFJCQUNBUWEzWWdBaUFRYXlJTWRHb2hFQ0FFUVRocUVBOGFJQUlnRVUwTkFTQUVJQVFvQWp3aUFpQU1hallDUENBRUtBSTRJQUowUVFBZ0RHdDJJQkJxSVJBTUFRc2dCQ0FDSUFRb0Fqd2lFR28yQWp3Z0JDZ0NPQ0FRZEVFQUlBeHJkaUFEYWlFUUlBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlCQTJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FMQkVBZ0JDZ0NaQ0VRREFNTElBUW9BbWdoRUF3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBTWdDMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ05GSUFOcUlSQWdBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUJBMkFtUUxweUVNSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lCTnFOZ0k4SUFRb0FqZ2dBblJCQUNBZ2EzWWdER29oREFzZ0NpQVRha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQXBxTmdJOElBUW9BamdnQW5SQkFDQWphM1lnQzJvaEN3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUFrRUFJQVpCR0hZaUF5QUVLQUk4YWlJS2EzWWdBMEVDZEVHZ0hXb29BZ0J4SUFaQi8vOERjV28yQWt3Z0JDQUtJQTFCR0hZaUEyb2lCallDUENBRUlBTkJBblJCb0IxcUtBSUFJQUpCQUNBR2EzWnhJQTFCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnSkJHSFlpQXlBRUtBSThhaUlHTmdJOElBUWdBMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQVpyZG5FZ0FrSC8vd054YWpZQ1ZBSkFBa0FDUUNBRUtBTGNBU0lESUFSQjhBQnFJQWhCQjNGQkRHeHFJaE1vQWdBaUVXb2lJeUFYU3cwQUlBY2dFeWdDQkNJTklCRnFJZ3BxSUNGTERRQWdDa0VnYWlBV0lBZHJUUTBCQ3lBRUlCTW9BZ2cyQWhnZ0JDQVRLUUlBTndNUUlBY2dGaUFFUVJCcUlBUkIzQUZxSUJjZ0VpQVlJQm9RSHlFS0RBRUxJQWNnRVdvaEFpQVRLQUlJSVFZZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNBSkFJQkZCRVVrTkFDQUhJQU1wQUJBM0FCQWdCeUFES1FBWU53QVlJQkZCRUd0QkVVZ05BQ0FEUVJCcUlRTWdCMEVnYWlFUkEwQWdFU0FES1FBUU53QUFJQkVnQXlrQUdEY0FDQ0FSSUFNcEFDQTNBQkFnRVNBREtRQW9Od0FZSUFOQklHb2hBeUFSUVNCcUloRWdBa2tOQUFzTElBSWdCbXNoQXlBRUlDTTJBdHdCSUFJZ0Vtc2dCa2tFUUNBR0lBSWdHR3RMRFFjZ0dpQWFJQU1nRW1zaUEyb2lFU0FOYWs4RVFDQUNJQkVnRFJBS0dnd0NDeUFESUExcUlRMGdBaUFSUVFBZ0Eyc1FDaUFEYXlFQ0lCSWhBd3NnQmtFUVR3UkFJQUlnQXlrQUFEY0FBQ0FDSUFNcEFBZzNBQWdnRFVFUlNBMEJJQUlnRFdvaEJpQUNRUkJxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQUdTUTBBQ3d3QkN3SkFJQVpCQjAwRVFDQUNJQU10QUFBNkFBQWdBaUFETFFBQk9nQUJJQUlnQXkwQUFqb0FBaUFDSUFNdEFBTTZBQU1nQWlBRElBWkJBblFpQmtIQUhtb29BZ0JxSWdNb0FBQTJBQVFnQXlBR1FlQWVhaWdDQUdzaEF3d0JDeUFDSUFNcEFBQTNBQUFMSUExQkNVa05BQ0FDSUExcUlSRWdBa0VJYWlJR0lBTkJDR29pQTJ0QkQwd0VRQU5BSUFZZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQmtFSWFpSUdJQkZKRFFBTUFnc0FDeUFHSUFNcEFBQTNBQUFnQmlBREtRQUlOd0FJSUExQkdVZ05BQ0FDUVJocUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFSU1EwQUN3c2dDa0dJZjBzRVFDQUtJUWtNQmdVZ0V5QVFOZ0lJSUJNZ0REWUNCQ0FUSUFzMkFnQWdDRUVCYWlFSUlBY2dDbW9oQnlBTElCbHFJQXhxSVJrTUFnc0FDd3NnQ0NBUFNBMERJQWdnSDJzaEJnTkFBa0FnQmlBUFRnUkFRUUFoQXdOQUlBTkJBMFlOQWlBRklBTkJBblFpQW1wQnJOQUJhaUFDSUFScUtBSmtOZ0lBSUFOQkFXb2hBd3dBQ3dBTEFrQUNRQUpBSUFRb0F0d0JJZ01nQkVId0FHb2dCa0VIY1VFTWJHb2lDQ2dDQUNJTWFpSVFJQmRMRFFBZ0J5QUlLQUlFSWdzZ0RHb2lDbW9nSVVzTkFDQUtRU0JxSUJZZ0IydE5EUUVMSUFRZ0NDZ0NDRFlDS0NBRUlBZ3BBZ0EzQXlBZ0J5QVdJQVJCSUdvZ0JFSGNBV29nRnlBU0lCZ2dHaEFmSVFvTUFRc2dCeUFNYWlFQ0lBZ29BZ2doQ0NBSElBTXBBQUEzQUFBZ0J5QURLUUFJTndBSUFrQWdERUVSU1EwQUlBY2dBeWtBRURjQUVDQUhJQU1wQUJnM0FCZ2dERUVRYTBFUlNBMEFJQU5CRUdvaEF5QUhRU0JxSVF3RFFDQU1JQU1wQUJBM0FBQWdEQ0FES1FBWU53QUlJQXdnQXlrQUlEY0FFQ0FNSUFNcEFDZzNBQmdnQTBFZ2FpRURJQXhCSUdvaURDQUNTUTBBQ3dzZ0FpQUlheUVESUFRZ0VEWUMzQUVnQWlBU2F5QUlTUVJBSUFnZ0FpQVlhMHNOQnlBYUlCb2dBeUFTYXlJRGFpSU1JQXRxVHdSQUlBSWdEQ0FMRUFvYURBSUxJQU1nQzJvaEN5QUNJQXhCQUNBRGF4QUtJQU5ySVFJZ0VpRURDeUFJUVJCUEJFQWdBaUFES1FBQU53QUFJQUlnQXlrQUNEY0FDQ0FMUVJGSURRRWdBaUFMYWlFSUlBSkJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBSWdBeTBBQURvQUFDQUNJQU10QUFFNkFBRWdBaUFETFFBQ09nQUNJQUlnQXkwQUF6b0FBeUFDSUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQUlnQXlrQUFEY0FBQXNnQzBFSlNRMEFJQUlnQzJvaERDQUNRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dERWtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQzBFWlNBMEFJQUpCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXhKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdHQlNBR1FRRnFJUVlnQnlBS2FpRUhEQUlMQUFzTElBUW9BdHdCSVFNTFFicC9JUWtnRnlBRGF5SUNJQllnQjJ0TERRSWdCd1IvSUFjZ0F5QUNFQUlnQW1vRlFRQUxJQTVySVFrTUFnc2dCVUVBTmdLYzZ3RUxJQVFnQlNnQzhPb0JJZ00yQXR3QklBa2dEbW9oRENBRElBVW9Bb0RyQVdvaEVBSkFJQTlGQkVBZ0RpRUdEQUVMSUFVb0FyanBBU0VOSUFVb0FyVHBBU0VUSUFVb0FyRHBBU0VTSUFWQkFUWUNoT29CUVFBaEF3TkFJQU5CQTBjRVFDQUVJQU5CQW5RaUFtb2dBaUFGYWtHczBBRnFLQUlBTmdLY0FTQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFmQUFhaUlDSUFjZ0JoQU5RWWgvU3cwQklERWdBaUFGS0FJQUVCNGdNQ0FDSUFVb0FnZ1FIaUF2SUFJZ0JTZ0NCQkFlSUF4QklHc2hHQ0FPSVFZRFFDQUVLQUtJQVNBRUtBS0VBVUVEZEdvcEFnQWlRS2NpQ2tFUWRpSVpRZjhCY1NFTElBUW9BcGdCSUFRb0FwUUJRUU4wYWlrQ0FDSkJweUlXUVJCMkloOUIvd0Z4SVJvZ0JDZ0NrQUVnQkNnQ2pBRkJBM1JxS1FJQUlrSkNJSWluSVFjZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDRUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDZENJSWF5SVJJQUlnQWlBUlN4c2lGeUFJYWpZQ2RDQUhJQVFvQW5BZ0NIUkJBQ0FYYTNZZ0FpQVhheUlYZEdvaENDQUVRZkFBYWhBUEdpQUNJQkZORFFFZ0JDQUVLQUowSWdJZ0YybzJBblFnQkNnQ2NDQUNkRUVBSUJkcmRpQUlhaUVJREFFTElBUWdBaUFFS0FKMEloRnFOZ0owSUFRb0FuQWdFWFJCQUNBSWEzWWdCMm9oQ0NBRVFmQUFhaEFQR2dzZ0JDa0NuQUVoUkNBRUlBZzJBcHdCSUFRZ1JEY0NvQUVNQVFzQ1FDQUNSUVJBSUFNRVFDQUVLQUtjQVNFSURBTUxJQVFvQXFBQklRZ01BUXNnQkNBRUtBSjBJZ0pCQVdvMkFuUUNmeUFISUFORmFpQUVLQUp3SUFKMFFSOTJhaUlDUVFOR0JFQWdCQ2dDbkFGQkFXc01BUXNnQWtFQ2RDQUVhaWdDbkFFTElnZEZJQWRxSVFnZ0FrRUJSd1JBSUFRZ0JDZ0NvQUUyQXFRQkN3c2dCQ0FFS0FLY0FUWUNvQUVnQkNBSU5nS2NBUXVuSVFJZ1FVS0FnUHdIZzFCRkJFQWdCQ0FFS0FKMElnY2dHbW8yQW5RZ0JDZ0NjQ0FIZEVFQUlCOXJkaUFDYWlFQ0N5QUxJQnBxUVJSUEJFQWdCRUh3QUdvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NkQ0lISUF0cU5nSjBJQVFvQW5BZ0IzUkJBQ0FaYTNZZ0Eyb2hBd3NnQkVId0FHb1FEeG9nQkNBRUtBSndJZ2RCQUNBS1FSaDJJZ3NnQkNnQ2RHb2lHbXQySUF0QkFuUkJvQjFxS0FJQWNTQUtRZi8vQTNGcU5nS0VBU0FFSUJvZ0ZrRVlkaUlLYWlJTE5nSjBJQVFnQ2tFQ2RFR2dIV29vQWdBZ0IwRUFJQXRyZG5FZ0ZrSC8vd054YWpZQ2xBRWdCRUh3QUdvUUR4b2dCQ0JDcHlJSFFSaDJJZ29nQkNnQ2RHb2lDellDZENBRUlBcEJBblJCb0IxcUtBSUFJQVFvQW5CQkFDQUxhM1p4SUFkQi8vOERjV28yQW93QklBUWdBellDT0NBRUlBSTJBandnQkNBSU5nSkFBa0FDUUFKQUlBUW9BdHdCSWdzZ0Eyb2lGaUFRU3cwQUlBWWdBaUFEYWlJS2FpQVlTdzBBSUFwQklHb2dEQ0FHYTAwTkFRc2dCQ0FFUVVCcktBSUFOZ0lJSUFRZ0JDa0RPRGNEQUNBR0lBd2dCQ0FFUWR3QmFpQVFJQklnRXlBTkVCOGhDZ3dCQ3lBRElBWnFJUWNnQmlBTEtRQUFOd0FBSUFZZ0N5a0FDRGNBQ0FKQUlBTkJFVWtOQUNBR0lBc3BBQkEzQUJBZ0JpQUxLUUFZTndBWUlBTkJFR3RCRVVnTkFDQUxRUkJxSVFNZ0JrRWdhaUVMQTBBZ0N5QURLUUFRTndBQUlBc2dBeWtBR0RjQUNDQUxJQU1wQUNBM0FCQWdDeUFES1FBb053QVlJQU5CSUdvaEF5QUxRU0JxSWdzZ0Iwa05BQXNMSUFjZ0NHc2hBeUFFSUJZMkF0d0JJQWNnRW1zZ0NFa0VRQ0FJSUFjZ0UydExEUVFnRFNBTklBTWdFbXNpQTJvaUN5QUNhazhFUUNBSElBc2dBaEFLR2d3Q0N5QUhJQXRCQUNBRGF4QUtJQVFnQWlBRGFpSUNOZ0k4SUFOcklRY2dFaUVEQ3lBSVFSQlBCRUFnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0NBQ1FSRklEUUVnQWlBSGFpRUlJQWRCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQWNnQXkwQUFEb0FBQ0FISUFNdEFBRTZBQUVnQnlBRExRQUNPZ0FDSUFjZ0F5MEFBem9BQXlBSElBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFjZ0F5a0FBRGNBQUFzZ0FrRUpTUTBBSUFJZ0Iyb2hDeUFIUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnQzBrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0FrRVpTQTBBSUFkQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF0SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3REN5QUdJQXBxSVFZZ0JFSHdBR29RRHlFRElBOUJBV3NpRHcwQUMwRUFJUUlnQTBFQ1NRMEJBMEFnQWtFRFJ3UkFJQVVnQWtFQ2RDSURha0dzMEFGcUlBTWdCR29vQXB3Qk5nSUFJQUpCQVdvaEFnd0JDd3NnQkNnQzNBRWhBd3RCdW44aENTQVFJQU5ySWdJZ0RDQUdhMHNOQUNBR0JIOGdCaUFESUFJUUFpQUNhZ1ZCQUFzZ0Rtc2hDUXNnQ1VHSWYwc05CZ3NDUUNBRktBTHM2Z0ZGRFFBZ0JTQUZLUU9JNmdFZ0NhMThOd09JNmdFQ1FDQUZLQUxRNmdFaUFpQUphaUlJUVI5TkJFQWdEa1VOQVNBQ0lDSnFJQTRnQ1JBQ0dpQUZLQUxRNmdFZ0NXb2hDQXdCQ3lBT0lRTWdBZ1JBSUFJZ0ltb2dBMEVnSUFKckVBSWFJQVVvQXREcUFTRUNJQVZCQURZQzBPb0JJQVVnQlNrRGtPb0JJQVVwQUxEcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RrT29CSUFVZ0JTa0RtT29CSUFVcEFManFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEbU9vQklBVWdCU2tEb09vQklBVXBBTURxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG9Pb0JJQVVnQlNrRHFPb0JJQVVwQU1qcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RxT29CSUFNZ0FtdEJJR29oQXdzZ0NTQU9haUlDSUFOQklHcFBCRUFnQWtFZ2F5RUdJQVVwQTZqcUFTRS9JQVVwQTZEcUFTRkFJQVVwQTVqcUFTRkJJQVVwQTVEcUFTRkNBMEFnQXlrQUdFTFAxdE8rMHNlcjJVSitJRDk4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVDhnQXlrQUVFTFAxdE8rMHNlcjJVSitJRUI4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUFnQXlrQUNFTFAxdE8rMHNlcjJVSitJRUY4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUVnQXlrQUFFTFAxdE8rMHNlcjJVSitJRUo4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUlnQTBFZ2FpSURJQVpORFFBTElBVWdQemNEcU9vQklBVWdRRGNEb09vQklBVWdRVGNEbU9vQklBVWdRamNEa09vQkN5QUNJQU5ORFFFZ0lpQURJQUlnQTJzaUNCQUNHZ3NnQlNBSU5nTFE2Z0VMSURVZ0ZXc2hBeUFWSUJ0cUlRSWdDU0FPYWlFT0lBUW9BakJGRFFBTElDa3BBd0FpUDBKL1VTQS9JQTRnSFd1c1VYSkZCRUJCYkNFSkRBWUxJQVVvQXVEcEFRUkFRV29oQ1NBRFFRUkpEUVlnQlNnQzZPb0JSUVJBSUNJZ0JTZ0MwT29CYWlFS0FuNGdCU2tEaU9vQklqOUNJRm9FUUNBRktRT1k2Z0VpUUVJSGlTQUZLUU9RNmdFaVFVSUJpWHdnQlNrRG9Pb0JJa0pDRElsOElBVXBBNmpxQVNKRFFoS0pmQ0JCUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlJRUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9mb1ZDaDVXdnI1aTIzcHVlZjM1Q25hTzE2b094allyNkFIMGdRa0xQMXRPKzBzZXIyVUorUWgrSlFvZVZyNitZdHQ2Ym5uOStoVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTQkRRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOURBRUxJQVVwQTZEcUFVTEZ6OW15OGVXNjZpZDhDeUEvZkNFL0lDSWhCZ05BSUFvZ0JrRUlhaUlIVHdSQUlBWXBBQUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9maUEvaFVJYmlVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNFL0lBY2hCZ3dCQ3dzQ1FDQUtJQVpCQkdvaUNFa0VRQ0FHSVFnTUFRc2dCalVBQUVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUlYaVVMUDF0Tyswc2VyMlVKK1F2bnozZkdaOXBtckZud2hQd3NEUUNBSUlBcEpCRUFnQ0RFQUFFTEZ6OW15OGVXNjZpZCtJRCtGUWd1SlFvZVZyNitZdHQ2Ym5uOStJVDhnQ0VFQmFpRUlEQUVMQ3lBQ0tBQUFJRDlDSVlnZ1A0VkN6OWJUdnRMSHE5bENmaUkvUWgySUlEK0ZRdm56M2ZHWjlwbXJGbjRpUDBJZ2lDQS9oYWRIRFFjTElBTkJCR3NoQXlBQ1FRUnFJUUlMSUE0Z0hXc2lDVUdKZjA4TkJDQUJJQWxySVFFZ0NTQWRhaUVkUVFFaFBnd0JDd3RCdUg4aEJ5QUREUVFnSFNBQWF5RUhEQVFMUVd3aENRd0JDMEc0ZnlFSkMwRzRmeUVISUFsQmRrWWdQbkVOQVFzZ0NTRUhDeWdDQUEwQUlBVkIvT29CYWlnQ0FDRUJJQVZCK09vQmFpZ0NBQ0VBSUFVUUdDQUZLQUt3NndFZ0FDQUJFQk1nQlVFQU5nS3c2d0VnQlNnQ3BPc0JJZ0lFUUFKQUFrQUNRQUpBSUFJb0FnQWlBd1JBSUFCRkRRSWdBU0FESUFBUkFnQU1BUXNnQUVVTkFnc2dBU0FDSUFBUkFnQU1BZ3NnQXhBR0N5QUNFQVlMSUFWQkFEWUNwT3NCQ3lBQUJFQWdBU0FGSUFBUkFnQU1BUXNnQlJBR0N5QUVRZUFCYWlRQUlBY0xDNmdWQ1FCQmlBZ0xEUUVBQUFBQkFBQUFBZ0FBQUFJQVFhQUlDN01HQVFBQUFBRUFBQUFDQUFBQUFnQUFBQ1lBQUFDQ0FBQUFJUVVBQUVvQUFBQm5DQUFBSmdBQUFNQUJBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFLUUFBQUN3Q0FBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUx3QUFBTW9DQUFDQUFBQUFpZ1VBQUVvQUFBQ0VDUUFBTlFBQUFITURBQUNBQUFBQW5RVUFBRW9BQUFDZ0NRQUFQUUFBQUlFREFBQ0FBQUFBNndVQUFFc0FBQUErQ2dBQVJBQUFBSjREQUFDQUFBQUFUUVlBQUVzQUFBQ3FDZ0FBU3dBQUFMTURBQUNBQUFBQXdRWUFBRTBBQUFBZkRRQUFUUUFBQUZNRUFBQ0FBQUFBSXdnQUFGRUFBQUNtRHdBQVZBQUFBSmtFQUFDQUFBQUFTd2tBQUZjQUFBQ3hFZ0FBV0FBQUFOb0VBQUNBQUFBQWJ3a0FBRjBBQUFBakZBQUFWQUFBQUVVRkFBQ0FBQUFBVkFvQUFHb0FBQUNNRkFBQWFnQUFBSzhGQUFDQUFBQUFkZ2tBQUh3QUFBQk9FQUFBZkFBQUFOSUNBQUNBQUFBQVl3Y0FBSkVBQUFDUUJ3QUFrZ0FBQUFBQUFBQUJBQUFBQVFBQUFBVUFBQUFOQUFBQUhRQUFBRDBBQUFCOUFBQUEvUUFBQVAwQkFBRDlBd0FBL1FjQUFQMFBBQUQ5SHdBQS9UOEFBUDEvQUFEOS93QUEvZjhCQVAzL0F3RDkvd2NBL2Y4UEFQMy9Id0Q5L3o4QS9mOS9BUDMvL3dEOS8vOEIvZi8vQS8zLy93ZjkvLzhQL2YvL0gvMy8vei85Ly85L0FBQUFBQUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFSQUFBQUVnQUFBQk1BQUFBVUFBQUFGUUFBQUJZQUFBQVhBQUFBR0FBQUFCa0FBQUFhQUFBQUd3QUFBQndBQUFBZEFBQUFIZ0FBQUI4QUFBQURBQUFBQkFBQUFBVUFBQUFHQUFBQUJ3QUFBQWdBQUFBSkFBQUFDZ0FBQUFzQUFBQU1BQUFBRFFBQUFBNEFBQUFQQUFBQUVBQUFBQkVBQUFBU0FBQUFFd0FBQUJRQUFBQVZBQUFBRmdBQUFCY0FBQUFZQUFBQUdRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBSHdBQUFDQUFBQUFoQUFBQUlnQUFBQ01BQUFBbEFBQUFKd0FBQUNrQUFBQXJBQUFBTHdBQUFETUFBQUE3QUFBQVF3QUFBRk1BQUFCakFBQUFnd0FBQUFNQkFBQURBZ0FBQXdRQUFBTUlBQUFERUFBQUF5QUFBQU5BQUFBRGdBQUFBd0FCQUVIZ0R3dFJBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCQUFBQUFVQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QUFBQVFBRUhFRUF1TEFRRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVNBQUFBRkFBQUFCWUFBQUFZQUFBQUhBQUFBQ0FBQUFBb0FBQUFNQUFBQUVBQUFBQ0FBQUFBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFBQUVBUVpBU0MrWUVBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQUJBQUFBQkFBQUFBZ0FBQUFBQUFBQUFRQUJBUVlBQUFBQUFBQUVBQUFBQUJBQUFBUUFBQUFBSUFBQUJRRUFBQUFBQUFBRkF3QUFBQUFBQUFVRUFBQUFBQUFBQlFZQUFBQUFBQUFGQndBQUFBQUFBQVVKQUFBQUFBQUFCUW9BQUFBQUFBQUZEQUFBQUFBQUFBWU9BQUFBQUFBQkJSQUFBQUFBQUFFRkZBQUFBQUFBQVFVV0FBQUFBQUFDQlJ3QUFBQUFBQU1GSUFBQUFBQUFCQVV3QUFBQUlBQUdCVUFBQUFBQUFBY0ZnQUFBQUFBQUNBWUFBUUFBQUFBS0JnQUVBQUFBQUF3R0FCQUFBQ0FBQUFRQUFBQUFBQUFBQkFFQUFBQUFBQUFGQWdBQUFDQUFBQVVFQUFBQUFBQUFCUVVBQUFBZ0FBQUZCd0FBQUFBQUFBVUlBQUFBSUFBQUJRb0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFJQUFCQlJBQUFBQUFBQUVGRWdBQUFDQUFBUVVXQUFBQUFBQUNCUmdBQUFBZ0FBTUZJQUFBQUFBQUF3VW9BQUFBQUFBR0JFQUFBQUFRQUFZRVFBQUFBQ0FBQndXQUFBQUFBQUFKQmdBQ0FBQUFBQXNHQUFnQUFEQUFBQVFBQUFBQUVBQUFCQUVBQUFBZ0FBQUZBZ0FBQUNBQUFBVURBQUFBSUFBQUJRVUFBQUFnQUFBRkJnQUFBQ0FBQUFVSUFBQUFJQUFBQlFrQUFBQWdBQUFGQ3dBQUFDQUFBQVVNQUFBQUFBQUFCZzhBQUFBZ0FBRUZFZ0FBQUNBQUFRVVVBQUFBSUFBQ0JSZ0FBQUFnQUFJRkhBQUFBQ0FBQXdVb0FBQUFJQUFFQlRBQUFBQUFBQkFHQUFBQkFBQUFEd1lBZ0FBQUFBQU9CZ0JBQUFBQUFBMEdBQ0FBUVlBWEM0Y0NBUUFCQVFVQUFBQUFBQUFGQUFBQUFBQUFCZ1E5QUFBQUFBQUpCZjBCQUFBQUFBOEYvWDhBQUFBQUZRWDkveDhBQUFBREJRVUFBQUFBQUFjRWZRQUFBQUFBREFYOUR3QUFBQUFTQmYzL0F3QUFBQmNGL2Y5L0FBQUFCUVVkQUFBQUFBQUlCUDBBQUFBQUFBNEYvVDhBQUFBQUZBWDkvdzhBQUFBQ0JRRUFBQUFRQUFjRWZRQUFBQUFBQ3dYOUJ3QUFBQUFSQmYzL0FRQUFBQllGL2Y4L0FBQUFCQVVOQUFBQUVBQUlCUDBBQUFBQUFBMEYvUjhBQUFBQUV3WDkvd2NBQUFBQkJRRUFBQUFRQUFZRVBRQUFBQUFBQ2dYOUF3QUFBQUFRQmYzL0FBQUFBQndGL2YvL0R3QUFHd1g5Ly84SEFBQWFCZjMvL3dNQUFCa0YvZi8vQVFBQUdBWDkvLzhBUVpBWkM0WUVBUUFCQVFZQUFBQUFBQUFHQXdBQUFBQUFBQVFFQUFBQUlBQUFCUVVBQUFBQUFBQUZCZ0FBQUFBQUFBVUlBQUFBQUFBQUJRa0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFBQUFBQmhBQUFBQUFBQUFHRXdBQUFBQUFBQVlXQUFBQUFBQUFCaGtBQUFBQUFBQUdIQUFBQUFBQUFBWWZBQUFBQUFBQUJpSUFBQUFBQUFFR0pRQUFBQUFBQVFZcEFBQUFBQUFDQmk4QUFBQUFBQU1HT3dBQUFBQUFCQVpUQUFBQUFBQUhCb01BQUFBQUFBa0dBd0lBQUJBQUFBUUVBQUFBQUFBQUJBVUFBQUFnQUFBRkJnQUFBQUFBQUFVSEFBQUFJQUFBQlFrQUFBQUFBQUFGQ2dBQUFBQUFBQVlNQUFBQUFBQUFCZzhBQUFBQUFBQUdFZ0FBQUFBQUFBWVZBQUFBQUFBQUJoZ0FBQUFBQUFBR0d3QUFBQUFBQUFZZUFBQUFBQUFBQmlFQUFBQUFBQUVHSXdBQUFBQUFBUVluQUFBQUFBQUNCaXNBQUFBQUFBTUdNd0FBQUFBQUJBWkRBQUFBQUFBRkJtTUFBQUFBQUFnR0F3RUFBQ0FBQUFRRUFBQUFNQUFBQkFRQUFBQVFBQUFFQlFBQUFDQUFBQVVIQUFBQUlBQUFCUWdBQUFBZ0FBQUZDZ0FBQUNBQUFBVUxBQUFBQUFBQUJnNEFBQUFBQUFBR0VRQUFBQUFBQUFZVUFBQUFBQUFBQmhjQUFBQUFBQUFHR2dBQUFBQUFBQVlkQUFBQUFBQUFCaUFBQUFBQUFCQUdBd0FCQUFBQUR3WURnQUFBQUFBT0JnTkFBQUFBQUEwR0F5QUFBQUFBREFZREVBQUFBQUFMQmdNSUFBQUFBQW9HQXdRQVFhUWRDOWtCQVFBQUFBTUFBQUFIQUFBQUR3QUFBQjhBQUFBL0FBQUFmd0FBQVA4QUFBRC9BUUFBL3dNQUFQOEhBQUQvRHdBQS94OEFBUDgvQUFEL2Z3QUEvLzhBQVAvL0FRRC8vd01BLy84SEFQLy9Ed0QvL3g4QS8vOC9BUC8vZndELy8vOEEvLy8vQWYvLy93UC8vLzhILy8vL0QvLy8veC8vLy84Ly8vLy9md0FBQUFBQkFBQUFBZ0FBQUFRQUFBQUFBQUFBQWdBQUFBUUFBQUFJQUFBQUFBQUFBQUVBQUFBQ0FBQUFBUUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQWdBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dCQmdCOExBNEFSQVE9PSI7dmFyIFp0PW5ldyBWQSxWdD0hMTthc3luYyBmdW5jdGlvbiBYaShBLGUsdCl7bGV0IHI9InVua25vd24iO3R5cGVvZiBBIT0ic3RyaW5nIj9yPUEuaHJlZjpBLnN0YXJ0c1dpdGgoImh0dHAiKT9yPUE6cj10eXBlb2YgZTwidSI/YCR7ZX0vJHtBfWA6QSxyLmVuZHNXaXRoKCIuanMiKSYmKHI9ci5zdWJzdHJpbmcoMCxyLmxlbmd0aC0zKSksci5lbmRzV2l0aCgiLndhc20iKSYmKHI9ci5zdWJzdHJpbmcoMCxyLmxlbmd0aC01KSksci5lbmRzV2l0aCgiLndhc20uenN0IikmJihyPXIuc3Vic3RyaW5nKDAsci5sZW5ndGgtOSkpO2xldCBpPWAke3J9Lndhc21gLEk9YXdhaXQgZ0EuZ2V0KGAke2l9LnpzdGAse3Jlc3BvbnNlVHlwZToiYXJyYXlidWZmZXIiLHBhcmFtczp0fSk7VnR8fChhd2FpdCBadC5pbml0KCksVnQ9ITApO2xldCBhPVp0LmRlY29kZShuZXcgVWludDhBcnJheShJLmRhdGEpKS5idWZmZXI7cmV0dXJuKGF3YWl0IGltcG9ydChgJHtyfS5qc2ApKS5kZWZhdWx0KHt3YXNtQmluYXJ5OmF9KX12YXIgWHQ9WGk7dmFyIHp0PWFzeW5jKCk9PldlYkFzc2VtYmx5LnZhbGlkYXRlKG5ldyBVaW50OEFycmF5KFswLDk3LDExNSwxMDksMSwwLDAsMCwxLDUsMSw5NiwwLDEsMTIzLDMsMiwxLDAsMTAsMTAsMSw4LDAsNjUsMCwyNTMsMTUsMjUzLDk4LDExXSkpO3ZhciBBcj10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcj09ImZ1bmN0aW9uIixfdD1uZXcgVGV4dEVuY29kZXIsJHQ9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpO2Z1bmN0aW9uIHppKEEsZSl7bGV0IHQ9e2ZsYWdzOiJyIixlbmNvZGluZzoiYmluYXJ5In0scj1BLmZzX29wZW4oZSx0LmZsYWdzKSxJPUEuZnNfc3RhdChlKS5zaXplLG89bnVsbDtBcj9vPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihJKTpvPW5ldyBBcnJheUJ1ZmZlcihJKTtsZXQgYT1uZXcgVWludDhBcnJheShvKTtyZXR1cm4gQS5mc19yZWFkKHIsYSwwLEksMCksQS5mc19jbG9zZShyKSxhfWZ1bmN0aW9uIGVyKEEsZSx0KXtsZXQgcj1udWxsO0FyP3I9bmV3IFNoYXJlZEFycmF5QnVmZmVyKHQpOnI9bmV3IEFycmF5QnVmZmVyKHQpO2xldCBpPW5ldyBVaW50OEFycmF5KHIpLEk9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLGUsdCk7cmV0dXJuIGkuc2V0KEkpLGl9ZnVuY3Rpb24gUihBLGUsdCxyKXtsZXQgaT0wO3JldHVybiBlIT09bnVsbCYmKGk9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfYXJyYXlfYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxyLGUuYnVmZmVyLmJ5dGVMZW5ndGhdKSxBLkhFQVBVOC5zZXQobmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpLGkpKSxpfWZ1bmN0aW9uIHYoQSxlLHQpe2xldCByPUpTT04uc3RyaW5naWZ5KGUpLGk9QS5sZW5ndGhCeXRlc1VURjgocikrMSxJPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2pzb25fYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxpXSk7QS5zdHJpbmdUb1VURjgocixJLGkpfWZ1bmN0aW9uIEcoQSxlLHQscil7bGV0IGk9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSx0XSksST1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLHRdKSxvPWVyKEEsaSxJKTtyZXR1cm4gTyhyLG8uYnVmZmVyKX1mdW5jdGlvbiB3QShBLGUpe2xldCB0PUEuY2NhbGwoIml0a193YXNtX291dHB1dF9qc29uX2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIl0sWzAsZV0pLHI9QS5VVEY4VG9TdHJpbmcodCk7cmV0dXJuIEpTT04ucGFyc2Uocil9ZnVuY3Rpb24gX2koQSxlLHQscil7ciE9bnVsbCYmci5sZW5ndGg+MCYmci5mb3JFYWNoKGZ1bmN0aW9uKHMsbil7c3dpdGNoKHMudHlwZSl7Y2FzZSBmLlRleHRTdHJlYW06e2xldCBnPV90LmVuY29kZShzLmRhdGEuZGF0YSksdT1SKEEsZyxuLDApLEM9e3NpemU6Zy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dX1gfTt2KEEsQyxuKTticmVha31jYXNlIGYuSnNvbkNvbXBhdGlibGU6e2xldCBnPV90LmVuY29kZShKU09OLnN0cmluZ2lmeShzLmRhdGEpKSx1PVIoQSxnLG4sMCksQz17c2l6ZTpnLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt1fWB9O3YoQSxDLG4pO2JyZWFrfWNhc2UgZi5CaW5hcnlTdHJlYW06e2xldCBnPXMuZGF0YS5kYXRhLHU9UihBLGcsbiwwKSxDPXtzaXplOmcuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3V9YH07dihBLEMsbik7YnJlYWt9Y2FzZSBmLlRleHRGaWxlOntBLmZzX3dyaXRlRmlsZShzLmRhdGEucGF0aCxzLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBmLkJpbmFyeUZpbGU6e0EuZnNfd3JpdGVGaWxlKHMuZGF0YS5wYXRoLHMuZGF0YS5kYXRhKTticmVha31jYXNlIGYuSW1hZ2U6e2xldCBnPXMuZGF0YSx1PVIoQSxnLmRhdGEsbiwwKSxDPVIoQSxnLmRpcmVjdGlvbixuLDEpLFE9dHlwZW9mIGcubWV0YWRhdGE/LmVudHJpZXM8InUiP0FycmF5LmZyb20oZy5tZXRhZGF0YS5lbnRyaWVzKCkpOltdLGw9e2ltYWdlVHlwZTpnLmltYWdlVHlwZSxuYW1lOmcubmFtZSxvcmlnaW46Zy5vcmlnaW4sc3BhY2luZzpnLnNwYWNpbmcsZGlyZWN0aW9uOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Q31gLHNpemU6Zy5zaXplLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt1fWAsbWV0YWRhdGE6UX07dihBLGwsbik7YnJlYWt9Y2FzZSBmLk1lc2g6e2xldCBnPXMuZGF0YSx1PVIoQSxnLnBvaW50cyxuLDApLEM9UihBLGcuY2VsbHMsbiwxKSxRPVIoQSxnLnBvaW50RGF0YSxuLDIpLGw9UihBLGcuY2VsbERhdGEsbiwzKSxjPXttZXNoVHlwZTpnLm1lc2hUeXBlLG5hbWU6Zy5uYW1lLG51bWJlck9mUG9pbnRzOmcubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dX1gLG51bWJlck9mQ2VsbHM6Zy5udW1iZXJPZkNlbGxzLGNlbGxzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Q31gLGNlbGxCdWZmZXJTaXplOmcuY2VsbEJ1ZmZlclNpemUsbnVtYmVyT2ZQb2ludFBpeGVsczpnLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLG51bWJlck9mQ2VsbFBpeGVsczpnLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07dihBLGMsbik7YnJlYWt9Y2FzZSBmLlBvaW50U2V0OntsZXQgZz1zLmRhdGEsdT1SKEEsZy5wb2ludHMsbiwwKSxDPVIoQSxnLnBvaW50RGF0YSxuLDEpLFE9e3BvaW50U2V0VHlwZTpnLnBvaW50U2V0VHlwZSxuYW1lOmcubmFtZSxudW1iZXJPZlBvaW50czpnLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3V9YCxudW1iZXJPZlBvaW50UGl4ZWxzOmcubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtDfWB9O3YoQSxRLG4pO2JyZWFrfWNhc2UgZi5UcmFuc2Zvcm1MaXN0OntsZXQgZz1zLmRhdGEsdT1bXSxDPTA7Zy5mb3JFYWNoKFE9PntsZXQgbD0iIixjPSIiO1EudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihsPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UihBLFEuZml4ZWRQYXJhbWV0ZXJzLG4sQyl9YCxDKz0xLGM9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtSKEEsUS5wYXJhbWV0ZXJzLG4sQyl9YCxDKz0xKTtsZXQgcD17dHJhbnNmb3JtVHlwZTpRLnRyYW5zZm9ybVR5cGUsbnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM6US5udW1iZXJPZkZpeGVkUGFyYW1ldGVycyxudW1iZXJPZlBhcmFtZXRlcnM6US5udW1iZXJPZlBhcmFtZXRlcnMsbmFtZTpRLm5hbWUsaW5wdXRTcGFjZU5hbWU6US5pbnB1dFNwYWNlTmFtZSxvdXRwdXRTcGFjZU5hbWU6US5vdXRwdXRTcGFjZU5hbWUscGFyYW1ldGVyczpjLGZpeGVkUGFyYW1ldGVyczpsfTt1LnB1c2gocCl9KSx2KEEsdSxuKTticmVha31jYXNlIGYuUG9seURhdGE6e2xldCBnPXMuZGF0YSx1PVIoQSxnLnBvaW50cyxuLDApLEM9UihBLGcudmVydGljZXMsbiwxKSxRPVIoQSxnLmxpbmVzLG4sMiksbD1SKEEsZy5wb2x5Z29ucyxuLDMpLGM9UihBLGcudHJpYW5nbGVTdHJpcHMsbiw0KSxwPVIoQSxnLnBvaW50RGF0YSxuLDUpLG09UihBLGcucG9pbnREYXRhLG4sNiksaD17cG9seURhdGFUeXBlOmcucG9seURhdGFUeXBlLG5hbWU6Zy5uYW1lLG51bWJlck9mUG9pbnRzOmcubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dX1gLHZlcnRpY2VzQnVmZmVyU2l6ZTpnLnZlcnRpY2VzQnVmZmVyU2l6ZSx2ZXJ0aWNlczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0N9YCxsaW5lc0J1ZmZlclNpemU6Zy5saW5lc0J1ZmZlclNpemUsbGluZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAscG9seWdvbnNCdWZmZXJTaXplOmcucG9seWdvbnNCdWZmZXJTaXplLHBvbHlnb25zOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLHRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZTpnLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZSx0cmlhbmdsZVN0cmlwczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YCxudW1iZXJPZlBvaW50UGl4ZWxzOmcubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtwfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOmcubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bX1gfTt2KEEsaCxuKTticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBpbnB1dCBJbnRlcmZhY2VUeXBlIil9fSksQS5yZXNldE1vZHVsZVN0ZG91dCgpLEEucmVzZXRNb2R1bGVTdGRlcnIoKTtsZXQgaT1BLnN0YWNrU2F2ZSgpLEk9MDt0cnl7ST1BLmNhbGxNYWluKGUuc2xpY2UoKSl9Y2F0Y2gocyl7dGhyb3cgdHlwZW9mIHM9PSJudW1iZXIiJiYoY29uc29sZS5sb2coIkV4Y2VwdGlvbiB3aGlsZSBydW5uaW5nIHBpcGVsaW5lOiIpLGNvbnNvbGUubG9nKCJzdGRvdXQ6IixBLmdldE1vZHVsZVN0ZG91dCgpKSxjb25zb2xlLmVycm9yKCJzdGRlcnI6IixBLmdldE1vZHVsZVN0ZGVycigpKSx0eXBlb2YgQS5nZXRFeGNlcHRpb25NZXNzYWdlPCJ1Ij9jb25zb2xlLmVycm9yKCJleGNlcHRpb246IixBLmdldEV4Y2VwdGlvbk1lc3NhZ2UocykpOmNvbnNvbGUuZXJyb3IoIkJ1aWxkIG1vZHVsZSBpbiBEZWJ1ZyBtb2RlIGZvciBleGNlcHRpb24gbWVzc2FnZSBpbmZvcm1hdGlvbi4iKSksc31maW5hbGx5e0Euc3RhY2tSZXN0b3JlKGkpfWxldCBvPUEuZ2V0TW9kdWxlU3Rkb3V0KCksYT1BLmdldE1vZHVsZVN0ZGVycigpLEU9W107cmV0dXJuIHQhPW51bGwmJnQubGVuZ3RoPjAmJkk9PT0wJiZ0LmZvckVhY2goZnVuY3Rpb24ocyxuKXtsZXQgZz1udWxsO3N3aXRjaChzLnR5cGUpe2Nhc2UgZi5UZXh0U3RyZWFtOntsZXQgQz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxuLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG4sMF0pLGw9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLEMsUSk7Zz17ZGF0YTokdC5kZWNvZGUobCl9O2JyZWFrfWNhc2UgZi5Kc29uQ29tcGF0aWJsZTp7bGV0IEM9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbiwwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxuLDBdKSxsPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixDLFEpO2c9SlNPTi5wYXJzZSgkdC5kZWNvZGUobCkpO2JyZWFrfWNhc2UgZi5CaW5hcnlTdHJlYW06e2xldCBDPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG4sMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbiwwXSk7Zz17ZGF0YTplcihBLEMsUSl9O2JyZWFrfWNhc2UgZi5UZXh0RmlsZTp7Zz17cGF0aDpzLmRhdGEucGF0aCxkYXRhOkEuZnNfcmVhZEZpbGUocy5kYXRhLnBhdGgse2VuY29kaW5nOiJ1dGY4In0pfTticmVha31jYXNlIGYuQmluYXJ5RmlsZTp7Zz17cGF0aDpzLmRhdGEucGF0aCxkYXRhOnppKEEscy5kYXRhLnBhdGgpfTticmVha31jYXNlIGYuSW1hZ2U6e2xldCBDPXdBKEEsbik7Qy5kYXRhPUcoQSxuLDAsQy5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSksQy5kaXJlY3Rpb249RyhBLG4sMSxYLkZsb2F0NjQpLEMubWV0YWRhdGE9bmV3IE1hcChDLm1ldGFkYXRhKSxnPUM7YnJlYWt9Y2FzZSBmLk1lc2g6e2xldCBDPXdBKEEsbik7Qy5udW1iZXJPZlBvaW50cz4wP0MucG9pbnRzPUcoQSxuLDAsQy5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUpOkMucG9pbnRzPU8oQy5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDLm51bWJlck9mQ2VsbHM+MD9DLmNlbGxzPUcoQSxuLDEsQy5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSk6Qy5jZWxscz1PKEMubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDLm51bWJlck9mUG9pbnRQaXhlbHM+MD9DLnBvaW50RGF0YT1HKEEsbiwyLEMubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkMucG9pbnREYXRhPU8oQy5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEMubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/Qy5jZWxsRGF0YT1HKEEsbiwzLEMubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6Qy5jZWxsRGF0YT1PKEMubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGc9QzticmVha31jYXNlIGYuUG9pbnRTZXQ6e2xldCBDPXdBKEEsbik7Qy5udW1iZXJPZlBvaW50cz4wP0MucG9pbnRzPUcoQSxuLDAsQy5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTpDLnBvaW50cz1PKEMucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEMubnVtYmVyT2ZQb2ludFBpeGVscz4wP0MucG9pbnREYXRhPUcoQSxuLDEsQy5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkMucG9pbnREYXRhPU8oQy5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxnPUM7YnJlYWt9Y2FzZSBmLlRyYW5zZm9ybUxpc3Q6e2xldCBDPXdBKEEsbiksUT0wO0MuZm9yRWFjaCgobCxjKT0+e2wudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihsLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzPjAmJihDW2NdLmZpeGVkUGFyYW1ldGVycz1HKEEsbixRLFguRmxvYXQ2NCkpLFErPTEsbC5udW1iZXJPZlBhcmFtZXRlcnM+MCYmKENbY10ucGFyYW1ldGVycz1HKEEsbixRLGwudHJhbnNmb3JtVHlwZS5wYXJhbWV0ZXJzVmFsdWVUeXBlKSksUSs9MSl9KSxnPUM7YnJlYWt9Y2FzZSBmLlBvbHlEYXRhOntsZXQgQz13QShBLG4pO0MubnVtYmVyT2ZQb2ludHM+MD9DLnBvaW50cz1HKEEsbiwwLFguRmxvYXQzMik6Qy5wb2ludHM9bmV3IEZsb2F0MzJBcnJheSxDLnZlcnRpY2VzQnVmZmVyU2l6ZT4wP0MudmVydGljZXM9RyhBLG4sMSxiLlVJbnQzMik6Qy52ZXJ0aWNlcz1uZXcgVWludDMyQXJyYXksQy5saW5lc0J1ZmZlclNpemU+MD9DLmxpbmVzPUcoQSxuLDIsYi5VSW50MzIpOkMubGluZXM9bmV3IFVpbnQzMkFycmF5LEMucG9seWdvbnNCdWZmZXJTaXplPjA/Qy5wb2x5Z29ucz1HKEEsbiwzLGIuVUludDMyKTpDLnBvbHlnb25zPW5ldyBVaW50MzJBcnJheSxDLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZT4wP0MudHJpYW5nbGVTdHJpcHM9RyhBLG4sNCxiLlVJbnQzMik6Qy50cmlhbmdsZVN0cmlwcz1uZXcgVWludDMyQXJyYXksQy5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qy5wb2ludERhdGE9RyhBLG4sNSxDLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qy5wb2ludERhdGE9TyhDLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEMubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/Qy5jZWxsRGF0YT1HKEEsbiw2LEMucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOkMuY2VsbERhdGE9TyhDLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksZz1DO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIG91dHB1dCBJbnRlcmZhY2VUeXBlIil9bGV0IHU9e3R5cGU6cy50eXBlLGRhdGE6Z307RS5wdXNoKHUpfSkse3JldHVyblZhbHVlOkksc3Rkb3V0Om8sc3RkZXJyOmEsb3V0cHV0czpFfX12YXIgdHI9X2k7dmFyICRpPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPCJ1IjtmdW5jdGlvbiBBSShBLGUpe2lmKEE9PW51bGwpcmV0dXJuW107bGV0IHQ9W107Zm9yKGxldCByPTA7cjxBLmxlbmd0aDtyKyspe2xldCBpPWVJKEFbcl0sZSk7aSE9PW51bGwmJnQucHVzaChpKX1yZXR1cm4gdH1mdW5jdGlvbiBlSShBLGUpe2lmKEE9PW51bGwpcmV0dXJuIG51bGw7bGV0IHQ9bnVsbDtyZXR1cm4gQS5idWZmZXIhPT12b2lkIDA/dD1BLmJ1ZmZlcjpBLmJ5dGVMZW5ndGghPT12b2lkIDAmJih0PUEpLCRpJiZ0IGluc3RhbmNlb2YgU2hhcmVkQXJyYXlCdWZmZXI/bnVsbDplP3Q6dC5zbGljZSgwKX12YXIgcnI9QUk7ZnVuY3Rpb24gdEkoQSl7cmV0dXJuW0EuZGF0YSxBLmRpcmVjdGlvbl19dmFyIGlyPXRJO2Z1bmN0aW9uIHJJKEEpe3JldHVybltBLnBvaW50cyxBLnBvaW50RGF0YSxBLmNlbGxzLEEuY2VsbERhdGFdfXZhciBJcj1ySTtmdW5jdGlvbiBpSShBKXtyZXR1cm5bQS5wb2ludHMsQS52ZXJ0aWNlcyxBLmxpbmVzLEEucG9seWdvbnMsQS50cmlhbmdsZVN0cmlwcyxBLnBvaW50RGF0YSxBLmNlbGxEYXRhXX12YXIgb3I9aUk7dmFyIElJO2Z1bmN0aW9uIFhBKCl7cmV0dXJuIElJfXZhciBvSTtmdW5jdGlvbiBucigpe3JldHVybiBvSX12YXIgbkk7ZnVuY3Rpb24gekEoKXtyZXR1cm4gbkl9dmFyIFllPW5ldyBNYXA7ZnVuY3Rpb24gZ0koKXtsZXQgQT16QSgpO3JldHVybiB0eXBlb2YgQT4idSImJihBPW51bGwpLEF9ZnVuY3Rpb24gZ3IoKXtsZXQgQT1YQSgpO3JldHVybiB0eXBlb2YgQT4idSImJihBPW5ldyBVUkwoIi9waXBlbGluZXMiLGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbikuaHJlZiksQX1mdW5jdGlvbiBfQSgpe2xldCBBPW5yKCk7cmV0dXJuIHR5cGVvZiBBPiJ1IiYmKEE9e30pLEF9YXN5bmMgZnVuY3Rpb24gYUkoQSxlLHQpe2xldCByPUEsaT1BO2lmKHR5cGVvZiBBIT0ic3RyaW5nIiYmKHI9bmV3IFVSTChBLmhyZWYpLGk9ci5ocmVmKSxZZS5oYXMoaSkpcmV0dXJuIFllLmdldChpKTt7bGV0IEk9YXdhaXQgWHQoQSxlPy50b1N0cmluZygpPz9ncigpLHQ/P19BKCkpO3JldHVybiBZZS5zZXQoaSxJKSxJfX1hc3luYyBmdW5jdGlvbiBzSShBLGUsdCxyLGkpe2lmKCFhd2FpdCB6dCgpKXtsZXQgYz0iV2ViQXNzZW1ibHkgU0lNRCBzdXBwb3J0IGlzIHJlcXVpcmVkIC0tIHBsZWFzZSB1cGRhdGUgeW91ciBicm93c2VyLiI7dGhyb3cgYWxlcnQoYyksbmV3IEVycm9yKGMpfWxldCBJPWk/LndlYldvcmtlcj8/bnVsbDtpZihJPT09ITEpe2xldCBjPWF3YWl0IGFJKEEudG9TdHJpbmcoKSxpPy5waXBlbGluZUJhc2VVcmwsaT8ucGlwZWxpbmVRdWVyeVBhcmFtcz8/X0EoKSk7cmV0dXJuIHRyKGMsZSx0LHIpfWxldCBvPUksYT1pPy5waXBlbGluZVdvcmtlclVybD8/Z0koKSxFPXR5cGVvZiBhIT0ic3RyaW5nIiYmdHlwZW9mIGE/LmhyZWY8InUiP2EuaHJlZjphLHt3b3JrZXJQcm94eTpzLHdvcmtlcjpufT1hd2FpdCBqdChvLEUsaT8ucGlwZWxpbmVRdWVyeVBhcmFtcz8/X0EoKSk7bz1uO2xldCBnPVtdO3IhPW51bGwmJnIubGVuZ3RoPjAmJnIuZm9yRWFjaChmdW5jdGlvbihjKXtpZihjLnR5cGU9PT1mLkJpbmFyeVN0cmVhbSl7bGV0IHA9Yy5kYXRhLmRhdGE7Zy5wdXNoKHApfWVsc2UgaWYoYy50eXBlPT09Zi5CaW5hcnlGaWxlKXtsZXQgcD1jLmRhdGEuZGF0YTtnLnB1c2gocCl9ZWxzZSBpZihjLnR5cGU9PT1mLkltYWdlKXtsZXQgcD1jLmRhdGE7cC5kYXRhIT09bnVsbCYmZy5wdXNoKC4uLmlyKHApKX1lbHNlIGlmKGMudHlwZT09PWYuTWVzaCl7bGV0IHA9Yy5kYXRhO2cucHVzaCguLi5JcihwKSl9ZWxzZSBpZihjLnR5cGU9PT1mLlBvbHlEYXRhKXtsZXQgcD1jLmRhdGE7Zy5wdXNoKC4uLm9yKHApKX19KTtsZXQgdT1pPy5waXBlbGluZUJhc2VVcmw/P2dyKCksQz10eXBlb2YgdSE9InN0cmluZyImJnR5cGVvZiB1Py5ocmVmPCJ1Ij91LmhyZWY6dSxRPXIhPW51bGw/QmUocixycihnLGk/Lm5vQ29weSkpOm51bGwsbD1hd2FpdCBzLnJ1blBpcGVsaW5lKEEudG9TdHJpbmcoKSxDLGUsdCxRLGk/LnBpcGVsaW5lUXVlcnlQYXJhbXM/P19BKCkpO3JldHVybntyZXR1cm5WYWx1ZTpsLnJldHVyblZhbHVlLHN0ZG91dDpsLnN0ZG91dCxzdGRlcnI6bC5zdGRlcnIsb3V0cHV0czpsLm91dHB1dHMsd2ViV29ya2VyOm99fXZhciBEPXNJO3ZhciBCST1udWxsO2Z1bmN0aW9uIGFyKCl7cmV0dXJuIEJJfXZhciBUZSxDST1gaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9AaXRrLXdhc20vZGljb21AJHtlZX0vZGlzdC9waXBlbGluZXNgO2Z1bmN0aW9uIFNzKEEpe1RlPUF9ZnVuY3Rpb24gdygpe2lmKHR5cGVvZiBUZTwidSIpcmV0dXJuIFRlO2xldCBBPVhBKCk7cmV0dXJuIHR5cGVvZiBBPCJ1Ij9BOkNJfXZhciBPZSxRST1udWxsO2Z1bmN0aW9uIHNyKEEpe09lPUF9ZnVuY3Rpb24geSgpe2lmKHR5cGVvZiBPZTwidSIpcmV0dXJuIE9lO2xldCBBPXpBKCk7cmV0dXJuIHR5cGVvZiBBPCJ1Ij9BOlFJfXZhciBhQT1udWxsO2FzeW5jIGZ1bmN0aW9uIEJyKCl7bGV0IEE9eSgpLGU9dHlwZW9mIEEhPSJzdHJpbmciJiZ0eXBlb2YgQT8uaHJlZjwidSI/QS5ocmVmOkE7YUE9YXdhaXQgeUEoZSl9ZnVuY3Rpb24gYnMoQSl7YUE9QX1hc3luYyBmdW5jdGlvbiBrKCl7aWYoYUEhPT1udWxsKXJldHVybiBhQS50ZXJtaW5hdGVkJiZhd2FpdCBCcigpLGFBO2xldCBBPWFyKCk7cmV0dXJuIEEhPT1udWxsP0E6KGF3YWl0IEJyKCksYUEpfWFzeW5jIGZ1bmN0aW9uIEVJKEEsZSx0PXt9KXtsZXQgcj1be3R5cGU6Zi5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Zi5JbWFnZX1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IGg9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkoaCl9fWxldCBJPWU7aWYoZSBpbnN0YW5jZW9mIEZpbGUpe2xldCBoPWF3YWl0IGUuYXJyYXlCdWZmZXIoKTtJPXtwYXRoOmUubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KGgpfX1sZXQgbz1be3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6aX0se3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6SX1dLGE9W10sRT1pLnBhdGg7YS5wdXNoKEUpO2xldCBzPUkucGF0aDthLnB1c2gocyksYS5wdXNoKCIwIiksYS5wdXNoKCIxIiksYS5wdXNoKCItLW1lbW9yeS1pbyIpLHQuY29sb3JPdXRwdXQmJnQuY29sb3JPdXRwdXQmJmEucHVzaCgiLS1jb2xvci1vdXRwdXQiKSx0LmNvbmZpZ0ZpbGUmJmEucHVzaCgiLS1jb25maWctZmlsZSIsdC5jb25maWdGaWxlLnRvU3RyaW5nKCkpLHQuZnJhbWUmJmEucHVzaCgiLS1mcmFtZSIsdC5mcmFtZS50b1N0cmluZygpKSx0Lm5vUHJlc2VudGF0aW9uU3RhdGVPdXRwdXQmJnQubm9QcmVzZW50YXRpb25TdGF0ZU91dHB1dCYmYS5wdXNoKCItLW5vLXByZXNlbnRhdGlvbi1zdGF0ZS1vdXRwdXQiKSx0Lm5vQml0bWFwT3V0cHV0JiZ0Lm5vQml0bWFwT3V0cHV0JiZhLnB1c2goIi0tbm8tYml0bWFwLW91dHB1dCIpO2xldCB1PSJhcHBseS1wcmVzZW50YXRpb24tc3RhdGUtdG8taW1hZ2UiLEM9dD8ud2ViV29ya2VyO0M9PT12b2lkIDAmJihDPWF3YWl0IGsoKSk7bGV0e3dlYldvcmtlcjpRLHJldHVyblZhbHVlOmwsc3RkZXJyOmMsb3V0cHV0czpwfT1hd2FpdCBEKHUsYSxyLG8se3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjpDLG5vQ29weTp0Py5ub0NvcHl9KTtpZihsIT09MCYmYyE9PSIiKXRocm93IG5ldyBFcnJvcihjKTtyZXR1cm57d2ViV29ya2VyOlEscHJlc2VudGF0aW9uU3RhdGVPdXRTdHJlYW06cFswXT8uZGF0YSxvdXRwdXRJbWFnZTpwWzFdPy5kYXRhfX12YXIgbEk9RUk7YXN5bmMgZnVuY3Rpb24gY0koQSxlPXt9KXtsZXQgdD1be3R5cGU6Zi5CaW5hcnlTdHJlYW19XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBsPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KGwpfX1sZXQgaT1be3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6cn1dLEk9W10sbz1yLnBhdGg7SS5wdXNoKG8pLEkucHVzaCgiMCIpLEkucHVzaCgiLS1tZW1vcnktaW8iKSxlLnJlYWRGaWxlT25seSYmZS5yZWFkRmlsZU9ubHkmJkkucHVzaCgiLS1yZWFkLWZpbGUtb25seSIpLGUucmVhZERhdGFzZXQmJmUucmVhZERhdGFzZXQmJkkucHVzaCgiLS1yZWFkLWRhdGFzZXQiKSxlLnJlYWRYZmVyQXV0byYmZS5yZWFkWGZlckF1dG8mJkkucHVzaCgiLS1yZWFkLXhmZXItYXV0byIpLGUucmVhZFhmZXJEZXRlY3QmJmUucmVhZFhmZXJEZXRlY3QmJkkucHVzaCgiLS1yZWFkLXhmZXItZGV0ZWN0IiksZS5yZWFkWGZlckxpdHRsZSYmZS5yZWFkWGZlckxpdHRsZSYmSS5wdXNoKCItLXJlYWQteGZlci1saXR0bGUiKSxlLnJlYWRYZmVyQmlnJiZlLnJlYWRYZmVyQmlnJiZJLnB1c2goIi0tcmVhZC14ZmVyLWJpZyIpLGUucmVhZFhmZXJJbXBsaWNpdCYmZS5yZWFkWGZlckltcGxpY2l0JiZJLnB1c2goIi0tcmVhZC14ZmVyLWltcGxpY2l0IiksZS5hY2NlcHRPZGRMZW5ndGgmJmUuYWNjZXB0T2RkTGVuZ3RoJiZJLnB1c2goIi0tYWNjZXB0LW9kZC1sZW5ndGgiKSxlLmFzc3VtZUV2ZW5MZW5ndGgmJmUuYXNzdW1lRXZlbkxlbmd0aCYmSS5wdXNoKCItLWFzc3VtZS1ldmVuLWxlbmd0aCIpLGUuZW5hYmxlQ3AyNDYmJmUuZW5hYmxlQ3AyNDYmJkkucHVzaCgiLS1lbmFibGUtY3AyNDYiKSxlLmRpc2FibGVDcDI0NiYmZS5kaXNhYmxlQ3AyNDYmJkkucHVzaCgiLS1kaXNhYmxlLWNwMjQ2IiksZS5yZXRhaW5VbiYmZS5yZXRhaW5VbiYmSS5wdXNoKCItLXJldGFpbi11biIpLGUuY29udmVydFVuJiZlLmNvbnZlcnRVbiYmSS5wdXNoKCItLWNvbnZlcnQtdW4iKSxlLmVuYWJsZUNvcnJlY3Rpb24mJmUuZW5hYmxlQ29ycmVjdGlvbiYmSS5wdXNoKCItLWVuYWJsZS1jb3JyZWN0aW9uIiksZS5kaXNhYmxlQ29ycmVjdGlvbiYmZS5kaXNhYmxlQ29ycmVjdGlvbiYmSS5wdXNoKCItLWRpc2FibGUtY29ycmVjdGlvbiIpO2xldCBFPSJyZWFkLWRpY29tLWVuY2Fwc3VsYXRlZC1wZGYiLHM9ZT8ud2ViV29ya2VyO3M9PT12b2lkIDAmJihzPWF3YWl0IGsoKSk7bGV0e3dlYldvcmtlcjpuLHJldHVyblZhbHVlOmcsc3RkZXJyOnUsb3V0cHV0czpDfT1hd2FpdCBEKEUsSSx0LGkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjpzLG5vQ29weTplPy5ub0NvcHl9KTtpZihnIT09MCYmdSE9PSIiKXRocm93IG5ldyBFcnJvcih1KTtyZXR1cm57d2ViV29ya2VyOm4scGRmQmluYXJ5T3V0cHV0OihDWzBdPy5kYXRhKS5kYXRhfX12YXIgdUk9Y0k7YXN5bmMgZnVuY3Rpb24gZkkoQSxlPXt9KXtsZXQgdD1be3R5cGU6Zi5UZXh0U3RyZWFtfV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbD1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShsKX19bGV0IGk9W3t0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOnJ9XSxJPVtdLG89ci5wYXRoO2lmKEkucHVzaChvKSxJLnB1c2goIjAiKSxJLnB1c2goIi0tbWVtb3J5LWlvIiksZS5yZWFkRmlsZU9ubHkmJmUucmVhZEZpbGVPbmx5JiZJLnB1c2goIi0tcmVhZC1maWxlLW9ubHkiKSxlLnJlYWREYXRhc2V0JiZlLnJlYWREYXRhc2V0JiZJLnB1c2goIi0tcmVhZC1kYXRhc2V0IiksZS5yZWFkWGZlckF1dG8mJmUucmVhZFhmZXJBdXRvJiZJLnB1c2goIi0tcmVhZC14ZmVyLWF1dG8iKSxlLnJlYWRYZmVyRGV0ZWN0JiZlLnJlYWRYZmVyRGV0ZWN0JiZJLnB1c2goIi0tcmVhZC14ZmVyLWRldGVjdCIpLGUucmVhZFhmZXJMaXR0bGUmJmUucmVhZFhmZXJMaXR0bGUmJkkucHVzaCgiLS1yZWFkLXhmZXItbGl0dGxlIiksZS5yZWFkWGZlckJpZyYmZS5yZWFkWGZlckJpZyYmSS5wdXNoKCItLXJlYWQteGZlci1iaWciKSxlLnJlYWRYZmVySW1wbGljaXQmJmUucmVhZFhmZXJJbXBsaWNpdCYmSS5wdXNoKCItLXJlYWQteGZlci1pbXBsaWNpdCIpLGUucHJvY2Vzc2luZ0RldGFpbHMmJmUucHJvY2Vzc2luZ0RldGFpbHMmJkkucHVzaCgiLS1wcm9jZXNzaW5nLWRldGFpbHMiKSxlLnVua25vd25SZWxhdGlvbnNoaXAmJmUudW5rbm93blJlbGF0aW9uc2hpcCYmSS5wdXNoKCItLXVua25vd24tcmVsYXRpb25zaGlwIiksZS5pbnZhbGlkSXRlbVZhbHVlJiZlLmludmFsaWRJdGVtVmFsdWUmJkkucHVzaCgiLS1pbnZhbGlkLWl0ZW0tdmFsdWUiKSxlLmlnbm9yZUNvbnN0cmFpbnRzJiZlLmlnbm9yZUNvbnN0cmFpbnRzJiZJLnB1c2goIi0taWdub3JlLWNvbnN0cmFpbnRzIiksZS5pZ25vcmVJdGVtRXJyb3JzJiZlLmlnbm9yZUl0ZW1FcnJvcnMmJkkucHVzaCgiLS1pZ25vcmUtaXRlbS1lcnJvcnMiKSxlLnNraXBJbnZhbGlkSXRlbXMmJmUuc2tpcEludmFsaWRJdGVtcyYmSS5wdXNoKCItLXNraXAtaW52YWxpZC1pdGVtcyIpLGUuZGlzYWJsZVZyQ2hlY2tlciYmZS5kaXNhYmxlVnJDaGVja2VyJiZJLnB1c2goIi0tZGlzYWJsZS12ci1jaGVja2VyIiksZS5jaGFyc2V0UmVxdWlyZSYmZS5jaGFyc2V0UmVxdWlyZSYmSS5wdXNoKCItLWNoYXJzZXQtcmVxdWlyZSIpLGUuY2hhcnNldEFzc3VtZSYmSS5wdXNoKCItLWNoYXJzZXQtYXNzdW1lIixlLmNoYXJzZXRBc3N1bWUudG9TdHJpbmcoKSksZS5jaGFyc2V0Q2hlY2tBbGwmJmUuY2hhcnNldENoZWNrQWxsJiZJLnB1c2goIi0tY2hhcnNldC1jaGVjay1hbGwiKSxlLmNvbnZlcnRUb1V0ZjgmJmUuY29udmVydFRvVXRmOCYmSS5wdXNoKCItLWNvbnZlcnQtdG8tdXRmOCIpLGUudXJsUHJlZml4JiZJLnB1c2goIi0tdXJsLXByZWZpeCIsZS51cmxQcmVmaXgudG9TdHJpbmcoKSksZS5odG1sMzImJmUuaHRtbDMyJiZJLnB1c2goIi0taHRtbC0zMiIpLGUuaHRtbDQwJiZlLmh0bWw0MCYmSS5wdXNoKCItLWh0bWwtNDAiKSxlLnhodG1sMTEmJmUueGh0bWwxMSYmSS5wdXNoKCItLXhodG1sLTExIiksZS5hZGREb2N1bWVudFR5cGUmJmUuYWRkRG9jdW1lbnRUeXBlJiZJLnB1c2goIi0tYWRkLWRvY3VtZW50LXR5cGUiKSxlLmNzc1JlZmVyZW5jZSl7bGV0IGw9aS5sZW5ndGgudG9TdHJpbmcoKTtpLnB1c2goe3R5cGU6Zi5UZXh0U3RyZWFtLGRhdGE6e2RhdGE6ZS5jc3NSZWZlcmVuY2V9fSksSS5wdXNoKCItLWNzcy1yZWZlcmVuY2UiLGwpfWlmKGUuY3NzRmlsZSl7bGV0IGw9ZS5jc3NGaWxlLGM9bDtpZihsIGluc3RhbmNlb2YgRmlsZSl7bGV0IG09YXdhaXQgbC5hcnJheUJ1ZmZlcigpO2M9e3BhdGg6bC5uYW1lLGRhdGE6bmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKG0pfX1JLnB1c2goIi0tY3NzLWZpbGUiKSxpLnB1c2goe3R5cGU6Zi5UZXh0RmlsZSxkYXRhOmN9KTtsZXQgcD1sIGluc3RhbmNlb2YgRmlsZT9sLm5hbWU6bC5wYXRoO0kucHVzaChwKX1lLmV4cGFuZElubGluZSYmZS5leHBhbmRJbmxpbmUmJkkucHVzaCgiLS1leHBhbmQtaW5saW5lIiksZS5uZXZlckV4cGFuZElubGluZSYmZS5uZXZlckV4cGFuZElubGluZSYmSS5wdXNoKCItLW5ldmVyLWV4cGFuZC1pbmxpbmUiKSxlLmFsd2F5c0V4cGFuZElubGluZSYmZS5hbHdheXNFeHBhbmRJbmxpbmUmJkkucHVzaCgiLS1hbHdheXMtZXhwYW5kLWlubGluZSIpLGUucmVuZGVyRnVsbERhdGEmJmUucmVuZGVyRnVsbERhdGEmJkkucHVzaCgiLS1yZW5kZXItZnVsbC1kYXRhIiksZS5zZWN0aW9uVGl0bGVJbmxpbmUmJmUuc2VjdGlvblRpdGxlSW5saW5lJiZJLnB1c2goIi0tc2VjdGlvbi10aXRsZS1pbmxpbmUiKSxlLmRvY3VtZW50VHlwZVRpdGxlJiZlLmRvY3VtZW50VHlwZVRpdGxlJiZJLnB1c2goIi0tZG9jdW1lbnQtdHlwZS10aXRsZSIpLGUucGF0aWVudEluZm9UaXRsZSYmZS5wYXRpZW50SW5mb1RpdGxlJiZJLnB1c2goIi0tcGF0aWVudC1pbmZvLXRpdGxlIiksZS5ub0RvY3VtZW50SGVhZGVyJiZlLm5vRG9jdW1lbnRIZWFkZXImJkkucHVzaCgiLS1uby1kb2N1bWVudC1oZWFkZXIiKSxlLnJlbmRlcklubGluZUNvZGVzJiZlLnJlbmRlcklubGluZUNvZGVzJiZJLnB1c2goIi0tcmVuZGVyLWlubGluZS1jb2RlcyIpLGUuY29uY2VwdE5hbWVDb2RlcyYmZS5jb25jZXB0TmFtZUNvZGVzJiZJLnB1c2goIi0tY29uY2VwdC1uYW1lLWNvZGVzIiksZS5udW1lcmljVW5pdENvZGVzJiZlLm51bWVyaWNVbml0Q29kZXMmJkkucHVzaCgiLS1udW1lcmljLXVuaXQtY29kZXMiKSxlLmNvZGVWYWx1ZVVuaXQmJmUuY29kZVZhbHVlVW5pdCYmSS5wdXNoKCItLWNvZGUtdmFsdWUtdW5pdCIpLGUuY29kZU1lYW5pbmdVbml0JiZlLmNvZGVNZWFuaW5nVW5pdCYmSS5wdXNoKCItLWNvZGUtbWVhbmluZy11bml0IiksZS5yZW5kZXJBbGxDb2RlcyYmZS5yZW5kZXJBbGxDb2RlcyYmSS5wdXNoKCItLXJlbmRlci1hbGwtY29kZXMiKSxlLmNvZGVEZXRhaWxzVG9vbHRpcCYmZS5jb2RlRGV0YWlsc1Rvb2x0aXAmJkkucHVzaCgiLS1jb2RlLWRldGFpbHMtdG9vbHRpcCIpO2xldCBFPSJzdHJ1Y3R1cmVkLXJlcG9ydC10by1odG1sIixzPWU/LndlYldvcmtlcjtzPT09dm9pZCAwJiYocz1hd2FpdCBrKCkpO2xldHt3ZWJXb3JrZXI6bixyZXR1cm5WYWx1ZTpnLHN0ZGVycjp1LG91dHB1dHM6Q309YXdhaXQgRChFLEksdCxpLHtwaXBlbGluZUJhc2VVcmw6dygpLHBpcGVsaW5lV29ya2VyVXJsOnkoKSx3ZWJXb3JrZXI6cyxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoZyE9PTAmJnUhPT0iIil0aHJvdyBuZXcgRXJyb3IodSk7cmV0dXJue3dlYldvcmtlcjpuLG91dHB1dFRleHQ6KENbMF0/LmRhdGEpLmRhdGF9fXZhciBwST1mSTthc3luYyBmdW5jdGlvbiBkSShBLGU9e30pe2xldCB0PVt7dHlwZTpmLlRleHRTdHJlYW19XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBsPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KGwpfX1sZXQgaT1be3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6cn1dLEk9W10sbz1yLnBhdGg7SS5wdXNoKG8pLEkucHVzaCgiMCIpLEkucHVzaCgiLS1tZW1vcnktaW8iKSxlLnVua25vd25SZWxhdGlvbnNoaXAmJmUudW5rbm93blJlbGF0aW9uc2hpcCYmSS5wdXNoKCItLXVua25vd24tcmVsYXRpb25zaGlwIiksZS5pbnZhbGlkSXRlbVZhbHVlJiZlLmludmFsaWRJdGVtVmFsdWUmJkkucHVzaCgiLS1pbnZhbGlkLWl0ZW0tdmFsdWUiKSxlLmlnbm9yZUNvbnN0cmFpbnRzJiZlLmlnbm9yZUNvbnN0cmFpbnRzJiZJLnB1c2goIi0taWdub3JlLWNvbnN0cmFpbnRzIiksZS5pZ25vcmVJdGVtRXJyb3JzJiZlLmlnbm9yZUl0ZW1FcnJvcnMmJkkucHVzaCgiLS1pZ25vcmUtaXRlbS1lcnJvcnMiKSxlLnNraXBJbnZhbGlkSXRlbXMmJmUuc2tpcEludmFsaWRJdGVtcyYmSS5wdXNoKCItLXNraXAtaW52YWxpZC1pdGVtcyIpLGUubm9Eb2N1bWVudEhlYWRlciYmZS5ub0RvY3VtZW50SGVhZGVyJiZJLnB1c2goIi0tbm8tZG9jdW1lbnQtaGVhZGVyIiksZS5udW1iZXJOZXN0ZWRJdGVtcyYmZS5udW1iZXJOZXN0ZWRJdGVtcyYmSS5wdXNoKCItLW51bWJlci1uZXN0ZWQtaXRlbXMiKSxlLnNob3J0ZW5Mb25nVmFsdWVzJiZlLnNob3J0ZW5Mb25nVmFsdWVzJiZJLnB1c2goIi0tc2hvcnRlbi1sb25nLXZhbHVlcyIpLGUucHJpbnRJbnN0YW5jZVVpZCYmZS5wcmludEluc3RhbmNlVWlkJiZJLnB1c2goIi0tcHJpbnQtaW5zdGFuY2UtdWlkIiksZS5wcmludFNvcGNsYXNzU2hvcnQmJmUucHJpbnRTb3BjbGFzc1Nob3J0JiZJLnB1c2goIi0tcHJpbnQtc29wY2xhc3Mtc2hvcnQiKSxlLnByaW50U29wY2xhc3NMb25nJiZlLnByaW50U29wY2xhc3NMb25nJiZJLnB1c2goIi0tcHJpbnQtc29wY2xhc3MtbG9uZyIpLGUucHJpbnRTb3BjbGFzc1VpZCYmZS5wcmludFNvcGNsYXNzVWlkJiZJLnB1c2goIi0tcHJpbnQtc29wY2xhc3MtdWlkIiksZS5wcmludEFsbENvZGVzJiZlLnByaW50QWxsQ29kZXMmJkkucHVzaCgiLS1wcmludC1hbGwtY29kZXMiKSxlLnByaW50SW52YWxpZENvZGVzJiZlLnByaW50SW52YWxpZENvZGVzJiZJLnB1c2goIi0tcHJpbnQtaW52YWxpZC1jb2RlcyIpLGUucHJpbnRUZW1wbGF0ZUlkJiZlLnByaW50VGVtcGxhdGVJZCYmSS5wdXNoKCItLXByaW50LXRlbXBsYXRlLWlkIiksZS5pbmRpY2F0ZUVuaGFuY2VkJiZlLmluZGljYXRlRW5oYW5jZWQmJkkucHVzaCgiLS1pbmRpY2F0ZS1lbmhhbmNlZCIpLGUucHJpbnRDb2xvciYmZS5wcmludENvbG9yJiZJLnB1c2goIi0tcHJpbnQtY29sb3IiKTtsZXQgRT0ic3RydWN0dXJlZC1yZXBvcnQtdG8tdGV4dCIscz1lPy53ZWJXb3JrZXI7cz09PXZvaWQgMCYmKHM9YXdhaXQgaygpKTtsZXR7d2ViV29ya2VyOm4scmV0dXJuVmFsdWU6ZyxzdGRlcnI6dSxvdXRwdXRzOkN9PWF3YWl0IEQoRSxJLHQsaSx7cGlwZWxpbmVCYXNlVXJsOncoKSxwaXBlbGluZVdvcmtlclVybDp5KCksd2ViV29ya2VyOnMsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGchPT0wJiZ1IT09IiIpdGhyb3cgbmV3IEVycm9yKHUpO3JldHVybnt3ZWJXb3JrZXI6bixvdXRwdXRUZXh0OihDWzBdPy5kYXRhKS5kYXRhfX12YXIgbUk9ZEk7YXN5bmMgZnVuY3Rpb24gaEkoQSxlPXt9KXtsZXQgdD1be3R5cGU6Zi5Kc29uQ29tcGF0aWJsZX1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IFE9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkoUSl9fWxldCBpPVt7dHlwZTpmLkJpbmFyeUZpbGUsZGF0YTpyfV0sST1bXSxvPXIucGF0aDtpZihJLnB1c2gobyksSS5wdXNoKCIwIiksSS5wdXNoKCItLW1lbW9yeS1pbyIpLHR5cGVvZiBlLnRhZ3NUb1JlYWQ8InUiKXtsZXQgUT1pLmxlbmd0aC50b1N0cmluZygpO2kucHVzaCh7dHlwZTpmLkpzb25Db21wYXRpYmxlLGRhdGE6ZS50YWdzVG9SZWFkfSksSS5wdXNoKCItLXRhZ3MtdG8tcmVhZCIsUSl9bGV0IEU9InJlYWQtZGljb20tdGFncyIse3dlYldvcmtlcjpzLHJldHVyblZhbHVlOm4sc3RkZXJyOmcsb3V0cHV0czp1fT1hd2FpdCBEKEUsSSx0LGkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjplPy53ZWJXb3JrZXI/P251bGx9KTtpZihuIT09MCl0aHJvdyBuZXcgRXJyb3IoZyk7cmV0dXJue3dlYldvcmtlcjpzLHRhZ3M6dVswXS5kYXRhfX12YXIgeUk9aEk7YXN5bmMgZnVuY3Rpb24gREkoQSxlPSExLHQ9e30pe2xldCByPVt7dHlwZTpmLkltYWdlfSx7dHlwZTpmLkpzb25Db21wYXRpYmxlfV0saT1bXSxJPVtdO0kucHVzaCgiMCIpLEkucHVzaCgiMSIpLEkucHVzaCgiLS1tZW1vcnktaW8iKSxJLnB1c2goIi0taW5wdXQtaW1hZ2VzIiksQS5mb3JFYWNoKFE9PntpLnB1c2goe3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6UX0pLEkucHVzaChRLnBhdGgpfSksdHlwZW9mIGU8InUiJiZlJiZJLnB1c2goIi0tc2luZ2xlLXNvcnRlZC1zZXJpZXMiKTtsZXQgRT0icmVhZC1pbWFnZS1kaWNvbS1maWxlLXNlcmllcyIse3dlYldvcmtlcjpzLHJldHVyblZhbHVlOm4sc3RkZXJyOmcsb3V0cHV0czp1fT1hd2FpdCBEKEUsSSxyLGkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjp0Py53ZWJXb3JrZXI/P251bGx9KTtpZihuIT09MCl0aHJvdyBuZXcgRXJyb3IoZyk7cmV0dXJue3dlYldvcmtlcjpzLG91dHB1dEltYWdlOnVbMF0uZGF0YSxzb3J0ZWRGaWxlbmFtZXM6dVsxXS5kYXRhfX12YXIgeGU9REk7dmFyIHdJPXR5cGVvZiBnbG9iYWxUaGlzLm5hdmlnYXRvcj8uaGFyZHdhcmVDb25jdXJyZW5jeT09Im51bWJlciI/Z2xvYmFsVGhpcy5uYXZpZ2F0b3IuaGFyZHdhcmVDb25jdXJyZW5jeTo0LENyPTg7YXN5bmMgZnVuY3Rpb24gU0koQT17aW5wdXRJbWFnZXM6W119KXtsZXQgZT1BLndlYldvcmtlclBvb2w/P251bGw7aWYoZT09PW51bGwmJihlPW5ldyBvZSh3SSx4ZSkpLEEuaW5wdXRJbWFnZXMubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCciaW5wdXQtaW1hZ2VzIiBvcHRpb24gbXVzdCBoYXZlIGEgbGVuZ3RoID4gMScpO2xldCB0PWF3YWl0IFByb21pc2UuYWxsKEEuaW5wdXRJbWFnZXMubWFwKGFzeW5jIHI9PntsZXQgaT1yO2lmKHIgaW5zdGFuY2VvZiBGaWxlKXtsZXQgST1hd2FpdCByLmFycmF5QnVmZmVyKCk7aT17cGF0aDpyLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShJKX19cmV0dXJuIGl9KSk7aWYoQS5zaW5nbGVTb3J0ZWRTZXJpZXMpe2xldCByPVtdO2ZvcihsZXQgRT0wO0U8dC5sZW5ndGg7RSs9Q3Ipe2xldCBzPXQuc2xpY2UoRSxFK0NyKTtyLnB1c2goW3MsQS5zaW5nbGVTb3J0ZWRTZXJpZXMse31dKX1sZXQgaT1hd2FpdCBlLnJ1blRhc2tzKHIpLnByb21pc2UsST1pLm1hcChFPT5FLm91dHB1dEltYWdlKSxvPWkucmVkdWNlKChFLHMpPT5FLmNvbmNhdChzLnNvcnRlZEZpbGVuYW1lcyksW10pO3JldHVybntvdXRwdXRJbWFnZTppZShJKSx3ZWJXb3JrZXJQb29sOmUsc29ydGVkRmlsZW5hbWVzOm99fWVsc2V7bGV0IHI9W1t0LEEuc2luZ2xlU29ydGVkU2VyaWVzLHt9XV0saT1hd2FpdCBlLnJ1blRhc2tzKHIpLnByb21pc2U7cmV0dXJue291dHB1dEltYWdlOmlbMF0ub3V0cHV0SW1hZ2Usd2ViV29ya2VyUG9vbDplLHNvcnRlZEZpbGVuYW1lczppWzBdLnNvcnRlZEZpbGVuYW1lc319fXZhciBGST1TSTthc3luYyBmdW5jdGlvbiBSSShBLGU9e30pe2xldCB0PVt7dHlwZTpmLkltYWdlfSx7dHlwZTpmLkpzb25Db21wYXRpYmxlfV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgYz1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShjKX19bGV0IGk9W3t0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOnJ9XSxJPVtdLG89ci5wYXRoO0kucHVzaChvKSxJLnB1c2goIjAiKSxJLnB1c2goIjEiKSxJLnB1c2goIi0tbWVtb3J5LWlvIik7bGV0IHM9InJlYWQtc2VnbWVudGF0aW9uIixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCBrKCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTp1LHN0ZGVycjpDLG91dHB1dHM6UX09YXdhaXQgRChzLEksdCxpLHtwaXBlbGluZUJhc2VVcmw6dygpLHBpcGVsaW5lV29ya2VyVXJsOnkoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYodSE9PTAmJkMhPT0iIil0aHJvdyBuZXcgRXJyb3IoQyk7cmV0dXJue3dlYldvcmtlcjpnLHNlZ0ltYWdlOlFbMF0/LmRhdGEsbWV0YUluZm86UVsxXT8uZGF0YX19dmFyIGtJPVJJO2FzeW5jIGZ1bmN0aW9uIFVJKEEsZT17fSl7bGV0IHQ9W3t0eXBlOmYuSW1hZ2V9LHt0eXBlOmYuSnNvbkNvbXBhdGlibGV9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBjPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KGMpfX1sZXQgaT1be3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6cn1dLEk9W10sbz1yLnBhdGg7SS5wdXNoKG8pLEkucHVzaCgiMCIpLEkucHVzaCgiMSIpLEkucHVzaCgiLS1tZW1vcnktaW8iKSxlLm1lcmdlU2VnbWVudHMmJmUubWVyZ2VTZWdtZW50cyYmSS5wdXNoKCItLW1lcmdlLXNlZ21lbnRzIik7bGV0IHM9InJlYWQtb3ZlcmxhcHBpbmctc2VnbWVudGF0aW9uIixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCBrKCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTp1LHN0ZGVycjpDLG91dHB1dHM6UX09YXdhaXQgRChzLEksdCxpLHtwaXBlbGluZUJhc2VVcmw6dygpLHBpcGVsaW5lV29ya2VyVXJsOnkoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYodSE9PTAmJkMhPT0iIil0aHJvdyBuZXcgRXJyb3IoQyk7cmV0dXJue3dlYldvcmtlcjpnLHNlZ0ltYWdlOlFbMF0/LmRhdGEsbWV0YUluZm86UVsxXT8uZGF0YX19dmFyIE5JPVVJO2FzeW5jIGZ1bmN0aW9uIEdJKEEsZSx0LHI9e3JlZkRpY29tU2VyaWVzOltdfSl7bGV0IGk9W3t0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOntwYXRoOnQsZGF0YTpuZXcgVWludDhBcnJheX19XSxJPVt7dHlwZTpmLkltYWdlLGRhdGE6QX0se3R5cGU6Zi5Kc29uQ29tcGF0aWJsZSxkYXRhOmV9XSxvPVtdO28ucHVzaCgiMCIpLG8ucHVzaCgiMSIpO2xldCBzPXQ7aWYoby5wdXNoKHMpLG8ucHVzaCgiLS1tZW1vcnktaW8iKSxyLnJlZkRpY29tU2VyaWVzKXtpZihyLnJlZkRpY29tU2VyaWVzLmxlbmd0aDwxKXRocm93IG5ldyBFcnJvcignInJlZi1kaWNvbS1zZXJpZXMiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAxJyk7by5wdXNoKCItLXJlZi1kaWNvbS1zZXJpZXMiKSxhd2FpdCBQcm9taXNlLmFsbChyLnJlZkRpY29tU2VyaWVzLm1hcChhc3luYyBwPT57bGV0IG09cDtpZihwIGluc3RhbmNlb2YgRmlsZSl7bGV0IE49YXdhaXQgcC5hcnJheUJ1ZmZlcigpO209e3BhdGg6cC5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkoTil9fUkucHVzaCh7dHlwZTpmLkJpbmFyeUZpbGUsZGF0YTptfSk7bGV0IGg9cCBpbnN0YW5jZW9mIEZpbGU/cC5uYW1lOm0ucGF0aDtvLnB1c2goaCl9KSl9ci5za2lwRW1wdHlTbGljZXMmJnIuc2tpcEVtcHR5U2xpY2VzJiZvLnB1c2goIi0tc2tpcC1lbXB0eS1zbGljZXMiKSxyLnVzZUxhYmVsaWRBc1NlZ21lbnRudW1iZXImJnIudXNlTGFiZWxpZEFzU2VnbWVudG51bWJlciYmby5wdXNoKCItLXVzZS1sYWJlbGlkLWFzLXNlZ21lbnRudW1iZXIiKTtsZXQgbj0id3JpdGUtc2VnbWVudGF0aW9uIixnPXI/LndlYldvcmtlcjtnPT09dm9pZCAwJiYoZz1hd2FpdCBrKCkpO2xldHt3ZWJXb3JrZXI6dSxyZXR1cm5WYWx1ZTpDLHN0ZGVycjpRLG91dHB1dHM6bH09YXdhaXQgRChuLG8saSxJLHtwaXBlbGluZUJhc2VVcmw6dygpLHBpcGVsaW5lV29ya2VyVXJsOnkoKSx3ZWJXb3JrZXI6Zyxub0NvcHk6cj8ubm9Db3B5fSk7aWYoQyE9PTAmJlEhPT0iIil0aHJvdyBuZXcgRXJyb3IoUSk7cmV0dXJue3dlYldvcmtlcjp1LG91dHB1dERpY29tRmlsZTpsWzBdPy5kYXRhfX12YXIgYkk9R0k7YXN5bmMgZnVuY3Rpb24gTEkoQSxlLHQscj17cmVmRGljb21TZXJpZXM6W119KXtsZXQgaT1be3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6dCxkYXRhOm5ldyBVaW50OEFycmF5fX1dLEk9W3t0eXBlOmYuSW1hZ2UsZGF0YTpBfSx7dHlwZTpmLkpzb25Db21wYXRpYmxlLGRhdGE6ZX1dLG89W107by5wdXNoKCIwIiksby5wdXNoKCIxIik7bGV0IHM9dDtpZihvLnB1c2gocyksby5wdXNoKCItLW1lbW9yeS1pbyIpLHIucmVmRGljb21TZXJpZXMpe2lmKHIucmVmRGljb21TZXJpZXMubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcicmVmLWRpY29tLXNlcmllcyIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtvLnB1c2goIi0tcmVmLWRpY29tLXNlcmllcyIpLGF3YWl0IFByb21pc2UuYWxsKHIucmVmRGljb21TZXJpZXMubWFwKGFzeW5jIHA9PntsZXQgbT1wO2lmKHAgaW5zdGFuY2VvZiBGaWxlKXtsZXQgTj1hd2FpdCBwLmFycmF5QnVmZmVyKCk7bT17cGF0aDpwLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShOKX19SS5wdXNoKHt0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOm19KTtsZXQgaD1wIGluc3RhbmNlb2YgRmlsZT9wLm5hbWU6bS5wYXRoO28ucHVzaChoKX0pKX1yLnNraXBFbXB0eVNsaWNlcyYmci5za2lwRW1wdHlTbGljZXMmJm8ucHVzaCgiLS1za2lwLWVtcHR5LXNsaWNlcyIpLHIudXNlTGFiZWxpZEFzU2VnbWVudG51bWJlciYmci51c2VMYWJlbGlkQXNTZWdtZW50bnVtYmVyJiZvLnB1c2goIi0tdXNlLWxhYmVsaWQtYXMtc2VnbWVudG51bWJlciIpO2xldCBuPSJ3cml0ZS1vdmVybGFwcGluZy1zZWdtZW50YXRpb24iLGc9cj8ud2ViV29ya2VyO2c9PT12b2lkIDAmJihnPWF3YWl0IGsoKSk7bGV0e3dlYldvcmtlcjp1LHJldHVyblZhbHVlOkMsc3RkZXJyOlEsb3V0cHV0czpsfT1hd2FpdCBEKG4sbyxpLEkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjpnLG5vQ29weTpyPy5ub0NvcHl9KTtpZihDIT09MCYmUSE9PSIiKXRocm93IG5ldyBFcnJvcihRKTtyZXR1cm57d2ViV29ya2VyOnUsb3V0cHV0RGljb21GaWxlOmxbMF0/LmRhdGF9fXZhciBKST1MSTthc3luYyBmdW5jdGlvbiBNSShBLGUsdD17cmVmRGljb21TZXJpZXM6W10sc2VnSW1hZ2VzOltdfSl7bGV0IHI9W3t0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxpPVt7dHlwZTpmLkpzb25Db21wYXRpYmxlLGRhdGE6QX1dLEk9W107SS5wdXNoKCIwIik7bGV0IGE9ZTtpZihJLnB1c2goYSksSS5wdXNoKCItLW1lbW9yeS1pbyIpLHQucmVmRGljb21TZXJpZXMpe2lmKHQucmVmRGljb21TZXJpZXMubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcicmVmLWRpY29tLXNlcmllcyIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtJLnB1c2goIi0tcmVmLWRpY29tLXNlcmllcyIpLGF3YWl0IFByb21pc2UuYWxsKHQucmVmRGljb21TZXJpZXMubWFwKGFzeW5jIGw9PntsZXQgYz1sO2lmKGwgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbT1hd2FpdCBsLmFycmF5QnVmZmVyKCk7Yz17cGF0aDpsLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShtKX19aS5wdXNoKHt0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOmN9KTtsZXQgcD1sIGluc3RhbmNlb2YgRmlsZT9sLm5hbWU6Yy5wYXRoO0kucHVzaChwKX0pKX1pZih0LnNlZ0ltYWdlcyl7aWYodC5zZWdJbWFnZXMubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcic2VnLWltYWdlcyIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtJLnB1c2goIi0tc2VnLWltYWdlcyIpLGF3YWl0IFByb21pc2UuYWxsKHQuc2VnSW1hZ2VzLm1hcChhc3luYyBsPT57bGV0IGM9bDtpZihsIGluc3RhbmNlb2YgRmlsZSl7bGV0IG09YXdhaXQgbC5hcnJheUJ1ZmZlcigpO2M9e3BhdGg6bC5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkobSl9fWkucHVzaCh7dHlwZTpmLkJpbmFyeUZpbGUsZGF0YTpjfSk7bGV0IHA9bCBpbnN0YW5jZW9mIEZpbGU/bC5uYW1lOmMucGF0aDtJLnB1c2gocCl9KSl9dC5za2lwRW1wdHlTbGljZXMmJnQuc2tpcEVtcHR5U2xpY2VzJiZJLnB1c2goIi0tc2tpcC1lbXB0eS1zbGljZXMiKSx0LnVzZUxhYmVsaWRBc1NlZ21lbnRudW1iZXImJnQudXNlTGFiZWxpZEFzU2VnbWVudG51bWJlciYmSS5wdXNoKCItLXVzZS1sYWJlbGlkLWFzLXNlZ21lbnRudW1iZXIiKTtsZXQgRT0id3JpdGUtbXVsdGktc2VnbWVudGF0aW9uIixzPXQ/LndlYldvcmtlcjtzPT09dm9pZCAwJiYocz1hd2FpdCBrKCkpO2xldHt3ZWJXb3JrZXI6bixyZXR1cm5WYWx1ZTpnLHN0ZGVycjp1LG91dHB1dHM6Q309YXdhaXQgRChFLEkscixpLHtwaXBlbGluZUJhc2VVcmw6dygpLHBpcGVsaW5lV29ya2VyVXJsOnkoKSx3ZWJXb3JrZXI6cyxub0NvcHk6dD8ubm9Db3B5fSk7aWYoZyE9PTAmJnUhPT0iIil0aHJvdyBuZXcgRXJyb3IodSk7cmV0dXJue3dlYldvcmtlcjpuLG91dHB1dERpY29tRmlsZTpDWzBdPy5kYXRhfX12YXIgSEk9TUk7YXN5bmMgZnVuY3Rpb24gWUkoQSxlLHQ9e30pe2xldCByPVt7dHlwZTpmLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgYz1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUoYyl9fWxldCBJPVt7dHlwZTpmLlRleHRGaWxlLGRhdGE6aX1dLG89W10sYT1pLnBhdGg7by5wdXNoKGEpO2xldCBFPWU7aWYoby5wdXNoKEUpLG8ucHVzaCgiLS1tZW1vcnktaW8iKSx0LmRpY29tTWV0YWRhdGEpe2xldCBjPUkubGVuZ3RoLnRvU3RyaW5nKCk7SS5wdXNoKHt0eXBlOmYuSnNvbkNvbXBhdGlibGUsZGF0YTp0LmRpY29tTWV0YWRhdGF9KSxvLnB1c2goIi0tZGljb20tbWV0YWRhdGEiLGMpfWxldCBzPSJ3cml0ZS1ydC1zdHJ1Y3QiLG49dD8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IGsoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOnUsc3RkZXJyOkMsb3V0cHV0czpRfT1hd2FpdCBEKHMsbyxyLEkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjpuLG5vQ29weTp0Py5ub0NvcHl9KTtpZih1IT09MCYmQyE9PSIiKXRocm93IG5ldyBFcnJvcihDKTtyZXR1cm57d2ViV29ya2VyOmcsb3V0cHV0RGljb206UVswXT8uZGF0YX19dmFyIFRJPVlJO3ZhciBRcj0nZGF0YTp0ZXh0L2phdmFzY3JpcHQ7Y2hhcnNldD11dGYtOCx2YXIgWWU9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBxZT0oQSx0KT0+e2Zvcih2YXIgZSBpbiB0KVllKEEsZSx7Z2V0OnRbZV0sZW51bWVyYWJsZTohMH0pfTt2YXIgTnQ9U3ltYm9sKCJDb21saW5rLnByb3h5IiksTWU9U3ltYm9sKCJDb21saW5rLmVuZHBvaW50IiksS2U9U3ltYm9sKCJDb21saW5rLnJlbGVhc2VQcm94eSIpLFZBPVN5bWJvbCgiQ29tbGluay5maW5hbGl6ZXIiKSxtQT1TeW1ib2woIkNvbWxpbmsudGhyb3duIiksVXQ9QT0+dHlwZW9mIEE9PSJvYmplY3QiJiZBIT09bnVsbHx8dHlwZW9mIEE9PSJmdW5jdGlvbiIsT2U9e2NhbkhhbmRsZTpBPT5VdChBKSYmQVtOdF0sc2VyaWFsaXplKEEpe2xldHtwb3J0MTp0LHBvcnQyOmV9PW5ldyBNZXNzYWdlQ2hhbm5lbDtyZXR1cm4gRkEoQSx0KSxbZSxbZV1dfSxkZXNlcmlhbGl6ZShBKXtyZXR1cm4gQS5zdGFydCgpLGplKEEpfX0sVGU9e2NhbkhhbmRsZTpBPT5VdChBKSYmbUEgaW4gQSxzZXJpYWxpemUoe3ZhbHVlOkF9KXtsZXQgdDtyZXR1cm4gQSBpbnN0YW5jZW9mIEVycm9yP3Q9e2lzRXJyb3I6ITAsdmFsdWU6e21lc3NhZ2U6QS5tZXNzYWdlLG5hbWU6QS5uYW1lLHN0YWNrOkEuc3RhY2t9fTp0PXtpc0Vycm9yOiExLHZhbHVlOkF9LFt0LFtdXX0sZGVzZXJpYWxpemUoQSl7dGhyb3cgQS5pc0Vycm9yP09iamVjdC5hc3NpZ24obmV3IEVycm9yKEEudmFsdWUubWVzc2FnZSksQS52YWx1ZSk6QS52YWx1ZX19LEd0PW5ldyBNYXAoW1sicHJveHkiLE9lXSxbInRocm93IixUZV1dKTtmdW5jdGlvbiB4ZShBLHQpe2ZvcihsZXQgZSBvZiBBKWlmKHQ9PT1lfHxlPT09IioifHxlIGluc3RhbmNlb2YgUmVnRXhwJiZlLnRlc3QodCkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gRkEoQSx0PWdsb2JhbFRoaXMsZT1bIioiXSl7dC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBJKHIpe2lmKCFyfHwhci5kYXRhKXJldHVybjtpZigheGUoZSxyLm9yaWdpbikpe2NvbnNvbGUud2FybihgSW52YWxpZCBvcmlnaW4gXCcke3Iub3JpZ2lufVwnIGZvciBjb21saW5rIHByb3h5YCk7cmV0dXJufWxldHtpZDpnLHR5cGU6byxwYXRoOm59PU9iamVjdC5hc3NpZ24oe3BhdGg6W119LHIuZGF0YSksRT0oci5kYXRhLmFyZ3VtZW50TGlzdHx8W10pLm1hcChXKSxCO3RyeXtsZXQgcz1uLnNsaWNlKDAsLTEpLnJlZHVjZSgobCxhKT0+bFthXSxBKSxDPW4ucmVkdWNlKChsLGEpPT5sW2FdLEEpO3N3aXRjaChvKXtjYXNlIkdFVCI6Qj1DO2JyZWFrO2Nhc2UiU0VUIjpzW24uc2xpY2UoLTEpWzBdXT1XKHIuZGF0YS52YWx1ZSksQj0hMDticmVhaztjYXNlIkFQUExZIjpCPUMuYXBwbHkocyxFKTticmVhaztjYXNlIkNPTlNUUlVDVCI6e2xldCBsPW5ldyBDKC4uLkUpO0I9WGUobCl9YnJlYWs7Y2FzZSJFTkRQT0lOVCI6e2xldHtwb3J0MTpsLHBvcnQyOmF9PW5ldyBNZXNzYWdlQ2hhbm5lbDtGQShBLGEpLEI9X0EobCxbbF0pfWJyZWFrO2Nhc2UiUkVMRUFTRSI6Qj12b2lkIDA7YnJlYWs7ZGVmYXVsdDpyZXR1cm59fWNhdGNoKHMpe0I9e3ZhbHVlOnMsW21BXTowfX1Qcm9taXNlLnJlc29sdmUoQikuY2F0Y2gocz0+KHt2YWx1ZTpzLFttQV06MH0pKS50aGVuKHM9PntsZXRbQyxsXT1TQShzKTt0LnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxDKSx7aWQ6Z30pLGwpLG89PT0iUkVMRUFTRSImJih0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLEkpLGt0KHQpLFZBIGluIEEmJnR5cGVvZiBBW1ZBXT09ImZ1bmN0aW9uIiYmQVtWQV0oKSl9KS5jYXRjaChzPT57bGV0W0MsbF09U0Eoe3ZhbHVlOm5ldyBUeXBlRXJyb3IoIlVuc2VyaWFsaXphYmxlIHJldHVybiB2YWx1ZSIpLFttQV06MH0pO3QucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEMpLHtpZDpnfSksbCl9KX0pLHQuc3RhcnQmJnQuc3RhcnQoKX1mdW5jdGlvbiBQZShBKXtyZXR1cm4gQS5jb25zdHJ1Y3Rvci5uYW1lPT09Ik1lc3NhZ2VQb3J0In1mdW5jdGlvbiBrdChBKXtQZShBKSYmQS5jbG9zZSgpfWZ1bmN0aW9uIGplKEEsdCl7cmV0dXJuIFhBKEEsW10sdCl9ZnVuY3Rpb24geUEoQSl7aWYoQSl0aHJvdyBuZXcgRXJyb3IoIlByb3h5IGhhcyBiZWVuIHJlbGVhc2VkIGFuZCBpcyBub3QgdXNlYWJsZSIpfWZ1bmN0aW9uIEx0KEEpe3JldHVybiBfKEEse3R5cGU6IlJFTEVBU0UifSkudGhlbigoKT0+e2t0KEEpfSl9dmFyIHdBPW5ldyBXZWFrTWFwLHBBPSJGaW5hbGl6YXRpb25SZWdpc3RyeSJpbiBnbG9iYWxUaGlzJiZuZXcgRmluYWxpemF0aW9uUmVnaXN0cnkoQT0+e2xldCB0PSh3QS5nZXQoQSl8fDApLTE7d0Euc2V0KEEsdCksdD09PTAmJkx0KEEpfSk7ZnVuY3Rpb24gV2UoQSx0KXtsZXQgZT0od0EuZ2V0KHQpfHwwKSsxO3dBLnNldCh0LGUpLHBBJiZwQS5yZWdpc3RlcihBLHQsQSl9ZnVuY3Rpb24gWmUoQSl7cEEmJnBBLnVucmVnaXN0ZXIoQSl9ZnVuY3Rpb24gWEEoQSx0PVtdLGU9ZnVuY3Rpb24oKXt9KXtsZXQgST0hMSxyPW5ldyBQcm94eShlLHtnZXQoZyxvKXtpZih5QShJKSxvPT09S2UpcmV0dXJuKCk9PntaZShyKSxMdChBKSxJPSEwfTtpZihvPT09InRoZW4iKXtpZih0Lmxlbmd0aD09PTApcmV0dXJue3RoZW46KCk9PnJ9O2xldCBuPV8oQSx7dHlwZToiR0VUIixwYXRoOnQubWFwKEU9PkUudG9TdHJpbmcoKSl9KS50aGVuKFcpO3JldHVybiBuLnRoZW4uYmluZChuKX1yZXR1cm4gWEEoQSxbLi4udCxvXSl9LHNldChnLG8sbil7eUEoSSk7bGV0W0UsQl09U0Eobik7cmV0dXJuIF8oQSx7dHlwZToiU0VUIixwYXRoOlsuLi50LG9dLm1hcChzPT5zLnRvU3RyaW5nKCkpLHZhbHVlOkV9LEIpLnRoZW4oVyl9LGFwcGx5KGcsbyxuKXt5QShJKTtsZXQgRT10W3QubGVuZ3RoLTFdO2lmKEU9PT1NZSlyZXR1cm4gXyhBLHt0eXBlOiJFTkRQT0lOVCJ9KS50aGVuKFcpO2lmKEU9PT0iYmluZCIpcmV0dXJuIFhBKEEsdC5zbGljZSgwLC0xKSk7bGV0W0Isc109UnQobik7cmV0dXJuIF8oQSx7dHlwZToiQVBQTFkiLHBhdGg6dC5tYXAoQz0+Qy50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Qn0scykudGhlbihXKX0sY29uc3RydWN0KGcsbyl7eUEoSSk7bGV0W24sRV09UnQobyk7cmV0dXJuIF8oQSx7dHlwZToiQ09OU1RSVUNUIixwYXRoOnQubWFwKEI9PkIudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0Om59LEUpLnRoZW4oVyl9fSk7cmV0dXJuIFdlKHIsQSkscn1mdW5jdGlvbiBWZShBKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxBKX1mdW5jdGlvbiBSdChBKXtsZXQgdD1BLm1hcChTQSk7cmV0dXJuW3QubWFwKGU9PmVbMF0pLFZlKHQubWFwKGU9PmVbMV0pKV19dmFyIGJ0PW5ldyBXZWFrTWFwO2Z1bmN0aW9uIF9BKEEsdCl7cmV0dXJuIGJ0LnNldChBLHQpLEF9ZnVuY3Rpb24gWGUoQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7W050XTohMH0pfWZ1bmN0aW9uIFNBKEEpe2ZvcihsZXRbdCxlXW9mIEd0KWlmKGUuY2FuSGFuZGxlKEEpKXtsZXRbSSxyXT1lLnNlcmlhbGl6ZShBKTtyZXR1cm5be3R5cGU6IkhBTkRMRVIiLG5hbWU6dCx2YWx1ZTpJfSxyXX1yZXR1cm5be3R5cGU6IlJBVyIsdmFsdWU6QX0sYnQuZ2V0KEEpfHxbXV19ZnVuY3Rpb24gVyhBKXtzd2l0Y2goQS50eXBlKXtjYXNlIkhBTkRMRVIiOnJldHVybiBHdC5nZXQoQS5uYW1lKS5kZXNlcmlhbGl6ZShBLnZhbHVlKTtjYXNlIlJBVyI6cmV0dXJuIEEudmFsdWV9fWZ1bmN0aW9uIF8oQSx0LGUpe3JldHVybiBuZXcgUHJvbWlzZShJPT57bGV0IHI9X2UoKTtBLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIGcobyl7IW8uZGF0YXx8IW8uZGF0YS5pZHx8by5kYXRhLmlkIT09cnx8KEEucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZyksSShvLmRhdGEpKX0pLEEuc3RhcnQmJkEuc3RhcnQoKSxBLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oe2lkOnJ9LHQpLGUpfSl9ZnVuY3Rpb24gX2UoKXtyZXR1cm4gbmV3IEFycmF5KDQpLmZpbGwoMCkubWFwKCgpPT5NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpLnRvU3RyaW5nKDE2KSkuam9pbigiLSIpfWZ1bmN0aW9uIG9BKEEsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEEuYXBwbHkodCxhcmd1bWVudHMpfX12YXJ7dG9TdHJpbmc6emV9PU9iamVjdC5wcm90b3R5cGUse2dldFByb3RvdHlwZU9mOnZBfT1PYmplY3Qse2l0ZXJhdG9yOk5BLHRvU3RyaW5nVGFnOll0fT1TeW1ib2wsVUE9KEE9PnQ9PntsZXQgZT16ZS5jYWxsKHQpO3JldHVybiBBW2VdfHwoQVtlXT1lLnNsaWNlKDgsLTEpLnRvTG93ZXJDYXNlKCkpfSkoT2JqZWN0LmNyZWF0ZShudWxsKSksTD1BPT4oQT1BLnRvTG93ZXJDYXNlKCksdD0+VUEodCk9PT1BKSxHQT1BPT50PT50eXBlb2YgdD09PUEse2lzQXJyYXk6dn09QXJyYXksej1HQSgidW5kZWZpbmVkIik7ZnVuY3Rpb24gZ0EoQSl7cmV0dXJuIEEhPT1udWxsJiYheihBKSYmQS5jb25zdHJ1Y3RvciE9PW51bGwmJiF6KEEuY29uc3RydWN0b3IpJiZOKEEuY29uc3RydWN0b3IuaXNCdWZmZXIpJiZBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKEEpfXZhciBxdD1MKCJBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uIHZlKEEpe2xldCB0O3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXc/dD1BcnJheUJ1ZmZlci5pc1ZpZXcoQSk6dD1BJiZBLmJ1ZmZlciYmcXQoQS5idWZmZXIpLHR9dmFyICRlPUdBKCJzdHJpbmciKSxOPUdBKCJmdW5jdGlvbiIpLE10PUdBKCJudW1iZXIiKSxpQT1BPT5BIT09bnVsbCYmdHlwZW9mIEE9PSJvYmplY3QiLEFJPUE9PkE9PT0hMHx8QT09PSExLFJBPUE9PntpZihVQShBKSE9PSJvYmplY3QiKXJldHVybiExO2xldCB0PXZBKEEpO3JldHVybih0PT09bnVsbHx8dD09PU9iamVjdC5wcm90b3R5cGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KT09PW51bGwpJiYhKFl0IGluIEEpJiYhKE5BIGluIEEpfSx0ST1BPT57aWYoIWlBKEEpfHxnQShBKSlyZXR1cm4hMTt0cnl7cmV0dXJuIE9iamVjdC5rZXlzKEEpLmxlbmd0aD09PTAmJk9iamVjdC5nZXRQcm90b3R5cGVPZihBKT09PU9iamVjdC5wcm90b3R5cGV9Y2F0Y2h7cmV0dXJuITF9fSxlST1MKCJEYXRlIiksSUk9TCgiRmlsZSIpLHJJPUwoIkJsb2IiKSxvST1MKCJGaWxlTGlzdCIpLGdJPUE9PmlBKEEpJiZOKEEucGlwZSksaUk9QT0+e2xldCB0O3JldHVybiBBJiYodHlwZW9mIEZvcm1EYXRhPT0iZnVuY3Rpb24iJiZBIGluc3RhbmNlb2YgRm9ybURhdGF8fE4oQS5hcHBlbmQpJiYoKHQ9VUEoQSkpPT09ImZvcm1kYXRhInx8dD09PSJvYmplY3QiJiZOKEEudG9TdHJpbmcpJiZBLnRvU3RyaW5nKCk9PT0iW29iamVjdCBGb3JtRGF0YV0iKSl9LHNJPUwoIlVSTFNlYXJjaFBhcmFtcyIpLFtuSSxDSSxCSSxhSV09WyJSZWFkYWJsZVN0cmVhbSIsIlJlcXVlc3QiLCJSZXNwb25zZSIsIkhlYWRlcnMiXS5tYXAoTCksUUk9QT0+QS50cmltP0EudHJpbSgpOkEucmVwbGFjZSgvXltcXHNcXHVGRUZGXFx4QTBdK3xbXFxzXFx1RkVGRlxceEEwXSskL2csIiIpO2Z1bmN0aW9uIHNBKEEsdCx7YWxsT3duS2V5czplPSExfT17fSl7aWYoQT09PW51bGx8fHR5cGVvZiBBPiJ1IilyZXR1cm47bGV0IEkscjtpZih0eXBlb2YgQSE9Im9iamVjdCImJihBPVtBXSksdihBKSlmb3IoST0wLHI9QS5sZW5ndGg7STxyO0krKyl0LmNhbGwobnVsbCxBW0ldLEksQSk7ZWxzZXtpZihnQShBKSlyZXR1cm47bGV0IGc9ZT9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKTpPYmplY3Qua2V5cyhBKSxvPWcubGVuZ3RoLG47Zm9yKEk9MDtJPG87SSsrKW49Z1tJXSx0LmNhbGwobnVsbCxBW25dLG4sQSl9fWZ1bmN0aW9uIEt0KEEsdCl7aWYoZ0EoQSkpcmV0dXJuIG51bGw7dD10LnRvTG93ZXJDYXNlKCk7bGV0IGU9T2JqZWN0LmtleXMoQSksST1lLmxlbmd0aCxyO2Zvcig7SS0tID4wOylpZihyPWVbSV0sdD09PXIudG9Mb3dlckNhc2UoKSlyZXR1cm4gcjtyZXR1cm4gbnVsbH12YXIgWj10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6Z2xvYmFsLE90PUE9PiF6KEEpJiZBIT09WjtmdW5jdGlvbiB6QSgpe2xldHtjYXNlbGVzczpBLHNraXBVbmRlZmluZWQ6dH09T3QodGhpcykmJnRoaXN8fHt9LGU9e30sST0ocixnKT0+e2xldCBvPUEmJkt0KGUsZyl8fGc7UkEoZVtvXSkmJlJBKHIpP2Vbb109ekEoZVtvXSxyKTpSQShyKT9lW29dPXpBKHt9LHIpOnYocik/ZVtvXT1yLnNsaWNlKCk6KCF0fHwheihyKSkmJihlW29dPXIpfTtmb3IobGV0IHI9MCxnPWFyZ3VtZW50cy5sZW5ndGg7cjxnO3IrKylhcmd1bWVudHNbcl0mJnNBKGFyZ3VtZW50c1tyXSxJKTtyZXR1cm4gZX12YXIgRUk9KEEsdCxlLHthbGxPd25LZXlzOkl9PXt9KT0+KHNBKHQsKHIsZyk9PntlJiZOKHIpP0FbZ109b0EocixlKTpBW2ddPXJ9LHthbGxPd25LZXlzOkl9KSxBKSxjST1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLGZJPShBLHQsZSxJKT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUsSSksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTp0LnByb3RvdHlwZX0pLGUmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsZSl9LGxJPShBLHQsZSxJKT0+e2xldCByLGcsbyxuPXt9O2lmKHQ9dHx8e30sQT09bnVsbClyZXR1cm4gdDtkb3tmb3Iocj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxnPXIubGVuZ3RoO2ctLSA+MDspbz1yW2ddLCghSXx8SShvLEEsdCkpJiYhbltvXSYmKHRbb109QVtvXSxuW29dPSEwKTtBPWUhPT0hMSYmdkEoQSl9d2hpbGUoQSYmKCFlfHxlKEEsdCkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIHR9LHVJPShBLHQsZSk9PntBPVN0cmluZyhBKSwoZT09PXZvaWQgMHx8ZT5BLmxlbmd0aCkmJihlPUEubGVuZ3RoKSxlLT10Lmxlbmd0aDtsZXQgST1BLmluZGV4T2YodCxlKTtyZXR1cm4gSSE9PS0xJiZJPT09ZX0sZEk9QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKHYoQSkpcmV0dXJuIEE7bGV0IHQ9QS5sZW5ndGg7aWYoIU10KHQpKXJldHVybiBudWxsO2xldCBlPW5ldyBBcnJheSh0KTtmb3IoO3QtLSA+MDspZVt0XT1BW3RdO3JldHVybiBlfSxEST0oQT0+dD0+QSYmdCBpbnN0YW5jZW9mIEEpKHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmdkEoVWludDhBcnJheSkpLGhJPShBLHQpPT57bGV0IEk9KEEmJkFbTkFdKS5jYWxsKEEpLHI7Zm9yKDsocj1JLm5leHQoKSkmJiFyLmRvbmU7KXtsZXQgZz1yLnZhbHVlO3QuY2FsbChBLGdbMF0sZ1sxXSl9fSx5ST0oQSx0KT0+e2xldCBlLEk9W107Zm9yKDsoZT1BLmV4ZWModCkpIT09bnVsbDspSS5wdXNoKGUpO3JldHVybiBJfSxtST1MKCJIVE1MRm9ybUVsZW1lbnQiKSx3ST1BPT5BLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvWy1fXFxzXShbYS16XFxkXSkoXFx3KikvZyxmdW5jdGlvbihlLEkscil7cmV0dXJuIEkudG9VcHBlckNhc2UoKStyfSksSHQ9KCh7aGFzT3duUHJvcGVydHk6QX0pPT4odCxlKT0+QS5jYWxsKHQsZSkpKE9iamVjdC5wcm90b3R5cGUpLHBJPUwoIlJlZ0V4cCIpLFR0PShBLHQpPT57bGV0IGU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoQSksST17fTtzQShlLChyLGcpPT57bGV0IG87KG89dChyLGcsQSkpIT09ITEmJihJW2ddPW98fHIpfSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQSxJKX0sU0k9QT0+e1R0KEEsKHQsZSk9PntpZihOKEEpJiZbImFyZ3VtZW50cyIsImNhbGxlciIsImNhbGxlZSJdLmluZGV4T2YoZSkhPT0tMSlyZXR1cm4hMTtsZXQgST1BW2VdO2lmKE4oSSkpe2lmKHQuZW51bWVyYWJsZT0hMSwid3JpdGFibGUiaW4gdCl7dC53cml0YWJsZT0hMTtyZXR1cm59dC5zZXR8fCh0LnNldD0oKT0+e3Rocm93IEVycm9yKCJDYW4gbm90IHJld3JpdGUgcmVhZC1vbmx5IG1ldGhvZCBcJyIrZSsiXCciKX0pfX0pfSxGST0oQSx0KT0+e2xldCBlPXt9LEk9cj0+e3IuZm9yRWFjaChnPT57ZVtnXT0hMH0pfTtyZXR1cm4gdihBKT9JKEEpOkkoU3RyaW5nKEEpLnNwbGl0KHQpKSxlfSxSST0oKT0+e30sTkk9KEEsdCk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOnQ7ZnVuY3Rpb24gVUkoQSl7cmV0dXJuISEoQSYmTihBLmFwcGVuZCkmJkFbWXRdPT09IkZvcm1EYXRhIiYmQVtOQV0pfXZhciBHST1BPT57bGV0IHQ9bmV3IEFycmF5KDEwKSxlPShJLHIpPT57aWYoaUEoSSkpe2lmKHQuaW5kZXhPZihJKT49MClyZXR1cm47aWYoZ0EoSSkpcmV0dXJuIEk7aWYoISgidG9KU09OImluIEkpKXt0W3JdPUk7bGV0IGc9dihJKT9bXTp7fTtyZXR1cm4gc0EoSSwobyxuKT0+e2xldCBFPWUobyxyKzEpOyF6KEUpJiYoZ1tuXT1FKX0pLHRbcl09dm9pZCAwLGd9fXJldHVybiBJfTtyZXR1cm4gZShBLDApfSxrST1MKCJBc3luY0Z1bmN0aW9uIiksTEk9QT0+QSYmKGlBKEEpfHxOKEEpKSYmTihBLnRoZW4pJiZOKEEuY2F0Y2gpLHh0PSgoQSx0KT0+QT9zZXRJbW1lZGlhdGU6dD8oKGUsSSk9PihaLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCh7c291cmNlOnIsZGF0YTpnfSk9PntyPT09WiYmZz09PWUmJkkubGVuZ3RoJiZJLnNoaWZ0KCkoKX0sITEpLHI9PntJLnB1c2gociksWi5wb3N0TWVzc2FnZShlLCIqIil9KSkoYGF4aW9zQCR7TWF0aC5yYW5kb20oKX1gLFtdKTplPT5zZXRUaW1lb3V0KGUpKSh0eXBlb2Ygc2V0SW1tZWRpYXRlPT0iZnVuY3Rpb24iLE4oWi5wb3N0TWVzc2FnZSkpLGJJPXR5cGVvZiBxdWV1ZU1pY3JvdGFzazwidSI/cXVldWVNaWNyb3Rhc2suYmluZChaKTp0eXBlb2YgcHJvY2VzczwidSImJnByb2Nlc3MubmV4dFRpY2t8fHh0LEpJPUE9PkEhPW51bGwmJk4oQVtOQV0pLGk9e2lzQXJyYXk6dixpc0FycmF5QnVmZmVyOnF0LGlzQnVmZmVyOmdBLGlzRm9ybURhdGE6aUksaXNBcnJheUJ1ZmZlclZpZXc6dmUsaXNTdHJpbmc6JGUsaXNOdW1iZXI6TXQsaXNCb29sZWFuOkFJLGlzT2JqZWN0OmlBLGlzUGxhaW5PYmplY3Q6UkEsaXNFbXB0eU9iamVjdDp0SSxpc1JlYWRhYmxlU3RyZWFtOm5JLGlzUmVxdWVzdDpDSSxpc1Jlc3BvbnNlOkJJLGlzSGVhZGVyczphSSxpc1VuZGVmaW5lZDp6LGlzRGF0ZTplSSxpc0ZpbGU6SUksaXNCbG9iOnJJLGlzUmVnRXhwOnBJLGlzRnVuY3Rpb246Tixpc1N0cmVhbTpnSSxpc1VSTFNlYXJjaFBhcmFtczpzSSxpc1R5cGVkQXJyYXk6REksaXNGaWxlTGlzdDpvSSxmb3JFYWNoOnNBLG1lcmdlOnpBLGV4dGVuZDpFSSx0cmltOlFJLHN0cmlwQk9NOmNJLGluaGVyaXRzOmZJLHRvRmxhdE9iamVjdDpsSSxraW5kT2Y6VUEsa2luZE9mVGVzdDpMLGVuZHNXaXRoOnVJLHRvQXJyYXk6ZEksZm9yRWFjaEVudHJ5OmhJLG1hdGNoQWxsOnlJLGlzSFRNTEZvcm06bUksaGFzT3duUHJvcGVydHk6SHQsaGFzT3duUHJvcDpIdCxyZWR1Y2VEZXNjcmlwdG9yczpUdCxmcmVlemVNZXRob2RzOlNJLHRvT2JqZWN0U2V0OkZJLHRvQ2FtZWxDYXNlOndJLG5vb3A6UkksdG9GaW5pdGVOdW1iZXI6TkksZmluZEtleTpLdCxnbG9iYWw6Wixpc0NvbnRleHREZWZpbmVkOk90LGlzU3BlY0NvbXBsaWFudEZvcm06VUksdG9KU09OT2JqZWN0OkdJLGlzQXN5bmNGbjprSSxpc1RoZW5hYmxlOkxJLHNldEltbWVkaWF0ZTp4dCxhc2FwOmJJLGlzSXRlcmFibGU6Skl9O2Z1bmN0aW9uICQoQSx0LGUsSSxyKXtFcnJvci5jYWxsKHRoaXMpLEVycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsdGhpcy5jb25zdHJ1Y3Rvcik6dGhpcy5zdGFjaz1uZXcgRXJyb3IoKS5zdGFjayx0aGlzLm1lc3NhZ2U9QSx0aGlzLm5hbWU9IkF4aW9zRXJyb3IiLHQmJih0aGlzLmNvZGU9dCksZSYmKHRoaXMuY29uZmlnPWUpLEkmJih0aGlzLnJlcXVlc3Q9SSksciYmKHRoaXMucmVzcG9uc2U9cix0aGlzLnN0YXR1cz1yLnN0YXR1cz9yLnN0YXR1czpudWxsKX1pLmluaGVyaXRzKCQsRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzppLnRvSlNPTk9iamVjdCh0aGlzLmNvbmZpZyksY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMuc3RhdHVzfX19KTt2YXIgUHQ9JC5wcm90b3R5cGUsanQ9e307WyJFUlJfQkFEX09QVElPTl9WQUxVRSIsIkVSUl9CQURfT1BUSU9OIiwiRUNPTk5BQk9SVEVEIiwiRVRJTUVET1VUIiwiRVJSX05FVFdPUksiLCJFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIiwiRVJSX0RFUFJFQ0FURUQiLCJFUlJfQkFEX1JFU1BPTlNFIiwiRVJSX0JBRF9SRVFVRVNUIiwiRVJSX0NBTkNFTEVEIiwiRVJSX05PVF9TVVBQT1JUIiwiRVJSX0lOVkFMSURfVVJMIl0uZm9yRWFjaChBPT57anRbQV09e3ZhbHVlOkF9fSk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoJCxqdCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFB0LCJpc0F4aW9zRXJyb3IiLHt2YWx1ZTohMH0pOyQuZnJvbT0oQSx0LGUsSSxyLGcpPT57bGV0IG89T2JqZWN0LmNyZWF0ZShQdCk7aS50b0ZsYXRPYmplY3QoQSxvLGZ1bmN0aW9uKHMpe3JldHVybiBzIT09RXJyb3IucHJvdG90eXBlfSxCPT5CIT09ImlzQXhpb3NFcnJvciIpO2xldCBuPUEmJkEubWVzc2FnZT9BLm1lc3NhZ2U6IkVycm9yIixFPXQ9PW51bGwmJkE/QS5jb2RlOnQ7cmV0dXJuICQuY2FsbChvLG4sRSxlLEksciksQSYmby5jYXVzZT09bnVsbCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sImNhdXNlIix7dmFsdWU6QSxjb25maWd1cmFibGU6ITB9KSxvLm5hbWU9QSYmQS5uYW1lfHwiRXJyb3IiLGcmJk9iamVjdC5hc3NpZ24obyxnKSxvfTt2YXIgdT0kO3ZhciBrQT1udWxsO2Z1bmN0aW9uICRBKEEpe3JldHVybiBpLmlzUGxhaW5PYmplY3QoQSl8fGkuaXNBcnJheShBKX1mdW5jdGlvbiBadChBKXtyZXR1cm4gaS5lbmRzV2l0aChBLCJbXSIpP0Euc2xpY2UoMCwtMik6QX1mdW5jdGlvbiBXdChBLHQsZSl7cmV0dXJuIEE/QS5jb25jYXQodCkubWFwKGZ1bmN0aW9uKHIsZyl7cmV0dXJuIHI9WnQociksIWUmJmc/IlsiK3IrIl0iOnJ9KS5qb2luKGU/Ii4iOiIiKTp0fWZ1bmN0aW9uIEhJKEEpe3JldHVybiBpLmlzQXJyYXkoQSkmJiFBLnNvbWUoJEEpfXZhciBZST1pLnRvRmxhdE9iamVjdChpLHt9LG51bGwsZnVuY3Rpb24odCl7cmV0dXJuL15pc1tBLVpdLy50ZXN0KHQpfSk7ZnVuY3Rpb24gcUkoQSx0LGUpe2lmKCFpLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoInRhcmdldCBtdXN0IGJlIGFuIG9iamVjdCIpO3Q9dHx8bmV3KGtBfHxGb3JtRGF0YSksZT1pLnRvRmxhdE9iamVjdChlLHttZXRhVG9rZW5zOiEwLGRvdHM6ITEsaW5kZXhlczohMX0sITEsZnVuY3Rpb24oZixjKXtyZXR1cm4haS5pc1VuZGVmaW5lZChjW2ZdKX0pO2xldCBJPWUubWV0YVRva2VucyxyPWUudmlzaXRvcnx8cyxnPWUuZG90cyxvPWUuaW5kZXhlcyxFPShlLkJsb2J8fHR5cGVvZiBCbG9iPCJ1IiYmQmxvYikmJmkuaXNTcGVjQ29tcGxpYW50Rm9ybSh0KTtpZighaS5pc0Z1bmN0aW9uKHIpKXRocm93IG5ldyBUeXBlRXJyb3IoInZpc2l0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uIik7ZnVuY3Rpb24gQihRKXtpZihRPT09bnVsbClyZXR1cm4iIjtpZihpLmlzRGF0ZShRKSlyZXR1cm4gUS50b0lTT1N0cmluZygpO2lmKGkuaXNCb29sZWFuKFEpKXJldHVybiBRLnRvU3RyaW5nKCk7aWYoIUUmJmkuaXNCbG9iKFEpKXRocm93IG5ldyB1KCJCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLiIpO3JldHVybiBpLmlzQXJyYXlCdWZmZXIoUSl8fGkuaXNUeXBlZEFycmF5KFEpP0UmJnR5cGVvZiBCbG9iPT0iZnVuY3Rpb24iP25ldyBCbG9iKFtRXSk6QnVmZmVyLmZyb20oUSk6UX1mdW5jdGlvbiBzKFEsZixjKXtsZXQgRD1RO2lmKFEmJiFjJiZ0eXBlb2YgUT09Im9iamVjdCIpe2lmKGkuZW5kc1dpdGgoZiwie30iKSlmPUk/ZjpmLnNsaWNlKDAsLTIpLFE9SlNPTi5zdHJpbmdpZnkoUSk7ZWxzZSBpZihpLmlzQXJyYXkoUSkmJkhJKFEpfHwoaS5pc0ZpbGVMaXN0KFEpfHxpLmVuZHNXaXRoKGYsIltdIikpJiYoRD1pLnRvQXJyYXkoUSkpKXJldHVybiBmPVp0KGYpLEQuZm9yRWFjaChmdW5jdGlvbih5LFIpeyEoaS5pc1VuZGVmaW5lZCh5KXx8eT09PW51bGwpJiZ0LmFwcGVuZChvPT09ITA/V3QoW2ZdLFIsZyk6bz09PW51bGw/ZjpmKyJbXSIsQih5KSl9KSwhMX1yZXR1cm4gJEEoUSk/ITA6KHQuYXBwZW5kKFd0KGMsZixnKSxCKFEpKSwhMSl9bGV0IEM9W10sbD1PYmplY3QuYXNzaWduKFlJLHtkZWZhdWx0VmlzaXRvcjpzLGNvbnZlcnRWYWx1ZTpCLGlzVmlzaXRhYmxlOiRBfSk7ZnVuY3Rpb24gYShRLGYpe2lmKCFpLmlzVW5kZWZpbmVkKFEpKXtpZihDLmluZGV4T2YoUSkhPT0tMSl0aHJvdyBFcnJvcigiQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIGluICIrZi5qb2luKCIuIikpO0MucHVzaChRKSxpLmZvckVhY2goUSxmdW5jdGlvbihELEYpeyghKGkuaXNVbmRlZmluZWQoRCl8fEQ9PT1udWxsKSYmci5jYWxsKHQsRCxpLmlzU3RyaW5nKEYpP0YudHJpbSgpOkYsZixsKSk9PT0hMCYmYShELGY/Zi5jb25jYXQoRik6W0ZdKX0pLEMucG9wKCl9fWlmKCFpLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoImRhdGEgbXVzdCBiZSBhbiBvYmplY3QiKTtyZXR1cm4gYShBKSx0fXZhciBUPXFJO2Z1bmN0aW9uIFZ0KEEpe2xldCB0PXsiISI6IiUyNTIxIiwiXCciOiIlMjUyNyIsIigiOiIlMjUyOCIsIikiOiIlMjUyOSIsIn4iOiIlMjU3RSIsIiUyNTIwIjoiKyIsIiUyNTAwIjoiXFwwIn07cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC9bIVwnKCl+XXwlMjUyMHwlMjUwMC9nLGZ1bmN0aW9uKEkpe3JldHVybiB0W0ldfSl9ZnVuY3Rpb24gWHQoQSx0KXt0aGlzLl9wYWlycz1bXSxBJiZUKEEsdGhpcyx0KX12YXIgX3Q9WHQucHJvdG90eXBlO190LmFwcGVuZD1mdW5jdGlvbih0LGUpe3RoaXMuX3BhaXJzLnB1c2goW3QsZV0pfTtfdC50b1N0cmluZz1mdW5jdGlvbih0KXtsZXQgZT10P2Z1bmN0aW9uKEkpe3JldHVybiB0LmNhbGwodGhpcyxJLFZ0KX06VnQ7cmV0dXJuIHRoaXMuX3BhaXJzLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gZShyWzBdKSsiPSIrZShyWzFdKX0sIiIpLmpvaW4oIiYiKX07dmFyIExBPVh0O2Z1bmN0aW9uIE1JKEEpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvJTI1M0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjUyNC9nLCIkIikucmVwbGFjZSgvJTI1MkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjUyMC9nLCIrIil9ZnVuY3Rpb24gbkEoQSx0LGUpe2lmKCF0KXJldHVybiBBO2xldCBJPWUmJmUuZW5jb2RlfHxNSTtpLmlzRnVuY3Rpb24oZSkmJihlPXtzZXJpYWxpemU6ZX0pO2xldCByPWUmJmUuc2VyaWFsaXplLGc7aWYocj9nPXIodCxlKTpnPWkuaXNVUkxTZWFyY2hQYXJhbXModCk/dC50b1N0cmluZygpOm5ldyBMQSh0LGUpLnRvU3RyaW5nKEkpLGcpe2xldCBvPUEuaW5kZXhPZigiJTIzIik7byE9PS0xJiYoQT1BLnNsaWNlKDAsbykpLEErPShBLmluZGV4T2YoIj8iKT09PS0xPyI/IjoiJiIpK2d9cmV0dXJuIEF9dmFyIEF0PWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5oYW5kbGVycz1bXX11c2UodCxlLEkpe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDp0LHJlamVjdGVkOmUsc3luY2hyb25vdXM6ST9JLnN5bmNocm9ub3VzOiExLHJ1bldoZW46ST9JLnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9ZWplY3QodCl7dGhpcy5oYW5kbGVyc1t0XSYmKHRoaXMuaGFuZGxlcnNbdF09bnVsbCl9Y2xlYXIoKXt0aGlzLmhhbmRsZXJzJiYodGhpcy5oYW5kbGVycz1bXSl9Zm9yRWFjaCh0KXtpLmZvckVhY2godGhpcy5oYW5kbGVycyxmdW5jdGlvbihJKXtJIT09bnVsbCYmdChJKX0pfX0sdHQ9QXQ7dmFyIGJBPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfTt2YXIgenQ9dHlwZW9mIFVSTFNlYXJjaFBhcmFtczwidSI/VVJMU2VhcmNoUGFyYW1zOkxBO3ZhciB2dD10eXBlb2YgRm9ybURhdGE8InUiP0Zvcm1EYXRhOm51bGw7dmFyICR0PXR5cGVvZiBCbG9iPCJ1Ij9CbG9iOm51bGw7dmFyIEFlPXtpc0Jyb3dzZXI6ITAsY2xhc3Nlczp7VVJMU2VhcmNoUGFyYW1zOnp0LEZvcm1EYXRhOnZ0LEJsb2I6JHR9LHByb3RvY29sczpbImh0dHAiLCJodHRwcyIsImZpbGUiLCJibG9iIiwidXJsIiwiZGF0YSJdfTt2YXIgcnQ9e307cWUocnQse2hhc0Jyb3dzZXJFbnY6KCk9Pkl0LGhhc1N0YW5kYXJkQnJvd3NlckVudjooKT0+S0ksaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52OigpPT5PSSxuYXZpZ2F0b3I6KCk9PmV0LG9yaWdpbjooKT0+VEl9KTt2YXIgSXQ9dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiBkb2N1bWVudDwidSIsZXQ9dHlwZW9mIG5hdmlnYXRvcj09Im9iamVjdCImJm5hdmlnYXRvcnx8dm9pZCAwLEtJPUl0JiYoIWV0fHxbIlJlYWN0TmF0aXZlIiwiTmF0aXZlU2NyaXB0IiwiTlMiXS5pbmRleE9mKGV0LnByb2R1Y3QpPDApLE9JPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZTwidSImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSYmdHlwZW9mIHNlbGYuaW1wb3J0U2NyaXB0cz09ImZ1bmN0aW9uIixUST1JdCYmd2luZG93LmxvY2F0aW9uLmhyZWZ8fCJodHRwOi8vbG9jYWxob3N0Ijt2YXIgaD17Li4ucnQsLi4uQWV9O2Z1bmN0aW9uIG90KEEsdCl7cmV0dXJuIFQoQSxuZXcgaC5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcyx7dmlzaXRvcjpmdW5jdGlvbihlLEkscixnKXtyZXR1cm4gaC5pc05vZGUmJmkuaXNCdWZmZXIoZSk/KHRoaXMuYXBwZW5kKEksZS50b1N0cmluZygiYmFzZTY0IikpLCExKTpnLmRlZmF1bHRWaXNpdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sLi4udH0pfWZ1bmN0aW9uIHhJKEEpe3JldHVybiBpLm1hdGNoQWxsKC9cXHcrfFxcWyhcXHcqKV0vZyxBKS5tYXAodD0+dFswXT09PSJbXSI/IiI6dFsxXXx8dFswXSl9ZnVuY3Rpb24gUEkoQSl7bGV0IHQ9e30sZT1PYmplY3Qua2V5cyhBKSxJLHI9ZS5sZW5ndGgsZztmb3IoST0wO0k8cjtJKyspZz1lW0ldLHRbZ109QVtnXTtyZXR1cm4gdH1mdW5jdGlvbiBqSShBKXtmdW5jdGlvbiB0KGUsSSxyLGcpe2xldCBvPWVbZysrXTtpZihvPT09Il9fcHJvdG9fXyIpcmV0dXJuITA7bGV0IG49TnVtYmVyLmlzRmluaXRlKCtvKSxFPWc+PWUubGVuZ3RoO3JldHVybiBvPSFvJiZpLmlzQXJyYXkocik/ci5sZW5ndGg6byxFPyhpLmhhc093blByb3AocixvKT9yW29dPVtyW29dLEldOnJbb109SSwhbik6KCghcltvXXx8IWkuaXNPYmplY3QocltvXSkpJiYocltvXT1bXSksdChlLEkscltvXSxnKSYmaS5pc0FycmF5KHJbb10pJiYocltvXT1QSShyW29dKSksIW4pfWlmKGkuaXNGb3JtRGF0YShBKSYmaS5pc0Z1bmN0aW9uKEEuZW50cmllcykpe2xldCBlPXt9O3JldHVybiBpLmZvckVhY2hFbnRyeShBLChJLHIpPT57dCh4SShJKSxyLGUsMCl9KSxlfXJldHVybiBudWxsfXZhciBKQT1qSTtmdW5jdGlvbiBXSShBLHQsZSl7aWYoaS5pc1N0cmluZyhBKSl0cnl7cmV0dXJuKHR8fEpTT04ucGFyc2UpKEEpLGkudHJpbShBKX1jYXRjaChJKXtpZihJLm5hbWUhPT0iU3ludGF4RXJyb3IiKXRocm93IEl9cmV0dXJuKGV8fEpTT04uc3RyaW5naWZ5KShBKX12YXIgZ3Q9e3RyYW5zaXRpb25hbDpiQSxhZGFwdGVyOlsieGhyIiwiaHR0cCIsImZldGNoIl0sdHJhbnNmb3JtUmVxdWVzdDpbZnVuY3Rpb24odCxlKXtsZXQgST1lLmdldENvbnRlbnRUeXBlKCl8fCIiLHI9SS5pbmRleE9mKCJhcHBsaWNhdGlvbi9qc29uIik+LTEsZz1pLmlzT2JqZWN0KHQpO2lmKGcmJmkuaXNIVE1MRm9ybSh0KSYmKHQ9bmV3IEZvcm1EYXRhKHQpKSxpLmlzRm9ybURhdGEodCkpcmV0dXJuIHI/SlNPTi5zdHJpbmdpZnkoSkEodCkpOnQ7aWYoaS5pc0FycmF5QnVmZmVyKHQpfHxpLmlzQnVmZmVyKHQpfHxpLmlzU3RyZWFtKHQpfHxpLmlzRmlsZSh0KXx8aS5pc0Jsb2IodCl8fGkuaXNSZWFkYWJsZVN0cmVhbSh0KSlyZXR1cm4gdDtpZihpLmlzQXJyYXlCdWZmZXJWaWV3KHQpKXJldHVybiB0LmJ1ZmZlcjtpZihpLmlzVVJMU2VhcmNoUGFyYW1zKHQpKXJldHVybiBlLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIsITEpLHQudG9TdHJpbmcoKTtsZXQgbjtpZihnKXtpZihJLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpPi0xKXJldHVybiBvdCh0LHRoaXMuZm9ybVNlcmlhbGl6ZXIpLnRvU3RyaW5nKCk7aWYoKG49aS5pc0ZpbGVMaXN0KHQpKXx8SS5pbmRleE9mKCJtdWx0aXBhcnQvZm9ybS1kYXRhIik+LTEpe2xldCBFPXRoaXMuZW52JiZ0aGlzLmVudi5Gb3JtRGF0YTtyZXR1cm4gVChuP3siZmlsZXNbXSI6dH06dCxFJiZuZXcgRSx0aGlzLmZvcm1TZXJpYWxpemVyKX19cmV0dXJuIGd8fHI/KGUuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL2pzb24iLCExKSxXSSh0KSk6dH1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbih0KXtsZXQgZT10aGlzLnRyYW5zaXRpb25hbHx8Z3QudHJhbnNpdGlvbmFsLEk9ZSYmZS5mb3JjZWRKU09OUGFyc2luZyxyPXRoaXMucmVzcG9uc2VUeXBlPT09Impzb24iO2lmKGkuaXNSZXNwb25zZSh0KXx8aS5pc1JlYWRhYmxlU3RyZWFtKHQpKXJldHVybiB0O2lmKHQmJmkuaXNTdHJpbmcodCkmJihJJiYhdGhpcy5yZXNwb25zZVR5cGV8fHIpKXtsZXQgbz0hKGUmJmUuc2lsZW50SlNPTlBhcnNpbmcpJiZyO3RyeXtyZXR1cm4gSlNPTi5wYXJzZSh0LHRoaXMucGFyc2VSZXZpdmVyKX1jYXRjaChuKXtpZihvKXRocm93IG4ubmFtZT09PSJTeW50YXhFcnJvciI/dS5mcm9tKG4sdS5FUlJfQkFEX1JFU1BPTlNFLHRoaXMsbnVsbCx0aGlzLnJlc3BvbnNlKTpufX1yZXR1cm4gdH1dLHRpbWVvdXQ6MCx4c3JmQ29va2llTmFtZToiWFNSRi1UT0tFTiIseHNyZkhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiIsbWF4Q29udGVudExlbmd0aDotMSxtYXhCb2R5TGVuZ3RoOi0xLGVudjp7Rm9ybURhdGE6aC5jbGFzc2VzLkZvcm1EYXRhLEJsb2I6aC5jbGFzc2VzLkJsb2J9LHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0yMDAmJnQ8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiwiQ29udGVudC1UeXBlIjp2b2lkIDB9fX07aS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCJdLEE9PntndC5oZWFkZXJzW0FdPXt9fSk7dmFyIEFBPWd0O3ZhciBaST1pLnRvT2JqZWN0U2V0KFsiYWdlIiwiYXV0aG9yaXphdGlvbiIsImNvbnRlbnQtbGVuZ3RoIiwiY29udGVudC10eXBlIiwiZXRhZyIsImV4cGlyZXMiLCJmcm9tIiwiaG9zdCIsImlmLW1vZGlmaWVkLXNpbmNlIiwiaWYtdW5tb2RpZmllZC1zaW5jZSIsImxhc3QtbW9kaWZpZWQiLCJsb2NhdGlvbiIsIm1heC1mb3J3YXJkcyIsInByb3h5LWF1dGhvcml6YXRpb24iLCJyZWZlcmVyIiwicmV0cnktYWZ0ZXIiLCJ1c2VyLWFnZW50Il0pLHRlPUE9PntsZXQgdD17fSxlLEkscjtyZXR1cm4gQSYmQS5zcGxpdChgJTBBYCkuZm9yRWFjaChmdW5jdGlvbihvKXtyPW8uaW5kZXhPZigiOiIpLGU9by5zdWJzdHJpbmcoMCxyKS50cmltKCkudG9Mb3dlckNhc2UoKSxJPW8uc3Vic3RyaW5nKHIrMSkudHJpbSgpLCEoIWV8fHRbZV0mJlpJW2VdKSYmKGU9PT0ic2V0LWNvb2tpZSI/dFtlXT90W2VdLnB1c2goSSk6dFtlXT1bSV06dFtlXT10W2VdP3RbZV0rIiwgIitJOkkpfSksdH07dmFyIGVlPVN5bWJvbCgiaW50ZXJuYWxzIik7ZnVuY3Rpb24gQ0EoQSl7cmV0dXJuIEEmJlN0cmluZyhBKS50cmltKCkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBIQShBKXtyZXR1cm4gQT09PSExfHxBPT1udWxsP0E6aS5pc0FycmF5KEEpP0EubWFwKEhBKTpTdHJpbmcoQSl9ZnVuY3Rpb24gVkkoQSl7bGV0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKSxlPS8oW15cXHMsOz1dKylcXHMqKD86PVxccyooW14sO10rKSk/L2csSTtmb3IoO0k9ZS5leGVjKEEpOyl0W0lbMV1dPUlbMl07cmV0dXJuIHR9dmFyIFhJPUE9Pi9eWy1fYS16QS1aMC05XmB8fiwhJTIzJCUmXCcqKy5dKyQvLnRlc3QoQS50cmltKCkpO2Z1bmN0aW9uIGl0KEEsdCxlLEkscil7aWYoaS5pc0Z1bmN0aW9uKEkpKXJldHVybiBJLmNhbGwodGhpcyx0LGUpO2lmKHImJih0PWUpLCEhaS5pc1N0cmluZyh0KSl7aWYoaS5pc1N0cmluZyhJKSlyZXR1cm4gdC5pbmRleE9mKEkpIT09LTE7aWYoaS5pc1JlZ0V4cChJKSlyZXR1cm4gSS50ZXN0KHQpfX1mdW5jdGlvbiBfSShBKXtyZXR1cm4gQS50cmltKCkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8oW2EtelxcZF0pKFxcdyopL2csKHQsZSxJKT0+ZS50b1VwcGVyQ2FzZSgpK0kpfWZ1bmN0aW9uIHpJKEEsdCl7bGV0IGU9aS50b0NhbWVsQ2FzZSgiICIrdCk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKEk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxJK2Use3ZhbHVlOmZ1bmN0aW9uKHIsZyxvKXtyZXR1cm4gdGhpc1tJXS5jYWxsKHRoaXMsdCxyLGcsbyl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9dmFyIHRBPWNsYXNze2NvbnN0cnVjdG9yKHQpe3QmJnRoaXMuc2V0KHQpfXNldCh0LGUsSSl7bGV0IHI9dGhpcztmdW5jdGlvbiBnKG4sRSxCKXtsZXQgcz1DQShFKTtpZighcyl0aHJvdyBuZXcgRXJyb3IoImhlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7bGV0IEM9aS5maW5kS2V5KHIscyk7KCFDfHxyW0NdPT09dm9pZCAwfHxCPT09ITB8fEI9PT12b2lkIDAmJnJbQ10hPT0hMSkmJihyW0N8fEVdPUhBKG4pKX1sZXQgbz0obixFKT0+aS5mb3JFYWNoKG4sKEIscyk9PmcoQixzLEUpKTtpZihpLmlzUGxhaW5PYmplY3QodCl8fHQgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKW8odCxlKTtlbHNlIGlmKGkuaXNTdHJpbmcodCkmJih0PXQudHJpbSgpKSYmIVhJKHQpKW8odGUodCksZSk7ZWxzZSBpZihpLmlzT2JqZWN0KHQpJiZpLmlzSXRlcmFibGUodCkpe2xldCBuPXt9LEUsQjtmb3IobGV0IHMgb2YgdCl7aWYoIWkuaXNBcnJheShzKSl0aHJvdyBUeXBlRXJyb3IoIk9iamVjdCBpdGVyYXRvciBtdXN0IHJldHVybiBhIGtleS12YWx1ZSBwYWlyIik7bltCPXNbMF1dPShFPW5bQl0pP2kuaXNBcnJheShFKT9bLi4uRSxzWzFdXTpbRSxzWzFdXTpzWzFdfW8obixlKX1lbHNlIHQhPW51bGwmJmcoZSx0LEkpO3JldHVybiB0aGlzfWdldCh0LGUpe2lmKHQ9Q0EodCksdCl7bGV0IEk9aS5maW5kS2V5KHRoaXMsdCk7aWYoSSl7bGV0IHI9dGhpc1tJXTtpZighZSlyZXR1cm4gcjtpZihlPT09ITApcmV0dXJuIFZJKHIpO2lmKGkuaXNGdW5jdGlvbihlKSlyZXR1cm4gZS5jYWxsKHRoaXMscixJKTtpZihpLmlzUmVnRXhwKGUpKXJldHVybiBlLmV4ZWMocik7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyh0LGUpe2lmKHQ9Q0EodCksdCl7bGV0IEk9aS5maW5kS2V5KHRoaXMsdCk7cmV0dXJuISEoSSYmdGhpc1tJXSE9PXZvaWQgMCYmKCFlfHxpdCh0aGlzLHRoaXNbSV0sSSxlKSkpfXJldHVybiExfWRlbGV0ZSh0LGUpe2xldCBJPXRoaXMscj0hMTtmdW5jdGlvbiBnKG8pe2lmKG89Q0Eobyksbyl7bGV0IG49aS5maW5kS2V5KEksbyk7biYmKCFlfHxpdChJLElbbl0sbixlKSkmJihkZWxldGUgSVtuXSxyPSEwKX19cmV0dXJuIGkuaXNBcnJheSh0KT90LmZvckVhY2goZyk6Zyh0KSxyfWNsZWFyKHQpe2xldCBlPU9iamVjdC5rZXlzKHRoaXMpLEk9ZS5sZW5ndGgscj0hMTtmb3IoO0ktLTspe2xldCBnPWVbSV07KCF0fHxpdCh0aGlzLHRoaXNbZ10sZyx0LCEwKSkmJihkZWxldGUgdGhpc1tnXSxyPSEwKX1yZXR1cm4gcn1ub3JtYWxpemUodCl7bGV0IGU9dGhpcyxJPXt9O3JldHVybiBpLmZvckVhY2godGhpcywocixnKT0+e2xldCBvPWkuZmluZEtleShJLGcpO2lmKG8pe2Vbb109SEEociksZGVsZXRlIGVbZ107cmV0dXJufWxldCBuPXQ/X0koZyk6U3RyaW5nKGcpLnRyaW0oKTtuIT09ZyYmZGVsZXRlIGVbZ10sZVtuXT1IQShyKSxJW25dPSEwfSksdGhpc31jb25jYXQoLi4udCl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4udCl9dG9KU09OKHQpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGkuZm9yRWFjaCh0aGlzLChJLHIpPT57SSE9bnVsbCYmSSE9PSExJiYoZVtyXT10JiZpLmlzQXJyYXkoSSk/SS5qb2luKCIsICIpOkkpfSksZX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbdCxlXSk9PnQrIjogIitlKS5qb2luKGAlMEFgKX1nZXRTZXRDb29raWUoKXtyZXR1cm4gdGhpcy5nZXQoInNldC1jb29raWUiKXx8W119Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm4iQXhpb3NIZWFkZXJzIn1zdGF0aWMgZnJvbSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIHRoaXM/dDpuZXcgdGhpcyh0KX1zdGF0aWMgY29uY2F0KHQsLi4uZSl7bGV0IEk9bmV3IHRoaXModCk7cmV0dXJuIGUuZm9yRWFjaChyPT5JLnNldChyKSksSX1zdGF0aWMgYWNjZXNzb3IodCl7bGV0IEk9KHRoaXNbZWVdPXRoaXNbZWVdPXthY2Nlc3NvcnM6e319KS5hY2Nlc3NvcnMscj10aGlzLnByb3RvdHlwZTtmdW5jdGlvbiBnKG8pe2xldCBuPUNBKG8pO0lbbl18fCh6SShyLG8pLElbbl09ITApfXJldHVybiBpLmlzQXJyYXkodCk/dC5mb3JFYWNoKGcpOmcodCksdGhpc319O3RBLmFjY2Vzc29yKFsiQ29udGVudC1UeXBlIiwiQ29udGVudC1MZW5ndGgiLCJBY2NlcHQiLCJBY2NlcHQtRW5jb2RpbmciLCJVc2VyLUFnZW50IiwiQXV0aG9yaXphdGlvbiJdKTtpLnJlZHVjZURlc2NyaXB0b3JzKHRBLnByb3RvdHlwZSwoe3ZhbHVlOkF9LHQpPT57bGV0IGU9dFswXS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSk7cmV0dXJue2dldDooKT0+QSxzZXQoSSl7dGhpc1tlXT1JfX19KTtpLmZyZWV6ZU1ldGhvZHModEEpO3ZhciBwPXRBO2Z1bmN0aW9uIEJBKEEsdCl7bGV0IGU9dGhpc3x8QUEsST10fHxlLHI9cC5mcm9tKEkuaGVhZGVycyksZz1JLmRhdGE7cmV0dXJuIGkuZm9yRWFjaChBLGZ1bmN0aW9uKG4pe2c9bi5jYWxsKGUsZyxyLm5vcm1hbGl6ZSgpLHQ/dC5zdGF0dXM6dm9pZCAwKX0pLHIubm9ybWFsaXplKCksZ31mdW5jdGlvbiBhQShBKXtyZXR1cm4hIShBJiZBLl9fQ0FOQ0VMX18pfWZ1bmN0aW9uIEllKEEsdCxlKXt1LmNhbGwodGhpcyxBPz8iY2FuY2VsZWQiLHUuRVJSX0NBTkNFTEVELHQsZSksdGhpcy5uYW1lPSJDYW5jZWxlZEVycm9yIn1pLmluaGVyaXRzKEllLHUse19fQ0FOQ0VMX186ITB9KTt2YXIgSD1JZTtmdW5jdGlvbiBRQShBLHQsZSl7bGV0IEk9ZS5jb25maWcudmFsaWRhdGVTdGF0dXM7IWUuc3RhdHVzfHwhSXx8SShlLnN0YXR1cyk/QShlKTp0KG5ldyB1KCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrZS5zdGF0dXMsW3UuRVJSX0JBRF9SRVFVRVNULHUuRVJSX0JBRF9SRVNQT05TRV1bTWF0aC5mbG9vcihlLnN0YXR1cy8xMDApLTRdLGUuY29uZmlnLGUucmVxdWVzdCxlKSl9ZnVuY3Rpb24gc3QoQSl7bGV0IHQ9L14oWy0rXFx3XXsxLDI1fSkoOj9cXC9cXC98OikvLmV4ZWMoQSk7cmV0dXJuIHQmJnRbMV18fCIifWZ1bmN0aW9uIHZJKEEsdCl7QT1BfHwxMDtsZXQgZT1uZXcgQXJyYXkoQSksST1uZXcgQXJyYXkoQSkscj0wLGc9MCxvO3JldHVybiB0PXQhPT12b2lkIDA/dDoxZTMsZnVuY3Rpb24oRSl7bGV0IEI9RGF0ZS5ub3coKSxzPUlbZ107b3x8KG89QiksZVtyXT1FLElbcl09QjtsZXQgQz1nLGw9MDtmb3IoO0MhPT1yOylsKz1lW0MrK10sQz1DJUE7aWYocj0ocisxKSVBLHI9PT1nJiYoZz0oZysxKSVBKSxCLW88dClyZXR1cm47bGV0IGE9cyYmQi1zO3JldHVybiBhP01hdGgucm91bmQobCoxZTMvYSk6dm9pZCAwfX12YXIgcmU9dkk7ZnVuY3Rpb24gJEkoQSx0KXtsZXQgZT0wLEk9MWUzL3QscixnLG89KEIscz1EYXRlLm5vdygpKT0+e2U9cyxyPW51bGwsZyYmKGNsZWFyVGltZW91dChnKSxnPW51bGwpLEEoLi4uQil9O3JldHVyblsoLi4uQik9PntsZXQgcz1EYXRlLm5vdygpLEM9cy1lO0M+PUk/byhCLHMpOihyPUIsZ3x8KGc9c2V0VGltZW91dCgoKT0+e2c9bnVsbCxvKHIpfSxJLUMpKSl9LCgpPT5yJiZvKHIpXX12YXIgb2U9JEk7dmFyIGVBPShBLHQsZT0zKT0+e2xldCBJPTAscj1yZSg1MCwyNTApO3JldHVybiBvZShnPT57bGV0IG89Zy5sb2FkZWQsbj1nLmxlbmd0aENvbXB1dGFibGU/Zy50b3RhbDp2b2lkIDAsRT1vLUksQj1yKEUpLHM9bzw9bjtJPW87bGV0IEM9e2xvYWRlZDpvLHRvdGFsOm4scHJvZ3Jlc3M6bj9vL246dm9pZCAwLGJ5dGVzOkUscmF0ZTpCfHx2b2lkIDAsZXN0aW1hdGVkOkImJm4mJnM/KG4tbykvQjp2b2lkIDAsZXZlbnQ6ZyxsZW5ndGhDb21wdXRhYmxlOm4hPW51bGwsW3Q/ImRvd25sb2FkIjoidXBsb2FkIl06ITB9O0EoQyl9LGUpfSxudD0oQSx0KT0+e2xldCBlPUEhPW51bGw7cmV0dXJuW0k9PnRbMF0oe2xlbmd0aENvbXB1dGFibGU6ZSx0b3RhbDpBLGxvYWRlZDpJfSksdFsxXV19LEN0PUE9PiguLi50KT0+aS5hc2FwKCgpPT5BKC4uLnQpKTt2YXIgZ2U9aC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/KChBLHQpPT5lPT4oZT1uZXcgVVJMKGUsaC5vcmlnaW4pLEEucHJvdG9jb2w9PT1lLnByb3RvY29sJiZBLmhvc3Q9PT1lLmhvc3QmJih0fHxBLnBvcnQ9PT1lLnBvcnQpKSkobmV3IFVSTChoLm9yaWdpbiksaC5uYXZpZ2F0b3ImJi8obXNpZXx0cmlkZW50KS9pLnRlc3QoaC5uYXZpZ2F0b3IudXNlckFnZW50KSk6KCk9PiEwO3ZhciBpZT1oLmhhc1N0YW5kYXJkQnJvd3NlckVudj97d3JpdGUoQSx0LGUsSSxyLGcpe2xldCBvPVtBKyI9IitlbmNvZGVVUklDb21wb25lbnQodCldO2kuaXNOdW1iZXIoZSkmJm8ucHVzaCgiZXhwaXJlcz0iK25ldyBEYXRlKGUpLnRvR01UU3RyaW5nKCkpLGkuaXNTdHJpbmcoSSkmJm8ucHVzaCgicGF0aD0iK0kpLGkuaXNTdHJpbmcocikmJm8ucHVzaCgiZG9tYWluPSIrciksZz09PSEwJiZvLnB1c2goInNlY3VyZSIpLGRvY3VtZW50LmNvb2tpZT1vLmpvaW4oIjsgIil9LHJlYWQoQSl7bGV0IHQ9ZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIihefDtcXFxccyopKCIrQSsiKT0oW147XSopIikpO3JldHVybiB0P2RlY29kZVVSSUNvbXBvbmVudCh0WzNdKTpudWxsfSxyZW1vdmUoQSl7dGhpcy53cml0ZShBLCIiLERhdGUubm93KCktODY0ZTUpfX06e3dyaXRlKCl7fSxyZWFkKCl7cmV0dXJuIG51bGx9LHJlbW92ZSgpe319O2Z1bmN0aW9uIEJ0KEEpe3JldHVybi9eKFthLXpdW2EtelxcZCtcXC0uXSo6KT9cXC9cXC8vaS50ZXN0KEEpfWZ1bmN0aW9uIGF0KEEsdCl7cmV0dXJuIHQ/QS5yZXBsYWNlKC9cXC8/XFwvJC8sIiIpKyIvIit0LnJlcGxhY2UoL15cXC8rLywiIik6QX1mdW5jdGlvbiBFQShBLHQsZSl7bGV0IEk9IUJ0KHQpO3JldHVybiBBJiYoSXx8ZT09ITEpP2F0KEEsdCk6dH12YXIgc2U9QT0+QSBpbnN0YW5jZW9mIHA/ey4uLkF9OkE7ZnVuY3Rpb24gYihBLHQpe3Q9dHx8e307bGV0IGU9e307ZnVuY3Rpb24gSShCLHMsQyxsKXtyZXR1cm4gaS5pc1BsYWluT2JqZWN0KEIpJiZpLmlzUGxhaW5PYmplY3Qocyk/aS5tZXJnZS5jYWxsKHtjYXNlbGVzczpsfSxCLHMpOmkuaXNQbGFpbk9iamVjdChzKT9pLm1lcmdlKHt9LHMpOmkuaXNBcnJheShzKT9zLnNsaWNlKCk6c31mdW5jdGlvbiByKEIscyxDLGwpe2lmKGkuaXNVbmRlZmluZWQocykpe2lmKCFpLmlzVW5kZWZpbmVkKEIpKXJldHVybiBJKHZvaWQgMCxCLEMsbCl9ZWxzZSByZXR1cm4gSShCLHMsQyxsKX1mdW5jdGlvbiBnKEIscyl7aWYoIWkuaXNVbmRlZmluZWQocykpcmV0dXJuIEkodm9pZCAwLHMpfWZ1bmN0aW9uIG8oQixzKXtpZihpLmlzVW5kZWZpbmVkKHMpKXtpZighaS5pc1VuZGVmaW5lZChCKSlyZXR1cm4gSSh2b2lkIDAsQil9ZWxzZSByZXR1cm4gSSh2b2lkIDAscyl9ZnVuY3Rpb24gbihCLHMsQyl7aWYoQyBpbiB0KXJldHVybiBJKEIscyk7aWYoQyBpbiBBKXJldHVybiBJKHZvaWQgMCxCKX1sZXQgRT17dXJsOmcsbWV0aG9kOmcsZGF0YTpnLGJhc2VVUkw6byx0cmFuc2Zvcm1SZXF1ZXN0Om8sdHJhbnNmb3JtUmVzcG9uc2U6byxwYXJhbXNTZXJpYWxpemVyOm8sdGltZW91dDpvLHRpbWVvdXRNZXNzYWdlOm8sd2l0aENyZWRlbnRpYWxzOm8sd2l0aFhTUkZUb2tlbjpvLGFkYXB0ZXI6byxyZXNwb25zZVR5cGU6byx4c3JmQ29va2llTmFtZTpvLHhzcmZIZWFkZXJOYW1lOm8sb25VcGxvYWRQcm9ncmVzczpvLG9uRG93bmxvYWRQcm9ncmVzczpvLGRlY29tcHJlc3M6byxtYXhDb250ZW50TGVuZ3RoOm8sbWF4Qm9keUxlbmd0aDpvLGJlZm9yZVJlZGlyZWN0Om8sdHJhbnNwb3J0Om8saHR0cEFnZW50Om8saHR0cHNBZ2VudDpvLGNhbmNlbFRva2VuOm8sc29ja2V0UGF0aDpvLHJlc3BvbnNlRW5jb2Rpbmc6byx2YWxpZGF0ZVN0YXR1czpuLGhlYWRlcnM6KEIscyxDKT0+cihzZShCKSxzZShzKSxDLCEwKX07cmV0dXJuIGkuZm9yRWFjaChPYmplY3Qua2V5cyh7Li4uQSwuLi50fSksZnVuY3Rpb24ocyl7bGV0IEM9RVtzXXx8cixsPUMoQVtzXSx0W3NdLHMpO2kuaXNVbmRlZmluZWQobCkmJkMhPT1ufHwoZVtzXT1sKX0pLGV9dmFyIFlBPUE9PntsZXQgdD1iKHt9LEEpLHtkYXRhOmUsd2l0aFhTUkZUb2tlbjpJLHhzcmZIZWFkZXJOYW1lOnIseHNyZkNvb2tpZU5hbWU6ZyxoZWFkZXJzOm8sYXV0aDpufT10O2lmKHQuaGVhZGVycz1vPXAuZnJvbShvKSx0LnVybD1uQShFQSh0LmJhc2VVUkwsdC51cmwsdC5hbGxvd0Fic29sdXRlVXJscyksQS5wYXJhbXMsQS5wYXJhbXNTZXJpYWxpemVyKSxuJiZvLnNldCgiQXV0aG9yaXphdGlvbiIsIkJhc2ljICIrYnRvYSgobi51c2VybmFtZXx8IiIpKyI6Iisobi5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQobi5wYXNzd29yZCkpOiIiKSkpLGkuaXNGb3JtRGF0YShlKSl7aWYoaC5oYXNTdGFuZGFyZEJyb3dzZXJFbnZ8fGguaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52KW8uc2V0Q29udGVudFR5cGUodm9pZCAwKTtlbHNlIGlmKGkuaXNGdW5jdGlvbihlLmdldEhlYWRlcnMpKXtsZXQgRT1lLmdldEhlYWRlcnMoKSxCPVsiY29udGVudC10eXBlIiwiY29udGVudC1sZW5ndGgiXTtPYmplY3QuZW50cmllcyhFKS5mb3JFYWNoKChbcyxDXSk9PntCLmluY2x1ZGVzKHMudG9Mb3dlckNhc2UoKSkmJm8uc2V0KHMsQyl9KX19aWYoaC5oYXNTdGFuZGFyZEJyb3dzZXJFbnYmJihJJiZpLmlzRnVuY3Rpb24oSSkmJihJPUkodCkpLEl8fEkhPT0hMSYmZ2UodC51cmwpKSl7bGV0IEU9ciYmZyYmaWUucmVhZChnKTtFJiZvLnNldChyLEUpfXJldHVybiB0fTt2YXIgQXI9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0PCJ1IixuZT1BciYmZnVuY3Rpb24oQSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsSSl7bGV0IHI9WUEoQSksZz1yLmRhdGEsbz1wLmZyb20oci5oZWFkZXJzKS5ub3JtYWxpemUoKSx7cmVzcG9uc2VUeXBlOm4sb25VcGxvYWRQcm9ncmVzczpFLG9uRG93bmxvYWRQcm9ncmVzczpCfT1yLHMsQyxsLGEsUTtmdW5jdGlvbiBmKCl7YSYmYSgpLFEmJlEoKSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKHMpLHIuc2lnbmFsJiZyLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIscyl9bGV0IGM9bmV3IFhNTEh0dHBSZXF1ZXN0O2Mub3BlbihyLm1ldGhvZC50b1VwcGVyQ2FzZSgpLHIudXJsLCEwKSxjLnRpbWVvdXQ9ci50aW1lb3V0O2Z1bmN0aW9uIEQoKXtpZighYylyZXR1cm47bGV0IHk9cC5mcm9tKCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiaW4gYyYmYy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSksaz17ZGF0YTohbnx8bj09PSJ0ZXh0Inx8bj09PSJqc29uIj9jLnJlc3BvbnNlVGV4dDpjLnJlc3BvbnNlLHN0YXR1czpjLnN0YXR1cyxzdGF0dXNUZXh0OmMuc3RhdHVzVGV4dCxoZWFkZXJzOnksY29uZmlnOkEscmVxdWVzdDpjfTtRQShmdW5jdGlvbihHKXtlKEcpLGYoKX0sZnVuY3Rpb24oRyl7SShHKSxmKCl9LGspLGM9bnVsbH0ib25sb2FkZW5kImluIGM/Yy5vbmxvYWRlbmQ9RDpjLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpeyFjfHxjLnJlYWR5U3RhdGUhPT00fHxjLnN0YXR1cz09PTAmJiEoYy5yZXNwb25zZVVSTCYmYy5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpPT09MCl8fHNldFRpbWVvdXQoRCl9LGMub25hYm9ydD1mdW5jdGlvbigpe2MmJihJKG5ldyB1KCJSZXF1ZXN0IGFib3J0ZWQiLHUuRUNPTk5BQk9SVEVELEEsYykpLGM9bnVsbCl9LGMub25lcnJvcj1mdW5jdGlvbihSKXtsZXQgaz1SJiZSLm1lc3NhZ2U/Ui5tZXNzYWdlOiJOZXR3b3JrIEVycm9yIixQPW5ldyB1KGssdS5FUlJfTkVUV09SSyxBLGMpO1AuZXZlbnQ9Unx8bnVsbCxJKFApLGM9bnVsbH0sYy5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXtsZXQgUj1yLnRpbWVvdXQ/InRpbWVvdXQgb2YgIityLnRpbWVvdXQrIm1zIGV4Y2VlZGVkIjoidGltZW91dCBleGNlZWRlZCIsaz1yLnRyYW5zaXRpb25hbHx8YkE7ci50aW1lb3V0RXJyb3JNZXNzYWdlJiYoUj1yLnRpbWVvdXRFcnJvck1lc3NhZ2UpLEkobmV3IHUoUixrLmNsYXJpZnlUaW1lb3V0RXJyb3I/dS5FVElNRURPVVQ6dS5FQ09OTkFCT1JURUQsQSxjKSksYz1udWxsfSxnPT09dm9pZCAwJiZvLnNldENvbnRlbnRUeXBlKG51bGwpLCJzZXRSZXF1ZXN0SGVhZGVyImluIGMmJmkuZm9yRWFjaChvLnRvSlNPTigpLGZ1bmN0aW9uKFIsayl7Yy5zZXRSZXF1ZXN0SGVhZGVyKGssUil9KSxpLmlzVW5kZWZpbmVkKHIud2l0aENyZWRlbnRpYWxzKXx8KGMud2l0aENyZWRlbnRpYWxzPSEhci53aXRoQ3JlZGVudGlhbHMpLG4mJm4hPT0ianNvbiImJihjLnJlc3BvbnNlVHlwZT1yLnJlc3BvbnNlVHlwZSksQiYmKFtsLFFdPWVBKEIsITApLGMuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGwpKSxFJiZjLnVwbG9hZCYmKFtDLGFdPWVBKEUpLGMudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixDKSxjLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJsb2FkZW5kIixhKSksKHIuY2FuY2VsVG9rZW58fHIuc2lnbmFsKSYmKHM9eT0+e2MmJihJKCF5fHx5LnR5cGU/bmV3IEgobnVsbCxBLGMpOnkpLGMuYWJvcnQoKSxjPW51bGwpfSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnN1YnNjcmliZShzKSxyLnNpZ25hbCYmKHIuc2lnbmFsLmFib3J0ZWQ/cygpOnIuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixzKSkpO2xldCBGPXN0KHIudXJsKTtpZihGJiZoLnByb3RvY29scy5pbmRleE9mKEYpPT09LTEpe0kobmV3IHUoIlVuc3VwcG9ydGVkIHByb3RvY29sICIrRisiOiIsdS5FUlJfQkFEX1JFUVVFU1QsQSkpO3JldHVybn1jLnNlbmQoZ3x8bnVsbCl9KX07dmFyIHRyPShBLHQpPT57bGV0e2xlbmd0aDplfT1BPUE/QS5maWx0ZXIoQm9vbGVhbik6W107aWYodHx8ZSl7bGV0IEk9bmV3IEFib3J0Q29udHJvbGxlcixyLGc9ZnVuY3Rpb24oQil7aWYoIXIpe3I9ITAsbigpO2xldCBzPUIgaW5zdGFuY2VvZiBFcnJvcj9COnRoaXMucmVhc29uO0kuYWJvcnQocyBpbnN0YW5jZW9mIHU/czpuZXcgSChzIGluc3RhbmNlb2YgRXJyb3I/cy5tZXNzYWdlOnMpKX19LG89dCYmc2V0VGltZW91dCgoKT0+e289bnVsbCxnKG5ldyB1KGB0aW1lb3V0ICR7dH0gb2YgbXMgZXhjZWVkZWRgLHUuRVRJTUVET1VUKSl9LHQpLG49KCk9PntBJiYobyYmY2xlYXJUaW1lb3V0KG8pLG89bnVsbCxBLmZvckVhY2goQj0+e0IudW5zdWJzY3JpYmU/Qi51bnN1YnNjcmliZShnKTpCLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixnKX0pLEE9bnVsbCl9O0EuZm9yRWFjaChCPT5CLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixnKSk7bGV0e3NpZ25hbDpFfT1JO3JldHVybiBFLnVuc3Vic2NyaWJlPSgpPT5pLmFzYXAobiksRX19LENlPXRyO3ZhciBlcj1mdW5jdGlvbiooQSx0KXtsZXQgZT1BLmJ5dGVMZW5ndGg7aWYoIXR8fGU8dCl7eWllbGQgQTtyZXR1cm59bGV0IEk9MCxyO2Zvcig7STxlOylyPUkrdCx5aWVsZCBBLnNsaWNlKEksciksST1yfSxJcj1hc3luYyBmdW5jdGlvbiooQSx0KXtmb3IgYXdhaXQobGV0IGUgb2YgcnIoQSkpeWllbGQqZXIoZSx0KX0scnI9YXN5bmMgZnVuY3Rpb24qKEEpe2lmKEFbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKXt5aWVsZCpBO3JldHVybn1sZXQgdD1BLmdldFJlYWRlcigpO3RyeXtmb3IoOzspe2xldHtkb25lOmUsdmFsdWU6SX09YXdhaXQgdC5yZWFkKCk7aWYoZSlicmVhazt5aWVsZCBJfX1maW5hbGx5e2F3YWl0IHQuY2FuY2VsKCl9fSxRdD0oQSx0LGUsSSk9PntsZXQgcj1JcihBLHQpLGc9MCxvLG49RT0+e298fChvPSEwLEkmJkkoRSkpfTtyZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHthc3luYyBwdWxsKEUpe3RyeXtsZXR7ZG9uZTpCLHZhbHVlOnN9PWF3YWl0IHIubmV4dCgpO2lmKEIpe24oKSxFLmNsb3NlKCk7cmV0dXJufWxldCBDPXMuYnl0ZUxlbmd0aDtpZihlKXtsZXQgbD1nKz1DO2UobCl9RS5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KHMpKX1jYXRjaChCKXt0aHJvdyBuKEIpLEJ9fSxjYW5jZWwoRSl7cmV0dXJuIG4oRSksci5yZXR1cm4oKX19LHtoaWdoV2F0ZXJNYXJrOjJ9KX07dmFyIEJlPTY0KjEwMjQse2lzRnVuY3Rpb246cUF9PWksY2U9KCh7ZmV0Y2g6QSxSZXF1ZXN0OnQsUmVzcG9uc2U6ZX0pPT4oe2ZldGNoOkEsUmVxdWVzdDp0LFJlc3BvbnNlOmV9KSkoaS5nbG9iYWwpLHtSZWFkYWJsZVN0cmVhbTphZSxUZXh0RW5jb2RlcjpRZX09aS5nbG9iYWwsRWU9KEEsLi4udCk9Pnt0cnl7cmV0dXJuISFBKC4uLnQpfWNhdGNoe3JldHVybiExfX0sb3I9QT0+e2xldHtmZXRjaDp0LFJlcXVlc3Q6ZSxSZXNwb25zZTpJfT1PYmplY3QuYXNzaWduKHt9LGNlLEEpLHI9cUEodCksZz1xQShlKSxvPXFBKEkpO2lmKCFyKXJldHVybiExO2xldCBuPXImJnFBKGFlKSxFPXImJih0eXBlb2YgUWU9PSJmdW5jdGlvbiI/KFE9PmY9PlEuZW5jb2RlKGYpKShuZXcgUWUpOmFzeW5jIFE9Pm5ldyBVaW50OEFycmF5KGF3YWl0IG5ldyBlKFEpLmFycmF5QnVmZmVyKCkpKSxCPWcmJm4mJkVlKCgpPT57bGV0IFE9ITEsZj1uZXcgZShoLm9yaWdpbix7Ym9keTpuZXcgYWUsbWV0aG9kOiJQT1NUIixnZXQgZHVwbGV4KCl7cmV0dXJuIFE9ITAsImhhbGYifX0pLmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKTtyZXR1cm4gUSYmIWZ9KSxzPW8mJm4mJkVlKCgpPT5pLmlzUmVhZGFibGVTdHJlYW0obmV3IEkoIiIpLmJvZHkpKSxDPXtzdHJlYW06cyYmKFE9PlEuYm9keSl9O3ImJlsidGV4dCIsImFycmF5QnVmZmVyIiwiYmxvYiIsImZvcm1EYXRhIiwic3RyZWFtIl0uZm9yRWFjaChRPT57IUNbUV0mJihDW1FdPShmLGMpPT57bGV0IEQ9ZiYmZltRXTtpZihEKXJldHVybiBELmNhbGwoZik7dGhyb3cgbmV3IHUoYFJlc3BvbnNlIHR5cGUgXCcke1F9XCcgaXMgbm90IHN1cHBvcnRlZGAsdS5FUlJfTk9UX1NVUFBPUlQsYyl9KX0pO2xldCBsPWFzeW5jIFE9PntpZihRPT1udWxsKXJldHVybiAwO2lmKGkuaXNCbG9iKFEpKXJldHVybiBRLnNpemU7aWYoaS5pc1NwZWNDb21wbGlhbnRGb3JtKFEpKXJldHVybihhd2FpdCBuZXcgZShoLm9yaWdpbix7bWV0aG9kOiJQT1NUIixib2R5OlF9KS5hcnJheUJ1ZmZlcigpKS5ieXRlTGVuZ3RoO2lmKGkuaXNBcnJheUJ1ZmZlclZpZXcoUSl8fGkuaXNBcnJheUJ1ZmZlcihRKSlyZXR1cm4gUS5ieXRlTGVuZ3RoO2lmKGkuaXNVUkxTZWFyY2hQYXJhbXMoUSkmJihRPVErIiIpLGkuaXNTdHJpbmcoUSkpcmV0dXJuKGF3YWl0IEUoUSkpLmJ5dGVMZW5ndGh9LGE9YXN5bmMoUSxmKT0+e2xldCBjPWkudG9GaW5pdGVOdW1iZXIoUS5nZXRDb250ZW50TGVuZ3RoKCkpO3JldHVybiBjPz9sKGYpfTtyZXR1cm4gYXN5bmMgUT0+e2xldHt1cmw6ZixtZXRob2Q6YyxkYXRhOkQsc2lnbmFsOkYsY2FuY2VsVG9rZW46eSx0aW1lb3V0OlIsb25Eb3dubG9hZFByb2dyZXNzOmssb25VcGxvYWRQcm9ncmVzczpQLHJlc3BvbnNlVHlwZTpHLGhlYWRlcnM6V0Esd2l0aENyZWRlbnRpYWxzOmRBPSJzYW1lLW9yaWdpbiIsZmV0Y2hPcHRpb25zOm10fT1ZQShRKTtHPUc/KEcrIiIpLnRvTG93ZXJDYXNlKCk6InRleHQiO2xldCBEQT1DZShbRix5JiZ5LnRvQWJvcnRTaWduYWwoKV0sUiksckE9bnVsbCxqPURBJiZEQS51bnN1YnNjcmliZSYmKCgpPT57REEudW5zdWJzY3JpYmUoKX0pLHd0O3RyeXtpZihQJiZCJiZjIT09ImdldCImJmMhPT0iaGVhZCImJih3dD1hd2FpdCBhKFdBLEQpKSE9PTApe2xldCBPPW5ldyBlKGYse21ldGhvZDoiUE9TVCIsYm9keTpELGR1cGxleDoiaGFsZiJ9KSxYO2lmKGkuaXNGb3JtRGF0YShEKSYmKFg9Ty5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIikpJiZXQS5zZXRDb250ZW50VHlwZShYKSxPLmJvZHkpe2xldFtaQSxoQV09bnQod3QsZUEoQ3QoUCkpKTtEPVF0KE8uYm9keSxCZSxaQSxoQSl9fWkuaXNTdHJpbmcoZEEpfHwoZEE9ZEE/ImluY2x1ZGUiOiJvbWl0Iik7bGV0IEo9ZyYmImNyZWRlbnRpYWxzImluIGUucHJvdG90eXBlLHB0PXsuLi5tdCxzaWduYWw6REEsbWV0aG9kOmMudG9VcHBlckNhc2UoKSxoZWFkZXJzOldBLm5vcm1hbGl6ZSgpLnRvSlNPTigpLGJvZHk6RCxkdXBsZXg6ImhhbGYiLGNyZWRlbnRpYWxzOko/ZEE6dm9pZCAwfTtyQT1nJiZuZXcgZShmLHB0KTtsZXQgSz1hd2FpdChnP3QockEsbXQpOnQoZixwdCkpLFN0PXMmJihHPT09InN0cmVhbSJ8fEc9PT0icmVzcG9uc2UiKTtpZihzJiYoa3x8U3QmJmopKXtsZXQgTz17fTtbInN0YXR1cyIsInN0YXR1c1RleHQiLCJoZWFkZXJzIl0uZm9yRWFjaChGdD0+e09bRnRdPUtbRnRdfSk7bGV0IFg9aS50b0Zpbml0ZU51bWJlcihLLmhlYWRlcnMuZ2V0KCJjb250ZW50LWxlbmd0aCIpKSxbWkEsaEFdPWsmJm50KFgsZUEoQ3QoayksITApKXx8W107Sz1uZXcgSShRdChLLmJvZHksQmUsWkEsKCk9PntoQSYmaEEoKSxqJiZqKCl9KSxPKX1HPUd8fCJ0ZXh0IjtsZXQgSGU9YXdhaXQgQ1tpLmZpbmRLZXkoQyxHKXx8InRleHQiXShLLFEpO3JldHVybiFTdCYmaiYmaigpLGF3YWl0IG5ldyBQcm9taXNlKChPLFgpPT57UUEoTyxYLHtkYXRhOkhlLGhlYWRlcnM6cC5mcm9tKEsuaGVhZGVycyksc3RhdHVzOksuc3RhdHVzLHN0YXR1c1RleHQ6Sy5zdGF0dXNUZXh0LGNvbmZpZzpRLHJlcXVlc3Q6ckF9KX0pfWNhdGNoKEope3Rocm93IGomJmooKSxKJiZKLm5hbWU9PT0iVHlwZUVycm9yIiYmL0xvYWQgZmFpbGVkfGZldGNoL2kudGVzdChKLm1lc3NhZ2UpP09iamVjdC5hc3NpZ24obmV3IHUoIk5ldHdvcmsgRXJyb3IiLHUuRVJSX05FVFdPUkssUSxyQSkse2NhdXNlOkouY2F1c2V8fEp9KTp1LmZyb20oSixKJiZKLmNvZGUsUSxyQSl9fX0sZ3I9bmV3IE1hcCxFdD1BPT57bGV0IHQ9aS5tZXJnZS5jYWxsKHtza2lwVW5kZWZpbmVkOiEwfSxjZSxBP0EuZW52Om51bGwpLHtmZXRjaDplLFJlcXVlc3Q6SSxSZXNwb25zZTpyfT10LGc9W0kscixlXSxvPWcubGVuZ3RoLG49byxFLEIscz1ncjtmb3IoO24tLTspRT1nW25dLEI9cy5nZXQoRSksQj09PXZvaWQgMCYmcy5zZXQoRSxCPW4/bmV3IE1hcDpvcih0KSkscz1CO3JldHVybiBCfSxHZz1FdCgpO3ZhciBjdD17aHR0cDprQSx4aHI6bmUsZmV0Y2g6e2dldDpFdH19O2kuZm9yRWFjaChjdCwoQSx0KT0+e2lmKEEpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwibmFtZSIse3ZhbHVlOnR9KX1jYXRjaHt9T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsImFkYXB0ZXJOYW1lIix7dmFsdWU6dH0pfX0pO3ZhciBmZT1BPT5gLSAke0F9YCxzcj1BPT5pLmlzRnVuY3Rpb24oQSl8fEE9PT1udWxsfHxBPT09ITEsTUE9e2dldEFkYXB0ZXI6KEEsdCk9PntBPWkuaXNBcnJheShBKT9BOltBXTtsZXR7bGVuZ3RoOmV9PUEsSSxyLGc9e307Zm9yKGxldCBvPTA7bzxlO28rKyl7ST1BW29dO2xldCBuO2lmKHI9SSwhc3IoSSkmJihyPWN0WyhuPVN0cmluZyhJKSkudG9Mb3dlckNhc2UoKV0scj09PXZvaWQgMCkpdGhyb3cgbmV3IHUoYFVua25vd24gYWRhcHRlciBcJyR7bn1cJ2ApO2lmKHImJihpLmlzRnVuY3Rpb24ocil8fChyPXIuZ2V0KHQpKSkpYnJlYWs7Z1tufHwiJTIzIitvXT1yfWlmKCFyKXtsZXQgbz1PYmplY3QuZW50cmllcyhnKS5tYXAoKFtFLEJdKT0+YGFkYXB0ZXIgJHtFfSBgKyhCPT09ITE/ImlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVudmlyb25tZW50IjoiaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnVpbGQiKSksbj1lP28ubGVuZ3RoPjE/YHNpbmNlIDolMEFgK28ubWFwKGZlKS5qb2luKGAlMEFgKToiICIrZmUob1swXSk6ImFzIG5vIGFkYXB0ZXIgc3BlY2lmaWVkIjt0aHJvdyBuZXcgdSgiVGhlcmUgaXMgbm8gc3VpdGFibGUgYWRhcHRlciB0byBkaXNwYXRjaCB0aGUgcmVxdWVzdCAiK24sIkVSUl9OT1RfU1VQUE9SVCIpfXJldHVybiByfSxhZGFwdGVyczpjdH07ZnVuY3Rpb24gZnQoQSl7aWYoQS5jYW5jZWxUb2tlbiYmQS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksQS5zaWduYWwmJkEuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IEgobnVsbCxBKX1mdW5jdGlvbiBLQShBKXtyZXR1cm4gZnQoQSksQS5oZWFkZXJzPXAuZnJvbShBLmhlYWRlcnMpLEEuZGF0YT1CQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXF1ZXN0KSxbInBvc3QiLCJwdXQiLCJwYXRjaCJdLmluZGV4T2YoQS5tZXRob2QpIT09LTEmJkEuaGVhZGVycy5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwhMSksTUEuZ2V0QWRhcHRlcihBLmFkYXB0ZXJ8fEFBLmFkYXB0ZXIsQSkoQSkudGhlbihmdW5jdGlvbihJKXtyZXR1cm4gZnQoQSksSS5kYXRhPUJBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkpLEkuaGVhZGVycz1wLmZyb20oSS5oZWFkZXJzKSxJfSxmdW5jdGlvbihJKXtyZXR1cm4gYUEoSSl8fChmdChBKSxJJiZJLnJlc3BvbnNlJiYoSS5yZXNwb25zZS5kYXRhPUJBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkucmVzcG9uc2UpLEkucmVzcG9uc2UuaGVhZGVycz1wLmZyb20oSS5yZXNwb25zZS5oZWFkZXJzKSkpLFByb21pc2UucmVqZWN0KEkpfSl9dmFyIE9BPSIxLjEyLjAiO3ZhciBUQT17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKEEsdCk9PntUQVtBXT1mdW5jdGlvbihJKXtyZXR1cm4gdHlwZW9mIEk9PT1BfHwiYSIrKHQ8MT8ibiAiOiIgIikrQX19KTt2YXIgbGU9e307VEEudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKHQsZSxJKXtmdW5jdGlvbiByKGcsbyl7cmV0dXJuIltBeGlvcyB2IitPQSsiXSBUcmFuc2l0aW9uYWwgb3B0aW9uIFwnIitnKyJcJyIrbysoST8iLiAiK0k6IiIpfXJldHVybihnLG8sbik9PntpZih0PT09ITEpdGhyb3cgbmV3IHUocihvLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKGU/IiBpbiAiK2U6IiIpKSx1LkVSUl9ERVBSRUNBVEVEKTtyZXR1cm4gZSYmIWxlW29dJiYobGVbb109ITAsY29uc29sZS53YXJuKHIobywiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrZSsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSx0P3QoZyxvLG4pOiEwfX07VEEuc3BlbGxpbmc9ZnVuY3Rpb24odCl7cmV0dXJuKGUsSSk9Pihjb25zb2xlLndhcm4oYCR7SX0gaXMgbGlrZWx5IGEgbWlzc3BlbGxpbmcgb2YgJHt0fWApLCEwKX07ZnVuY3Rpb24gbnIoQSx0LGUpe2lmKHR5cGVvZiBBIT0ib2JqZWN0Iil0aHJvdyBuZXcgdSgib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIsdS5FUlJfQkFEX09QVElPTl9WQUxVRSk7bGV0IEk9T2JqZWN0LmtleXMoQSkscj1JLmxlbmd0aDtmb3IoO3ItLSA+MDspe2xldCBnPUlbcl0sbz10W2ddO2lmKG8pe2xldCBuPUFbZ10sRT1uPT09dm9pZCAwfHxvKG4sZyxBKTtpZihFIT09ITApdGhyb3cgbmV3IHUoIm9wdGlvbiAiK2crIiBtdXN0IGJlICIrRSx1LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtjb250aW51ZX1pZihlIT09ITApdGhyb3cgbmV3IHUoIlVua25vd24gb3B0aW9uICIrZyx1LkVSUl9CQURfT1BUSU9OKX19dmFyIGNBPXthc3NlcnRPcHRpb25zOm5yLHZhbGlkYXRvcnM6VEF9O3ZhciBZPWNBLnZhbGlkYXRvcnMsSUE9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5kZWZhdWx0cz10fHx7fSx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgdHQscmVzcG9uc2U6bmV3IHR0fX1hc3luYyByZXF1ZXN0KHQsZSl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLl9yZXF1ZXN0KHQsZSl9Y2F0Y2goSSl7aWYoSSBpbnN0YW5jZW9mIEVycm9yKXtsZXQgcj17fTtFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZShyKTpyPW5ldyBFcnJvcjtsZXQgZz1yLnN0YWNrP3Iuc3RhY2sucmVwbGFjZSgvXi4rXFxuLywiIik6IiI7dHJ5e0kuc3RhY2s/ZyYmIVN0cmluZyhJLnN0YWNrKS5lbmRzV2l0aChnLnJlcGxhY2UoL14uK1xcbi4rXFxuLywiIikpJiYoSS5zdGFjays9YCUwQWArZyk6SS5zdGFjaz1nfWNhdGNoe319dGhyb3cgSX19X3JlcXVlc3QodCxlKXt0eXBlb2YgdD09InN0cmluZyI/KGU9ZXx8e30sZS51cmw9dCk6ZT10fHx7fSxlPWIodGhpcy5kZWZhdWx0cyxlKTtsZXR7dHJhbnNpdGlvbmFsOkkscGFyYW1zU2VyaWFsaXplcjpyLGhlYWRlcnM6Z309ZTtJIT09dm9pZCAwJiZjQS5hc3NlcnRPcHRpb25zKEkse3NpbGVudEpTT05QYXJzaW5nOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6WS50cmFuc2l0aW9uYWwoWS5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbil9LCExKSxyIT1udWxsJiYoaS5pc0Z1bmN0aW9uKHIpP2UucGFyYW1zU2VyaWFsaXplcj17c2VyaWFsaXplOnJ9OmNBLmFzc2VydE9wdGlvbnMocix7ZW5jb2RlOlkuZnVuY3Rpb24sc2VyaWFsaXplOlkuZnVuY3Rpb259LCEwKSksZS5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMHx8KHRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDA/ZS5hbGxvd0Fic29sdXRlVXJscz10aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzOmUuYWxsb3dBYnNvbHV0ZVVybHM9ITApLGNBLmFzc2VydE9wdGlvbnMoZSx7YmFzZVVybDpZLnNwZWxsaW5nKCJiYXNlVVJMIiksd2l0aFhzcmZUb2tlbjpZLnNwZWxsaW5nKCJ3aXRoWFNSRlRva2VuIil9LCEwKSxlLm1ldGhvZD0oZS5tZXRob2R8fHRoaXMuZGVmYXVsdHMubWV0aG9kfHwiZ2V0IikudG9Mb3dlckNhc2UoKTtsZXQgbz1nJiZpLm1lcmdlKGcuY29tbW9uLGdbZS5tZXRob2RdKTtnJiZpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sUT0+e2RlbGV0ZSBnW1FdfSksZS5oZWFkZXJzPXAuY29uY2F0KG8sZyk7bGV0IG49W10sRT0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24oZil7dHlwZW9mIGYucnVuV2hlbj09ImZ1bmN0aW9uIiYmZi5ydW5XaGVuKGUpPT09ITF8fChFPUUmJmYuc3luY2hyb25vdXMsbi51bnNoaWZ0KGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpKX0pO2xldCBCPVtdO3RoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24oZil7Qi5wdXNoKGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpfSk7bGV0IHMsQz0wLGw7aWYoIUUpe2xldCBRPVtLQS5iaW5kKHRoaXMpLHZvaWQgMF07Zm9yKFEudW5zaGlmdCguLi5uKSxRLnB1c2goLi4uQiksbD1RLmxlbmd0aCxzPVByb21pc2UucmVzb2x2ZShlKTtDPGw7KXM9cy50aGVuKFFbQysrXSxRW0MrK10pO3JldHVybiBzfWw9bi5sZW5ndGg7bGV0IGE9ZTtmb3IoQz0wO0M8bDspe2xldCBRPW5bQysrXSxmPW5bQysrXTt0cnl7YT1RKGEpfWNhdGNoKGMpe2YuY2FsbCh0aGlzLGMpO2JyZWFrfX10cnl7cz1LQS5jYWxsKHRoaXMsYSl9Y2F0Y2goUSl7cmV0dXJuIFByb21pc2UucmVqZWN0KFEpfWZvcihDPTAsbD1CLmxlbmd0aDtDPGw7KXM9cy50aGVuKEJbQysrXSxCW0MrK10pO3JldHVybiBzfWdldFVyaSh0KXt0PWIodGhpcy5kZWZhdWx0cyx0KTtsZXQgZT1FQSh0LmJhc2VVUkwsdC51cmwsdC5hbGxvd0Fic29sdXRlVXJscyk7cmV0dXJuIG5BKGUsdC5wYXJhbXMsdC5wYXJhbXNTZXJpYWxpemVyKX19O2kuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJvcHRpb25zIl0sZnVuY3Rpb24odCl7SUEucHJvdG90eXBlW3RdPWZ1bmN0aW9uKGUsSSl7cmV0dXJuIHRoaXMucmVxdWVzdChiKEl8fHt9LHttZXRob2Q6dCx1cmw6ZSxkYXRhOihJfHx7fSkuZGF0YX0pKX19KTtpLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSxmdW5jdGlvbih0KXtmdW5jdGlvbiBlKEkpe3JldHVybiBmdW5jdGlvbihnLG8sbil7cmV0dXJuIHRoaXMucmVxdWVzdChiKG58fHt9LHttZXRob2Q6dCxoZWFkZXJzOkk/eyJDb250ZW50LVR5cGUiOiJtdWx0aXBhcnQvZm9ybS1kYXRhIn06e30sdXJsOmcsZGF0YTpvfSkpfX1JQS5wcm90b3R5cGVbdF09ZSgpLElBLnByb3RvdHlwZVt0KyJGb3JtIl09ZSghMCl9KTt2YXIgZkE9SUE7dmFyIGx0PWNsYXNzIEF7Y29uc3RydWN0b3IodCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO2xldCBlO3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihnKXtlPWd9KTtsZXQgST10aGlzO3RoaXMucHJvbWlzZS50aGVuKHI9PntpZighSS5fbGlzdGVuZXJzKXJldHVybjtsZXQgZz1JLl9saXN0ZW5lcnMubGVuZ3RoO2Zvcig7Zy0tID4wOylJLl9saXN0ZW5lcnNbZ10ocik7SS5fbGlzdGVuZXJzPW51bGx9KSx0aGlzLnByb21pc2UudGhlbj1yPT57bGV0IGcsbz1uZXcgUHJvbWlzZShuPT57SS5zdWJzY3JpYmUobiksZz1ufSkudGhlbihyKTtyZXR1cm4gby5jYW5jZWw9ZnVuY3Rpb24oKXtJLnVuc3Vic2NyaWJlKGcpfSxvfSx0KGZ1bmN0aW9uKGcsbyxuKXtJLnJlYXNvbnx8KEkucmVhc29uPW5ldyBIKGcsbyxuKSxlKEkucmVhc29uKSl9KX10aHJvd0lmUmVxdWVzdGVkKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259c3Vic2NyaWJlKHQpe2lmKHRoaXMucmVhc29uKXt0KHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKHQpOnRoaXMuX2xpc3RlbmVycz1bdF19dW5zdWJzY3JpYmUodCl7aWYoIXRoaXMuX2xpc3RlbmVycylyZXR1cm47bGV0IGU9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YodCk7ZSE9PS0xJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKGUsMSl9dG9BYm9ydFNpZ25hbCgpe2xldCB0PW5ldyBBYm9ydENvbnRyb2xsZXIsZT1JPT57dC5hYm9ydChJKX07cmV0dXJuIHRoaXMuc3Vic2NyaWJlKGUpLHQuc2lnbmFsLnVuc3Vic2NyaWJlPSgpPT50aGlzLnVuc3Vic2NyaWJlKGUpLHQuc2lnbmFsfXN0YXRpYyBzb3VyY2UoKXtsZXQgdDtyZXR1cm57dG9rZW46bmV3IEEoZnVuY3Rpb24ocil7dD1yfSksY2FuY2VsOnR9fX0sdWU9bHQ7ZnVuY3Rpb24gdXQoQSl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBBLmFwcGx5KG51bGwsZSl9fWZ1bmN0aW9uIGR0KEEpe3JldHVybiBpLmlzT2JqZWN0KEEpJiZBLmlzQXhpb3NFcnJvcj09PSEwfXZhciBEdD17Q29udGludWU6MTAwLFN3aXRjaGluZ1Byb3RvY29sczoxMDEsUHJvY2Vzc2luZzoxMDIsRWFybHlIaW50czoxMDMsT2s6MjAwLENyZWF0ZWQ6MjAxLEFjY2VwdGVkOjIwMixOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb246MjAzLE5vQ29udGVudDoyMDQsUmVzZXRDb250ZW50OjIwNSxQYXJ0aWFsQ29udGVudDoyMDYsTXVsdGlTdGF0dXM6MjA3LEFscmVhZHlSZXBvcnRlZDoyMDgsSW1Vc2VkOjIyNixNdWx0aXBsZUNob2ljZXM6MzAwLE1vdmVkUGVybWFuZW50bHk6MzAxLEZvdW5kOjMwMixTZWVPdGhlcjozMDMsTm90TW9kaWZpZWQ6MzA0LFVzZVByb3h5OjMwNSxVbnVzZWQ6MzA2LFRlbXBvcmFyeVJlZGlyZWN0OjMwNyxQZXJtYW5lbnRSZWRpcmVjdDozMDgsQmFkUmVxdWVzdDo0MDAsVW5hdXRob3JpemVkOjQwMSxQYXltZW50UmVxdWlyZWQ6NDAyLEZvcmJpZGRlbjo0MDMsTm90Rm91bmQ6NDA0LE1ldGhvZE5vdEFsbG93ZWQ6NDA1LE5vdEFjY2VwdGFibGU6NDA2LFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDo0MDcsUmVxdWVzdFRpbWVvdXQ6NDA4LENvbmZsaWN0OjQwOSxHb25lOjQxMCxMZW5ndGhSZXF1aXJlZDo0MTEsUHJlY29uZGl0aW9uRmFpbGVkOjQxMixQYXlsb2FkVG9vTGFyZ2U6NDEzLFVyaVRvb0xvbmc6NDE0LFVuc3VwcG9ydGVkTWVkaWFUeXBlOjQxNSxSYW5nZU5vdFNhdGlzZmlhYmxlOjQxNixFeHBlY3RhdGlvbkZhaWxlZDo0MTcsSW1BVGVhcG90OjQxOCxNaXNkaXJlY3RlZFJlcXVlc3Q6NDIxLFVucHJvY2Vzc2FibGVFbnRpdHk6NDIyLExvY2tlZDo0MjMsRmFpbGVkRGVwZW5kZW5jeTo0MjQsVG9vRWFybHk6NDI1LFVwZ3JhZGVSZXF1aXJlZDo0MjYsUHJlY29uZGl0aW9uUmVxdWlyZWQ6NDI4LFRvb01hbnlSZXF1ZXN0czo0MjksUmVxdWVzdEhlYWRlckZpZWxkc1Rvb0xhcmdlOjQzMSxVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczo0NTEsSW50ZXJuYWxTZXJ2ZXJFcnJvcjo1MDAsTm90SW1wbGVtZW50ZWQ6NTAxLEJhZEdhdGV3YXk6NTAyLFNlcnZpY2VVbmF2YWlsYWJsZTo1MDMsR2F0ZXdheVRpbWVvdXQ6NTA0LEh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOjUwNSxWYXJpYW50QWxzb05lZ290aWF0ZXM6NTA2LEluc3VmZmljaWVudFN0b3JhZ2U6NTA3LExvb3BEZXRlY3RlZDo1MDgsTm90RXh0ZW5kZWQ6NTEwLE5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOjUxMX07T2JqZWN0LmVudHJpZXMoRHQpLmZvckVhY2goKFtBLHRdKT0+e0R0W3RdPUF9KTt2YXIgZGU9RHQ7ZnVuY3Rpb24gRGUoQSl7bGV0IHQ9bmV3IGZBKEEpLGU9b0EoZkEucHJvdG90eXBlLnJlcXVlc3QsdCk7cmV0dXJuIGkuZXh0ZW5kKGUsZkEucHJvdG90eXBlLHQse2FsbE93bktleXM6ITB9KSxpLmV4dGVuZChlLHQsbnVsbCx7YWxsT3duS2V5czohMH0pLGUuY3JlYXRlPWZ1bmN0aW9uKHIpe3JldHVybiBEZShiKEEscikpfSxlfXZhciBtPURlKEFBKTttLkF4aW9zPWZBO20uQ2FuY2VsZWRFcnJvcj1IO20uQ2FuY2VsVG9rZW49dWU7bS5pc0NhbmNlbD1hQTttLlZFUlNJT049T0E7bS50b0Zvcm1EYXRhPVQ7bS5BeGlvc0Vycm9yPXU7bS5DYW5jZWw9bS5DYW5jZWxlZEVycm9yO20uYWxsPWZ1bmN0aW9uKHQpe3JldHVybiBQcm9taXNlLmFsbCh0KX07bS5zcHJlYWQ9dXQ7bS5pc0F4aW9zRXJyb3I9ZHQ7bS5tZXJnZUNvbmZpZz1iO20uQXhpb3NIZWFkZXJzPXA7bS5mb3JtVG9KU09OPUE9PkpBKGkuaXNIVE1MRm9ybShBKT9uZXcgRm9ybURhdGEoQSk6QSk7bS5nZXRBZGFwdGVyPU1BLmdldEFkYXB0ZXI7bS5IdHRwU3RhdHVzQ29kZT1kZTttLmRlZmF1bHQ9bTt2YXIgeEE9bTt2YXJ7QXhpb3M6UmksQXhpb3NFcnJvcjpOaSxDYW5jZWxlZEVycm9yOlVpLGlzQ2FuY2VsOkdpLENhbmNlbFRva2VuOmtpLFZFUlNJT046TGksYWxsOmJpLENhbmNlbDpKaSxpc0F4aW9zRXJyb3I6SGksc3ByZWFkOllpLHRvRm9ybURhdGE6cWksQXhpb3NIZWFkZXJzOk1pLEh0dHBTdGF0dXNDb2RlOktpLGZvcm1Ub0pTT046T2ksZ2V0QWRhcHRlcjpUaSxtZXJnZUNvbmZpZzp4aX09eEE7dmFyIGxBLE0seXQsaHQ9e2Vudjp7ZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aDpmdW5jdGlvbihBKXt5dD1uZXcgVWludDhBcnJheShNLmV4cG9ydHMubWVtb3J5LmJ1ZmZlcil9fX0sUEE9Y2xhc3N7aW5pdCgpe3JldHVybiBsQXx8KHR5cGVvZiBmZXRjaDwidSI/bEE9ZmV0Y2goImRhdGE6YXBwbGljYXRpb24vd2FzbTtiYXNlNjQsIitoZSkudGhlbih0PT50LmFycmF5QnVmZmVyKCkpLnRoZW4odD0+V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUodCxodCkpLnRoZW4odGhpcy5faW5pdCk6bEE9V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoQnVmZmVyLmZyb20oaGUsImJhc2U2NCIpLGh0KS50aGVuKHRoaXMuX2luaXQpLGxBKX1faW5pdCh0KXtNPXQuaW5zdGFuY2UsaHQuZW52LmVtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgoMCl9ZGVjb2RlKHQsZT0wKXtpZighTSl0aHJvdyBuZXcgRXJyb3IoIlpTVEREZWNvZGVyOiBBd2FpdCAuaW5pdCgpIGJlZm9yZSBkZWNvZGluZy4iKTtsZXQgST10LmJ5dGVMZW5ndGgscj1NLmV4cG9ydHMubWFsbG9jKEkpO3l0LnNldCh0LHIpLGU9ZXx8TnVtYmVyKE0uZXhwb3J0cy5aU1REX2ZpbmREZWNvbXByZXNzZWRTaXplKHIsSSkpO2xldCBnPU0uZXhwb3J0cy5tYWxsb2MoZSksbz1NLmV4cG9ydHMuWlNURF9kZWNvbXByZXNzKGcsZSxyLEkpLG49eXQuc2xpY2UoZyxnK28pO3JldHVybiBNLmV4cG9ydHMuZnJlZShyKSxNLmV4cG9ydHMuZnJlZShnKSxufX0saGU9IkFHRnpiUUVBQUFBQmJnNWdBMzkvZndGL1lBRi9BWDlnQW45L0FHQUJmd0JnQlg5L2YzOS9BWDlnQTM5L2Z3QmdCSDkvZjM4QmYyQUFBWDlnQW45L0FYOWdCMzkvZjM5L2YzOEJmMkFDZjM4QmZtQUlmMzkvZjM5L2YzOEJmMkFGZjM5L2YzOEFZQTUvZjM5L2YzOS9mMzkvZjM5L2Z3Ri9BaWNCQTJWdWRoOWxiWE5qY21sd2RHVnVYMjV2ZEdsbWVWOXRaVzF2Y25sZlozSnZkM1JvQUFNREl5SUhBQUFCQVFNSEF3RUFDUVFBQlFFSUNBRUZCZ1FFQkFNR0FBQUtBQVVMREEwR0JBVUJjQUVCQVFVSEFRR0FBb0NBQWdZSUFYOEJRWUNqQkFzSHJnRUxCbTFsYlc5eWVRSUFCbTFoYkd4dll3QUZCR1p5WldVQUJneGFVMVJFWDJselJYSnliM0lBRWhsYVUxUkVYMlpwYm1SRVpXTnZiWEJ5WlhOelpXUlRhWHBsQUJ3UFdsTlVSRjlrWldOdmJYQnlaWE56QUNJWlgxOXBibVJwY21WamRGOW1kVzVqZEdsdmJsOTBZV0pzWlFFQUVGOWZaWEp5Ym05ZmJHOWpZWFJwYjI0QUFRbHpkR0ZqYTFOaGRtVUFCd3h6ZEdGamExSmxjM1J2Y21VQUNBcHpkR0ZqYTBGc2JHOWpBQWtLaS9JQklnVUFRWVFmQ3pNQkFYOGdBZ1JBSUFBaEF3TkFJQU1nQVMwQUFEb0FBQ0FEUVFGcUlRTWdBVUVCYWlFQklBSkJBV3NpQWcwQUN3c2dBQXNwQVFGL0lBSUVRQ0FBSVFNRFFDQURJQUU2QUFBZ0EwRUJhaUVESUFKQkFXc2lBZzBBQ3dzZ0FBdHNBUUovUVlBZktBSUFJZ0VnQUVFSGFrRjRjU0lDYWlFQUFrQWdBa0VBSUFBZ0FVMGJEUUFnQUQ4QVFSQjBTd1JBSUFBL0FFRVFkR3RCLy84RGFrRVFka0FBUVg5R0JIOUJBQVZCQUJBQVFRRUxSUTBCQzBHQUh5QUFOZ0lBSUFFUEMwR0VIMEV3TmdJQVFYOEx1U2NCQzM4akFFRVFheUlLSkFBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBQkI5QUZOQkVCQmlCOG9BZ0FpQmtFUUlBQkJDMnBCZUhFZ0FFRUxTUnNpQlVFRGRpSUFkaUlCUVFOeEJFQUNRQ0FCUVg5elFRRnhJQUJxSWdKQkEzUWlBVUd3SDJvaUFDQUJRYmdmYWlnQ0FDSUJLQUlJSWdSR0JFQkJpQjhnQmtGK0lBSjNjVFlDQUF3QkN5QUVJQUEyQWd3Z0FDQUVOZ0lJQ3lBQlFRaHFJUUFnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1Ed3NnQlVHUUh5Z0NBQ0lIVFEwQklBRUVRQUpBUVFJZ0FIUWlBa0VBSUFKcmNpQUJJQUIwY1dnaUFVRURkQ0lBUWJBZmFpSUNJQUJCdUI5cUtBSUFJZ0FvQWdnaUJFWUVRRUdJSHlBR1FYNGdBWGR4SWdZMkFnQU1BUXNnQkNBQ05nSU1JQUlnQkRZQ0NBc2dBQ0FGUVFOeU5nSUVJQUFnQldvaUNDQUJRUU4wSWdFZ0JXc2lCRUVCY2pZQ0JDQUFJQUZxSUFRMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFGQm5COG9BZ0FoQWdKL0lBWkJBU0FIUVFOMmRDSURjVVVFUUVHSUh5QURJQVp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBeUFCSUFJMkFnZ2dBeUFDTmdJTUlBSWdBVFlDRENBQ0lBTTJBZ2dMSUFCQkNHb2hBRUdjSHlBSU5nSUFRWkFmSUFRMkFnQU1Ed3RCakI4b0FnQWlDMFVOQVNBTGFFRUNkRUc0SVdvb0FnQWlBaWdDQkVGNGNTQUZheUVESUFJaEFRTkFBa0FnQVNnQ0VDSUFSUVJBSUFFb0FoUWlBRVVOQVFzZ0FDZ0NCRUY0Y1NBRmF5SUJJQU1nQVNBRFNTSUJHeUVESUFBZ0FpQUJHeUVDSUFBaEFRd0JDd3NnQWlnQ0dDRUpJQUlnQWlnQ0RDSUVSd1JBUVpnZktBSUFHaUFDS0FJSUlnQWdCRFlDRENBRUlBQTJBZ2dNRGdzZ0FrRVVhaUlCS0FJQUlnQkZCRUFnQWlnQ0VDSUFSUTBESUFKQkVHb2hBUXNEUUNBQklRZ2dBQ0lFUVJScUlnRW9BZ0FpQUEwQUlBUkJFR29oQVNBRUtBSVFJZ0FOQUFzZ0NFRUFOZ0lBREEwTFFYOGhCU0FBUWI5L1N3MEFJQUJCQzJvaUFFRjRjU0VGUVl3ZktBSUFJZ2hGRFFCQkFDQUZheUVEQWtBQ1FBSkFBbjlCQUNBRlFZQUNTUTBBR2tFZklBVkIvLy8vQjBzTkFCb2dCVUVtSUFCQkNIWm5JZ0JyZGtFQmNTQUFRUUYwYTBFK2Fnc2lCMEVDZEVHNElXb29BZ0FpQVVVRVFFRUFJUUFNQVF0QkFDRUFJQVZCR1NBSFFRRjJhMEVBSUFkQkgwY2JkQ0VDQTBBQ1FDQUJLQUlFUVhoeElBVnJJZ1lnQTA4TkFDQUJJUVFnQmlJRERRQkJBQ0VESUFFaEFBd0RDeUFBSUFFb0FoUWlCaUFHSUFFZ0FrRWRka0VFY1dvb0FoQWlBVVliSUFBZ0Joc2hBQ0FDUVFGMElRSWdBUTBBQ3dzZ0FDQUVja1VFUUVFQUlRUkJBaUFIZENJQVFRQWdBR3R5SUFoeElnQkZEUU1nQUdoQkFuUkJ1Q0ZxS0FJQUlRQUxJQUJGRFFFTEEwQWdBQ2dDQkVGNGNTQUZheUlDSUFOSklRRWdBaUFESUFFYklRTWdBQ0FFSUFFYklRUWdBQ2dDRUNJQkJIOGdBUVVnQUNnQ0ZBc2lBQTBBQ3dzZ0JFVU5BQ0FEUVpBZktBSUFJQVZyVHcwQUlBUW9BaGdoQnlBRUlBUW9BZ3dpQWtjRVFFR1lIeWdDQUJvZ0JDZ0NDQ0lBSUFJMkFnd2dBaUFBTmdJSURBd0xJQVJCRkdvaUFTZ0NBQ0lBUlFSQUlBUW9BaEFpQUVVTkF5QUVRUkJxSVFFTEEwQWdBU0VHSUFBaUFrRVVhaUlCS0FJQUlnQU5BQ0FDUVJCcUlRRWdBaWdDRUNJQURRQUxJQVpCQURZQ0FBd0xDeUFGUVpBZktBSUFJZ1JOQkVCQm5COG9BZ0FoQUFKQUlBUWdCV3NpQVVFUVR3UkFJQUFnQldvaUFpQUJRUUZ5TmdJRUlBQWdCR29nQVRZQ0FDQUFJQVZCQTNJMkFnUU1BUXNnQUNBRVFRTnlOZ0lFSUFBZ0JHb2lBU0FCS0FJRVFRRnlOZ0lFUVFBaEFrRUFJUUVMUVpBZklBRTJBZ0JCbkI4Z0FqWUNBQ0FBUVFocUlRQU1EUXNnQlVHVUh5Z0NBQ0lDU1FSQVFaUWZJQUlnQldzaUFUWUNBRUdnSDBHZ0h5Z0NBQ0lBSUFWcUlnSTJBZ0FnQWlBQlFRRnlOZ0lFSUFBZ0JVRURjallDQkNBQVFRaHFJUUFNRFF0QkFDRUFJQVZCTDJvaUF3Si9RZUFpS0FJQUJFQkI2Q0lvQWdBTUFRdEI3Q0pDZnpjQ0FFSGtJa0tBb0lDQWdJQUVOd0lBUWVBaUlBcEJER3BCY0hGQjJLclZxZ1Z6TmdJQVFmUWlRUUEyQWdCQnhDSkJBRFlDQUVHQUlBc2lBV29pQmtFQUlBRnJJZ2h4SWdFZ0JVME5ERUhBSWlnQ0FDSUVCRUJCdUNJb0FnQWlCeUFCYWlJSklBZE5JQVFnQ1VseURRMExBa0JCeENJdEFBQkJCSEZGQkVBQ1FBSkFBa0FDUUVHZ0h5Z0NBQ0lFQkVCQnlDSWhBQU5BSUFRZ0FDZ0NBQ0lIVHdSQUlBY2dBQ2dDQkdvZ0JFc05Bd3NnQUNnQ0NDSUFEUUFMQzBFQUVBUWlBa0YvUmcwRElBRWhCa0hrSWlnQ0FDSUFRUUZySWdRZ0FuRUVRQ0FCSUFKcklBSWdCR3BCQUNBQWEzRnFJUVlMSUFVZ0JrOE5BMEhBSWlnQ0FDSUFCRUJCdUNJb0FnQWlCQ0FHYWlJSUlBUk5JQUFnQ0VseURRUUxJQVlRQkNJQUlBSkhEUUVNQlFzZ0JpQUNheUFJY1NJR0VBUWlBaUFBS0FJQUlBQW9BZ1JxUmcwQklBSWhBQXNnQUVGL1JnMEJJQVZCTUdvZ0JrMEVRQ0FBSVFJTUJBdEI2Q0lvQWdBaUFpQURJQVpyYWtFQUlBSnJjU0lDRUFSQmYwWU5BU0FDSUFacUlRWWdBQ0VDREFNTElBSkJmMGNOQWd0QnhDSkJ4Q0lvQWdCQkJISTJBZ0FMSUFFUUJDSUNRWDlHUVFBUUJDSUFRWDlHY2lBQUlBSk5jZzBGSUFBZ0Ftc2lCaUFGUVNocVRRMEZDMEc0SWtHNElpZ0NBQ0FHYWlJQU5nSUFRYndpS0FJQUlBQkpCRUJCdkNJZ0FEWUNBQXNDUUVHZ0h5Z0NBQ0lEQkVCQnlDSWhBQU5BSUFJZ0FDZ0NBQ0lCSUFBb0FnUWlCR3BHRFFJZ0FDZ0NDQ0lBRFFBTERBUUxRWmdmS0FJQUlnQkJBQ0FBSUFKTkcwVUVRRUdZSHlBQ05nSUFDMEVBSVFCQnpDSWdCallDQUVISUlpQUNOZ0lBUWFnZlFYODJBZ0JCckI5QjRDSW9BZ0EyQWdCQjFDSkJBRFlDQUFOQUlBQkJBM1FpQVVHNEgyb2dBVUd3SDJvaUJEWUNBQ0FCUWJ3ZmFpQUVOZ0lBSUFCQkFXb2lBRUVnUncwQUMwR1VIeUFHUVNocklnQkJlQ0FDYTBFSGNTSUJheUlFTmdJQVFhQWZJQUVnQW1vaUFUWUNBQ0FCSUFSQkFYSTJBZ1FnQUNBQ2FrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBUUxJQUlnQTAwZ0FTQURTM0lOQWlBQUtBSU1RUWh4RFFJZ0FDQUVJQVpxTmdJRVFhQWZJQU5CZUNBRGEwRUhjU0lBYWlJQk5nSUFRWlFmUVpRZktBSUFJQVpxSWdJZ0FHc2lBRFlDQUNBQklBQkJBWEkyQWdRZ0FpQURha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQU1MUVFBaEJBd0tDMEVBSVFJTUNBdEJtQjhvQWdBZ0Frc0VRRUdZSHlBQ05nSUFDeUFDSUFacUlRRkJ5Q0loQUFKQUFrQUNRQU5BSUFFZ0FDZ0NBRWNFUUNBQUtBSUlJZ0FOQVF3Q0N3c2dBQzBBREVFSWNVVU5BUXRCeUNJaEFBTkFJQU1nQUNnQ0FDSUJUd1JBSUFFZ0FDZ0NCR29pQkNBRFN3MERDeUFBS0FJSUlRQU1BQXNBQ3lBQUlBSTJBZ0FnQUNBQUtBSUVJQVpxTmdJRUlBSkJlQ0FDYTBFSGNXb2lCeUFGUVFOeU5nSUVJQUZCZUNBQmEwRUhjV29pQmlBRklBZHFJZ1ZySVFBZ0F5QUdSZ1JBUWFBZklBVTJBZ0JCbEI5QmxCOG9BZ0FnQUdvaUFEWUNBQ0FGSUFCQkFYSTJBZ1FNQ0F0Qm5COG9BZ0FnQmtZRVFFR2NIeUFGTmdJQVFaQWZRWkFmS0FJQUlBQnFJZ0EyQWdBZ0JTQUFRUUZ5TmdJRUlBQWdCV29nQURZQ0FBd0lDeUFHS0FJRUlnTkJBM0ZCQVVjTkJpQURRWGh4SVFrZ0EwSC9BVTBFUUNBR0tBSU1JZ0VnQmlnQ0NDSUNSZ1JBUVlnZlFZZ2ZLQUlBUVg0Z0EwRURkbmR4TmdJQURBY0xJQUlnQVRZQ0RDQUJJQUkyQWdnTUJnc2dCaWdDR0NFSUlBWWdCaWdDRENJQ1J3UkFJQVlvQWdnaUFTQUNOZ0lNSUFJZ0FUWUNDQXdGQ3lBR1FSUnFJZ0VvQWdBaUEwVUVRQ0FHS0FJUUlnTkZEUVFnQmtFUWFpRUJDd05BSUFFaEJDQURJZ0pCRkdvaUFTZ0NBQ0lERFFBZ0FrRVFhaUVCSUFJb0FoQWlBdzBBQ3lBRVFRQTJBZ0FNQkF0QmxCOGdCa0VvYXlJQVFYZ2dBbXRCQjNFaUFXc2lDRFlDQUVHZ0h5QUJJQUpxSWdFMkFnQWdBU0FJUVFGeU5nSUVJQUFnQW1wQktEWUNCRUdrSDBId0lpZ0NBRFlDQUNBRElBUkJKeUFFYTBFSGNXcEJMMnNpQUNBQUlBTkJFR3BKR3lJQlFSczJBZ1FnQVVIUUlpa0NBRGNDRUNBQlFjZ2lLUUlBTndJSVFkQWlJQUZCQ0dvMkFnQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFkUWlRUUEyQWdBZ0FVRVlhaUVBQTBBZ0FFRUhOZ0lFSUFCQkNHb2dBRUVFYWlFQUlBUkpEUUFMSUFFZ0EwWU5BQ0FCSUFFb0FnUkJmbkUyQWdRZ0F5QUJJQU5ySWdKQkFYSTJBZ1FnQVNBQ05nSUFJQUpCL3dGTkJFQWdBa0Y0Y1VHd0gyb2hBQUovUVlnZktBSUFJZ0ZCQVNBQ1FRTjJkQ0lDY1VVRVFFR0lIeUFCSUFKeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQVNBQUlBTTJBZ2dnQVNBRE5nSU1JQU1nQURZQ0RDQURJQUUyQWdnTUFRdEJIeUVBSUFKQi8vLy9CMDBFUUNBQ1FTWWdBa0VJZG1jaUFHdDJRUUZ4SUFCQkFYUnJRVDVxSVFBTElBTWdBRFlDSENBRFFnQTNBaEFnQUVFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUJFRUJJQUIwSWdaeFJRUkFRWXdmSUFRZ0JuSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkdTQUFRUUYyYTBFQUlBQkJIMGNiZENFQUlBRW9BZ0FoQkFOQUlBUWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCQ0FBUVFGMElRQWdBU0FFUVFSeGFpSUdLQUlRSWdRTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xRWlFmS0FJQUlnQWdCVTBOQUVHVUh5QUFJQVZySWdFMkFnQkJvQjlCb0I4b0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQWdMUVlRZlFUQTJBZ0JCQUNFQURBY0xRUUFoQWdzZ0NFVU5BQUpBSUFZb0Fod2lBVUVDZEVHNElXb2lCQ2dDQUNBR1JnUkFJQVFnQWpZQ0FDQUNEUUZCakI5QmpCOG9BZ0JCZmlBQmQzRTJBZ0FNQWdzZ0NFRVFRUlFnQ0NnQ0VDQUdSaHRxSUFJMkFnQWdBa1VOQVFzZ0FpQUlOZ0lZSUFZb0FoQWlBUVJBSUFJZ0FUWUNFQ0FCSUFJMkFoZ0xJQVlvQWhRaUFVVU5BQ0FDSUFFMkFoUWdBU0FDTmdJWUN5QUFJQWxxSVFBZ0JpQUphaUlHS0FJRUlRTUxJQVlnQTBGK2NUWUNCQ0FGSUFCQkFYSTJBZ1FnQUNBRmFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVGNGNVR3dIMm9oQVFKL1FZZ2ZLQUlBSWdKQkFTQUFRUU4yZENJQWNVVUVRRUdJSHlBQUlBSnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEFDQUJJQVUyQWdnZ0FDQUZOZ0lNSUFVZ0FUWUNEQ0FGSUFBMkFnZ01BUXRCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQVVnQXpZQ0hDQUZRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlBa0VCSUFOMElnUnhSUVJBUVl3ZklBSWdCSEkyQWdBZ0FTQUZOZ0lBREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFnTkFJQUlpQVNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQWlBRFFRRjBJUU1nQVNBQ1FRUnhhaUlFS0FJUUlnSU5BQXNnQkNBRk5nSVFDeUFGSUFFMkFoZ2dCU0FGTmdJTUlBVWdCVFlDQ0F3QkN5QUJLQUlJSWdBZ0JUWUNEQ0FCSUFVMkFnZ2dCVUVBTmdJWUlBVWdBVFlDRENBRklBQTJBZ2dMSUFkQkNHb2hBQXdDQ3dKQUlBZEZEUUFDUUNBRUtBSWNJZ0JCQW5SQnVDRnFJZ0VvQWdBZ0JFWUVRQ0FCSUFJMkFnQWdBZzBCUVl3ZklBaEJmaUFBZDNFaUNEWUNBQXdDQ3lBSFFSQkJGQ0FIS0FJUUlBUkdHMm9nQWpZQ0FDQUNSUTBCQ3lBQ0lBYzJBaGdnQkNnQ0VDSUFCRUFnQWlBQU5nSVFJQUFnQWpZQ0dBc2dCQ2dDRkNJQVJRMEFJQUlnQURZQ0ZDQUFJQUkyQWhnTEFrQWdBMEVQVFFSQUlBUWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0JHb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBUWdCVUVEY2pZQ0JDQUVJQVZxSWdJZ0EwRUJjallDQkNBQ0lBTnFJQU0yQWdBZ0EwSC9BVTBFUUNBRFFYaHhRYkFmYWlFQUFuOUJpQjhvQWdBaUFVRUJJQU5CQTNaMElnTnhSUVJBUVlnZklBRWdBM0kyQWdBZ0FBd0JDeUFBS0FJSUN5RUJJQUFnQWpZQ0NDQUJJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0FUWUNDQXdCQzBFZklRQWdBMEgvLy84SFRRUkFJQU5CSmlBRFFRaDJaeUlBYTNaQkFYRWdBRUVCZEd0QlBtb2hBQXNnQWlBQU5nSWNJQUpDQURjQ0VDQUFRUUowUWJnaGFpRUJBa0FDUUNBSVFRRWdBSFFpQm5GRkJFQkJqQjhnQmlBSWNqWUNBQ0FCSUFJMkFnQU1BUXNnQTBFWklBQkJBWFpyUVFBZ0FFRWZSeHQwSVFBZ0FTZ0NBQ0VGQTBBZ0JTSUJLQUlFUVhoeElBTkdEUUlnQUVFZGRpRUdJQUJCQVhRaEFDQUJJQVpCQkhGcUlnWW9BaEFpQlEwQUN5QUdJQUkyQWhBTElBSWdBVFlDR0NBQ0lBSTJBZ3dnQWlBQ05nSUlEQUVMSUFFb0FnZ2lBQ0FDTmdJTUlBRWdBallDQ0NBQ1FRQTJBaGdnQWlBQk5nSU1JQUlnQURZQ0NBc2dCRUVJYWlFQURBRUxBa0FnQ1VVTkFBSkFJQUlvQWh3aUFFRUNkRUc0SVdvaUFTZ0NBQ0FDUmdSQUlBRWdCRFlDQUNBRURRRkJqQjhnQzBGK0lBQjNjVFlDQUF3Q0N5QUpRUkJCRkNBSktBSVFJQUpHRzJvZ0JEWUNBQ0FFUlEwQkN5QUVJQWsyQWhnZ0FpZ0NFQ0lBQkVBZ0JDQUFOZ0lRSUFBZ0JEWUNHQXNnQWlnQ0ZDSUFSUTBBSUFRZ0FEWUNGQ0FBSUFRMkFoZ0xBa0FnQTBFUFRRUkFJQUlnQXlBRmFpSUFRUU55TmdJRUlBQWdBbW9pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQUlnQlVFRGNqWUNCQ0FDSUFWcUlnUWdBMEVCY2pZQ0JDQURJQVJxSUFNMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFCQm5COG9BZ0FoQVFKL1FRRWdCMEVEZG5RaUJTQUdjVVVFUUVHSUh5QUZJQVp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hCaUFBSUFFMkFnZ2dCaUFCTmdJTUlBRWdBRFlDRENBQklBWTJBZ2dMUVp3ZklBUTJBZ0JCa0I4Z0F6WUNBQXNnQWtFSWFpRUFDeUFLUVJCcUpBQWdBQXZTQ3dFSGZ3SkFJQUJGRFFBZ0FFRUlheUlDSUFCQkJHc29BZ0FpQVVGNGNTSUFhaUVGQWtBZ0FVRUJjUTBBSUFGQkEzRkZEUUVnQWlBQ0tBSUFJZ0ZySWdKQm1COG9BZ0JKRFFFZ0FDQUJhaUVBQWtBQ1FFR2NIeWdDQUNBQ1J3UkFJQUZCL3dGTkJFQWdBVUVEZGlFRUlBSW9BZ3dpQVNBQ0tBSUlJZ05HQkVCQmlCOUJpQjhvQWdCQmZpQUVkM0UyQWdBTUJRc2dBeUFCTmdJTUlBRWdBellDQ0F3RUN5QUNLQUlZSVFZZ0FpQUNLQUlNSWdGSEJFQWdBaWdDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFKQkZHb2lCQ2dDQUNJRFJRUkFJQUlvQWhBaUEwVU5BaUFDUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRktBSUVJZ0ZCQTNGQkEwY05Ba0dRSHlBQU5nSUFJQVVnQVVGK2NUWUNCQ0FDSUFCQkFYSTJBZ1FnQlNBQU5nSUFEd3RCQUNFQkN5QUdSUTBBQWtBZ0FpZ0NIQ0lEUVFKMFFiZ2hhaUlFS0FJQUlBSkdCRUFnQkNBQk5nSUFJQUVOQVVHTUgwR01IeWdDQUVGK0lBTjNjVFlDQUF3Q0N5QUdRUkJCRkNBR0tBSVFJQUpHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQVkyQWhnZ0FpZ0NFQ0lEQkVBZ0FTQUROZ0lRSUFNZ0FUWUNHQXNnQWlnQ0ZDSURSUTBBSUFFZ0F6WUNGQ0FESUFFMkFoZ0xJQUlnQlU4TkFDQUZLQUlFSWdGQkFYRkZEUUFDUUFKQUFrQUNRQ0FCUVFKeFJRUkFRYUFmS0FJQUlBVkdCRUJCb0I4Z0FqWUNBRUdVSDBHVUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FDUVp3ZktBSUFSdzBHUVpBZlFRQTJBZ0JCbkI5QkFEWUNBQThMUVp3ZktBSUFJQVZHQkVCQm5COGdBallDQUVHUUgwR1FIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQUlBSnFJQUEyQWdBUEN5QUJRWGh4SUFCcUlRQWdBVUgvQVUwRVFDQUJRUU4ySVFRZ0JTZ0NEQ0lCSUFVb0FnZ2lBMFlFUUVHSUgwR0lIeWdDQUVGK0lBUjNjVFlDQUF3RkN5QURJQUUyQWd3Z0FTQUROZ0lJREFRTElBVW9BaGdoQmlBRklBVW9BZ3dpQVVjRVFFR1lIeWdDQUJvZ0JTZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQVZCRkdvaUJDZ0NBQ0lEUlFSQUlBVW9BaEFpQTBVTkFpQUZRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGSUFGQmZuRTJBZ1FnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUF3REMwRUFJUUVMSUFaRkRRQUNRQ0FGS0FJY0lnTkJBblJCdUNGcUlnUW9BZ0FnQlVZRVFDQUVJQUUyQWdBZ0FRMEJRWXdmUVl3ZktBSUFRWDRnQTNkeE5nSUFEQUlMSUFaQkVFRVVJQVlvQWhBZ0JVWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0JqWUNHQ0FGS0FJUUlnTUVRQ0FCSUFNMkFoQWdBeUFCTmdJWUN5QUZLQUlVSWdORkRRQWdBU0FETmdJVUlBTWdBVFlDR0FzZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FDQUNRWndmS0FJQVJ3MEFRWkFmSUFBMkFnQVBDeUFBUWY4QlRRUkFJQUJCZUhGQnNCOXFJUUVDZjBHSUh5Z0NBQ0lEUVFFZ0FFRURkblFpQUhGRkJFQkJpQjhnQUNBRGNqWUNBQ0FCREFFTElBRW9BZ2dMSVFBZ0FTQUNOZ0lJSUFBZ0FqWUNEQ0FDSUFFMkFnd2dBaUFBTmdJSUR3dEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBSWdBellDSENBQ1FnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQUNRRUdNSHlnQ0FDSUVRUUVnQTNRaUIzRkZCRUJCakI4Z0JDQUhjallDQUNBQklBSTJBZ0FnQWlBQk5nSVlEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQVFOQUlBRWlCQ2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBU0FEUVFGMElRTWdCQ0FCUVFSeGFpSUhRUkJxS0FJQUlnRU5BQXNnQnlBQ05nSVFJQUlnQkRZQ0dBc2dBaUFDTmdJTUlBSWdBallDQ0F3QkN5QUVLQUlJSWdBZ0FqWUNEQ0FFSUFJMkFnZ2dBa0VBTmdJWUlBSWdCRFlDRENBQ0lBQTJBZ2dMUWFnZlFhZ2ZLQUlBUVFGcklnQkJmeUFBR3pZQ0FBc0xCQUFqQUFzR0FDQUFKQUFMRUFBakFDQUFhMEZ3Y1NJQUpBQWdBQXRLQVFGL0lBQWdBVWtFUUNBQUlBRWdBaEFDRHdzZ0FnUkFJQUFnQW1vaEF5QUJJQUpxSVFFRFFDQURRUUZySWdNZ0FVRUJheUlCTFFBQU9nQUFJQUpCQVdzaUFnMEFDd3NnQUF2OURnSVJmd0YrSXdCQk1Hc2lCeVFBUWJoL0lRZ0NRQ0FGUlEwQUlBUXNBQUFpQ1VIL0FYRWhDd0pBSUFsQkFFZ0VRQ0FMUWY0QWEwRUJkaUlHSUFWUERRSkJiQ0VJSUF0Qi93QnJJZ3RCL3dGTERRSWdCRUVCYWlFSVFRQWhCUU5BSUFVZ0MwOEVRQ0FMSVFnZ0JpRUxEQU1GSUFBZ0JXb2dDQ0FGUVFGMmFpSUVMUUFBUVFSMk9nQUFJQUFnQlVFQmNtb2dCQzBBQUVFUGNUb0FBQ0FGUVFKcUlRVU1BUXNBQ3dBTElBVWdDMDBOQVNBSFFmOEJOZ0lFSUFZZ0IwRUVhaUFIUVFocUlBUkJBV29pRGlBTEVBd2lCRUdJZjBzRVFDQUVJUWdNQWd0QlZDRUlJQWNvQWdnaUVFRUdTdzBCSUFjb0FnUWlFVUVCZENJSlFRSnFyVUlCSUJDdGhpSVlRUUVnRUhRaURVRUJhaUlGclVJQ2hueDhRZ3Q4UXZ6Ly8vLy8vLy8vL3dDRFF1UUNWZzBCUVZJaENDQVJRZjhCU3cwQklBMUJmM05CQW5SQjVBSnFyU0FSUVFGcUloVkJBWFN0SUJoOFFnaDhWQTBCSUFzZ0JHc2hGaUFFSUE1cUlSY2dCa0dBQkdvaUVpQUZRUUowYWlJUklBbHFRUUpxSVE0Z0JrR0VCR29oRTBHQWdBSWdFSFJCRUhZaENVRUFJUVZCQVNFUElBMUJBV3NpRkNFS0EwQWdCU0FWUmtVRVFBSkFJQVlnQlVFQmRDSUlhaThCQUNJRVFmLy9BMFlFUUNBVElBcEJBblJxSUFVNkFBSWdDa0VCYXlFS1FRRWhCQXdCQ3lBUFFRQWdDU0FFd1VvYklROExJQWdnRVdvZ0JEc0JBQ0FGUVFGcUlRVU1BUXNMSUFZZ0R6c0JnZ1FnQmlBUU93R0FCQUpBSUFvZ0ZFWUVRQ0FOUVFOMklRaENBQ0VZUVFBaER3TkFJQXdnRlVZRVFDQUlJQTFCQVhacVFRTnFJZ2xCQVhRaENFRUFJUVJCQUNFS0EwQkJBQ0VGSUFvZ0RVOE5CQU5BSUFWQkFrWkZCRUFnRXlBRklBbHNJQVJxSUJSeFFRSjBhaUFPSUFVZ0NtcHFMUUFBT2dBQ0lBVkJBV29oQlF3QkN3c2dDa0VDYWlFS0lBUWdDR29nRkhFaEJBd0FDd0FGSUFZZ0RFRUJkR291QVFBaENTQU9JQTlxSWdRZ0dEY0FBRUVJSVFVRFFDQUZJQWxPUlFSQUlBUWdCV29nR0RjQUFDQUZRUWhxSVFVTUFRc0xJQmhDZ1lLRWlKQ2d3SUFCZkNFWUlBeEJBV29oRENBSklBOXFJUThNQVFzQUN3QUxJQTFCQTNZZ0RVRUJkbXBCQTJvaENFRUFJUVVEUUNBTUlCVkdSUVJBUVFBaENTQUdJQXhCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQUpSa1VFUUNBVElBVkJBblJxSUF3NkFBSURRQ0FGSUFocUlCUnhJZ1VnQ2tzTkFBc2dDVUVCYWlFSkRBRUxDeUFNUVFGcUlRd01BUXNMUVg4aENDQUZEUUlMSUJCQkFXb2hDRUVBSVFVRFFDQUZJQTFHUlFSQUlCRWdFeUFGUVFKMGFpSU9MUUFDUVFGMGFpSUVJQVF2QVFBaUNVRUJhanNCQUNBT0lBZ2dDV2RCWUhOcUlnUTZBQU1nRGlBSklBUjBJQTFyT3dFQUlBVkJBV29oQlF3QkN3c0NRQUpBSUFZdkFZSUVCRUFnQjBFY2FpSUVJQmNnRmhBTklnaEJpSDlMRFFJZ0IwRVVhaUFFSUJJUURpQUhRUXhxSUFRZ0VoQU9RUUFoQlFOQUlBZEJIR29pQkJBUElBVkIrd0ZMY2cwQ0lBQWdCV29pQmlBSFFSUnFJQVFRRURvQUFDQUdJQWRCREdvZ0JCQVFPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVTUF3VWdBQ0FFYWlBSFFSUnFJQWRCSEdvaUJCQVFPZ0FBSUFZZ0IwRU1haUFFRUJBNkFBTWdCVUVFYWlFRkRBRUxBQXNBQ3lBSFFSeHFJZ1FnRnlBV0VBMGlDRUdJZjBzTkFTQUhRUlJxSUFRZ0VoQU9JQWRCREdvZ0JDQVNFQTVCQUNFRkEwQWdCMEVjYWlJRUVBOGdCVUg3QVV0eVJRUkFJQUFnQldvaUJpQUhRUlJxSUFRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVUZJQUFnQkdvZ0IwRVVhaUFIUVJ4cUlnUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQURJQVZCQkdvaEJRd0NDd3NMQW44RFFFRzZmeUVJSUFWQi9RRkxEUU1nQUNBRmFpSUdJQWRCRkdvZ0IwRWNhaUlKRUJFNkFBQWdCa0VCYWlFRUlBa1FEMEVEUmdSQUlBZEJER29oQ0VFQ0RBSUxJQVZCL0FGTERRTWdCaUFIUVF4cUlBZEJIR29pQkJBUk9nQUJJQVZCQW1vaEJTQUVFQTlCQTBjTkFBc2dBQ0FGYWlFRUlBZEJGR29oQ0VFREN5QUVJQWdnQjBFY2FoQVJPZ0FBSUFacUlBQnJJUWdNQVFzQ2Z3TkFRYnAvSVFnZ0JVSDlBVXNOQWlBQUlBVnFJZ1lnQjBFVWFpQUhRUnhxSWdrUUVEb0FBQ0FHUVFGcUlRUWdDUkFQUVFOR0JFQWdCMEVNYWlFSVFRSU1BZ3NnQlVIOEFVc05BaUFHSUFkQkRHb2dCMEVjYWlJRUVCQTZBQUVnQlVFQ2FpRUZJQVFRRDBFRFJ3MEFDeUFBSUFWcUlRUWdCMEVVYWlFSVFRTUxJQVFnQ0NBSFFSeHFFQkE2QUFBZ0Jtb2dBR3NoQ0FzZ0NFR0lmMHNOQVFzZ0NDRUVRUUFoQlNBQlFRQkJOQkFESVFsQkFDRUtBMEFnQkNBRlJ3UkFJQUFnQldvaUJpMEFBQ0lCUVF0TEJFQkJiQ0VJREFNRklBa2dBVUVDZEdvaUFTQUJLQUlBUVFGcU5nSUFJQVZCQVdvaEJVRUJJQVl0QUFCMFFRRjFJQXBxSVFvTUFnc0FDd3RCYkNFSUlBcEZEUUFnQ21jaUJVRWZjeUlCUVF0TERRQWdBMEVnSUFWck5nSUFRUUZCQWlBQmRDQUtheUlEWjBFZmN5SUJkQ0FEUncwQUlBQWdCR29nQVVFQmFpSUFPZ0FBSUFrZ0FFRUNkR29pQUNBQUtBSUFRUUZxTmdJQUlBa29BZ1FpQUVFQ1NTQUFRUUZ4Y2cwQUlBSWdCRUVCYWpZQ0FDQUxRUUZxSVFnTElBZEJNR29rQUNBSUM2QUZBUXgvSXdCQkVHc2lEQ1FBQW44Z0JFRUhUUVJBSUF4Q0FEY0RDQ0FNUVFocUlnVWdBeUFFRUFJYVFXd2dBQ0FCSUFJZ0JVRUlFQXdpQUNBQUlBUkxHeUFBSUFCQmlYOUpHd3dCQ3lBQVFRQWdBU2dDQUVFQmFpSU5RUUYwRUFNaEQwRlVJQU1vQUFBaUJrRVBjU0lBUVFwTERRQWFJQUlnQUVFRmFqWUNBQ0FESUFScUlnSkJCR3NoQnlBQ1FRZHJJUXNnQUVFR2FpRU9RUVFoQWlBR1FRUjJJUVZCSUNBQWRDSUlRUUZ5SVFsQkFDRUFRUUVoQmlBRElRUURRQUpBSUFaQkFYRkZCRUFEUUNBRlFYOXpRWUNBZ0lCNGNtZ2lCa0VZU1VVRVFDQUFRU1JxSVFBZ0JDQUxUUVIvSUFSQkEyb0ZJQVFnQzJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTElBSWdCa0VlY1NJS2FrRUNhaUVDSUFaQkFYWkJBMndnQUdvZ0JTQUtka0VEY1dvaUFDQU5UdzBCQW44Z0JDQUxTeUFDUVFOMklBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFRZ0IydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTElBVWdDRUVCYTNFaUJpQUlRUUYwUVFGcklnb2dDV3NpRUVrRWZ5QU9RUUZyQlNBRklBcHhJZ1VnRUVFQUlBVWdDRTRiYXlFR0lBNExJUVVnRHlBQVFRRjBhaUFHUVFGcklnbzdBUUFnQUVFQmFpRUFJQUlnQldvaEFpQUlRUUVnQm1zZ0NpQUdRUUJLR3lBSmFpSUpTZ1JBSUFsQkFrZ05BVUVnSUFsbklnVnJJUTVCQVNBRlFSOXpkQ0VJQ3lBQUlBMVBEUUFnQ2tFQVJ5RUdBbjhnQkNBTFN5QUNRUU4xSUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQUlnQkNBSGEwRURkR3BCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTFFXd2dDVUVCUncwQUdrRlFJQUFnRFVzTkFCcEJiQ0FDUVNCS0RRQWFJQUVnQUVFQmF6WUNBQ0FFSUFKQkIycEJBM1ZxSUFOckN5QU1RUkJxSkFBTDhnRUJBWDhnQWtVRVFDQUFRZ0EzQWdBZ0FFRUFOZ0lRSUFCQ0FEY0NDRUc0Znc4TElBQWdBVFlDRENBQUlBRkJCR28yQWhBZ0FrRUVUd1JBSUFBZ0FTQUNhaUlCUVFScklnTTJBZ2dnQUNBREtBQUFOZ0lBSUFGQkFXc3RBQUFpQVFSQUlBQWdBV2RCRjJzMkFnUWdBZzhMSUFCQkFEWUNCRUYvRHdzZ0FDQUJOZ0lJSUFBZ0FTMEFBQ0lETmdJQUFrQUNRQUpBSUFKQkFtc09BZ0VBQWdzZ0FDQUJMUUFDUVJCMElBTnlJZ00yQWdBTElBQWdBUzBBQVVFSWRDQURhallDQUFzZ0FTQUNha0VCYXkwQUFDSUJSUVJBSUFCQkFEWUNCRUZzRHdzZ0FDQUJaeUFDUVFOMGEwRUphallDQkNBQ0MwUUJBbjhnQVNBQ0x3RUFJZ01nQVNnQ0JHb2lCRFlDQkNBQUlBTkJBblJCb0IxcUtBSUFJQUVvQWdCQkFDQUVhM1p4TmdJQUlBRVFEeG9nQUNBQ1FRUnFOZ0lFQzU4QkFRUi9RUU1oQVNBQUtBSUVJZ0pCSUUwRVFDQUFLQUlJSWdFZ0FDZ0NFRThFUUNBQUlBSkJCM0UyQWdRZ0FDQUJJQUpCQTNacklnSTJBZ2dnQUNBQ0tBQUFOZ0lBUVFBUEN5QUFLQUlNSWdNZ0FVWUVRRUVCUVFJZ0FrRWdTUnNQQ3lBQUlBRWdBU0FEYXlBQ1FRTjJJZ1FnQVNBRWF5QURTU0lCR3lJRGF5SUVOZ0lJSUFBZ0FpQURRUU4wYXpZQ0JDQUFJQVFvQUFBMkFnQUxJQUVMU0FFRWZ5QUFLQUlFSUFBb0FnQkJBblJxSWdJdEFBSWdBaThCQUNFRUlBRWdBU2dDQkNJRklBSXRBQU1pQW1vMkFnUWdBQ0FFSUFFb0FnQWdCWFJCQUNBQ2EzWnFOZ0lBQzFJQkJIOGdBQ2dDQkNBQUtBSUFRUUowYWlJQ0xRQUNJQUl2QVFBaEJDQUJJQUl0QUFNaUFpQUJLQUlFYWlJRk5nSUVJQUFnQkNBQ1FRSjBRYUFkYWlnQ0FDQUJLQUlBUVFBZ0JXdDJjV28yQWdBTENBQWdBRUdJZjBzTEdnQWdBQVJBSUFFRVFDQUNJQUFnQVJFQ0FBOExJQUFRQmdzTHBnZ0NEWDhCZmlNQVFSQnJJZ2trQUNBSlFRQTJBZ3dnQ1VFQU5nSUlBbjhDUUNBRFFlZ0phaUFESUFsQkNHb2dDVUVNYWlBQklBSWdBMEdBQVdvUUN5SVBRWWgvU3cwQVFWUWdDU2dDRENJRUlBQW9BZ0FpQVVIL0FYRkJBV3BMRFFFYUlBQkJCR29oQ3lBQUlBRkIvNEdBZUhFZ0JFRVFkRUdBZ1B3SGNYSTJBZ0JCZnlBRUlBUkJBRWdiUVFGcUlRQkJBQ0VCSUFrb0FnZ2hCVUVBSVFJRFFDQUFJQUpHQkVBZ0JVRURheUVCUVFBaEFBTkFBa0JCQUNFQ0lBQWdBVTRFUUFOQUlBQWdCVTROQWlBRElBQWdBMnBCNkFscUxRQUFRUUowYWtGQWF5SUJJQUVvQWdBaUFVRUJhallDQUNBQklBTnFJQUE2QU9nSElBQkJBV29oQUF3QUN3QUZBMEFnQWtFRVJrVUVRQ0FESUFNZ0FDQUNhaUlIYWtIb0NXb3RBQUJCQW5ScVFVQnJJZ2dnQ0NnQ0FDSUlRUUZxTmdJQUlBTWdDR29nQnpvQTZBY2dBa0VCYWlFQ0RBRUxDeUFBUVFScUlRQU1BZ3NBQ3dzZ0JFRUJhaUVPSUFNb0FnQWhCMEVBSVFCQkFTRUlBMEFnQ0NBT1JnMERJQTRnQ0dzaEJDQURJQWhCQW5ScUtBSUFJUVVDUUFKQUFrQUNRQUpBQWtCQkFTQUlkRUVCZFNJTlFRRnJEZ2dBQVFRQ0JBUUVBd1FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFBSVFFRFFDQUNJQVpHRFFVZ0F5QUNJQWRxYWkwQTZBY2hDaUFMSUFGQkFYUnFJZ3dnQkRvQUFTQU1JQW82QUFBZ0FrRUJhaUVDSUFGQkFXb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQ2lBQUlRRURRQ0FDSUFwR0RRUWdDeUFCUVFGMGFpSUdJQU1nQWlBSGFtb3RBT2dISWd3NkFBSWdCaUFFT2dBQklBWWdERG9BQUNBR0lBUTZBQU1nQWtFQmFpRUNJQUZCQW1vaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFFUVFoMFFZRCtBM0VoQkNBQUlRRURRQ0FDSUFaR0RRTWdDeUFCUVFGMGFpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK053QUFJQUpCQVdvaEFpQUJRUVJxSVFFTUFBc0FDMEVBSVFJZ0JVRUFJQVZCQUVvYklRWWdCRUVJZEVHQS9nTnhJUVFnQUNFQkEwQWdBaUFHUmcwQ0lBc2dBVUVCZEdvaUNpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0loRTNBQWdnQ2lBUk53QUFJQUpCQVdvaEFpQUJRUWhxSVFFTUFBc0FDMEVBSVFFZ0JVRUFJQVZCQUVvYklRb2dCRUVJZEVHQS9nTnhJUXdnQUNFRUEwQWdBU0FLUmcwQklBc2dCRUVCZEdvaEVDQU1JQU1nQVNBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0lSRkJBQ0VDQTBBZ0FpQU5Ua1VFUUNBUUlBSkJBWFJxSWdZZ0VUY0FHQ0FHSUJFM0FCQWdCaUFSTndBSUlBWWdFVGNBQUNBQ1FSQnFJUUlNQVFzTElBRkJBV29oQVNBRUlBMXFJUVFNQUFzQUN5QUlRUUZxSVFnZ0JTQUhhaUVISUFVZ0RXd2dBR29oQUF3QUN3QUZJQU1nQWtFQ2RHb2lCMEZBYXlBQk5nSUFJQUpCQVdvaEFpQUhLQUlBSUFGcUlRRU1BUXNBQ3dBTElBOExJQWxCRUdva0FBdnlBZ0VHZnlNQVFTQnJJZ1VrQUNBRUtBSUFJUVlnQlVFTWFpQUNJQU1RRFNJRFFZaC9UUVJBSUFSQkJHb2hBaUFBSUFGcUlnbEJBMnNoQkVFQUlBWkJFSFpyUVI5eElRTURRQ0FGUVF4cUVBOGdBQ0FFVDNKRkJFQWdBaUFGS0FJTUlnWWdCU2dDRUNJSGRDQURka0VCZEdvaUNDMEFBU0VLSUFBZ0NDMEFBRG9BQUNBQ0lBWWdCeUFLYWlJR2RDQURka0VCZEdvaUJ5MEFBQ0VJSUFVZ0JpQUhMUUFCYWpZQ0VDQUFJQWc2QUFFZ0FFRUNhaUVBREFFTEN3TkFJQVZCREdvUUR5RUhJQVVvQWd3aEJpQUZLQUlRSVFRZ0FDQUpUeUFIY2tVRVFDQUNJQVlnQkhRZ0EzWkJBWFJxSWdZdEFBQWhCeUFGSUFRZ0JpMEFBV28yQWhBZ0FDQUhPZ0FBSUFCQkFXb2hBQXdCQ3dzRFFDQUFJQWxQUlFSQUlBSWdCaUFFZENBRGRrRUJkR29pQnkwQUFTRUlJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdCQ0FJYWlFRURBRUxDMEZzUVd3Z0FTQUZLQUlVSUFVb0FoaEhHeUFFUVNCSEd5RURDeUFGUVNCcUpBQWdBd3ZQRkFFamZ5TUFRZEFBYXlJRkpBQkJiQ0VKQWtBZ0EwRUtTUTBBQWtBZ0F5QUNMd0FFSWdjZ0FpOEFBQ0lJSUFJdkFBSWlEV3BxUVFacUlneEpEUUFnQkM4QkFpRUdJQVZCUEdvZ0FrRUdhaUlDSUFnUURTSUpRWWgvU3cwQklBVkJLR29nQWlBSWFpSUNJQTBRRFNJSlFZaC9TdzBCSUFWQkZHb2dBaUFOYWlJQ0lBY1FEU0lKUVloL1N3MEJJQVVnQWlBSGFpQURJQXhyRUEwaUNVR0lmMHNOQVNBRVFRUnFJUW9nQUNBQmFpSWZRUU5ySVNCQkFDQUdhMEVmY1NFTElBVW9BZ2doRVNBRktBSWNJUklnQlNnQ01DRVRJQVVvQWtRaEZDQUZLQUlFSVFrZ0JTZ0NHQ0VOSUFVb0Fpd2hEQ0FGS0FKQUlRWWdCU2dDRUNFaElBVW9BaVFoSWlBRktBSTRJU01nQlNnQ1RDRWtJQVVvQWdBaEZTQUZLQUlVSVJZZ0JTZ0NLQ0VYSUFVb0Fqd2hHRUVCSVE4Z0FDQUJRUU5xUVFKMklnUnFJZ01nQkdvaUFpQUVhaUlaSVFRZ0FpRUlJQU1oQndOQUlBOUJBWEZGSUFRZ0lFOXlSUVJBSUFBZ0NpQVlJQVowSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEdpQU9MUUFESVJBZ0J5QUtJQmNnREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnRGkwQUFpRWJJQTR0QUFNaER5QUlJQW9nRmlBTmRDQUxka0VDZEdvaURpOEJBRHNBQUNBT0xRQUNJUndnRGkwQUF5RWRJQVFnQ2lBVklBbDBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloSGlBT0xRQURJUTRnQUNBUWFpSWxJQW9nR0NBR0lCcHFJZ1owSUF0MlFRSjBhaUlRTHdFQU93QUFJQkF0QUFJZ0VDMEFBeUVtSUFjZ0Qyb2lKeUFLSUJjZ0RDQWJhaUlhZENBTGRrRUNkR29pQnk4QkFEc0FBQ0FITFFBQ0lRd2dCeTBBQXlFUUlBZ2dIV29pR3lBS0lCWWdEU0FjYWlJUGRDQUxka0VDZEdvaUNDOEJBRHNBQUNBSUxRQUNJUTBnQ0MwQUF5RWNJQVFnRG1vaUhTQUtJQlVnQ1NBZWFpSU9kQ0FMZGtFQ2RHb2lDUzhCQURzQUFDQUdhaUVBUVFNaEJ3Si9JQlFnSkVrRVFDQUFJUVpCQXd3QkN5QUFRUWR4SVFZZ0ZDQUFRUU4yYXlJVUtBQUFJUmhCQUFzZ0NTMEFBeUVlSUFrdEFBSWhDQ0FNSUJwcUlRQWdFeUFqU1FSL0lBQUZJQk1nQUVFRGRtc2lFeWdBQUNFWFFRQWhCeUFBUVFkeEN5RU1JQTBnRDJvaEFDQUhjaUVKUVFNaER3Si9JQklnSWtrRVFDQUFJUTFCQXd3QkN5QUFRUWR4SVEwZ0VpQUFRUU4yYXlJU0tBQUFJUlpCQUFzZ0NDQU9haUVBSUFseUlCRWdJVWtFZnlBQUJTQVJJQUJCQTNackloRW9BQUFoRlVFQUlROGdBRUVIY1FzaENTQWxJQ1pxSVFBZ0VDQW5haUVISUJzZ0hHb2hDQ0FkSUI1cUlRUWdEM0pGSVE4TUFRc0xJQVVnRERZQ0xDQUZJQVkyQWtBZ0JTQU5OZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFJZ0Iwa2dBQ0FEUzNJTkFFRnNJUWtnQ0NBWlN3MEJJQU5CQTJzaENRTkFJQVZCUEdvUUQwVWdBQ0FKU1hFRVFDQUFJQW9nQlNnQ1BDSU5JQVVvQWtBaURIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0FDQU9MUUFEYWlJR0lBb2dEU0FNSUE0dEFBSnFJZ0IwSUF0MlFRSjBhaUlNTHdFQU93QUFJQVVnQUNBTUxRQUNhallDUUNBR0lBd3RBQU5xSVFBTUFRVWdBMEVDYXlFTUEwQWdCVUU4YWhBUElRWWdCU2dDUENFTklBVW9Ba0FoQ1NBQUlBeExJQVp5UlFSQUlBQWdDaUFOSUFsMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0NTQUdMUUFDYWpZQ1FDQUFJQVl0QUFOcUlRQU1BUXNMQTBBZ0FDQU1TMFVFUUNBQUlBb2dEU0FKZENBTGRrRUNkR29pQmk4QkFEc0FBQ0FBSUFZdEFBTnFJUUFnQ1NBR0xRQUNhaUVKREFFTEN3SkFJQUFnQTA4TkFDQUFJQW9nRFNBSmRDQUxkaUlBUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUpJQU10QUFKcUlRa01BUXNnQ1VFZlN3MEFRU0FnQ1NBS0lBQkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRa0xJQUpCQTJzaERBTkFJQVZCS0dvUUQwVWdCeUFNU1hFRVFDQUhJQW9nQlNnQ0tDSUdJQVVvQWl3aUFIUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0J5QU5MUUFEYWlJRElBb2dCaUFBSUEwdEFBSnFJZ0IwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQUNBR0xRQUNhallDTENBRElBWXRBQU5xSVFjTUFRVWdBa0VDYXlFR0EwQWdCVUVvYWhBUElRTWdCU2dDS0NFTUlBVW9BaXdoQUNBR0lBZEpJQU55UlFSQUlBY2dDaUFNSUFCMElBdDJRUUowYWlJREx3RUFPd0FBSUFVZ0FDQURMUUFDYWpZQ0xDQUhJQU10QUFOcUlRY01BUXNMQTBBZ0JpQUhTVVVFUUNBSElBb2dEQ0FBZENBTGRrRUNkR29pQXk4QkFEc0FBQ0FISUFNdEFBTnFJUWNnQUNBRExRQUNhaUVBREFFTEN3SkFJQUlnQjAwTkFDQUhJQW9nRENBQWRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUFJQU10QUFKcUlRQU1BUXNnQUVFZlN3MEFRU0FnQUNBS0lBSkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRQUxJQmxCQTJzaERBTkFJQVZCRkdvUUQwVWdDQ0FNU1hFRVFDQUlJQW9nQlNnQ0ZDSUdJQVVvQWhnaUFuUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0NDQU5MUUFEYWlJRElBb2dCaUFDSUEwdEFBSnFJZ0owSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQWlBR0xRQUNhallDR0NBRElBWXRBQU5xSVFnTUFRVWdHVUVDYXlFREEwQWdCVUVVYWhBUElRSWdCU2dDRkNFR0lBVW9BaGdoQnlBRElBaEpJQUp5UlFSQUlBZ2dDaUFHSUFkMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFVZ0J5QUNMUUFDYWpZQ0dDQUlJQUl0QUFOcUlRZ01BUXNMQTBBZ0F5QUlTVVVFUUNBSUlBb2dCaUFIZENBTGRrRUNkR29pQWk4QkFEc0FBQ0FJSUFJdEFBTnFJUWdnQnlBQ0xRQUNhaUVIREFFTEN3SkFJQWdnR1U4TkFDQUlJQW9nQmlBSGRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUhJQU10QUFKcUlRY01BUXNnQjBFZlN3MEFRU0FnQnlBS0lBSkJBblJxTFFBQ2FpSUNJQUpCSUU4YklRY0xBMEFnQlJBUFJTQUVJQ0JKY1FSQUlBUWdDaUFGS0FJQUlnWWdCU2dDQkNJQ2RDQUxka0VDZEdvaURDOEJBRHNBQUNBRUlBd3RBQU5xSWdNZ0NpQUdJQUlnREMwQUFtb2lBblFnQzNaQkFuUnFJZ1F2QVFBN0FBQWdCU0FDSUFRdEFBSnFOZ0lFSUFNZ0JDMEFBMm9oQkF3QkJTQWZRUUpySVFNRFFDQUZFQThoQWlBRktBSUFJUVlnQlNnQ0JDRUlJQU1nQkVrZ0FuSkZCRUFnQkNBS0lBWWdDSFFnQzNaQkFuUnFJZ0l2QVFBN0FBQWdCU0FJSUFJdEFBSnFOZ0lFSUFRZ0FpMEFBMm9oQkF3QkN3c0RRQ0FESUFSSlJRUkFJQVFnQ2lBR0lBaDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBUWdBaTBBQTJvaEJDQUlJQUl0QUFKcUlRZ01BUXNMQWtBZ0JDQWZUdzBBSUFRZ0NpQUdJQWgwSUF0MklnSkJBblJxSWdNdEFBQTZBQUFnQXkwQUEwRUJSZ1JBSUFnZ0F5MEFBbW9oQ0F3QkN5QUlRUjlMRFFCQklDQUlJQW9nQWtFQ2RHb3RBQUpxSWdJZ0FrRWdUeHNoQ0F0QmJFRnNRV3hCYkVGc1FXeEJiRUZzSUFFZ0NFRWdSeHNnQlNnQ0NDQUZLQUlNUnhzZ0IwRWdSeHNnQlNnQ0hDQUZLQUlnUnhzZ0FFRWdSeHNnQlNnQ01DQUZLQUkwUnhzZ0NVRWdSeHNnQlNnQ1JDQUZLQUpJUnhzaENRd0pDd0FMQUFzQUN3QUxBQXNBQ3dBTEFBdEJiQ0VKQ3lBRlFkQUFhaVFBSUFrTDdCQUJIbjhqQUVIUUFHc2lCU1FBUVd3aENRSkFJQU5CQ2trTkFBSkFJQU1nQWk4QUJDSUdJQUl2QUFBaUJ5QUNMd0FDSWdocWFrRUdhaUlPU1EwQUlBUXZBUUloRHlBRlFUeHFJQUpCQm1vaUFpQUhFQTBpQ1VHSWYwc05BU0FGUVNocUlBSWdCMm9pQWlBSUVBMGlDVUdJZjBzTkFTQUZRUlJxSUFJZ0NHb2lBaUFHRUEwaUNVR0lmMHNOQVNBRklBSWdCbW9nQXlBT2F4QU5JZ2xCaUg5TERRRWdCRUVFYWlFS0lBQWdBV29pSEVFRGF5RWRRUUFnRDJ0QkgzRWhDeUFGS0FJSUlSRWdCU2dDSENFU0lBVW9BakFoRXlBRktBSkVJUlFnQlNnQ0JDRUpJQVVvQWhnaEJpQUZLQUlzSVFjZ0JTZ0NRQ0VJSUFVb0FoQWhIaUFGS0FJa0lSOGdCU2dDT0NFZ0lBVW9Ba3doSVNBRktBSUFJUlVnQlNnQ0ZDRVdJQVVvQWlnaEZ5QUZLQUk4SVJoQkFTRU5JQUFnQVVFRGFrRUNkaUlDYWlJT0lBSnFJZzhnQW1vaUdTRUVJQThoQWlBT0lRTURRQ0FOUlNBRUlCMVBja1VFUUNBS0lCZ2dDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBQWdDaUFYSUFkMElBdDJRUUYwYWlJTUxRQUJJUkFnQXlBTUxRQUFPZ0FBSUFvZ0ZpQUdkQ0FMZGtFQmRHb2lEQzBBQVNFYUlBSWdEQzBBQURvQUFDQUtJQlVnQ1hRZ0MzWkJBWFJxSWd3dEFBRWhHeUFFSUF3dEFBQTZBQUFnQ2lBWUlBZ2dEV29pQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUVnQ2lBWElBY2dFR29pQjNRZ0MzWkJBWFJxSWd3dEFBRWhFQ0FESUF3dEFBQTZBQUVnQ2lBV0lBWWdHbW9pREhRZ0MzWkJBWFJxSWdZdEFBRWhHaUFDSUFZdEFBQTZBQUVnQ2lBVklBa2dHMm9pRzNRZ0MzWkJBWFJxSWdrdEFBRWhJaUFFSUFrdEFBQTZBQUVnQ0NBTmFpRUdRUU1oQ1FKL0lCUWdJVWtFUUVFRElRMGdCZ3dCQ3lBVUlBWkJBM1pySWhRb0FBQWhHRUVBSVEwZ0JrRUhjUXNoQ0NBSElCQnFJUVlnRXlBZ1NRUi9JQVlGSUJNZ0JrRURkbXNpRXlnQUFDRVhRUUFoQ1NBR1FRZHhDeUVISUF3Z0dtb2hEQ0FKSUExeUlSQkJBeUVOQW44Z0VpQWZTUVJBSUF3aEJrRUREQUVMSUF4QkIzRWhCaUFTSUF4QkEzWnJJaElvQUFBaEZrRUFDeUFiSUNKcUlRd2dFSEloRUNBUklCNUpCSDhnREFVZ0VTQU1RUU4yYXlJUktBQUFJUlZCQUNFTklBeEJCM0VMSVFrZ0JFRUNhaUVFSUFKQkFtb2hBaUFEUVFKcUlRTWdBRUVDYWlFQUlBMGdFSEpGSVEwTUFRc0xJQVVnQnpZQ0xDQUZJQWcyQWtBZ0JTQUdOZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFBZ0Rrc2dBeUFQUzNJTkFFRnNJUWtnQWlBWlN3MEJJQTVCQTJzaENRTkFJQVZCUEdvUUR5QUFJQWxQY2tVRVFDQUtJQVVvQWp3aUJpQUZLQUpBSWdkMElBdDJRUUYwYWlJSUxRQUJJUXdnQUNBSUxRQUFPZ0FBSUFvZ0JpQUhJQXhxSWdaMElBdDJRUUYwYWlJSExRQUFJUWdnQlNBR0lBY3RBQUZxTmdKQUlBQWdDRG9BQVNBQVFRSnFJUUFNQVFzTEEwQWdCVUU4YWhBUElRY2dCU2dDUENFR0lBVW9Ba0FoQ1NBQUlBNVBJQWR5UlFSQUlBb2dCaUFKZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQ1NBR0xRQUJhallDUUNBQUlBYzZBQUFnQUVFQmFpRUFEQUVMQ3dOQUlBQWdEazlGQkVBZ0NpQUdJQWwwSUF0MlFRRjBhaUlITFFBQklBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0NXb2hDUXdCQ3dzZ0QwRURheUVBQTBBZ0JVRW9haEFQSUFBZ0EwMXlSUVJBSUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQURJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaXdnQXlBSU9nQUJJQU5CQW1vaEF3d0JDd3NEUUNBRlFTaHFFQThoQnlBRktBSW9JUVlnQlNnQ0xDRUFJQU1nRDA4Z0IzSkZCRUFnQ2lBR0lBQjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQUFJQVl0QUFGcU5nSXNJQU1nQnpvQUFDQURRUUZxSVFNTUFRc0xBMEFnQXlBUFQwVUVRQ0FLSUFZZ0FIUWdDM1pCQVhScUlnY3RBQUVoQ0NBRElBY3RBQUE2QUFBZ0EwRUJhaUVESUFBZ0NHb2hBQXdCQ3dzZ0dVRURheUVEQTBBZ0JVRVVhaEFQSUFJZ0EwOXlSUVJBSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQUNJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaGdnQWlBSU9nQUJJQUpCQW1vaEFnd0JDd3NEUUNBRlFSUnFFQThoQnlBRktBSVVJUVlnQlNnQ0dDRURJQUlnR1U4Z0IzSkZCRUFnQ2lBR0lBTjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQURJQVl0QUFGcU5nSVlJQUlnQnpvQUFDQUNRUUZxSVFJTUFRc0xBMEFnQWlBWlQwVUVRQ0FLSUFZZ0EzUWdDM1pCQVhScUlnY3RBQUVoQ0NBQ0lBY3RBQUE2QUFBZ0FrRUJhaUVDSUFNZ0NHb2hBd3dCQ3dzRFFDQUZFQThnQkNBZFQzSkZCRUFnQ2lBRktBSUFJZ0lnQlNnQ0JDSUdkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUtJQUlnQmlBSWFpSUNkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdBaUFHTFFBQmFqWUNCQ0FFSUFjNkFBRWdCRUVDYWlFRURBRUxDd05BSUFVUUR5RUhJQVVvQWdBaEJpQUZLQUlFSVFJZ0JDQWNUeUFIY2tVRVFDQUtJQVlnQW5RZ0MzWkJBWFJxSWdZdEFBQWhCeUFGSUFJZ0JpMEFBV28yQWdRZ0JDQUhPZ0FBSUFSQkFXb2hCQXdCQ3dzRFFDQUVJQnhQUlFSQUlBb2dCaUFDZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FFUVFGcUlRUWdBaUFJYWlFQ0RBRUxDMEZzUVd4QmJFRnNRV3hCYkVGc1FXd2dBU0FDUVNCSEd5QUZLQUlJSUFVb0FneEhHeUFEUVNCSEd5QUZLQUljSUFVb0FpQkhHeUFBUVNCSEd5QUZLQUl3SUFVb0FqUkhHeUFKUVNCSEd5QUZLQUpFSUFVb0FraEhHeUVKREFFTFFXd2hDUXNnQlVIUUFHb2tBQ0FKQzFnQkEzOENRQ0FBS0FLUTZ3RWlBVVVOQUNBQktBSUFJQUZCdE5VQmFpZ0NBQ0lDSUFGQnVOVUJhaWdDQUNJREVCTWdBZ1JBSUFNZ0FTQUNFUUlBREFFTElBRVFCZ3NnQUVFQU5nS2c2d0VnQUVJQU53T1E2d0VMNlFNQ0JIOENmaUFBUVFCQktCQURJUVFnQWtFQlFRVWdBeHNpQUVrRVFDQUFEd3NnQVVVRVFFRi9Ed3RCQVNFR0FrQUNRQ0FEUVFGR0RRQWdBeUVHSUFFb0FBQWlCVUdvNnI1cFJnMEFRWFloQXlBRlFYQnhRZERVdE1JQlJ3MEJRUWdoQXlBQ1FRaEpEUUVnQVRVQUJDRUlJQVJCQVRZQ0ZDQUVJQWczQXdCQkFBOExJQUVnQWlBR0VCb2lBeUFDU3cwQUlBUWdBellDR0VGeUlRTWdBQ0FCYWlJRlFRRnJMUUFBSWdKQkNIRU5BQ0FDUVNCeElnWkZCRUJCY0NFRElBVXRBQUFpQlVHbkFVc05BU0FGUVFkeHJVSUJJQVZCQTNaQkNtcXRoaUlJUWdPSWZpQUlmQ0VKSUFCQkFXb2hBQXNnQWtFR2RpRUZJQUpCQW5aQkFDRURBa0FDUUFKQUFrQWdBa0VEY1VFQmF3NERBQUVDQXdzZ0FDQUJhaTBBQUNFRElBQkJBV29oQUF3Q0N5QUFJQUZxTHdBQUlRTWdBRUVDYWlFQURBRUxJQUFnQVdvb0FBQWhBeUFBUVFScUlRQUxRUUZ4SVFJQ2ZnSkFBa0FDUUFKQUlBVkJBV3NPQXdFQ0F3QUxRbjhnQmtVTkF4b2dBQ0FCYWpFQUFBd0RDeUFBSUFGcU13QUFRb0FDZkF3Q0N5QUFJQUZxTlFBQURBRUxJQUFnQVdvcEFBQUxJUWdnQkNBQ05nSWdJQVFnQXpZQ0hDQUVJQWczQXdCQkFDRURJQVJCQURZQ0ZDQUVJQWdnQ1NBR0d5SUlOd01JSUFSQ2dJQUlJQWdnQ0VLQWdBaGFHejRDRUFzZ0F3dGZBUUYvUWJoL0lRTWdBVUVCUVFVZ0Foc2lBazhFZnlBQUlBSnFRUUZyTFFBQUlnQkJBM0ZCQW5SQm9CNXFLQUlBSUFKcUlBQkJCSFpCREhGQnNCNXFLQUlBYWlBQVFTQnhJZ0ZGYWlBQlFRVjJJQUJCd0FCSmNXb0ZRYmgvQ3dzTUFDQUFJQUVnQWtFQUVCa0xsd01DQlg4Q2ZpTUFRVUJxSWdRa0FBSkFBMEFnQVVFRlR3UkFBa0FnQUNnQUFFRndjVUhRMUxUQ0FVWUVRRUorSVFjZ0FVRUlTUTBFSUFBb0FBUWlBa0YzU3cwRUlBSkJDR29pQXlBQlN3MEVJQUpCZ1g5SkRRRU1CQXNnQkVFWWFpQUFJQUVRR3lFQ1FuNGdCQ2tER0VJQUlBUW9BaXhCQVVjYklBSWJJZ2RDZlZZTkF5QUhJQWg4SWdnZ0IxUkNmaUVIRFFNQ1FBSkFJQUZCQ0VrTkFDQUFLQUFBUVhCeFFkRFV0TUlCUncwQUlBQW9BQVFpQWtGM1N3MEZRYmgvSUFKQkNHb2lBaUFCSUFKSkd5RUREQUVMSUFSQkdHb2dBQ0FCRUJzaUFrR0lmMHNFUUNBQ0lRTU1BUXRCdUg4aEF5QUNEUUFnQVNBRUtBSXdJZ0pySVFVZ0FDQUNhaUVHQTBBZ0JpQUZJQVJCREdvUUhTSURRWWgvU3cwQklBTkJBMm9pQWlBRlN3UkFRYmgvSVFNTUFnc2dCU0FDYXlFRklBSWdCbW9oQmlBRUtBSVFSUTBBQ3lBRUtBSTRCSDlCdUg4aEF5QUZRUVJKRFFFZ0JrRUVhZ1VnQmdzZ0FHc2hBd3NnQTBHSWYwc05Bd3NnQVNBRGF5RUJJQUFnQTJvaEFBd0JDd3RDZmlBSUlBRWJJUWNMSUFSQlFHc2tBQ0FIQzJRQkFYOUJ1SDhoQXdKQUlBRkJBMGtOQUNBQUxRQUNJUUVnQWlBQUx3QUFJZ0JCQVhFMkFnUWdBaUFBUVFGMlFRTnhJZ00yQWdBZ0FpQUFJQUZCRUhSeVFRTjJJZ0EyQWdnQ1FBSkFJQU5CQVdzT0F3SUJBQUVMUVd3UEN5QUFJUU1MSUFNTFJBRUNmeUFCSUFJb0FnUWlBeUFCS0FJRWFpSUVOZ0lFSUFBZ0EwRUNkRUdnSFdvb0FnQWdBU2dDQUVFQUlBUnJkbkUyQWdBZ0FSQVBHaUFBSUFKQkNHbzJBZ1FMemdFQkJuOUJ1bjhoQ2dKQUlBSW9BZ1FpQ0NBQ0tBSUFJZ2xxSWcwZ0FTQUFhMHNOQUVGc0lRb2dDU0FFSUFNb0FnQWlDMnRMRFFBZ0FDQUphaUlFSUFJb0FnZ2lER3NoQWlBQUlBRkJJR3NpQUNBTElBbEJBQkFnSUFNZ0NTQUxhallDQUFKQUFrQWdCQ0FGYXlBTVR3UkFJQUloQlF3QkN5QU1JQVFnQm10TERRSWdCeUFISUFJZ0JXc2lBbW9pQVNBSWFrOEVRQ0FFSUFFZ0NCQUtHZ3dDQ3lBQ0lBaHFJUWdnQkNBQlFRQWdBbXNRQ2lBQ2F5RUVDeUFFSUFBZ0JTQUlRUUVRSUFzZ0RTRUtDeUFLQzhjRUFRSi9JQUFnQTJvaEJnSkFJQU5CQjB3RVFBTkFJQUFnQms4TkFpQUFJQUl0QUFBNkFBQWdBRUVCYWlFQUlBSkJBV29oQWd3QUN3QUxJQVJCQVVZRVFBSkFJQUFnQW1zaUJVRUhUUVJBSUFBZ0FpMEFBRG9BQUNBQUlBSXRBQUU2QUFFZ0FDQUNMUUFDT2dBQ0lBQWdBaTBBQXpvQUF5QUFJQUlnQlVFQ2RDSUZRY0FlYWlnQ0FHb2lBaWdBQURZQUJDQUNJQVZCNEI1cUtBSUFheUVDREFFTElBQWdBaWtBQURjQUFBc2dBa0VJYWlFQ0lBQkJDR29oQUFzZ0FTQUdUd1JBSUFBZ0Eyb2hBU0FFUVFGSElBQWdBbXRCRDBweVJRUkFBMEFnQUNBQ0tRQUFOd0FBSUFKQkNHb2hBaUFBUVFocUlnQWdBVWtOQUF3REN3QUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQTBFUlNRMEJJQUJCRUdvaEFBTkFJQUFnQWlrQUVEY0FBQ0FBSUFJcEFCZzNBQWdnQUNBQ0tRQWdOd0FRSUFBZ0Fpa0FLRGNBR0NBQ1FTQnFJUUlnQUVFZ2FpSUFJQUZKRFFBTERBRUxBa0FnQUNBQlN3UkFJQUFoQVF3QkN5QUJJQUJySVFVQ1FDQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUlBSWhBd05BSUFBZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQUVFSWFpSUFJQUZKRFFBTERBRUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQlVFUlNBMEFJQUJCRUdvaEFDQUNJUU1EUUNBQUlBTXBBQkEzQUFBZ0FDQURLUUFZTndBSUlBQWdBeWtBSURjQUVDQUFJQU1wQUNnM0FCZ2dBMEVnYWlFRElBQkJJR29pQUNBQlNRMEFDd3NnQWlBRmFpRUNDd05BSUFFZ0JrOE5BU0FCSUFJdEFBQTZBQUFnQVVFQmFpRUJJQUpCQVdvaEFnd0FDd0FMQzY0SEFnVi9BWDRqQUVHQUFXc2lFU1FBSUJFZ0F6WUNmRUYvSVE4Q1FBSkFBa0FDUUFKQUlBSU9CQUVBQXdJRUN5QUdSUVJBUWJoL0lROE1CQXRCYkNFUElBVXRBQUFpQWlBRFN3MERJQWdnQWtFQ2RDSUNhaWdDQUNFRElBSWdCMm9vQWdBaEFpQUFRUUE2QUFzZ0FFSUFOd0lBSUFBZ0FqWUNEQ0FBSUFNNkFBb2dBRUVBT3dFSUlBRWdBRFlDQUVFQklROE1Bd3NnQVNBSk5nSUFRUUFoRHd3Q0N5QUtSUVJBUVd3aER3d0NDMEVBSVE4Z0MwVWdERUVaU0hJTkFVRUlJQVIwUVFocUlRQkJBQ0VEQTBBZ0FDQURUUTBDSUFOQlFHc2hBd3dBQ3dBTFFXd2hEeUFSSUJGQi9BQnFJQkZCK0FCcUlBVWdCaEFNSWdOQmlIOUxEUUFnRVNnQ2VDSUNJQVJMRFFBZ0VTZ0NmRUVCYWlFSklBQkJDR29oQzBHQWdBSWdBblJCRUhVaEJVRUJJUkJCQVNBQ2RDSVBRUUZySWdvaEVnTkFJQWtnRGtjRVFBSkFJQkVnRGtFQmRDSUVhaThCQUNJTVFmLy9BMFlFUUNBTElCSkJBM1JxSUE0MkFnUWdFa0VCYXlFU1FRRWhEQXdCQ3lBUVFRQWdCU0FNd1VvYklSQUxJQVFnRFdvZ0REc0JBQ0FPUVFGcUlRNE1BUXNMSUFBZ0FqWUNCQ0FBSUJBMkFnQUNRQ0FLSUJKR0JFQWdEVUhxQUdvaEJrRUFJUkJCQUNFTUEwQWdDU0FRUmdSQUlBOUJBM1lnRDBFQmRtcEJBMm9pQlVFQmRDRUVRUUFoREVFQUlSSURRRUVBSVE0Z0R5QVNUUTBFQTBBZ0RrRUNSd1JBSUFzZ0JTQU9iQ0FNYWlBS2NVRURkR29nQmlBT0lCSnFhaTBBQURZQ0JDQU9RUUZxSVE0TUFRc0xJQkpCQW1vaEVpQUVJQXhxSUFweElRd01BQXNBQlNBUklCQkJBWFJxTGdFQUlRVWdCaUFNYWlJRUlCTTNBQUJCQ0NFT0EwQWdCU0FPU2dSQUlBUWdEbW9nRXpjQUFDQU9RUWhxSVE0TUFRc0xJQk5DZ1lLRWlKQ2d3SUFCZkNFVElCQkJBV29oRUNBRklBeHFJUXdNQVFzQUN3QUxJQTlCQTNZZ0QwRUJkbXBCQTJvaEJVRUFJUkJCQUNFT0EwQWdDU0FRUmcwQlFRQWhEQ0FSSUJCQkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FNUndSQUlBc2dEa0VEZEdvZ0VEWUNCQU5BSUFVZ0Rtb2dDbkVpRGlBU1N3MEFDeUFNUVFGcUlRd01BUXNMSUJCQkFXb2hFQXdBQ3dBTElBSkJBV29oQlVFQUlRd0RRQ0FNSUE5SEJFQWdEU0FMSUF4QkEzUnFJZ2tvQWdRaUJFRUJkR29pQWlBQ0x3RUFJZ1pCQVdvN0FRQWdDU0FGSUFablFXQnphaUlDT2dBRElBa2dCaUFDZENBUGF6c0JBQ0FKSUFnZ0JFRUNkQ0lDYWlnQ0FEb0FBaUFKSUFJZ0Iyb29BZ0EyQWdRZ0RFRUJhaUVNREFFTEN5QUJJQUEyQWdBZ0F5RVBDeUFSUVlBQmFpUUFJQThMN1ZvQ08zOEdmaU1BUWVBQmF5SUVKQUFDUUVHdzdBa1FCU0lGUlFSQVFVQWhCd3dCQ3lBRlFnQTNBdlRxQVNBRlFRQTJBc1RyQVNBRlFRQTJBclRyQVNBRlFnQTNBcHpyQVNBRlFRQTJBcmpwQVNBRlFRQTJBcXpzQ1NBRlFnQTNBdFRyQVNBRlFnQTNBcXpyQVNBRlFnQTNBNGpyQVNBRlFnQTNBdVRxQVNBRlFnQTNBdVRyQVNBRlFZR0FnTUFBTmdLODZ3RWdCVUlBTndLazZ3RWdCVUg4NmdGcVFRQTJBZ0FnQlVHUTZ3RnFRZ0EzQXdBZ0JSQVlJQVZCck5VQmFpRVVJQVZCK09zQmFpRWNJQVZCc09vQmFpRWlJQVZCb0RCcUlTb2dCVUdZSUdvaEt5QUZRYWpRQUdvaEhpQUZRUkJxSVN3Z0JVRUlhaUVvSUFWQkJHb2hMU0FGUWNEcEFXb2hLU0FGUVlqckFXb2dCRUdVQVdvaEx5QUVRWXdCYWlFd0lBUkJoQUZxSVRFZ0JFSGNBR29oTWlBRVFkUUFhaUV6SUFSQnpBQnFJVFFnQUNFZEFrQUNRQUpBQWtBQ1FBTkFRUUZCQlNBRktBTGs2Z0ViSVFZQ1FBTkFJQU1nQmtrTkFTQUNLQUFBUVhCeFFkRFV0TUlCUmdSQVFiaC9JUWNnQTBFSVNRMElJQUlvQUFRaURrRjNTd1JBUVhJaEJ3d0pDeUFESUE1QkNHb2lDVWtOQ0NBT1FZQi9Td1JBSUFraEJ3d0pDeUFESUFscklRTWdBaUFKYWlFQ0RBRUxDeUFGUWdBM0FxenBBU0FGUWdBM0EranBBU0FGUVFBMkFwanJBU0FGUWdBM0E0RHFBU0FGUWdNM0EvanBBU0FGUWJUcEFXcENBRGNDQUNBRlFmRHBBV3BDQURjREFDQUZRYWpRQUdvaUNVR01nSURnQURZQ0FDQUZRYXpRQVdwQjRCSXBBZ0EzQWdBZ0JVRzAwQUZxUWVnU0tBSUFOZ0lBSUFVZ0JVRVFhallDQUNBRklBVkJvREJxTmdJRUlBVWdCVUdZSUdvMkFnZ2dCU0FKTmdJTUlBVkJBVUVGSUFVb0F1VHFBUnMyQXJ6cEFRSkFJQUZGRFFBZ0JTZ0NyT2tCSWdrZ0hVWU5BQ0FGSUFrMkFyanBBU0FGSUIwMkFxenBBU0FGS0FLdzZRRWhEaUFGSUIwMkFyRHBBU0FGSUIwZ0RpQUphMm8yQXJUcEFRdEJ1SDhoQ1NBRFFRVkJDU0FGS0FMazZnRWlCaHRKRFFVZ0FrRUJRUVVnQmhzZ0JoQWFJZzVCaUg5TEJFQWdEaUVKREFVTElBTWdEa0VEYWtrTkJTQXBJQUlnRGlBR0VCa2lCa0dJZjBzRVFDQUdJUWtNQlFzZ0JnMEZBa0FDUUNBRktBS282d0ZCQVVjTkFDQUZLQUtrNndFaUNVVU5BQ0FGS0FLVTZ3RkZEUUFnQ1NnQ0JFRUJheUlISUFVb0F0enBBU0lLclVLSGxhK3ZtTGJlbTU1L2ZrTEp6OW15OGVXNjZpZUZRaGVKUXMvVzA3N1N4NnZaUW41QytmUGQ4Wm4ybWFzV2ZDSS9RaUdJSUQrRlFzL1cwNzdTeDZ2WlFuNGlQMElkaUNBL2hVTDU4OTN4bWZhWnF4WitJajlDSUlnZ1A0V25jU0VHSUFrb0FnQWhGUU5BUVFBaENBSkFJQlVnQmtFQ2RHb29BZ0FpQ1VVTkFDQUpLQUlJUVFoSkRRQWdDU2dDQkNJU0tBQUFRYmZJd3VGK1J3MEFJQklvQUFRaENBc2dDQ0FLUndSQUlBWWdCM0ZCQVdvaEJpQUlEUUVMQ3lBSlJRMEFJQVVRR0NBRlFYODJBcURyQVNBRklBazJBcFRyQVNBRklBVW9BdHpwQVNJSU5nS1k2d0VNQVFzZ0JTZ0MzT2tCSVFnTEFrQWdDRVVOQUNBRktBS1k2d0VnQ0VZTkFFRmdJUWtNQmdzQ1FDQUZLQUxnNlFFRVFDQUZJQVVvQXVqcUFTSUpSVFlDN09vQklBa05BU0FGUXZucTBORG55YUhrNFFBM0E2anFBU0FGUWdBM0E2RHFBU0FGUXMvVzA3N1N4NnZaUWpjRG1Pb0JJQVZDMXV1Qzd1cjlpZlhnQURjRGtPb0JJQVZDQURjRGlPb0JJQ0pCQUVFb0VBTWFEQUVMSUFWQkFEWUM3T29CQ3lBQklCMXFJU1VnQlNBRktRUG82UUVnRHExOE53UG82UUVnQXlBT2F5RURJQUlnRG1vaEFpQWRJUTREUUNBQ0lBTWdCRUVzYWhBZEloVkJpSDlMQkVBZ0ZTRUpEQVlMSUFOQkEyc2lOU0FWU1EwRUlBSkJBMm9oRzBGc0lRa0NRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBRUtBSXNEZ01DQVFBVkN5QVZRZi8vQjBzTkV5QVZRUU5KRFJJZ0JTa0R5T2tCSVQ4Q1FBSkFJQnN0QUFBaUNVRURjU0lhUVFGckRnTUdBUUFIQ3lBRktBS0E2Z0VOQUVGaUlRa01GUXNnRlVFRlNRMFNJQnNvQUFBaEF3Si9Ba0FDUUFKQUlBbEJBblpCQTNFaUNVRUNhdzRDQVFJQUN5QUpRUUJISVFjZ0EwRUVka0gvQjNFaEMwRURJUVlnQTBFT2RrSC9CM0VNQWd0QkJDRUdJQU5CQkhaQi8vOEFjU0VMUVFFaEJ5QURRUkoyREFFTElBTkJCSFpCLy84UGNTSUxRWUNBQ0VzTkUwRUJJUWRCQlNFR0lBSXRBQWRCQ25RZ0EwRVdkbklMSWdnZ0Jtb2lDU0FWU3cwU0FrQWdDMEdCQmtrTkFDQUZLQUtjNndGRkRRQkJBQ0VEQTBBZ0EwR0RnQUZMRFFFZ0EwRkFheUVEREFBTEFBc2dCaUFiYWlFUElCcEJBMGNOQmlBRktBSU1JZ0l0QUFGQkNIUWhBeUFIRFFjZ0EwVU5DQ0FFUWZBQWFpQVBJQWdRRFNJRFFZaC9TdzBKSUFKQkJHb2hCaUFMSUJ4cUloSkJBMnNoQ2tFQUlBSXZBUUpyUVI5eElRY2dIQ0VEQTBBZ0JFSHdBR29RRDBVZ0F5QUtTWEVFUUNBRElBWWdCQ2dDY0NJSUlBUW9BblFpRDNRZ0IzWkJBblJxSWdJdkFRQTdBQUFnQXlBQ0xRQURhaUlESUFZZ0NDQVBJQUl0QUFKcUlnaDBJQWQyUVFKMGFpSUNMd0VBT3dBQUlBUWdDQ0FDTFFBQ2FqWUNkQ0FESUFJdEFBTnFJUU1NQVFVZ0VrRUNheUVJQTBBZ0JFSHdBR29RRHlFUElBUW9BbkFoQ2lBRUtBSjBJUUlnQXlBSVN5QVBja1VFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pQ2k4QkFEc0FBQ0FFSUFJZ0NpMEFBbW8yQW5RZ0F5QUtMUUFEYWlFRERBRUxDd05BSUFNZ0NFMEVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lEeThCQURzQUFDQURJQTh0QUFOcUlRTWdBaUFQTFFBQ2FpRUNEQUVMQ3dKQUlBTWdFazhOQUNBRElBWWdDaUFDZENBSGRrRUNkR29pQXkwQUFEb0FBQ0FETFFBRFFRRkdCRUFnQWlBRExRQUNhaUVDREFFTElBSkJIMHNOQUVFZ0lBSWdBeTBBQW1vaUFpQUNRU0JQR3lFQ0MwRnNRV3dnQ3lBRUtBSjRJQVFvQW54SEd5QUNRU0JIR3lFRERBc0xBQXNBQ3lBRUtBSTBJZ0lnSlNBT2Ewc05DaUFPUlFSQVFRQWhDU0FDRFFJTURnc2dEaUFiTFFBQUlBSVFBeG9nQWlFSkRBd0xJQlVnSlNBT2Ewc05DU0FPRFFGQkFDRUpJQlZGRFF3TFFiWi9JUWtNRVFzZ0RpQWJJQlVRQWhvZ0ZTRUpEQW9MSUJ3Z0d3Si9Ba0FDUUFKQUlBbEJBblpCQTNGQkFXc09Bd0VBQWdBTElBbEJBM1loQTBFQkRBSUxJQnN2QUFCQkJIWWhBMEVDREFFTElCVkJCRWtORGlBQ0x3QURJQUl0QUFWQkVIUnlJZ0pCajRDQUFVc05EaUFDUVFSMklRTkJBd3NpQW1vdEFBQWdBMEVnYWhBRElRa2dCU0FETmdLQTZ3RWdCU0FKTmdMdzZnRWdBa0VCYWlFSkRBVUxJQlVDZndKQUFrQUNRQ0FKUVFKMlFRTnhRUUZyRGdNQkFBSUFDeUFKUVFOMklRTkJBUXdDQ3lBYkx3QUFRUVIySVFOQkFnd0JDeUFDTHdBRElBSXRBQVZCRUhSeVFRUjJJUU5CQXdzaUFpQURhaUlKUVNCcVNRUkFJQWtnRlVzTkRTQWNJQUlnRzJvZ0F4QUNJUUlnQlNBRE5nS0E2d0VnQlNBQ05nTHc2Z0VnQWlBRGFpSUNRZ0EzQUJnZ0FrSUFOd0FRSUFKQ0FEY0FDQ0FDUWdBM0FBQU1CUXNnQlNBRE5nS0E2d0VnQlNBQ0lCdHFOZ0x3NmdFTUJBc2dCMFVFUUNBZUlBOGdDQ0FVRUJRaUFrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGU0VEREFNTElBdEZJQWhGY2cwTElBdEJDSFlpQXlBSUlBdEpCSDhnQ0VFRWRDQUxiZ1ZCRHd0QkdHd2lBa0dNQ0dvb0FnQnNJQUpCaUFocUtBSUFhaUlHUVFOMklBWnFJQUpCZ0FocUtBSUFJQUpCaEFocUtBSUFJQU5zYWtrRVFDTUFRUkJySWhBa0FDQWVLQUlBSVFNZ0ZFSHdCR3BCQUVIc0FCQURJUVpCVkNFQ0FrQWdBMEgvQVhFaURFRU1TdzBBQWtBZ0ZFSGNDV29nQmlBUVFRaHFJQkJCREdvZ0R5QUlJQlJCM0F0cUloY1FDeUlTUVloL1N3MEFJQkFvQWd3aUJpQU1TdzBCSUJSQnFBVnFJUTBnRkVHa0JXb2hOaUFlUVFScUlSRWdBMEdBZ0lCNGNTRTNJQVpCQVdvaUV5RUNJQVloQXdOQUlBSWlCMEVCYXlFQ0lBTWlDa0VCYXlFRElCUWdDa0VDZEdvb0F2QUVSUTBBQzBFQklBY2dCMEVCVFJzaEZrRUFJUWRCQVNFQ0EwQWdBaUFXUndSQUlCUWdBa0VDZENJRGFpZ0M4QVFoR0NBRElBMXFJQWMyQWdBZ0FrRUJhaUVDSUFjZ0dHb2hCd3dCQ3dzZ0RTQUhOZ0lBUVFBaEFpQVFLQUlJSVFNRFFDQUNJQU5IQkVBZ0RTQUNJQlJxUWR3SmFpMEFBQ0lZUVFKMGFpSVpJQmtvQWdBaUdVRUJhallDQUNBVUlCbEJBWFJxSWhrZ0dEb0EzUVVnR1NBQ09nRGNCU0FDUVFGcUlRSU1BUXNMUVFBaEF5QU5RUUEyQWdBZ0RDQUdRWDl6YWlFR1FRRWhBZ05BSUFJZ0ZrY0VRQ0FVSUFKQkFuUnFJZzBnQXpZQ0FDQU5LQUx3QkNBQ0lBWnFkQ0FEYWlFRElBSkJBV29oQWd3QkN3c2dEQ0FUSUFwcklnWnJRUUZxSVFvZ0JpRURBMEFnQXlBS1NRUkFJQlFnQTBFMGJHb2hEVUVCSVFJRFFDQUNJQlpIQkVBZ0RTQUNRUUowSWhocUlCUWdHR29vQWdBZ0EzWTJBZ0FnQWtFQmFpRUNEQUVMQ3lBRFFRRnFJUU1NQVFzTElCY2dGRUUwRUFJaE9DQVVRWkFNYWlFNUlCTWdER3NoT2lBVVFkd0ZhaUVYUVFBaENnTkFBa0FDUUNBSElBcEhCRUJCQVNBTUlCTWdGeUFLUVFGMGFpSUNMUUFCSWcxcklnTnJJaGgwSVJrZ0FpMEFBQ0VXSURnZ0RVRUNkR29pSHlnQ0FDRUNJQVlnR0UwRVFDQTJRUUVnQXlBNmFpSU5JQTFCQVV3YklpQkJBblFpSkdvb0FnQWhEU0E1SUJRZ0EwRTBiR3BCTkJBQ0lTRWdEVUVCZENFbUlCRWdBa0VDZEdvaEl5QWdRUUZORFFJZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRWdJQ0VnSkdvb0FnQWhKRUVBSVFJRFFDQUNJQ1JHRFFNZ0l5QUNRUUowYWlBZ05nRUFJQUpCQVdvaEFnd0FDd0FMSUFJZ0FpQVphaUlOSUFJZ0RVc2JJUTBnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFREEwQWdBaUFOUmcwRElCRWdBa0VDZEdvZ0F6WUJBQ0FDUVFGcUlRSU1BQXNBQ3lBZUlBeEJFSFFnTjNJZ0RISkJnQUp5TmdJQURBTUxJQWNnRFdzaEpDQVhJQ1pxSVNaQkFDRU5BMEFnRFNBa1JnMEJRUUVnR0NBVElDWWdEVUVCZEdvaUp5MEFBU0lDYXlJN2EzUWlQQ0FoSUFKQkFuUnFJaUFvQWdBaUFtb2hQU0FESUR0cVFSQjBRWUNBL0FkeElDY3RBQUJCQ0hSeUlCWnlRWUNBZ0JCeUlTY0RRQ0FqSUFKQkFuUnFJQ2MyQVFBZ0FrRUJhaUlDSUQxSkRRQUxJQ0FnSUNnQ0FDQThhallDQUNBTlFRRnFJUTBNQUFzQUN5QWZJQjhvQWdBZ0dXbzJBZ0FnQ2tFQmFpRUtEQUFMQUFzZ0VpRUNDeUFRUVJCcUpBQWdBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRmlFRERBTUxJQjRnRHlBSUlCUVFGQ0lDUVloL1N5QUNJQWhQY2cwTElCd2dDeUFDSUE5cUlBZ2dBbXNnSGhBWElRTU1BZ3NnQXdSQUlCd2dDeUFQSUFnZ0FoQVdJUU1NQWdzZ0hDQUxJQThnQ0NBQ0VCY2hBd3dCQ3lBY0lBc2dEeUFJSUFJUUZTRURDeUFEUVloL1N3MElJQVVnQ3pZQ2dPc0JJQVVnSERZQzhPb0JJQVZCQVRZQ2dPb0JJQnBCQWtZRVFDQUZJQjQyQWd3TElBc2dIR29pQWtJQU53QUFJQUpDQURjQUdDQUNRZ0EzQUJBZ0FrSUFOd0FJSUFsQmlIOUxEUW9MSUFrZ0ZVWU5DQ0FWSUFscklRWWdCU2dDbk9zQklRb0NRQ0FKSUJ0cUlnTXRBQUFpRDBVRVFFRUJJUUpCQUNFUFFiaC9JUWtnQmtFQlJnMEJEQXNMQW44Z0EwRUJhaUFQd0NJQ1FRQk9EUUFhSUFKQmYwWUVRQ0FHUVFOSURRc2dBeThBQVVHQS9nRnFJUThnQTBFRGFnd0JDeUFHUVFKSURRb2dBeTBBQVNBUFFRaDBja0dBZ0FKcklROGdBMEVDYWdzaEVrRzRmeUVKSUJKQkFXb2lBaUFWSUJ0cUlnZExEUW9nTENBRklCSXRBQUFpRWtFR2RrRWpRUWtnQWlBSElBSnJRY0FRUWRBUlFmQVNJQVVvQW9UcUFTQUtJQThnRkJBaElnbEJpSDlMRFFnZ0t5QW9JQkpCQkhaQkEzRkJIMEVJSUFJZ0NXb2lBaUFISUFKclFZQUxRWUFNUVlBWElBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlDRUdJZjBzTkNFRnNJUWtnS2lBdElCSkJBblpCQTNGQk5FRUpJQUlnQ0dvaUFpQUhJQUpyUVlBTlFlQU9RWkFaSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUIwR0lmMHNOQ2lBQ0lBZHFJQU5ySWdJaENTQUNRWWgvU3cwS0N5QU9JQTlCQUV4eURRRUxRYnAvSVFrTUNBc2dKU0FPYXlFSklBWWdBbXNoQmlBQ0lBTnFJUWNDUUFKQUFrQWdDa1VFUUNBUFFRbElJQVVwQThqcEFVS0JnSUFJVkhJTkFpQW9LQUlBSWdKQkNHb2hFaUFDS0FJRUlRcEJBQ0VEUVFBaEFnTkFJQU1nQ25aRkJFQWdBaUFTSUFOQkEzUnFMUUFDUVJaTGFpRUNJQU5CQVdvaEF3d0JDd3NnQlVFQU5nS2M2d0VnQWtFSUlBcHJkRUVVVHcwQkRBTUxJQVZCQURZQ25Pc0JDeUFFSUFVb0F2RHFBU0lETmdMY0FTQUpJQTVxSVJZZ0F5QUZLQUtBNndGcUlSY0NRQ0FQUlFSQUlBNGhCd3dCQ3lBRktBSzQ2UUVoR2lBRktBSzA2UUVoR0NBRktBS3c2UUVoRWlBRlFRRTJBb1RxQVVFQUlRTURRQ0FEUVFOSEJFQWdCQ0FEUVFKMElnSnFJQUlnQldwQnJOQUJhaWdDQURZQ1pDQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFUaHFJZ0lnQnlBR0VBMUJpSDlMRFFOQkNDQVBJQTlCQ0U0YklSOGdOQ0FDSUFVb0FnQVFIaUF6SUFJZ0JTZ0NDQkFlSURJZ0FpQUZLQUlFRUI0Z0RpQVNheUVaUVFBaENBTkFJQVJCT0dvUUQwRURSaUFJSUI5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdkQkVIWWlFVUgvQVhFaEN5QUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZ3hCRUhZaUlVSC9BWEVoRUNBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUVlnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNrSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lLYXlJTklBSWdBaUFOU3hzaUV5QUthallDUENBR0lBUW9BamdnQ25SQkFDQVRhM1lnQWlBVGF5SVRkR29oQ2lBRVFUaHFFQThhSUFJZ0RVME5BU0FFSUFRb0Fqd2lBaUFUYWpZQ1BDQUVLQUk0SUFKMFFRQWdFMnQySUFwcUlRb01BUXNnQkNBQ0lBUW9BandpRFdvMkFqd2dCQ2dDT0NBTmRFRUFJQXByZGlBR2FpRUtJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQW8yQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBREJFQWdCQ2dDWkNFS0RBTUxJQVFvQW1naENnd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQVlnQTBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdaRklBWnFJUW9nQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlBbzJBbVFMcHlFQ0lFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQkJxTmdJOElBUW9BamdnQm5SQkFDQWhhM1lnQW1vaEFnc2dDeUFRYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUF0cU5nSThJQVFvQWpnZ0JuUkJBQ0FSYTNZZ0Eyb2hBd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lCa0VBSUFkQkdIWWlDeUFFS0FJOGFpSVFhM1lnQzBFQ2RFR2dIV29vQWdCeElBZEIvLzhEY1dvMkFrd2dCQ0FRSUF4QkdIWWlCMm9pQ3pZQ1BDQUVJQWRCQW5SQm9CMXFLQUlBSUFaQkFDQUxhM1p4SUF4Qi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ1pCR0hZaUJ5QUVLQUk4YWlJTE5nSThJQVFnQjBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUF0cmRuRWdCa0gvL3dOeGFqWUNWQ0FFUWZBQWFpQUlRUXhzYWlJR0lBbzJBZ2dnQmlBQ05nSUVJQVlnQXpZQ0FDQUlRUUZxSVFnZ0F5QVphaUFDYWlFWkRBRUxDeUFJSUI5SURRTWdGa0VnYXlFaElBNGhCd05BSUFSQk9Hb1FEMEVEUmlBSUlBOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnWkJFSFlpSTBIL0FYRWhDaUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWcxQkVIWWlJRUgvQVhFaEV5QUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFNZ1FVSWdpQ0JBUWlDSXB5RUxBa0FnUWtJUWlLY2lERUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJTWF5SVJJQUlnQWlBUlN4c2lFQ0FNYWpZQ1BDQURJQVFvQWpnZ0RIUkJBQ0FRYTNZZ0FpQVFheUlNZEdvaEVDQUVRVGhxRUE4YUlBSWdFVTBOQVNBRUlBUW9BandpQWlBTWFqWUNQQ0FFS0FJNElBSjBRUUFnREd0MklCQnFJUkFNQVFzZ0JDQUNJQVFvQWp3aUVHbzJBandnQkNnQ09DQVFkRUVBSUF4cmRpQURhaUVRSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUJBMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQUxCRUFnQkNnQ1pDRVFEQU1MSUFRb0FtZ2hFQXdCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFNZ0MwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnTkZJQU5xSVJBZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQkEyQW1RTHB5RU1JRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUJOcU5nSThJQVFvQWpnZ0FuUkJBQ0FnYTNZZ0RHb2hEQXNnQ2lBVGFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lBcHFOZ0k4SUFRb0FqZ2dBblJCQUNBamEzWWdDMm9oQ3dzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQWtFQUlBWkJHSFlpQXlBRUtBSThhaUlLYTNZZ0EwRUNkRUdnSFdvb0FnQnhJQVpCLy84RGNXbzJBa3dnQkNBS0lBMUJHSFlpQTJvaUJqWUNQQ0FFSUFOQkFuUkJvQjFxS0FJQUlBSkJBQ0FHYTNaeElBMUIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdKQkdIWWlBeUFFS0FJOGFpSUdOZ0k4SUFRZ0EwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBWnJkbkVnQWtILy93TnhhallDVkFKQUFrQUNRQ0FFS0FMY0FTSURJQVJCOEFCcUlBaEJCM0ZCREd4cUloTW9BZ0FpRVdvaUl5QVhTdzBBSUFjZ0V5Z0NCQ0lOSUJGcUlncHFJQ0ZMRFFBZ0NrRWdhaUFXSUFkclRRMEJDeUFFSUJNb0FnZzJBaGdnQkNBVEtRSUFOd01RSUFjZ0ZpQUVRUkJxSUFSQjNBRnFJQmNnRWlBWUlCb1FIeUVLREFFTElBY2dFV29oQWlBVEtBSUlJUVlnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0FKQUlCRkJFVWtOQUNBSElBTXBBQkEzQUJBZ0J5QURLUUFZTndBWUlCRkJFR3RCRVVnTkFDQURRUkJxSVFNZ0IwRWdhaUVSQTBBZ0VTQURLUUFRTndBQUlCRWdBeWtBR0RjQUNDQVJJQU1wQUNBM0FCQWdFU0FES1FBb053QVlJQU5CSUdvaEF5QVJRU0JxSWhFZ0Fra05BQXNMSUFJZ0Jtc2hBeUFFSUNNMkF0d0JJQUlnRW1zZ0Jra0VRQ0FHSUFJZ0dHdExEUWNnR2lBYUlBTWdFbXNpQTJvaUVTQU5hazhFUUNBQ0lCRWdEUkFLR2d3Q0N5QURJQTFxSVEwZ0FpQVJRUUFnQTJzUUNpQURheUVDSUJJaEF3c2dCa0VRVHdSQUlBSWdBeWtBQURjQUFDQUNJQU1wQUFnM0FBZ2dEVUVSU0EwQklBSWdEV29oQmlBQ1FSQnFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBR1NRMEFDd3dCQ3dKQUlBWkJCMDBFUUNBQ0lBTXRBQUE2QUFBZ0FpQURMUUFCT2dBQklBSWdBeTBBQWpvQUFpQUNJQU10QUFNNkFBTWdBaUFESUFaQkFuUWlCa0hBSG1vb0FnQnFJZ01vQUFBMkFBUWdBeUFHUWVBZWFpZ0NBR3NoQXd3QkN5QUNJQU1wQUFBM0FBQUxJQTFCQ1VrTkFDQUNJQTFxSVJFZ0FrRUlhaUlHSUFOQkNHb2lBMnRCRDB3RVFBTkFJQVlnQXlrQUFEY0FBQ0FEUVFocUlRTWdCa0VJYWlJR0lCRkpEUUFNQWdzQUN5QUdJQU1wQUFBM0FBQWdCaUFES1FBSU53QUlJQTFCR1VnTkFDQUNRUmhxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQVJTUTBBQ3dzZ0NrR0lmMHNFUUNBS0lRa01CZ1VnRXlBUU5nSUlJQk1nRERZQ0JDQVRJQXMyQWdBZ0NFRUJhaUVJSUFjZ0Ntb2hCeUFMSUJscUlBeHFJUmtNQWdzQUN3c2dDQ0FQU0EwRElBZ2dIMnNoQmdOQUFrQWdCaUFQVGdSQVFRQWhBd05BSUFOQkEwWU5BaUFGSUFOQkFuUWlBbXBCck5BQmFpQUNJQVJxS0FKa05nSUFJQU5CQVdvaEF3d0FDd0FMQWtBQ1FBSkFJQVFvQXR3QklnTWdCRUh3QUdvZ0JrRUhjVUVNYkdvaUNDZ0NBQ0lNYWlJUUlCZExEUUFnQnlBSUtBSUVJZ3NnREdvaUNtb2dJVXNOQUNBS1FTQnFJQllnQjJ0TkRRRUxJQVFnQ0NnQ0NEWUNLQ0FFSUFncEFnQTNBeUFnQnlBV0lBUkJJR29nQkVIY0FXb2dGeUFTSUJnZ0doQWZJUW9NQVFzZ0J5QU1haUVDSUFnb0FnZ2hDQ0FISUFNcEFBQTNBQUFnQnlBREtRQUlOd0FJQWtBZ0RFRVJTUTBBSUFjZ0F5a0FFRGNBRUNBSElBTXBBQmczQUJnZ0RFRVFhMEVSU0EwQUlBTkJFR29oQXlBSFFTQnFJUXdEUUNBTUlBTXBBQkEzQUFBZ0RDQURLUUFZTndBSUlBd2dBeWtBSURjQUVDQU1JQU1wQUNnM0FCZ2dBMEVnYWlFRElBeEJJR29pRENBQ1NRMEFDd3NnQWlBSWF5RURJQVFnRURZQzNBRWdBaUFTYXlBSVNRUkFJQWdnQWlBWWEwc05CeUFhSUJvZ0F5QVNheUlEYWlJTUlBdHFUd1JBSUFJZ0RDQUxFQW9hREFJTElBTWdDMm9oQ3lBQ0lBeEJBQ0FEYXhBS0lBTnJJUUlnRWlFREN5QUlRUkJQQkVBZ0FpQURLUUFBTndBQUlBSWdBeWtBQ0RjQUNDQUxRUkZJRFFFZ0FpQUxhaUVJSUFKQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFJZ0F5MEFBRG9BQUNBQ0lBTXRBQUU2QUFFZ0FpQURMUUFDT2dBQ0lBSWdBeTBBQXpvQUF5QUNJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBSWdBeWtBQURjQUFBc2dDMEVKU1EwQUlBSWdDMm9oRENBQ1FRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0RFa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dDMEVaU0EwQUlBSkJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBeEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0dCU0FHUVFGcUlRWWdCeUFLYWlFSERBSUxBQXNMSUFRb0F0d0JJUU1MUWJwL0lRa2dGeUFEYXlJQ0lCWWdCMnRMRFFJZ0J3Ui9JQWNnQXlBQ0VBSWdBbW9GUVFBTElBNXJJUWtNQWdzZ0JVRUFOZ0tjNndFTElBUWdCU2dDOE9vQklnTTJBdHdCSUFrZ0Rtb2hEQ0FESUFVb0FvRHJBV29oRUFKQUlBOUZCRUFnRGlFR0RBRUxJQVVvQXJqcEFTRU5JQVVvQXJUcEFTRVRJQVVvQXJEcEFTRVNJQVZCQVRZQ2hPb0JRUUFoQXdOQUlBTkJBMGNFUUNBRUlBTkJBblFpQW1vZ0FpQUZha0dzMEFGcUtBSUFOZ0tjQVNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUWZBQWFpSUNJQWNnQmhBTlFZaC9TdzBCSURFZ0FpQUZLQUlBRUI0Z01DQUNJQVVvQWdnUUhpQXZJQUlnQlNnQ0JCQWVJQXhCSUdzaEdDQU9JUVlEUUNBRUtBS0lBU0FFS0FLRUFVRURkR29wQWdBaVFLY2lDa0VRZGlJWlFmOEJjU0VMSUFRb0FwZ0JJQVFvQXBRQlFRTjBhaWtDQUNKQnB5SVdRUkIySWg5Qi93RnhJUm9nQkNnQ2tBRWdCQ2dDakFGQkEzUnFLUUlBSWtKQ0lJaW5JUWNnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NkQ0lJYXlJUklBSWdBaUFSU3hzaUZ5QUlhallDZENBSElBUW9BbkFnQ0hSQkFDQVhhM1lnQWlBWGF5SVhkR29oQ0NBRVFmQUFhaEFQR2lBQ0lCRk5EUUVnQkNBRUtBSjBJZ0lnRjJvMkFuUWdCQ2dDY0NBQ2RFRUFJQmRyZGlBSWFpRUlEQUVMSUFRZ0FpQUVLQUowSWhGcU5nSjBJQVFvQW5BZ0VYUkJBQ0FJYTNZZ0Iyb2hDQ0FFUWZBQWFoQVBHZ3NnQkNrQ25BRWhSQ0FFSUFnMkFwd0JJQVFnUkRjQ29BRU1BUXNDUUNBQ1JRUkFJQU1FUUNBRUtBS2NBU0VJREFNTElBUW9BcUFCSVFnTUFRc2dCQ0FFS0FKMElnSkJBV28yQW5RQ2Z5QUhJQU5GYWlBRUtBSndJQUowUVI5MmFpSUNRUU5HQkVBZ0JDZ0NuQUZCQVdzTUFRc2dBa0VDZENBRWFpZ0NuQUVMSWdkRklBZHFJUWdnQWtFQlJ3UkFJQVFnQkNnQ29BRTJBcVFCQ3dzZ0JDQUVLQUtjQVRZQ29BRWdCQ0FJTmdLY0FRdW5JUUlnUVVLQWdQd0hnMUJGQkVBZ0JDQUVLQUowSWdjZ0dtbzJBblFnQkNnQ2NDQUhkRUVBSUI5cmRpQUNhaUVDQ3lBTElCcHFRUlJQQkVBZ0JFSHdBR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ2RDSUhJQXRxTmdKMElBUW9BbkFnQjNSQkFDQVphM1lnQTJvaEF3c2dCRUh3QUdvUUR4b2dCQ0FFS0FKd0lnZEJBQ0FLUVJoMklnc2dCQ2dDZEdvaUdtdDJJQXRCQW5SQm9CMXFLQUlBY1NBS1FmLy9BM0ZxTmdLRUFTQUVJQm9nRmtFWWRpSUthaUlMTmdKMElBUWdDa0VDZEVHZ0hXb29BZ0FnQjBFQUlBdHJkbkVnRmtILy93TnhhallDbEFFZ0JFSHdBR29RRHhvZ0JDQkNweUlIUVJoMklnb2dCQ2dDZEdvaUN6WUNkQ0FFSUFwQkFuUkJvQjFxS0FJQUlBUW9BbkJCQUNBTGEzWnhJQWRCLy84RGNXbzJBb3dCSUFRZ0F6WUNPQ0FFSUFJMkFqd2dCQ0FJTmdKQUFrQUNRQUpBSUFRb0F0d0JJZ3NnQTJvaUZpQVFTdzBBSUFZZ0FpQURhaUlLYWlBWVN3MEFJQXBCSUdvZ0RDQUdhMDBOQVFzZ0JDQUVRVUJyS0FJQU5nSUlJQVFnQkNrRE9EY0RBQ0FHSUF3Z0JDQUVRZHdCYWlBUUlCSWdFeUFORUI4aENnd0JDeUFESUFacUlRY2dCaUFMS1FBQU53QUFJQVlnQ3lrQUNEY0FDQUpBSUFOQkVVa05BQ0FHSUFzcEFCQTNBQkFnQmlBTEtRQVlOd0FZSUFOQkVHdEJFVWdOQUNBTFFSQnFJUU1nQmtFZ2FpRUxBMEFnQ3lBREtRQVFOd0FBSUFzZ0F5a0FHRGNBQ0NBTElBTXBBQ0EzQUJBZ0N5QURLUUFvTndBWUlBTkJJR29oQXlBTFFTQnFJZ3NnQjBrTkFBc0xJQWNnQ0dzaEF5QUVJQlkyQXR3QklBY2dFbXNnQ0VrRVFDQUlJQWNnRTJ0TERRUWdEU0FOSUFNZ0Vtc2lBMm9pQ3lBQ2FrOEVRQ0FISUFzZ0FoQUtHZ3dDQ3lBSElBdEJBQ0FEYXhBS0lBUWdBaUFEYWlJQ05nSThJQU5ySVFjZ0VpRURDeUFJUVJCUEJFQWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQ0FDUVJGSURRRWdBaUFIYWlFSUlBZEJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBY2dBeTBBQURvQUFDQUhJQU10QUFFNkFBRWdCeUFETFFBQ09nQUNJQWNnQXkwQUF6b0FBeUFISUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQWNnQXlrQUFEY0FBQXNnQWtFSlNRMEFJQUlnQjJvaEN5QUhRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dDMGtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQWtFWlNBMEFJQWRCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXRKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdEQ3lBR0lBcHFJUVlnQkVId0FHb1FEeUVESUE5QkFXc2lEdzBBQzBFQUlRSWdBMEVDU1EwQkEwQWdBa0VEUndSQUlBVWdBa0VDZENJRGFrR3MwQUZxSUFNZ0JHb29BcHdCTmdJQUlBSkJBV29oQWd3QkN3c2dCQ2dDM0FFaEF3dEJ1bjhoQ1NBUUlBTnJJZ0lnRENBR2Ewc05BQ0FHQkg4Z0JpQURJQUlRQWlBQ2FnVkJBQXNnRG1zaENRc2dDVUdJZjBzTkJnc0NRQ0FGS0FMczZnRkZEUUFnQlNBRktRT0k2Z0VnQ2ExOE53T0k2Z0VDUUNBRktBTFE2Z0VpQWlBSmFpSUlRUjlOQkVBZ0RrVU5BU0FDSUNKcUlBNGdDUkFDR2lBRktBTFE2Z0VnQ1dvaENBd0JDeUFPSVFNZ0FnUkFJQUlnSW1vZ0EwRWdJQUpyRUFJYUlBVW9BdERxQVNFQ0lBVkJBRFlDME9vQklBVWdCU2tEa09vQklBVXBBTERxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRGtPb0JJQVVnQlNrRG1Pb0JJQVVwQUxqcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RtT29CSUFVZ0JTa0RvT29CSUFVcEFNRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEb09vQklBVWdCU2tEcU9vQklBVXBBTWpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRHFPb0JJQU1nQW10QklHb2hBd3NnQ1NBT2FpSUNJQU5CSUdwUEJFQWdBa0VnYXlFR0lBVXBBNmpxQVNFL0lBVXBBNkRxQVNGQUlBVXBBNWpxQVNGQklBVXBBNURxQVNGQ0EwQWdBeWtBR0VMUDF0Tyswc2VyMlVKK0lEOThRaCtKUW9lVnI2K1l0dDZibm45K0lUOGdBeWtBRUVMUDF0Tyswc2VyMlVKK0lFQjhRaCtKUW9lVnI2K1l0dDZibm45K0lVQWdBeWtBQ0VMUDF0Tyswc2VyMlVKK0lFRjhRaCtKUW9lVnI2K1l0dDZibm45K0lVRWdBeWtBQUVMUDF0Tyswc2VyMlVKK0lFSjhRaCtKUW9lVnI2K1l0dDZibm45K0lVSWdBMEVnYWlJRElBWk5EUUFMSUFVZ1B6Y0RxT29CSUFVZ1FEY0RvT29CSUFVZ1FUY0RtT29CSUFVZ1FqY0RrT29CQ3lBQ0lBTk5EUUVnSWlBRElBSWdBMnNpQ0JBQ0dnc2dCU0FJTmdMUTZnRUxJRFVnRldzaEF5QVZJQnRxSVFJZ0NTQU9haUVPSUFRb0FqQkZEUUFMSUNrcEF3QWlQMEovVVNBL0lBNGdIV3VzVVhKRkJFQkJiQ0VKREFZTElBVW9BdURwQVFSQVFXb2hDU0FEUVFSSkRRWWdCU2dDNk9vQlJRUkFJQ0lnQlNnQzBPb0JhaUVLQW40Z0JTa0RpT29CSWo5Q0lGb0VRQ0FGS1FPWTZnRWlRRUlIaVNBRktRT1E2Z0VpUVVJQmlYd2dCU2tEb09vQklrSkNESWw4SUFVcEE2anFBU0pEUWhLSmZDQkJRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOUlFQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZvVkNoNVd2cjVpMjNwdWVmMzVDbmFPMTZvT3hqWXI2QUgwZ1FrTFAxdE8rMHNlcjJVSitRaCtKUW9lVnI2K1l0dDZibm45K2hVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNCRFFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5REFFTElBVXBBNkRxQVVMRno5bXk4ZVc2NmlkOEN5QS9mQ0UvSUNJaEJnTkFJQW9nQmtFSWFpSUhUd1JBSUFZcEFBQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUliaVVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0UvSUFjaEJnd0JDd3NDUUNBS0lBWkJCR29pQ0VrRVFDQUdJUWdNQVFzZ0JqVUFBRUtIbGErdm1MYmVtNTUvZmlBL2hVSVhpVUxQMXRPKzBzZXIyVUorUXZuejNmR1o5cG1yRm53aFB3c0RRQ0FJSUFwSkJFQWdDREVBQUVMRno5bXk4ZVc2NmlkK0lEK0ZRZ3VKUW9lVnI2K1l0dDZibm45K0lUOGdDRUVCYWlFSURBRUxDeUFDS0FBQUlEOUNJWWdnUDRWQ3o5YlR2dExIcTlsQ2ZpSS9RaDJJSUQrRlF2bnozZkdaOXBtckZuNGlQMElnaUNBL2hhZEhEUWNMSUFOQkJHc2hBeUFDUVFScUlRSUxJQTRnSFdzaUNVR0pmMDhOQkNBQklBbHJJUUVnQ1NBZGFpRWRRUUVoUGd3QkN3dEJ1SDhoQnlBRERRUWdIU0FBYXlFSERBUUxRV3doQ1F3QkMwRzRmeUVKQzBHNGZ5RUhJQWxCZGtZZ1BuRU5BUXNnQ1NFSEN5Z0NBQTBBSUFWQi9Pb0JhaWdDQUNFQklBVkIrT29CYWlnQ0FDRUFJQVVRR0NBRktBS3c2d0VnQUNBQkVCTWdCVUVBTmdLdzZ3RWdCU2dDcE9zQklnSUVRQUpBQWtBQ1FBSkFJQUlvQWdBaUF3UkFJQUJGRFFJZ0FTQURJQUFSQWdBTUFRc2dBRVVOQWdzZ0FTQUNJQUFSQWdBTUFnc2dBeEFHQ3lBQ0VBWUxJQVZCQURZQ3BPc0JDeUFBQkVBZ0FTQUZJQUFSQWdBTUFRc2dCUkFHQ3lBRVFlQUJhaVFBSUFjTEM2Z1ZDUUJCaUFnTERRRUFBQUFCQUFBQUFnQUFBQUlBUWFBSUM3TUdBUUFBQUFFQUFBQUNBQUFBQWdBQUFDWUFBQUNDQUFBQUlRVUFBRW9BQUFCbkNBQUFKZ0FBQU1BQkFBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUtRQUFBQ3dDQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBTHdBQUFNb0NBQUNBQUFBQWlnVUFBRW9BQUFDRUNRQUFOUUFBQUhNREFBQ0FBQUFBblFVQUFFb0FBQUNnQ1FBQVBRQUFBSUVEQUFDQUFBQUE2d1VBQUVzQUFBQStDZ0FBUkFBQUFKNERBQUNBQUFBQVRRWUFBRXNBQUFDcUNnQUFTd0FBQUxNREFBQ0FBQUFBd1FZQUFFMEFBQUFmRFFBQVRRQUFBRk1FQUFDQUFBQUFJd2dBQUZFQUFBQ21Ed0FBVkFBQUFKa0VBQUNBQUFBQVN3a0FBRmNBQUFDeEVnQUFXQUFBQU5vRUFBQ0FBQUFBYndrQUFGMEFBQUFqRkFBQVZBQUFBRVVGQUFDQUFBQUFWQW9BQUdvQUFBQ01GQUFBYWdBQUFLOEZBQUNBQUFBQWRna0FBSHdBQUFCT0VBQUFmQUFBQU5JQ0FBQ0FBQUFBWXdjQUFKRUFBQUNRQndBQWtnQUFBQUFBQUFBQkFBQUFBUUFBQUFVQUFBQU5BQUFBSFFBQUFEMEFBQUI5QUFBQS9RQUFBUDBCQUFEOUF3QUEvUWNBQVAwUEFBRDlId0FBL1Q4QUFQMS9BQUQ5L3dBQS9mOEJBUDMvQXdEOS93Y0EvZjhQQVAzL0h3RDkvejhBL2Y5L0FQMy8vd0Q5Ly84Qi9mLy9BLzMvL3dmOS8vOFAvZi8vSC8zLy96LzkvLzkvQUFBQUFBRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBREFBQUFCQUFBQUFVQUFBQUdBQUFBQndBQUFBZ0FBQUFKQUFBQUNnQUFBQXNBQUFBTUFBQUFEUUFBQUE0QUFBQVBBQUFBRUFBQUFCRUFBQUFTQUFBQUV3QUFBQlFBQUFBVkFBQUFGZ0FBQUJjQUFBQVlBQUFBR1FBQUFCb0FBQUFiQUFBQUhBQUFBQjBBQUFBZUFBQUFId0FBQUNBQUFBQWhBQUFBSWdBQUFDTUFBQUFsQUFBQUp3QUFBQ2tBQUFBckFBQUFMd0FBQURNQUFBQTdBQUFBUXdBQUFGTUFBQUJqQUFBQWd3QUFBQU1CQUFBREFnQUFBd1FBQUFNSUFBQURFQUFBQXlBQUFBTkFBQUFEZ0FBQUF3QUJBRUhnRHd0UkFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJBQUFBQVVBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFFSEVFQXVMQVFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBU0FBQUFGQUFBQUJZQUFBQVlBQUFBSEFBQUFDQUFBQUFvQUFBQU1BQUFBRUFBQUFDQUFBQUFBQUVBQUFBQ0FBQUFCQUFBQUFnQUFBQVFBQUFBSUFBQUFFQUFBQUNBQUFBQUFBRUFRWkFTQytZRUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBQkFBQUFCQUFBQUFnQUFBQUFBQUFBQVFBQkFRWUFBQUFBQUFBRUFBQUFBQkFBQUFRQUFBQUFJQUFBQlFFQUFBQUFBQUFGQXdBQUFBQUFBQVVFQUFBQUFBQUFCUVlBQUFBQUFBQUZCd0FBQUFBQUFBVUpBQUFBQUFBQUJRb0FBQUFBQUFBRkRBQUFBQUFBQUFZT0FBQUFBQUFCQlJBQUFBQUFBQUVGRkFBQUFBQUFBUVVXQUFBQUFBQUNCUndBQUFBQUFBTUZJQUFBQUFBQUJBVXdBQUFBSUFBR0JVQUFBQUFBQUFjRmdBQUFBQUFBQ0FZQUFRQUFBQUFLQmdBRUFBQUFBQXdHQUJBQUFDQUFBQVFBQUFBQUFBQUFCQUVBQUFBQUFBQUZBZ0FBQUNBQUFBVUVBQUFBQUFBQUJRVUFBQUFnQUFBRkJ3QUFBQUFBQUFVSUFBQUFJQUFBQlFvQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUlBQUJCUkFBQUFBQUFBRUZFZ0FBQUNBQUFRVVdBQUFBQUFBQ0JSZ0FBQUFnQUFNRklBQUFBQUFBQXdVb0FBQUFBQUFHQkVBQUFBQVFBQVlFUUFBQUFDQUFCd1dBQUFBQUFBQUpCZ0FDQUFBQUFBc0dBQWdBQURBQUFBUUFBQUFBRUFBQUJBRUFBQUFnQUFBRkFnQUFBQ0FBQUFVREFBQUFJQUFBQlFVQUFBQWdBQUFGQmdBQUFDQUFBQVVJQUFBQUlBQUFCUWtBQUFBZ0FBQUZDd0FBQUNBQUFBVU1BQUFBQUFBQUJnOEFBQUFnQUFFRkVnQUFBQ0FBQVFVVUFBQUFJQUFDQlJnQUFBQWdBQUlGSEFBQUFDQUFBd1VvQUFBQUlBQUVCVEFBQUFBQUFCQUdBQUFCQUFBQUR3WUFnQUFBQUFBT0JnQkFBQUFBQUEwR0FDQUFRWUFYQzRjQ0FRQUJBUVVBQUFBQUFBQUZBQUFBQUFBQUJnUTlBQUFBQUFBSkJmMEJBQUFBQUE4Ri9YOEFBQUFBRlFYOS94OEFBQUFEQlFVQUFBQUFBQWNFZlFBQUFBQUFEQVg5RHdBQUFBQVNCZjMvQXdBQUFCY0YvZjkvQUFBQUJRVWRBQUFBQUFBSUJQMEFBQUFBQUE0Ri9UOEFBQUFBRkFYOS93OEFBQUFDQlFFQUFBQVFBQWNFZlFBQUFBQUFDd1g5QndBQUFBQVJCZjMvQVFBQUFCWUYvZjgvQUFBQUJBVU5BQUFBRUFBSUJQMEFBQUFBQUEwRi9SOEFBQUFBRXdYOS93Y0FBQUFCQlFFQUFBQVFBQVlFUFFBQUFBQUFDZ1g5QXdBQUFBQVFCZjMvQUFBQUFCd0YvZi8vRHdBQUd3WDkvLzhIQUFBYUJmMy8vd01BQUJrRi9mLy9BUUFBR0FYOS8vOEFRWkFaQzRZRUFRQUJBUVlBQUFBQUFBQUdBd0FBQUFBQUFBUUVBQUFBSUFBQUJRVUFBQUFBQUFBRkJnQUFBQUFBQUFVSUFBQUFBQUFBQlFrQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUFBQUFCaEFBQUFBQUFBQUdFd0FBQUFBQUFBWVdBQUFBQUFBQUJoa0FBQUFBQUFBR0hBQUFBQUFBQUFZZkFBQUFBQUFBQmlJQUFBQUFBQUVHSlFBQUFBQUFBUVlwQUFBQUFBQUNCaThBQUFBQUFBTUdPd0FBQUFBQUJBWlRBQUFBQUFBSEJvTUFBQUFBQUFrR0F3SUFBQkFBQUFRRUFBQUFBQUFBQkFVQUFBQWdBQUFGQmdBQUFBQUFBQVVIQUFBQUlBQUFCUWtBQUFBQUFBQUZDZ0FBQUFBQUFBWU1BQUFBQUFBQUJnOEFBQUFBQUFBR0VnQUFBQUFBQUFZVkFBQUFBQUFBQmhnQUFBQUFBQUFHR3dBQUFBQUFBQVllQUFBQUFBQUFCaUVBQUFBQUFBRUdJd0FBQUFBQUFRWW5BQUFBQUFBQ0Jpc0FBQUFBQUFNR013QUFBQUFBQkFaREFBQUFBQUFGQm1NQUFBQUFBQWdHQXdFQUFDQUFBQVFFQUFBQU1BQUFCQVFBQUFBUUFBQUVCUUFBQUNBQUFBVUhBQUFBSUFBQUJRZ0FBQUFnQUFBRkNnQUFBQ0FBQUFVTEFBQUFBQUFBQmc0QUFBQUFBQUFHRVFBQUFBQUFBQVlVQUFBQUFBQUFCaGNBQUFBQUFBQUdHZ0FBQUFBQUFBWWRBQUFBQUFBQUJpQUFBQUFBQUJBR0F3QUJBQUFBRHdZRGdBQUFBQUFPQmdOQUFBQUFBQTBHQXlBQUFBQUFEQVlERUFBQUFBQUxCZ01JQUFBQUFBb0dBd1FBUWFRZEM5a0JBUUFBQUFNQUFBQUhBQUFBRHdBQUFCOEFBQUEvQUFBQWZ3QUFBUDhBQUFEL0FRQUEvd01BQVA4SEFBRC9Ed0FBL3g4QUFQOC9BQUQvZndBQS8vOEFBUC8vQVFELy93TUEvLzhIQVAvL0R3RC8veDhBLy84L0FQLy9md0QvLy84QS8vLy9BZi8vL3dQLy8vOEgvLy8vRC8vLy94Ly8vLzgvLy8vL2Z3QUFBQUFCQUFBQUFnQUFBQVFBQUFBQUFBQUFBZ0FBQUFRQUFBQUlBQUFBQUFBQUFBRUFBQUFDQUFBQUFRQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBZ0FBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0JCZ0I4TEE0QVJBUT09Ijt2YXIgeWU9bmV3IFBBLG1lPSExO2FzeW5jIGZ1bmN0aW9uIENyKEEsdCxlKXtsZXQgST1udWxsO3R5cGVvZiBBIT0ic3RyaW5nIj9JPUEuaHJlZjpBLnN0YXJ0c1dpdGgoImh0dHAiKT9JPUE6ST1gJHt0fS8ke0F9YCxJLmVuZHNXaXRoKCIuanMiKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC0zKSksSS5lbmRzV2l0aCgiLndhc20iKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC01KSksSS5lbmRzV2l0aCgiLndhc20uenN0IikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtOSkpO2xldCByPWAke0l9Lndhc21gLGc9YXdhaXQgeEEuZ2V0KGAke3J9LnpzdGAse3Jlc3BvbnNlVHlwZToiYXJyYXlidWZmZXIiLHBhcmFtczplfSk7bWV8fChhd2FpdCB5ZS5pbml0KCksbWU9ITApO2xldCBuPXllLmRlY29kZShuZXcgVWludDhBcnJheShnLmRhdGEpKS5idWZmZXI7cmV0dXJuKGF3YWl0IGltcG9ydChgJHtJfS5qc2ApKS5kZWZhdWx0KHt3YXNtQmluYXJ5Om59KX12YXIgd2U9Q3I7dmFyIGpBPW5ldyBNYXA7YXN5bmMgZnVuY3Rpb24gQnIoQSx0LGUpe2xldCBJPUEscj1BLGc9bnVsbDtyZXR1cm4gdHlwZW9mIEEhPSJzdHJpbmciJiYoST1uZXcgVVJMKEEuaHJlZikscj1JLmhyZWYpLGpBLmhhcyhyKT9nPWF3YWl0IGpBLmdldChyKTooakEuc2V0KHIsd2UoSSx0LGUpKSxnPWF3YWl0IGpBLmdldChyKSksZ312YXIgcGU9QnI7dmFyIGFyPXtUZXh0RmlsZToiVGV4dEZpbGUiLEJpbmFyeUZpbGU6IkJpbmFyeUZpbGUiLFRleHRTdHJlYW06IlRleHRTdHJlYW0iLEJpbmFyeVN0cmVhbToiQmluYXJ5U3RyZWFtIixJbWFnZToiSW1hZ2UiLFBvaW50U2V0OiJQb2ludFNldCIsTWVzaDoiTWVzaCIsUG9seURhdGE6IlBvbHlEYXRhIixUcmFuc2Zvcm1MaXN0OiJUcmFuc2Zvcm1MaXN0IixKc29uQ29tcGF0aWJsZToiSnNvbkNvbXBhdGlibGUifSxkPWFyO3ZhciBRcj17SW50ODoiaW50OCIsVUludDg6InVpbnQ4IixJbnQxNjoiaW50MTYiLFVJbnQxNjoidWludDE2IixJbnQzMjoiaW50MzIiLFVJbnQzMjoidWludDMyIixJbnQ2NDoiaW50NjQiLFVJbnQ2NDoidWludDY0IixTaXplVmFsdWVUeXBlOiJ1aW50NjQiLElkZW50aWZpZXJUeXBlOiJ1aW50NjQiLEluZGV4VmFsdWVUeXBlOiJpbnQ2NCIsT2Zmc2V0VmFsdWVUeXBlOiJpbnQ2NCJ9LFU9UXI7dmFyIEVyPXtGbG9hdDMyOiJmbG9hdDMyIixGbG9hdDY0OiJmbG9hdDY0IixTcGFjZVByZWNpc2lvblR5cGU6ImZsb2F0NjQifSxWPUVyO2Z1bmN0aW9uIGNyKEEsdCl7bGV0IGU9bnVsbDtzd2l0Y2goQSl7Y2FzZSBVLlVJbnQ4OntlPW5ldyBVaW50OEFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQ4OntlPW5ldyBJbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBVLlVJbnQxNjp7ZT1uZXcgVWludDE2QXJyYXkodCk7YnJlYWt9Y2FzZSBVLkludDE2OntlPW5ldyBJbnQxNkFycmF5KHQpO2JyZWFrfWNhc2UgVS5VSW50MzI6e2U9bmV3IFVpbnQzMkFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQzMjp7ZT1uZXcgSW50MzJBcnJheSh0KTticmVha31jYXNlIFUuVUludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdVaW50NjRBcnJheT09ImZ1bmN0aW9uIj9lPW5ldyBCaWdVaW50NjRBcnJheSh0KTplPW5ldyBVaW50OEFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnSW50NjRBcnJheT09ImZ1bmN0aW9uIj9lPW5ldyBCaWdJbnQ2NEFycmF5KHQpOmU9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBWLkZsb2F0MzI6e2U9bmV3IEZsb2F0MzJBcnJheSh0KTticmVha31jYXNlIFYuRmxvYXQ2NDp7ZT1uZXcgRmxvYXQ2NEFycmF5KHQpO2JyZWFrfWNhc2UibnVsbCI6e2U9bnVsbDticmVha31jYXNlIG51bGw6e2U9bnVsbDticmVha31kZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVHlwZSBpcyBub3Qgc3VwcG9ydGVkIGFzIGEgVHlwZWRBcnJheSIpfXJldHVybiBlfXZhciBxPWNyO3ZhciBSZT10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcj09ImZ1bmN0aW9uIixTZT1uZXcgVGV4dEVuY29kZXIsRmU9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpO2Z1bmN0aW9uIGZyKEEsdCl7bGV0IGU9e2ZsYWdzOiJyIixlbmNvZGluZzoiYmluYXJ5In0sST1BLmZzX29wZW4odCxlLmZsYWdzKSxnPUEuZnNfc3RhdCh0KS5zaXplLG89bnVsbDtSZT9vPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihnKTpvPW5ldyBBcnJheUJ1ZmZlcihnKTtsZXQgbj1uZXcgVWludDhBcnJheShvKTtyZXR1cm4gQS5mc19yZWFkKEksbiwwLGcsMCksQS5mc19jbG9zZShJKSxufWZ1bmN0aW9uIE5lKEEsdCxlKXtsZXQgST1udWxsO1JlP0k9bmV3IFNoYXJlZEFycmF5QnVmZmVyKGUpOkk9bmV3IEFycmF5QnVmZmVyKGUpO2xldCByPW5ldyBVaW50OEFycmF5KEkpLGc9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLHQsZSk7cmV0dXJuIHIuc2V0KGcpLHJ9ZnVuY3Rpb24gdyhBLHQsZSxJKXtsZXQgcj0wO3JldHVybiB0IT09bnVsbCYmKHI9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfYXJyYXlfYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSxJLHQuYnVmZmVyLmJ5dGVMZW5ndGhdKSxBLkhFQVBVOC5zZXQobmV3IFVpbnQ4QXJyYXkodC5idWZmZXIpLHIpKSxyfWZ1bmN0aW9uIHgoQSx0LGUpe2xldCBJPUpTT04uc3RyaW5naWZ5KHQpLHI9QS5sZW5ndGhCeXRlc1VURjgoSSkrMSxnPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2pzb25fYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSxyXSk7QS5zdHJpbmdUb1VURjgoSSxnLHIpfWZ1bmN0aW9uIFMoQSx0LGUsSSl7bGV0IHI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxlXSksZz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LGVdKSxvPU5lKEEscixnKTtyZXR1cm4gcShJLG8uYnVmZmVyKX1mdW5jdGlvbiB1QShBLHQpe2xldCBlPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9qc29uX2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIl0sWzAsdF0pLEk9QS5VVEY4VG9TdHJpbmcoZSk7cmV0dXJuIEpTT04ucGFyc2UoSSl9ZnVuY3Rpb24gbHIoQSx0LGUsSSl7SSE9bnVsbCYmSS5sZW5ndGg+MCYmSS5mb3JFYWNoKGZ1bmN0aW9uKEIscyl7c3dpdGNoKEIudHlwZSl7Y2FzZSBkLlRleHRTdHJlYW06e2xldCBDPVNlLmVuY29kZShCLmRhdGEuZGF0YSksbD13KEEsQyxzLDApLGE9e3NpemU6Qy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTt4KEEsYSxzKTticmVha31jYXNlIGQuSnNvbkNvbXBhdGlibGU6e2xldCBDPVNlLmVuY29kZShKU09OLnN0cmluZ2lmeShCLmRhdGEpKSxsPXcoQSxDLHMsMCksYT17c2l6ZTpDLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O3goQSxhLHMpO2JyZWFrfWNhc2UgZC5CaW5hcnlTdHJlYW06e2xldCBDPUIuZGF0YS5kYXRhLGw9dyhBLEMscywwKSxhPXtzaXplOkMuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07eChBLGEscyk7YnJlYWt9Y2FzZSBkLlRleHRGaWxlOntBLmZzX3dyaXRlRmlsZShCLmRhdGEucGF0aCxCLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBkLkJpbmFyeUZpbGU6e0EuZnNfd3JpdGVGaWxlKEIuZGF0YS5wYXRoLEIuZGF0YS5kYXRhKTticmVha31jYXNlIGQuSW1hZ2U6e2xldCBDPUIuZGF0YSxsPXcoQSxDLmRhdGEscywwKSxhPXcoQSxDLmRpcmVjdGlvbixzLDEpLFE9dHlwZW9mIEMubWV0YWRhdGE/LmVudHJpZXM8InUiP0FycmF5LmZyb20oQy5tZXRhZGF0YS5lbnRyaWVzKCkpOltdLGY9e2ltYWdlVHlwZTpDLmltYWdlVHlwZSxuYW1lOkMubmFtZSxvcmlnaW46Qy5vcmlnaW4sc3BhY2luZzpDLnNwYWNpbmcsZGlyZWN0aW9uOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7YX1gLHNpemU6Qy5zaXplLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbWV0YWRhdGE6UX07eChBLGYscyk7YnJlYWt9Y2FzZSBkLk1lc2g6e2xldCBDPUIuZGF0YSxsPXcoQSxDLnBvaW50cyxzLDApLGE9dyhBLEMuY2VsbHMscywxKSxRPXcoQSxDLnBvaW50RGF0YSxzLDIpLGY9dyhBLEMuY2VsbERhdGEscywzKSxjPXttZXNoVHlwZTpDLm1lc2hUeXBlLG5hbWU6Qy5uYW1lLG51bWJlck9mUG9pbnRzOkMubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG51bWJlck9mQ2VsbHM6Qy5udW1iZXJPZkNlbGxzLGNlbGxzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7YX1gLGNlbGxCdWZmZXJTaXplOkMuY2VsbEJ1ZmZlclNpemUsbnVtYmVyT2ZQb2ludFBpeGVsczpDLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLG51bWJlck9mQ2VsbFBpeGVsczpDLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YH07eChBLGMscyk7YnJlYWt9Y2FzZSBkLlBvaW50U2V0OntsZXQgQz1CLmRhdGEsbD13KEEsQy5wb2ludHMscywwKSxhPXcoQSxDLnBvaW50RGF0YSxzLDEpLFE9e3BvaW50U2V0VHlwZTpDLnBvaW50U2V0VHlwZSxuYW1lOkMubmFtZSxudW1iZXJPZlBvaW50czpDLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxudW1iZXJPZlBvaW50UGl4ZWxzOkMubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHthfWB9O3goQSxRLHMpO2JyZWFrfWNhc2UgZC5UcmFuc2Zvcm1MaXN0OntsZXQgQz1CLmRhdGEsbD1bXSxhPTA7Qy5mb3JFYWNoKFE9PntsZXQgZj0iIixjPSIiO1EudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihmPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dyhBLFEuZml4ZWRQYXJhbWV0ZXJzLHMsYSl9YCxhKz0xLGM9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt3KEEsUS5wYXJhbWV0ZXJzLHMsYSl9YCxhKz0xKTtsZXQgRD17dHJhbnNmb3JtVHlwZTpRLnRyYW5zZm9ybVR5cGUsbnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM6US5udW1iZXJPZkZpeGVkUGFyYW1ldGVycyxudW1iZXJPZlBhcmFtZXRlcnM6US5udW1iZXJPZlBhcmFtZXRlcnMsbmFtZTpRLm5hbWUsaW5wdXRTcGFjZU5hbWU6US5pbnB1dFNwYWNlTmFtZSxvdXRwdXRTcGFjZU5hbWU6US5vdXRwdXRTcGFjZU5hbWUscGFyYW1ldGVyczpjLGZpeGVkUGFyYW1ldGVyczpmfTtsLnB1c2goRCl9KSx4KEEsbCxzKTticmVha31jYXNlIGQuUG9seURhdGE6e2xldCBDPUIuZGF0YSxsPXcoQSxDLnBvaW50cyxzLDApLGE9dyhBLEMudmVydGljZXMscywxKSxRPXcoQSxDLmxpbmVzLHMsMiksZj13KEEsQy5wb2x5Z29ucyxzLDMpLGM9dyhBLEMudHJpYW5nbGVTdHJpcHMscyw0KSxEPXcoQSxDLnBvaW50RGF0YSxzLDUpLEY9dyhBLEMucG9pbnREYXRhLHMsNikseT17cG9seURhdGFUeXBlOkMucG9seURhdGFUeXBlLG5hbWU6Qy5uYW1lLG51bWJlck9mUG9pbnRzOkMubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLHZlcnRpY2VzQnVmZmVyU2l6ZTpDLnZlcnRpY2VzQnVmZmVyU2l6ZSx2ZXJ0aWNlczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2F9YCxsaW5lc0J1ZmZlclNpemU6Qy5saW5lc0J1ZmZlclNpemUsbGluZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAscG9seWdvbnNCdWZmZXJTaXplOkMucG9seWdvbnNCdWZmZXJTaXplLHBvbHlnb25zOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gLHRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZTpDLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZSx0cmlhbmdsZVN0cmlwczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YCxudW1iZXJPZlBvaW50UGl4ZWxzOkMubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtEfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOkMubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Rn1gfTt4KEEseSxzKTticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBpbnB1dCBJbnRlcmZhY2VUeXBlIil9fSksQS5yZXNldE1vZHVsZVN0ZG91dCgpLEEucmVzZXRNb2R1bGVTdGRlcnIoKTtsZXQgcj1BLnN0YWNrU2F2ZSgpLGc9MDt0cnl7Zz1BLmNhbGxNYWluKHQuc2xpY2UoKSl9Y2F0Y2goQil7dGhyb3cgdHlwZW9mIEI9PSJudW1iZXIiJiYoY29uc29sZS5sb2coIkV4Y2VwdGlvbiB3aGlsZSBydW5uaW5nIHBpcGVsaW5lOiIpLGNvbnNvbGUubG9nKCJzdGRvdXQ6IixBLmdldE1vZHVsZVN0ZG91dCgpKSxjb25zb2xlLmVycm9yKCJzdGRlcnI6IixBLmdldE1vZHVsZVN0ZGVycigpKSx0eXBlb2YgQS5nZXRFeGNlcHRpb25NZXNzYWdlPCJ1Ij9jb25zb2xlLmVycm9yKCJleGNlcHRpb246IixBLmdldEV4Y2VwdGlvbk1lc3NhZ2UoQikpOmNvbnNvbGUuZXJyb3IoIkJ1aWxkIG1vZHVsZSBpbiBEZWJ1ZyBtb2RlIGZvciBleGNlcHRpb24gbWVzc2FnZSBpbmZvcm1hdGlvbi4iKSksQn1maW5hbGx5e0Euc3RhY2tSZXN0b3JlKHIpfWxldCBvPUEuZ2V0TW9kdWxlU3Rkb3V0KCksbj1BLmdldE1vZHVsZVN0ZGVycigpLEU9W107cmV0dXJuIGUhPW51bGwmJmUubGVuZ3RoPjAmJmc9PT0wJiZlLmZvckVhY2goZnVuY3Rpb24oQixzKXtsZXQgQz1udWxsO3N3aXRjaChCLnR5cGUpe2Nhc2UgZC5UZXh0U3RyZWFtOntsZXQgYT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLGY9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLGEsUSk7Qz17ZGF0YTpGZS5kZWNvZGUoZil9O2JyZWFrfWNhc2UgZC5Kc29uQ29tcGF0aWJsZTp7bGV0IGE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxmPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixhLFEpO0M9SlNPTi5wYXJzZShGZS5kZWNvZGUoZikpO2JyZWFrfWNhc2UgZC5CaW5hcnlTdHJlYW06e2xldCBhPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSk7Qz17ZGF0YTpOZShBLGEsUSl9O2JyZWFrfWNhc2UgZC5UZXh0RmlsZTp7Qz17cGF0aDpCLmRhdGEucGF0aCxkYXRhOkEuZnNfcmVhZEZpbGUoQi5kYXRhLnBhdGgse2VuY29kaW5nOiJ1dGY4In0pfTticmVha31jYXNlIGQuQmluYXJ5RmlsZTp7Qz17cGF0aDpCLmRhdGEucGF0aCxkYXRhOmZyKEEsQi5kYXRhLnBhdGgpfTticmVha31jYXNlIGQuSW1hZ2U6e2xldCBhPXVBKEEscyk7YS5kYXRhPVMoQSxzLDAsYS5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSksYS5kaXJlY3Rpb249UyhBLHMsMSxWLkZsb2F0NjQpLGEubWV0YWRhdGE9bmV3IE1hcChhLm1ldGFkYXRhKSxDPWE7YnJlYWt9Y2FzZSBkLk1lc2g6e2xldCBhPXVBKEEscyk7YS5udW1iZXJPZlBvaW50cz4wP2EucG9pbnRzPVMoQSxzLDAsYS5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUpOmEucG9pbnRzPXEoYS5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mQ2VsbHM+MD9hLmNlbGxzPVMoQSxzLDEsYS5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSk6YS5jZWxscz1xKGEubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mUG9pbnRQaXhlbHM+MD9hLnBvaW50RGF0YT1TKEEscywyLGEubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOmEucG9pbnREYXRhPXEoYS5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/YS5jZWxsRGF0YT1TKEEscywzLGEubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6YS5jZWxsRGF0YT1xKGEubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEM9YTticmVha31jYXNlIGQuUG9pbnRTZXQ6e2xldCBhPXVBKEEscyk7YS5udW1iZXJPZlBvaW50cz4wP2EucG9pbnRzPVMoQSxzLDAsYS5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTphLnBvaW50cz1xKGEucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZQb2ludFBpeGVscz4wP2EucG9pbnREYXRhPVMoQSxzLDEsYS5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOmEucG9pbnREYXRhPXEoYS5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDPWE7YnJlYWt9Y2FzZSBkLlRyYW5zZm9ybUxpc3Q6e2xldCBhPXVBKEEscyksUT0wO2EuZm9yRWFjaCgoZixjKT0+e2YudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihmLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzPjAmJihhW2NdLmZpeGVkUGFyYW1ldGVycz1TKEEscyxRLFYuRmxvYXQ2NCkpLFErPTEsZi5udW1iZXJPZlBhcmFtZXRlcnM+MCYmKGFbY10ucGFyYW1ldGVycz1TKEEscyxRLGYudHJhbnNmb3JtVHlwZS5wYXJhbWV0ZXJzVmFsdWVUeXBlKSksUSs9MSl9KSxDPWE7YnJlYWt9Y2FzZSBkLlBvbHlEYXRhOntsZXQgYT11QShBLHMpO2EubnVtYmVyT2ZQb2ludHM+MD9hLnBvaW50cz1TKEEscywwLFYuRmxvYXQzMik6YS5wb2ludHM9bmV3IEZsb2F0MzJBcnJheSxhLnZlcnRpY2VzQnVmZmVyU2l6ZT4wP2EudmVydGljZXM9UyhBLHMsMSxVLlVJbnQzMik6YS52ZXJ0aWNlcz1uZXcgVWludDMyQXJyYXksYS5saW5lc0J1ZmZlclNpemU+MD9hLmxpbmVzPVMoQSxzLDIsVS5VSW50MzIpOmEubGluZXM9bmV3IFVpbnQzMkFycmF5LGEucG9seWdvbnNCdWZmZXJTaXplPjA/YS5wb2x5Z29ucz1TKEEscywzLFUuVUludDMyKTphLnBvbHlnb25zPW5ldyBVaW50MzJBcnJheSxhLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZT4wP2EudHJpYW5nbGVTdHJpcHM9UyhBLHMsNCxVLlVJbnQzMik6YS50cmlhbmdsZVN0cmlwcz1uZXcgVWludDMyQXJyYXksYS5udW1iZXJPZlBvaW50UGl4ZWxzPjA/YS5wb2ludERhdGE9UyhBLHMsNSxhLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6YS5wb2ludERhdGE9cShhLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/YS5jZWxsRGF0YT1TKEEscyw2LGEucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOmEuY2VsbERhdGE9cShhLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQz1hO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIG91dHB1dCBJbnRlcmZhY2VUeXBlIil9bGV0IGw9e3R5cGU6Qi50eXBlLGRhdGE6Q307RS5wdXNoKGwpfSkse3JldHVyblZhbHVlOmcsc3Rkb3V0Om8sc3RkZXJyOm4sb3V0cHV0czpFfX12YXIgVWU9bHI7dmFyIHVyPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPCJ1IjtmdW5jdGlvbiBkcihBLHQpe2lmKEE9PW51bGwpcmV0dXJuW107bGV0IGU9W107Zm9yKGxldCBJPTA7STxBLmxlbmd0aDtJKyspe2xldCByPURyKEFbSV0sdCk7ciE9PW51bGwmJmUucHVzaChyKX1yZXR1cm4gZX1mdW5jdGlvbiBEcihBLHQpe2lmKEE9PW51bGwpcmV0dXJuIG51bGw7bGV0IGU9bnVsbDtyZXR1cm4gQS5idWZmZXIhPT12b2lkIDA/ZT1BLmJ1ZmZlcjpBLmJ5dGVMZW5ndGghPT12b2lkIDAmJihlPUEpLHVyJiZlIGluc3RhbmNlb2YgU2hhcmVkQXJyYXlCdWZmZXI/bnVsbDp0P2U6ZS5zbGljZSgwKX12YXIgR2U9ZHI7ZnVuY3Rpb24gaHIoQSl7cmV0dXJuW0EuZGF0YSxBLmRpcmVjdGlvbl19dmFyIGtlPWhyO2Z1bmN0aW9uIHlyKEEpe3JldHVybltBLnBvaW50cyxBLnBvaW50RGF0YSxBLmNlbGxzLEEuY2VsbERhdGFdfXZhciBMZT15cjtmdW5jdGlvbiBtcihBKXtyZXR1cm5bQS5wb2ludHMsQS52ZXJ0aWNlcyxBLmxpbmVzLEEucG9seWdvbnMsQS50cmlhbmdsZVN0cmlwcyxBLnBvaW50RGF0YSxBLmNlbGxEYXRhXX12YXIgYmU9bXI7YXN5bmMgZnVuY3Rpb24gd3IoQSx0LGUsSSl7bGV0IHI9VWUoQSx0LGUsSSksZz1bXTtyZXR1cm4gci5vdXRwdXRzLmZvckVhY2goZnVuY3Rpb24obyl7aWYoby50eXBlPT09ZC5CaW5hcnlTdHJlYW18fG8udHlwZT09PWQuQmluYXJ5RmlsZSl7bGV0IG49by5kYXRhO2cucHVzaChuKX1lbHNlIGlmKG8udHlwZT09PWQuSW1hZ2Upe2xldCBuPW8uZGF0YTtnLnB1c2goLi4ua2UobikpfWVsc2UgaWYoby50eXBlPT09ZC5NZXNoKXtsZXQgbj1vLmRhdGE7Zy5wdXNoKC4uLkxlKG4pKX1lbHNlIGlmKG8udHlwZT09PWQuUG9seURhdGEpe2xldCBuPW8uZGF0YTtnLnB1c2goLi4uYmUobikpfX0pLF9BKHIsR2UoZywhMCkpfXZhciBKZT13cjt2YXIgcHI9e3J1blBpcGVsaW5lOmFzeW5jIGZ1bmN0aW9uKEEsdCxlLEkscixnKXtsZXQgbz1hd2FpdCBwZShBLHQsZyk7cmV0dXJuIGF3YWl0IEplKG8sZSxJLHIpfX07RkEocHIpOyUwQS8qISBCdW5kbGVkIGxpY2Vuc2UgaW5mb3JtYXRpb246JTBBJTBBY29tbGluay9kaXN0L2VzbS9jb21saW5rLm1qczolMEEgICgqKiUwQSAgICogQGxpY2Vuc2UlMEEgICAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMlMEEgICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wJTBBICAgKiklMEEqLyUwQSc7c3IoUXIpO2V4cG9ydHtsSSBhcyBhcHBseVByZXNlbnRhdGlvblN0YXRlVG9JbWFnZSxrIGFzIGdldERlZmF1bHRXZWJXb3JrZXIseSBhcyBnZXRQaXBlbGluZVdvcmtlclVybCx3IGFzIGdldFBpcGVsaW5lc0Jhc2VVcmwsdUkgYXMgcmVhZERpY29tRW5jYXBzdWxhdGVkUGRmLHlJIGFzIHJlYWREaWNvbVRhZ3MsRkkgYXMgcmVhZEltYWdlRGljb21GaWxlU2VyaWVzLHhlIGFzIHJlYWRJbWFnZURpY29tRmlsZVNlcmllc1dvcmtlckZ1bmN0aW9uLE5JIGFzIHJlYWRPdmVybGFwcGluZ1NlZ21lbnRhdGlvbixrSSBhcyByZWFkU2VnbWVudGF0aW9uLGJzIGFzIHNldERlZmF1bHRXZWJXb3JrZXIsc3IgYXMgc2V0UGlwZWxpbmVXb3JrZXJVcmwsU3MgYXMgc2V0UGlwZWxpbmVzQmFzZVVybCxwSSBhcyBzdHJ1Y3R1cmVkUmVwb3J0VG9IdG1sLG1JIGFzIHN0cnVjdHVyZWRSZXBvcnRUb1RleHQsZWUgYXMgdmVyc2lvbixISSBhcyB3cml0ZU11bHRpU2VnbWVudGF0aW9uLEpJIGFzIHdyaXRlT3ZlcmxhcHBpbmdTZWdtZW50YXRpb24sVEkgYXMgd3JpdGVSdFN0cnVjdCxiSSBhcyB3cml0ZVNlZ21lbnRhdGlvbn07Ci8qISBCdW5kbGVkIGxpY2Vuc2UgaW5mb3JtYXRpb246Cgpjb21saW5rL2Rpc3QvZXNtL2NvbWxpbmsubWpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IDIwMTkgR29vZ2xlIExMQwogICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiAgICopCiovCg==""" +default_js_module = """data:text/javascript;base64,dmFyIGxyPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgY3I9KEEsZSk9Pntmb3IodmFyIHQgaW4gZSlscihBLHQse2dldDplW3RdLGVudW1lcmFibGU6ITB9KX07dmFyIHVyPSI3LjYuNCIsZWU9dXI7dmFyIGZyPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sYj1mcjt2YXIgcHI9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LFg9cHI7ZnVuY3Rpb24gZHIoQSxlKXtsZXQgdD1udWxsO3N3aXRjaChBKXtjYXNlIGIuVUludDg6e3Q9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBiLkludDg6e3Q9bmV3IEludDhBcnJheShlKTticmVha31jYXNlIGIuVUludDE2Ont0PW5ldyBVaW50MTZBcnJheShlKTticmVha31jYXNlIGIuSW50MTY6e3Q9bmV3IEludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBiLlVJbnQzMjp7dD1uZXcgVWludDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSBiLkludDMyOnt0PW5ldyBJbnQzMkFycmF5KGUpO2JyZWFrfWNhc2UgYi5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ1VpbnQ2NEFycmF5KGUpOnQ9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBiLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ0ludDY0QXJyYXkoZSk6dD1uZXcgVWludDhBcnJheShlKTticmVha31jYXNlIFguRmxvYXQzMjp7dD1uZXcgRmxvYXQzMkFycmF5KGUpO2JyZWFrfWNhc2UgWC5GbG9hdDY0Ont0PW5ldyBGbG9hdDY0QXJyYXkoZSk7YnJlYWt9Y2FzZSJudWxsIjp7dD1udWxsO2JyZWFrfWNhc2UgbnVsbDp7dD1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIHR9dmFyIE89ZHI7dmFyIG1yPXtVbmtub3duOiJVbmtub3duIixTY2FsYXI6IlNjYWxhciIsUkdCOiJSR0IiLFJHQkE6IlJHQkEiLE9mZnNldDoiT2Zmc2V0IixWZWN0b3I6IlZlY3RvciIsUG9pbnQ6IlBvaW50IixDb3ZhcmlhbnRWZWN0b3I6IkNvdmFyaWFudFZlY3RvciIsU3ltbWV0cmljU2Vjb25kUmFua1RlbnNvcjoiU3ltbWV0cmljU2Vjb25kUmFua1RlbnNvciIsRGlmZnVzaW9uVGVuc29yM0Q6IkRpZmZ1c2lvblRlbnNvcjNEIixDb21wbGV4OiJDb21wbGV4IixGaXhlZEFycmF5OiJGaXhlZEFycmF5IixBcnJheToiQXJyYXkiLE1hdHJpeDoiTWF0cml4IixWYXJpYWJsZUxlbmd0aFZlY3RvcjoiVmFyaWFibGVMZW5ndGhWZWN0b3IiLFZhcmlhYmxlU2l6ZU1hdHJpeDoiVmFyaWFibGVTaXplTWF0cml4In0sdmU9bXI7dmFyIHRlPWNsYXNze2RpbWVuc2lvbjtjb21wb25lbnRUeXBlO3BpeGVsVHlwZTtjb21wb25lbnRzO2NvbnN0cnVjdG9yKGU9Mix0PWIuVUludDgscj12ZS5TY2FsYXIsaT0xKXt0aGlzLmRpbWVuc2lvbj1lLHRoaXMuY29tcG9uZW50VHlwZT10LHRoaXMucGl4ZWxUeXBlPXIsdGhpcy5jb21wb25lbnRzPWl9fSxaZT10ZTtmdW5jdGlvbiBocihBLGUsdCxyLGkpe0Fbcit0KmVdPWl9dmFyIFZlPWhyO3ZhciByZT1jbGFzc3tpbWFnZVR5cGU7bmFtZT0iSW1hZ2UiO29yaWdpbjtzcGFjaW5nO2RpcmVjdGlvbjtzaXplO21ldGFkYXRhO2RhdGE7Y29uc3RydWN0b3IoZT1uZXcgWmUpe3RoaXMuaW1hZ2VUeXBlPWU7bGV0IHQ9ZS5kaW1lbnNpb247dGhpcy5vcmlnaW49bmV3IEFycmF5KHQpLHRoaXMub3JpZ2luLmZpbGwoMCksdGhpcy5zcGFjaW5nPW5ldyBBcnJheSh0KSx0aGlzLnNwYWNpbmcuZmlsbCgxKSx0aGlzLmRpcmVjdGlvbj1uZXcgRmxvYXQ2NEFycmF5KHQqdCksdGhpcy5kaXJlY3Rpb24uZmlsbCgwKTtmb3IobGV0IHI9MDtyPHQ7cisrKVZlKHRoaXMuZGlyZWN0aW9uLHQscixyLDEpO3RoaXMuc2l6ZT1uZXcgQXJyYXkodCksdGhpcy5zaXplLmZpbGwoMCksdGhpcy5tZXRhZGF0YT1uZXcgTWFwLHRoaXMuZGF0YT1udWxsfX0sWGU9cmU7ZnVuY3Rpb24geXIoQSl7aWYoQS5sZW5ndGg8MSl0aHJvdyBFcnJvcigiQXQgbGVhc3Qgb25lIGltYWdlcyBpcyByZXF1aXJlZC4iKTtsZXQgZT1BWzBdO2lmKGUuZGF0YT09PW51bGwpdGhyb3cgRXJyb3IoIkltYWdlIGRhdGEgaXMgbnVsbC4iKTtsZXQgdD1uZXcgWGUoZS5pbWFnZVR5cGUpO3Qub3JpZ2luPUFycmF5LmZyb20oZS5vcmlnaW4pLHQuc3BhY2luZz1BcnJheS5mcm9tKGUuc3BhY2luZyk7bGV0IHI9dC5pbWFnZVR5cGUuZGltZW5zaW9uO3QuZGlyZWN0aW9uPWUuZGlyZWN0aW9uLnNsaWNlKCk7bGV0IGk9ci0xO3Quc2l6ZT1BcnJheS5mcm9tKGUuc2l6ZSk7bGV0IEk9QS5yZWR1Y2UoKG4sZyk9Pm4rZy5zaXplW2ldLDApO3Quc2l6ZVtpXT1JO2xldCBvPXQuc2l6ZS5yZWR1Y2UoKG4sZyk9Pm4qZywxKSp0LmltYWdlVHlwZS5jb21wb25lbnRzLGE9ZS5kYXRhLmNvbnN0cnVjdG9yO3QuZGF0YT1uZXcgYShvKTtsZXQgRT10LmltYWdlVHlwZS5jb21wb25lbnRzO2ZvcihsZXQgbj0wO248dC5zaXplLmxlbmd0aC0xO24rKylFKj10LnNpemVbbl07bGV0IHM9MDtpZih0LmRhdGEhPW51bGwpZm9yKGxldCBuPTA7bjxBLmxlbmd0aDtuKyspdC5kYXRhLnNldChBW25dLmRhdGEsRSpzKSxzKz1BW25dLnNpemVbaV07ZWxzZSB0aHJvdyBFcnJvcigiQ291bGQgbm90IGNyZWF0ZSByZXN1bHQgaW1hZ2UgZGF0YS4iKTtyZXR1cm4gdH12YXIgaWU9eXI7dmFyIEllPWNsYXNze2Zjbjt3b3JrZXJRdWV1ZTtydW5JbmZvO2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5mY249dCx0aGlzLndvcmtlclF1ZXVlPW5ldyBBcnJheShlKSx0aGlzLndvcmtlclF1ZXVlLmZpbGwobnVsbCksdGhpcy5ydW5JbmZvPVtdfXJ1blRhc2tzKGUsdD1udWxsKXtsZXQgcj17dGFza1F1ZXVlOltdLHJlc3VsdHM6W10sYWRkaW5nVGFza3M6ITEscG9zdHBvbmVkOiExLHJ1bm5pbmdXb3JrZXJzOjAsaW5kZXg6MCxjb21wbGV0ZWRUYXNrczowLHByb2dyZXNzQ2FsbGJhY2s6dCxjYW5jZWxlZDohMX07cmV0dXJuIHRoaXMucnVuSW5mby5wdXNoKHIpLHIuaW5kZXg9dGhpcy5ydW5JbmZvLmxlbmd0aC0xLHtwcm9taXNlOm5ldyBQcm9taXNlKChpLEkpPT57ci5yZXNvbHZlPWksci5yZWplY3Q9SSxyLnJlc3VsdHM9bmV3IEFycmF5KGUubGVuZ3RoKSxyLmNvbXBsZXRlZFRhc2tzPTAsci5hZGRpbmdUYXNrcz0hMCxlLmZvckVhY2goKG8sYSk9Pnt0aGlzLmFkZFRhc2soci5pbmRleCxhLG8pfSksci5hZGRpbmdUYXNrcz0hMX0pLHJ1bklkOnIuaW5kZXh9fXRlcm1pbmF0ZVdvcmtlcnMoKXtmb3IobGV0IGU9MDtlPHRoaXMud29ya2VyUXVldWUubGVuZ3RoO2UrKyl7bGV0IHQ9dGhpcy53b3JrZXJRdWV1ZVtlXTt0Py50ZXJtaW5hdGUoKSx0aGlzLndvcmtlclF1ZXVlW2VdPW51bGx9fWNhbmNlbChlKXtsZXQgdD10aGlzLnJ1bkluZm9bZV07dCE9bnVsbCYmKHQuY2FuY2VsZWQ9ITApfWFkZFRhc2soZSx0LHIpe2xldCBpPXRoaXMucnVuSW5mb1tlXTtpZihpPy5jYW5jZWxlZD09PSEwKXtpLnJlamVjdCgiUmVtYWluaW5nIHRhc2tzIGNhbmNlbGVkIiksdGhpcy5jbGVhclRhc2soaS5pbmRleCk7cmV0dXJufWlmKHRoaXMud29ya2VyUXVldWUubGVuZ3RoPjApe2xldCBJPXRoaXMud29ya2VyUXVldWUucG9wKCk7aS5ydW5uaW5nV29ya2VycysrLHJbci5sZW5ndGgtMV0ud2ViV29ya2VyPUksdGhpcy5mY24oLi4ucikudGhlbigoe3dlYldvcmtlcjpvLC4uLmF9KT0+e2lmKHRoaXMud29ya2VyUXVldWUucHVzaChvKSx0aGlzLnJ1bkluZm9bZV0hPT1udWxsKXtpZihpLnJ1bm5pbmdXb3JrZXJzLS0saS5yZXN1bHRzW3RdPWEsaS5jb21wbGV0ZWRUYXNrcysrLGkucHJvZ3Jlc3NDYWxsYmFjayE9bnVsbCYmaS5wcm9ncmVzc0NhbGxiYWNrKGkuY29tcGxldGVkVGFza3MsaS5yZXN1bHRzLmxlbmd0aCksaS50YXNrUXVldWUubGVuZ3RoPjApe2xldCBFPWkudGFza1F1ZXVlLnNoaWZ0KCk7dGhpcy5hZGRUYXNrKGUsRVswXSxFWzFdKX1lbHNlIGlmKCFpLmFkZGluZ1Rhc2tzJiZpLnJ1bm5pbmdXb3JrZXJzPT09MCl7bGV0IEU9aS5yZXN1bHRzO2kucmVzb2x2ZShFKSx0aGlzLmNsZWFyVGFzayhpLmluZGV4KX19fSkuY2F0Y2gobz0+e2kucmVqZWN0KG8pLHRoaXMuY2xlYXJUYXNrKGkuaW5kZXgpfSl9ZWxzZSBpLnJ1bm5pbmdXb3JrZXJzIT09MHx8aS5wb3N0cG9uZWQ/aS50YXNrUXVldWUucHVzaChbdCxyXSk6KGkucG9zdHBvbmVkPSEwLHNldFRpbWVvdXQoKCk9PntpLnBvc3Rwb25lZD0hMSx0aGlzLmFkZFRhc2soaS5pbmRleCx0LHIpfSw1MCkpfWNsZWFyVGFzayhlKXt0aGlzLnJ1bkluZm9bZV0ucmVzdWx0cz1bXSx0aGlzLnJ1bkluZm9bZV0udGFza1F1ZXVlPVtdLHRoaXMucnVuSW5mb1tlXS5wcm9ncmVzc0NhbGxiYWNrPW51bGwsdGhpcy5ydW5JbmZvW2VdLmNhbmNlbGVkPW51bGwsdGhpcy5ydW5JbmZvW2VdLnJlamVjdD0oKT0+e30sdGhpcy5ydW5JbmZvW2VdLnJlc29sdmU9KCk9Pnt9fX0sb2U9SWU7dmFyIERyPXtUZXh0RmlsZToiVGV4dEZpbGUiLEJpbmFyeUZpbGU6IkJpbmFyeUZpbGUiLFRleHRTdHJlYW06IlRleHRTdHJlYW0iLEJpbmFyeVN0cmVhbToiQmluYXJ5U3RyZWFtIixJbWFnZToiSW1hZ2UiLFBvaW50U2V0OiJQb2ludFNldCIsTWVzaDoiTWVzaCIsUG9seURhdGE6IlBvbHlEYXRhIixUcmFuc2Zvcm1MaXN0OiJUcmFuc2Zvcm1MaXN0IixKc29uQ29tcGF0aWJsZToiSnNvbkNvbXBhdGlibGUifSxmPURyO3ZhciBfZT1TeW1ib2woIkNvbWxpbmsucHJveHkiKSx3cj1TeW1ib2woIkNvbWxpbmsuZW5kcG9pbnQiKSxhZT1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksbmU9U3ltYm9sKCJDb21saW5rLmZpbmFsaXplciIpLFVBPVN5bWJvbCgiQ29tbGluay50aHJvd24iKSwkZT1BPT50eXBlb2YgQT09Im9iamVjdCImJkEhPT1udWxsfHx0eXBlb2YgQT09ImZ1bmN0aW9uIixTcj17Y2FuSGFuZGxlOkE9PiRlKEEpJiZBW19lXSxzZXJpYWxpemUoQSl7bGV0e3BvcnQxOmUscG9ydDI6dH09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiBldChBLGUpLFt0LFt0XV19LGRlc2VyaWFsaXplKEEpe3JldHVybiBBLnN0YXJ0KCksc2UoQSl9fSxGcj17Y2FuSGFuZGxlOkE9PiRlKEEpJiZVQSBpbiBBLHNlcmlhbGl6ZSh7dmFsdWU6QX0pe2xldCBlO3JldHVybiBBIGluc3RhbmNlb2YgRXJyb3I/ZT17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTpBLm1lc3NhZ2UsbmFtZTpBLm5hbWUsc3RhY2s6QS5zdGFja319OmU9e2lzRXJyb3I6ITEsdmFsdWU6QX0sW2UsW11dfSxkZXNlcmlhbGl6ZShBKXt0aHJvdyBBLmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoQS52YWx1ZS5tZXNzYWdlKSxBLnZhbHVlKTpBLnZhbHVlfX0sQXQ9bmV3IE1hcChbWyJwcm94eSIsU3JdLFsidGhyb3ciLEZyXV0pO2Z1bmN0aW9uIFJyKEEsZSl7Zm9yKGxldCB0IG9mIEEpaWYoZT09PXR8fHQ9PT0iKiJ8fHQgaW5zdGFuY2VvZiBSZWdFeHAmJnQudGVzdChlKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBldChBLGU9Z2xvYmFsVGhpcyx0PVsiKiJdKXtlLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIHIoaSl7aWYoIWl8fCFpLmRhdGEpcmV0dXJuO2lmKCFScih0LGkub3JpZ2luKSl7Y29uc29sZS53YXJuKGBJbnZhbGlkIG9yaWdpbiAnJHtpLm9yaWdpbn0nIGZvciBjb21saW5rIHByb3h5YCk7cmV0dXJufWxldHtpZDpJLHR5cGU6byxwYXRoOmF9PU9iamVjdC5hc3NpZ24oe3BhdGg6W119LGkuZGF0YSksRT0oaS5kYXRhLmFyZ3VtZW50TGlzdHx8W10pLm1hcCh6KSxzO3RyeXtsZXQgbj1hLnNsaWNlKDAsLTEpLnJlZHVjZSgodSxDKT0+dVtDXSxBKSxnPWEucmVkdWNlKCh1LEMpPT51W0NdLEEpO3N3aXRjaChvKXtjYXNlIkdFVCI6cz1nO2JyZWFrO2Nhc2UiU0VUIjpuW2Euc2xpY2UoLTEpWzBdXT16KGkuZGF0YS52YWx1ZSkscz0hMDticmVhaztjYXNlIkFQUExZIjpzPWcuYXBwbHkobixFKTticmVhaztjYXNlIkNPTlNUUlVDVCI6e2xldCB1PW5ldyBnKC4uLkUpO3M9YnIodSl9YnJlYWs7Y2FzZSJFTkRQT0lOVCI6e2xldHtwb3J0MTp1LHBvcnQyOkN9PW5ldyBNZXNzYWdlQ2hhbm5lbDtldChBLEMpLHM9QmUodSxbdV0pfWJyZWFrO2Nhc2UiUkVMRUFTRSI6cz12b2lkIDA7YnJlYWs7ZGVmYXVsdDpyZXR1cm59fWNhdGNoKG4pe3M9e3ZhbHVlOm4sW1VBXTowfX1Qcm9taXNlLnJlc29sdmUocykuY2F0Y2gobj0+KHt2YWx1ZTpuLFtVQV06MH0pKS50aGVuKG49PntsZXRbZyx1XT1iQShuKTtlLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnKSx7aWQ6SX0pLHUpLG89PT0iUkVMRUFTRSImJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHIpLHR0KGUpLG5lIGluIEEmJnR5cGVvZiBBW25lXT09ImZ1bmN0aW9uIiYmQVtuZV0oKSl9KS5jYXRjaChuPT57bGV0W2csdV09YkEoe3ZhbHVlOm5ldyBUeXBlRXJyb3IoIlVuc2VyaWFsaXphYmxlIHJldHVybiB2YWx1ZSIpLFtVQV06MH0pO2UucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGcpLHtpZDpJfSksdSl9KX0pLGUuc3RhcnQmJmUuc3RhcnQoKX1mdW5jdGlvbiBrcihBKXtyZXR1cm4gQS5jb25zdHJ1Y3Rvci5uYW1lPT09Ik1lc3NhZ2VQb3J0In1mdW5jdGlvbiB0dChBKXtrcihBKSYmQS5jbG9zZSgpfWZ1bmN0aW9uIHNlKEEsZSl7cmV0dXJuIGdlKEEsW10sZSl9ZnVuY3Rpb24ga0EoQSl7aWYoQSl0aHJvdyBuZXcgRXJyb3IoIlByb3h5IGhhcyBiZWVuIHJlbGVhc2VkIGFuZCBpcyBub3QgdXNlYWJsZSIpfWZ1bmN0aW9uIHJ0KEEpe3JldHVybiBBQShBLHt0eXBlOiJSRUxFQVNFIn0pLnRoZW4oKCk9Pnt0dChBKX0pfXZhciBOQT1uZXcgV2Vha01hcCxHQT0iRmluYWxpemF0aW9uUmVnaXN0cnkiaW4gZ2xvYmFsVGhpcyYmbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KEE9PntsZXQgZT0oTkEuZ2V0KEEpfHwwKS0xO05BLnNldChBLGUpLGU9PT0wJiZydChBKX0pO2Z1bmN0aW9uIFVyKEEsZSl7bGV0IHQ9KE5BLmdldChlKXx8MCkrMTtOQS5zZXQoZSx0KSxHQSYmR0EucmVnaXN0ZXIoQSxlLEEpfWZ1bmN0aW9uIE5yKEEpe0dBJiZHQS51bnJlZ2lzdGVyKEEpfWZ1bmN0aW9uIGdlKEEsZT1bXSx0PWZ1bmN0aW9uKCl7fSl7bGV0IHI9ITEsaT1uZXcgUHJveHkodCx7Z2V0KEksbyl7aWYoa0Eociksbz09PWFlKXJldHVybigpPT57TnIoaSkscnQoQSkscj0hMH07aWYobz09PSJ0aGVuIil7aWYoZS5sZW5ndGg9PT0wKXJldHVybnt0aGVuOigpPT5pfTtsZXQgYT1BQShBLHt0eXBlOiJHRVQiLHBhdGg6ZS5tYXAoRT0+RS50b1N0cmluZygpKX0pLnRoZW4oeik7cmV0dXJuIGEudGhlbi5iaW5kKGEpfXJldHVybiBnZShBLFsuLi5lLG9dKX0sc2V0KEksbyxhKXtrQShyKTtsZXRbRSxzXT1iQShhKTtyZXR1cm4gQUEoQSx7dHlwZToiU0VUIixwYXRoOlsuLi5lLG9dLm1hcChuPT5uLnRvU3RyaW5nKCkpLHZhbHVlOkV9LHMpLnRoZW4oeil9LGFwcGx5KEksbyxhKXtrQShyKTtsZXQgRT1lW2UubGVuZ3RoLTFdO2lmKEU9PT13cilyZXR1cm4gQUEoQSx7dHlwZToiRU5EUE9JTlQifSkudGhlbih6KTtpZihFPT09ImJpbmQiKXJldHVybiBnZShBLGUuc2xpY2UoMCwtMSkpO2xldFtzLG5dPXplKGEpO3JldHVybiBBQShBLHt0eXBlOiJBUFBMWSIscGF0aDplLm1hcChnPT5nLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpzfSxuKS50aGVuKHopfSxjb25zdHJ1Y3QoSSxvKXtrQShyKTtsZXRbYSxFXT16ZShvKTtyZXR1cm4gQUEoQSx7dHlwZToiQ09OU1RSVUNUIixwYXRoOmUubWFwKHM9PnMudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OmF9LEUpLnRoZW4oeil9fSk7cmV0dXJuIFVyKGksQSksaX1mdW5jdGlvbiBHcihBKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxBKX1mdW5jdGlvbiB6ZShBKXtsZXQgZT1BLm1hcChiQSk7cmV0dXJuW2UubWFwKHQ9PnRbMF0pLEdyKGUubWFwKHQ9PnRbMV0pKV19dmFyIGl0PW5ldyBXZWFrTWFwO2Z1bmN0aW9uIEJlKEEsZSl7cmV0dXJuIGl0LnNldChBLGUpLEF9ZnVuY3Rpb24gYnIoQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7W19lXTohMH0pfWZ1bmN0aW9uIGJBKEEpe2ZvcihsZXRbZSx0XW9mIEF0KWlmKHQuY2FuSGFuZGxlKEEpKXtsZXRbcixpXT10LnNlcmlhbGl6ZShBKTtyZXR1cm5be3R5cGU6IkhBTkRMRVIiLG5hbWU6ZSx2YWx1ZTpyfSxpXX1yZXR1cm5be3R5cGU6IlJBVyIsdmFsdWU6QX0saXQuZ2V0KEEpfHxbXV19ZnVuY3Rpb24geihBKXtzd2l0Y2goQS50eXBlKXtjYXNlIkhBTkRMRVIiOnJldHVybiBBdC5nZXQoQS5uYW1lKS5kZXNlcmlhbGl6ZShBLnZhbHVlKTtjYXNlIlJBVyI6cmV0dXJuIEEudmFsdWV9fWZ1bmN0aW9uIEFBKEEsZSx0KXtyZXR1cm4gbmV3IFByb21pc2Uocj0+e2xldCBpPUxyKCk7QS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBJKG8peyFvLmRhdGF8fCFvLmRhdGEuaWR8fG8uZGF0YS5pZCE9PWl8fChBLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLEkpLHIoby5kYXRhKSl9KSxBLnN0YXJ0JiZBLnN0YXJ0KCksQS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKHtpZDppfSxlKSx0KX0pfWZ1bmN0aW9uIExyKCl7cmV0dXJuIG5ldyBBcnJheSg0KS5maWxsKDApLm1hcCgoKT0+TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKk51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygxNikpLmpvaW4oIi0iKX1mdW5jdGlvbiBCQShBLGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBBLmFwcGx5KGUsYXJndW1lbnRzKX19dmFye3RvU3RyaW5nOkpyfT1PYmplY3QucHJvdG90eXBlLHtnZXRQcm90b3R5cGVPZjpRZX09T2JqZWN0LHtpdGVyYXRvcjpKQSx0b1N0cmluZ1RhZzpudH09U3ltYm9sLE1BPShBPT5lPT57bGV0IHQ9SnIuY2FsbChlKTtyZXR1cm4gQVt0XXx8KEFbdF09dC5zbGljZSg4LC0xKS50b0xvd2VyQ2FzZSgpKX0pKE9iamVjdC5jcmVhdGUobnVsbCkpLEg9QT0+KEE9QS50b0xvd2VyQ2FzZSgpLGU9Pk1BKGUpPT09QSksSEE9QT0+ZT0+dHlwZW9mIGU9PT1BLHtpc0FycmF5OnRBfT1BcnJheSxlQT1IQSgidW5kZWZpbmVkIik7ZnVuY3Rpb24gQ0EoQSl7cmV0dXJuIEEhPT1udWxsJiYhZUEoQSkmJkEuY29uc3RydWN0b3IhPT1udWxsJiYhZUEoQS5jb25zdHJ1Y3RvcikmJkwoQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikmJkEuY29uc3RydWN0b3IuaXNCdWZmZXIoQSl9dmFyIGd0PUgoIkFycmF5QnVmZmVyIik7ZnVuY3Rpb24gTXIoQSl7bGV0IGU7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJkFycmF5QnVmZmVyLmlzVmlldz9lPUFycmF5QnVmZmVyLmlzVmlldyhBKTplPUEmJkEuYnVmZmVyJiZndChBLmJ1ZmZlciksZX12YXIgSHI9SEEoInN0cmluZyIpLEw9SEEoImZ1bmN0aW9uIiksYXQ9SEEoIm51bWJlciIpLFFBPUE9PkEhPT1udWxsJiZ0eXBlb2YgQT09Im9iamVjdCIsWXI9QT0+QT09PSEwfHxBPT09ITEsTEE9QT0+e2lmKE1BKEEpIT09Im9iamVjdCIpcmV0dXJuITE7bGV0IGU9UWUoQSk7cmV0dXJuKGU9PT1udWxsfHxlPT09T2JqZWN0LnByb3RvdHlwZXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09bnVsbCkmJiEobnQgaW4gQSkmJiEoSkEgaW4gQSl9LFRyPUE9PntpZighUUEoQSl8fENBKEEpKXJldHVybiExO3RyeXtyZXR1cm4gT2JqZWN0LmtleXMoQSkubGVuZ3RoPT09MCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKEEpPT09T2JqZWN0LnByb3RvdHlwZX1jYXRjaHtyZXR1cm4hMX19LE9yPUgoIkRhdGUiKSx4cj1IKCJGaWxlIikscXI9SCgiQmxvYiIpLFByPUgoIkZpbGVMaXN0IiksS3I9QT0+UUEoQSkmJkwoQS5waXBlKSxXcj1BPT57bGV0IGU7cmV0dXJuIEEmJih0eXBlb2YgRm9ybURhdGE9PSJmdW5jdGlvbiImJkEgaW5zdGFuY2VvZiBGb3JtRGF0YXx8TChBLmFwcGVuZCkmJigoZT1NQShBKSk9PT0iZm9ybWRhdGEifHxlPT09Im9iamVjdCImJkwoQS50b1N0cmluZykmJkEudG9TdHJpbmcoKT09PSJbb2JqZWN0IEZvcm1EYXRhXSIpKX0sanI9SCgiVVJMU2VhcmNoUGFyYW1zIiksW3ZyLFpyLFZyLFhyXT1bIlJlYWRhYmxlU3RyZWFtIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiSGVhZGVycyJdLm1hcChIKSx6cj1BPT5BLnRyaW0/QS50cmltKCk6QS5yZXBsYWNlKC9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZywiIik7ZnVuY3Rpb24gRUEoQSxlLHthbGxPd25LZXlzOnQ9ITF9PXt9KXtpZihBPT09bnVsbHx8dHlwZW9mIEE+InUiKXJldHVybjtsZXQgcixpO2lmKHR5cGVvZiBBIT0ib2JqZWN0IiYmKEE9W0FdKSx0QShBKSlmb3Iocj0wLGk9QS5sZW5ndGg7cjxpO3IrKyllLmNhbGwobnVsbCxBW3JdLHIsQSk7ZWxzZXtpZihDQShBKSlyZXR1cm47bGV0IEk9dD9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKTpPYmplY3Qua2V5cyhBKSxvPUkubGVuZ3RoLGE7Zm9yKHI9MDtyPG87cisrKWE9SVtyXSxlLmNhbGwobnVsbCxBW2FdLGEsQSl9fWZ1bmN0aW9uIHN0KEEsZSl7aWYoQ0EoQSkpcmV0dXJuIG51bGw7ZT1lLnRvTG93ZXJDYXNlKCk7bGV0IHQ9T2JqZWN0LmtleXMoQSkscj10Lmxlbmd0aCxpO2Zvcig7ci0tID4wOylpZihpPXRbcl0sZT09PWkudG9Mb3dlckNhc2UoKSlyZXR1cm4gaTtyZXR1cm4gbnVsbH12YXIgXz10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6Z2xvYmFsLEJ0PUE9PiFlQShBKSYmQSE9PV87ZnVuY3Rpb24gQ2UoKXtsZXR7Y2FzZWxlc3M6QSxza2lwVW5kZWZpbmVkOmV9PUJ0KHRoaXMpJiZ0aGlzfHx7fSx0PXt9LHI9KGksSSk9PntsZXQgbz1BJiZzdCh0LEkpfHxJO0xBKHRbb10pJiZMQShpKT90W29dPUNlKHRbb10saSk6TEEoaSk/dFtvXT1DZSh7fSxpKTp0QShpKT90W29dPWkuc2xpY2UoKTooIWV8fCFlQShpKSkmJih0W29dPWkpfTtmb3IobGV0IGk9MCxJPWFyZ3VtZW50cy5sZW5ndGg7aTxJO2krKylhcmd1bWVudHNbaV0mJkVBKGFyZ3VtZW50c1tpXSxyKTtyZXR1cm4gdH12YXIgX3I9KEEsZSx0LHthbGxPd25LZXlzOnJ9PXt9KT0+KEVBKGUsKGksSSk9Pnt0JiZMKGkpP0FbSV09QkEoaSx0KTpBW0ldPWl9LHthbGxPd25LZXlzOnJ9KSxBKSwkcj1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLEFpPShBLGUsdCxyKT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUsciksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTplLnByb3RvdHlwZX0pLHQmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsdCl9LGVpPShBLGUsdCxyKT0+e2xldCBpLEksbyxhPXt9O2lmKGU9ZXx8e30sQT09bnVsbClyZXR1cm4gZTtkb3tmb3IoaT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxJPWkubGVuZ3RoO0ktLSA+MDspbz1pW0ldLCghcnx8cihvLEEsZSkpJiYhYVtvXSYmKGVbb109QVtvXSxhW29dPSEwKTtBPXQhPT0hMSYmUWUoQSl9d2hpbGUoQSYmKCF0fHx0KEEsZSkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIGV9LHRpPShBLGUsdCk9PntBPVN0cmluZyhBKSwodD09PXZvaWQgMHx8dD5BLmxlbmd0aCkmJih0PUEubGVuZ3RoKSx0LT1lLmxlbmd0aDtsZXQgcj1BLmluZGV4T2YoZSx0KTtyZXR1cm4gciE9PS0xJiZyPT09dH0scmk9QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKHRBKEEpKXJldHVybiBBO2xldCBlPUEubGVuZ3RoO2lmKCFhdChlKSlyZXR1cm4gbnVsbDtsZXQgdD1uZXcgQXJyYXkoZSk7Zm9yKDtlLS0gPjA7KXRbZV09QVtlXTtyZXR1cm4gdH0saWk9KEE9PmU9PkEmJmUgaW5zdGFuY2VvZiBBKSh0eXBlb2YgVWludDhBcnJheTwidSImJlFlKFVpbnQ4QXJyYXkpKSxJaT0oQSxlKT0+e2xldCByPShBJiZBW0pBXSkuY2FsbChBKSxpO2Zvcig7KGk9ci5uZXh0KCkpJiYhaS5kb25lOyl7bGV0IEk9aS52YWx1ZTtlLmNhbGwoQSxJWzBdLElbMV0pfX0sb2k9KEEsZSk9PntsZXQgdCxyPVtdO2Zvcig7KHQ9QS5leGVjKGUpKSE9PW51bGw7KXIucHVzaCh0KTtyZXR1cm4gcn0sbmk9SCgiSFRNTEZvcm1FbGVtZW50IiksZ2k9QT0+QS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xzXShbYS16XGRdKShcdyopL2csZnVuY3Rpb24odCxyLGkpe3JldHVybiByLnRvVXBwZXJDYXNlKCkraX0pLG90PSgoe2hhc093blByb3BlcnR5OkF9KT0+KGUsdCk9PkEuY2FsbChlLHQpKShPYmplY3QucHJvdG90eXBlKSxhaT1IKCJSZWdFeHAiKSxDdD0oQSxlKT0+e2xldCB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEEpLHI9e307RUEodCwoaSxJKT0+e2xldCBvOyhvPWUoaSxJLEEpKSE9PSExJiYocltJXT1vfHxpKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEEscil9LHNpPUE9PntDdChBLChlLHQpPT57aWYoTChBKSYmWyJhcmd1bWVudHMiLCJjYWxsZXIiLCJjYWxsZWUiXS5pbmRleE9mKHQpIT09LTEpcmV0dXJuITE7bGV0IHI9QVt0XTtpZihMKHIpKXtpZihlLmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIGUpe2Uud3JpdGFibGU9ITE7cmV0dXJufWUuc2V0fHwoZS5zZXQ9KCk9Pnt0aHJvdyBFcnJvcigiQ2FuIG5vdCByZXdyaXRlIHJlYWQtb25seSBtZXRob2QgJyIrdCsiJyIpfSl9fSl9LEJpPShBLGUpPT57bGV0IHQ9e30scj1pPT57aS5mb3JFYWNoKEk9Pnt0W0ldPSEwfSl9O3JldHVybiB0QShBKT9yKEEpOnIoU3RyaW5nKEEpLnNwbGl0KGUpKSx0fSxDaT0oKT0+e30sUWk9KEEsZSk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOmU7ZnVuY3Rpb24gRWkoQSl7cmV0dXJuISEoQSYmTChBLmFwcGVuZCkmJkFbbnRdPT09IkZvcm1EYXRhIiYmQVtKQV0pfXZhciBsaT1BPT57bGV0IGU9bmV3IEFycmF5KDEwKSx0PShyLGkpPT57aWYoUUEocikpe2lmKGUuaW5kZXhPZihyKT49MClyZXR1cm47aWYoQ0EocikpcmV0dXJuIHI7aWYoISgidG9KU09OImluIHIpKXtlW2ldPXI7bGV0IEk9dEEocik/W106e307cmV0dXJuIEVBKHIsKG8sYSk9PntsZXQgRT10KG8saSsxKTshZUEoRSkmJihJW2FdPUUpfSksZVtpXT12b2lkIDAsSX19cmV0dXJuIHJ9O3JldHVybiB0KEEsMCl9LGNpPUgoIkFzeW5jRnVuY3Rpb24iKSx1aT1BPT5BJiYoUUEoQSl8fEwoQSkpJiZMKEEudGhlbikmJkwoQS5jYXRjaCksUXQ9KChBLGUpPT5BP3NldEltbWVkaWF0ZTplPygodCxyKT0+KF8uYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKHtzb3VyY2U6aSxkYXRhOkl9KT0+e2k9PT1fJiZJPT09dCYmci5sZW5ndGgmJnIuc2hpZnQoKSgpfSwhMSksaT0+e3IucHVzaChpKSxfLnBvc3RNZXNzYWdlKHQsIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOnQ9PnNldFRpbWVvdXQodCkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsTChfLnBvc3RNZXNzYWdlKSksZmk9dHlwZW9mIHF1ZXVlTWljcm90YXNrPCJ1Ij9xdWV1ZU1pY3JvdGFzay5iaW5kKF8pOnR5cGVvZiBwcm9jZXNzPCJ1IiYmcHJvY2Vzcy5uZXh0VGlja3x8UXQscGk9QT0+QSE9bnVsbCYmTChBW0pBXSksQj17aXNBcnJheTp0QSxpc0FycmF5QnVmZmVyOmd0LGlzQnVmZmVyOkNBLGlzRm9ybURhdGE6V3IsaXNBcnJheUJ1ZmZlclZpZXc6TXIsaXNTdHJpbmc6SHIsaXNOdW1iZXI6YXQsaXNCb29sZWFuOllyLGlzT2JqZWN0OlFBLGlzUGxhaW5PYmplY3Q6TEEsaXNFbXB0eU9iamVjdDpUcixpc1JlYWRhYmxlU3RyZWFtOnZyLGlzUmVxdWVzdDpacixpc1Jlc3BvbnNlOlZyLGlzSGVhZGVyczpYcixpc1VuZGVmaW5lZDplQSxpc0RhdGU6T3IsaXNGaWxlOnhyLGlzQmxvYjpxcixpc1JlZ0V4cDphaSxpc0Z1bmN0aW9uOkwsaXNTdHJlYW06S3IsaXNVUkxTZWFyY2hQYXJhbXM6anIsaXNUeXBlZEFycmF5OmlpLGlzRmlsZUxpc3Q6UHIsZm9yRWFjaDpFQSxtZXJnZTpDZSxleHRlbmQ6X3IsdHJpbTp6cixzdHJpcEJPTTokcixpbmhlcml0czpBaSx0b0ZsYXRPYmplY3Q6ZWksa2luZE9mOk1BLGtpbmRPZlRlc3Q6SCxlbmRzV2l0aDp0aSx0b0FycmF5OnJpLGZvckVhY2hFbnRyeTpJaSxtYXRjaEFsbDpvaSxpc0hUTUxGb3JtOm5pLGhhc093blByb3BlcnR5Om90LGhhc093blByb3A6b3QscmVkdWNlRGVzY3JpcHRvcnM6Q3QsZnJlZXplTWV0aG9kczpzaSx0b09iamVjdFNldDpCaSx0b0NhbWVsQ2FzZTpnaSxub29wOkNpLHRvRmluaXRlTnVtYmVyOlFpLGZpbmRLZXk6c3QsZ2xvYmFsOl8saXNDb250ZXh0RGVmaW5lZDpCdCxpc1NwZWNDb21wbGlhbnRGb3JtOkVpLHRvSlNPTk9iamVjdDpsaSxpc0FzeW5jRm46Y2ksaXNUaGVuYWJsZTp1aSxzZXRJbW1lZGlhdGU6UXQsYXNhcDpmaSxpc0l0ZXJhYmxlOnBpfTtmdW5jdGlvbiByQShBLGUsdCxyLGkpe0Vycm9yLmNhbGwodGhpcyksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrLHRoaXMubWVzc2FnZT1BLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsZSYmKHRoaXMuY29kZT1lKSx0JiYodGhpcy5jb25maWc9dCksciYmKHRoaXMucmVxdWVzdD1yKSxpJiYodGhpcy5yZXNwb25zZT1pLHRoaXMuc3RhdHVzPWkuc3RhdHVzP2kuc3RhdHVzOm51bGwpfUIuaW5oZXJpdHMockEsRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzpCLnRvSlNPTk9iamVjdCh0aGlzLmNvbmZpZyksY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMuc3RhdHVzfX19KTt2YXIgRXQ9ckEucHJvdG90eXBlLGx0PXt9O1siRVJSX0JBRF9PUFRJT05fVkFMVUUiLCJFUlJfQkFEX09QVElPTiIsIkVDT05OQUJPUlRFRCIsIkVUSU1FRE9VVCIsIkVSUl9ORVRXT1JLIiwiRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUUyIsIkVSUl9ERVBSRUNBVEVEIiwiRVJSX0JBRF9SRVNQT05TRSIsIkVSUl9CQURfUkVRVUVTVCIsIkVSUl9DQU5DRUxFRCIsIkVSUl9OT1RfU1VQUE9SVCIsIkVSUl9JTlZBTElEX1VSTCJdLmZvckVhY2goQT0+e2x0W0FdPXt2YWx1ZTpBfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHJBLGx0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoRXQsImlzQXhpb3NFcnJvciIse3ZhbHVlOiEwfSk7ckEuZnJvbT0oQSxlLHQscixpLEkpPT57bGV0IG89T2JqZWN0LmNyZWF0ZShFdCk7Qi50b0ZsYXRPYmplY3QoQSxvLGZ1bmN0aW9uKG4pe3JldHVybiBuIT09RXJyb3IucHJvdG90eXBlfSxzPT5zIT09ImlzQXhpb3NFcnJvciIpO2xldCBhPUEmJkEubWVzc2FnZT9BLm1lc3NhZ2U6IkVycm9yIixFPWU9PW51bGwmJkE/QS5jb2RlOmU7cmV0dXJuIHJBLmNhbGwobyxhLEUsdCxyLGkpLEEmJm8uY2F1c2U9PW51bGwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCJjYXVzZSIse3ZhbHVlOkEsY29uZmlndXJhYmxlOiEwfSksby5uYW1lPUEmJkEubmFtZXx8IkVycm9yIixJJiZPYmplY3QuYXNzaWduKG8sSSksb307dmFyIGQ9ckE7dmFyIFlBPW51bGw7ZnVuY3Rpb24gRWUoQSl7cmV0dXJuIEIuaXNQbGFpbk9iamVjdChBKXx8Qi5pc0FycmF5KEEpfWZ1bmN0aW9uIHV0KEEpe3JldHVybiBCLmVuZHNXaXRoKEEsIltdIik/QS5zbGljZSgwLC0yKTpBfWZ1bmN0aW9uIGN0KEEsZSx0KXtyZXR1cm4gQT9BLmNvbmNhdChlKS5tYXAoZnVuY3Rpb24oaSxJKXtyZXR1cm4gaT11dChpKSwhdCYmST8iWyIraSsiXSI6aX0pLmpvaW4odD8iLiI6IiIpOmV9ZnVuY3Rpb24gZGkoQSl7cmV0dXJuIEIuaXNBcnJheShBKSYmIUEuc29tZShFZSl9dmFyIG1pPUIudG9GbGF0T2JqZWN0KEIse30sbnVsbCxmdW5jdGlvbihlKXtyZXR1cm4vXmlzW0EtWl0vLnRlc3QoZSl9KTtmdW5jdGlvbiBoaShBLGUsdCl7aWYoIUIuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7ZT1lfHxuZXcoWUF8fEZvcm1EYXRhKSx0PUIudG9GbGF0T2JqZWN0KHQse21ldGFUb2tlbnM6ITAsZG90czohMSxpbmRleGVzOiExfSwhMSxmdW5jdGlvbihsLGMpe3JldHVybiFCLmlzVW5kZWZpbmVkKGNbbF0pfSk7bGV0IHI9dC5tZXRhVG9rZW5zLGk9dC52aXNpdG9yfHxuLEk9dC5kb3RzLG89dC5pbmRleGVzLEU9KHQuQmxvYnx8dHlwZW9mIEJsb2I8InUiJiZCbG9iKSYmQi5pc1NwZWNDb21wbGlhbnRGb3JtKGUpO2lmKCFCLmlzRnVuY3Rpb24oaSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBzKFEpe2lmKFE9PT1udWxsKXJldHVybiIiO2lmKEIuaXNEYXRlKFEpKXJldHVybiBRLnRvSVNPU3RyaW5nKCk7aWYoQi5pc0Jvb2xlYW4oUSkpcmV0dXJuIFEudG9TdHJpbmcoKTtpZighRSYmQi5pc0Jsb2IoUSkpdGhyb3cgbmV3IGQoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7cmV0dXJuIEIuaXNBcnJheUJ1ZmZlcihRKXx8Qi5pc1R5cGVkQXJyYXkoUSk/RSYmdHlwZW9mIEJsb2I9PSJmdW5jdGlvbiI/bmV3IEJsb2IoW1FdKTpCdWZmZXIuZnJvbShRKTpRfWZ1bmN0aW9uIG4oUSxsLGMpe2xldCBwPVE7aWYoUSYmIWMmJnR5cGVvZiBRPT0ib2JqZWN0Iil7aWYoQi5lbmRzV2l0aChsLCJ7fSIpKWw9cj9sOmwuc2xpY2UoMCwtMiksUT1KU09OLnN0cmluZ2lmeShRKTtlbHNlIGlmKEIuaXNBcnJheShRKSYmZGkoUSl8fChCLmlzRmlsZUxpc3QoUSl8fEIuZW5kc1dpdGgobCwiW10iKSkmJihwPUIudG9BcnJheShRKSkpcmV0dXJuIGw9dXQobCkscC5mb3JFYWNoKGZ1bmN0aW9uKGgsTil7IShCLmlzVW5kZWZpbmVkKGgpfHxoPT09bnVsbCkmJmUuYXBwZW5kKG89PT0hMD9jdChbbF0sTixJKTpvPT09bnVsbD9sOmwrIltdIixzKGgpKX0pLCExfXJldHVybiBFZShRKT8hMDooZS5hcHBlbmQoY3QoYyxsLEkpLHMoUSkpLCExKX1sZXQgZz1bXSx1PU9iamVjdC5hc3NpZ24obWkse2RlZmF1bHRWaXNpdG9yOm4sY29udmVydFZhbHVlOnMsaXNWaXNpdGFibGU6RWV9KTtmdW5jdGlvbiBDKFEsbCl7aWYoIUIuaXNVbmRlZmluZWQoUSkpe2lmKGcuaW5kZXhPZihRKSE9PS0xKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitsLmpvaW4oIi4iKSk7Zy5wdXNoKFEpLEIuZm9yRWFjaChRLGZ1bmN0aW9uKHAsbSl7KCEoQi5pc1VuZGVmaW5lZChwKXx8cD09PW51bGwpJiZpLmNhbGwoZSxwLEIuaXNTdHJpbmcobSk/bS50cmltKCk6bSxsLHUpKT09PSEwJiZDKHAsbD9sLmNvbmNhdChtKTpbbV0pfSksZy5wb3AoKX19aWYoIUIuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZGF0YSBtdXN0IGJlIGFuIG9iamVjdCIpO3JldHVybiBDKEEpLGV9dmFyIGo9aGk7ZnVuY3Rpb24gZnQoQSl7bGV0IGU9eyIhIjoiJTIxIiwiJyI6IiUyNyIsIigiOiIlMjgiLCIpIjoiJTI5IiwifiI6IiU3RSIsIiUyMCI6IisiLCIlMDAiOiJcMCJ9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyEnKCl+XXwlMjB8JTAwL2csZnVuY3Rpb24ocil7cmV0dXJuIGVbcl19KX1mdW5jdGlvbiBwdChBLGUpe3RoaXMuX3BhaXJzPVtdLEEmJmooQSx0aGlzLGUpfXZhciBkdD1wdC5wcm90b3R5cGU7ZHQuYXBwZW5kPWZ1bmN0aW9uKGUsdCl7dGhpcy5fcGFpcnMucHVzaChbZSx0XSl9O2R0LnRvU3RyaW5nPWZ1bmN0aW9uKGUpe2xldCB0PWU/ZnVuY3Rpb24ocil7cmV0dXJuIGUuY2FsbCh0aGlzLHIsZnQpfTpmdDtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKGkpe3JldHVybiB0KGlbMF0pKyI9Iit0KGlbMV0pfSwiIikuam9pbigiJiIpfTt2YXIgVEE9cHQ7ZnVuY3Rpb24geWkoQSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpLnJlcGxhY2UoLyUyMC9nLCIrIil9ZnVuY3Rpb24gbEEoQSxlLHQpe2lmKCFlKXJldHVybiBBO2xldCByPXQmJnQuZW5jb2RlfHx5aTtCLmlzRnVuY3Rpb24odCkmJih0PXtzZXJpYWxpemU6dH0pO2xldCBpPXQmJnQuc2VyaWFsaXplLEk7aWYoaT9JPWkoZSx0KTpJPUIuaXNVUkxTZWFyY2hQYXJhbXMoZSk/ZS50b1N0cmluZygpOm5ldyBUQShlLHQpLnRvU3RyaW5nKHIpLEkpe2xldCBvPUEuaW5kZXhPZigiIyIpO28hPT0tMSYmKEE9QS5zbGljZSgwLG8pKSxBKz0oQS5pbmRleE9mKCI/Iik9PT0tMT8iPyI6IiYiKStJfXJldHVybiBBfXZhciBsZT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaGFuZGxlcnM9W119dXNlKGUsdCxyKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6ZSxyZWplY3RlZDp0LHN5bmNocm9ub3VzOnI/ci5zeW5jaHJvbm91czohMSxydW5XaGVuOnI/ci5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfWVqZWN0KGUpe3RoaXMuaGFuZGxlcnNbZV0mJih0aGlzLmhhbmRsZXJzW2VdPW51bGwpfWNsZWFyKCl7dGhpcy5oYW5kbGVycyYmKHRoaXMuaGFuZGxlcnM9W10pfWZvckVhY2goZSl7Qi5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24ocil7ciE9PW51bGwmJmUocil9KX19LGNlPWxlO3ZhciBPQT17c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX07dmFyIG10PXR5cGVvZiBVUkxTZWFyY2hQYXJhbXM8InUiP1VSTFNlYXJjaFBhcmFtczpUQTt2YXIgaHQ9dHlwZW9mIEZvcm1EYXRhPCJ1Ij9Gb3JtRGF0YTpudWxsO3ZhciB5dD10eXBlb2YgQmxvYjwidSI/QmxvYjpudWxsO3ZhciBEdD17aXNCcm93c2VyOiEwLGNsYXNzZXM6e1VSTFNlYXJjaFBhcmFtczptdCxGb3JtRGF0YTpodCxCbG9iOnl0fSxwcm90b2NvbHM6WyJodHRwIiwiaHR0cHMiLCJmaWxlIiwiYmxvYiIsInVybCIsImRhdGEiXX07dmFyIHBlPXt9O2NyKHBlLHtoYXNCcm93c2VyRW52OigpPT5mZSxoYXNTdGFuZGFyZEJyb3dzZXJFbnY6KCk9PkRpLGhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudjooKT0+d2ksbmF2aWdhdG9yOigpPT51ZSxvcmlnaW46KCk9PlNpfSk7dmFyIGZlPXR5cGVvZiB3aW5kb3c8InUiJiZ0eXBlb2YgZG9jdW1lbnQ8InUiLHVlPXR5cGVvZiBuYXZpZ2F0b3I9PSJvYmplY3QiJiZuYXZpZ2F0b3J8fHZvaWQgMCxEaT1mZSYmKCF1ZXx8WyJSZWFjdE5hdGl2ZSIsIk5hdGl2ZVNjcmlwdCIsIk5TIl0uaW5kZXhPZih1ZS5wcm9kdWN0KTwwKSx3aT10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU8InUiJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnR5cGVvZiBzZWxmLmltcG9ydFNjcmlwdHM9PSJmdW5jdGlvbiIsU2k9ZmUmJndpbmRvdy5sb2NhdGlvbi5ocmVmfHwiaHR0cDovL2xvY2FsaG9zdCI7dmFyIFM9ey4uLnBlLC4uLkR0fTtmdW5jdGlvbiBkZShBLGUpe3JldHVybiBqKEEsbmV3IFMuY2xhc3Nlcy5VUkxTZWFyY2hQYXJhbXMse3Zpc2l0b3I6ZnVuY3Rpb24odCxyLGksSSl7cmV0dXJuIFMuaXNOb2RlJiZCLmlzQnVmZmVyKHQpPyh0aGlzLmFwcGVuZChyLHQudG9TdHJpbmcoImJhc2U2NCIpKSwhMSk6SS5kZWZhdWx0VmlzaXRvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LC4uLmV9KX1mdW5jdGlvbiBGaShBKXtyZXR1cm4gQi5tYXRjaEFsbCgvXHcrfFxbKFx3KildL2csQSkubWFwKGU9PmVbMF09PT0iW10iPyIiOmVbMV18fGVbMF0pfWZ1bmN0aW9uIFJpKEEpe2xldCBlPXt9LHQ9T2JqZWN0LmtleXMoQSkscixpPXQubGVuZ3RoLEk7Zm9yKHI9MDtyPGk7cisrKUk9dFtyXSxlW0ldPUFbSV07cmV0dXJuIGV9ZnVuY3Rpb24ga2koQSl7ZnVuY3Rpb24gZSh0LHIsaSxJKXtsZXQgbz10W0krK107aWYobz09PSJfX3Byb3RvX18iKXJldHVybiEwO2xldCBhPU51bWJlci5pc0Zpbml0ZSgrbyksRT1JPj10Lmxlbmd0aDtyZXR1cm4gbz0hbyYmQi5pc0FycmF5KGkpP2kubGVuZ3RoOm8sRT8oQi5oYXNPd25Qcm9wKGksbyk/aVtvXT1baVtvXSxyXTppW29dPXIsIWEpOigoIWlbb118fCFCLmlzT2JqZWN0KGlbb10pKSYmKGlbb109W10pLGUodCxyLGlbb10sSSkmJkIuaXNBcnJheShpW29dKSYmKGlbb109UmkoaVtvXSkpLCFhKX1pZihCLmlzRm9ybURhdGEoQSkmJkIuaXNGdW5jdGlvbihBLmVudHJpZXMpKXtsZXQgdD17fTtyZXR1cm4gQi5mb3JFYWNoRW50cnkoQSwocixpKT0+e2UoRmkociksaSx0LDApfSksdH1yZXR1cm4gbnVsbH12YXIgeEE9a2k7ZnVuY3Rpb24gVWkoQSxlLHQpe2lmKEIuaXNTdHJpbmcoQSkpdHJ5e3JldHVybihlfHxKU09OLnBhcnNlKShBKSxCLnRyaW0oQSl9Y2F0Y2gocil7aWYoci5uYW1lIT09IlN5bnRheEVycm9yIil0aHJvdyByfXJldHVybih0fHxKU09OLnN0cmluZ2lmeSkoQSl9dmFyIG1lPXt0cmFuc2l0aW9uYWw6T0EsYWRhcHRlcjpbInhociIsImh0dHAiLCJmZXRjaCJdLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKGUsdCl7bGV0IHI9dC5nZXRDb250ZW50VHlwZSgpfHwiIixpPXIuaW5kZXhPZigiYXBwbGljYXRpb24vanNvbiIpPi0xLEk9Qi5pc09iamVjdChlKTtpZihJJiZCLmlzSFRNTEZvcm0oZSkmJihlPW5ldyBGb3JtRGF0YShlKSksQi5pc0Zvcm1EYXRhKGUpKXJldHVybiBpP0pTT04uc3RyaW5naWZ5KHhBKGUpKTplO2lmKEIuaXNBcnJheUJ1ZmZlcihlKXx8Qi5pc0J1ZmZlcihlKXx8Qi5pc1N0cmVhbShlKXx8Qi5pc0ZpbGUoZSl8fEIuaXNCbG9iKGUpfHxCLmlzUmVhZGFibGVTdHJlYW0oZSkpcmV0dXJuIGU7aWYoQi5pc0FycmF5QnVmZmVyVmlldyhlKSlyZXR1cm4gZS5idWZmZXI7aWYoQi5pc1VSTFNlYXJjaFBhcmFtcyhlKSlyZXR1cm4gdC5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiLCExKSxlLnRvU3RyaW5nKCk7bGV0IGE7aWYoSSl7aWYoci5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKT4tMSlyZXR1cm4gZGUoZSx0aGlzLmZvcm1TZXJpYWxpemVyKS50b1N0cmluZygpO2lmKChhPUIuaXNGaWxlTGlzdChlKSl8fHIuaW5kZXhPZigibXVsdGlwYXJ0L2Zvcm0tZGF0YSIpPi0xKXtsZXQgRT10aGlzLmVudiYmdGhpcy5lbnYuRm9ybURhdGE7cmV0dXJuIGooYT97ImZpbGVzW10iOmV9OmUsRSYmbmV3IEUsdGhpcy5mb3JtU2VyaWFsaXplcil9fXJldHVybiBJfHxpPyh0LnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi9qc29uIiwhMSksVWkoZSkpOmV9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24oZSl7bGV0IHQ9dGhpcy50cmFuc2l0aW9uYWx8fG1lLnRyYW5zaXRpb25hbCxyPXQmJnQuZm9yY2VkSlNPTlBhcnNpbmcsaT10aGlzLnJlc3BvbnNlVHlwZT09PSJqc29uIjtpZihCLmlzUmVzcG9uc2UoZSl8fEIuaXNSZWFkYWJsZVN0cmVhbShlKSlyZXR1cm4gZTtpZihlJiZCLmlzU3RyaW5nKGUpJiYociYmIXRoaXMucmVzcG9uc2VUeXBlfHxpKSl7bGV0IG89ISh0JiZ0LnNpbGVudEpTT05QYXJzaW5nKSYmaTt0cnl7cmV0dXJuIEpTT04ucGFyc2UoZSx0aGlzLnBhcnNlUmV2aXZlcil9Y2F0Y2goYSl7aWYobyl0aHJvdyBhLm5hbWU9PT0iU3ludGF4RXJyb3IiP2QuZnJvbShhLGQuRVJSX0JBRF9SRVNQT05TRSx0aGlzLG51bGwsdGhpcy5yZXNwb25zZSk6YX19cmV0dXJuIGV9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSxlbnY6e0Zvcm1EYXRhOlMuY2xhc3Nlcy5Gb3JtRGF0YSxCbG9iOlMuY2xhc3Nlcy5CbG9ifSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbihlKXtyZXR1cm4gZT49MjAwJiZlPDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiIsIkNvbnRlbnQtVHlwZSI6dm9pZCAwfX19O0IuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giXSxBPT57bWUuaGVhZGVyc1tBXT17fX0pO3ZhciBpQT1tZTt2YXIgTmk9Qi50b09iamVjdFNldChbImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdKSx3dD1BPT57bGV0IGU9e30sdCxyLGk7cmV0dXJuIEEmJkEuc3BsaXQoYApgKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe2k9by5pbmRleE9mKCI6IiksdD1vLnN1YnN0cmluZygwLGkpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLHI9by5zdWJzdHJpbmcoaSsxKS50cmltKCksISghdHx8ZVt0XSYmTmlbdF0pJiYodD09PSJzZXQtY29va2llIj9lW3RdP2VbdF0ucHVzaChyKTplW3RdPVtyXTplW3RdPWVbdF0/ZVt0XSsiLCAiK3I6cil9KSxlfTt2YXIgU3Q9U3ltYm9sKCJpbnRlcm5hbHMiKTtmdW5jdGlvbiBjQShBKXtyZXR1cm4gQSYmU3RyaW5nKEEpLnRyaW0oKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIHFBKEEpe3JldHVybiBBPT09ITF8fEE9PW51bGw/QTpCLmlzQXJyYXkoQSk/QS5tYXAocUEpOlN0cmluZyhBKX1mdW5jdGlvbiBHaShBKXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpLHQ9LyhbXlxzLDs9XSspXHMqKD86PVxzKihbXiw7XSspKT8vZyxyO2Zvcig7cj10LmV4ZWMoQSk7KWVbclsxXV09clsyXTtyZXR1cm4gZX12YXIgYmk9QT0+L15bLV9hLXpBLVowLTleYHx+LCEjJCUmJyorLl0rJC8udGVzdChBLnRyaW0oKSk7ZnVuY3Rpb24gaGUoQSxlLHQscixpKXtpZihCLmlzRnVuY3Rpb24ocikpcmV0dXJuIHIuY2FsbCh0aGlzLGUsdCk7aWYoaSYmKGU9dCksISFCLmlzU3RyaW5nKGUpKXtpZihCLmlzU3RyaW5nKHIpKXJldHVybiBlLmluZGV4T2YocikhPT0tMTtpZihCLmlzUmVnRXhwKHIpKXJldHVybiByLnRlc3QoZSl9fWZ1bmN0aW9uIExpKEEpe3JldHVybiBBLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbYS16XGRdKShcdyopL2csKGUsdCxyKT0+dC50b1VwcGVyQ2FzZSgpK3IpfWZ1bmN0aW9uIEppKEEsZSl7bGV0IHQ9Qi50b0NhbWVsQ2FzZSgiICIrZSk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKHI9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxyK3Qse3ZhbHVlOmZ1bmN0aW9uKGksSSxvKXtyZXR1cm4gdGhpc1tyXS5jYWxsKHRoaXMsZSxpLEksbyl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9dmFyIElBPWNsYXNze2NvbnN0cnVjdG9yKGUpe2UmJnRoaXMuc2V0KGUpfXNldChlLHQscil7bGV0IGk9dGhpcztmdW5jdGlvbiBJKGEsRSxzKXtsZXQgbj1jQShFKTtpZighbil0aHJvdyBuZXcgRXJyb3IoImhlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7bGV0IGc9Qi5maW5kS2V5KGksbik7KCFnfHxpW2ddPT09dm9pZCAwfHxzPT09ITB8fHM9PT12b2lkIDAmJmlbZ10hPT0hMSkmJihpW2d8fEVdPXFBKGEpKX1sZXQgbz0oYSxFKT0+Qi5mb3JFYWNoKGEsKHMsbik9PkkocyxuLEUpKTtpZihCLmlzUGxhaW5PYmplY3QoZSl8fGUgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKW8oZSx0KTtlbHNlIGlmKEIuaXNTdHJpbmcoZSkmJihlPWUudHJpbSgpKSYmIWJpKGUpKW8od3QoZSksdCk7ZWxzZSBpZihCLmlzT2JqZWN0KGUpJiZCLmlzSXRlcmFibGUoZSkpe2xldCBhPXt9LEUscztmb3IobGV0IG4gb2YgZSl7aWYoIUIuaXNBcnJheShuKSl0aHJvdyBUeXBlRXJyb3IoIk9iamVjdCBpdGVyYXRvciBtdXN0IHJldHVybiBhIGtleS12YWx1ZSBwYWlyIik7YVtzPW5bMF1dPShFPWFbc10pP0IuaXNBcnJheShFKT9bLi4uRSxuWzFdXTpbRSxuWzFdXTpuWzFdfW8oYSx0KX1lbHNlIGUhPW51bGwmJkkodCxlLHIpO3JldHVybiB0aGlzfWdldChlLHQpe2lmKGU9Y0EoZSksZSl7bGV0IHI9Qi5maW5kS2V5KHRoaXMsZSk7aWYocil7bGV0IGk9dGhpc1tyXTtpZighdClyZXR1cm4gaTtpZih0PT09ITApcmV0dXJuIEdpKGkpO2lmKEIuaXNGdW5jdGlvbih0KSlyZXR1cm4gdC5jYWxsKHRoaXMsaSxyKTtpZihCLmlzUmVnRXhwKHQpKXJldHVybiB0LmV4ZWMoaSk7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyhlLHQpe2lmKGU9Y0EoZSksZSl7bGV0IHI9Qi5maW5kS2V5KHRoaXMsZSk7cmV0dXJuISEociYmdGhpc1tyXSE9PXZvaWQgMCYmKCF0fHxoZSh0aGlzLHRoaXNbcl0scix0KSkpfXJldHVybiExfWRlbGV0ZShlLHQpe2xldCByPXRoaXMsaT0hMTtmdW5jdGlvbiBJKG8pe2lmKG89Y0Eobyksbyl7bGV0IGE9Qi5maW5kS2V5KHIsbyk7YSYmKCF0fHxoZShyLHJbYV0sYSx0KSkmJihkZWxldGUgclthXSxpPSEwKX19cmV0dXJuIEIuaXNBcnJheShlKT9lLmZvckVhY2goSSk6SShlKSxpfWNsZWFyKGUpe2xldCB0PU9iamVjdC5rZXlzKHRoaXMpLHI9dC5sZW5ndGgsaT0hMTtmb3IoO3ItLTspe2xldCBJPXRbcl07KCFlfHxoZSh0aGlzLHRoaXNbSV0sSSxlLCEwKSkmJihkZWxldGUgdGhpc1tJXSxpPSEwKX1yZXR1cm4gaX1ub3JtYWxpemUoZSl7bGV0IHQ9dGhpcyxyPXt9O3JldHVybiBCLmZvckVhY2godGhpcywoaSxJKT0+e2xldCBvPUIuZmluZEtleShyLEkpO2lmKG8pe3Rbb109cUEoaSksZGVsZXRlIHRbSV07cmV0dXJufWxldCBhPWU/TGkoSSk6U3RyaW5nKEkpLnRyaW0oKTthIT09SSYmZGVsZXRlIHRbSV0sdFthXT1xQShpKSxyW2FdPSEwfSksdGhpc31jb25jYXQoLi4uZSl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4uZSl9dG9KU09OKGUpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIEIuZm9yRWFjaCh0aGlzLChyLGkpPT57ciE9bnVsbCYmciE9PSExJiYodFtpXT1lJiZCLmlzQXJyYXkocik/ci5qb2luKCIsICIpOnIpfSksdH1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbZSx0XSk9PmUrIjogIit0KS5qb2luKGAKYCl9Z2V0U2V0Q29va2llKCl7cmV0dXJuIHRoaXMuZ2V0KCJzZXQtY29va2llIil8fFtdfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkF4aW9zSGVhZGVycyJ9c3RhdGljIGZyb20oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzP2U6bmV3IHRoaXMoZSl9c3RhdGljIGNvbmNhdChlLC4uLnQpe2xldCByPW5ldyB0aGlzKGUpO3JldHVybiB0LmZvckVhY2goaT0+ci5zZXQoaSkpLHJ9c3RhdGljIGFjY2Vzc29yKGUpe2xldCByPSh0aGlzW1N0XT10aGlzW1N0XT17YWNjZXNzb3JzOnt9fSkuYWNjZXNzb3JzLGk9dGhpcy5wcm90b3R5cGU7ZnVuY3Rpb24gSShvKXtsZXQgYT1jQShvKTtyW2FdfHwoSmkoaSxvKSxyW2FdPSEwKX1yZXR1cm4gQi5pc0FycmF5KGUpP2UuZm9yRWFjaChJKTpJKGUpLHRoaXN9fTtJQS5hY2Nlc3NvcihbIkNvbnRlbnQtVHlwZSIsIkNvbnRlbnQtTGVuZ3RoIiwiQWNjZXB0IiwiQWNjZXB0LUVuY29kaW5nIiwiVXNlci1BZ2VudCIsIkF1dGhvcml6YXRpb24iXSk7Qi5yZWR1Y2VEZXNjcmlwdG9ycyhJQS5wcm90b3R5cGUsKHt2YWx1ZTpBfSxlKT0+e2xldCB0PWVbMF0udG9VcHBlckNhc2UoKStlLnNsaWNlKDEpO3JldHVybntnZXQ6KCk9PkEsc2V0KHIpe3RoaXNbdF09cn19fSk7Qi5mcmVlemVNZXRob2RzKElBKTt2YXIgVT1JQTtmdW5jdGlvbiB1QShBLGUpe2xldCB0PXRoaXN8fGlBLHI9ZXx8dCxpPVUuZnJvbShyLmhlYWRlcnMpLEk9ci5kYXRhO3JldHVybiBCLmZvckVhY2goQSxmdW5jdGlvbihhKXtJPWEuY2FsbCh0LEksaS5ub3JtYWxpemUoKSxlP2Uuc3RhdHVzOnZvaWQgMCl9KSxpLm5vcm1hbGl6ZSgpLEl9ZnVuY3Rpb24gZkEoQSl7cmV0dXJuISEoQSYmQS5fX0NBTkNFTF9fKX1mdW5jdGlvbiBGdChBLGUsdCl7ZC5jYWxsKHRoaXMsQT8/ImNhbmNlbGVkIixkLkVSUl9DQU5DRUxFRCxlLHQpLHRoaXMubmFtZT0iQ2FuY2VsZWRFcnJvciJ9Qi5pbmhlcml0cyhGdCxkLHtfX0NBTkNFTF9fOiEwfSk7dmFyIHg9RnQ7ZnVuY3Rpb24gcEEoQSxlLHQpe2xldCByPXQuY29uZmlnLnZhbGlkYXRlU3RhdHVzOyF0LnN0YXR1c3x8IXJ8fHIodC5zdGF0dXMpP0EodCk6ZShuZXcgZCgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK3Quc3RhdHVzLFtkLkVSUl9CQURfUkVRVUVTVCxkLkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3IodC5zdGF0dXMvMTAwKS00XSx0LmNvbmZpZyx0LnJlcXVlc3QsdCkpfWZ1bmN0aW9uIHllKEEpe2xldCBlPS9eKFstK1x3XXsxLDI1fSkoOj9cL1wvfDopLy5leGVjKEEpO3JldHVybiBlJiZlWzFdfHwiIn1mdW5jdGlvbiBNaShBLGUpe0E9QXx8MTA7bGV0IHQ9bmV3IEFycmF5KEEpLHI9bmV3IEFycmF5KEEpLGk9MCxJPTAsbztyZXR1cm4gZT1lIT09dm9pZCAwP2U6MWUzLGZ1bmN0aW9uKEUpe2xldCBzPURhdGUubm93KCksbj1yW0ldO298fChvPXMpLHRbaV09RSxyW2ldPXM7bGV0IGc9SSx1PTA7Zm9yKDtnIT09aTspdSs9dFtnKytdLGc9ZyVBO2lmKGk9KGkrMSklQSxpPT09SSYmKEk9KEkrMSklQSkscy1vPGUpcmV0dXJuO2xldCBDPW4mJnMtbjtyZXR1cm4gQz9NYXRoLnJvdW5kKHUqMWUzL0MpOnZvaWQgMH19dmFyIFJ0PU1pO2Z1bmN0aW9uIEhpKEEsZSl7bGV0IHQ9MCxyPTFlMy9lLGksSSxvPShzLG49RGF0ZS5ub3coKSk9Pnt0PW4saT1udWxsLEkmJihjbGVhclRpbWVvdXQoSSksST1udWxsKSxBKC4uLnMpfTtyZXR1cm5bKC4uLnMpPT57bGV0IG49RGF0ZS5ub3coKSxnPW4tdDtnPj1yP28ocyxuKTooaT1zLEl8fChJPXNldFRpbWVvdXQoKCk9PntJPW51bGwsbyhpKX0sci1nKSkpfSwoKT0+aSYmbyhpKV19dmFyIGt0PUhpO3ZhciBvQT0oQSxlLHQ9Myk9PntsZXQgcj0wLGk9UnQoNTAsMjUwKTtyZXR1cm4ga3QoST0+e2xldCBvPUkubG9hZGVkLGE9SS5sZW5ndGhDb21wdXRhYmxlP0kudG90YWw6dm9pZCAwLEU9by1yLHM9aShFKSxuPW88PWE7cj1vO2xldCBnPXtsb2FkZWQ6byx0b3RhbDphLHByb2dyZXNzOmE/by9hOnZvaWQgMCxieXRlczpFLHJhdGU6c3x8dm9pZCAwLGVzdGltYXRlZDpzJiZhJiZuPyhhLW8pL3M6dm9pZCAwLGV2ZW50OkksbGVuZ3RoQ29tcHV0YWJsZTphIT1udWxsLFtlPyJkb3dubG9hZCI6InVwbG9hZCJdOiEwfTtBKGcpfSx0KX0sRGU9KEEsZSk9PntsZXQgdD1BIT1udWxsO3JldHVybltyPT5lWzBdKHtsZW5ndGhDb21wdXRhYmxlOnQsdG90YWw6QSxsb2FkZWQ6cn0pLGVbMV1dfSx3ZT1BPT4oLi4uZSk9PkIuYXNhcCgoKT0+QSguLi5lKSk7dmFyIFV0PVMuaGFzU3RhbmRhcmRCcm93c2VyRW52PygoQSxlKT0+dD0+KHQ9bmV3IFVSTCh0LFMub3JpZ2luKSxBLnByb3RvY29sPT09dC5wcm90b2NvbCYmQS5ob3N0PT09dC5ob3N0JiYoZXx8QS5wb3J0PT09dC5wb3J0KSkpKG5ldyBVUkwoUy5vcmlnaW4pLFMubmF2aWdhdG9yJiYvKG1zaWV8dHJpZGVudCkvaS50ZXN0KFMubmF2aWdhdG9yLnVzZXJBZ2VudCkpOigpPT4hMDt2YXIgTnQ9Uy5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/e3dyaXRlKEEsZSx0LHIsaSxJKXtsZXQgbz1bQSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGUpXTtCLmlzTnVtYmVyKHQpJiZvLnB1c2goImV4cGlyZXM9IituZXcgRGF0ZSh0KS50b0dNVFN0cmluZygpKSxCLmlzU3RyaW5nKHIpJiZvLnB1c2goInBhdGg9IityKSxCLmlzU3RyaW5nKGkpJiZvLnB1c2goImRvbWFpbj0iK2kpLEk9PT0hMCYmby5wdXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9by5qb2luKCI7ICIpfSxyZWFkKEEpe2xldCBlPWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxzKikoIitBKyIpPShbXjtdKikiKSk7cmV0dXJuIGU/ZGVjb2RlVVJJQ29tcG9uZW50KGVbM10pOm51bGx9LHJlbW92ZShBKXt0aGlzLndyaXRlKEEsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGUoKXt9LHJlYWQoKXtyZXR1cm4gbnVsbH0scmVtb3ZlKCl7fX07ZnVuY3Rpb24gU2UoQSl7cmV0dXJuL14oW2Etel1bYS16XGQrXC0uXSo6KT9cL1wvL2kudGVzdChBKX1mdW5jdGlvbiBGZShBLGUpe3JldHVybiBlP0EucmVwbGFjZSgvXC8/XC8kLywiIikrIi8iK2UucmVwbGFjZSgvXlwvKy8sIiIpOkF9ZnVuY3Rpb24gZEEoQSxlLHQpe2xldCByPSFTZShlKTtyZXR1cm4gQSYmKHJ8fHQ9PSExKT9GZShBLGUpOmV9dmFyIEd0PUE9PkEgaW5zdGFuY2VvZiBVP3suLi5BfTpBO2Z1bmN0aW9uIFkoQSxlKXtlPWV8fHt9O2xldCB0PXt9O2Z1bmN0aW9uIHIocyxuLGcsdSl7cmV0dXJuIEIuaXNQbGFpbk9iamVjdChzKSYmQi5pc1BsYWluT2JqZWN0KG4pP0IubWVyZ2UuY2FsbCh7Y2FzZWxlc3M6dX0scyxuKTpCLmlzUGxhaW5PYmplY3Qobik/Qi5tZXJnZSh7fSxuKTpCLmlzQXJyYXkobik/bi5zbGljZSgpOm59ZnVuY3Rpb24gaShzLG4sZyx1KXtpZihCLmlzVW5kZWZpbmVkKG4pKXtpZighQi5pc1VuZGVmaW5lZChzKSlyZXR1cm4gcih2b2lkIDAscyxnLHUpfWVsc2UgcmV0dXJuIHIocyxuLGcsdSl9ZnVuY3Rpb24gSShzLG4pe2lmKCFCLmlzVW5kZWZpbmVkKG4pKXJldHVybiByKHZvaWQgMCxuKX1mdW5jdGlvbiBvKHMsbil7aWYoQi5pc1VuZGVmaW5lZChuKSl7aWYoIUIuaXNVbmRlZmluZWQocykpcmV0dXJuIHIodm9pZCAwLHMpfWVsc2UgcmV0dXJuIHIodm9pZCAwLG4pfWZ1bmN0aW9uIGEocyxuLGcpe2lmKGcgaW4gZSlyZXR1cm4gcihzLG4pO2lmKGcgaW4gQSlyZXR1cm4gcih2b2lkIDAscyl9bGV0IEU9e3VybDpJLG1ldGhvZDpJLGRhdGE6SSxiYXNlVVJMOm8sdHJhbnNmb3JtUmVxdWVzdDpvLHRyYW5zZm9ybVJlc3BvbnNlOm8scGFyYW1zU2VyaWFsaXplcjpvLHRpbWVvdXQ6byx0aW1lb3V0TWVzc2FnZTpvLHdpdGhDcmVkZW50aWFsczpvLHdpdGhYU1JGVG9rZW46byxhZGFwdGVyOm8scmVzcG9uc2VUeXBlOm8seHNyZkNvb2tpZU5hbWU6byx4c3JmSGVhZGVyTmFtZTpvLG9uVXBsb2FkUHJvZ3Jlc3M6byxvbkRvd25sb2FkUHJvZ3Jlc3M6byxkZWNvbXByZXNzOm8sbWF4Q29udGVudExlbmd0aDpvLG1heEJvZHlMZW5ndGg6byxiZWZvcmVSZWRpcmVjdDpvLHRyYW5zcG9ydDpvLGh0dHBBZ2VudDpvLGh0dHBzQWdlbnQ6byxjYW5jZWxUb2tlbjpvLHNvY2tldFBhdGg6byxyZXNwb25zZUVuY29kaW5nOm8sdmFsaWRhdGVTdGF0dXM6YSxoZWFkZXJzOihzLG4sZyk9PmkoR3QocyksR3QobiksZywhMCl9O3JldHVybiBCLmZvckVhY2goT2JqZWN0LmtleXMoey4uLkEsLi4uZX0pLGZ1bmN0aW9uKG4pe2xldCBnPUVbbl18fGksdT1nKEFbbl0sZVtuXSxuKTtCLmlzVW5kZWZpbmVkKHUpJiZnIT09YXx8KHRbbl09dSl9KSx0fXZhciBQQT1BPT57bGV0IGU9WSh7fSxBKSx7ZGF0YTp0LHdpdGhYU1JGVG9rZW46cix4c3JmSGVhZGVyTmFtZTppLHhzcmZDb29raWVOYW1lOkksaGVhZGVyczpvLGF1dGg6YX09ZTtpZihlLmhlYWRlcnM9bz1VLmZyb20obyksZS51cmw9bEEoZEEoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMpLEEucGFyYW1zLEEucGFyYW1zU2VyaWFsaXplciksYSYmby5zZXQoIkF1dGhvcml6YXRpb24iLCJCYXNpYyAiK2J0b2EoKGEudXNlcm5hbWV8fCIiKSsiOiIrKGEucGFzc3dvcmQ/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KGEucGFzc3dvcmQpKToiIikpKSxCLmlzRm9ybURhdGEodCkpe2lmKFMuaGFzU3RhbmRhcmRCcm93c2VyRW52fHxTLmhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudilvLnNldENvbnRlbnRUeXBlKHZvaWQgMCk7ZWxzZSBpZihCLmlzRnVuY3Rpb24odC5nZXRIZWFkZXJzKSl7bGV0IEU9dC5nZXRIZWFkZXJzKCkscz1bImNvbnRlbnQtdHlwZSIsImNvbnRlbnQtbGVuZ3RoIl07T2JqZWN0LmVudHJpZXMoRSkuZm9yRWFjaCgoW24sZ10pPT57cy5pbmNsdWRlcyhuLnRvTG93ZXJDYXNlKCkpJiZvLnNldChuLGcpfSl9fWlmKFMuaGFzU3RhbmRhcmRCcm93c2VyRW52JiYociYmQi5pc0Z1bmN0aW9uKHIpJiYocj1yKGUpKSxyfHxyIT09ITEmJlV0KGUudXJsKSkpe2xldCBFPWkmJkkmJk50LnJlYWQoSSk7RSYmby5zZXQoaSxFKX1yZXR1cm4gZX07dmFyIFlpPXR5cGVvZiBYTUxIdHRwUmVxdWVzdDwidSIsYnQ9WWkmJmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0LHIpe2xldCBpPVBBKEEpLEk9aS5kYXRhLG89VS5mcm9tKGkuaGVhZGVycykubm9ybWFsaXplKCkse3Jlc3BvbnNlVHlwZTphLG9uVXBsb2FkUHJvZ3Jlc3M6RSxvbkRvd25sb2FkUHJvZ3Jlc3M6c309aSxuLGcsdSxDLFE7ZnVuY3Rpb24gbCgpe0MmJkMoKSxRJiZRKCksaS5jYW5jZWxUb2tlbiYmaS5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShuKSxpLnNpZ25hbCYmaS5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG4pfWxldCBjPW5ldyBYTUxIdHRwUmVxdWVzdDtjLm9wZW4oaS5tZXRob2QudG9VcHBlckNhc2UoKSxpLnVybCwhMCksYy50aW1lb3V0PWkudGltZW91dDtmdW5jdGlvbiBwKCl7aWYoIWMpcmV0dXJuO2xldCBoPVUuZnJvbSgiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIGMmJmMuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLE09e2RhdGE6IWF8fGE9PT0idGV4dCJ8fGE9PT0ianNvbiI/Yy5yZXNwb25zZVRleHQ6Yy5yZXNwb25zZSxzdGF0dXM6Yy5zdGF0dXMsc3RhdHVzVGV4dDpjLnN0YXR1c1RleHQsaGVhZGVyczpoLGNvbmZpZzpBLHJlcXVlc3Q6Y307cEEoZnVuY3Rpb24oSil7dChKKSxsKCl9LGZ1bmN0aW9uKEope3IoSiksbCgpfSxNKSxjPW51bGx9Im9ubG9hZGVuZCJpbiBjP2Mub25sb2FkZW5kPXA6Yy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXshY3x8Yy5yZWFkeVN0YXRlIT09NHx8Yy5zdGF0dXM9PT0wJiYhKGMucmVzcG9uc2VVUkwmJmMucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKT09PTApfHxzZXRUaW1lb3V0KHApfSxjLm9uYWJvcnQ9ZnVuY3Rpb24oKXtjJiYocihuZXcgZCgiUmVxdWVzdCBhYm9ydGVkIixkLkVDT05OQUJPUlRFRCxBLGMpKSxjPW51bGwpfSxjLm9uZXJyb3I9ZnVuY3Rpb24oTil7bGV0IE09TiYmTi5tZXNzYWdlP04ubWVzc2FnZToiTmV0d29yayBFcnJvciIsWj1uZXcgZChNLGQuRVJSX05FVFdPUkssQSxjKTtaLmV2ZW50PU58fG51bGwscihaKSxjPW51bGx9LGMub250aW1lb3V0PWZ1bmN0aW9uKCl7bGV0IE49aS50aW1lb3V0PyJ0aW1lb3V0IG9mICIraS50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiLE09aS50cmFuc2l0aW9uYWx8fE9BO2kudGltZW91dEVycm9yTWVzc2FnZSYmKE49aS50aW1lb3V0RXJyb3JNZXNzYWdlKSxyKG5ldyBkKE4sTS5jbGFyaWZ5VGltZW91dEVycm9yP2QuRVRJTUVET1VUOmQuRUNPTk5BQk9SVEVELEEsYykpLGM9bnVsbH0sST09PXZvaWQgMCYmby5zZXRDb250ZW50VHlwZShudWxsKSwic2V0UmVxdWVzdEhlYWRlciJpbiBjJiZCLmZvckVhY2goby50b0pTT04oKSxmdW5jdGlvbihOLE0pe2Muc2V0UmVxdWVzdEhlYWRlcihNLE4pfSksQi5pc1VuZGVmaW5lZChpLndpdGhDcmVkZW50aWFscyl8fChjLndpdGhDcmVkZW50aWFscz0hIWkud2l0aENyZWRlbnRpYWxzKSxhJiZhIT09Impzb24iJiYoYy5yZXNwb25zZVR5cGU9aS5yZXNwb25zZVR5cGUpLHMmJihbdSxRXT1vQShzLCEwKSxjLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIix1KSksRSYmYy51cGxvYWQmJihbZyxDXT1vQShFKSxjLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZyksYy51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVuZCIsQykpLChpLmNhbmNlbFRva2VufHxpLnNpZ25hbCkmJihuPWg9PntjJiYocighaHx8aC50eXBlP25ldyB4KG51bGwsQSxjKTpoKSxjLmFib3J0KCksYz1udWxsKX0saS5jYW5jZWxUb2tlbiYmaS5jYW5jZWxUb2tlbi5zdWJzY3JpYmUobiksaS5zaWduYWwmJihpLnNpZ25hbC5hYm9ydGVkP24oKTppLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbikpKTtsZXQgbT15ZShpLnVybCk7aWYobSYmUy5wcm90b2NvbHMuaW5kZXhPZihtKT09PS0xKXtyKG5ldyBkKCJVbnN1cHBvcnRlZCBwcm90b2NvbCAiK20rIjoiLGQuRVJSX0JBRF9SRVFVRVNULEEpKTtyZXR1cm59Yy5zZW5kKEl8fG51bGwpfSl9O3ZhciBUaT0oQSxlKT0+e2xldHtsZW5ndGg6dH09QT1BP0EuZmlsdGVyKEJvb2xlYW4pOltdO2lmKGV8fHQpe2xldCByPW5ldyBBYm9ydENvbnRyb2xsZXIsaSxJPWZ1bmN0aW9uKHMpe2lmKCFpKXtpPSEwLGEoKTtsZXQgbj1zIGluc3RhbmNlb2YgRXJyb3I/czp0aGlzLnJlYXNvbjtyLmFib3J0KG4gaW5zdGFuY2VvZiBkP246bmV3IHgobiBpbnN0YW5jZW9mIEVycm9yP24ubWVzc2FnZTpuKSl9fSxvPWUmJnNldFRpbWVvdXQoKCk9PntvPW51bGwsSShuZXcgZChgdGltZW91dCAke2V9IG9mIG1zIGV4Y2VlZGVkYCxkLkVUSU1FRE9VVCkpfSxlKSxhPSgpPT57QSYmKG8mJmNsZWFyVGltZW91dChvKSxvPW51bGwsQS5mb3JFYWNoKHM9PntzLnVuc3Vic2NyaWJlP3MudW5zdWJzY3JpYmUoSSk6cy5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsSSl9KSxBPW51bGwpfTtBLmZvckVhY2gocz0+cy5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsSSkpO2xldHtzaWduYWw6RX09cjtyZXR1cm4gRS51bnN1YnNjcmliZT0oKT0+Qi5hc2FwKGEpLEV9fSxMdD1UaTt2YXIgT2k9ZnVuY3Rpb24qKEEsZSl7bGV0IHQ9QS5ieXRlTGVuZ3RoO2lmKCFlfHx0PGUpe3lpZWxkIEE7cmV0dXJufWxldCByPTAsaTtmb3IoO3I8dDspaT1yK2UseWllbGQgQS5zbGljZShyLGkpLHI9aX0seGk9YXN5bmMgZnVuY3Rpb24qKEEsZSl7Zm9yIGF3YWl0KGxldCB0IG9mIHFpKEEpKXlpZWxkKk9pKHQsZSl9LHFpPWFzeW5jIGZ1bmN0aW9uKihBKXtpZihBW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl7eWllbGQqQTtyZXR1cm59bGV0IGU9QS5nZXRSZWFkZXIoKTt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTp0LHZhbHVlOnJ9PWF3YWl0IGUucmVhZCgpO2lmKHQpYnJlYWs7eWllbGQgcn19ZmluYWxseXthd2FpdCBlLmNhbmNlbCgpfX0sUmU9KEEsZSx0LHIpPT57bGV0IGk9eGkoQSxlKSxJPTAsbyxhPUU9PntvfHwobz0hMCxyJiZyKEUpKX07cmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7YXN5bmMgcHVsbChFKXt0cnl7bGV0e2RvbmU6cyx2YWx1ZTpufT1hd2FpdCBpLm5leHQoKTtpZihzKXthKCksRS5jbG9zZSgpO3JldHVybn1sZXQgZz1uLmJ5dGVMZW5ndGg7aWYodCl7bGV0IHU9SSs9Zzt0KHUpfUUuZW5xdWV1ZShuZXcgVWludDhBcnJheShuKSl9Y2F0Y2gocyl7dGhyb3cgYShzKSxzfX0sY2FuY2VsKEUpe3JldHVybiBhKEUpLGkucmV0dXJuKCl9fSx7aGlnaFdhdGVyTWFyazoyfSl9O3ZhciBKdD02NCoxMDI0LHtpc0Z1bmN0aW9uOktBfT1CLFR0PSgoe2ZldGNoOkEsUmVxdWVzdDplLFJlc3BvbnNlOnR9KT0+KHtmZXRjaDpBLFJlcXVlc3Q6ZSxSZXNwb25zZTp0fSkpKEIuZ2xvYmFsKSx7UmVhZGFibGVTdHJlYW06TXQsVGV4dEVuY29kZXI6SHR9PUIuZ2xvYmFsLFl0PShBLC4uLmUpPT57dHJ5e3JldHVybiEhQSguLi5lKX1jYXRjaHtyZXR1cm4hMX19LFBpPUE9PntsZXR7ZmV0Y2g6ZSxSZXF1ZXN0OnQsUmVzcG9uc2U6cn09T2JqZWN0LmFzc2lnbih7fSxUdCxBKSxpPUtBKGUpLEk9S0EodCksbz1LQShyKTtpZighaSlyZXR1cm4hMTtsZXQgYT1pJiZLQShNdCksRT1pJiYodHlwZW9mIEh0PT0iZnVuY3Rpb24iPyhRPT5sPT5RLmVuY29kZShsKSkobmV3IEh0KTphc3luYyBRPT5uZXcgVWludDhBcnJheShhd2FpdCBuZXcgdChRKS5hcnJheUJ1ZmZlcigpKSkscz1JJiZhJiZZdCgoKT0+e2xldCBRPSExLGw9bmV3IHQoUy5vcmlnaW4se2JvZHk6bmV3IE10LG1ldGhvZDoiUE9TVCIsZ2V0IGR1cGxleCgpe3JldHVybiBRPSEwLCJoYWxmIn19KS5oZWFkZXJzLmhhcygiQ29udGVudC1UeXBlIik7cmV0dXJuIFEmJiFsfSksbj1vJiZhJiZZdCgoKT0+Qi5pc1JlYWRhYmxlU3RyZWFtKG5ldyByKCIiKS5ib2R5KSksZz17c3RyZWFtOm4mJihRPT5RLmJvZHkpfTtpJiZbInRleHQiLCJhcnJheUJ1ZmZlciIsImJsb2IiLCJmb3JtRGF0YSIsInN0cmVhbSJdLmZvckVhY2goUT0+eyFnW1FdJiYoZ1tRXT0obCxjKT0+e2xldCBwPWwmJmxbUV07aWYocClyZXR1cm4gcC5jYWxsKGwpO3Rocm93IG5ldyBkKGBSZXNwb25zZSB0eXBlICcke1F9JyBpcyBub3Qgc3VwcG9ydGVkYCxkLkVSUl9OT1RfU1VQUE9SVCxjKX0pfSk7bGV0IHU9YXN5bmMgUT0+e2lmKFE9PW51bGwpcmV0dXJuIDA7aWYoQi5pc0Jsb2IoUSkpcmV0dXJuIFEuc2l6ZTtpZihCLmlzU3BlY0NvbXBsaWFudEZvcm0oUSkpcmV0dXJuKGF3YWl0IG5ldyB0KFMub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6UX0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYoQi5pc0FycmF5QnVmZmVyVmlldyhRKXx8Qi5pc0FycmF5QnVmZmVyKFEpKXJldHVybiBRLmJ5dGVMZW5ndGg7aWYoQi5pc1VSTFNlYXJjaFBhcmFtcyhRKSYmKFE9USsiIiksQi5pc1N0cmluZyhRKSlyZXR1cm4oYXdhaXQgRShRKSkuYnl0ZUxlbmd0aH0sQz1hc3luYyhRLGwpPT57bGV0IGM9Qi50b0Zpbml0ZU51bWJlcihRLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIGM/P3UobCl9O3JldHVybiBhc3luYyBRPT57bGV0e3VybDpsLG1ldGhvZDpjLGRhdGE6cCxzaWduYWw6bSxjYW5jZWxUb2tlbjpoLHRpbWVvdXQ6TixvbkRvd25sb2FkUHJvZ3Jlc3M6TSxvblVwbG9hZFByb2dyZXNzOloscmVzcG9uc2VUeXBlOkosaGVhZGVyczokQSx3aXRoQ3JlZGVudGlhbHM6U0E9InNhbWUtb3JpZ2luIixmZXRjaE9wdGlvbnM6cWV9PVBBKFEpO0o9Sj8oSisiIikudG9Mb3dlckNhc2UoKToidGV4dCI7bGV0IEZBPUx0KFttLGgmJmgudG9BYm9ydFNpZ25hbCgpXSxOKSxzQT1udWxsLFY9RkEmJkZBLnVuc3Vic2NyaWJlJiYoKCk9PntGQS51bnN1YnNjcmliZSgpfSksUGU7dHJ5e2lmKFomJnMmJmMhPT0iZ2V0IiYmYyE9PSJoZWFkIiYmKFBlPWF3YWl0IEMoJEEscCkpIT09MCl7bGV0IFc9bmV3IHQobCx7bWV0aG9kOiJQT1NUIixib2R5OnAsZHVwbGV4OiJoYWxmIn0pLCQ7aWYoQi5pc0Zvcm1EYXRhKHApJiYoJD1XLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKSkmJiRBLnNldENvbnRlbnRUeXBlKCQpLFcuYm9keSl7bGV0W0FlLFJBXT1EZShQZSxvQSh3ZShaKSkpO3A9UmUoVy5ib2R5LEp0LEFlLFJBKX19Qi5pc1N0cmluZyhTQSl8fChTQT1TQT8iaW5jbHVkZSI6Im9taXQiKTtsZXQgVD1JJiYiY3JlZGVudGlhbHMiaW4gdC5wcm90b3R5cGUsS2U9ey4uLnFlLHNpZ25hbDpGQSxtZXRob2Q6Yy50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6JEEubm9ybWFsaXplKCkudG9KU09OKCksYm9keTpwLGR1cGxleDoiaGFsZiIsY3JlZGVudGlhbHM6VD9TQTp2b2lkIDB9O3NBPUkmJm5ldyB0KGwsS2UpO2xldCBLPWF3YWl0KEk/ZShzQSxxZSk6ZShsLEtlKSksV2U9biYmKEo9PT0ic3RyZWFtInx8Sj09PSJyZXNwb25zZSIpO2lmKG4mJihNfHxXZSYmVikpe2xldCBXPXt9O1sic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXS5mb3JFYWNoKGplPT57V1tqZV09S1tqZV19KTtsZXQgJD1CLnRvRmluaXRlTnVtYmVyKEsuaGVhZGVycy5nZXQoImNvbnRlbnQtbGVuZ3RoIikpLFtBZSxSQV09TSYmRGUoJCxvQSh3ZShNKSwhMCkpfHxbXTtLPW5ldyByKFJlKEsuYm9keSxKdCxBZSwoKT0+e1JBJiZSQSgpLFYmJlYoKX0pLFcpfUo9Snx8InRleHQiO2xldCBFcj1hd2FpdCBnW0IuZmluZEtleShnLEopfHwidGV4dCJdKEssUSk7cmV0dXJuIVdlJiZWJiZWKCksYXdhaXQgbmV3IFByb21pc2UoKFcsJCk9PntwQShXLCQse2RhdGE6RXIsaGVhZGVyczpVLmZyb20oSy5oZWFkZXJzKSxzdGF0dXM6Sy5zdGF0dXMsc3RhdHVzVGV4dDpLLnN0YXR1c1RleHQsY29uZmlnOlEscmVxdWVzdDpzQX0pfSl9Y2F0Y2goVCl7dGhyb3cgViYmVigpLFQmJlQubmFtZT09PSJUeXBlRXJyb3IiJiYvTG9hZCBmYWlsZWR8ZmV0Y2gvaS50ZXN0KFQubWVzc2FnZSk/T2JqZWN0LmFzc2lnbihuZXcgZCgiTmV0d29yayBFcnJvciIsZC5FUlJfTkVUV09SSyxRLHNBKSx7Y2F1c2U6VC5jYXVzZXx8VH0pOmQuZnJvbShULFQmJlQuY29kZSxRLHNBKX19fSxLaT1uZXcgTWFwLGtlPUE9PntsZXQgZT1CLm1lcmdlLmNhbGwoe3NraXBVbmRlZmluZWQ6ITB9LFR0LEE/QS5lbnY6bnVsbCkse2ZldGNoOnQsUmVxdWVzdDpyLFJlc3BvbnNlOml9PWUsST1bcixpLHRdLG89SS5sZW5ndGgsYT1vLEUscyxuPUtpO2Zvcig7YS0tOylFPUlbYV0scz1uLmdldChFKSxzPT09dm9pZCAwJiZuLnNldChFLHM9YT9uZXcgTWFwOlBpKGUpKSxuPXM7cmV0dXJuIHN9LGhnPWtlKCk7dmFyIFVlPXtodHRwOllBLHhocjpidCxmZXRjaDp7Z2V0OmtlfX07Qi5mb3JFYWNoKFVlLChBLGUpPT57aWYoQSl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJuYW1lIix7dmFsdWU6ZX0pfWNhdGNoe31PYmplY3QuZGVmaW5lUHJvcGVydHkoQSwiYWRhcHRlck5hbWUiLHt2YWx1ZTplfSl9fSk7dmFyIE90PUE9PmAtICR7QX1gLGppPUE9PkIuaXNGdW5jdGlvbihBKXx8QT09PW51bGx8fEE9PT0hMSxXQT17Z2V0QWRhcHRlcjooQSxlKT0+e0E9Qi5pc0FycmF5KEEpP0E6W0FdO2xldHtsZW5ndGg6dH09QSxyLGksST17fTtmb3IobGV0IG89MDtvPHQ7bysrKXtyPUFbb107bGV0IGE7aWYoaT1yLCFqaShyKSYmKGk9VWVbKGE9U3RyaW5nKHIpKS50b0xvd2VyQ2FzZSgpXSxpPT09dm9pZCAwKSl0aHJvdyBuZXcgZChgVW5rbm93biBhZGFwdGVyICcke2F9J2ApO2lmKGkmJihCLmlzRnVuY3Rpb24oaSl8fChpPWkuZ2V0KGUpKSkpYnJlYWs7SVthfHwiIyIrb109aX1pZighaSl7bGV0IG89T2JqZWN0LmVudHJpZXMoSSkubWFwKChbRSxzXSk9PmBhZGFwdGVyICR7RX0gYCsocz09PSExPyJpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBlbnZpcm9ubWVudCI6ImlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJ1aWxkIikpLGE9dD9vLmxlbmd0aD4xP2BzaW5jZSA6CmArby5tYXAoT3QpLmpvaW4oYApgKToiICIrT3Qob1swXSk6ImFzIG5vIGFkYXB0ZXIgc3BlY2lmaWVkIjt0aHJvdyBuZXcgZCgiVGhlcmUgaXMgbm8gc3VpdGFibGUgYWRhcHRlciB0byBkaXNwYXRjaCB0aGUgcmVxdWVzdCAiK2EsIkVSUl9OT1RfU1VQUE9SVCIpfXJldHVybiBpfSxhZGFwdGVyczpVZX07ZnVuY3Rpb24gTmUoQSl7aWYoQS5jYW5jZWxUb2tlbiYmQS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksQS5zaWduYWwmJkEuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IHgobnVsbCxBKX1mdW5jdGlvbiBqQShBKXtyZXR1cm4gTmUoQSksQS5oZWFkZXJzPVUuZnJvbShBLmhlYWRlcnMpLEEuZGF0YT11QS5jYWxsKEEsQS50cmFuc2Zvcm1SZXF1ZXN0KSxbInBvc3QiLCJwdXQiLCJwYXRjaCJdLmluZGV4T2YoQS5tZXRob2QpIT09LTEmJkEuaGVhZGVycy5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwhMSksV0EuZ2V0QWRhcHRlcihBLmFkYXB0ZXJ8fGlBLmFkYXB0ZXIsQSkoQSkudGhlbihmdW5jdGlvbihyKXtyZXR1cm4gTmUoQSksci5kYXRhPXVBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLHIpLHIuaGVhZGVycz1VLmZyb20oci5oZWFkZXJzKSxyfSxmdW5jdGlvbihyKXtyZXR1cm4gZkEocil8fChOZShBKSxyJiZyLnJlc3BvbnNlJiYoci5yZXNwb25zZS5kYXRhPXVBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLHIucmVzcG9uc2UpLHIucmVzcG9uc2UuaGVhZGVycz1VLmZyb20oci5yZXNwb25zZS5oZWFkZXJzKSkpLFByb21pc2UucmVqZWN0KHIpfSl9dmFyIHZBPSIxLjEyLjAiO3ZhciBaQT17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKEEsZSk9PntaQVtBXT1mdW5jdGlvbihyKXtyZXR1cm4gdHlwZW9mIHI9PT1BfHwiYSIrKGU8MT8ibiAiOiIgIikrQX19KTt2YXIgeHQ9e307WkEudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKGUsdCxyKXtmdW5jdGlvbiBpKEksbyl7cmV0dXJuIltBeGlvcyB2Iit2QSsiXSBUcmFuc2l0aW9uYWwgb3B0aW9uICciK0krIiciK28rKHI/Ii4gIityOiIiKX1yZXR1cm4oSSxvLGEpPT57aWYoZT09PSExKXRocm93IG5ldyBkKGkobywiIGhhcyBiZWVuIHJlbW92ZWQiKyh0PyIgaW4gIit0OiIiKSksZC5FUlJfREVQUkVDQVRFRCk7cmV0dXJuIHQmJiF4dFtvXSYmKHh0W29dPSEwLGNvbnNvbGUud2FybihpKG8sIiBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYiK3QrIiBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZWFyIGZ1dHVyZSIpKSksZT9lKEksbyxhKTohMH19O1pBLnNwZWxsaW5nPWZ1bmN0aW9uKGUpe3JldHVybih0LHIpPT4oY29uc29sZS53YXJuKGAke3J9IGlzIGxpa2VseSBhIG1pc3NwZWxsaW5nIG9mICR7ZX1gKSwhMCl9O2Z1bmN0aW9uIHZpKEEsZSx0KXtpZih0eXBlb2YgQSE9Im9iamVjdCIpdGhyb3cgbmV3IGQoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiLGQuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2xldCByPU9iamVjdC5rZXlzKEEpLGk9ci5sZW5ndGg7Zm9yKDtpLS0gPjA7KXtsZXQgST1yW2ldLG89ZVtJXTtpZihvKXtsZXQgYT1BW0ldLEU9YT09PXZvaWQgMHx8byhhLEksQSk7aWYoRSE9PSEwKXRocm93IG5ldyBkKCJvcHRpb24gIitJKyIgbXVzdCBiZSAiK0UsZC5FUlJfQkFEX09QVElPTl9WQUxVRSk7Y29udGludWV9aWYodCE9PSEwKXRocm93IG5ldyBkKCJVbmtub3duIG9wdGlvbiAiK0ksZC5FUlJfQkFEX09QVElPTil9fXZhciBtQT17YXNzZXJ0T3B0aW9uczp2aSx2YWxpZGF0b3JzOlpBfTt2YXIgcT1tQS52YWxpZGF0b3JzLG5BPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuZGVmYXVsdHM9ZXx8e30sdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IGNlLHJlc3BvbnNlOm5ldyBjZX19YXN5bmMgcmVxdWVzdChlLHQpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fcmVxdWVzdChlLHQpfWNhdGNoKHIpe2lmKHIgaW5zdGFuY2VvZiBFcnJvcil7bGV0IGk9e307RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UoaSk6aT1uZXcgRXJyb3I7bGV0IEk9aS5zdGFjaz9pLnN0YWNrLnJlcGxhY2UoL14uK1xuLywiIik6IiI7dHJ5e3Iuc3RhY2s/SSYmIVN0cmluZyhyLnN0YWNrKS5lbmRzV2l0aChJLnJlcGxhY2UoL14uK1xuLitcbi8sIiIpKSYmKHIuc3RhY2srPWAKYCtJKTpyLnN0YWNrPUl9Y2F0Y2h7fX10aHJvdyByfX1fcmVxdWVzdChlLHQpe3R5cGVvZiBlPT0ic3RyaW5nIj8odD10fHx7fSx0LnVybD1lKTp0PWV8fHt9LHQ9WSh0aGlzLmRlZmF1bHRzLHQpO2xldHt0cmFuc2l0aW9uYWw6cixwYXJhbXNTZXJpYWxpemVyOmksaGVhZGVyczpJfT10O3IhPT12b2lkIDAmJm1BLmFzc2VydE9wdGlvbnMocix7c2lsZW50SlNPTlBhcnNpbmc6cS50cmFuc2l0aW9uYWwocS5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzpxLnRyYW5zaXRpb25hbChxLmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6cS50cmFuc2l0aW9uYWwocS5ib29sZWFuKX0sITEpLGkhPW51bGwmJihCLmlzRnVuY3Rpb24oaSk/dC5wYXJhbXNTZXJpYWxpemVyPXtzZXJpYWxpemU6aX06bUEuYXNzZXJ0T3B0aW9ucyhpLHtlbmNvZGU6cS5mdW5jdGlvbixzZXJpYWxpemU6cS5mdW5jdGlvbn0sITApKSx0LmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwfHwodGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMD90LmFsbG93QWJzb2x1dGVVcmxzPXRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHM6dC5hbGxvd0Fic29sdXRlVXJscz0hMCksbUEuYXNzZXJ0T3B0aW9ucyh0LHtiYXNlVXJsOnEuc3BlbGxpbmcoImJhc2VVUkwiKSx3aXRoWHNyZlRva2VuOnEuc3BlbGxpbmcoIndpdGhYU1JGVG9rZW4iKX0sITApLHQubWV0aG9kPSh0Lm1ldGhvZHx8dGhpcy5kZWZhdWx0cy5tZXRob2R8fCJnZXQiKS50b0xvd2VyQ2FzZSgpO2xldCBvPUkmJkIubWVyZ2UoSS5jb21tb24sSVt0Lm1ldGhvZF0pO0kmJkIuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giLCJjb21tb24iXSxRPT57ZGVsZXRlIElbUV19KSx0LmhlYWRlcnM9VS5jb25jYXQobyxJKTtsZXQgYT1bXSxFPSEwO3RoaXMuaW50ZXJjZXB0b3JzLnJlcXVlc3QuZm9yRWFjaChmdW5jdGlvbihsKXt0eXBlb2YgbC5ydW5XaGVuPT0iZnVuY3Rpb24iJiZsLnJ1bldoZW4odCk9PT0hMXx8KEU9RSYmbC5zeW5jaHJvbm91cyxhLnVuc2hpZnQobC5mdWxmaWxsZWQsbC5yZWplY3RlZCkpfSk7bGV0IHM9W107dGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaChmdW5jdGlvbihsKXtzLnB1c2gobC5mdWxmaWxsZWQsbC5yZWplY3RlZCl9KTtsZXQgbixnPTAsdTtpZighRSl7bGV0IFE9W2pBLmJpbmQodGhpcyksdm9pZCAwXTtmb3IoUS51bnNoaWZ0KC4uLmEpLFEucHVzaCguLi5zKSx1PVEubGVuZ3RoLG49UHJvbWlzZS5yZXNvbHZlKHQpO2c8dTspbj1uLnRoZW4oUVtnKytdLFFbZysrXSk7cmV0dXJuIG59dT1hLmxlbmd0aDtsZXQgQz10O2ZvcihnPTA7Zzx1Oyl7bGV0IFE9YVtnKytdLGw9YVtnKytdO3RyeXtDPVEoQyl9Y2F0Y2goYyl7bC5jYWxsKHRoaXMsYyk7YnJlYWt9fXRyeXtuPWpBLmNhbGwodGhpcyxDKX1jYXRjaChRKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoUSl9Zm9yKGc9MCx1PXMubGVuZ3RoO2c8dTspbj1uLnRoZW4oc1tnKytdLHNbZysrXSk7cmV0dXJuIG59Z2V0VXJpKGUpe2U9WSh0aGlzLmRlZmF1bHRzLGUpO2xldCB0PWRBKGUuYmFzZVVSTCxlLnVybCxlLmFsbG93QWJzb2x1dGVVcmxzKTtyZXR1cm4gbEEodCxlLnBhcmFtcyxlLnBhcmFtc1NlcmlhbGl6ZXIpfX07Qi5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSxmdW5jdGlvbihlKXtuQS5wcm90b3R5cGVbZV09ZnVuY3Rpb24odCxyKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KFkocnx8e30se21ldGhvZDplLHVybDp0LGRhdGE6KHJ8fHt9KS5kYXRhfSkpfX0pO0IuZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQocil7cmV0dXJuIGZ1bmN0aW9uKEksbyxhKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KFkoYXx8e30se21ldGhvZDplLGhlYWRlcnM6cj97IkNvbnRlbnQtVHlwZSI6Im11bHRpcGFydC9mb3JtLWRhdGEifTp7fSx1cmw6SSxkYXRhOm99KSl9fW5BLnByb3RvdHlwZVtlXT10KCksbkEucHJvdG90eXBlW2UrIkZvcm0iXT10KCEwKX0pO3ZhciBoQT1uQTt2YXIgR2U9Y2xhc3MgQXtjb25zdHJ1Y3RvcihlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7bGV0IHQ7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKEkpe3Q9SX0pO2xldCByPXRoaXM7dGhpcy5wcm9taXNlLnRoZW4oaT0+e2lmKCFyLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBJPXIuX2xpc3RlbmVycy5sZW5ndGg7Zm9yKDtJLS0gPjA7KXIuX2xpc3RlbmVyc1tJXShpKTtyLl9saXN0ZW5lcnM9bnVsbH0pLHRoaXMucHJvbWlzZS50aGVuPWk9PntsZXQgSSxvPW5ldyBQcm9taXNlKGE9PntyLnN1YnNjcmliZShhKSxJPWF9KS50aGVuKGkpO3JldHVybiBvLmNhbmNlbD1mdW5jdGlvbigpe3IudW5zdWJzY3JpYmUoSSl9LG99LGUoZnVuY3Rpb24oSSxvLGEpe3IucmVhc29ufHwoci5yZWFzb249bmV3IHgoSSxvLGEpLHQoci5yZWFzb24pKX0pfXRocm93SWZSZXF1ZXN0ZWQoKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn1zdWJzY3JpYmUoZSl7aWYodGhpcy5yZWFzb24pe2UodGhpcy5yZWFzb24pO3JldHVybn10aGlzLl9saXN0ZW5lcnM/dGhpcy5fbGlzdGVuZXJzLnB1c2goZSk6dGhpcy5fbGlzdGVuZXJzPVtlXX11bnN1YnNjcmliZShlKXtpZighdGhpcy5fbGlzdGVuZXJzKXJldHVybjtsZXQgdD10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZihlKTt0IT09LTEmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UodCwxKX10b0Fib3J0U2lnbmFsKCl7bGV0IGU9bmV3IEFib3J0Q29udHJvbGxlcix0PXI9PntlLmFib3J0KHIpfTtyZXR1cm4gdGhpcy5zdWJzY3JpYmUodCksZS5zaWduYWwudW5zdWJzY3JpYmU9KCk9PnRoaXMudW5zdWJzY3JpYmUodCksZS5zaWduYWx9c3RhdGljIHNvdXJjZSgpe2xldCBlO3JldHVybnt0b2tlbjpuZXcgQShmdW5jdGlvbihpKXtlPWl9KSxjYW5jZWw6ZX19fSxxdD1HZTtmdW5jdGlvbiBiZShBKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIEEuYXBwbHkobnVsbCx0KX19ZnVuY3Rpb24gTGUoQSl7cmV0dXJuIEIuaXNPYmplY3QoQSkmJkEuaXNBeGlvc0Vycm9yPT09ITB9dmFyIEplPXtDb250aW51ZToxMDAsU3dpdGNoaW5nUHJvdG9jb2xzOjEwMSxQcm9jZXNzaW5nOjEwMixFYXJseUhpbnRzOjEwMyxPazoyMDAsQ3JlYXRlZDoyMDEsQWNjZXB0ZWQ6MjAyLE5vbkF1dGhvcml0YXRpdmVJbmZvcm1hdGlvbjoyMDMsTm9Db250ZW50OjIwNCxSZXNldENvbnRlbnQ6MjA1LFBhcnRpYWxDb250ZW50OjIwNixNdWx0aVN0YXR1czoyMDcsQWxyZWFkeVJlcG9ydGVkOjIwOCxJbVVzZWQ6MjI2LE11bHRpcGxlQ2hvaWNlczozMDAsTW92ZWRQZXJtYW5lbnRseTozMDEsRm91bmQ6MzAyLFNlZU90aGVyOjMwMyxOb3RNb2RpZmllZDozMDQsVXNlUHJveHk6MzA1LFVudXNlZDozMDYsVGVtcG9yYXJ5UmVkaXJlY3Q6MzA3LFBlcm1hbmVudFJlZGlyZWN0OjMwOCxCYWRSZXF1ZXN0OjQwMCxVbmF1dGhvcml6ZWQ6NDAxLFBheW1lbnRSZXF1aXJlZDo0MDIsRm9yYmlkZGVuOjQwMyxOb3RGb3VuZDo0MDQsTWV0aG9kTm90QWxsb3dlZDo0MDUsTm90QWNjZXB0YWJsZTo0MDYsUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkOjQwNyxSZXF1ZXN0VGltZW91dDo0MDgsQ29uZmxpY3Q6NDA5LEdvbmU6NDEwLExlbmd0aFJlcXVpcmVkOjQxMSxQcmVjb25kaXRpb25GYWlsZWQ6NDEyLFBheWxvYWRUb29MYXJnZTo0MTMsVXJpVG9vTG9uZzo0MTQsVW5zdXBwb3J0ZWRNZWRpYVR5cGU6NDE1LFJhbmdlTm90U2F0aXNmaWFibGU6NDE2LEV4cGVjdGF0aW9uRmFpbGVkOjQxNyxJbUFUZWFwb3Q6NDE4LE1pc2RpcmVjdGVkUmVxdWVzdDo0MjEsVW5wcm9jZXNzYWJsZUVudGl0eTo0MjIsTG9ja2VkOjQyMyxGYWlsZWREZXBlbmRlbmN5OjQyNCxUb29FYXJseTo0MjUsVXBncmFkZVJlcXVpcmVkOjQyNixQcmVjb25kaXRpb25SZXF1aXJlZDo0MjgsVG9vTWFueVJlcXVlc3RzOjQyOSxSZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6NDMxLFVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zOjQ1MSxJbnRlcm5hbFNlcnZlckVycm9yOjUwMCxOb3RJbXBsZW1lbnRlZDo1MDEsQmFkR2F0ZXdheTo1MDIsU2VydmljZVVuYXZhaWxhYmxlOjUwMyxHYXRld2F5VGltZW91dDo1MDQsSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6NTA1LFZhcmlhbnRBbHNvTmVnb3RpYXRlczo1MDYsSW5zdWZmaWNpZW50U3RvcmFnZTo1MDcsTG9vcERldGVjdGVkOjUwOCxOb3RFeHRlbmRlZDo1MTAsTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NTExfTtPYmplY3QuZW50cmllcyhKZSkuZm9yRWFjaCgoW0EsZV0pPT57SmVbZV09QX0pO3ZhciBQdD1KZTtmdW5jdGlvbiBLdChBKXtsZXQgZT1uZXcgaEEoQSksdD1CQShoQS5wcm90b3R5cGUucmVxdWVzdCxlKTtyZXR1cm4gQi5leHRlbmQodCxoQS5wcm90b3R5cGUsZSx7YWxsT3duS2V5czohMH0pLEIuZXh0ZW5kKHQsZSxudWxsLHthbGxPd25LZXlzOiEwfSksdC5jcmVhdGU9ZnVuY3Rpb24oaSl7cmV0dXJuIEt0KFkoQSxpKSl9LHR9dmFyIEY9S3QoaUEpO0YuQXhpb3M9aEE7Ri5DYW5jZWxlZEVycm9yPXg7Ri5DYW5jZWxUb2tlbj1xdDtGLmlzQ2FuY2VsPWZBO0YuVkVSU0lPTj12QTtGLnRvRm9ybURhdGE9ajtGLkF4aW9zRXJyb3I9ZDtGLkNhbmNlbD1GLkNhbmNlbGVkRXJyb3I7Ri5hbGw9ZnVuY3Rpb24oZSl7cmV0dXJuIFByb21pc2UuYWxsKGUpfTtGLnNwcmVhZD1iZTtGLmlzQXhpb3NFcnJvcj1MZTtGLm1lcmdlQ29uZmlnPVk7Ri5BeGlvc0hlYWRlcnM9VTtGLmZvcm1Ub0pTT049QT0+eEEoQi5pc0hUTUxGb3JtKEEpP25ldyBGb3JtRGF0YShBKTpBKTtGLmdldEFkYXB0ZXI9V0EuZ2V0QWRhcHRlcjtGLkh0dHBTdGF0dXNDb2RlPVB0O0YuZGVmYXVsdD1GO3ZhciBnQT1GO3ZhcntBeGlvczpwYSxBeGlvc0Vycm9yOmRhLENhbmNlbGVkRXJyb3I6bWEsaXNDYW5jZWw6aGEsQ2FuY2VsVG9rZW46eWEsVkVSU0lPTjpEYSxhbGw6d2EsQ2FuY2VsOlNhLGlzQXhpb3NFcnJvcjpGYSxzcHJlYWQ6UmEsdG9Gb3JtRGF0YTprYSxBeGlvc0hlYWRlcnM6VWEsSHR0cFN0YXR1c0NvZGU6TmEsZm9ybVRvSlNPTjpHYSxnZXRBZGFwdGVyOmJhLG1lcmdlQ29uZmlnOkxhfT1nQTthc3luYyBmdW5jdGlvbiBaaShBLGUpe2xldCB0PUEscj1udWxsO2lmKHQ9PW51bGwpcj1uZXcgV29ya2VyKG5ldyBVUkwoIi4vd2ViLXdvcmtlcnMvaXRrLXdhc20tcGlwZWxpbmUud29ya2VyLmpzIixpbXBvcnQubWV0YS51cmwpLHt0eXBlOiJtb2R1bGUifSk7ZWxzZSBpZih0LnN0YXJ0c1dpdGgoImh0dHAiKSl7bGV0IGk9YXdhaXQgZ0EuZ2V0KHQse3Jlc3BvbnNlVHlwZToiYmxvYiIscGFyYW1zOmV9KSxJPVVSTC5jcmVhdGVPYmplY3RVUkwoaS5kYXRhKTtyPW5ldyBXb3JrZXIoSSx7dHlwZToibW9kdWxlIn0pfWVsc2Ugcj1uZXcgV29ya2VyKHQse3R5cGU6Im1vZHVsZSJ9KTtyZXR1cm4gcn12YXIgeUE9Wmk7ZnVuY3Rpb24gV3QoQSl7bGV0IGU9c2UoQSksdD1BO3JldHVybiB0LnRlcm1pbmF0ZWQ9ITEsdC53b3JrZXJQcm94eT1lLHQub3JpZ2luYWxUZXJtaW5hdGU9dC50ZXJtaW5hdGUsdC50ZXJtaW5hdGU9KCk9Pnt0LnRlcm1pbmF0ZWQ9ITAsdC53b3JrZXJQcm94eVthZV0oKSx0Lm9yaWdpbmFsVGVybWluYXRlKCl9LHt3b3JrZXJQcm94eTplLHdvcmtlcjp0fX1hc3luYyBmdW5jdGlvbiBWaShBLGUsdCl7bGV0IHI7aWYoQSE9bnVsbCl7bGV0IEk9QTtyZXR1cm4gSS53b3JrZXJQcm94eSE9PXZvaWQgMD8ocj1JLndvcmtlclByb3h5LHt3b3JrZXJQcm94eTpyLHdvcmtlcjpJfSk6V3QoQSl9bGV0IGk9YXdhaXQgeUEoZSx0KTtyZXR1cm4gV3QoaSl9dmFyIGp0PVZpO3ZhciBEQSxQLEhlLE1lPXtlbnY6e2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGg6ZnVuY3Rpb24oQSl7SGU9bmV3IFVpbnQ4QXJyYXkoUC5leHBvcnRzLm1lbW9yeS5idWZmZXIpfX19LFZBPWNsYXNze2luaXQoKXtyZXR1cm4gREF8fCh0eXBlb2YgZmV0Y2g8InUiP0RBPWZldGNoKCJkYXRhOmFwcGxpY2F0aW9uL3dhc207YmFzZTY0LCIrdnQpLnRoZW4oZT0+ZS5hcnJheUJ1ZmZlcigpKS50aGVuKGU9PldlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGUsTWUpKS50aGVuKHRoaXMuX2luaXQpOkRBPVdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEJ1ZmZlci5mcm9tKHZ0LCJiYXNlNjQiKSxNZSkudGhlbih0aGlzLl9pbml0KSxEQSl9X2luaXQoZSl7UD1lLmluc3RhbmNlLE1lLmVudi5lbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoKDApfWRlY29kZShlLHQ9MCl7aWYoIVApdGhyb3cgbmV3IEVycm9yKCJaU1RERGVjb2RlcjogQXdhaXQgLmluaXQoKSBiZWZvcmUgZGVjb2RpbmcuIik7bGV0IHI9ZS5ieXRlTGVuZ3RoLGk9UC5leHBvcnRzLm1hbGxvYyhyKTtIZS5zZXQoZSxpKSx0PXR8fE51bWJlcihQLmV4cG9ydHMuWlNURF9maW5kRGVjb21wcmVzc2VkU2l6ZShpLHIpKTtsZXQgST1QLmV4cG9ydHMubWFsbG9jKHQpLG89UC5leHBvcnRzLlpTVERfZGVjb21wcmVzcyhJLHQsaSxyKSxhPUhlLnNsaWNlKEksSStvKTtyZXR1cm4gUC5leHBvcnRzLmZyZWUoaSksUC5leHBvcnRzLmZyZWUoSSksYX19LHZ0PSJBR0Z6YlFFQUFBQUJiZzVnQTM5L2Z3Ri9ZQUYvQVg5Z0FuOS9BR0FCZndCZ0JYOS9mMzkvQVg5Z0EzOS9md0JnQkg5L2YzOEJmMkFBQVg5Z0FuOS9BWDlnQjM5L2YzOS9mMzhCZjJBQ2YzOEJmbUFJZjM5L2YzOS9mMzhCZjJBRmYzOS9mMzhBWUE1L2YzOS9mMzkvZjM5L2YzOS9md0YvQWljQkEyVnVkaDlsYlhOamNtbHdkR1Z1WDI1dmRHbG1lVjl0WlcxdmNubGZaM0p2ZDNSb0FBTURJeUlIQUFBQkFRTUhBd0VBQ1FRQUJRRUlDQUVGQmdRRUJBTUdBQUFLQUFVTERBMEdCQVVCY0FFQkFRVUhBUUdBQW9DQUFnWUlBWDhCUVlDakJBc0hyZ0VMQm0xbGJXOXllUUlBQm0xaGJHeHZZd0FGQkdaeVpXVUFCZ3hhVTFSRVgybHpSWEp5YjNJQUVobGFVMVJFWDJacGJtUkVaV052YlhCeVpYTnpaV1JUYVhwbEFCd1BXbE5VUkY5a1pXTnZiWEJ5WlhOekFDSVpYMTlwYm1ScGNtVmpkRjltZFc1amRHbHZibDkwWVdKc1pRRUFFRjlmWlhKeWJtOWZiRzlqWVhScGIyNEFBUWx6ZEdGamExTmhkbVVBQnd4emRHRmphMUpsYzNSdmNtVUFDQXB6ZEdGamEwRnNiRzlqQUFrS2kvSUJJZ1VBUVlRZkN6TUJBWDhnQWdSQUlBQWhBd05BSUFNZ0FTMEFBRG9BQUNBRFFRRnFJUU1nQVVFQmFpRUJJQUpCQVdzaUFnMEFDd3NnQUFzcEFRRi9JQUlFUUNBQUlRTURRQ0FESUFFNkFBQWdBMEVCYWlFRElBSkJBV3NpQWcwQUN3c2dBQXRzQVFKL1FZQWZLQUlBSWdFZ0FFRUhha0Y0Y1NJQ2FpRUFBa0FnQWtFQUlBQWdBVTBiRFFBZ0FEOEFRUkIwU3dSQUlBQS9BRUVRZEd0Qi8vOERha0VRZGtBQVFYOUdCSDlCQUFWQkFCQUFRUUVMUlEwQkMwR0FIeUFBTmdJQUlBRVBDMEdFSDBFd05nSUFRWDhMdVNjQkMzOGpBRUVRYXlJS0pBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQUJCOUFGTkJFQkJpQjhvQWdBaUJrRVFJQUJCQzJwQmVIRWdBRUVMU1JzaUJVRURkaUlBZGlJQlFRTnhCRUFDUUNBQlFYOXpRUUZ4SUFCcUlnSkJBM1FpQVVHd0gyb2lBQ0FCUWJnZmFpZ0NBQ0lCS0FJSUlnUkdCRUJCaUI4Z0JrRitJQUozY1RZQ0FBd0JDeUFFSUFBMkFnd2dBQ0FFTmdJSUN5QUJRUWhxSVFBZ0FTQUNRUU4wSWdKQkEzSTJBZ1FnQVNBQ2FpSUJJQUVvQWdSQkFYSTJBZ1FNRHdzZ0JVR1FIeWdDQUNJSFRRMEJJQUVFUUFKQVFRSWdBSFFpQWtFQUlBSnJjaUFCSUFCMGNXZ2lBVUVEZENJQVFiQWZhaUlDSUFCQnVCOXFLQUlBSWdBb0FnZ2lCRVlFUUVHSUh5QUdRWDRnQVhkeElnWTJBZ0FNQVFzZ0JDQUNOZ0lNSUFJZ0JEWUNDQXNnQUNBRlFRTnlOZ0lFSUFBZ0JXb2lDQ0FCUVFOMElnRWdCV3NpQkVFQmNqWUNCQ0FBSUFGcUlBUTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRRkJuQjhvQWdBaEFnSi9JQVpCQVNBSFFRTjJkQ0lEY1VVRVFFR0lIeUFESUFaeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQXlBQklBSTJBZ2dnQXlBQ05nSU1JQUlnQVRZQ0RDQUNJQU0yQWdnTElBQkJDR29oQUVHY0h5QUlOZ0lBUVpBZklBUTJBZ0FNRHd0QmpCOG9BZ0FpQzBVTkFTQUxhRUVDZEVHNElXb29BZ0FpQWlnQ0JFRjRjU0FGYXlFRElBSWhBUU5BQWtBZ0FTZ0NFQ0lBUlFSQUlBRW9BaFFpQUVVTkFRc2dBQ2dDQkVGNGNTQUZheUlCSUFNZ0FTQURTU0lCR3lFRElBQWdBaUFCR3lFQ0lBQWhBUXdCQ3dzZ0FpZ0NHQ0VKSUFJZ0FpZ0NEQ0lFUndSQVFaZ2ZLQUlBR2lBQ0tBSUlJZ0FnQkRZQ0RDQUVJQUEyQWdnTURnc2dBa0VVYWlJQktBSUFJZ0JGQkVBZ0FpZ0NFQ0lBUlEwRElBSkJFR29oQVFzRFFDQUJJUWdnQUNJRVFSUnFJZ0VvQWdBaUFBMEFJQVJCRUdvaEFTQUVLQUlRSWdBTkFBc2dDRUVBTmdJQURBMExRWDhoQlNBQVFiOS9TdzBBSUFCQkMyb2lBRUY0Y1NFRlFZd2ZLQUlBSWdoRkRRQkJBQ0FGYXlFREFrQUNRQUpBQW45QkFDQUZRWUFDU1EwQUdrRWZJQVZCLy8vL0Iwc05BQm9nQlVFbUlBQkJDSFpuSWdCcmRrRUJjU0FBUVFGMGEwRSthZ3NpQjBFQ2RFRzRJV29vQWdBaUFVVUVRRUVBSVFBTUFRdEJBQ0VBSUFWQkdTQUhRUUYyYTBFQUlBZEJIMGNiZENFQ0EwQUNRQ0FCS0FJRVFYaHhJQVZySWdZZ0EwOE5BQ0FCSVFRZ0JpSUREUUJCQUNFRElBRWhBQXdEQ3lBQUlBRW9BaFFpQmlBR0lBRWdBa0VkZGtFRWNXb29BaEFpQVVZYklBQWdCaHNoQUNBQ1FRRjBJUUlnQVEwQUN3c2dBQ0FFY2tVRVFFRUFJUVJCQWlBSGRDSUFRUUFnQUd0eUlBaHhJZ0JGRFFNZ0FHaEJBblJCdUNGcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJQ0lBTkpJUUVnQWlBRElBRWJJUU1nQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBRFFaQWZLQUlBSUFWclR3MEFJQVFvQWhnaEJ5QUVJQVFvQWd3aUFrY0VRRUdZSHlnQ0FCb2dCQ2dDQ0NJQUlBSTJBZ3dnQWlBQU5nSUlEQXdMSUFSQkZHb2lBU2dDQUNJQVJRUkFJQVFvQWhBaUFFVU5BeUFFUVJCcUlRRUxBMEFnQVNFR0lBQWlBa0VVYWlJQktBSUFJZ0FOQUNBQ1FSQnFJUUVnQWlnQ0VDSUFEUUFMSUFaQkFEWUNBQXdMQ3lBRlFaQWZLQUlBSWdSTkJFQkJuQjhvQWdBaEFBSkFJQVFnQldzaUFVRVFUd1JBSUFBZ0JXb2lBaUFCUVFGeU5nSUVJQUFnQkdvZ0FUWUNBQ0FBSUFWQkEzSTJBZ1FNQVFzZ0FDQUVRUU55TmdJRUlBQWdCR29pQVNBQktBSUVRUUZ5TmdJRVFRQWhBa0VBSVFFTFFaQWZJQUUyQWdCQm5COGdBallDQUNBQVFRaHFJUUFNRFFzZ0JVR1VIeWdDQUNJQ1NRUkFRWlFmSUFJZ0JXc2lBVFlDQUVHZ0gwR2dIeWdDQUNJQUlBVnFJZ0kyQWdBZ0FpQUJRUUZ5TmdJRUlBQWdCVUVEY2pZQ0JDQUFRUWhxSVFBTURRdEJBQ0VBSUFWQkwyb2lBd0ovUWVBaUtBSUFCRUJCNkNJb0FnQU1BUXRCN0NKQ2Z6Y0NBRUhrSWtLQW9JQ0FnSUFFTndJQVFlQWlJQXBCREdwQmNIRkIyS3JWcWdWek5nSUFRZlFpUVFBMkFnQkJ4Q0pCQURZQ0FFR0FJQXNpQVdvaUJrRUFJQUZySWdoeElnRWdCVTBOREVIQUlpZ0NBQ0lFQkVCQnVDSW9BZ0FpQnlBQmFpSUpJQWROSUFRZ0NVbHlEUTBMQWtCQnhDSXRBQUJCQkhGRkJFQUNRQUpBQWtBQ1FFR2dIeWdDQUNJRUJFQkJ5Q0loQUFOQUlBUWdBQ2dDQUNJSFR3UkFJQWNnQUNnQ0JHb2dCRXNOQXdzZ0FDZ0NDQ0lBRFFBTEMwRUFFQVFpQWtGL1JnMERJQUVoQmtIa0lpZ0NBQ0lBUVFGcklnUWdBbkVFUUNBQklBSnJJQUlnQkdwQkFDQUFhM0ZxSVFZTElBVWdCazhOQTBIQUlpZ0NBQ0lBQkVCQnVDSW9BZ0FpQkNBR2FpSUlJQVJOSUFBZ0NFbHlEUVFMSUFZUUJDSUFJQUpIRFFFTUJRc2dCaUFDYXlBSWNTSUdFQVFpQWlBQUtBSUFJQUFvQWdScVJnMEJJQUloQUFzZ0FFRi9SZzBCSUFWQk1Hb2dCazBFUUNBQUlRSU1CQXRCNkNJb0FnQWlBaUFESUFacmFrRUFJQUpyY1NJQ0VBUkJmMFlOQVNBQ0lBWnFJUVlnQUNFQ0RBTUxJQUpCZjBjTkFndEJ4Q0pCeENJb0FnQkJCSEkyQWdBTElBRVFCQ0lDUVg5R1FRQVFCQ0lBUVg5R2NpQUFJQUpOY2cwRklBQWdBbXNpQmlBRlFTaHFUUTBGQzBHNElrRzRJaWdDQUNBR2FpSUFOZ0lBUWJ3aUtBSUFJQUJKQkVCQnZDSWdBRFlDQUFzQ1FFR2dIeWdDQUNJREJFQkJ5Q0loQUFOQUlBSWdBQ2dDQUNJQklBQW9BZ1FpQkdwR0RRSWdBQ2dDQ0NJQURRQUxEQVFMUVpnZktBSUFJZ0JCQUNBQUlBSk5HMFVFUUVHWUh5QUNOZ0lBQzBFQUlRQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFhZ2ZRWDgyQWdCQnJCOUI0Q0lvQWdBMkFnQkIxQ0pCQURZQ0FBTkFJQUJCQTNRaUFVRzRIMm9nQVVHd0gyb2lCRFlDQUNBQlFid2ZhaUFFTmdJQUlBQkJBV29pQUVFZ1J3MEFDMEdVSHlBR1FTaHJJZ0JCZUNBQ2EwRUhjU0lCYXlJRU5nSUFRYUFmSUFFZ0Ftb2lBVFlDQUNBQklBUkJBWEkyQWdRZ0FDQUNha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQVFMSUFJZ0EwMGdBU0FEUzNJTkFpQUFLQUlNUVFoeERRSWdBQ0FFSUFacU5nSUVRYUFmSUFOQmVDQURhMEVIY1NJQWFpSUJOZ0lBUVpRZlFaUWZLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFNTFFRQWhCQXdLQzBFQUlRSU1DQXRCbUI4b0FnQWdBa3NFUUVHWUh5QUNOZ0lBQ3lBQ0lBWnFJUUZCeUNJaEFBSkFBa0FDUUFOQUlBRWdBQ2dDQUVjRVFDQUFLQUlJSWdBTkFRd0NDd3NnQUMwQURFRUljVVVOQVF0QnlDSWhBQU5BSUFNZ0FDZ0NBQ0lCVHdSQUlBRWdBQ2dDQkdvaUJDQURTdzBEQ3lBQUtBSUlJUUFNQUFzQUN5QUFJQUkyQWdBZ0FDQUFLQUlFSUFacU5nSUVJQUpCZUNBQ2EwRUhjV29pQnlBRlFRTnlOZ0lFSUFGQmVDQUJhMEVIY1dvaUJpQUZJQWRxSWdWcklRQWdBeUFHUmdSQVFhQWZJQVUyQWdCQmxCOUJsQjhvQWdBZ0FHb2lBRFlDQUNBRklBQkJBWEkyQWdRTUNBdEJuQjhvQWdBZ0JrWUVRRUdjSHlBRk5nSUFRWkFmUVpBZktBSUFJQUJxSWdBMkFnQWdCU0FBUVFGeU5nSUVJQUFnQldvZ0FEWUNBQXdJQ3lBR0tBSUVJZ05CQTNGQkFVY05CaUFEUVhoeElRa2dBMEgvQVUwRVFDQUdLQUlNSWdFZ0JpZ0NDQ0lDUmdSQVFZZ2ZRWWdmS0FJQVFYNGdBMEVEZG5keE5nSUFEQWNMSUFJZ0FUWUNEQ0FCSUFJMkFnZ01CZ3NnQmlnQ0dDRUlJQVlnQmlnQ0RDSUNSd1JBSUFZb0FnZ2lBU0FDTmdJTUlBSWdBVFlDQ0F3RkN5QUdRUlJxSWdFb0FnQWlBMFVFUUNBR0tBSVFJZ05GRFFRZ0JrRVFhaUVCQ3dOQUlBRWhCQ0FESWdKQkZHb2lBU2dDQUNJRERRQWdBa0VRYWlFQklBSW9BaEFpQXcwQUN5QUVRUUEyQWdBTUJBdEJsQjhnQmtFb2F5SUFRWGdnQW10QkIzRWlBV3NpQ0RZQ0FFR2dIeUFCSUFKcUlnRTJBZ0FnQVNBSVFRRnlOZ0lFSUFBZ0FtcEJLRFlDQkVHa0gwSHdJaWdDQURZQ0FDQURJQVJCSnlBRWEwRUhjV3BCTDJzaUFDQUFJQU5CRUdwSkd5SUJRUnMyQWdRZ0FVSFFJaWtDQURjQ0VDQUJRY2dpS1FJQU53SUlRZEFpSUFGQkNHbzJBZ0JCekNJZ0JqWUNBRUhJSWlBQ05nSUFRZFFpUVFBMkFnQWdBVUVZYWlFQUEwQWdBRUVITmdJRUlBQkJDR29nQUVFRWFpRUFJQVJKRFFBTElBRWdBMFlOQUNBQklBRW9BZ1JCZm5FMkFnUWdBeUFCSUFOcklnSkJBWEkyQWdRZ0FTQUNOZ0lBSUFKQi93Rk5CRUFnQWtGNGNVR3dIMm9oQUFKL1FZZ2ZLQUlBSWdGQkFTQUNRUU4yZENJQ2NVVUVRRUdJSHlBQklBSnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEFTQUFJQU0yQWdnZ0FTQUROZ0lNSUFNZ0FEWUNEQ0FESUFFMkFnZ01BUXRCSHlFQUlBSkIvLy8vQjAwRVFDQUNRU1lnQWtFSWRtY2lBR3QyUVFGeElBQkJBWFJyUVQ1cUlRQUxJQU1nQURZQ0hDQURRZ0EzQWhBZ0FFRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlCRUVCSUFCMElnWnhSUVJBUVl3ZklBUWdCbkkyQWdBZ0FTQUROZ0lBREFFTElBSkJHU0FBUVFGMmEwRUFJQUJCSDBjYmRDRUFJQUVvQWdBaEJBTkFJQVFpQVNnQ0JFRjRjU0FDUmcwQ0lBQkJIWFloQkNBQVFRRjBJUUFnQVNBRVFRUnhhaUlHS0FJUUlnUU5BQXNnQmlBRE5nSVFDeUFESUFFMkFoZ2dBeUFETmdJTUlBTWdBellDQ0F3QkN5QUJLQUlJSWdBZ0F6WUNEQ0FCSUFNMkFnZ2dBMEVBTmdJWUlBTWdBVFlDRENBRElBQTJBZ2dMUVpRZktBSUFJZ0FnQlUwTkFFR1VIeUFBSUFWcklnRTJBZ0JCb0I5Qm9COG9BZ0FpQUNBRmFpSUNOZ0lBSUFJZ0FVRUJjallDQkNBQUlBVkJBM0kyQWdRZ0FFRUlhaUVBREFnTFFZUWZRVEEyQWdCQkFDRUFEQWNMUVFBaEFnc2dDRVVOQUFKQUlBWW9BaHdpQVVFQ2RFRzRJV29pQkNnQ0FDQUdSZ1JBSUFRZ0FqWUNBQ0FDRFFGQmpCOUJqQjhvQWdCQmZpQUJkM0UyQWdBTUFnc2dDRUVRUVJRZ0NDZ0NFQ0FHUmh0cUlBSTJBZ0FnQWtVTkFRc2dBaUFJTmdJWUlBWW9BaEFpQVFSQUlBSWdBVFlDRUNBQklBSTJBaGdMSUFZb0FoUWlBVVVOQUNBQ0lBRTJBaFFnQVNBQ05nSVlDeUFBSUFscUlRQWdCaUFKYWlJR0tBSUVJUU1MSUFZZ0EwRitjVFlDQkNBRklBQkJBWEkyQWdRZ0FDQUZhaUFBTmdJQUlBQkIvd0ZOQkVBZ0FFRjRjVUd3SDJvaEFRSi9RWWdmS0FJQUlnSkJBU0FBUVFOMmRDSUFjVVVFUUVHSUh5QUFJQUp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBQ0FCSUFVMkFnZ2dBQ0FGTmdJTUlBVWdBVFlDRENBRklBQTJBZ2dNQVF0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFVZ0F6WUNIQ0FGUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQWtFQklBTjBJZ1J4UlFSQVFZd2ZJQUlnQkhJMkFnQWdBU0FGTmdJQURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBZ05BSUFJaUFTZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFpQURRUUYwSVFNZ0FTQUNRUVJ4YWlJRUtBSVFJZ0lOQUFzZ0JDQUZOZ0lRQ3lBRklBRTJBaGdnQlNBRk5nSU1JQVVnQlRZQ0NBd0JDeUFCS0FJSUlnQWdCVFlDRENBQklBVTJBZ2dnQlVFQU5nSVlJQVVnQVRZQ0RDQUZJQUEyQWdnTElBZEJDR29oQUF3Q0N3SkFJQWRGRFFBQ1FDQUVLQUljSWdCQkFuUkJ1Q0ZxSWdFb0FnQWdCRVlFUUNBQklBSTJBZ0FnQWcwQlFZd2ZJQWhCZmlBQWQzRWlDRFlDQUF3Q0N5QUhRUkJCRkNBSEtBSVFJQVJHRzJvZ0FqWUNBQ0FDUlEwQkN5QUNJQWMyQWhnZ0JDZ0NFQ0lBQkVBZ0FpQUFOZ0lRSUFBZ0FqWUNHQXNnQkNnQ0ZDSUFSUTBBSUFJZ0FEWUNGQ0FBSUFJMkFoZ0xBa0FnQTBFUFRRUkFJQVFnQXlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnSWdBMEVCY2pZQ0JDQUNJQU5xSUFNMkFnQWdBMEgvQVUwRVFDQURRWGh4UWJBZmFpRUFBbjlCaUI4b0FnQWlBVUVCSUFOQkEzWjBJZ054UlFSQVFZZ2ZJQUVnQTNJMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0FqWUNDQ0FCSUFJMkFnd2dBaUFBTmdJTUlBSWdBVFlDQ0F3QkMwRWZJUUFnQTBILy8vOEhUUVJBSUFOQkppQURRUWgyWnlJQWEzWkJBWEVnQUVFQmRHdEJQbW9oQUFzZ0FpQUFOZ0ljSUFKQ0FEY0NFQ0FBUVFKMFFiZ2hhaUVCQWtBQ1FDQUlRUUVnQUhRaUJuRkZCRUJCakI4Z0JpQUljallDQUNBQklBSTJBZ0FNQVFzZ0EwRVpJQUJCQVhaclFRQWdBRUVmUnh0MElRQWdBU2dDQUNFRkEwQWdCU0lCS0FJRVFYaHhJQU5HRFFJZ0FFRWRkaUVHSUFCQkFYUWhBQ0FCSUFaQkJIRnFJZ1lvQWhBaUJRMEFDeUFHSUFJMkFoQUxJQUlnQVRZQ0dDQUNJQUkyQWd3Z0FpQUNOZ0lJREFFTElBRW9BZ2dpQUNBQ05nSU1JQUVnQWpZQ0NDQUNRUUEyQWhnZ0FpQUJOZ0lNSUFJZ0FEWUNDQXNnQkVFSWFpRUFEQUVMQWtBZ0NVVU5BQUpBSUFJb0Fod2lBRUVDZEVHNElXb2lBU2dDQUNBQ1JnUkFJQUVnQkRZQ0FDQUVEUUZCakI4Z0MwRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFKR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBaWdDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FpZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFJZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQW1vaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFJZ0JVRURjallDQkNBQ0lBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRQkJuQjhvQWdBaEFRSi9RUUVnQjBFRGRuUWlCU0FHY1VVRVFFR0lIeUFGSUFaeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQmlBQUlBRTJBZ2dnQmlBQk5nSU1JQUVnQURZQ0RDQUJJQVkyQWdnTFFad2ZJQVEyQWdCQmtCOGdBellDQUFzZ0FrRUlhaUVBQ3lBS1FSQnFKQUFnQUF2U0N3RUhmd0pBSUFCRkRRQWdBRUVJYXlJQ0lBQkJCR3NvQWdBaUFVRjRjU0lBYWlFRkFrQWdBVUVCY1EwQUlBRkJBM0ZGRFFFZ0FpQUNLQUlBSWdGcklnSkJtQjhvQWdCSkRRRWdBQ0FCYWlFQUFrQUNRRUdjSHlnQ0FDQUNSd1JBSUFGQi93Rk5CRUFnQVVFRGRpRUVJQUlvQWd3aUFTQUNLQUlJSWdOR0JFQkJpQjlCaUI4b0FnQkJmaUFFZDNFMkFnQU1CUXNnQXlBQk5nSU1JQUVnQXpZQ0NBd0VDeUFDS0FJWUlRWWdBaUFDS0FJTUlnRkhCRUFnQWlnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBSkJGR29pQkNnQ0FDSURSUVJBSUFJb0FoQWlBMFVOQWlBQ1FSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZLQUlFSWdGQkEzRkJBMGNOQWtHUUh5QUFOZ0lBSUFVZ0FVRitjVFlDQkNBQ0lBQkJBWEkyQWdRZ0JTQUFOZ0lBRHd0QkFDRUJDeUFHUlEwQUFrQWdBaWdDSENJRFFRSjBRYmdoYWlJRUtBSUFJQUpHQkVBZ0JDQUJOZ0lBSUFFTkFVR01IMEdNSHlnQ0FFRitJQU4zY1RZQ0FBd0NDeUFHUVJCQkZDQUdLQUlRSUFKR0cyb2dBVFlDQUNBQlJRMEJDeUFCSUFZMkFoZ2dBaWdDRUNJREJFQWdBU0FETmdJUUlBTWdBVFlDR0FzZ0FpZ0NGQ0lEUlEwQUlBRWdBellDRkNBRElBRTJBaGdMSUFJZ0JVOE5BQ0FGS0FJRUlnRkJBWEZGRFFBQ1FBSkFBa0FDUUNBQlFRSnhSUVJBUWFBZktBSUFJQVZHQkVCQm9COGdBallDQUVHVUgwR1VIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQ1Fad2ZLQUlBUncwR1FaQWZRUUEyQWdCQm5COUJBRFlDQUE4TFFad2ZLQUlBSUFWR0JFQkJuQjhnQWpZQ0FFR1FIMEdRSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUFJQUpxSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFnQVVIL0FVMEVRQ0FCUVFOMklRUWdCU2dDRENJQklBVW9BZ2dpQTBZRVFFR0lIMEdJSHlnQ0FFRitJQVIzY1RZQ0FBd0ZDeUFESUFFMkFnd2dBU0FETmdJSURBUUxJQVVvQWhnaEJpQUZJQVVvQWd3aUFVY0VRRUdZSHlnQ0FCb2dCU2dDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFWQkZHb2lCQ2dDQUNJRFJRUkFJQVVvQWhBaUEwVU5BaUFGUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRklBRkJmbkUyQWdRZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FBd0RDMEVBSVFFTElBWkZEUUFDUUNBRktBSWNJZ05CQW5SQnVDRnFJZ1FvQWdBZ0JVWUVRQ0FFSUFFMkFnQWdBUTBCUVl3ZlFZd2ZLQUlBUVg0Z0EzZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ01FUUNBQklBTTJBaEFnQXlBQk5nSVlDeUFGS0FJVUlnTkZEUUFnQVNBRE5nSVVJQU1nQVRZQ0dBc2dBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQ0FDUVp3ZktBSUFSdzBBUVpBZklBQTJBZ0FQQ3lBQVFmOEJUUVJBSUFCQmVIRkJzQjlxSVFFQ2YwR0lIeWdDQUNJRFFRRWdBRUVEZG5RaUFIRkZCRUJCaUI4Z0FDQURjallDQUNBQkRBRUxJQUVvQWdnTElRQWdBU0FDTmdJSUlBQWdBallDRENBQ0lBRTJBZ3dnQWlBQU5nSUlEd3RCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQUlnQXpZQ0hDQUNRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0FDUUVHTUh5Z0NBQ0lFUVFFZ0EzUWlCM0ZGQkVCQmpCOGdCQ0FIY2pZQ0FDQUJJQUkyQWdBZ0FpQUJOZ0lZREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFRTkFJQUVpQkNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQVNBRFFRRjBJUU1nQkNBQlFRUnhhaUlIUVJCcUtBSUFJZ0VOQUFzZ0J5QUNOZ0lRSUFJZ0JEWUNHQXNnQWlBQ05nSU1JQUlnQWpZQ0NBd0JDeUFFS0FJSUlnQWdBallDRENBRUlBSTJBZ2dnQWtFQU5nSVlJQUlnQkRZQ0RDQUNJQUEyQWdnTFFhZ2ZRYWdmS0FJQVFRRnJJZ0JCZnlBQUd6WUNBQXNMQkFBakFBc0dBQ0FBSkFBTEVBQWpBQ0FBYTBGd2NTSUFKQUFnQUF0S0FRRi9JQUFnQVVrRVFDQUFJQUVnQWhBQ0R3c2dBZ1JBSUFBZ0Ftb2hBeUFCSUFKcUlRRURRQ0FEUVFGcklnTWdBVUVCYXlJQkxRQUFPZ0FBSUFKQkFXc2lBZzBBQ3dzZ0FBdjlEZ0lSZndGK0l3QkJNR3NpQnlRQVFiaC9JUWdDUUNBRlJRMEFJQVFzQUFBaUNVSC9BWEVoQ3dKQUlBbEJBRWdFUUNBTFFmNEFhMEVCZGlJR0lBVlBEUUpCYkNFSUlBdEIvd0JySWd0Qi93RkxEUUlnQkVFQmFpRUlRUUFoQlFOQUlBVWdDMDhFUUNBTElRZ2dCaUVMREFNRklBQWdCV29nQ0NBRlFRRjJhaUlFTFFBQVFRUjJPZ0FBSUFBZ0JVRUJjbW9nQkMwQUFFRVBjVG9BQUNBRlFRSnFJUVVNQVFzQUN3QUxJQVVnQzAwTkFTQUhRZjhCTmdJRUlBWWdCMEVFYWlBSFFRaHFJQVJCQVdvaURpQUxFQXdpQkVHSWYwc0VRQ0FFSVFnTUFndEJWQ0VJSUFjb0FnZ2lFRUVHU3cwQklBY29BZ1FpRVVFQmRDSUpRUUpxclVJQklCQ3RoaUlZUVFFZ0VIUWlEVUVCYWlJRnJVSUNobng4UWd0OFF2ei8vLy8vLy8vLy93Q0RRdVFDVmcwQlFWSWhDQ0FSUWY4QlN3MEJJQTFCZjNOQkFuUkI1QUpxclNBUlFRRnFJaFZCQVhTdElCaDhRZ2g4VkEwQklBc2dCR3NoRmlBRUlBNXFJUmNnQmtHQUJHb2lFaUFGUVFKMGFpSVJJQWxxUVFKcUlRNGdCa0dFQkdvaEUwR0FnQUlnRUhSQkVIWWhDVUVBSVFWQkFTRVBJQTFCQVdzaUZDRUtBMEFnQlNBVlJrVUVRQUpBSUFZZ0JVRUJkQ0lJYWk4QkFDSUVRZi8vQTBZRVFDQVRJQXBCQW5ScUlBVTZBQUlnQ2tFQmF5RUtRUUVoQkF3QkN5QVBRUUFnQ1NBRXdVb2JJUThMSUFnZ0VXb2dCRHNCQUNBRlFRRnFJUVVNQVFzTElBWWdEenNCZ2dRZ0JpQVFPd0dBQkFKQUlBb2dGRVlFUUNBTlFRTjJJUWhDQUNFWVFRQWhEd05BSUF3Z0ZVWUVRQ0FJSUExQkFYWnFRUU5xSWdsQkFYUWhDRUVBSVFSQkFDRUtBMEJCQUNFRklBb2dEVThOQkFOQUlBVkJBa1pGQkVBZ0V5QUZJQWxzSUFScUlCUnhRUUowYWlBT0lBVWdDbXBxTFFBQU9nQUNJQVZCQVdvaEJRd0JDd3NnQ2tFQ2FpRUtJQVFnQ0dvZ0ZIRWhCQXdBQ3dBRklBWWdERUVCZEdvdUFRQWhDU0FPSUE5cUlnUWdHRGNBQUVFSUlRVURRQ0FGSUFsT1JRUkFJQVFnQldvZ0dEY0FBQ0FGUVFocUlRVU1BUXNMSUJoQ2dZS0VpSkNnd0lBQmZDRVlJQXhCQVdvaERDQUpJQTlxSVE4TUFRc0FDd0FMSUExQkEzWWdEVUVCZG1wQkEyb2hDRUVBSVFVRFFDQU1JQlZHUlFSQVFRQWhDU0FHSUF4QkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FKUmtVRVFDQVRJQVZCQW5ScUlBdzZBQUlEUUNBRklBaHFJQlJ4SWdVZ0Nrc05BQXNnQ1VFQmFpRUpEQUVMQ3lBTVFRRnFJUXdNQVFzTFFYOGhDQ0FGRFFJTElCQkJBV29oQ0VFQUlRVURRQ0FGSUExR1JRUkFJQkVnRXlBRlFRSjBhaUlPTFFBQ1FRRjBhaUlFSUFRdkFRQWlDVUVCYWpzQkFDQU9JQWdnQ1dkQllITnFJZ1E2QUFNZ0RpQUpJQVIwSUExck93RUFJQVZCQVdvaEJRd0JDd3NDUUFKQUlBWXZBWUlFQkVBZ0IwRWNhaUlFSUJjZ0ZoQU5JZ2hCaUg5TERRSWdCMEVVYWlBRUlCSVFEaUFIUVF4cUlBUWdFaEFPUVFBaEJRTkFJQWRCSEdvaUJCQVBJQVZCK3dGTGNnMENJQUFnQldvaUJpQUhRUlJxSUFRUUVEb0FBQ0FHSUFkQkRHb2dCQkFRT2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVU1Bd1VnQUNBRWFpQUhRUlJxSUFkQkhHb2lCQkFRT2dBQUlBWWdCMEVNYWlBRUVCQTZBQU1nQlVFRWFpRUZEQUVMQUFzQUN5QUhRUnhxSWdRZ0Z5QVdFQTBpQ0VHSWYwc05BU0FIUVJScUlBUWdFaEFPSUFkQkRHb2dCQ0FTRUE1QkFDRUZBMEFnQjBFY2FpSUVFQThnQlVIN0FVdHlSUVJBSUFBZ0JXb2lCaUFIUVJScUlBUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVGSUFBZ0JHb2dCMEVVYWlBSFFSeHFJZ1FRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FESUFWQkJHb2hCUXdDQ3dzTEFuOERRRUc2ZnlFSUlBVkIvUUZMRFFNZ0FDQUZhaUlHSUFkQkZHb2dCMEVjYWlJSkVCRTZBQUFnQmtFQmFpRUVJQWtRRDBFRFJnUkFJQWRCREdvaENFRUNEQUlMSUFWQi9BRkxEUU1nQmlBSFFReHFJQWRCSEdvaUJCQVJPZ0FCSUFWQkFtb2hCU0FFRUE5QkEwY05BQXNnQUNBRmFpRUVJQWRCRkdvaENFRURDeUFFSUFnZ0IwRWNhaEFST2dBQUlBWnFJQUJySVFnTUFRc0Nmd05BUWJwL0lRZ2dCVUg5QVVzTkFpQUFJQVZxSWdZZ0IwRVVhaUFIUVJ4cUlna1FFRG9BQUNBR1FRRnFJUVFnQ1JBUFFRTkdCRUFnQjBFTWFpRUlRUUlNQWdzZ0JVSDhBVXNOQWlBR0lBZEJER29nQjBFY2FpSUVFQkE2QUFFZ0JVRUNhaUVGSUFRUUQwRURSdzBBQ3lBQUlBVnFJUVFnQjBFVWFpRUlRUU1MSUFRZ0NDQUhRUnhxRUJBNkFBQWdCbW9nQUdzaENBc2dDRUdJZjBzTkFRc2dDQ0VFUVFBaEJTQUJRUUJCTkJBRElRbEJBQ0VLQTBBZ0JDQUZSd1JBSUFBZ0JXb2lCaTBBQUNJQlFRdExCRUJCYkNFSURBTUZJQWtnQVVFQ2RHb2lBU0FCS0FJQVFRRnFOZ0lBSUFWQkFXb2hCVUVCSUFZdEFBQjBRUUYxSUFwcUlRb01BZ3NBQ3d0QmJDRUlJQXBGRFFBZ0NtY2lCVUVmY3lJQlFRdExEUUFnQTBFZ0lBVnJOZ0lBUVFGQkFpQUJkQ0FLYXlJRFowRWZjeUlCZENBRFJ3MEFJQUFnQkdvZ0FVRUJhaUlBT2dBQUlBa2dBRUVDZEdvaUFDQUFLQUlBUVFGcU5nSUFJQWtvQWdRaUFFRUNTU0FBUVFGeGNnMEFJQUlnQkVFQmFqWUNBQ0FMUVFGcUlRZ0xJQWRCTUdva0FDQUlDNkFGQVF4L0l3QkJFR3NpRENRQUFuOGdCRUVIVFFSQUlBeENBRGNEQ0NBTVFRaHFJZ1VnQXlBRUVBSWFRV3dnQUNBQklBSWdCVUVJRUF3aUFDQUFJQVJMR3lBQUlBQkJpWDlKR3d3QkN5QUFRUUFnQVNnQ0FFRUJhaUlOUVFGMEVBTWhEMEZVSUFNb0FBQWlCa0VQY1NJQVFRcExEUUFhSUFJZ0FFRUZhallDQUNBRElBUnFJZ0pCQkdzaEJ5QUNRUWRySVFzZ0FFRUdhaUVPUVFRaEFpQUdRUVIySVFWQklDQUFkQ0lJUVFGeUlRbEJBQ0VBUVFFaEJpQURJUVFEUUFKQUlBWkJBWEZGQkVBRFFDQUZRWDl6UVlDQWdJQjRjbWdpQmtFWVNVVUVRQ0FBUVNScUlRQWdCQ0FMVFFSL0lBUkJBMm9GSUFRZ0MydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xJQUlnQmtFZWNTSUtha0VDYWlFQ0lBWkJBWFpCQTJ3Z0FHb2dCU0FLZGtFRGNXb2lBQ0FOVHcwQkFuOGdCQ0FMU3lBQ1FRTjJJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBUWdCMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVUxJQVVnQ0VFQmEzRWlCaUFJUVFGMFFRRnJJZ29nQ1dzaUVFa0VmeUFPUVFGckJTQUZJQXB4SWdVZ0VFRUFJQVVnQ0U0YmF5RUdJQTRMSVFVZ0R5QUFRUUYwYWlBR1FRRnJJZ283QVFBZ0FFRUJhaUVBSUFJZ0JXb2hBaUFJUVFFZ0Jtc2dDaUFHUVFCS0d5QUphaUlKU2dSQUlBbEJBa2dOQVVFZ0lBbG5JZ1ZySVE1QkFTQUZRUjl6ZENFSUN5QUFJQTFQRFFBZ0NrRUFSeUVHQW44Z0JDQUxTeUFDUVFOMUlBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFJZ0JDQUhhMEVEZEdwQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xRV3dnQ1VFQlJ3MEFHa0ZRSUFBZ0RVc05BQnBCYkNBQ1FTQktEUUFhSUFFZ0FFRUJhellDQUNBRUlBSkJCMnBCQTNWcUlBTnJDeUFNUVJCcUpBQUw4Z0VCQVg4Z0FrVUVRQ0FBUWdBM0FnQWdBRUVBTmdJUUlBQkNBRGNDQ0VHNGZ3OExJQUFnQVRZQ0RDQUFJQUZCQkdvMkFoQWdBa0VFVHdSQUlBQWdBU0FDYWlJQlFRUnJJZ00yQWdnZ0FDQURLQUFBTmdJQUlBRkJBV3N0QUFBaUFRUkFJQUFnQVdkQkYyczJBZ1FnQWc4TElBQkJBRFlDQkVGL0R3c2dBQ0FCTmdJSUlBQWdBUzBBQUNJRE5nSUFBa0FDUUFKQUlBSkJBbXNPQWdFQUFnc2dBQ0FCTFFBQ1FSQjBJQU55SWdNMkFnQUxJQUFnQVMwQUFVRUlkQ0FEYWpZQ0FBc2dBU0FDYWtFQmF5MEFBQ0lCUlFSQUlBQkJBRFlDQkVGc0R3c2dBQ0FCWnlBQ1FRTjBhMEVKYWpZQ0JDQUNDMFFCQW44Z0FTQUNMd0VBSWdNZ0FTZ0NCR29pQkRZQ0JDQUFJQU5CQW5SQm9CMXFLQUlBSUFFb0FnQkJBQ0FFYTNaeE5nSUFJQUVRRHhvZ0FDQUNRUVJxTmdJRUM1OEJBUVIvUVFNaEFTQUFLQUlFSWdKQklFMEVRQ0FBS0FJSUlnRWdBQ2dDRUU4RVFDQUFJQUpCQjNFMkFnUWdBQ0FCSUFKQkEzWnJJZ0kyQWdnZ0FDQUNLQUFBTmdJQVFRQVBDeUFBS0FJTUlnTWdBVVlFUUVFQlFRSWdBa0VnU1JzUEN5QUFJQUVnQVNBRGF5QUNRUU4ySWdRZ0FTQUVheUFEU1NJQkd5SURheUlFTmdJSUlBQWdBaUFEUVFOMGF6WUNCQ0FBSUFRb0FBQTJBZ0FMSUFFTFNBRUVmeUFBS0FJRUlBQW9BZ0JCQW5ScUlnSXRBQUlnQWk4QkFDRUVJQUVnQVNnQ0JDSUZJQUl0QUFNaUFtbzJBZ1FnQUNBRUlBRW9BZ0FnQlhSQkFDQUNhM1pxTmdJQUMxSUJCSDhnQUNnQ0JDQUFLQUlBUVFKMGFpSUNMUUFDSUFJdkFRQWhCQ0FCSUFJdEFBTWlBaUFCS0FJRWFpSUZOZ0lFSUFBZ0JDQUNRUUowUWFBZGFpZ0NBQ0FCS0FJQVFRQWdCV3QyY1dvMkFnQUxDQUFnQUVHSWYwc0xHZ0FnQUFSQUlBRUVRQ0FDSUFBZ0FSRUNBQThMSUFBUUJnc0xwZ2dDRFg4QmZpTUFRUkJySWdra0FDQUpRUUEyQWd3Z0NVRUFOZ0lJQW44Q1FDQURRZWdKYWlBRElBbEJDR29nQ1VFTWFpQUJJQUlnQTBHQUFXb1FDeUlQUVloL1N3MEFRVlFnQ1NnQ0RDSUVJQUFvQWdBaUFVSC9BWEZCQVdwTERRRWFJQUJCQkdvaEN5QUFJQUZCLzRHQWVIRWdCRUVRZEVHQWdQd0hjWEkyQWdCQmZ5QUVJQVJCQUVnYlFRRnFJUUJCQUNFQklBa29BZ2doQlVFQUlRSURRQ0FBSUFKR0JFQWdCVUVEYXlFQlFRQWhBQU5BQWtCQkFDRUNJQUFnQVU0RVFBTkFJQUFnQlU0TkFpQURJQUFnQTJwQjZBbHFMUUFBUVFKMGFrRkFheUlCSUFFb0FnQWlBVUVCYWpZQ0FDQUJJQU5xSUFBNkFPZ0hJQUJCQVdvaEFBd0FDd0FGQTBBZ0FrRUVSa1VFUUNBRElBTWdBQ0FDYWlJSGFrSG9DV290QUFCQkFuUnFRVUJySWdnZ0NDZ0NBQ0lJUVFGcU5nSUFJQU1nQ0dvZ0J6b0E2QWNnQWtFQmFpRUNEQUVMQ3lBQVFRUnFJUUFNQWdzQUN3c2dCRUVCYWlFT0lBTW9BZ0FoQjBFQUlRQkJBU0VJQTBBZ0NDQU9SZzBESUE0Z0NHc2hCQ0FESUFoQkFuUnFLQUlBSVFVQ1FBSkFBa0FDUUFKQUFrQkJBU0FJZEVFQmRTSU5RUUZyRGdnQUFRUUNCQVFFQXdRTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBQUlRRURRQ0FDSUFaR0RRVWdBeUFDSUFkcWFpMEE2QWNoQ2lBTElBRkJBWFJxSWd3Z0JEb0FBU0FNSUFvNkFBQWdBa0VCYWlFQ0lBRkJBV29oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaENpQUFJUUVEUUNBQ0lBcEdEUVFnQ3lBQlFRRjBhaUlHSUFNZ0FpQUhhbW90QU9nSElndzZBQUlnQmlBRU9nQUJJQVlnRERvQUFDQUdJQVE2QUFNZ0FrRUJhaUVDSUFGQkFtb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBRVFRaDBRWUQrQTNFaEJDQUFJUUVEUUNBQ0lBWkdEUU1nQ3lBQlFRRjBhaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitOd0FBSUFKQkFXb2hBaUFCUVFScUlRRU1BQXNBQzBFQUlRSWdCVUVBSUFWQkFFb2JJUVlnQkVFSWRFR0EvZ054SVFRZ0FDRUJBMEFnQWlBR1JnMENJQXNnQVVFQmRHb2lDaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJaEUzQUFnZ0NpQVJOd0FBSUFKQkFXb2hBaUFCUVFocUlRRU1BQXNBQzBFQUlRRWdCVUVBSUFWQkFFb2JJUW9nQkVFSWRFR0EvZ054SVF3Z0FDRUVBMEFnQVNBS1JnMEJJQXNnQkVFQmRHb2hFQ0FNSUFNZ0FTQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJUkZCQUNFQ0EwQWdBaUFOVGtVRVFDQVFJQUpCQVhScUlnWWdFVGNBR0NBR0lCRTNBQkFnQmlBUk53QUlJQVlnRVRjQUFDQUNRUkJxSVFJTUFRc0xJQUZCQVdvaEFTQUVJQTFxSVFRTUFBc0FDeUFJUVFGcUlRZ2dCU0FIYWlFSElBVWdEV3dnQUdvaEFBd0FDd0FGSUFNZ0FrRUNkR29pQjBGQWF5QUJOZ0lBSUFKQkFXb2hBaUFIS0FJQUlBRnFJUUVNQVFzQUN3QUxJQThMSUFsQkVHb2tBQXZ5QWdFR2Z5TUFRU0JySWdVa0FDQUVLQUlBSVFZZ0JVRU1haUFDSUFNUURTSURRWWgvVFFSQUlBUkJCR29oQWlBQUlBRnFJZ2xCQTJzaEJFRUFJQVpCRUhaclFSOXhJUU1EUUNBRlFReHFFQThnQUNBRVQzSkZCRUFnQWlBRktBSU1JZ1lnQlNnQ0VDSUhkQ0FEZGtFQmRHb2lDQzBBQVNFS0lBQWdDQzBBQURvQUFDQUNJQVlnQnlBS2FpSUdkQ0FEZGtFQmRHb2lCeTBBQUNFSUlBVWdCaUFITFFBQmFqWUNFQ0FBSUFnNkFBRWdBRUVDYWlFQURBRUxDd05BSUFWQkRHb1FEeUVISUFVb0Fnd2hCaUFGS0FJUUlRUWdBQ0FKVHlBSGNrVUVRQ0FDSUFZZ0JIUWdBM1pCQVhScUlnWXRBQUFoQnlBRklBUWdCaTBBQVdvMkFoQWdBQ0FIT2dBQUlBQkJBV29oQUF3QkN3c0RRQ0FBSUFsUFJRUkFJQUlnQmlBRWRDQURka0VCZEdvaUJ5MEFBU0VJSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQkNBSWFpRUVEQUVMQzBGc1FXd2dBU0FGS0FJVUlBVW9BaGhIR3lBRVFTQkhHeUVEQ3lBRlFTQnFKQUFnQXd2UEZBRWpmeU1BUWRBQWF5SUZKQUJCYkNFSkFrQWdBMEVLU1EwQUFrQWdBeUFDTHdBRUlnY2dBaThBQUNJSUlBSXZBQUlpRFdwcVFRWnFJZ3hKRFFBZ0JDOEJBaUVHSUFWQlBHb2dBa0VHYWlJQ0lBZ1FEU0lKUVloL1N3MEJJQVZCS0dvZ0FpQUlhaUlDSUEwUURTSUpRWWgvU3cwQklBVkJGR29nQWlBTmFpSUNJQWNRRFNJSlFZaC9TdzBCSUFVZ0FpQUhhaUFESUF4ckVBMGlDVUdJZjBzTkFTQUVRUVJxSVFvZ0FDQUJhaUlmUVFOcklTQkJBQ0FHYTBFZmNTRUxJQVVvQWdnaEVTQUZLQUljSVJJZ0JTZ0NNQ0VUSUFVb0FrUWhGQ0FGS0FJRUlRa2dCU2dDR0NFTklBVW9BaXdoRENBRktBSkFJUVlnQlNnQ0VDRWhJQVVvQWlRaElpQUZLQUk0SVNNZ0JTZ0NUQ0VrSUFVb0FnQWhGU0FGS0FJVUlSWWdCU2dDS0NFWElBVW9BandoR0VFQklROGdBQ0FCUVFOcVFRSjJJZ1JxSWdNZ0JHb2lBaUFFYWlJWklRUWdBaUVJSUFNaEJ3TkFJQTlCQVhGRklBUWdJRTl5UlFSQUlBQWdDaUFZSUFaMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhHaUFPTFFBRElSQWdCeUFLSUJjZ0RIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0RpMEFBaUViSUE0dEFBTWhEeUFJSUFvZ0ZpQU5kQ0FMZGtFQ2RHb2lEaThCQURzQUFDQU9MUUFDSVJ3Z0RpMEFBeUVkSUFRZ0NpQVZJQWwwSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEhpQU9MUUFESVE0Z0FDQVFhaUlsSUFvZ0dDQUdJQnBxSWdaMElBdDJRUUowYWlJUUx3RUFPd0FBSUJBdEFBSWdFQzBBQXlFbUlBY2dEMm9pSnlBS0lCY2dEQ0FiYWlJYWRDQUxka0VDZEdvaUJ5OEJBRHNBQUNBSExRQUNJUXdnQnkwQUF5RVFJQWdnSFdvaUd5QUtJQllnRFNBY2FpSVBkQ0FMZGtFQ2RHb2lDQzhCQURzQUFDQUlMUUFDSVEwZ0NDMEFBeUVjSUFRZ0Rtb2lIU0FLSUJVZ0NTQWVhaUlPZENBTGRrRUNkR29pQ1M4QkFEc0FBQ0FHYWlFQVFRTWhCd0ovSUJRZ0pFa0VRQ0FBSVFaQkF3d0JDeUFBUVFkeElRWWdGQ0FBUVFOMmF5SVVLQUFBSVJoQkFBc2dDUzBBQXlFZUlBa3RBQUloQ0NBTUlCcHFJUUFnRXlBalNRUi9JQUFGSUJNZ0FFRURkbXNpRXlnQUFDRVhRUUFoQnlBQVFRZHhDeUVNSUEwZ0Qyb2hBQ0FIY2lFSlFRTWhEd0ovSUJJZ0lra0VRQ0FBSVExQkF3d0JDeUFBUVFkeElRMGdFaUFBUVFOMmF5SVNLQUFBSVJaQkFBc2dDQ0FPYWlFQUlBbHlJQkVnSVVrRWZ5QUFCU0FSSUFCQkEzWnJJaEVvQUFBaEZVRUFJUThnQUVFSGNRc2hDU0FsSUNacUlRQWdFQ0FuYWlFSElCc2dIR29oQ0NBZElCNXFJUVFnRDNKRklROE1BUXNMSUFVZ0REWUNMQ0FGSUFZMkFrQWdCU0FOTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBSWdCMGtnQUNBRFMzSU5BRUZzSVFrZ0NDQVpTdzBCSUFOQkEyc2hDUU5BSUFWQlBHb1FEMFVnQUNBSlNYRUVRQ0FBSUFvZ0JTZ0NQQ0lOSUFVb0FrQWlESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdBQ0FPTFFBRGFpSUdJQW9nRFNBTUlBNHRBQUpxSWdCMElBdDJRUUowYWlJTUx3RUFPd0FBSUFVZ0FDQU1MUUFDYWpZQ1FDQUdJQXd0QUFOcUlRQU1BUVVnQTBFQ2F5RU1BMEFnQlVFOGFoQVBJUVlnQlNnQ1BDRU5JQVVvQWtBaENTQUFJQXhMSUFaeVJRUkFJQUFnQ2lBTklBbDBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdDU0FHTFFBQ2FqWUNRQ0FBSUFZdEFBTnFJUUFNQVFzTEEwQWdBQ0FNUzBVRVFDQUFJQW9nRFNBSmRDQUxka0VDZEdvaUJpOEJBRHNBQUNBQUlBWXRBQU5xSVFBZ0NTQUdMUUFDYWlFSkRBRUxDd0pBSUFBZ0EwOE5BQ0FBSUFvZ0RTQUpkQ0FMZGlJQVFRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FKSUFNdEFBSnFJUWtNQVFzZ0NVRWZTdzBBUVNBZ0NTQUtJQUJCQW5ScUxRQUNhaUlBSUFCQklFOGJJUWtMSUFKQkEyc2hEQU5BSUFWQktHb1FEMFVnQnlBTVNYRUVRQ0FISUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lBSFFnQzNaQkFuUnFJZzB2QVFBN0FBQWdCeUFOTFFBRGFpSURJQW9nQmlBQUlBMHRBQUpxSWdCMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FDQUdMUUFDYWpZQ0xDQURJQVl0QUFOcUlRY01BUVVnQWtFQ2F5RUdBMEFnQlVFb2FoQVBJUU1nQlNnQ0tDRU1JQVVvQWl3aEFDQUdJQWRKSUFOeVJRUkFJQWNnQ2lBTUlBQjBJQXQyUVFKMGFpSURMd0VBT3dBQUlBVWdBQ0FETFFBQ2FqWUNMQ0FISUFNdEFBTnFJUWNNQVFzTEEwQWdCaUFIU1VVRVFDQUhJQW9nRENBQWRDQUxka0VDZEdvaUF5OEJBRHNBQUNBSElBTXRBQU5xSVFjZ0FDQURMUUFDYWlFQURBRUxDd0pBSUFJZ0IwME5BQ0FISUFvZ0RDQUFkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FBSUFNdEFBSnFJUUFNQVFzZ0FFRWZTdzBBUVNBZ0FDQUtJQUpCQW5ScUxRQUNhaUlBSUFCQklFOGJJUUFMSUJsQkEyc2hEQU5BSUFWQkZHb1FEMFVnQ0NBTVNYRUVRQ0FJSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lBblFnQzNaQkFuUnFJZzB2QVFBN0FBQWdDQ0FOTFFBRGFpSURJQW9nQmlBQ0lBMHRBQUpxSWdKMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FpQUdMUUFDYWpZQ0dDQURJQVl0QUFOcUlRZ01BUVVnR1VFQ2F5RURBMEFnQlVFVWFoQVBJUUlnQlNnQ0ZDRUdJQVVvQWhnaEJ5QURJQWhKSUFKeVJRUkFJQWdnQ2lBR0lBZDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBVWdCeUFDTFFBQ2FqWUNHQ0FJSUFJdEFBTnFJUWdNQVFzTEEwQWdBeUFJU1VVRVFDQUlJQW9nQmlBSGRDQUxka0VDZEdvaUFpOEJBRHNBQUNBSUlBSXRBQU5xSVFnZ0J5QUNMUUFDYWlFSERBRUxDd0pBSUFnZ0dVOE5BQ0FJSUFvZ0JpQUhkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FISUFNdEFBSnFJUWNNQVFzZ0IwRWZTdzBBUVNBZ0J5QUtJQUpCQW5ScUxRQUNhaUlDSUFKQklFOGJJUWNMQTBBZ0JSQVBSU0FFSUNCSmNRUkFJQVFnQ2lBRktBSUFJZ1lnQlNnQ0JDSUNkQ0FMZGtFQ2RHb2lEQzhCQURzQUFDQUVJQXd0QUFOcUlnTWdDaUFHSUFJZ0RDMEFBbW9pQW5RZ0MzWkJBblJxSWdRdkFRQTdBQUFnQlNBQ0lBUXRBQUpxTmdJRUlBTWdCQzBBQTJvaEJBd0JCU0FmUVFKcklRTURRQ0FGRUE4aEFpQUZLQUlBSVFZZ0JTZ0NCQ0VJSUFNZ0JFa2dBbkpGQkVBZ0JDQUtJQVlnQ0hRZ0MzWkJBblJxSWdJdkFRQTdBQUFnQlNBSUlBSXRBQUpxTmdJRUlBUWdBaTBBQTJvaEJBd0JDd3NEUUNBRElBUkpSUVJBSUFRZ0NpQUdJQWgwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVFnQWkwQUEyb2hCQ0FJSUFJdEFBSnFJUWdNQVFzTEFrQWdCQ0FmVHcwQUlBUWdDaUFHSUFoMElBdDJJZ0pCQW5ScUlnTXRBQUE2QUFBZ0F5MEFBMEVCUmdSQUlBZ2dBeTBBQW1vaENBd0JDeUFJUVI5TERRQkJJQ0FJSUFvZ0FrRUNkR290QUFKcUlnSWdBa0VnVHhzaENBdEJiRUZzUVd4QmJFRnNRV3hCYkVGc0lBRWdDRUVnUnhzZ0JTZ0NDQ0FGS0FJTVJ4c2dCMEVnUnhzZ0JTZ0NIQ0FGS0FJZ1J4c2dBRUVnUnhzZ0JTZ0NNQ0FGS0FJMFJ4c2dDVUVnUnhzZ0JTZ0NSQ0FGS0FKSVJ4c2hDUXdKQ3dBTEFBc0FDd0FMQUFzQUN3QUxBQXRCYkNFSkN5QUZRZEFBYWlRQUlBa0w3QkFCSG44akFFSFFBR3NpQlNRQVFXd2hDUUpBSUFOQkNra05BQUpBSUFNZ0FpOEFCQ0lHSUFJdkFBQWlCeUFDTHdBQ0lnaHFha0VHYWlJT1NRMEFJQVF2QVFJaER5QUZRVHhxSUFKQkJtb2lBaUFIRUEwaUNVR0lmMHNOQVNBRlFTaHFJQUlnQjJvaUFpQUlFQTBpQ1VHSWYwc05BU0FGUVJScUlBSWdDR29pQWlBR0VBMGlDVUdJZjBzTkFTQUZJQUlnQm1vZ0F5QU9heEFOSWdsQmlIOUxEUUVnQkVFRWFpRUtJQUFnQVdvaUhFRURheUVkUVFBZ0QydEJIM0VoQ3lBRktBSUlJUkVnQlNnQ0hDRVNJQVVvQWpBaEV5QUZLQUpFSVJRZ0JTZ0NCQ0VKSUFVb0FoZ2hCaUFGS0FJc0lRY2dCU2dDUUNFSUlBVW9BaEFoSGlBRktBSWtJUjhnQlNnQ09DRWdJQVVvQWt3aElTQUZLQUlBSVJVZ0JTZ0NGQ0VXSUFVb0FpZ2hGeUFGS0FJOElSaEJBU0VOSUFBZ0FVRURha0VDZGlJQ2FpSU9JQUpxSWc4Z0Ftb2lHU0VFSUE4aEFpQU9JUU1EUUNBTlJTQUVJQjFQY2tVRVFDQUtJQmdnQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUFnQ2lBWElBZDBJQXQyUVFGMGFpSU1MUUFCSVJBZ0F5QU1MUUFBT2dBQUlBb2dGaUFHZENBTGRrRUJkR29pREMwQUFTRWFJQUlnREMwQUFEb0FBQ0FLSUJVZ0NYUWdDM1pCQVhScUlnd3RBQUVoR3lBRUlBd3RBQUE2QUFBZ0NpQVlJQWdnRFdvaUNIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFFZ0NpQVhJQWNnRUdvaUIzUWdDM1pCQVhScUlnd3RBQUVoRUNBRElBd3RBQUE2QUFFZ0NpQVdJQVlnR21vaURIUWdDM1pCQVhScUlnWXRBQUVoR2lBQ0lBWXRBQUE2QUFFZ0NpQVZJQWtnRzJvaUczUWdDM1pCQVhScUlna3RBQUVoSWlBRUlBa3RBQUE2QUFFZ0NDQU5haUVHUVFNaENRSi9JQlFnSVVrRVFFRURJUTBnQmd3QkN5QVVJQVpCQTNackloUW9BQUFoR0VFQUlRMGdCa0VIY1FzaENDQUhJQkJxSVFZZ0V5QWdTUVIvSUFZRklCTWdCa0VEZG1zaUV5Z0FBQ0VYUVFBaENTQUdRUWR4Q3lFSElBd2dHbW9oRENBSklBMXlJUkJCQXlFTkFuOGdFaUFmU1FSQUlBd2hCa0VEREFFTElBeEJCM0VoQmlBU0lBeEJBM1pySWhJb0FBQWhGa0VBQ3lBYklDSnFJUXdnRUhJaEVDQVJJQjVKQkg4Z0RBVWdFU0FNUVFOMmF5SVJLQUFBSVJWQkFDRU5JQXhCQjNFTElRa2dCRUVDYWlFRUlBSkJBbW9oQWlBRFFRSnFJUU1nQUVFQ2FpRUFJQTBnRUhKRklRME1BUXNMSUFVZ0J6WUNMQ0FGSUFnMkFrQWdCU0FHTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBQWdEa3NnQXlBUFMzSU5BRUZzSVFrZ0FpQVpTdzBCSUE1QkEyc2hDUU5BSUFWQlBHb1FEeUFBSUFsUGNrVUVRQ0FLSUFVb0Fqd2lCaUFGS0FKQUlnZDBJQXQyUVFGMGFpSUlMUUFCSVF3Z0FDQUlMUUFBT2dBQUlBb2dCaUFISUF4cUlnWjBJQXQyUVFGMGFpSUhMUUFBSVFnZ0JTQUdJQWN0QUFGcU5nSkFJQUFnQ0RvQUFTQUFRUUpxSVFBTUFRc0xBMEFnQlVFOGFoQVBJUWNnQlNnQ1BDRUdJQVVvQWtBaENTQUFJQTVQSUFkeVJRUkFJQW9nQmlBSmRDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0NTQUdMUUFCYWpZQ1FDQUFJQWM2QUFBZ0FFRUJhaUVBREFFTEN3TkFJQUFnRGs5RkJFQWdDaUFHSUFsMElBdDJRUUYwYWlJSExRQUJJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdDV29oQ1F3QkN3c2dEMEVEYXlFQUEwQWdCVUVvYWhBUElBQWdBMDF5UlFSQUlBb2dCU2dDS0NJR0lBVW9BaXdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFESUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWl3Z0F5QUlPZ0FCSUFOQkFtb2hBd3dCQ3dzRFFDQUZRU2hxRUE4aEJ5QUZLQUlvSVFZZ0JTZ0NMQ0VBSUFNZ0QwOGdCM0pGQkVBZ0NpQUdJQUIwSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FBSUFZdEFBRnFOZ0lzSUFNZ0J6b0FBQ0FEUVFGcUlRTU1BUXNMQTBBZ0F5QVBUMFVFUUNBS0lBWWdBSFFnQzNaQkFYUnFJZ2N0QUFFaENDQURJQWN0QUFBNkFBQWdBMEVCYWlFRElBQWdDR29oQUF3QkN3c2dHVUVEYXlFREEwQWdCVUVVYWhBUElBSWdBMDl5UlFSQUlBb2dCU2dDRkNJR0lBVW9BaGdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFDSUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWhnZ0FpQUlPZ0FCSUFKQkFtb2hBZ3dCQ3dzRFFDQUZRUlJxRUE4aEJ5QUZLQUlVSVFZZ0JTZ0NHQ0VESUFJZ0dVOGdCM0pGQkVBZ0NpQUdJQU4wSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FESUFZdEFBRnFOZ0lZSUFJZ0J6b0FBQ0FDUVFGcUlRSU1BUXNMQTBBZ0FpQVpUMFVFUUNBS0lBWWdBM1FnQzNaQkFYUnFJZ2N0QUFFaENDQUNJQWN0QUFBNkFBQWdBa0VCYWlFQ0lBTWdDR29oQXd3QkN3c0RRQ0FGRUE4Z0JDQWRUM0pGQkVBZ0NpQUZLQUlBSWdJZ0JTZ0NCQ0lHZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FLSUFJZ0JpQUlhaUlDZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQWlBR0xRQUJhallDQkNBRUlBYzZBQUVnQkVFQ2FpRUVEQUVMQ3dOQUlBVVFEeUVISUFVb0FnQWhCaUFGS0FJRUlRSWdCQ0FjVHlBSGNrVUVRQ0FLSUFZZ0FuUWdDM1pCQVhScUlnWXRBQUFoQnlBRklBSWdCaTBBQVdvMkFnUWdCQ0FIT2dBQUlBUkJBV29oQkF3QkN3c0RRQ0FFSUJ4UFJRUkFJQW9nQmlBQ2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBRVFRRnFJUVFnQWlBSWFpRUNEQUVMQzBGc1FXeEJiRUZzUVd4QmJFRnNRV3dnQVNBQ1FTQkhHeUFGS0FJSUlBVW9BZ3hIR3lBRFFTQkhHeUFGS0FJY0lBVW9BaUJIR3lBQVFTQkhHeUFGS0FJd0lBVW9BalJIR3lBSlFTQkhHeUFGS0FKRUlBVW9Ba2hIR3lFSkRBRUxRV3doQ1FzZ0JVSFFBR29rQUNBSkMxZ0JBMzhDUUNBQUtBS1E2d0VpQVVVTkFDQUJLQUlBSUFGQnROVUJhaWdDQUNJQ0lBRkJ1TlVCYWlnQ0FDSURFQk1nQWdSQUlBTWdBU0FDRVFJQURBRUxJQUVRQmdzZ0FFRUFOZ0tnNndFZ0FFSUFOd09RNndFTDZRTUNCSDhDZmlBQVFRQkJLQkFESVFRZ0FrRUJRUVVnQXhzaUFFa0VRQ0FBRHdzZ0FVVUVRRUYvRHd0QkFTRUdBa0FDUUNBRFFRRkdEUUFnQXlFR0lBRW9BQUFpQlVHbzZyNXBSZzBBUVhZaEF5QUZRWEJ4UWREVXRNSUJSdzBCUVFnaEF5QUNRUWhKRFFFZ0FUVUFCQ0VJSUFSQkFUWUNGQ0FFSUFnM0F3QkJBQThMSUFFZ0FpQUdFQm9pQXlBQ1N3MEFJQVFnQXpZQ0dFRnlJUU1nQUNBQmFpSUZRUUZyTFFBQUlnSkJDSEVOQUNBQ1FTQnhJZ1pGQkVCQmNDRURJQVV0QUFBaUJVR25BVXNOQVNBRlFRZHhyVUlCSUFWQkEzWkJDbXF0aGlJSVFnT0lmaUFJZkNFSklBQkJBV29oQUFzZ0FrRUdkaUVGSUFKQkFuWkJBQ0VEQWtBQ1FBSkFBa0FnQWtFRGNVRUJhdzREQUFFQ0F3c2dBQ0FCYWkwQUFDRURJQUJCQVdvaEFBd0NDeUFBSUFGcUx3QUFJUU1nQUVFQ2FpRUFEQUVMSUFBZ0FXb29BQUFoQXlBQVFRUnFJUUFMUVFGeElRSUNmZ0pBQWtBQ1FBSkFJQVZCQVdzT0F3RUNBd0FMUW44Z0JrVU5BeG9nQUNBQmFqRUFBQXdEQ3lBQUlBRnFNd0FBUW9BQ2ZBd0NDeUFBSUFGcU5RQUFEQUVMSUFBZ0FXb3BBQUFMSVFnZ0JDQUNOZ0lnSUFRZ0F6WUNIQ0FFSUFnM0F3QkJBQ0VESUFSQkFEWUNGQ0FFSUFnZ0NTQUdHeUlJTndNSUlBUkNnSUFJSUFnZ0NFS0FnQWhhR3o0Q0VBc2dBd3RmQVFGL1FiaC9JUU1nQVVFQlFRVWdBaHNpQWs4RWZ5QUFJQUpxUVFGckxRQUFJZ0JCQTNGQkFuUkJvQjVxS0FJQUlBSnFJQUJCQkhaQkRIRkJzQjVxS0FJQWFpQUFRU0J4SWdGRmFpQUJRUVYySUFCQndBQkpjV29GUWJoL0N3c01BQ0FBSUFFZ0FrRUFFQmtMbHdNQ0JYOENmaU1BUVVCcUlnUWtBQUpBQTBBZ0FVRUZUd1JBQWtBZ0FDZ0FBRUZ3Y1VIUTFMVENBVVlFUUVKK0lRY2dBVUVJU1EwRUlBQW9BQVFpQWtGM1N3MEVJQUpCQ0dvaUF5QUJTdzBFSUFKQmdYOUpEUUVNQkFzZ0JFRVlhaUFBSUFFUUd5RUNRbjRnQkNrREdFSUFJQVFvQWl4QkFVY2JJQUliSWdkQ2ZWWU5BeUFISUFoOElnZ2dCMVJDZmlFSERRTUNRQUpBSUFGQkNFa05BQ0FBS0FBQVFYQnhRZERVdE1JQlJ3MEFJQUFvQUFRaUFrRjNTdzBGUWJoL0lBSkJDR29pQWlBQklBSkpHeUVEREFFTElBUkJHR29nQUNBQkVCc2lBa0dJZjBzRVFDQUNJUU1NQVF0QnVIOGhBeUFDRFFBZ0FTQUVLQUl3SWdKcklRVWdBQ0FDYWlFR0EwQWdCaUFGSUFSQkRHb1FIU0lEUVloL1N3MEJJQU5CQTJvaUFpQUZTd1JBUWJoL0lRTU1BZ3NnQlNBQ2F5RUZJQUlnQm1vaEJpQUVLQUlRUlEwQUN5QUVLQUk0Qkg5QnVIOGhBeUFGUVFSSkRRRWdCa0VFYWdVZ0Jnc2dBR3NoQXdzZ0EwR0lmMHNOQXdzZ0FTQURheUVCSUFBZ0Eyb2hBQXdCQ3d0Q2ZpQUlJQUViSVFjTElBUkJRR3NrQUNBSEMyUUJBWDlCdUg4aEF3SkFJQUZCQTBrTkFDQUFMUUFDSVFFZ0FpQUFMd0FBSWdCQkFYRTJBZ1FnQWlBQVFRRjJRUU54SWdNMkFnQWdBaUFBSUFGQkVIUnlRUU4ySWdBMkFnZ0NRQUpBSUFOQkFXc09Bd0lCQUFFTFFXd1BDeUFBSVFNTElBTUxSQUVDZnlBQklBSW9BZ1FpQXlBQktBSUVhaUlFTmdJRUlBQWdBMEVDZEVHZ0hXb29BZ0FnQVNnQ0FFRUFJQVJyZG5FMkFnQWdBUkFQR2lBQUlBSkJDR28yQWdRTHpnRUJCbjlCdW44aENnSkFJQUlvQWdRaUNDQUNLQUlBSWdscUlnMGdBU0FBYTBzTkFFRnNJUW9nQ1NBRUlBTW9BZ0FpQzJ0TERRQWdBQ0FKYWlJRUlBSW9BZ2dpREdzaEFpQUFJQUZCSUdzaUFDQUxJQWxCQUJBZ0lBTWdDU0FMYWpZQ0FBSkFBa0FnQkNBRmF5QU1Ud1JBSUFJaEJRd0JDeUFNSUFRZ0JtdExEUUlnQnlBSElBSWdCV3NpQW1vaUFTQUlhazhFUUNBRUlBRWdDQkFLR2d3Q0N5QUNJQWhxSVFnZ0JDQUJRUUFnQW1zUUNpQUNheUVFQ3lBRUlBQWdCU0FJUVFFUUlBc2dEU0VLQ3lBS0M4Y0VBUUovSUFBZ0Eyb2hCZ0pBSUFOQkIwd0VRQU5BSUFBZ0JrOE5BaUFBSUFJdEFBQTZBQUFnQUVFQmFpRUFJQUpCQVdvaEFnd0FDd0FMSUFSQkFVWUVRQUpBSUFBZ0Ftc2lCVUVIVFFSQUlBQWdBaTBBQURvQUFDQUFJQUl0QUFFNkFBRWdBQ0FDTFFBQ09nQUNJQUFnQWkwQUF6b0FBeUFBSUFJZ0JVRUNkQ0lGUWNBZWFpZ0NBR29pQWlnQUFEWUFCQ0FDSUFWQjRCNXFLQUlBYXlFQ0RBRUxJQUFnQWlrQUFEY0FBQXNnQWtFSWFpRUNJQUJCQ0dvaEFBc2dBU0FHVHdSQUlBQWdBMm9oQVNBRVFRRkhJQUFnQW10QkQwcHlSUVJBQTBBZ0FDQUNLUUFBTndBQUlBSkJDR29oQWlBQVFRaHFJZ0FnQVVrTkFBd0RDd0FMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0EwRVJTUTBCSUFCQkVHb2hBQU5BSUFBZ0Fpa0FFRGNBQUNBQUlBSXBBQmczQUFnZ0FDQUNLUUFnTndBUUlBQWdBaWtBS0RjQUdDQUNRU0JxSVFJZ0FFRWdhaUlBSUFGSkRRQUxEQUVMQWtBZ0FDQUJTd1JBSUFBaEFRd0JDeUFCSUFCcklRVUNRQ0FFUVFGSElBQWdBbXRCRDBweVJRUkFJQUloQXdOQUlBQWdBeWtBQURjQUFDQURRUWhxSVFNZ0FFRUlhaUlBSUFGSkRRQUxEQUVMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0JVRVJTQTBBSUFCQkVHb2hBQ0FDSVFNRFFDQUFJQU1wQUJBM0FBQWdBQ0FES1FBWU53QUlJQUFnQXlrQUlEY0FFQ0FBSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUJCSUdvaUFDQUJTUTBBQ3dzZ0FpQUZhaUVDQ3dOQUlBRWdCazhOQVNBQklBSXRBQUE2QUFBZ0FVRUJhaUVCSUFKQkFXb2hBZ3dBQ3dBTEM2NEhBZ1YvQVg0akFFR0FBV3NpRVNRQUlCRWdBellDZkVGL0lROENRQUpBQWtBQ1FBSkFJQUlPQkFFQUF3SUVDeUFHUlFSQVFiaC9JUThNQkF0QmJDRVBJQVV0QUFBaUFpQURTdzBESUFnZ0FrRUNkQ0lDYWlnQ0FDRURJQUlnQjJvb0FnQWhBaUFBUVFBNkFBc2dBRUlBTndJQUlBQWdBallDRENBQUlBTTZBQW9nQUVFQU93RUlJQUVnQURZQ0FFRUJJUThNQXdzZ0FTQUpOZ0lBUVFBaER3d0NDeUFLUlFSQVFXd2hEd3dDQzBFQUlROGdDMFVnREVFWlNISU5BVUVJSUFSMFFRaHFJUUJCQUNFREEwQWdBQ0FEVFEwQ0lBTkJRR3NoQXd3QUN3QUxRV3doRHlBUklCRkIvQUJxSUJGQitBQnFJQVVnQmhBTUlnTkJpSDlMRFFBZ0VTZ0NlQ0lDSUFSTERRQWdFU2dDZkVFQmFpRUpJQUJCQ0dvaEMwR0FnQUlnQW5SQkVIVWhCVUVCSVJCQkFTQUNkQ0lQUVFGcklnb2hFZ05BSUFrZ0RrY0VRQUpBSUJFZ0RrRUJkQ0lFYWk4QkFDSU1RZi8vQTBZRVFDQUxJQkpCQTNScUlBNDJBZ1FnRWtFQmF5RVNRUUVoREF3QkN5QVFRUUFnQlNBTXdVb2JJUkFMSUFRZ0RXb2dERHNCQUNBT1FRRnFJUTRNQVFzTElBQWdBallDQkNBQUlCQTJBZ0FDUUNBS0lCSkdCRUFnRFVIcUFHb2hCa0VBSVJCQkFDRU1BMEFnQ1NBUVJnUkFJQTlCQTNZZ0QwRUJkbXBCQTJvaUJVRUJkQ0VFUVFBaERFRUFJUklEUUVFQUlRNGdEeUFTVFEwRUEwQWdEa0VDUndSQUlBc2dCU0FPYkNBTWFpQUtjVUVEZEdvZ0JpQU9JQkpxYWkwQUFEWUNCQ0FPUVFGcUlRNE1BUXNMSUJKQkFtb2hFaUFFSUF4cUlBcHhJUXdNQUFzQUJTQVJJQkJCQVhScUxnRUFJUVVnQmlBTWFpSUVJQk0zQUFCQkNDRU9BMEFnQlNBT1NnUkFJQVFnRG1vZ0V6Y0FBQ0FPUVFocUlRNE1BUXNMSUJOQ2dZS0VpSkNnd0lBQmZDRVRJQkJCQVdvaEVDQUZJQXhxSVF3TUFRc0FDd0FMSUE5QkEzWWdEMEVCZG1wQkEyb2hCVUVBSVJCQkFDRU9BMEFnQ1NBUVJnMEJRUUFoRENBUklCQkJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBTVJ3UkFJQXNnRGtFRGRHb2dFRFlDQkFOQUlBVWdEbW9nQ25FaURpQVNTdzBBQ3lBTVFRRnFJUXdNQVFzTElCQkJBV29oRUF3QUN3QUxJQUpCQVdvaEJVRUFJUXdEUUNBTUlBOUhCRUFnRFNBTElBeEJBM1JxSWdrb0FnUWlCRUVCZEdvaUFpQUNMd0VBSWdaQkFXbzdBUUFnQ1NBRklBWm5RV0J6YWlJQ09nQURJQWtnQmlBQ2RDQVBhenNCQUNBSklBZ2dCRUVDZENJQ2FpZ0NBRG9BQWlBSklBSWdCMm9vQWdBMkFnUWdERUVCYWlFTURBRUxDeUFCSUFBMkFnQWdBeUVQQ3lBUlFZQUJhaVFBSUE4TDdWb0NPMzhHZmlNQVFlQUJheUlFSkFBQ1FFR3c3QWtRQlNJRlJRUkFRVUFoQnd3QkN5QUZRZ0EzQXZUcUFTQUZRUUEyQXNUckFTQUZRUUEyQXJUckFTQUZRZ0EzQXB6ckFTQUZRUUEyQXJqcEFTQUZRUUEyQXF6c0NTQUZRZ0EzQXRUckFTQUZRZ0EzQXF6ckFTQUZRZ0EzQTRqckFTQUZRZ0EzQXVUcUFTQUZRZ0EzQXVUckFTQUZRWUdBZ01BQU5nSzg2d0VnQlVJQU53S2s2d0VnQlVIODZnRnFRUUEyQWdBZ0JVR1E2d0ZxUWdBM0F3QWdCUkFZSUFWQnJOVUJhaUVVSUFWQitPc0JhaUVjSUFWQnNPb0JhaUVpSUFWQm9EQnFJU29nQlVHWUlHb2hLeUFGUWFqUUFHb2hIaUFGUVJCcUlTd2dCVUVJYWlFb0lBVkJCR29oTFNBRlFjRHBBV29oS1NBRlFZanJBV29nQkVHVUFXb2hMeUFFUVl3QmFpRXdJQVJCaEFGcUlURWdCRUhjQUdvaE1pQUVRZFFBYWlFeklBUkJ6QUJxSVRRZ0FDRWRBa0FDUUFKQUFrQUNRQU5BUVFGQkJTQUZLQUxrNmdFYklRWUNRQU5BSUFNZ0Jra05BU0FDS0FBQVFYQnhRZERVdE1JQlJnUkFRYmgvSVFjZ0EwRUlTUTBJSUFJb0FBUWlEa0YzU3dSQVFYSWhCd3dKQ3lBRElBNUJDR29pQ1VrTkNDQU9RWUIvU3dSQUlBa2hCd3dKQ3lBRElBbHJJUU1nQWlBSmFpRUNEQUVMQ3lBRlFnQTNBcXpwQVNBRlFnQTNBK2pwQVNBRlFRQTJBcGpyQVNBRlFnQTNBNERxQVNBRlFnTTNBL2pwQVNBRlFiVHBBV3BDQURjQ0FDQUZRZkRwQVdwQ0FEY0RBQ0FGUWFqUUFHb2lDVUdNZ0lEZ0FEWUNBQ0FGUWF6UUFXcEI0QklwQWdBM0FnQWdCVUcwMEFGcVFlZ1NLQUlBTmdJQUlBVWdCVUVRYWpZQ0FDQUZJQVZCb0RCcU5nSUVJQVVnQlVHWUlHbzJBZ2dnQlNBSk5nSU1JQVZCQVVFRklBVW9BdVRxQVJzMkFyenBBUUpBSUFGRkRRQWdCU2dDck9rQklna2dIVVlOQUNBRklBazJBcmpwQVNBRklCMDJBcXpwQVNBRktBS3c2UUVoRGlBRklCMDJBckRwQVNBRklCMGdEaUFKYTJvMkFyVHBBUXRCdUg4aENTQURRUVZCQ1NBRktBTGs2Z0VpQmh0SkRRVWdBa0VCUVFVZ0Joc2dCaEFhSWc1QmlIOUxCRUFnRGlFSkRBVUxJQU1nRGtFRGFra05CU0FwSUFJZ0RpQUdFQmtpQmtHSWYwc0VRQ0FHSVFrTUJRc2dCZzBGQWtBQ1FDQUZLQUtvNndGQkFVY05BQ0FGS0FLazZ3RWlDVVVOQUNBRktBS1U2d0ZGRFFBZ0NTZ0NCRUVCYXlJSElBVW9BdHpwQVNJS3JVS0hsYSt2bUxiZW01NS9ma0xKejlteThlVzY2aWVGUWhlSlFzL1cwNzdTeDZ2WlFuNUMrZlBkOFpuMm1hc1dmQ0kvUWlHSUlEK0ZRcy9XMDc3U3g2dlpRbjRpUDBJZGlDQS9oVUw1ODkzeG1mYVpxeForSWo5Q0lJZ2dQNFduY1NFR0lBa29BZ0FoRlFOQVFRQWhDQUpBSUJVZ0JrRUNkR29vQWdBaUNVVU5BQ0FKS0FJSVFRaEpEUUFnQ1NnQ0JDSVNLQUFBUWJmSXd1RitSdzBBSUJJb0FBUWhDQXNnQ0NBS1J3UkFJQVlnQjNGQkFXb2hCaUFJRFFFTEN5QUpSUTBBSUFVUUdDQUZRWDgyQXFEckFTQUZJQWsyQXBUckFTQUZJQVVvQXR6cEFTSUlOZ0tZNndFTUFRc2dCU2dDM09rQklRZ0xBa0FnQ0VVTkFDQUZLQUtZNndFZ0NFWU5BRUZnSVFrTUJnc0NRQ0FGS0FMZzZRRUVRQ0FGSUFVb0F1anFBU0lKUlRZQzdPb0JJQWtOQVNBRlF2bnEwTkRueWFIazRRQTNBNmpxQVNBRlFnQTNBNkRxQVNBRlFzL1cwNzdTeDZ2WlFqY0RtT29CSUFWQzF1dUM3dXI5aWZYZ0FEY0RrT29CSUFWQ0FEY0RpT29CSUNKQkFFRW9FQU1hREFFTElBVkJBRFlDN09vQkN5QUJJQjFxSVNVZ0JTQUZLUVBvNlFFZ0RxMThOd1BvNlFFZ0F5QU9heUVESUFJZ0Rtb2hBaUFkSVE0RFFDQUNJQU1nQkVFc2FoQWRJaFZCaUg5TEJFQWdGU0VKREFZTElBTkJBMnNpTlNBVlNRMEVJQUpCQTJvaEcwRnNJUWtDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQUVLQUlzRGdNQ0FRQVZDeUFWUWYvL0Iwc05FeUFWUVFOSkRSSWdCU2tEeU9rQklUOENRQUpBSUJzdEFBQWlDVUVEY1NJYVFRRnJEZ01HQVFBSEN5QUZLQUtBNmdFTkFFRmlJUWtNRlFzZ0ZVRUZTUTBTSUJzb0FBQWhBd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRWlDVUVDYXc0Q0FRSUFDeUFKUVFCSElRY2dBMEVFZGtIL0IzRWhDMEVESVFZZ0EwRU9ka0gvQjNFTUFndEJCQ0VHSUFOQkJIWkIvLzhBY1NFTFFRRWhCeUFEUVJKMkRBRUxJQU5CQkhaQi8vOFBjU0lMUVlDQUNFc05FMEVCSVFkQkJTRUdJQUl0QUFkQkNuUWdBMEVXZG5JTElnZ2dCbW9pQ1NBVlN3MFNBa0FnQzBHQkJra05BQ0FGS0FLYzZ3RkZEUUJCQUNFREEwQWdBMEdEZ0FGTERRRWdBMEZBYXlFRERBQUxBQXNnQmlBYmFpRVBJQnBCQTBjTkJpQUZLQUlNSWdJdEFBRkJDSFFoQXlBSERRY2dBMFVOQ0NBRVFmQUFhaUFQSUFnUURTSURRWWgvU3cwSklBSkJCR29oQmlBTElCeHFJaEpCQTJzaENrRUFJQUl2QVFKclFSOXhJUWNnSENFREEwQWdCRUh3QUdvUUQwVWdBeUFLU1hFRVFDQURJQVlnQkNnQ2NDSUlJQVFvQW5RaUQzUWdCM1pCQW5ScUlnSXZBUUE3QUFBZ0F5QUNMUUFEYWlJRElBWWdDQ0FQSUFJdEFBSnFJZ2gwSUFkMlFRSjBhaUlDTHdFQU93QUFJQVFnQ0NBQ0xRQUNhallDZENBRElBSXRBQU5xSVFNTUFRVWdFa0VDYXlFSUEwQWdCRUh3QUdvUUR5RVBJQVFvQW5BaENpQUVLQUowSVFJZ0F5QUlTeUFQY2tVRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUNpOEJBRHNBQUNBRUlBSWdDaTBBQW1vMkFuUWdBeUFLTFFBRGFpRUREQUVMQ3dOQUlBTWdDRTBFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pRHk4QkFEc0FBQ0FESUE4dEFBTnFJUU1nQWlBUExRQUNhaUVDREFFTEN3SkFJQU1nRWs4TkFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUF5MEFBRG9BQUNBRExRQURRUUZHQkVBZ0FpQURMUUFDYWlFQ0RBRUxJQUpCSDBzTkFFRWdJQUlnQXkwQUFtb2lBaUFDUVNCUEd5RUNDMEZzUVd3Z0N5QUVLQUo0SUFRb0FueEhHeUFDUVNCSEd5RUREQXNMQUFzQUN5QUVLQUkwSWdJZ0pTQU9hMHNOQ2lBT1JRUkFRUUFoQ1NBQ0RRSU1EZ3NnRGlBYkxRQUFJQUlRQXhvZ0FpRUpEQXdMSUJVZ0pTQU9hMHNOQ1NBT0RRRkJBQ0VKSUJWRkRRd0xRYlovSVFrTUVRc2dEaUFiSUJVUUFob2dGU0VKREFvTElCd2dHd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRkJBV3NPQXdFQUFnQUxJQWxCQTNZaEEwRUJEQUlMSUJzdkFBQkJCSFloQTBFQ0RBRUxJQlZCQkVrTkRpQUNMd0FESUFJdEFBVkJFSFJ5SWdKQmo0Q0FBVXNORGlBQ1FRUjJJUU5CQXdzaUFtb3RBQUFnQTBFZ2FoQURJUWtnQlNBRE5nS0E2d0VnQlNBSk5nTHc2Z0VnQWtFQmFpRUpEQVVMSUJVQ2Z3SkFBa0FDUUNBSlFRSjJRUU54UVFGckRnTUJBQUlBQ3lBSlFRTjJJUU5CQVF3Q0N5QWJMd0FBUVFSMklRTkJBZ3dCQ3lBQ0x3QURJQUl0QUFWQkVIUnlRUVIySVFOQkF3c2lBaUFEYWlJSlFTQnFTUVJBSUFrZ0ZVc05EU0FjSUFJZ0cyb2dBeEFDSVFJZ0JTQUROZ0tBNndFZ0JTQUNOZ0x3NmdFZ0FpQURhaUlDUWdBM0FCZ2dBa0lBTndBUUlBSkNBRGNBQ0NBQ1FnQTNBQUFNQlFzZ0JTQUROZ0tBNndFZ0JTQUNJQnRxTmdMdzZnRU1CQXNnQjBVRVFDQWVJQThnQ0NBVUVCUWlBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRlNFRERBTUxJQXRGSUFoRmNnMExJQXRCQ0hZaUF5QUlJQXRKQkg4Z0NFRUVkQ0FMYmdWQkR3dEJHR3dpQWtHTUNHb29BZ0JzSUFKQmlBaHFLQUlBYWlJR1FRTjJJQVpxSUFKQmdBaHFLQUlBSUFKQmhBaHFLQUlBSUFOc2Fra0VRQ01BUVJCckloQWtBQ0FlS0FJQUlRTWdGRUh3QkdwQkFFSHNBQkFESVFaQlZDRUNBa0FnQTBIL0FYRWlERUVNU3cwQUFrQWdGRUhjQ1dvZ0JpQVFRUWhxSUJCQkRHb2dEeUFJSUJSQjNBdHFJaGNRQ3lJU1FZaC9TdzBBSUJBb0Fnd2lCaUFNU3cwQklCUkJxQVZxSVEwZ0ZFR2tCV29oTmlBZVFRUnFJUkVnQTBHQWdJQjRjU0UzSUFaQkFXb2lFeUVDSUFZaEF3TkFJQUlpQjBFQmF5RUNJQU1pQ2tFQmF5RURJQlFnQ2tFQ2RHb29BdkFFUlEwQUMwRUJJQWNnQjBFQlRSc2hGa0VBSVFkQkFTRUNBMEFnQWlBV1J3UkFJQlFnQWtFQ2RDSURhaWdDOEFRaEdDQURJQTFxSUFjMkFnQWdBa0VCYWlFQ0lBY2dHR29oQnd3QkN3c2dEU0FITmdJQVFRQWhBaUFRS0FJSUlRTURRQ0FDSUFOSEJFQWdEU0FDSUJScVFkd0phaTBBQUNJWVFRSjBhaUlaSUJrb0FnQWlHVUVCYWpZQ0FDQVVJQmxCQVhScUloa2dHRG9BM1FVZ0dTQUNPZ0RjQlNBQ1FRRnFJUUlNQVFzTFFRQWhBeUFOUVFBMkFnQWdEQ0FHUVg5emFpRUdRUUVoQWdOQUlBSWdGa2NFUUNBVUlBSkJBblJxSWcwZ0F6WUNBQ0FOS0FMd0JDQUNJQVpxZENBRGFpRURJQUpCQVdvaEFnd0JDd3NnRENBVElBcHJJZ1pyUVFGcUlRb2dCaUVEQTBBZ0F5QUtTUVJBSUJRZ0EwRTBiR29oRFVFQklRSURRQ0FDSUJaSEJFQWdEU0FDUVFKMEloaHFJQlFnR0dvb0FnQWdBM1kyQWdBZ0FrRUJhaUVDREFFTEN5QURRUUZxSVFNTUFRc0xJQmNnRkVFMEVBSWhPQ0FVUVpBTWFpRTVJQk1nREdzaE9pQVVRZHdGYWlFWFFRQWhDZ05BQWtBQ1FDQUhJQXBIQkVCQkFTQU1JQk1nRnlBS1FRRjBhaUlDTFFBQklnMXJJZ05ySWhoMElSa2dBaTBBQUNFV0lEZ2dEVUVDZEdvaUh5Z0NBQ0VDSUFZZ0dFMEVRQ0EyUVFFZ0F5QTZhaUlOSUExQkFVd2JJaUJCQW5RaUpHb29BZ0FoRFNBNUlCUWdBMEUwYkdwQk5CQUNJU0VnRFVFQmRDRW1JQkVnQWtFQ2RHb2hJeUFnUVFGTkRRSWdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVnSUNFZ0pHb29BZ0FoSkVFQUlRSURRQ0FDSUNSR0RRTWdJeUFDUVFKMGFpQWdOZ0VBSUFKQkFXb2hBZ3dBQ3dBTElBSWdBaUFaYWlJTklBSWdEVXNiSVEwZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRURBMEFnQWlBTlJnMERJQkVnQWtFQ2RHb2dBellCQUNBQ1FRRnFJUUlNQUFzQUN5QWVJQXhCRUhRZ04zSWdESEpCZ0FKeU5nSUFEQU1MSUFjZ0RXc2hKQ0FYSUNacUlTWkJBQ0VOQTBBZ0RTQWtSZzBCUVFFZ0dDQVRJQ1lnRFVFQmRHb2lKeTBBQVNJQ2F5STdhM1FpUENBaElBSkJBblJxSWlBb0FnQWlBbW9oUFNBRElEdHFRUkIwUVlDQS9BZHhJQ2N0QUFCQkNIUnlJQlp5UVlDQWdCQnlJU2NEUUNBaklBSkJBblJxSUNjMkFRQWdBa0VCYWlJQ0lEMUpEUUFMSUNBZ0lDZ0NBQ0E4YWpZQ0FDQU5RUUZxSVEwTUFBc0FDeUFmSUI4b0FnQWdHV28yQWdBZ0NrRUJhaUVLREFBTEFBc2dFaUVDQ3lBUVFSQnFKQUFnQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZpRUREQU1MSUI0Z0R5QUlJQlFRRkNJQ1FZaC9TeUFDSUFoUGNnMExJQndnQ3lBQ0lBOXFJQWdnQW1zZ0hoQVhJUU1NQWdzZ0F3UkFJQndnQ3lBUElBZ2dBaEFXSVFNTUFnc2dIQ0FMSUE4Z0NDQUNFQmNoQXd3QkN5QWNJQXNnRHlBSUlBSVFGU0VEQ3lBRFFZaC9TdzBJSUFVZ0N6WUNnT3NCSUFVZ0hEWUM4T29CSUFWQkFUWUNnT29CSUJwQkFrWUVRQ0FGSUI0MkFnd0xJQXNnSEdvaUFrSUFOd0FBSUFKQ0FEY0FHQ0FDUWdBM0FCQWdBa0lBTndBSUlBbEJpSDlMRFFvTElBa2dGVVlOQ0NBVklBbHJJUVlnQlNnQ25Pc0JJUW9DUUNBSklCdHFJZ010QUFBaUQwVUVRRUVCSVFKQkFDRVBRYmgvSVFrZ0JrRUJSZzBCREFzTEFuOGdBMEVCYWlBUHdDSUNRUUJPRFFBYUlBSkJmMFlFUUNBR1FRTklEUXNnQXk4QUFVR0EvZ0ZxSVE4Z0EwRURhZ3dCQ3lBR1FRSklEUW9nQXkwQUFTQVBRUWgwY2tHQWdBSnJJUThnQTBFQ2Fnc2hFa0c0ZnlFSklCSkJBV29pQWlBVklCdHFJZ2RMRFFvZ0xDQUZJQkl0QUFBaUVrRUdka0VqUVFrZ0FpQUhJQUpyUWNBUVFkQVJRZkFTSUFVb0FvVHFBU0FLSUE4Z0ZCQWhJZ2xCaUg5TERRZ2dLeUFvSUJKQkJIWkJBM0ZCSDBFSUlBSWdDV29pQWlBSElBSnJRWUFMUVlBTVFZQVhJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQ0VHSWYwc05DRUZzSVFrZ0tpQXRJQkpCQW5aQkEzRkJORUVKSUFJZ0NHb2lBaUFISUFKclFZQU5RZUFPUVpBWklBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlCMEdJZjBzTkNpQUNJQWRxSUFOcklnSWhDU0FDUVloL1N3MEtDeUFPSUE5QkFFeHlEUUVMUWJwL0lRa01DQXNnSlNBT2F5RUpJQVlnQW1zaEJpQUNJQU5xSVFjQ1FBSkFBa0FnQ2tVRVFDQVBRUWxJSUFVcEE4anBBVUtCZ0lBSVZISU5BaUFvS0FJQUlnSkJDR29oRWlBQ0tBSUVJUXBCQUNFRFFRQWhBZ05BSUFNZ0NuWkZCRUFnQWlBU0lBTkJBM1JxTFFBQ1FSWkxhaUVDSUFOQkFXb2hBd3dCQ3dzZ0JVRUFOZ0tjNndFZ0FrRUlJQXByZEVFVVR3MEJEQU1MSUFWQkFEWUNuT3NCQ3lBRUlBVW9BdkRxQVNJRE5nTGNBU0FKSUE1cUlSWWdBeUFGS0FLQTZ3RnFJUmNDUUNBUFJRUkFJQTRoQnd3QkN5QUZLQUs0NlFFaEdpQUZLQUswNlFFaEdDQUZLQUt3NlFFaEVpQUZRUUUyQW9UcUFVRUFJUU1EUUNBRFFRTkhCRUFnQkNBRFFRSjBJZ0pxSUFJZ0JXcEJyTkFCYWlnQ0FEWUNaQ0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRVGhxSWdJZ0J5QUdFQTFCaUg5TERRTkJDQ0FQSUE5QkNFNGJJUjhnTkNBQ0lBVW9BZ0FRSGlBeklBSWdCU2dDQ0JBZUlESWdBaUFGS0FJRUVCNGdEaUFTYXlFWlFRQWhDQU5BSUFSQk9Hb1FEMEVEUmlBSUlCOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnZEJFSFlpRVVIL0FYRWhDeUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWd4QkVIWWlJVUgvQVhFaEVDQUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFZZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDa0gvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJS2F5SU5JQUlnQWlBTlN4c2lFeUFLYWpZQ1BDQUdJQVFvQWpnZ0NuUkJBQ0FUYTNZZ0FpQVRheUlUZEdvaENpQUVRVGhxRUE4YUlBSWdEVTBOQVNBRUlBUW9BandpQWlBVGFqWUNQQ0FFS0FJNElBSjBRUUFnRTJ0MklBcHFJUW9NQVFzZ0JDQUNJQVFvQWp3aURXbzJBandnQkNnQ09DQU5kRUVBSUFwcmRpQUdhaUVLSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUFvMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQURCRUFnQkNnQ1pDRUtEQU1MSUFRb0FtZ2hDZ3dCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFZZ0EwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnWkZJQVpxSVFvZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQW8yQW1RTHB5RUNJRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUJCcU5nSThJQVFvQWpnZ0JuUkJBQ0FoYTNZZ0Ftb2hBZ3NnQ3lBUWFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lBdHFOZ0k4SUFRb0FqZ2dCblJCQUNBUmEzWWdBMm9oQXdzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQmtFQUlBZEJHSFlpQ3lBRUtBSThhaUlRYTNZZ0MwRUNkRUdnSFdvb0FnQnhJQWRCLy84RGNXbzJBa3dnQkNBUUlBeEJHSFlpQjJvaUN6WUNQQ0FFSUFkQkFuUkJvQjFxS0FJQUlBWkJBQ0FMYTNaeElBeEIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdaQkdIWWlCeUFFS0FJOGFpSUxOZ0k4SUFRZ0IwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBdHJkbkVnQmtILy93TnhhallDVkNBRVFmQUFhaUFJUVF4c2FpSUdJQW8yQWdnZ0JpQUNOZ0lFSUFZZ0F6WUNBQ0FJUVFGcUlRZ2dBeUFaYWlBQ2FpRVpEQUVMQ3lBSUlCOUlEUU1nRmtFZ2F5RWhJQTRoQndOQUlBUkJPR29RRDBFRFJpQUlJQTlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ1pCRUhZaUkwSC9BWEVoQ2lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklnMUJFSFlpSUVIL0FYRWhFeUFFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRTWdRVUlnaUNCQVFpQ0lweUVMQWtBZ1FrSVFpS2NpREVIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSU1heUlSSUFJZ0FpQVJTeHNpRUNBTWFqWUNQQ0FESUFRb0FqZ2dESFJCQUNBUWEzWWdBaUFRYXlJTWRHb2hFQ0FFUVRocUVBOGFJQUlnRVUwTkFTQUVJQVFvQWp3aUFpQU1hallDUENBRUtBSTRJQUowUVFBZ0RHdDJJQkJxSVJBTUFRc2dCQ0FDSUFRb0Fqd2lFR28yQWp3Z0JDZ0NPQ0FRZEVFQUlBeHJkaUFEYWlFUUlBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlCQTJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FMQkVBZ0JDZ0NaQ0VRREFNTElBUW9BbWdoRUF3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBTWdDMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ05GSUFOcUlSQWdBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUJBMkFtUUxweUVNSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lCTnFOZ0k4SUFRb0FqZ2dBblJCQUNBZ2EzWWdER29oREFzZ0NpQVRha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQXBxTmdJOElBUW9BamdnQW5SQkFDQWphM1lnQzJvaEN3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUFrRUFJQVpCR0hZaUF5QUVLQUk4YWlJS2EzWWdBMEVDZEVHZ0hXb29BZ0J4SUFaQi8vOERjV28yQWt3Z0JDQUtJQTFCR0hZaUEyb2lCallDUENBRUlBTkJBblJCb0IxcUtBSUFJQUpCQUNBR2EzWnhJQTFCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnSkJHSFlpQXlBRUtBSThhaUlHTmdJOElBUWdBMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQVpyZG5FZ0FrSC8vd054YWpZQ1ZBSkFBa0FDUUNBRUtBTGNBU0lESUFSQjhBQnFJQWhCQjNGQkRHeHFJaE1vQWdBaUVXb2lJeUFYU3cwQUlBY2dFeWdDQkNJTklCRnFJZ3BxSUNGTERRQWdDa0VnYWlBV0lBZHJUUTBCQ3lBRUlCTW9BZ2cyQWhnZ0JDQVRLUUlBTndNUUlBY2dGaUFFUVJCcUlBUkIzQUZxSUJjZ0VpQVlJQm9RSHlFS0RBRUxJQWNnRVdvaEFpQVRLQUlJSVFZZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNBSkFJQkZCRVVrTkFDQUhJQU1wQUJBM0FCQWdCeUFES1FBWU53QVlJQkZCRUd0QkVVZ05BQ0FEUVJCcUlRTWdCMEVnYWlFUkEwQWdFU0FES1FBUU53QUFJQkVnQXlrQUdEY0FDQ0FSSUFNcEFDQTNBQkFnRVNBREtRQW9Od0FZSUFOQklHb2hBeUFSUVNCcUloRWdBa2tOQUFzTElBSWdCbXNoQXlBRUlDTTJBdHdCSUFJZ0Vtc2dCa2tFUUNBR0lBSWdHR3RMRFFjZ0dpQWFJQU1nRW1zaUEyb2lFU0FOYWs4RVFDQUNJQkVnRFJBS0dnd0NDeUFESUExcUlRMGdBaUFSUVFBZ0Eyc1FDaUFEYXlFQ0lCSWhBd3NnQmtFUVR3UkFJQUlnQXlrQUFEY0FBQ0FDSUFNcEFBZzNBQWdnRFVFUlNBMEJJQUlnRFdvaEJpQUNRUkJxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQUdTUTBBQ3d3QkN3SkFJQVpCQjAwRVFDQUNJQU10QUFBNkFBQWdBaUFETFFBQk9nQUJJQUlnQXkwQUFqb0FBaUFDSUFNdEFBTTZBQU1nQWlBRElBWkJBblFpQmtIQUhtb29BZ0JxSWdNb0FBQTJBQVFnQXlBR1FlQWVhaWdDQUdzaEF3d0JDeUFDSUFNcEFBQTNBQUFMSUExQkNVa05BQ0FDSUExcUlSRWdBa0VJYWlJR0lBTkJDR29pQTJ0QkQwd0VRQU5BSUFZZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQmtFSWFpSUdJQkZKRFFBTUFnc0FDeUFHSUFNcEFBQTNBQUFnQmlBREtRQUlOd0FJSUExQkdVZ05BQ0FDUVJocUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFSU1EwQUN3c2dDa0dJZjBzRVFDQUtJUWtNQmdVZ0V5QVFOZ0lJSUJNZ0REWUNCQ0FUSUFzMkFnQWdDRUVCYWlFSUlBY2dDbW9oQnlBTElCbHFJQXhxSVJrTUFnc0FDd3NnQ0NBUFNBMERJQWdnSDJzaEJnTkFBa0FnQmlBUFRnUkFRUUFoQXdOQUlBTkJBMFlOQWlBRklBTkJBblFpQW1wQnJOQUJhaUFDSUFScUtBSmtOZ0lBSUFOQkFXb2hBd3dBQ3dBTEFrQUNRQUpBSUFRb0F0d0JJZ01nQkVId0FHb2dCa0VIY1VFTWJHb2lDQ2dDQUNJTWFpSVFJQmRMRFFBZ0J5QUlLQUlFSWdzZ0RHb2lDbW9nSVVzTkFDQUtRU0JxSUJZZ0IydE5EUUVMSUFRZ0NDZ0NDRFlDS0NBRUlBZ3BBZ0EzQXlBZ0J5QVdJQVJCSUdvZ0JFSGNBV29nRnlBU0lCZ2dHaEFmSVFvTUFRc2dCeUFNYWlFQ0lBZ29BZ2doQ0NBSElBTXBBQUEzQUFBZ0J5QURLUUFJTndBSUFrQWdERUVSU1EwQUlBY2dBeWtBRURjQUVDQUhJQU1wQUJnM0FCZ2dERUVRYTBFUlNBMEFJQU5CRUdvaEF5QUhRU0JxSVF3RFFDQU1JQU1wQUJBM0FBQWdEQ0FES1FBWU53QUlJQXdnQXlrQUlEY0FFQ0FNSUFNcEFDZzNBQmdnQTBFZ2FpRURJQXhCSUdvaURDQUNTUTBBQ3dzZ0FpQUlheUVESUFRZ0VEWUMzQUVnQWlBU2F5QUlTUVJBSUFnZ0FpQVlhMHNOQnlBYUlCb2dBeUFTYXlJRGFpSU1JQXRxVHdSQUlBSWdEQ0FMRUFvYURBSUxJQU1nQzJvaEN5QUNJQXhCQUNBRGF4QUtJQU5ySVFJZ0VpRURDeUFJUVJCUEJFQWdBaUFES1FBQU53QUFJQUlnQXlrQUNEY0FDQ0FMUVJGSURRRWdBaUFMYWlFSUlBSkJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBSWdBeTBBQURvQUFDQUNJQU10QUFFNkFBRWdBaUFETFFBQ09nQUNJQUlnQXkwQUF6b0FBeUFDSUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQUlnQXlrQUFEY0FBQXNnQzBFSlNRMEFJQUlnQzJvaERDQUNRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dERWtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQzBFWlNBMEFJQUpCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXhKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdHQlNBR1FRRnFJUVlnQnlBS2FpRUhEQUlMQUFzTElBUW9BdHdCSVFNTFFicC9JUWtnRnlBRGF5SUNJQllnQjJ0TERRSWdCd1IvSUFjZ0F5QUNFQUlnQW1vRlFRQUxJQTVySVFrTUFnc2dCVUVBTmdLYzZ3RUxJQVFnQlNnQzhPb0JJZ00yQXR3QklBa2dEbW9oRENBRElBVW9Bb0RyQVdvaEVBSkFJQTlGQkVBZ0RpRUdEQUVMSUFVb0FyanBBU0VOSUFVb0FyVHBBU0VUSUFVb0FyRHBBU0VTSUFWQkFUWUNoT29CUVFBaEF3TkFJQU5CQTBjRVFDQUVJQU5CQW5RaUFtb2dBaUFGYWtHczBBRnFLQUlBTmdLY0FTQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFmQUFhaUlDSUFjZ0JoQU5RWWgvU3cwQklERWdBaUFGS0FJQUVCNGdNQ0FDSUFVb0FnZ1FIaUF2SUFJZ0JTZ0NCQkFlSUF4QklHc2hHQ0FPSVFZRFFDQUVLQUtJQVNBRUtBS0VBVUVEZEdvcEFnQWlRS2NpQ2tFUWRpSVpRZjhCY1NFTElBUW9BcGdCSUFRb0FwUUJRUU4wYWlrQ0FDSkJweUlXUVJCMkloOUIvd0Z4SVJvZ0JDZ0NrQUVnQkNnQ2pBRkJBM1JxS1FJQUlrSkNJSWluSVFjZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDRUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDZENJSWF5SVJJQUlnQWlBUlN4c2lGeUFJYWpZQ2RDQUhJQVFvQW5BZ0NIUkJBQ0FYYTNZZ0FpQVhheUlYZEdvaENDQUVRZkFBYWhBUEdpQUNJQkZORFFFZ0JDQUVLQUowSWdJZ0YybzJBblFnQkNnQ2NDQUNkRUVBSUJkcmRpQUlhaUVJREFFTElBUWdBaUFFS0FKMEloRnFOZ0owSUFRb0FuQWdFWFJCQUNBSWEzWWdCMm9oQ0NBRVFmQUFhaEFQR2dzZ0JDa0NuQUVoUkNBRUlBZzJBcHdCSUFRZ1JEY0NvQUVNQVFzQ1FDQUNSUVJBSUFNRVFDQUVLQUtjQVNFSURBTUxJQVFvQXFBQklRZ01BUXNnQkNBRUtBSjBJZ0pCQVdvMkFuUUNmeUFISUFORmFpQUVLQUp3SUFKMFFSOTJhaUlDUVFOR0JFQWdCQ2dDbkFGQkFXc01BUXNnQWtFQ2RDQUVhaWdDbkFFTElnZEZJQWRxSVFnZ0FrRUJSd1JBSUFRZ0JDZ0NvQUUyQXFRQkN3c2dCQ0FFS0FLY0FUWUNvQUVnQkNBSU5nS2NBUXVuSVFJZ1FVS0FnUHdIZzFCRkJFQWdCQ0FFS0FKMElnY2dHbW8yQW5RZ0JDZ0NjQ0FIZEVFQUlCOXJkaUFDYWlFQ0N5QUxJQnBxUVJSUEJFQWdCRUh3QUdvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NkQ0lISUF0cU5nSjBJQVFvQW5BZ0IzUkJBQ0FaYTNZZ0Eyb2hBd3NnQkVId0FHb1FEeG9nQkNBRUtBSndJZ2RCQUNBS1FSaDJJZ3NnQkNnQ2RHb2lHbXQySUF0QkFuUkJvQjFxS0FJQWNTQUtRZi8vQTNGcU5nS0VBU0FFSUJvZ0ZrRVlkaUlLYWlJTE5nSjBJQVFnQ2tFQ2RFR2dIV29vQWdBZ0IwRUFJQXRyZG5FZ0ZrSC8vd054YWpZQ2xBRWdCRUh3QUdvUUR4b2dCQ0JDcHlJSFFSaDJJZ29nQkNnQ2RHb2lDellDZENBRUlBcEJBblJCb0IxcUtBSUFJQVFvQW5CQkFDQUxhM1p4SUFkQi8vOERjV28yQW93QklBUWdBellDT0NBRUlBSTJBandnQkNBSU5nSkFBa0FDUUFKQUlBUW9BdHdCSWdzZ0Eyb2lGaUFRU3cwQUlBWWdBaUFEYWlJS2FpQVlTdzBBSUFwQklHb2dEQ0FHYTAwTkFRc2dCQ0FFUVVCcktBSUFOZ0lJSUFRZ0JDa0RPRGNEQUNBR0lBd2dCQ0FFUWR3QmFpQVFJQklnRXlBTkVCOGhDZ3dCQ3lBRElBWnFJUWNnQmlBTEtRQUFOd0FBSUFZZ0N5a0FDRGNBQ0FKQUlBTkJFVWtOQUNBR0lBc3BBQkEzQUJBZ0JpQUxLUUFZTndBWUlBTkJFR3RCRVVnTkFDQUxRUkJxSVFNZ0JrRWdhaUVMQTBBZ0N5QURLUUFRTndBQUlBc2dBeWtBR0RjQUNDQUxJQU1wQUNBM0FCQWdDeUFES1FBb053QVlJQU5CSUdvaEF5QUxRU0JxSWdzZ0Iwa05BQXNMSUFjZ0NHc2hBeUFFSUJZMkF0d0JJQWNnRW1zZ0NFa0VRQ0FJSUFjZ0UydExEUVFnRFNBTklBTWdFbXNpQTJvaUN5QUNhazhFUUNBSElBc2dBaEFLR2d3Q0N5QUhJQXRCQUNBRGF4QUtJQVFnQWlBRGFpSUNOZ0k4SUFOcklRY2dFaUVEQ3lBSVFSQlBCRUFnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0NBQ1FSRklEUUVnQWlBSGFpRUlJQWRCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQWNnQXkwQUFEb0FBQ0FISUFNdEFBRTZBQUVnQnlBRExRQUNPZ0FDSUFjZ0F5MEFBem9BQXlBSElBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFjZ0F5a0FBRGNBQUFzZ0FrRUpTUTBBSUFJZ0Iyb2hDeUFIUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnQzBrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0FrRVpTQTBBSUFkQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF0SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3REN5QUdJQXBxSVFZZ0JFSHdBR29RRHlFRElBOUJBV3NpRHcwQUMwRUFJUUlnQTBFQ1NRMEJBMEFnQWtFRFJ3UkFJQVVnQWtFQ2RDSURha0dzMEFGcUlBTWdCR29vQXB3Qk5nSUFJQUpCQVdvaEFnd0JDd3NnQkNnQzNBRWhBd3RCdW44aENTQVFJQU5ySWdJZ0RDQUdhMHNOQUNBR0JIOGdCaUFESUFJUUFpQUNhZ1ZCQUFzZ0Rtc2hDUXNnQ1VHSWYwc05CZ3NDUUNBRktBTHM2Z0ZGRFFBZ0JTQUZLUU9JNmdFZ0NhMThOd09JNmdFQ1FDQUZLQUxRNmdFaUFpQUphaUlJUVI5TkJFQWdEa1VOQVNBQ0lDSnFJQTRnQ1JBQ0dpQUZLQUxRNmdFZ0NXb2hDQXdCQ3lBT0lRTWdBZ1JBSUFJZ0ltb2dBMEVnSUFKckVBSWFJQVVvQXREcUFTRUNJQVZCQURZQzBPb0JJQVVnQlNrRGtPb0JJQVVwQUxEcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RrT29CSUFVZ0JTa0RtT29CSUFVcEFManFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEbU9vQklBVWdCU2tEb09vQklBVXBBTURxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG9Pb0JJQVVnQlNrRHFPb0JJQVVwQU1qcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RxT29CSUFNZ0FtdEJJR29oQXdzZ0NTQU9haUlDSUFOQklHcFBCRUFnQWtFZ2F5RUdJQVVwQTZqcUFTRS9JQVVwQTZEcUFTRkFJQVVwQTVqcUFTRkJJQVVwQTVEcUFTRkNBMEFnQXlrQUdFTFAxdE8rMHNlcjJVSitJRDk4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVDhnQXlrQUVFTFAxdE8rMHNlcjJVSitJRUI4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUFnQXlrQUNFTFAxdE8rMHNlcjJVSitJRUY4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUVnQXlrQUFFTFAxdE8rMHNlcjJVSitJRUo4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUlnQTBFZ2FpSURJQVpORFFBTElBVWdQemNEcU9vQklBVWdRRGNEb09vQklBVWdRVGNEbU9vQklBVWdRamNEa09vQkN5QUNJQU5ORFFFZ0lpQURJQUlnQTJzaUNCQUNHZ3NnQlNBSU5nTFE2Z0VMSURVZ0ZXc2hBeUFWSUJ0cUlRSWdDU0FPYWlFT0lBUW9BakJGRFFBTElDa3BBd0FpUDBKL1VTQS9JQTRnSFd1c1VYSkZCRUJCYkNFSkRBWUxJQVVvQXVEcEFRUkFRV29oQ1NBRFFRUkpEUVlnQlNnQzZPb0JSUVJBSUNJZ0JTZ0MwT29CYWlFS0FuNGdCU2tEaU9vQklqOUNJRm9FUUNBRktRT1k2Z0VpUUVJSGlTQUZLUU9RNmdFaVFVSUJpWHdnQlNrRG9Pb0JJa0pDRElsOElBVXBBNmpxQVNKRFFoS0pmQ0JCUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlJRUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9mb1ZDaDVXdnI1aTIzcHVlZjM1Q25hTzE2b094allyNkFIMGdRa0xQMXRPKzBzZXIyVUorUWgrSlFvZVZyNitZdHQ2Ym5uOStoVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTQkRRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOURBRUxJQVVwQTZEcUFVTEZ6OW15OGVXNjZpZDhDeUEvZkNFL0lDSWhCZ05BSUFvZ0JrRUlhaUlIVHdSQUlBWXBBQUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9maUEvaFVJYmlVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNFL0lBY2hCZ3dCQ3dzQ1FDQUtJQVpCQkdvaUNFa0VRQ0FHSVFnTUFRc2dCalVBQUVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUlYaVVMUDF0Tyswc2VyMlVKK1F2bnozZkdaOXBtckZud2hQd3NEUUNBSUlBcEpCRUFnQ0RFQUFFTEZ6OW15OGVXNjZpZCtJRCtGUWd1SlFvZVZyNitZdHQ2Ym5uOStJVDhnQ0VFQmFpRUlEQUVMQ3lBQ0tBQUFJRDlDSVlnZ1A0VkN6OWJUdnRMSHE5bENmaUkvUWgySUlEK0ZRdm56M2ZHWjlwbXJGbjRpUDBJZ2lDQS9oYWRIRFFjTElBTkJCR3NoQXlBQ1FRUnFJUUlMSUE0Z0hXc2lDVUdKZjA4TkJDQUJJQWxySVFFZ0NTQWRhaUVkUVFFaFBnd0JDd3RCdUg4aEJ5QUREUVFnSFNBQWF5RUhEQVFMUVd3aENRd0JDMEc0ZnlFSkMwRzRmeUVISUFsQmRrWWdQbkVOQVFzZ0NTRUhDeWdDQUEwQUlBVkIvT29CYWlnQ0FDRUJJQVZCK09vQmFpZ0NBQ0VBSUFVUUdDQUZLQUt3NndFZ0FDQUJFQk1nQlVFQU5nS3c2d0VnQlNnQ3BPc0JJZ0lFUUFKQUFrQUNRQUpBSUFJb0FnQWlBd1JBSUFCRkRRSWdBU0FESUFBUkFnQU1BUXNnQUVVTkFnc2dBU0FDSUFBUkFnQU1BZ3NnQXhBR0N5QUNFQVlMSUFWQkFEWUNwT3NCQ3lBQUJFQWdBU0FGSUFBUkFnQU1BUXNnQlJBR0N5QUVRZUFCYWlRQUlBY0xDNmdWQ1FCQmlBZ0xEUUVBQUFBQkFBQUFBZ0FBQUFJQVFhQUlDN01HQVFBQUFBRUFBQUFDQUFBQUFnQUFBQ1lBQUFDQ0FBQUFJUVVBQUVvQUFBQm5DQUFBSmdBQUFNQUJBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFLUUFBQUN3Q0FBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUx3QUFBTW9DQUFDQUFBQUFpZ1VBQUVvQUFBQ0VDUUFBTlFBQUFITURBQUNBQUFBQW5RVUFBRW9BQUFDZ0NRQUFQUUFBQUlFREFBQ0FBQUFBNndVQUFFc0FBQUErQ2dBQVJBQUFBSjREQUFDQUFBQUFUUVlBQUVzQUFBQ3FDZ0FBU3dBQUFMTURBQUNBQUFBQXdRWUFBRTBBQUFBZkRRQUFUUUFBQUZNRUFBQ0FBQUFBSXdnQUFGRUFBQUNtRHdBQVZBQUFBSmtFQUFDQUFBQUFTd2tBQUZjQUFBQ3hFZ0FBV0FBQUFOb0VBQUNBQUFBQWJ3a0FBRjBBQUFBakZBQUFWQUFBQUVVRkFBQ0FBQUFBVkFvQUFHb0FBQUNNRkFBQWFnQUFBSzhGQUFDQUFBQUFkZ2tBQUh3QUFBQk9FQUFBZkFBQUFOSUNBQUNBQUFBQVl3Y0FBSkVBQUFDUUJ3QUFrZ0FBQUFBQUFBQUJBQUFBQVFBQUFBVUFBQUFOQUFBQUhRQUFBRDBBQUFCOUFBQUEvUUFBQVAwQkFBRDlBd0FBL1FjQUFQMFBBQUQ5SHdBQS9UOEFBUDEvQUFEOS93QUEvZjhCQVAzL0F3RDkvd2NBL2Y4UEFQMy9Id0Q5L3o4QS9mOS9BUDMvL3dEOS8vOEIvZi8vQS8zLy93ZjkvLzhQL2YvL0gvMy8vei85Ly85L0FBQUFBQUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFSQUFBQUVnQUFBQk1BQUFBVUFBQUFGUUFBQUJZQUFBQVhBQUFBR0FBQUFCa0FBQUFhQUFBQUd3QUFBQndBQUFBZEFBQUFIZ0FBQUI4QUFBQURBQUFBQkFBQUFBVUFBQUFHQUFBQUJ3QUFBQWdBQUFBSkFBQUFDZ0FBQUFzQUFBQU1BQUFBRFFBQUFBNEFBQUFQQUFBQUVBQUFBQkVBQUFBU0FBQUFFd0FBQUJRQUFBQVZBQUFBRmdBQUFCY0FBQUFZQUFBQUdRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBSHdBQUFDQUFBQUFoQUFBQUlnQUFBQ01BQUFBbEFBQUFKd0FBQUNrQUFBQXJBQUFBTHdBQUFETUFBQUE3QUFBQVF3QUFBRk1BQUFCakFBQUFnd0FBQUFNQkFBQURBZ0FBQXdRQUFBTUlBQUFERUFBQUF5QUFBQU5BQUFBRGdBQUFBd0FCQUVIZ0R3dFJBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCQUFBQUFVQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QUFBQVFBRUhFRUF1TEFRRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVNBQUFBRkFBQUFCWUFBQUFZQUFBQUhBQUFBQ0FBQUFBb0FBQUFNQUFBQUVBQUFBQ0FBQUFBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFBQUVBUVpBU0MrWUVBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQUJBQUFBQkFBQUFBZ0FBQUFBQUFBQUFRQUJBUVlBQUFBQUFBQUVBQUFBQUJBQUFBUUFBQUFBSUFBQUJRRUFBQUFBQUFBRkF3QUFBQUFBQUFVRUFBQUFBQUFBQlFZQUFBQUFBQUFGQndBQUFBQUFBQVVKQUFBQUFBQUFCUW9BQUFBQUFBQUZEQUFBQUFBQUFBWU9BQUFBQUFBQkJSQUFBQUFBQUFFRkZBQUFBQUFBQVFVV0FBQUFBQUFDQlJ3QUFBQUFBQU1GSUFBQUFBQUFCQVV3QUFBQUlBQUdCVUFBQUFBQUFBY0ZnQUFBQUFBQUNBWUFBUUFBQUFBS0JnQUVBQUFBQUF3R0FCQUFBQ0FBQUFRQUFBQUFBQUFBQkFFQUFBQUFBQUFGQWdBQUFDQUFBQVVFQUFBQUFBQUFCUVVBQUFBZ0FBQUZCd0FBQUFBQUFBVUlBQUFBSUFBQUJRb0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFJQUFCQlJBQUFBQUFBQUVGRWdBQUFDQUFBUVVXQUFBQUFBQUNCUmdBQUFBZ0FBTUZJQUFBQUFBQUF3VW9BQUFBQUFBR0JFQUFBQUFRQUFZRVFBQUFBQ0FBQndXQUFBQUFBQUFKQmdBQ0FBQUFBQXNHQUFnQUFEQUFBQVFBQUFBQUVBQUFCQUVBQUFBZ0FBQUZBZ0FBQUNBQUFBVURBQUFBSUFBQUJRVUFBQUFnQUFBRkJnQUFBQ0FBQUFVSUFBQUFJQUFBQlFrQUFBQWdBQUFGQ3dBQUFDQUFBQVVNQUFBQUFBQUFCZzhBQUFBZ0FBRUZFZ0FBQUNBQUFRVVVBQUFBSUFBQ0JSZ0FBQUFnQUFJRkhBQUFBQ0FBQXdVb0FBQUFJQUFFQlRBQUFBQUFBQkFHQUFBQkFBQUFEd1lBZ0FBQUFBQU9CZ0JBQUFBQUFBMEdBQ0FBUVlBWEM0Y0NBUUFCQVFVQUFBQUFBQUFGQUFBQUFBQUFCZ1E5QUFBQUFBQUpCZjBCQUFBQUFBOEYvWDhBQUFBQUZRWDkveDhBQUFBREJRVUFBQUFBQUFjRWZRQUFBQUFBREFYOUR3QUFBQUFTQmYzL0F3QUFBQmNGL2Y5L0FBQUFCUVVkQUFBQUFBQUlCUDBBQUFBQUFBNEYvVDhBQUFBQUZBWDkvdzhBQUFBQ0JRRUFBQUFRQUFjRWZRQUFBQUFBQ3dYOUJ3QUFBQUFSQmYzL0FRQUFBQllGL2Y4L0FBQUFCQVVOQUFBQUVBQUlCUDBBQUFBQUFBMEYvUjhBQUFBQUV3WDkvd2NBQUFBQkJRRUFBQUFRQUFZRVBRQUFBQUFBQ2dYOUF3QUFBQUFRQmYzL0FBQUFBQndGL2YvL0R3QUFHd1g5Ly84SEFBQWFCZjMvL3dNQUFCa0YvZi8vQVFBQUdBWDkvLzhBUVpBWkM0WUVBUUFCQVFZQUFBQUFBQUFHQXdBQUFBQUFBQVFFQUFBQUlBQUFCUVVBQUFBQUFBQUZCZ0FBQUFBQUFBVUlBQUFBQUFBQUJRa0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFBQUFBQmhBQUFBQUFBQUFHRXdBQUFBQUFBQVlXQUFBQUFBQUFCaGtBQUFBQUFBQUdIQUFBQUFBQUFBWWZBQUFBQUFBQUJpSUFBQUFBQUFFR0pRQUFBQUFBQVFZcEFBQUFBQUFDQmk4QUFBQUFBQU1HT3dBQUFBQUFCQVpUQUFBQUFBQUhCb01BQUFBQUFBa0dBd0lBQUJBQUFBUUVBQUFBQUFBQUJBVUFBQUFnQUFBRkJnQUFBQUFBQUFVSEFBQUFJQUFBQlFrQUFBQUFBQUFGQ2dBQUFBQUFBQVlNQUFBQUFBQUFCZzhBQUFBQUFBQUdFZ0FBQUFBQUFBWVZBQUFBQUFBQUJoZ0FBQUFBQUFBR0d3QUFBQUFBQUFZZUFBQUFBQUFBQmlFQUFBQUFBQUVHSXdBQUFBQUFBUVluQUFBQUFBQUNCaXNBQUFBQUFBTUdNd0FBQUFBQUJBWkRBQUFBQUFBRkJtTUFBQUFBQUFnR0F3RUFBQ0FBQUFRRUFBQUFNQUFBQkFRQUFBQVFBQUFFQlFBQUFDQUFBQVVIQUFBQUlBQUFCUWdBQUFBZ0FBQUZDZ0FBQUNBQUFBVUxBQUFBQUFBQUJnNEFBQUFBQUFBR0VRQUFBQUFBQUFZVUFBQUFBQUFBQmhjQUFBQUFBQUFHR2dBQUFBQUFBQVlkQUFBQUFBQUFCaUFBQUFBQUFCQUdBd0FCQUFBQUR3WURnQUFBQUFBT0JnTkFBQUFBQUEwR0F5QUFBQUFBREFZREVBQUFBQUFMQmdNSUFBQUFBQW9HQXdRQVFhUWRDOWtCQVFBQUFBTUFBQUFIQUFBQUR3QUFBQjhBQUFBL0FBQUFmd0FBQVA4QUFBRC9BUUFBL3dNQUFQOEhBQUQvRHdBQS94OEFBUDgvQUFEL2Z3QUEvLzhBQVAvL0FRRC8vd01BLy84SEFQLy9Ed0QvL3g4QS8vOC9BUC8vZndELy8vOEEvLy8vQWYvLy93UC8vLzhILy8vL0QvLy8veC8vLy84Ly8vLy9md0FBQUFBQkFBQUFBZ0FBQUFRQUFBQUFBQUFBQWdBQUFBUUFBQUFJQUFBQUFBQUFBQUVBQUFBQ0FBQUFBUUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQWdBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dCQmdCOExBNEFSQVE9PSI7dmFyIFp0PW5ldyBWQSxWdD0hMTthc3luYyBmdW5jdGlvbiBYaShBLGUsdCl7bGV0IHI9InVua25vd24iO3R5cGVvZiBBIT0ic3RyaW5nIj9yPUEuaHJlZjpBLnN0YXJ0c1dpdGgoImh0dHAiKT9yPUE6cj10eXBlb2YgZTwidSI/YCR7ZX0vJHtBfWA6QSxyLmVuZHNXaXRoKCIuanMiKSYmKHI9ci5zdWJzdHJpbmcoMCxyLmxlbmd0aC0zKSksci5lbmRzV2l0aCgiLndhc20iKSYmKHI9ci5zdWJzdHJpbmcoMCxyLmxlbmd0aC01KSksci5lbmRzV2l0aCgiLndhc20uenN0IikmJihyPXIuc3Vic3RyaW5nKDAsci5sZW5ndGgtOSkpO2xldCBpPWAke3J9Lndhc21gLEk9YXdhaXQgZ0EuZ2V0KGAke2l9LnpzdGAse3Jlc3BvbnNlVHlwZToiYXJyYXlidWZmZXIiLHBhcmFtczp0fSk7VnR8fChhd2FpdCBadC5pbml0KCksVnQ9ITApO2xldCBhPVp0LmRlY29kZShuZXcgVWludDhBcnJheShJLmRhdGEpKS5idWZmZXI7cmV0dXJuKGF3YWl0IGltcG9ydChgJHtyfS5qc2ApKS5kZWZhdWx0KHt3YXNtQmluYXJ5OmF9KX12YXIgWHQ9WGk7dmFyIHp0PWFzeW5jKCk9PldlYkFzc2VtYmx5LnZhbGlkYXRlKG5ldyBVaW50OEFycmF5KFswLDk3LDExNSwxMDksMSwwLDAsMCwxLDUsMSw5NiwwLDEsMTIzLDMsMiwxLDAsMTAsMTAsMSw4LDAsNjUsMCwyNTMsMTUsMjUzLDk4LDExXSkpO3ZhciBBcj10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcj09ImZ1bmN0aW9uIixfdD1uZXcgVGV4dEVuY29kZXIsJHQ9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpO2Z1bmN0aW9uIHppKEEsZSl7bGV0IHQ9e2ZsYWdzOiJyIixlbmNvZGluZzoiYmluYXJ5In0scj1BLmZzX29wZW4oZSx0LmZsYWdzKSxJPUEuZnNfc3RhdChlKS5zaXplLG89bnVsbDtBcj9vPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihJKTpvPW5ldyBBcnJheUJ1ZmZlcihJKTtsZXQgYT1uZXcgVWludDhBcnJheShvKTtyZXR1cm4gQS5mc19yZWFkKHIsYSwwLEksMCksQS5mc19jbG9zZShyKSxhfWZ1bmN0aW9uIGVyKEEsZSx0KXtsZXQgcj1udWxsO0FyP3I9bmV3IFNoYXJlZEFycmF5QnVmZmVyKHQpOnI9bmV3IEFycmF5QnVmZmVyKHQpO2xldCBpPW5ldyBVaW50OEFycmF5KHIpLEk9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLGUsdCk7cmV0dXJuIGkuc2V0KEkpLGl9ZnVuY3Rpb24gUihBLGUsdCxyKXtsZXQgaT0wO3JldHVybiBlIT09bnVsbCYmKGk9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfYXJyYXlfYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxyLGUuYnVmZmVyLmJ5dGVMZW5ndGhdKSxBLkhFQVBVOC5zZXQobmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpLGkpKSxpfWZ1bmN0aW9uIHYoQSxlLHQpe2xldCByPUpTT04uc3RyaW5naWZ5KGUpLGk9QS5sZW5ndGhCeXRlc1VURjgocikrMSxJPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2pzb25fYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxpXSk7QS5zdHJpbmdUb1VURjgocixJLGkpfWZ1bmN0aW9uIEcoQSxlLHQscil7bGV0IGk9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSx0XSksST1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLHRdKSxvPWVyKEEsaSxJKTtyZXR1cm4gTyhyLG8uYnVmZmVyKX1mdW5jdGlvbiB3QShBLGUpe2xldCB0PUEuY2NhbGwoIml0a193YXNtX291dHB1dF9qc29uX2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIl0sWzAsZV0pLHI9QS5VVEY4VG9TdHJpbmcodCk7cmV0dXJuIEpTT04ucGFyc2Uocil9ZnVuY3Rpb24gX2koQSxlLHQscil7ciE9bnVsbCYmci5sZW5ndGg+MCYmci5mb3JFYWNoKGZ1bmN0aW9uKHMsbil7c3dpdGNoKHMudHlwZSl7Y2FzZSBmLlRleHRTdHJlYW06e2xldCBnPV90LmVuY29kZShzLmRhdGEuZGF0YSksdT1SKEEsZyxuLDApLEM9e3NpemU6Zy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dX1gfTt2KEEsQyxuKTticmVha31jYXNlIGYuSnNvbkNvbXBhdGlibGU6e2xldCBnPV90LmVuY29kZShKU09OLnN0cmluZ2lmeShzLmRhdGEpKSx1PVIoQSxnLG4sMCksQz17c2l6ZTpnLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt1fWB9O3YoQSxDLG4pO2JyZWFrfWNhc2UgZi5CaW5hcnlTdHJlYW06e2xldCBnPXMuZGF0YS5kYXRhLHU9UihBLGcsbiwwKSxDPXtzaXplOmcuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3V9YH07dihBLEMsbik7YnJlYWt9Y2FzZSBmLlRleHRGaWxlOntBLmZzX3dyaXRlRmlsZShzLmRhdGEucGF0aCxzLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBmLkJpbmFyeUZpbGU6e0EuZnNfd3JpdGVGaWxlKHMuZGF0YS5wYXRoLHMuZGF0YS5kYXRhKTticmVha31jYXNlIGYuSW1hZ2U6e2xldCBnPXMuZGF0YSx1PVIoQSxnLmRhdGEsbiwwKSxDPVIoQSxnLmRpcmVjdGlvbixuLDEpLFE9dHlwZW9mIGcubWV0YWRhdGE/LmVudHJpZXM8InUiP0FycmF5LmZyb20oZy5tZXRhZGF0YS5lbnRyaWVzKCkpOltdLGw9e2ltYWdlVHlwZTpnLmltYWdlVHlwZSxuYW1lOmcubmFtZSxvcmlnaW46Zy5vcmlnaW4sc3BhY2luZzpnLnNwYWNpbmcsZGlyZWN0aW9uOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Q31gLHNpemU6Zy5zaXplLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt1fWAsbWV0YWRhdGE6UX07dihBLGwsbik7YnJlYWt9Y2FzZSBmLk1lc2g6e2xldCBnPXMuZGF0YSx1PVIoQSxnLnBvaW50cyxuLDApLEM9UihBLGcuY2VsbHMsbiwxKSxRPVIoQSxnLnBvaW50RGF0YSxuLDIpLGw9UihBLGcuY2VsbERhdGEsbiwzKSxjPXttZXNoVHlwZTpnLm1lc2hUeXBlLG5hbWU6Zy5uYW1lLG51bWJlck9mUG9pbnRzOmcubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dX1gLG51bWJlck9mQ2VsbHM6Zy5udW1iZXJPZkNlbGxzLGNlbGxzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Q31gLGNlbGxCdWZmZXJTaXplOmcuY2VsbEJ1ZmZlclNpemUsbnVtYmVyT2ZQb2ludFBpeGVsczpnLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLG51bWJlck9mQ2VsbFBpeGVsczpnLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07dihBLGMsbik7YnJlYWt9Y2FzZSBmLlBvaW50U2V0OntsZXQgZz1zLmRhdGEsdT1SKEEsZy5wb2ludHMsbiwwKSxDPVIoQSxnLnBvaW50RGF0YSxuLDEpLFE9e3BvaW50U2V0VHlwZTpnLnBvaW50U2V0VHlwZSxuYW1lOmcubmFtZSxudW1iZXJPZlBvaW50czpnLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3V9YCxudW1iZXJPZlBvaW50UGl4ZWxzOmcubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtDfWB9O3YoQSxRLG4pO2JyZWFrfWNhc2UgZi5UcmFuc2Zvcm1MaXN0OntsZXQgZz1zLmRhdGEsdT1bXSxDPTA7Zy5mb3JFYWNoKFE9PntsZXQgbD0iIixjPSIiO1EudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihsPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UihBLFEuZml4ZWRQYXJhbWV0ZXJzLG4sQyl9YCxDKz0xLGM9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtSKEEsUS5wYXJhbWV0ZXJzLG4sQyl9YCxDKz0xKTtsZXQgcD17dHJhbnNmb3JtVHlwZTpRLnRyYW5zZm9ybVR5cGUsbnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM6US5udW1iZXJPZkZpeGVkUGFyYW1ldGVycyxudW1iZXJPZlBhcmFtZXRlcnM6US5udW1iZXJPZlBhcmFtZXRlcnMsbmFtZTpRLm5hbWUsaW5wdXRTcGFjZU5hbWU6US5pbnB1dFNwYWNlTmFtZSxvdXRwdXRTcGFjZU5hbWU6US5vdXRwdXRTcGFjZU5hbWUscGFyYW1ldGVyczpjLGZpeGVkUGFyYW1ldGVyczpsfTt1LnB1c2gocCl9KSx2KEEsdSxuKTticmVha31jYXNlIGYuUG9seURhdGE6e2xldCBnPXMuZGF0YSx1PVIoQSxnLnBvaW50cyxuLDApLEM9UihBLGcudmVydGljZXMsbiwxKSxRPVIoQSxnLmxpbmVzLG4sMiksbD1SKEEsZy5wb2x5Z29ucyxuLDMpLGM9UihBLGcudHJpYW5nbGVTdHJpcHMsbiw0KSxwPVIoQSxnLnBvaW50RGF0YSxuLDUpLG09UihBLGcucG9pbnREYXRhLG4sNiksaD17cG9seURhdGFUeXBlOmcucG9seURhdGFUeXBlLG5hbWU6Zy5uYW1lLG51bWJlck9mUG9pbnRzOmcubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dX1gLHZlcnRpY2VzQnVmZmVyU2l6ZTpnLnZlcnRpY2VzQnVmZmVyU2l6ZSx2ZXJ0aWNlczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0N9YCxsaW5lc0J1ZmZlclNpemU6Zy5saW5lc0J1ZmZlclNpemUsbGluZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAscG9seWdvbnNCdWZmZXJTaXplOmcucG9seWdvbnNCdWZmZXJTaXplLHBvbHlnb25zOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLHRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZTpnLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZSx0cmlhbmdsZVN0cmlwczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YCxudW1iZXJPZlBvaW50UGl4ZWxzOmcubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtwfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOmcubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bX1gfTt2KEEsaCxuKTticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBpbnB1dCBJbnRlcmZhY2VUeXBlIil9fSksQS5yZXNldE1vZHVsZVN0ZG91dCgpLEEucmVzZXRNb2R1bGVTdGRlcnIoKTtsZXQgaT1BLnN0YWNrU2F2ZSgpLEk9MDt0cnl7ST1BLmNhbGxNYWluKGUuc2xpY2UoKSl9Y2F0Y2gocyl7dGhyb3cgdHlwZW9mIHM9PSJudW1iZXIiJiYoY29uc29sZS5sb2coIkV4Y2VwdGlvbiB3aGlsZSBydW5uaW5nIHBpcGVsaW5lOiIpLGNvbnNvbGUubG9nKCJzdGRvdXQ6IixBLmdldE1vZHVsZVN0ZG91dCgpKSxjb25zb2xlLmVycm9yKCJzdGRlcnI6IixBLmdldE1vZHVsZVN0ZGVycigpKSx0eXBlb2YgQS5nZXRFeGNlcHRpb25NZXNzYWdlPCJ1Ij9jb25zb2xlLmVycm9yKCJleGNlcHRpb246IixBLmdldEV4Y2VwdGlvbk1lc3NhZ2UocykpOmNvbnNvbGUuZXJyb3IoIkJ1aWxkIG1vZHVsZSBpbiBEZWJ1ZyBtb2RlIGZvciBleGNlcHRpb24gbWVzc2FnZSBpbmZvcm1hdGlvbi4iKSksc31maW5hbGx5e0Euc3RhY2tSZXN0b3JlKGkpfWxldCBvPUEuZ2V0TW9kdWxlU3Rkb3V0KCksYT1BLmdldE1vZHVsZVN0ZGVycigpLEU9W107cmV0dXJuIHQhPW51bGwmJnQubGVuZ3RoPjAmJkk9PT0wJiZ0LmZvckVhY2goZnVuY3Rpb24ocyxuKXtsZXQgZz1udWxsO3N3aXRjaChzLnR5cGUpe2Nhc2UgZi5UZXh0U3RyZWFtOntsZXQgQz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxuLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG4sMF0pLGw9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLEMsUSk7Zz17ZGF0YTokdC5kZWNvZGUobCl9O2JyZWFrfWNhc2UgZi5Kc29uQ29tcGF0aWJsZTp7bGV0IEM9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbiwwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxuLDBdKSxsPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixDLFEpO2c9SlNPTi5wYXJzZSgkdC5kZWNvZGUobCkpO2JyZWFrfWNhc2UgZi5CaW5hcnlTdHJlYW06e2xldCBDPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG4sMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbiwwXSk7Zz17ZGF0YTplcihBLEMsUSl9O2JyZWFrfWNhc2UgZi5UZXh0RmlsZTp7Zz17cGF0aDpzLmRhdGEucGF0aCxkYXRhOkEuZnNfcmVhZEZpbGUocy5kYXRhLnBhdGgse2VuY29kaW5nOiJ1dGY4In0pfTticmVha31jYXNlIGYuQmluYXJ5RmlsZTp7Zz17cGF0aDpzLmRhdGEucGF0aCxkYXRhOnppKEEscy5kYXRhLnBhdGgpfTticmVha31jYXNlIGYuSW1hZ2U6e2xldCBDPXdBKEEsbik7Qy5kYXRhPUcoQSxuLDAsQy5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSksQy5kaXJlY3Rpb249RyhBLG4sMSxYLkZsb2F0NjQpLEMubWV0YWRhdGE9bmV3IE1hcChDLm1ldGFkYXRhKSxnPUM7YnJlYWt9Y2FzZSBmLk1lc2g6e2xldCBDPXdBKEEsbik7Qy5udW1iZXJPZlBvaW50cz4wP0MucG9pbnRzPUcoQSxuLDAsQy5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUpOkMucG9pbnRzPU8oQy5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDLm51bWJlck9mQ2VsbHM+MD9DLmNlbGxzPUcoQSxuLDEsQy5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSk6Qy5jZWxscz1PKEMubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDLm51bWJlck9mUG9pbnRQaXhlbHM+MD9DLnBvaW50RGF0YT1HKEEsbiwyLEMubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkMucG9pbnREYXRhPU8oQy5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEMubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/Qy5jZWxsRGF0YT1HKEEsbiwzLEMubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6Qy5jZWxsRGF0YT1PKEMubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGc9QzticmVha31jYXNlIGYuUG9pbnRTZXQ6e2xldCBDPXdBKEEsbik7Qy5udW1iZXJPZlBvaW50cz4wP0MucG9pbnRzPUcoQSxuLDAsQy5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTpDLnBvaW50cz1PKEMucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEMubnVtYmVyT2ZQb2ludFBpeGVscz4wP0MucG9pbnREYXRhPUcoQSxuLDEsQy5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkMucG9pbnREYXRhPU8oQy5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxnPUM7YnJlYWt9Y2FzZSBmLlRyYW5zZm9ybUxpc3Q6e2xldCBDPXdBKEEsbiksUT0wO0MuZm9yRWFjaCgobCxjKT0+e2wudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihsLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzPjAmJihDW2NdLmZpeGVkUGFyYW1ldGVycz1HKEEsbixRLFguRmxvYXQ2NCkpLFErPTEsbC5udW1iZXJPZlBhcmFtZXRlcnM+MCYmKENbY10ucGFyYW1ldGVycz1HKEEsbixRLGwudHJhbnNmb3JtVHlwZS5wYXJhbWV0ZXJzVmFsdWVUeXBlKSksUSs9MSl9KSxnPUM7YnJlYWt9Y2FzZSBmLlBvbHlEYXRhOntsZXQgQz13QShBLG4pO0MubnVtYmVyT2ZQb2ludHM+MD9DLnBvaW50cz1HKEEsbiwwLFguRmxvYXQzMik6Qy5wb2ludHM9bmV3IEZsb2F0MzJBcnJheSxDLnZlcnRpY2VzQnVmZmVyU2l6ZT4wP0MudmVydGljZXM9RyhBLG4sMSxiLlVJbnQzMik6Qy52ZXJ0aWNlcz1uZXcgVWludDMyQXJyYXksQy5saW5lc0J1ZmZlclNpemU+MD9DLmxpbmVzPUcoQSxuLDIsYi5VSW50MzIpOkMubGluZXM9bmV3IFVpbnQzMkFycmF5LEMucG9seWdvbnNCdWZmZXJTaXplPjA/Qy5wb2x5Z29ucz1HKEEsbiwzLGIuVUludDMyKTpDLnBvbHlnb25zPW5ldyBVaW50MzJBcnJheSxDLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZT4wP0MudHJpYW5nbGVTdHJpcHM9RyhBLG4sNCxiLlVJbnQzMik6Qy50cmlhbmdsZVN0cmlwcz1uZXcgVWludDMyQXJyYXksQy5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qy5wb2ludERhdGE9RyhBLG4sNSxDLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qy5wb2ludERhdGE9TyhDLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEMubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/Qy5jZWxsRGF0YT1HKEEsbiw2LEMucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOkMuY2VsbERhdGE9TyhDLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksZz1DO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIG91dHB1dCBJbnRlcmZhY2VUeXBlIil9bGV0IHU9e3R5cGU6cy50eXBlLGRhdGE6Z307RS5wdXNoKHUpfSkse3JldHVyblZhbHVlOkksc3Rkb3V0Om8sc3RkZXJyOmEsb3V0cHV0czpFfX12YXIgdHI9X2k7dmFyICRpPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPCJ1IjtmdW5jdGlvbiBBSShBLGUpe2lmKEE9PW51bGwpcmV0dXJuW107bGV0IHQ9W107Zm9yKGxldCByPTA7cjxBLmxlbmd0aDtyKyspe2xldCBpPWVJKEFbcl0sZSk7aSE9PW51bGwmJnQucHVzaChpKX1yZXR1cm4gdH1mdW5jdGlvbiBlSShBLGUpe2lmKEE9PW51bGwpcmV0dXJuIG51bGw7bGV0IHQ9bnVsbDtyZXR1cm4gQS5idWZmZXIhPT12b2lkIDA/dD1BLmJ1ZmZlcjpBLmJ5dGVMZW5ndGghPT12b2lkIDAmJih0PUEpLCRpJiZ0IGluc3RhbmNlb2YgU2hhcmVkQXJyYXlCdWZmZXI/bnVsbDplP3Q6dC5zbGljZSgwKX12YXIgcnI9QUk7ZnVuY3Rpb24gdEkoQSl7cmV0dXJuW0EuZGF0YSxBLmRpcmVjdGlvbl19dmFyIGlyPXRJO2Z1bmN0aW9uIHJJKEEpe3JldHVybltBLnBvaW50cyxBLnBvaW50RGF0YSxBLmNlbGxzLEEuY2VsbERhdGFdfXZhciBJcj1ySTtmdW5jdGlvbiBpSShBKXtyZXR1cm5bQS5wb2ludHMsQS52ZXJ0aWNlcyxBLmxpbmVzLEEucG9seWdvbnMsQS50cmlhbmdsZVN0cmlwcyxBLnBvaW50RGF0YSxBLmNlbGxEYXRhXX12YXIgb3I9aUk7dmFyIElJO2Z1bmN0aW9uIFhBKCl7cmV0dXJuIElJfXZhciBvSTtmdW5jdGlvbiBucigpe3JldHVybiBvSX12YXIgbkk7ZnVuY3Rpb24gekEoKXtyZXR1cm4gbkl9dmFyIFllPW5ldyBNYXA7ZnVuY3Rpb24gZ0koKXtsZXQgQT16QSgpO3JldHVybiB0eXBlb2YgQT4idSImJihBPW51bGwpLEF9ZnVuY3Rpb24gZ3IoKXtsZXQgQT1YQSgpO3JldHVybiB0eXBlb2YgQT4idSImJihBPW5ldyBVUkwoIi9waXBlbGluZXMiLGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbikuaHJlZiksQX1mdW5jdGlvbiBfQSgpe2xldCBBPW5yKCk7cmV0dXJuIHR5cGVvZiBBPiJ1IiYmKEE9e30pLEF9YXN5bmMgZnVuY3Rpb24gYUkoQSxlLHQpe2xldCByPUEsaT1BO2lmKHR5cGVvZiBBIT0ic3RyaW5nIiYmKHI9bmV3IFVSTChBLmhyZWYpLGk9ci5ocmVmKSxZZS5oYXMoaSkpcmV0dXJuIFllLmdldChpKTt7bGV0IEk9YXdhaXQgWHQoQSxlPy50b1N0cmluZygpPz9ncigpLHQ/P19BKCkpO3JldHVybiBZZS5zZXQoaSxJKSxJfX1hc3luYyBmdW5jdGlvbiBzSShBLGUsdCxyLGkpe2lmKCFhd2FpdCB6dCgpKXtsZXQgYz0iV2ViQXNzZW1ibHkgU0lNRCBzdXBwb3J0IGlzIHJlcXVpcmVkIC0tIHBsZWFzZSB1cGRhdGUgeW91ciBicm93c2VyLiI7dGhyb3cgYWxlcnQoYyksbmV3IEVycm9yKGMpfWxldCBJPWk/LndlYldvcmtlcj8/bnVsbDtpZihJPT09ITEpe2xldCBjPWF3YWl0IGFJKEEudG9TdHJpbmcoKSxpPy5waXBlbGluZUJhc2VVcmwsaT8ucGlwZWxpbmVRdWVyeVBhcmFtcz8/X0EoKSk7cmV0dXJuIHRyKGMsZSx0LHIpfWxldCBvPUksYT1pPy5waXBlbGluZVdvcmtlclVybD8/Z0koKSxFPXR5cGVvZiBhIT0ic3RyaW5nIiYmdHlwZW9mIGE/LmhyZWY8InUiP2EuaHJlZjphLHt3b3JrZXJQcm94eTpzLHdvcmtlcjpufT1hd2FpdCBqdChvLEUsaT8ucGlwZWxpbmVRdWVyeVBhcmFtcz8/X0EoKSk7bz1uO2xldCBnPVtdO3IhPW51bGwmJnIubGVuZ3RoPjAmJnIuZm9yRWFjaChmdW5jdGlvbihjKXtpZihjLnR5cGU9PT1mLkJpbmFyeVN0cmVhbSl7bGV0IHA9Yy5kYXRhLmRhdGE7Zy5wdXNoKHApfWVsc2UgaWYoYy50eXBlPT09Zi5CaW5hcnlGaWxlKXtsZXQgcD1jLmRhdGEuZGF0YTtnLnB1c2gocCl9ZWxzZSBpZihjLnR5cGU9PT1mLkltYWdlKXtsZXQgcD1jLmRhdGE7cC5kYXRhIT09bnVsbCYmZy5wdXNoKC4uLmlyKHApKX1lbHNlIGlmKGMudHlwZT09PWYuTWVzaCl7bGV0IHA9Yy5kYXRhO2cucHVzaCguLi5JcihwKSl9ZWxzZSBpZihjLnR5cGU9PT1mLlBvbHlEYXRhKXtsZXQgcD1jLmRhdGE7Zy5wdXNoKC4uLm9yKHApKX19KTtsZXQgdT1pPy5waXBlbGluZUJhc2VVcmw/P2dyKCksQz10eXBlb2YgdSE9InN0cmluZyImJnR5cGVvZiB1Py5ocmVmPCJ1Ij91LmhyZWY6dSxRPXIhPW51bGw/QmUocixycihnLGk/Lm5vQ29weSkpOm51bGwsbD1hd2FpdCBzLnJ1blBpcGVsaW5lKEEudG9TdHJpbmcoKSxDLGUsdCxRLGk/LnBpcGVsaW5lUXVlcnlQYXJhbXM/P19BKCkpO3JldHVybntyZXR1cm5WYWx1ZTpsLnJldHVyblZhbHVlLHN0ZG91dDpsLnN0ZG91dCxzdGRlcnI6bC5zdGRlcnIsb3V0cHV0czpsLm91dHB1dHMsd2ViV29ya2VyOm99fXZhciBEPXNJO3ZhciBCST1udWxsO2Z1bmN0aW9uIGFyKCl7cmV0dXJuIEJJfXZhciBUZSxDST1gaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9AaXRrLXdhc20vZGljb21AJHtlZX0vZGlzdC9waXBlbGluZXNgO2Z1bmN0aW9uIFNzKEEpe1RlPUF9ZnVuY3Rpb24gdygpe2lmKHR5cGVvZiBUZTwidSIpcmV0dXJuIFRlO2xldCBBPVhBKCk7cmV0dXJuIHR5cGVvZiBBPCJ1Ij9BOkNJfXZhciBPZSxRST1udWxsO2Z1bmN0aW9uIHNyKEEpe09lPUF9ZnVuY3Rpb24geSgpe2lmKHR5cGVvZiBPZTwidSIpcmV0dXJuIE9lO2xldCBBPXpBKCk7cmV0dXJuIHR5cGVvZiBBPCJ1Ij9BOlFJfXZhciBhQT1udWxsO2FzeW5jIGZ1bmN0aW9uIEJyKCl7bGV0IEE9eSgpLGU9dHlwZW9mIEEhPSJzdHJpbmciJiZ0eXBlb2YgQT8uaHJlZjwidSI/QS5ocmVmOkE7YUE9YXdhaXQgeUEoZSl9ZnVuY3Rpb24gYnMoQSl7YUE9QX1hc3luYyBmdW5jdGlvbiBrKCl7aWYoYUEhPT1udWxsKXJldHVybiBhQS50ZXJtaW5hdGVkJiZhd2FpdCBCcigpLGFBO2xldCBBPWFyKCk7cmV0dXJuIEEhPT1udWxsP0E6KGF3YWl0IEJyKCksYUEpfWFzeW5jIGZ1bmN0aW9uIEVJKEEsZSx0PXt9KXtsZXQgcj1be3R5cGU6Zi5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Zi5JbWFnZX1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IGg9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkoaCl9fWxldCBJPWU7aWYoZSBpbnN0YW5jZW9mIEZpbGUpe2xldCBoPWF3YWl0IGUuYXJyYXlCdWZmZXIoKTtJPXtwYXRoOmUubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KGgpfX1sZXQgbz1be3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6aX0se3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6SX1dLGE9W10sRT1pLnBhdGg7YS5wdXNoKEUpO2xldCBzPUkucGF0aDthLnB1c2gocyksYS5wdXNoKCIwIiksYS5wdXNoKCIxIiksYS5wdXNoKCItLW1lbW9yeS1pbyIpLHQuY29sb3JPdXRwdXQmJnQuY29sb3JPdXRwdXQmJmEucHVzaCgiLS1jb2xvci1vdXRwdXQiKSx0LmNvbmZpZ0ZpbGUmJmEucHVzaCgiLS1jb25maWctZmlsZSIsdC5jb25maWdGaWxlLnRvU3RyaW5nKCkpLHQuZnJhbWUmJmEucHVzaCgiLS1mcmFtZSIsdC5mcmFtZS50b1N0cmluZygpKSx0Lm5vUHJlc2VudGF0aW9uU3RhdGVPdXRwdXQmJnQubm9QcmVzZW50YXRpb25TdGF0ZU91dHB1dCYmYS5wdXNoKCItLW5vLXByZXNlbnRhdGlvbi1zdGF0ZS1vdXRwdXQiKSx0Lm5vQml0bWFwT3V0cHV0JiZ0Lm5vQml0bWFwT3V0cHV0JiZhLnB1c2goIi0tbm8tYml0bWFwLW91dHB1dCIpO2xldCB1PSJhcHBseS1wcmVzZW50YXRpb24tc3RhdGUtdG8taW1hZ2UiLEM9dD8ud2ViV29ya2VyO0M9PT12b2lkIDAmJihDPWF3YWl0IGsoKSk7bGV0e3dlYldvcmtlcjpRLHJldHVyblZhbHVlOmwsc3RkZXJyOmMsb3V0cHV0czpwfT1hd2FpdCBEKHUsYSxyLG8se3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjpDLG5vQ29weTp0Py5ub0NvcHl9KTtpZihsIT09MCYmYyE9PSIiKXRocm93IG5ldyBFcnJvcihjKTtyZXR1cm57d2ViV29ya2VyOlEscHJlc2VudGF0aW9uU3RhdGVPdXRTdHJlYW06cFswXT8uZGF0YSxvdXRwdXRJbWFnZTpwWzFdPy5kYXRhfX12YXIgbEk9RUk7YXN5bmMgZnVuY3Rpb24gY0koQSxlPXt9KXtsZXQgdD1be3R5cGU6Zi5CaW5hcnlTdHJlYW19XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBsPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KGwpfX1sZXQgaT1be3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6cn1dLEk9W10sbz1yLnBhdGg7SS5wdXNoKG8pLEkucHVzaCgiMCIpLEkucHVzaCgiLS1tZW1vcnktaW8iKSxlLnJlYWRGaWxlT25seSYmZS5yZWFkRmlsZU9ubHkmJkkucHVzaCgiLS1yZWFkLWZpbGUtb25seSIpLGUucmVhZERhdGFzZXQmJmUucmVhZERhdGFzZXQmJkkucHVzaCgiLS1yZWFkLWRhdGFzZXQiKSxlLnJlYWRYZmVyQXV0byYmZS5yZWFkWGZlckF1dG8mJkkucHVzaCgiLS1yZWFkLXhmZXItYXV0byIpLGUucmVhZFhmZXJEZXRlY3QmJmUucmVhZFhmZXJEZXRlY3QmJkkucHVzaCgiLS1yZWFkLXhmZXItZGV0ZWN0IiksZS5yZWFkWGZlckxpdHRsZSYmZS5yZWFkWGZlckxpdHRsZSYmSS5wdXNoKCItLXJlYWQteGZlci1saXR0bGUiKSxlLnJlYWRYZmVyQmlnJiZlLnJlYWRYZmVyQmlnJiZJLnB1c2goIi0tcmVhZC14ZmVyLWJpZyIpLGUucmVhZFhmZXJJbXBsaWNpdCYmZS5yZWFkWGZlckltcGxpY2l0JiZJLnB1c2goIi0tcmVhZC14ZmVyLWltcGxpY2l0IiksZS5hY2NlcHRPZGRMZW5ndGgmJmUuYWNjZXB0T2RkTGVuZ3RoJiZJLnB1c2goIi0tYWNjZXB0LW9kZC1sZW5ndGgiKSxlLmFzc3VtZUV2ZW5MZW5ndGgmJmUuYXNzdW1lRXZlbkxlbmd0aCYmSS5wdXNoKCItLWFzc3VtZS1ldmVuLWxlbmd0aCIpLGUuZW5hYmxlQ3AyNDYmJmUuZW5hYmxlQ3AyNDYmJkkucHVzaCgiLS1lbmFibGUtY3AyNDYiKSxlLmRpc2FibGVDcDI0NiYmZS5kaXNhYmxlQ3AyNDYmJkkucHVzaCgiLS1kaXNhYmxlLWNwMjQ2IiksZS5yZXRhaW5VbiYmZS5yZXRhaW5VbiYmSS5wdXNoKCItLXJldGFpbi11biIpLGUuY29udmVydFVuJiZlLmNvbnZlcnRVbiYmSS5wdXNoKCItLWNvbnZlcnQtdW4iKSxlLmVuYWJsZUNvcnJlY3Rpb24mJmUuZW5hYmxlQ29ycmVjdGlvbiYmSS5wdXNoKCItLWVuYWJsZS1jb3JyZWN0aW9uIiksZS5kaXNhYmxlQ29ycmVjdGlvbiYmZS5kaXNhYmxlQ29ycmVjdGlvbiYmSS5wdXNoKCItLWRpc2FibGUtY29ycmVjdGlvbiIpO2xldCBFPSJyZWFkLWRpY29tLWVuY2Fwc3VsYXRlZC1wZGYiLHM9ZT8ud2ViV29ya2VyO3M9PT12b2lkIDAmJihzPWF3YWl0IGsoKSk7bGV0e3dlYldvcmtlcjpuLHJldHVyblZhbHVlOmcsc3RkZXJyOnUsb3V0cHV0czpDfT1hd2FpdCBEKEUsSSx0LGkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjpzLG5vQ29weTplPy5ub0NvcHl9KTtpZihnIT09MCYmdSE9PSIiKXRocm93IG5ldyBFcnJvcih1KTtyZXR1cm57d2ViV29ya2VyOm4scGRmQmluYXJ5T3V0cHV0OihDWzBdPy5kYXRhKS5kYXRhfX12YXIgdUk9Y0k7YXN5bmMgZnVuY3Rpb24gZkkoQSxlPXt9KXtsZXQgdD1be3R5cGU6Zi5UZXh0U3RyZWFtfV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbD1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShsKX19bGV0IGk9W3t0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOnJ9XSxJPVtdLG89ci5wYXRoO2lmKEkucHVzaChvKSxJLnB1c2goIjAiKSxJLnB1c2goIi0tbWVtb3J5LWlvIiksZS5yZWFkRmlsZU9ubHkmJmUucmVhZEZpbGVPbmx5JiZJLnB1c2goIi0tcmVhZC1maWxlLW9ubHkiKSxlLnJlYWREYXRhc2V0JiZlLnJlYWREYXRhc2V0JiZJLnB1c2goIi0tcmVhZC1kYXRhc2V0IiksZS5yZWFkWGZlckF1dG8mJmUucmVhZFhmZXJBdXRvJiZJLnB1c2goIi0tcmVhZC14ZmVyLWF1dG8iKSxlLnJlYWRYZmVyRGV0ZWN0JiZlLnJlYWRYZmVyRGV0ZWN0JiZJLnB1c2goIi0tcmVhZC14ZmVyLWRldGVjdCIpLGUucmVhZFhmZXJMaXR0bGUmJmUucmVhZFhmZXJMaXR0bGUmJkkucHVzaCgiLS1yZWFkLXhmZXItbGl0dGxlIiksZS5yZWFkWGZlckJpZyYmZS5yZWFkWGZlckJpZyYmSS5wdXNoKCItLXJlYWQteGZlci1iaWciKSxlLnJlYWRYZmVySW1wbGljaXQmJmUucmVhZFhmZXJJbXBsaWNpdCYmSS5wdXNoKCItLXJlYWQteGZlci1pbXBsaWNpdCIpLGUucHJvY2Vzc2luZ0RldGFpbHMmJmUucHJvY2Vzc2luZ0RldGFpbHMmJkkucHVzaCgiLS1wcm9jZXNzaW5nLWRldGFpbHMiKSxlLnVua25vd25SZWxhdGlvbnNoaXAmJmUudW5rbm93blJlbGF0aW9uc2hpcCYmSS5wdXNoKCItLXVua25vd24tcmVsYXRpb25zaGlwIiksZS5pbnZhbGlkSXRlbVZhbHVlJiZlLmludmFsaWRJdGVtVmFsdWUmJkkucHVzaCgiLS1pbnZhbGlkLWl0ZW0tdmFsdWUiKSxlLmlnbm9yZUNvbnN0cmFpbnRzJiZlLmlnbm9yZUNvbnN0cmFpbnRzJiZJLnB1c2goIi0taWdub3JlLWNvbnN0cmFpbnRzIiksZS5pZ25vcmVJdGVtRXJyb3JzJiZlLmlnbm9yZUl0ZW1FcnJvcnMmJkkucHVzaCgiLS1pZ25vcmUtaXRlbS1lcnJvcnMiKSxlLnNraXBJbnZhbGlkSXRlbXMmJmUuc2tpcEludmFsaWRJdGVtcyYmSS5wdXNoKCItLXNraXAtaW52YWxpZC1pdGVtcyIpLGUuZGlzYWJsZVZyQ2hlY2tlciYmZS5kaXNhYmxlVnJDaGVja2VyJiZJLnB1c2goIi0tZGlzYWJsZS12ci1jaGVja2VyIiksZS5jaGFyc2V0UmVxdWlyZSYmZS5jaGFyc2V0UmVxdWlyZSYmSS5wdXNoKCItLWNoYXJzZXQtcmVxdWlyZSIpLGUuY2hhcnNldEFzc3VtZSYmSS5wdXNoKCItLWNoYXJzZXQtYXNzdW1lIixlLmNoYXJzZXRBc3N1bWUudG9TdHJpbmcoKSksZS5jaGFyc2V0Q2hlY2tBbGwmJmUuY2hhcnNldENoZWNrQWxsJiZJLnB1c2goIi0tY2hhcnNldC1jaGVjay1hbGwiKSxlLmNvbnZlcnRUb1V0ZjgmJmUuY29udmVydFRvVXRmOCYmSS5wdXNoKCItLWNvbnZlcnQtdG8tdXRmOCIpLGUudXJsUHJlZml4JiZJLnB1c2goIi0tdXJsLXByZWZpeCIsZS51cmxQcmVmaXgudG9TdHJpbmcoKSksZS5odG1sMzImJmUuaHRtbDMyJiZJLnB1c2goIi0taHRtbC0zMiIpLGUuaHRtbDQwJiZlLmh0bWw0MCYmSS5wdXNoKCItLWh0bWwtNDAiKSxlLnhodG1sMTEmJmUueGh0bWwxMSYmSS5wdXNoKCItLXhodG1sLTExIiksZS5hZGREb2N1bWVudFR5cGUmJmUuYWRkRG9jdW1lbnRUeXBlJiZJLnB1c2goIi0tYWRkLWRvY3VtZW50LXR5cGUiKSxlLmNzc1JlZmVyZW5jZSl7bGV0IGw9aS5sZW5ndGgudG9TdHJpbmcoKTtpLnB1c2goe3R5cGU6Zi5UZXh0U3RyZWFtLGRhdGE6e2RhdGE6ZS5jc3NSZWZlcmVuY2V9fSksSS5wdXNoKCItLWNzcy1yZWZlcmVuY2UiLGwpfWlmKGUuY3NzRmlsZSl7bGV0IGw9ZS5jc3NGaWxlLGM9bDtpZihsIGluc3RhbmNlb2YgRmlsZSl7bGV0IG09YXdhaXQgbC5hcnJheUJ1ZmZlcigpO2M9e3BhdGg6bC5uYW1lLGRhdGE6bmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKG0pfX1JLnB1c2goIi0tY3NzLWZpbGUiKSxpLnB1c2goe3R5cGU6Zi5UZXh0RmlsZSxkYXRhOmN9KTtsZXQgcD1sIGluc3RhbmNlb2YgRmlsZT9sLm5hbWU6bC5wYXRoO0kucHVzaChwKX1lLmV4cGFuZElubGluZSYmZS5leHBhbmRJbmxpbmUmJkkucHVzaCgiLS1leHBhbmQtaW5saW5lIiksZS5uZXZlckV4cGFuZElubGluZSYmZS5uZXZlckV4cGFuZElubGluZSYmSS5wdXNoKCItLW5ldmVyLWV4cGFuZC1pbmxpbmUiKSxlLmFsd2F5c0V4cGFuZElubGluZSYmZS5hbHdheXNFeHBhbmRJbmxpbmUmJkkucHVzaCgiLS1hbHdheXMtZXhwYW5kLWlubGluZSIpLGUucmVuZGVyRnVsbERhdGEmJmUucmVuZGVyRnVsbERhdGEmJkkucHVzaCgiLS1yZW5kZXItZnVsbC1kYXRhIiksZS5zZWN0aW9uVGl0bGVJbmxpbmUmJmUuc2VjdGlvblRpdGxlSW5saW5lJiZJLnB1c2goIi0tc2VjdGlvbi10aXRsZS1pbmxpbmUiKSxlLmRvY3VtZW50VHlwZVRpdGxlJiZlLmRvY3VtZW50VHlwZVRpdGxlJiZJLnB1c2goIi0tZG9jdW1lbnQtdHlwZS10aXRsZSIpLGUucGF0aWVudEluZm9UaXRsZSYmZS5wYXRpZW50SW5mb1RpdGxlJiZJLnB1c2goIi0tcGF0aWVudC1pbmZvLXRpdGxlIiksZS5ub0RvY3VtZW50SGVhZGVyJiZlLm5vRG9jdW1lbnRIZWFkZXImJkkucHVzaCgiLS1uby1kb2N1bWVudC1oZWFkZXIiKSxlLnJlbmRlcklubGluZUNvZGVzJiZlLnJlbmRlcklubGluZUNvZGVzJiZJLnB1c2goIi0tcmVuZGVyLWlubGluZS1jb2RlcyIpLGUuY29uY2VwdE5hbWVDb2RlcyYmZS5jb25jZXB0TmFtZUNvZGVzJiZJLnB1c2goIi0tY29uY2VwdC1uYW1lLWNvZGVzIiksZS5udW1lcmljVW5pdENvZGVzJiZlLm51bWVyaWNVbml0Q29kZXMmJkkucHVzaCgiLS1udW1lcmljLXVuaXQtY29kZXMiKSxlLmNvZGVWYWx1ZVVuaXQmJmUuY29kZVZhbHVlVW5pdCYmSS5wdXNoKCItLWNvZGUtdmFsdWUtdW5pdCIpLGUuY29kZU1lYW5pbmdVbml0JiZlLmNvZGVNZWFuaW5nVW5pdCYmSS5wdXNoKCItLWNvZGUtbWVhbmluZy11bml0IiksZS5yZW5kZXJBbGxDb2RlcyYmZS5yZW5kZXJBbGxDb2RlcyYmSS5wdXNoKCItLXJlbmRlci1hbGwtY29kZXMiKSxlLmNvZGVEZXRhaWxzVG9vbHRpcCYmZS5jb2RlRGV0YWlsc1Rvb2x0aXAmJkkucHVzaCgiLS1jb2RlLWRldGFpbHMtdG9vbHRpcCIpO2xldCBFPSJzdHJ1Y3R1cmVkLXJlcG9ydC10by1odG1sIixzPWU/LndlYldvcmtlcjtzPT09dm9pZCAwJiYocz1hd2FpdCBrKCkpO2xldHt3ZWJXb3JrZXI6bixyZXR1cm5WYWx1ZTpnLHN0ZGVycjp1LG91dHB1dHM6Q309YXdhaXQgRChFLEksdCxpLHtwaXBlbGluZUJhc2VVcmw6dygpLHBpcGVsaW5lV29ya2VyVXJsOnkoKSx3ZWJXb3JrZXI6cyxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoZyE9PTAmJnUhPT0iIil0aHJvdyBuZXcgRXJyb3IodSk7cmV0dXJue3dlYldvcmtlcjpuLG91dHB1dFRleHQ6KENbMF0/LmRhdGEpLmRhdGF9fXZhciBwST1mSTthc3luYyBmdW5jdGlvbiBkSShBLGU9e30pe2xldCB0PVt7dHlwZTpmLlRleHRTdHJlYW19XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBsPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KGwpfX1sZXQgaT1be3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6cn1dLEk9W10sbz1yLnBhdGg7SS5wdXNoKG8pLEkucHVzaCgiMCIpLEkucHVzaCgiLS1tZW1vcnktaW8iKSxlLnVua25vd25SZWxhdGlvbnNoaXAmJmUudW5rbm93blJlbGF0aW9uc2hpcCYmSS5wdXNoKCItLXVua25vd24tcmVsYXRpb25zaGlwIiksZS5pbnZhbGlkSXRlbVZhbHVlJiZlLmludmFsaWRJdGVtVmFsdWUmJkkucHVzaCgiLS1pbnZhbGlkLWl0ZW0tdmFsdWUiKSxlLmlnbm9yZUNvbnN0cmFpbnRzJiZlLmlnbm9yZUNvbnN0cmFpbnRzJiZJLnB1c2goIi0taWdub3JlLWNvbnN0cmFpbnRzIiksZS5pZ25vcmVJdGVtRXJyb3JzJiZlLmlnbm9yZUl0ZW1FcnJvcnMmJkkucHVzaCgiLS1pZ25vcmUtaXRlbS1lcnJvcnMiKSxlLnNraXBJbnZhbGlkSXRlbXMmJmUuc2tpcEludmFsaWRJdGVtcyYmSS5wdXNoKCItLXNraXAtaW52YWxpZC1pdGVtcyIpLGUubm9Eb2N1bWVudEhlYWRlciYmZS5ub0RvY3VtZW50SGVhZGVyJiZJLnB1c2goIi0tbm8tZG9jdW1lbnQtaGVhZGVyIiksZS5udW1iZXJOZXN0ZWRJdGVtcyYmZS5udW1iZXJOZXN0ZWRJdGVtcyYmSS5wdXNoKCItLW51bWJlci1uZXN0ZWQtaXRlbXMiKSxlLnNob3J0ZW5Mb25nVmFsdWVzJiZlLnNob3J0ZW5Mb25nVmFsdWVzJiZJLnB1c2goIi0tc2hvcnRlbi1sb25nLXZhbHVlcyIpLGUucHJpbnRJbnN0YW5jZVVpZCYmZS5wcmludEluc3RhbmNlVWlkJiZJLnB1c2goIi0tcHJpbnQtaW5zdGFuY2UtdWlkIiksZS5wcmludFNvcGNsYXNzU2hvcnQmJmUucHJpbnRTb3BjbGFzc1Nob3J0JiZJLnB1c2goIi0tcHJpbnQtc29wY2xhc3Mtc2hvcnQiKSxlLnByaW50U29wY2xhc3NMb25nJiZlLnByaW50U29wY2xhc3NMb25nJiZJLnB1c2goIi0tcHJpbnQtc29wY2xhc3MtbG9uZyIpLGUucHJpbnRTb3BjbGFzc1VpZCYmZS5wcmludFNvcGNsYXNzVWlkJiZJLnB1c2goIi0tcHJpbnQtc29wY2xhc3MtdWlkIiksZS5wcmludEFsbENvZGVzJiZlLnByaW50QWxsQ29kZXMmJkkucHVzaCgiLS1wcmludC1hbGwtY29kZXMiKSxlLnByaW50SW52YWxpZENvZGVzJiZlLnByaW50SW52YWxpZENvZGVzJiZJLnB1c2goIi0tcHJpbnQtaW52YWxpZC1jb2RlcyIpLGUucHJpbnRUZW1wbGF0ZUlkJiZlLnByaW50VGVtcGxhdGVJZCYmSS5wdXNoKCItLXByaW50LXRlbXBsYXRlLWlkIiksZS5pbmRpY2F0ZUVuaGFuY2VkJiZlLmluZGljYXRlRW5oYW5jZWQmJkkucHVzaCgiLS1pbmRpY2F0ZS1lbmhhbmNlZCIpLGUucHJpbnRDb2xvciYmZS5wcmludENvbG9yJiZJLnB1c2goIi0tcHJpbnQtY29sb3IiKTtsZXQgRT0ic3RydWN0dXJlZC1yZXBvcnQtdG8tdGV4dCIscz1lPy53ZWJXb3JrZXI7cz09PXZvaWQgMCYmKHM9YXdhaXQgaygpKTtsZXR7d2ViV29ya2VyOm4scmV0dXJuVmFsdWU6ZyxzdGRlcnI6dSxvdXRwdXRzOkN9PWF3YWl0IEQoRSxJLHQsaSx7cGlwZWxpbmVCYXNlVXJsOncoKSxwaXBlbGluZVdvcmtlclVybDp5KCksd2ViV29ya2VyOnMsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGchPT0wJiZ1IT09IiIpdGhyb3cgbmV3IEVycm9yKHUpO3JldHVybnt3ZWJXb3JrZXI6bixvdXRwdXRUZXh0OihDWzBdPy5kYXRhKS5kYXRhfX12YXIgbUk9ZEk7YXN5bmMgZnVuY3Rpb24gaEkoQSxlPXt9KXtsZXQgdD1be3R5cGU6Zi5Kc29uQ29tcGF0aWJsZX1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IFE9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkoUSl9fWxldCBpPVt7dHlwZTpmLkJpbmFyeUZpbGUsZGF0YTpyfV0sST1bXSxvPXIucGF0aDtpZihJLnB1c2gobyksSS5wdXNoKCIwIiksSS5wdXNoKCItLW1lbW9yeS1pbyIpLHR5cGVvZiBlLnRhZ3NUb1JlYWQ8InUiKXtsZXQgUT1pLmxlbmd0aC50b1N0cmluZygpO2kucHVzaCh7dHlwZTpmLkpzb25Db21wYXRpYmxlLGRhdGE6ZS50YWdzVG9SZWFkfSksSS5wdXNoKCItLXRhZ3MtdG8tcmVhZCIsUSl9bGV0IEU9InJlYWQtZGljb20tdGFncyIse3dlYldvcmtlcjpzLHJldHVyblZhbHVlOm4sc3RkZXJyOmcsb3V0cHV0czp1fT1hd2FpdCBEKEUsSSx0LGkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjplPy53ZWJXb3JrZXI/P251bGx9KTtpZihuIT09MCl0aHJvdyBuZXcgRXJyb3IoZyk7cmV0dXJue3dlYldvcmtlcjpzLHRhZ3M6dVswXS5kYXRhfX12YXIgeUk9aEk7YXN5bmMgZnVuY3Rpb24gREkoQSxlPSExLHQ9e30pe2xldCByPVt7dHlwZTpmLkltYWdlfSx7dHlwZTpmLkpzb25Db21wYXRpYmxlfV0saT1bXSxJPVtdO0kucHVzaCgiMCIpLEkucHVzaCgiMSIpLEkucHVzaCgiLS1tZW1vcnktaW8iKSxJLnB1c2goIi0taW5wdXQtaW1hZ2VzIiksQS5mb3JFYWNoKFE9PntpLnB1c2goe3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6UX0pLEkucHVzaChRLnBhdGgpfSksdHlwZW9mIGU8InUiJiZlJiZJLnB1c2goIi0tc2luZ2xlLXNvcnRlZC1zZXJpZXMiKTtsZXQgRT0icmVhZC1pbWFnZS1kaWNvbS1maWxlLXNlcmllcyIse3dlYldvcmtlcjpzLHJldHVyblZhbHVlOm4sc3RkZXJyOmcsb3V0cHV0czp1fT1hd2FpdCBEKEUsSSxyLGkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjp0Py53ZWJXb3JrZXI/P251bGx9KTtpZihuIT09MCl0aHJvdyBuZXcgRXJyb3IoZyk7cmV0dXJue3dlYldvcmtlcjpzLG91dHB1dEltYWdlOnVbMF0uZGF0YSxzb3J0ZWRGaWxlbmFtZXM6dVsxXS5kYXRhfX12YXIgeGU9REk7dmFyIHdJPXR5cGVvZiBnbG9iYWxUaGlzLm5hdmlnYXRvcj8uaGFyZHdhcmVDb25jdXJyZW5jeT09Im51bWJlciI/Z2xvYmFsVGhpcy5uYXZpZ2F0b3IuaGFyZHdhcmVDb25jdXJyZW5jeTo0LENyPTg7YXN5bmMgZnVuY3Rpb24gU0koQT17aW5wdXRJbWFnZXM6W119KXtsZXQgZT1BLndlYldvcmtlclBvb2w/P251bGw7aWYoZT09PW51bGwmJihlPW5ldyBvZSh3SSx4ZSkpLEEuaW5wdXRJbWFnZXMubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCciaW5wdXQtaW1hZ2VzIiBvcHRpb24gbXVzdCBoYXZlIGEgbGVuZ3RoID4gMScpO2xldCB0PWF3YWl0IFByb21pc2UuYWxsKEEuaW5wdXRJbWFnZXMubWFwKGFzeW5jIHI9PntsZXQgaT1yO2lmKHIgaW5zdGFuY2VvZiBGaWxlKXtsZXQgST1hd2FpdCByLmFycmF5QnVmZmVyKCk7aT17cGF0aDpyLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShJKX19cmV0dXJuIGl9KSk7aWYoQS5zaW5nbGVTb3J0ZWRTZXJpZXMpe2xldCByPVtdO2ZvcihsZXQgRT0wO0U8dC5sZW5ndGg7RSs9Q3Ipe2xldCBzPXQuc2xpY2UoRSxFK0NyKTtyLnB1c2goW3MsQS5zaW5nbGVTb3J0ZWRTZXJpZXMse31dKX1sZXQgaT1hd2FpdCBlLnJ1blRhc2tzKHIpLnByb21pc2UsST1pLm1hcChFPT5FLm91dHB1dEltYWdlKSxvPWkucmVkdWNlKChFLHMpPT5FLmNvbmNhdChzLnNvcnRlZEZpbGVuYW1lcyksW10pO3JldHVybntvdXRwdXRJbWFnZTppZShJKSx3ZWJXb3JrZXJQb29sOmUsc29ydGVkRmlsZW5hbWVzOm99fWVsc2V7bGV0IHI9W1t0LEEuc2luZ2xlU29ydGVkU2VyaWVzLHt9XV0saT1hd2FpdCBlLnJ1blRhc2tzKHIpLnByb21pc2U7cmV0dXJue291dHB1dEltYWdlOmlbMF0ub3V0cHV0SW1hZ2Usd2ViV29ya2VyUG9vbDplLHNvcnRlZEZpbGVuYW1lczppWzBdLnNvcnRlZEZpbGVuYW1lc319fXZhciBGST1TSTthc3luYyBmdW5jdGlvbiBSSShBLGU9e30pe2xldCB0PVt7dHlwZTpmLkltYWdlfSx7dHlwZTpmLkpzb25Db21wYXRpYmxlfV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgYz1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShjKX19bGV0IGk9W3t0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOnJ9XSxJPVtdLG89ci5wYXRoO0kucHVzaChvKSxJLnB1c2goIjAiKSxJLnB1c2goIjEiKSxJLnB1c2goIi0tbWVtb3J5LWlvIik7bGV0IHM9InJlYWQtc2VnbWVudGF0aW9uIixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCBrKCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTp1LHN0ZGVycjpDLG91dHB1dHM6UX09YXdhaXQgRChzLEksdCxpLHtwaXBlbGluZUJhc2VVcmw6dygpLHBpcGVsaW5lV29ya2VyVXJsOnkoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYodSE9PTAmJkMhPT0iIil0aHJvdyBuZXcgRXJyb3IoQyk7cmV0dXJue3dlYldvcmtlcjpnLHNlZ0ltYWdlOlFbMF0/LmRhdGEsbWV0YUluZm86UVsxXT8uZGF0YX19dmFyIGtJPVJJO2FzeW5jIGZ1bmN0aW9uIFVJKEEsZT17fSl7bGV0IHQ9W3t0eXBlOmYuSW1hZ2V9LHt0eXBlOmYuSnNvbkNvbXBhdGlibGV9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBjPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KGMpfX1sZXQgaT1be3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6cn1dLEk9W10sbz1yLnBhdGg7SS5wdXNoKG8pLEkucHVzaCgiMCIpLEkucHVzaCgiMSIpLEkucHVzaCgiLS1tZW1vcnktaW8iKSxlLm1lcmdlU2VnbWVudHMmJmUubWVyZ2VTZWdtZW50cyYmSS5wdXNoKCItLW1lcmdlLXNlZ21lbnRzIik7bGV0IHM9InJlYWQtb3ZlcmxhcHBpbmctc2VnbWVudGF0aW9uIixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCBrKCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTp1LHN0ZGVycjpDLG91dHB1dHM6UX09YXdhaXQgRChzLEksdCxpLHtwaXBlbGluZUJhc2VVcmw6dygpLHBpcGVsaW5lV29ya2VyVXJsOnkoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYodSE9PTAmJkMhPT0iIil0aHJvdyBuZXcgRXJyb3IoQyk7cmV0dXJue3dlYldvcmtlcjpnLHNlZ0ltYWdlOlFbMF0/LmRhdGEsbWV0YUluZm86UVsxXT8uZGF0YX19dmFyIE5JPVVJO2FzeW5jIGZ1bmN0aW9uIEdJKEEsZSx0LHI9e3JlZkRpY29tU2VyaWVzOltdfSl7bGV0IGk9W3t0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOntwYXRoOnQsZGF0YTpuZXcgVWludDhBcnJheX19XSxJPVt7dHlwZTpmLkltYWdlLGRhdGE6QX0se3R5cGU6Zi5Kc29uQ29tcGF0aWJsZSxkYXRhOmV9XSxvPVtdO28ucHVzaCgiMCIpLG8ucHVzaCgiMSIpO2xldCBzPXQ7aWYoby5wdXNoKHMpLG8ucHVzaCgiLS1tZW1vcnktaW8iKSxyLnJlZkRpY29tU2VyaWVzKXtpZihyLnJlZkRpY29tU2VyaWVzLmxlbmd0aDwxKXRocm93IG5ldyBFcnJvcignInJlZi1kaWNvbS1zZXJpZXMiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAxJyk7by5wdXNoKCItLXJlZi1kaWNvbS1zZXJpZXMiKSxhd2FpdCBQcm9taXNlLmFsbChyLnJlZkRpY29tU2VyaWVzLm1hcChhc3luYyBwPT57bGV0IG09cDtpZihwIGluc3RhbmNlb2YgRmlsZSl7bGV0IE49YXdhaXQgcC5hcnJheUJ1ZmZlcigpO209e3BhdGg6cC5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkoTil9fUkucHVzaCh7dHlwZTpmLkJpbmFyeUZpbGUsZGF0YTptfSk7bGV0IGg9cCBpbnN0YW5jZW9mIEZpbGU/cC5uYW1lOm0ucGF0aDtvLnB1c2goaCl9KSl9ci5za2lwRW1wdHlTbGljZXMmJnIuc2tpcEVtcHR5U2xpY2VzJiZvLnB1c2goIi0tc2tpcC1lbXB0eS1zbGljZXMiKSxyLnVzZUxhYmVsaWRBc1NlZ21lbnRudW1iZXImJnIudXNlTGFiZWxpZEFzU2VnbWVudG51bWJlciYmby5wdXNoKCItLXVzZS1sYWJlbGlkLWFzLXNlZ21lbnRudW1iZXIiKTtsZXQgbj0id3JpdGUtc2VnbWVudGF0aW9uIixnPXI/LndlYldvcmtlcjtnPT09dm9pZCAwJiYoZz1hd2FpdCBrKCkpO2xldHt3ZWJXb3JrZXI6dSxyZXR1cm5WYWx1ZTpDLHN0ZGVycjpRLG91dHB1dHM6bH09YXdhaXQgRChuLG8saSxJLHtwaXBlbGluZUJhc2VVcmw6dygpLHBpcGVsaW5lV29ya2VyVXJsOnkoKSx3ZWJXb3JrZXI6Zyxub0NvcHk6cj8ubm9Db3B5fSk7aWYoQyE9PTAmJlEhPT0iIil0aHJvdyBuZXcgRXJyb3IoUSk7cmV0dXJue3dlYldvcmtlcjp1LG91dHB1dERpY29tRmlsZTpsWzBdPy5kYXRhfX12YXIgYkk9R0k7YXN5bmMgZnVuY3Rpb24gTEkoQSxlLHQscj17cmVmRGljb21TZXJpZXM6W119KXtsZXQgaT1be3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6dCxkYXRhOm5ldyBVaW50OEFycmF5fX1dLEk9W3t0eXBlOmYuSW1hZ2UsZGF0YTpBfSx7dHlwZTpmLkpzb25Db21wYXRpYmxlLGRhdGE6ZX1dLG89W107by5wdXNoKCIwIiksby5wdXNoKCIxIik7bGV0IHM9dDtpZihvLnB1c2gocyksby5wdXNoKCItLW1lbW9yeS1pbyIpLHIucmVmRGljb21TZXJpZXMpe2lmKHIucmVmRGljb21TZXJpZXMubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcicmVmLWRpY29tLXNlcmllcyIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtvLnB1c2goIi0tcmVmLWRpY29tLXNlcmllcyIpLGF3YWl0IFByb21pc2UuYWxsKHIucmVmRGljb21TZXJpZXMubWFwKGFzeW5jIHA9PntsZXQgbT1wO2lmKHAgaW5zdGFuY2VvZiBGaWxlKXtsZXQgTj1hd2FpdCBwLmFycmF5QnVmZmVyKCk7bT17cGF0aDpwLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShOKX19SS5wdXNoKHt0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOm19KTtsZXQgaD1wIGluc3RhbmNlb2YgRmlsZT9wLm5hbWU6bS5wYXRoO28ucHVzaChoKX0pKX1yLnNraXBFbXB0eVNsaWNlcyYmci5za2lwRW1wdHlTbGljZXMmJm8ucHVzaCgiLS1za2lwLWVtcHR5LXNsaWNlcyIpLHIudXNlTGFiZWxpZEFzU2VnbWVudG51bWJlciYmci51c2VMYWJlbGlkQXNTZWdtZW50bnVtYmVyJiZvLnB1c2goIi0tdXNlLWxhYmVsaWQtYXMtc2VnbWVudG51bWJlciIpO2xldCBuPSJ3cml0ZS1vdmVybGFwcGluZy1zZWdtZW50YXRpb24iLGc9cj8ud2ViV29ya2VyO2c9PT12b2lkIDAmJihnPWF3YWl0IGsoKSk7bGV0e3dlYldvcmtlcjp1LHJldHVyblZhbHVlOkMsc3RkZXJyOlEsb3V0cHV0czpsfT1hd2FpdCBEKG4sbyxpLEkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjpnLG5vQ29weTpyPy5ub0NvcHl9KTtpZihDIT09MCYmUSE9PSIiKXRocm93IG5ldyBFcnJvcihRKTtyZXR1cm57d2ViV29ya2VyOnUsb3V0cHV0RGljb21GaWxlOmxbMF0/LmRhdGF9fXZhciBKST1MSTthc3luYyBmdW5jdGlvbiBNSShBLGUsdD17cmVmRGljb21TZXJpZXM6W10sc2VnSW1hZ2VzOltdfSl7bGV0IHI9W3t0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxpPVt7dHlwZTpmLkpzb25Db21wYXRpYmxlLGRhdGE6QX1dLEk9W107SS5wdXNoKCIwIik7bGV0IGE9ZTtpZihJLnB1c2goYSksSS5wdXNoKCItLW1lbW9yeS1pbyIpLHQucmVmRGljb21TZXJpZXMpe2lmKHQucmVmRGljb21TZXJpZXMubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcicmVmLWRpY29tLXNlcmllcyIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtJLnB1c2goIi0tcmVmLWRpY29tLXNlcmllcyIpLGF3YWl0IFByb21pc2UuYWxsKHQucmVmRGljb21TZXJpZXMubWFwKGFzeW5jIGw9PntsZXQgYz1sO2lmKGwgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbT1hd2FpdCBsLmFycmF5QnVmZmVyKCk7Yz17cGF0aDpsLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShtKX19aS5wdXNoKHt0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOmN9KTtsZXQgcD1sIGluc3RhbmNlb2YgRmlsZT9sLm5hbWU6Yy5wYXRoO0kucHVzaChwKX0pKX1pZih0LnNlZ0ltYWdlcyl7aWYodC5zZWdJbWFnZXMubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcic2VnLWltYWdlcyIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtJLnB1c2goIi0tc2VnLWltYWdlcyIpLGF3YWl0IFByb21pc2UuYWxsKHQuc2VnSW1hZ2VzLm1hcChhc3luYyBsPT57bGV0IGM9bDtpZihsIGluc3RhbmNlb2YgRmlsZSl7bGV0IG09YXdhaXQgbC5hcnJheUJ1ZmZlcigpO2M9e3BhdGg6bC5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkobSl9fWkucHVzaCh7dHlwZTpmLkJpbmFyeUZpbGUsZGF0YTpjfSk7bGV0IHA9bCBpbnN0YW5jZW9mIEZpbGU/bC5uYW1lOmMucGF0aDtJLnB1c2gocCl9KSl9dC5za2lwRW1wdHlTbGljZXMmJnQuc2tpcEVtcHR5U2xpY2VzJiZJLnB1c2goIi0tc2tpcC1lbXB0eS1zbGljZXMiKSx0LnVzZUxhYmVsaWRBc1NlZ21lbnRudW1iZXImJnQudXNlTGFiZWxpZEFzU2VnbWVudG51bWJlciYmSS5wdXNoKCItLXVzZS1sYWJlbGlkLWFzLXNlZ21lbnRudW1iZXIiKTtsZXQgRT0id3JpdGUtbXVsdGktc2VnbWVudGF0aW9uIixzPXQ/LndlYldvcmtlcjtzPT09dm9pZCAwJiYocz1hd2FpdCBrKCkpO2xldHt3ZWJXb3JrZXI6bixyZXR1cm5WYWx1ZTpnLHN0ZGVycjp1LG91dHB1dHM6Q309YXdhaXQgRChFLEkscixpLHtwaXBlbGluZUJhc2VVcmw6dygpLHBpcGVsaW5lV29ya2VyVXJsOnkoKSx3ZWJXb3JrZXI6cyxub0NvcHk6dD8ubm9Db3B5fSk7aWYoZyE9PTAmJnUhPT0iIil0aHJvdyBuZXcgRXJyb3IodSk7cmV0dXJue3dlYldvcmtlcjpuLG91dHB1dERpY29tRmlsZTpDWzBdPy5kYXRhfX12YXIgSEk9TUk7YXN5bmMgZnVuY3Rpb24gWUkoQSxlLHQ9e30pe2xldCByPVt7dHlwZTpmLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgYz1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUoYyl9fWxldCBJPVt7dHlwZTpmLlRleHRGaWxlLGRhdGE6aX1dLG89W10sYT1pLnBhdGg7by5wdXNoKGEpO2xldCBFPWU7aWYoby5wdXNoKEUpLG8ucHVzaCgiLS1tZW1vcnktaW8iKSx0LmRpY29tTWV0YWRhdGEpe2xldCBjPUkubGVuZ3RoLnRvU3RyaW5nKCk7SS5wdXNoKHt0eXBlOmYuSnNvbkNvbXBhdGlibGUsZGF0YTp0LmRpY29tTWV0YWRhdGF9KSxvLnB1c2goIi0tZGljb20tbWV0YWRhdGEiLGMpfWxldCBzPSJ3cml0ZS1ydC1zdHJ1Y3QiLG49dD8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IGsoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOnUsc3RkZXJyOkMsb3V0cHV0czpRfT1hd2FpdCBEKHMsbyxyLEkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjpuLG5vQ29weTp0Py5ub0NvcHl9KTtpZih1IT09MCYmQyE9PSIiKXRocm93IG5ldyBFcnJvcihDKTtyZXR1cm57d2ViV29ya2VyOmcsb3V0cHV0RGljb206UVswXT8uZGF0YX19dmFyIFRJPVlJO3ZhciBRcj0nZGF0YTp0ZXh0L2phdmFzY3JpcHQ7Y2hhcnNldD11dGYtOCx2YXIgWWU9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBxZT0oQSx0KT0+e2Zvcih2YXIgZSBpbiB0KVllKEEsZSx7Z2V0OnRbZV0sZW51bWVyYWJsZTohMH0pfTt2YXIgTnQ9U3ltYm9sKCJDb21saW5rLnByb3h5IiksTWU9U3ltYm9sKCJDb21saW5rLmVuZHBvaW50IiksS2U9U3ltYm9sKCJDb21saW5rLnJlbGVhc2VQcm94eSIpLFZBPVN5bWJvbCgiQ29tbGluay5maW5hbGl6ZXIiKSxtQT1TeW1ib2woIkNvbWxpbmsudGhyb3duIiksVXQ9QT0+dHlwZW9mIEE9PSJvYmplY3QiJiZBIT09bnVsbHx8dHlwZW9mIEE9PSJmdW5jdGlvbiIsT2U9e2NhbkhhbmRsZTpBPT5VdChBKSYmQVtOdF0sc2VyaWFsaXplKEEpe2xldHtwb3J0MTp0LHBvcnQyOmV9PW5ldyBNZXNzYWdlQ2hhbm5lbDtyZXR1cm4gRkEoQSx0KSxbZSxbZV1dfSxkZXNlcmlhbGl6ZShBKXtyZXR1cm4gQS5zdGFydCgpLGplKEEpfX0sVGU9e2NhbkhhbmRsZTpBPT5VdChBKSYmbUEgaW4gQSxzZXJpYWxpemUoe3ZhbHVlOkF9KXtsZXQgdDtyZXR1cm4gQSBpbnN0YW5jZW9mIEVycm9yP3Q9e2lzRXJyb3I6ITAsdmFsdWU6e21lc3NhZ2U6QS5tZXNzYWdlLG5hbWU6QS5uYW1lLHN0YWNrOkEuc3RhY2t9fTp0PXtpc0Vycm9yOiExLHZhbHVlOkF9LFt0LFtdXX0sZGVzZXJpYWxpemUoQSl7dGhyb3cgQS5pc0Vycm9yP09iamVjdC5hc3NpZ24obmV3IEVycm9yKEEudmFsdWUubWVzc2FnZSksQS52YWx1ZSk6QS52YWx1ZX19LEd0PW5ldyBNYXAoW1sicHJveHkiLE9lXSxbInRocm93IixUZV1dKTtmdW5jdGlvbiB4ZShBLHQpe2ZvcihsZXQgZSBvZiBBKWlmKHQ9PT1lfHxlPT09IioifHxlIGluc3RhbmNlb2YgUmVnRXhwJiZlLnRlc3QodCkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gRkEoQSx0PWdsb2JhbFRoaXMsZT1bIioiXSl7dC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBJKHIpe2lmKCFyfHwhci5kYXRhKXJldHVybjtpZigheGUoZSxyLm9yaWdpbikpe2NvbnNvbGUud2FybihgSW52YWxpZCBvcmlnaW4gXCcke3Iub3JpZ2lufVwnIGZvciBjb21saW5rIHByb3h5YCk7cmV0dXJufWxldHtpZDpnLHR5cGU6byxwYXRoOm59PU9iamVjdC5hc3NpZ24oe3BhdGg6W119LHIuZGF0YSksRT0oci5kYXRhLmFyZ3VtZW50TGlzdHx8W10pLm1hcChXKSxCO3RyeXtsZXQgcz1uLnNsaWNlKDAsLTEpLnJlZHVjZSgobCxhKT0+bFthXSxBKSxDPW4ucmVkdWNlKChsLGEpPT5sW2FdLEEpO3N3aXRjaChvKXtjYXNlIkdFVCI6Qj1DO2JyZWFrO2Nhc2UiU0VUIjpzW24uc2xpY2UoLTEpWzBdXT1XKHIuZGF0YS52YWx1ZSksQj0hMDticmVhaztjYXNlIkFQUExZIjpCPUMuYXBwbHkocyxFKTticmVhaztjYXNlIkNPTlNUUlVDVCI6e2xldCBsPW5ldyBDKC4uLkUpO0I9WGUobCl9YnJlYWs7Y2FzZSJFTkRQT0lOVCI6e2xldHtwb3J0MTpsLHBvcnQyOmF9PW5ldyBNZXNzYWdlQ2hhbm5lbDtGQShBLGEpLEI9X0EobCxbbF0pfWJyZWFrO2Nhc2UiUkVMRUFTRSI6Qj12b2lkIDA7YnJlYWs7ZGVmYXVsdDpyZXR1cm59fWNhdGNoKHMpe0I9e3ZhbHVlOnMsW21BXTowfX1Qcm9taXNlLnJlc29sdmUoQikuY2F0Y2gocz0+KHt2YWx1ZTpzLFttQV06MH0pKS50aGVuKHM9PntsZXRbQyxsXT1TQShzKTt0LnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxDKSx7aWQ6Z30pLGwpLG89PT0iUkVMRUFTRSImJih0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLEkpLGt0KHQpLFZBIGluIEEmJnR5cGVvZiBBW1ZBXT09ImZ1bmN0aW9uIiYmQVtWQV0oKSl9KS5jYXRjaChzPT57bGV0W0MsbF09U0Eoe3ZhbHVlOm5ldyBUeXBlRXJyb3IoIlVuc2VyaWFsaXphYmxlIHJldHVybiB2YWx1ZSIpLFttQV06MH0pO3QucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEMpLHtpZDpnfSksbCl9KX0pLHQuc3RhcnQmJnQuc3RhcnQoKX1mdW5jdGlvbiBQZShBKXtyZXR1cm4gQS5jb25zdHJ1Y3Rvci5uYW1lPT09Ik1lc3NhZ2VQb3J0In1mdW5jdGlvbiBrdChBKXtQZShBKSYmQS5jbG9zZSgpfWZ1bmN0aW9uIGplKEEsdCl7cmV0dXJuIFhBKEEsW10sdCl9ZnVuY3Rpb24geUEoQSl7aWYoQSl0aHJvdyBuZXcgRXJyb3IoIlByb3h5IGhhcyBiZWVuIHJlbGVhc2VkIGFuZCBpcyBub3QgdXNlYWJsZSIpfWZ1bmN0aW9uIEx0KEEpe3JldHVybiBfKEEse3R5cGU6IlJFTEVBU0UifSkudGhlbigoKT0+e2t0KEEpfSl9dmFyIHdBPW5ldyBXZWFrTWFwLHBBPSJGaW5hbGl6YXRpb25SZWdpc3RyeSJpbiBnbG9iYWxUaGlzJiZuZXcgRmluYWxpemF0aW9uUmVnaXN0cnkoQT0+e2xldCB0PSh3QS5nZXQoQSl8fDApLTE7d0Euc2V0KEEsdCksdD09PTAmJkx0KEEpfSk7ZnVuY3Rpb24gV2UoQSx0KXtsZXQgZT0od0EuZ2V0KHQpfHwwKSsxO3dBLnNldCh0LGUpLHBBJiZwQS5yZWdpc3RlcihBLHQsQSl9ZnVuY3Rpb24gWmUoQSl7cEEmJnBBLnVucmVnaXN0ZXIoQSl9ZnVuY3Rpb24gWEEoQSx0PVtdLGU9ZnVuY3Rpb24oKXt9KXtsZXQgST0hMSxyPW5ldyBQcm94eShlLHtnZXQoZyxvKXtpZih5QShJKSxvPT09S2UpcmV0dXJuKCk9PntaZShyKSxMdChBKSxJPSEwfTtpZihvPT09InRoZW4iKXtpZih0Lmxlbmd0aD09PTApcmV0dXJue3RoZW46KCk9PnJ9O2xldCBuPV8oQSx7dHlwZToiR0VUIixwYXRoOnQubWFwKEU9PkUudG9TdHJpbmcoKSl9KS50aGVuKFcpO3JldHVybiBuLnRoZW4uYmluZChuKX1yZXR1cm4gWEEoQSxbLi4udCxvXSl9LHNldChnLG8sbil7eUEoSSk7bGV0W0UsQl09U0Eobik7cmV0dXJuIF8oQSx7dHlwZToiU0VUIixwYXRoOlsuLi50LG9dLm1hcChzPT5zLnRvU3RyaW5nKCkpLHZhbHVlOkV9LEIpLnRoZW4oVyl9LGFwcGx5KGcsbyxuKXt5QShJKTtsZXQgRT10W3QubGVuZ3RoLTFdO2lmKEU9PT1NZSlyZXR1cm4gXyhBLHt0eXBlOiJFTkRQT0lOVCJ9KS50aGVuKFcpO2lmKEU9PT0iYmluZCIpcmV0dXJuIFhBKEEsdC5zbGljZSgwLC0xKSk7bGV0W0Isc109UnQobik7cmV0dXJuIF8oQSx7dHlwZToiQVBQTFkiLHBhdGg6dC5tYXAoQz0+Qy50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Qn0scykudGhlbihXKX0sY29uc3RydWN0KGcsbyl7eUEoSSk7bGV0W24sRV09UnQobyk7cmV0dXJuIF8oQSx7dHlwZToiQ09OU1RSVUNUIixwYXRoOnQubWFwKEI9PkIudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0Om59LEUpLnRoZW4oVyl9fSk7cmV0dXJuIFdlKHIsQSkscn1mdW5jdGlvbiBWZShBKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxBKX1mdW5jdGlvbiBSdChBKXtsZXQgdD1BLm1hcChTQSk7cmV0dXJuW3QubWFwKGU9PmVbMF0pLFZlKHQubWFwKGU9PmVbMV0pKV19dmFyIGJ0PW5ldyBXZWFrTWFwO2Z1bmN0aW9uIF9BKEEsdCl7cmV0dXJuIGJ0LnNldChBLHQpLEF9ZnVuY3Rpb24gWGUoQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7W050XTohMH0pfWZ1bmN0aW9uIFNBKEEpe2ZvcihsZXRbdCxlXW9mIEd0KWlmKGUuY2FuSGFuZGxlKEEpKXtsZXRbSSxyXT1lLnNlcmlhbGl6ZShBKTtyZXR1cm5be3R5cGU6IkhBTkRMRVIiLG5hbWU6dCx2YWx1ZTpJfSxyXX1yZXR1cm5be3R5cGU6IlJBVyIsdmFsdWU6QX0sYnQuZ2V0KEEpfHxbXV19ZnVuY3Rpb24gVyhBKXtzd2l0Y2goQS50eXBlKXtjYXNlIkhBTkRMRVIiOnJldHVybiBHdC5nZXQoQS5uYW1lKS5kZXNlcmlhbGl6ZShBLnZhbHVlKTtjYXNlIlJBVyI6cmV0dXJuIEEudmFsdWV9fWZ1bmN0aW9uIF8oQSx0LGUpe3JldHVybiBuZXcgUHJvbWlzZShJPT57bGV0IHI9X2UoKTtBLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIGcobyl7IW8uZGF0YXx8IW8uZGF0YS5pZHx8by5kYXRhLmlkIT09cnx8KEEucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZyksSShvLmRhdGEpKX0pLEEuc3RhcnQmJkEuc3RhcnQoKSxBLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oe2lkOnJ9LHQpLGUpfSl9ZnVuY3Rpb24gX2UoKXtyZXR1cm4gbmV3IEFycmF5KDQpLmZpbGwoMCkubWFwKCgpPT5NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpLnRvU3RyaW5nKDE2KSkuam9pbigiLSIpfWZ1bmN0aW9uIG9BKEEsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEEuYXBwbHkodCxhcmd1bWVudHMpfX12YXJ7dG9TdHJpbmc6emV9PU9iamVjdC5wcm90b3R5cGUse2dldFByb3RvdHlwZU9mOnZBfT1PYmplY3Qse2l0ZXJhdG9yOk5BLHRvU3RyaW5nVGFnOll0fT1TeW1ib2wsVUE9KEE9PnQ9PntsZXQgZT16ZS5jYWxsKHQpO3JldHVybiBBW2VdfHwoQVtlXT1lLnNsaWNlKDgsLTEpLnRvTG93ZXJDYXNlKCkpfSkoT2JqZWN0LmNyZWF0ZShudWxsKSksTD1BPT4oQT1BLnRvTG93ZXJDYXNlKCksdD0+VUEodCk9PT1BKSxHQT1BPT50PT50eXBlb2YgdD09PUEse2lzQXJyYXk6dn09QXJyYXksej1HQSgidW5kZWZpbmVkIik7ZnVuY3Rpb24gZ0EoQSl7cmV0dXJuIEEhPT1udWxsJiYheihBKSYmQS5jb25zdHJ1Y3RvciE9PW51bGwmJiF6KEEuY29uc3RydWN0b3IpJiZOKEEuY29uc3RydWN0b3IuaXNCdWZmZXIpJiZBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKEEpfXZhciBxdD1MKCJBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uIHZlKEEpe2xldCB0O3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXc/dD1BcnJheUJ1ZmZlci5pc1ZpZXcoQSk6dD1BJiZBLmJ1ZmZlciYmcXQoQS5idWZmZXIpLHR9dmFyICRlPUdBKCJzdHJpbmciKSxOPUdBKCJmdW5jdGlvbiIpLE10PUdBKCJudW1iZXIiKSxpQT1BPT5BIT09bnVsbCYmdHlwZW9mIEE9PSJvYmplY3QiLEFJPUE9PkE9PT0hMHx8QT09PSExLFJBPUE9PntpZihVQShBKSE9PSJvYmplY3QiKXJldHVybiExO2xldCB0PXZBKEEpO3JldHVybih0PT09bnVsbHx8dD09PU9iamVjdC5wcm90b3R5cGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KT09PW51bGwpJiYhKFl0IGluIEEpJiYhKE5BIGluIEEpfSx0ST1BPT57aWYoIWlBKEEpfHxnQShBKSlyZXR1cm4hMTt0cnl7cmV0dXJuIE9iamVjdC5rZXlzKEEpLmxlbmd0aD09PTAmJk9iamVjdC5nZXRQcm90b3R5cGVPZihBKT09PU9iamVjdC5wcm90b3R5cGV9Y2F0Y2h7cmV0dXJuITF9fSxlST1MKCJEYXRlIiksSUk9TCgiRmlsZSIpLHJJPUwoIkJsb2IiKSxvST1MKCJGaWxlTGlzdCIpLGdJPUE9PmlBKEEpJiZOKEEucGlwZSksaUk9QT0+e2xldCB0O3JldHVybiBBJiYodHlwZW9mIEZvcm1EYXRhPT0iZnVuY3Rpb24iJiZBIGluc3RhbmNlb2YgRm9ybURhdGF8fE4oQS5hcHBlbmQpJiYoKHQ9VUEoQSkpPT09ImZvcm1kYXRhInx8dD09PSJvYmplY3QiJiZOKEEudG9TdHJpbmcpJiZBLnRvU3RyaW5nKCk9PT0iW29iamVjdCBGb3JtRGF0YV0iKSl9LHNJPUwoIlVSTFNlYXJjaFBhcmFtcyIpLFtuSSxDSSxCSSxhSV09WyJSZWFkYWJsZVN0cmVhbSIsIlJlcXVlc3QiLCJSZXNwb25zZSIsIkhlYWRlcnMiXS5tYXAoTCksUUk9QT0+QS50cmltP0EudHJpbSgpOkEucmVwbGFjZSgvXltcXHNcXHVGRUZGXFx4QTBdK3xbXFxzXFx1RkVGRlxceEEwXSskL2csIiIpO2Z1bmN0aW9uIHNBKEEsdCx7YWxsT3duS2V5czplPSExfT17fSl7aWYoQT09PW51bGx8fHR5cGVvZiBBPiJ1IilyZXR1cm47bGV0IEkscjtpZih0eXBlb2YgQSE9Im9iamVjdCImJihBPVtBXSksdihBKSlmb3IoST0wLHI9QS5sZW5ndGg7STxyO0krKyl0LmNhbGwobnVsbCxBW0ldLEksQSk7ZWxzZXtpZihnQShBKSlyZXR1cm47bGV0IGc9ZT9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKTpPYmplY3Qua2V5cyhBKSxvPWcubGVuZ3RoLG47Zm9yKEk9MDtJPG87SSsrKW49Z1tJXSx0LmNhbGwobnVsbCxBW25dLG4sQSl9fWZ1bmN0aW9uIEt0KEEsdCl7aWYoZ0EoQSkpcmV0dXJuIG51bGw7dD10LnRvTG93ZXJDYXNlKCk7bGV0IGU9T2JqZWN0LmtleXMoQSksST1lLmxlbmd0aCxyO2Zvcig7SS0tID4wOylpZihyPWVbSV0sdD09PXIudG9Mb3dlckNhc2UoKSlyZXR1cm4gcjtyZXR1cm4gbnVsbH12YXIgWj10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6Z2xvYmFsLE90PUE9PiF6KEEpJiZBIT09WjtmdW5jdGlvbiB6QSgpe2xldHtjYXNlbGVzczpBLHNraXBVbmRlZmluZWQ6dH09T3QodGhpcykmJnRoaXN8fHt9LGU9e30sST0ocixnKT0+e2xldCBvPUEmJkt0KGUsZyl8fGc7UkEoZVtvXSkmJlJBKHIpP2Vbb109ekEoZVtvXSxyKTpSQShyKT9lW29dPXpBKHt9LHIpOnYocik/ZVtvXT1yLnNsaWNlKCk6KCF0fHwheihyKSkmJihlW29dPXIpfTtmb3IobGV0IHI9MCxnPWFyZ3VtZW50cy5sZW5ndGg7cjxnO3IrKylhcmd1bWVudHNbcl0mJnNBKGFyZ3VtZW50c1tyXSxJKTtyZXR1cm4gZX12YXIgRUk9KEEsdCxlLHthbGxPd25LZXlzOkl9PXt9KT0+KHNBKHQsKHIsZyk9PntlJiZOKHIpP0FbZ109b0EocixlKTpBW2ddPXJ9LHthbGxPd25LZXlzOkl9KSxBKSxjST1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLGZJPShBLHQsZSxJKT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUsSSksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTp0LnByb3RvdHlwZX0pLGUmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsZSl9LGxJPShBLHQsZSxJKT0+e2xldCByLGcsbyxuPXt9O2lmKHQ9dHx8e30sQT09bnVsbClyZXR1cm4gdDtkb3tmb3Iocj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxnPXIubGVuZ3RoO2ctLSA+MDspbz1yW2ddLCghSXx8SShvLEEsdCkpJiYhbltvXSYmKHRbb109QVtvXSxuW29dPSEwKTtBPWUhPT0hMSYmdkEoQSl9d2hpbGUoQSYmKCFlfHxlKEEsdCkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIHR9LHVJPShBLHQsZSk9PntBPVN0cmluZyhBKSwoZT09PXZvaWQgMHx8ZT5BLmxlbmd0aCkmJihlPUEubGVuZ3RoKSxlLT10Lmxlbmd0aDtsZXQgST1BLmluZGV4T2YodCxlKTtyZXR1cm4gSSE9PS0xJiZJPT09ZX0sZEk9QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKHYoQSkpcmV0dXJuIEE7bGV0IHQ9QS5sZW5ndGg7aWYoIU10KHQpKXJldHVybiBudWxsO2xldCBlPW5ldyBBcnJheSh0KTtmb3IoO3QtLSA+MDspZVt0XT1BW3RdO3JldHVybiBlfSxEST0oQT0+dD0+QSYmdCBpbnN0YW5jZW9mIEEpKHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmdkEoVWludDhBcnJheSkpLGhJPShBLHQpPT57bGV0IEk9KEEmJkFbTkFdKS5jYWxsKEEpLHI7Zm9yKDsocj1JLm5leHQoKSkmJiFyLmRvbmU7KXtsZXQgZz1yLnZhbHVlO3QuY2FsbChBLGdbMF0sZ1sxXSl9fSx5ST0oQSx0KT0+e2xldCBlLEk9W107Zm9yKDsoZT1BLmV4ZWModCkpIT09bnVsbDspSS5wdXNoKGUpO3JldHVybiBJfSxtST1MKCJIVE1MRm9ybUVsZW1lbnQiKSx3ST1BPT5BLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvWy1fXFxzXShbYS16XFxkXSkoXFx3KikvZyxmdW5jdGlvbihlLEkscil7cmV0dXJuIEkudG9VcHBlckNhc2UoKStyfSksSHQ9KCh7aGFzT3duUHJvcGVydHk6QX0pPT4odCxlKT0+QS5jYWxsKHQsZSkpKE9iamVjdC5wcm90b3R5cGUpLHBJPUwoIlJlZ0V4cCIpLFR0PShBLHQpPT57bGV0IGU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoQSksST17fTtzQShlLChyLGcpPT57bGV0IG87KG89dChyLGcsQSkpIT09ITEmJihJW2ddPW98fHIpfSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQSxJKX0sU0k9QT0+e1R0KEEsKHQsZSk9PntpZihOKEEpJiZbImFyZ3VtZW50cyIsImNhbGxlciIsImNhbGxlZSJdLmluZGV4T2YoZSkhPT0tMSlyZXR1cm4hMTtsZXQgST1BW2VdO2lmKE4oSSkpe2lmKHQuZW51bWVyYWJsZT0hMSwid3JpdGFibGUiaW4gdCl7dC53cml0YWJsZT0hMTtyZXR1cm59dC5zZXR8fCh0LnNldD0oKT0+e3Rocm93IEVycm9yKCJDYW4gbm90IHJld3JpdGUgcmVhZC1vbmx5IG1ldGhvZCBcJyIrZSsiXCciKX0pfX0pfSxGST0oQSx0KT0+e2xldCBlPXt9LEk9cj0+e3IuZm9yRWFjaChnPT57ZVtnXT0hMH0pfTtyZXR1cm4gdihBKT9JKEEpOkkoU3RyaW5nKEEpLnNwbGl0KHQpKSxlfSxSST0oKT0+e30sTkk9KEEsdCk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOnQ7ZnVuY3Rpb24gVUkoQSl7cmV0dXJuISEoQSYmTihBLmFwcGVuZCkmJkFbWXRdPT09IkZvcm1EYXRhIiYmQVtOQV0pfXZhciBHST1BPT57bGV0IHQ9bmV3IEFycmF5KDEwKSxlPShJLHIpPT57aWYoaUEoSSkpe2lmKHQuaW5kZXhPZihJKT49MClyZXR1cm47aWYoZ0EoSSkpcmV0dXJuIEk7aWYoISgidG9KU09OImluIEkpKXt0W3JdPUk7bGV0IGc9dihJKT9bXTp7fTtyZXR1cm4gc0EoSSwobyxuKT0+e2xldCBFPWUobyxyKzEpOyF6KEUpJiYoZ1tuXT1FKX0pLHRbcl09dm9pZCAwLGd9fXJldHVybiBJfTtyZXR1cm4gZShBLDApfSxrST1MKCJBc3luY0Z1bmN0aW9uIiksTEk9QT0+QSYmKGlBKEEpfHxOKEEpKSYmTihBLnRoZW4pJiZOKEEuY2F0Y2gpLHh0PSgoQSx0KT0+QT9zZXRJbW1lZGlhdGU6dD8oKGUsSSk9PihaLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCh7c291cmNlOnIsZGF0YTpnfSk9PntyPT09WiYmZz09PWUmJkkubGVuZ3RoJiZJLnNoaWZ0KCkoKX0sITEpLHI9PntJLnB1c2gociksWi5wb3N0TWVzc2FnZShlLCIqIil9KSkoYGF4aW9zQCR7TWF0aC5yYW5kb20oKX1gLFtdKTplPT5zZXRUaW1lb3V0KGUpKSh0eXBlb2Ygc2V0SW1tZWRpYXRlPT0iZnVuY3Rpb24iLE4oWi5wb3N0TWVzc2FnZSkpLGJJPXR5cGVvZiBxdWV1ZU1pY3JvdGFzazwidSI/cXVldWVNaWNyb3Rhc2suYmluZChaKTp0eXBlb2YgcHJvY2VzczwidSImJnByb2Nlc3MubmV4dFRpY2t8fHh0LEpJPUE9PkEhPW51bGwmJk4oQVtOQV0pLGk9e2lzQXJyYXk6dixpc0FycmF5QnVmZmVyOnF0LGlzQnVmZmVyOmdBLGlzRm9ybURhdGE6aUksaXNBcnJheUJ1ZmZlclZpZXc6dmUsaXNTdHJpbmc6JGUsaXNOdW1iZXI6TXQsaXNCb29sZWFuOkFJLGlzT2JqZWN0OmlBLGlzUGxhaW5PYmplY3Q6UkEsaXNFbXB0eU9iamVjdDp0SSxpc1JlYWRhYmxlU3RyZWFtOm5JLGlzUmVxdWVzdDpDSSxpc1Jlc3BvbnNlOkJJLGlzSGVhZGVyczphSSxpc1VuZGVmaW5lZDp6LGlzRGF0ZTplSSxpc0ZpbGU6SUksaXNCbG9iOnJJLGlzUmVnRXhwOnBJLGlzRnVuY3Rpb246Tixpc1N0cmVhbTpnSSxpc1VSTFNlYXJjaFBhcmFtczpzSSxpc1R5cGVkQXJyYXk6REksaXNGaWxlTGlzdDpvSSxmb3JFYWNoOnNBLG1lcmdlOnpBLGV4dGVuZDpFSSx0cmltOlFJLHN0cmlwQk9NOmNJLGluaGVyaXRzOmZJLHRvRmxhdE9iamVjdDpsSSxraW5kT2Y6VUEsa2luZE9mVGVzdDpMLGVuZHNXaXRoOnVJLHRvQXJyYXk6ZEksZm9yRWFjaEVudHJ5OmhJLG1hdGNoQWxsOnlJLGlzSFRNTEZvcm06bUksaGFzT3duUHJvcGVydHk6SHQsaGFzT3duUHJvcDpIdCxyZWR1Y2VEZXNjcmlwdG9yczpUdCxmcmVlemVNZXRob2RzOlNJLHRvT2JqZWN0U2V0OkZJLHRvQ2FtZWxDYXNlOndJLG5vb3A6UkksdG9GaW5pdGVOdW1iZXI6TkksZmluZEtleTpLdCxnbG9iYWw6Wixpc0NvbnRleHREZWZpbmVkOk90LGlzU3BlY0NvbXBsaWFudEZvcm06VUksdG9KU09OT2JqZWN0OkdJLGlzQXN5bmNGbjprSSxpc1RoZW5hYmxlOkxJLHNldEltbWVkaWF0ZTp4dCxhc2FwOmJJLGlzSXRlcmFibGU6Skl9O2Z1bmN0aW9uICQoQSx0LGUsSSxyKXtFcnJvci5jYWxsKHRoaXMpLEVycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsdGhpcy5jb25zdHJ1Y3Rvcik6dGhpcy5zdGFjaz1uZXcgRXJyb3IoKS5zdGFjayx0aGlzLm1lc3NhZ2U9QSx0aGlzLm5hbWU9IkF4aW9zRXJyb3IiLHQmJih0aGlzLmNvZGU9dCksZSYmKHRoaXMuY29uZmlnPWUpLEkmJih0aGlzLnJlcXVlc3Q9SSksciYmKHRoaXMucmVzcG9uc2U9cix0aGlzLnN0YXR1cz1yLnN0YXR1cz9yLnN0YXR1czpudWxsKX1pLmluaGVyaXRzKCQsRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzppLnRvSlNPTk9iamVjdCh0aGlzLmNvbmZpZyksY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMuc3RhdHVzfX19KTt2YXIgUHQ9JC5wcm90b3R5cGUsanQ9e307WyJFUlJfQkFEX09QVElPTl9WQUxVRSIsIkVSUl9CQURfT1BUSU9OIiwiRUNPTk5BQk9SVEVEIiwiRVRJTUVET1VUIiwiRVJSX05FVFdPUksiLCJFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIiwiRVJSX0RFUFJFQ0FURUQiLCJFUlJfQkFEX1JFU1BPTlNFIiwiRVJSX0JBRF9SRVFVRVNUIiwiRVJSX0NBTkNFTEVEIiwiRVJSX05PVF9TVVBQT1JUIiwiRVJSX0lOVkFMSURfVVJMIl0uZm9yRWFjaChBPT57anRbQV09e3ZhbHVlOkF9fSk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoJCxqdCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFB0LCJpc0F4aW9zRXJyb3IiLHt2YWx1ZTohMH0pOyQuZnJvbT0oQSx0LGUsSSxyLGcpPT57bGV0IG89T2JqZWN0LmNyZWF0ZShQdCk7aS50b0ZsYXRPYmplY3QoQSxvLGZ1bmN0aW9uKHMpe3JldHVybiBzIT09RXJyb3IucHJvdG90eXBlfSxCPT5CIT09ImlzQXhpb3NFcnJvciIpO2xldCBuPUEmJkEubWVzc2FnZT9BLm1lc3NhZ2U6IkVycm9yIixFPXQ9PW51bGwmJkE/QS5jb2RlOnQ7cmV0dXJuICQuY2FsbChvLG4sRSxlLEksciksQSYmby5jYXVzZT09bnVsbCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sImNhdXNlIix7dmFsdWU6QSxjb25maWd1cmFibGU6ITB9KSxvLm5hbWU9QSYmQS5uYW1lfHwiRXJyb3IiLGcmJk9iamVjdC5hc3NpZ24obyxnKSxvfTt2YXIgdT0kO3ZhciBrQT1udWxsO2Z1bmN0aW9uICRBKEEpe3JldHVybiBpLmlzUGxhaW5PYmplY3QoQSl8fGkuaXNBcnJheShBKX1mdW5jdGlvbiBadChBKXtyZXR1cm4gaS5lbmRzV2l0aChBLCJbXSIpP0Euc2xpY2UoMCwtMik6QX1mdW5jdGlvbiBXdChBLHQsZSl7cmV0dXJuIEE/QS5jb25jYXQodCkubWFwKGZ1bmN0aW9uKHIsZyl7cmV0dXJuIHI9WnQociksIWUmJmc/IlsiK3IrIl0iOnJ9KS5qb2luKGU/Ii4iOiIiKTp0fWZ1bmN0aW9uIEhJKEEpe3JldHVybiBpLmlzQXJyYXkoQSkmJiFBLnNvbWUoJEEpfXZhciBZST1pLnRvRmxhdE9iamVjdChpLHt9LG51bGwsZnVuY3Rpb24odCl7cmV0dXJuL15pc1tBLVpdLy50ZXN0KHQpfSk7ZnVuY3Rpb24gcUkoQSx0LGUpe2lmKCFpLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoInRhcmdldCBtdXN0IGJlIGFuIG9iamVjdCIpO3Q9dHx8bmV3KGtBfHxGb3JtRGF0YSksZT1pLnRvRmxhdE9iamVjdChlLHttZXRhVG9rZW5zOiEwLGRvdHM6ITEsaW5kZXhlczohMX0sITEsZnVuY3Rpb24oZixjKXtyZXR1cm4haS5pc1VuZGVmaW5lZChjW2ZdKX0pO2xldCBJPWUubWV0YVRva2VucyxyPWUudmlzaXRvcnx8cyxnPWUuZG90cyxvPWUuaW5kZXhlcyxFPShlLkJsb2J8fHR5cGVvZiBCbG9iPCJ1IiYmQmxvYikmJmkuaXNTcGVjQ29tcGxpYW50Rm9ybSh0KTtpZighaS5pc0Z1bmN0aW9uKHIpKXRocm93IG5ldyBUeXBlRXJyb3IoInZpc2l0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uIik7ZnVuY3Rpb24gQihRKXtpZihRPT09bnVsbClyZXR1cm4iIjtpZihpLmlzRGF0ZShRKSlyZXR1cm4gUS50b0lTT1N0cmluZygpO2lmKGkuaXNCb29sZWFuKFEpKXJldHVybiBRLnRvU3RyaW5nKCk7aWYoIUUmJmkuaXNCbG9iKFEpKXRocm93IG5ldyB1KCJCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLiIpO3JldHVybiBpLmlzQXJyYXlCdWZmZXIoUSl8fGkuaXNUeXBlZEFycmF5KFEpP0UmJnR5cGVvZiBCbG9iPT0iZnVuY3Rpb24iP25ldyBCbG9iKFtRXSk6QnVmZmVyLmZyb20oUSk6UX1mdW5jdGlvbiBzKFEsZixjKXtsZXQgRD1RO2lmKFEmJiFjJiZ0eXBlb2YgUT09Im9iamVjdCIpe2lmKGkuZW5kc1dpdGgoZiwie30iKSlmPUk/ZjpmLnNsaWNlKDAsLTIpLFE9SlNPTi5zdHJpbmdpZnkoUSk7ZWxzZSBpZihpLmlzQXJyYXkoUSkmJkhJKFEpfHwoaS5pc0ZpbGVMaXN0KFEpfHxpLmVuZHNXaXRoKGYsIltdIikpJiYoRD1pLnRvQXJyYXkoUSkpKXJldHVybiBmPVp0KGYpLEQuZm9yRWFjaChmdW5jdGlvbih5LFIpeyEoaS5pc1VuZGVmaW5lZCh5KXx8eT09PW51bGwpJiZ0LmFwcGVuZChvPT09ITA/V3QoW2ZdLFIsZyk6bz09PW51bGw/ZjpmKyJbXSIsQih5KSl9KSwhMX1yZXR1cm4gJEEoUSk/ITA6KHQuYXBwZW5kKFd0KGMsZixnKSxCKFEpKSwhMSl9bGV0IEM9W10sbD1PYmplY3QuYXNzaWduKFlJLHtkZWZhdWx0VmlzaXRvcjpzLGNvbnZlcnRWYWx1ZTpCLGlzVmlzaXRhYmxlOiRBfSk7ZnVuY3Rpb24gYShRLGYpe2lmKCFpLmlzVW5kZWZpbmVkKFEpKXtpZihDLmluZGV4T2YoUSkhPT0tMSl0aHJvdyBFcnJvcigiQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIGluICIrZi5qb2luKCIuIikpO0MucHVzaChRKSxpLmZvckVhY2goUSxmdW5jdGlvbihELEYpeyghKGkuaXNVbmRlZmluZWQoRCl8fEQ9PT1udWxsKSYmci5jYWxsKHQsRCxpLmlzU3RyaW5nKEYpP0YudHJpbSgpOkYsZixsKSk9PT0hMCYmYShELGY/Zi5jb25jYXQoRik6W0ZdKX0pLEMucG9wKCl9fWlmKCFpLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoImRhdGEgbXVzdCBiZSBhbiBvYmplY3QiKTtyZXR1cm4gYShBKSx0fXZhciBUPXFJO2Z1bmN0aW9uIFZ0KEEpe2xldCB0PXsiISI6IiUyNTIxIiwiXCciOiIlMjUyNyIsIigiOiIlMjUyOCIsIikiOiIlMjUyOSIsIn4iOiIlMjU3RSIsIiUyNTIwIjoiKyIsIiUyNTAwIjoiXFwwIn07cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC9bIVwnKCl+XXwlMjUyMHwlMjUwMC9nLGZ1bmN0aW9uKEkpe3JldHVybiB0W0ldfSl9ZnVuY3Rpb24gWHQoQSx0KXt0aGlzLl9wYWlycz1bXSxBJiZUKEEsdGhpcyx0KX12YXIgX3Q9WHQucHJvdG90eXBlO190LmFwcGVuZD1mdW5jdGlvbih0LGUpe3RoaXMuX3BhaXJzLnB1c2goW3QsZV0pfTtfdC50b1N0cmluZz1mdW5jdGlvbih0KXtsZXQgZT10P2Z1bmN0aW9uKEkpe3JldHVybiB0LmNhbGwodGhpcyxJLFZ0KX06VnQ7cmV0dXJuIHRoaXMuX3BhaXJzLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gZShyWzBdKSsiPSIrZShyWzFdKX0sIiIpLmpvaW4oIiYiKX07dmFyIExBPVh0O2Z1bmN0aW9uIE1JKEEpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvJTI1M0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjUyNC9nLCIkIikucmVwbGFjZSgvJTI1MkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjUyMC9nLCIrIil9ZnVuY3Rpb24gbkEoQSx0LGUpe2lmKCF0KXJldHVybiBBO2xldCBJPWUmJmUuZW5jb2RlfHxNSTtpLmlzRnVuY3Rpb24oZSkmJihlPXtzZXJpYWxpemU6ZX0pO2xldCByPWUmJmUuc2VyaWFsaXplLGc7aWYocj9nPXIodCxlKTpnPWkuaXNVUkxTZWFyY2hQYXJhbXModCk/dC50b1N0cmluZygpOm5ldyBMQSh0LGUpLnRvU3RyaW5nKEkpLGcpe2xldCBvPUEuaW5kZXhPZigiJTIzIik7byE9PS0xJiYoQT1BLnNsaWNlKDAsbykpLEErPShBLmluZGV4T2YoIj8iKT09PS0xPyI/IjoiJiIpK2d9cmV0dXJuIEF9dmFyIEF0PWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5oYW5kbGVycz1bXX11c2UodCxlLEkpe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDp0LHJlamVjdGVkOmUsc3luY2hyb25vdXM6ST9JLnN5bmNocm9ub3VzOiExLHJ1bldoZW46ST9JLnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9ZWplY3QodCl7dGhpcy5oYW5kbGVyc1t0XSYmKHRoaXMuaGFuZGxlcnNbdF09bnVsbCl9Y2xlYXIoKXt0aGlzLmhhbmRsZXJzJiYodGhpcy5oYW5kbGVycz1bXSl9Zm9yRWFjaCh0KXtpLmZvckVhY2godGhpcy5oYW5kbGVycyxmdW5jdGlvbihJKXtJIT09bnVsbCYmdChJKX0pfX0sdHQ9QXQ7dmFyIGJBPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfTt2YXIgenQ9dHlwZW9mIFVSTFNlYXJjaFBhcmFtczwidSI/VVJMU2VhcmNoUGFyYW1zOkxBO3ZhciB2dD10eXBlb2YgRm9ybURhdGE8InUiP0Zvcm1EYXRhOm51bGw7dmFyICR0PXR5cGVvZiBCbG9iPCJ1Ij9CbG9iOm51bGw7dmFyIEFlPXtpc0Jyb3dzZXI6ITAsY2xhc3Nlczp7VVJMU2VhcmNoUGFyYW1zOnp0LEZvcm1EYXRhOnZ0LEJsb2I6JHR9LHByb3RvY29sczpbImh0dHAiLCJodHRwcyIsImZpbGUiLCJibG9iIiwidXJsIiwiZGF0YSJdfTt2YXIgcnQ9e307cWUocnQse2hhc0Jyb3dzZXJFbnY6KCk9Pkl0LGhhc1N0YW5kYXJkQnJvd3NlckVudjooKT0+S0ksaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52OigpPT5PSSxuYXZpZ2F0b3I6KCk9PmV0LG9yaWdpbjooKT0+VEl9KTt2YXIgSXQ9dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiBkb2N1bWVudDwidSIsZXQ9dHlwZW9mIG5hdmlnYXRvcj09Im9iamVjdCImJm5hdmlnYXRvcnx8dm9pZCAwLEtJPUl0JiYoIWV0fHxbIlJlYWN0TmF0aXZlIiwiTmF0aXZlU2NyaXB0IiwiTlMiXS5pbmRleE9mKGV0LnByb2R1Y3QpPDApLE9JPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZTwidSImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSYmdHlwZW9mIHNlbGYuaW1wb3J0U2NyaXB0cz09ImZ1bmN0aW9uIixUST1JdCYmd2luZG93LmxvY2F0aW9uLmhyZWZ8fCJodHRwOi8vbG9jYWxob3N0Ijt2YXIgaD17Li4ucnQsLi4uQWV9O2Z1bmN0aW9uIG90KEEsdCl7cmV0dXJuIFQoQSxuZXcgaC5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcyx7dmlzaXRvcjpmdW5jdGlvbihlLEkscixnKXtyZXR1cm4gaC5pc05vZGUmJmkuaXNCdWZmZXIoZSk/KHRoaXMuYXBwZW5kKEksZS50b1N0cmluZygiYmFzZTY0IikpLCExKTpnLmRlZmF1bHRWaXNpdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sLi4udH0pfWZ1bmN0aW9uIHhJKEEpe3JldHVybiBpLm1hdGNoQWxsKC9cXHcrfFxcWyhcXHcqKV0vZyxBKS5tYXAodD0+dFswXT09PSJbXSI/IiI6dFsxXXx8dFswXSl9ZnVuY3Rpb24gUEkoQSl7bGV0IHQ9e30sZT1PYmplY3Qua2V5cyhBKSxJLHI9ZS5sZW5ndGgsZztmb3IoST0wO0k8cjtJKyspZz1lW0ldLHRbZ109QVtnXTtyZXR1cm4gdH1mdW5jdGlvbiBqSShBKXtmdW5jdGlvbiB0KGUsSSxyLGcpe2xldCBvPWVbZysrXTtpZihvPT09Il9fcHJvdG9fXyIpcmV0dXJuITA7bGV0IG49TnVtYmVyLmlzRmluaXRlKCtvKSxFPWc+PWUubGVuZ3RoO3JldHVybiBvPSFvJiZpLmlzQXJyYXkocik/ci5sZW5ndGg6byxFPyhpLmhhc093blByb3AocixvKT9yW29dPVtyW29dLEldOnJbb109SSwhbik6KCghcltvXXx8IWkuaXNPYmplY3QocltvXSkpJiYocltvXT1bXSksdChlLEkscltvXSxnKSYmaS5pc0FycmF5KHJbb10pJiYocltvXT1QSShyW29dKSksIW4pfWlmKGkuaXNGb3JtRGF0YShBKSYmaS5pc0Z1bmN0aW9uKEEuZW50cmllcykpe2xldCBlPXt9O3JldHVybiBpLmZvckVhY2hFbnRyeShBLChJLHIpPT57dCh4SShJKSxyLGUsMCl9KSxlfXJldHVybiBudWxsfXZhciBKQT1qSTtmdW5jdGlvbiBXSShBLHQsZSl7aWYoaS5pc1N0cmluZyhBKSl0cnl7cmV0dXJuKHR8fEpTT04ucGFyc2UpKEEpLGkudHJpbShBKX1jYXRjaChJKXtpZihJLm5hbWUhPT0iU3ludGF4RXJyb3IiKXRocm93IEl9cmV0dXJuKGV8fEpTT04uc3RyaW5naWZ5KShBKX12YXIgZ3Q9e3RyYW5zaXRpb25hbDpiQSxhZGFwdGVyOlsieGhyIiwiaHR0cCIsImZldGNoIl0sdHJhbnNmb3JtUmVxdWVzdDpbZnVuY3Rpb24odCxlKXtsZXQgST1lLmdldENvbnRlbnRUeXBlKCl8fCIiLHI9SS5pbmRleE9mKCJhcHBsaWNhdGlvbi9qc29uIik+LTEsZz1pLmlzT2JqZWN0KHQpO2lmKGcmJmkuaXNIVE1MRm9ybSh0KSYmKHQ9bmV3IEZvcm1EYXRhKHQpKSxpLmlzRm9ybURhdGEodCkpcmV0dXJuIHI/SlNPTi5zdHJpbmdpZnkoSkEodCkpOnQ7aWYoaS5pc0FycmF5QnVmZmVyKHQpfHxpLmlzQnVmZmVyKHQpfHxpLmlzU3RyZWFtKHQpfHxpLmlzRmlsZSh0KXx8aS5pc0Jsb2IodCl8fGkuaXNSZWFkYWJsZVN0cmVhbSh0KSlyZXR1cm4gdDtpZihpLmlzQXJyYXlCdWZmZXJWaWV3KHQpKXJldHVybiB0LmJ1ZmZlcjtpZihpLmlzVVJMU2VhcmNoUGFyYW1zKHQpKXJldHVybiBlLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIsITEpLHQudG9TdHJpbmcoKTtsZXQgbjtpZihnKXtpZihJLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpPi0xKXJldHVybiBvdCh0LHRoaXMuZm9ybVNlcmlhbGl6ZXIpLnRvU3RyaW5nKCk7aWYoKG49aS5pc0ZpbGVMaXN0KHQpKXx8SS5pbmRleE9mKCJtdWx0aXBhcnQvZm9ybS1kYXRhIik+LTEpe2xldCBFPXRoaXMuZW52JiZ0aGlzLmVudi5Gb3JtRGF0YTtyZXR1cm4gVChuP3siZmlsZXNbXSI6dH06dCxFJiZuZXcgRSx0aGlzLmZvcm1TZXJpYWxpemVyKX19cmV0dXJuIGd8fHI/KGUuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL2pzb24iLCExKSxXSSh0KSk6dH1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbih0KXtsZXQgZT10aGlzLnRyYW5zaXRpb25hbHx8Z3QudHJhbnNpdGlvbmFsLEk9ZSYmZS5mb3JjZWRKU09OUGFyc2luZyxyPXRoaXMucmVzcG9uc2VUeXBlPT09Impzb24iO2lmKGkuaXNSZXNwb25zZSh0KXx8aS5pc1JlYWRhYmxlU3RyZWFtKHQpKXJldHVybiB0O2lmKHQmJmkuaXNTdHJpbmcodCkmJihJJiYhdGhpcy5yZXNwb25zZVR5cGV8fHIpKXtsZXQgbz0hKGUmJmUuc2lsZW50SlNPTlBhcnNpbmcpJiZyO3RyeXtyZXR1cm4gSlNPTi5wYXJzZSh0LHRoaXMucGFyc2VSZXZpdmVyKX1jYXRjaChuKXtpZihvKXRocm93IG4ubmFtZT09PSJTeW50YXhFcnJvciI/dS5mcm9tKG4sdS5FUlJfQkFEX1JFU1BPTlNFLHRoaXMsbnVsbCx0aGlzLnJlc3BvbnNlKTpufX1yZXR1cm4gdH1dLHRpbWVvdXQ6MCx4c3JmQ29va2llTmFtZToiWFNSRi1UT0tFTiIseHNyZkhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiIsbWF4Q29udGVudExlbmd0aDotMSxtYXhCb2R5TGVuZ3RoOi0xLGVudjp7Rm9ybURhdGE6aC5jbGFzc2VzLkZvcm1EYXRhLEJsb2I6aC5jbGFzc2VzLkJsb2J9LHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0yMDAmJnQ8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiwiQ29udGVudC1UeXBlIjp2b2lkIDB9fX07aS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCJdLEE9PntndC5oZWFkZXJzW0FdPXt9fSk7dmFyIEFBPWd0O3ZhciBaST1pLnRvT2JqZWN0U2V0KFsiYWdlIiwiYXV0aG9yaXphdGlvbiIsImNvbnRlbnQtbGVuZ3RoIiwiY29udGVudC10eXBlIiwiZXRhZyIsImV4cGlyZXMiLCJmcm9tIiwiaG9zdCIsImlmLW1vZGlmaWVkLXNpbmNlIiwiaWYtdW5tb2RpZmllZC1zaW5jZSIsImxhc3QtbW9kaWZpZWQiLCJsb2NhdGlvbiIsIm1heC1mb3J3YXJkcyIsInByb3h5LWF1dGhvcml6YXRpb24iLCJyZWZlcmVyIiwicmV0cnktYWZ0ZXIiLCJ1c2VyLWFnZW50Il0pLHRlPUE9PntsZXQgdD17fSxlLEkscjtyZXR1cm4gQSYmQS5zcGxpdChgJTBBYCkuZm9yRWFjaChmdW5jdGlvbihvKXtyPW8uaW5kZXhPZigiOiIpLGU9by5zdWJzdHJpbmcoMCxyKS50cmltKCkudG9Mb3dlckNhc2UoKSxJPW8uc3Vic3RyaW5nKHIrMSkudHJpbSgpLCEoIWV8fHRbZV0mJlpJW2VdKSYmKGU9PT0ic2V0LWNvb2tpZSI/dFtlXT90W2VdLnB1c2goSSk6dFtlXT1bSV06dFtlXT10W2VdP3RbZV0rIiwgIitJOkkpfSksdH07dmFyIGVlPVN5bWJvbCgiaW50ZXJuYWxzIik7ZnVuY3Rpb24gQ0EoQSl7cmV0dXJuIEEmJlN0cmluZyhBKS50cmltKCkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBIQShBKXtyZXR1cm4gQT09PSExfHxBPT1udWxsP0E6aS5pc0FycmF5KEEpP0EubWFwKEhBKTpTdHJpbmcoQSl9ZnVuY3Rpb24gVkkoQSl7bGV0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKSxlPS8oW15cXHMsOz1dKylcXHMqKD86PVxccyooW14sO10rKSk/L2csSTtmb3IoO0k9ZS5leGVjKEEpOyl0W0lbMV1dPUlbMl07cmV0dXJuIHR9dmFyIFhJPUE9Pi9eWy1fYS16QS1aMC05XmB8fiwhJTIzJCUmXCcqKy5dKyQvLnRlc3QoQS50cmltKCkpO2Z1bmN0aW9uIGl0KEEsdCxlLEkscil7aWYoaS5pc0Z1bmN0aW9uKEkpKXJldHVybiBJLmNhbGwodGhpcyx0LGUpO2lmKHImJih0PWUpLCEhaS5pc1N0cmluZyh0KSl7aWYoaS5pc1N0cmluZyhJKSlyZXR1cm4gdC5pbmRleE9mKEkpIT09LTE7aWYoaS5pc1JlZ0V4cChJKSlyZXR1cm4gSS50ZXN0KHQpfX1mdW5jdGlvbiBfSShBKXtyZXR1cm4gQS50cmltKCkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8oW2EtelxcZF0pKFxcdyopL2csKHQsZSxJKT0+ZS50b1VwcGVyQ2FzZSgpK0kpfWZ1bmN0aW9uIHpJKEEsdCl7bGV0IGU9aS50b0NhbWVsQ2FzZSgiICIrdCk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKEk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxJK2Use3ZhbHVlOmZ1bmN0aW9uKHIsZyxvKXtyZXR1cm4gdGhpc1tJXS5jYWxsKHRoaXMsdCxyLGcsbyl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9dmFyIHRBPWNsYXNze2NvbnN0cnVjdG9yKHQpe3QmJnRoaXMuc2V0KHQpfXNldCh0LGUsSSl7bGV0IHI9dGhpcztmdW5jdGlvbiBnKG4sRSxCKXtsZXQgcz1DQShFKTtpZighcyl0aHJvdyBuZXcgRXJyb3IoImhlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7bGV0IEM9aS5maW5kS2V5KHIscyk7KCFDfHxyW0NdPT09dm9pZCAwfHxCPT09ITB8fEI9PT12b2lkIDAmJnJbQ10hPT0hMSkmJihyW0N8fEVdPUhBKG4pKX1sZXQgbz0obixFKT0+aS5mb3JFYWNoKG4sKEIscyk9PmcoQixzLEUpKTtpZihpLmlzUGxhaW5PYmplY3QodCl8fHQgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKW8odCxlKTtlbHNlIGlmKGkuaXNTdHJpbmcodCkmJih0PXQudHJpbSgpKSYmIVhJKHQpKW8odGUodCksZSk7ZWxzZSBpZihpLmlzT2JqZWN0KHQpJiZpLmlzSXRlcmFibGUodCkpe2xldCBuPXt9LEUsQjtmb3IobGV0IHMgb2YgdCl7aWYoIWkuaXNBcnJheShzKSl0aHJvdyBUeXBlRXJyb3IoIk9iamVjdCBpdGVyYXRvciBtdXN0IHJldHVybiBhIGtleS12YWx1ZSBwYWlyIik7bltCPXNbMF1dPShFPW5bQl0pP2kuaXNBcnJheShFKT9bLi4uRSxzWzFdXTpbRSxzWzFdXTpzWzFdfW8obixlKX1lbHNlIHQhPW51bGwmJmcoZSx0LEkpO3JldHVybiB0aGlzfWdldCh0LGUpe2lmKHQ9Q0EodCksdCl7bGV0IEk9aS5maW5kS2V5KHRoaXMsdCk7aWYoSSl7bGV0IHI9dGhpc1tJXTtpZighZSlyZXR1cm4gcjtpZihlPT09ITApcmV0dXJuIFZJKHIpO2lmKGkuaXNGdW5jdGlvbihlKSlyZXR1cm4gZS5jYWxsKHRoaXMscixJKTtpZihpLmlzUmVnRXhwKGUpKXJldHVybiBlLmV4ZWMocik7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyh0LGUpe2lmKHQ9Q0EodCksdCl7bGV0IEk9aS5maW5kS2V5KHRoaXMsdCk7cmV0dXJuISEoSSYmdGhpc1tJXSE9PXZvaWQgMCYmKCFlfHxpdCh0aGlzLHRoaXNbSV0sSSxlKSkpfXJldHVybiExfWRlbGV0ZSh0LGUpe2xldCBJPXRoaXMscj0hMTtmdW5jdGlvbiBnKG8pe2lmKG89Q0Eobyksbyl7bGV0IG49aS5maW5kS2V5KEksbyk7biYmKCFlfHxpdChJLElbbl0sbixlKSkmJihkZWxldGUgSVtuXSxyPSEwKX19cmV0dXJuIGkuaXNBcnJheSh0KT90LmZvckVhY2goZyk6Zyh0KSxyfWNsZWFyKHQpe2xldCBlPU9iamVjdC5rZXlzKHRoaXMpLEk9ZS5sZW5ndGgscj0hMTtmb3IoO0ktLTspe2xldCBnPWVbSV07KCF0fHxpdCh0aGlzLHRoaXNbZ10sZyx0LCEwKSkmJihkZWxldGUgdGhpc1tnXSxyPSEwKX1yZXR1cm4gcn1ub3JtYWxpemUodCl7bGV0IGU9dGhpcyxJPXt9O3JldHVybiBpLmZvckVhY2godGhpcywocixnKT0+e2xldCBvPWkuZmluZEtleShJLGcpO2lmKG8pe2Vbb109SEEociksZGVsZXRlIGVbZ107cmV0dXJufWxldCBuPXQ/X0koZyk6U3RyaW5nKGcpLnRyaW0oKTtuIT09ZyYmZGVsZXRlIGVbZ10sZVtuXT1IQShyKSxJW25dPSEwfSksdGhpc31jb25jYXQoLi4udCl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4udCl9dG9KU09OKHQpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGkuZm9yRWFjaCh0aGlzLChJLHIpPT57SSE9bnVsbCYmSSE9PSExJiYoZVtyXT10JiZpLmlzQXJyYXkoSSk/SS5qb2luKCIsICIpOkkpfSksZX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbdCxlXSk9PnQrIjogIitlKS5qb2luKGAlMEFgKX1nZXRTZXRDb29raWUoKXtyZXR1cm4gdGhpcy5nZXQoInNldC1jb29raWUiKXx8W119Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm4iQXhpb3NIZWFkZXJzIn1zdGF0aWMgZnJvbSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIHRoaXM/dDpuZXcgdGhpcyh0KX1zdGF0aWMgY29uY2F0KHQsLi4uZSl7bGV0IEk9bmV3IHRoaXModCk7cmV0dXJuIGUuZm9yRWFjaChyPT5JLnNldChyKSksSX1zdGF0aWMgYWNjZXNzb3IodCl7bGV0IEk9KHRoaXNbZWVdPXRoaXNbZWVdPXthY2Nlc3NvcnM6e319KS5hY2Nlc3NvcnMscj10aGlzLnByb3RvdHlwZTtmdW5jdGlvbiBnKG8pe2xldCBuPUNBKG8pO0lbbl18fCh6SShyLG8pLElbbl09ITApfXJldHVybiBpLmlzQXJyYXkodCk/dC5mb3JFYWNoKGcpOmcodCksdGhpc319O3RBLmFjY2Vzc29yKFsiQ29udGVudC1UeXBlIiwiQ29udGVudC1MZW5ndGgiLCJBY2NlcHQiLCJBY2NlcHQtRW5jb2RpbmciLCJVc2VyLUFnZW50IiwiQXV0aG9yaXphdGlvbiJdKTtpLnJlZHVjZURlc2NyaXB0b3JzKHRBLnByb3RvdHlwZSwoe3ZhbHVlOkF9LHQpPT57bGV0IGU9dFswXS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSk7cmV0dXJue2dldDooKT0+QSxzZXQoSSl7dGhpc1tlXT1JfX19KTtpLmZyZWV6ZU1ldGhvZHModEEpO3ZhciBwPXRBO2Z1bmN0aW9uIEJBKEEsdCl7bGV0IGU9dGhpc3x8QUEsST10fHxlLHI9cC5mcm9tKEkuaGVhZGVycyksZz1JLmRhdGE7cmV0dXJuIGkuZm9yRWFjaChBLGZ1bmN0aW9uKG4pe2c9bi5jYWxsKGUsZyxyLm5vcm1hbGl6ZSgpLHQ/dC5zdGF0dXM6dm9pZCAwKX0pLHIubm9ybWFsaXplKCksZ31mdW5jdGlvbiBhQShBKXtyZXR1cm4hIShBJiZBLl9fQ0FOQ0VMX18pfWZ1bmN0aW9uIEllKEEsdCxlKXt1LmNhbGwodGhpcyxBPz8iY2FuY2VsZWQiLHUuRVJSX0NBTkNFTEVELHQsZSksdGhpcy5uYW1lPSJDYW5jZWxlZEVycm9yIn1pLmluaGVyaXRzKEllLHUse19fQ0FOQ0VMX186ITB9KTt2YXIgSD1JZTtmdW5jdGlvbiBRQShBLHQsZSl7bGV0IEk9ZS5jb25maWcudmFsaWRhdGVTdGF0dXM7IWUuc3RhdHVzfHwhSXx8SShlLnN0YXR1cyk/QShlKTp0KG5ldyB1KCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrZS5zdGF0dXMsW3UuRVJSX0JBRF9SRVFVRVNULHUuRVJSX0JBRF9SRVNQT05TRV1bTWF0aC5mbG9vcihlLnN0YXR1cy8xMDApLTRdLGUuY29uZmlnLGUucmVxdWVzdCxlKSl9ZnVuY3Rpb24gc3QoQSl7bGV0IHQ9L14oWy0rXFx3XXsxLDI1fSkoOj9cXC9cXC98OikvLmV4ZWMoQSk7cmV0dXJuIHQmJnRbMV18fCIifWZ1bmN0aW9uIHZJKEEsdCl7QT1BfHwxMDtsZXQgZT1uZXcgQXJyYXkoQSksST1uZXcgQXJyYXkoQSkscj0wLGc9MCxvO3JldHVybiB0PXQhPT12b2lkIDA/dDoxZTMsZnVuY3Rpb24oRSl7bGV0IEI9RGF0ZS5ub3coKSxzPUlbZ107b3x8KG89QiksZVtyXT1FLElbcl09QjtsZXQgQz1nLGw9MDtmb3IoO0MhPT1yOylsKz1lW0MrK10sQz1DJUE7aWYocj0ocisxKSVBLHI9PT1nJiYoZz0oZysxKSVBKSxCLW88dClyZXR1cm47bGV0IGE9cyYmQi1zO3JldHVybiBhP01hdGgucm91bmQobCoxZTMvYSk6dm9pZCAwfX12YXIgcmU9dkk7ZnVuY3Rpb24gJEkoQSx0KXtsZXQgZT0wLEk9MWUzL3QscixnLG89KEIscz1EYXRlLm5vdygpKT0+e2U9cyxyPW51bGwsZyYmKGNsZWFyVGltZW91dChnKSxnPW51bGwpLEEoLi4uQil9O3JldHVyblsoLi4uQik9PntsZXQgcz1EYXRlLm5vdygpLEM9cy1lO0M+PUk/byhCLHMpOihyPUIsZ3x8KGc9c2V0VGltZW91dCgoKT0+e2c9bnVsbCxvKHIpfSxJLUMpKSl9LCgpPT5yJiZvKHIpXX12YXIgb2U9JEk7dmFyIGVBPShBLHQsZT0zKT0+e2xldCBJPTAscj1yZSg1MCwyNTApO3JldHVybiBvZShnPT57bGV0IG89Zy5sb2FkZWQsbj1nLmxlbmd0aENvbXB1dGFibGU/Zy50b3RhbDp2b2lkIDAsRT1vLUksQj1yKEUpLHM9bzw9bjtJPW87bGV0IEM9e2xvYWRlZDpvLHRvdGFsOm4scHJvZ3Jlc3M6bj9vL246dm9pZCAwLGJ5dGVzOkUscmF0ZTpCfHx2b2lkIDAsZXN0aW1hdGVkOkImJm4mJnM/KG4tbykvQjp2b2lkIDAsZXZlbnQ6ZyxsZW5ndGhDb21wdXRhYmxlOm4hPW51bGwsW3Q/ImRvd25sb2FkIjoidXBsb2FkIl06ITB9O0EoQyl9LGUpfSxudD0oQSx0KT0+e2xldCBlPUEhPW51bGw7cmV0dXJuW0k9PnRbMF0oe2xlbmd0aENvbXB1dGFibGU6ZSx0b3RhbDpBLGxvYWRlZDpJfSksdFsxXV19LEN0PUE9PiguLi50KT0+aS5hc2FwKCgpPT5BKC4uLnQpKTt2YXIgZ2U9aC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/KChBLHQpPT5lPT4oZT1uZXcgVVJMKGUsaC5vcmlnaW4pLEEucHJvdG9jb2w9PT1lLnByb3RvY29sJiZBLmhvc3Q9PT1lLmhvc3QmJih0fHxBLnBvcnQ9PT1lLnBvcnQpKSkobmV3IFVSTChoLm9yaWdpbiksaC5uYXZpZ2F0b3ImJi8obXNpZXx0cmlkZW50KS9pLnRlc3QoaC5uYXZpZ2F0b3IudXNlckFnZW50KSk6KCk9PiEwO3ZhciBpZT1oLmhhc1N0YW5kYXJkQnJvd3NlckVudj97d3JpdGUoQSx0LGUsSSxyLGcpe2xldCBvPVtBKyI9IitlbmNvZGVVUklDb21wb25lbnQodCldO2kuaXNOdW1iZXIoZSkmJm8ucHVzaCgiZXhwaXJlcz0iK25ldyBEYXRlKGUpLnRvR01UU3RyaW5nKCkpLGkuaXNTdHJpbmcoSSkmJm8ucHVzaCgicGF0aD0iK0kpLGkuaXNTdHJpbmcocikmJm8ucHVzaCgiZG9tYWluPSIrciksZz09PSEwJiZvLnB1c2goInNlY3VyZSIpLGRvY3VtZW50LmNvb2tpZT1vLmpvaW4oIjsgIil9LHJlYWQoQSl7bGV0IHQ9ZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIihefDtcXFxccyopKCIrQSsiKT0oW147XSopIikpO3JldHVybiB0P2RlY29kZVVSSUNvbXBvbmVudCh0WzNdKTpudWxsfSxyZW1vdmUoQSl7dGhpcy53cml0ZShBLCIiLERhdGUubm93KCktODY0ZTUpfX06e3dyaXRlKCl7fSxyZWFkKCl7cmV0dXJuIG51bGx9LHJlbW92ZSgpe319O2Z1bmN0aW9uIEJ0KEEpe3JldHVybi9eKFthLXpdW2EtelxcZCtcXC0uXSo6KT9cXC9cXC8vaS50ZXN0KEEpfWZ1bmN0aW9uIGF0KEEsdCl7cmV0dXJuIHQ/QS5yZXBsYWNlKC9cXC8/XFwvJC8sIiIpKyIvIit0LnJlcGxhY2UoL15cXC8rLywiIik6QX1mdW5jdGlvbiBFQShBLHQsZSl7bGV0IEk9IUJ0KHQpO3JldHVybiBBJiYoSXx8ZT09ITEpP2F0KEEsdCk6dH12YXIgc2U9QT0+QSBpbnN0YW5jZW9mIHA/ey4uLkF9OkE7ZnVuY3Rpb24gYihBLHQpe3Q9dHx8e307bGV0IGU9e307ZnVuY3Rpb24gSShCLHMsQyxsKXtyZXR1cm4gaS5pc1BsYWluT2JqZWN0KEIpJiZpLmlzUGxhaW5PYmplY3Qocyk/aS5tZXJnZS5jYWxsKHtjYXNlbGVzczpsfSxCLHMpOmkuaXNQbGFpbk9iamVjdChzKT9pLm1lcmdlKHt9LHMpOmkuaXNBcnJheShzKT9zLnNsaWNlKCk6c31mdW5jdGlvbiByKEIscyxDLGwpe2lmKGkuaXNVbmRlZmluZWQocykpe2lmKCFpLmlzVW5kZWZpbmVkKEIpKXJldHVybiBJKHZvaWQgMCxCLEMsbCl9ZWxzZSByZXR1cm4gSShCLHMsQyxsKX1mdW5jdGlvbiBnKEIscyl7aWYoIWkuaXNVbmRlZmluZWQocykpcmV0dXJuIEkodm9pZCAwLHMpfWZ1bmN0aW9uIG8oQixzKXtpZihpLmlzVW5kZWZpbmVkKHMpKXtpZighaS5pc1VuZGVmaW5lZChCKSlyZXR1cm4gSSh2b2lkIDAsQil9ZWxzZSByZXR1cm4gSSh2b2lkIDAscyl9ZnVuY3Rpb24gbihCLHMsQyl7aWYoQyBpbiB0KXJldHVybiBJKEIscyk7aWYoQyBpbiBBKXJldHVybiBJKHZvaWQgMCxCKX1sZXQgRT17dXJsOmcsbWV0aG9kOmcsZGF0YTpnLGJhc2VVUkw6byx0cmFuc2Zvcm1SZXF1ZXN0Om8sdHJhbnNmb3JtUmVzcG9uc2U6byxwYXJhbXNTZXJpYWxpemVyOm8sdGltZW91dDpvLHRpbWVvdXRNZXNzYWdlOm8sd2l0aENyZWRlbnRpYWxzOm8sd2l0aFhTUkZUb2tlbjpvLGFkYXB0ZXI6byxyZXNwb25zZVR5cGU6byx4c3JmQ29va2llTmFtZTpvLHhzcmZIZWFkZXJOYW1lOm8sb25VcGxvYWRQcm9ncmVzczpvLG9uRG93bmxvYWRQcm9ncmVzczpvLGRlY29tcHJlc3M6byxtYXhDb250ZW50TGVuZ3RoOm8sbWF4Qm9keUxlbmd0aDpvLGJlZm9yZVJlZGlyZWN0Om8sdHJhbnNwb3J0Om8saHR0cEFnZW50Om8saHR0cHNBZ2VudDpvLGNhbmNlbFRva2VuOm8sc29ja2V0UGF0aDpvLHJlc3BvbnNlRW5jb2Rpbmc6byx2YWxpZGF0ZVN0YXR1czpuLGhlYWRlcnM6KEIscyxDKT0+cihzZShCKSxzZShzKSxDLCEwKX07cmV0dXJuIGkuZm9yRWFjaChPYmplY3Qua2V5cyh7Li4uQSwuLi50fSksZnVuY3Rpb24ocyl7bGV0IEM9RVtzXXx8cixsPUMoQVtzXSx0W3NdLHMpO2kuaXNVbmRlZmluZWQobCkmJkMhPT1ufHwoZVtzXT1sKX0pLGV9dmFyIFlBPUE9PntsZXQgdD1iKHt9LEEpLHtkYXRhOmUsd2l0aFhTUkZUb2tlbjpJLHhzcmZIZWFkZXJOYW1lOnIseHNyZkNvb2tpZU5hbWU6ZyxoZWFkZXJzOm8sYXV0aDpufT10O2lmKHQuaGVhZGVycz1vPXAuZnJvbShvKSx0LnVybD1uQShFQSh0LmJhc2VVUkwsdC51cmwsdC5hbGxvd0Fic29sdXRlVXJscyksQS5wYXJhbXMsQS5wYXJhbXNTZXJpYWxpemVyKSxuJiZvLnNldCgiQXV0aG9yaXphdGlvbiIsIkJhc2ljICIrYnRvYSgobi51c2VybmFtZXx8IiIpKyI6Iisobi5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQobi5wYXNzd29yZCkpOiIiKSkpLGkuaXNGb3JtRGF0YShlKSl7aWYoaC5oYXNTdGFuZGFyZEJyb3dzZXJFbnZ8fGguaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52KW8uc2V0Q29udGVudFR5cGUodm9pZCAwKTtlbHNlIGlmKGkuaXNGdW5jdGlvbihlLmdldEhlYWRlcnMpKXtsZXQgRT1lLmdldEhlYWRlcnMoKSxCPVsiY29udGVudC10eXBlIiwiY29udGVudC1sZW5ndGgiXTtPYmplY3QuZW50cmllcyhFKS5mb3JFYWNoKChbcyxDXSk9PntCLmluY2x1ZGVzKHMudG9Mb3dlckNhc2UoKSkmJm8uc2V0KHMsQyl9KX19aWYoaC5oYXNTdGFuZGFyZEJyb3dzZXJFbnYmJihJJiZpLmlzRnVuY3Rpb24oSSkmJihJPUkodCkpLEl8fEkhPT0hMSYmZ2UodC51cmwpKSl7bGV0IEU9ciYmZyYmaWUucmVhZChnKTtFJiZvLnNldChyLEUpfXJldHVybiB0fTt2YXIgQXI9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0PCJ1IixuZT1BciYmZnVuY3Rpb24oQSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsSSl7bGV0IHI9WUEoQSksZz1yLmRhdGEsbz1wLmZyb20oci5oZWFkZXJzKS5ub3JtYWxpemUoKSx7cmVzcG9uc2VUeXBlOm4sb25VcGxvYWRQcm9ncmVzczpFLG9uRG93bmxvYWRQcm9ncmVzczpCfT1yLHMsQyxsLGEsUTtmdW5jdGlvbiBmKCl7YSYmYSgpLFEmJlEoKSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKHMpLHIuc2lnbmFsJiZyLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIscyl9bGV0IGM9bmV3IFhNTEh0dHBSZXF1ZXN0O2Mub3BlbihyLm1ldGhvZC50b1VwcGVyQ2FzZSgpLHIudXJsLCEwKSxjLnRpbWVvdXQ9ci50aW1lb3V0O2Z1bmN0aW9uIEQoKXtpZighYylyZXR1cm47bGV0IHk9cC5mcm9tKCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiaW4gYyYmYy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSksaz17ZGF0YTohbnx8bj09PSJ0ZXh0Inx8bj09PSJqc29uIj9jLnJlc3BvbnNlVGV4dDpjLnJlc3BvbnNlLHN0YXR1czpjLnN0YXR1cyxzdGF0dXNUZXh0OmMuc3RhdHVzVGV4dCxoZWFkZXJzOnksY29uZmlnOkEscmVxdWVzdDpjfTtRQShmdW5jdGlvbihHKXtlKEcpLGYoKX0sZnVuY3Rpb24oRyl7SShHKSxmKCl9LGspLGM9bnVsbH0ib25sb2FkZW5kImluIGM/Yy5vbmxvYWRlbmQ9RDpjLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpeyFjfHxjLnJlYWR5U3RhdGUhPT00fHxjLnN0YXR1cz09PTAmJiEoYy5yZXNwb25zZVVSTCYmYy5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpPT09MCl8fHNldFRpbWVvdXQoRCl9LGMub25hYm9ydD1mdW5jdGlvbigpe2MmJihJKG5ldyB1KCJSZXF1ZXN0IGFib3J0ZWQiLHUuRUNPTk5BQk9SVEVELEEsYykpLGM9bnVsbCl9LGMub25lcnJvcj1mdW5jdGlvbihSKXtsZXQgaz1SJiZSLm1lc3NhZ2U/Ui5tZXNzYWdlOiJOZXR3b3JrIEVycm9yIixQPW5ldyB1KGssdS5FUlJfTkVUV09SSyxBLGMpO1AuZXZlbnQ9Unx8bnVsbCxJKFApLGM9bnVsbH0sYy5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXtsZXQgUj1yLnRpbWVvdXQ/InRpbWVvdXQgb2YgIityLnRpbWVvdXQrIm1zIGV4Y2VlZGVkIjoidGltZW91dCBleGNlZWRlZCIsaz1yLnRyYW5zaXRpb25hbHx8YkE7ci50aW1lb3V0RXJyb3JNZXNzYWdlJiYoUj1yLnRpbWVvdXRFcnJvck1lc3NhZ2UpLEkobmV3IHUoUixrLmNsYXJpZnlUaW1lb3V0RXJyb3I/dS5FVElNRURPVVQ6dS5FQ09OTkFCT1JURUQsQSxjKSksYz1udWxsfSxnPT09dm9pZCAwJiZvLnNldENvbnRlbnRUeXBlKG51bGwpLCJzZXRSZXF1ZXN0SGVhZGVyImluIGMmJmkuZm9yRWFjaChvLnRvSlNPTigpLGZ1bmN0aW9uKFIsayl7Yy5zZXRSZXF1ZXN0SGVhZGVyKGssUil9KSxpLmlzVW5kZWZpbmVkKHIud2l0aENyZWRlbnRpYWxzKXx8KGMud2l0aENyZWRlbnRpYWxzPSEhci53aXRoQ3JlZGVudGlhbHMpLG4mJm4hPT0ianNvbiImJihjLnJlc3BvbnNlVHlwZT1yLnJlc3BvbnNlVHlwZSksQiYmKFtsLFFdPWVBKEIsITApLGMuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGwpKSxFJiZjLnVwbG9hZCYmKFtDLGFdPWVBKEUpLGMudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixDKSxjLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJsb2FkZW5kIixhKSksKHIuY2FuY2VsVG9rZW58fHIuc2lnbmFsKSYmKHM9eT0+e2MmJihJKCF5fHx5LnR5cGU/bmV3IEgobnVsbCxBLGMpOnkpLGMuYWJvcnQoKSxjPW51bGwpfSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnN1YnNjcmliZShzKSxyLnNpZ25hbCYmKHIuc2lnbmFsLmFib3J0ZWQ/cygpOnIuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixzKSkpO2xldCBGPXN0KHIudXJsKTtpZihGJiZoLnByb3RvY29scy5pbmRleE9mKEYpPT09LTEpe0kobmV3IHUoIlVuc3VwcG9ydGVkIHByb3RvY29sICIrRisiOiIsdS5FUlJfQkFEX1JFUVVFU1QsQSkpO3JldHVybn1jLnNlbmQoZ3x8bnVsbCl9KX07dmFyIHRyPShBLHQpPT57bGV0e2xlbmd0aDplfT1BPUE/QS5maWx0ZXIoQm9vbGVhbik6W107aWYodHx8ZSl7bGV0IEk9bmV3IEFib3J0Q29udHJvbGxlcixyLGc9ZnVuY3Rpb24oQil7aWYoIXIpe3I9ITAsbigpO2xldCBzPUIgaW5zdGFuY2VvZiBFcnJvcj9COnRoaXMucmVhc29uO0kuYWJvcnQocyBpbnN0YW5jZW9mIHU/czpuZXcgSChzIGluc3RhbmNlb2YgRXJyb3I/cy5tZXNzYWdlOnMpKX19LG89dCYmc2V0VGltZW91dCgoKT0+e289bnVsbCxnKG5ldyB1KGB0aW1lb3V0ICR7dH0gb2YgbXMgZXhjZWVkZWRgLHUuRVRJTUVET1VUKSl9LHQpLG49KCk9PntBJiYobyYmY2xlYXJUaW1lb3V0KG8pLG89bnVsbCxBLmZvckVhY2goQj0+e0IudW5zdWJzY3JpYmU/Qi51bnN1YnNjcmliZShnKTpCLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixnKX0pLEE9bnVsbCl9O0EuZm9yRWFjaChCPT5CLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixnKSk7bGV0e3NpZ25hbDpFfT1JO3JldHVybiBFLnVuc3Vic2NyaWJlPSgpPT5pLmFzYXAobiksRX19LENlPXRyO3ZhciBlcj1mdW5jdGlvbiooQSx0KXtsZXQgZT1BLmJ5dGVMZW5ndGg7aWYoIXR8fGU8dCl7eWllbGQgQTtyZXR1cm59bGV0IEk9MCxyO2Zvcig7STxlOylyPUkrdCx5aWVsZCBBLnNsaWNlKEksciksST1yfSxJcj1hc3luYyBmdW5jdGlvbiooQSx0KXtmb3IgYXdhaXQobGV0IGUgb2YgcnIoQSkpeWllbGQqZXIoZSx0KX0scnI9YXN5bmMgZnVuY3Rpb24qKEEpe2lmKEFbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKXt5aWVsZCpBO3JldHVybn1sZXQgdD1BLmdldFJlYWRlcigpO3RyeXtmb3IoOzspe2xldHtkb25lOmUsdmFsdWU6SX09YXdhaXQgdC5yZWFkKCk7aWYoZSlicmVhazt5aWVsZCBJfX1maW5hbGx5e2F3YWl0IHQuY2FuY2VsKCl9fSxRdD0oQSx0LGUsSSk9PntsZXQgcj1JcihBLHQpLGc9MCxvLG49RT0+e298fChvPSEwLEkmJkkoRSkpfTtyZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHthc3luYyBwdWxsKEUpe3RyeXtsZXR7ZG9uZTpCLHZhbHVlOnN9PWF3YWl0IHIubmV4dCgpO2lmKEIpe24oKSxFLmNsb3NlKCk7cmV0dXJufWxldCBDPXMuYnl0ZUxlbmd0aDtpZihlKXtsZXQgbD1nKz1DO2UobCl9RS5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KHMpKX1jYXRjaChCKXt0aHJvdyBuKEIpLEJ9fSxjYW5jZWwoRSl7cmV0dXJuIG4oRSksci5yZXR1cm4oKX19LHtoaWdoV2F0ZXJNYXJrOjJ9KX07dmFyIEJlPTY0KjEwMjQse2lzRnVuY3Rpb246cUF9PWksY2U9KCh7ZmV0Y2g6QSxSZXF1ZXN0OnQsUmVzcG9uc2U6ZX0pPT4oe2ZldGNoOkEsUmVxdWVzdDp0LFJlc3BvbnNlOmV9KSkoaS5nbG9iYWwpLHtSZWFkYWJsZVN0cmVhbTphZSxUZXh0RW5jb2RlcjpRZX09aS5nbG9iYWwsRWU9KEEsLi4udCk9Pnt0cnl7cmV0dXJuISFBKC4uLnQpfWNhdGNoe3JldHVybiExfX0sb3I9QT0+e2xldHtmZXRjaDp0LFJlcXVlc3Q6ZSxSZXNwb25zZTpJfT1PYmplY3QuYXNzaWduKHt9LGNlLEEpLHI9cUEodCksZz1xQShlKSxvPXFBKEkpO2lmKCFyKXJldHVybiExO2xldCBuPXImJnFBKGFlKSxFPXImJih0eXBlb2YgUWU9PSJmdW5jdGlvbiI/KFE9PmY9PlEuZW5jb2RlKGYpKShuZXcgUWUpOmFzeW5jIFE9Pm5ldyBVaW50OEFycmF5KGF3YWl0IG5ldyBlKFEpLmFycmF5QnVmZmVyKCkpKSxCPWcmJm4mJkVlKCgpPT57bGV0IFE9ITEsZj1uZXcgZShoLm9yaWdpbix7Ym9keTpuZXcgYWUsbWV0aG9kOiJQT1NUIixnZXQgZHVwbGV4KCl7cmV0dXJuIFE9ITAsImhhbGYifX0pLmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKTtyZXR1cm4gUSYmIWZ9KSxzPW8mJm4mJkVlKCgpPT5pLmlzUmVhZGFibGVTdHJlYW0obmV3IEkoIiIpLmJvZHkpKSxDPXtzdHJlYW06cyYmKFE9PlEuYm9keSl9O3ImJlsidGV4dCIsImFycmF5QnVmZmVyIiwiYmxvYiIsImZvcm1EYXRhIiwic3RyZWFtIl0uZm9yRWFjaChRPT57IUNbUV0mJihDW1FdPShmLGMpPT57bGV0IEQ9ZiYmZltRXTtpZihEKXJldHVybiBELmNhbGwoZik7dGhyb3cgbmV3IHUoYFJlc3BvbnNlIHR5cGUgXCcke1F9XCcgaXMgbm90IHN1cHBvcnRlZGAsdS5FUlJfTk9UX1NVUFBPUlQsYyl9KX0pO2xldCBsPWFzeW5jIFE9PntpZihRPT1udWxsKXJldHVybiAwO2lmKGkuaXNCbG9iKFEpKXJldHVybiBRLnNpemU7aWYoaS5pc1NwZWNDb21wbGlhbnRGb3JtKFEpKXJldHVybihhd2FpdCBuZXcgZShoLm9yaWdpbix7bWV0aG9kOiJQT1NUIixib2R5OlF9KS5hcnJheUJ1ZmZlcigpKS5ieXRlTGVuZ3RoO2lmKGkuaXNBcnJheUJ1ZmZlclZpZXcoUSl8fGkuaXNBcnJheUJ1ZmZlcihRKSlyZXR1cm4gUS5ieXRlTGVuZ3RoO2lmKGkuaXNVUkxTZWFyY2hQYXJhbXMoUSkmJihRPVErIiIpLGkuaXNTdHJpbmcoUSkpcmV0dXJuKGF3YWl0IEUoUSkpLmJ5dGVMZW5ndGh9LGE9YXN5bmMoUSxmKT0+e2xldCBjPWkudG9GaW5pdGVOdW1iZXIoUS5nZXRDb250ZW50TGVuZ3RoKCkpO3JldHVybiBjPz9sKGYpfTtyZXR1cm4gYXN5bmMgUT0+e2xldHt1cmw6ZixtZXRob2Q6YyxkYXRhOkQsc2lnbmFsOkYsY2FuY2VsVG9rZW46eSx0aW1lb3V0OlIsb25Eb3dubG9hZFByb2dyZXNzOmssb25VcGxvYWRQcm9ncmVzczpQLHJlc3BvbnNlVHlwZTpHLGhlYWRlcnM6V0Esd2l0aENyZWRlbnRpYWxzOmRBPSJzYW1lLW9yaWdpbiIsZmV0Y2hPcHRpb25zOm10fT1ZQShRKTtHPUc/KEcrIiIpLnRvTG93ZXJDYXNlKCk6InRleHQiO2xldCBEQT1DZShbRix5JiZ5LnRvQWJvcnRTaWduYWwoKV0sUiksckE9bnVsbCxqPURBJiZEQS51bnN1YnNjcmliZSYmKCgpPT57REEudW5zdWJzY3JpYmUoKX0pLHd0O3RyeXtpZihQJiZCJiZjIT09ImdldCImJmMhPT0iaGVhZCImJih3dD1hd2FpdCBhKFdBLEQpKSE9PTApe2xldCBPPW5ldyBlKGYse21ldGhvZDoiUE9TVCIsYm9keTpELGR1cGxleDoiaGFsZiJ9KSxYO2lmKGkuaXNGb3JtRGF0YShEKSYmKFg9Ty5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIikpJiZXQS5zZXRDb250ZW50VHlwZShYKSxPLmJvZHkpe2xldFtaQSxoQV09bnQod3QsZUEoQ3QoUCkpKTtEPVF0KE8uYm9keSxCZSxaQSxoQSl9fWkuaXNTdHJpbmcoZEEpfHwoZEE9ZEE/ImluY2x1ZGUiOiJvbWl0Iik7bGV0IEo9ZyYmImNyZWRlbnRpYWxzImluIGUucHJvdG90eXBlLHB0PXsuLi5tdCxzaWduYWw6REEsbWV0aG9kOmMudG9VcHBlckNhc2UoKSxoZWFkZXJzOldBLm5vcm1hbGl6ZSgpLnRvSlNPTigpLGJvZHk6RCxkdXBsZXg6ImhhbGYiLGNyZWRlbnRpYWxzOko/ZEE6dm9pZCAwfTtyQT1nJiZuZXcgZShmLHB0KTtsZXQgSz1hd2FpdChnP3QockEsbXQpOnQoZixwdCkpLFN0PXMmJihHPT09InN0cmVhbSJ8fEc9PT0icmVzcG9uc2UiKTtpZihzJiYoa3x8U3QmJmopKXtsZXQgTz17fTtbInN0YXR1cyIsInN0YXR1c1RleHQiLCJoZWFkZXJzIl0uZm9yRWFjaChGdD0+e09bRnRdPUtbRnRdfSk7bGV0IFg9aS50b0Zpbml0ZU51bWJlcihLLmhlYWRlcnMuZ2V0KCJjb250ZW50LWxlbmd0aCIpKSxbWkEsaEFdPWsmJm50KFgsZUEoQ3QoayksITApKXx8W107Sz1uZXcgSShRdChLLmJvZHksQmUsWkEsKCk9PntoQSYmaEEoKSxqJiZqKCl9KSxPKX1HPUd8fCJ0ZXh0IjtsZXQgSGU9YXdhaXQgQ1tpLmZpbmRLZXkoQyxHKXx8InRleHQiXShLLFEpO3JldHVybiFTdCYmaiYmaigpLGF3YWl0IG5ldyBQcm9taXNlKChPLFgpPT57UUEoTyxYLHtkYXRhOkhlLGhlYWRlcnM6cC5mcm9tKEsuaGVhZGVycyksc3RhdHVzOksuc3RhdHVzLHN0YXR1c1RleHQ6Sy5zdGF0dXNUZXh0LGNvbmZpZzpRLHJlcXVlc3Q6ckF9KX0pfWNhdGNoKEope3Rocm93IGomJmooKSxKJiZKLm5hbWU9PT0iVHlwZUVycm9yIiYmL0xvYWQgZmFpbGVkfGZldGNoL2kudGVzdChKLm1lc3NhZ2UpP09iamVjdC5hc3NpZ24obmV3IHUoIk5ldHdvcmsgRXJyb3IiLHUuRVJSX05FVFdPUkssUSxyQSkse2NhdXNlOkouY2F1c2V8fEp9KTp1LmZyb20oSixKJiZKLmNvZGUsUSxyQSl9fX0sZ3I9bmV3IE1hcCxFdD1BPT57bGV0IHQ9aS5tZXJnZS5jYWxsKHtza2lwVW5kZWZpbmVkOiEwfSxjZSxBP0EuZW52Om51bGwpLHtmZXRjaDplLFJlcXVlc3Q6SSxSZXNwb25zZTpyfT10LGc9W0kscixlXSxvPWcubGVuZ3RoLG49byxFLEIscz1ncjtmb3IoO24tLTspRT1nW25dLEI9cy5nZXQoRSksQj09PXZvaWQgMCYmcy5zZXQoRSxCPW4/bmV3IE1hcDpvcih0KSkscz1CO3JldHVybiBCfSxHZz1FdCgpO3ZhciBjdD17aHR0cDprQSx4aHI6bmUsZmV0Y2g6e2dldDpFdH19O2kuZm9yRWFjaChjdCwoQSx0KT0+e2lmKEEpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwibmFtZSIse3ZhbHVlOnR9KX1jYXRjaHt9T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsImFkYXB0ZXJOYW1lIix7dmFsdWU6dH0pfX0pO3ZhciBmZT1BPT5gLSAke0F9YCxzcj1BPT5pLmlzRnVuY3Rpb24oQSl8fEE9PT1udWxsfHxBPT09ITEsTUE9e2dldEFkYXB0ZXI6KEEsdCk9PntBPWkuaXNBcnJheShBKT9BOltBXTtsZXR7bGVuZ3RoOmV9PUEsSSxyLGc9e307Zm9yKGxldCBvPTA7bzxlO28rKyl7ST1BW29dO2xldCBuO2lmKHI9SSwhc3IoSSkmJihyPWN0WyhuPVN0cmluZyhJKSkudG9Mb3dlckNhc2UoKV0scj09PXZvaWQgMCkpdGhyb3cgbmV3IHUoYFVua25vd24gYWRhcHRlciBcJyR7bn1cJ2ApO2lmKHImJihpLmlzRnVuY3Rpb24ocil8fChyPXIuZ2V0KHQpKSkpYnJlYWs7Z1tufHwiJTIzIitvXT1yfWlmKCFyKXtsZXQgbz1PYmplY3QuZW50cmllcyhnKS5tYXAoKFtFLEJdKT0+YGFkYXB0ZXIgJHtFfSBgKyhCPT09ITE/ImlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVudmlyb25tZW50IjoiaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnVpbGQiKSksbj1lP28ubGVuZ3RoPjE/YHNpbmNlIDolMEFgK28ubWFwKGZlKS5qb2luKGAlMEFgKToiICIrZmUob1swXSk6ImFzIG5vIGFkYXB0ZXIgc3BlY2lmaWVkIjt0aHJvdyBuZXcgdSgiVGhlcmUgaXMgbm8gc3VpdGFibGUgYWRhcHRlciB0byBkaXNwYXRjaCB0aGUgcmVxdWVzdCAiK24sIkVSUl9OT1RfU1VQUE9SVCIpfXJldHVybiByfSxhZGFwdGVyczpjdH07ZnVuY3Rpb24gZnQoQSl7aWYoQS5jYW5jZWxUb2tlbiYmQS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksQS5zaWduYWwmJkEuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IEgobnVsbCxBKX1mdW5jdGlvbiBLQShBKXtyZXR1cm4gZnQoQSksQS5oZWFkZXJzPXAuZnJvbShBLmhlYWRlcnMpLEEuZGF0YT1CQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXF1ZXN0KSxbInBvc3QiLCJwdXQiLCJwYXRjaCJdLmluZGV4T2YoQS5tZXRob2QpIT09LTEmJkEuaGVhZGVycy5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwhMSksTUEuZ2V0QWRhcHRlcihBLmFkYXB0ZXJ8fEFBLmFkYXB0ZXIsQSkoQSkudGhlbihmdW5jdGlvbihJKXtyZXR1cm4gZnQoQSksSS5kYXRhPUJBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkpLEkuaGVhZGVycz1wLmZyb20oSS5oZWFkZXJzKSxJfSxmdW5jdGlvbihJKXtyZXR1cm4gYUEoSSl8fChmdChBKSxJJiZJLnJlc3BvbnNlJiYoSS5yZXNwb25zZS5kYXRhPUJBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkucmVzcG9uc2UpLEkucmVzcG9uc2UuaGVhZGVycz1wLmZyb20oSS5yZXNwb25zZS5oZWFkZXJzKSkpLFByb21pc2UucmVqZWN0KEkpfSl9dmFyIE9BPSIxLjEyLjAiO3ZhciBUQT17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKEEsdCk9PntUQVtBXT1mdW5jdGlvbihJKXtyZXR1cm4gdHlwZW9mIEk9PT1BfHwiYSIrKHQ8MT8ibiAiOiIgIikrQX19KTt2YXIgbGU9e307VEEudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKHQsZSxJKXtmdW5jdGlvbiByKGcsbyl7cmV0dXJuIltBeGlvcyB2IitPQSsiXSBUcmFuc2l0aW9uYWwgb3B0aW9uIFwnIitnKyJcJyIrbysoST8iLiAiK0k6IiIpfXJldHVybihnLG8sbik9PntpZih0PT09ITEpdGhyb3cgbmV3IHUocihvLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKGU/IiBpbiAiK2U6IiIpKSx1LkVSUl9ERVBSRUNBVEVEKTtyZXR1cm4gZSYmIWxlW29dJiYobGVbb109ITAsY29uc29sZS53YXJuKHIobywiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrZSsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSx0P3QoZyxvLG4pOiEwfX07VEEuc3BlbGxpbmc9ZnVuY3Rpb24odCl7cmV0dXJuKGUsSSk9Pihjb25zb2xlLndhcm4oYCR7SX0gaXMgbGlrZWx5IGEgbWlzc3BlbGxpbmcgb2YgJHt0fWApLCEwKX07ZnVuY3Rpb24gbnIoQSx0LGUpe2lmKHR5cGVvZiBBIT0ib2JqZWN0Iil0aHJvdyBuZXcgdSgib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIsdS5FUlJfQkFEX09QVElPTl9WQUxVRSk7bGV0IEk9T2JqZWN0LmtleXMoQSkscj1JLmxlbmd0aDtmb3IoO3ItLSA+MDspe2xldCBnPUlbcl0sbz10W2ddO2lmKG8pe2xldCBuPUFbZ10sRT1uPT09dm9pZCAwfHxvKG4sZyxBKTtpZihFIT09ITApdGhyb3cgbmV3IHUoIm9wdGlvbiAiK2crIiBtdXN0IGJlICIrRSx1LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtjb250aW51ZX1pZihlIT09ITApdGhyb3cgbmV3IHUoIlVua25vd24gb3B0aW9uICIrZyx1LkVSUl9CQURfT1BUSU9OKX19dmFyIGNBPXthc3NlcnRPcHRpb25zOm5yLHZhbGlkYXRvcnM6VEF9O3ZhciBZPWNBLnZhbGlkYXRvcnMsSUE9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5kZWZhdWx0cz10fHx7fSx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgdHQscmVzcG9uc2U6bmV3IHR0fX1hc3luYyByZXF1ZXN0KHQsZSl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLl9yZXF1ZXN0KHQsZSl9Y2F0Y2goSSl7aWYoSSBpbnN0YW5jZW9mIEVycm9yKXtsZXQgcj17fTtFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZShyKTpyPW5ldyBFcnJvcjtsZXQgZz1yLnN0YWNrP3Iuc3RhY2sucmVwbGFjZSgvXi4rXFxuLywiIik6IiI7dHJ5e0kuc3RhY2s/ZyYmIVN0cmluZyhJLnN0YWNrKS5lbmRzV2l0aChnLnJlcGxhY2UoL14uK1xcbi4rXFxuLywiIikpJiYoSS5zdGFjays9YCUwQWArZyk6SS5zdGFjaz1nfWNhdGNoe319dGhyb3cgSX19X3JlcXVlc3QodCxlKXt0eXBlb2YgdD09InN0cmluZyI/KGU9ZXx8e30sZS51cmw9dCk6ZT10fHx7fSxlPWIodGhpcy5kZWZhdWx0cyxlKTtsZXR7dHJhbnNpdGlvbmFsOkkscGFyYW1zU2VyaWFsaXplcjpyLGhlYWRlcnM6Z309ZTtJIT09dm9pZCAwJiZjQS5hc3NlcnRPcHRpb25zKEkse3NpbGVudEpTT05QYXJzaW5nOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6WS50cmFuc2l0aW9uYWwoWS5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbil9LCExKSxyIT1udWxsJiYoaS5pc0Z1bmN0aW9uKHIpP2UucGFyYW1zU2VyaWFsaXplcj17c2VyaWFsaXplOnJ9OmNBLmFzc2VydE9wdGlvbnMocix7ZW5jb2RlOlkuZnVuY3Rpb24sc2VyaWFsaXplOlkuZnVuY3Rpb259LCEwKSksZS5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMHx8KHRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDA/ZS5hbGxvd0Fic29sdXRlVXJscz10aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzOmUuYWxsb3dBYnNvbHV0ZVVybHM9ITApLGNBLmFzc2VydE9wdGlvbnMoZSx7YmFzZVVybDpZLnNwZWxsaW5nKCJiYXNlVVJMIiksd2l0aFhzcmZUb2tlbjpZLnNwZWxsaW5nKCJ3aXRoWFNSRlRva2VuIil9LCEwKSxlLm1ldGhvZD0oZS5tZXRob2R8fHRoaXMuZGVmYXVsdHMubWV0aG9kfHwiZ2V0IikudG9Mb3dlckNhc2UoKTtsZXQgbz1nJiZpLm1lcmdlKGcuY29tbW9uLGdbZS5tZXRob2RdKTtnJiZpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sUT0+e2RlbGV0ZSBnW1FdfSksZS5oZWFkZXJzPXAuY29uY2F0KG8sZyk7bGV0IG49W10sRT0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24oZil7dHlwZW9mIGYucnVuV2hlbj09ImZ1bmN0aW9uIiYmZi5ydW5XaGVuKGUpPT09ITF8fChFPUUmJmYuc3luY2hyb25vdXMsbi51bnNoaWZ0KGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpKX0pO2xldCBCPVtdO3RoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24oZil7Qi5wdXNoKGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpfSk7bGV0IHMsQz0wLGw7aWYoIUUpe2xldCBRPVtLQS5iaW5kKHRoaXMpLHZvaWQgMF07Zm9yKFEudW5zaGlmdCguLi5uKSxRLnB1c2goLi4uQiksbD1RLmxlbmd0aCxzPVByb21pc2UucmVzb2x2ZShlKTtDPGw7KXM9cy50aGVuKFFbQysrXSxRW0MrK10pO3JldHVybiBzfWw9bi5sZW5ndGg7bGV0IGE9ZTtmb3IoQz0wO0M8bDspe2xldCBRPW5bQysrXSxmPW5bQysrXTt0cnl7YT1RKGEpfWNhdGNoKGMpe2YuY2FsbCh0aGlzLGMpO2JyZWFrfX10cnl7cz1LQS5jYWxsKHRoaXMsYSl9Y2F0Y2goUSl7cmV0dXJuIFByb21pc2UucmVqZWN0KFEpfWZvcihDPTAsbD1CLmxlbmd0aDtDPGw7KXM9cy50aGVuKEJbQysrXSxCW0MrK10pO3JldHVybiBzfWdldFVyaSh0KXt0PWIodGhpcy5kZWZhdWx0cyx0KTtsZXQgZT1FQSh0LmJhc2VVUkwsdC51cmwsdC5hbGxvd0Fic29sdXRlVXJscyk7cmV0dXJuIG5BKGUsdC5wYXJhbXMsdC5wYXJhbXNTZXJpYWxpemVyKX19O2kuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJvcHRpb25zIl0sZnVuY3Rpb24odCl7SUEucHJvdG90eXBlW3RdPWZ1bmN0aW9uKGUsSSl7cmV0dXJuIHRoaXMucmVxdWVzdChiKEl8fHt9LHttZXRob2Q6dCx1cmw6ZSxkYXRhOihJfHx7fSkuZGF0YX0pKX19KTtpLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSxmdW5jdGlvbih0KXtmdW5jdGlvbiBlKEkpe3JldHVybiBmdW5jdGlvbihnLG8sbil7cmV0dXJuIHRoaXMucmVxdWVzdChiKG58fHt9LHttZXRob2Q6dCxoZWFkZXJzOkk/eyJDb250ZW50LVR5cGUiOiJtdWx0aXBhcnQvZm9ybS1kYXRhIn06e30sdXJsOmcsZGF0YTpvfSkpfX1JQS5wcm90b3R5cGVbdF09ZSgpLElBLnByb3RvdHlwZVt0KyJGb3JtIl09ZSghMCl9KTt2YXIgZkE9SUE7dmFyIGx0PWNsYXNzIEF7Y29uc3RydWN0b3IodCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO2xldCBlO3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihnKXtlPWd9KTtsZXQgST10aGlzO3RoaXMucHJvbWlzZS50aGVuKHI9PntpZighSS5fbGlzdGVuZXJzKXJldHVybjtsZXQgZz1JLl9saXN0ZW5lcnMubGVuZ3RoO2Zvcig7Zy0tID4wOylJLl9saXN0ZW5lcnNbZ10ocik7SS5fbGlzdGVuZXJzPW51bGx9KSx0aGlzLnByb21pc2UudGhlbj1yPT57bGV0IGcsbz1uZXcgUHJvbWlzZShuPT57SS5zdWJzY3JpYmUobiksZz1ufSkudGhlbihyKTtyZXR1cm4gby5jYW5jZWw9ZnVuY3Rpb24oKXtJLnVuc3Vic2NyaWJlKGcpfSxvfSx0KGZ1bmN0aW9uKGcsbyxuKXtJLnJlYXNvbnx8KEkucmVhc29uPW5ldyBIKGcsbyxuKSxlKEkucmVhc29uKSl9KX10aHJvd0lmUmVxdWVzdGVkKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259c3Vic2NyaWJlKHQpe2lmKHRoaXMucmVhc29uKXt0KHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKHQpOnRoaXMuX2xpc3RlbmVycz1bdF19dW5zdWJzY3JpYmUodCl7aWYoIXRoaXMuX2xpc3RlbmVycylyZXR1cm47bGV0IGU9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YodCk7ZSE9PS0xJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKGUsMSl9dG9BYm9ydFNpZ25hbCgpe2xldCB0PW5ldyBBYm9ydENvbnRyb2xsZXIsZT1JPT57dC5hYm9ydChJKX07cmV0dXJuIHRoaXMuc3Vic2NyaWJlKGUpLHQuc2lnbmFsLnVuc3Vic2NyaWJlPSgpPT50aGlzLnVuc3Vic2NyaWJlKGUpLHQuc2lnbmFsfXN0YXRpYyBzb3VyY2UoKXtsZXQgdDtyZXR1cm57dG9rZW46bmV3IEEoZnVuY3Rpb24ocil7dD1yfSksY2FuY2VsOnR9fX0sdWU9bHQ7ZnVuY3Rpb24gdXQoQSl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBBLmFwcGx5KG51bGwsZSl9fWZ1bmN0aW9uIGR0KEEpe3JldHVybiBpLmlzT2JqZWN0KEEpJiZBLmlzQXhpb3NFcnJvcj09PSEwfXZhciBEdD17Q29udGludWU6MTAwLFN3aXRjaGluZ1Byb3RvY29sczoxMDEsUHJvY2Vzc2luZzoxMDIsRWFybHlIaW50czoxMDMsT2s6MjAwLENyZWF0ZWQ6MjAxLEFjY2VwdGVkOjIwMixOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb246MjAzLE5vQ29udGVudDoyMDQsUmVzZXRDb250ZW50OjIwNSxQYXJ0aWFsQ29udGVudDoyMDYsTXVsdGlTdGF0dXM6MjA3LEFscmVhZHlSZXBvcnRlZDoyMDgsSW1Vc2VkOjIyNixNdWx0aXBsZUNob2ljZXM6MzAwLE1vdmVkUGVybWFuZW50bHk6MzAxLEZvdW5kOjMwMixTZWVPdGhlcjozMDMsTm90TW9kaWZpZWQ6MzA0LFVzZVByb3h5OjMwNSxVbnVzZWQ6MzA2LFRlbXBvcmFyeVJlZGlyZWN0OjMwNyxQZXJtYW5lbnRSZWRpcmVjdDozMDgsQmFkUmVxdWVzdDo0MDAsVW5hdXRob3JpemVkOjQwMSxQYXltZW50UmVxdWlyZWQ6NDAyLEZvcmJpZGRlbjo0MDMsTm90Rm91bmQ6NDA0LE1ldGhvZE5vdEFsbG93ZWQ6NDA1LE5vdEFjY2VwdGFibGU6NDA2LFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDo0MDcsUmVxdWVzdFRpbWVvdXQ6NDA4LENvbmZsaWN0OjQwOSxHb25lOjQxMCxMZW5ndGhSZXF1aXJlZDo0MTEsUHJlY29uZGl0aW9uRmFpbGVkOjQxMixQYXlsb2FkVG9vTGFyZ2U6NDEzLFVyaVRvb0xvbmc6NDE0LFVuc3VwcG9ydGVkTWVkaWFUeXBlOjQxNSxSYW5nZU5vdFNhdGlzZmlhYmxlOjQxNixFeHBlY3RhdGlvbkZhaWxlZDo0MTcsSW1BVGVhcG90OjQxOCxNaXNkaXJlY3RlZFJlcXVlc3Q6NDIxLFVucHJvY2Vzc2FibGVFbnRpdHk6NDIyLExvY2tlZDo0MjMsRmFpbGVkRGVwZW5kZW5jeTo0MjQsVG9vRWFybHk6NDI1LFVwZ3JhZGVSZXF1aXJlZDo0MjYsUHJlY29uZGl0aW9uUmVxdWlyZWQ6NDI4LFRvb01hbnlSZXF1ZXN0czo0MjksUmVxdWVzdEhlYWRlckZpZWxkc1Rvb0xhcmdlOjQzMSxVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczo0NTEsSW50ZXJuYWxTZXJ2ZXJFcnJvcjo1MDAsTm90SW1wbGVtZW50ZWQ6NTAxLEJhZEdhdGV3YXk6NTAyLFNlcnZpY2VVbmF2YWlsYWJsZTo1MDMsR2F0ZXdheVRpbWVvdXQ6NTA0LEh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOjUwNSxWYXJpYW50QWxzb05lZ290aWF0ZXM6NTA2LEluc3VmZmljaWVudFN0b3JhZ2U6NTA3LExvb3BEZXRlY3RlZDo1MDgsTm90RXh0ZW5kZWQ6NTEwLE5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOjUxMX07T2JqZWN0LmVudHJpZXMoRHQpLmZvckVhY2goKFtBLHRdKT0+e0R0W3RdPUF9KTt2YXIgZGU9RHQ7ZnVuY3Rpb24gRGUoQSl7bGV0IHQ9bmV3IGZBKEEpLGU9b0EoZkEucHJvdG90eXBlLnJlcXVlc3QsdCk7cmV0dXJuIGkuZXh0ZW5kKGUsZkEucHJvdG90eXBlLHQse2FsbE93bktleXM6ITB9KSxpLmV4dGVuZChlLHQsbnVsbCx7YWxsT3duS2V5czohMH0pLGUuY3JlYXRlPWZ1bmN0aW9uKHIpe3JldHVybiBEZShiKEEscikpfSxlfXZhciBtPURlKEFBKTttLkF4aW9zPWZBO20uQ2FuY2VsZWRFcnJvcj1IO20uQ2FuY2VsVG9rZW49dWU7bS5pc0NhbmNlbD1hQTttLlZFUlNJT049T0E7bS50b0Zvcm1EYXRhPVQ7bS5BeGlvc0Vycm9yPXU7bS5DYW5jZWw9bS5DYW5jZWxlZEVycm9yO20uYWxsPWZ1bmN0aW9uKHQpe3JldHVybiBQcm9taXNlLmFsbCh0KX07bS5zcHJlYWQ9dXQ7bS5pc0F4aW9zRXJyb3I9ZHQ7bS5tZXJnZUNvbmZpZz1iO20uQXhpb3NIZWFkZXJzPXA7bS5mb3JtVG9KU09OPUE9PkpBKGkuaXNIVE1MRm9ybShBKT9uZXcgRm9ybURhdGEoQSk6QSk7bS5nZXRBZGFwdGVyPU1BLmdldEFkYXB0ZXI7bS5IdHRwU3RhdHVzQ29kZT1kZTttLmRlZmF1bHQ9bTt2YXIgeEE9bTt2YXJ7QXhpb3M6UmksQXhpb3NFcnJvcjpOaSxDYW5jZWxlZEVycm9yOlVpLGlzQ2FuY2VsOkdpLENhbmNlbFRva2VuOmtpLFZFUlNJT046TGksYWxsOmJpLENhbmNlbDpKaSxpc0F4aW9zRXJyb3I6SGksc3ByZWFkOllpLHRvRm9ybURhdGE6cWksQXhpb3NIZWFkZXJzOk1pLEh0dHBTdGF0dXNDb2RlOktpLGZvcm1Ub0pTT046T2ksZ2V0QWRhcHRlcjpUaSxtZXJnZUNvbmZpZzp4aX09eEE7dmFyIGxBLE0seXQsaHQ9e2Vudjp7ZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aDpmdW5jdGlvbihBKXt5dD1uZXcgVWludDhBcnJheShNLmV4cG9ydHMubWVtb3J5LmJ1ZmZlcil9fX0sUEE9Y2xhc3N7aW5pdCgpe3JldHVybiBsQXx8KHR5cGVvZiBmZXRjaDwidSI/bEE9ZmV0Y2goImRhdGE6YXBwbGljYXRpb24vd2FzbTtiYXNlNjQsIitoZSkudGhlbih0PT50LmFycmF5QnVmZmVyKCkpLnRoZW4odD0+V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUodCxodCkpLnRoZW4odGhpcy5faW5pdCk6bEE9V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoQnVmZmVyLmZyb20oaGUsImJhc2U2NCIpLGh0KS50aGVuKHRoaXMuX2luaXQpLGxBKX1faW5pdCh0KXtNPXQuaW5zdGFuY2UsaHQuZW52LmVtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgoMCl9ZGVjb2RlKHQsZT0wKXtpZighTSl0aHJvdyBuZXcgRXJyb3IoIlpTVEREZWNvZGVyOiBBd2FpdCAuaW5pdCgpIGJlZm9yZSBkZWNvZGluZy4iKTtsZXQgST10LmJ5dGVMZW5ndGgscj1NLmV4cG9ydHMubWFsbG9jKEkpO3l0LnNldCh0LHIpLGU9ZXx8TnVtYmVyKE0uZXhwb3J0cy5aU1REX2ZpbmREZWNvbXByZXNzZWRTaXplKHIsSSkpO2xldCBnPU0uZXhwb3J0cy5tYWxsb2MoZSksbz1NLmV4cG9ydHMuWlNURF9kZWNvbXByZXNzKGcsZSxyLEkpLG49eXQuc2xpY2UoZyxnK28pO3JldHVybiBNLmV4cG9ydHMuZnJlZShyKSxNLmV4cG9ydHMuZnJlZShnKSxufX0saGU9IkFHRnpiUUVBQUFBQmJnNWdBMzkvZndGL1lBRi9BWDlnQW45L0FHQUJmd0JnQlg5L2YzOS9BWDlnQTM5L2Z3QmdCSDkvZjM4QmYyQUFBWDlnQW45L0FYOWdCMzkvZjM5L2YzOEJmMkFDZjM4QmZtQUlmMzkvZjM5L2YzOEJmMkFGZjM5L2YzOEFZQTUvZjM5L2YzOS9mMzkvZjM5L2Z3Ri9BaWNCQTJWdWRoOWxiWE5qY21sd2RHVnVYMjV2ZEdsbWVWOXRaVzF2Y25sZlozSnZkM1JvQUFNREl5SUhBQUFCQVFNSEF3RUFDUVFBQlFFSUNBRUZCZ1FFQkFNR0FBQUtBQVVMREEwR0JBVUJjQUVCQVFVSEFRR0FBb0NBQWdZSUFYOEJRWUNqQkFzSHJnRUxCbTFsYlc5eWVRSUFCbTFoYkd4dll3QUZCR1p5WldVQUJneGFVMVJFWDJselJYSnliM0lBRWhsYVUxUkVYMlpwYm1SRVpXTnZiWEJ5WlhOelpXUlRhWHBsQUJ3UFdsTlVSRjlrWldOdmJYQnlaWE56QUNJWlgxOXBibVJwY21WamRGOW1kVzVqZEdsdmJsOTBZV0pzWlFFQUVGOWZaWEp5Ym05ZmJHOWpZWFJwYjI0QUFRbHpkR0ZqYTFOaGRtVUFCd3h6ZEdGamExSmxjM1J2Y21VQUNBcHpkR0ZqYTBGc2JHOWpBQWtLaS9JQklnVUFRWVFmQ3pNQkFYOGdBZ1JBSUFBaEF3TkFJQU1nQVMwQUFEb0FBQ0FEUVFGcUlRTWdBVUVCYWlFQklBSkJBV3NpQWcwQUN3c2dBQXNwQVFGL0lBSUVRQ0FBSVFNRFFDQURJQUU2QUFBZ0EwRUJhaUVESUFKQkFXc2lBZzBBQ3dzZ0FBdHNBUUovUVlBZktBSUFJZ0VnQUVFSGFrRjRjU0lDYWlFQUFrQWdBa0VBSUFBZ0FVMGJEUUFnQUQ4QVFSQjBTd1JBSUFBL0FFRVFkR3RCLy84RGFrRVFka0FBUVg5R0JIOUJBQVZCQUJBQVFRRUxSUTBCQzBHQUh5QUFOZ0lBSUFFUEMwR0VIMEV3TmdJQVFYOEx1U2NCQzM4akFFRVFheUlLSkFBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBQkI5QUZOQkVCQmlCOG9BZ0FpQmtFUUlBQkJDMnBCZUhFZ0FFRUxTUnNpQlVFRGRpSUFkaUlCUVFOeEJFQUNRQ0FCUVg5elFRRnhJQUJxSWdKQkEzUWlBVUd3SDJvaUFDQUJRYmdmYWlnQ0FDSUJLQUlJSWdSR0JFQkJpQjhnQmtGK0lBSjNjVFlDQUF3QkN5QUVJQUEyQWd3Z0FDQUVOZ0lJQ3lBQlFRaHFJUUFnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1Ed3NnQlVHUUh5Z0NBQ0lIVFEwQklBRUVRQUpBUVFJZ0FIUWlBa0VBSUFKcmNpQUJJQUIwY1dnaUFVRURkQ0lBUWJBZmFpSUNJQUJCdUI5cUtBSUFJZ0FvQWdnaUJFWUVRRUdJSHlBR1FYNGdBWGR4SWdZMkFnQU1BUXNnQkNBQ05nSU1JQUlnQkRZQ0NBc2dBQ0FGUVFOeU5nSUVJQUFnQldvaUNDQUJRUU4wSWdFZ0JXc2lCRUVCY2pZQ0JDQUFJQUZxSUFRMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFGQm5COG9BZ0FoQWdKL0lBWkJBU0FIUVFOMmRDSURjVVVFUUVHSUh5QURJQVp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBeUFCSUFJMkFnZ2dBeUFDTmdJTUlBSWdBVFlDRENBQ0lBTTJBZ2dMSUFCQkNHb2hBRUdjSHlBSU5nSUFRWkFmSUFRMkFnQU1Ed3RCakI4b0FnQWlDMFVOQVNBTGFFRUNkRUc0SVdvb0FnQWlBaWdDQkVGNGNTQUZheUVESUFJaEFRTkFBa0FnQVNnQ0VDSUFSUVJBSUFFb0FoUWlBRVVOQVFzZ0FDZ0NCRUY0Y1NBRmF5SUJJQU1nQVNBRFNTSUJHeUVESUFBZ0FpQUJHeUVDSUFBaEFRd0JDd3NnQWlnQ0dDRUpJQUlnQWlnQ0RDSUVSd1JBUVpnZktBSUFHaUFDS0FJSUlnQWdCRFlDRENBRUlBQTJBZ2dNRGdzZ0FrRVVhaUlCS0FJQUlnQkZCRUFnQWlnQ0VDSUFSUTBESUFKQkVHb2hBUXNEUUNBQklRZ2dBQ0lFUVJScUlnRW9BZ0FpQUEwQUlBUkJFR29oQVNBRUtBSVFJZ0FOQUFzZ0NFRUFOZ0lBREEwTFFYOGhCU0FBUWI5L1N3MEFJQUJCQzJvaUFFRjRjU0VGUVl3ZktBSUFJZ2hGRFFCQkFDQUZheUVEQWtBQ1FBSkFBbjlCQUNBRlFZQUNTUTBBR2tFZklBVkIvLy8vQjBzTkFCb2dCVUVtSUFCQkNIWm5JZ0JyZGtFQmNTQUFRUUYwYTBFK2Fnc2lCMEVDZEVHNElXb29BZ0FpQVVVRVFFRUFJUUFNQVF0QkFDRUFJQVZCR1NBSFFRRjJhMEVBSUFkQkgwY2JkQ0VDQTBBQ1FDQUJLQUlFUVhoeElBVnJJZ1lnQTA4TkFDQUJJUVFnQmlJRERRQkJBQ0VESUFFaEFBd0RDeUFBSUFFb0FoUWlCaUFHSUFFZ0FrRWRka0VFY1dvb0FoQWlBVVliSUFBZ0Joc2hBQ0FDUVFGMElRSWdBUTBBQ3dzZ0FDQUVja1VFUUVFQUlRUkJBaUFIZENJQVFRQWdBR3R5SUFoeElnQkZEUU1nQUdoQkFuUkJ1Q0ZxS0FJQUlRQUxJQUJGRFFFTEEwQWdBQ2dDQkVGNGNTQUZheUlDSUFOSklRRWdBaUFESUFFYklRTWdBQ0FFSUFFYklRUWdBQ2dDRUNJQkJIOGdBUVVnQUNnQ0ZBc2lBQTBBQ3dzZ0JFVU5BQ0FEUVpBZktBSUFJQVZyVHcwQUlBUW9BaGdoQnlBRUlBUW9BZ3dpQWtjRVFFR1lIeWdDQUJvZ0JDZ0NDQ0lBSUFJMkFnd2dBaUFBTmdJSURBd0xJQVJCRkdvaUFTZ0NBQ0lBUlFSQUlBUW9BaEFpQUVVTkF5QUVRUkJxSVFFTEEwQWdBU0VHSUFBaUFrRVVhaUlCS0FJQUlnQU5BQ0FDUVJCcUlRRWdBaWdDRUNJQURRQUxJQVpCQURZQ0FBd0xDeUFGUVpBZktBSUFJZ1JOQkVCQm5COG9BZ0FoQUFKQUlBUWdCV3NpQVVFUVR3UkFJQUFnQldvaUFpQUJRUUZ5TmdJRUlBQWdCR29nQVRZQ0FDQUFJQVZCQTNJMkFnUU1BUXNnQUNBRVFRTnlOZ0lFSUFBZ0JHb2lBU0FCS0FJRVFRRnlOZ0lFUVFBaEFrRUFJUUVMUVpBZklBRTJBZ0JCbkI4Z0FqWUNBQ0FBUVFocUlRQU1EUXNnQlVHVUh5Z0NBQ0lDU1FSQVFaUWZJQUlnQldzaUFUWUNBRUdnSDBHZ0h5Z0NBQ0lBSUFWcUlnSTJBZ0FnQWlBQlFRRnlOZ0lFSUFBZ0JVRURjallDQkNBQVFRaHFJUUFNRFF0QkFDRUFJQVZCTDJvaUF3Si9RZUFpS0FJQUJFQkI2Q0lvQWdBTUFRdEI3Q0pDZnpjQ0FFSGtJa0tBb0lDQWdJQUVOd0lBUWVBaUlBcEJER3BCY0hGQjJLclZxZ1Z6TmdJQVFmUWlRUUEyQWdCQnhDSkJBRFlDQUVHQUlBc2lBV29pQmtFQUlBRnJJZ2h4SWdFZ0JVME5ERUhBSWlnQ0FDSUVCRUJCdUNJb0FnQWlCeUFCYWlJSklBZE5JQVFnQ1VseURRMExBa0JCeENJdEFBQkJCSEZGQkVBQ1FBSkFBa0FDUUVHZ0h5Z0NBQ0lFQkVCQnlDSWhBQU5BSUFRZ0FDZ0NBQ0lIVHdSQUlBY2dBQ2dDQkdvZ0JFc05Bd3NnQUNnQ0NDSUFEUUFMQzBFQUVBUWlBa0YvUmcwRElBRWhCa0hrSWlnQ0FDSUFRUUZySWdRZ0FuRUVRQ0FCSUFKcklBSWdCR3BCQUNBQWEzRnFJUVlMSUFVZ0JrOE5BMEhBSWlnQ0FDSUFCRUJCdUNJb0FnQWlCQ0FHYWlJSUlBUk5JQUFnQ0VseURRUUxJQVlRQkNJQUlBSkhEUUVNQlFzZ0JpQUNheUFJY1NJR0VBUWlBaUFBS0FJQUlBQW9BZ1JxUmcwQklBSWhBQXNnQUVGL1JnMEJJQVZCTUdvZ0JrMEVRQ0FBSVFJTUJBdEI2Q0lvQWdBaUFpQURJQVpyYWtFQUlBSnJjU0lDRUFSQmYwWU5BU0FDSUFacUlRWWdBQ0VDREFNTElBSkJmMGNOQWd0QnhDSkJ4Q0lvQWdCQkJISTJBZ0FMSUFFUUJDSUNRWDlHUVFBUUJDSUFRWDlHY2lBQUlBSk5jZzBGSUFBZ0Ftc2lCaUFGUVNocVRRMEZDMEc0SWtHNElpZ0NBQ0FHYWlJQU5nSUFRYndpS0FJQUlBQkpCRUJCdkNJZ0FEWUNBQXNDUUVHZ0h5Z0NBQ0lEQkVCQnlDSWhBQU5BSUFJZ0FDZ0NBQ0lCSUFBb0FnUWlCR3BHRFFJZ0FDZ0NDQ0lBRFFBTERBUUxRWmdmS0FJQUlnQkJBQ0FBSUFKTkcwVUVRRUdZSHlBQ05nSUFDMEVBSVFCQnpDSWdCallDQUVISUlpQUNOZ0lBUWFnZlFYODJBZ0JCckI5QjRDSW9BZ0EyQWdCQjFDSkJBRFlDQUFOQUlBQkJBM1FpQVVHNEgyb2dBVUd3SDJvaUJEWUNBQ0FCUWJ3ZmFpQUVOZ0lBSUFCQkFXb2lBRUVnUncwQUMwR1VIeUFHUVNocklnQkJlQ0FDYTBFSGNTSUJheUlFTmdJQVFhQWZJQUVnQW1vaUFUWUNBQ0FCSUFSQkFYSTJBZ1FnQUNBQ2FrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBUUxJQUlnQTAwZ0FTQURTM0lOQWlBQUtBSU1RUWh4RFFJZ0FDQUVJQVpxTmdJRVFhQWZJQU5CZUNBRGEwRUhjU0lBYWlJQk5nSUFRWlFmUVpRZktBSUFJQVpxSWdJZ0FHc2lBRFlDQUNBQklBQkJBWEkyQWdRZ0FpQURha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQU1MUVFBaEJBd0tDMEVBSVFJTUNBdEJtQjhvQWdBZ0Frc0VRRUdZSHlBQ05nSUFDeUFDSUFacUlRRkJ5Q0loQUFKQUFrQUNRQU5BSUFFZ0FDZ0NBRWNFUUNBQUtBSUlJZ0FOQVF3Q0N3c2dBQzBBREVFSWNVVU5BUXRCeUNJaEFBTkFJQU1nQUNnQ0FDSUJUd1JBSUFFZ0FDZ0NCR29pQkNBRFN3MERDeUFBS0FJSUlRQU1BQXNBQ3lBQUlBSTJBZ0FnQUNBQUtBSUVJQVpxTmdJRUlBSkJlQ0FDYTBFSGNXb2lCeUFGUVFOeU5nSUVJQUZCZUNBQmEwRUhjV29pQmlBRklBZHFJZ1ZySVFBZ0F5QUdSZ1JBUWFBZklBVTJBZ0JCbEI5QmxCOG9BZ0FnQUdvaUFEWUNBQ0FGSUFCQkFYSTJBZ1FNQ0F0Qm5COG9BZ0FnQmtZRVFFR2NIeUFGTmdJQVFaQWZRWkFmS0FJQUlBQnFJZ0EyQWdBZ0JTQUFRUUZ5TmdJRUlBQWdCV29nQURZQ0FBd0lDeUFHS0FJRUlnTkJBM0ZCQVVjTkJpQURRWGh4SVFrZ0EwSC9BVTBFUUNBR0tBSU1JZ0VnQmlnQ0NDSUNSZ1JBUVlnZlFZZ2ZLQUlBUVg0Z0EwRURkbmR4TmdJQURBY0xJQUlnQVRZQ0RDQUJJQUkyQWdnTUJnc2dCaWdDR0NFSUlBWWdCaWdDRENJQ1J3UkFJQVlvQWdnaUFTQUNOZ0lNSUFJZ0FUWUNDQXdGQ3lBR1FSUnFJZ0VvQWdBaUEwVUVRQ0FHS0FJUUlnTkZEUVFnQmtFUWFpRUJDd05BSUFFaEJDQURJZ0pCRkdvaUFTZ0NBQ0lERFFBZ0FrRVFhaUVCSUFJb0FoQWlBdzBBQ3lBRVFRQTJBZ0FNQkF0QmxCOGdCa0VvYXlJQVFYZ2dBbXRCQjNFaUFXc2lDRFlDQUVHZ0h5QUJJQUpxSWdFMkFnQWdBU0FJUVFGeU5nSUVJQUFnQW1wQktEWUNCRUdrSDBId0lpZ0NBRFlDQUNBRElBUkJKeUFFYTBFSGNXcEJMMnNpQUNBQUlBTkJFR3BKR3lJQlFSczJBZ1FnQVVIUUlpa0NBRGNDRUNBQlFjZ2lLUUlBTndJSVFkQWlJQUZCQ0dvMkFnQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFkUWlRUUEyQWdBZ0FVRVlhaUVBQTBBZ0FFRUhOZ0lFSUFCQkNHb2dBRUVFYWlFQUlBUkpEUUFMSUFFZ0EwWU5BQ0FCSUFFb0FnUkJmbkUyQWdRZ0F5QUJJQU5ySWdKQkFYSTJBZ1FnQVNBQ05nSUFJQUpCL3dGTkJFQWdBa0Y0Y1VHd0gyb2hBQUovUVlnZktBSUFJZ0ZCQVNBQ1FRTjJkQ0lDY1VVRVFFR0lIeUFCSUFKeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQVNBQUlBTTJBZ2dnQVNBRE5nSU1JQU1nQURZQ0RDQURJQUUyQWdnTUFRdEJIeUVBSUFKQi8vLy9CMDBFUUNBQ1FTWWdBa0VJZG1jaUFHdDJRUUZ4SUFCQkFYUnJRVDVxSVFBTElBTWdBRFlDSENBRFFnQTNBaEFnQUVFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUJFRUJJQUIwSWdaeFJRUkFRWXdmSUFRZ0JuSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkdTQUFRUUYyYTBFQUlBQkJIMGNiZENFQUlBRW9BZ0FoQkFOQUlBUWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCQ0FBUVFGMElRQWdBU0FFUVFSeGFpSUdLQUlRSWdRTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xRWlFmS0FJQUlnQWdCVTBOQUVHVUh5QUFJQVZySWdFMkFnQkJvQjlCb0I4b0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQWdMUVlRZlFUQTJBZ0JCQUNFQURBY0xRUUFoQWdzZ0NFVU5BQUpBSUFZb0Fod2lBVUVDZEVHNElXb2lCQ2dDQUNBR1JnUkFJQVFnQWpZQ0FDQUNEUUZCakI5QmpCOG9BZ0JCZmlBQmQzRTJBZ0FNQWdzZ0NFRVFRUlFnQ0NnQ0VDQUdSaHRxSUFJMkFnQWdBa1VOQVFzZ0FpQUlOZ0lZSUFZb0FoQWlBUVJBSUFJZ0FUWUNFQ0FCSUFJMkFoZ0xJQVlvQWhRaUFVVU5BQ0FDSUFFMkFoUWdBU0FDTmdJWUN5QUFJQWxxSVFBZ0JpQUphaUlHS0FJRUlRTUxJQVlnQTBGK2NUWUNCQ0FGSUFCQkFYSTJBZ1FnQUNBRmFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVGNGNVR3dIMm9oQVFKL1FZZ2ZLQUlBSWdKQkFTQUFRUU4yZENJQWNVVUVRRUdJSHlBQUlBSnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEFDQUJJQVUyQWdnZ0FDQUZOZ0lNSUFVZ0FUWUNEQ0FGSUFBMkFnZ01BUXRCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQVVnQXpZQ0hDQUZRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlBa0VCSUFOMElnUnhSUVJBUVl3ZklBSWdCSEkyQWdBZ0FTQUZOZ0lBREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFnTkFJQUlpQVNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQWlBRFFRRjBJUU1nQVNBQ1FRUnhhaUlFS0FJUUlnSU5BQXNnQkNBRk5nSVFDeUFGSUFFMkFoZ2dCU0FGTmdJTUlBVWdCVFlDQ0F3QkN5QUJLQUlJSWdBZ0JUWUNEQ0FCSUFVMkFnZ2dCVUVBTmdJWUlBVWdBVFlDRENBRklBQTJBZ2dMSUFkQkNHb2hBQXdDQ3dKQUlBZEZEUUFDUUNBRUtBSWNJZ0JCQW5SQnVDRnFJZ0VvQWdBZ0JFWUVRQ0FCSUFJMkFnQWdBZzBCUVl3ZklBaEJmaUFBZDNFaUNEWUNBQXdDQ3lBSFFSQkJGQ0FIS0FJUUlBUkdHMm9nQWpZQ0FDQUNSUTBCQ3lBQ0lBYzJBaGdnQkNnQ0VDSUFCRUFnQWlBQU5nSVFJQUFnQWpZQ0dBc2dCQ2dDRkNJQVJRMEFJQUlnQURZQ0ZDQUFJQUkyQWhnTEFrQWdBMEVQVFFSQUlBUWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0JHb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBUWdCVUVEY2pZQ0JDQUVJQVZxSWdJZ0EwRUJjallDQkNBQ0lBTnFJQU0yQWdBZ0EwSC9BVTBFUUNBRFFYaHhRYkFmYWlFQUFuOUJpQjhvQWdBaUFVRUJJQU5CQTNaMElnTnhSUVJBUVlnZklBRWdBM0kyQWdBZ0FBd0JDeUFBS0FJSUN5RUJJQUFnQWpZQ0NDQUJJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0FUWUNDQXdCQzBFZklRQWdBMEgvLy84SFRRUkFJQU5CSmlBRFFRaDJaeUlBYTNaQkFYRWdBRUVCZEd0QlBtb2hBQXNnQWlBQU5nSWNJQUpDQURjQ0VDQUFRUUowUWJnaGFpRUJBa0FDUUNBSVFRRWdBSFFpQm5GRkJFQkJqQjhnQmlBSWNqWUNBQ0FCSUFJMkFnQU1BUXNnQTBFWklBQkJBWFpyUVFBZ0FFRWZSeHQwSVFBZ0FTZ0NBQ0VGQTBBZ0JTSUJLQUlFUVhoeElBTkdEUUlnQUVFZGRpRUdJQUJCQVhRaEFDQUJJQVpCQkhGcUlnWW9BaEFpQlEwQUN5QUdJQUkyQWhBTElBSWdBVFlDR0NBQ0lBSTJBZ3dnQWlBQ05nSUlEQUVMSUFFb0FnZ2lBQ0FDTmdJTUlBRWdBallDQ0NBQ1FRQTJBaGdnQWlBQk5nSU1JQUlnQURZQ0NBc2dCRUVJYWlFQURBRUxBa0FnQ1VVTkFBSkFJQUlvQWh3aUFFRUNkRUc0SVdvaUFTZ0NBQ0FDUmdSQUlBRWdCRFlDQUNBRURRRkJqQjhnQzBGK0lBQjNjVFlDQUF3Q0N5QUpRUkJCRkNBSktBSVFJQUpHRzJvZ0JEWUNBQ0FFUlEwQkN5QUVJQWsyQWhnZ0FpZ0NFQ0lBQkVBZ0JDQUFOZ0lRSUFBZ0JEWUNHQXNnQWlnQ0ZDSUFSUTBBSUFRZ0FEWUNGQ0FBSUFRMkFoZ0xBa0FnQTBFUFRRUkFJQUlnQXlBRmFpSUFRUU55TmdJRUlBQWdBbW9pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQUlnQlVFRGNqWUNCQ0FDSUFWcUlnUWdBMEVCY2pZQ0JDQURJQVJxSUFNMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFCQm5COG9BZ0FoQVFKL1FRRWdCMEVEZG5RaUJTQUdjVVVFUUVHSUh5QUZJQVp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hCaUFBSUFFMkFnZ2dCaUFCTmdJTUlBRWdBRFlDRENBQklBWTJBZ2dMUVp3ZklBUTJBZ0JCa0I4Z0F6WUNBQXNnQWtFSWFpRUFDeUFLUVJCcUpBQWdBQXZTQ3dFSGZ3SkFJQUJGRFFBZ0FFRUlheUlDSUFCQkJHc29BZ0FpQVVGNGNTSUFhaUVGQWtBZ0FVRUJjUTBBSUFGQkEzRkZEUUVnQWlBQ0tBSUFJZ0ZySWdKQm1COG9BZ0JKRFFFZ0FDQUJhaUVBQWtBQ1FFR2NIeWdDQUNBQ1J3UkFJQUZCL3dGTkJFQWdBVUVEZGlFRUlBSW9BZ3dpQVNBQ0tBSUlJZ05HQkVCQmlCOUJpQjhvQWdCQmZpQUVkM0UyQWdBTUJRc2dBeUFCTmdJTUlBRWdBellDQ0F3RUN5QUNLQUlZSVFZZ0FpQUNLQUlNSWdGSEJFQWdBaWdDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFKQkZHb2lCQ2dDQUNJRFJRUkFJQUlvQWhBaUEwVU5BaUFDUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRktBSUVJZ0ZCQTNGQkEwY05Ba0dRSHlBQU5nSUFJQVVnQVVGK2NUWUNCQ0FDSUFCQkFYSTJBZ1FnQlNBQU5nSUFEd3RCQUNFQkN5QUdSUTBBQWtBZ0FpZ0NIQ0lEUVFKMFFiZ2hhaUlFS0FJQUlBSkdCRUFnQkNBQk5nSUFJQUVOQVVHTUgwR01IeWdDQUVGK0lBTjNjVFlDQUF3Q0N5QUdRUkJCRkNBR0tBSVFJQUpHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQVkyQWhnZ0FpZ0NFQ0lEQkVBZ0FTQUROZ0lRSUFNZ0FUWUNHQXNnQWlnQ0ZDSURSUTBBSUFFZ0F6WUNGQ0FESUFFMkFoZ0xJQUlnQlU4TkFDQUZLQUlFSWdGQkFYRkZEUUFDUUFKQUFrQUNRQ0FCUVFKeFJRUkFRYUFmS0FJQUlBVkdCRUJCb0I4Z0FqWUNBRUdVSDBHVUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FDUVp3ZktBSUFSdzBHUVpBZlFRQTJBZ0JCbkI5QkFEWUNBQThMUVp3ZktBSUFJQVZHQkVCQm5COGdBallDQUVHUUgwR1FIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQUlBSnFJQUEyQWdBUEN5QUJRWGh4SUFCcUlRQWdBVUgvQVUwRVFDQUJRUU4ySVFRZ0JTZ0NEQ0lCSUFVb0FnZ2lBMFlFUUVHSUgwR0lIeWdDQUVGK0lBUjNjVFlDQUF3RkN5QURJQUUyQWd3Z0FTQUROZ0lJREFRTElBVW9BaGdoQmlBRklBVW9BZ3dpQVVjRVFFR1lIeWdDQUJvZ0JTZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQVZCRkdvaUJDZ0NBQ0lEUlFSQUlBVW9BaEFpQTBVTkFpQUZRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGSUFGQmZuRTJBZ1FnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUF3REMwRUFJUUVMSUFaRkRRQUNRQ0FGS0FJY0lnTkJBblJCdUNGcUlnUW9BZ0FnQlVZRVFDQUVJQUUyQWdBZ0FRMEJRWXdmUVl3ZktBSUFRWDRnQTNkeE5nSUFEQUlMSUFaQkVFRVVJQVlvQWhBZ0JVWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0JqWUNHQ0FGS0FJUUlnTUVRQ0FCSUFNMkFoQWdBeUFCTmdJWUN5QUZLQUlVSWdORkRRQWdBU0FETmdJVUlBTWdBVFlDR0FzZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FDQUNRWndmS0FJQVJ3MEFRWkFmSUFBMkFnQVBDeUFBUWY4QlRRUkFJQUJCZUhGQnNCOXFJUUVDZjBHSUh5Z0NBQ0lEUVFFZ0FFRURkblFpQUhGRkJFQkJpQjhnQUNBRGNqWUNBQ0FCREFFTElBRW9BZ2dMSVFBZ0FTQUNOZ0lJSUFBZ0FqWUNEQ0FDSUFFMkFnd2dBaUFBTmdJSUR3dEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBSWdBellDSENBQ1FnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQUNRRUdNSHlnQ0FDSUVRUUVnQTNRaUIzRkZCRUJCakI4Z0JDQUhjallDQUNBQklBSTJBZ0FnQWlBQk5nSVlEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQVFOQUlBRWlCQ2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBU0FEUVFGMElRTWdCQ0FCUVFSeGFpSUhRUkJxS0FJQUlnRU5BQXNnQnlBQ05nSVFJQUlnQkRZQ0dBc2dBaUFDTmdJTUlBSWdBallDQ0F3QkN5QUVLQUlJSWdBZ0FqWUNEQ0FFSUFJMkFnZ2dBa0VBTmdJWUlBSWdCRFlDRENBQ0lBQTJBZ2dMUWFnZlFhZ2ZLQUlBUVFGcklnQkJmeUFBR3pZQ0FBc0xCQUFqQUFzR0FDQUFKQUFMRUFBakFDQUFhMEZ3Y1NJQUpBQWdBQXRLQVFGL0lBQWdBVWtFUUNBQUlBRWdBaEFDRHdzZ0FnUkFJQUFnQW1vaEF5QUJJQUpxSVFFRFFDQURRUUZySWdNZ0FVRUJheUlCTFFBQU9nQUFJQUpCQVdzaUFnMEFDd3NnQUF2OURnSVJmd0YrSXdCQk1Hc2lCeVFBUWJoL0lRZ0NRQ0FGUlEwQUlBUXNBQUFpQ1VIL0FYRWhDd0pBSUFsQkFFZ0VRQ0FMUWY0QWEwRUJkaUlHSUFWUERRSkJiQ0VJSUF0Qi93QnJJZ3RCL3dGTERRSWdCRUVCYWlFSVFRQWhCUU5BSUFVZ0MwOEVRQ0FMSVFnZ0JpRUxEQU1GSUFBZ0JXb2dDQ0FGUVFGMmFpSUVMUUFBUVFSMk9nQUFJQUFnQlVFQmNtb2dCQzBBQUVFUGNUb0FBQ0FGUVFKcUlRVU1BUXNBQ3dBTElBVWdDMDBOQVNBSFFmOEJOZ0lFSUFZZ0IwRUVhaUFIUVFocUlBUkJBV29pRGlBTEVBd2lCRUdJZjBzRVFDQUVJUWdNQWd0QlZDRUlJQWNvQWdnaUVFRUdTdzBCSUFjb0FnUWlFVUVCZENJSlFRSnFyVUlCSUJDdGhpSVlRUUVnRUhRaURVRUJhaUlGclVJQ2hueDhRZ3Q4UXZ6Ly8vLy8vLy8vL3dDRFF1UUNWZzBCUVZJaENDQVJRZjhCU3cwQklBMUJmM05CQW5SQjVBSnFyU0FSUVFGcUloVkJBWFN0SUJoOFFnaDhWQTBCSUFzZ0JHc2hGaUFFSUE1cUlSY2dCa0dBQkdvaUVpQUZRUUowYWlJUklBbHFRUUpxSVE0Z0JrR0VCR29oRTBHQWdBSWdFSFJCRUhZaENVRUFJUVZCQVNFUElBMUJBV3NpRkNFS0EwQWdCU0FWUmtVRVFBSkFJQVlnQlVFQmRDSUlhaThCQUNJRVFmLy9BMFlFUUNBVElBcEJBblJxSUFVNkFBSWdDa0VCYXlFS1FRRWhCQXdCQ3lBUFFRQWdDU0FFd1VvYklROExJQWdnRVdvZ0JEc0JBQ0FGUVFGcUlRVU1BUXNMSUFZZ0R6c0JnZ1FnQmlBUU93R0FCQUpBSUFvZ0ZFWUVRQ0FOUVFOMklRaENBQ0VZUVFBaER3TkFJQXdnRlVZRVFDQUlJQTFCQVhacVFRTnFJZ2xCQVhRaENFRUFJUVJCQUNFS0EwQkJBQ0VGSUFvZ0RVOE5CQU5BSUFWQkFrWkZCRUFnRXlBRklBbHNJQVJxSUJSeFFRSjBhaUFPSUFVZ0NtcHFMUUFBT2dBQ0lBVkJBV29oQlF3QkN3c2dDa0VDYWlFS0lBUWdDR29nRkhFaEJBd0FDd0FGSUFZZ0RFRUJkR291QVFBaENTQU9JQTlxSWdRZ0dEY0FBRUVJSVFVRFFDQUZJQWxPUlFSQUlBUWdCV29nR0RjQUFDQUZRUWhxSVFVTUFRc0xJQmhDZ1lLRWlKQ2d3SUFCZkNFWUlBeEJBV29oRENBSklBOXFJUThNQVFzQUN3QUxJQTFCQTNZZ0RVRUJkbXBCQTJvaENFRUFJUVVEUUNBTUlCVkdSUVJBUVFBaENTQUdJQXhCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQUpSa1VFUUNBVElBVkJBblJxSUF3NkFBSURRQ0FGSUFocUlCUnhJZ1VnQ2tzTkFBc2dDVUVCYWlFSkRBRUxDeUFNUVFGcUlRd01BUXNMUVg4aENDQUZEUUlMSUJCQkFXb2hDRUVBSVFVRFFDQUZJQTFHUlFSQUlCRWdFeUFGUVFKMGFpSU9MUUFDUVFGMGFpSUVJQVF2QVFBaUNVRUJhanNCQUNBT0lBZ2dDV2RCWUhOcUlnUTZBQU1nRGlBSklBUjBJQTFyT3dFQUlBVkJBV29oQlF3QkN3c0NRQUpBSUFZdkFZSUVCRUFnQjBFY2FpSUVJQmNnRmhBTklnaEJpSDlMRFFJZ0IwRVVhaUFFSUJJUURpQUhRUXhxSUFRZ0VoQU9RUUFoQlFOQUlBZEJIR29pQkJBUElBVkIrd0ZMY2cwQ0lBQWdCV29pQmlBSFFSUnFJQVFRRURvQUFDQUdJQWRCREdvZ0JCQVFPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVTUF3VWdBQ0FFYWlBSFFSUnFJQWRCSEdvaUJCQVFPZ0FBSUFZZ0IwRU1haUFFRUJBNkFBTWdCVUVFYWlFRkRBRUxBQXNBQ3lBSFFSeHFJZ1FnRnlBV0VBMGlDRUdJZjBzTkFTQUhRUlJxSUFRZ0VoQU9JQWRCREdvZ0JDQVNFQTVCQUNFRkEwQWdCMEVjYWlJRUVBOGdCVUg3QVV0eVJRUkFJQUFnQldvaUJpQUhRUlJxSUFRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVUZJQUFnQkdvZ0IwRVVhaUFIUVJ4cUlnUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQURJQVZCQkdvaEJRd0NDd3NMQW44RFFFRzZmeUVJSUFWQi9RRkxEUU1nQUNBRmFpSUdJQWRCRkdvZ0IwRWNhaUlKRUJFNkFBQWdCa0VCYWlFRUlBa1FEMEVEUmdSQUlBZEJER29oQ0VFQ0RBSUxJQVZCL0FGTERRTWdCaUFIUVF4cUlBZEJIR29pQkJBUk9nQUJJQVZCQW1vaEJTQUVFQTlCQTBjTkFBc2dBQ0FGYWlFRUlBZEJGR29oQ0VFREN5QUVJQWdnQjBFY2FoQVJPZ0FBSUFacUlBQnJJUWdNQVFzQ2Z3TkFRYnAvSVFnZ0JVSDlBVXNOQWlBQUlBVnFJZ1lnQjBFVWFpQUhRUnhxSWdrUUVEb0FBQ0FHUVFGcUlRUWdDUkFQUVFOR0JFQWdCMEVNYWlFSVFRSU1BZ3NnQlVIOEFVc05BaUFHSUFkQkRHb2dCMEVjYWlJRUVCQTZBQUVnQlVFQ2FpRUZJQVFRRDBFRFJ3MEFDeUFBSUFWcUlRUWdCMEVVYWlFSVFRTUxJQVFnQ0NBSFFSeHFFQkE2QUFBZ0Jtb2dBR3NoQ0FzZ0NFR0lmMHNOQVFzZ0NDRUVRUUFoQlNBQlFRQkJOQkFESVFsQkFDRUtBMEFnQkNBRlJ3UkFJQUFnQldvaUJpMEFBQ0lCUVF0TEJFQkJiQ0VJREFNRklBa2dBVUVDZEdvaUFTQUJLQUlBUVFGcU5nSUFJQVZCQVdvaEJVRUJJQVl0QUFCMFFRRjFJQXBxSVFvTUFnc0FDd3RCYkNFSUlBcEZEUUFnQ21jaUJVRWZjeUlCUVF0TERRQWdBMEVnSUFWck5nSUFRUUZCQWlBQmRDQUtheUlEWjBFZmN5SUJkQ0FEUncwQUlBQWdCR29nQVVFQmFpSUFPZ0FBSUFrZ0FFRUNkR29pQUNBQUtBSUFRUUZxTmdJQUlBa29BZ1FpQUVFQ1NTQUFRUUZ4Y2cwQUlBSWdCRUVCYWpZQ0FDQUxRUUZxSVFnTElBZEJNR29rQUNBSUM2QUZBUXgvSXdCQkVHc2lEQ1FBQW44Z0JFRUhUUVJBSUF4Q0FEY0RDQ0FNUVFocUlnVWdBeUFFRUFJYVFXd2dBQ0FCSUFJZ0JVRUlFQXdpQUNBQUlBUkxHeUFBSUFCQmlYOUpHd3dCQ3lBQVFRQWdBU2dDQUVFQmFpSU5RUUYwRUFNaEQwRlVJQU1vQUFBaUJrRVBjU0lBUVFwTERRQWFJQUlnQUVFRmFqWUNBQ0FESUFScUlnSkJCR3NoQnlBQ1FRZHJJUXNnQUVFR2FpRU9RUVFoQWlBR1FRUjJJUVZCSUNBQWRDSUlRUUZ5SVFsQkFDRUFRUUVoQmlBRElRUURRQUpBSUFaQkFYRkZCRUFEUUNBRlFYOXpRWUNBZ0lCNGNtZ2lCa0VZU1VVRVFDQUFRU1JxSVFBZ0JDQUxUUVIvSUFSQkEyb0ZJQVFnQzJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTElBSWdCa0VlY1NJS2FrRUNhaUVDSUFaQkFYWkJBMndnQUdvZ0JTQUtka0VEY1dvaUFDQU5UdzBCQW44Z0JDQUxTeUFDUVFOMklBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFRZ0IydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTElBVWdDRUVCYTNFaUJpQUlRUUYwUVFGcklnb2dDV3NpRUVrRWZ5QU9RUUZyQlNBRklBcHhJZ1VnRUVFQUlBVWdDRTRiYXlFR0lBNExJUVVnRHlBQVFRRjBhaUFHUVFGcklnbzdBUUFnQUVFQmFpRUFJQUlnQldvaEFpQUlRUUVnQm1zZ0NpQUdRUUJLR3lBSmFpSUpTZ1JBSUFsQkFrZ05BVUVnSUFsbklnVnJJUTVCQVNBRlFSOXpkQ0VJQ3lBQUlBMVBEUUFnQ2tFQVJ5RUdBbjhnQkNBTFN5QUNRUU4xSUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQUlnQkNBSGEwRURkR3BCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTFFXd2dDVUVCUncwQUdrRlFJQUFnRFVzTkFCcEJiQ0FDUVNCS0RRQWFJQUVnQUVFQmF6WUNBQ0FFSUFKQkIycEJBM1ZxSUFOckN5QU1RUkJxSkFBTDhnRUJBWDhnQWtVRVFDQUFRZ0EzQWdBZ0FFRUFOZ0lRSUFCQ0FEY0NDRUc0Znc4TElBQWdBVFlDRENBQUlBRkJCR28yQWhBZ0FrRUVUd1JBSUFBZ0FTQUNhaUlCUVFScklnTTJBZ2dnQUNBREtBQUFOZ0lBSUFGQkFXc3RBQUFpQVFSQUlBQWdBV2RCRjJzMkFnUWdBZzhMSUFCQkFEWUNCRUYvRHdzZ0FDQUJOZ0lJSUFBZ0FTMEFBQ0lETmdJQUFrQUNRQUpBSUFKQkFtc09BZ0VBQWdzZ0FDQUJMUUFDUVJCMElBTnlJZ00yQWdBTElBQWdBUzBBQVVFSWRDQURhallDQUFzZ0FTQUNha0VCYXkwQUFDSUJSUVJBSUFCQkFEWUNCRUZzRHdzZ0FDQUJaeUFDUVFOMGEwRUphallDQkNBQ0MwUUJBbjhnQVNBQ0x3RUFJZ01nQVNnQ0JHb2lCRFlDQkNBQUlBTkJBblJCb0IxcUtBSUFJQUVvQWdCQkFDQUVhM1p4TmdJQUlBRVFEeG9nQUNBQ1FRUnFOZ0lFQzU4QkFRUi9RUU1oQVNBQUtBSUVJZ0pCSUUwRVFDQUFLQUlJSWdFZ0FDZ0NFRThFUUNBQUlBSkJCM0UyQWdRZ0FDQUJJQUpCQTNacklnSTJBZ2dnQUNBQ0tBQUFOZ0lBUVFBUEN5QUFLQUlNSWdNZ0FVWUVRRUVCUVFJZ0FrRWdTUnNQQ3lBQUlBRWdBU0FEYXlBQ1FRTjJJZ1FnQVNBRWF5QURTU0lCR3lJRGF5SUVOZ0lJSUFBZ0FpQURRUU4wYXpZQ0JDQUFJQVFvQUFBMkFnQUxJQUVMU0FFRWZ5QUFLQUlFSUFBb0FnQkJBblJxSWdJdEFBSWdBaThCQUNFRUlBRWdBU2dDQkNJRklBSXRBQU1pQW1vMkFnUWdBQ0FFSUFFb0FnQWdCWFJCQUNBQ2EzWnFOZ0lBQzFJQkJIOGdBQ2dDQkNBQUtBSUFRUUowYWlJQ0xRQUNJQUl2QVFBaEJDQUJJQUl0QUFNaUFpQUJLQUlFYWlJRk5nSUVJQUFnQkNBQ1FRSjBRYUFkYWlnQ0FDQUJLQUlBUVFBZ0JXdDJjV28yQWdBTENBQWdBRUdJZjBzTEdnQWdBQVJBSUFFRVFDQUNJQUFnQVJFQ0FBOExJQUFRQmdzTHBnZ0NEWDhCZmlNQVFSQnJJZ2trQUNBSlFRQTJBZ3dnQ1VFQU5nSUlBbjhDUUNBRFFlZ0phaUFESUFsQkNHb2dDVUVNYWlBQklBSWdBMEdBQVdvUUN5SVBRWWgvU3cwQVFWUWdDU2dDRENJRUlBQW9BZ0FpQVVIL0FYRkJBV3BMRFFFYUlBQkJCR29oQ3lBQUlBRkIvNEdBZUhFZ0JFRVFkRUdBZ1B3SGNYSTJBZ0JCZnlBRUlBUkJBRWdiUVFGcUlRQkJBQ0VCSUFrb0FnZ2hCVUVBSVFJRFFDQUFJQUpHQkVBZ0JVRURheUVCUVFBaEFBTkFBa0JCQUNFQ0lBQWdBVTRFUUFOQUlBQWdCVTROQWlBRElBQWdBMnBCNkFscUxRQUFRUUowYWtGQWF5SUJJQUVvQWdBaUFVRUJhallDQUNBQklBTnFJQUE2QU9nSElBQkJBV29oQUF3QUN3QUZBMEFnQWtFRVJrVUVRQ0FESUFNZ0FDQUNhaUlIYWtIb0NXb3RBQUJCQW5ScVFVQnJJZ2dnQ0NnQ0FDSUlRUUZxTmdJQUlBTWdDR29nQnpvQTZBY2dBa0VCYWlFQ0RBRUxDeUFBUVFScUlRQU1BZ3NBQ3dzZ0JFRUJhaUVPSUFNb0FnQWhCMEVBSVFCQkFTRUlBMEFnQ0NBT1JnMERJQTRnQ0dzaEJDQURJQWhCQW5ScUtBSUFJUVVDUUFKQUFrQUNRQUpBQWtCQkFTQUlkRUVCZFNJTlFRRnJEZ2dBQVFRQ0JBUUVBd1FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFBSVFFRFFDQUNJQVpHRFFVZ0F5QUNJQWRxYWkwQTZBY2hDaUFMSUFGQkFYUnFJZ3dnQkRvQUFTQU1JQW82QUFBZ0FrRUJhaUVDSUFGQkFXb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQ2lBQUlRRURRQ0FDSUFwR0RRUWdDeUFCUVFGMGFpSUdJQU1nQWlBSGFtb3RBT2dISWd3NkFBSWdCaUFFT2dBQklBWWdERG9BQUNBR0lBUTZBQU1nQWtFQmFpRUNJQUZCQW1vaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFFUVFoMFFZRCtBM0VoQkNBQUlRRURRQ0FDSUFaR0RRTWdDeUFCUVFGMGFpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK053QUFJQUpCQVdvaEFpQUJRUVJxSVFFTUFBc0FDMEVBSVFJZ0JVRUFJQVZCQUVvYklRWWdCRUVJZEVHQS9nTnhJUVFnQUNFQkEwQWdBaUFHUmcwQ0lBc2dBVUVCZEdvaUNpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0loRTNBQWdnQ2lBUk53QUFJQUpCQVdvaEFpQUJRUWhxSVFFTUFBc0FDMEVBSVFFZ0JVRUFJQVZCQUVvYklRb2dCRUVJZEVHQS9nTnhJUXdnQUNFRUEwQWdBU0FLUmcwQklBc2dCRUVCZEdvaEVDQU1JQU1nQVNBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0lSRkJBQ0VDQTBBZ0FpQU5Ua1VFUUNBUUlBSkJBWFJxSWdZZ0VUY0FHQ0FHSUJFM0FCQWdCaUFSTndBSUlBWWdFVGNBQUNBQ1FSQnFJUUlNQVFzTElBRkJBV29oQVNBRUlBMXFJUVFNQUFzQUN5QUlRUUZxSVFnZ0JTQUhhaUVISUFVZ0RXd2dBR29oQUF3QUN3QUZJQU1nQWtFQ2RHb2lCMEZBYXlBQk5nSUFJQUpCQVdvaEFpQUhLQUlBSUFGcUlRRU1BUXNBQ3dBTElBOExJQWxCRUdva0FBdnlBZ0VHZnlNQVFTQnJJZ1VrQUNBRUtBSUFJUVlnQlVFTWFpQUNJQU1RRFNJRFFZaC9UUVJBSUFSQkJHb2hBaUFBSUFGcUlnbEJBMnNoQkVFQUlBWkJFSFpyUVI5eElRTURRQ0FGUVF4cUVBOGdBQ0FFVDNKRkJFQWdBaUFGS0FJTUlnWWdCU2dDRUNJSGRDQURka0VCZEdvaUNDMEFBU0VLSUFBZ0NDMEFBRG9BQUNBQ0lBWWdCeUFLYWlJR2RDQURka0VCZEdvaUJ5MEFBQ0VJSUFVZ0JpQUhMUUFCYWpZQ0VDQUFJQWc2QUFFZ0FFRUNhaUVBREFFTEN3TkFJQVZCREdvUUR5RUhJQVVvQWd3aEJpQUZLQUlRSVFRZ0FDQUpUeUFIY2tVRVFDQUNJQVlnQkhRZ0EzWkJBWFJxSWdZdEFBQWhCeUFGSUFRZ0JpMEFBV28yQWhBZ0FDQUhPZ0FBSUFCQkFXb2hBQXdCQ3dzRFFDQUFJQWxQUlFSQUlBSWdCaUFFZENBRGRrRUJkR29pQnkwQUFTRUlJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdCQ0FJYWlFRURBRUxDMEZzUVd3Z0FTQUZLQUlVSUFVb0FoaEhHeUFFUVNCSEd5RURDeUFGUVNCcUpBQWdBd3ZQRkFFamZ5TUFRZEFBYXlJRkpBQkJiQ0VKQWtBZ0EwRUtTUTBBQWtBZ0F5QUNMd0FFSWdjZ0FpOEFBQ0lJSUFJdkFBSWlEV3BxUVFacUlneEpEUUFnQkM4QkFpRUdJQVZCUEdvZ0FrRUdhaUlDSUFnUURTSUpRWWgvU3cwQklBVkJLR29nQWlBSWFpSUNJQTBRRFNJSlFZaC9TdzBCSUFWQkZHb2dBaUFOYWlJQ0lBY1FEU0lKUVloL1N3MEJJQVVnQWlBSGFpQURJQXhyRUEwaUNVR0lmMHNOQVNBRVFRUnFJUW9nQUNBQmFpSWZRUU5ySVNCQkFDQUdhMEVmY1NFTElBVW9BZ2doRVNBRktBSWNJUklnQlNnQ01DRVRJQVVvQWtRaEZDQUZLQUlFSVFrZ0JTZ0NHQ0VOSUFVb0Fpd2hEQ0FGS0FKQUlRWWdCU2dDRUNFaElBVW9BaVFoSWlBRktBSTRJU01nQlNnQ1RDRWtJQVVvQWdBaEZTQUZLQUlVSVJZZ0JTZ0NLQ0VYSUFVb0Fqd2hHRUVCSVE4Z0FDQUJRUU5xUVFKMklnUnFJZ01nQkdvaUFpQUVhaUlaSVFRZ0FpRUlJQU1oQndOQUlBOUJBWEZGSUFRZ0lFOXlSUVJBSUFBZ0NpQVlJQVowSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEdpQU9MUUFESVJBZ0J5QUtJQmNnREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnRGkwQUFpRWJJQTR0QUFNaER5QUlJQW9nRmlBTmRDQUxka0VDZEdvaURpOEJBRHNBQUNBT0xRQUNJUndnRGkwQUF5RWRJQVFnQ2lBVklBbDBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloSGlBT0xRQURJUTRnQUNBUWFpSWxJQW9nR0NBR0lCcHFJZ1owSUF0MlFRSjBhaUlRTHdFQU93QUFJQkF0QUFJZ0VDMEFBeUVtSUFjZ0Qyb2lKeUFLSUJjZ0RDQWJhaUlhZENBTGRrRUNkR29pQnk4QkFEc0FBQ0FITFFBQ0lRd2dCeTBBQXlFUUlBZ2dIV29pR3lBS0lCWWdEU0FjYWlJUGRDQUxka0VDZEdvaUNDOEJBRHNBQUNBSUxRQUNJUTBnQ0MwQUF5RWNJQVFnRG1vaUhTQUtJQlVnQ1NBZWFpSU9kQ0FMZGtFQ2RHb2lDUzhCQURzQUFDQUdhaUVBUVFNaEJ3Si9JQlFnSkVrRVFDQUFJUVpCQXd3QkN5QUFRUWR4SVFZZ0ZDQUFRUU4yYXlJVUtBQUFJUmhCQUFzZ0NTMEFBeUVlSUFrdEFBSWhDQ0FNSUJwcUlRQWdFeUFqU1FSL0lBQUZJQk1nQUVFRGRtc2lFeWdBQUNFWFFRQWhCeUFBUVFkeEN5RU1JQTBnRDJvaEFDQUhjaUVKUVFNaER3Si9JQklnSWtrRVFDQUFJUTFCQXd3QkN5QUFRUWR4SVEwZ0VpQUFRUU4yYXlJU0tBQUFJUlpCQUFzZ0NDQU9haUVBSUFseUlCRWdJVWtFZnlBQUJTQVJJQUJCQTNackloRW9BQUFoRlVFQUlROGdBRUVIY1FzaENTQWxJQ1pxSVFBZ0VDQW5haUVISUJzZ0hHb2hDQ0FkSUI1cUlRUWdEM0pGSVE4TUFRc0xJQVVnRERZQ0xDQUZJQVkyQWtBZ0JTQU5OZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFJZ0Iwa2dBQ0FEUzNJTkFFRnNJUWtnQ0NBWlN3MEJJQU5CQTJzaENRTkFJQVZCUEdvUUQwVWdBQ0FKU1hFRVFDQUFJQW9nQlNnQ1BDSU5JQVVvQWtBaURIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0FDQU9MUUFEYWlJR0lBb2dEU0FNSUE0dEFBSnFJZ0IwSUF0MlFRSjBhaUlNTHdFQU93QUFJQVVnQUNBTUxRQUNhallDUUNBR0lBd3RBQU5xSVFBTUFRVWdBMEVDYXlFTUEwQWdCVUU4YWhBUElRWWdCU2dDUENFTklBVW9Ba0FoQ1NBQUlBeExJQVp5UlFSQUlBQWdDaUFOSUFsMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0NTQUdMUUFDYWpZQ1FDQUFJQVl0QUFOcUlRQU1BUXNMQTBBZ0FDQU1TMFVFUUNBQUlBb2dEU0FKZENBTGRrRUNkR29pQmk4QkFEc0FBQ0FBSUFZdEFBTnFJUUFnQ1NBR0xRQUNhaUVKREFFTEN3SkFJQUFnQTA4TkFDQUFJQW9nRFNBSmRDQUxkaUlBUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUpJQU10QUFKcUlRa01BUXNnQ1VFZlN3MEFRU0FnQ1NBS0lBQkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRa0xJQUpCQTJzaERBTkFJQVZCS0dvUUQwVWdCeUFNU1hFRVFDQUhJQW9nQlNnQ0tDSUdJQVVvQWl3aUFIUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0J5QU5MUUFEYWlJRElBb2dCaUFBSUEwdEFBSnFJZ0IwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQUNBR0xRQUNhallDTENBRElBWXRBQU5xSVFjTUFRVWdBa0VDYXlFR0EwQWdCVUVvYWhBUElRTWdCU2dDS0NFTUlBVW9BaXdoQUNBR0lBZEpJQU55UlFSQUlBY2dDaUFNSUFCMElBdDJRUUowYWlJREx3RUFPd0FBSUFVZ0FDQURMUUFDYWpZQ0xDQUhJQU10QUFOcUlRY01BUXNMQTBBZ0JpQUhTVVVFUUNBSElBb2dEQ0FBZENBTGRrRUNkR29pQXk4QkFEc0FBQ0FISUFNdEFBTnFJUWNnQUNBRExRQUNhaUVBREFFTEN3SkFJQUlnQjAwTkFDQUhJQW9nRENBQWRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUFJQU10QUFKcUlRQU1BUXNnQUVFZlN3MEFRU0FnQUNBS0lBSkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRQUxJQmxCQTJzaERBTkFJQVZCRkdvUUQwVWdDQ0FNU1hFRVFDQUlJQW9nQlNnQ0ZDSUdJQVVvQWhnaUFuUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0NDQU5MUUFEYWlJRElBb2dCaUFDSUEwdEFBSnFJZ0owSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQWlBR0xRQUNhallDR0NBRElBWXRBQU5xSVFnTUFRVWdHVUVDYXlFREEwQWdCVUVVYWhBUElRSWdCU2dDRkNFR0lBVW9BaGdoQnlBRElBaEpJQUp5UlFSQUlBZ2dDaUFHSUFkMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFVZ0J5QUNMUUFDYWpZQ0dDQUlJQUl0QUFOcUlRZ01BUXNMQTBBZ0F5QUlTVVVFUUNBSUlBb2dCaUFIZENBTGRrRUNkR29pQWk4QkFEc0FBQ0FJSUFJdEFBTnFJUWdnQnlBQ0xRQUNhaUVIREFFTEN3SkFJQWdnR1U4TkFDQUlJQW9nQmlBSGRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUhJQU10QUFKcUlRY01BUXNnQjBFZlN3MEFRU0FnQnlBS0lBSkJBblJxTFFBQ2FpSUNJQUpCSUU4YklRY0xBMEFnQlJBUFJTQUVJQ0JKY1FSQUlBUWdDaUFGS0FJQUlnWWdCU2dDQkNJQ2RDQUxka0VDZEdvaURDOEJBRHNBQUNBRUlBd3RBQU5xSWdNZ0NpQUdJQUlnREMwQUFtb2lBblFnQzNaQkFuUnFJZ1F2QVFBN0FBQWdCU0FDSUFRdEFBSnFOZ0lFSUFNZ0JDMEFBMm9oQkF3QkJTQWZRUUpySVFNRFFDQUZFQThoQWlBRktBSUFJUVlnQlNnQ0JDRUlJQU1nQkVrZ0FuSkZCRUFnQkNBS0lBWWdDSFFnQzNaQkFuUnFJZ0l2QVFBN0FBQWdCU0FJSUFJdEFBSnFOZ0lFSUFRZ0FpMEFBMm9oQkF3QkN3c0RRQ0FESUFSSlJRUkFJQVFnQ2lBR0lBaDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBUWdBaTBBQTJvaEJDQUlJQUl0QUFKcUlRZ01BUXNMQWtBZ0JDQWZUdzBBSUFRZ0NpQUdJQWgwSUF0MklnSkJBblJxSWdNdEFBQTZBQUFnQXkwQUEwRUJSZ1JBSUFnZ0F5MEFBbW9oQ0F3QkN5QUlRUjlMRFFCQklDQUlJQW9nQWtFQ2RHb3RBQUpxSWdJZ0FrRWdUeHNoQ0F0QmJFRnNRV3hCYkVGc1FXeEJiRUZzSUFFZ0NFRWdSeHNnQlNnQ0NDQUZLQUlNUnhzZ0IwRWdSeHNnQlNnQ0hDQUZLQUlnUnhzZ0FFRWdSeHNnQlNnQ01DQUZLQUkwUnhzZ0NVRWdSeHNnQlNnQ1JDQUZLQUpJUnhzaENRd0pDd0FMQUFzQUN3QUxBQXNBQ3dBTEFBdEJiQ0VKQ3lBRlFkQUFhaVFBSUFrTDdCQUJIbjhqQUVIUUFHc2lCU1FBUVd3aENRSkFJQU5CQ2trTkFBSkFJQU1nQWk4QUJDSUdJQUl2QUFBaUJ5QUNMd0FDSWdocWFrRUdhaUlPU1EwQUlBUXZBUUloRHlBRlFUeHFJQUpCQm1vaUFpQUhFQTBpQ1VHSWYwc05BU0FGUVNocUlBSWdCMm9pQWlBSUVBMGlDVUdJZjBzTkFTQUZRUlJxSUFJZ0NHb2lBaUFHRUEwaUNVR0lmMHNOQVNBRklBSWdCbW9nQXlBT2F4QU5JZ2xCaUg5TERRRWdCRUVFYWlFS0lBQWdBV29pSEVFRGF5RWRRUUFnRDJ0QkgzRWhDeUFGS0FJSUlSRWdCU2dDSENFU0lBVW9BakFoRXlBRktBSkVJUlFnQlNnQ0JDRUpJQVVvQWhnaEJpQUZLQUlzSVFjZ0JTZ0NRQ0VJSUFVb0FoQWhIaUFGS0FJa0lSOGdCU2dDT0NFZ0lBVW9Ba3doSVNBRktBSUFJUlVnQlNnQ0ZDRVdJQVVvQWlnaEZ5QUZLQUk4SVJoQkFTRU5JQUFnQVVFRGFrRUNkaUlDYWlJT0lBSnFJZzhnQW1vaUdTRUVJQThoQWlBT0lRTURRQ0FOUlNBRUlCMVBja1VFUUNBS0lCZ2dDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBQWdDaUFYSUFkMElBdDJRUUYwYWlJTUxRQUJJUkFnQXlBTUxRQUFPZ0FBSUFvZ0ZpQUdkQ0FMZGtFQmRHb2lEQzBBQVNFYUlBSWdEQzBBQURvQUFDQUtJQlVnQ1hRZ0MzWkJBWFJxSWd3dEFBRWhHeUFFSUF3dEFBQTZBQUFnQ2lBWUlBZ2dEV29pQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUVnQ2lBWElBY2dFR29pQjNRZ0MzWkJBWFJxSWd3dEFBRWhFQ0FESUF3dEFBQTZBQUVnQ2lBV0lBWWdHbW9pREhRZ0MzWkJBWFJxSWdZdEFBRWhHaUFDSUFZdEFBQTZBQUVnQ2lBVklBa2dHMm9pRzNRZ0MzWkJBWFJxSWdrdEFBRWhJaUFFSUFrdEFBQTZBQUVnQ0NBTmFpRUdRUU1oQ1FKL0lCUWdJVWtFUUVFRElRMGdCZ3dCQ3lBVUlBWkJBM1pySWhRb0FBQWhHRUVBSVEwZ0JrRUhjUXNoQ0NBSElCQnFJUVlnRXlBZ1NRUi9JQVlGSUJNZ0JrRURkbXNpRXlnQUFDRVhRUUFoQ1NBR1FRZHhDeUVISUF3Z0dtb2hEQ0FKSUExeUlSQkJBeUVOQW44Z0VpQWZTUVJBSUF3aEJrRUREQUVMSUF4QkIzRWhCaUFTSUF4QkEzWnJJaElvQUFBaEZrRUFDeUFiSUNKcUlRd2dFSEloRUNBUklCNUpCSDhnREFVZ0VTQU1RUU4yYXlJUktBQUFJUlZCQUNFTklBeEJCM0VMSVFrZ0JFRUNhaUVFSUFKQkFtb2hBaUFEUVFKcUlRTWdBRUVDYWlFQUlBMGdFSEpGSVEwTUFRc0xJQVVnQnpZQ0xDQUZJQWcyQWtBZ0JTQUdOZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFBZ0Rrc2dBeUFQUzNJTkFFRnNJUWtnQWlBWlN3MEJJQTVCQTJzaENRTkFJQVZCUEdvUUR5QUFJQWxQY2tVRVFDQUtJQVVvQWp3aUJpQUZLQUpBSWdkMElBdDJRUUYwYWlJSUxRQUJJUXdnQUNBSUxRQUFPZ0FBSUFvZ0JpQUhJQXhxSWdaMElBdDJRUUYwYWlJSExRQUFJUWdnQlNBR0lBY3RBQUZxTmdKQUlBQWdDRG9BQVNBQVFRSnFJUUFNQVFzTEEwQWdCVUU4YWhBUElRY2dCU2dDUENFR0lBVW9Ba0FoQ1NBQUlBNVBJQWR5UlFSQUlBb2dCaUFKZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQ1NBR0xRQUJhallDUUNBQUlBYzZBQUFnQUVFQmFpRUFEQUVMQ3dOQUlBQWdEazlGQkVBZ0NpQUdJQWwwSUF0MlFRRjBhaUlITFFBQklBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0NXb2hDUXdCQ3dzZ0QwRURheUVBQTBBZ0JVRW9haEFQSUFBZ0EwMXlSUVJBSUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQURJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaXdnQXlBSU9nQUJJQU5CQW1vaEF3d0JDd3NEUUNBRlFTaHFFQThoQnlBRktBSW9JUVlnQlNnQ0xDRUFJQU1nRDA4Z0IzSkZCRUFnQ2lBR0lBQjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQUFJQVl0QUFGcU5nSXNJQU1nQnpvQUFDQURRUUZxSVFNTUFRc0xBMEFnQXlBUFQwVUVRQ0FLSUFZZ0FIUWdDM1pCQVhScUlnY3RBQUVoQ0NBRElBY3RBQUE2QUFBZ0EwRUJhaUVESUFBZ0NHb2hBQXdCQ3dzZ0dVRURheUVEQTBBZ0JVRVVhaEFQSUFJZ0EwOXlSUVJBSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQUNJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaGdnQWlBSU9nQUJJQUpCQW1vaEFnd0JDd3NEUUNBRlFSUnFFQThoQnlBRktBSVVJUVlnQlNnQ0dDRURJQUlnR1U4Z0IzSkZCRUFnQ2lBR0lBTjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQURJQVl0QUFGcU5nSVlJQUlnQnpvQUFDQUNRUUZxSVFJTUFRc0xBMEFnQWlBWlQwVUVRQ0FLSUFZZ0EzUWdDM1pCQVhScUlnY3RBQUVoQ0NBQ0lBY3RBQUE2QUFBZ0FrRUJhaUVDSUFNZ0NHb2hBd3dCQ3dzRFFDQUZFQThnQkNBZFQzSkZCRUFnQ2lBRktBSUFJZ0lnQlNnQ0JDSUdkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUtJQUlnQmlBSWFpSUNkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdBaUFHTFFBQmFqWUNCQ0FFSUFjNkFBRWdCRUVDYWlFRURBRUxDd05BSUFVUUR5RUhJQVVvQWdBaEJpQUZLQUlFSVFJZ0JDQWNUeUFIY2tVRVFDQUtJQVlnQW5RZ0MzWkJBWFJxSWdZdEFBQWhCeUFGSUFJZ0JpMEFBV28yQWdRZ0JDQUhPZ0FBSUFSQkFXb2hCQXdCQ3dzRFFDQUVJQnhQUlFSQUlBb2dCaUFDZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FFUVFGcUlRUWdBaUFJYWlFQ0RBRUxDMEZzUVd4QmJFRnNRV3hCYkVGc1FXd2dBU0FDUVNCSEd5QUZLQUlJSUFVb0FneEhHeUFEUVNCSEd5QUZLQUljSUFVb0FpQkhHeUFBUVNCSEd5QUZLQUl3SUFVb0FqUkhHeUFKUVNCSEd5QUZLQUpFSUFVb0FraEhHeUVKREFFTFFXd2hDUXNnQlVIUUFHb2tBQ0FKQzFnQkEzOENRQ0FBS0FLUTZ3RWlBVVVOQUNBQktBSUFJQUZCdE5VQmFpZ0NBQ0lDSUFGQnVOVUJhaWdDQUNJREVCTWdBZ1JBSUFNZ0FTQUNFUUlBREFFTElBRVFCZ3NnQUVFQU5nS2c2d0VnQUVJQU53T1E2d0VMNlFNQ0JIOENmaUFBUVFCQktCQURJUVFnQWtFQlFRVWdBeHNpQUVrRVFDQUFEd3NnQVVVRVFFRi9Ed3RCQVNFR0FrQUNRQ0FEUVFGR0RRQWdBeUVHSUFFb0FBQWlCVUdvNnI1cFJnMEFRWFloQXlBRlFYQnhRZERVdE1JQlJ3MEJRUWdoQXlBQ1FRaEpEUUVnQVRVQUJDRUlJQVJCQVRZQ0ZDQUVJQWczQXdCQkFBOExJQUVnQWlBR0VCb2lBeUFDU3cwQUlBUWdBellDR0VGeUlRTWdBQ0FCYWlJRlFRRnJMUUFBSWdKQkNIRU5BQ0FDUVNCeElnWkZCRUJCY0NFRElBVXRBQUFpQlVHbkFVc05BU0FGUVFkeHJVSUJJQVZCQTNaQkNtcXRoaUlJUWdPSWZpQUlmQ0VKSUFCQkFXb2hBQXNnQWtFR2RpRUZJQUpCQW5aQkFDRURBa0FDUUFKQUFrQWdBa0VEY1VFQmF3NERBQUVDQXdzZ0FDQUJhaTBBQUNFRElBQkJBV29oQUF3Q0N5QUFJQUZxTHdBQUlRTWdBRUVDYWlFQURBRUxJQUFnQVdvb0FBQWhBeUFBUVFScUlRQUxRUUZ4SVFJQ2ZnSkFBa0FDUUFKQUlBVkJBV3NPQXdFQ0F3QUxRbjhnQmtVTkF4b2dBQ0FCYWpFQUFBd0RDeUFBSUFGcU13QUFRb0FDZkF3Q0N5QUFJQUZxTlFBQURBRUxJQUFnQVdvcEFBQUxJUWdnQkNBQ05nSWdJQVFnQXpZQ0hDQUVJQWczQXdCQkFDRURJQVJCQURZQ0ZDQUVJQWdnQ1NBR0d5SUlOd01JSUFSQ2dJQUlJQWdnQ0VLQWdBaGFHejRDRUFzZ0F3dGZBUUYvUWJoL0lRTWdBVUVCUVFVZ0Foc2lBazhFZnlBQUlBSnFRUUZyTFFBQUlnQkJBM0ZCQW5SQm9CNXFLQUlBSUFKcUlBQkJCSFpCREhGQnNCNXFLQUlBYWlBQVFTQnhJZ0ZGYWlBQlFRVjJJQUJCd0FCSmNXb0ZRYmgvQ3dzTUFDQUFJQUVnQWtFQUVCa0xsd01DQlg4Q2ZpTUFRVUJxSWdRa0FBSkFBMEFnQVVFRlR3UkFBa0FnQUNnQUFFRndjVUhRMUxUQ0FVWUVRRUorSVFjZ0FVRUlTUTBFSUFBb0FBUWlBa0YzU3cwRUlBSkJDR29pQXlBQlN3MEVJQUpCZ1g5SkRRRU1CQXNnQkVFWWFpQUFJQUVRR3lFQ1FuNGdCQ2tER0VJQUlBUW9BaXhCQVVjYklBSWJJZ2RDZlZZTkF5QUhJQWg4SWdnZ0IxUkNmaUVIRFFNQ1FBSkFJQUZCQ0VrTkFDQUFLQUFBUVhCeFFkRFV0TUlCUncwQUlBQW9BQVFpQWtGM1N3MEZRYmgvSUFKQkNHb2lBaUFCSUFKSkd5RUREQUVMSUFSQkdHb2dBQ0FCRUJzaUFrR0lmMHNFUUNBQ0lRTU1BUXRCdUg4aEF5QUNEUUFnQVNBRUtBSXdJZ0pySVFVZ0FDQUNhaUVHQTBBZ0JpQUZJQVJCREdvUUhTSURRWWgvU3cwQklBTkJBMm9pQWlBRlN3UkFRYmgvSVFNTUFnc2dCU0FDYXlFRklBSWdCbW9oQmlBRUtBSVFSUTBBQ3lBRUtBSTRCSDlCdUg4aEF5QUZRUVJKRFFFZ0JrRUVhZ1VnQmdzZ0FHc2hBd3NnQTBHSWYwc05Bd3NnQVNBRGF5RUJJQUFnQTJvaEFBd0JDd3RDZmlBSUlBRWJJUWNMSUFSQlFHc2tBQ0FIQzJRQkFYOUJ1SDhoQXdKQUlBRkJBMGtOQUNBQUxRQUNJUUVnQWlBQUx3QUFJZ0JCQVhFMkFnUWdBaUFBUVFGMlFRTnhJZ00yQWdBZ0FpQUFJQUZCRUhSeVFRTjJJZ0EyQWdnQ1FBSkFJQU5CQVdzT0F3SUJBQUVMUVd3UEN5QUFJUU1MSUFNTFJBRUNmeUFCSUFJb0FnUWlBeUFCS0FJRWFpSUVOZ0lFSUFBZ0EwRUNkRUdnSFdvb0FnQWdBU2dDQUVFQUlBUnJkbkUyQWdBZ0FSQVBHaUFBSUFKQkNHbzJBZ1FMemdFQkJuOUJ1bjhoQ2dKQUlBSW9BZ1FpQ0NBQ0tBSUFJZ2xxSWcwZ0FTQUFhMHNOQUVGc0lRb2dDU0FFSUFNb0FnQWlDMnRMRFFBZ0FDQUphaUlFSUFJb0FnZ2lER3NoQWlBQUlBRkJJR3NpQUNBTElBbEJBQkFnSUFNZ0NTQUxhallDQUFKQUFrQWdCQ0FGYXlBTVR3UkFJQUloQlF3QkN5QU1JQVFnQm10TERRSWdCeUFISUFJZ0JXc2lBbW9pQVNBSWFrOEVRQ0FFSUFFZ0NCQUtHZ3dDQ3lBQ0lBaHFJUWdnQkNBQlFRQWdBbXNRQ2lBQ2F5RUVDeUFFSUFBZ0JTQUlRUUVRSUFzZ0RTRUtDeUFLQzhjRUFRSi9JQUFnQTJvaEJnSkFJQU5CQjB3RVFBTkFJQUFnQms4TkFpQUFJQUl0QUFBNkFBQWdBRUVCYWlFQUlBSkJBV29oQWd3QUN3QUxJQVJCQVVZRVFBSkFJQUFnQW1zaUJVRUhUUVJBSUFBZ0FpMEFBRG9BQUNBQUlBSXRBQUU2QUFFZ0FDQUNMUUFDT2dBQ0lBQWdBaTBBQXpvQUF5QUFJQUlnQlVFQ2RDSUZRY0FlYWlnQ0FHb2lBaWdBQURZQUJDQUNJQVZCNEI1cUtBSUFheUVDREFFTElBQWdBaWtBQURjQUFBc2dBa0VJYWlFQ0lBQkJDR29oQUFzZ0FTQUdUd1JBSUFBZ0Eyb2hBU0FFUVFGSElBQWdBbXRCRDBweVJRUkFBMEFnQUNBQ0tRQUFOd0FBSUFKQkNHb2hBaUFBUVFocUlnQWdBVWtOQUF3REN3QUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQTBFUlNRMEJJQUJCRUdvaEFBTkFJQUFnQWlrQUVEY0FBQ0FBSUFJcEFCZzNBQWdnQUNBQ0tRQWdOd0FRSUFBZ0Fpa0FLRGNBR0NBQ1FTQnFJUUlnQUVFZ2FpSUFJQUZKRFFBTERBRUxBa0FnQUNBQlN3UkFJQUFoQVF3QkN5QUJJQUJySVFVQ1FDQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUlBSWhBd05BSUFBZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQUVFSWFpSUFJQUZKRFFBTERBRUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQlVFUlNBMEFJQUJCRUdvaEFDQUNJUU1EUUNBQUlBTXBBQkEzQUFBZ0FDQURLUUFZTndBSUlBQWdBeWtBSURjQUVDQUFJQU1wQUNnM0FCZ2dBMEVnYWlFRElBQkJJR29pQUNBQlNRMEFDd3NnQWlBRmFpRUNDd05BSUFFZ0JrOE5BU0FCSUFJdEFBQTZBQUFnQVVFQmFpRUJJQUpCQVdvaEFnd0FDd0FMQzY0SEFnVi9BWDRqQUVHQUFXc2lFU1FBSUJFZ0F6WUNmRUYvSVE4Q1FBSkFBa0FDUUFKQUlBSU9CQUVBQXdJRUN5QUdSUVJBUWJoL0lROE1CQXRCYkNFUElBVXRBQUFpQWlBRFN3MERJQWdnQWtFQ2RDSUNhaWdDQUNFRElBSWdCMm9vQWdBaEFpQUFRUUE2QUFzZ0FFSUFOd0lBSUFBZ0FqWUNEQ0FBSUFNNkFBb2dBRUVBT3dFSUlBRWdBRFlDQUVFQklROE1Bd3NnQVNBSk5nSUFRUUFoRHd3Q0N5QUtSUVJBUVd3aER3d0NDMEVBSVE4Z0MwVWdERUVaU0hJTkFVRUlJQVIwUVFocUlRQkJBQ0VEQTBBZ0FDQURUUTBDSUFOQlFHc2hBd3dBQ3dBTFFXd2hEeUFSSUJGQi9BQnFJQkZCK0FCcUlBVWdCaEFNSWdOQmlIOUxEUUFnRVNnQ2VDSUNJQVJMRFFBZ0VTZ0NmRUVCYWlFSklBQkJDR29oQzBHQWdBSWdBblJCRUhVaEJVRUJJUkJCQVNBQ2RDSVBRUUZySWdvaEVnTkFJQWtnRGtjRVFBSkFJQkVnRGtFQmRDSUVhaThCQUNJTVFmLy9BMFlFUUNBTElCSkJBM1JxSUE0MkFnUWdFa0VCYXlFU1FRRWhEQXdCQ3lBUVFRQWdCU0FNd1VvYklSQUxJQVFnRFdvZ0REc0JBQ0FPUVFGcUlRNE1BUXNMSUFBZ0FqWUNCQ0FBSUJBMkFnQUNRQ0FLSUJKR0JFQWdEVUhxQUdvaEJrRUFJUkJCQUNFTUEwQWdDU0FRUmdSQUlBOUJBM1lnRDBFQmRtcEJBMm9pQlVFQmRDRUVRUUFoREVFQUlSSURRRUVBSVE0Z0R5QVNUUTBFQTBBZ0RrRUNSd1JBSUFzZ0JTQU9iQ0FNYWlBS2NVRURkR29nQmlBT0lCSnFhaTBBQURZQ0JDQU9RUUZxSVE0TUFRc0xJQkpCQW1vaEVpQUVJQXhxSUFweElRd01BQXNBQlNBUklCQkJBWFJxTGdFQUlRVWdCaUFNYWlJRUlCTTNBQUJCQ0NFT0EwQWdCU0FPU2dSQUlBUWdEbW9nRXpjQUFDQU9RUWhxSVE0TUFRc0xJQk5DZ1lLRWlKQ2d3SUFCZkNFVElCQkJBV29oRUNBRklBeHFJUXdNQVFzQUN3QUxJQTlCQTNZZ0QwRUJkbXBCQTJvaEJVRUFJUkJCQUNFT0EwQWdDU0FRUmcwQlFRQWhEQ0FSSUJCQkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FNUndSQUlBc2dEa0VEZEdvZ0VEWUNCQU5BSUFVZ0Rtb2dDbkVpRGlBU1N3MEFDeUFNUVFGcUlRd01BUXNMSUJCQkFXb2hFQXdBQ3dBTElBSkJBV29oQlVFQUlRd0RRQ0FNSUE5SEJFQWdEU0FMSUF4QkEzUnFJZ2tvQWdRaUJFRUJkR29pQWlBQ0x3RUFJZ1pCQVdvN0FRQWdDU0FGSUFablFXQnphaUlDT2dBRElBa2dCaUFDZENBUGF6c0JBQ0FKSUFnZ0JFRUNkQ0lDYWlnQ0FEb0FBaUFKSUFJZ0Iyb29BZ0EyQWdRZ0RFRUJhaUVNREFFTEN5QUJJQUEyQWdBZ0F5RVBDeUFSUVlBQmFpUUFJQThMN1ZvQ08zOEdmaU1BUWVBQmF5SUVKQUFDUUVHdzdBa1FCU0lGUlFSQVFVQWhCd3dCQ3lBRlFnQTNBdlRxQVNBRlFRQTJBc1RyQVNBRlFRQTJBclRyQVNBRlFnQTNBcHpyQVNBRlFRQTJBcmpwQVNBRlFRQTJBcXpzQ1NBRlFnQTNBdFRyQVNBRlFnQTNBcXpyQVNBRlFnQTNBNGpyQVNBRlFnQTNBdVRxQVNBRlFnQTNBdVRyQVNBRlFZR0FnTUFBTmdLODZ3RWdCVUlBTndLazZ3RWdCVUg4NmdGcVFRQTJBZ0FnQlVHUTZ3RnFRZ0EzQXdBZ0JSQVlJQVZCck5VQmFpRVVJQVZCK09zQmFpRWNJQVZCc09vQmFpRWlJQVZCb0RCcUlTb2dCVUdZSUdvaEt5QUZRYWpRQUdvaEhpQUZRUkJxSVN3Z0JVRUlhaUVvSUFWQkJHb2hMU0FGUWNEcEFXb2hLU0FGUVlqckFXb2dCRUdVQVdvaEx5QUVRWXdCYWlFd0lBUkJoQUZxSVRFZ0JFSGNBR29oTWlBRVFkUUFhaUV6SUFSQnpBQnFJVFFnQUNFZEFrQUNRQUpBQWtBQ1FBTkFRUUZCQlNBRktBTGs2Z0ViSVFZQ1FBTkFJQU1nQmtrTkFTQUNLQUFBUVhCeFFkRFV0TUlCUmdSQVFiaC9JUWNnQTBFSVNRMElJQUlvQUFRaURrRjNTd1JBUVhJaEJ3d0pDeUFESUE1QkNHb2lDVWtOQ0NBT1FZQi9Td1JBSUFraEJ3d0pDeUFESUFscklRTWdBaUFKYWlFQ0RBRUxDeUFGUWdBM0FxenBBU0FGUWdBM0EranBBU0FGUVFBMkFwanJBU0FGUWdBM0E0RHFBU0FGUWdNM0EvanBBU0FGUWJUcEFXcENBRGNDQUNBRlFmRHBBV3BDQURjREFDQUZRYWpRQUdvaUNVR01nSURnQURZQ0FDQUZRYXpRQVdwQjRCSXBBZ0EzQWdBZ0JVRzAwQUZxUWVnU0tBSUFOZ0lBSUFVZ0JVRVFhallDQUNBRklBVkJvREJxTmdJRUlBVWdCVUdZSUdvMkFnZ2dCU0FKTmdJTUlBVkJBVUVGSUFVb0F1VHFBUnMyQXJ6cEFRSkFJQUZGRFFBZ0JTZ0NyT2tCSWdrZ0hVWU5BQ0FGSUFrMkFyanBBU0FGSUIwMkFxenBBU0FGS0FLdzZRRWhEaUFGSUIwMkFyRHBBU0FGSUIwZ0RpQUphMm8yQXJUcEFRdEJ1SDhoQ1NBRFFRVkJDU0FGS0FMazZnRWlCaHRKRFFVZ0FrRUJRUVVnQmhzZ0JoQWFJZzVCaUg5TEJFQWdEaUVKREFVTElBTWdEa0VEYWtrTkJTQXBJQUlnRGlBR0VCa2lCa0dJZjBzRVFDQUdJUWtNQlFzZ0JnMEZBa0FDUUNBRktBS282d0ZCQVVjTkFDQUZLQUtrNndFaUNVVU5BQ0FGS0FLVTZ3RkZEUUFnQ1NnQ0JFRUJheUlISUFVb0F0enBBU0lLclVLSGxhK3ZtTGJlbTU1L2ZrTEp6OW15OGVXNjZpZUZRaGVKUXMvVzA3N1N4NnZaUW41QytmUGQ4Wm4ybWFzV2ZDSS9RaUdJSUQrRlFzL1cwNzdTeDZ2WlFuNGlQMElkaUNBL2hVTDU4OTN4bWZhWnF4WitJajlDSUlnZ1A0V25jU0VHSUFrb0FnQWhGUU5BUVFBaENBSkFJQlVnQmtFQ2RHb29BZ0FpQ1VVTkFDQUpLQUlJUVFoSkRRQWdDU2dDQkNJU0tBQUFRYmZJd3VGK1J3MEFJQklvQUFRaENBc2dDQ0FLUndSQUlBWWdCM0ZCQVdvaEJpQUlEUUVMQ3lBSlJRMEFJQVVRR0NBRlFYODJBcURyQVNBRklBazJBcFRyQVNBRklBVW9BdHpwQVNJSU5nS1k2d0VNQVFzZ0JTZ0MzT2tCSVFnTEFrQWdDRVVOQUNBRktBS1k2d0VnQ0VZTkFFRmdJUWtNQmdzQ1FDQUZLQUxnNlFFRVFDQUZJQVVvQXVqcUFTSUpSVFlDN09vQklBa05BU0FGUXZucTBORG55YUhrNFFBM0E2anFBU0FGUWdBM0E2RHFBU0FGUXMvVzA3N1N4NnZaUWpjRG1Pb0JJQVZDMXV1Qzd1cjlpZlhnQURjRGtPb0JJQVZDQURjRGlPb0JJQ0pCQUVFb0VBTWFEQUVMSUFWQkFEWUM3T29CQ3lBQklCMXFJU1VnQlNBRktRUG82UUVnRHExOE53UG82UUVnQXlBT2F5RURJQUlnRG1vaEFpQWRJUTREUUNBQ0lBTWdCRUVzYWhBZEloVkJpSDlMQkVBZ0ZTRUpEQVlMSUFOQkEyc2lOU0FWU1EwRUlBSkJBMm9oRzBGc0lRa0NRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBRUtBSXNEZ01DQVFBVkN5QVZRZi8vQjBzTkV5QVZRUU5KRFJJZ0JTa0R5T2tCSVQ4Q1FBSkFJQnN0QUFBaUNVRURjU0lhUVFGckRnTUdBUUFIQ3lBRktBS0E2Z0VOQUVGaUlRa01GUXNnRlVFRlNRMFNJQnNvQUFBaEF3Si9Ba0FDUUFKQUlBbEJBblpCQTNFaUNVRUNhdzRDQVFJQUN5QUpRUUJISVFjZ0EwRUVka0gvQjNFaEMwRURJUVlnQTBFT2RrSC9CM0VNQWd0QkJDRUdJQU5CQkhaQi8vOEFjU0VMUVFFaEJ5QURRUkoyREFFTElBTkJCSFpCLy84UGNTSUxRWUNBQ0VzTkUwRUJJUWRCQlNFR0lBSXRBQWRCQ25RZ0EwRVdkbklMSWdnZ0Jtb2lDU0FWU3cwU0FrQWdDMEdCQmtrTkFDQUZLQUtjNndGRkRRQkJBQ0VEQTBBZ0EwR0RnQUZMRFFFZ0EwRkFheUVEREFBTEFBc2dCaUFiYWlFUElCcEJBMGNOQmlBRktBSU1JZ0l0QUFGQkNIUWhBeUFIRFFjZ0EwVU5DQ0FFUWZBQWFpQVBJQWdRRFNJRFFZaC9TdzBKSUFKQkJHb2hCaUFMSUJ4cUloSkJBMnNoQ2tFQUlBSXZBUUpyUVI5eElRY2dIQ0VEQTBBZ0JFSHdBR29RRDBVZ0F5QUtTWEVFUUNBRElBWWdCQ2dDY0NJSUlBUW9BblFpRDNRZ0IzWkJBblJxSWdJdkFRQTdBQUFnQXlBQ0xRQURhaUlESUFZZ0NDQVBJQUl0QUFKcUlnaDBJQWQyUVFKMGFpSUNMd0VBT3dBQUlBUWdDQ0FDTFFBQ2FqWUNkQ0FESUFJdEFBTnFJUU1NQVFVZ0VrRUNheUVJQTBBZ0JFSHdBR29RRHlFUElBUW9BbkFoQ2lBRUtBSjBJUUlnQXlBSVN5QVBja1VFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pQ2k4QkFEc0FBQ0FFSUFJZ0NpMEFBbW8yQW5RZ0F5QUtMUUFEYWlFRERBRUxDd05BSUFNZ0NFMEVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lEeThCQURzQUFDQURJQTh0QUFOcUlRTWdBaUFQTFFBQ2FpRUNEQUVMQ3dKQUlBTWdFazhOQUNBRElBWWdDaUFDZENBSGRrRUNkR29pQXkwQUFEb0FBQ0FETFFBRFFRRkdCRUFnQWlBRExRQUNhaUVDREFFTElBSkJIMHNOQUVFZ0lBSWdBeTBBQW1vaUFpQUNRU0JQR3lFQ0MwRnNRV3dnQ3lBRUtBSjRJQVFvQW54SEd5QUNRU0JIR3lFRERBc0xBQXNBQ3lBRUtBSTBJZ0lnSlNBT2Ewc05DaUFPUlFSQVFRQWhDU0FDRFFJTURnc2dEaUFiTFFBQUlBSVFBeG9nQWlFSkRBd0xJQlVnSlNBT2Ewc05DU0FPRFFGQkFDRUpJQlZGRFF3TFFiWi9JUWtNRVFzZ0RpQWJJQlVRQWhvZ0ZTRUpEQW9MSUJ3Z0d3Si9Ba0FDUUFKQUlBbEJBblpCQTNGQkFXc09Bd0VBQWdBTElBbEJBM1loQTBFQkRBSUxJQnN2QUFCQkJIWWhBMEVDREFFTElCVkJCRWtORGlBQ0x3QURJQUl0QUFWQkVIUnlJZ0pCajRDQUFVc05EaUFDUVFSMklRTkJBd3NpQW1vdEFBQWdBMEVnYWhBRElRa2dCU0FETmdLQTZ3RWdCU0FKTmdMdzZnRWdBa0VCYWlFSkRBVUxJQlVDZndKQUFrQUNRQ0FKUVFKMlFRTnhRUUZyRGdNQkFBSUFDeUFKUVFOMklRTkJBUXdDQ3lBYkx3QUFRUVIySVFOQkFnd0JDeUFDTHdBRElBSXRBQVZCRUhSeVFRUjJJUU5CQXdzaUFpQURhaUlKUVNCcVNRUkFJQWtnRlVzTkRTQWNJQUlnRzJvZ0F4QUNJUUlnQlNBRE5nS0E2d0VnQlNBQ05nTHc2Z0VnQWlBRGFpSUNRZ0EzQUJnZ0FrSUFOd0FRSUFKQ0FEY0FDQ0FDUWdBM0FBQU1CUXNnQlNBRE5nS0E2d0VnQlNBQ0lCdHFOZ0x3NmdFTUJBc2dCMFVFUUNBZUlBOGdDQ0FVRUJRaUFrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGU0VEREFNTElBdEZJQWhGY2cwTElBdEJDSFlpQXlBSUlBdEpCSDhnQ0VFRWRDQUxiZ1ZCRHd0QkdHd2lBa0dNQ0dvb0FnQnNJQUpCaUFocUtBSUFhaUlHUVFOMklBWnFJQUpCZ0FocUtBSUFJQUpCaEFocUtBSUFJQU5zYWtrRVFDTUFRUkJySWhBa0FDQWVLQUlBSVFNZ0ZFSHdCR3BCQUVIc0FCQURJUVpCVkNFQ0FrQWdBMEgvQVhFaURFRU1TdzBBQWtBZ0ZFSGNDV29nQmlBUVFRaHFJQkJCREdvZ0R5QUlJQlJCM0F0cUloY1FDeUlTUVloL1N3MEFJQkFvQWd3aUJpQU1TdzBCSUJSQnFBVnFJUTBnRkVHa0JXb2hOaUFlUVFScUlSRWdBMEdBZ0lCNGNTRTNJQVpCQVdvaUV5RUNJQVloQXdOQUlBSWlCMEVCYXlFQ0lBTWlDa0VCYXlFRElCUWdDa0VDZEdvb0F2QUVSUTBBQzBFQklBY2dCMEVCVFJzaEZrRUFJUWRCQVNFQ0EwQWdBaUFXUndSQUlCUWdBa0VDZENJRGFpZ0M4QVFoR0NBRElBMXFJQWMyQWdBZ0FrRUJhaUVDSUFjZ0dHb2hCd3dCQ3dzZ0RTQUhOZ0lBUVFBaEFpQVFLQUlJSVFNRFFDQUNJQU5IQkVBZ0RTQUNJQlJxUWR3SmFpMEFBQ0lZUVFKMGFpSVpJQmtvQWdBaUdVRUJhallDQUNBVUlCbEJBWFJxSWhrZ0dEb0EzUVVnR1NBQ09nRGNCU0FDUVFGcUlRSU1BUXNMUVFBaEF5QU5RUUEyQWdBZ0RDQUdRWDl6YWlFR1FRRWhBZ05BSUFJZ0ZrY0VRQ0FVSUFKQkFuUnFJZzBnQXpZQ0FDQU5LQUx3QkNBQ0lBWnFkQ0FEYWlFRElBSkJBV29oQWd3QkN3c2dEQ0FUSUFwcklnWnJRUUZxSVFvZ0JpRURBMEFnQXlBS1NRUkFJQlFnQTBFMGJHb2hEVUVCSVFJRFFDQUNJQlpIQkVBZ0RTQUNRUUowSWhocUlCUWdHR29vQWdBZ0EzWTJBZ0FnQWtFQmFpRUNEQUVMQ3lBRFFRRnFJUU1NQVFzTElCY2dGRUUwRUFJaE9DQVVRWkFNYWlFNUlCTWdER3NoT2lBVVFkd0ZhaUVYUVFBaENnTkFBa0FDUUNBSElBcEhCRUJCQVNBTUlCTWdGeUFLUVFGMGFpSUNMUUFCSWcxcklnTnJJaGgwSVJrZ0FpMEFBQ0VXSURnZ0RVRUNkR29pSHlnQ0FDRUNJQVlnR0UwRVFDQTJRUUVnQXlBNmFpSU5JQTFCQVV3YklpQkJBblFpSkdvb0FnQWhEU0E1SUJRZ0EwRTBiR3BCTkJBQ0lTRWdEVUVCZENFbUlCRWdBa0VDZEdvaEl5QWdRUUZORFFJZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRWdJQ0VnSkdvb0FnQWhKRUVBSVFJRFFDQUNJQ1JHRFFNZ0l5QUNRUUowYWlBZ05nRUFJQUpCQVdvaEFnd0FDd0FMSUFJZ0FpQVphaUlOSUFJZ0RVc2JJUTBnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFREEwQWdBaUFOUmcwRElCRWdBa0VDZEdvZ0F6WUJBQ0FDUVFGcUlRSU1BQXNBQ3lBZUlBeEJFSFFnTjNJZ0RISkJnQUp5TmdJQURBTUxJQWNnRFdzaEpDQVhJQ1pxSVNaQkFDRU5BMEFnRFNBa1JnMEJRUUVnR0NBVElDWWdEVUVCZEdvaUp5MEFBU0lDYXlJN2EzUWlQQ0FoSUFKQkFuUnFJaUFvQWdBaUFtb2hQU0FESUR0cVFSQjBRWUNBL0FkeElDY3RBQUJCQ0hSeUlCWnlRWUNBZ0JCeUlTY0RRQ0FqSUFKQkFuUnFJQ2MyQVFBZ0FrRUJhaUlDSUQxSkRRQUxJQ0FnSUNnQ0FDQThhallDQUNBTlFRRnFJUTBNQUFzQUN5QWZJQjhvQWdBZ0dXbzJBZ0FnQ2tFQmFpRUtEQUFMQUFzZ0VpRUNDeUFRUVJCcUpBQWdBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRmlFRERBTUxJQjRnRHlBSUlCUVFGQ0lDUVloL1N5QUNJQWhQY2cwTElCd2dDeUFDSUE5cUlBZ2dBbXNnSGhBWElRTU1BZ3NnQXdSQUlCd2dDeUFQSUFnZ0FoQVdJUU1NQWdzZ0hDQUxJQThnQ0NBQ0VCY2hBd3dCQ3lBY0lBc2dEeUFJSUFJUUZTRURDeUFEUVloL1N3MElJQVVnQ3pZQ2dPc0JJQVVnSERZQzhPb0JJQVZCQVRZQ2dPb0JJQnBCQWtZRVFDQUZJQjQyQWd3TElBc2dIR29pQWtJQU53QUFJQUpDQURjQUdDQUNRZ0EzQUJBZ0FrSUFOd0FJSUFsQmlIOUxEUW9MSUFrZ0ZVWU5DQ0FWSUFscklRWWdCU2dDbk9zQklRb0NRQ0FKSUJ0cUlnTXRBQUFpRDBVRVFFRUJJUUpCQUNFUFFiaC9JUWtnQmtFQlJnMEJEQXNMQW44Z0EwRUJhaUFQd0NJQ1FRQk9EUUFhSUFKQmYwWUVRQ0FHUVFOSURRc2dBeThBQVVHQS9nRnFJUThnQTBFRGFnd0JDeUFHUVFKSURRb2dBeTBBQVNBUFFRaDBja0dBZ0FKcklROGdBMEVDYWdzaEVrRzRmeUVKSUJKQkFXb2lBaUFWSUJ0cUlnZExEUW9nTENBRklCSXRBQUFpRWtFR2RrRWpRUWtnQWlBSElBSnJRY0FRUWRBUlFmQVNJQVVvQW9UcUFTQUtJQThnRkJBaElnbEJpSDlMRFFnZ0t5QW9JQkpCQkhaQkEzRkJIMEVJSUFJZ0NXb2lBaUFISUFKclFZQUxRWUFNUVlBWElBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlDRUdJZjBzTkNFRnNJUWtnS2lBdElCSkJBblpCQTNGQk5FRUpJQUlnQ0dvaUFpQUhJQUpyUVlBTlFlQU9RWkFaSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUIwR0lmMHNOQ2lBQ0lBZHFJQU5ySWdJaENTQUNRWWgvU3cwS0N5QU9JQTlCQUV4eURRRUxRYnAvSVFrTUNBc2dKU0FPYXlFSklBWWdBbXNoQmlBQ0lBTnFJUWNDUUFKQUFrQWdDa1VFUUNBUFFRbElJQVVwQThqcEFVS0JnSUFJVkhJTkFpQW9LQUlBSWdKQkNHb2hFaUFDS0FJRUlRcEJBQ0VEUVFBaEFnTkFJQU1nQ25aRkJFQWdBaUFTSUFOQkEzUnFMUUFDUVJaTGFpRUNJQU5CQVdvaEF3d0JDd3NnQlVFQU5nS2M2d0VnQWtFSUlBcHJkRUVVVHcwQkRBTUxJQVZCQURZQ25Pc0JDeUFFSUFVb0F2RHFBU0lETmdMY0FTQUpJQTVxSVJZZ0F5QUZLQUtBNndGcUlSY0NRQ0FQUlFSQUlBNGhCd3dCQ3lBRktBSzQ2UUVoR2lBRktBSzA2UUVoR0NBRktBS3c2UUVoRWlBRlFRRTJBb1RxQVVFQUlRTURRQ0FEUVFOSEJFQWdCQ0FEUVFKMElnSnFJQUlnQldwQnJOQUJhaWdDQURZQ1pDQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFUaHFJZ0lnQnlBR0VBMUJpSDlMRFFOQkNDQVBJQTlCQ0U0YklSOGdOQ0FDSUFVb0FnQVFIaUF6SUFJZ0JTZ0NDQkFlSURJZ0FpQUZLQUlFRUI0Z0RpQVNheUVaUVFBaENBTkFJQVJCT0dvUUQwRURSaUFJSUI5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdkQkVIWWlFVUgvQVhFaEN5QUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZ3hCRUhZaUlVSC9BWEVoRUNBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUVlnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNrSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lLYXlJTklBSWdBaUFOU3hzaUV5QUthallDUENBR0lBUW9BamdnQ25SQkFDQVRhM1lnQWlBVGF5SVRkR29oQ2lBRVFUaHFFQThhSUFJZ0RVME5BU0FFSUFRb0Fqd2lBaUFUYWpZQ1BDQUVLQUk0SUFKMFFRQWdFMnQySUFwcUlRb01BUXNnQkNBQ0lBUW9BandpRFdvMkFqd2dCQ2dDT0NBTmRFRUFJQXByZGlBR2FpRUtJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQW8yQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBREJFQWdCQ2dDWkNFS0RBTUxJQVFvQW1naENnd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQVlnQTBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdaRklBWnFJUW9nQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlBbzJBbVFMcHlFQ0lFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQkJxTmdJOElBUW9BamdnQm5SQkFDQWhhM1lnQW1vaEFnc2dDeUFRYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUF0cU5nSThJQVFvQWpnZ0JuUkJBQ0FSYTNZZ0Eyb2hBd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lCa0VBSUFkQkdIWWlDeUFFS0FJOGFpSVFhM1lnQzBFQ2RFR2dIV29vQWdCeElBZEIvLzhEY1dvMkFrd2dCQ0FRSUF4QkdIWWlCMm9pQ3pZQ1BDQUVJQWRCQW5SQm9CMXFLQUlBSUFaQkFDQUxhM1p4SUF4Qi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ1pCR0hZaUJ5QUVLQUk4YWlJTE5nSThJQVFnQjBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUF0cmRuRWdCa0gvL3dOeGFqWUNWQ0FFUWZBQWFpQUlRUXhzYWlJR0lBbzJBZ2dnQmlBQ05nSUVJQVlnQXpZQ0FDQUlRUUZxSVFnZ0F5QVphaUFDYWlFWkRBRUxDeUFJSUI5SURRTWdGa0VnYXlFaElBNGhCd05BSUFSQk9Hb1FEMEVEUmlBSUlBOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnWkJFSFlpSTBIL0FYRWhDaUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWcxQkVIWWlJRUgvQVhFaEV5QUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFNZ1FVSWdpQ0JBUWlDSXB5RUxBa0FnUWtJUWlLY2lERUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJTWF5SVJJQUlnQWlBUlN4c2lFQ0FNYWpZQ1BDQURJQVFvQWpnZ0RIUkJBQ0FRYTNZZ0FpQVFheUlNZEdvaEVDQUVRVGhxRUE4YUlBSWdFVTBOQVNBRUlBUW9BandpQWlBTWFqWUNQQ0FFS0FJNElBSjBRUUFnREd0MklCQnFJUkFNQVFzZ0JDQUNJQVFvQWp3aUVHbzJBandnQkNnQ09DQVFkRUVBSUF4cmRpQURhaUVRSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUJBMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQUxCRUFnQkNnQ1pDRVFEQU1MSUFRb0FtZ2hFQXdCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFNZ0MwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnTkZJQU5xSVJBZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQkEyQW1RTHB5RU1JRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUJOcU5nSThJQVFvQWpnZ0FuUkJBQ0FnYTNZZ0RHb2hEQXNnQ2lBVGFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lBcHFOZ0k4SUFRb0FqZ2dBblJCQUNBamEzWWdDMm9oQ3dzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQWtFQUlBWkJHSFlpQXlBRUtBSThhaUlLYTNZZ0EwRUNkRUdnSFdvb0FnQnhJQVpCLy84RGNXbzJBa3dnQkNBS0lBMUJHSFlpQTJvaUJqWUNQQ0FFSUFOQkFuUkJvQjFxS0FJQUlBSkJBQ0FHYTNaeElBMUIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdKQkdIWWlBeUFFS0FJOGFpSUdOZ0k4SUFRZ0EwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBWnJkbkVnQWtILy93TnhhallDVkFKQUFrQUNRQ0FFS0FMY0FTSURJQVJCOEFCcUlBaEJCM0ZCREd4cUloTW9BZ0FpRVdvaUl5QVhTdzBBSUFjZ0V5Z0NCQ0lOSUJGcUlncHFJQ0ZMRFFBZ0NrRWdhaUFXSUFkclRRMEJDeUFFSUJNb0FnZzJBaGdnQkNBVEtRSUFOd01RSUFjZ0ZpQUVRUkJxSUFSQjNBRnFJQmNnRWlBWUlCb1FIeUVLREFFTElBY2dFV29oQWlBVEtBSUlJUVlnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0FKQUlCRkJFVWtOQUNBSElBTXBBQkEzQUJBZ0J5QURLUUFZTndBWUlCRkJFR3RCRVVnTkFDQURRUkJxSVFNZ0IwRWdhaUVSQTBBZ0VTQURLUUFRTndBQUlCRWdBeWtBR0RjQUNDQVJJQU1wQUNBM0FCQWdFU0FES1FBb053QVlJQU5CSUdvaEF5QVJRU0JxSWhFZ0Fra05BQXNMSUFJZ0Jtc2hBeUFFSUNNMkF0d0JJQUlnRW1zZ0Jra0VRQ0FHSUFJZ0dHdExEUWNnR2lBYUlBTWdFbXNpQTJvaUVTQU5hazhFUUNBQ0lCRWdEUkFLR2d3Q0N5QURJQTFxSVEwZ0FpQVJRUUFnQTJzUUNpQURheUVDSUJJaEF3c2dCa0VRVHdSQUlBSWdBeWtBQURjQUFDQUNJQU1wQUFnM0FBZ2dEVUVSU0EwQklBSWdEV29oQmlBQ1FSQnFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBR1NRMEFDd3dCQ3dKQUlBWkJCMDBFUUNBQ0lBTXRBQUE2QUFBZ0FpQURMUUFCT2dBQklBSWdBeTBBQWpvQUFpQUNJQU10QUFNNkFBTWdBaUFESUFaQkFuUWlCa0hBSG1vb0FnQnFJZ01vQUFBMkFBUWdBeUFHUWVBZWFpZ0NBR3NoQXd3QkN5QUNJQU1wQUFBM0FBQUxJQTFCQ1VrTkFDQUNJQTFxSVJFZ0FrRUlhaUlHSUFOQkNHb2lBMnRCRDB3RVFBTkFJQVlnQXlrQUFEY0FBQ0FEUVFocUlRTWdCa0VJYWlJR0lCRkpEUUFNQWdzQUN5QUdJQU1wQUFBM0FBQWdCaUFES1FBSU53QUlJQTFCR1VnTkFDQUNRUmhxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQVJTUTBBQ3dzZ0NrR0lmMHNFUUNBS0lRa01CZ1VnRXlBUU5nSUlJQk1nRERZQ0JDQVRJQXMyQWdBZ0NFRUJhaUVJSUFjZ0Ntb2hCeUFMSUJscUlBeHFJUmtNQWdzQUN3c2dDQ0FQU0EwRElBZ2dIMnNoQmdOQUFrQWdCaUFQVGdSQVFRQWhBd05BSUFOQkEwWU5BaUFGSUFOQkFuUWlBbXBCck5BQmFpQUNJQVJxS0FKa05nSUFJQU5CQVdvaEF3d0FDd0FMQWtBQ1FBSkFJQVFvQXR3QklnTWdCRUh3QUdvZ0JrRUhjVUVNYkdvaUNDZ0NBQ0lNYWlJUUlCZExEUUFnQnlBSUtBSUVJZ3NnREdvaUNtb2dJVXNOQUNBS1FTQnFJQllnQjJ0TkRRRUxJQVFnQ0NnQ0NEWUNLQ0FFSUFncEFnQTNBeUFnQnlBV0lBUkJJR29nQkVIY0FXb2dGeUFTSUJnZ0doQWZJUW9NQVFzZ0J5QU1haUVDSUFnb0FnZ2hDQ0FISUFNcEFBQTNBQUFnQnlBREtRQUlOd0FJQWtBZ0RFRVJTUTBBSUFjZ0F5a0FFRGNBRUNBSElBTXBBQmczQUJnZ0RFRVFhMEVSU0EwQUlBTkJFR29oQXlBSFFTQnFJUXdEUUNBTUlBTXBBQkEzQUFBZ0RDQURLUUFZTndBSUlBd2dBeWtBSURjQUVDQU1JQU1wQUNnM0FCZ2dBMEVnYWlFRElBeEJJR29pRENBQ1NRMEFDd3NnQWlBSWF5RURJQVFnRURZQzNBRWdBaUFTYXlBSVNRUkFJQWdnQWlBWWEwc05CeUFhSUJvZ0F5QVNheUlEYWlJTUlBdHFUd1JBSUFJZ0RDQUxFQW9hREFJTElBTWdDMm9oQ3lBQ0lBeEJBQ0FEYXhBS0lBTnJJUUlnRWlFREN5QUlRUkJQQkVBZ0FpQURLUUFBTndBQUlBSWdBeWtBQ0RjQUNDQUxRUkZJRFFFZ0FpQUxhaUVJSUFKQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFJZ0F5MEFBRG9BQUNBQ0lBTXRBQUU2QUFFZ0FpQURMUUFDT2dBQ0lBSWdBeTBBQXpvQUF5QUNJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBSWdBeWtBQURjQUFBc2dDMEVKU1EwQUlBSWdDMm9oRENBQ1FRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0RFa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dDMEVaU0EwQUlBSkJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBeEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0dCU0FHUVFGcUlRWWdCeUFLYWlFSERBSUxBQXNMSUFRb0F0d0JJUU1MUWJwL0lRa2dGeUFEYXlJQ0lCWWdCMnRMRFFJZ0J3Ui9JQWNnQXlBQ0VBSWdBbW9GUVFBTElBNXJJUWtNQWdzZ0JVRUFOZ0tjNndFTElBUWdCU2dDOE9vQklnTTJBdHdCSUFrZ0Rtb2hEQ0FESUFVb0FvRHJBV29oRUFKQUlBOUZCRUFnRGlFR0RBRUxJQVVvQXJqcEFTRU5JQVVvQXJUcEFTRVRJQVVvQXJEcEFTRVNJQVZCQVRZQ2hPb0JRUUFoQXdOQUlBTkJBMGNFUUNBRUlBTkJBblFpQW1vZ0FpQUZha0dzMEFGcUtBSUFOZ0tjQVNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUWZBQWFpSUNJQWNnQmhBTlFZaC9TdzBCSURFZ0FpQUZLQUlBRUI0Z01DQUNJQVVvQWdnUUhpQXZJQUlnQlNnQ0JCQWVJQXhCSUdzaEdDQU9JUVlEUUNBRUtBS0lBU0FFS0FLRUFVRURkR29wQWdBaVFLY2lDa0VRZGlJWlFmOEJjU0VMSUFRb0FwZ0JJQVFvQXBRQlFRTjBhaWtDQUNKQnB5SVdRUkIySWg5Qi93RnhJUm9nQkNnQ2tBRWdCQ2dDakFGQkEzUnFLUUlBSWtKQ0lJaW5JUWNnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NkQ0lJYXlJUklBSWdBaUFSU3hzaUZ5QUlhallDZENBSElBUW9BbkFnQ0hSQkFDQVhhM1lnQWlBWGF5SVhkR29oQ0NBRVFmQUFhaEFQR2lBQ0lCRk5EUUVnQkNBRUtBSjBJZ0lnRjJvMkFuUWdCQ2dDY0NBQ2RFRUFJQmRyZGlBSWFpRUlEQUVMSUFRZ0FpQUVLQUowSWhGcU5nSjBJQVFvQW5BZ0VYUkJBQ0FJYTNZZ0Iyb2hDQ0FFUWZBQWFoQVBHZ3NnQkNrQ25BRWhSQ0FFSUFnMkFwd0JJQVFnUkRjQ29BRU1BUXNDUUNBQ1JRUkFJQU1FUUNBRUtBS2NBU0VJREFNTElBUW9BcUFCSVFnTUFRc2dCQ0FFS0FKMElnSkJBV28yQW5RQ2Z5QUhJQU5GYWlBRUtBSndJQUowUVI5MmFpSUNRUU5HQkVBZ0JDZ0NuQUZCQVdzTUFRc2dBa0VDZENBRWFpZ0NuQUVMSWdkRklBZHFJUWdnQWtFQlJ3UkFJQVFnQkNnQ29BRTJBcVFCQ3dzZ0JDQUVLQUtjQVRZQ29BRWdCQ0FJTmdLY0FRdW5JUUlnUVVLQWdQd0hnMUJGQkVBZ0JDQUVLQUowSWdjZ0dtbzJBblFnQkNnQ2NDQUhkRUVBSUI5cmRpQUNhaUVDQ3lBTElCcHFRUlJQQkVBZ0JFSHdBR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ2RDSUhJQXRxTmdKMElBUW9BbkFnQjNSQkFDQVphM1lnQTJvaEF3c2dCRUh3QUdvUUR4b2dCQ0FFS0FKd0lnZEJBQ0FLUVJoMklnc2dCQ2dDZEdvaUdtdDJJQXRCQW5SQm9CMXFLQUlBY1NBS1FmLy9BM0ZxTmdLRUFTQUVJQm9nRmtFWWRpSUthaUlMTmdKMElBUWdDa0VDZEVHZ0hXb29BZ0FnQjBFQUlBdHJkbkVnRmtILy93TnhhallDbEFFZ0JFSHdBR29RRHhvZ0JDQkNweUlIUVJoMklnb2dCQ2dDZEdvaUN6WUNkQ0FFSUFwQkFuUkJvQjFxS0FJQUlBUW9BbkJCQUNBTGEzWnhJQWRCLy84RGNXbzJBb3dCSUFRZ0F6WUNPQ0FFSUFJMkFqd2dCQ0FJTmdKQUFrQUNRQUpBSUFRb0F0d0JJZ3NnQTJvaUZpQVFTdzBBSUFZZ0FpQURhaUlLYWlBWVN3MEFJQXBCSUdvZ0RDQUdhMDBOQVFzZ0JDQUVRVUJyS0FJQU5nSUlJQVFnQkNrRE9EY0RBQ0FHSUF3Z0JDQUVRZHdCYWlBUUlCSWdFeUFORUI4aENnd0JDeUFESUFacUlRY2dCaUFMS1FBQU53QUFJQVlnQ3lrQUNEY0FDQUpBSUFOQkVVa05BQ0FHSUFzcEFCQTNBQkFnQmlBTEtRQVlOd0FZSUFOQkVHdEJFVWdOQUNBTFFSQnFJUU1nQmtFZ2FpRUxBMEFnQ3lBREtRQVFOd0FBSUFzZ0F5a0FHRGNBQ0NBTElBTXBBQ0EzQUJBZ0N5QURLUUFvTndBWUlBTkJJR29oQXlBTFFTQnFJZ3NnQjBrTkFBc0xJQWNnQ0dzaEF5QUVJQlkyQXR3QklBY2dFbXNnQ0VrRVFDQUlJQWNnRTJ0TERRUWdEU0FOSUFNZ0Vtc2lBMm9pQ3lBQ2FrOEVRQ0FISUFzZ0FoQUtHZ3dDQ3lBSElBdEJBQ0FEYXhBS0lBUWdBaUFEYWlJQ05nSThJQU5ySVFjZ0VpRURDeUFJUVJCUEJFQWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQ0FDUVJGSURRRWdBaUFIYWlFSUlBZEJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBY2dBeTBBQURvQUFDQUhJQU10QUFFNkFBRWdCeUFETFFBQ09nQUNJQWNnQXkwQUF6b0FBeUFISUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQWNnQXlrQUFEY0FBQXNnQWtFSlNRMEFJQUlnQjJvaEN5QUhRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dDMGtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQWtFWlNBMEFJQWRCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXRKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdEQ3lBR0lBcHFJUVlnQkVId0FHb1FEeUVESUE5QkFXc2lEdzBBQzBFQUlRSWdBMEVDU1EwQkEwQWdBa0VEUndSQUlBVWdBa0VDZENJRGFrR3MwQUZxSUFNZ0JHb29BcHdCTmdJQUlBSkJBV29oQWd3QkN3c2dCQ2dDM0FFaEF3dEJ1bjhoQ1NBUUlBTnJJZ0lnRENBR2Ewc05BQ0FHQkg4Z0JpQURJQUlRQWlBQ2FnVkJBQXNnRG1zaENRc2dDVUdJZjBzTkJnc0NRQ0FGS0FMczZnRkZEUUFnQlNBRktRT0k2Z0VnQ2ExOE53T0k2Z0VDUUNBRktBTFE2Z0VpQWlBSmFpSUlRUjlOQkVBZ0RrVU5BU0FDSUNKcUlBNGdDUkFDR2lBRktBTFE2Z0VnQ1dvaENBd0JDeUFPSVFNZ0FnUkFJQUlnSW1vZ0EwRWdJQUpyRUFJYUlBVW9BdERxQVNFQ0lBVkJBRFlDME9vQklBVWdCU2tEa09vQklBVXBBTERxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRGtPb0JJQVVnQlNrRG1Pb0JJQVVwQUxqcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RtT29CSUFVZ0JTa0RvT29CSUFVcEFNRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEb09vQklBVWdCU2tEcU9vQklBVXBBTWpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRHFPb0JJQU1nQW10QklHb2hBd3NnQ1NBT2FpSUNJQU5CSUdwUEJFQWdBa0VnYXlFR0lBVXBBNmpxQVNFL0lBVXBBNkRxQVNGQUlBVXBBNWpxQVNGQklBVXBBNURxQVNGQ0EwQWdBeWtBR0VMUDF0Tyswc2VyMlVKK0lEOThRaCtKUW9lVnI2K1l0dDZibm45K0lUOGdBeWtBRUVMUDF0Tyswc2VyMlVKK0lFQjhRaCtKUW9lVnI2K1l0dDZibm45K0lVQWdBeWtBQ0VMUDF0Tyswc2VyMlVKK0lFRjhRaCtKUW9lVnI2K1l0dDZibm45K0lVRWdBeWtBQUVMUDF0Tyswc2VyMlVKK0lFSjhRaCtKUW9lVnI2K1l0dDZibm45K0lVSWdBMEVnYWlJRElBWk5EUUFMSUFVZ1B6Y0RxT29CSUFVZ1FEY0RvT29CSUFVZ1FUY0RtT29CSUFVZ1FqY0RrT29CQ3lBQ0lBTk5EUUVnSWlBRElBSWdBMnNpQ0JBQ0dnc2dCU0FJTmdMUTZnRUxJRFVnRldzaEF5QVZJQnRxSVFJZ0NTQU9haUVPSUFRb0FqQkZEUUFMSUNrcEF3QWlQMEovVVNBL0lBNGdIV3VzVVhKRkJFQkJiQ0VKREFZTElBVW9BdURwQVFSQVFXb2hDU0FEUVFSSkRRWWdCU2dDNk9vQlJRUkFJQ0lnQlNnQzBPb0JhaUVLQW40Z0JTa0RpT29CSWo5Q0lGb0VRQ0FGS1FPWTZnRWlRRUlIaVNBRktRT1E2Z0VpUVVJQmlYd2dCU2tEb09vQklrSkNESWw4SUFVcEE2anFBU0pEUWhLSmZDQkJRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOUlFQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZvVkNoNVd2cjVpMjNwdWVmMzVDbmFPMTZvT3hqWXI2QUgwZ1FrTFAxdE8rMHNlcjJVSitRaCtKUW9lVnI2K1l0dDZibm45K2hVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNCRFFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5REFFTElBVXBBNkRxQVVMRno5bXk4ZVc2NmlkOEN5QS9mQ0UvSUNJaEJnTkFJQW9nQmtFSWFpSUhUd1JBSUFZcEFBQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUliaVVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0UvSUFjaEJnd0JDd3NDUUNBS0lBWkJCR29pQ0VrRVFDQUdJUWdNQVFzZ0JqVUFBRUtIbGErdm1MYmVtNTUvZmlBL2hVSVhpVUxQMXRPKzBzZXIyVUorUXZuejNmR1o5cG1yRm53aFB3c0RRQ0FJSUFwSkJFQWdDREVBQUVMRno5bXk4ZVc2NmlkK0lEK0ZRZ3VKUW9lVnI2K1l0dDZibm45K0lUOGdDRUVCYWlFSURBRUxDeUFDS0FBQUlEOUNJWWdnUDRWQ3o5YlR2dExIcTlsQ2ZpSS9RaDJJSUQrRlF2bnozZkdaOXBtckZuNGlQMElnaUNBL2hhZEhEUWNMSUFOQkJHc2hBeUFDUVFScUlRSUxJQTRnSFdzaUNVR0pmMDhOQkNBQklBbHJJUUVnQ1NBZGFpRWRRUUVoUGd3QkN3dEJ1SDhoQnlBRERRUWdIU0FBYXlFSERBUUxRV3doQ1F3QkMwRzRmeUVKQzBHNGZ5RUhJQWxCZGtZZ1BuRU5BUXNnQ1NFSEN5Z0NBQTBBSUFWQi9Pb0JhaWdDQUNFQklBVkIrT29CYWlnQ0FDRUFJQVVRR0NBRktBS3c2d0VnQUNBQkVCTWdCVUVBTmdLdzZ3RWdCU2dDcE9zQklnSUVRQUpBQWtBQ1FBSkFJQUlvQWdBaUF3UkFJQUJGRFFJZ0FTQURJQUFSQWdBTUFRc2dBRVVOQWdzZ0FTQUNJQUFSQWdBTUFnc2dBeEFHQ3lBQ0VBWUxJQVZCQURZQ3BPc0JDeUFBQkVBZ0FTQUZJQUFSQWdBTUFRc2dCUkFHQ3lBRVFlQUJhaVFBSUFjTEM2Z1ZDUUJCaUFnTERRRUFBQUFCQUFBQUFnQUFBQUlBUWFBSUM3TUdBUUFBQUFFQUFBQUNBQUFBQWdBQUFDWUFBQUNDQUFBQUlRVUFBRW9BQUFCbkNBQUFKZ0FBQU1BQkFBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUtRQUFBQ3dDQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBTHdBQUFNb0NBQUNBQUFBQWlnVUFBRW9BQUFDRUNRQUFOUUFBQUhNREFBQ0FBQUFBblFVQUFFb0FBQUNnQ1FBQVBRQUFBSUVEQUFDQUFBQUE2d1VBQUVzQUFBQStDZ0FBUkFBQUFKNERBQUNBQUFBQVRRWUFBRXNBQUFDcUNnQUFTd0FBQUxNREFBQ0FBQUFBd1FZQUFFMEFBQUFmRFFBQVRRQUFBRk1FQUFDQUFBQUFJd2dBQUZFQUFBQ21Ed0FBVkFBQUFKa0VBQUNBQUFBQVN3a0FBRmNBQUFDeEVnQUFXQUFBQU5vRUFBQ0FBQUFBYndrQUFGMEFBQUFqRkFBQVZBQUFBRVVGQUFDQUFBQUFWQW9BQUdvQUFBQ01GQUFBYWdBQUFLOEZBQUNBQUFBQWRna0FBSHdBQUFCT0VBQUFmQUFBQU5JQ0FBQ0FBQUFBWXdjQUFKRUFBQUNRQndBQWtnQUFBQUFBQUFBQkFBQUFBUUFBQUFVQUFBQU5BQUFBSFFBQUFEMEFBQUI5QUFBQS9RQUFBUDBCQUFEOUF3QUEvUWNBQVAwUEFBRDlId0FBL1Q4QUFQMS9BQUQ5L3dBQS9mOEJBUDMvQXdEOS93Y0EvZjhQQVAzL0h3RDkvejhBL2Y5L0FQMy8vd0Q5Ly84Qi9mLy9BLzMvL3dmOS8vOFAvZi8vSC8zLy96LzkvLzkvQUFBQUFBRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBREFBQUFCQUFBQUFVQUFBQUdBQUFBQndBQUFBZ0FBQUFKQUFBQUNnQUFBQXNBQUFBTUFBQUFEUUFBQUE0QUFBQVBBQUFBRUFBQUFCRUFBQUFTQUFBQUV3QUFBQlFBQUFBVkFBQUFGZ0FBQUJjQUFBQVlBQUFBR1FBQUFCb0FBQUFiQUFBQUhBQUFBQjBBQUFBZUFBQUFId0FBQUNBQUFBQWhBQUFBSWdBQUFDTUFBQUFsQUFBQUp3QUFBQ2tBQUFBckFBQUFMd0FBQURNQUFBQTdBQUFBUXdBQUFGTUFBQUJqQUFBQWd3QUFBQU1CQUFBREFnQUFBd1FBQUFNSUFBQURFQUFBQXlBQUFBTkFBQUFEZ0FBQUF3QUJBRUhnRHd0UkFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJBQUFBQVVBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFFSEVFQXVMQVFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBU0FBQUFGQUFBQUJZQUFBQVlBQUFBSEFBQUFDQUFBQUFvQUFBQU1BQUFBRUFBQUFDQUFBQUFBQUVBQUFBQ0FBQUFCQUFBQUFnQUFBQVFBQUFBSUFBQUFFQUFBQUNBQUFBQUFBRUFRWkFTQytZRUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBQkFBQUFCQUFBQUFnQUFBQUFBQUFBQVFBQkFRWUFBQUFBQUFBRUFBQUFBQkFBQUFRQUFBQUFJQUFBQlFFQUFBQUFBQUFGQXdBQUFBQUFBQVVFQUFBQUFBQUFCUVlBQUFBQUFBQUZCd0FBQUFBQUFBVUpBQUFBQUFBQUJRb0FBQUFBQUFBRkRBQUFBQUFBQUFZT0FBQUFBQUFCQlJBQUFBQUFBQUVGRkFBQUFBQUFBUVVXQUFBQUFBQUNCUndBQUFBQUFBTUZJQUFBQUFBQUJBVXdBQUFBSUFBR0JVQUFBQUFBQUFjRmdBQUFBQUFBQ0FZQUFRQUFBQUFLQmdBRUFBQUFBQXdHQUJBQUFDQUFBQVFBQUFBQUFBQUFCQUVBQUFBQUFBQUZBZ0FBQUNBQUFBVUVBQUFBQUFBQUJRVUFBQUFnQUFBRkJ3QUFBQUFBQUFVSUFBQUFJQUFBQlFvQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUlBQUJCUkFBQUFBQUFBRUZFZ0FBQUNBQUFRVVdBQUFBQUFBQ0JSZ0FBQUFnQUFNRklBQUFBQUFBQXdVb0FBQUFBQUFHQkVBQUFBQVFBQVlFUUFBQUFDQUFCd1dBQUFBQUFBQUpCZ0FDQUFBQUFBc0dBQWdBQURBQUFBUUFBQUFBRUFBQUJBRUFBQUFnQUFBRkFnQUFBQ0FBQUFVREFBQUFJQUFBQlFVQUFBQWdBQUFGQmdBQUFDQUFBQVVJQUFBQUlBQUFCUWtBQUFBZ0FBQUZDd0FBQUNBQUFBVU1BQUFBQUFBQUJnOEFBQUFnQUFFRkVnQUFBQ0FBQVFVVUFBQUFJQUFDQlJnQUFBQWdBQUlGSEFBQUFDQUFBd1VvQUFBQUlBQUVCVEFBQUFBQUFCQUdBQUFCQUFBQUR3WUFnQUFBQUFBT0JnQkFBQUFBQUEwR0FDQUFRWUFYQzRjQ0FRQUJBUVVBQUFBQUFBQUZBQUFBQUFBQUJnUTlBQUFBQUFBSkJmMEJBQUFBQUE4Ri9YOEFBQUFBRlFYOS94OEFBQUFEQlFVQUFBQUFBQWNFZlFBQUFBQUFEQVg5RHdBQUFBQVNCZjMvQXdBQUFCY0YvZjkvQUFBQUJRVWRBQUFBQUFBSUJQMEFBQUFBQUE0Ri9UOEFBQUFBRkFYOS93OEFBQUFDQlFFQUFBQVFBQWNFZlFBQUFBQUFDd1g5QndBQUFBQVJCZjMvQVFBQUFCWUYvZjgvQUFBQUJBVU5BQUFBRUFBSUJQMEFBQUFBQUEwRi9SOEFBQUFBRXdYOS93Y0FBQUFCQlFFQUFBQVFBQVlFUFFBQUFBQUFDZ1g5QXdBQUFBQVFCZjMvQUFBQUFCd0YvZi8vRHdBQUd3WDkvLzhIQUFBYUJmMy8vd01BQUJrRi9mLy9BUUFBR0FYOS8vOEFRWkFaQzRZRUFRQUJBUVlBQUFBQUFBQUdBd0FBQUFBQUFBUUVBQUFBSUFBQUJRVUFBQUFBQUFBRkJnQUFBQUFBQUFVSUFBQUFBQUFBQlFrQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUFBQUFCaEFBQUFBQUFBQUdFd0FBQUFBQUFBWVdBQUFBQUFBQUJoa0FBQUFBQUFBR0hBQUFBQUFBQUFZZkFBQUFBQUFBQmlJQUFBQUFBQUVHSlFBQUFBQUFBUVlwQUFBQUFBQUNCaThBQUFBQUFBTUdPd0FBQUFBQUJBWlRBQUFBQUFBSEJvTUFBQUFBQUFrR0F3SUFBQkFBQUFRRUFBQUFBQUFBQkFVQUFBQWdBQUFGQmdBQUFBQUFBQVVIQUFBQUlBQUFCUWtBQUFBQUFBQUZDZ0FBQUFBQUFBWU1BQUFBQUFBQUJnOEFBQUFBQUFBR0VnQUFBQUFBQUFZVkFBQUFBQUFBQmhnQUFBQUFBQUFHR3dBQUFBQUFBQVllQUFBQUFBQUFCaUVBQUFBQUFBRUdJd0FBQUFBQUFRWW5BQUFBQUFBQ0Jpc0FBQUFBQUFNR013QUFBQUFBQkFaREFBQUFBQUFGQm1NQUFBQUFBQWdHQXdFQUFDQUFBQVFFQUFBQU1BQUFCQVFBQUFBUUFBQUVCUUFBQUNBQUFBVUhBQUFBSUFBQUJRZ0FBQUFnQUFBRkNnQUFBQ0FBQUFVTEFBQUFBQUFBQmc0QUFBQUFBQUFHRVFBQUFBQUFBQVlVQUFBQUFBQUFCaGNBQUFBQUFBQUdHZ0FBQUFBQUFBWWRBQUFBQUFBQUJpQUFBQUFBQUJBR0F3QUJBQUFBRHdZRGdBQUFBQUFPQmdOQUFBQUFBQTBHQXlBQUFBQUFEQVlERUFBQUFBQUxCZ01JQUFBQUFBb0dBd1FBUWFRZEM5a0JBUUFBQUFNQUFBQUhBQUFBRHdBQUFCOEFBQUEvQUFBQWZ3QUFBUDhBQUFEL0FRQUEvd01BQVA4SEFBRC9Ed0FBL3g4QUFQOC9BQUQvZndBQS8vOEFBUC8vQVFELy93TUEvLzhIQVAvL0R3RC8veDhBLy84L0FQLy9md0QvLy84QS8vLy9BZi8vL3dQLy8vOEgvLy8vRC8vLy94Ly8vLzgvLy8vL2Z3QUFBQUFCQUFBQUFnQUFBQVFBQUFBQUFBQUFBZ0FBQUFRQUFBQUlBQUFBQUFBQUFBRUFBQUFDQUFBQUFRQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBZ0FBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0JCZ0I4TEE0QVJBUT09Ijt2YXIgeWU9bmV3IFBBLG1lPSExO2FzeW5jIGZ1bmN0aW9uIENyKEEsdCxlKXtsZXQgST1udWxsO3R5cGVvZiBBIT0ic3RyaW5nIj9JPUEuaHJlZjpBLnN0YXJ0c1dpdGgoImh0dHAiKT9JPUE6ST1gJHt0fS8ke0F9YCxJLmVuZHNXaXRoKCIuanMiKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC0zKSksSS5lbmRzV2l0aCgiLndhc20iKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC01KSksSS5lbmRzV2l0aCgiLndhc20uenN0IikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtOSkpO2xldCByPWAke0l9Lndhc21gLGc9YXdhaXQgeEEuZ2V0KGAke3J9LnpzdGAse3Jlc3BvbnNlVHlwZToiYXJyYXlidWZmZXIiLHBhcmFtczplfSk7bWV8fChhd2FpdCB5ZS5pbml0KCksbWU9ITApO2xldCBuPXllLmRlY29kZShuZXcgVWludDhBcnJheShnLmRhdGEpKS5idWZmZXI7cmV0dXJuKGF3YWl0IGltcG9ydChgJHtJfS5qc2ApKS5kZWZhdWx0KHt3YXNtQmluYXJ5Om59KX12YXIgd2U9Q3I7dmFyIGpBPW5ldyBNYXA7YXN5bmMgZnVuY3Rpb24gQnIoQSx0LGUpe2xldCBJPUEscj1BLGc9bnVsbDtyZXR1cm4gdHlwZW9mIEEhPSJzdHJpbmciJiYoST1uZXcgVVJMKEEuaHJlZikscj1JLmhyZWYpLGpBLmhhcyhyKT9nPWF3YWl0IGpBLmdldChyKTooakEuc2V0KHIsd2UoSSx0LGUpKSxnPWF3YWl0IGpBLmdldChyKSksZ312YXIgcGU9QnI7dmFyIGFyPXtUZXh0RmlsZToiVGV4dEZpbGUiLEJpbmFyeUZpbGU6IkJpbmFyeUZpbGUiLFRleHRTdHJlYW06IlRleHRTdHJlYW0iLEJpbmFyeVN0cmVhbToiQmluYXJ5U3RyZWFtIixJbWFnZToiSW1hZ2UiLFBvaW50U2V0OiJQb2ludFNldCIsTWVzaDoiTWVzaCIsUG9seURhdGE6IlBvbHlEYXRhIixUcmFuc2Zvcm1MaXN0OiJUcmFuc2Zvcm1MaXN0IixKc29uQ29tcGF0aWJsZToiSnNvbkNvbXBhdGlibGUifSxkPWFyO3ZhciBRcj17SW50ODoiaW50OCIsVUludDg6InVpbnQ4IixJbnQxNjoiaW50MTYiLFVJbnQxNjoidWludDE2IixJbnQzMjoiaW50MzIiLFVJbnQzMjoidWludDMyIixJbnQ2NDoiaW50NjQiLFVJbnQ2NDoidWludDY0IixTaXplVmFsdWVUeXBlOiJ1aW50NjQiLElkZW50aWZpZXJUeXBlOiJ1aW50NjQiLEluZGV4VmFsdWVUeXBlOiJpbnQ2NCIsT2Zmc2V0VmFsdWVUeXBlOiJpbnQ2NCJ9LFU9UXI7dmFyIEVyPXtGbG9hdDMyOiJmbG9hdDMyIixGbG9hdDY0OiJmbG9hdDY0IixTcGFjZVByZWNpc2lvblR5cGU6ImZsb2F0NjQifSxWPUVyO2Z1bmN0aW9uIGNyKEEsdCl7bGV0IGU9bnVsbDtzd2l0Y2goQSl7Y2FzZSBVLlVJbnQ4OntlPW5ldyBVaW50OEFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQ4OntlPW5ldyBJbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBVLlVJbnQxNjp7ZT1uZXcgVWludDE2QXJyYXkodCk7YnJlYWt9Y2FzZSBVLkludDE2OntlPW5ldyBJbnQxNkFycmF5KHQpO2JyZWFrfWNhc2UgVS5VSW50MzI6e2U9bmV3IFVpbnQzMkFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQzMjp7ZT1uZXcgSW50MzJBcnJheSh0KTticmVha31jYXNlIFUuVUludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdVaW50NjRBcnJheT09ImZ1bmN0aW9uIj9lPW5ldyBCaWdVaW50NjRBcnJheSh0KTplPW5ldyBVaW50OEFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnSW50NjRBcnJheT09ImZ1bmN0aW9uIj9lPW5ldyBCaWdJbnQ2NEFycmF5KHQpOmU9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBWLkZsb2F0MzI6e2U9bmV3IEZsb2F0MzJBcnJheSh0KTticmVha31jYXNlIFYuRmxvYXQ2NDp7ZT1uZXcgRmxvYXQ2NEFycmF5KHQpO2JyZWFrfWNhc2UibnVsbCI6e2U9bnVsbDticmVha31jYXNlIG51bGw6e2U9bnVsbDticmVha31kZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVHlwZSBpcyBub3Qgc3VwcG9ydGVkIGFzIGEgVHlwZWRBcnJheSIpfXJldHVybiBlfXZhciBxPWNyO3ZhciBSZT10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcj09ImZ1bmN0aW9uIixTZT1uZXcgVGV4dEVuY29kZXIsRmU9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpO2Z1bmN0aW9uIGZyKEEsdCl7bGV0IGU9e2ZsYWdzOiJyIixlbmNvZGluZzoiYmluYXJ5In0sST1BLmZzX29wZW4odCxlLmZsYWdzKSxnPUEuZnNfc3RhdCh0KS5zaXplLG89bnVsbDtSZT9vPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihnKTpvPW5ldyBBcnJheUJ1ZmZlcihnKTtsZXQgbj1uZXcgVWludDhBcnJheShvKTtyZXR1cm4gQS5mc19yZWFkKEksbiwwLGcsMCksQS5mc19jbG9zZShJKSxufWZ1bmN0aW9uIE5lKEEsdCxlKXtsZXQgST1udWxsO1JlP0k9bmV3IFNoYXJlZEFycmF5QnVmZmVyKGUpOkk9bmV3IEFycmF5QnVmZmVyKGUpO2xldCByPW5ldyBVaW50OEFycmF5KEkpLGc9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLHQsZSk7cmV0dXJuIHIuc2V0KGcpLHJ9ZnVuY3Rpb24gdyhBLHQsZSxJKXtsZXQgcj0wO3JldHVybiB0IT09bnVsbCYmKHI9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfYXJyYXlfYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSxJLHQuYnVmZmVyLmJ5dGVMZW5ndGhdKSxBLkhFQVBVOC5zZXQobmV3IFVpbnQ4QXJyYXkodC5idWZmZXIpLHIpKSxyfWZ1bmN0aW9uIHgoQSx0LGUpe2xldCBJPUpTT04uc3RyaW5naWZ5KHQpLHI9QS5sZW5ndGhCeXRlc1VURjgoSSkrMSxnPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2pzb25fYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSxyXSk7QS5zdHJpbmdUb1VURjgoSSxnLHIpfWZ1bmN0aW9uIFMoQSx0LGUsSSl7bGV0IHI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxlXSksZz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LGVdKSxvPU5lKEEscixnKTtyZXR1cm4gcShJLG8uYnVmZmVyKX1mdW5jdGlvbiB1QShBLHQpe2xldCBlPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9qc29uX2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIl0sWzAsdF0pLEk9QS5VVEY4VG9TdHJpbmcoZSk7cmV0dXJuIEpTT04ucGFyc2UoSSl9ZnVuY3Rpb24gbHIoQSx0LGUsSSl7SSE9bnVsbCYmSS5sZW5ndGg+MCYmSS5mb3JFYWNoKGZ1bmN0aW9uKEIscyl7c3dpdGNoKEIudHlwZSl7Y2FzZSBkLlRleHRTdHJlYW06e2xldCBDPVNlLmVuY29kZShCLmRhdGEuZGF0YSksbD13KEEsQyxzLDApLGE9e3NpemU6Qy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTt4KEEsYSxzKTticmVha31jYXNlIGQuSnNvbkNvbXBhdGlibGU6e2xldCBDPVNlLmVuY29kZShKU09OLnN0cmluZ2lmeShCLmRhdGEpKSxsPXcoQSxDLHMsMCksYT17c2l6ZTpDLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O3goQSxhLHMpO2JyZWFrfWNhc2UgZC5CaW5hcnlTdHJlYW06e2xldCBDPUIuZGF0YS5kYXRhLGw9dyhBLEMscywwKSxhPXtzaXplOkMuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07eChBLGEscyk7YnJlYWt9Y2FzZSBkLlRleHRGaWxlOntBLmZzX3dyaXRlRmlsZShCLmRhdGEucGF0aCxCLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBkLkJpbmFyeUZpbGU6e0EuZnNfd3JpdGVGaWxlKEIuZGF0YS5wYXRoLEIuZGF0YS5kYXRhKTticmVha31jYXNlIGQuSW1hZ2U6e2xldCBDPUIuZGF0YSxsPXcoQSxDLmRhdGEscywwKSxhPXcoQSxDLmRpcmVjdGlvbixzLDEpLFE9dHlwZW9mIEMubWV0YWRhdGE/LmVudHJpZXM8InUiP0FycmF5LmZyb20oQy5tZXRhZGF0YS5lbnRyaWVzKCkpOltdLGY9e2ltYWdlVHlwZTpDLmltYWdlVHlwZSxuYW1lOkMubmFtZSxvcmlnaW46Qy5vcmlnaW4sc3BhY2luZzpDLnNwYWNpbmcsZGlyZWN0aW9uOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7YX1gLHNpemU6Qy5zaXplLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbWV0YWRhdGE6UX07eChBLGYscyk7YnJlYWt9Y2FzZSBkLk1lc2g6e2xldCBDPUIuZGF0YSxsPXcoQSxDLnBvaW50cyxzLDApLGE9dyhBLEMuY2VsbHMscywxKSxRPXcoQSxDLnBvaW50RGF0YSxzLDIpLGY9dyhBLEMuY2VsbERhdGEscywzKSxjPXttZXNoVHlwZTpDLm1lc2hUeXBlLG5hbWU6Qy5uYW1lLG51bWJlck9mUG9pbnRzOkMubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG51bWJlck9mQ2VsbHM6Qy5udW1iZXJPZkNlbGxzLGNlbGxzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7YX1gLGNlbGxCdWZmZXJTaXplOkMuY2VsbEJ1ZmZlclNpemUsbnVtYmVyT2ZQb2ludFBpeGVsczpDLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLG51bWJlck9mQ2VsbFBpeGVsczpDLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YH07eChBLGMscyk7YnJlYWt9Y2FzZSBkLlBvaW50U2V0OntsZXQgQz1CLmRhdGEsbD13KEEsQy5wb2ludHMscywwKSxhPXcoQSxDLnBvaW50RGF0YSxzLDEpLFE9e3BvaW50U2V0VHlwZTpDLnBvaW50U2V0VHlwZSxuYW1lOkMubmFtZSxudW1iZXJPZlBvaW50czpDLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxudW1iZXJPZlBvaW50UGl4ZWxzOkMubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHthfWB9O3goQSxRLHMpO2JyZWFrfWNhc2UgZC5UcmFuc2Zvcm1MaXN0OntsZXQgQz1CLmRhdGEsbD1bXSxhPTA7Qy5mb3JFYWNoKFE9PntsZXQgZj0iIixjPSIiO1EudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihmPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dyhBLFEuZml4ZWRQYXJhbWV0ZXJzLHMsYSl9YCxhKz0xLGM9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt3KEEsUS5wYXJhbWV0ZXJzLHMsYSl9YCxhKz0xKTtsZXQgRD17dHJhbnNmb3JtVHlwZTpRLnRyYW5zZm9ybVR5cGUsbnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM6US5udW1iZXJPZkZpeGVkUGFyYW1ldGVycyxudW1iZXJPZlBhcmFtZXRlcnM6US5udW1iZXJPZlBhcmFtZXRlcnMsbmFtZTpRLm5hbWUsaW5wdXRTcGFjZU5hbWU6US5pbnB1dFNwYWNlTmFtZSxvdXRwdXRTcGFjZU5hbWU6US5vdXRwdXRTcGFjZU5hbWUscGFyYW1ldGVyczpjLGZpeGVkUGFyYW1ldGVyczpmfTtsLnB1c2goRCl9KSx4KEEsbCxzKTticmVha31jYXNlIGQuUG9seURhdGE6e2xldCBDPUIuZGF0YSxsPXcoQSxDLnBvaW50cyxzLDApLGE9dyhBLEMudmVydGljZXMscywxKSxRPXcoQSxDLmxpbmVzLHMsMiksZj13KEEsQy5wb2x5Z29ucyxzLDMpLGM9dyhBLEMudHJpYW5nbGVTdHJpcHMscyw0KSxEPXcoQSxDLnBvaW50RGF0YSxzLDUpLEY9dyhBLEMucG9pbnREYXRhLHMsNikseT17cG9seURhdGFUeXBlOkMucG9seURhdGFUeXBlLG5hbWU6Qy5uYW1lLG51bWJlck9mUG9pbnRzOkMubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLHZlcnRpY2VzQnVmZmVyU2l6ZTpDLnZlcnRpY2VzQnVmZmVyU2l6ZSx2ZXJ0aWNlczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2F9YCxsaW5lc0J1ZmZlclNpemU6Qy5saW5lc0J1ZmZlclNpemUsbGluZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAscG9seWdvbnNCdWZmZXJTaXplOkMucG9seWdvbnNCdWZmZXJTaXplLHBvbHlnb25zOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gLHRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZTpDLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZSx0cmlhbmdsZVN0cmlwczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YCxudW1iZXJPZlBvaW50UGl4ZWxzOkMubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtEfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOkMubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Rn1gfTt4KEEseSxzKTticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBpbnB1dCBJbnRlcmZhY2VUeXBlIil9fSksQS5yZXNldE1vZHVsZVN0ZG91dCgpLEEucmVzZXRNb2R1bGVTdGRlcnIoKTtsZXQgcj1BLnN0YWNrU2F2ZSgpLGc9MDt0cnl7Zz1BLmNhbGxNYWluKHQuc2xpY2UoKSl9Y2F0Y2goQil7dGhyb3cgdHlwZW9mIEI9PSJudW1iZXIiJiYoY29uc29sZS5sb2coIkV4Y2VwdGlvbiB3aGlsZSBydW5uaW5nIHBpcGVsaW5lOiIpLGNvbnNvbGUubG9nKCJzdGRvdXQ6IixBLmdldE1vZHVsZVN0ZG91dCgpKSxjb25zb2xlLmVycm9yKCJzdGRlcnI6IixBLmdldE1vZHVsZVN0ZGVycigpKSx0eXBlb2YgQS5nZXRFeGNlcHRpb25NZXNzYWdlPCJ1Ij9jb25zb2xlLmVycm9yKCJleGNlcHRpb246IixBLmdldEV4Y2VwdGlvbk1lc3NhZ2UoQikpOmNvbnNvbGUuZXJyb3IoIkJ1aWxkIG1vZHVsZSBpbiBEZWJ1ZyBtb2RlIGZvciBleGNlcHRpb24gbWVzc2FnZSBpbmZvcm1hdGlvbi4iKSksQn1maW5hbGx5e0Euc3RhY2tSZXN0b3JlKHIpfWxldCBvPUEuZ2V0TW9kdWxlU3Rkb3V0KCksbj1BLmdldE1vZHVsZVN0ZGVycigpLEU9W107cmV0dXJuIGUhPW51bGwmJmUubGVuZ3RoPjAmJmc9PT0wJiZlLmZvckVhY2goZnVuY3Rpb24oQixzKXtsZXQgQz1udWxsO3N3aXRjaChCLnR5cGUpe2Nhc2UgZC5UZXh0U3RyZWFtOntsZXQgYT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLGY9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLGEsUSk7Qz17ZGF0YTpGZS5kZWNvZGUoZil9O2JyZWFrfWNhc2UgZC5Kc29uQ29tcGF0aWJsZTp7bGV0IGE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxmPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixhLFEpO0M9SlNPTi5wYXJzZShGZS5kZWNvZGUoZikpO2JyZWFrfWNhc2UgZC5CaW5hcnlTdHJlYW06e2xldCBhPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSk7Qz17ZGF0YTpOZShBLGEsUSl9O2JyZWFrfWNhc2UgZC5UZXh0RmlsZTp7Qz17cGF0aDpCLmRhdGEucGF0aCxkYXRhOkEuZnNfcmVhZEZpbGUoQi5kYXRhLnBhdGgse2VuY29kaW5nOiJ1dGY4In0pfTticmVha31jYXNlIGQuQmluYXJ5RmlsZTp7Qz17cGF0aDpCLmRhdGEucGF0aCxkYXRhOmZyKEEsQi5kYXRhLnBhdGgpfTticmVha31jYXNlIGQuSW1hZ2U6e2xldCBhPXVBKEEscyk7YS5kYXRhPVMoQSxzLDAsYS5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSksYS5kaXJlY3Rpb249UyhBLHMsMSxWLkZsb2F0NjQpLGEubWV0YWRhdGE9bmV3IE1hcChhLm1ldGFkYXRhKSxDPWE7YnJlYWt9Y2FzZSBkLk1lc2g6e2xldCBhPXVBKEEscyk7YS5udW1iZXJPZlBvaW50cz4wP2EucG9pbnRzPVMoQSxzLDAsYS5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUpOmEucG9pbnRzPXEoYS5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mQ2VsbHM+MD9hLmNlbGxzPVMoQSxzLDEsYS5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSk6YS5jZWxscz1xKGEubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mUG9pbnRQaXhlbHM+MD9hLnBvaW50RGF0YT1TKEEscywyLGEubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOmEucG9pbnREYXRhPXEoYS5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/YS5jZWxsRGF0YT1TKEEscywzLGEubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6YS5jZWxsRGF0YT1xKGEubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEM9YTticmVha31jYXNlIGQuUG9pbnRTZXQ6e2xldCBhPXVBKEEscyk7YS5udW1iZXJPZlBvaW50cz4wP2EucG9pbnRzPVMoQSxzLDAsYS5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTphLnBvaW50cz1xKGEucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZQb2ludFBpeGVscz4wP2EucG9pbnREYXRhPVMoQSxzLDEsYS5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOmEucG9pbnREYXRhPXEoYS5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDPWE7YnJlYWt9Y2FzZSBkLlRyYW5zZm9ybUxpc3Q6e2xldCBhPXVBKEEscyksUT0wO2EuZm9yRWFjaCgoZixjKT0+e2YudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihmLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzPjAmJihhW2NdLmZpeGVkUGFyYW1ldGVycz1TKEEscyxRLFYuRmxvYXQ2NCkpLFErPTEsZi5udW1iZXJPZlBhcmFtZXRlcnM+MCYmKGFbY10ucGFyYW1ldGVycz1TKEEscyxRLGYudHJhbnNmb3JtVHlwZS5wYXJhbWV0ZXJzVmFsdWVUeXBlKSksUSs9MSl9KSxDPWE7YnJlYWt9Y2FzZSBkLlBvbHlEYXRhOntsZXQgYT11QShBLHMpO2EubnVtYmVyT2ZQb2ludHM+MD9hLnBvaW50cz1TKEEscywwLFYuRmxvYXQzMik6YS5wb2ludHM9bmV3IEZsb2F0MzJBcnJheSxhLnZlcnRpY2VzQnVmZmVyU2l6ZT4wP2EudmVydGljZXM9UyhBLHMsMSxVLlVJbnQzMik6YS52ZXJ0aWNlcz1uZXcgVWludDMyQXJyYXksYS5saW5lc0J1ZmZlclNpemU+MD9hLmxpbmVzPVMoQSxzLDIsVS5VSW50MzIpOmEubGluZXM9bmV3IFVpbnQzMkFycmF5LGEucG9seWdvbnNCdWZmZXJTaXplPjA/YS5wb2x5Z29ucz1TKEEscywzLFUuVUludDMyKTphLnBvbHlnb25zPW5ldyBVaW50MzJBcnJheSxhLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZT4wP2EudHJpYW5nbGVTdHJpcHM9UyhBLHMsNCxVLlVJbnQzMik6YS50cmlhbmdsZVN0cmlwcz1uZXcgVWludDMyQXJyYXksYS5udW1iZXJPZlBvaW50UGl4ZWxzPjA/YS5wb2ludERhdGE9UyhBLHMsNSxhLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6YS5wb2ludERhdGE9cShhLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/YS5jZWxsRGF0YT1TKEEscyw2LGEucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOmEuY2VsbERhdGE9cShhLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQz1hO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIG91dHB1dCBJbnRlcmZhY2VUeXBlIil9bGV0IGw9e3R5cGU6Qi50eXBlLGRhdGE6Q307RS5wdXNoKGwpfSkse3JldHVyblZhbHVlOmcsc3Rkb3V0Om8sc3RkZXJyOm4sb3V0cHV0czpFfX12YXIgVWU9bHI7dmFyIHVyPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPCJ1IjtmdW5jdGlvbiBkcihBLHQpe2lmKEE9PW51bGwpcmV0dXJuW107bGV0IGU9W107Zm9yKGxldCBJPTA7STxBLmxlbmd0aDtJKyspe2xldCByPURyKEFbSV0sdCk7ciE9PW51bGwmJmUucHVzaChyKX1yZXR1cm4gZX1mdW5jdGlvbiBEcihBLHQpe2lmKEE9PW51bGwpcmV0dXJuIG51bGw7bGV0IGU9bnVsbDtyZXR1cm4gQS5idWZmZXIhPT12b2lkIDA/ZT1BLmJ1ZmZlcjpBLmJ5dGVMZW5ndGghPT12b2lkIDAmJihlPUEpLHVyJiZlIGluc3RhbmNlb2YgU2hhcmVkQXJyYXlCdWZmZXI/bnVsbDp0P2U6ZS5zbGljZSgwKX12YXIgR2U9ZHI7ZnVuY3Rpb24gaHIoQSl7cmV0dXJuW0EuZGF0YSxBLmRpcmVjdGlvbl19dmFyIGtlPWhyO2Z1bmN0aW9uIHlyKEEpe3JldHVybltBLnBvaW50cyxBLnBvaW50RGF0YSxBLmNlbGxzLEEuY2VsbERhdGFdfXZhciBMZT15cjtmdW5jdGlvbiBtcihBKXtyZXR1cm5bQS5wb2ludHMsQS52ZXJ0aWNlcyxBLmxpbmVzLEEucG9seWdvbnMsQS50cmlhbmdsZVN0cmlwcyxBLnBvaW50RGF0YSxBLmNlbGxEYXRhXX12YXIgYmU9bXI7YXN5bmMgZnVuY3Rpb24gd3IoQSx0LGUsSSl7bGV0IHI9VWUoQSx0LGUsSSksZz1bXTtyZXR1cm4gci5vdXRwdXRzLmZvckVhY2goZnVuY3Rpb24obyl7aWYoby50eXBlPT09ZC5CaW5hcnlTdHJlYW18fG8udHlwZT09PWQuQmluYXJ5RmlsZSl7bGV0IG49by5kYXRhO2cucHVzaChuKX1lbHNlIGlmKG8udHlwZT09PWQuSW1hZ2Upe2xldCBuPW8uZGF0YTtnLnB1c2goLi4ua2UobikpfWVsc2UgaWYoby50eXBlPT09ZC5NZXNoKXtsZXQgbj1vLmRhdGE7Zy5wdXNoKC4uLkxlKG4pKX1lbHNlIGlmKG8udHlwZT09PWQuUG9seURhdGEpe2xldCBuPW8uZGF0YTtnLnB1c2goLi4uYmUobikpfX0pLF9BKHIsR2UoZywhMCkpfXZhciBKZT13cjt2YXIgcHI9e3J1blBpcGVsaW5lOmFzeW5jIGZ1bmN0aW9uKEEsdCxlLEkscixnKXtsZXQgbz1hd2FpdCBwZShBLHQsZyk7cmV0dXJuIGF3YWl0IEplKG8sZSxJLHIpfX07RkEocHIpOyUwQS8qISBCdW5kbGVkIGxpY2Vuc2UgaW5mb3JtYXRpb246JTBBJTBBY29tbGluay9kaXN0L2VzbS9jb21saW5rLm1qczolMEEgICgqKiUwQSAgICogQGxpY2Vuc2UlMEEgICAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMlMEEgICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wJTBBICAgKiklMEEqLyUwQSc7c3IoUXIpO2V4cG9ydHtsSSBhcyBhcHBseVByZXNlbnRhdGlvblN0YXRlVG9JbWFnZSxrIGFzIGdldERlZmF1bHRXZWJXb3JrZXIseSBhcyBnZXRQaXBlbGluZVdvcmtlclVybCx3IGFzIGdldFBpcGVsaW5lc0Jhc2VVcmwsdUkgYXMgcmVhZERpY29tRW5jYXBzdWxhdGVkUGRmLHlJIGFzIHJlYWREaWNvbVRhZ3MsRkkgYXMgcmVhZEltYWdlRGljb21GaWxlU2VyaWVzLHhlIGFzIHJlYWRJbWFnZURpY29tRmlsZVNlcmllc1dvcmtlckZ1bmN0aW9uLE5JIGFzIHJlYWRPdmVybGFwcGluZ1NlZ21lbnRhdGlvbixrSSBhcyByZWFkU2VnbWVudGF0aW9uLGJzIGFzIHNldERlZmF1bHRXZWJXb3JrZXIsc3IgYXMgc2V0UGlwZWxpbmVXb3JrZXJVcmwsU3MgYXMgc2V0UGlwZWxpbmVzQmFzZVVybCxwSSBhcyBzdHJ1Y3R1cmVkUmVwb3J0VG9IdG1sLG1JIGFzIHN0cnVjdHVyZWRSZXBvcnRUb1RleHQsZWUgYXMgdmVyc2lvbixISSBhcyB3cml0ZU11bHRpU2VnbWVudGF0aW9uLEpJIGFzIHdyaXRlT3ZlcmxhcHBpbmdTZWdtZW50YXRpb24sVEkgYXMgd3JpdGVSdFN0cnVjdCxiSSBhcyB3cml0ZVNlZ21lbnRhdGlvbn07Ci8qISBCdW5kbGVkIGxpY2Vuc2UgaW5mb3JtYXRpb246Cgpjb21saW5rL2Rpc3QvZXNtL2NvbWxpbmsubWpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IDIwMTkgR29vZ2xlIExMQwogICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiAgICopCiovCg==""" default_config = JsPackageConfig(default_js_module) js_package = JsPackage(default_config) diff --git a/packages/dicom/python/itkwasm-dicom-wasi/itkwasm_dicom_wasi/_version.py b/packages/dicom/python/itkwasm-dicom-wasi/itkwasm_dicom_wasi/_version.py index 710849887..41bff596f 100644 --- a/packages/dicom/python/itkwasm-dicom-wasi/itkwasm_dicom_wasi/_version.py +++ b/packages/dicom/python/itkwasm-dicom-wasi/itkwasm_dicom_wasi/_version.py @@ -1 +1 @@ -__version__ = "7.6.3" +__version__ = "7.6.4" diff --git a/packages/dicom/python/itkwasm-dicom/itkwasm_dicom/_version.py b/packages/dicom/python/itkwasm-dicom/itkwasm_dicom/_version.py index 710849887..41bff596f 100644 --- a/packages/dicom/python/itkwasm-dicom/itkwasm_dicom/_version.py +++ b/packages/dicom/python/itkwasm-dicom/itkwasm_dicom/_version.py @@ -1 +1 @@ -__version__ = "7.6.3" +__version__ = "7.6.4" diff --git a/packages/dicom/typescript/package.json b/packages/dicom/typescript/package.json index f70a893a9..8cd118d6d 100644 --- a/packages/dicom/typescript/package.json +++ b/packages/dicom/typescript/package.json @@ -1,6 +1,6 @@ { "name": "@itk-wasm/dicom", - "version": "7.6.3", + "version": "7.6.4", "description": "Read files and images related to DICOM file format.", "type": "module", "module": "./dist/index.js", diff --git a/packages/dicom/typescript/src/read-dicom-tags-node.ts b/packages/dicom/typescript/src/read-dicom-tags-node.ts index 47cce5720..89b0e156b 100644 --- a/packages/dicom/typescript/src/read-dicom-tags-node.ts +++ b/packages/dicom/typescript/src/read-dicom-tags-node.ts @@ -3,14 +3,14 @@ import { InterfaceTypes, PipelineOutput, PipelineInput, - runPipelineNode -} from 'itk-wasm' + runPipelineNode, +} from "itk-wasm"; -import ReadDicomTagsOptions from './read-dicom-tags-options.js' -import ReadDicomTagsNodeResult from './read-dicom-tags-node-result.js' +import ReadDicomTagsOptions from "./read-dicom-tags-options.js"; +import ReadDicomTagsNodeResult from "./read-dicom-tags-node-result.js"; - -import path from 'path' +import path from "path"; +import { fileURLToPath } from "url"; /** * Read the tags from a DICOM file @@ -23,51 +23,58 @@ import path from 'path' async function readDicomTagsNode( dicomFile: string, options: ReadDicomTagsOptions = {} -) : Promise { - - const mountDirs: Set = new Set() +): Promise { + const mountDirs: Set = new Set(); const desiredOutputs: Array = [ { type: InterfaceTypes.JsonCompatible }, - ] + ]; - mountDirs.add(path.dirname(dicomFile as string)) - const inputs: Array = [ - ] + mountDirs.add(path.dirname(dicomFile as string)); + const inputs: Array = []; - const args = [] + const args = []; // Inputs - const dicomFileName = dicomFile - args.push(dicomFileName as string) + const dicomFileName = dicomFile; + args.push(dicomFileName as string); // Outputs - const tagsName = '0' - args.push(tagsName) + const tagsName = "0"; + args.push(tagsName); // Options - args.push('--memory-io') + args.push("--memory-io"); if (typeof options.tagsToRead !== "undefined") { - const inputCountString = inputs.length.toString() - inputs.push({ type: InterfaceTypes.JsonCompatible, data: options.tagsToRead as JsonCompatible }) - args.push('--tags-to-read', inputCountString) - + const inputCountString = inputs.length.toString(); + inputs.push({ + type: InterfaceTypes.JsonCompatible, + data: options.tagsToRead as JsonCompatible, + }); + args.push("--tags-to-read", inputCountString); } - const pipelinePath = path.join(path.dirname(import.meta.url.substring(7)), 'pipelines', 'read-dicom-tags') + const pipelinePath = path.join( + fileURLToPath(import.meta.url), + "..", + "pipelines", + "read-dicom-tags" + ); - const { - returnValue, - stderr, - outputs - } = await runPipelineNode(pipelinePath, args, desiredOutputs, inputs, mountDirs) + const { returnValue, stderr, outputs } = await runPipelineNode( + pipelinePath, + args, + desiredOutputs, + inputs, + mountDirs + ); if (returnValue !== 0) { - throw new Error(stderr) + throw new Error(stderr); } const result = { tags: outputs[0].data as [string, string][], - } - return result + }; + return result; } -export default readDicomTagsNode +export default readDicomTagsNode; diff --git a/packages/downsample/package.json b/packages/downsample/package.json index d5188cd6e..3c2737052 100644 --- a/packages/downsample/package.json +++ b/packages/downsample/package.json @@ -1,6 +1,6 @@ { "name": "@itk-wasm/downsample-build", - "version": "1.8.0", + "version": "1.8.1", "private": true, "description": "Pipelines for downsampling images.", "type": "module", diff --git a/packages/downsample/python/itkwasm-downsample-emscripten/itkwasm_downsample_emscripten/_version.py b/packages/downsample/python/itkwasm-downsample-emscripten/itkwasm_downsample_emscripten/_version.py index 29654eec0..2d986fc50 100644 --- a/packages/downsample/python/itkwasm-downsample-emscripten/itkwasm_downsample_emscripten/_version.py +++ b/packages/downsample/python/itkwasm-downsample-emscripten/itkwasm_downsample_emscripten/_version.py @@ -1 +1 @@ -__version__ = "1.8.0" +__version__ = "1.8.1" diff --git a/packages/downsample/python/itkwasm-downsample-emscripten/itkwasm_downsample_emscripten/js_package.py b/packages/downsample/python/itkwasm-downsample-emscripten/itkwasm_downsample_emscripten/js_package.py index 2faab6f53..74dd493aa 100644 --- a/packages/downsample/python/itkwasm-downsample-emscripten/itkwasm_downsample_emscripten/js_package.py +++ b/packages/downsample/python/itkwasm-downsample-emscripten/itkwasm_downsample_emscripten/js_package.py @@ -3,6 +3,6 @@ from itkwasm.pyodide import JsPackageConfig, JsPackage from ._version import __version__ -default_js_module = """data:text/javascript;base64,dmFyIHJJPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgZ0k9KEEsZSk9Pntmb3IodmFyIHQgaW4gZSlySShBLHQse2dldDplW3RdLGVudW1lcmFibGU6ITB9KX07dmFyIGlJPSIxLjguMCIsZWU9aUk7dmFyIG9JPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0saz1vSTt2YXIgbkk9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LFg9bkk7ZnVuY3Rpb24gYUkoQSxlKXtsZXQgdD1udWxsO3N3aXRjaChBKXtjYXNlIGsuVUludDg6e3Q9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBrLkludDg6e3Q9bmV3IEludDhBcnJheShlKTticmVha31jYXNlIGsuVUludDE2Ont0PW5ldyBVaW50MTZBcnJheShlKTticmVha31jYXNlIGsuSW50MTY6e3Q9bmV3IEludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBrLlVJbnQzMjp7dD1uZXcgVWludDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSBrLkludDMyOnt0PW5ldyBJbnQzMkFycmF5KGUpO2JyZWFrfWNhc2Ugay5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ1VpbnQ2NEFycmF5KGUpOnQ9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBrLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ0ludDY0QXJyYXkoZSk6dD1uZXcgVWludDhBcnJheShlKTticmVha31jYXNlIFguRmxvYXQzMjp7dD1uZXcgRmxvYXQzMkFycmF5KGUpO2JyZWFrfWNhc2UgWC5GbG9hdDY0Ont0PW5ldyBGbG9hdDY0QXJyYXkoZSk7YnJlYWt9Y2FzZSJudWxsIjp7dD1udWxsO2JyZWFrfWNhc2UgbnVsbDp7dD1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIHR9dmFyIEg9YUk7dmFyIHNJPXtUZXh0RmlsZToiVGV4dEZpbGUiLEJpbmFyeUZpbGU6IkJpbmFyeUZpbGUiLFRleHRTdHJlYW06IlRleHRTdHJlYW0iLEJpbmFyeVN0cmVhbToiQmluYXJ5U3RyZWFtIixJbWFnZToiSW1hZ2UiLFBvaW50U2V0OiJQb2ludFNldCIsTWVzaDoiTWVzaCIsUG9seURhdGE6IlBvbHlEYXRhIixUcmFuc2Zvcm1MaXN0OiJUcmFuc2Zvcm1MaXN0IixKc29uQ29tcGF0aWJsZToiSnNvbkNvbXBhdGlibGUifSxkPXNJO3ZhciBUZT1TeW1ib2woIkNvbWxpbmsucHJveHkiKSxDST1TeW1ib2woIkNvbWxpbmsuZW5kcG9pbnQiKSxyZT1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksdGU9U3ltYm9sKCJDb21saW5rLmZpbmFsaXplciIpLFVBPVN5bWJvbCgiQ29tbGluay50aHJvd24iKSx4ZT1BPT50eXBlb2YgQT09Im9iamVjdCImJkEhPT1udWxsfHx0eXBlb2YgQT09ImZ1bmN0aW9uIixCST17Y2FuSGFuZGxlOkE9PnhlKEEpJiZBW1RlXSxzZXJpYWxpemUoQSl7bGV0e3BvcnQxOmUscG9ydDI6dH09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiBXZShBLGUpLFt0LFt0XV19LGRlc2VyaWFsaXplKEEpe3JldHVybiBBLnN0YXJ0KCksZ2UoQSl9fSxRST17Y2FuSGFuZGxlOkE9PnhlKEEpJiZVQSBpbiBBLHNlcmlhbGl6ZSh7dmFsdWU6QX0pe2xldCBlO3JldHVybiBBIGluc3RhbmNlb2YgRXJyb3I/ZT17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTpBLm1lc3NhZ2UsbmFtZTpBLm5hbWUsc3RhY2s6QS5zdGFja319OmU9e2lzRXJyb3I6ITEsdmFsdWU6QX0sW2UsW11dfSxkZXNlcmlhbGl6ZShBKXt0aHJvdyBBLmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoQS52YWx1ZS5tZXNzYWdlKSxBLnZhbHVlKTpBLnZhbHVlfX0sUGU9bmV3IE1hcChbWyJwcm94eSIsQkldLFsidGhyb3ciLFFJXV0pO2Z1bmN0aW9uIEVJKEEsZSl7Zm9yKGxldCB0IG9mIEEpaWYoZT09PXR8fHQ9PT0iKiJ8fHQgaW5zdGFuY2VvZiBSZWdFeHAmJnQudGVzdChlKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBXZShBLGU9Z2xvYmFsVGhpcyx0PVsiKiJdKXtlLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIEkocil7aWYoIXJ8fCFyLmRhdGEpcmV0dXJuO2lmKCFFSSh0LHIub3JpZ2luKSl7Y29uc29sZS53YXJuKGBJbnZhbGlkIG9yaWdpbiAnJHtyLm9yaWdpbn0nIGZvciBjb21saW5rIHByb3h5YCk7cmV0dXJufWxldHtpZDppLHR5cGU6ZyxwYXRoOnN9PU9iamVjdC5hc3NpZ24oe3BhdGg6W119LHIuZGF0YSksRT0oci5kYXRhLmFyZ3VtZW50TGlzdHx8W10pLm1hcCh6KSxDO3RyeXtsZXQgbz1zLnNsaWNlKDAsLTEpLnJlZHVjZSgoYyxCKT0+Y1tCXSxBKSxhPXMucmVkdWNlKChjLEIpPT5jW0JdLEEpO3N3aXRjaChnKXtjYXNlIkdFVCI6Qz1hO2JyZWFrO2Nhc2UiU0VUIjpvW3Muc2xpY2UoLTEpWzBdXT16KHIuZGF0YS52YWx1ZSksQz0hMDticmVhaztjYXNlIkFQUExZIjpDPWEuYXBwbHkobyxFKTticmVhaztjYXNlIkNPTlNUUlVDVCI6e2xldCBjPW5ldyBhKC4uLkUpO0M9ZEkoYyl9YnJlYWs7Y2FzZSJFTkRQT0lOVCI6e2xldHtwb3J0MTpjLHBvcnQyOkJ9PW5ldyBNZXNzYWdlQ2hhbm5lbDtXZShBLEIpLEM9aWUoYyxbY10pfWJyZWFrO2Nhc2UiUkVMRUFTRSI6Qz12b2lkIDA7YnJlYWs7ZGVmYXVsdDpyZXR1cm59fWNhdGNoKG8pe0M9e3ZhbHVlOm8sW1VBXTowfX1Qcm9taXNlLnJlc29sdmUoQykuY2F0Y2gobz0+KHt2YWx1ZTpvLFtVQV06MH0pKS50aGVuKG89PntsZXRbYSxjXT1MQShvKTtlLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxhKSx7aWQ6aX0pLGMpLGc9PT0iUkVMRUFTRSImJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLEkpLGplKGUpLHRlIGluIEEmJnR5cGVvZiBBW3RlXT09ImZ1bmN0aW9uIiYmQVt0ZV0oKSl9KS5jYXRjaChvPT57bGV0W2EsY109TEEoe3ZhbHVlOm5ldyBUeXBlRXJyb3IoIlVuc2VyaWFsaXphYmxlIHJldHVybiB2YWx1ZSIpLFtVQV06MH0pO2UucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGEpLHtpZDppfSksYyl9KX0pLGUuc3RhcnQmJmUuc3RhcnQoKX1mdW5jdGlvbiBsSShBKXtyZXR1cm4gQS5jb25zdHJ1Y3Rvci5uYW1lPT09Ik1lc3NhZ2VQb3J0In1mdW5jdGlvbiBqZShBKXtsSShBKSYmQS5jbG9zZSgpfWZ1bmN0aW9uIGdlKEEsZSl7cmV0dXJuIEllKEEsW10sZSl9ZnVuY3Rpb24ga0EoQSl7aWYoQSl0aHJvdyBuZXcgRXJyb3IoIlByb3h5IGhhcyBiZWVuIHJlbGVhc2VkIGFuZCBpcyBub3QgdXNlYWJsZSIpfWZ1bmN0aW9uIHZlKEEpe3JldHVybiBBQShBLHt0eXBlOiJSRUxFQVNFIn0pLnRoZW4oKCk9PntqZShBKX0pfXZhciBOQT1uZXcgV2Vha01hcCxHQT0iRmluYWxpemF0aW9uUmVnaXN0cnkiaW4gZ2xvYmFsVGhpcyYmbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KEE9PntsZXQgZT0oTkEuZ2V0KEEpfHwwKS0xO05BLnNldChBLGUpLGU9PT0wJiZ2ZShBKX0pO2Z1bmN0aW9uIGNJKEEsZSl7bGV0IHQ9KE5BLmdldChlKXx8MCkrMTtOQS5zZXQoZSx0KSxHQSYmR0EucmVnaXN0ZXIoQSxlLEEpfWZ1bmN0aW9uIGZJKEEpe0dBJiZHQS51bnJlZ2lzdGVyKEEpfWZ1bmN0aW9uIEllKEEsZT1bXSx0PWZ1bmN0aW9uKCl7fSl7bGV0IEk9ITEscj1uZXcgUHJveHkodCx7Z2V0KGksZyl7aWYoa0EoSSksZz09PXJlKXJldHVybigpPT57ZkkociksdmUoQSksST0hMH07aWYoZz09PSJ0aGVuIil7aWYoZS5sZW5ndGg9PT0wKXJldHVybnt0aGVuOigpPT5yfTtsZXQgcz1BQShBLHt0eXBlOiJHRVQiLHBhdGg6ZS5tYXAoRT0+RS50b1N0cmluZygpKX0pLnRoZW4oeik7cmV0dXJuIHMudGhlbi5iaW5kKHMpfXJldHVybiBJZShBLFsuLi5lLGddKX0sc2V0KGksZyxzKXtrQShJKTtsZXRbRSxDXT1MQShzKTtyZXR1cm4gQUEoQSx7dHlwZToiU0VUIixwYXRoOlsuLi5lLGddLm1hcChvPT5vLnRvU3RyaW5nKCkpLHZhbHVlOkV9LEMpLnRoZW4oeil9LGFwcGx5KGksZyxzKXtrQShJKTtsZXQgRT1lW2UubGVuZ3RoLTFdO2lmKEU9PT1DSSlyZXR1cm4gQUEoQSx7dHlwZToiRU5EUE9JTlQifSkudGhlbih6KTtpZihFPT09ImJpbmQiKXJldHVybiBJZShBLGUuc2xpY2UoMCwtMSkpO2xldFtDLG9dPU9lKHMpO3JldHVybiBBQShBLHt0eXBlOiJBUFBMWSIscGF0aDplLm1hcChhPT5hLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpDfSxvKS50aGVuKHopfSxjb25zdHJ1Y3QoaSxnKXtrQShJKTtsZXRbcyxFXT1PZShnKTtyZXR1cm4gQUEoQSx7dHlwZToiQ09OU1RSVUNUIixwYXRoOmUubWFwKEM9PkMudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OnN9LEUpLnRoZW4oeil9fSk7cmV0dXJuIGNJKHIsQSkscn1mdW5jdGlvbiB1SShBKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxBKX1mdW5jdGlvbiBPZShBKXtsZXQgZT1BLm1hcChMQSk7cmV0dXJuW2UubWFwKHQ9PnRbMF0pLHVJKGUubWFwKHQ9PnRbMV0pKV19dmFyIFplPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIGllKEEsZSl7cmV0dXJuIFplLnNldChBLGUpLEF9ZnVuY3Rpb24gZEkoQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7W1RlXTohMH0pfWZ1bmN0aW9uIExBKEEpe2ZvcihsZXRbZSx0XW9mIFBlKWlmKHQuY2FuSGFuZGxlKEEpKXtsZXRbSSxyXT10LnNlcmlhbGl6ZShBKTtyZXR1cm5be3R5cGU6IkhBTkRMRVIiLG5hbWU6ZSx2YWx1ZTpJfSxyXX1yZXR1cm5be3R5cGU6IlJBVyIsdmFsdWU6QX0sWmUuZ2V0KEEpfHxbXV19ZnVuY3Rpb24geihBKXtzd2l0Y2goQS50eXBlKXtjYXNlIkhBTkRMRVIiOnJldHVybiBQZS5nZXQoQS5uYW1lKS5kZXNlcmlhbGl6ZShBLnZhbHVlKTtjYXNlIlJBVyI6cmV0dXJuIEEudmFsdWV9fWZ1bmN0aW9uIEFBKEEsZSx0KXtyZXR1cm4gbmV3IFByb21pc2UoST0+e2xldCByPXBJKCk7QS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBpKGcpeyFnLmRhdGF8fCFnLmRhdGEuaWR8fGcuZGF0YS5pZCE9PXJ8fChBLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGkpLEkoZy5kYXRhKSl9KSxBLnN0YXJ0JiZBLnN0YXJ0KCksQS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKHtpZDpyfSxlKSx0KX0pfWZ1bmN0aW9uIHBJKCl7cmV0dXJuIG5ldyBBcnJheSg0KS5maWxsKDApLm1hcCgoKT0+TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKk51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygxNikpLmpvaW4oIi0iKX1mdW5jdGlvbiBDQShBLGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBBLmFwcGx5KGUsYXJndW1lbnRzKX19dmFye3RvU3RyaW5nOmhJfT1PYmplY3QucHJvdG90eXBlLHtnZXRQcm90b3R5cGVPZjpuZX09T2JqZWN0LHtpdGVyYXRvcjpKQSx0b1N0cmluZ1RhZzp6ZX09U3ltYm9sLFlBPShBPT5lPT57bGV0IHQ9aEkuY2FsbChlKTtyZXR1cm4gQVt0XXx8KEFbdF09dC5zbGljZSg4LC0xKS50b0xvd2VyQ2FzZSgpKX0pKE9iamVjdC5jcmVhdGUobnVsbCkpLGI9QT0+KEE9QS50b0xvd2VyQ2FzZSgpLGU9PllBKGUpPT09QSksTUE9QT0+ZT0+dHlwZW9mIGU9PT1BLHtpc0FycmF5OnRBfT1BcnJheSxlQT1NQSgidW5kZWZpbmVkIik7ZnVuY3Rpb24gQkEoQSl7cmV0dXJuIEEhPT1udWxsJiYhZUEoQSkmJkEuY29uc3RydWN0b3IhPT1udWxsJiYhZUEoQS5jb25zdHJ1Y3RvcikmJlUoQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikmJkEuY29uc3RydWN0b3IuaXNCdWZmZXIoQSl9dmFyIF9lPWIoIkFycmF5QnVmZmVyIik7ZnVuY3Rpb24gREkoQSl7bGV0IGU7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJkFycmF5QnVmZmVyLmlzVmlldz9lPUFycmF5QnVmZmVyLmlzVmlldyhBKTplPUEmJkEuYnVmZmVyJiZfZShBLmJ1ZmZlciksZX12YXIgeUk9TUEoInN0cmluZyIpLFU9TUEoImZ1bmN0aW9uIiksJGU9TUEoIm51bWJlciIpLFFBPUE9PkEhPT1udWxsJiZ0eXBlb2YgQT09Im9iamVjdCIsd0k9QT0+QT09PSEwfHxBPT09ITEsYkE9QT0+e2lmKFlBKEEpIT09Im9iamVjdCIpcmV0dXJuITE7bGV0IGU9bmUoQSk7cmV0dXJuKGU9PT1udWxsfHxlPT09T2JqZWN0LnByb3RvdHlwZXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09bnVsbCkmJiEoemUgaW4gQSkmJiEoSkEgaW4gQSl9LG1JPUE9PntpZighUUEoQSl8fEJBKEEpKXJldHVybiExO3RyeXtyZXR1cm4gT2JqZWN0LmtleXMoQSkubGVuZ3RoPT09MCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKEEpPT09T2JqZWN0LnByb3RvdHlwZX1jYXRjaHtyZXR1cm4hMX19LFNJPWIoIkRhdGUiKSxGST1iKCJGaWxlIiksUkk9YigiQmxvYiIpLGtJPWIoIkZpbGVMaXN0IiksVUk9QT0+UUEoQSkmJlUoQS5waXBlKSxOST1BPT57bGV0IGU7cmV0dXJuIEEmJih0eXBlb2YgRm9ybURhdGE9PSJmdW5jdGlvbiImJkEgaW5zdGFuY2VvZiBGb3JtRGF0YXx8VShBLmFwcGVuZCkmJigoZT1ZQShBKSk9PT0iZm9ybWRhdGEifHxlPT09Im9iamVjdCImJlUoQS50b1N0cmluZykmJkEudG9TdHJpbmcoKT09PSJbb2JqZWN0IEZvcm1EYXRhXSIpKX0sR0k9YigiVVJMU2VhcmNoUGFyYW1zIiksW0xJLGJJLEpJLFlJXT1bIlJlYWRhYmxlU3RyZWFtIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiSGVhZGVycyJdLm1hcChiKSxNST1BPT5BLnRyaW0/QS50cmltKCk6QS5yZXBsYWNlKC9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZywiIik7ZnVuY3Rpb24gRUEoQSxlLHthbGxPd25LZXlzOnQ9ITF9PXt9KXtpZihBPT09bnVsbHx8dHlwZW9mIEE+InUiKXJldHVybjtsZXQgSSxyO2lmKHR5cGVvZiBBIT0ib2JqZWN0IiYmKEE9W0FdKSx0QShBKSlmb3IoST0wLHI9QS5sZW5ndGg7STxyO0krKyllLmNhbGwobnVsbCxBW0ldLEksQSk7ZWxzZXtpZihCQShBKSlyZXR1cm47bGV0IGk9dD9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKTpPYmplY3Qua2V5cyhBKSxnPWkubGVuZ3RoLHM7Zm9yKEk9MDtJPGc7SSsrKXM9aVtJXSxlLmNhbGwobnVsbCxBW3NdLHMsQSl9fWZ1bmN0aW9uIEF0KEEsZSl7aWYoQkEoQSkpcmV0dXJuIG51bGw7ZT1lLnRvTG93ZXJDYXNlKCk7bGV0IHQ9T2JqZWN0LmtleXMoQSksST10Lmxlbmd0aCxyO2Zvcig7SS0tID4wOylpZihyPXRbSV0sZT09PXIudG9Mb3dlckNhc2UoKSlyZXR1cm4gcjtyZXR1cm4gbnVsbH12YXIgXz10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6Z2xvYmFsLGV0PUE9PiFlQShBKSYmQSE9PV87ZnVuY3Rpb24gb2UoKXtsZXR7Y2FzZWxlc3M6QSxza2lwVW5kZWZpbmVkOmV9PWV0KHRoaXMpJiZ0aGlzfHx7fSx0PXt9LEk9KHIsaSk9PntsZXQgZz1BJiZBdCh0LGkpfHxpO2JBKHRbZ10pJiZiQShyKT90W2ddPW9lKHRbZ10scik6YkEocik/dFtnXT1vZSh7fSxyKTp0QShyKT90W2ddPXIuc2xpY2UoKTooIWV8fCFlQShyKSkmJih0W2ddPXIpfTtmb3IobGV0IHI9MCxpPWFyZ3VtZW50cy5sZW5ndGg7cjxpO3IrKylhcmd1bWVudHNbcl0mJkVBKGFyZ3VtZW50c1tyXSxJKTtyZXR1cm4gdH12YXIgSEk9KEEsZSx0LHthbGxPd25LZXlzOkl9PXt9KT0+KEVBKGUsKHIsaSk9Pnt0JiZVKHIpP0FbaV09Q0Eocix0KTpBW2ldPXJ9LHthbGxPd25LZXlzOkl9KSxBKSxxST1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLEtJPShBLGUsdCxJKT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUsSSksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTplLnByb3RvdHlwZX0pLHQmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsdCl9LE9JPShBLGUsdCxJKT0+e2xldCByLGksZyxzPXt9O2lmKGU9ZXx8e30sQT09bnVsbClyZXR1cm4gZTtkb3tmb3Iocj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxpPXIubGVuZ3RoO2ktLSA+MDspZz1yW2ldLCghSXx8SShnLEEsZSkpJiYhc1tnXSYmKGVbZ109QVtnXSxzW2ddPSEwKTtBPXQhPT0hMSYmbmUoQSl9d2hpbGUoQSYmKCF0fHx0KEEsZSkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIGV9LFRJPShBLGUsdCk9PntBPVN0cmluZyhBKSwodD09PXZvaWQgMHx8dD5BLmxlbmd0aCkmJih0PUEubGVuZ3RoKSx0LT1lLmxlbmd0aDtsZXQgST1BLmluZGV4T2YoZSx0KTtyZXR1cm4gSSE9PS0xJiZJPT09dH0seEk9QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKHRBKEEpKXJldHVybiBBO2xldCBlPUEubGVuZ3RoO2lmKCEkZShlKSlyZXR1cm4gbnVsbDtsZXQgdD1uZXcgQXJyYXkoZSk7Zm9yKDtlLS0gPjA7KXRbZV09QVtlXTtyZXR1cm4gdH0sUEk9KEE9PmU9PkEmJmUgaW5zdGFuY2VvZiBBKSh0eXBlb2YgVWludDhBcnJheTwidSImJm5lKFVpbnQ4QXJyYXkpKSxXST0oQSxlKT0+e2xldCBJPShBJiZBW0pBXSkuY2FsbChBKSxyO2Zvcig7KHI9SS5uZXh0KCkpJiYhci5kb25lOyl7bGV0IGk9ci52YWx1ZTtlLmNhbGwoQSxpWzBdLGlbMV0pfX0sakk9KEEsZSk9PntsZXQgdCxJPVtdO2Zvcig7KHQ9QS5leGVjKGUpKSE9PW51bGw7KUkucHVzaCh0KTtyZXR1cm4gSX0sdkk9YigiSFRNTEZvcm1FbGVtZW50IiksWkk9QT0+QS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xzXShbYS16XGRdKShcdyopL2csZnVuY3Rpb24odCxJLHIpe3JldHVybiBJLnRvVXBwZXJDYXNlKCkrcn0pLFhlPSgoe2hhc093blByb3BlcnR5OkF9KT0+KGUsdCk9PkEuY2FsbChlLHQpKShPYmplY3QucHJvdG90eXBlKSxWST1iKCJSZWdFeHAiKSx0dD0oQSxlKT0+e2xldCB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEEpLEk9e307RUEodCwocixpKT0+e2xldCBnOyhnPWUocixpLEEpKSE9PSExJiYoSVtpXT1nfHxyKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEEsSSl9LFhJPUE9Pnt0dChBLChlLHQpPT57aWYoVShBKSYmWyJhcmd1bWVudHMiLCJjYWxsZXIiLCJjYWxsZWUiXS5pbmRleE9mKHQpIT09LTEpcmV0dXJuITE7bGV0IEk9QVt0XTtpZihVKEkpKXtpZihlLmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIGUpe2Uud3JpdGFibGU9ITE7cmV0dXJufWUuc2V0fHwoZS5zZXQ9KCk9Pnt0aHJvdyBFcnJvcigiQ2FuIG5vdCByZXdyaXRlIHJlYWQtb25seSBtZXRob2QgJyIrdCsiJyIpfSl9fSl9LHpJPShBLGUpPT57bGV0IHQ9e30sST1yPT57ci5mb3JFYWNoKGk9Pnt0W2ldPSEwfSl9O3JldHVybiB0QShBKT9JKEEpOkkoU3RyaW5nKEEpLnNwbGl0KGUpKSx0fSxfST0oKT0+e30sJEk9KEEsZSk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOmU7ZnVuY3Rpb24gQXIoQSl7cmV0dXJuISEoQSYmVShBLmFwcGVuZCkmJkFbemVdPT09IkZvcm1EYXRhIiYmQVtKQV0pfXZhciBlcj1BPT57bGV0IGU9bmV3IEFycmF5KDEwKSx0PShJLHIpPT57aWYoUUEoSSkpe2lmKGUuaW5kZXhPZihJKT49MClyZXR1cm47aWYoQkEoSSkpcmV0dXJuIEk7aWYoISgidG9KU09OImluIEkpKXtlW3JdPUk7bGV0IGk9dEEoSSk/W106e307cmV0dXJuIEVBKEksKGcscyk9PntsZXQgRT10KGcscisxKTshZUEoRSkmJihpW3NdPUUpfSksZVtyXT12b2lkIDAsaX19cmV0dXJuIEl9O3JldHVybiB0KEEsMCl9LHRyPWIoIkFzeW5jRnVuY3Rpb24iKSxJcj1BPT5BJiYoUUEoQSl8fFUoQSkpJiZVKEEudGhlbikmJlUoQS5jYXRjaCksSXQ9KChBLGUpPT5BP3NldEltbWVkaWF0ZTplPygodCxJKT0+KF8uYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKHtzb3VyY2U6cixkYXRhOml9KT0+e3I9PT1fJiZpPT09dCYmSS5sZW5ndGgmJkkuc2hpZnQoKSgpfSwhMSkscj0+e0kucHVzaChyKSxfLnBvc3RNZXNzYWdlKHQsIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOnQ9PnNldFRpbWVvdXQodCkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsVShfLnBvc3RNZXNzYWdlKSkscnI9dHlwZW9mIHF1ZXVlTWljcm90YXNrPCJ1Ij9xdWV1ZU1pY3JvdGFzay5iaW5kKF8pOnR5cGVvZiBwcm9jZXNzPCJ1IiYmcHJvY2Vzcy5uZXh0VGlja3x8SXQsZ3I9QT0+QSE9bnVsbCYmVShBW0pBXSksbj17aXNBcnJheTp0QSxpc0FycmF5QnVmZmVyOl9lLGlzQnVmZmVyOkJBLGlzRm9ybURhdGE6TkksaXNBcnJheUJ1ZmZlclZpZXc6REksaXNTdHJpbmc6eUksaXNOdW1iZXI6JGUsaXNCb29sZWFuOndJLGlzT2JqZWN0OlFBLGlzUGxhaW5PYmplY3Q6YkEsaXNFbXB0eU9iamVjdDptSSxpc1JlYWRhYmxlU3RyZWFtOkxJLGlzUmVxdWVzdDpiSSxpc1Jlc3BvbnNlOkpJLGlzSGVhZGVyczpZSSxpc1VuZGVmaW5lZDplQSxpc0RhdGU6U0ksaXNGaWxlOkZJLGlzQmxvYjpSSSxpc1JlZ0V4cDpWSSxpc0Z1bmN0aW9uOlUsaXNTdHJlYW06VUksaXNVUkxTZWFyY2hQYXJhbXM6R0ksaXNUeXBlZEFycmF5OlBJLGlzRmlsZUxpc3Q6a0ksZm9yRWFjaDpFQSxtZXJnZTpvZSxleHRlbmQ6SEksdHJpbTpNSSxzdHJpcEJPTTpxSSxpbmhlcml0czpLSSx0b0ZsYXRPYmplY3Q6T0ksa2luZE9mOllBLGtpbmRPZlRlc3Q6YixlbmRzV2l0aDpUSSx0b0FycmF5OnhJLGZvckVhY2hFbnRyeTpXSSxtYXRjaEFsbDpqSSxpc0hUTUxGb3JtOnZJLGhhc093blByb3BlcnR5OlhlLGhhc093blByb3A6WGUscmVkdWNlRGVzY3JpcHRvcnM6dHQsZnJlZXplTWV0aG9kczpYSSx0b09iamVjdFNldDp6SSx0b0NhbWVsQ2FzZTpaSSxub29wOl9JLHRvRmluaXRlTnVtYmVyOiRJLGZpbmRLZXk6QXQsZ2xvYmFsOl8saXNDb250ZXh0RGVmaW5lZDpldCxpc1NwZWNDb21wbGlhbnRGb3JtOkFyLHRvSlNPTk9iamVjdDplcixpc0FzeW5jRm46dHIsaXNUaGVuYWJsZTpJcixzZXRJbW1lZGlhdGU6SXQsYXNhcDpycixpc0l0ZXJhYmxlOmdyfTtmdW5jdGlvbiBJQShBLGUsdCxJLHIpe0Vycm9yLmNhbGwodGhpcyksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrLHRoaXMubWVzc2FnZT1BLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsZSYmKHRoaXMuY29kZT1lKSx0JiYodGhpcy5jb25maWc9dCksSSYmKHRoaXMucmVxdWVzdD1JKSxyJiYodGhpcy5yZXNwb25zZT1yLHRoaXMuc3RhdHVzPXIuc3RhdHVzP3Iuc3RhdHVzOm51bGwpfW4uaW5oZXJpdHMoSUEsRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzpuLnRvSlNPTk9iamVjdCh0aGlzLmNvbmZpZyksY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMuc3RhdHVzfX19KTt2YXIgcnQ9SUEucHJvdG90eXBlLGd0PXt9O1siRVJSX0JBRF9PUFRJT05fVkFMVUUiLCJFUlJfQkFEX09QVElPTiIsIkVDT05OQUJPUlRFRCIsIkVUSU1FRE9VVCIsIkVSUl9ORVRXT1JLIiwiRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUUyIsIkVSUl9ERVBSRUNBVEVEIiwiRVJSX0JBRF9SRVNQT05TRSIsIkVSUl9CQURfUkVRVUVTVCIsIkVSUl9DQU5DRUxFRCIsIkVSUl9OT1RfU1VQUE9SVCIsIkVSUl9JTlZBTElEX1VSTCJdLmZvckVhY2goQT0+e2d0W0FdPXt2YWx1ZTpBfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKElBLGd0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkocnQsImlzQXhpb3NFcnJvciIse3ZhbHVlOiEwfSk7SUEuZnJvbT0oQSxlLHQsSSxyLGkpPT57bGV0IGc9T2JqZWN0LmNyZWF0ZShydCk7bi50b0ZsYXRPYmplY3QoQSxnLGZ1bmN0aW9uKG8pe3JldHVybiBvIT09RXJyb3IucHJvdG90eXBlfSxDPT5DIT09ImlzQXhpb3NFcnJvciIpO2xldCBzPUEmJkEubWVzc2FnZT9BLm1lc3NhZ2U6IkVycm9yIixFPWU9PW51bGwmJkE/QS5jb2RlOmU7cmV0dXJuIElBLmNhbGwoZyxzLEUsdCxJLHIpLEEmJmcuY2F1c2U9PW51bGwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShnLCJjYXVzZSIse3ZhbHVlOkEsY29uZmlndXJhYmxlOiEwfSksZy5uYW1lPUEmJkEubmFtZXx8IkVycm9yIixpJiZPYmplY3QuYXNzaWduKGcsaSksZ307dmFyIHU9SUE7dmFyIEhBPW51bGw7ZnVuY3Rpb24gYWUoQSl7cmV0dXJuIG4uaXNQbGFpbk9iamVjdChBKXx8bi5pc0FycmF5KEEpfWZ1bmN0aW9uIG90KEEpe3JldHVybiBuLmVuZHNXaXRoKEEsIltdIik/QS5zbGljZSgwLC0yKTpBfWZ1bmN0aW9uIGl0KEEsZSx0KXtyZXR1cm4gQT9BLmNvbmNhdChlKS5tYXAoZnVuY3Rpb24ocixpKXtyZXR1cm4gcj1vdChyKSwhdCYmaT8iWyIrcisiXSI6cn0pLmpvaW4odD8iLiI6IiIpOmV9ZnVuY3Rpb24gaXIoQSl7cmV0dXJuIG4uaXNBcnJheShBKSYmIUEuc29tZShhZSl9dmFyIG9yPW4udG9GbGF0T2JqZWN0KG4se30sbnVsbCxmdW5jdGlvbihlKXtyZXR1cm4vXmlzW0EtWl0vLnRlc3QoZSl9KTtmdW5jdGlvbiBucihBLGUsdCl7aWYoIW4uaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7ZT1lfHxuZXcoSEF8fEZvcm1EYXRhKSx0PW4udG9GbGF0T2JqZWN0KHQse21ldGFUb2tlbnM6ITAsZG90czohMSxpbmRleGVzOiExfSwhMSxmdW5jdGlvbihmLGwpe3JldHVybiFuLmlzVW5kZWZpbmVkKGxbZl0pfSk7bGV0IEk9dC5tZXRhVG9rZW5zLHI9dC52aXNpdG9yfHxvLGk9dC5kb3RzLGc9dC5pbmRleGVzLEU9KHQuQmxvYnx8dHlwZW9mIEJsb2I8InUiJiZCbG9iKSYmbi5pc1NwZWNDb21wbGlhbnRGb3JtKGUpO2lmKCFuLmlzRnVuY3Rpb24ocikpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBDKFEpe2lmKFE9PT1udWxsKXJldHVybiIiO2lmKG4uaXNEYXRlKFEpKXJldHVybiBRLnRvSVNPU3RyaW5nKCk7aWYobi5pc0Jvb2xlYW4oUSkpcmV0dXJuIFEudG9TdHJpbmcoKTtpZighRSYmbi5pc0Jsb2IoUSkpdGhyb3cgbmV3IHUoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7cmV0dXJuIG4uaXNBcnJheUJ1ZmZlcihRKXx8bi5pc1R5cGVkQXJyYXkoUSk/RSYmdHlwZW9mIEJsb2I9PSJmdW5jdGlvbiI/bmV3IEJsb2IoW1FdKTpCdWZmZXIuZnJvbShRKTpRfWZ1bmN0aW9uIG8oUSxmLGwpe2xldCBwPVE7aWYoUSYmIWwmJnR5cGVvZiBRPT0ib2JqZWN0Iil7aWYobi5lbmRzV2l0aChmLCJ7fSIpKWY9ST9mOmYuc2xpY2UoMCwtMiksUT1KU09OLnN0cmluZ2lmeShRKTtlbHNlIGlmKG4uaXNBcnJheShRKSYmaXIoUSl8fChuLmlzRmlsZUxpc3QoUSl8fG4uZW5kc1dpdGgoZiwiW10iKSkmJihwPW4udG9BcnJheShRKSkpcmV0dXJuIGY9b3QoZikscC5mb3JFYWNoKGZ1bmN0aW9uKEQsUil7IShuLmlzVW5kZWZpbmVkKEQpfHxEPT09bnVsbCkmJmUuYXBwZW5kKGc9PT0hMD9pdChbZl0sUixpKTpnPT09bnVsbD9mOmYrIltdIixDKEQpKX0pLCExfXJldHVybiBhZShRKT8hMDooZS5hcHBlbmQoaXQobCxmLGkpLEMoUSkpLCExKX1sZXQgYT1bXSxjPU9iamVjdC5hc3NpZ24ob3Ise2RlZmF1bHRWaXNpdG9yOm8sY29udmVydFZhbHVlOkMsaXNWaXNpdGFibGU6YWV9KTtmdW5jdGlvbiBCKFEsZil7aWYoIW4uaXNVbmRlZmluZWQoUSkpe2lmKGEuaW5kZXhPZihRKSE9PS0xKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitmLmpvaW4oIi4iKSk7YS5wdXNoKFEpLG4uZm9yRWFjaChRLGZ1bmN0aW9uKHAsRil7KCEobi5pc1VuZGVmaW5lZChwKXx8cD09PW51bGwpJiZyLmNhbGwoZSxwLG4uaXNTdHJpbmcoRik/Ri50cmltKCk6RixmLGMpKT09PSEwJiZCKHAsZj9mLmNvbmNhdChGKTpbRl0pfSksYS5wb3AoKX19aWYoIW4uaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZGF0YSBtdXN0IGJlIGFuIG9iamVjdCIpO3JldHVybiBCKEEpLGV9dmFyIGo9bnI7ZnVuY3Rpb24gbnQoQSl7bGV0IGU9eyIhIjoiJTIxIiwiJyI6IiUyNyIsIigiOiIlMjgiLCIpIjoiJTI5IiwifiI6IiU3RSIsIiUyMCI6IisiLCIlMDAiOiJcMCJ9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyEnKCl+XXwlMjB8JTAwL2csZnVuY3Rpb24oSSl7cmV0dXJuIGVbSV19KX1mdW5jdGlvbiBhdChBLGUpe3RoaXMuX3BhaXJzPVtdLEEmJmooQSx0aGlzLGUpfXZhciBzdD1hdC5wcm90b3R5cGU7c3QuYXBwZW5kPWZ1bmN0aW9uKGUsdCl7dGhpcy5fcGFpcnMucHVzaChbZSx0XSl9O3N0LnRvU3RyaW5nPWZ1bmN0aW9uKGUpe2xldCB0PWU/ZnVuY3Rpb24oSSl7cmV0dXJuIGUuY2FsbCh0aGlzLEksbnQpfTpudDtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKHIpe3JldHVybiB0KHJbMF0pKyI9Iit0KHJbMV0pfSwiIikuam9pbigiJiIpfTt2YXIgcUE9YXQ7ZnVuY3Rpb24gYXIoQSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpLnJlcGxhY2UoLyUyMC9nLCIrIil9ZnVuY3Rpb24gbEEoQSxlLHQpe2lmKCFlKXJldHVybiBBO2xldCBJPXQmJnQuZW5jb2RlfHxhcjtuLmlzRnVuY3Rpb24odCkmJih0PXtzZXJpYWxpemU6dH0pO2xldCByPXQmJnQuc2VyaWFsaXplLGk7aWYocj9pPXIoZSx0KTppPW4uaXNVUkxTZWFyY2hQYXJhbXMoZSk/ZS50b1N0cmluZygpOm5ldyBxQShlLHQpLnRvU3RyaW5nKEkpLGkpe2xldCBnPUEuaW5kZXhPZigiIyIpO2chPT0tMSYmKEE9QS5zbGljZSgwLGcpKSxBKz0oQS5pbmRleE9mKCI/Iik9PT0tMT8iPyI6IiYiKStpfXJldHVybiBBfXZhciBzZT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaGFuZGxlcnM9W119dXNlKGUsdCxJKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6ZSxyZWplY3RlZDp0LHN5bmNocm9ub3VzOkk/SS5zeW5jaHJvbm91czohMSxydW5XaGVuOkk/SS5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfWVqZWN0KGUpe3RoaXMuaGFuZGxlcnNbZV0mJih0aGlzLmhhbmRsZXJzW2VdPW51bGwpfWNsZWFyKCl7dGhpcy5oYW5kbGVycyYmKHRoaXMuaGFuZGxlcnM9W10pfWZvckVhY2goZSl7bi5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24oSSl7SSE9PW51bGwmJmUoSSl9KX19LENlPXNlO3ZhciBLQT17c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX07dmFyIEN0PXR5cGVvZiBVUkxTZWFyY2hQYXJhbXM8InUiP1VSTFNlYXJjaFBhcmFtczpxQTt2YXIgQnQ9dHlwZW9mIEZvcm1EYXRhPCJ1Ij9Gb3JtRGF0YTpudWxsO3ZhciBRdD10eXBlb2YgQmxvYjwidSI/QmxvYjpudWxsO3ZhciBFdD17aXNCcm93c2VyOiEwLGNsYXNzZXM6e1VSTFNlYXJjaFBhcmFtczpDdCxGb3JtRGF0YTpCdCxCbG9iOlF0fSxwcm90b2NvbHM6WyJodHRwIiwiaHR0cHMiLCJmaWxlIiwiYmxvYiIsInVybCIsImRhdGEiXX07dmFyIEVlPXt9O2dJKEVlLHtoYXNCcm93c2VyRW52OigpPT5RZSxoYXNTdGFuZGFyZEJyb3dzZXJFbnY6KCk9PnNyLGhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudjooKT0+Q3IsbmF2aWdhdG9yOigpPT5CZSxvcmlnaW46KCk9PkJyfSk7dmFyIFFlPXR5cGVvZiB3aW5kb3c8InUiJiZ0eXBlb2YgZG9jdW1lbnQ8InUiLEJlPXR5cGVvZiBuYXZpZ2F0b3I9PSJvYmplY3QiJiZuYXZpZ2F0b3J8fHZvaWQgMCxzcj1RZSYmKCFCZXx8WyJSZWFjdE5hdGl2ZSIsIk5hdGl2ZVNjcmlwdCIsIk5TIl0uaW5kZXhPZihCZS5wcm9kdWN0KTwwKSxDcj10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU8InUiJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnR5cGVvZiBzZWxmLmltcG9ydFNjcmlwdHM9PSJmdW5jdGlvbiIsQnI9UWUmJndpbmRvdy5sb2NhdGlvbi5ocmVmfHwiaHR0cDovL2xvY2FsaG9zdCI7dmFyIGg9ey4uLkVlLC4uLkV0fTtmdW5jdGlvbiBsZShBLGUpe3JldHVybiBqKEEsbmV3IGguY2xhc3Nlcy5VUkxTZWFyY2hQYXJhbXMse3Zpc2l0b3I6ZnVuY3Rpb24odCxJLHIsaSl7cmV0dXJuIGguaXNOb2RlJiZuLmlzQnVmZmVyKHQpPyh0aGlzLmFwcGVuZChJLHQudG9TdHJpbmcoImJhc2U2NCIpKSwhMSk6aS5kZWZhdWx0VmlzaXRvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LC4uLmV9KX1mdW5jdGlvbiBRcihBKXtyZXR1cm4gbi5tYXRjaEFsbCgvXHcrfFxbKFx3KildL2csQSkubWFwKGU9PmVbMF09PT0iW10iPyIiOmVbMV18fGVbMF0pfWZ1bmN0aW9uIEVyKEEpe2xldCBlPXt9LHQ9T2JqZWN0LmtleXMoQSksSSxyPXQubGVuZ3RoLGk7Zm9yKEk9MDtJPHI7SSsrKWk9dFtJXSxlW2ldPUFbaV07cmV0dXJuIGV9ZnVuY3Rpb24gbHIoQSl7ZnVuY3Rpb24gZSh0LEkscixpKXtsZXQgZz10W2krK107aWYoZz09PSJfX3Byb3RvX18iKXJldHVybiEwO2xldCBzPU51bWJlci5pc0Zpbml0ZSgrZyksRT1pPj10Lmxlbmd0aDtyZXR1cm4gZz0hZyYmbi5pc0FycmF5KHIpP3IubGVuZ3RoOmcsRT8obi5oYXNPd25Qcm9wKHIsZyk/cltnXT1bcltnXSxJXTpyW2ddPUksIXMpOigoIXJbZ118fCFuLmlzT2JqZWN0KHJbZ10pKSYmKHJbZ109W10pLGUodCxJLHJbZ10saSkmJm4uaXNBcnJheShyW2ddKSYmKHJbZ109RXIocltnXSkpLCFzKX1pZihuLmlzRm9ybURhdGEoQSkmJm4uaXNGdW5jdGlvbihBLmVudHJpZXMpKXtsZXQgdD17fTtyZXR1cm4gbi5mb3JFYWNoRW50cnkoQSwoSSxyKT0+e2UoUXIoSSkscix0LDApfSksdH1yZXR1cm4gbnVsbH12YXIgT0E9bHI7ZnVuY3Rpb24gY3IoQSxlLHQpe2lmKG4uaXNTdHJpbmcoQSkpdHJ5e3JldHVybihlfHxKU09OLnBhcnNlKShBKSxuLnRyaW0oQSl9Y2F0Y2goSSl7aWYoSS5uYW1lIT09IlN5bnRheEVycm9yIil0aHJvdyBJfXJldHVybih0fHxKU09OLnN0cmluZ2lmeSkoQSl9dmFyIGNlPXt0cmFuc2l0aW9uYWw6S0EsYWRhcHRlcjpbInhociIsImh0dHAiLCJmZXRjaCJdLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKGUsdCl7bGV0IEk9dC5nZXRDb250ZW50VHlwZSgpfHwiIixyPUkuaW5kZXhPZigiYXBwbGljYXRpb24vanNvbiIpPi0xLGk9bi5pc09iamVjdChlKTtpZihpJiZuLmlzSFRNTEZvcm0oZSkmJihlPW5ldyBGb3JtRGF0YShlKSksbi5pc0Zvcm1EYXRhKGUpKXJldHVybiByP0pTT04uc3RyaW5naWZ5KE9BKGUpKTplO2lmKG4uaXNBcnJheUJ1ZmZlcihlKXx8bi5pc0J1ZmZlcihlKXx8bi5pc1N0cmVhbShlKXx8bi5pc0ZpbGUoZSl8fG4uaXNCbG9iKGUpfHxuLmlzUmVhZGFibGVTdHJlYW0oZSkpcmV0dXJuIGU7aWYobi5pc0FycmF5QnVmZmVyVmlldyhlKSlyZXR1cm4gZS5idWZmZXI7aWYobi5pc1VSTFNlYXJjaFBhcmFtcyhlKSlyZXR1cm4gdC5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiLCExKSxlLnRvU3RyaW5nKCk7bGV0IHM7aWYoaSl7aWYoSS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKT4tMSlyZXR1cm4gbGUoZSx0aGlzLmZvcm1TZXJpYWxpemVyKS50b1N0cmluZygpO2lmKChzPW4uaXNGaWxlTGlzdChlKSl8fEkuaW5kZXhPZigibXVsdGlwYXJ0L2Zvcm0tZGF0YSIpPi0xKXtsZXQgRT10aGlzLmVudiYmdGhpcy5lbnYuRm9ybURhdGE7cmV0dXJuIGoocz97ImZpbGVzW10iOmV9OmUsRSYmbmV3IEUsdGhpcy5mb3JtU2VyaWFsaXplcil9fXJldHVybiBpfHxyPyh0LnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi9qc29uIiwhMSksY3IoZSkpOmV9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24oZSl7bGV0IHQ9dGhpcy50cmFuc2l0aW9uYWx8fGNlLnRyYW5zaXRpb25hbCxJPXQmJnQuZm9yY2VkSlNPTlBhcnNpbmcscj10aGlzLnJlc3BvbnNlVHlwZT09PSJqc29uIjtpZihuLmlzUmVzcG9uc2UoZSl8fG4uaXNSZWFkYWJsZVN0cmVhbShlKSlyZXR1cm4gZTtpZihlJiZuLmlzU3RyaW5nKGUpJiYoSSYmIXRoaXMucmVzcG9uc2VUeXBlfHxyKSl7bGV0IGc9ISh0JiZ0LnNpbGVudEpTT05QYXJzaW5nKSYmcjt0cnl7cmV0dXJuIEpTT04ucGFyc2UoZSx0aGlzLnBhcnNlUmV2aXZlcil9Y2F0Y2gocyl7aWYoZyl0aHJvdyBzLm5hbWU9PT0iU3ludGF4RXJyb3IiP3UuZnJvbShzLHUuRVJSX0JBRF9SRVNQT05TRSx0aGlzLG51bGwsdGhpcy5yZXNwb25zZSk6c319cmV0dXJuIGV9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSxlbnY6e0Zvcm1EYXRhOmguY2xhc3Nlcy5Gb3JtRGF0YSxCbG9iOmguY2xhc3Nlcy5CbG9ifSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbihlKXtyZXR1cm4gZT49MjAwJiZlPDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiIsIkNvbnRlbnQtVHlwZSI6dm9pZCAwfX19O24uZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giXSxBPT57Y2UuaGVhZGVyc1tBXT17fX0pO3ZhciByQT1jZTt2YXIgZnI9bi50b09iamVjdFNldChbImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdKSxsdD1BPT57bGV0IGU9e30sdCxJLHI7cmV0dXJuIEEmJkEuc3BsaXQoYApgKS5mb3JFYWNoKGZ1bmN0aW9uKGcpe3I9Zy5pbmRleE9mKCI6IiksdD1nLnN1YnN0cmluZygwLHIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLEk9Zy5zdWJzdHJpbmcocisxKS50cmltKCksISghdHx8ZVt0XSYmZnJbdF0pJiYodD09PSJzZXQtY29va2llIj9lW3RdP2VbdF0ucHVzaChJKTplW3RdPVtJXTplW3RdPWVbdF0/ZVt0XSsiLCAiK0k6SSl9KSxlfTt2YXIgY3Q9U3ltYm9sKCJpbnRlcm5hbHMiKTtmdW5jdGlvbiBjQShBKXtyZXR1cm4gQSYmU3RyaW5nKEEpLnRyaW0oKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIFRBKEEpe3JldHVybiBBPT09ITF8fEE9PW51bGw/QTpuLmlzQXJyYXkoQSk/QS5tYXAoVEEpOlN0cmluZyhBKX1mdW5jdGlvbiB1cihBKXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpLHQ9LyhbXlxzLDs9XSspXHMqKD86PVxzKihbXiw7XSspKT8vZyxJO2Zvcig7ST10LmV4ZWMoQSk7KWVbSVsxXV09SVsyXTtyZXR1cm4gZX12YXIgZHI9QT0+L15bLV9hLXpBLVowLTleYHx+LCEjJCUmJyorLl0rJC8udGVzdChBLnRyaW0oKSk7ZnVuY3Rpb24gZmUoQSxlLHQsSSxyKXtpZihuLmlzRnVuY3Rpb24oSSkpcmV0dXJuIEkuY2FsbCh0aGlzLGUsdCk7aWYociYmKGU9dCksISFuLmlzU3RyaW5nKGUpKXtpZihuLmlzU3RyaW5nKEkpKXJldHVybiBlLmluZGV4T2YoSSkhPT0tMTtpZihuLmlzUmVnRXhwKEkpKXJldHVybiBJLnRlc3QoZSl9fWZ1bmN0aW9uIHByKEEpe3JldHVybiBBLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbYS16XGRdKShcdyopL2csKGUsdCxJKT0+dC50b1VwcGVyQ2FzZSgpK0kpfWZ1bmN0aW9uIGhyKEEsZSl7bGV0IHQ9bi50b0NhbWVsQ2FzZSgiICIrZSk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKEk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxJK3Qse3ZhbHVlOmZ1bmN0aW9uKHIsaSxnKXtyZXR1cm4gdGhpc1tJXS5jYWxsKHRoaXMsZSxyLGksZyl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9dmFyIGdBPWNsYXNze2NvbnN0cnVjdG9yKGUpe2UmJnRoaXMuc2V0KGUpfXNldChlLHQsSSl7bGV0IHI9dGhpcztmdW5jdGlvbiBpKHMsRSxDKXtsZXQgbz1jQShFKTtpZighbyl0aHJvdyBuZXcgRXJyb3IoImhlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7bGV0IGE9bi5maW5kS2V5KHIsbyk7KCFhfHxyW2FdPT09dm9pZCAwfHxDPT09ITB8fEM9PT12b2lkIDAmJnJbYV0hPT0hMSkmJihyW2F8fEVdPVRBKHMpKX1sZXQgZz0ocyxFKT0+bi5mb3JFYWNoKHMsKEMsbyk9PmkoQyxvLEUpKTtpZihuLmlzUGxhaW5PYmplY3QoZSl8fGUgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKWcoZSx0KTtlbHNlIGlmKG4uaXNTdHJpbmcoZSkmJihlPWUudHJpbSgpKSYmIWRyKGUpKWcobHQoZSksdCk7ZWxzZSBpZihuLmlzT2JqZWN0KGUpJiZuLmlzSXRlcmFibGUoZSkpe2xldCBzPXt9LEUsQztmb3IobGV0IG8gb2YgZSl7aWYoIW4uaXNBcnJheShvKSl0aHJvdyBUeXBlRXJyb3IoIk9iamVjdCBpdGVyYXRvciBtdXN0IHJldHVybiBhIGtleS12YWx1ZSBwYWlyIik7c1tDPW9bMF1dPShFPXNbQ10pP24uaXNBcnJheShFKT9bLi4uRSxvWzFdXTpbRSxvWzFdXTpvWzFdfWcocyx0KX1lbHNlIGUhPW51bGwmJmkodCxlLEkpO3JldHVybiB0aGlzfWdldChlLHQpe2lmKGU9Y0EoZSksZSl7bGV0IEk9bi5maW5kS2V5KHRoaXMsZSk7aWYoSSl7bGV0IHI9dGhpc1tJXTtpZighdClyZXR1cm4gcjtpZih0PT09ITApcmV0dXJuIHVyKHIpO2lmKG4uaXNGdW5jdGlvbih0KSlyZXR1cm4gdC5jYWxsKHRoaXMscixJKTtpZihuLmlzUmVnRXhwKHQpKXJldHVybiB0LmV4ZWMocik7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyhlLHQpe2lmKGU9Y0EoZSksZSl7bGV0IEk9bi5maW5kS2V5KHRoaXMsZSk7cmV0dXJuISEoSSYmdGhpc1tJXSE9PXZvaWQgMCYmKCF0fHxmZSh0aGlzLHRoaXNbSV0sSSx0KSkpfXJldHVybiExfWRlbGV0ZShlLHQpe2xldCBJPXRoaXMscj0hMTtmdW5jdGlvbiBpKGcpe2lmKGc9Y0EoZyksZyl7bGV0IHM9bi5maW5kS2V5KEksZyk7cyYmKCF0fHxmZShJLElbc10scyx0KSkmJihkZWxldGUgSVtzXSxyPSEwKX19cmV0dXJuIG4uaXNBcnJheShlKT9lLmZvckVhY2goaSk6aShlKSxyfWNsZWFyKGUpe2xldCB0PU9iamVjdC5rZXlzKHRoaXMpLEk9dC5sZW5ndGgscj0hMTtmb3IoO0ktLTspe2xldCBpPXRbSV07KCFlfHxmZSh0aGlzLHRoaXNbaV0saSxlLCEwKSkmJihkZWxldGUgdGhpc1tpXSxyPSEwKX1yZXR1cm4gcn1ub3JtYWxpemUoZSl7bGV0IHQ9dGhpcyxJPXt9O3JldHVybiBuLmZvckVhY2godGhpcywocixpKT0+e2xldCBnPW4uZmluZEtleShJLGkpO2lmKGcpe3RbZ109VEEociksZGVsZXRlIHRbaV07cmV0dXJufWxldCBzPWU/cHIoaSk6U3RyaW5nKGkpLnRyaW0oKTtzIT09aSYmZGVsZXRlIHRbaV0sdFtzXT1UQShyKSxJW3NdPSEwfSksdGhpc31jb25jYXQoLi4uZSl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4uZSl9dG9KU09OKGUpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIG4uZm9yRWFjaCh0aGlzLChJLHIpPT57SSE9bnVsbCYmSSE9PSExJiYodFtyXT1lJiZuLmlzQXJyYXkoSSk/SS5qb2luKCIsICIpOkkpfSksdH1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbZSx0XSk9PmUrIjogIit0KS5qb2luKGAKYCl9Z2V0U2V0Q29va2llKCl7cmV0dXJuIHRoaXMuZ2V0KCJzZXQtY29va2llIil8fFtdfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkF4aW9zSGVhZGVycyJ9c3RhdGljIGZyb20oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzP2U6bmV3IHRoaXMoZSl9c3RhdGljIGNvbmNhdChlLC4uLnQpe2xldCBJPW5ldyB0aGlzKGUpO3JldHVybiB0LmZvckVhY2gocj0+SS5zZXQocikpLEl9c3RhdGljIGFjY2Vzc29yKGUpe2xldCBJPSh0aGlzW2N0XT10aGlzW2N0XT17YWNjZXNzb3JzOnt9fSkuYWNjZXNzb3JzLHI9dGhpcy5wcm90b3R5cGU7ZnVuY3Rpb24gaShnKXtsZXQgcz1jQShnKTtJW3NdfHwoaHIocixnKSxJW3NdPSEwKX1yZXR1cm4gbi5pc0FycmF5KGUpP2UuZm9yRWFjaChpKTppKGUpLHRoaXN9fTtnQS5hY2Nlc3NvcihbIkNvbnRlbnQtVHlwZSIsIkNvbnRlbnQtTGVuZ3RoIiwiQWNjZXB0IiwiQWNjZXB0LUVuY29kaW5nIiwiVXNlci1BZ2VudCIsIkF1dGhvcml6YXRpb24iXSk7bi5yZWR1Y2VEZXNjcmlwdG9ycyhnQS5wcm90b3R5cGUsKHt2YWx1ZTpBfSxlKT0+e2xldCB0PWVbMF0udG9VcHBlckNhc2UoKStlLnNsaWNlKDEpO3JldHVybntnZXQ6KCk9PkEsc2V0KEkpe3RoaXNbdF09SX19fSk7bi5mcmVlemVNZXRob2RzKGdBKTt2YXIgbT1nQTtmdW5jdGlvbiBmQShBLGUpe2xldCB0PXRoaXN8fHJBLEk9ZXx8dCxyPW0uZnJvbShJLmhlYWRlcnMpLGk9SS5kYXRhO3JldHVybiBuLmZvckVhY2goQSxmdW5jdGlvbihzKXtpPXMuY2FsbCh0LGksci5ub3JtYWxpemUoKSxlP2Uuc3RhdHVzOnZvaWQgMCl9KSxyLm5vcm1hbGl6ZSgpLGl9ZnVuY3Rpb24gdUEoQSl7cmV0dXJuISEoQSYmQS5fX0NBTkNFTF9fKX1mdW5jdGlvbiBmdChBLGUsdCl7dS5jYWxsKHRoaXMsQT8/ImNhbmNlbGVkIix1LkVSUl9DQU5DRUxFRCxlLHQpLHRoaXMubmFtZT0iQ2FuY2VsZWRFcnJvciJ9bi5pbmhlcml0cyhmdCx1LHtfX0NBTkNFTF9fOiEwfSk7dmFyIHE9ZnQ7ZnVuY3Rpb24gZEEoQSxlLHQpe2xldCBJPXQuY29uZmlnLnZhbGlkYXRlU3RhdHVzOyF0LnN0YXR1c3x8IUl8fEkodC5zdGF0dXMpP0EodCk6ZShuZXcgdSgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK3Quc3RhdHVzLFt1LkVSUl9CQURfUkVRVUVTVCx1LkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3IodC5zdGF0dXMvMTAwKS00XSx0LmNvbmZpZyx0LnJlcXVlc3QsdCkpfWZ1bmN0aW9uIHVlKEEpe2xldCBlPS9eKFstK1x3XXsxLDI1fSkoOj9cL1wvfDopLy5leGVjKEEpO3JldHVybiBlJiZlWzFdfHwiIn1mdW5jdGlvbiBEcihBLGUpe0E9QXx8MTA7bGV0IHQ9bmV3IEFycmF5KEEpLEk9bmV3IEFycmF5KEEpLHI9MCxpPTAsZztyZXR1cm4gZT1lIT09dm9pZCAwP2U6MWUzLGZ1bmN0aW9uKEUpe2xldCBDPURhdGUubm93KCksbz1JW2ldO2d8fChnPUMpLHRbcl09RSxJW3JdPUM7bGV0IGE9aSxjPTA7Zm9yKDthIT09cjspYys9dFthKytdLGE9YSVBO2lmKHI9KHIrMSklQSxyPT09aSYmKGk9KGkrMSklQSksQy1nPGUpcmV0dXJuO2xldCBCPW8mJkMtbztyZXR1cm4gQj9NYXRoLnJvdW5kKGMqMWUzL0IpOnZvaWQgMH19dmFyIHV0PURyO2Z1bmN0aW9uIHlyKEEsZSl7bGV0IHQ9MCxJPTFlMy9lLHIsaSxnPShDLG89RGF0ZS5ub3coKSk9Pnt0PW8scj1udWxsLGkmJihjbGVhclRpbWVvdXQoaSksaT1udWxsKSxBKC4uLkMpfTtyZXR1cm5bKC4uLkMpPT57bGV0IG89RGF0ZS5ub3coKSxhPW8tdDthPj1JP2coQyxvKToocj1DLGl8fChpPXNldFRpbWVvdXQoKCk9PntpPW51bGwsZyhyKX0sSS1hKSkpfSwoKT0+ciYmZyhyKV19dmFyIGR0PXlyO3ZhciBpQT0oQSxlLHQ9Myk9PntsZXQgST0wLHI9dXQoNTAsMjUwKTtyZXR1cm4gZHQoaT0+e2xldCBnPWkubG9hZGVkLHM9aS5sZW5ndGhDb21wdXRhYmxlP2kudG90YWw6dm9pZCAwLEU9Zy1JLEM9cihFKSxvPWc8PXM7ST1nO2xldCBhPXtsb2FkZWQ6Zyx0b3RhbDpzLHByb2dyZXNzOnM/Zy9zOnZvaWQgMCxieXRlczpFLHJhdGU6Q3x8dm9pZCAwLGVzdGltYXRlZDpDJiZzJiZvPyhzLWcpL0M6dm9pZCAwLGV2ZW50OmksbGVuZ3RoQ29tcHV0YWJsZTpzIT1udWxsLFtlPyJkb3dubG9hZCI6InVwbG9hZCJdOiEwfTtBKGEpfSx0KX0sZGU9KEEsZSk9PntsZXQgdD1BIT1udWxsO3JldHVybltJPT5lWzBdKHtsZW5ndGhDb21wdXRhYmxlOnQsdG90YWw6QSxsb2FkZWQ6SX0pLGVbMV1dfSxwZT1BPT4oLi4uZSk9Pm4uYXNhcCgoKT0+QSguLi5lKSk7dmFyIHB0PWguaGFzU3RhbmRhcmRCcm93c2VyRW52PygoQSxlKT0+dD0+KHQ9bmV3IFVSTCh0LGgub3JpZ2luKSxBLnByb3RvY29sPT09dC5wcm90b2NvbCYmQS5ob3N0PT09dC5ob3N0JiYoZXx8QS5wb3J0PT09dC5wb3J0KSkpKG5ldyBVUkwoaC5vcmlnaW4pLGgubmF2aWdhdG9yJiYvKG1zaWV8dHJpZGVudCkvaS50ZXN0KGgubmF2aWdhdG9yLnVzZXJBZ2VudCkpOigpPT4hMDt2YXIgaHQ9aC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/e3dyaXRlKEEsZSx0LEkscixpKXtsZXQgZz1bQSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGUpXTtuLmlzTnVtYmVyKHQpJiZnLnB1c2goImV4cGlyZXM9IituZXcgRGF0ZSh0KS50b0dNVFN0cmluZygpKSxuLmlzU3RyaW5nKEkpJiZnLnB1c2goInBhdGg9IitJKSxuLmlzU3RyaW5nKHIpJiZnLnB1c2goImRvbWFpbj0iK3IpLGk9PT0hMCYmZy5wdXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9Zy5qb2luKCI7ICIpfSxyZWFkKEEpe2xldCBlPWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxzKikoIitBKyIpPShbXjtdKikiKSk7cmV0dXJuIGU/ZGVjb2RlVVJJQ29tcG9uZW50KGVbM10pOm51bGx9LHJlbW92ZShBKXt0aGlzLndyaXRlKEEsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGUoKXt9LHJlYWQoKXtyZXR1cm4gbnVsbH0scmVtb3ZlKCl7fX07ZnVuY3Rpb24gaGUoQSl7cmV0dXJuL14oW2Etel1bYS16XGQrXC0uXSo6KT9cL1wvL2kudGVzdChBKX1mdW5jdGlvbiBEZShBLGUpe3JldHVybiBlP0EucmVwbGFjZSgvXC8/XC8kLywiIikrIi8iK2UucmVwbGFjZSgvXlwvKy8sIiIpOkF9ZnVuY3Rpb24gcEEoQSxlLHQpe2xldCBJPSFoZShlKTtyZXR1cm4gQSYmKEl8fHQ9PSExKT9EZShBLGUpOmV9dmFyIER0PUE9PkEgaW5zdGFuY2VvZiBtP3suLi5BfTpBO2Z1bmN0aW9uIEooQSxlKXtlPWV8fHt9O2xldCB0PXt9O2Z1bmN0aW9uIEkoQyxvLGEsYyl7cmV0dXJuIG4uaXNQbGFpbk9iamVjdChDKSYmbi5pc1BsYWluT2JqZWN0KG8pP24ubWVyZ2UuY2FsbCh7Y2FzZWxlc3M6Y30sQyxvKTpuLmlzUGxhaW5PYmplY3Qobyk/bi5tZXJnZSh7fSxvKTpuLmlzQXJyYXkobyk/by5zbGljZSgpOm99ZnVuY3Rpb24gcihDLG8sYSxjKXtpZihuLmlzVW5kZWZpbmVkKG8pKXtpZighbi5pc1VuZGVmaW5lZChDKSlyZXR1cm4gSSh2b2lkIDAsQyxhLGMpfWVsc2UgcmV0dXJuIEkoQyxvLGEsYyl9ZnVuY3Rpb24gaShDLG8pe2lmKCFuLmlzVW5kZWZpbmVkKG8pKXJldHVybiBJKHZvaWQgMCxvKX1mdW5jdGlvbiBnKEMsbyl7aWYobi5pc1VuZGVmaW5lZChvKSl7aWYoIW4uaXNVbmRlZmluZWQoQykpcmV0dXJuIEkodm9pZCAwLEMpfWVsc2UgcmV0dXJuIEkodm9pZCAwLG8pfWZ1bmN0aW9uIHMoQyxvLGEpe2lmKGEgaW4gZSlyZXR1cm4gSShDLG8pO2lmKGEgaW4gQSlyZXR1cm4gSSh2b2lkIDAsQyl9bGV0IEU9e3VybDppLG1ldGhvZDppLGRhdGE6aSxiYXNlVVJMOmcsdHJhbnNmb3JtUmVxdWVzdDpnLHRyYW5zZm9ybVJlc3BvbnNlOmcscGFyYW1zU2VyaWFsaXplcjpnLHRpbWVvdXQ6Zyx0aW1lb3V0TWVzc2FnZTpnLHdpdGhDcmVkZW50aWFsczpnLHdpdGhYU1JGVG9rZW46ZyxhZGFwdGVyOmcscmVzcG9uc2VUeXBlOmcseHNyZkNvb2tpZU5hbWU6Zyx4c3JmSGVhZGVyTmFtZTpnLG9uVXBsb2FkUHJvZ3Jlc3M6ZyxvbkRvd25sb2FkUHJvZ3Jlc3M6ZyxkZWNvbXByZXNzOmcsbWF4Q29udGVudExlbmd0aDpnLG1heEJvZHlMZW5ndGg6ZyxiZWZvcmVSZWRpcmVjdDpnLHRyYW5zcG9ydDpnLGh0dHBBZ2VudDpnLGh0dHBzQWdlbnQ6ZyxjYW5jZWxUb2tlbjpnLHNvY2tldFBhdGg6ZyxyZXNwb25zZUVuY29kaW5nOmcsdmFsaWRhdGVTdGF0dXM6cyxoZWFkZXJzOihDLG8sYSk9PnIoRHQoQyksRHQobyksYSwhMCl9O3JldHVybiBuLmZvckVhY2goT2JqZWN0LmtleXMoey4uLkEsLi4uZX0pLGZ1bmN0aW9uKG8pe2xldCBhPUVbb118fHIsYz1hKEFbb10sZVtvXSxvKTtuLmlzVW5kZWZpbmVkKGMpJiZhIT09c3x8KHRbb109Yyl9KSx0fXZhciB4QT1BPT57bGV0IGU9Sih7fSxBKSx7ZGF0YTp0LHdpdGhYU1JGVG9rZW46SSx4c3JmSGVhZGVyTmFtZTpyLHhzcmZDb29raWVOYW1lOmksaGVhZGVyczpnLGF1dGg6c309ZTtpZihlLmhlYWRlcnM9Zz1tLmZyb20oZyksZS51cmw9bEEocEEoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMpLEEucGFyYW1zLEEucGFyYW1zU2VyaWFsaXplcikscyYmZy5zZXQoIkF1dGhvcml6YXRpb24iLCJCYXNpYyAiK2J0b2EoKHMudXNlcm5hbWV8fCIiKSsiOiIrKHMucGFzc3dvcmQ/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHMucGFzc3dvcmQpKToiIikpKSxuLmlzRm9ybURhdGEodCkpe2lmKGguaGFzU3RhbmRhcmRCcm93c2VyRW52fHxoLmhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudilnLnNldENvbnRlbnRUeXBlKHZvaWQgMCk7ZWxzZSBpZihuLmlzRnVuY3Rpb24odC5nZXRIZWFkZXJzKSl7bGV0IEU9dC5nZXRIZWFkZXJzKCksQz1bImNvbnRlbnQtdHlwZSIsImNvbnRlbnQtbGVuZ3RoIl07T2JqZWN0LmVudHJpZXMoRSkuZm9yRWFjaCgoW28sYV0pPT57Qy5pbmNsdWRlcyhvLnRvTG93ZXJDYXNlKCkpJiZnLnNldChvLGEpfSl9fWlmKGguaGFzU3RhbmRhcmRCcm93c2VyRW52JiYoSSYmbi5pc0Z1bmN0aW9uKEkpJiYoST1JKGUpKSxJfHxJIT09ITEmJnB0KGUudXJsKSkpe2xldCBFPXImJmkmJmh0LnJlYWQoaSk7RSYmZy5zZXQocixFKX1yZXR1cm4gZX07dmFyIHdyPXR5cGVvZiBYTUxIdHRwUmVxdWVzdDwidSIseXQ9d3ImJmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0LEkpe2xldCByPXhBKEEpLGk9ci5kYXRhLGc9bS5mcm9tKHIuaGVhZGVycykubm9ybWFsaXplKCkse3Jlc3BvbnNlVHlwZTpzLG9uVXBsb2FkUHJvZ3Jlc3M6RSxvbkRvd25sb2FkUHJvZ3Jlc3M6Q309cixvLGEsYyxCLFE7ZnVuY3Rpb24gZigpe0ImJkIoKSxRJiZRKCksci5jYW5jZWxUb2tlbiYmci5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShvKSxyLnNpZ25hbCYmci5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG8pfWxldCBsPW5ldyBYTUxIdHRwUmVxdWVzdDtsLm9wZW4oci5tZXRob2QudG9VcHBlckNhc2UoKSxyLnVybCwhMCksbC50aW1lb3V0PXIudGltZW91dDtmdW5jdGlvbiBwKCl7aWYoIWwpcmV0dXJuO2xldCBEPW0uZnJvbSgiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIGwmJmwuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLEw9e2RhdGE6IXN8fHM9PT0idGV4dCJ8fHM9PT0ianNvbiI/bC5yZXNwb25zZVRleHQ6bC5yZXNwb25zZSxzdGF0dXM6bC5zdGF0dXMsc3RhdHVzVGV4dDpsLnN0YXR1c1RleHQsaGVhZGVyczpELGNvbmZpZzpBLHJlcXVlc3Q6bH07ZEEoZnVuY3Rpb24oTil7dChOKSxmKCl9LGZ1bmN0aW9uKE4pe0koTiksZigpfSxMKSxsPW51bGx9Im9ubG9hZGVuZCJpbiBsP2wub25sb2FkZW5kPXA6bC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXshbHx8bC5yZWFkeVN0YXRlIT09NHx8bC5zdGF0dXM9PT0wJiYhKGwucmVzcG9uc2VVUkwmJmwucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKT09PTApfHxzZXRUaW1lb3V0KHApfSxsLm9uYWJvcnQ9ZnVuY3Rpb24oKXtsJiYoSShuZXcgdSgiUmVxdWVzdCBhYm9ydGVkIix1LkVDT05OQUJPUlRFRCxBLGwpKSxsPW51bGwpfSxsLm9uZXJyb3I9ZnVuY3Rpb24oUil7bGV0IEw9UiYmUi5tZXNzYWdlP1IubWVzc2FnZToiTmV0d29yayBFcnJvciIsWj1uZXcgdShMLHUuRVJSX05FVFdPUkssQSxsKTtaLmV2ZW50PVJ8fG51bGwsSShaKSxsPW51bGx9LGwub250aW1lb3V0PWZ1bmN0aW9uKCl7bGV0IFI9ci50aW1lb3V0PyJ0aW1lb3V0IG9mICIrci50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiLEw9ci50cmFuc2l0aW9uYWx8fEtBO3IudGltZW91dEVycm9yTWVzc2FnZSYmKFI9ci50aW1lb3V0RXJyb3JNZXNzYWdlKSxJKG5ldyB1KFIsTC5jbGFyaWZ5VGltZW91dEVycm9yP3UuRVRJTUVET1VUOnUuRUNPTk5BQk9SVEVELEEsbCkpLGw9bnVsbH0saT09PXZvaWQgMCYmZy5zZXRDb250ZW50VHlwZShudWxsKSwic2V0UmVxdWVzdEhlYWRlciJpbiBsJiZuLmZvckVhY2goZy50b0pTT04oKSxmdW5jdGlvbihSLEwpe2wuc2V0UmVxdWVzdEhlYWRlcihMLFIpfSksbi5pc1VuZGVmaW5lZChyLndpdGhDcmVkZW50aWFscyl8fChsLndpdGhDcmVkZW50aWFscz0hIXIud2l0aENyZWRlbnRpYWxzKSxzJiZzIT09Impzb24iJiYobC5yZXNwb25zZVR5cGU9ci5yZXNwb25zZVR5cGUpLEMmJihbYyxRXT1pQShDLCEwKSxsLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixjKSksRSYmbC51cGxvYWQmJihbYSxCXT1pQShFKSxsLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsYSksbC51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVuZCIsQikpLChyLmNhbmNlbFRva2VufHxyLnNpZ25hbCkmJihvPUQ9PntsJiYoSSghRHx8RC50eXBlP25ldyBxKG51bGwsQSxsKTpEKSxsLmFib3J0KCksbD1udWxsKX0sci5jYW5jZWxUb2tlbiYmci5jYW5jZWxUb2tlbi5zdWJzY3JpYmUobyksci5zaWduYWwmJihyLnNpZ25hbC5hYm9ydGVkP28oKTpyLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbykpKTtsZXQgRj11ZShyLnVybCk7aWYoRiYmaC5wcm90b2NvbHMuaW5kZXhPZihGKT09PS0xKXtJKG5ldyB1KCJVbnN1cHBvcnRlZCBwcm90b2NvbCAiK0YrIjoiLHUuRVJSX0JBRF9SRVFVRVNULEEpKTtyZXR1cm59bC5zZW5kKGl8fG51bGwpfSl9O3ZhciBtcj0oQSxlKT0+e2xldHtsZW5ndGg6dH09QT1BP0EuZmlsdGVyKEJvb2xlYW4pOltdO2lmKGV8fHQpe2xldCBJPW5ldyBBYm9ydENvbnRyb2xsZXIscixpPWZ1bmN0aW9uKEMpe2lmKCFyKXtyPSEwLHMoKTtsZXQgbz1DIGluc3RhbmNlb2YgRXJyb3I/Qzp0aGlzLnJlYXNvbjtJLmFib3J0KG8gaW5zdGFuY2VvZiB1P286bmV3IHEobyBpbnN0YW5jZW9mIEVycm9yP28ubWVzc2FnZTpvKSl9fSxnPWUmJnNldFRpbWVvdXQoKCk9PntnPW51bGwsaShuZXcgdShgdGltZW91dCAke2V9IG9mIG1zIGV4Y2VlZGVkYCx1LkVUSU1FRE9VVCkpfSxlKSxzPSgpPT57QSYmKGcmJmNsZWFyVGltZW91dChnKSxnPW51bGwsQS5mb3JFYWNoKEM9PntDLnVuc3Vic2NyaWJlP0MudW5zdWJzY3JpYmUoaSk6Qy5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsaSl9KSxBPW51bGwpfTtBLmZvckVhY2goQz0+Qy5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsaSkpO2xldHtzaWduYWw6RX09STtyZXR1cm4gRS51bnN1YnNjcmliZT0oKT0+bi5hc2FwKHMpLEV9fSx3dD1tcjt2YXIgU3I9ZnVuY3Rpb24qKEEsZSl7bGV0IHQ9QS5ieXRlTGVuZ3RoO2lmKCFlfHx0PGUpe3lpZWxkIEE7cmV0dXJufWxldCBJPTAscjtmb3IoO0k8dDspcj1JK2UseWllbGQgQS5zbGljZShJLHIpLEk9cn0sRnI9YXN5bmMgZnVuY3Rpb24qKEEsZSl7Zm9yIGF3YWl0KGxldCB0IG9mIFJyKEEpKXlpZWxkKlNyKHQsZSl9LFJyPWFzeW5jIGZ1bmN0aW9uKihBKXtpZihBW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl7eWllbGQqQTtyZXR1cm59bGV0IGU9QS5nZXRSZWFkZXIoKTt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTp0LHZhbHVlOkl9PWF3YWl0IGUucmVhZCgpO2lmKHQpYnJlYWs7eWllbGQgSX19ZmluYWxseXthd2FpdCBlLmNhbmNlbCgpfX0seWU9KEEsZSx0LEkpPT57bGV0IHI9RnIoQSxlKSxpPTAsZyxzPUU9PntnfHwoZz0hMCxJJiZJKEUpKX07cmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7YXN5bmMgcHVsbChFKXt0cnl7bGV0e2RvbmU6Qyx2YWx1ZTpvfT1hd2FpdCByLm5leHQoKTtpZihDKXtzKCksRS5jbG9zZSgpO3JldHVybn1sZXQgYT1vLmJ5dGVMZW5ndGg7aWYodCl7bGV0IGM9aSs9YTt0KGMpfUUuZW5xdWV1ZShuZXcgVWludDhBcnJheShvKSl9Y2F0Y2goQyl7dGhyb3cgcyhDKSxDfX0sY2FuY2VsKEUpe3JldHVybiBzKEUpLHIucmV0dXJuKCl9fSx7aGlnaFdhdGVyTWFyazoyfSl9O3ZhciBtdD02NCoxMDI0LHtpc0Z1bmN0aW9uOlBBfT1uLGt0PSgoe2ZldGNoOkEsUmVxdWVzdDplLFJlc3BvbnNlOnR9KT0+KHtmZXRjaDpBLFJlcXVlc3Q6ZSxSZXNwb25zZTp0fSkpKG4uZ2xvYmFsKSx7UmVhZGFibGVTdHJlYW06U3QsVGV4dEVuY29kZXI6RnR9PW4uZ2xvYmFsLFJ0PShBLC4uLmUpPT57dHJ5e3JldHVybiEhQSguLi5lKX1jYXRjaHtyZXR1cm4hMX19LGtyPUE9PntsZXR7ZmV0Y2g6ZSxSZXF1ZXN0OnQsUmVzcG9uc2U6SX09T2JqZWN0LmFzc2lnbih7fSxrdCxBKSxyPVBBKGUpLGk9UEEodCksZz1QQShJKTtpZighcilyZXR1cm4hMTtsZXQgcz1yJiZQQShTdCksRT1yJiYodHlwZW9mIEZ0PT0iZnVuY3Rpb24iPyhRPT5mPT5RLmVuY29kZShmKSkobmV3IEZ0KTphc3luYyBRPT5uZXcgVWludDhBcnJheShhd2FpdCBuZXcgdChRKS5hcnJheUJ1ZmZlcigpKSksQz1pJiZzJiZSdCgoKT0+e2xldCBRPSExLGY9bmV3IHQoaC5vcmlnaW4se2JvZHk6bmV3IFN0LG1ldGhvZDoiUE9TVCIsZ2V0IGR1cGxleCgpe3JldHVybiBRPSEwLCJoYWxmIn19KS5oZWFkZXJzLmhhcygiQ29udGVudC1UeXBlIik7cmV0dXJuIFEmJiFmfSksbz1nJiZzJiZSdCgoKT0+bi5pc1JlYWRhYmxlU3RyZWFtKG5ldyBJKCIiKS5ib2R5KSksYT17c3RyZWFtOm8mJihRPT5RLmJvZHkpfTtyJiZbInRleHQiLCJhcnJheUJ1ZmZlciIsImJsb2IiLCJmb3JtRGF0YSIsInN0cmVhbSJdLmZvckVhY2goUT0+eyFhW1FdJiYoYVtRXT0oZixsKT0+e2xldCBwPWYmJmZbUV07aWYocClyZXR1cm4gcC5jYWxsKGYpO3Rocm93IG5ldyB1KGBSZXNwb25zZSB0eXBlICcke1F9JyBpcyBub3Qgc3VwcG9ydGVkYCx1LkVSUl9OT1RfU1VQUE9SVCxsKX0pfSk7bGV0IGM9YXN5bmMgUT0+e2lmKFE9PW51bGwpcmV0dXJuIDA7aWYobi5pc0Jsb2IoUSkpcmV0dXJuIFEuc2l6ZTtpZihuLmlzU3BlY0NvbXBsaWFudEZvcm0oUSkpcmV0dXJuKGF3YWl0IG5ldyB0KGgub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6UX0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYobi5pc0FycmF5QnVmZmVyVmlldyhRKXx8bi5pc0FycmF5QnVmZmVyKFEpKXJldHVybiBRLmJ5dGVMZW5ndGg7aWYobi5pc1VSTFNlYXJjaFBhcmFtcyhRKSYmKFE9USsiIiksbi5pc1N0cmluZyhRKSlyZXR1cm4oYXdhaXQgRShRKSkuYnl0ZUxlbmd0aH0sQj1hc3luYyhRLGYpPT57bGV0IGw9bi50b0Zpbml0ZU51bWJlcihRLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIGw/P2MoZil9O3JldHVybiBhc3luYyBRPT57bGV0e3VybDpmLG1ldGhvZDpsLGRhdGE6cCxzaWduYWw6RixjYW5jZWxUb2tlbjpELHRpbWVvdXQ6UixvbkRvd25sb2FkUHJvZ3Jlc3M6TCxvblVwbG9hZFByb2dyZXNzOloscmVzcG9uc2VUeXBlOk4saGVhZGVyczokQSx3aXRoQ3JlZGVudGlhbHM6U0E9InNhbWUtb3JpZ2luIixmZXRjaE9wdGlvbnM6WWV9PXhBKFEpO049Tj8oTisiIikudG9Mb3dlckNhc2UoKToidGV4dCI7bGV0IEZBPXd0KFtGLEQmJkQudG9BYm9ydFNpZ25hbCgpXSxSKSxzQT1udWxsLFY9RkEmJkZBLnVuc3Vic2NyaWJlJiYoKCk9PntGQS51bnN1YnNjcmliZSgpfSksTWU7dHJ5e2lmKFomJkMmJmwhPT0iZ2V0IiYmbCE9PSJoZWFkIiYmKE1lPWF3YWl0IEIoJEEscCkpIT09MCl7bGV0IFc9bmV3IHQoZix7bWV0aG9kOiJQT1NUIixib2R5OnAsZHVwbGV4OiJoYWxmIn0pLCQ7aWYobi5pc0Zvcm1EYXRhKHApJiYoJD1XLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKSkmJiRBLnNldENvbnRlbnRUeXBlKCQpLFcuYm9keSl7bGV0W0FlLFJBXT1kZShNZSxpQShwZShaKSkpO3A9eWUoVy5ib2R5LG10LEFlLFJBKX19bi5pc1N0cmluZyhTQSl8fChTQT1TQT8iaW5jbHVkZSI6Im9taXQiKTtsZXQgTT1pJiYiY3JlZGVudGlhbHMiaW4gdC5wcm90b3R5cGUsSGU9ey4uLlllLHNpZ25hbDpGQSxtZXRob2Q6bC50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6JEEubm9ybWFsaXplKCkudG9KU09OKCksYm9keTpwLGR1cGxleDoiaGFsZiIsY3JlZGVudGlhbHM6TT9TQTp2b2lkIDB9O3NBPWkmJm5ldyB0KGYsSGUpO2xldCBQPWF3YWl0KGk/ZShzQSxZZSk6ZShmLEhlKSkscWU9byYmKE49PT0ic3RyZWFtInx8Tj09PSJyZXNwb25zZSIpO2lmKG8mJihMfHxxZSYmVikpe2xldCBXPXt9O1sic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXS5mb3JFYWNoKEtlPT57V1tLZV09UFtLZV19KTtsZXQgJD1uLnRvRmluaXRlTnVtYmVyKFAuaGVhZGVycy5nZXQoImNvbnRlbnQtbGVuZ3RoIikpLFtBZSxSQV09TCYmZGUoJCxpQShwZShMKSwhMCkpfHxbXTtQPW5ldyBJKHllKFAuYm9keSxtdCxBZSwoKT0+e1JBJiZSQSgpLFYmJlYoKX0pLFcpfU49Tnx8InRleHQiO2xldCBJST1hd2FpdCBhW24uZmluZEtleShhLE4pfHwidGV4dCJdKFAsUSk7cmV0dXJuIXFlJiZWJiZWKCksYXdhaXQgbmV3IFByb21pc2UoKFcsJCk9PntkQShXLCQse2RhdGE6SUksaGVhZGVyczptLmZyb20oUC5oZWFkZXJzKSxzdGF0dXM6UC5zdGF0dXMsc3RhdHVzVGV4dDpQLnN0YXR1c1RleHQsY29uZmlnOlEscmVxdWVzdDpzQX0pfSl9Y2F0Y2goTSl7dGhyb3cgViYmVigpLE0mJk0ubmFtZT09PSJUeXBlRXJyb3IiJiYvTG9hZCBmYWlsZWR8ZmV0Y2gvaS50ZXN0KE0ubWVzc2FnZSk/T2JqZWN0LmFzc2lnbihuZXcgdSgiTmV0d29yayBFcnJvciIsdS5FUlJfTkVUV09SSyxRLHNBKSx7Y2F1c2U6TS5jYXVzZXx8TX0pOnUuZnJvbShNLE0mJk0uY29kZSxRLHNBKX19fSxVcj1uZXcgTWFwLHdlPUE9PntsZXQgZT1uLm1lcmdlLmNhbGwoe3NraXBVbmRlZmluZWQ6ITB9LGt0LEE/QS5lbnY6bnVsbCkse2ZldGNoOnQsUmVxdWVzdDpJLFJlc3BvbnNlOnJ9PWUsaT1bSSxyLHRdLGc9aS5sZW5ndGgscz1nLEUsQyxvPVVyO2Zvcig7cy0tOylFPWlbc10sQz1vLmdldChFKSxDPT09dm9pZCAwJiZvLnNldChFLEM9cz9uZXcgTWFwOmtyKGUpKSxvPUM7cmV0dXJuIEN9LEZvPXdlKCk7dmFyIG1lPXtodHRwOkhBLHhocjp5dCxmZXRjaDp7Z2V0OndlfX07bi5mb3JFYWNoKG1lLChBLGUpPT57aWYoQSl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJuYW1lIix7dmFsdWU6ZX0pfWNhdGNoe31PYmplY3QuZGVmaW5lUHJvcGVydHkoQSwiYWRhcHRlck5hbWUiLHt2YWx1ZTplfSl9fSk7dmFyIFV0PUE9PmAtICR7QX1gLEdyPUE9Pm4uaXNGdW5jdGlvbihBKXx8QT09PW51bGx8fEE9PT0hMSxXQT17Z2V0QWRhcHRlcjooQSxlKT0+e0E9bi5pc0FycmF5KEEpP0E6W0FdO2xldHtsZW5ndGg6dH09QSxJLHIsaT17fTtmb3IobGV0IGc9MDtnPHQ7ZysrKXtJPUFbZ107bGV0IHM7aWYocj1JLCFHcihJKSYmKHI9bWVbKHM9U3RyaW5nKEkpKS50b0xvd2VyQ2FzZSgpXSxyPT09dm9pZCAwKSl0aHJvdyBuZXcgdShgVW5rbm93biBhZGFwdGVyICcke3N9J2ApO2lmKHImJihuLmlzRnVuY3Rpb24ocil8fChyPXIuZ2V0KGUpKSkpYnJlYWs7aVtzfHwiIyIrZ109cn1pZighcil7bGV0IGc9T2JqZWN0LmVudHJpZXMoaSkubWFwKChbRSxDXSk9PmBhZGFwdGVyICR7RX0gYCsoQz09PSExPyJpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBlbnZpcm9ubWVudCI6ImlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJ1aWxkIikpLHM9dD9nLmxlbmd0aD4xP2BzaW5jZSA6CmArZy5tYXAoVXQpLmpvaW4oYApgKToiICIrVXQoZ1swXSk6ImFzIG5vIGFkYXB0ZXIgc3BlY2lmaWVkIjt0aHJvdyBuZXcgdSgiVGhlcmUgaXMgbm8gc3VpdGFibGUgYWRhcHRlciB0byBkaXNwYXRjaCB0aGUgcmVxdWVzdCAiK3MsIkVSUl9OT1RfU1VQUE9SVCIpfXJldHVybiByfSxhZGFwdGVyczptZX07ZnVuY3Rpb24gU2UoQSl7aWYoQS5jYW5jZWxUb2tlbiYmQS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksQS5zaWduYWwmJkEuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IHEobnVsbCxBKX1mdW5jdGlvbiBqQShBKXtyZXR1cm4gU2UoQSksQS5oZWFkZXJzPW0uZnJvbShBLmhlYWRlcnMpLEEuZGF0YT1mQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXF1ZXN0KSxbInBvc3QiLCJwdXQiLCJwYXRjaCJdLmluZGV4T2YoQS5tZXRob2QpIT09LTEmJkEuaGVhZGVycy5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwhMSksV0EuZ2V0QWRhcHRlcihBLmFkYXB0ZXJ8fHJBLmFkYXB0ZXIsQSkoQSkudGhlbihmdW5jdGlvbihJKXtyZXR1cm4gU2UoQSksSS5kYXRhPWZBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkpLEkuaGVhZGVycz1tLmZyb20oSS5oZWFkZXJzKSxJfSxmdW5jdGlvbihJKXtyZXR1cm4gdUEoSSl8fChTZShBKSxJJiZJLnJlc3BvbnNlJiYoSS5yZXNwb25zZS5kYXRhPWZBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkucmVzcG9uc2UpLEkucmVzcG9uc2UuaGVhZGVycz1tLmZyb20oSS5yZXNwb25zZS5oZWFkZXJzKSkpLFByb21pc2UucmVqZWN0KEkpfSl9dmFyIHZBPSIxLjEyLjAiO3ZhciBaQT17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKEEsZSk9PntaQVtBXT1mdW5jdGlvbihJKXtyZXR1cm4gdHlwZW9mIEk9PT1BfHwiYSIrKGU8MT8ibiAiOiIgIikrQX19KTt2YXIgTnQ9e307WkEudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKGUsdCxJKXtmdW5jdGlvbiByKGksZyl7cmV0dXJuIltBeGlvcyB2Iit2QSsiXSBUcmFuc2l0aW9uYWwgb3B0aW9uICciK2krIiciK2crKEk/Ii4gIitJOiIiKX1yZXR1cm4oaSxnLHMpPT57aWYoZT09PSExKXRocm93IG5ldyB1KHIoZywiIGhhcyBiZWVuIHJlbW92ZWQiKyh0PyIgaW4gIit0OiIiKSksdS5FUlJfREVQUkVDQVRFRCk7cmV0dXJuIHQmJiFOdFtnXSYmKE50W2ddPSEwLGNvbnNvbGUud2FybihyKGcsIiBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYiK3QrIiBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZWFyIGZ1dHVyZSIpKSksZT9lKGksZyxzKTohMH19O1pBLnNwZWxsaW5nPWZ1bmN0aW9uKGUpe3JldHVybih0LEkpPT4oY29uc29sZS53YXJuKGAke0l9IGlzIGxpa2VseSBhIG1pc3NwZWxsaW5nIG9mICR7ZX1gKSwhMCl9O2Z1bmN0aW9uIExyKEEsZSx0KXtpZih0eXBlb2YgQSE9Im9iamVjdCIpdGhyb3cgbmV3IHUoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiLHUuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2xldCBJPU9iamVjdC5rZXlzKEEpLHI9SS5sZW5ndGg7Zm9yKDtyLS0gPjA7KXtsZXQgaT1JW3JdLGc9ZVtpXTtpZihnKXtsZXQgcz1BW2ldLEU9cz09PXZvaWQgMHx8ZyhzLGksQSk7aWYoRSE9PSEwKXRocm93IG5ldyB1KCJvcHRpb24gIitpKyIgbXVzdCBiZSAiK0UsdS5FUlJfQkFEX09QVElPTl9WQUxVRSk7Y29udGludWV9aWYodCE9PSEwKXRocm93IG5ldyB1KCJVbmtub3duIG9wdGlvbiAiK2ksdS5FUlJfQkFEX09QVElPTil9fXZhciBoQT17YXNzZXJ0T3B0aW9uczpMcix2YWxpZGF0b3JzOlpBfTt2YXIgSz1oQS52YWxpZGF0b3JzLG9BPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuZGVmYXVsdHM9ZXx8e30sdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IENlLHJlc3BvbnNlOm5ldyBDZX19YXN5bmMgcmVxdWVzdChlLHQpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fcmVxdWVzdChlLHQpfWNhdGNoKEkpe2lmKEkgaW5zdGFuY2VvZiBFcnJvcil7bGV0IHI9e307RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2Uocik6cj1uZXcgRXJyb3I7bGV0IGk9ci5zdGFjaz9yLnN0YWNrLnJlcGxhY2UoL14uK1xuLywiIik6IiI7dHJ5e0kuc3RhY2s/aSYmIVN0cmluZyhJLnN0YWNrKS5lbmRzV2l0aChpLnJlcGxhY2UoL14uK1xuLitcbi8sIiIpKSYmKEkuc3RhY2srPWAKYCtpKTpJLnN0YWNrPWl9Y2F0Y2h7fX10aHJvdyBJfX1fcmVxdWVzdChlLHQpe3R5cGVvZiBlPT0ic3RyaW5nIj8odD10fHx7fSx0LnVybD1lKTp0PWV8fHt9LHQ9Sih0aGlzLmRlZmF1bHRzLHQpO2xldHt0cmFuc2l0aW9uYWw6SSxwYXJhbXNTZXJpYWxpemVyOnIsaGVhZGVyczppfT10O0khPT12b2lkIDAmJmhBLmFzc2VydE9wdGlvbnMoSSx7c2lsZW50SlNPTlBhcnNpbmc6Sy50cmFuc2l0aW9uYWwoSy5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzpLLnRyYW5zaXRpb25hbChLLmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6Sy50cmFuc2l0aW9uYWwoSy5ib29sZWFuKX0sITEpLHIhPW51bGwmJihuLmlzRnVuY3Rpb24ocik/dC5wYXJhbXNTZXJpYWxpemVyPXtzZXJpYWxpemU6cn06aEEuYXNzZXJ0T3B0aW9ucyhyLHtlbmNvZGU6Sy5mdW5jdGlvbixzZXJpYWxpemU6Sy5mdW5jdGlvbn0sITApKSx0LmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwfHwodGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMD90LmFsbG93QWJzb2x1dGVVcmxzPXRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHM6dC5hbGxvd0Fic29sdXRlVXJscz0hMCksaEEuYXNzZXJ0T3B0aW9ucyh0LHtiYXNlVXJsOksuc3BlbGxpbmcoImJhc2VVUkwiKSx3aXRoWHNyZlRva2VuOksuc3BlbGxpbmcoIndpdGhYU1JGVG9rZW4iKX0sITApLHQubWV0aG9kPSh0Lm1ldGhvZHx8dGhpcy5kZWZhdWx0cy5tZXRob2R8fCJnZXQiKS50b0xvd2VyQ2FzZSgpO2xldCBnPWkmJm4ubWVyZ2UoaS5jb21tb24saVt0Lm1ldGhvZF0pO2kmJm4uZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giLCJjb21tb24iXSxRPT57ZGVsZXRlIGlbUV19KSx0LmhlYWRlcnM9bS5jb25jYXQoZyxpKTtsZXQgcz1bXSxFPSEwO3RoaXMuaW50ZXJjZXB0b3JzLnJlcXVlc3QuZm9yRWFjaChmdW5jdGlvbihmKXt0eXBlb2YgZi5ydW5XaGVuPT0iZnVuY3Rpb24iJiZmLnJ1bldoZW4odCk9PT0hMXx8KEU9RSYmZi5zeW5jaHJvbm91cyxzLnVuc2hpZnQoZi5mdWxmaWxsZWQsZi5yZWplY3RlZCkpfSk7bGV0IEM9W107dGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaChmdW5jdGlvbihmKXtDLnB1c2goZi5mdWxmaWxsZWQsZi5yZWplY3RlZCl9KTtsZXQgbyxhPTAsYztpZighRSl7bGV0IFE9W2pBLmJpbmQodGhpcyksdm9pZCAwXTtmb3IoUS51bnNoaWZ0KC4uLnMpLFEucHVzaCguLi5DKSxjPVEubGVuZ3RoLG89UHJvbWlzZS5yZXNvbHZlKHQpO2E8Yzspbz1vLnRoZW4oUVthKytdLFFbYSsrXSk7cmV0dXJuIG99Yz1zLmxlbmd0aDtsZXQgQj10O2ZvcihhPTA7YTxjOyl7bGV0IFE9c1thKytdLGY9c1thKytdO3RyeXtCPVEoQil9Y2F0Y2gobCl7Zi5jYWxsKHRoaXMsbCk7YnJlYWt9fXRyeXtvPWpBLmNhbGwodGhpcyxCKX1jYXRjaChRKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoUSl9Zm9yKGE9MCxjPUMubGVuZ3RoO2E8Yzspbz1vLnRoZW4oQ1thKytdLENbYSsrXSk7cmV0dXJuIG99Z2V0VXJpKGUpe2U9Sih0aGlzLmRlZmF1bHRzLGUpO2xldCB0PXBBKGUuYmFzZVVSTCxlLnVybCxlLmFsbG93QWJzb2x1dGVVcmxzKTtyZXR1cm4gbEEodCxlLnBhcmFtcyxlLnBhcmFtc1NlcmlhbGl6ZXIpfX07bi5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSxmdW5jdGlvbihlKXtvQS5wcm90b3R5cGVbZV09ZnVuY3Rpb24odCxJKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KEooSXx8e30se21ldGhvZDplLHVybDp0LGRhdGE6KEl8fHt9KS5kYXRhfSkpfX0pO24uZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoSSl7cmV0dXJuIGZ1bmN0aW9uKGksZyxzKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KEooc3x8e30se21ldGhvZDplLGhlYWRlcnM6ST97IkNvbnRlbnQtVHlwZSI6Im11bHRpcGFydC9mb3JtLWRhdGEifTp7fSx1cmw6aSxkYXRhOmd9KSl9fW9BLnByb3RvdHlwZVtlXT10KCksb0EucHJvdG90eXBlW2UrIkZvcm0iXT10KCEwKX0pO3ZhciBEQT1vQTt2YXIgRmU9Y2xhc3MgQXtjb25zdHJ1Y3RvcihlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7bGV0IHQ7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGkpe3Q9aX0pO2xldCBJPXRoaXM7dGhpcy5wcm9taXNlLnRoZW4ocj0+e2lmKCFJLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBpPUkuX2xpc3RlbmVycy5sZW5ndGg7Zm9yKDtpLS0gPjA7KUkuX2xpc3RlbmVyc1tpXShyKTtJLl9saXN0ZW5lcnM9bnVsbH0pLHRoaXMucHJvbWlzZS50aGVuPXI9PntsZXQgaSxnPW5ldyBQcm9taXNlKHM9PntJLnN1YnNjcmliZShzKSxpPXN9KS50aGVuKHIpO3JldHVybiBnLmNhbmNlbD1mdW5jdGlvbigpe0kudW5zdWJzY3JpYmUoaSl9LGd9LGUoZnVuY3Rpb24oaSxnLHMpe0kucmVhc29ufHwoSS5yZWFzb249bmV3IHEoaSxnLHMpLHQoSS5yZWFzb24pKX0pfXRocm93SWZSZXF1ZXN0ZWQoKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn1zdWJzY3JpYmUoZSl7aWYodGhpcy5yZWFzb24pe2UodGhpcy5yZWFzb24pO3JldHVybn10aGlzLl9saXN0ZW5lcnM/dGhpcy5fbGlzdGVuZXJzLnB1c2goZSk6dGhpcy5fbGlzdGVuZXJzPVtlXX11bnN1YnNjcmliZShlKXtpZighdGhpcy5fbGlzdGVuZXJzKXJldHVybjtsZXQgdD10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZihlKTt0IT09LTEmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UodCwxKX10b0Fib3J0U2lnbmFsKCl7bGV0IGU9bmV3IEFib3J0Q29udHJvbGxlcix0PUk9PntlLmFib3J0KEkpfTtyZXR1cm4gdGhpcy5zdWJzY3JpYmUodCksZS5zaWduYWwudW5zdWJzY3JpYmU9KCk9PnRoaXMudW5zdWJzY3JpYmUodCksZS5zaWduYWx9c3RhdGljIHNvdXJjZSgpe2xldCBlO3JldHVybnt0b2tlbjpuZXcgQShmdW5jdGlvbihyKXtlPXJ9KSxjYW5jZWw6ZX19fSxHdD1GZTtmdW5jdGlvbiBSZShBKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIEEuYXBwbHkobnVsbCx0KX19ZnVuY3Rpb24ga2UoQSl7cmV0dXJuIG4uaXNPYmplY3QoQSkmJkEuaXNBeGlvc0Vycm9yPT09ITB9dmFyIFVlPXtDb250aW51ZToxMDAsU3dpdGNoaW5nUHJvdG9jb2xzOjEwMSxQcm9jZXNzaW5nOjEwMixFYXJseUhpbnRzOjEwMyxPazoyMDAsQ3JlYXRlZDoyMDEsQWNjZXB0ZWQ6MjAyLE5vbkF1dGhvcml0YXRpdmVJbmZvcm1hdGlvbjoyMDMsTm9Db250ZW50OjIwNCxSZXNldENvbnRlbnQ6MjA1LFBhcnRpYWxDb250ZW50OjIwNixNdWx0aVN0YXR1czoyMDcsQWxyZWFkeVJlcG9ydGVkOjIwOCxJbVVzZWQ6MjI2LE11bHRpcGxlQ2hvaWNlczozMDAsTW92ZWRQZXJtYW5lbnRseTozMDEsRm91bmQ6MzAyLFNlZU90aGVyOjMwMyxOb3RNb2RpZmllZDozMDQsVXNlUHJveHk6MzA1LFVudXNlZDozMDYsVGVtcG9yYXJ5UmVkaXJlY3Q6MzA3LFBlcm1hbmVudFJlZGlyZWN0OjMwOCxCYWRSZXF1ZXN0OjQwMCxVbmF1dGhvcml6ZWQ6NDAxLFBheW1lbnRSZXF1aXJlZDo0MDIsRm9yYmlkZGVuOjQwMyxOb3RGb3VuZDo0MDQsTWV0aG9kTm90QWxsb3dlZDo0MDUsTm90QWNjZXB0YWJsZTo0MDYsUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkOjQwNyxSZXF1ZXN0VGltZW91dDo0MDgsQ29uZmxpY3Q6NDA5LEdvbmU6NDEwLExlbmd0aFJlcXVpcmVkOjQxMSxQcmVjb25kaXRpb25GYWlsZWQ6NDEyLFBheWxvYWRUb29MYXJnZTo0MTMsVXJpVG9vTG9uZzo0MTQsVW5zdXBwb3J0ZWRNZWRpYVR5cGU6NDE1LFJhbmdlTm90U2F0aXNmaWFibGU6NDE2LEV4cGVjdGF0aW9uRmFpbGVkOjQxNyxJbUFUZWFwb3Q6NDE4LE1pc2RpcmVjdGVkUmVxdWVzdDo0MjEsVW5wcm9jZXNzYWJsZUVudGl0eTo0MjIsTG9ja2VkOjQyMyxGYWlsZWREZXBlbmRlbmN5OjQyNCxUb29FYXJseTo0MjUsVXBncmFkZVJlcXVpcmVkOjQyNixQcmVjb25kaXRpb25SZXF1aXJlZDo0MjgsVG9vTWFueVJlcXVlc3RzOjQyOSxSZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6NDMxLFVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zOjQ1MSxJbnRlcm5hbFNlcnZlckVycm9yOjUwMCxOb3RJbXBsZW1lbnRlZDo1MDEsQmFkR2F0ZXdheTo1MDIsU2VydmljZVVuYXZhaWxhYmxlOjUwMyxHYXRld2F5VGltZW91dDo1MDQsSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6NTA1LFZhcmlhbnRBbHNvTmVnb3RpYXRlczo1MDYsSW5zdWZmaWNpZW50U3RvcmFnZTo1MDcsTG9vcERldGVjdGVkOjUwOCxOb3RFeHRlbmRlZDo1MTAsTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NTExfTtPYmplY3QuZW50cmllcyhVZSkuZm9yRWFjaCgoW0EsZV0pPT57VWVbZV09QX0pO3ZhciBMdD1VZTtmdW5jdGlvbiBidChBKXtsZXQgZT1uZXcgREEoQSksdD1DQShEQS5wcm90b3R5cGUucmVxdWVzdCxlKTtyZXR1cm4gbi5leHRlbmQodCxEQS5wcm90b3R5cGUsZSx7YWxsT3duS2V5czohMH0pLG4uZXh0ZW5kKHQsZSxudWxsLHthbGxPd25LZXlzOiEwfSksdC5jcmVhdGU9ZnVuY3Rpb24ocil7cmV0dXJuIGJ0KEooQSxyKSl9LHR9dmFyIHk9YnQockEpO3kuQXhpb3M9REE7eS5DYW5jZWxlZEVycm9yPXE7eS5DYW5jZWxUb2tlbj1HdDt5LmlzQ2FuY2VsPXVBO3kuVkVSU0lPTj12QTt5LnRvRm9ybURhdGE9ajt5LkF4aW9zRXJyb3I9dTt5LkNhbmNlbD15LkNhbmNlbGVkRXJyb3I7eS5hbGw9ZnVuY3Rpb24oZSl7cmV0dXJuIFByb21pc2UuYWxsKGUpfTt5LnNwcmVhZD1SZTt5LmlzQXhpb3NFcnJvcj1rZTt5Lm1lcmdlQ29uZmlnPUo7eS5BeGlvc0hlYWRlcnM9bTt5LmZvcm1Ub0pTT049QT0+T0Eobi5pc0hUTUxGb3JtKEEpP25ldyBGb3JtRGF0YShBKTpBKTt5LmdldEFkYXB0ZXI9V0EuZ2V0QWRhcHRlcjt5Lkh0dHBTdGF0dXNDb2RlPUx0O3kuZGVmYXVsdD15O3ZhciBuQT15O3ZhcntBeGlvczptbixBeGlvc0Vycm9yOlNuLENhbmNlbGVkRXJyb3I6Rm4saXNDYW5jZWw6Um4sQ2FuY2VsVG9rZW46a24sVkVSU0lPTjpVbixhbGw6Tm4sQ2FuY2VsOkduLGlzQXhpb3NFcnJvcjpMbixzcHJlYWQ6Ym4sdG9Gb3JtRGF0YTpKbixBeGlvc0hlYWRlcnM6WW4sSHR0cFN0YXR1c0NvZGU6TW4sZm9ybVRvSlNPTjpIbixnZXRBZGFwdGVyOnFuLG1lcmdlQ29uZmlnOktufT1uQTthc3luYyBmdW5jdGlvbiBicihBLGUpe2xldCB0PUEsST1udWxsO2lmKHQ9PW51bGwpST1uZXcgV29ya2VyKG5ldyBVUkwoIi4vd2ViLXdvcmtlcnMvaXRrLXdhc20tcGlwZWxpbmUud29ya2VyLmpzIixpbXBvcnQubWV0YS51cmwpLHt0eXBlOiJtb2R1bGUifSk7ZWxzZSBpZih0LnN0YXJ0c1dpdGgoImh0dHAiKSl7bGV0IHI9YXdhaXQgbkEuZ2V0KHQse3Jlc3BvbnNlVHlwZToiYmxvYiIscGFyYW1zOmV9KSxpPVVSTC5jcmVhdGVPYmplY3RVUkwoci5kYXRhKTtJPW5ldyBXb3JrZXIoaSx7dHlwZToibW9kdWxlIn0pfWVsc2UgST1uZXcgV29ya2VyKHQse3R5cGU6Im1vZHVsZSJ9KTtyZXR1cm4gSX12YXIgeUE9YnI7ZnVuY3Rpb24gSnQoQSl7bGV0IGU9Z2UoQSksdD1BO3JldHVybiB0LnRlcm1pbmF0ZWQ9ITEsdC53b3JrZXJQcm94eT1lLHQub3JpZ2luYWxUZXJtaW5hdGU9dC50ZXJtaW5hdGUsdC50ZXJtaW5hdGU9KCk9Pnt0LnRlcm1pbmF0ZWQ9ITAsdC53b3JrZXJQcm94eVtyZV0oKSx0Lm9yaWdpbmFsVGVybWluYXRlKCl9LHt3b3JrZXJQcm94eTplLHdvcmtlcjp0fX1hc3luYyBmdW5jdGlvbiBKcihBLGUsdCl7bGV0IEk7aWYoQSE9bnVsbCl7bGV0IGk9QTtyZXR1cm4gaS53b3JrZXJQcm94eSE9PXZvaWQgMD8oST1pLndvcmtlclByb3h5LHt3b3JrZXJQcm94eTpJLHdvcmtlcjppfSk6SnQoQSl9bGV0IHI9YXdhaXQgeUEoZSx0KTtyZXR1cm4gSnQocil9dmFyIFl0PUpyO3ZhciB3QSx4LEdlLE5lPXtlbnY6e2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGg6ZnVuY3Rpb24oQSl7R2U9bmV3IFVpbnQ4QXJyYXkoeC5leHBvcnRzLm1lbW9yeS5idWZmZXIpfX19LFZBPWNsYXNze2luaXQoKXtyZXR1cm4gd0F8fCh0eXBlb2YgZmV0Y2g8InUiP3dBPWZldGNoKCJkYXRhOmFwcGxpY2F0aW9uL3dhc207YmFzZTY0LCIrTXQpLnRoZW4oZT0+ZS5hcnJheUJ1ZmZlcigpKS50aGVuKGU9PldlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGUsTmUpKS50aGVuKHRoaXMuX2luaXQpOndBPVdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEJ1ZmZlci5mcm9tKE10LCJiYXNlNjQiKSxOZSkudGhlbih0aGlzLl9pbml0KSx3QSl9X2luaXQoZSl7eD1lLmluc3RhbmNlLE5lLmVudi5lbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoKDApfWRlY29kZShlLHQ9MCl7aWYoIXgpdGhyb3cgbmV3IEVycm9yKCJaU1RERGVjb2RlcjogQXdhaXQgLmluaXQoKSBiZWZvcmUgZGVjb2RpbmcuIik7bGV0IEk9ZS5ieXRlTGVuZ3RoLHI9eC5leHBvcnRzLm1hbGxvYyhJKTtHZS5zZXQoZSxyKSx0PXR8fE51bWJlcih4LmV4cG9ydHMuWlNURF9maW5kRGVjb21wcmVzc2VkU2l6ZShyLEkpKTtsZXQgaT14LmV4cG9ydHMubWFsbG9jKHQpLGc9eC5leHBvcnRzLlpTVERfZGVjb21wcmVzcyhpLHQscixJKSxzPUdlLnNsaWNlKGksaStnKTtyZXR1cm4geC5leHBvcnRzLmZyZWUocikseC5leHBvcnRzLmZyZWUoaSksc319LE10PSJBR0Z6YlFFQUFBQUJiZzVnQTM5L2Z3Ri9ZQUYvQVg5Z0FuOS9BR0FCZndCZ0JYOS9mMzkvQVg5Z0EzOS9md0JnQkg5L2YzOEJmMkFBQVg5Z0FuOS9BWDlnQjM5L2YzOS9mMzhCZjJBQ2YzOEJmbUFJZjM5L2YzOS9mMzhCZjJBRmYzOS9mMzhBWUE1L2YzOS9mMzkvZjM5L2YzOS9md0YvQWljQkEyVnVkaDlsYlhOamNtbHdkR1Z1WDI1dmRHbG1lVjl0WlcxdmNubGZaM0p2ZDNSb0FBTURJeUlIQUFBQkFRTUhBd0VBQ1FRQUJRRUlDQUVGQmdRRUJBTUdBQUFLQUFVTERBMEdCQVVCY0FFQkFRVUhBUUdBQW9DQUFnWUlBWDhCUVlDakJBc0hyZ0VMQm0xbGJXOXllUUlBQm0xaGJHeHZZd0FGQkdaeVpXVUFCZ3hhVTFSRVgybHpSWEp5YjNJQUVobGFVMVJFWDJacGJtUkVaV052YlhCeVpYTnpaV1JUYVhwbEFCd1BXbE5VUkY5a1pXTnZiWEJ5WlhOekFDSVpYMTlwYm1ScGNtVmpkRjltZFc1amRHbHZibDkwWVdKc1pRRUFFRjlmWlhKeWJtOWZiRzlqWVhScGIyNEFBUWx6ZEdGamExTmhkbVVBQnd4emRHRmphMUpsYzNSdmNtVUFDQXB6ZEdGamEwRnNiRzlqQUFrS2kvSUJJZ1VBUVlRZkN6TUJBWDhnQWdSQUlBQWhBd05BSUFNZ0FTMEFBRG9BQUNBRFFRRnFJUU1nQVVFQmFpRUJJQUpCQVdzaUFnMEFDd3NnQUFzcEFRRi9JQUlFUUNBQUlRTURRQ0FESUFFNkFBQWdBMEVCYWlFRElBSkJBV3NpQWcwQUN3c2dBQXRzQVFKL1FZQWZLQUlBSWdFZ0FFRUhha0Y0Y1NJQ2FpRUFBa0FnQWtFQUlBQWdBVTBiRFFBZ0FEOEFRUkIwU3dSQUlBQS9BRUVRZEd0Qi8vOERha0VRZGtBQVFYOUdCSDlCQUFWQkFCQUFRUUVMUlEwQkMwR0FIeUFBTmdJQUlBRVBDMEdFSDBFd05nSUFRWDhMdVNjQkMzOGpBRUVRYXlJS0pBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQUJCOUFGTkJFQkJpQjhvQWdBaUJrRVFJQUJCQzJwQmVIRWdBRUVMU1JzaUJVRURkaUlBZGlJQlFRTnhCRUFDUUNBQlFYOXpRUUZ4SUFCcUlnSkJBM1FpQVVHd0gyb2lBQ0FCUWJnZmFpZ0NBQ0lCS0FJSUlnUkdCRUJCaUI4Z0JrRitJQUozY1RZQ0FBd0JDeUFFSUFBMkFnd2dBQ0FFTmdJSUN5QUJRUWhxSVFBZ0FTQUNRUU4wSWdKQkEzSTJBZ1FnQVNBQ2FpSUJJQUVvQWdSQkFYSTJBZ1FNRHdzZ0JVR1FIeWdDQUNJSFRRMEJJQUVFUUFKQVFRSWdBSFFpQWtFQUlBSnJjaUFCSUFCMGNXZ2lBVUVEZENJQVFiQWZhaUlDSUFCQnVCOXFLQUlBSWdBb0FnZ2lCRVlFUUVHSUh5QUdRWDRnQVhkeElnWTJBZ0FNQVFzZ0JDQUNOZ0lNSUFJZ0JEWUNDQXNnQUNBRlFRTnlOZ0lFSUFBZ0JXb2lDQ0FCUVFOMElnRWdCV3NpQkVFQmNqWUNCQ0FBSUFGcUlBUTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRRkJuQjhvQWdBaEFnSi9JQVpCQVNBSFFRTjJkQ0lEY1VVRVFFR0lIeUFESUFaeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQXlBQklBSTJBZ2dnQXlBQ05nSU1JQUlnQVRZQ0RDQUNJQU0yQWdnTElBQkJDR29oQUVHY0h5QUlOZ0lBUVpBZklBUTJBZ0FNRHd0QmpCOG9BZ0FpQzBVTkFTQUxhRUVDZEVHNElXb29BZ0FpQWlnQ0JFRjRjU0FGYXlFRElBSWhBUU5BQWtBZ0FTZ0NFQ0lBUlFSQUlBRW9BaFFpQUVVTkFRc2dBQ2dDQkVGNGNTQUZheUlCSUFNZ0FTQURTU0lCR3lFRElBQWdBaUFCR3lFQ0lBQWhBUXdCQ3dzZ0FpZ0NHQ0VKSUFJZ0FpZ0NEQ0lFUndSQVFaZ2ZLQUlBR2lBQ0tBSUlJZ0FnQkRZQ0RDQUVJQUEyQWdnTURnc2dBa0VVYWlJQktBSUFJZ0JGQkVBZ0FpZ0NFQ0lBUlEwRElBSkJFR29oQVFzRFFDQUJJUWdnQUNJRVFSUnFJZ0VvQWdBaUFBMEFJQVJCRUdvaEFTQUVLQUlRSWdBTkFBc2dDRUVBTmdJQURBMExRWDhoQlNBQVFiOS9TdzBBSUFCQkMyb2lBRUY0Y1NFRlFZd2ZLQUlBSWdoRkRRQkJBQ0FGYXlFREFrQUNRQUpBQW45QkFDQUZRWUFDU1EwQUdrRWZJQVZCLy8vL0Iwc05BQm9nQlVFbUlBQkJDSFpuSWdCcmRrRUJjU0FBUVFGMGEwRSthZ3NpQjBFQ2RFRzRJV29vQWdBaUFVVUVRRUVBSVFBTUFRdEJBQ0VBSUFWQkdTQUhRUUYyYTBFQUlBZEJIMGNiZENFQ0EwQUNRQ0FCS0FJRVFYaHhJQVZySWdZZ0EwOE5BQ0FCSVFRZ0JpSUREUUJCQUNFRElBRWhBQXdEQ3lBQUlBRW9BaFFpQmlBR0lBRWdBa0VkZGtFRWNXb29BaEFpQVVZYklBQWdCaHNoQUNBQ1FRRjBJUUlnQVEwQUN3c2dBQ0FFY2tVRVFFRUFJUVJCQWlBSGRDSUFRUUFnQUd0eUlBaHhJZ0JGRFFNZ0FHaEJBblJCdUNGcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJQ0lBTkpJUUVnQWlBRElBRWJJUU1nQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBRFFaQWZLQUlBSUFWclR3MEFJQVFvQWhnaEJ5QUVJQVFvQWd3aUFrY0VRRUdZSHlnQ0FCb2dCQ2dDQ0NJQUlBSTJBZ3dnQWlBQU5nSUlEQXdMSUFSQkZHb2lBU2dDQUNJQVJRUkFJQVFvQWhBaUFFVU5BeUFFUVJCcUlRRUxBMEFnQVNFR0lBQWlBa0VVYWlJQktBSUFJZ0FOQUNBQ1FSQnFJUUVnQWlnQ0VDSUFEUUFMSUFaQkFEWUNBQXdMQ3lBRlFaQWZLQUlBSWdSTkJFQkJuQjhvQWdBaEFBSkFJQVFnQldzaUFVRVFUd1JBSUFBZ0JXb2lBaUFCUVFGeU5nSUVJQUFnQkdvZ0FUWUNBQ0FBSUFWQkEzSTJBZ1FNQVFzZ0FDQUVRUU55TmdJRUlBQWdCR29pQVNBQktBSUVRUUZ5TmdJRVFRQWhBa0VBSVFFTFFaQWZJQUUyQWdCQm5COGdBallDQUNBQVFRaHFJUUFNRFFzZ0JVR1VIeWdDQUNJQ1NRUkFRWlFmSUFJZ0JXc2lBVFlDQUVHZ0gwR2dIeWdDQUNJQUlBVnFJZ0kyQWdBZ0FpQUJRUUZ5TmdJRUlBQWdCVUVEY2pZQ0JDQUFRUWhxSVFBTURRdEJBQ0VBSUFWQkwyb2lBd0ovUWVBaUtBSUFCRUJCNkNJb0FnQU1BUXRCN0NKQ2Z6Y0NBRUhrSWtLQW9JQ0FnSUFFTndJQVFlQWlJQXBCREdwQmNIRkIyS3JWcWdWek5nSUFRZlFpUVFBMkFnQkJ4Q0pCQURZQ0FFR0FJQXNpQVdvaUJrRUFJQUZySWdoeElnRWdCVTBOREVIQUlpZ0NBQ0lFQkVCQnVDSW9BZ0FpQnlBQmFpSUpJQWROSUFRZ0NVbHlEUTBMQWtCQnhDSXRBQUJCQkhGRkJFQUNRQUpBQWtBQ1FFR2dIeWdDQUNJRUJFQkJ5Q0loQUFOQUlBUWdBQ2dDQUNJSFR3UkFJQWNnQUNnQ0JHb2dCRXNOQXdzZ0FDZ0NDQ0lBRFFBTEMwRUFFQVFpQWtGL1JnMERJQUVoQmtIa0lpZ0NBQ0lBUVFGcklnUWdBbkVFUUNBQklBSnJJQUlnQkdwQkFDQUFhM0ZxSVFZTElBVWdCazhOQTBIQUlpZ0NBQ0lBQkVCQnVDSW9BZ0FpQkNBR2FpSUlJQVJOSUFBZ0NFbHlEUVFMSUFZUUJDSUFJQUpIRFFFTUJRc2dCaUFDYXlBSWNTSUdFQVFpQWlBQUtBSUFJQUFvQWdScVJnMEJJQUloQUFzZ0FFRi9SZzBCSUFWQk1Hb2dCazBFUUNBQUlRSU1CQXRCNkNJb0FnQWlBaUFESUFacmFrRUFJQUpyY1NJQ0VBUkJmMFlOQVNBQ0lBWnFJUVlnQUNFQ0RBTUxJQUpCZjBjTkFndEJ4Q0pCeENJb0FnQkJCSEkyQWdBTElBRVFCQ0lDUVg5R1FRQVFCQ0lBUVg5R2NpQUFJQUpOY2cwRklBQWdBbXNpQmlBRlFTaHFUUTBGQzBHNElrRzRJaWdDQUNBR2FpSUFOZ0lBUWJ3aUtBSUFJQUJKQkVCQnZDSWdBRFlDQUFzQ1FFR2dIeWdDQUNJREJFQkJ5Q0loQUFOQUlBSWdBQ2dDQUNJQklBQW9BZ1FpQkdwR0RRSWdBQ2dDQ0NJQURRQUxEQVFMUVpnZktBSUFJZ0JCQUNBQUlBSk5HMFVFUUVHWUh5QUNOZ0lBQzBFQUlRQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFhZ2ZRWDgyQWdCQnJCOUI0Q0lvQWdBMkFnQkIxQ0pCQURZQ0FBTkFJQUJCQTNRaUFVRzRIMm9nQVVHd0gyb2lCRFlDQUNBQlFid2ZhaUFFTmdJQUlBQkJBV29pQUVFZ1J3MEFDMEdVSHlBR1FTaHJJZ0JCZUNBQ2EwRUhjU0lCYXlJRU5nSUFRYUFmSUFFZ0Ftb2lBVFlDQUNBQklBUkJBWEkyQWdRZ0FDQUNha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQVFMSUFJZ0EwMGdBU0FEUzNJTkFpQUFLQUlNUVFoeERRSWdBQ0FFSUFacU5nSUVRYUFmSUFOQmVDQURhMEVIY1NJQWFpSUJOZ0lBUVpRZlFaUWZLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFNTFFRQWhCQXdLQzBFQUlRSU1DQXRCbUI4b0FnQWdBa3NFUUVHWUh5QUNOZ0lBQ3lBQ0lBWnFJUUZCeUNJaEFBSkFBa0FDUUFOQUlBRWdBQ2dDQUVjRVFDQUFLQUlJSWdBTkFRd0NDd3NnQUMwQURFRUljVVVOQVF0QnlDSWhBQU5BSUFNZ0FDZ0NBQ0lCVHdSQUlBRWdBQ2dDQkdvaUJDQURTdzBEQ3lBQUtBSUlJUUFNQUFzQUN5QUFJQUkyQWdBZ0FDQUFLQUlFSUFacU5nSUVJQUpCZUNBQ2EwRUhjV29pQnlBRlFRTnlOZ0lFSUFGQmVDQUJhMEVIY1dvaUJpQUZJQWRxSWdWcklRQWdBeUFHUmdSQVFhQWZJQVUyQWdCQmxCOUJsQjhvQWdBZ0FHb2lBRFlDQUNBRklBQkJBWEkyQWdRTUNBdEJuQjhvQWdBZ0JrWUVRRUdjSHlBRk5nSUFRWkFmUVpBZktBSUFJQUJxSWdBMkFnQWdCU0FBUVFGeU5nSUVJQUFnQldvZ0FEWUNBQXdJQ3lBR0tBSUVJZ05CQTNGQkFVY05CaUFEUVhoeElRa2dBMEgvQVUwRVFDQUdLQUlNSWdFZ0JpZ0NDQ0lDUmdSQVFZZ2ZRWWdmS0FJQVFYNGdBMEVEZG5keE5nSUFEQWNMSUFJZ0FUWUNEQ0FCSUFJMkFnZ01CZ3NnQmlnQ0dDRUlJQVlnQmlnQ0RDSUNSd1JBSUFZb0FnZ2lBU0FDTmdJTUlBSWdBVFlDQ0F3RkN5QUdRUlJxSWdFb0FnQWlBMFVFUUNBR0tBSVFJZ05GRFFRZ0JrRVFhaUVCQ3dOQUlBRWhCQ0FESWdKQkZHb2lBU2dDQUNJRERRQWdBa0VRYWlFQklBSW9BaEFpQXcwQUN5QUVRUUEyQWdBTUJBdEJsQjhnQmtFb2F5SUFRWGdnQW10QkIzRWlBV3NpQ0RZQ0FFR2dIeUFCSUFKcUlnRTJBZ0FnQVNBSVFRRnlOZ0lFSUFBZ0FtcEJLRFlDQkVHa0gwSHdJaWdDQURZQ0FDQURJQVJCSnlBRWEwRUhjV3BCTDJzaUFDQUFJQU5CRUdwSkd5SUJRUnMyQWdRZ0FVSFFJaWtDQURjQ0VDQUJRY2dpS1FJQU53SUlRZEFpSUFGQkNHbzJBZ0JCekNJZ0JqWUNBRUhJSWlBQ05nSUFRZFFpUVFBMkFnQWdBVUVZYWlFQUEwQWdBRUVITmdJRUlBQkJDR29nQUVFRWFpRUFJQVJKRFFBTElBRWdBMFlOQUNBQklBRW9BZ1JCZm5FMkFnUWdBeUFCSUFOcklnSkJBWEkyQWdRZ0FTQUNOZ0lBSUFKQi93Rk5CRUFnQWtGNGNVR3dIMm9oQUFKL1FZZ2ZLQUlBSWdGQkFTQUNRUU4yZENJQ2NVVUVRRUdJSHlBQklBSnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEFTQUFJQU0yQWdnZ0FTQUROZ0lNSUFNZ0FEWUNEQ0FESUFFMkFnZ01BUXRCSHlFQUlBSkIvLy8vQjAwRVFDQUNRU1lnQWtFSWRtY2lBR3QyUVFGeElBQkJBWFJyUVQ1cUlRQUxJQU1nQURZQ0hDQURRZ0EzQWhBZ0FFRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlCRUVCSUFCMElnWnhSUVJBUVl3ZklBUWdCbkkyQWdBZ0FTQUROZ0lBREFFTElBSkJHU0FBUVFGMmEwRUFJQUJCSDBjYmRDRUFJQUVvQWdBaEJBTkFJQVFpQVNnQ0JFRjRjU0FDUmcwQ0lBQkJIWFloQkNBQVFRRjBJUUFnQVNBRVFRUnhhaUlHS0FJUUlnUU5BQXNnQmlBRE5nSVFDeUFESUFFMkFoZ2dBeUFETmdJTUlBTWdBellDQ0F3QkN5QUJLQUlJSWdBZ0F6WUNEQ0FCSUFNMkFnZ2dBMEVBTmdJWUlBTWdBVFlDRENBRElBQTJBZ2dMUVpRZktBSUFJZ0FnQlUwTkFFR1VIeUFBSUFWcklnRTJBZ0JCb0I5Qm9COG9BZ0FpQUNBRmFpSUNOZ0lBSUFJZ0FVRUJjallDQkNBQUlBVkJBM0kyQWdRZ0FFRUlhaUVBREFnTFFZUWZRVEEyQWdCQkFDRUFEQWNMUVFBaEFnc2dDRVVOQUFKQUlBWW9BaHdpQVVFQ2RFRzRJV29pQkNnQ0FDQUdSZ1JBSUFRZ0FqWUNBQ0FDRFFGQmpCOUJqQjhvQWdCQmZpQUJkM0UyQWdBTUFnc2dDRUVRUVJRZ0NDZ0NFQ0FHUmh0cUlBSTJBZ0FnQWtVTkFRc2dBaUFJTmdJWUlBWW9BaEFpQVFSQUlBSWdBVFlDRUNBQklBSTJBaGdMSUFZb0FoUWlBVVVOQUNBQ0lBRTJBaFFnQVNBQ05nSVlDeUFBSUFscUlRQWdCaUFKYWlJR0tBSUVJUU1MSUFZZ0EwRitjVFlDQkNBRklBQkJBWEkyQWdRZ0FDQUZhaUFBTmdJQUlBQkIvd0ZOQkVBZ0FFRjRjVUd3SDJvaEFRSi9RWWdmS0FJQUlnSkJBU0FBUVFOMmRDSUFjVVVFUUVHSUh5QUFJQUp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBQ0FCSUFVMkFnZ2dBQ0FGTmdJTUlBVWdBVFlDRENBRklBQTJBZ2dNQVF0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFVZ0F6WUNIQ0FGUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQWtFQklBTjBJZ1J4UlFSQVFZd2ZJQUlnQkhJMkFnQWdBU0FGTmdJQURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBZ05BSUFJaUFTZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFpQURRUUYwSVFNZ0FTQUNRUVJ4YWlJRUtBSVFJZ0lOQUFzZ0JDQUZOZ0lRQ3lBRklBRTJBaGdnQlNBRk5nSU1JQVVnQlRZQ0NBd0JDeUFCS0FJSUlnQWdCVFlDRENBQklBVTJBZ2dnQlVFQU5nSVlJQVVnQVRZQ0RDQUZJQUEyQWdnTElBZEJDR29oQUF3Q0N3SkFJQWRGRFFBQ1FDQUVLQUljSWdCQkFuUkJ1Q0ZxSWdFb0FnQWdCRVlFUUNBQklBSTJBZ0FnQWcwQlFZd2ZJQWhCZmlBQWQzRWlDRFlDQUF3Q0N5QUhRUkJCRkNBSEtBSVFJQVJHRzJvZ0FqWUNBQ0FDUlEwQkN5QUNJQWMyQWhnZ0JDZ0NFQ0lBQkVBZ0FpQUFOZ0lRSUFBZ0FqWUNHQXNnQkNnQ0ZDSUFSUTBBSUFJZ0FEWUNGQ0FBSUFJMkFoZ0xBa0FnQTBFUFRRUkFJQVFnQXlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnSWdBMEVCY2pZQ0JDQUNJQU5xSUFNMkFnQWdBMEgvQVUwRVFDQURRWGh4UWJBZmFpRUFBbjlCaUI4b0FnQWlBVUVCSUFOQkEzWjBJZ054UlFSQVFZZ2ZJQUVnQTNJMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0FqWUNDQ0FCSUFJMkFnd2dBaUFBTmdJTUlBSWdBVFlDQ0F3QkMwRWZJUUFnQTBILy8vOEhUUVJBSUFOQkppQURRUWgyWnlJQWEzWkJBWEVnQUVFQmRHdEJQbW9oQUFzZ0FpQUFOZ0ljSUFKQ0FEY0NFQ0FBUVFKMFFiZ2hhaUVCQWtBQ1FDQUlRUUVnQUhRaUJuRkZCRUJCakI4Z0JpQUljallDQUNBQklBSTJBZ0FNQVFzZ0EwRVpJQUJCQVhaclFRQWdBRUVmUnh0MElRQWdBU2dDQUNFRkEwQWdCU0lCS0FJRVFYaHhJQU5HRFFJZ0FFRWRkaUVHSUFCQkFYUWhBQ0FCSUFaQkJIRnFJZ1lvQWhBaUJRMEFDeUFHSUFJMkFoQUxJQUlnQVRZQ0dDQUNJQUkyQWd3Z0FpQUNOZ0lJREFFTElBRW9BZ2dpQUNBQ05nSU1JQUVnQWpZQ0NDQUNRUUEyQWhnZ0FpQUJOZ0lNSUFJZ0FEWUNDQXNnQkVFSWFpRUFEQUVMQWtBZ0NVVU5BQUpBSUFJb0Fod2lBRUVDZEVHNElXb2lBU2dDQUNBQ1JnUkFJQUVnQkRZQ0FDQUVEUUZCakI4Z0MwRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFKR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBaWdDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FpZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFJZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQW1vaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFJZ0JVRURjallDQkNBQ0lBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRQkJuQjhvQWdBaEFRSi9RUUVnQjBFRGRuUWlCU0FHY1VVRVFFR0lIeUFGSUFaeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQmlBQUlBRTJBZ2dnQmlBQk5nSU1JQUVnQURZQ0RDQUJJQVkyQWdnTFFad2ZJQVEyQWdCQmtCOGdBellDQUFzZ0FrRUlhaUVBQ3lBS1FSQnFKQUFnQUF2U0N3RUhmd0pBSUFCRkRRQWdBRUVJYXlJQ0lBQkJCR3NvQWdBaUFVRjRjU0lBYWlFRkFrQWdBVUVCY1EwQUlBRkJBM0ZGRFFFZ0FpQUNLQUlBSWdGcklnSkJtQjhvQWdCSkRRRWdBQ0FCYWlFQUFrQUNRRUdjSHlnQ0FDQUNSd1JBSUFGQi93Rk5CRUFnQVVFRGRpRUVJQUlvQWd3aUFTQUNLQUlJSWdOR0JFQkJpQjlCaUI4b0FnQkJmaUFFZDNFMkFnQU1CUXNnQXlBQk5nSU1JQUVnQXpZQ0NBd0VDeUFDS0FJWUlRWWdBaUFDS0FJTUlnRkhCRUFnQWlnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBSkJGR29pQkNnQ0FDSURSUVJBSUFJb0FoQWlBMFVOQWlBQ1FSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZLQUlFSWdGQkEzRkJBMGNOQWtHUUh5QUFOZ0lBSUFVZ0FVRitjVFlDQkNBQ0lBQkJBWEkyQWdRZ0JTQUFOZ0lBRHd0QkFDRUJDeUFHUlEwQUFrQWdBaWdDSENJRFFRSjBRYmdoYWlJRUtBSUFJQUpHQkVBZ0JDQUJOZ0lBSUFFTkFVR01IMEdNSHlnQ0FFRitJQU4zY1RZQ0FBd0NDeUFHUVJCQkZDQUdLQUlRSUFKR0cyb2dBVFlDQUNBQlJRMEJDeUFCSUFZMkFoZ2dBaWdDRUNJREJFQWdBU0FETmdJUUlBTWdBVFlDR0FzZ0FpZ0NGQ0lEUlEwQUlBRWdBellDRkNBRElBRTJBaGdMSUFJZ0JVOE5BQ0FGS0FJRUlnRkJBWEZGRFFBQ1FBSkFBa0FDUUNBQlFRSnhSUVJBUWFBZktBSUFJQVZHQkVCQm9COGdBallDQUVHVUgwR1VIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQ1Fad2ZLQUlBUncwR1FaQWZRUUEyQWdCQm5COUJBRFlDQUE4TFFad2ZLQUlBSUFWR0JFQkJuQjhnQWpZQ0FFR1FIMEdRSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUFJQUpxSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFnQVVIL0FVMEVRQ0FCUVFOMklRUWdCU2dDRENJQklBVW9BZ2dpQTBZRVFFR0lIMEdJSHlnQ0FFRitJQVIzY1RZQ0FBd0ZDeUFESUFFMkFnd2dBU0FETmdJSURBUUxJQVVvQWhnaEJpQUZJQVVvQWd3aUFVY0VRRUdZSHlnQ0FCb2dCU2dDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFWQkZHb2lCQ2dDQUNJRFJRUkFJQVVvQWhBaUEwVU5BaUFGUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRklBRkJmbkUyQWdRZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FBd0RDMEVBSVFFTElBWkZEUUFDUUNBRktBSWNJZ05CQW5SQnVDRnFJZ1FvQWdBZ0JVWUVRQ0FFSUFFMkFnQWdBUTBCUVl3ZlFZd2ZLQUlBUVg0Z0EzZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ01FUUNBQklBTTJBaEFnQXlBQk5nSVlDeUFGS0FJVUlnTkZEUUFnQVNBRE5nSVVJQU1nQVRZQ0dBc2dBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQ0FDUVp3ZktBSUFSdzBBUVpBZklBQTJBZ0FQQ3lBQVFmOEJUUVJBSUFCQmVIRkJzQjlxSVFFQ2YwR0lIeWdDQUNJRFFRRWdBRUVEZG5RaUFIRkZCRUJCaUI4Z0FDQURjallDQUNBQkRBRUxJQUVvQWdnTElRQWdBU0FDTmdJSUlBQWdBallDRENBQ0lBRTJBZ3dnQWlBQU5nSUlEd3RCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQUlnQXpZQ0hDQUNRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0FDUUVHTUh5Z0NBQ0lFUVFFZ0EzUWlCM0ZGQkVCQmpCOGdCQ0FIY2pZQ0FDQUJJQUkyQWdBZ0FpQUJOZ0lZREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFRTkFJQUVpQkNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQVNBRFFRRjBJUU1nQkNBQlFRUnhhaUlIUVJCcUtBSUFJZ0VOQUFzZ0J5QUNOZ0lRSUFJZ0JEWUNHQXNnQWlBQ05nSU1JQUlnQWpZQ0NBd0JDeUFFS0FJSUlnQWdBallDRENBRUlBSTJBZ2dnQWtFQU5nSVlJQUlnQkRZQ0RDQUNJQUEyQWdnTFFhZ2ZRYWdmS0FJQVFRRnJJZ0JCZnlBQUd6WUNBQXNMQkFBakFBc0dBQ0FBSkFBTEVBQWpBQ0FBYTBGd2NTSUFKQUFnQUF0S0FRRi9JQUFnQVVrRVFDQUFJQUVnQWhBQ0R3c2dBZ1JBSUFBZ0Ftb2hBeUFCSUFKcUlRRURRQ0FEUVFGcklnTWdBVUVCYXlJQkxRQUFPZ0FBSUFKQkFXc2lBZzBBQ3dzZ0FBdjlEZ0lSZndGK0l3QkJNR3NpQnlRQVFiaC9JUWdDUUNBRlJRMEFJQVFzQUFBaUNVSC9BWEVoQ3dKQUlBbEJBRWdFUUNBTFFmNEFhMEVCZGlJR0lBVlBEUUpCYkNFSUlBdEIvd0JySWd0Qi93RkxEUUlnQkVFQmFpRUlRUUFoQlFOQUlBVWdDMDhFUUNBTElRZ2dCaUVMREFNRklBQWdCV29nQ0NBRlFRRjJhaUlFTFFBQVFRUjJPZ0FBSUFBZ0JVRUJjbW9nQkMwQUFFRVBjVG9BQUNBRlFRSnFJUVVNQVFzQUN3QUxJQVVnQzAwTkFTQUhRZjhCTmdJRUlBWWdCMEVFYWlBSFFRaHFJQVJCQVdvaURpQUxFQXdpQkVHSWYwc0VRQ0FFSVFnTUFndEJWQ0VJSUFjb0FnZ2lFRUVHU3cwQklBY29BZ1FpRVVFQmRDSUpRUUpxclVJQklCQ3RoaUlZUVFFZ0VIUWlEVUVCYWlJRnJVSUNobng4UWd0OFF2ei8vLy8vLy8vLy93Q0RRdVFDVmcwQlFWSWhDQ0FSUWY4QlN3MEJJQTFCZjNOQkFuUkI1QUpxclNBUlFRRnFJaFZCQVhTdElCaDhRZ2g4VkEwQklBc2dCR3NoRmlBRUlBNXFJUmNnQmtHQUJHb2lFaUFGUVFKMGFpSVJJQWxxUVFKcUlRNGdCa0dFQkdvaEUwR0FnQUlnRUhSQkVIWWhDVUVBSVFWQkFTRVBJQTFCQVdzaUZDRUtBMEFnQlNBVlJrVUVRQUpBSUFZZ0JVRUJkQ0lJYWk4QkFDSUVRZi8vQTBZRVFDQVRJQXBCQW5ScUlBVTZBQUlnQ2tFQmF5RUtRUUVoQkF3QkN5QVBRUUFnQ1NBRXdVb2JJUThMSUFnZ0VXb2dCRHNCQUNBRlFRRnFJUVVNQVFzTElBWWdEenNCZ2dRZ0JpQVFPd0dBQkFKQUlBb2dGRVlFUUNBTlFRTjJJUWhDQUNFWVFRQWhEd05BSUF3Z0ZVWUVRQ0FJSUExQkFYWnFRUU5xSWdsQkFYUWhDRUVBSVFSQkFDRUtBMEJCQUNFRklBb2dEVThOQkFOQUlBVkJBa1pGQkVBZ0V5QUZJQWxzSUFScUlCUnhRUUowYWlBT0lBVWdDbXBxTFFBQU9nQUNJQVZCQVdvaEJRd0JDd3NnQ2tFQ2FpRUtJQVFnQ0dvZ0ZIRWhCQXdBQ3dBRklBWWdERUVCZEdvdUFRQWhDU0FPSUE5cUlnUWdHRGNBQUVFSUlRVURRQ0FGSUFsT1JRUkFJQVFnQldvZ0dEY0FBQ0FGUVFocUlRVU1BUXNMSUJoQ2dZS0VpSkNnd0lBQmZDRVlJQXhCQVdvaERDQUpJQTlxSVE4TUFRc0FDd0FMSUExQkEzWWdEVUVCZG1wQkEyb2hDRUVBSVFVRFFDQU1JQlZHUlFSQVFRQWhDU0FHSUF4QkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FKUmtVRVFDQVRJQVZCQW5ScUlBdzZBQUlEUUNBRklBaHFJQlJ4SWdVZ0Nrc05BQXNnQ1VFQmFpRUpEQUVMQ3lBTVFRRnFJUXdNQVFzTFFYOGhDQ0FGRFFJTElCQkJBV29oQ0VFQUlRVURRQ0FGSUExR1JRUkFJQkVnRXlBRlFRSjBhaUlPTFFBQ1FRRjBhaUlFSUFRdkFRQWlDVUVCYWpzQkFDQU9JQWdnQ1dkQllITnFJZ1E2QUFNZ0RpQUpJQVIwSUExck93RUFJQVZCQVdvaEJRd0JDd3NDUUFKQUlBWXZBWUlFQkVBZ0IwRWNhaUlFSUJjZ0ZoQU5JZ2hCaUg5TERRSWdCMEVVYWlBRUlCSVFEaUFIUVF4cUlBUWdFaEFPUVFBaEJRTkFJQWRCSEdvaUJCQVBJQVZCK3dGTGNnMENJQUFnQldvaUJpQUhRUlJxSUFRUUVEb0FBQ0FHSUFkQkRHb2dCQkFRT2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVU1Bd1VnQUNBRWFpQUhRUlJxSUFkQkhHb2lCQkFRT2dBQUlBWWdCMEVNYWlBRUVCQTZBQU1nQlVFRWFpRUZEQUVMQUFzQUN5QUhRUnhxSWdRZ0Z5QVdFQTBpQ0VHSWYwc05BU0FIUVJScUlBUWdFaEFPSUFkQkRHb2dCQ0FTRUE1QkFDRUZBMEFnQjBFY2FpSUVFQThnQlVIN0FVdHlSUVJBSUFBZ0JXb2lCaUFIUVJScUlBUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVGSUFBZ0JHb2dCMEVVYWlBSFFSeHFJZ1FRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FESUFWQkJHb2hCUXdDQ3dzTEFuOERRRUc2ZnlFSUlBVkIvUUZMRFFNZ0FDQUZhaUlHSUFkQkZHb2dCMEVjYWlJSkVCRTZBQUFnQmtFQmFpRUVJQWtRRDBFRFJnUkFJQWRCREdvaENFRUNEQUlMSUFWQi9BRkxEUU1nQmlBSFFReHFJQWRCSEdvaUJCQVJPZ0FCSUFWQkFtb2hCU0FFRUE5QkEwY05BQXNnQUNBRmFpRUVJQWRCRkdvaENFRURDeUFFSUFnZ0IwRWNhaEFST2dBQUlBWnFJQUJySVFnTUFRc0Nmd05BUWJwL0lRZ2dCVUg5QVVzTkFpQUFJQVZxSWdZZ0IwRVVhaUFIUVJ4cUlna1FFRG9BQUNBR1FRRnFJUVFnQ1JBUFFRTkdCRUFnQjBFTWFpRUlRUUlNQWdzZ0JVSDhBVXNOQWlBR0lBZEJER29nQjBFY2FpSUVFQkE2QUFFZ0JVRUNhaUVGSUFRUUQwRURSdzBBQ3lBQUlBVnFJUVFnQjBFVWFpRUlRUU1MSUFRZ0NDQUhRUnhxRUJBNkFBQWdCbW9nQUdzaENBc2dDRUdJZjBzTkFRc2dDQ0VFUVFBaEJTQUJRUUJCTkJBRElRbEJBQ0VLQTBBZ0JDQUZSd1JBSUFBZ0JXb2lCaTBBQUNJQlFRdExCRUJCYkNFSURBTUZJQWtnQVVFQ2RHb2lBU0FCS0FJQVFRRnFOZ0lBSUFWQkFXb2hCVUVCSUFZdEFBQjBRUUYxSUFwcUlRb01BZ3NBQ3d0QmJDRUlJQXBGRFFBZ0NtY2lCVUVmY3lJQlFRdExEUUFnQTBFZ0lBVnJOZ0lBUVFGQkFpQUJkQ0FLYXlJRFowRWZjeUlCZENBRFJ3MEFJQUFnQkdvZ0FVRUJhaUlBT2dBQUlBa2dBRUVDZEdvaUFDQUFLQUlBUVFGcU5nSUFJQWtvQWdRaUFFRUNTU0FBUVFGeGNnMEFJQUlnQkVFQmFqWUNBQ0FMUVFGcUlRZ0xJQWRCTUdva0FDQUlDNkFGQVF4L0l3QkJFR3NpRENRQUFuOGdCRUVIVFFSQUlBeENBRGNEQ0NBTVFRaHFJZ1VnQXlBRUVBSWFRV3dnQUNBQklBSWdCVUVJRUF3aUFDQUFJQVJMR3lBQUlBQkJpWDlKR3d3QkN5QUFRUUFnQVNnQ0FFRUJhaUlOUVFGMEVBTWhEMEZVSUFNb0FBQWlCa0VQY1NJQVFRcExEUUFhSUFJZ0FFRUZhallDQUNBRElBUnFJZ0pCQkdzaEJ5QUNRUWRySVFzZ0FFRUdhaUVPUVFRaEFpQUdRUVIySVFWQklDQUFkQ0lJUVFGeUlRbEJBQ0VBUVFFaEJpQURJUVFEUUFKQUlBWkJBWEZGQkVBRFFDQUZRWDl6UVlDQWdJQjRjbWdpQmtFWVNVVUVRQ0FBUVNScUlRQWdCQ0FMVFFSL0lBUkJBMm9GSUFRZ0MydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xJQUlnQmtFZWNTSUtha0VDYWlFQ0lBWkJBWFpCQTJ3Z0FHb2dCU0FLZGtFRGNXb2lBQ0FOVHcwQkFuOGdCQ0FMU3lBQ1FRTjJJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBUWdCMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVUxJQVVnQ0VFQmEzRWlCaUFJUVFGMFFRRnJJZ29nQ1dzaUVFa0VmeUFPUVFGckJTQUZJQXB4SWdVZ0VFRUFJQVVnQ0U0YmF5RUdJQTRMSVFVZ0R5QUFRUUYwYWlBR1FRRnJJZ283QVFBZ0FFRUJhaUVBSUFJZ0JXb2hBaUFJUVFFZ0Jtc2dDaUFHUVFCS0d5QUphaUlKU2dSQUlBbEJBa2dOQVVFZ0lBbG5JZ1ZySVE1QkFTQUZRUjl6ZENFSUN5QUFJQTFQRFFBZ0NrRUFSeUVHQW44Z0JDQUxTeUFDUVFOMUlBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFJZ0JDQUhhMEVEZEdwQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xRV3dnQ1VFQlJ3MEFHa0ZRSUFBZ0RVc05BQnBCYkNBQ1FTQktEUUFhSUFFZ0FFRUJhellDQUNBRUlBSkJCMnBCQTNWcUlBTnJDeUFNUVJCcUpBQUw4Z0VCQVg4Z0FrVUVRQ0FBUWdBM0FnQWdBRUVBTmdJUUlBQkNBRGNDQ0VHNGZ3OExJQUFnQVRZQ0RDQUFJQUZCQkdvMkFoQWdBa0VFVHdSQUlBQWdBU0FDYWlJQlFRUnJJZ00yQWdnZ0FDQURLQUFBTmdJQUlBRkJBV3N0QUFBaUFRUkFJQUFnQVdkQkYyczJBZ1FnQWc4TElBQkJBRFlDQkVGL0R3c2dBQ0FCTmdJSUlBQWdBUzBBQUNJRE5nSUFBa0FDUUFKQUlBSkJBbXNPQWdFQUFnc2dBQ0FCTFFBQ1FSQjBJQU55SWdNMkFnQUxJQUFnQVMwQUFVRUlkQ0FEYWpZQ0FBc2dBU0FDYWtFQmF5MEFBQ0lCUlFSQUlBQkJBRFlDQkVGc0R3c2dBQ0FCWnlBQ1FRTjBhMEVKYWpZQ0JDQUNDMFFCQW44Z0FTQUNMd0VBSWdNZ0FTZ0NCR29pQkRZQ0JDQUFJQU5CQW5SQm9CMXFLQUlBSUFFb0FnQkJBQ0FFYTNaeE5nSUFJQUVRRHhvZ0FDQUNRUVJxTmdJRUM1OEJBUVIvUVFNaEFTQUFLQUlFSWdKQklFMEVRQ0FBS0FJSUlnRWdBQ2dDRUU4RVFDQUFJQUpCQjNFMkFnUWdBQ0FCSUFKQkEzWnJJZ0kyQWdnZ0FDQUNLQUFBTmdJQVFRQVBDeUFBS0FJTUlnTWdBVVlFUUVFQlFRSWdBa0VnU1JzUEN5QUFJQUVnQVNBRGF5QUNRUU4ySWdRZ0FTQUVheUFEU1NJQkd5SURheUlFTmdJSUlBQWdBaUFEUVFOMGF6WUNCQ0FBSUFRb0FBQTJBZ0FMSUFFTFNBRUVmeUFBS0FJRUlBQW9BZ0JCQW5ScUlnSXRBQUlnQWk4QkFDRUVJQUVnQVNnQ0JDSUZJQUl0QUFNaUFtbzJBZ1FnQUNBRUlBRW9BZ0FnQlhSQkFDQUNhM1pxTmdJQUMxSUJCSDhnQUNnQ0JDQUFLQUlBUVFKMGFpSUNMUUFDSUFJdkFRQWhCQ0FCSUFJdEFBTWlBaUFCS0FJRWFpSUZOZ0lFSUFBZ0JDQUNRUUowUWFBZGFpZ0NBQ0FCS0FJQVFRQWdCV3QyY1dvMkFnQUxDQUFnQUVHSWYwc0xHZ0FnQUFSQUlBRUVRQ0FDSUFBZ0FSRUNBQThMSUFBUUJnc0xwZ2dDRFg4QmZpTUFRUkJySWdra0FDQUpRUUEyQWd3Z0NVRUFOZ0lJQW44Q1FDQURRZWdKYWlBRElBbEJDR29nQ1VFTWFpQUJJQUlnQTBHQUFXb1FDeUlQUVloL1N3MEFRVlFnQ1NnQ0RDSUVJQUFvQWdBaUFVSC9BWEZCQVdwTERRRWFJQUJCQkdvaEN5QUFJQUZCLzRHQWVIRWdCRUVRZEVHQWdQd0hjWEkyQWdCQmZ5QUVJQVJCQUVnYlFRRnFJUUJCQUNFQklBa29BZ2doQlVFQUlRSURRQ0FBSUFKR0JFQWdCVUVEYXlFQlFRQWhBQU5BQWtCQkFDRUNJQUFnQVU0RVFBTkFJQUFnQlU0TkFpQURJQUFnQTJwQjZBbHFMUUFBUVFKMGFrRkFheUlCSUFFb0FnQWlBVUVCYWpZQ0FDQUJJQU5xSUFBNkFPZ0hJQUJCQVdvaEFBd0FDd0FGQTBBZ0FrRUVSa1VFUUNBRElBTWdBQ0FDYWlJSGFrSG9DV290QUFCQkFuUnFRVUJySWdnZ0NDZ0NBQ0lJUVFGcU5nSUFJQU1nQ0dvZ0J6b0E2QWNnQWtFQmFpRUNEQUVMQ3lBQVFRUnFJUUFNQWdzQUN3c2dCRUVCYWlFT0lBTW9BZ0FoQjBFQUlRQkJBU0VJQTBBZ0NDQU9SZzBESUE0Z0NHc2hCQ0FESUFoQkFuUnFLQUlBSVFVQ1FBSkFBa0FDUUFKQUFrQkJBU0FJZEVFQmRTSU5RUUZyRGdnQUFRUUNCQVFFQXdRTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBQUlRRURRQ0FDSUFaR0RRVWdBeUFDSUFkcWFpMEE2QWNoQ2lBTElBRkJBWFJxSWd3Z0JEb0FBU0FNSUFvNkFBQWdBa0VCYWlFQ0lBRkJBV29oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaENpQUFJUUVEUUNBQ0lBcEdEUVFnQ3lBQlFRRjBhaUlHSUFNZ0FpQUhhbW90QU9nSElndzZBQUlnQmlBRU9nQUJJQVlnRERvQUFDQUdJQVE2QUFNZ0FrRUJhaUVDSUFGQkFtb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBRVFRaDBRWUQrQTNFaEJDQUFJUUVEUUNBQ0lBWkdEUU1nQ3lBQlFRRjBhaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitOd0FBSUFKQkFXb2hBaUFCUVFScUlRRU1BQXNBQzBFQUlRSWdCVUVBSUFWQkFFb2JJUVlnQkVFSWRFR0EvZ054SVFRZ0FDRUJBMEFnQWlBR1JnMENJQXNnQVVFQmRHb2lDaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJaEUzQUFnZ0NpQVJOd0FBSUFKQkFXb2hBaUFCUVFocUlRRU1BQXNBQzBFQUlRRWdCVUVBSUFWQkFFb2JJUW9nQkVFSWRFR0EvZ054SVF3Z0FDRUVBMEFnQVNBS1JnMEJJQXNnQkVFQmRHb2hFQ0FNSUFNZ0FTQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJUkZCQUNFQ0EwQWdBaUFOVGtVRVFDQVFJQUpCQVhScUlnWWdFVGNBR0NBR0lCRTNBQkFnQmlBUk53QUlJQVlnRVRjQUFDQUNRUkJxSVFJTUFRc0xJQUZCQVdvaEFTQUVJQTFxSVFRTUFBc0FDeUFJUVFGcUlRZ2dCU0FIYWlFSElBVWdEV3dnQUdvaEFBd0FDd0FGSUFNZ0FrRUNkR29pQjBGQWF5QUJOZ0lBSUFKQkFXb2hBaUFIS0FJQUlBRnFJUUVNQVFzQUN3QUxJQThMSUFsQkVHb2tBQXZ5QWdFR2Z5TUFRU0JySWdVa0FDQUVLQUlBSVFZZ0JVRU1haUFDSUFNUURTSURRWWgvVFFSQUlBUkJCR29oQWlBQUlBRnFJZ2xCQTJzaEJFRUFJQVpCRUhaclFSOXhJUU1EUUNBRlFReHFFQThnQUNBRVQzSkZCRUFnQWlBRktBSU1JZ1lnQlNnQ0VDSUhkQ0FEZGtFQmRHb2lDQzBBQVNFS0lBQWdDQzBBQURvQUFDQUNJQVlnQnlBS2FpSUdkQ0FEZGtFQmRHb2lCeTBBQUNFSUlBVWdCaUFITFFBQmFqWUNFQ0FBSUFnNkFBRWdBRUVDYWlFQURBRUxDd05BSUFWQkRHb1FEeUVISUFVb0Fnd2hCaUFGS0FJUUlRUWdBQ0FKVHlBSGNrVUVRQ0FDSUFZZ0JIUWdBM1pCQVhScUlnWXRBQUFoQnlBRklBUWdCaTBBQVdvMkFoQWdBQ0FIT2dBQUlBQkJBV29oQUF3QkN3c0RRQ0FBSUFsUFJRUkFJQUlnQmlBRWRDQURka0VCZEdvaUJ5MEFBU0VJSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQkNBSWFpRUVEQUVMQzBGc1FXd2dBU0FGS0FJVUlBVW9BaGhIR3lBRVFTQkhHeUVEQ3lBRlFTQnFKQUFnQXd2UEZBRWpmeU1BUWRBQWF5SUZKQUJCYkNFSkFrQWdBMEVLU1EwQUFrQWdBeUFDTHdBRUlnY2dBaThBQUNJSUlBSXZBQUlpRFdwcVFRWnFJZ3hKRFFBZ0JDOEJBaUVHSUFWQlBHb2dBa0VHYWlJQ0lBZ1FEU0lKUVloL1N3MEJJQVZCS0dvZ0FpQUlhaUlDSUEwUURTSUpRWWgvU3cwQklBVkJGR29nQWlBTmFpSUNJQWNRRFNJSlFZaC9TdzBCSUFVZ0FpQUhhaUFESUF4ckVBMGlDVUdJZjBzTkFTQUVRUVJxSVFvZ0FDQUJhaUlmUVFOcklTQkJBQ0FHYTBFZmNTRUxJQVVvQWdnaEVTQUZLQUljSVJJZ0JTZ0NNQ0VUSUFVb0FrUWhGQ0FGS0FJRUlRa2dCU2dDR0NFTklBVW9BaXdoRENBRktBSkFJUVlnQlNnQ0VDRWhJQVVvQWlRaElpQUZLQUk0SVNNZ0JTZ0NUQ0VrSUFVb0FnQWhGU0FGS0FJVUlSWWdCU2dDS0NFWElBVW9BandoR0VFQklROGdBQ0FCUVFOcVFRSjJJZ1JxSWdNZ0JHb2lBaUFFYWlJWklRUWdBaUVJSUFNaEJ3TkFJQTlCQVhGRklBUWdJRTl5UlFSQUlBQWdDaUFZSUFaMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhHaUFPTFFBRElSQWdCeUFLSUJjZ0RIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0RpMEFBaUViSUE0dEFBTWhEeUFJSUFvZ0ZpQU5kQ0FMZGtFQ2RHb2lEaThCQURzQUFDQU9MUUFDSVJ3Z0RpMEFBeUVkSUFRZ0NpQVZJQWwwSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEhpQU9MUUFESVE0Z0FDQVFhaUlsSUFvZ0dDQUdJQnBxSWdaMElBdDJRUUowYWlJUUx3RUFPd0FBSUJBdEFBSWdFQzBBQXlFbUlBY2dEMm9pSnlBS0lCY2dEQ0FiYWlJYWRDQUxka0VDZEdvaUJ5OEJBRHNBQUNBSExRQUNJUXdnQnkwQUF5RVFJQWdnSFdvaUd5QUtJQllnRFNBY2FpSVBkQ0FMZGtFQ2RHb2lDQzhCQURzQUFDQUlMUUFDSVEwZ0NDMEFBeUVjSUFRZ0Rtb2lIU0FLSUJVZ0NTQWVhaUlPZENBTGRrRUNkR29pQ1M4QkFEc0FBQ0FHYWlFQVFRTWhCd0ovSUJRZ0pFa0VRQ0FBSVFaQkF3d0JDeUFBUVFkeElRWWdGQ0FBUVFOMmF5SVVLQUFBSVJoQkFBc2dDUzBBQXlFZUlBa3RBQUloQ0NBTUlCcHFJUUFnRXlBalNRUi9JQUFGSUJNZ0FFRURkbXNpRXlnQUFDRVhRUUFoQnlBQVFRZHhDeUVNSUEwZ0Qyb2hBQ0FIY2lFSlFRTWhEd0ovSUJJZ0lra0VRQ0FBSVExQkF3d0JDeUFBUVFkeElRMGdFaUFBUVFOMmF5SVNLQUFBSVJaQkFBc2dDQ0FPYWlFQUlBbHlJQkVnSVVrRWZ5QUFCU0FSSUFCQkEzWnJJaEVvQUFBaEZVRUFJUThnQUVFSGNRc2hDU0FsSUNacUlRQWdFQ0FuYWlFSElCc2dIR29oQ0NBZElCNXFJUVFnRDNKRklROE1BUXNMSUFVZ0REWUNMQ0FGSUFZMkFrQWdCU0FOTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBSWdCMGtnQUNBRFMzSU5BRUZzSVFrZ0NDQVpTdzBCSUFOQkEyc2hDUU5BSUFWQlBHb1FEMFVnQUNBSlNYRUVRQ0FBSUFvZ0JTZ0NQQ0lOSUFVb0FrQWlESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdBQ0FPTFFBRGFpSUdJQW9nRFNBTUlBNHRBQUpxSWdCMElBdDJRUUowYWlJTUx3RUFPd0FBSUFVZ0FDQU1MUUFDYWpZQ1FDQUdJQXd0QUFOcUlRQU1BUVVnQTBFQ2F5RU1BMEFnQlVFOGFoQVBJUVlnQlNnQ1BDRU5JQVVvQWtBaENTQUFJQXhMSUFaeVJRUkFJQUFnQ2lBTklBbDBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdDU0FHTFFBQ2FqWUNRQ0FBSUFZdEFBTnFJUUFNQVFzTEEwQWdBQ0FNUzBVRVFDQUFJQW9nRFNBSmRDQUxka0VDZEdvaUJpOEJBRHNBQUNBQUlBWXRBQU5xSVFBZ0NTQUdMUUFDYWlFSkRBRUxDd0pBSUFBZ0EwOE5BQ0FBSUFvZ0RTQUpkQ0FMZGlJQVFRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FKSUFNdEFBSnFJUWtNQVFzZ0NVRWZTdzBBUVNBZ0NTQUtJQUJCQW5ScUxRQUNhaUlBSUFCQklFOGJJUWtMSUFKQkEyc2hEQU5BSUFWQktHb1FEMFVnQnlBTVNYRUVRQ0FISUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lBSFFnQzNaQkFuUnFJZzB2QVFBN0FBQWdCeUFOTFFBRGFpSURJQW9nQmlBQUlBMHRBQUpxSWdCMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FDQUdMUUFDYWpZQ0xDQURJQVl0QUFOcUlRY01BUVVnQWtFQ2F5RUdBMEFnQlVFb2FoQVBJUU1nQlNnQ0tDRU1JQVVvQWl3aEFDQUdJQWRKSUFOeVJRUkFJQWNnQ2lBTUlBQjBJQXQyUVFKMGFpSURMd0VBT3dBQUlBVWdBQ0FETFFBQ2FqWUNMQ0FISUFNdEFBTnFJUWNNQVFzTEEwQWdCaUFIU1VVRVFDQUhJQW9nRENBQWRDQUxka0VDZEdvaUF5OEJBRHNBQUNBSElBTXRBQU5xSVFjZ0FDQURMUUFDYWlFQURBRUxDd0pBSUFJZ0IwME5BQ0FISUFvZ0RDQUFkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FBSUFNdEFBSnFJUUFNQVFzZ0FFRWZTdzBBUVNBZ0FDQUtJQUpCQW5ScUxRQUNhaUlBSUFCQklFOGJJUUFMSUJsQkEyc2hEQU5BSUFWQkZHb1FEMFVnQ0NBTVNYRUVRQ0FJSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lBblFnQzNaQkFuUnFJZzB2QVFBN0FBQWdDQ0FOTFFBRGFpSURJQW9nQmlBQ0lBMHRBQUpxSWdKMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FpQUdMUUFDYWpZQ0dDQURJQVl0QUFOcUlRZ01BUVVnR1VFQ2F5RURBMEFnQlVFVWFoQVBJUUlnQlNnQ0ZDRUdJQVVvQWhnaEJ5QURJQWhKSUFKeVJRUkFJQWdnQ2lBR0lBZDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBVWdCeUFDTFFBQ2FqWUNHQ0FJSUFJdEFBTnFJUWdNQVFzTEEwQWdBeUFJU1VVRVFDQUlJQW9nQmlBSGRDQUxka0VDZEdvaUFpOEJBRHNBQUNBSUlBSXRBQU5xSVFnZ0J5QUNMUUFDYWlFSERBRUxDd0pBSUFnZ0dVOE5BQ0FJSUFvZ0JpQUhkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FISUFNdEFBSnFJUWNNQVFzZ0IwRWZTdzBBUVNBZ0J5QUtJQUpCQW5ScUxRQUNhaUlDSUFKQklFOGJJUWNMQTBBZ0JSQVBSU0FFSUNCSmNRUkFJQVFnQ2lBRktBSUFJZ1lnQlNnQ0JDSUNkQ0FMZGtFQ2RHb2lEQzhCQURzQUFDQUVJQXd0QUFOcUlnTWdDaUFHSUFJZ0RDMEFBbW9pQW5RZ0MzWkJBblJxSWdRdkFRQTdBQUFnQlNBQ0lBUXRBQUpxTmdJRUlBTWdCQzBBQTJvaEJBd0JCU0FmUVFKcklRTURRQ0FGRUE4aEFpQUZLQUlBSVFZZ0JTZ0NCQ0VJSUFNZ0JFa2dBbkpGQkVBZ0JDQUtJQVlnQ0hRZ0MzWkJBblJxSWdJdkFRQTdBQUFnQlNBSUlBSXRBQUpxTmdJRUlBUWdBaTBBQTJvaEJBd0JDd3NEUUNBRElBUkpSUVJBSUFRZ0NpQUdJQWgwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVFnQWkwQUEyb2hCQ0FJSUFJdEFBSnFJUWdNQVFzTEFrQWdCQ0FmVHcwQUlBUWdDaUFHSUFoMElBdDJJZ0pCQW5ScUlnTXRBQUE2QUFBZ0F5MEFBMEVCUmdSQUlBZ2dBeTBBQW1vaENBd0JDeUFJUVI5TERRQkJJQ0FJSUFvZ0FrRUNkR290QUFKcUlnSWdBa0VnVHhzaENBdEJiRUZzUVd4QmJFRnNRV3hCYkVGc0lBRWdDRUVnUnhzZ0JTZ0NDQ0FGS0FJTVJ4c2dCMEVnUnhzZ0JTZ0NIQ0FGS0FJZ1J4c2dBRUVnUnhzZ0JTZ0NNQ0FGS0FJMFJ4c2dDVUVnUnhzZ0JTZ0NSQ0FGS0FKSVJ4c2hDUXdKQ3dBTEFBc0FDd0FMQUFzQUN3QUxBQXRCYkNFSkN5QUZRZEFBYWlRQUlBa0w3QkFCSG44akFFSFFBR3NpQlNRQVFXd2hDUUpBSUFOQkNra05BQUpBSUFNZ0FpOEFCQ0lHSUFJdkFBQWlCeUFDTHdBQ0lnaHFha0VHYWlJT1NRMEFJQVF2QVFJaER5QUZRVHhxSUFKQkJtb2lBaUFIRUEwaUNVR0lmMHNOQVNBRlFTaHFJQUlnQjJvaUFpQUlFQTBpQ1VHSWYwc05BU0FGUVJScUlBSWdDR29pQWlBR0VBMGlDVUdJZjBzTkFTQUZJQUlnQm1vZ0F5QU9heEFOSWdsQmlIOUxEUUVnQkVFRWFpRUtJQUFnQVdvaUhFRURheUVkUVFBZ0QydEJIM0VoQ3lBRktBSUlJUkVnQlNnQ0hDRVNJQVVvQWpBaEV5QUZLQUpFSVJRZ0JTZ0NCQ0VKSUFVb0FoZ2hCaUFGS0FJc0lRY2dCU2dDUUNFSUlBVW9BaEFoSGlBRktBSWtJUjhnQlNnQ09DRWdJQVVvQWt3aElTQUZLQUlBSVJVZ0JTZ0NGQ0VXSUFVb0FpZ2hGeUFGS0FJOElSaEJBU0VOSUFBZ0FVRURha0VDZGlJQ2FpSU9JQUpxSWc4Z0Ftb2lHU0VFSUE4aEFpQU9JUU1EUUNBTlJTQUVJQjFQY2tVRVFDQUtJQmdnQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUFnQ2lBWElBZDBJQXQyUVFGMGFpSU1MUUFCSVJBZ0F5QU1MUUFBT2dBQUlBb2dGaUFHZENBTGRrRUJkR29pREMwQUFTRWFJQUlnREMwQUFEb0FBQ0FLSUJVZ0NYUWdDM1pCQVhScUlnd3RBQUVoR3lBRUlBd3RBQUE2QUFBZ0NpQVlJQWdnRFdvaUNIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFFZ0NpQVhJQWNnRUdvaUIzUWdDM1pCQVhScUlnd3RBQUVoRUNBRElBd3RBQUE2QUFFZ0NpQVdJQVlnR21vaURIUWdDM1pCQVhScUlnWXRBQUVoR2lBQ0lBWXRBQUE2QUFFZ0NpQVZJQWtnRzJvaUczUWdDM1pCQVhScUlna3RBQUVoSWlBRUlBa3RBQUE2QUFFZ0NDQU5haUVHUVFNaENRSi9JQlFnSVVrRVFFRURJUTBnQmd3QkN5QVVJQVpCQTNackloUW9BQUFoR0VFQUlRMGdCa0VIY1FzaENDQUhJQkJxSVFZZ0V5QWdTUVIvSUFZRklCTWdCa0VEZG1zaUV5Z0FBQ0VYUVFBaENTQUdRUWR4Q3lFSElBd2dHbW9oRENBSklBMXlJUkJCQXlFTkFuOGdFaUFmU1FSQUlBd2hCa0VEREFFTElBeEJCM0VoQmlBU0lBeEJBM1pySWhJb0FBQWhGa0VBQ3lBYklDSnFJUXdnRUhJaEVDQVJJQjVKQkg4Z0RBVWdFU0FNUVFOMmF5SVJLQUFBSVJWQkFDRU5JQXhCQjNFTElRa2dCRUVDYWlFRUlBSkJBbW9oQWlBRFFRSnFJUU1nQUVFQ2FpRUFJQTBnRUhKRklRME1BUXNMSUFVZ0J6WUNMQ0FGSUFnMkFrQWdCU0FHTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBQWdEa3NnQXlBUFMzSU5BRUZzSVFrZ0FpQVpTdzBCSUE1QkEyc2hDUU5BSUFWQlBHb1FEeUFBSUFsUGNrVUVRQ0FLSUFVb0Fqd2lCaUFGS0FKQUlnZDBJQXQyUVFGMGFpSUlMUUFCSVF3Z0FDQUlMUUFBT2dBQUlBb2dCaUFISUF4cUlnWjBJQXQyUVFGMGFpSUhMUUFBSVFnZ0JTQUdJQWN0QUFGcU5nSkFJQUFnQ0RvQUFTQUFRUUpxSVFBTUFRc0xBMEFnQlVFOGFoQVBJUWNnQlNnQ1BDRUdJQVVvQWtBaENTQUFJQTVQSUFkeVJRUkFJQW9nQmlBSmRDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0NTQUdMUUFCYWpZQ1FDQUFJQWM2QUFBZ0FFRUJhaUVBREFFTEN3TkFJQUFnRGs5RkJFQWdDaUFHSUFsMElBdDJRUUYwYWlJSExRQUJJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdDV29oQ1F3QkN3c2dEMEVEYXlFQUEwQWdCVUVvYWhBUElBQWdBMDF5UlFSQUlBb2dCU2dDS0NJR0lBVW9BaXdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFESUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWl3Z0F5QUlPZ0FCSUFOQkFtb2hBd3dCQ3dzRFFDQUZRU2hxRUE4aEJ5QUZLQUlvSVFZZ0JTZ0NMQ0VBSUFNZ0QwOGdCM0pGQkVBZ0NpQUdJQUIwSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FBSUFZdEFBRnFOZ0lzSUFNZ0J6b0FBQ0FEUVFGcUlRTU1BUXNMQTBBZ0F5QVBUMFVFUUNBS0lBWWdBSFFnQzNaQkFYUnFJZ2N0QUFFaENDQURJQWN0QUFBNkFBQWdBMEVCYWlFRElBQWdDR29oQUF3QkN3c2dHVUVEYXlFREEwQWdCVUVVYWhBUElBSWdBMDl5UlFSQUlBb2dCU2dDRkNJR0lBVW9BaGdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFDSUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWhnZ0FpQUlPZ0FCSUFKQkFtb2hBZ3dCQ3dzRFFDQUZRUlJxRUE4aEJ5QUZLQUlVSVFZZ0JTZ0NHQ0VESUFJZ0dVOGdCM0pGQkVBZ0NpQUdJQU4wSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FESUFZdEFBRnFOZ0lZSUFJZ0J6b0FBQ0FDUVFGcUlRSU1BUXNMQTBBZ0FpQVpUMFVFUUNBS0lBWWdBM1FnQzNaQkFYUnFJZ2N0QUFFaENDQUNJQWN0QUFBNkFBQWdBa0VCYWlFQ0lBTWdDR29oQXd3QkN3c0RRQ0FGRUE4Z0JDQWRUM0pGQkVBZ0NpQUZLQUlBSWdJZ0JTZ0NCQ0lHZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FLSUFJZ0JpQUlhaUlDZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQWlBR0xRQUJhallDQkNBRUlBYzZBQUVnQkVFQ2FpRUVEQUVMQ3dOQUlBVVFEeUVISUFVb0FnQWhCaUFGS0FJRUlRSWdCQ0FjVHlBSGNrVUVRQ0FLSUFZZ0FuUWdDM1pCQVhScUlnWXRBQUFoQnlBRklBSWdCaTBBQVdvMkFnUWdCQ0FIT2dBQUlBUkJBV29oQkF3QkN3c0RRQ0FFSUJ4UFJRUkFJQW9nQmlBQ2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBRVFRRnFJUVFnQWlBSWFpRUNEQUVMQzBGc1FXeEJiRUZzUVd4QmJFRnNRV3dnQVNBQ1FTQkhHeUFGS0FJSUlBVW9BZ3hIR3lBRFFTQkhHeUFGS0FJY0lBVW9BaUJIR3lBQVFTQkhHeUFGS0FJd0lBVW9BalJIR3lBSlFTQkhHeUFGS0FKRUlBVW9Ba2hIR3lFSkRBRUxRV3doQ1FzZ0JVSFFBR29rQUNBSkMxZ0JBMzhDUUNBQUtBS1E2d0VpQVVVTkFDQUJLQUlBSUFGQnROVUJhaWdDQUNJQ0lBRkJ1TlVCYWlnQ0FDSURFQk1nQWdSQUlBTWdBU0FDRVFJQURBRUxJQUVRQmdzZ0FFRUFOZ0tnNndFZ0FFSUFOd09RNndFTDZRTUNCSDhDZmlBQVFRQkJLQkFESVFRZ0FrRUJRUVVnQXhzaUFFa0VRQ0FBRHdzZ0FVVUVRRUYvRHd0QkFTRUdBa0FDUUNBRFFRRkdEUUFnQXlFR0lBRW9BQUFpQlVHbzZyNXBSZzBBUVhZaEF5QUZRWEJ4UWREVXRNSUJSdzBCUVFnaEF5QUNRUWhKRFFFZ0FUVUFCQ0VJSUFSQkFUWUNGQ0FFSUFnM0F3QkJBQThMSUFFZ0FpQUdFQm9pQXlBQ1N3MEFJQVFnQXpZQ0dFRnlJUU1nQUNBQmFpSUZRUUZyTFFBQUlnSkJDSEVOQUNBQ1FTQnhJZ1pGQkVCQmNDRURJQVV0QUFBaUJVR25BVXNOQVNBRlFRZHhyVUlCSUFWQkEzWkJDbXF0aGlJSVFnT0lmaUFJZkNFSklBQkJBV29oQUFzZ0FrRUdkaUVGSUFKQkFuWkJBQ0VEQWtBQ1FBSkFBa0FnQWtFRGNVRUJhdzREQUFFQ0F3c2dBQ0FCYWkwQUFDRURJQUJCQVdvaEFBd0NDeUFBSUFGcUx3QUFJUU1nQUVFQ2FpRUFEQUVMSUFBZ0FXb29BQUFoQXlBQVFRUnFJUUFMUVFGeElRSUNmZ0pBQWtBQ1FBSkFJQVZCQVdzT0F3RUNBd0FMUW44Z0JrVU5BeG9nQUNBQmFqRUFBQXdEQ3lBQUlBRnFNd0FBUW9BQ2ZBd0NDeUFBSUFGcU5RQUFEQUVMSUFBZ0FXb3BBQUFMSVFnZ0JDQUNOZ0lnSUFRZ0F6WUNIQ0FFSUFnM0F3QkJBQ0VESUFSQkFEWUNGQ0FFSUFnZ0NTQUdHeUlJTndNSUlBUkNnSUFJSUFnZ0NFS0FnQWhhR3o0Q0VBc2dBd3RmQVFGL1FiaC9JUU1nQVVFQlFRVWdBaHNpQWs4RWZ5QUFJQUpxUVFGckxRQUFJZ0JCQTNGQkFuUkJvQjVxS0FJQUlBSnFJQUJCQkhaQkRIRkJzQjVxS0FJQWFpQUFRU0J4SWdGRmFpQUJRUVYySUFCQndBQkpjV29GUWJoL0N3c01BQ0FBSUFFZ0FrRUFFQmtMbHdNQ0JYOENmaU1BUVVCcUlnUWtBQUpBQTBBZ0FVRUZUd1JBQWtBZ0FDZ0FBRUZ3Y1VIUTFMVENBVVlFUUVKK0lRY2dBVUVJU1EwRUlBQW9BQVFpQWtGM1N3MEVJQUpCQ0dvaUF5QUJTdzBFSUFKQmdYOUpEUUVNQkFzZ0JFRVlhaUFBSUFFUUd5RUNRbjRnQkNrREdFSUFJQVFvQWl4QkFVY2JJQUliSWdkQ2ZWWU5BeUFISUFoOElnZ2dCMVJDZmlFSERRTUNRQUpBSUFGQkNFa05BQ0FBS0FBQVFYQnhRZERVdE1JQlJ3MEFJQUFvQUFRaUFrRjNTdzBGUWJoL0lBSkJDR29pQWlBQklBSkpHeUVEREFFTElBUkJHR29nQUNBQkVCc2lBa0dJZjBzRVFDQUNJUU1NQVF0QnVIOGhBeUFDRFFBZ0FTQUVLQUl3SWdKcklRVWdBQ0FDYWlFR0EwQWdCaUFGSUFSQkRHb1FIU0lEUVloL1N3MEJJQU5CQTJvaUFpQUZTd1JBUWJoL0lRTU1BZ3NnQlNBQ2F5RUZJQUlnQm1vaEJpQUVLQUlRUlEwQUN5QUVLQUk0Qkg5QnVIOGhBeUFGUVFSSkRRRWdCa0VFYWdVZ0Jnc2dBR3NoQXdzZ0EwR0lmMHNOQXdzZ0FTQURheUVCSUFBZ0Eyb2hBQXdCQ3d0Q2ZpQUlJQUViSVFjTElBUkJRR3NrQUNBSEMyUUJBWDlCdUg4aEF3SkFJQUZCQTBrTkFDQUFMUUFDSVFFZ0FpQUFMd0FBSWdCQkFYRTJBZ1FnQWlBQVFRRjJRUU54SWdNMkFnQWdBaUFBSUFGQkVIUnlRUU4ySWdBMkFnZ0NRQUpBSUFOQkFXc09Bd0lCQUFFTFFXd1BDeUFBSVFNTElBTUxSQUVDZnlBQklBSW9BZ1FpQXlBQktBSUVhaUlFTmdJRUlBQWdBMEVDZEVHZ0hXb29BZ0FnQVNnQ0FFRUFJQVJyZG5FMkFnQWdBUkFQR2lBQUlBSkJDR28yQWdRTHpnRUJCbjlCdW44aENnSkFJQUlvQWdRaUNDQUNLQUlBSWdscUlnMGdBU0FBYTBzTkFFRnNJUW9nQ1NBRUlBTW9BZ0FpQzJ0TERRQWdBQ0FKYWlJRUlBSW9BZ2dpREdzaEFpQUFJQUZCSUdzaUFDQUxJQWxCQUJBZ0lBTWdDU0FMYWpZQ0FBSkFBa0FnQkNBRmF5QU1Ud1JBSUFJaEJRd0JDeUFNSUFRZ0JtdExEUUlnQnlBSElBSWdCV3NpQW1vaUFTQUlhazhFUUNBRUlBRWdDQkFLR2d3Q0N5QUNJQWhxSVFnZ0JDQUJRUUFnQW1zUUNpQUNheUVFQ3lBRUlBQWdCU0FJUVFFUUlBc2dEU0VLQ3lBS0M4Y0VBUUovSUFBZ0Eyb2hCZ0pBSUFOQkIwd0VRQU5BSUFBZ0JrOE5BaUFBSUFJdEFBQTZBQUFnQUVFQmFpRUFJQUpCQVdvaEFnd0FDd0FMSUFSQkFVWUVRQUpBSUFBZ0Ftc2lCVUVIVFFSQUlBQWdBaTBBQURvQUFDQUFJQUl0QUFFNkFBRWdBQ0FDTFFBQ09nQUNJQUFnQWkwQUF6b0FBeUFBSUFJZ0JVRUNkQ0lGUWNBZWFpZ0NBR29pQWlnQUFEWUFCQ0FDSUFWQjRCNXFLQUlBYXlFQ0RBRUxJQUFnQWlrQUFEY0FBQXNnQWtFSWFpRUNJQUJCQ0dvaEFBc2dBU0FHVHdSQUlBQWdBMm9oQVNBRVFRRkhJQUFnQW10QkQwcHlSUVJBQTBBZ0FDQUNLUUFBTndBQUlBSkJDR29oQWlBQVFRaHFJZ0FnQVVrTkFBd0RDd0FMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0EwRVJTUTBCSUFCQkVHb2hBQU5BSUFBZ0Fpa0FFRGNBQUNBQUlBSXBBQmczQUFnZ0FDQUNLUUFnTndBUUlBQWdBaWtBS0RjQUdDQUNRU0JxSVFJZ0FFRWdhaUlBSUFGSkRRQUxEQUVMQWtBZ0FDQUJTd1JBSUFBaEFRd0JDeUFCSUFCcklRVUNRQ0FFUVFGSElBQWdBbXRCRDBweVJRUkFJQUloQXdOQUlBQWdBeWtBQURjQUFDQURRUWhxSVFNZ0FFRUlhaUlBSUFGSkRRQUxEQUVMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0JVRVJTQTBBSUFCQkVHb2hBQ0FDSVFNRFFDQUFJQU1wQUJBM0FBQWdBQ0FES1FBWU53QUlJQUFnQXlrQUlEY0FFQ0FBSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUJCSUdvaUFDQUJTUTBBQ3dzZ0FpQUZhaUVDQ3dOQUlBRWdCazhOQVNBQklBSXRBQUE2QUFBZ0FVRUJhaUVCSUFKQkFXb2hBZ3dBQ3dBTEM2NEhBZ1YvQVg0akFFR0FBV3NpRVNRQUlCRWdBellDZkVGL0lROENRQUpBQWtBQ1FBSkFJQUlPQkFFQUF3SUVDeUFHUlFSQVFiaC9JUThNQkF0QmJDRVBJQVV0QUFBaUFpQURTdzBESUFnZ0FrRUNkQ0lDYWlnQ0FDRURJQUlnQjJvb0FnQWhBaUFBUVFBNkFBc2dBRUlBTndJQUlBQWdBallDRENBQUlBTTZBQW9nQUVFQU93RUlJQUVnQURZQ0FFRUJJUThNQXdzZ0FTQUpOZ0lBUVFBaER3d0NDeUFLUlFSQVFXd2hEd3dDQzBFQUlROGdDMFVnREVFWlNISU5BVUVJSUFSMFFRaHFJUUJCQUNFREEwQWdBQ0FEVFEwQ0lBTkJRR3NoQXd3QUN3QUxRV3doRHlBUklCRkIvQUJxSUJGQitBQnFJQVVnQmhBTUlnTkJpSDlMRFFBZ0VTZ0NlQ0lDSUFSTERRQWdFU2dDZkVFQmFpRUpJQUJCQ0dvaEMwR0FnQUlnQW5SQkVIVWhCVUVCSVJCQkFTQUNkQ0lQUVFGcklnb2hFZ05BSUFrZ0RrY0VRQUpBSUJFZ0RrRUJkQ0lFYWk4QkFDSU1RZi8vQTBZRVFDQUxJQkpCQTNScUlBNDJBZ1FnRWtFQmF5RVNRUUVoREF3QkN5QVFRUUFnQlNBTXdVb2JJUkFMSUFRZ0RXb2dERHNCQUNBT1FRRnFJUTRNQVFzTElBQWdBallDQkNBQUlCQTJBZ0FDUUNBS0lCSkdCRUFnRFVIcUFHb2hCa0VBSVJCQkFDRU1BMEFnQ1NBUVJnUkFJQTlCQTNZZ0QwRUJkbXBCQTJvaUJVRUJkQ0VFUVFBaERFRUFJUklEUUVFQUlRNGdEeUFTVFEwRUEwQWdEa0VDUndSQUlBc2dCU0FPYkNBTWFpQUtjVUVEZEdvZ0JpQU9JQkpxYWkwQUFEWUNCQ0FPUVFGcUlRNE1BUXNMSUJKQkFtb2hFaUFFSUF4cUlBcHhJUXdNQUFzQUJTQVJJQkJCQVhScUxnRUFJUVVnQmlBTWFpSUVJQk0zQUFCQkNDRU9BMEFnQlNBT1NnUkFJQVFnRG1vZ0V6Y0FBQ0FPUVFocUlRNE1BUXNMSUJOQ2dZS0VpSkNnd0lBQmZDRVRJQkJCQVdvaEVDQUZJQXhxSVF3TUFRc0FDd0FMSUE5QkEzWWdEMEVCZG1wQkEyb2hCVUVBSVJCQkFDRU9BMEFnQ1NBUVJnMEJRUUFoRENBUklCQkJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBTVJ3UkFJQXNnRGtFRGRHb2dFRFlDQkFOQUlBVWdEbW9nQ25FaURpQVNTdzBBQ3lBTVFRRnFJUXdNQVFzTElCQkJBV29oRUF3QUN3QUxJQUpCQVdvaEJVRUFJUXdEUUNBTUlBOUhCRUFnRFNBTElBeEJBM1JxSWdrb0FnUWlCRUVCZEdvaUFpQUNMd0VBSWdaQkFXbzdBUUFnQ1NBRklBWm5RV0J6YWlJQ09nQURJQWtnQmlBQ2RDQVBhenNCQUNBSklBZ2dCRUVDZENJQ2FpZ0NBRG9BQWlBSklBSWdCMm9vQWdBMkFnUWdERUVCYWlFTURBRUxDeUFCSUFBMkFnQWdBeUVQQ3lBUlFZQUJhaVFBSUE4TDdWb0NPMzhHZmlNQVFlQUJheUlFSkFBQ1FFR3c3QWtRQlNJRlJRUkFRVUFoQnd3QkN5QUZRZ0EzQXZUcUFTQUZRUUEyQXNUckFTQUZRUUEyQXJUckFTQUZRZ0EzQXB6ckFTQUZRUUEyQXJqcEFTQUZRUUEyQXF6c0NTQUZRZ0EzQXRUckFTQUZRZ0EzQXF6ckFTQUZRZ0EzQTRqckFTQUZRZ0EzQXVUcUFTQUZRZ0EzQXVUckFTQUZRWUdBZ01BQU5nSzg2d0VnQlVJQU53S2s2d0VnQlVIODZnRnFRUUEyQWdBZ0JVR1E2d0ZxUWdBM0F3QWdCUkFZSUFWQnJOVUJhaUVVSUFWQitPc0JhaUVjSUFWQnNPb0JhaUVpSUFWQm9EQnFJU29nQlVHWUlHb2hLeUFGUWFqUUFHb2hIaUFGUVJCcUlTd2dCVUVJYWlFb0lBVkJCR29oTFNBRlFjRHBBV29oS1NBRlFZanJBV29nQkVHVUFXb2hMeUFFUVl3QmFpRXdJQVJCaEFGcUlURWdCRUhjQUdvaE1pQUVRZFFBYWlFeklBUkJ6QUJxSVRRZ0FDRWRBa0FDUUFKQUFrQUNRQU5BUVFGQkJTQUZLQUxrNmdFYklRWUNRQU5BSUFNZ0Jra05BU0FDS0FBQVFYQnhRZERVdE1JQlJnUkFRYmgvSVFjZ0EwRUlTUTBJSUFJb0FBUWlEa0YzU3dSQVFYSWhCd3dKQ3lBRElBNUJDR29pQ1VrTkNDQU9RWUIvU3dSQUlBa2hCd3dKQ3lBRElBbHJJUU1nQWlBSmFpRUNEQUVMQ3lBRlFnQTNBcXpwQVNBRlFnQTNBK2pwQVNBRlFRQTJBcGpyQVNBRlFnQTNBNERxQVNBRlFnTTNBL2pwQVNBRlFiVHBBV3BDQURjQ0FDQUZRZkRwQVdwQ0FEY0RBQ0FGUWFqUUFHb2lDVUdNZ0lEZ0FEWUNBQ0FGUWF6UUFXcEI0QklwQWdBM0FnQWdCVUcwMEFGcVFlZ1NLQUlBTmdJQUlBVWdCVUVRYWpZQ0FDQUZJQVZCb0RCcU5nSUVJQVVnQlVHWUlHbzJBZ2dnQlNBSk5nSU1JQVZCQVVFRklBVW9BdVRxQVJzMkFyenBBUUpBSUFGRkRRQWdCU2dDck9rQklna2dIVVlOQUNBRklBazJBcmpwQVNBRklCMDJBcXpwQVNBRktBS3c2UUVoRGlBRklCMDJBckRwQVNBRklCMGdEaUFKYTJvMkFyVHBBUXRCdUg4aENTQURRUVZCQ1NBRktBTGs2Z0VpQmh0SkRRVWdBa0VCUVFVZ0Joc2dCaEFhSWc1QmlIOUxCRUFnRGlFSkRBVUxJQU1nRGtFRGFra05CU0FwSUFJZ0RpQUdFQmtpQmtHSWYwc0VRQ0FHSVFrTUJRc2dCZzBGQWtBQ1FDQUZLQUtvNndGQkFVY05BQ0FGS0FLazZ3RWlDVVVOQUNBRktBS1U2d0ZGRFFBZ0NTZ0NCRUVCYXlJSElBVW9BdHpwQVNJS3JVS0hsYSt2bUxiZW01NS9ma0xKejlteThlVzY2aWVGUWhlSlFzL1cwNzdTeDZ2WlFuNUMrZlBkOFpuMm1hc1dmQ0kvUWlHSUlEK0ZRcy9XMDc3U3g2dlpRbjRpUDBJZGlDQS9oVUw1ODkzeG1mYVpxeForSWo5Q0lJZ2dQNFduY1NFR0lBa29BZ0FoRlFOQVFRQWhDQUpBSUJVZ0JrRUNkR29vQWdBaUNVVU5BQ0FKS0FJSVFRaEpEUUFnQ1NnQ0JDSVNLQUFBUWJmSXd1RitSdzBBSUJJb0FBUWhDQXNnQ0NBS1J3UkFJQVlnQjNGQkFXb2hCaUFJRFFFTEN5QUpSUTBBSUFVUUdDQUZRWDgyQXFEckFTQUZJQWsyQXBUckFTQUZJQVVvQXR6cEFTSUlOZ0tZNndFTUFRc2dCU2dDM09rQklRZ0xBa0FnQ0VVTkFDQUZLQUtZNndFZ0NFWU5BRUZnSVFrTUJnc0NRQ0FGS0FMZzZRRUVRQ0FGSUFVb0F1anFBU0lKUlRZQzdPb0JJQWtOQVNBRlF2bnEwTkRueWFIazRRQTNBNmpxQVNBRlFnQTNBNkRxQVNBRlFzL1cwNzdTeDZ2WlFqY0RtT29CSUFWQzF1dUM3dXI5aWZYZ0FEY0RrT29CSUFWQ0FEY0RpT29CSUNKQkFFRW9FQU1hREFFTElBVkJBRFlDN09vQkN5QUJJQjFxSVNVZ0JTQUZLUVBvNlFFZ0RxMThOd1BvNlFFZ0F5QU9heUVESUFJZ0Rtb2hBaUFkSVE0RFFDQUNJQU1nQkVFc2FoQWRJaFZCaUg5TEJFQWdGU0VKREFZTElBTkJBMnNpTlNBVlNRMEVJQUpCQTJvaEcwRnNJUWtDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQUVLQUlzRGdNQ0FRQVZDeUFWUWYvL0Iwc05FeUFWUVFOSkRSSWdCU2tEeU9rQklUOENRQUpBSUJzdEFBQWlDVUVEY1NJYVFRRnJEZ01HQVFBSEN5QUZLQUtBNmdFTkFFRmlJUWtNRlFzZ0ZVRUZTUTBTSUJzb0FBQWhBd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRWlDVUVDYXc0Q0FRSUFDeUFKUVFCSElRY2dBMEVFZGtIL0IzRWhDMEVESVFZZ0EwRU9ka0gvQjNFTUFndEJCQ0VHSUFOQkJIWkIvLzhBY1NFTFFRRWhCeUFEUVJKMkRBRUxJQU5CQkhaQi8vOFBjU0lMUVlDQUNFc05FMEVCSVFkQkJTRUdJQUl0QUFkQkNuUWdBMEVXZG5JTElnZ2dCbW9pQ1NBVlN3MFNBa0FnQzBHQkJra05BQ0FGS0FLYzZ3RkZEUUJCQUNFREEwQWdBMEdEZ0FGTERRRWdBMEZBYXlFRERBQUxBQXNnQmlBYmFpRVBJQnBCQTBjTkJpQUZLQUlNSWdJdEFBRkJDSFFoQXlBSERRY2dBMFVOQ0NBRVFmQUFhaUFQSUFnUURTSURRWWgvU3cwSklBSkJCR29oQmlBTElCeHFJaEpCQTJzaENrRUFJQUl2QVFKclFSOXhJUWNnSENFREEwQWdCRUh3QUdvUUQwVWdBeUFLU1hFRVFDQURJQVlnQkNnQ2NDSUlJQVFvQW5RaUQzUWdCM1pCQW5ScUlnSXZBUUE3QUFBZ0F5QUNMUUFEYWlJRElBWWdDQ0FQSUFJdEFBSnFJZ2gwSUFkMlFRSjBhaUlDTHdFQU93QUFJQVFnQ0NBQ0xRQUNhallDZENBRElBSXRBQU5xSVFNTUFRVWdFa0VDYXlFSUEwQWdCRUh3QUdvUUR5RVBJQVFvQW5BaENpQUVLQUowSVFJZ0F5QUlTeUFQY2tVRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUNpOEJBRHNBQUNBRUlBSWdDaTBBQW1vMkFuUWdBeUFLTFFBRGFpRUREQUVMQ3dOQUlBTWdDRTBFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pRHk4QkFEc0FBQ0FESUE4dEFBTnFJUU1nQWlBUExRQUNhaUVDREFFTEN3SkFJQU1nRWs4TkFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUF5MEFBRG9BQUNBRExRQURRUUZHQkVBZ0FpQURMUUFDYWlFQ0RBRUxJQUpCSDBzTkFFRWdJQUlnQXkwQUFtb2lBaUFDUVNCUEd5RUNDMEZzUVd3Z0N5QUVLQUo0SUFRb0FueEhHeUFDUVNCSEd5RUREQXNMQUFzQUN5QUVLQUkwSWdJZ0pTQU9hMHNOQ2lBT1JRUkFRUUFoQ1NBQ0RRSU1EZ3NnRGlBYkxRQUFJQUlRQXhvZ0FpRUpEQXdMSUJVZ0pTQU9hMHNOQ1NBT0RRRkJBQ0VKSUJWRkRRd0xRYlovSVFrTUVRc2dEaUFiSUJVUUFob2dGU0VKREFvTElCd2dHd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRkJBV3NPQXdFQUFnQUxJQWxCQTNZaEEwRUJEQUlMSUJzdkFBQkJCSFloQTBFQ0RBRUxJQlZCQkVrTkRpQUNMd0FESUFJdEFBVkJFSFJ5SWdKQmo0Q0FBVXNORGlBQ1FRUjJJUU5CQXdzaUFtb3RBQUFnQTBFZ2FoQURJUWtnQlNBRE5nS0E2d0VnQlNBSk5nTHc2Z0VnQWtFQmFpRUpEQVVMSUJVQ2Z3SkFBa0FDUUNBSlFRSjJRUU54UVFGckRnTUJBQUlBQ3lBSlFRTjJJUU5CQVF3Q0N5QWJMd0FBUVFSMklRTkJBZ3dCQ3lBQ0x3QURJQUl0QUFWQkVIUnlRUVIySVFOQkF3c2lBaUFEYWlJSlFTQnFTUVJBSUFrZ0ZVc05EU0FjSUFJZ0cyb2dBeEFDSVFJZ0JTQUROZ0tBNndFZ0JTQUNOZ0x3NmdFZ0FpQURhaUlDUWdBM0FCZ2dBa0lBTndBUUlBSkNBRGNBQ0NBQ1FnQTNBQUFNQlFzZ0JTQUROZ0tBNndFZ0JTQUNJQnRxTmdMdzZnRU1CQXNnQjBVRVFDQWVJQThnQ0NBVUVCUWlBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRlNFRERBTUxJQXRGSUFoRmNnMExJQXRCQ0hZaUF5QUlJQXRKQkg4Z0NFRUVkQ0FMYmdWQkR3dEJHR3dpQWtHTUNHb29BZ0JzSUFKQmlBaHFLQUlBYWlJR1FRTjJJQVpxSUFKQmdBaHFLQUlBSUFKQmhBaHFLQUlBSUFOc2Fra0VRQ01BUVJCckloQWtBQ0FlS0FJQUlRTWdGRUh3QkdwQkFFSHNBQkFESVFaQlZDRUNBa0FnQTBIL0FYRWlERUVNU3cwQUFrQWdGRUhjQ1dvZ0JpQVFRUWhxSUJCQkRHb2dEeUFJSUJSQjNBdHFJaGNRQ3lJU1FZaC9TdzBBSUJBb0Fnd2lCaUFNU3cwQklCUkJxQVZxSVEwZ0ZFR2tCV29oTmlBZVFRUnFJUkVnQTBHQWdJQjRjU0UzSUFaQkFXb2lFeUVDSUFZaEF3TkFJQUlpQjBFQmF5RUNJQU1pQ2tFQmF5RURJQlFnQ2tFQ2RHb29BdkFFUlEwQUMwRUJJQWNnQjBFQlRSc2hGa0VBSVFkQkFTRUNBMEFnQWlBV1J3UkFJQlFnQWtFQ2RDSURhaWdDOEFRaEdDQURJQTFxSUFjMkFnQWdBa0VCYWlFQ0lBY2dHR29oQnd3QkN3c2dEU0FITmdJQVFRQWhBaUFRS0FJSUlRTURRQ0FDSUFOSEJFQWdEU0FDSUJScVFkd0phaTBBQUNJWVFRSjBhaUlaSUJrb0FnQWlHVUVCYWpZQ0FDQVVJQmxCQVhScUloa2dHRG9BM1FVZ0dTQUNPZ0RjQlNBQ1FRRnFJUUlNQVFzTFFRQWhBeUFOUVFBMkFnQWdEQ0FHUVg5emFpRUdRUUVoQWdOQUlBSWdGa2NFUUNBVUlBSkJBblJxSWcwZ0F6WUNBQ0FOS0FMd0JDQUNJQVpxZENBRGFpRURJQUpCQVdvaEFnd0JDd3NnRENBVElBcHJJZ1pyUVFGcUlRb2dCaUVEQTBBZ0F5QUtTUVJBSUJRZ0EwRTBiR29oRFVFQklRSURRQ0FDSUJaSEJFQWdEU0FDUVFKMEloaHFJQlFnR0dvb0FnQWdBM1kyQWdBZ0FrRUJhaUVDREFFTEN5QURRUUZxSVFNTUFRc0xJQmNnRkVFMEVBSWhPQ0FVUVpBTWFpRTVJQk1nREdzaE9pQVVRZHdGYWlFWFFRQWhDZ05BQWtBQ1FDQUhJQXBIQkVCQkFTQU1JQk1nRnlBS1FRRjBhaUlDTFFBQklnMXJJZ05ySWhoMElSa2dBaTBBQUNFV0lEZ2dEVUVDZEdvaUh5Z0NBQ0VDSUFZZ0dFMEVRQ0EyUVFFZ0F5QTZhaUlOSUExQkFVd2JJaUJCQW5RaUpHb29BZ0FoRFNBNUlCUWdBMEUwYkdwQk5CQUNJU0VnRFVFQmRDRW1JQkVnQWtFQ2RHb2hJeUFnUVFGTkRRSWdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVnSUNFZ0pHb29BZ0FoSkVFQUlRSURRQ0FDSUNSR0RRTWdJeUFDUVFKMGFpQWdOZ0VBSUFKQkFXb2hBZ3dBQ3dBTElBSWdBaUFaYWlJTklBSWdEVXNiSVEwZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRURBMEFnQWlBTlJnMERJQkVnQWtFQ2RHb2dBellCQUNBQ1FRRnFJUUlNQUFzQUN5QWVJQXhCRUhRZ04zSWdESEpCZ0FKeU5nSUFEQU1MSUFjZ0RXc2hKQ0FYSUNacUlTWkJBQ0VOQTBBZ0RTQWtSZzBCUVFFZ0dDQVRJQ1lnRFVFQmRHb2lKeTBBQVNJQ2F5STdhM1FpUENBaElBSkJBblJxSWlBb0FnQWlBbW9oUFNBRElEdHFRUkIwUVlDQS9BZHhJQ2N0QUFCQkNIUnlJQlp5UVlDQWdCQnlJU2NEUUNBaklBSkJBblJxSUNjMkFRQWdBa0VCYWlJQ0lEMUpEUUFMSUNBZ0lDZ0NBQ0E4YWpZQ0FDQU5RUUZxSVEwTUFBc0FDeUFmSUI4b0FnQWdHV28yQWdBZ0NrRUJhaUVLREFBTEFBc2dFaUVDQ3lBUVFSQnFKQUFnQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZpRUREQU1MSUI0Z0R5QUlJQlFRRkNJQ1FZaC9TeUFDSUFoUGNnMExJQndnQ3lBQ0lBOXFJQWdnQW1zZ0hoQVhJUU1NQWdzZ0F3UkFJQndnQ3lBUElBZ2dBaEFXSVFNTUFnc2dIQ0FMSUE4Z0NDQUNFQmNoQXd3QkN5QWNJQXNnRHlBSUlBSVFGU0VEQ3lBRFFZaC9TdzBJSUFVZ0N6WUNnT3NCSUFVZ0hEWUM4T29CSUFWQkFUWUNnT29CSUJwQkFrWUVRQ0FGSUI0MkFnd0xJQXNnSEdvaUFrSUFOd0FBSUFKQ0FEY0FHQ0FDUWdBM0FCQWdBa0lBTndBSUlBbEJpSDlMRFFvTElBa2dGVVlOQ0NBVklBbHJJUVlnQlNnQ25Pc0JJUW9DUUNBSklCdHFJZ010QUFBaUQwVUVRRUVCSVFKQkFDRVBRYmgvSVFrZ0JrRUJSZzBCREFzTEFuOGdBMEVCYWlBUHdDSUNRUUJPRFFBYUlBSkJmMFlFUUNBR1FRTklEUXNnQXk4QUFVR0EvZ0ZxSVE4Z0EwRURhZ3dCQ3lBR1FRSklEUW9nQXkwQUFTQVBRUWgwY2tHQWdBSnJJUThnQTBFQ2Fnc2hFa0c0ZnlFSklCSkJBV29pQWlBVklCdHFJZ2RMRFFvZ0xDQUZJQkl0QUFBaUVrRUdka0VqUVFrZ0FpQUhJQUpyUWNBUVFkQVJRZkFTSUFVb0FvVHFBU0FLSUE4Z0ZCQWhJZ2xCaUg5TERRZ2dLeUFvSUJKQkJIWkJBM0ZCSDBFSUlBSWdDV29pQWlBSElBSnJRWUFMUVlBTVFZQVhJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQ0VHSWYwc05DRUZzSVFrZ0tpQXRJQkpCQW5aQkEzRkJORUVKSUFJZ0NHb2lBaUFISUFKclFZQU5RZUFPUVpBWklBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlCMEdJZjBzTkNpQUNJQWRxSUFOcklnSWhDU0FDUVloL1N3MEtDeUFPSUE5QkFFeHlEUUVMUWJwL0lRa01DQXNnSlNBT2F5RUpJQVlnQW1zaEJpQUNJQU5xSVFjQ1FBSkFBa0FnQ2tVRVFDQVBRUWxJSUFVcEE4anBBVUtCZ0lBSVZISU5BaUFvS0FJQUlnSkJDR29oRWlBQ0tBSUVJUXBCQUNFRFFRQWhBZ05BSUFNZ0NuWkZCRUFnQWlBU0lBTkJBM1JxTFFBQ1FSWkxhaUVDSUFOQkFXb2hBd3dCQ3dzZ0JVRUFOZ0tjNndFZ0FrRUlJQXByZEVFVVR3MEJEQU1MSUFWQkFEWUNuT3NCQ3lBRUlBVW9BdkRxQVNJRE5nTGNBU0FKSUE1cUlSWWdBeUFGS0FLQTZ3RnFJUmNDUUNBUFJRUkFJQTRoQnd3QkN5QUZLQUs0NlFFaEdpQUZLQUswNlFFaEdDQUZLQUt3NlFFaEVpQUZRUUUyQW9UcUFVRUFJUU1EUUNBRFFRTkhCRUFnQkNBRFFRSjBJZ0pxSUFJZ0JXcEJyTkFCYWlnQ0FEWUNaQ0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRVGhxSWdJZ0J5QUdFQTFCaUg5TERRTkJDQ0FQSUE5QkNFNGJJUjhnTkNBQ0lBVW9BZ0FRSGlBeklBSWdCU2dDQ0JBZUlESWdBaUFGS0FJRUVCNGdEaUFTYXlFWlFRQWhDQU5BSUFSQk9Hb1FEMEVEUmlBSUlCOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnZEJFSFlpRVVIL0FYRWhDeUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWd4QkVIWWlJVUgvQVhFaEVDQUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFZZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDa0gvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJS2F5SU5JQUlnQWlBTlN4c2lFeUFLYWpZQ1BDQUdJQVFvQWpnZ0NuUkJBQ0FUYTNZZ0FpQVRheUlUZEdvaENpQUVRVGhxRUE4YUlBSWdEVTBOQVNBRUlBUW9BandpQWlBVGFqWUNQQ0FFS0FJNElBSjBRUUFnRTJ0MklBcHFJUW9NQVFzZ0JDQUNJQVFvQWp3aURXbzJBandnQkNnQ09DQU5kRUVBSUFwcmRpQUdhaUVLSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUFvMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQURCRUFnQkNnQ1pDRUtEQU1MSUFRb0FtZ2hDZ3dCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFZZ0EwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnWkZJQVpxSVFvZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQW8yQW1RTHB5RUNJRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUJCcU5nSThJQVFvQWpnZ0JuUkJBQ0FoYTNZZ0Ftb2hBZ3NnQ3lBUWFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lBdHFOZ0k4SUFRb0FqZ2dCblJCQUNBUmEzWWdBMm9oQXdzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQmtFQUlBZEJHSFlpQ3lBRUtBSThhaUlRYTNZZ0MwRUNkRUdnSFdvb0FnQnhJQWRCLy84RGNXbzJBa3dnQkNBUUlBeEJHSFlpQjJvaUN6WUNQQ0FFSUFkQkFuUkJvQjFxS0FJQUlBWkJBQ0FMYTNaeElBeEIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdaQkdIWWlCeUFFS0FJOGFpSUxOZ0k4SUFRZ0IwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBdHJkbkVnQmtILy93TnhhallDVkNBRVFmQUFhaUFJUVF4c2FpSUdJQW8yQWdnZ0JpQUNOZ0lFSUFZZ0F6WUNBQ0FJUVFGcUlRZ2dBeUFaYWlBQ2FpRVpEQUVMQ3lBSUlCOUlEUU1nRmtFZ2F5RWhJQTRoQndOQUlBUkJPR29RRDBFRFJpQUlJQTlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ1pCRUhZaUkwSC9BWEVoQ2lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklnMUJFSFlpSUVIL0FYRWhFeUFFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRTWdRVUlnaUNCQVFpQ0lweUVMQWtBZ1FrSVFpS2NpREVIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSU1heUlSSUFJZ0FpQVJTeHNpRUNBTWFqWUNQQ0FESUFRb0FqZ2dESFJCQUNBUWEzWWdBaUFRYXlJTWRHb2hFQ0FFUVRocUVBOGFJQUlnRVUwTkFTQUVJQVFvQWp3aUFpQU1hallDUENBRUtBSTRJQUowUVFBZ0RHdDJJQkJxSVJBTUFRc2dCQ0FDSUFRb0Fqd2lFR28yQWp3Z0JDZ0NPQ0FRZEVFQUlBeHJkaUFEYWlFUUlBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlCQTJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FMQkVBZ0JDZ0NaQ0VRREFNTElBUW9BbWdoRUF3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBTWdDMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ05GSUFOcUlSQWdBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUJBMkFtUUxweUVNSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lCTnFOZ0k4SUFRb0FqZ2dBblJCQUNBZ2EzWWdER29oREFzZ0NpQVRha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQXBxTmdJOElBUW9BamdnQW5SQkFDQWphM1lnQzJvaEN3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUFrRUFJQVpCR0hZaUF5QUVLQUk4YWlJS2EzWWdBMEVDZEVHZ0hXb29BZ0J4SUFaQi8vOERjV28yQWt3Z0JDQUtJQTFCR0hZaUEyb2lCallDUENBRUlBTkJBblJCb0IxcUtBSUFJQUpCQUNBR2EzWnhJQTFCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnSkJHSFlpQXlBRUtBSThhaUlHTmdJOElBUWdBMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQVpyZG5FZ0FrSC8vd054YWpZQ1ZBSkFBa0FDUUNBRUtBTGNBU0lESUFSQjhBQnFJQWhCQjNGQkRHeHFJaE1vQWdBaUVXb2lJeUFYU3cwQUlBY2dFeWdDQkNJTklCRnFJZ3BxSUNGTERRQWdDa0VnYWlBV0lBZHJUUTBCQ3lBRUlCTW9BZ2cyQWhnZ0JDQVRLUUlBTndNUUlBY2dGaUFFUVJCcUlBUkIzQUZxSUJjZ0VpQVlJQm9RSHlFS0RBRUxJQWNnRVdvaEFpQVRLQUlJSVFZZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNBSkFJQkZCRVVrTkFDQUhJQU1wQUJBM0FCQWdCeUFES1FBWU53QVlJQkZCRUd0QkVVZ05BQ0FEUVJCcUlRTWdCMEVnYWlFUkEwQWdFU0FES1FBUU53QUFJQkVnQXlrQUdEY0FDQ0FSSUFNcEFDQTNBQkFnRVNBREtRQW9Od0FZSUFOQklHb2hBeUFSUVNCcUloRWdBa2tOQUFzTElBSWdCbXNoQXlBRUlDTTJBdHdCSUFJZ0Vtc2dCa2tFUUNBR0lBSWdHR3RMRFFjZ0dpQWFJQU1nRW1zaUEyb2lFU0FOYWs4RVFDQUNJQkVnRFJBS0dnd0NDeUFESUExcUlRMGdBaUFSUVFBZ0Eyc1FDaUFEYXlFQ0lCSWhBd3NnQmtFUVR3UkFJQUlnQXlrQUFEY0FBQ0FDSUFNcEFBZzNBQWdnRFVFUlNBMEJJQUlnRFdvaEJpQUNRUkJxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQUdTUTBBQ3d3QkN3SkFJQVpCQjAwRVFDQUNJQU10QUFBNkFBQWdBaUFETFFBQk9nQUJJQUlnQXkwQUFqb0FBaUFDSUFNdEFBTTZBQU1nQWlBRElBWkJBblFpQmtIQUhtb29BZ0JxSWdNb0FBQTJBQVFnQXlBR1FlQWVhaWdDQUdzaEF3d0JDeUFDSUFNcEFBQTNBQUFMSUExQkNVa05BQ0FDSUExcUlSRWdBa0VJYWlJR0lBTkJDR29pQTJ0QkQwd0VRQU5BSUFZZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQmtFSWFpSUdJQkZKRFFBTUFnc0FDeUFHSUFNcEFBQTNBQUFnQmlBREtRQUlOd0FJSUExQkdVZ05BQ0FDUVJocUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFSU1EwQUN3c2dDa0dJZjBzRVFDQUtJUWtNQmdVZ0V5QVFOZ0lJSUJNZ0REWUNCQ0FUSUFzMkFnQWdDRUVCYWlFSUlBY2dDbW9oQnlBTElCbHFJQXhxSVJrTUFnc0FDd3NnQ0NBUFNBMERJQWdnSDJzaEJnTkFBa0FnQmlBUFRnUkFRUUFoQXdOQUlBTkJBMFlOQWlBRklBTkJBblFpQW1wQnJOQUJhaUFDSUFScUtBSmtOZ0lBSUFOQkFXb2hBd3dBQ3dBTEFrQUNRQUpBSUFRb0F0d0JJZ01nQkVId0FHb2dCa0VIY1VFTWJHb2lDQ2dDQUNJTWFpSVFJQmRMRFFBZ0J5QUlLQUlFSWdzZ0RHb2lDbW9nSVVzTkFDQUtRU0JxSUJZZ0IydE5EUUVMSUFRZ0NDZ0NDRFlDS0NBRUlBZ3BBZ0EzQXlBZ0J5QVdJQVJCSUdvZ0JFSGNBV29nRnlBU0lCZ2dHaEFmSVFvTUFRc2dCeUFNYWlFQ0lBZ29BZ2doQ0NBSElBTXBBQUEzQUFBZ0J5QURLUUFJTndBSUFrQWdERUVSU1EwQUlBY2dBeWtBRURjQUVDQUhJQU1wQUJnM0FCZ2dERUVRYTBFUlNBMEFJQU5CRUdvaEF5QUhRU0JxSVF3RFFDQU1JQU1wQUJBM0FBQWdEQ0FES1FBWU53QUlJQXdnQXlrQUlEY0FFQ0FNSUFNcEFDZzNBQmdnQTBFZ2FpRURJQXhCSUdvaURDQUNTUTBBQ3dzZ0FpQUlheUVESUFRZ0VEWUMzQUVnQWlBU2F5QUlTUVJBSUFnZ0FpQVlhMHNOQnlBYUlCb2dBeUFTYXlJRGFpSU1JQXRxVHdSQUlBSWdEQ0FMRUFvYURBSUxJQU1nQzJvaEN5QUNJQXhCQUNBRGF4QUtJQU5ySVFJZ0VpRURDeUFJUVJCUEJFQWdBaUFES1FBQU53QUFJQUlnQXlrQUNEY0FDQ0FMUVJGSURRRWdBaUFMYWlFSUlBSkJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBSWdBeTBBQURvQUFDQUNJQU10QUFFNkFBRWdBaUFETFFBQ09nQUNJQUlnQXkwQUF6b0FBeUFDSUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQUlnQXlrQUFEY0FBQXNnQzBFSlNRMEFJQUlnQzJvaERDQUNRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dERWtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQzBFWlNBMEFJQUpCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXhKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdHQlNBR1FRRnFJUVlnQnlBS2FpRUhEQUlMQUFzTElBUW9BdHdCSVFNTFFicC9JUWtnRnlBRGF5SUNJQllnQjJ0TERRSWdCd1IvSUFjZ0F5QUNFQUlnQW1vRlFRQUxJQTVySVFrTUFnc2dCVUVBTmdLYzZ3RUxJQVFnQlNnQzhPb0JJZ00yQXR3QklBa2dEbW9oRENBRElBVW9Bb0RyQVdvaEVBSkFJQTlGQkVBZ0RpRUdEQUVMSUFVb0FyanBBU0VOSUFVb0FyVHBBU0VUSUFVb0FyRHBBU0VTSUFWQkFUWUNoT29CUVFBaEF3TkFJQU5CQTBjRVFDQUVJQU5CQW5RaUFtb2dBaUFGYWtHczBBRnFLQUlBTmdLY0FTQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFmQUFhaUlDSUFjZ0JoQU5RWWgvU3cwQklERWdBaUFGS0FJQUVCNGdNQ0FDSUFVb0FnZ1FIaUF2SUFJZ0JTZ0NCQkFlSUF4QklHc2hHQ0FPSVFZRFFDQUVLQUtJQVNBRUtBS0VBVUVEZEdvcEFnQWlRS2NpQ2tFUWRpSVpRZjhCY1NFTElBUW9BcGdCSUFRb0FwUUJRUU4wYWlrQ0FDSkJweUlXUVJCMkloOUIvd0Z4SVJvZ0JDZ0NrQUVnQkNnQ2pBRkJBM1JxS1FJQUlrSkNJSWluSVFjZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDRUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDZENJSWF5SVJJQUlnQWlBUlN4c2lGeUFJYWpZQ2RDQUhJQVFvQW5BZ0NIUkJBQ0FYYTNZZ0FpQVhheUlYZEdvaENDQUVRZkFBYWhBUEdpQUNJQkZORFFFZ0JDQUVLQUowSWdJZ0YybzJBblFnQkNnQ2NDQUNkRUVBSUJkcmRpQUlhaUVJREFFTElBUWdBaUFFS0FKMEloRnFOZ0owSUFRb0FuQWdFWFJCQUNBSWEzWWdCMm9oQ0NBRVFmQUFhaEFQR2dzZ0JDa0NuQUVoUkNBRUlBZzJBcHdCSUFRZ1JEY0NvQUVNQVFzQ1FDQUNSUVJBSUFNRVFDQUVLQUtjQVNFSURBTUxJQVFvQXFBQklRZ01BUXNnQkNBRUtBSjBJZ0pCQVdvMkFuUUNmeUFISUFORmFpQUVLQUp3SUFKMFFSOTJhaUlDUVFOR0JFQWdCQ2dDbkFGQkFXc01BUXNnQWtFQ2RDQUVhaWdDbkFFTElnZEZJQWRxSVFnZ0FrRUJSd1JBSUFRZ0JDZ0NvQUUyQXFRQkN3c2dCQ0FFS0FLY0FUWUNvQUVnQkNBSU5nS2NBUXVuSVFJZ1FVS0FnUHdIZzFCRkJFQWdCQ0FFS0FKMElnY2dHbW8yQW5RZ0JDZ0NjQ0FIZEVFQUlCOXJkaUFDYWlFQ0N5QUxJQnBxUVJSUEJFQWdCRUh3QUdvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NkQ0lISUF0cU5nSjBJQVFvQW5BZ0IzUkJBQ0FaYTNZZ0Eyb2hBd3NnQkVId0FHb1FEeG9nQkNBRUtBSndJZ2RCQUNBS1FSaDJJZ3NnQkNnQ2RHb2lHbXQySUF0QkFuUkJvQjFxS0FJQWNTQUtRZi8vQTNGcU5nS0VBU0FFSUJvZ0ZrRVlkaUlLYWlJTE5nSjBJQVFnQ2tFQ2RFR2dIV29vQWdBZ0IwRUFJQXRyZG5FZ0ZrSC8vd054YWpZQ2xBRWdCRUh3QUdvUUR4b2dCQ0JDcHlJSFFSaDJJZ29nQkNnQ2RHb2lDellDZENBRUlBcEJBblJCb0IxcUtBSUFJQVFvQW5CQkFDQUxhM1p4SUFkQi8vOERjV28yQW93QklBUWdBellDT0NBRUlBSTJBandnQkNBSU5nSkFBa0FDUUFKQUlBUW9BdHdCSWdzZ0Eyb2lGaUFRU3cwQUlBWWdBaUFEYWlJS2FpQVlTdzBBSUFwQklHb2dEQ0FHYTAwTkFRc2dCQ0FFUVVCcktBSUFOZ0lJSUFRZ0JDa0RPRGNEQUNBR0lBd2dCQ0FFUWR3QmFpQVFJQklnRXlBTkVCOGhDZ3dCQ3lBRElBWnFJUWNnQmlBTEtRQUFOd0FBSUFZZ0N5a0FDRGNBQ0FKQUlBTkJFVWtOQUNBR0lBc3BBQkEzQUJBZ0JpQUxLUUFZTndBWUlBTkJFR3RCRVVnTkFDQUxRUkJxSVFNZ0JrRWdhaUVMQTBBZ0N5QURLUUFRTndBQUlBc2dBeWtBR0RjQUNDQUxJQU1wQUNBM0FCQWdDeUFES1FBb053QVlJQU5CSUdvaEF5QUxRU0JxSWdzZ0Iwa05BQXNMSUFjZ0NHc2hBeUFFSUJZMkF0d0JJQWNnRW1zZ0NFa0VRQ0FJSUFjZ0UydExEUVFnRFNBTklBTWdFbXNpQTJvaUN5QUNhazhFUUNBSElBc2dBaEFLR2d3Q0N5QUhJQXRCQUNBRGF4QUtJQVFnQWlBRGFpSUNOZ0k4SUFOcklRY2dFaUVEQ3lBSVFSQlBCRUFnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0NBQ1FSRklEUUVnQWlBSGFpRUlJQWRCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQWNnQXkwQUFEb0FBQ0FISUFNdEFBRTZBQUVnQnlBRExRQUNPZ0FDSUFjZ0F5MEFBem9BQXlBSElBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFjZ0F5a0FBRGNBQUFzZ0FrRUpTUTBBSUFJZ0Iyb2hDeUFIUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnQzBrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0FrRVpTQTBBSUFkQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF0SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3REN5QUdJQXBxSVFZZ0JFSHdBR29RRHlFRElBOUJBV3NpRHcwQUMwRUFJUUlnQTBFQ1NRMEJBMEFnQWtFRFJ3UkFJQVVnQWtFQ2RDSURha0dzMEFGcUlBTWdCR29vQXB3Qk5nSUFJQUpCQVdvaEFnd0JDd3NnQkNnQzNBRWhBd3RCdW44aENTQVFJQU5ySWdJZ0RDQUdhMHNOQUNBR0JIOGdCaUFESUFJUUFpQUNhZ1ZCQUFzZ0Rtc2hDUXNnQ1VHSWYwc05CZ3NDUUNBRktBTHM2Z0ZGRFFBZ0JTQUZLUU9JNmdFZ0NhMThOd09JNmdFQ1FDQUZLQUxRNmdFaUFpQUphaUlJUVI5TkJFQWdEa1VOQVNBQ0lDSnFJQTRnQ1JBQ0dpQUZLQUxRNmdFZ0NXb2hDQXdCQ3lBT0lRTWdBZ1JBSUFJZ0ltb2dBMEVnSUFKckVBSWFJQVVvQXREcUFTRUNJQVZCQURZQzBPb0JJQVVnQlNrRGtPb0JJQVVwQUxEcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RrT29CSUFVZ0JTa0RtT29CSUFVcEFManFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEbU9vQklBVWdCU2tEb09vQklBVXBBTURxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG9Pb0JJQVVnQlNrRHFPb0JJQVVwQU1qcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RxT29CSUFNZ0FtdEJJR29oQXdzZ0NTQU9haUlDSUFOQklHcFBCRUFnQWtFZ2F5RUdJQVVwQTZqcUFTRS9JQVVwQTZEcUFTRkFJQVVwQTVqcUFTRkJJQVVwQTVEcUFTRkNBMEFnQXlrQUdFTFAxdE8rMHNlcjJVSitJRDk4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVDhnQXlrQUVFTFAxdE8rMHNlcjJVSitJRUI4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUFnQXlrQUNFTFAxdE8rMHNlcjJVSitJRUY4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUVnQXlrQUFFTFAxdE8rMHNlcjJVSitJRUo4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUlnQTBFZ2FpSURJQVpORFFBTElBVWdQemNEcU9vQklBVWdRRGNEb09vQklBVWdRVGNEbU9vQklBVWdRamNEa09vQkN5QUNJQU5ORFFFZ0lpQURJQUlnQTJzaUNCQUNHZ3NnQlNBSU5nTFE2Z0VMSURVZ0ZXc2hBeUFWSUJ0cUlRSWdDU0FPYWlFT0lBUW9BakJGRFFBTElDa3BBd0FpUDBKL1VTQS9JQTRnSFd1c1VYSkZCRUJCYkNFSkRBWUxJQVVvQXVEcEFRUkFRV29oQ1NBRFFRUkpEUVlnQlNnQzZPb0JSUVJBSUNJZ0JTZ0MwT29CYWlFS0FuNGdCU2tEaU9vQklqOUNJRm9FUUNBRktRT1k2Z0VpUUVJSGlTQUZLUU9RNmdFaVFVSUJpWHdnQlNrRG9Pb0JJa0pDRElsOElBVXBBNmpxQVNKRFFoS0pmQ0JCUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlJRUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9mb1ZDaDVXdnI1aTIzcHVlZjM1Q25hTzE2b094allyNkFIMGdRa0xQMXRPKzBzZXIyVUorUWgrSlFvZVZyNitZdHQ2Ym5uOStoVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTQkRRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOURBRUxJQVVwQTZEcUFVTEZ6OW15OGVXNjZpZDhDeUEvZkNFL0lDSWhCZ05BSUFvZ0JrRUlhaUlIVHdSQUlBWXBBQUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9maUEvaFVJYmlVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNFL0lBY2hCZ3dCQ3dzQ1FDQUtJQVpCQkdvaUNFa0VRQ0FHSVFnTUFRc2dCalVBQUVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUlYaVVMUDF0Tyswc2VyMlVKK1F2bnozZkdaOXBtckZud2hQd3NEUUNBSUlBcEpCRUFnQ0RFQUFFTEZ6OW15OGVXNjZpZCtJRCtGUWd1SlFvZVZyNitZdHQ2Ym5uOStJVDhnQ0VFQmFpRUlEQUVMQ3lBQ0tBQUFJRDlDSVlnZ1A0VkN6OWJUdnRMSHE5bENmaUkvUWgySUlEK0ZRdm56M2ZHWjlwbXJGbjRpUDBJZ2lDQS9oYWRIRFFjTElBTkJCR3NoQXlBQ1FRUnFJUUlMSUE0Z0hXc2lDVUdKZjA4TkJDQUJJQWxySVFFZ0NTQWRhaUVkUVFFaFBnd0JDd3RCdUg4aEJ5QUREUVFnSFNBQWF5RUhEQVFMUVd3aENRd0JDMEc0ZnlFSkMwRzRmeUVISUFsQmRrWWdQbkVOQVFzZ0NTRUhDeWdDQUEwQUlBVkIvT29CYWlnQ0FDRUJJQVZCK09vQmFpZ0NBQ0VBSUFVUUdDQUZLQUt3NndFZ0FDQUJFQk1nQlVFQU5nS3c2d0VnQlNnQ3BPc0JJZ0lFUUFKQUFrQUNRQUpBSUFJb0FnQWlBd1JBSUFCRkRRSWdBU0FESUFBUkFnQU1BUXNnQUVVTkFnc2dBU0FDSUFBUkFnQU1BZ3NnQXhBR0N5QUNFQVlMSUFWQkFEWUNwT3NCQ3lBQUJFQWdBU0FGSUFBUkFnQU1BUXNnQlJBR0N5QUVRZUFCYWlRQUlBY0xDNmdWQ1FCQmlBZ0xEUUVBQUFBQkFBQUFBZ0FBQUFJQVFhQUlDN01HQVFBQUFBRUFBQUFDQUFBQUFnQUFBQ1lBQUFDQ0FBQUFJUVVBQUVvQUFBQm5DQUFBSmdBQUFNQUJBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFLUUFBQUN3Q0FBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUx3QUFBTW9DQUFDQUFBQUFpZ1VBQUVvQUFBQ0VDUUFBTlFBQUFITURBQUNBQUFBQW5RVUFBRW9BQUFDZ0NRQUFQUUFBQUlFREFBQ0FBQUFBNndVQUFFc0FBQUErQ2dBQVJBQUFBSjREQUFDQUFBQUFUUVlBQUVzQUFBQ3FDZ0FBU3dBQUFMTURBQUNBQUFBQXdRWUFBRTBBQUFBZkRRQUFUUUFBQUZNRUFBQ0FBQUFBSXdnQUFGRUFBQUNtRHdBQVZBQUFBSmtFQUFDQUFBQUFTd2tBQUZjQUFBQ3hFZ0FBV0FBQUFOb0VBQUNBQUFBQWJ3a0FBRjBBQUFBakZBQUFWQUFBQUVVRkFBQ0FBQUFBVkFvQUFHb0FBQUNNRkFBQWFnQUFBSzhGQUFDQUFBQUFkZ2tBQUh3QUFBQk9FQUFBZkFBQUFOSUNBQUNBQUFBQVl3Y0FBSkVBQUFDUUJ3QUFrZ0FBQUFBQUFBQUJBQUFBQVFBQUFBVUFBQUFOQUFBQUhRQUFBRDBBQUFCOUFBQUEvUUFBQVAwQkFBRDlBd0FBL1FjQUFQMFBBQUQ5SHdBQS9UOEFBUDEvQUFEOS93QUEvZjhCQVAzL0F3RDkvd2NBL2Y4UEFQMy9Id0Q5L3o4QS9mOS9BUDMvL3dEOS8vOEIvZi8vQS8zLy93ZjkvLzhQL2YvL0gvMy8vei85Ly85L0FBQUFBQUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFSQUFBQUVnQUFBQk1BQUFBVUFBQUFGUUFBQUJZQUFBQVhBQUFBR0FBQUFCa0FBQUFhQUFBQUd3QUFBQndBQUFBZEFBQUFIZ0FBQUI4QUFBQURBQUFBQkFBQUFBVUFBQUFHQUFBQUJ3QUFBQWdBQUFBSkFBQUFDZ0FBQUFzQUFBQU1BQUFBRFFBQUFBNEFBQUFQQUFBQUVBQUFBQkVBQUFBU0FBQUFFd0FBQUJRQUFBQVZBQUFBRmdBQUFCY0FBQUFZQUFBQUdRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBSHdBQUFDQUFBQUFoQUFBQUlnQUFBQ01BQUFBbEFBQUFKd0FBQUNrQUFBQXJBQUFBTHdBQUFETUFBQUE3QUFBQVF3QUFBRk1BQUFCakFBQUFnd0FBQUFNQkFBQURBZ0FBQXdRQUFBTUlBQUFERUFBQUF5QUFBQU5BQUFBRGdBQUFBd0FCQUVIZ0R3dFJBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCQUFBQUFVQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QUFBQVFBRUhFRUF1TEFRRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVNBQUFBRkFBQUFCWUFBQUFZQUFBQUhBQUFBQ0FBQUFBb0FBQUFNQUFBQUVBQUFBQ0FBQUFBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFBQUVBUVpBU0MrWUVBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQUJBQUFBQkFBQUFBZ0FBQUFBQUFBQUFRQUJBUVlBQUFBQUFBQUVBQUFBQUJBQUFBUUFBQUFBSUFBQUJRRUFBQUFBQUFBRkF3QUFBQUFBQUFVRUFBQUFBQUFBQlFZQUFBQUFBQUFGQndBQUFBQUFBQVVKQUFBQUFBQUFCUW9BQUFBQUFBQUZEQUFBQUFBQUFBWU9BQUFBQUFBQkJSQUFBQUFBQUFFRkZBQUFBQUFBQVFVV0FBQUFBQUFDQlJ3QUFBQUFBQU1GSUFBQUFBQUFCQVV3QUFBQUlBQUdCVUFBQUFBQUFBY0ZnQUFBQUFBQUNBWUFBUUFBQUFBS0JnQUVBQUFBQUF3R0FCQUFBQ0FBQUFRQUFBQUFBQUFBQkFFQUFBQUFBQUFGQWdBQUFDQUFBQVVFQUFBQUFBQUFCUVVBQUFBZ0FBQUZCd0FBQUFBQUFBVUlBQUFBSUFBQUJRb0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFJQUFCQlJBQUFBQUFBQUVGRWdBQUFDQUFBUVVXQUFBQUFBQUNCUmdBQUFBZ0FBTUZJQUFBQUFBQUF3VW9BQUFBQUFBR0JFQUFBQUFRQUFZRVFBQUFBQ0FBQndXQUFBQUFBQUFKQmdBQ0FBQUFBQXNHQUFnQUFEQUFBQVFBQUFBQUVBQUFCQUVBQUFBZ0FBQUZBZ0FBQUNBQUFBVURBQUFBSUFBQUJRVUFBQUFnQUFBRkJnQUFBQ0FBQUFVSUFBQUFJQUFBQlFrQUFBQWdBQUFGQ3dBQUFDQUFBQVVNQUFBQUFBQUFCZzhBQUFBZ0FBRUZFZ0FBQUNBQUFRVVVBQUFBSUFBQ0JSZ0FBQUFnQUFJRkhBQUFBQ0FBQXdVb0FBQUFJQUFFQlRBQUFBQUFBQkFHQUFBQkFBQUFEd1lBZ0FBQUFBQU9CZ0JBQUFBQUFBMEdBQ0FBUVlBWEM0Y0NBUUFCQVFVQUFBQUFBQUFGQUFBQUFBQUFCZ1E5QUFBQUFBQUpCZjBCQUFBQUFBOEYvWDhBQUFBQUZRWDkveDhBQUFBREJRVUFBQUFBQUFjRWZRQUFBQUFBREFYOUR3QUFBQUFTQmYzL0F3QUFBQmNGL2Y5L0FBQUFCUVVkQUFBQUFBQUlCUDBBQUFBQUFBNEYvVDhBQUFBQUZBWDkvdzhBQUFBQ0JRRUFBQUFRQUFjRWZRQUFBQUFBQ3dYOUJ3QUFBQUFSQmYzL0FRQUFBQllGL2Y4L0FBQUFCQVVOQUFBQUVBQUlCUDBBQUFBQUFBMEYvUjhBQUFBQUV3WDkvd2NBQUFBQkJRRUFBQUFRQUFZRVBRQUFBQUFBQ2dYOUF3QUFBQUFRQmYzL0FBQUFBQndGL2YvL0R3QUFHd1g5Ly84SEFBQWFCZjMvL3dNQUFCa0YvZi8vQVFBQUdBWDkvLzhBUVpBWkM0WUVBUUFCQVFZQUFBQUFBQUFHQXdBQUFBQUFBQVFFQUFBQUlBQUFCUVVBQUFBQUFBQUZCZ0FBQUFBQUFBVUlBQUFBQUFBQUJRa0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFBQUFBQmhBQUFBQUFBQUFHRXdBQUFBQUFBQVlXQUFBQUFBQUFCaGtBQUFBQUFBQUdIQUFBQUFBQUFBWWZBQUFBQUFBQUJpSUFBQUFBQUFFR0pRQUFBQUFBQVFZcEFBQUFBQUFDQmk4QUFBQUFBQU1HT3dBQUFBQUFCQVpUQUFBQUFBQUhCb01BQUFBQUFBa0dBd0lBQUJBQUFBUUVBQUFBQUFBQUJBVUFBQUFnQUFBRkJnQUFBQUFBQUFVSEFBQUFJQUFBQlFrQUFBQUFBQUFGQ2dBQUFBQUFBQVlNQUFBQUFBQUFCZzhBQUFBQUFBQUdFZ0FBQUFBQUFBWVZBQUFBQUFBQUJoZ0FBQUFBQUFBR0d3QUFBQUFBQUFZZUFBQUFBQUFBQmlFQUFBQUFBQUVHSXdBQUFBQUFBUVluQUFBQUFBQUNCaXNBQUFBQUFBTUdNd0FBQUFBQUJBWkRBQUFBQUFBRkJtTUFBQUFBQUFnR0F3RUFBQ0FBQUFRRUFBQUFNQUFBQkFRQUFBQVFBQUFFQlFBQUFDQUFBQVVIQUFBQUlBQUFCUWdBQUFBZ0FBQUZDZ0FBQUNBQUFBVUxBQUFBQUFBQUJnNEFBQUFBQUFBR0VRQUFBQUFBQUFZVUFBQUFBQUFBQmhjQUFBQUFBQUFHR2dBQUFBQUFBQVlkQUFBQUFBQUFCaUFBQUFBQUFCQUdBd0FCQUFBQUR3WURnQUFBQUFBT0JnTkFBQUFBQUEwR0F5QUFBQUFBREFZREVBQUFBQUFMQmdNSUFBQUFBQW9HQXdRQVFhUWRDOWtCQVFBQUFBTUFBQUFIQUFBQUR3QUFBQjhBQUFBL0FBQUFmd0FBQVA4QUFBRC9BUUFBL3dNQUFQOEhBQUQvRHdBQS94OEFBUDgvQUFEL2Z3QUEvLzhBQVAvL0FRRC8vd01BLy84SEFQLy9Ed0QvL3g4QS8vOC9BUC8vZndELy8vOEEvLy8vQWYvLy93UC8vLzhILy8vL0QvLy8veC8vLy84Ly8vLy9md0FBQUFBQkFBQUFBZ0FBQUFRQUFBQUFBQUFBQWdBQUFBUUFBQUFJQUFBQUFBQUFBQUVBQUFBQ0FBQUFBUUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQWdBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dCQmdCOExBNEFSQVE9PSI7dmFyIEh0PW5ldyBWQSxxdD0hMTthc3luYyBmdW5jdGlvbiBZcihBLGUsdCl7bGV0IEk9InVua25vd24iO3R5cGVvZiBBIT0ic3RyaW5nIj9JPUEuaHJlZjpBLnN0YXJ0c1dpdGgoImh0dHAiKT9JPUE6ST10eXBlb2YgZTwidSI/YCR7ZX0vJHtBfWA6QSxJLmVuZHNXaXRoKCIuanMiKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC0zKSksSS5lbmRzV2l0aCgiLndhc20iKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC01KSksSS5lbmRzV2l0aCgiLndhc20uenN0IikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtOSkpO2xldCByPWAke0l9Lndhc21gLGk9YXdhaXQgbkEuZ2V0KGAke3J9LnpzdGAse3Jlc3BvbnNlVHlwZToiYXJyYXlidWZmZXIiLHBhcmFtczp0fSk7cXR8fChhd2FpdCBIdC5pbml0KCkscXQ9ITApO2xldCBzPUh0LmRlY29kZShuZXcgVWludDhBcnJheShpLmRhdGEpKS5idWZmZXI7cmV0dXJuKGF3YWl0IGltcG9ydChgJHtJfS5qc2ApKS5kZWZhdWx0KHt3YXNtQmluYXJ5OnN9KX12YXIgS3Q9WXI7dmFyIE90PWFzeW5jKCk9PldlYkFzc2VtYmx5LnZhbGlkYXRlKG5ldyBVaW50OEFycmF5KFswLDk3LDExNSwxMDksMSwwLDAsMCwxLDUsMSw5NiwwLDEsMTIzLDMsMiwxLDAsMTAsMTAsMSw4LDAsNjUsMCwyNTMsMTUsMjUzLDk4LDExXSkpO3ZhciBQdD10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcj09ImZ1bmN0aW9uIixUdD1uZXcgVGV4dEVuY29kZXIseHQ9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpO2Z1bmN0aW9uIE1yKEEsZSl7bGV0IHQ9e2ZsYWdzOiJyIixlbmNvZGluZzoiYmluYXJ5In0sST1BLmZzX29wZW4oZSx0LmZsYWdzKSxpPUEuZnNfc3RhdChlKS5zaXplLGc9bnVsbDtQdD9nPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihpKTpnPW5ldyBBcnJheUJ1ZmZlcihpKTtsZXQgcz1uZXcgVWludDhBcnJheShnKTtyZXR1cm4gQS5mc19yZWFkKEkscywwLGksMCksQS5mc19jbG9zZShJKSxzfWZ1bmN0aW9uIFd0KEEsZSx0KXtsZXQgST1udWxsO1B0P0k9bmV3IFNoYXJlZEFycmF5QnVmZmVyKHQpOkk9bmV3IEFycmF5QnVmZmVyKHQpO2xldCByPW5ldyBVaW50OEFycmF5KEkpLGk9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLGUsdCk7cmV0dXJuIHIuc2V0KGkpLHJ9ZnVuY3Rpb24gdyhBLGUsdCxJKXtsZXQgcj0wO3JldHVybiBlIT09bnVsbCYmKHI9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfYXJyYXlfYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxJLGUuYnVmZmVyLmJ5dGVMZW5ndGhdKSxBLkhFQVBVOC5zZXQobmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpLHIpKSxyfWZ1bmN0aW9uIHYoQSxlLHQpe2xldCBJPUpTT04uc3RyaW5naWZ5KGUpLHI9QS5sZW5ndGhCeXRlc1VURjgoSSkrMSxpPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2pzb25fYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxyXSk7QS5zdHJpbmdUb1VURjgoSSxpLHIpfWZ1bmN0aW9uIFMoQSxlLHQsSSl7bGV0IHI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSx0XSksaT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLHRdKSxnPVd0KEEscixpKTtyZXR1cm4gSChJLGcuYnVmZmVyKX1mdW5jdGlvbiBtQShBLGUpe2xldCB0PUEuY2NhbGwoIml0a193YXNtX291dHB1dF9qc29uX2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIl0sWzAsZV0pLEk9QS5VVEY4VG9TdHJpbmcodCk7cmV0dXJuIEpTT04ucGFyc2UoSSl9ZnVuY3Rpb24gSHIoQSxlLHQsSSl7SSE9bnVsbCYmSS5sZW5ndGg+MCYmSS5mb3JFYWNoKGZ1bmN0aW9uKEMsbyl7c3dpdGNoKEMudHlwZSl7Y2FzZSBkLlRleHRTdHJlYW06e2xldCBhPVR0LmVuY29kZShDLmRhdGEuZGF0YSksYz13KEEsYSxvLDApLEI9e3NpemU6YS5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gfTt2KEEsQixvKTticmVha31jYXNlIGQuSnNvbkNvbXBhdGlibGU6e2xldCBhPVR0LmVuY29kZShKU09OLnN0cmluZ2lmeShDLmRhdGEpKSxjPXcoQSxhLG8sMCksQj17c2l6ZTphLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWB9O3YoQSxCLG8pO2JyZWFrfWNhc2UgZC5CaW5hcnlTdHJlYW06e2xldCBhPUMuZGF0YS5kYXRhLGM9dyhBLGEsbywwKSxCPXtzaXplOmEuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YH07dihBLEIsbyk7YnJlYWt9Y2FzZSBkLlRleHRGaWxlOntBLmZzX3dyaXRlRmlsZShDLmRhdGEucGF0aCxDLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBkLkJpbmFyeUZpbGU6e0EuZnNfd3JpdGVGaWxlKEMuZGF0YS5wYXRoLEMuZGF0YS5kYXRhKTticmVha31jYXNlIGQuSW1hZ2U6e2xldCBhPUMuZGF0YSxjPXcoQSxhLmRhdGEsbywwKSxCPXcoQSxhLmRpcmVjdGlvbixvLDEpLFE9dHlwZW9mIGEubWV0YWRhdGE/LmVudHJpZXM8InUiP0FycmF5LmZyb20oYS5tZXRhZGF0YS5lbnRyaWVzKCkpOltdLGY9e2ltYWdlVHlwZTphLmltYWdlVHlwZSxuYW1lOmEubmFtZSxvcmlnaW46YS5vcmlnaW4sc3BhY2luZzphLnNwYWNpbmcsZGlyZWN0aW9uOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Qn1gLHNpemU6YS5zaXplLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWAsbWV0YWRhdGE6UX07dihBLGYsbyk7YnJlYWt9Y2FzZSBkLk1lc2g6e2xldCBhPUMuZGF0YSxjPXcoQSxhLnBvaW50cyxvLDApLEI9dyhBLGEuY2VsbHMsbywxKSxRPXcoQSxhLnBvaW50RGF0YSxvLDIpLGY9dyhBLGEuY2VsbERhdGEsbywzKSxsPXttZXNoVHlwZTphLm1lc2hUeXBlLG5hbWU6YS5uYW1lLG51bWJlck9mUG9pbnRzOmEubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLG51bWJlck9mQ2VsbHM6YS5udW1iZXJPZkNlbGxzLGNlbGxzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Qn1gLGNlbGxCdWZmZXJTaXplOmEuY2VsbEJ1ZmZlclNpemUsbnVtYmVyT2ZQb2ludFBpeGVsczphLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLG51bWJlck9mQ2VsbFBpeGVsczphLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YH07dihBLGwsbyk7YnJlYWt9Y2FzZSBkLlBvaW50U2V0OntsZXQgYT1DLmRhdGEsYz13KEEsYS5wb2ludHMsbywwKSxCPXcoQSxhLnBvaW50RGF0YSxvLDEpLFE9e3BvaW50U2V0VHlwZTphLnBvaW50U2V0VHlwZSxuYW1lOmEubmFtZSxudW1iZXJPZlBvaW50czphLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YCxudW1iZXJPZlBvaW50UGl4ZWxzOmEubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWB9O3YoQSxRLG8pO2JyZWFrfWNhc2UgZC5UcmFuc2Zvcm1MaXN0OntsZXQgYT1DLmRhdGEsYz1bXSxCPTA7YS5mb3JFYWNoKFE9PntsZXQgZj0iIixsPSIiO1EudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihmPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dyhBLFEuZml4ZWRQYXJhbWV0ZXJzLG8sQil9YCxCKz0xLGw9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt3KEEsUS5wYXJhbWV0ZXJzLG8sQil9YCxCKz0xKTtsZXQgcD17dHJhbnNmb3JtVHlwZTpRLnRyYW5zZm9ybVR5cGUsbnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM6US5udW1iZXJPZkZpeGVkUGFyYW1ldGVycyxudW1iZXJPZlBhcmFtZXRlcnM6US5udW1iZXJPZlBhcmFtZXRlcnMsbmFtZTpRLm5hbWUsaW5wdXRTcGFjZU5hbWU6US5pbnB1dFNwYWNlTmFtZSxvdXRwdXRTcGFjZU5hbWU6US5vdXRwdXRTcGFjZU5hbWUscGFyYW1ldGVyczpsLGZpeGVkUGFyYW1ldGVyczpmfTtjLnB1c2gocCl9KSx2KEEsYyxvKTticmVha31jYXNlIGQuUG9seURhdGE6e2xldCBhPUMuZGF0YSxjPXcoQSxhLnBvaW50cyxvLDApLEI9dyhBLGEudmVydGljZXMsbywxKSxRPXcoQSxhLmxpbmVzLG8sMiksZj13KEEsYS5wb2x5Z29ucyxvLDMpLGw9dyhBLGEudHJpYW5nbGVTdHJpcHMsbyw0KSxwPXcoQSxhLnBvaW50RGF0YSxvLDUpLEY9dyhBLGEucG9pbnREYXRhLG8sNiksRD17cG9seURhdGFUeXBlOmEucG9seURhdGFUeXBlLG5hbWU6YS5uYW1lLG51bWJlck9mUG9pbnRzOmEubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLHZlcnRpY2VzQnVmZmVyU2l6ZTphLnZlcnRpY2VzQnVmZmVyU2l6ZSx2ZXJ0aWNlczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0J9YCxsaW5lc0J1ZmZlclNpemU6YS5saW5lc0J1ZmZlclNpemUsbGluZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAscG9seWdvbnNCdWZmZXJTaXplOmEucG9seWdvbnNCdWZmZXJTaXplLHBvbHlnb25zOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gLHRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZTphLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZSx0cmlhbmdsZVN0cmlwczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxudW1iZXJPZlBvaW50UGl4ZWxzOmEubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtwfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOmEubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Rn1gfTt2KEEsRCxvKTticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBpbnB1dCBJbnRlcmZhY2VUeXBlIil9fSksQS5yZXNldE1vZHVsZVN0ZG91dCgpLEEucmVzZXRNb2R1bGVTdGRlcnIoKTtsZXQgcj1BLnN0YWNrU2F2ZSgpLGk9MDt0cnl7aT1BLmNhbGxNYWluKGUuc2xpY2UoKSl9Y2F0Y2goQyl7dGhyb3cgdHlwZW9mIEM9PSJudW1iZXIiJiYoY29uc29sZS5sb2coIkV4Y2VwdGlvbiB3aGlsZSBydW5uaW5nIHBpcGVsaW5lOiIpLGNvbnNvbGUubG9nKCJzdGRvdXQ6IixBLmdldE1vZHVsZVN0ZG91dCgpKSxjb25zb2xlLmVycm9yKCJzdGRlcnI6IixBLmdldE1vZHVsZVN0ZGVycigpKSx0eXBlb2YgQS5nZXRFeGNlcHRpb25NZXNzYWdlPCJ1Ij9jb25zb2xlLmVycm9yKCJleGNlcHRpb246IixBLmdldEV4Y2VwdGlvbk1lc3NhZ2UoQykpOmNvbnNvbGUuZXJyb3IoIkJ1aWxkIG1vZHVsZSBpbiBEZWJ1ZyBtb2RlIGZvciBleGNlcHRpb24gbWVzc2FnZSBpbmZvcm1hdGlvbi4iKSksQ31maW5hbGx5e0Euc3RhY2tSZXN0b3JlKHIpfWxldCBnPUEuZ2V0TW9kdWxlU3Rkb3V0KCkscz1BLmdldE1vZHVsZVN0ZGVycigpLEU9W107cmV0dXJuIHQhPW51bGwmJnQubGVuZ3RoPjAmJmk9PT0wJiZ0LmZvckVhY2goZnVuY3Rpb24oQyxvKXtsZXQgYT1udWxsO3N3aXRjaChDLnR5cGUpe2Nhc2UgZC5UZXh0U3RyZWFtOntsZXQgQj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxvLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG8sMF0pLGY9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLEIsUSk7YT17ZGF0YTp4dC5kZWNvZGUoZil9O2JyZWFrfWNhc2UgZC5Kc29uQ29tcGF0aWJsZTp7bGV0IEI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxvLDBdKSxmPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixCLFEpO2E9SlNPTi5wYXJzZSh4dC5kZWNvZGUoZikpO2JyZWFrfWNhc2UgZC5CaW5hcnlTdHJlYW06e2xldCBCPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG8sMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbywwXSk7YT17ZGF0YTpXdChBLEIsUSl9O2JyZWFrfWNhc2UgZC5UZXh0RmlsZTp7YT17cGF0aDpDLmRhdGEucGF0aCxkYXRhOkEuZnNfcmVhZEZpbGUoQy5kYXRhLnBhdGgse2VuY29kaW5nOiJ1dGY4In0pfTticmVha31jYXNlIGQuQmluYXJ5RmlsZTp7YT17cGF0aDpDLmRhdGEucGF0aCxkYXRhOk1yKEEsQy5kYXRhLnBhdGgpfTticmVha31jYXNlIGQuSW1hZ2U6e2xldCBCPW1BKEEsbyk7Qi5kYXRhPVMoQSxvLDAsQi5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSksQi5kaXJlY3Rpb249UyhBLG8sMSxYLkZsb2F0NjQpLEIubWV0YWRhdGE9bmV3IE1hcChCLm1ldGFkYXRhKSxhPUI7YnJlYWt9Y2FzZSBkLk1lc2g6e2xldCBCPW1BKEEsbyk7Qi5udW1iZXJPZlBvaW50cz4wP0IucG9pbnRzPVMoQSxvLDAsQi5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUpOkIucG9pbnRzPUgoQi5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxCLm51bWJlck9mQ2VsbHM+MD9CLmNlbGxzPVMoQSxvLDEsQi5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSk6Qi5jZWxscz1IKEIubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxCLm51bWJlck9mUG9pbnRQaXhlbHM+MD9CLnBvaW50RGF0YT1TKEEsbywyLEIubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkIucG9pbnREYXRhPUgoQi5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/Qi5jZWxsRGF0YT1TKEEsbywzLEIubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5jZWxsRGF0YT1IKEIubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGE9QjticmVha31jYXNlIGQuUG9pbnRTZXQ6e2xldCBCPW1BKEEsbyk7Qi5udW1iZXJPZlBvaW50cz4wP0IucG9pbnRzPVMoQSxvLDAsQi5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTpCLnBvaW50cz1IKEIucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZQb2ludFBpeGVscz4wP0IucG9pbnREYXRhPVMoQSxvLDEsQi5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkIucG9pbnREYXRhPUgoQi5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhPUI7YnJlYWt9Y2FzZSBkLlRyYW5zZm9ybUxpc3Q6e2xldCBCPW1BKEEsbyksUT0wO0IuZm9yRWFjaCgoZixsKT0+e2YudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihmLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzPjAmJihCW2xdLmZpeGVkUGFyYW1ldGVycz1TKEEsbyxRLFguRmxvYXQ2NCkpLFErPTEsZi5udW1iZXJPZlBhcmFtZXRlcnM+MCYmKEJbbF0ucGFyYW1ldGVycz1TKEEsbyxRLGYudHJhbnNmb3JtVHlwZS5wYXJhbWV0ZXJzVmFsdWVUeXBlKSksUSs9MSl9KSxhPUI7YnJlYWt9Y2FzZSBkLlBvbHlEYXRhOntsZXQgQj1tQShBLG8pO0IubnVtYmVyT2ZQb2ludHM+MD9CLnBvaW50cz1TKEEsbywwLFguRmxvYXQzMik6Qi5wb2ludHM9bmV3IEZsb2F0MzJBcnJheSxCLnZlcnRpY2VzQnVmZmVyU2l6ZT4wP0IudmVydGljZXM9UyhBLG8sMSxrLlVJbnQzMik6Qi52ZXJ0aWNlcz1uZXcgVWludDMyQXJyYXksQi5saW5lc0J1ZmZlclNpemU+MD9CLmxpbmVzPVMoQSxvLDIsay5VSW50MzIpOkIubGluZXM9bmV3IFVpbnQzMkFycmF5LEIucG9seWdvbnNCdWZmZXJTaXplPjA/Qi5wb2x5Z29ucz1TKEEsbywzLGsuVUludDMyKTpCLnBvbHlnb25zPW5ldyBVaW50MzJBcnJheSxCLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZT4wP0IudHJpYW5nbGVTdHJpcHM9UyhBLG8sNCxrLlVJbnQzMik6Qi50cmlhbmdsZVN0cmlwcz1uZXcgVWludDMyQXJyYXksQi5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qi5wb2ludERhdGE9UyhBLG8sNSxCLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5wb2ludERhdGE9SChCLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/Qi5jZWxsRGF0YT1TKEEsbyw2LEIucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOkIuY2VsbERhdGE9SChCLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYT1CO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIG91dHB1dCBJbnRlcmZhY2VUeXBlIil9bGV0IGM9e3R5cGU6Qy50eXBlLGRhdGE6YX07RS5wdXNoKGMpfSkse3JldHVyblZhbHVlOmksc3Rkb3V0Omcsc3RkZXJyOnMsb3V0cHV0czpFfX12YXIganQ9SHI7dmFyIHFyPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPCJ1IjtmdW5jdGlvbiBLcihBLGUpe2lmKEE9PW51bGwpcmV0dXJuW107bGV0IHQ9W107Zm9yKGxldCBJPTA7STxBLmxlbmd0aDtJKyspe2xldCByPU9yKEFbSV0sZSk7ciE9PW51bGwmJnQucHVzaChyKX1yZXR1cm4gdH1mdW5jdGlvbiBPcihBLGUpe2lmKEE9PW51bGwpcmV0dXJuIG51bGw7bGV0IHQ9bnVsbDtyZXR1cm4gQS5idWZmZXIhPT12b2lkIDA/dD1BLmJ1ZmZlcjpBLmJ5dGVMZW5ndGghPT12b2lkIDAmJih0PUEpLHFyJiZ0IGluc3RhbmNlb2YgU2hhcmVkQXJyYXlCdWZmZXI/bnVsbDplP3Q6dC5zbGljZSgwKX12YXIgdnQ9S3I7ZnVuY3Rpb24gVHIoQSl7cmV0dXJuW0EuZGF0YSxBLmRpcmVjdGlvbl19dmFyIFp0PVRyO2Z1bmN0aW9uIHhyKEEpe3JldHVybltBLnBvaW50cyxBLnBvaW50RGF0YSxBLmNlbGxzLEEuY2VsbERhdGFdfXZhciBWdD14cjtmdW5jdGlvbiBQcihBKXtyZXR1cm5bQS5wb2ludHMsQS52ZXJ0aWNlcyxBLmxpbmVzLEEucG9seWdvbnMsQS50cmlhbmdsZVN0cmlwcyxBLnBvaW50RGF0YSxBLmNlbGxEYXRhXX12YXIgWHQ9UHI7dmFyIFdyO2Z1bmN0aW9uIFhBKCl7cmV0dXJuIFdyfXZhciBqcjtmdW5jdGlvbiB6dCgpe3JldHVybiBqcn12YXIgdnI7ZnVuY3Rpb24gekEoKXtyZXR1cm4gdnJ9dmFyIExlPW5ldyBNYXA7ZnVuY3Rpb24gWnIoKXtsZXQgQT16QSgpO3JldHVybiB0eXBlb2YgQT4idSImJihBPW51bGwpLEF9ZnVuY3Rpb24gX3QoKXtsZXQgQT1YQSgpO3JldHVybiB0eXBlb2YgQT4idSImJihBPW5ldyBVUkwoIi9waXBlbGluZXMiLGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbikuaHJlZiksQX1mdW5jdGlvbiBfQSgpe2xldCBBPXp0KCk7cmV0dXJuIHR5cGVvZiBBPiJ1IiYmKEE9e30pLEF9YXN5bmMgZnVuY3Rpb24gVnIoQSxlLHQpe2xldCBJPUEscj1BO2lmKHR5cGVvZiBBIT0ic3RyaW5nIiYmKEk9bmV3IFVSTChBLmhyZWYpLHI9SS5ocmVmKSxMZS5oYXMocikpcmV0dXJuIExlLmdldChyKTt7bGV0IGk9YXdhaXQgS3QoQSxlPy50b1N0cmluZygpPz9fdCgpLHQ/P19BKCkpO3JldHVybiBMZS5zZXQocixpKSxpfX1hc3luYyBmdW5jdGlvbiBYcihBLGUsdCxJLHIpe2lmKCFhd2FpdCBPdCgpKXtsZXQgbD0iV2ViQXNzZW1ibHkgU0lNRCBzdXBwb3J0IGlzIHJlcXVpcmVkIC0tIHBsZWFzZSB1cGRhdGUgeW91ciBicm93c2VyLiI7dGhyb3cgYWxlcnQobCksbmV3IEVycm9yKGwpfWxldCBpPXI/LndlYldvcmtlcj8/bnVsbDtpZihpPT09ITEpe2xldCBsPWF3YWl0IFZyKEEudG9TdHJpbmcoKSxyPy5waXBlbGluZUJhc2VVcmwscj8ucGlwZWxpbmVRdWVyeVBhcmFtcz8/X0EoKSk7cmV0dXJuIGp0KGwsZSx0LEkpfWxldCBnPWkscz1yPy5waXBlbGluZVdvcmtlclVybD8/WnIoKSxFPXR5cGVvZiBzIT0ic3RyaW5nIiYmdHlwZW9mIHM/LmhyZWY8InUiP3MuaHJlZjpzLHt3b3JrZXJQcm94eTpDLHdvcmtlcjpvfT1hd2FpdCBZdChnLEUscj8ucGlwZWxpbmVRdWVyeVBhcmFtcz8/X0EoKSk7Zz1vO2xldCBhPVtdO0khPW51bGwmJkkubGVuZ3RoPjAmJkkuZm9yRWFjaChmdW5jdGlvbihsKXtpZihsLnR5cGU9PT1kLkJpbmFyeVN0cmVhbSl7bGV0IHA9bC5kYXRhLmRhdGE7YS5wdXNoKHApfWVsc2UgaWYobC50eXBlPT09ZC5CaW5hcnlGaWxlKXtsZXQgcD1sLmRhdGEuZGF0YTthLnB1c2gocCl9ZWxzZSBpZihsLnR5cGU9PT1kLkltYWdlKXtsZXQgcD1sLmRhdGE7cC5kYXRhIT09bnVsbCYmYS5wdXNoKC4uLlp0KHApKX1lbHNlIGlmKGwudHlwZT09PWQuTWVzaCl7bGV0IHA9bC5kYXRhO2EucHVzaCguLi5WdChwKSl9ZWxzZSBpZihsLnR5cGU9PT1kLlBvbHlEYXRhKXtsZXQgcD1sLmRhdGE7YS5wdXNoKC4uLlh0KHApKX19KTtsZXQgYz1yPy5waXBlbGluZUJhc2VVcmw/P190KCksQj10eXBlb2YgYyE9InN0cmluZyImJnR5cGVvZiBjPy5ocmVmPCJ1Ij9jLmhyZWY6YyxRPUkhPW51bGw/aWUoSSx2dChhLHI/Lm5vQ29weSkpOm51bGwsZj1hd2FpdCBDLnJ1blBpcGVsaW5lKEEudG9TdHJpbmcoKSxCLGUsdCxRLHI/LnBpcGVsaW5lUXVlcnlQYXJhbXM/P19BKCkpO3JldHVybntyZXR1cm5WYWx1ZTpmLnJldHVyblZhbHVlLHN0ZG91dDpmLnN0ZG91dCxzdGRlcnI6Zi5zdGRlcnIsb3V0cHV0czpmLm91dHB1dHMsd2ViV29ya2VyOmd9fXZhciBZPVhyO3ZhciB6cj1udWxsO2Z1bmN0aW9uICR0KCl7cmV0dXJuIHpyfXZhciBiZSxfcj1gaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9AaXRrLXdhc20vZG93bnNhbXBsZUAke2VlfS9kaXN0L3BpcGVsaW5lc2A7ZnVuY3Rpb24gR2EoQSl7YmU9QX1mdW5jdGlvbiBPKCl7aWYodHlwZW9mIGJlPCJ1IilyZXR1cm4gYmU7bGV0IEE9WEEoKTtyZXR1cm4gdHlwZW9mIEE8InUiP0E6X3J9dmFyIEplLCRyPW51bGw7ZnVuY3Rpb24gQUkoQSl7SmU9QX1mdW5jdGlvbiBHKCl7aWYodHlwZW9mIEplPCJ1IilyZXR1cm4gSmU7bGV0IEE9ekEoKTtyZXR1cm4gdHlwZW9mIEE8InUiP0E6JHJ9dmFyIGFBPW51bGw7YXN5bmMgZnVuY3Rpb24gZUkoKXtsZXQgQT1HKCksZT10eXBlb2YgQSE9InN0cmluZyImJnR5cGVvZiBBPy5ocmVmPCJ1Ij9BLmhyZWY6QTthQT1hd2FpdCB5QShlKX1mdW5jdGlvbiBxYShBKXthQT1BfWFzeW5jIGZ1bmN0aW9uIFQoKXtpZihhQSE9PW51bGwpcmV0dXJuIGFBLnRlcm1pbmF0ZWQmJmF3YWl0IGVJKCksYUE7bGV0IEE9JHQoKTtyZXR1cm4gQSE9PW51bGw/QTooYXdhaXQgZUkoKSxhQSl9YXN5bmMgZnVuY3Rpb24gQWcoQSxlPXtzaHJpbmtGYWN0b3JzOlsyLDJdfSl7bGV0IHQ9W3t0eXBlOmQuSW1hZ2V9XSxJPVt7dHlwZTpkLkltYWdlLGRhdGE6QX1dLHI9W107aWYoci5wdXNoKCIwIiksci5wdXNoKCIwIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuc2hyaW5rRmFjdG9ycyl7aWYoZS5zaHJpbmtGYWN0b3JzLmxlbmd0aDwyKXRocm93IG5ldyBFcnJvcignInNocmluay1mYWN0b3JzIiBvcHRpb24gbXVzdCBoYXZlIGEgbGVuZ3RoID4gMicpO3IucHVzaCgiLS1zaHJpbmstZmFjdG9ycyIpLGF3YWl0IFByb21pc2UuYWxsKGUuc2hyaW5rRmFjdG9ycy5tYXAoYXN5bmMgUT0+e3IucHVzaChRLnRvU3RyaW5nKCkpfSkpfWUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgcz0iZG93bnNhbXBsZS1iaW4tc2hyaW5rIixFPWU/LndlYldvcmtlcjtFPT09dm9pZCAwJiYoRT1hd2FpdCBUKCkpO2xldHt3ZWJXb3JrZXI6QyxyZXR1cm5WYWx1ZTpvLHN0ZGVycjphLG91dHB1dHM6Y309YXdhaXQgWShzLHIsdCxJLHtwaXBlbGluZUJhc2VVcmw6TygpLHBpcGVsaW5lV29ya2VyVXJsOkcoKSx3ZWJXb3JrZXI6RSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYobyE9PTAmJmEhPT0iIil0aHJvdyBuZXcgRXJyb3IoYSk7cmV0dXJue3dlYldvcmtlcjpDLGRvd25zYW1wbGVkOmNbMF0/LmRhdGF9fXZhciBlZz1BZzthc3luYyBmdW5jdGlvbiB0ZyhBLGU9e3Nocmlua0ZhY3RvcnM6WzIsMl19KXtsZXQgdD1be3R5cGU6ZC5JbWFnZX1dLEk9W3t0eXBlOmQuSW1hZ2UsZGF0YTpBfV0scj1bXTtpZihyLnB1c2goIjAiKSxyLnB1c2goIjAiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5zaHJpbmtGYWN0b3JzKXtpZihlLnNocmlua0ZhY3RvcnMubGVuZ3RoPDIpdGhyb3cgbmV3IEVycm9yKCcic2hyaW5rLWZhY3RvcnMiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAyJyk7ci5wdXNoKCItLXNocmluay1mYWN0b3JzIiksYXdhaXQgUHJvbWlzZS5hbGwoZS5zaHJpbmtGYWN0b3JzLm1hcChhc3luYyBRPT57ci5wdXNoKFEudG9TdHJpbmcoKSl9KSl9aWYoZS5jcm9wUmFkaXVzKXtpZihlLmNyb3BSYWRpdXMubGVuZ3RoPDIpdGhyb3cgbmV3IEVycm9yKCciY3JvcC1yYWRpdXMiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAyJyk7ci5wdXNoKCItLWNyb3AtcmFkaXVzIiksYXdhaXQgUHJvbWlzZS5hbGwoZS5jcm9wUmFkaXVzLm1hcChhc3luYyBRPT57ci5wdXNoKFEudG9TdHJpbmcoKSl9KSl9bGV0IHM9ImRvd25zYW1wbGUtbGFiZWwtaW1hZ2UiLEU9ZT8ud2ViV29ya2VyO0U9PT12b2lkIDAmJihFPWF3YWl0IFQoKSk7bGV0e3dlYldvcmtlcjpDLHJldHVyblZhbHVlOm8sc3RkZXJyOmEsb3V0cHV0czpjfT1hd2FpdCBZKHMscix0LEkse3BpcGVsaW5lQmFzZVVybDpPKCkscGlwZWxpbmVXb3JrZXJVcmw6RygpLHdlYldvcmtlcjpFLG5vQ29weTplPy5ub0NvcHl9KTtpZihvIT09MCYmYSE9PSIiKXRocm93IG5ldyBFcnJvcihhKTtyZXR1cm57d2ViV29ya2VyOkMsZG93bnNhbXBsZWQ6Y1swXT8uZGF0YX19dmFyIElnPXRnO2FzeW5jIGZ1bmN0aW9uIHJnKEE9e3Nocmlua0ZhY3RvcnM6WzIsMl19KXtsZXQgZT1be3R5cGU6ZC5Kc29uQ29tcGF0aWJsZX1dLHQ9W10sST1bXTtpZihJLnB1c2goIjAiKSxJLnB1c2goIi0tbWVtb3J5LWlvIiksdHlwZW9mIEEuc2hyaW5rRmFjdG9yczwidSIpe2lmKEEuc2hyaW5rRmFjdG9ycy5sZW5ndGg8MSl0aHJvdyBuZXcgRXJyb3IoJyJzaHJpbmstZmFjdG9ycyIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtJLnB1c2goIi0tc2hyaW5rLWZhY3RvcnMiKSxhd2FpdCBQcm9taXNlLmFsbChBLnNocmlua0ZhY3RvcnMubWFwKGFzeW5jIGM9PntJLnB1c2goYy50b1N0cmluZygpKX0pKX1sZXQgaT0iZG93bnNhbXBsZS1zaWdtYSIsZz1BPy53ZWJXb3JrZXI7Zz09PXZvaWQgMCYmKGc9YXdhaXQgVCgpKTtsZXR7d2ViV29ya2VyOnMscmV0dXJuVmFsdWU6RSxzdGRlcnI6QyxvdXRwdXRzOm99PWF3YWl0IFkoaSxJLGUsdCx7cGlwZWxpbmVCYXNlVXJsOk8oKSxwaXBlbGluZVdvcmtlclVybDpHKCksd2ViV29ya2VyOmcsbm9Db3B5OkE/Lm5vQ29weX0pO2lmKEUhPT0wJiZDIT09IiIpdGhyb3cgbmV3IEVycm9yKEMpO3JldHVybnt3ZWJXb3JrZXI6cyxzaWdtYTpvWzBdPy5kYXRhfX12YXIgZ2c9cmc7YXN5bmMgZnVuY3Rpb24gaWcoQSxlPXtzaHJpbmtGYWN0b3JzOlsyLDJdfSl7bGV0IHQ9W3t0eXBlOmQuSW1hZ2V9XSxJPVt7dHlwZTpkLkltYWdlLGRhdGE6QX1dLHI9W107aWYoci5wdXNoKCIwIiksci5wdXNoKCIwIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuc2hyaW5rRmFjdG9ycyl7aWYoZS5zaHJpbmtGYWN0b3JzLmxlbmd0aDwyKXRocm93IG5ldyBFcnJvcignInNocmluay1mYWN0b3JzIiBvcHRpb24gbXVzdCBoYXZlIGEgbGVuZ3RoID4gMicpO3IucHVzaCgiLS1zaHJpbmstZmFjdG9ycyIpLGF3YWl0IFByb21pc2UuYWxsKGUuc2hyaW5rRmFjdG9ycy5tYXAoYXN5bmMgUT0+e3IucHVzaChRLnRvU3RyaW5nKCkpfSkpfWlmKGUuY3JvcFJhZGl1cyl7aWYoZS5jcm9wUmFkaXVzLmxlbmd0aDwyKXRocm93IG5ldyBFcnJvcignImNyb3AtcmFkaXVzIiBvcHRpb24gbXVzdCBoYXZlIGEgbGVuZ3RoID4gMicpO3IucHVzaCgiLS1jcm9wLXJhZGl1cyIpLGF3YWl0IFByb21pc2UuYWxsKGUuY3JvcFJhZGl1cy5tYXAoYXN5bmMgUT0+e3IucHVzaChRLnRvU3RyaW5nKCkpfSkpfWxldCBzPSJkb3duc2FtcGxlIixFPWU/LndlYldvcmtlcjtFPT09dm9pZCAwJiYoRT1hd2FpdCBUKCkpO2xldHt3ZWJXb3JrZXI6QyxyZXR1cm5WYWx1ZTpvLHN0ZGVycjphLG91dHB1dHM6Y309YXdhaXQgWShzLHIsdCxJLHtwaXBlbGluZUJhc2VVcmw6TygpLHBpcGVsaW5lV29ya2VyVXJsOkcoKSx3ZWJXb3JrZXI6RSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYobyE9PTAmJmEhPT0iIil0aHJvdyBuZXcgRXJyb3IoYSk7cmV0dXJue3dlYldvcmtlcjpDLGRvd25zYW1wbGVkOmNbMF0/LmRhdGF9fXZhciBvZz1pZzthc3luYyBmdW5jdGlvbiBuZyhBPXtzaXplOlsxLDFdLHNpZ21hOlsxLDFdfSl7bGV0IGU9W3t0eXBlOmQuSnNvbkNvbXBhdGlibGV9XSx0PVtdLEk9W107aWYoSS5wdXNoKCIwIiksSS5wdXNoKCItLW1lbW9yeS1pbyIpLHR5cGVvZiBBLnNpemU8InUiKXtpZihBLnNpemUubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcic2l6ZSIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtJLnB1c2goIi0tc2l6ZSIpLGF3YWl0IFByb21pc2UuYWxsKEEuc2l6ZS5tYXAoYXN5bmMgYz0+e0kucHVzaChjLnRvU3RyaW5nKCkpfSkpfWlmKHR5cGVvZiBBLnNpZ21hPCJ1Iil7aWYoQS5zaWdtYS5sZW5ndGg8MSl0aHJvdyBuZXcgRXJyb3IoJyJzaWdtYSIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtJLnB1c2goIi0tc2lnbWEiKSxhd2FpdCBQcm9taXNlLmFsbChBLnNpZ21hLm1hcChhc3luYyBjPT57SS5wdXNoKGMudG9TdHJpbmcoKSl9KSl9dHlwZW9mIEEubWF4S2VybmVsV2lkdGg8InUiJiZJLnB1c2goIi0tbWF4LWtlcm5lbC13aWR0aCIsQS5tYXhLZXJuZWxXaWR0aC50b1N0cmluZygpKSx0eXBlb2YgQS5tYXhLZXJuZWxFcnJvcjwidSImJkkucHVzaCgiLS1tYXgta2VybmVsLWVycm9yIixBLm1heEtlcm5lbEVycm9yLnRvU3RyaW5nKCkpO2xldCBpPSJnYXVzc2lhbi1rZXJuZWwtcmFkaXVzIixnPUE/LndlYldvcmtlcjtnPT09dm9pZCAwJiYoZz1hd2FpdCBUKCkpO2xldHt3ZWJXb3JrZXI6cyxyZXR1cm5WYWx1ZTpFLHN0ZGVycjpDLG91dHB1dHM6b309YXdhaXQgWShpLEksZSx0LHtwaXBlbGluZUJhc2VVcmw6TygpLHBpcGVsaW5lV29ya2VyVXJsOkcoKSx3ZWJXb3JrZXI6Zyxub0NvcHk6QT8ubm9Db3B5fSk7aWYoRSE9PTAmJkMhPT0iIil0aHJvdyBuZXcgRXJyb3IoQyk7cmV0dXJue3dlYldvcmtlcjpzLHJhZGl1czpvWzBdPy5kYXRhfX12YXIgYWc9bmc7dmFyIHRJPSdkYXRhOnRleHQvamF2YXNjcmlwdDtjaGFyc2V0PXV0Zi04LHZhciBZZT1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIHFlPShBLHQpPT57Zm9yKHZhciBlIGluIHQpWWUoQSxlLHtnZXQ6dFtlXSxlbnVtZXJhYmxlOiEwfSl9O3ZhciBOdD1TeW1ib2woIkNvbWxpbmsucHJveHkiKSxNZT1TeW1ib2woIkNvbWxpbmsuZW5kcG9pbnQiKSxLZT1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksVkE9U3ltYm9sKCJDb21saW5rLmZpbmFsaXplciIpLG1BPVN5bWJvbCgiQ29tbGluay50aHJvd24iKSxVdD1BPT50eXBlb2YgQT09Im9iamVjdCImJkEhPT1udWxsfHx0eXBlb2YgQT09ImZ1bmN0aW9uIixPZT17Y2FuSGFuZGxlOkE9PlV0KEEpJiZBW050XSxzZXJpYWxpemUoQSl7bGV0e3BvcnQxOnQscG9ydDI6ZX09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiBGQShBLHQpLFtlLFtlXV19LGRlc2VyaWFsaXplKEEpe3JldHVybiBBLnN0YXJ0KCksamUoQSl9fSxUZT17Y2FuSGFuZGxlOkE9PlV0KEEpJiZtQSBpbiBBLHNlcmlhbGl6ZSh7dmFsdWU6QX0pe2xldCB0O3JldHVybiBBIGluc3RhbmNlb2YgRXJyb3I/dD17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTpBLm1lc3NhZ2UsbmFtZTpBLm5hbWUsc3RhY2s6QS5zdGFja319OnQ9e2lzRXJyb3I6ITEsdmFsdWU6QX0sW3QsW11dfSxkZXNlcmlhbGl6ZShBKXt0aHJvdyBBLmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoQS52YWx1ZS5tZXNzYWdlKSxBLnZhbHVlKTpBLnZhbHVlfX0sR3Q9bmV3IE1hcChbWyJwcm94eSIsT2VdLFsidGhyb3ciLFRlXV0pO2Z1bmN0aW9uIHhlKEEsdCl7Zm9yKGxldCBlIG9mIEEpaWYodD09PWV8fGU9PT0iKiJ8fGUgaW5zdGFuY2VvZiBSZWdFeHAmJmUudGVzdCh0KSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBGQShBLHQ9Z2xvYmFsVGhpcyxlPVsiKiJdKXt0LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIEkocil7aWYoIXJ8fCFyLmRhdGEpcmV0dXJuO2lmKCF4ZShlLHIub3JpZ2luKSl7Y29uc29sZS53YXJuKGBJbnZhbGlkIG9yaWdpbiBcJyR7ci5vcmlnaW59XCcgZm9yIGNvbWxpbmsgcHJveHlgKTtyZXR1cm59bGV0e2lkOmcsdHlwZTpvLHBhdGg6bn09T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0sci5kYXRhKSxFPShyLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKFcpLEI7dHJ5e2xldCBzPW4uc2xpY2UoMCwtMSkucmVkdWNlKChsLGEpPT5sW2FdLEEpLEM9bi5yZWR1Y2UoKGwsYSk9PmxbYV0sQSk7c3dpdGNoKG8pe2Nhc2UiR0VUIjpCPUM7YnJlYWs7Y2FzZSJTRVQiOnNbbi5zbGljZSgtMSlbMF1dPVcoci5kYXRhLnZhbHVlKSxCPSEwO2JyZWFrO2Nhc2UiQVBQTFkiOkI9Qy5hcHBseShzLEUpO2JyZWFrO2Nhc2UiQ09OU1RSVUNUIjp7bGV0IGw9bmV3IEMoLi4uRSk7Qj1YZShsKX1icmVhaztjYXNlIkVORFBPSU5UIjp7bGV0e3BvcnQxOmwscG9ydDI6YX09bmV3IE1lc3NhZ2VDaGFubmVsO0ZBKEEsYSksQj1fQShsLFtsXSl9YnJlYWs7Y2FzZSJSRUxFQVNFIjpCPXZvaWQgMDticmVhaztkZWZhdWx0OnJldHVybn19Y2F0Y2gocyl7Qj17dmFsdWU6cyxbbUFdOjB9fVByb21pc2UucmVzb2x2ZShCKS5jYXRjaChzPT4oe3ZhbHVlOnMsW21BXTowfSkpLnRoZW4ocz0+e2xldFtDLGxdPVNBKHMpO3QucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEMpLHtpZDpnfSksbCksbz09PSJSRUxFQVNFIiYmKHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsSSksa3QodCksVkEgaW4gQSYmdHlwZW9mIEFbVkFdPT0iZnVuY3Rpb24iJiZBW1ZBXSgpKX0pLmNhdGNoKHM9PntsZXRbQyxsXT1TQSh7dmFsdWU6bmV3IFR5cGVFcnJvcigiVW5zZXJpYWxpemFibGUgcmV0dXJuIHZhbHVlIiksW21BXTowfSk7dC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sQykse2lkOmd9KSxsKX0pfSksdC5zdGFydCYmdC5zdGFydCgpfWZ1bmN0aW9uIFBlKEEpe3JldHVybiBBLmNvbnN0cnVjdG9yLm5hbWU9PT0iTWVzc2FnZVBvcnQifWZ1bmN0aW9uIGt0KEEpe1BlKEEpJiZBLmNsb3NlKCl9ZnVuY3Rpb24gamUoQSx0KXtyZXR1cm4gWEEoQSxbXSx0KX1mdW5jdGlvbiB5QShBKXtpZihBKXRocm93IG5ldyBFcnJvcigiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlIil9ZnVuY3Rpb24gTHQoQSl7cmV0dXJuIF8oQSx7dHlwZToiUkVMRUFTRSJ9KS50aGVuKCgpPT57a3QoQSl9KX12YXIgd0E9bmV3IFdlYWtNYXAscEE9IkZpbmFsaXphdGlvblJlZ2lzdHJ5ImluIGdsb2JhbFRoaXMmJm5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShBPT57bGV0IHQ9KHdBLmdldChBKXx8MCktMTt3QS5zZXQoQSx0KSx0PT09MCYmTHQoQSl9KTtmdW5jdGlvbiBXZShBLHQpe2xldCBlPSh3QS5nZXQodCl8fDApKzE7d0Euc2V0KHQsZSkscEEmJnBBLnJlZ2lzdGVyKEEsdCxBKX1mdW5jdGlvbiBaZShBKXtwQSYmcEEudW5yZWdpc3RlcihBKX1mdW5jdGlvbiBYQShBLHQ9W10sZT1mdW5jdGlvbigpe30pe2xldCBJPSExLHI9bmV3IFByb3h5KGUse2dldChnLG8pe2lmKHlBKEkpLG89PT1LZSlyZXR1cm4oKT0+e1plKHIpLEx0KEEpLEk9ITB9O2lmKG89PT0idGhlbiIpe2lmKHQubGVuZ3RoPT09MClyZXR1cm57dGhlbjooKT0+cn07bGV0IG49XyhBLHt0eXBlOiJHRVQiLHBhdGg6dC5tYXAoRT0+RS50b1N0cmluZygpKX0pLnRoZW4oVyk7cmV0dXJuIG4udGhlbi5iaW5kKG4pfXJldHVybiBYQShBLFsuLi50LG9dKX0sc2V0KGcsbyxuKXt5QShJKTtsZXRbRSxCXT1TQShuKTtyZXR1cm4gXyhBLHt0eXBlOiJTRVQiLHBhdGg6Wy4uLnQsb10ubWFwKHM9PnMudG9TdHJpbmcoKSksdmFsdWU6RX0sQikudGhlbihXKX0sYXBwbHkoZyxvLG4pe3lBKEkpO2xldCBFPXRbdC5sZW5ndGgtMV07aWYoRT09PU1lKXJldHVybiBfKEEse3R5cGU6IkVORFBPSU5UIn0pLnRoZW4oVyk7aWYoRT09PSJiaW5kIilyZXR1cm4gWEEoQSx0LnNsaWNlKDAsLTEpKTtsZXRbQixzXT1SdChuKTtyZXR1cm4gXyhBLHt0eXBlOiJBUFBMWSIscGF0aDp0Lm1hcChDPT5DLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpCfSxzKS50aGVuKFcpfSxjb25zdHJ1Y3QoZyxvKXt5QShJKTtsZXRbbixFXT1SdChvKTtyZXR1cm4gXyhBLHt0eXBlOiJDT05TVFJVQ1QiLHBhdGg6dC5tYXAoQj0+Qi50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6bn0sRSkudGhlbihXKX19KTtyZXR1cm4gV2UocixBKSxyfWZ1bmN0aW9uIFZlKEEpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLEEpfWZ1bmN0aW9uIFJ0KEEpe2xldCB0PUEubWFwKFNBKTtyZXR1cm5bdC5tYXAoZT0+ZVswXSksVmUodC5tYXAoZT0+ZVsxXSkpXX12YXIgYnQ9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gX0EoQSx0KXtyZXR1cm4gYnQuc2V0KEEsdCksQX1mdW5jdGlvbiBYZShBKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihBLHtbTnRdOiEwfSl9ZnVuY3Rpb24gU0EoQSl7Zm9yKGxldFt0LGVdb2YgR3QpaWYoZS5jYW5IYW5kbGUoQSkpe2xldFtJLHJdPWUuc2VyaWFsaXplKEEpO3JldHVyblt7dHlwZToiSEFORExFUiIsbmFtZTp0LHZhbHVlOkl9LHJdfXJldHVyblt7dHlwZToiUkFXIix2YWx1ZTpBfSxidC5nZXQoQSl8fFtdXX1mdW5jdGlvbiBXKEEpe3N3aXRjaChBLnR5cGUpe2Nhc2UiSEFORExFUiI6cmV0dXJuIEd0LmdldChBLm5hbWUpLmRlc2VyaWFsaXplKEEudmFsdWUpO2Nhc2UiUkFXIjpyZXR1cm4gQS52YWx1ZX19ZnVuY3Rpb24gXyhBLHQsZSl7cmV0dXJuIG5ldyBQcm9taXNlKEk9PntsZXQgcj1fZSgpO0EuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gZyhvKXshby5kYXRhfHwhby5kYXRhLmlkfHxvLmRhdGEuaWQhPT1yfHwoQS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixnKSxJKG8uZGF0YSkpfSksQS5zdGFydCYmQS5zdGFydCgpLEEucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7aWQ6cn0sdCksZSl9KX1mdW5jdGlvbiBfZSgpe3JldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikudG9TdHJpbmcoMTYpKS5qb2luKCItIil9ZnVuY3Rpb24gb0EoQSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseSh0LGFyZ3VtZW50cyl9fXZhcnt0b1N0cmluZzp6ZX09T2JqZWN0LnByb3RvdHlwZSx7Z2V0UHJvdG90eXBlT2Y6dkF9PU9iamVjdCx7aXRlcmF0b3I6TkEsdG9TdHJpbmdUYWc6WXR9PVN5bWJvbCxVQT0oQT0+dD0+e2xldCBlPXplLmNhbGwodCk7cmV0dXJuIEFbZV18fChBW2VdPWUuc2xpY2UoOCwtMSkudG9Mb3dlckNhc2UoKSl9KShPYmplY3QuY3JlYXRlKG51bGwpKSxMPUE9PihBPUEudG9Mb3dlckNhc2UoKSx0PT5VQSh0KT09PUEpLEdBPUE9PnQ9PnR5cGVvZiB0PT09QSx7aXNBcnJheTp2fT1BcnJheSx6PUdBKCJ1bmRlZmluZWQiKTtmdW5jdGlvbiBnQShBKXtyZXR1cm4gQSE9PW51bGwmJiF6KEEpJiZBLmNvbnN0cnVjdG9yIT09bnVsbCYmIXooQS5jb25zdHJ1Y3RvcikmJk4oQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikmJkEuY29uc3RydWN0b3IuaXNCdWZmZXIoQSl9dmFyIHF0PUwoIkFycmF5QnVmZmVyIik7ZnVuY3Rpb24gdmUoQSl7bGV0IHQ7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJkFycmF5QnVmZmVyLmlzVmlldz90PUFycmF5QnVmZmVyLmlzVmlldyhBKTp0PUEmJkEuYnVmZmVyJiZxdChBLmJ1ZmZlciksdH12YXIgJGU9R0EoInN0cmluZyIpLE49R0EoImZ1bmN0aW9uIiksTXQ9R0EoIm51bWJlciIpLGlBPUE9PkEhPT1udWxsJiZ0eXBlb2YgQT09Im9iamVjdCIsQUk9QT0+QT09PSEwfHxBPT09ITEsUkE9QT0+e2lmKFVBKEEpIT09Im9iamVjdCIpcmV0dXJuITE7bGV0IHQ9dkEoQSk7cmV0dXJuKHQ9PT1udWxsfHx0PT09T2JqZWN0LnByb3RvdHlwZXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpPT09bnVsbCkmJiEoWXQgaW4gQSkmJiEoTkEgaW4gQSl9LHRJPUE9PntpZighaUEoQSl8fGdBKEEpKXJldHVybiExO3RyeXtyZXR1cm4gT2JqZWN0LmtleXMoQSkubGVuZ3RoPT09MCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKEEpPT09T2JqZWN0LnByb3RvdHlwZX1jYXRjaHtyZXR1cm4hMX19LGVJPUwoIkRhdGUiKSxJST1MKCJGaWxlIiksckk9TCgiQmxvYiIpLG9JPUwoIkZpbGVMaXN0IiksZ0k9QT0+aUEoQSkmJk4oQS5waXBlKSxpST1BPT57bGV0IHQ7cmV0dXJuIEEmJih0eXBlb2YgRm9ybURhdGE9PSJmdW5jdGlvbiImJkEgaW5zdGFuY2VvZiBGb3JtRGF0YXx8TihBLmFwcGVuZCkmJigodD1VQShBKSk9PT0iZm9ybWRhdGEifHx0PT09Im9iamVjdCImJk4oQS50b1N0cmluZykmJkEudG9TdHJpbmcoKT09PSJbb2JqZWN0IEZvcm1EYXRhXSIpKX0sc0k9TCgiVVJMU2VhcmNoUGFyYW1zIiksW25JLENJLEJJLGFJXT1bIlJlYWRhYmxlU3RyZWFtIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiSGVhZGVycyJdLm1hcChMKSxRST1BPT5BLnRyaW0/QS50cmltKCk6QS5yZXBsYWNlKC9eW1xcc1xcdUZFRkZcXHhBMF0rfFtcXHNcXHVGRUZGXFx4QTBdKyQvZywiIik7ZnVuY3Rpb24gc0EoQSx0LHthbGxPd25LZXlzOmU9ITF9PXt9KXtpZihBPT09bnVsbHx8dHlwZW9mIEE+InUiKXJldHVybjtsZXQgSSxyO2lmKHR5cGVvZiBBIT0ib2JqZWN0IiYmKEE9W0FdKSx2KEEpKWZvcihJPTAscj1BLmxlbmd0aDtJPHI7SSsrKXQuY2FsbChudWxsLEFbSV0sSSxBKTtlbHNle2lmKGdBKEEpKXJldHVybjtsZXQgZz1lP09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpOk9iamVjdC5rZXlzKEEpLG89Zy5sZW5ndGgsbjtmb3IoST0wO0k8bztJKyspbj1nW0ldLHQuY2FsbChudWxsLEFbbl0sbixBKX19ZnVuY3Rpb24gS3QoQSx0KXtpZihnQShBKSlyZXR1cm4gbnVsbDt0PXQudG9Mb3dlckNhc2UoKTtsZXQgZT1PYmplY3Qua2V5cyhBKSxJPWUubGVuZ3RoLHI7Zm9yKDtJLS0gPjA7KWlmKHI9ZVtJXSx0PT09ci50b0xvd2VyQ2FzZSgpKXJldHVybiByO3JldHVybiBudWxsfXZhciBaPXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzpnbG9iYWwsT3Q9QT0+IXooQSkmJkEhPT1aO2Z1bmN0aW9uIHpBKCl7bGV0e2Nhc2VsZXNzOkEsc2tpcFVuZGVmaW5lZDp0fT1PdCh0aGlzKSYmdGhpc3x8e30sZT17fSxJPShyLGcpPT57bGV0IG89QSYmS3QoZSxnKXx8ZztSQShlW29dKSYmUkEocik/ZVtvXT16QShlW29dLHIpOlJBKHIpP2Vbb109ekEoe30scik6dihyKT9lW29dPXIuc2xpY2UoKTooIXR8fCF6KHIpKSYmKGVbb109cil9O2ZvcihsZXQgcj0wLGc9YXJndW1lbnRzLmxlbmd0aDtyPGc7cisrKWFyZ3VtZW50c1tyXSYmc0EoYXJndW1lbnRzW3JdLEkpO3JldHVybiBlfXZhciBFST0oQSx0LGUse2FsbE93bktleXM6SX09e30pPT4oc0EodCwocixnKT0+e2UmJk4ocik/QVtnXT1vQShyLGUpOkFbZ109cn0se2FsbE93bktleXM6SX0pLEEpLGNJPUE9PihBLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKEE9QS5zbGljZSgxKSksQSksZkk9KEEsdCxlLEkpPT57QS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSxJKSxBLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1BLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJzdXBlciIse3ZhbHVlOnQucHJvdG90eXBlfSksZSYmT2JqZWN0LmFzc2lnbihBLnByb3RvdHlwZSxlKX0sbEk9KEEsdCxlLEkpPT57bGV0IHIsZyxvLG49e307aWYodD10fHx7fSxBPT1udWxsKXJldHVybiB0O2Rve2ZvcihyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpLGc9ci5sZW5ndGg7Zy0tID4wOylvPXJbZ10sKCFJfHxJKG8sQSx0KSkmJiFuW29dJiYodFtvXT1BW29dLG5bb109ITApO0E9ZSE9PSExJiZ2QShBKX13aGlsZShBJiYoIWV8fGUoQSx0KSkmJkEhPT1PYmplY3QucHJvdG90eXBlKTtyZXR1cm4gdH0sdUk9KEEsdCxlKT0+e0E9U3RyaW5nKEEpLChlPT09dm9pZCAwfHxlPkEubGVuZ3RoKSYmKGU9QS5sZW5ndGgpLGUtPXQubGVuZ3RoO2xldCBJPUEuaW5kZXhPZih0LGUpO3JldHVybiBJIT09LTEmJkk9PT1lfSxkST1BPT57aWYoIUEpcmV0dXJuIG51bGw7aWYodihBKSlyZXR1cm4gQTtsZXQgdD1BLmxlbmd0aDtpZighTXQodCkpcmV0dXJuIG51bGw7bGV0IGU9bmV3IEFycmF5KHQpO2Zvcig7dC0tID4wOyllW3RdPUFbdF07cmV0dXJuIGV9LERJPShBPT50PT5BJiZ0IGluc3RhbmNlb2YgQSkodHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZ2QShVaW50OEFycmF5KSksaEk9KEEsdCk9PntsZXQgST0oQSYmQVtOQV0pLmNhbGwoQSkscjtmb3IoOyhyPUkubmV4dCgpKSYmIXIuZG9uZTspe2xldCBnPXIudmFsdWU7dC5jYWxsKEEsZ1swXSxnWzFdKX19LHlJPShBLHQpPT57bGV0IGUsST1bXTtmb3IoOyhlPUEuZXhlYyh0KSkhPT1udWxsOylJLnB1c2goZSk7cmV0dXJuIEl9LG1JPUwoIkhUTUxGb3JtRWxlbWVudCIpLHdJPUE9PkEudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bLV9cXHNdKFthLXpcXGRdKShcXHcqKS9nLGZ1bmN0aW9uKGUsSSxyKXtyZXR1cm4gSS50b1VwcGVyQ2FzZSgpK3J9KSxIdD0oKHtoYXNPd25Qcm9wZXJ0eTpBfSk9Pih0LGUpPT5BLmNhbGwodCxlKSkoT2JqZWN0LnByb3RvdHlwZSkscEk9TCgiUmVnRXhwIiksVHQ9KEEsdCk9PntsZXQgZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhBKSxJPXt9O3NBKGUsKHIsZyk9PntsZXQgbzsobz10KHIsZyxBKSkhPT0hMSYmKElbZ109b3x8cil9KSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhBLEkpfSxTST1BPT57VHQoQSwodCxlKT0+e2lmKE4oQSkmJlsiYXJndW1lbnRzIiwiY2FsbGVyIiwiY2FsbGVlIl0uaW5kZXhPZihlKSE9PS0xKXJldHVybiExO2xldCBJPUFbZV07aWYoTihJKSl7aWYodC5lbnVtZXJhYmxlPSExLCJ3cml0YWJsZSJpbiB0KXt0LndyaXRhYmxlPSExO3JldHVybn10LnNldHx8KHQuc2V0PSgpPT57dGhyb3cgRXJyb3IoIkNhbiBub3QgcmV3cml0ZSByZWFkLW9ubHkgbWV0aG9kIFwnIitlKyJcJyIpfSl9fSl9LEZJPShBLHQpPT57bGV0IGU9e30sST1yPT57ci5mb3JFYWNoKGc9PntlW2ddPSEwfSl9O3JldHVybiB2KEEpP0koQSk6SShTdHJpbmcoQSkuc3BsaXQodCkpLGV9LFJJPSgpPT57fSxOST0oQSx0KT0+QSE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKEE9K0EpP0E6dDtmdW5jdGlvbiBVSShBKXtyZXR1cm4hIShBJiZOKEEuYXBwZW5kKSYmQVtZdF09PT0iRm9ybURhdGEiJiZBW05BXSl9dmFyIEdJPUE9PntsZXQgdD1uZXcgQXJyYXkoMTApLGU9KEkscik9PntpZihpQShJKSl7aWYodC5pbmRleE9mKEkpPj0wKXJldHVybjtpZihnQShJKSlyZXR1cm4gSTtpZighKCJ0b0pTT04iaW4gSSkpe3Rbcl09STtsZXQgZz12KEkpP1tdOnt9O3JldHVybiBzQShJLChvLG4pPT57bGV0IEU9ZShvLHIrMSk7IXooRSkmJihnW25dPUUpfSksdFtyXT12b2lkIDAsZ319cmV0dXJuIEl9O3JldHVybiBlKEEsMCl9LGtJPUwoIkFzeW5jRnVuY3Rpb24iKSxMST1BPT5BJiYoaUEoQSl8fE4oQSkpJiZOKEEudGhlbikmJk4oQS5jYXRjaCkseHQ9KChBLHQpPT5BP3NldEltbWVkaWF0ZTp0PygoZSxJKT0+KFouYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKHtzb3VyY2U6cixkYXRhOmd9KT0+e3I9PT1aJiZnPT09ZSYmSS5sZW5ndGgmJkkuc2hpZnQoKSgpfSwhMSkscj0+e0kucHVzaChyKSxaLnBvc3RNZXNzYWdlKGUsIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOmU9PnNldFRpbWVvdXQoZSkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsTihaLnBvc3RNZXNzYWdlKSksYkk9dHlwZW9mIHF1ZXVlTWljcm90YXNrPCJ1Ij9xdWV1ZU1pY3JvdGFzay5iaW5kKFopOnR5cGVvZiBwcm9jZXNzPCJ1IiYmcHJvY2Vzcy5uZXh0VGlja3x8eHQsSkk9QT0+QSE9bnVsbCYmTihBW05BXSksaT17aXNBcnJheTp2LGlzQXJyYXlCdWZmZXI6cXQsaXNCdWZmZXI6Z0EsaXNGb3JtRGF0YTppSSxpc0FycmF5QnVmZmVyVmlldzp2ZSxpc1N0cmluZzokZSxpc051bWJlcjpNdCxpc0Jvb2xlYW46QUksaXNPYmplY3Q6aUEsaXNQbGFpbk9iamVjdDpSQSxpc0VtcHR5T2JqZWN0OnRJLGlzUmVhZGFibGVTdHJlYW06bkksaXNSZXF1ZXN0OkNJLGlzUmVzcG9uc2U6QkksaXNIZWFkZXJzOmFJLGlzVW5kZWZpbmVkOnosaXNEYXRlOmVJLGlzRmlsZTpJSSxpc0Jsb2I6ckksaXNSZWdFeHA6cEksaXNGdW5jdGlvbjpOLGlzU3RyZWFtOmdJLGlzVVJMU2VhcmNoUGFyYW1zOnNJLGlzVHlwZWRBcnJheTpESSxpc0ZpbGVMaXN0Om9JLGZvckVhY2g6c0EsbWVyZ2U6ekEsZXh0ZW5kOkVJLHRyaW06UUksc3RyaXBCT006Y0ksaW5oZXJpdHM6ZkksdG9GbGF0T2JqZWN0OmxJLGtpbmRPZjpVQSxraW5kT2ZUZXN0OkwsZW5kc1dpdGg6dUksdG9BcnJheTpkSSxmb3JFYWNoRW50cnk6aEksbWF0Y2hBbGw6eUksaXNIVE1MRm9ybTptSSxoYXNPd25Qcm9wZXJ0eTpIdCxoYXNPd25Qcm9wOkh0LHJlZHVjZURlc2NyaXB0b3JzOlR0LGZyZWV6ZU1ldGhvZHM6U0ksdG9PYmplY3RTZXQ6RkksdG9DYW1lbENhc2U6d0ksbm9vcDpSSSx0b0Zpbml0ZU51bWJlcjpOSSxmaW5kS2V5Okt0LGdsb2JhbDpaLGlzQ29udGV4dERlZmluZWQ6T3QsaXNTcGVjQ29tcGxpYW50Rm9ybTpVSSx0b0pTT05PYmplY3Q6R0ksaXNBc3luY0ZuOmtJLGlzVGhlbmFibGU6TEksc2V0SW1tZWRpYXRlOnh0LGFzYXA6YkksaXNJdGVyYWJsZTpKSX07ZnVuY3Rpb24gJChBLHQsZSxJLHIpe0Vycm9yLmNhbGwodGhpcyksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrLHRoaXMubWVzc2FnZT1BLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsdCYmKHRoaXMuY29kZT10KSxlJiYodGhpcy5jb25maWc9ZSksSSYmKHRoaXMucmVxdWVzdD1JKSxyJiYodGhpcy5yZXNwb25zZT1yLHRoaXMuc3RhdHVzPXIuc3RhdHVzP3Iuc3RhdHVzOm51bGwpfWkuaW5oZXJpdHMoJCxFcnJvcix7dG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJue21lc3NhZ2U6dGhpcy5tZXNzYWdlLG5hbWU6dGhpcy5uYW1lLGRlc2NyaXB0aW9uOnRoaXMuZGVzY3JpcHRpb24sbnVtYmVyOnRoaXMubnVtYmVyLGZpbGVOYW1lOnRoaXMuZmlsZU5hbWUsbGluZU51bWJlcjp0aGlzLmxpbmVOdW1iZXIsY29sdW1uTnVtYmVyOnRoaXMuY29sdW1uTnVtYmVyLHN0YWNrOnRoaXMuc3RhY2ssY29uZmlnOmkudG9KU09OT2JqZWN0KHRoaXMuY29uZmlnKSxjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5zdGF0dXN9fX0pO3ZhciBQdD0kLnByb3RvdHlwZSxqdD17fTtbIkVSUl9CQURfT1BUSU9OX1ZBTFVFIiwiRVJSX0JBRF9PUFRJT04iLCJFQ09OTkFCT1JURUQiLCJFVElNRURPVVQiLCJFUlJfTkVUV09SSyIsIkVSUl9GUl9UT09fTUFOWV9SRURJUkVDVFMiLCJFUlJfREVQUkVDQVRFRCIsIkVSUl9CQURfUkVTUE9OU0UiLCJFUlJfQkFEX1JFUVVFU1QiLCJFUlJfQ0FOQ0VMRUQiLCJFUlJfTk9UX1NVUFBPUlQiLCJFUlJfSU5WQUxJRF9VUkwiXS5mb3JFYWNoKEE9PntqdFtBXT17dmFsdWU6QX19KTtPYmplY3QuZGVmaW5lUHJvcGVydGllcygkLGp0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUHQsImlzQXhpb3NFcnJvciIse3ZhbHVlOiEwfSk7JC5mcm9tPShBLHQsZSxJLHIsZyk9PntsZXQgbz1PYmplY3QuY3JlYXRlKFB0KTtpLnRvRmxhdE9iamVjdChBLG8sZnVuY3Rpb24ocyl7cmV0dXJuIHMhPT1FcnJvci5wcm90b3R5cGV9LEI9PkIhPT0iaXNBeGlvc0Vycm9yIik7bGV0IG49QSYmQS5tZXNzYWdlP0EubWVzc2FnZToiRXJyb3IiLEU9dD09bnVsbCYmQT9BLmNvZGU6dDtyZXR1cm4gJC5jYWxsKG8sbixFLGUsSSxyKSxBJiZvLmNhdXNlPT1udWxsJiZPYmplY3QuZGVmaW5lUHJvcGVydHkobywiY2F1c2UiLHt2YWx1ZTpBLGNvbmZpZ3VyYWJsZTohMH0pLG8ubmFtZT1BJiZBLm5hbWV8fCJFcnJvciIsZyYmT2JqZWN0LmFzc2lnbihvLGcpLG99O3ZhciB1PSQ7dmFyIGtBPW51bGw7ZnVuY3Rpb24gJEEoQSl7cmV0dXJuIGkuaXNQbGFpbk9iamVjdChBKXx8aS5pc0FycmF5KEEpfWZ1bmN0aW9uIFp0KEEpe3JldHVybiBpLmVuZHNXaXRoKEEsIltdIik/QS5zbGljZSgwLC0yKTpBfWZ1bmN0aW9uIFd0KEEsdCxlKXtyZXR1cm4gQT9BLmNvbmNhdCh0KS5tYXAoZnVuY3Rpb24ocixnKXtyZXR1cm4gcj1adChyKSwhZSYmZz8iWyIrcisiXSI6cn0pLmpvaW4oZT8iLiI6IiIpOnR9ZnVuY3Rpb24gSEkoQSl7cmV0dXJuIGkuaXNBcnJheShBKSYmIUEuc29tZSgkQSl9dmFyIFlJPWkudG9GbGF0T2JqZWN0KGkse30sbnVsbCxmdW5jdGlvbih0KXtyZXR1cm4vXmlzW0EtWl0vLnRlc3QodCl9KTtmdW5jdGlvbiBxSShBLHQsZSl7aWYoIWkuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7dD10fHxuZXcoa0F8fEZvcm1EYXRhKSxlPWkudG9GbGF0T2JqZWN0KGUse21ldGFUb2tlbnM6ITAsZG90czohMSxpbmRleGVzOiExfSwhMSxmdW5jdGlvbihmLGMpe3JldHVybiFpLmlzVW5kZWZpbmVkKGNbZl0pfSk7bGV0IEk9ZS5tZXRhVG9rZW5zLHI9ZS52aXNpdG9yfHxzLGc9ZS5kb3RzLG89ZS5pbmRleGVzLEU9KGUuQmxvYnx8dHlwZW9mIEJsb2I8InUiJiZCbG9iKSYmaS5pc1NwZWNDb21wbGlhbnRGb3JtKHQpO2lmKCFpLmlzRnVuY3Rpb24ocikpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBCKFEpe2lmKFE9PT1udWxsKXJldHVybiIiO2lmKGkuaXNEYXRlKFEpKXJldHVybiBRLnRvSVNPU3RyaW5nKCk7aWYoaS5pc0Jvb2xlYW4oUSkpcmV0dXJuIFEudG9TdHJpbmcoKTtpZighRSYmaS5pc0Jsb2IoUSkpdGhyb3cgbmV3IHUoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7cmV0dXJuIGkuaXNBcnJheUJ1ZmZlcihRKXx8aS5pc1R5cGVkQXJyYXkoUSk/RSYmdHlwZW9mIEJsb2I9PSJmdW5jdGlvbiI/bmV3IEJsb2IoW1FdKTpCdWZmZXIuZnJvbShRKTpRfWZ1bmN0aW9uIHMoUSxmLGMpe2xldCBEPVE7aWYoUSYmIWMmJnR5cGVvZiBRPT0ib2JqZWN0Iil7aWYoaS5lbmRzV2l0aChmLCJ7fSIpKWY9ST9mOmYuc2xpY2UoMCwtMiksUT1KU09OLnN0cmluZ2lmeShRKTtlbHNlIGlmKGkuaXNBcnJheShRKSYmSEkoUSl8fChpLmlzRmlsZUxpc3QoUSl8fGkuZW5kc1dpdGgoZiwiW10iKSkmJihEPWkudG9BcnJheShRKSkpcmV0dXJuIGY9WnQoZiksRC5mb3JFYWNoKGZ1bmN0aW9uKHksUil7IShpLmlzVW5kZWZpbmVkKHkpfHx5PT09bnVsbCkmJnQuYXBwZW5kKG89PT0hMD9XdChbZl0sUixnKTpvPT09bnVsbD9mOmYrIltdIixCKHkpKX0pLCExfXJldHVybiAkQShRKT8hMDoodC5hcHBlbmQoV3QoYyxmLGcpLEIoUSkpLCExKX1sZXQgQz1bXSxsPU9iamVjdC5hc3NpZ24oWUkse2RlZmF1bHRWaXNpdG9yOnMsY29udmVydFZhbHVlOkIsaXNWaXNpdGFibGU6JEF9KTtmdW5jdGlvbiBhKFEsZil7aWYoIWkuaXNVbmRlZmluZWQoUSkpe2lmKEMuaW5kZXhPZihRKSE9PS0xKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitmLmpvaW4oIi4iKSk7Qy5wdXNoKFEpLGkuZm9yRWFjaChRLGZ1bmN0aW9uKEQsRil7KCEoaS5pc1VuZGVmaW5lZChEKXx8RD09PW51bGwpJiZyLmNhbGwodCxELGkuaXNTdHJpbmcoRik/Ri50cmltKCk6RixmLGwpKT09PSEwJiZhKEQsZj9mLmNvbmNhdChGKTpbRl0pfSksQy5wb3AoKX19aWYoIWkuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZGF0YSBtdXN0IGJlIGFuIG9iamVjdCIpO3JldHVybiBhKEEpLHR9dmFyIFQ9cUk7ZnVuY3Rpb24gVnQoQSl7bGV0IHQ9eyIhIjoiJTI1MjEiLCJcJyI6IiUyNTI3IiwiKCI6IiUyNTI4IiwiKSI6IiUyNTI5IiwifiI6IiUyNTdFIiwiJTI1MjAiOiIrIiwiJTI1MDAiOiJcXDAifTtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEEpLnJlcGxhY2UoL1shXCcoKX5dfCUyNTIwfCUyNTAwL2csZnVuY3Rpb24oSSl7cmV0dXJuIHRbSV19KX1mdW5jdGlvbiBYdChBLHQpe3RoaXMuX3BhaXJzPVtdLEEmJlQoQSx0aGlzLHQpfXZhciBfdD1YdC5wcm90b3R5cGU7X3QuYXBwZW5kPWZ1bmN0aW9uKHQsZSl7dGhpcy5fcGFpcnMucHVzaChbdCxlXSl9O190LnRvU3RyaW5nPWZ1bmN0aW9uKHQpe2xldCBlPXQ/ZnVuY3Rpb24oSSl7cmV0dXJuIHQuY2FsbCh0aGlzLEksVnQpfTpWdDtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKHIpe3JldHVybiBlKHJbMF0pKyI9IitlKHJbMV0pfSwiIikuam9pbigiJiIpfTt2YXIgTEE9WHQ7ZnVuY3Rpb24gTUkoQSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lMjUzQS9naSwiOiIpLnJlcGxhY2UoLyUyNTI0L2csIiQiKS5yZXBsYWNlKC8lMjUyQy9naSwiLCIpLnJlcGxhY2UoLyUyNTIwL2csIisiKX1mdW5jdGlvbiBuQShBLHQsZSl7aWYoIXQpcmV0dXJuIEE7bGV0IEk9ZSYmZS5lbmNvZGV8fE1JO2kuaXNGdW5jdGlvbihlKSYmKGU9e3NlcmlhbGl6ZTplfSk7bGV0IHI9ZSYmZS5zZXJpYWxpemUsZztpZihyP2c9cih0LGUpOmc9aS5pc1VSTFNlYXJjaFBhcmFtcyh0KT90LnRvU3RyaW5nKCk6bmV3IExBKHQsZSkudG9TdHJpbmcoSSksZyl7bGV0IG89QS5pbmRleE9mKCIlMjMiKTtvIT09LTEmJihBPUEuc2xpY2UoMCxvKSksQSs9KEEuaW5kZXhPZigiPyIpPT09LTE/Ij8iOiImIikrZ31yZXR1cm4gQX12YXIgQXQ9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmhhbmRsZXJzPVtdfXVzZSh0LGUsSSl7cmV0dXJuIHRoaXMuaGFuZGxlcnMucHVzaCh7ZnVsZmlsbGVkOnQscmVqZWN0ZWQ6ZSxzeW5jaHJvbm91czpJP0kuc3luY2hyb25vdXM6ITEscnVuV2hlbjpJP0kucnVuV2hlbjpudWxsfSksdGhpcy5oYW5kbGVycy5sZW5ndGgtMX1lamVjdCh0KXt0aGlzLmhhbmRsZXJzW3RdJiYodGhpcy5oYW5kbGVyc1t0XT1udWxsKX1jbGVhcigpe3RoaXMuaGFuZGxlcnMmJih0aGlzLmhhbmRsZXJzPVtdKX1mb3JFYWNoKHQpe2kuZm9yRWFjaCh0aGlzLmhhbmRsZXJzLGZ1bmN0aW9uKEkpe0khPT1udWxsJiZ0KEkpfSl9fSx0dD1BdDt2YXIgYkE9e3NpbGVudEpTT05QYXJzaW5nOiEwLGZvcmNlZEpTT05QYXJzaW5nOiEwLGNsYXJpZnlUaW1lb3V0RXJyb3I6ITF9O3ZhciB6dD10eXBlb2YgVVJMU2VhcmNoUGFyYW1zPCJ1Ij9VUkxTZWFyY2hQYXJhbXM6TEE7dmFyIHZ0PXR5cGVvZiBGb3JtRGF0YTwidSI/Rm9ybURhdGE6bnVsbDt2YXIgJHQ9dHlwZW9mIEJsb2I8InUiP0Jsb2I6bnVsbDt2YXIgQWU9e2lzQnJvd3NlcjohMCxjbGFzc2VzOntVUkxTZWFyY2hQYXJhbXM6enQsRm9ybURhdGE6dnQsQmxvYjokdH0scHJvdG9jb2xzOlsiaHR0cCIsImh0dHBzIiwiZmlsZSIsImJsb2IiLCJ1cmwiLCJkYXRhIl19O3ZhciBydD17fTtxZShydCx7aGFzQnJvd3NlckVudjooKT0+SXQsaGFzU3RhbmRhcmRCcm93c2VyRW52OigpPT5LSSxoYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnY6KCk9Pk9JLG5hdmlnYXRvcjooKT0+ZXQsb3JpZ2luOigpPT5USX0pO3ZhciBJdD10eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9mIGRvY3VtZW50PCJ1IixldD10eXBlb2YgbmF2aWdhdG9yPT0ib2JqZWN0IiYmbmF2aWdhdG9yfHx2b2lkIDAsS0k9SXQmJighZXR8fFsiUmVhY3ROYXRpdmUiLCJOYXRpdmVTY3JpcHQiLCJOUyJdLmluZGV4T2YoZXQucHJvZHVjdCk8MCksT0k9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlPCJ1IiYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZ0eXBlb2Ygc2VsZi5pbXBvcnRTY3JpcHRzPT0iZnVuY3Rpb24iLFRJPUl0JiZ3aW5kb3cubG9jYXRpb24uaHJlZnx8Imh0dHA6Ly9sb2NhbGhvc3QiO3ZhciBoPXsuLi5ydCwuLi5BZX07ZnVuY3Rpb24gb3QoQSx0KXtyZXR1cm4gVChBLG5ldyBoLmNsYXNzZXMuVVJMU2VhcmNoUGFyYW1zLHt2aXNpdG9yOmZ1bmN0aW9uKGUsSSxyLGcpe3JldHVybiBoLmlzTm9kZSYmaS5pc0J1ZmZlcihlKT8odGhpcy5hcHBlbmQoSSxlLnRvU3RyaW5nKCJiYXNlNjQiKSksITEpOmcuZGVmYXVsdFZpc2l0b3IuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwuLi50fSl9ZnVuY3Rpb24geEkoQSl7cmV0dXJuIGkubWF0Y2hBbGwoL1xcdyt8XFxbKFxcdyopXS9nLEEpLm1hcCh0PT50WzBdPT09IltdIj8iIjp0WzFdfHx0WzBdKX1mdW5jdGlvbiBQSShBKXtsZXQgdD17fSxlPU9iamVjdC5rZXlzKEEpLEkscj1lLmxlbmd0aCxnO2ZvcihJPTA7STxyO0krKylnPWVbSV0sdFtnXT1BW2ddO3JldHVybiB0fWZ1bmN0aW9uIGpJKEEpe2Z1bmN0aW9uIHQoZSxJLHIsZyl7bGV0IG89ZVtnKytdO2lmKG89PT0iX19wcm90b19fIilyZXR1cm4hMDtsZXQgbj1OdW1iZXIuaXNGaW5pdGUoK28pLEU9Zz49ZS5sZW5ndGg7cmV0dXJuIG89IW8mJmkuaXNBcnJheShyKT9yLmxlbmd0aDpvLEU/KGkuaGFzT3duUHJvcChyLG8pP3Jbb109W3Jbb10sSV06cltvXT1JLCFuKTooKCFyW29dfHwhaS5pc09iamVjdChyW29dKSkmJihyW29dPVtdKSx0KGUsSSxyW29dLGcpJiZpLmlzQXJyYXkocltvXSkmJihyW29dPVBJKHJbb10pKSwhbil9aWYoaS5pc0Zvcm1EYXRhKEEpJiZpLmlzRnVuY3Rpb24oQS5lbnRyaWVzKSl7bGV0IGU9e307cmV0dXJuIGkuZm9yRWFjaEVudHJ5KEEsKEkscik9Pnt0KHhJKEkpLHIsZSwwKX0pLGV9cmV0dXJuIG51bGx9dmFyIEpBPWpJO2Z1bmN0aW9uIFdJKEEsdCxlKXtpZihpLmlzU3RyaW5nKEEpKXRyeXtyZXR1cm4odHx8SlNPTi5wYXJzZSkoQSksaS50cmltKEEpfWNhdGNoKEkpe2lmKEkubmFtZSE9PSJTeW50YXhFcnJvciIpdGhyb3cgSX1yZXR1cm4oZXx8SlNPTi5zdHJpbmdpZnkpKEEpfXZhciBndD17dHJhbnNpdGlvbmFsOmJBLGFkYXB0ZXI6WyJ4aHIiLCJodHRwIiwiZmV0Y2giXSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbih0LGUpe2xldCBJPWUuZ2V0Q29udGVudFR5cGUoKXx8IiIscj1JLmluZGV4T2YoImFwcGxpY2F0aW9uL2pzb24iKT4tMSxnPWkuaXNPYmplY3QodCk7aWYoZyYmaS5pc0hUTUxGb3JtKHQpJiYodD1uZXcgRm9ybURhdGEodCkpLGkuaXNGb3JtRGF0YSh0KSlyZXR1cm4gcj9KU09OLnN0cmluZ2lmeShKQSh0KSk6dDtpZihpLmlzQXJyYXlCdWZmZXIodCl8fGkuaXNCdWZmZXIodCl8fGkuaXNTdHJlYW0odCl8fGkuaXNGaWxlKHQpfHxpLmlzQmxvYih0KXx8aS5pc1JlYWRhYmxlU3RyZWFtKHQpKXJldHVybiB0O2lmKGkuaXNBcnJheUJ1ZmZlclZpZXcodCkpcmV0dXJuIHQuYnVmZmVyO2lmKGkuaXNVUkxTZWFyY2hQYXJhbXModCkpcmV0dXJuIGUuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04IiwhMSksdC50b1N0cmluZygpO2xldCBuO2lmKGcpe2lmKEkuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik+LTEpcmV0dXJuIG90KHQsdGhpcy5mb3JtU2VyaWFsaXplcikudG9TdHJpbmcoKTtpZigobj1pLmlzRmlsZUxpc3QodCkpfHxJLmluZGV4T2YoIm11bHRpcGFydC9mb3JtLWRhdGEiKT4tMSl7bGV0IEU9dGhpcy5lbnYmJnRoaXMuZW52LkZvcm1EYXRhO3JldHVybiBUKG4/eyJmaWxlc1tdIjp0fTp0LEUmJm5ldyBFLHRoaXMuZm9ybVNlcmlhbGl6ZXIpfX1yZXR1cm4gZ3x8cj8oZS5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24vanNvbiIsITEpLFdJKHQpKTp0fV0sdHJhbnNmb3JtUmVzcG9uc2U6W2Z1bmN0aW9uKHQpe2xldCBlPXRoaXMudHJhbnNpdGlvbmFsfHxndC50cmFuc2l0aW9uYWwsST1lJiZlLmZvcmNlZEpTT05QYXJzaW5nLHI9dGhpcy5yZXNwb25zZVR5cGU9PT0ianNvbiI7aWYoaS5pc1Jlc3BvbnNlKHQpfHxpLmlzUmVhZGFibGVTdHJlYW0odCkpcmV0dXJuIHQ7aWYodCYmaS5pc1N0cmluZyh0KSYmKEkmJiF0aGlzLnJlc3BvbnNlVHlwZXx8cikpe2xldCBvPSEoZSYmZS5zaWxlbnRKU09OUGFyc2luZykmJnI7dHJ5e3JldHVybiBKU09OLnBhcnNlKHQsdGhpcy5wYXJzZVJldml2ZXIpfWNhdGNoKG4pe2lmKG8pdGhyb3cgbi5uYW1lPT09IlN5bnRheEVycm9yIj91LmZyb20obix1LkVSUl9CQURfUkVTUE9OU0UsdGhpcyxudWxsLHRoaXMucmVzcG9uc2UpOm59fXJldHVybiB0fV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsZW52OntGb3JtRGF0YTpoLmNsYXNzZXMuRm9ybURhdGEsQmxvYjpoLmNsYXNzZXMuQmxvYn0sdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTIwMCYmdDwzMDB9LGhlYWRlcnM6e2NvbW1vbjp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoiLCJDb250ZW50LVR5cGUiOnZvaWQgMH19fTtpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIl0sQT0+e2d0LmhlYWRlcnNbQV09e319KTt2YXIgQUE9Z3Q7dmFyIFpJPWkudG9PYmplY3RTZXQoWyJhZ2UiLCJhdXRob3JpemF0aW9uIiwiY29udGVudC1sZW5ndGgiLCJjb250ZW50LXR5cGUiLCJldGFnIiwiZXhwaXJlcyIsImZyb20iLCJob3N0IiwiaWYtbW9kaWZpZWQtc2luY2UiLCJpZi11bm1vZGlmaWVkLXNpbmNlIiwibGFzdC1tb2RpZmllZCIsImxvY2F0aW9uIiwibWF4LWZvcndhcmRzIiwicHJveHktYXV0aG9yaXphdGlvbiIsInJlZmVyZXIiLCJyZXRyeS1hZnRlciIsInVzZXItYWdlbnQiXSksdGU9QT0+e2xldCB0PXt9LGUsSSxyO3JldHVybiBBJiZBLnNwbGl0KGAlMEFgKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3I9by5pbmRleE9mKCI6IiksZT1vLnN1YnN0cmluZygwLHIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLEk9by5zdWJzdHJpbmcocisxKS50cmltKCksISghZXx8dFtlXSYmWklbZV0pJiYoZT09PSJzZXQtY29va2llIj90W2VdP3RbZV0ucHVzaChJKTp0W2VdPVtJXTp0W2VdPXRbZV0/dFtlXSsiLCAiK0k6SSl9KSx0fTt2YXIgZWU9U3ltYm9sKCJpbnRlcm5hbHMiKTtmdW5jdGlvbiBDQShBKXtyZXR1cm4gQSYmU3RyaW5nKEEpLnRyaW0oKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIEhBKEEpe3JldHVybiBBPT09ITF8fEE9PW51bGw/QTppLmlzQXJyYXkoQSk/QS5tYXAoSEEpOlN0cmluZyhBKX1mdW5jdGlvbiBWSShBKXtsZXQgdD1PYmplY3QuY3JlYXRlKG51bGwpLGU9LyhbXlxccyw7PV0rKVxccyooPzo9XFxzKihbXiw7XSspKT8vZyxJO2Zvcig7ST1lLmV4ZWMoQSk7KXRbSVsxXV09SVsyXTtyZXR1cm4gdH12YXIgWEk9QT0+L15bLV9hLXpBLVowLTleYHx+LCElMjMkJSZcJyorLl0rJC8udGVzdChBLnRyaW0oKSk7ZnVuY3Rpb24gaXQoQSx0LGUsSSxyKXtpZihpLmlzRnVuY3Rpb24oSSkpcmV0dXJuIEkuY2FsbCh0aGlzLHQsZSk7aWYociYmKHQ9ZSksISFpLmlzU3RyaW5nKHQpKXtpZihpLmlzU3RyaW5nKEkpKXJldHVybiB0LmluZGV4T2YoSSkhPT0tMTtpZihpLmlzUmVnRXhwKEkpKXJldHVybiBJLnRlc3QodCl9fWZ1bmN0aW9uIF9JKEEpe3JldHVybiBBLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbYS16XFxkXSkoXFx3KikvZywodCxlLEkpPT5lLnRvVXBwZXJDYXNlKCkrSSl9ZnVuY3Rpb24gekkoQSx0KXtsZXQgZT1pLnRvQ2FtZWxDYXNlKCIgIit0KTtbImdldCIsInNldCIsImhhcyJdLmZvckVhY2goST0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLEkrZSx7dmFsdWU6ZnVuY3Rpb24ocixnLG8pe3JldHVybiB0aGlzW0ldLmNhbGwodGhpcyx0LHIsZyxvKX0sY29uZmlndXJhYmxlOiEwfSl9KX12YXIgdEE9Y2xhc3N7Y29uc3RydWN0b3IodCl7dCYmdGhpcy5zZXQodCl9c2V0KHQsZSxJKXtsZXQgcj10aGlzO2Z1bmN0aW9uIGcobixFLEIpe2xldCBzPUNBKEUpO2lmKCFzKXRocm93IG5ldyBFcnJvcigiaGVhZGVyIG5hbWUgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmciKTtsZXQgQz1pLmZpbmRLZXkocixzKTsoIUN8fHJbQ109PT12b2lkIDB8fEI9PT0hMHx8Qj09PXZvaWQgMCYmcltDXSE9PSExKSYmKHJbQ3x8RV09SEEobikpfWxldCBvPShuLEUpPT5pLmZvckVhY2gobiwoQixzKT0+ZyhCLHMsRSkpO2lmKGkuaXNQbGFpbk9iamVjdCh0KXx8dCBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3Ipbyh0LGUpO2Vsc2UgaWYoaS5pc1N0cmluZyh0KSYmKHQ9dC50cmltKCkpJiYhWEkodCkpbyh0ZSh0KSxlKTtlbHNlIGlmKGkuaXNPYmplY3QodCkmJmkuaXNJdGVyYWJsZSh0KSl7bGV0IG49e30sRSxCO2ZvcihsZXQgcyBvZiB0KXtpZighaS5pc0FycmF5KHMpKXRocm93IFR5cGVFcnJvcigiT2JqZWN0IGl0ZXJhdG9yIG11c3QgcmV0dXJuIGEga2V5LXZhbHVlIHBhaXIiKTtuW0I9c1swXV09KEU9bltCXSk/aS5pc0FycmF5KEUpP1suLi5FLHNbMV1dOltFLHNbMV1dOnNbMV19byhuLGUpfWVsc2UgdCE9bnVsbCYmZyhlLHQsSSk7cmV0dXJuIHRoaXN9Z2V0KHQsZSl7aWYodD1DQSh0KSx0KXtsZXQgST1pLmZpbmRLZXkodGhpcyx0KTtpZihJKXtsZXQgcj10aGlzW0ldO2lmKCFlKXJldHVybiByO2lmKGU9PT0hMClyZXR1cm4gVkkocik7aWYoaS5pc0Z1bmN0aW9uKGUpKXJldHVybiBlLmNhbGwodGhpcyxyLEkpO2lmKGkuaXNSZWdFeHAoZSkpcmV0dXJuIGUuZXhlYyhyKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJwYXJzZXIgbXVzdCBiZSBib29sZWFufHJlZ2V4cHxmdW5jdGlvbiIpfX19aGFzKHQsZSl7aWYodD1DQSh0KSx0KXtsZXQgST1pLmZpbmRLZXkodGhpcyx0KTtyZXR1cm4hIShJJiZ0aGlzW0ldIT09dm9pZCAwJiYoIWV8fGl0KHRoaXMsdGhpc1tJXSxJLGUpKSl9cmV0dXJuITF9ZGVsZXRlKHQsZSl7bGV0IEk9dGhpcyxyPSExO2Z1bmN0aW9uIGcobyl7aWYobz1DQShvKSxvKXtsZXQgbj1pLmZpbmRLZXkoSSxvKTtuJiYoIWV8fGl0KEksSVtuXSxuLGUpKSYmKGRlbGV0ZSBJW25dLHI9ITApfX1yZXR1cm4gaS5pc0FycmF5KHQpP3QuZm9yRWFjaChnKTpnKHQpLHJ9Y2xlYXIodCl7bGV0IGU9T2JqZWN0LmtleXModGhpcyksST1lLmxlbmd0aCxyPSExO2Zvcig7SS0tOyl7bGV0IGc9ZVtJXTsoIXR8fGl0KHRoaXMsdGhpc1tnXSxnLHQsITApKSYmKGRlbGV0ZSB0aGlzW2ddLHI9ITApfXJldHVybiByfW5vcm1hbGl6ZSh0KXtsZXQgZT10aGlzLEk9e307cmV0dXJuIGkuZm9yRWFjaCh0aGlzLChyLGcpPT57bGV0IG89aS5maW5kS2V5KEksZyk7aWYobyl7ZVtvXT1IQShyKSxkZWxldGUgZVtnXTtyZXR1cm59bGV0IG49dD9fSShnKTpTdHJpbmcoZykudHJpbSgpO24hPT1nJiZkZWxldGUgZVtnXSxlW25dPUhBKHIpLElbbl09ITB9KSx0aGlzfWNvbmNhdCguLi50KXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5jb25jYXQodGhpcywuLi50KX10b0pTT04odCl7bGV0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gaS5mb3JFYWNoKHRoaXMsKEkscik9PntJIT1udWxsJiZJIT09ITEmJihlW3JdPXQmJmkuaXNBcnJheShJKT9JLmpvaW4oIiwgIik6SSl9KSxlfVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpW1N5bWJvbC5pdGVyYXRvcl0oKX10b1N0cmluZygpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKS5tYXAoKFt0LGVdKT0+dCsiOiAiK2UpLmpvaW4oYCUwQWApfWdldFNldENvb2tpZSgpe3JldHVybiB0aGlzLmdldCgic2V0LWNvb2tpZSIpfHxbXX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJBeGlvc0hlYWRlcnMifXN0YXRpYyBmcm9tKHQpe3JldHVybiB0IGluc3RhbmNlb2YgdGhpcz90Om5ldyB0aGlzKHQpfXN0YXRpYyBjb25jYXQodCwuLi5lKXtsZXQgST1uZXcgdGhpcyh0KTtyZXR1cm4gZS5mb3JFYWNoKHI9Pkkuc2V0KHIpKSxJfXN0YXRpYyBhY2Nlc3Nvcih0KXtsZXQgST0odGhpc1tlZV09dGhpc1tlZV09e2FjY2Vzc29yczp7fX0pLmFjY2Vzc29ycyxyPXRoaXMucHJvdG90eXBlO2Z1bmN0aW9uIGcobyl7bGV0IG49Q0Eobyk7SVtuXXx8KHpJKHIsbyksSVtuXT0hMCl9cmV0dXJuIGkuaXNBcnJheSh0KT90LmZvckVhY2goZyk6Zyh0KSx0aGlzfX07dEEuYWNjZXNzb3IoWyJDb250ZW50LVR5cGUiLCJDb250ZW50LUxlbmd0aCIsIkFjY2VwdCIsIkFjY2VwdC1FbmNvZGluZyIsIlVzZXItQWdlbnQiLCJBdXRob3JpemF0aW9uIl0pO2kucmVkdWNlRGVzY3JpcHRvcnModEEucHJvdG90eXBlLCh7dmFsdWU6QX0sdCk9PntsZXQgZT10WzBdLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKTtyZXR1cm57Z2V0OigpPT5BLHNldChJKXt0aGlzW2VdPUl9fX0pO2kuZnJlZXplTWV0aG9kcyh0QSk7dmFyIHA9dEE7ZnVuY3Rpb24gQkEoQSx0KXtsZXQgZT10aGlzfHxBQSxJPXR8fGUscj1wLmZyb20oSS5oZWFkZXJzKSxnPUkuZGF0YTtyZXR1cm4gaS5mb3JFYWNoKEEsZnVuY3Rpb24obil7Zz1uLmNhbGwoZSxnLHIubm9ybWFsaXplKCksdD90LnN0YXR1czp2b2lkIDApfSksci5ub3JtYWxpemUoKSxnfWZ1bmN0aW9uIGFBKEEpe3JldHVybiEhKEEmJkEuX19DQU5DRUxfXyl9ZnVuY3Rpb24gSWUoQSx0LGUpe3UuY2FsbCh0aGlzLEE/PyJjYW5jZWxlZCIsdS5FUlJfQ0FOQ0VMRUQsdCxlKSx0aGlzLm5hbWU9IkNhbmNlbGVkRXJyb3IifWkuaW5oZXJpdHMoSWUsdSx7X19DQU5DRUxfXzohMH0pO3ZhciBIPUllO2Z1bmN0aW9uIFFBKEEsdCxlKXtsZXQgST1lLmNvbmZpZy52YWxpZGF0ZVN0YXR1czshZS5zdGF0dXN8fCFJfHxJKGUuc3RhdHVzKT9BKGUpOnQobmV3IHUoIlJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgIitlLnN0YXR1cyxbdS5FUlJfQkFEX1JFUVVFU1QsdS5FUlJfQkFEX1JFU1BPTlNFXVtNYXRoLmZsb29yKGUuc3RhdHVzLzEwMCktNF0sZS5jb25maWcsZS5yZXF1ZXN0LGUpKX1mdW5jdGlvbiBzdChBKXtsZXQgdD0vXihbLStcXHddezEsMjV9KSg6P1xcL1xcL3w6KS8uZXhlYyhBKTtyZXR1cm4gdCYmdFsxXXx8IiJ9ZnVuY3Rpb24gdkkoQSx0KXtBPUF8fDEwO2xldCBlPW5ldyBBcnJheShBKSxJPW5ldyBBcnJheShBKSxyPTAsZz0wLG87cmV0dXJuIHQ9dCE9PXZvaWQgMD90OjFlMyxmdW5jdGlvbihFKXtsZXQgQj1EYXRlLm5vdygpLHM9SVtnXTtvfHwobz1CKSxlW3JdPUUsSVtyXT1CO2xldCBDPWcsbD0wO2Zvcig7QyE9PXI7KWwrPWVbQysrXSxDPUMlQTtpZihyPShyKzEpJUEscj09PWcmJihnPShnKzEpJUEpLEItbzx0KXJldHVybjtsZXQgYT1zJiZCLXM7cmV0dXJuIGE/TWF0aC5yb3VuZChsKjFlMy9hKTp2b2lkIDB9fXZhciByZT12STtmdW5jdGlvbiAkSShBLHQpe2xldCBlPTAsST0xZTMvdCxyLGcsbz0oQixzPURhdGUubm93KCkpPT57ZT1zLHI9bnVsbCxnJiYoY2xlYXJUaW1lb3V0KGcpLGc9bnVsbCksQSguLi5CKX07cmV0dXJuWyguLi5CKT0+e2xldCBzPURhdGUubm93KCksQz1zLWU7Qz49ST9vKEIscyk6KHI9QixnfHwoZz1zZXRUaW1lb3V0KCgpPT57Zz1udWxsLG8ocil9LEktQykpKX0sKCk9PnImJm8ocildfXZhciBvZT0kSTt2YXIgZUE9KEEsdCxlPTMpPT57bGV0IEk9MCxyPXJlKDUwLDI1MCk7cmV0dXJuIG9lKGc9PntsZXQgbz1nLmxvYWRlZCxuPWcubGVuZ3RoQ29tcHV0YWJsZT9nLnRvdGFsOnZvaWQgMCxFPW8tSSxCPXIoRSkscz1vPD1uO0k9bztsZXQgQz17bG9hZGVkOm8sdG90YWw6bixwcm9ncmVzczpuP28vbjp2b2lkIDAsYnl0ZXM6RSxyYXRlOkJ8fHZvaWQgMCxlc3RpbWF0ZWQ6QiYmbiYmcz8obi1vKS9COnZvaWQgMCxldmVudDpnLGxlbmd0aENvbXB1dGFibGU6biE9bnVsbCxbdD8iZG93bmxvYWQiOiJ1cGxvYWQiXTohMH07QShDKX0sZSl9LG50PShBLHQpPT57bGV0IGU9QSE9bnVsbDtyZXR1cm5bST0+dFswXSh7bGVuZ3RoQ29tcHV0YWJsZTplLHRvdGFsOkEsbG9hZGVkOkl9KSx0WzFdXX0sQ3Q9QT0+KC4uLnQpPT5pLmFzYXAoKCk9PkEoLi4udCkpO3ZhciBnZT1oLmhhc1N0YW5kYXJkQnJvd3NlckVudj8oKEEsdCk9PmU9PihlPW5ldyBVUkwoZSxoLm9yaWdpbiksQS5wcm90b2NvbD09PWUucHJvdG9jb2wmJkEuaG9zdD09PWUuaG9zdCYmKHR8fEEucG9ydD09PWUucG9ydCkpKShuZXcgVVJMKGgub3JpZ2luKSxoLm5hdmlnYXRvciYmLyhtc2llfHRyaWRlbnQpL2kudGVzdChoLm5hdmlnYXRvci51c2VyQWdlbnQpKTooKT0+ITA7dmFyIGllPWguaGFzU3RhbmRhcmRCcm93c2VyRW52P3t3cml0ZShBLHQsZSxJLHIsZyl7bGV0IG89W0ErIj0iK2VuY29kZVVSSUNvbXBvbmVudCh0KV07aS5pc051bWJlcihlKSYmby5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUoZSkudG9HTVRTdHJpbmcoKSksaS5pc1N0cmluZyhJKSYmby5wdXNoKCJwYXRoPSIrSSksaS5pc1N0cmluZyhyKSYmby5wdXNoKCJkb21haW49IityKSxnPT09ITAmJm8ucHVzaCgic2VjdXJlIiksZG9jdW1lbnQuY29va2llPW8uam9pbigiOyAiKX0scmVhZChBKXtsZXQgdD1kb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgiKF58O1xcXFxzKikoIitBKyIpPShbXjtdKikiKSk7cmV0dXJuIHQ/ZGVjb2RlVVJJQ29tcG9uZW50KHRbM10pOm51bGx9LHJlbW92ZShBKXt0aGlzLndyaXRlKEEsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGUoKXt9LHJlYWQoKXtyZXR1cm4gbnVsbH0scmVtb3ZlKCl7fX07ZnVuY3Rpb24gQnQoQSl7cmV0dXJuL14oW2Etel1bYS16XFxkK1xcLS5dKjopP1xcL1xcLy9pLnRlc3QoQSl9ZnVuY3Rpb24gYXQoQSx0KXtyZXR1cm4gdD9BLnJlcGxhY2UoL1xcLz9cXC8kLywiIikrIi8iK3QucmVwbGFjZSgvXlxcLysvLCIiKTpBfWZ1bmN0aW9uIEVBKEEsdCxlKXtsZXQgST0hQnQodCk7cmV0dXJuIEEmJihJfHxlPT0hMSk/YXQoQSx0KTp0fXZhciBzZT1BPT5BIGluc3RhbmNlb2YgcD97Li4uQX06QTtmdW5jdGlvbiBiKEEsdCl7dD10fHx7fTtsZXQgZT17fTtmdW5jdGlvbiBJKEIscyxDLGwpe3JldHVybiBpLmlzUGxhaW5PYmplY3QoQikmJmkuaXNQbGFpbk9iamVjdChzKT9pLm1lcmdlLmNhbGwoe2Nhc2VsZXNzOmx9LEIscyk6aS5pc1BsYWluT2JqZWN0KHMpP2kubWVyZ2Uoe30scyk6aS5pc0FycmF5KHMpP3Muc2xpY2UoKTpzfWZ1bmN0aW9uIHIoQixzLEMsbCl7aWYoaS5pc1VuZGVmaW5lZChzKSl7aWYoIWkuaXNVbmRlZmluZWQoQikpcmV0dXJuIEkodm9pZCAwLEIsQyxsKX1lbHNlIHJldHVybiBJKEIscyxDLGwpfWZ1bmN0aW9uIGcoQixzKXtpZighaS5pc1VuZGVmaW5lZChzKSlyZXR1cm4gSSh2b2lkIDAscyl9ZnVuY3Rpb24gbyhCLHMpe2lmKGkuaXNVbmRlZmluZWQocykpe2lmKCFpLmlzVW5kZWZpbmVkKEIpKXJldHVybiBJKHZvaWQgMCxCKX1lbHNlIHJldHVybiBJKHZvaWQgMCxzKX1mdW5jdGlvbiBuKEIscyxDKXtpZihDIGluIHQpcmV0dXJuIEkoQixzKTtpZihDIGluIEEpcmV0dXJuIEkodm9pZCAwLEIpfWxldCBFPXt1cmw6ZyxtZXRob2Q6ZyxkYXRhOmcsYmFzZVVSTDpvLHRyYW5zZm9ybVJlcXVlc3Q6byx0cmFuc2Zvcm1SZXNwb25zZTpvLHBhcmFtc1NlcmlhbGl6ZXI6byx0aW1lb3V0Om8sdGltZW91dE1lc3NhZ2U6byx3aXRoQ3JlZGVudGlhbHM6byx3aXRoWFNSRlRva2VuOm8sYWRhcHRlcjpvLHJlc3BvbnNlVHlwZTpvLHhzcmZDb29raWVOYW1lOm8seHNyZkhlYWRlck5hbWU6byxvblVwbG9hZFByb2dyZXNzOm8sb25Eb3dubG9hZFByb2dyZXNzOm8sZGVjb21wcmVzczpvLG1heENvbnRlbnRMZW5ndGg6byxtYXhCb2R5TGVuZ3RoOm8sYmVmb3JlUmVkaXJlY3Q6byx0cmFuc3BvcnQ6byxodHRwQWdlbnQ6byxodHRwc0FnZW50Om8sY2FuY2VsVG9rZW46byxzb2NrZXRQYXRoOm8scmVzcG9uc2VFbmNvZGluZzpvLHZhbGlkYXRlU3RhdHVzOm4saGVhZGVyczooQixzLEMpPT5yKHNlKEIpLHNlKHMpLEMsITApfTtyZXR1cm4gaS5mb3JFYWNoKE9iamVjdC5rZXlzKHsuLi5BLC4uLnR9KSxmdW5jdGlvbihzKXtsZXQgQz1FW3NdfHxyLGw9QyhBW3NdLHRbc10scyk7aS5pc1VuZGVmaW5lZChsKSYmQyE9PW58fChlW3NdPWwpfSksZX12YXIgWUE9QT0+e2xldCB0PWIoe30sQSkse2RhdGE6ZSx3aXRoWFNSRlRva2VuOkkseHNyZkhlYWRlck5hbWU6cix4c3JmQ29va2llTmFtZTpnLGhlYWRlcnM6byxhdXRoOm59PXQ7aWYodC5oZWFkZXJzPW89cC5mcm9tKG8pLHQudXJsPW5BKEVBKHQuYmFzZVVSTCx0LnVybCx0LmFsbG93QWJzb2x1dGVVcmxzKSxBLnBhcmFtcyxBLnBhcmFtc1NlcmlhbGl6ZXIpLG4mJm8uc2V0KCJBdXRob3JpemF0aW9uIiwiQmFzaWMgIitidG9hKChuLnVzZXJuYW1lfHwiIikrIjoiKyhuLnBhc3N3b3JkP3VuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChuLnBhc3N3b3JkKSk6IiIpKSksaS5pc0Zvcm1EYXRhKGUpKXtpZihoLmhhc1N0YW5kYXJkQnJvd3NlckVudnx8aC5oYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnYpby5zZXRDb250ZW50VHlwZSh2b2lkIDApO2Vsc2UgaWYoaS5pc0Z1bmN0aW9uKGUuZ2V0SGVhZGVycykpe2xldCBFPWUuZ2V0SGVhZGVycygpLEI9WyJjb250ZW50LXR5cGUiLCJjb250ZW50LWxlbmd0aCJdO09iamVjdC5lbnRyaWVzKEUpLmZvckVhY2goKFtzLENdKT0+e0IuaW5jbHVkZXMocy50b0xvd2VyQ2FzZSgpKSYmby5zZXQocyxDKX0pfX1pZihoLmhhc1N0YW5kYXJkQnJvd3NlckVudiYmKEkmJmkuaXNGdW5jdGlvbihJKSYmKEk9SSh0KSksSXx8SSE9PSExJiZnZSh0LnVybCkpKXtsZXQgRT1yJiZnJiZpZS5yZWFkKGcpO0UmJm8uc2V0KHIsRSl9cmV0dXJuIHR9O3ZhciBBcj10eXBlb2YgWE1MSHR0cFJlcXVlc3Q8InUiLG5lPUFyJiZmdW5jdGlvbihBKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSxJKXtsZXQgcj1ZQShBKSxnPXIuZGF0YSxvPXAuZnJvbShyLmhlYWRlcnMpLm5vcm1hbGl6ZSgpLHtyZXNwb25zZVR5cGU6bixvblVwbG9hZFByb2dyZXNzOkUsb25Eb3dubG9hZFByb2dyZXNzOkJ9PXIscyxDLGwsYSxRO2Z1bmN0aW9uIGYoKXthJiZhKCksUSYmUSgpLHIuY2FuY2VsVG9rZW4mJnIuY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUocyksci5zaWduYWwmJnIuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixzKX1sZXQgYz1uZXcgWE1MSHR0cFJlcXVlc3Q7Yy5vcGVuKHIubWV0aG9kLnRvVXBwZXJDYXNlKCksci51cmwsITApLGMudGltZW91dD1yLnRpbWVvdXQ7ZnVuY3Rpb24gRCgpe2lmKCFjKXJldHVybjtsZXQgeT1wLmZyb20oImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiBjJiZjLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSxrPXtkYXRhOiFufHxuPT09InRleHQifHxuPT09Impzb24iP2MucmVzcG9uc2VUZXh0OmMucmVzcG9uc2Usc3RhdHVzOmMuc3RhdHVzLHN0YXR1c1RleHQ6Yy5zdGF0dXNUZXh0LGhlYWRlcnM6eSxjb25maWc6QSxyZXF1ZXN0OmN9O1FBKGZ1bmN0aW9uKEcpe2UoRyksZigpfSxmdW5jdGlvbihHKXtJKEcpLGYoKX0sayksYz1udWxsfSJvbmxvYWRlbmQiaW4gYz9jLm9ubG9hZGVuZD1EOmMub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7IWN8fGMucmVhZHlTdGF0ZSE9PTR8fGMuc3RhdHVzPT09MCYmIShjLnJlc3BvbnNlVVJMJiZjLnJlc3BvbnNlVVJMLmluZGV4T2YoImZpbGU6Iik9PT0wKXx8c2V0VGltZW91dChEKX0sYy5vbmFib3J0PWZ1bmN0aW9uKCl7YyYmKEkobmV3IHUoIlJlcXVlc3QgYWJvcnRlZCIsdS5FQ09OTkFCT1JURUQsQSxjKSksYz1udWxsKX0sYy5vbmVycm9yPWZ1bmN0aW9uKFIpe2xldCBrPVImJlIubWVzc2FnZT9SLm1lc3NhZ2U6Ik5ldHdvcmsgRXJyb3IiLFA9bmV3IHUoayx1LkVSUl9ORVRXT1JLLEEsYyk7UC5ldmVudD1SfHxudWxsLEkoUCksYz1udWxsfSxjLm9udGltZW91dD1mdW5jdGlvbigpe2xldCBSPXIudGltZW91dD8idGltZW91dCBvZiAiK3IudGltZW91dCsibXMgZXhjZWVkZWQiOiJ0aW1lb3V0IGV4Y2VlZGVkIixrPXIudHJhbnNpdGlvbmFsfHxiQTtyLnRpbWVvdXRFcnJvck1lc3NhZ2UmJihSPXIudGltZW91dEVycm9yTWVzc2FnZSksSShuZXcgdShSLGsuY2xhcmlmeVRpbWVvdXRFcnJvcj91LkVUSU1FRE9VVDp1LkVDT05OQUJPUlRFRCxBLGMpKSxjPW51bGx9LGc9PT12b2lkIDAmJm8uc2V0Q29udGVudFR5cGUobnVsbCksInNldFJlcXVlc3RIZWFkZXIiaW4gYyYmaS5mb3JFYWNoKG8udG9KU09OKCksZnVuY3Rpb24oUixrKXtjLnNldFJlcXVlc3RIZWFkZXIoayxSKX0pLGkuaXNVbmRlZmluZWQoci53aXRoQ3JlZGVudGlhbHMpfHwoYy53aXRoQ3JlZGVudGlhbHM9ISFyLndpdGhDcmVkZW50aWFscyksbiYmbiE9PSJqc29uIiYmKGMucmVzcG9uc2VUeXBlPXIucmVzcG9uc2VUeXBlKSxCJiYoW2wsUV09ZUEoQiwhMCksYy5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsbCkpLEUmJmMudXBsb2FkJiYoW0MsYV09ZUEoRSksYy51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLEMpLGMudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlbmQiLGEpKSwoci5jYW5jZWxUb2tlbnx8ci5zaWduYWwpJiYocz15PT57YyYmKEkoIXl8fHkudHlwZT9uZXcgSChudWxsLEEsYyk6eSksYy5hYm9ydCgpLGM9bnVsbCl9LHIuY2FuY2VsVG9rZW4mJnIuY2FuY2VsVG9rZW4uc3Vic2NyaWJlKHMpLHIuc2lnbmFsJiYoci5zaWduYWwuYWJvcnRlZD9zKCk6ci5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHMpKSk7bGV0IEY9c3Qoci51cmwpO2lmKEYmJmgucHJvdG9jb2xzLmluZGV4T2YoRik9PT0tMSl7SShuZXcgdSgiVW5zdXBwb3J0ZWQgcHJvdG9jb2wgIitGKyI6Iix1LkVSUl9CQURfUkVRVUVTVCxBKSk7cmV0dXJufWMuc2VuZChnfHxudWxsKX0pfTt2YXIgdHI9KEEsdCk9PntsZXR7bGVuZ3RoOmV9PUE9QT9BLmZpbHRlcihCb29sZWFuKTpbXTtpZih0fHxlKXtsZXQgST1uZXcgQWJvcnRDb250cm9sbGVyLHIsZz1mdW5jdGlvbihCKXtpZighcil7cj0hMCxuKCk7bGV0IHM9QiBpbnN0YW5jZW9mIEVycm9yP0I6dGhpcy5yZWFzb247SS5hYm9ydChzIGluc3RhbmNlb2YgdT9zOm5ldyBIKHMgaW5zdGFuY2VvZiBFcnJvcj9zLm1lc3NhZ2U6cykpfX0sbz10JiZzZXRUaW1lb3V0KCgpPT57bz1udWxsLGcobmV3IHUoYHRpbWVvdXQgJHt0fSBvZiBtcyBleGNlZWRlZGAsdS5FVElNRURPVVQpKX0sdCksbj0oKT0+e0EmJihvJiZjbGVhclRpbWVvdXQobyksbz1udWxsLEEuZm9yRWFjaChCPT57Qi51bnN1YnNjcmliZT9CLnVuc3Vic2NyaWJlKGcpOkIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGcpfSksQT1udWxsKX07QS5mb3JFYWNoKEI9PkIuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGcpKTtsZXR7c2lnbmFsOkV9PUk7cmV0dXJuIEUudW5zdWJzY3JpYmU9KCk9PmkuYXNhcChuKSxFfX0sQ2U9dHI7dmFyIGVyPWZ1bmN0aW9uKihBLHQpe2xldCBlPUEuYnl0ZUxlbmd0aDtpZighdHx8ZTx0KXt5aWVsZCBBO3JldHVybn1sZXQgST0wLHI7Zm9yKDtJPGU7KXI9SSt0LHlpZWxkIEEuc2xpY2UoSSxyKSxJPXJ9LElyPWFzeW5jIGZ1bmN0aW9uKihBLHQpe2ZvciBhd2FpdChsZXQgZSBvZiBycihBKSl5aWVsZCplcihlLHQpfSxycj1hc3luYyBmdW5jdGlvbiooQSl7aWYoQVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0pe3lpZWxkKkE7cmV0dXJufWxldCB0PUEuZ2V0UmVhZGVyKCk7dHJ5e2Zvcig7Oyl7bGV0e2RvbmU6ZSx2YWx1ZTpJfT1hd2FpdCB0LnJlYWQoKTtpZihlKWJyZWFrO3lpZWxkIEl9fWZpbmFsbHl7YXdhaXQgdC5jYW5jZWwoKX19LFF0PShBLHQsZSxJKT0+e2xldCByPUlyKEEsdCksZz0wLG8sbj1FPT57b3x8KG89ITAsSSYmSShFKSl9O3JldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe2FzeW5jIHB1bGwoRSl7dHJ5e2xldHtkb25lOkIsdmFsdWU6c309YXdhaXQgci5uZXh0KCk7aWYoQil7bigpLEUuY2xvc2UoKTtyZXR1cm59bGV0IEM9cy5ieXRlTGVuZ3RoO2lmKGUpe2xldCBsPWcrPUM7ZShsKX1FLmVucXVldWUobmV3IFVpbnQ4QXJyYXkocykpfWNhdGNoKEIpe3Rocm93IG4oQiksQn19LGNhbmNlbChFKXtyZXR1cm4gbihFKSxyLnJldHVybigpfX0se2hpZ2hXYXRlck1hcms6Mn0pfTt2YXIgQmU9NjQqMTAyNCx7aXNGdW5jdGlvbjpxQX09aSxjZT0oKHtmZXRjaDpBLFJlcXVlc3Q6dCxSZXNwb25zZTplfSk9Pih7ZmV0Y2g6QSxSZXF1ZXN0OnQsUmVzcG9uc2U6ZX0pKShpLmdsb2JhbCkse1JlYWRhYmxlU3RyZWFtOmFlLFRleHRFbmNvZGVyOlFlfT1pLmdsb2JhbCxFZT0oQSwuLi50KT0+e3RyeXtyZXR1cm4hIUEoLi4udCl9Y2F0Y2h7cmV0dXJuITF9fSxvcj1BPT57bGV0e2ZldGNoOnQsUmVxdWVzdDplLFJlc3BvbnNlOkl9PU9iamVjdC5hc3NpZ24oe30sY2UsQSkscj1xQSh0KSxnPXFBKGUpLG89cUEoSSk7aWYoIXIpcmV0dXJuITE7bGV0IG49ciYmcUEoYWUpLEU9ciYmKHR5cGVvZiBRZT09ImZ1bmN0aW9uIj8oUT0+Zj0+US5lbmNvZGUoZikpKG5ldyBRZSk6YXN5bmMgUT0+bmV3IFVpbnQ4QXJyYXkoYXdhaXQgbmV3IGUoUSkuYXJyYXlCdWZmZXIoKSkpLEI9ZyYmbiYmRWUoKCk9PntsZXQgUT0hMSxmPW5ldyBlKGgub3JpZ2luLHtib2R5Om5ldyBhZSxtZXRob2Q6IlBPU1QiLGdldCBkdXBsZXgoKXtyZXR1cm4gUT0hMCwiaGFsZiJ9fSkuaGVhZGVycy5oYXMoIkNvbnRlbnQtVHlwZSIpO3JldHVybiBRJiYhZn0pLHM9byYmbiYmRWUoKCk9PmkuaXNSZWFkYWJsZVN0cmVhbShuZXcgSSgiIikuYm9keSkpLEM9e3N0cmVhbTpzJiYoUT0+US5ib2R5KX07ciYmWyJ0ZXh0IiwiYXJyYXlCdWZmZXIiLCJibG9iIiwiZm9ybURhdGEiLCJzdHJlYW0iXS5mb3JFYWNoKFE9PnshQ1tRXSYmKENbUV09KGYsYyk9PntsZXQgRD1mJiZmW1FdO2lmKEQpcmV0dXJuIEQuY2FsbChmKTt0aHJvdyBuZXcgdShgUmVzcG9uc2UgdHlwZSBcJyR7UX1cJyBpcyBub3Qgc3VwcG9ydGVkYCx1LkVSUl9OT1RfU1VQUE9SVCxjKX0pfSk7bGV0IGw9YXN5bmMgUT0+e2lmKFE9PW51bGwpcmV0dXJuIDA7aWYoaS5pc0Jsb2IoUSkpcmV0dXJuIFEuc2l6ZTtpZihpLmlzU3BlY0NvbXBsaWFudEZvcm0oUSkpcmV0dXJuKGF3YWl0IG5ldyBlKGgub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6UX0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYoaS5pc0FycmF5QnVmZmVyVmlldyhRKXx8aS5pc0FycmF5QnVmZmVyKFEpKXJldHVybiBRLmJ5dGVMZW5ndGg7aWYoaS5pc1VSTFNlYXJjaFBhcmFtcyhRKSYmKFE9USsiIiksaS5pc1N0cmluZyhRKSlyZXR1cm4oYXdhaXQgRShRKSkuYnl0ZUxlbmd0aH0sYT1hc3luYyhRLGYpPT57bGV0IGM9aS50b0Zpbml0ZU51bWJlcihRLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIGM/P2woZil9O3JldHVybiBhc3luYyBRPT57bGV0e3VybDpmLG1ldGhvZDpjLGRhdGE6RCxzaWduYWw6RixjYW5jZWxUb2tlbjp5LHRpbWVvdXQ6UixvbkRvd25sb2FkUHJvZ3Jlc3M6ayxvblVwbG9hZFByb2dyZXNzOlAscmVzcG9uc2VUeXBlOkcsaGVhZGVyczpXQSx3aXRoQ3JlZGVudGlhbHM6ZEE9InNhbWUtb3JpZ2luIixmZXRjaE9wdGlvbnM6bXR9PVlBKFEpO0c9Rz8oRysiIikudG9Mb3dlckNhc2UoKToidGV4dCI7bGV0IERBPUNlKFtGLHkmJnkudG9BYm9ydFNpZ25hbCgpXSxSKSxyQT1udWxsLGo9REEmJkRBLnVuc3Vic2NyaWJlJiYoKCk9PntEQS51bnN1YnNjcmliZSgpfSksd3Q7dHJ5e2lmKFAmJkImJmMhPT0iZ2V0IiYmYyE9PSJoZWFkIiYmKHd0PWF3YWl0IGEoV0EsRCkpIT09MCl7bGV0IE89bmV3IGUoZix7bWV0aG9kOiJQT1NUIixib2R5OkQsZHVwbGV4OiJoYWxmIn0pLFg7aWYoaS5pc0Zvcm1EYXRhKEQpJiYoWD1PLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKSkmJldBLnNldENvbnRlbnRUeXBlKFgpLE8uYm9keSl7bGV0W1pBLGhBXT1udCh3dCxlQShDdChQKSkpO0Q9UXQoTy5ib2R5LEJlLFpBLGhBKX19aS5pc1N0cmluZyhkQSl8fChkQT1kQT8iaW5jbHVkZSI6Im9taXQiKTtsZXQgSj1nJiYiY3JlZGVudGlhbHMiaW4gZS5wcm90b3R5cGUscHQ9ey4uLm10LHNpZ25hbDpEQSxtZXRob2Q6Yy50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6V0Eubm9ybWFsaXplKCkudG9KU09OKCksYm9keTpELGR1cGxleDoiaGFsZiIsY3JlZGVudGlhbHM6Sj9kQTp2b2lkIDB9O3JBPWcmJm5ldyBlKGYscHQpO2xldCBLPWF3YWl0KGc/dChyQSxtdCk6dChmLHB0KSksU3Q9cyYmKEc9PT0ic3RyZWFtInx8Rz09PSJyZXNwb25zZSIpO2lmKHMmJihrfHxTdCYmaikpe2xldCBPPXt9O1sic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXS5mb3JFYWNoKEZ0PT57T1tGdF09S1tGdF19KTtsZXQgWD1pLnRvRmluaXRlTnVtYmVyKEsuaGVhZGVycy5nZXQoImNvbnRlbnQtbGVuZ3RoIikpLFtaQSxoQV09ayYmbnQoWCxlQShDdChrKSwhMCkpfHxbXTtLPW5ldyBJKFF0KEsuYm9keSxCZSxaQSwoKT0+e2hBJiZoQSgpLGomJmooKX0pLE8pfUc9R3x8InRleHQiO2xldCBIZT1hd2FpdCBDW2kuZmluZEtleShDLEcpfHwidGV4dCJdKEssUSk7cmV0dXJuIVN0JiZqJiZqKCksYXdhaXQgbmV3IFByb21pc2UoKE8sWCk9PntRQShPLFgse2RhdGE6SGUsaGVhZGVyczpwLmZyb20oSy5oZWFkZXJzKSxzdGF0dXM6Sy5zdGF0dXMsc3RhdHVzVGV4dDpLLnN0YXR1c1RleHQsY29uZmlnOlEscmVxdWVzdDpyQX0pfSl9Y2F0Y2goSil7dGhyb3cgaiYmaigpLEomJkoubmFtZT09PSJUeXBlRXJyb3IiJiYvTG9hZCBmYWlsZWR8ZmV0Y2gvaS50ZXN0KEoubWVzc2FnZSk/T2JqZWN0LmFzc2lnbihuZXcgdSgiTmV0d29yayBFcnJvciIsdS5FUlJfTkVUV09SSyxRLHJBKSx7Y2F1c2U6Si5jYXVzZXx8Sn0pOnUuZnJvbShKLEomJkouY29kZSxRLHJBKX19fSxncj1uZXcgTWFwLEV0PUE9PntsZXQgdD1pLm1lcmdlLmNhbGwoe3NraXBVbmRlZmluZWQ6ITB9LGNlLEE/QS5lbnY6bnVsbCkse2ZldGNoOmUsUmVxdWVzdDpJLFJlc3BvbnNlOnJ9PXQsZz1bSSxyLGVdLG89Zy5sZW5ndGgsbj1vLEUsQixzPWdyO2Zvcig7bi0tOylFPWdbbl0sQj1zLmdldChFKSxCPT09dm9pZCAwJiZzLnNldChFLEI9bj9uZXcgTWFwOm9yKHQpKSxzPUI7cmV0dXJuIEJ9LEdnPUV0KCk7dmFyIGN0PXtodHRwOmtBLHhocjpuZSxmZXRjaDp7Z2V0OkV0fX07aS5mb3JFYWNoKGN0LChBLHQpPT57aWYoQSl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJuYW1lIix7dmFsdWU6dH0pfWNhdGNoe31PYmplY3QuZGVmaW5lUHJvcGVydHkoQSwiYWRhcHRlck5hbWUiLHt2YWx1ZTp0fSl9fSk7dmFyIGZlPUE9PmAtICR7QX1gLHNyPUE9PmkuaXNGdW5jdGlvbihBKXx8QT09PW51bGx8fEE9PT0hMSxNQT17Z2V0QWRhcHRlcjooQSx0KT0+e0E9aS5pc0FycmF5KEEpP0E6W0FdO2xldHtsZW5ndGg6ZX09QSxJLHIsZz17fTtmb3IobGV0IG89MDtvPGU7bysrKXtJPUFbb107bGV0IG47aWYocj1JLCFzcihJKSYmKHI9Y3RbKG49U3RyaW5nKEkpKS50b0xvd2VyQ2FzZSgpXSxyPT09dm9pZCAwKSl0aHJvdyBuZXcgdShgVW5rbm93biBhZGFwdGVyIFwnJHtufVwnYCk7aWYociYmKGkuaXNGdW5jdGlvbihyKXx8KHI9ci5nZXQodCkpKSlicmVhaztnW258fCIlMjMiK29dPXJ9aWYoIXIpe2xldCBvPU9iamVjdC5lbnRyaWVzKGcpLm1hcCgoW0UsQl0pPT5gYWRhcHRlciAke0V9IGArKEI9PT0hMT8iaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZW52aXJvbm1lbnQiOiJpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBidWlsZCIpKSxuPWU/by5sZW5ndGg+MT9gc2luY2UgOiUwQWArby5tYXAoZmUpLmpvaW4oYCUwQWApOiIgIitmZShvWzBdKToiYXMgbm8gYWRhcHRlciBzcGVjaWZpZWQiO3Rocm93IG5ldyB1KCJUaGVyZSBpcyBubyBzdWl0YWJsZSBhZGFwdGVyIHRvIGRpc3BhdGNoIHRoZSByZXF1ZXN0ICIrbiwiRVJSX05PVF9TVVBQT1JUIil9cmV0dXJuIHJ9LGFkYXB0ZXJzOmN0fTtmdW5jdGlvbiBmdChBKXtpZihBLmNhbmNlbFRva2VuJiZBLmNhbmNlbFRva2VuLnRocm93SWZSZXF1ZXN0ZWQoKSxBLnNpZ25hbCYmQS5zaWduYWwuYWJvcnRlZCl0aHJvdyBuZXcgSChudWxsLEEpfWZ1bmN0aW9uIEtBKEEpe3JldHVybiBmdChBKSxBLmhlYWRlcnM9cC5mcm9tKEEuaGVhZGVycyksQS5kYXRhPUJBLmNhbGwoQSxBLnRyYW5zZm9ybVJlcXVlc3QpLFsicG9zdCIsInB1dCIsInBhdGNoIl0uaW5kZXhPZihBLm1ldGhvZCkhPT0tMSYmQS5oZWFkZXJzLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLCExKSxNQS5nZXRBZGFwdGVyKEEuYWRhcHRlcnx8QUEuYWRhcHRlcixBKShBKS50aGVuKGZ1bmN0aW9uKEkpe3JldHVybiBmdChBKSxJLmRhdGE9QkEuY2FsbChBLEEudHJhbnNmb3JtUmVzcG9uc2UsSSksSS5oZWFkZXJzPXAuZnJvbShJLmhlYWRlcnMpLEl9LGZ1bmN0aW9uKEkpe3JldHVybiBhQShJKXx8KGZ0KEEpLEkmJkkucmVzcG9uc2UmJihJLnJlc3BvbnNlLmRhdGE9QkEuY2FsbChBLEEudHJhbnNmb3JtUmVzcG9uc2UsSS5yZXNwb25zZSksSS5yZXNwb25zZS5oZWFkZXJzPXAuZnJvbShJLnJlc3BvbnNlLmhlYWRlcnMpKSksUHJvbWlzZS5yZWplY3QoSSl9KX12YXIgT0E9IjEuMTIuMCI7dmFyIFRBPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaCgoQSx0KT0+e1RBW0FdPWZ1bmN0aW9uKEkpe3JldHVybiB0eXBlb2YgST09PUF8fCJhIisodDwxPyJuICI6IiAiKStBfX0pO3ZhciBsZT17fTtUQS50cmFuc2l0aW9uYWw9ZnVuY3Rpb24odCxlLEkpe2Z1bmN0aW9uIHIoZyxvKXtyZXR1cm4iW0F4aW9zIHYiK09BKyJdIFRyYW5zaXRpb25hbCBvcHRpb24gXCciK2crIlwnIitvKyhJPyIuICIrSToiIil9cmV0dXJuKGcsbyxuKT0+e2lmKHQ9PT0hMSl0aHJvdyBuZXcgdShyKG8sIiBoYXMgYmVlbiByZW1vdmVkIisoZT8iIGluICIrZToiIikpLHUuRVJSX0RFUFJFQ0FURUQpO3JldHVybiBlJiYhbGVbb10mJihsZVtvXT0hMCxjb25zb2xlLndhcm4ocihvLCIgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2IitlKyIgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUiKSkpLHQ/dChnLG8sbik6ITB9fTtUQS5zcGVsbGluZz1mdW5jdGlvbih0KXtyZXR1cm4oZSxJKT0+KGNvbnNvbGUud2FybihgJHtJfSBpcyBsaWtlbHkgYSBtaXNzcGVsbGluZyBvZiAke3R9YCksITApfTtmdW5jdGlvbiBucihBLHQsZSl7aWYodHlwZW9mIEEhPSJvYmplY3QiKXRocm93IG5ldyB1KCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Iix1LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtsZXQgST1PYmplY3Qua2V5cyhBKSxyPUkubGVuZ3RoO2Zvcig7ci0tID4wOyl7bGV0IGc9SVtyXSxvPXRbZ107aWYobyl7bGV0IG49QVtnXSxFPW49PT12b2lkIDB8fG8obixnLEEpO2lmKEUhPT0hMCl0aHJvdyBuZXcgdSgib3B0aW9uICIrZysiIG11c3QgYmUgIitFLHUuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2NvbnRpbnVlfWlmKGUhPT0hMCl0aHJvdyBuZXcgdSgiVW5rbm93biBvcHRpb24gIitnLHUuRVJSX0JBRF9PUFRJT04pfX12YXIgY0E9e2Fzc2VydE9wdGlvbnM6bnIsdmFsaWRhdG9yczpUQX07dmFyIFk9Y0EudmFsaWRhdG9ycyxJQT1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmRlZmF1bHRzPXR8fHt9LHRoaXMuaW50ZXJjZXB0b3JzPXtyZXF1ZXN0Om5ldyB0dCxyZXNwb25zZTpuZXcgdHR9fWFzeW5jIHJlcXVlc3QodCxlKXt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuX3JlcXVlc3QodCxlKX1jYXRjaChJKXtpZihJIGluc3RhbmNlb2YgRXJyb3Ipe2xldCByPXt9O0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHIpOnI9bmV3IEVycm9yO2xldCBnPXIuc3RhY2s/ci5zdGFjay5yZXBsYWNlKC9eLitcXG4vLCIiKToiIjt0cnl7SS5zdGFjaz9nJiYhU3RyaW5nKEkuc3RhY2spLmVuZHNXaXRoKGcucmVwbGFjZSgvXi4rXFxuLitcXG4vLCIiKSkmJihJLnN0YWNrKz1gJTBBYCtnKTpJLnN0YWNrPWd9Y2F0Y2h7fX10aHJvdyBJfX1fcmVxdWVzdCh0LGUpe3R5cGVvZiB0PT0ic3RyaW5nIj8oZT1lfHx7fSxlLnVybD10KTplPXR8fHt9LGU9Yih0aGlzLmRlZmF1bHRzLGUpO2xldHt0cmFuc2l0aW9uYWw6SSxwYXJhbXNTZXJpYWxpemVyOnIsaGVhZGVyczpnfT1lO0khPT12b2lkIDAmJmNBLmFzc2VydE9wdGlvbnMoSSx7c2lsZW50SlNPTlBhcnNpbmc6WS50cmFuc2l0aW9uYWwoWS5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzpZLnRyYW5zaXRpb25hbChZLmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6WS50cmFuc2l0aW9uYWwoWS5ib29sZWFuKX0sITEpLHIhPW51bGwmJihpLmlzRnVuY3Rpb24ocik/ZS5wYXJhbXNTZXJpYWxpemVyPXtzZXJpYWxpemU6cn06Y0EuYXNzZXJ0T3B0aW9ucyhyLHtlbmNvZGU6WS5mdW5jdGlvbixzZXJpYWxpemU6WS5mdW5jdGlvbn0sITApKSxlLmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwfHwodGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMD9lLmFsbG93QWJzb2x1dGVVcmxzPXRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHM6ZS5hbGxvd0Fic29sdXRlVXJscz0hMCksY0EuYXNzZXJ0T3B0aW9ucyhlLHtiYXNlVXJsOlkuc3BlbGxpbmcoImJhc2VVUkwiKSx3aXRoWHNyZlRva2VuOlkuc3BlbGxpbmcoIndpdGhYU1JGVG9rZW4iKX0sITApLGUubWV0aG9kPShlLm1ldGhvZHx8dGhpcy5kZWZhdWx0cy5tZXRob2R8fCJnZXQiKS50b0xvd2VyQ2FzZSgpO2xldCBvPWcmJmkubWVyZ2UoZy5jb21tb24sZ1tlLm1ldGhvZF0pO2cmJmkuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giLCJjb21tb24iXSxRPT57ZGVsZXRlIGdbUV19KSxlLmhlYWRlcnM9cC5jb25jYXQobyxnKTtsZXQgbj1bXSxFPSEwO3RoaXMuaW50ZXJjZXB0b3JzLnJlcXVlc3QuZm9yRWFjaChmdW5jdGlvbihmKXt0eXBlb2YgZi5ydW5XaGVuPT0iZnVuY3Rpb24iJiZmLnJ1bldoZW4oZSk9PT0hMXx8KEU9RSYmZi5zeW5jaHJvbm91cyxuLnVuc2hpZnQoZi5mdWxmaWxsZWQsZi5yZWplY3RlZCkpfSk7bGV0IEI9W107dGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaChmdW5jdGlvbihmKXtCLnB1c2goZi5mdWxmaWxsZWQsZi5yZWplY3RlZCl9KTtsZXQgcyxDPTAsbDtpZighRSl7bGV0IFE9W0tBLmJpbmQodGhpcyksdm9pZCAwXTtmb3IoUS51bnNoaWZ0KC4uLm4pLFEucHVzaCguLi5CKSxsPVEubGVuZ3RoLHM9UHJvbWlzZS5yZXNvbHZlKGUpO0M8bDspcz1zLnRoZW4oUVtDKytdLFFbQysrXSk7cmV0dXJuIHN9bD1uLmxlbmd0aDtsZXQgYT1lO2ZvcihDPTA7QzxsOyl7bGV0IFE9bltDKytdLGY9bltDKytdO3RyeXthPVEoYSl9Y2F0Y2goYyl7Zi5jYWxsKHRoaXMsYyk7YnJlYWt9fXRyeXtzPUtBLmNhbGwodGhpcyxhKX1jYXRjaChRKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoUSl9Zm9yKEM9MCxsPUIubGVuZ3RoO0M8bDspcz1zLnRoZW4oQltDKytdLEJbQysrXSk7cmV0dXJuIHN9Z2V0VXJpKHQpe3Q9Yih0aGlzLmRlZmF1bHRzLHQpO2xldCBlPUVBKHQuYmFzZVVSTCx0LnVybCx0LmFsbG93QWJzb2x1dGVVcmxzKTtyZXR1cm4gbkEoZSx0LnBhcmFtcyx0LnBhcmFtc1NlcmlhbGl6ZXIpfX07aS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSxmdW5jdGlvbih0KXtJQS5wcm90b3R5cGVbdF09ZnVuY3Rpb24oZSxJKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KGIoSXx8e30se21ldGhvZDp0LHVybDplLGRhdGE6KEl8fHt9KS5kYXRhfSkpfX0pO2kuZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoSSl7cmV0dXJuIGZ1bmN0aW9uKGcsbyxuKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KGIobnx8e30se21ldGhvZDp0LGhlYWRlcnM6ST97IkNvbnRlbnQtVHlwZSI6Im11bHRpcGFydC9mb3JtLWRhdGEifTp7fSx1cmw6ZyxkYXRhOm99KSl9fUlBLnByb3RvdHlwZVt0XT1lKCksSUEucHJvdG90eXBlW3QrIkZvcm0iXT1lKCEwKX0pO3ZhciBmQT1JQTt2YXIgbHQ9Y2xhc3MgQXtjb25zdHJ1Y3Rvcih0KXtpZih0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7bGV0IGU7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGcpe2U9Z30pO2xldCBJPXRoaXM7dGhpcy5wcm9taXNlLnRoZW4ocj0+e2lmKCFJLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBnPUkuX2xpc3RlbmVycy5sZW5ndGg7Zm9yKDtnLS0gPjA7KUkuX2xpc3RlbmVyc1tnXShyKTtJLl9saXN0ZW5lcnM9bnVsbH0pLHRoaXMucHJvbWlzZS50aGVuPXI9PntsZXQgZyxvPW5ldyBQcm9taXNlKG49PntJLnN1YnNjcmliZShuKSxnPW59KS50aGVuKHIpO3JldHVybiBvLmNhbmNlbD1mdW5jdGlvbigpe0kudW5zdWJzY3JpYmUoZyl9LG99LHQoZnVuY3Rpb24oZyxvLG4pe0kucmVhc29ufHwoSS5yZWFzb249bmV3IEgoZyxvLG4pLGUoSS5yZWFzb24pKX0pfXRocm93SWZSZXF1ZXN0ZWQoKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn1zdWJzY3JpYmUodCl7aWYodGhpcy5yZWFzb24pe3QodGhpcy5yZWFzb24pO3JldHVybn10aGlzLl9saXN0ZW5lcnM/dGhpcy5fbGlzdGVuZXJzLnB1c2godCk6dGhpcy5fbGlzdGVuZXJzPVt0XX11bnN1YnNjcmliZSh0KXtpZighdGhpcy5fbGlzdGVuZXJzKXJldHVybjtsZXQgZT10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZih0KTtlIT09LTEmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UoZSwxKX10b0Fib3J0U2lnbmFsKCl7bGV0IHQ9bmV3IEFib3J0Q29udHJvbGxlcixlPUk9Pnt0LmFib3J0KEkpfTtyZXR1cm4gdGhpcy5zdWJzY3JpYmUoZSksdC5zaWduYWwudW5zdWJzY3JpYmU9KCk9PnRoaXMudW5zdWJzY3JpYmUoZSksdC5zaWduYWx9c3RhdGljIHNvdXJjZSgpe2xldCB0O3JldHVybnt0b2tlbjpuZXcgQShmdW5jdGlvbihyKXt0PXJ9KSxjYW5jZWw6dH19fSx1ZT1sdDtmdW5jdGlvbiB1dChBKXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIEEuYXBwbHkobnVsbCxlKX19ZnVuY3Rpb24gZHQoQSl7cmV0dXJuIGkuaXNPYmplY3QoQSkmJkEuaXNBeGlvc0Vycm9yPT09ITB9dmFyIER0PXtDb250aW51ZToxMDAsU3dpdGNoaW5nUHJvdG9jb2xzOjEwMSxQcm9jZXNzaW5nOjEwMixFYXJseUhpbnRzOjEwMyxPazoyMDAsQ3JlYXRlZDoyMDEsQWNjZXB0ZWQ6MjAyLE5vbkF1dGhvcml0YXRpdmVJbmZvcm1hdGlvbjoyMDMsTm9Db250ZW50OjIwNCxSZXNldENvbnRlbnQ6MjA1LFBhcnRpYWxDb250ZW50OjIwNixNdWx0aVN0YXR1czoyMDcsQWxyZWFkeVJlcG9ydGVkOjIwOCxJbVVzZWQ6MjI2LE11bHRpcGxlQ2hvaWNlczozMDAsTW92ZWRQZXJtYW5lbnRseTozMDEsRm91bmQ6MzAyLFNlZU90aGVyOjMwMyxOb3RNb2RpZmllZDozMDQsVXNlUHJveHk6MzA1LFVudXNlZDozMDYsVGVtcG9yYXJ5UmVkaXJlY3Q6MzA3LFBlcm1hbmVudFJlZGlyZWN0OjMwOCxCYWRSZXF1ZXN0OjQwMCxVbmF1dGhvcml6ZWQ6NDAxLFBheW1lbnRSZXF1aXJlZDo0MDIsRm9yYmlkZGVuOjQwMyxOb3RGb3VuZDo0MDQsTWV0aG9kTm90QWxsb3dlZDo0MDUsTm90QWNjZXB0YWJsZTo0MDYsUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkOjQwNyxSZXF1ZXN0VGltZW91dDo0MDgsQ29uZmxpY3Q6NDA5LEdvbmU6NDEwLExlbmd0aFJlcXVpcmVkOjQxMSxQcmVjb25kaXRpb25GYWlsZWQ6NDEyLFBheWxvYWRUb29MYXJnZTo0MTMsVXJpVG9vTG9uZzo0MTQsVW5zdXBwb3J0ZWRNZWRpYVR5cGU6NDE1LFJhbmdlTm90U2F0aXNmaWFibGU6NDE2LEV4cGVjdGF0aW9uRmFpbGVkOjQxNyxJbUFUZWFwb3Q6NDE4LE1pc2RpcmVjdGVkUmVxdWVzdDo0MjEsVW5wcm9jZXNzYWJsZUVudGl0eTo0MjIsTG9ja2VkOjQyMyxGYWlsZWREZXBlbmRlbmN5OjQyNCxUb29FYXJseTo0MjUsVXBncmFkZVJlcXVpcmVkOjQyNixQcmVjb25kaXRpb25SZXF1aXJlZDo0MjgsVG9vTWFueVJlcXVlc3RzOjQyOSxSZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6NDMxLFVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zOjQ1MSxJbnRlcm5hbFNlcnZlckVycm9yOjUwMCxOb3RJbXBsZW1lbnRlZDo1MDEsQmFkR2F0ZXdheTo1MDIsU2VydmljZVVuYXZhaWxhYmxlOjUwMyxHYXRld2F5VGltZW91dDo1MDQsSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6NTA1LFZhcmlhbnRBbHNvTmVnb3RpYXRlczo1MDYsSW5zdWZmaWNpZW50U3RvcmFnZTo1MDcsTG9vcERldGVjdGVkOjUwOCxOb3RFeHRlbmRlZDo1MTAsTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NTExfTtPYmplY3QuZW50cmllcyhEdCkuZm9yRWFjaCgoW0EsdF0pPT57RHRbdF09QX0pO3ZhciBkZT1EdDtmdW5jdGlvbiBEZShBKXtsZXQgdD1uZXcgZkEoQSksZT1vQShmQS5wcm90b3R5cGUucmVxdWVzdCx0KTtyZXR1cm4gaS5leHRlbmQoZSxmQS5wcm90b3R5cGUsdCx7YWxsT3duS2V5czohMH0pLGkuZXh0ZW5kKGUsdCxudWxsLHthbGxPd25LZXlzOiEwfSksZS5jcmVhdGU9ZnVuY3Rpb24ocil7cmV0dXJuIERlKGIoQSxyKSl9LGV9dmFyIG09RGUoQUEpO20uQXhpb3M9ZkE7bS5DYW5jZWxlZEVycm9yPUg7bS5DYW5jZWxUb2tlbj11ZTttLmlzQ2FuY2VsPWFBO20uVkVSU0lPTj1PQTttLnRvRm9ybURhdGE9VDttLkF4aW9zRXJyb3I9dTttLkNhbmNlbD1tLkNhbmNlbGVkRXJyb3I7bS5hbGw9ZnVuY3Rpb24odCl7cmV0dXJuIFByb21pc2UuYWxsKHQpfTttLnNwcmVhZD11dDttLmlzQXhpb3NFcnJvcj1kdDttLm1lcmdlQ29uZmlnPWI7bS5BeGlvc0hlYWRlcnM9cDttLmZvcm1Ub0pTT049QT0+SkEoaS5pc0hUTUxGb3JtKEEpP25ldyBGb3JtRGF0YShBKTpBKTttLmdldEFkYXB0ZXI9TUEuZ2V0QWRhcHRlcjttLkh0dHBTdGF0dXNDb2RlPWRlO20uZGVmYXVsdD1tO3ZhciB4QT1tO3ZhcntBeGlvczpSaSxBeGlvc0Vycm9yOk5pLENhbmNlbGVkRXJyb3I6VWksaXNDYW5jZWw6R2ksQ2FuY2VsVG9rZW46a2ksVkVSU0lPTjpMaSxhbGw6YmksQ2FuY2VsOkppLGlzQXhpb3NFcnJvcjpIaSxzcHJlYWQ6WWksdG9Gb3JtRGF0YTpxaSxBeGlvc0hlYWRlcnM6TWksSHR0cFN0YXR1c0NvZGU6S2ksZm9ybVRvSlNPTjpPaSxnZXRBZGFwdGVyOlRpLG1lcmdlQ29uZmlnOnhpfT14QTt2YXIgbEEsTSx5dCxodD17ZW52OntlbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoOmZ1bmN0aW9uKEEpe3l0PW5ldyBVaW50OEFycmF5KE0uZXhwb3J0cy5tZW1vcnkuYnVmZmVyKX19fSxQQT1jbGFzc3tpbml0KCl7cmV0dXJuIGxBfHwodHlwZW9mIGZldGNoPCJ1Ij9sQT1mZXRjaCgiZGF0YTphcHBsaWNhdGlvbi93YXNtO2Jhc2U2NCwiK2hlKS50aGVuKHQ9PnQuYXJyYXlCdWZmZXIoKSkudGhlbih0PT5XZWJBc3NlbWJseS5pbnN0YW50aWF0ZSh0LGh0KSkudGhlbih0aGlzLl9pbml0KTpsQT1XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShCdWZmZXIuZnJvbShoZSwiYmFzZTY0IiksaHQpLnRoZW4odGhpcy5faW5pdCksbEEpfV9pbml0KHQpe009dC5pbnN0YW5jZSxodC5lbnYuZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aCgwKX1kZWNvZGUodCxlPTApe2lmKCFNKXRocm93IG5ldyBFcnJvcigiWlNURERlY29kZXI6IEF3YWl0IC5pbml0KCkgYmVmb3JlIGRlY29kaW5nLiIpO2xldCBJPXQuYnl0ZUxlbmd0aCxyPU0uZXhwb3J0cy5tYWxsb2MoSSk7eXQuc2V0KHQsciksZT1lfHxOdW1iZXIoTS5leHBvcnRzLlpTVERfZmluZERlY29tcHJlc3NlZFNpemUocixJKSk7bGV0IGc9TS5leHBvcnRzLm1hbGxvYyhlKSxvPU0uZXhwb3J0cy5aU1REX2RlY29tcHJlc3MoZyxlLHIsSSksbj15dC5zbGljZShnLGcrbyk7cmV0dXJuIE0uZXhwb3J0cy5mcmVlKHIpLE0uZXhwb3J0cy5mcmVlKGcpLG59fSxoZT0iQUdGemJRRUFBQUFCYmc1Z0EzOS9md0YvWUFGL0FYOWdBbjkvQUdBQmZ3QmdCWDkvZjM5L0FYOWdBMzkvZndCZ0JIOS9mMzhCZjJBQUFYOWdBbjkvQVg5Z0IzOS9mMzkvZjM4QmYyQUNmMzhCZm1BSWYzOS9mMzkvZjM4QmYyQUZmMzkvZjM4QVlBNS9mMzkvZjM5L2YzOS9mMzkvZndGL0FpY0JBMlZ1ZGg5bGJYTmpjbWx3ZEdWdVgyNXZkR2xtZVY5dFpXMXZjbmxmWjNKdmQzUm9BQU1ESXlJSEFBQUJBUU1IQXdFQUNRUUFCUUVJQ0FFRkJnUUVCQU1HQUFBS0FBVUxEQTBHQkFVQmNBRUJBUVVIQVFHQUFvQ0FBZ1lJQVg4QlFZQ2pCQXNIcmdFTEJtMWxiVzl5ZVFJQUJtMWhiR3h2WXdBRkJHWnlaV1VBQmd4YVUxUkVYMmx6UlhKeWIzSUFFaGxhVTFSRVgyWnBibVJFWldOdmJYQnlaWE56WldSVGFYcGxBQndQV2xOVVJGOWtaV052YlhCeVpYTnpBQ0laWDE5cGJtUnBjbVZqZEY5bWRXNWpkR2x2Ymw5MFlXSnNaUUVBRUY5ZlpYSnlibTlmYkc5allYUnBiMjRBQVFsemRHRmphMU5oZG1VQUJ3eHpkR0ZqYTFKbGMzUnZjbVVBQ0FwemRHRmphMEZzYkc5akFBa0tpL0lCSWdVQVFZUWZDek1CQVg4Z0FnUkFJQUFoQXdOQUlBTWdBUzBBQURvQUFDQURRUUZxSVFNZ0FVRUJhaUVCSUFKQkFXc2lBZzBBQ3dzZ0FBc3BBUUYvSUFJRVFDQUFJUU1EUUNBRElBRTZBQUFnQTBFQmFpRURJQUpCQVdzaUFnMEFDd3NnQUF0c0FRSi9RWUFmS0FJQUlnRWdBRUVIYWtGNGNTSUNhaUVBQWtBZ0FrRUFJQUFnQVUwYkRRQWdBRDhBUVJCMFN3UkFJQUEvQUVFUWRHdEIvLzhEYWtFUWRrQUFRWDlHQkg5QkFBVkJBQkFBUVFFTFJRMEJDMEdBSHlBQU5nSUFJQUVQQzBHRUgwRXdOZ0lBUVg4THVTY0JDMzhqQUVFUWF5SUtKQUFDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCaUI4b0FnQWlCa0VRSUFCQkMycEJlSEVnQUVFTFNSc2lCVUVEZGlJQWRpSUJRUU54QkVBQ1FDQUJRWDl6UVFGeElBQnFJZ0pCQTNRaUFVR3dIMm9pQUNBQlFiZ2ZhaWdDQUNJQktBSUlJZ1JHQkVCQmlCOGdCa0YrSUFKM2NUWUNBQXdCQ3lBRUlBQTJBZ3dnQUNBRU5nSUlDeUFCUVFocUlRQWdBU0FDUVFOMElnSkJBM0kyQWdRZ0FTQUNhaUlCSUFFb0FnUkJBWEkyQWdRTUR3c2dCVUdRSHlnQ0FDSUhUUTBCSUFFRVFBSkFRUUlnQUhRaUFrRUFJQUpyY2lBQklBQjBjV2dpQVVFRGRDSUFRYkFmYWlJQ0lBQkJ1QjlxS0FJQUlnQW9BZ2dpQkVZRVFFR0lIeUFHUVg0Z0FYZHhJZ1kyQWdBTUFRc2dCQ0FDTmdJTUlBSWdCRFlDQ0FzZ0FDQUZRUU55TmdJRUlBQWdCV29pQ0NBQlFRTjBJZ0VnQldzaUJFRUJjallDQkNBQUlBRnFJQVEyQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUZCbkI4b0FnQWhBZ0ovSUFaQkFTQUhRUU4yZENJRGNVVUVRRUdJSHlBRElBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEF5QUJJQUkyQWdnZ0F5QUNOZ0lNSUFJZ0FUWUNEQ0FDSUFNMkFnZ0xJQUJCQ0dvaEFFR2NIeUFJTmdJQVFaQWZJQVEyQWdBTUR3dEJqQjhvQWdBaUMwVU5BU0FMYUVFQ2RFRzRJV29vQWdBaUFpZ0NCRUY0Y1NBRmF5RURJQUloQVFOQUFrQWdBU2dDRUNJQVJRUkFJQUVvQWhRaUFFVU5BUXNnQUNnQ0JFRjRjU0FGYXlJQklBTWdBU0FEU1NJQkd5RURJQUFnQWlBQkd5RUNJQUFoQVF3QkN3c2dBaWdDR0NFSklBSWdBaWdDRENJRVJ3UkFRWmdmS0FJQUdpQUNLQUlJSWdBZ0JEWUNEQ0FFSUFBMkFnZ01EZ3NnQWtFVWFpSUJLQUlBSWdCRkJFQWdBaWdDRUNJQVJRMERJQUpCRUdvaEFRc0RRQ0FCSVFnZ0FDSUVRUlJxSWdFb0FnQWlBQTBBSUFSQkVHb2hBU0FFS0FJUUlnQU5BQXNnQ0VFQU5nSUFEQTBMUVg4aEJTQUFRYjkvU3cwQUlBQkJDMm9pQUVGNGNTRUZRWXdmS0FJQUlnaEZEUUJCQUNBRmF5RURBa0FDUUFKQUFuOUJBQ0FGUVlBQ1NRMEFHa0VmSUFWQi8vLy9CMHNOQUJvZ0JVRW1JQUJCQ0habklnQnJka0VCY1NBQVFRRjBhMEUrYWdzaUIwRUNkRUc0SVdvb0FnQWlBVVVFUUVFQUlRQU1BUXRCQUNFQUlBVkJHU0FIUVFGMmEwRUFJQWRCSDBjYmRDRUNBMEFDUUNBQktBSUVRWGh4SUFWcklnWWdBMDhOQUNBQklRUWdCaUlERFFCQkFDRURJQUVoQUF3REN5QUFJQUVvQWhRaUJpQUdJQUVnQWtFZGRrRUVjV29vQWhBaUFVWWJJQUFnQmhzaEFDQUNRUUYwSVFJZ0FRMEFDd3NnQUNBRWNrVUVRRUVBSVFSQkFpQUhkQ0lBUVFBZ0FHdHlJQWh4SWdCRkRRTWdBR2hCQW5SQnVDRnFLQUlBSVFBTElBQkZEUUVMQTBBZ0FDZ0NCRUY0Y1NBRmF5SUNJQU5KSVFFZ0FpQURJQUViSVFNZ0FDQUVJQUViSVFRZ0FDZ0NFQ0lCQkg4Z0FRVWdBQ2dDRkFzaUFBMEFDd3NnQkVVTkFDQURRWkFmS0FJQUlBVnJUdzBBSUFRb0FoZ2hCeUFFSUFRb0Fnd2lBa2NFUUVHWUh5Z0NBQm9nQkNnQ0NDSUFJQUkyQWd3Z0FpQUFOZ0lJREF3TElBUkJGR29pQVNnQ0FDSUFSUVJBSUFRb0FoQWlBRVVOQXlBRVFSQnFJUUVMQTBBZ0FTRUdJQUFpQWtFVWFpSUJLQUlBSWdBTkFDQUNRUkJxSVFFZ0FpZ0NFQ0lBRFFBTElBWkJBRFlDQUF3TEN5QUZRWkFmS0FJQUlnUk5CRUJCbkI4b0FnQWhBQUpBSUFRZ0JXc2lBVUVRVHdSQUlBQWdCV29pQWlBQlFRRnlOZ0lFSUFBZ0JHb2dBVFlDQUNBQUlBVkJBM0kyQWdRTUFRc2dBQ0FFUVFOeU5nSUVJQUFnQkdvaUFTQUJLQUlFUVFGeU5nSUVRUUFoQWtFQUlRRUxRWkFmSUFFMkFnQkJuQjhnQWpZQ0FDQUFRUWhxSVFBTURRc2dCVUdVSHlnQ0FDSUNTUVJBUVpRZklBSWdCV3NpQVRZQ0FFR2dIMEdnSHlnQ0FDSUFJQVZxSWdJMkFnQWdBaUFCUVFGeU5nSUVJQUFnQlVFRGNqWUNCQ0FBUVFocUlRQU1EUXRCQUNFQUlBVkJMMm9pQXdKL1FlQWlLQUlBQkVCQjZDSW9BZ0FNQVF0QjdDSkNmemNDQUVIa0lrS0FvSUNBZ0lBRU53SUFRZUFpSUFwQkRHcEJjSEZCMktyVnFnVnpOZ0lBUWZRaVFRQTJBZ0JCeENKQkFEWUNBRUdBSUFzaUFXb2lCa0VBSUFGcklnaHhJZ0VnQlUwTkRFSEFJaWdDQUNJRUJFQkJ1Q0lvQWdBaUJ5QUJhaUlKSUFkTklBUWdDVWx5RFEwTEFrQkJ4Q0l0QUFCQkJIRkZCRUFDUUFKQUFrQUNRRUdnSHlnQ0FDSUVCRUJCeUNJaEFBTkFJQVFnQUNnQ0FDSUhUd1JBSUFjZ0FDZ0NCR29nQkVzTkF3c2dBQ2dDQ0NJQURRQUxDMEVBRUFRaUFrRi9SZzBESUFFaEJrSGtJaWdDQUNJQVFRRnJJZ1FnQW5FRVFDQUJJQUpySUFJZ0JHcEJBQ0FBYTNGcUlRWUxJQVVnQms4TkEwSEFJaWdDQUNJQUJFQkJ1Q0lvQWdBaUJDQUdhaUlJSUFSTklBQWdDRWx5RFFRTElBWVFCQ0lBSUFKSERRRU1CUXNnQmlBQ2F5QUljU0lHRUFRaUFpQUFLQUlBSUFBb0FnUnFSZzBCSUFJaEFBc2dBRUYvUmcwQklBVkJNR29nQmswRVFDQUFJUUlNQkF0QjZDSW9BZ0FpQWlBRElBWnJha0VBSUFKcmNTSUNFQVJCZjBZTkFTQUNJQVpxSVFZZ0FDRUNEQU1MSUFKQmYwY05BZ3RCeENKQnhDSW9BZ0JCQkhJMkFnQUxJQUVRQkNJQ1FYOUdRUUFRQkNJQVFYOUdjaUFBSUFKTmNnMEZJQUFnQW1zaUJpQUZRU2hxVFEwRkMwRzRJa0c0SWlnQ0FDQUdhaUlBTmdJQVFid2lLQUlBSUFCSkJFQkJ2Q0lnQURZQ0FBc0NRRUdnSHlnQ0FDSURCRUJCeUNJaEFBTkFJQUlnQUNnQ0FDSUJJQUFvQWdRaUJHcEdEUUlnQUNnQ0NDSUFEUUFMREFRTFFaZ2ZLQUlBSWdCQkFDQUFJQUpORzBVRVFFR1lIeUFDTmdJQUMwRUFJUUJCekNJZ0JqWUNBRUhJSWlBQ05nSUFRYWdmUVg4MkFnQkJyQjlCNENJb0FnQTJBZ0JCMUNKQkFEWUNBQU5BSUFCQkEzUWlBVUc0SDJvZ0FVR3dIMm9pQkRZQ0FDQUJRYndmYWlBRU5nSUFJQUJCQVdvaUFFRWdSdzBBQzBHVUh5QUdRU2hySWdCQmVDQUNhMEVIY1NJQmF5SUVOZ0lBUWFBZklBRWdBbW9pQVRZQ0FDQUJJQVJCQVhJMkFnUWdBQ0FDYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFRTElBSWdBMDBnQVNBRFMzSU5BaUFBS0FJTVFRaHhEUUlnQUNBRUlBWnFOZ0lFUWFBZklBTkJlQ0FEYTBFSGNTSUFhaUlCTmdJQVFaUWZRWlFmS0FJQUlBWnFJZ0lnQUdzaUFEWUNBQ0FCSUFCQkFYSTJBZ1FnQWlBRGFrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBTUxRUUFoQkF3S0MwRUFJUUlNQ0F0Qm1COG9BZ0FnQWtzRVFFR1lIeUFDTmdJQUN5QUNJQVpxSVFGQnlDSWhBQUpBQWtBQ1FBTkFJQUVnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEJ5Q0loQUFOQUlBTWdBQ2dDQUNJQlR3UkFJQUVnQUNnQ0JHb2lCQ0FEU3cwREN5QUFLQUlJSVFBTUFBc0FDeUFBSUFJMkFnQWdBQ0FBS0FJRUlBWnFOZ0lFSUFKQmVDQUNhMEVIY1dvaUJ5QUZRUU55TmdJRUlBRkJlQ0FCYTBFSGNXb2lCaUFGSUFkcUlnVnJJUUFnQXlBR1JnUkFRYUFmSUFVMkFnQkJsQjlCbEI4b0FnQWdBR29pQURZQ0FDQUZJQUJCQVhJMkFnUU1DQXRCbkI4b0FnQWdCa1lFUUVHY0h5QUZOZ0lBUVpBZlFaQWZLQUlBSUFCcUlnQTJBZ0FnQlNBQVFRRnlOZ0lFSUFBZ0JXb2dBRFlDQUF3SUN5QUdLQUlFSWdOQkEzRkJBVWNOQmlBRFFYaHhJUWtnQTBIL0FVMEVRQ0FHS0FJTUlnRWdCaWdDQ0NJQ1JnUkFRWWdmUVlnZktBSUFRWDRnQTBFRGRuZHhOZ0lBREFjTElBSWdBVFlDRENBQklBSTJBZ2dNQmdzZ0JpZ0NHQ0VJSUFZZ0JpZ0NEQ0lDUndSQUlBWW9BZ2dpQVNBQ05nSU1JQUlnQVRZQ0NBd0ZDeUFHUVJScUlnRW9BZ0FpQTBVRVFDQUdLQUlRSWdORkRRUWdCa0VRYWlFQkN3TkFJQUVoQkNBRElnSkJGR29pQVNnQ0FDSUREUUFnQWtFUWFpRUJJQUlvQWhBaUF3MEFDeUFFUVFBMkFnQU1CQXRCbEI4Z0JrRW9heUlBUVhnZ0FtdEJCM0VpQVdzaUNEWUNBRUdnSHlBQklBSnFJZ0UyQWdBZ0FTQUlRUUZ5TmdJRUlBQWdBbXBCS0RZQ0JFR2tIMEh3SWlnQ0FEWUNBQ0FESUFSQkp5QUVhMEVIY1dwQkwyc2lBQ0FBSUFOQkVHcEpHeUlCUVJzMkFnUWdBVUhRSWlrQ0FEY0NFQ0FCUWNnaUtRSUFOd0lJUWRBaUlBRkJDR28yQWdCQnpDSWdCallDQUVISUlpQUNOZ0lBUWRRaVFRQTJBZ0FnQVVFWWFpRUFBMEFnQUVFSE5nSUVJQUJCQ0dvZ0FFRUVhaUVBSUFSSkRRQUxJQUVnQTBZTkFDQUJJQUVvQWdSQmZuRTJBZ1FnQXlBQklBTnJJZ0pCQVhJMkFnUWdBU0FDTmdJQUlBSkIvd0ZOQkVBZ0FrRjRjVUd3SDJvaEFBSi9RWWdmS0FJQUlnRkJBU0FDUVFOMmRDSUNjVVVFUUVHSUh5QUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBU0FBSUFNMkFnZ2dBU0FETmdJTUlBTWdBRFlDRENBRElBRTJBZ2dNQVF0Qkh5RUFJQUpCLy8vL0IwMEVRQ0FDUVNZZ0FrRUlkbWNpQUd0MlFRRnhJQUJCQVhSclFUNXFJUUFMSUFNZ0FEWUNIQ0FEUWdBM0FoQWdBRUVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQkVFQklBQjBJZ1p4UlFSQVFZd2ZJQVFnQm5JMkFnQWdBU0FETmdJQURBRUxJQUpCR1NBQVFRRjJhMEVBSUFCQkgwY2JkQ0VBSUFFb0FnQWhCQU5BSUFRaUFTZ0NCRUY0Y1NBQ1JnMENJQUJCSFhZaEJDQUFRUUYwSVFBZ0FTQUVRUVJ4YWlJR0tBSVFJZ1FOQUFzZ0JpQUROZ0lRQ3lBRElBRTJBaGdnQXlBRE5nSU1JQU1nQXpZQ0NBd0JDeUFCS0FJSUlnQWdBellDRENBQklBTTJBZ2dnQTBFQU5nSVlJQU1nQVRZQ0RDQURJQUEyQWdnTFFaUWZLQUlBSWdBZ0JVME5BRUdVSHlBQUlBVnJJZ0UyQWdCQm9COUJvQjhvQWdBaUFDQUZhaUlDTmdJQUlBSWdBVUVCY2pZQ0JDQUFJQVZCQTNJMkFnUWdBRUVJYWlFQURBZ0xRWVFmUVRBMkFnQkJBQ0VBREFjTFFRQWhBZ3NnQ0VVTkFBSkFJQVlvQWh3aUFVRUNkRUc0SVdvaUJDZ0NBQ0FHUmdSQUlBUWdBallDQUNBQ0RRRkJqQjlCakI4b0FnQkJmaUFCZDNFMkFnQU1BZ3NnQ0VFUVFSUWdDQ2dDRUNBR1JodHFJQUkyQWdBZ0FrVU5BUXNnQWlBSU5nSVlJQVlvQWhBaUFRUkFJQUlnQVRZQ0VDQUJJQUkyQWhnTElBWW9BaFFpQVVVTkFDQUNJQUUyQWhRZ0FTQUNOZ0lZQ3lBQUlBbHFJUUFnQmlBSmFpSUdLQUlFSVFNTElBWWdBMEYrY1RZQ0JDQUZJQUJCQVhJMkFnUWdBQ0FGYWlBQU5nSUFJQUJCL3dGTkJFQWdBRUY0Y1VHd0gyb2hBUUovUVlnZktBSUFJZ0pCQVNBQVFRTjJkQ0lBY1VVRVFFR0lIeUFBSUFKeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQUNBQklBVTJBZ2dnQUNBRk5nSU1JQVVnQVRZQ0RDQUZJQUEyQWdnTUFRdEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBVWdBellDSENBRlFnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUFrRUJJQU4wSWdSeFJRUkFRWXdmSUFJZ0JISTJBZ0FnQVNBRk5nSUFEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQWdOQUlBSWlBU2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBaUFEUVFGMElRTWdBU0FDUVFSeGFpSUVLQUlRSWdJTkFBc2dCQ0FGTmdJUUN5QUZJQUUyQWhnZ0JTQUZOZ0lNSUFVZ0JUWUNDQXdCQ3lBQktBSUlJZ0FnQlRZQ0RDQUJJQVUyQWdnZ0JVRUFOZ0lZSUFVZ0FUWUNEQ0FGSUFBMkFnZ0xJQWRCQ0dvaEFBd0NDd0pBSUFkRkRRQUNRQ0FFS0FJY0lnQkJBblJCdUNGcUlnRW9BZ0FnQkVZRVFDQUJJQUkyQWdBZ0FnMEJRWXdmSUFoQmZpQUFkM0VpQ0RZQ0FBd0NDeUFIUVJCQkZDQUhLQUlRSUFSR0cyb2dBallDQUNBQ1JRMEJDeUFDSUFjMkFoZ2dCQ2dDRUNJQUJFQWdBaUFBTmdJUUlBQWdBallDR0FzZ0JDZ0NGQ0lBUlEwQUlBSWdBRFlDRkNBQUlBSTJBaGdMQWtBZ0EwRVBUUVJBSUFRZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQkdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFRZ0JVRURjallDQkNBRUlBVnFJZ0lnQTBFQmNqWUNCQ0FDSUFOcUlBTTJBZ0FnQTBIL0FVMEVRQ0FEUVhoeFFiQWZhaUVBQW45QmlCOG9BZ0FpQVVFQklBTkJBM1owSWdOeFJRUkFRWWdmSUFFZ0EzSTJBZ0FnQUF3QkN5QUFLQUlJQ3lFQklBQWdBallDQ0NBQklBSTJBZ3dnQWlBQU5nSU1JQUlnQVRZQ0NBd0JDMEVmSVFBZ0EwSC8vLzhIVFFSQUlBTkJKaUFEUVFoMlp5SUFhM1pCQVhFZ0FFRUJkR3RCUG1vaEFBc2dBaUFBTmdJY0lBSkNBRGNDRUNBQVFRSjBRYmdoYWlFQkFrQUNRQ0FJUVFFZ0FIUWlCbkZGQkVCQmpCOGdCaUFJY2pZQ0FDQUJJQUkyQWdBTUFRc2dBMEVaSUFCQkFYWnJRUUFnQUVFZlJ4dDBJUUFnQVNnQ0FDRUZBMEFnQlNJQktBSUVRWGh4SUFOR0RRSWdBRUVkZGlFR0lBQkJBWFFoQUNBQklBWkJCSEZxSWdZb0FoQWlCUTBBQ3lBR0lBSTJBaEFMSUFJZ0FUWUNHQ0FDSUFJMkFnd2dBaUFDTmdJSURBRUxJQUVvQWdnaUFDQUNOZ0lNSUFFZ0FqWUNDQ0FDUVFBMkFoZ2dBaUFCTmdJTUlBSWdBRFlDQ0FzZ0JFRUlhaUVBREFFTEFrQWdDVVVOQUFKQUlBSW9BaHdpQUVFQ2RFRzRJV29pQVNnQ0FDQUNSZ1JBSUFFZ0JEWUNBQ0FFRFFGQmpCOGdDMEYrSUFCM2NUWUNBQXdDQ3lBSlFSQkJGQ0FKS0FJUUlBSkdHMm9nQkRZQ0FDQUVSUTBCQ3lBRUlBazJBaGdnQWlnQ0VDSUFCRUFnQkNBQU5nSVFJQUFnQkRZQ0dBc2dBaWdDRkNJQVJRMEFJQVFnQURZQ0ZDQUFJQVEyQWhnTEFrQWdBMEVQVFFSQUlBSWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0Ftb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBSWdCVUVEY2pZQ0JDQUNJQVZxSWdRZ0EwRUJjallDQkNBRElBUnFJQU0yQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUJCbkI4b0FnQWhBUUovUVFFZ0IwRURkblFpQlNBR2NVVUVRRUdJSHlBRklBWnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEJpQUFJQUUyQWdnZ0JpQUJOZ0lNSUFFZ0FEWUNEQ0FCSUFZMkFnZ0xRWndmSUFRMkFnQkJrQjhnQXpZQ0FBc2dBa0VJYWlFQUN5QUtRUkJxSkFBZ0FBdlNDd0VIZndKQUlBQkZEUUFnQUVFSWF5SUNJQUJCQkdzb0FnQWlBVUY0Y1NJQWFpRUZBa0FnQVVFQmNRMEFJQUZCQTNGRkRRRWdBaUFDS0FJQUlnRnJJZ0pCbUI4b0FnQkpEUUVnQUNBQmFpRUFBa0FDUUVHY0h5Z0NBQ0FDUndSQUlBRkIvd0ZOQkVBZ0FVRURkaUVFSUFJb0Fnd2lBU0FDS0FJSUlnTkdCRUJCaUI5QmlCOG9BZ0JCZmlBRWQzRTJBZ0FNQlFzZ0F5QUJOZ0lNSUFFZ0F6WUNDQXdFQ3lBQ0tBSVlJUVlnQWlBQ0tBSU1JZ0ZIQkVBZ0FpZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQUpCRkdvaUJDZ0NBQ0lEUlFSQUlBSW9BaEFpQTBVTkFpQUNRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGS0FJRUlnRkJBM0ZCQTBjTkFrR1FIeUFBTmdJQUlBVWdBVUYrY1RZQ0JDQUNJQUJCQVhJMkFnUWdCU0FBTmdJQUR3dEJBQ0VCQ3lBR1JRMEFBa0FnQWlnQ0hDSURRUUowUWJnaGFpSUVLQUlBSUFKR0JFQWdCQ0FCTmdJQUlBRU5BVUdNSDBHTUh5Z0NBRUYrSUFOM2NUWUNBQXdDQ3lBR1FSQkJGQ0FHS0FJUUlBSkdHMm9nQVRZQ0FDQUJSUTBCQ3lBQklBWTJBaGdnQWlnQ0VDSURCRUFnQVNBRE5nSVFJQU1nQVRZQ0dBc2dBaWdDRkNJRFJRMEFJQUVnQXpZQ0ZDQURJQUUyQWhnTElBSWdCVThOQUNBRktBSUVJZ0ZCQVhGRkRRQUNRQUpBQWtBQ1FDQUJRUUp4UlFSQVFhQWZLQUlBSUFWR0JFQkJvQjhnQWpZQ0FFR1VIMEdVSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUNRWndmS0FJQVJ3MEdRWkFmUVFBMkFnQkJuQjlCQURZQ0FBOExRWndmS0FJQUlBVkdCRUJCbkI4Z0FqWUNBRUdRSDBHUUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FBSUFKcUlBQTJBZ0FQQ3lBQlFYaHhJQUJxSVFBZ0FVSC9BVTBFUUNBQlFRTjJJUVFnQlNnQ0RDSUJJQVVvQWdnaUEwWUVRRUdJSDBHSUh5Z0NBRUYrSUFSM2NUWUNBQXdGQ3lBRElBRTJBZ3dnQVNBRE5nSUlEQVFMSUFVb0FoZ2hCaUFGSUFVb0Fnd2lBVWNFUUVHWUh5Z0NBQm9nQlNnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBVkJGR29pQkNnQ0FDSURSUVJBSUFVb0FoQWlBMFVOQWlBRlFSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZJQUZCZm5FMkFnUWdBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQXdEQzBFQUlRRUxJQVpGRFFBQ1FDQUZLQUljSWdOQkFuUkJ1Q0ZxSWdRb0FnQWdCVVlFUUNBRUlBRTJBZ0FnQVEwQlFZd2ZRWXdmS0FJQVFYNGdBM2R4TmdJQURBSUxJQVpCRUVFVUlBWW9BaEFnQlVZYmFpQUJOZ0lBSUFGRkRRRUxJQUVnQmpZQ0dDQUZLQUlRSWdNRVFDQUJJQU0yQWhBZ0F5QUJOZ0lZQ3lBRktBSVVJZ05GRFFBZ0FTQUROZ0lVSUFNZ0FUWUNHQXNnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUNBQ1Fad2ZLQUlBUncwQVFaQWZJQUEyQWdBUEN5QUFRZjhCVFFSQUlBQkJlSEZCc0I5cUlRRUNmMEdJSHlnQ0FDSURRUUVnQUVFRGRuUWlBSEZGQkVCQmlCOGdBQ0FEY2pZQ0FDQUJEQUVMSUFFb0FnZ0xJUUFnQVNBQ05nSUlJQUFnQWpZQ0RDQUNJQUUyQWd3Z0FpQUFOZ0lJRHd0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFJZ0F6WUNIQ0FDUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtBQ1FFR01IeWdDQUNJRVFRRWdBM1FpQjNGRkJFQkJqQjhnQkNBSGNqWUNBQ0FCSUFJMkFnQWdBaUFCTmdJWURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBUU5BSUFFaUJDZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFTQURRUUYwSVFNZ0JDQUJRUVJ4YWlJSFFSQnFLQUlBSWdFTkFBc2dCeUFDTmdJUUlBSWdCRFlDR0FzZ0FpQUNOZ0lNSUFJZ0FqWUNDQXdCQ3lBRUtBSUlJZ0FnQWpZQ0RDQUVJQUkyQWdnZ0FrRUFOZ0lZSUFJZ0JEWUNEQ0FDSUFBMkFnZ0xRYWdmUWFnZktBSUFRUUZySWdCQmZ5QUFHellDQUFzTEJBQWpBQXNHQUNBQUpBQUxFQUFqQUNBQWEwRndjU0lBSkFBZ0FBdEtBUUYvSUFBZ0FVa0VRQ0FBSUFFZ0FoQUNEd3NnQWdSQUlBQWdBbW9oQXlBQklBSnFJUUVEUUNBRFFRRnJJZ01nQVVFQmF5SUJMUUFBT2dBQUlBSkJBV3NpQWcwQUN3c2dBQXY5RGdJUmZ3RitJd0JCTUdzaUJ5UUFRYmgvSVFnQ1FDQUZSUTBBSUFRc0FBQWlDVUgvQVhFaEN3SkFJQWxCQUVnRVFDQUxRZjRBYTBFQmRpSUdJQVZQRFFKQmJDRUlJQXRCL3dCcklndEIvd0ZMRFFJZ0JFRUJhaUVJUVFBaEJRTkFJQVVnQzA4RVFDQUxJUWdnQmlFTERBTUZJQUFnQldvZ0NDQUZRUUYyYWlJRUxRQUFRUVIyT2dBQUlBQWdCVUVCY21vZ0JDMEFBRUVQY1RvQUFDQUZRUUpxSVFVTUFRc0FDd0FMSUFVZ0MwME5BU0FIUWY4Qk5nSUVJQVlnQjBFRWFpQUhRUWhxSUFSQkFXb2lEaUFMRUF3aUJFR0lmMHNFUUNBRUlRZ01BZ3RCVkNFSUlBY29BZ2dpRUVFR1N3MEJJQWNvQWdRaUVVRUJkQ0lKUVFKcXJVSUJJQkN0aGlJWVFRRWdFSFFpRFVFQmFpSUZyVUlDaG54OFFndDhRdnovLy8vLy8vLy8vd0NEUXVRQ1ZnMEJRVkloQ0NBUlFmOEJTdzBCSUExQmYzTkJBblJCNUFKcXJTQVJRUUZxSWhWQkFYU3RJQmg4UWdoOFZBMEJJQXNnQkdzaEZpQUVJQTVxSVJjZ0JrR0FCR29pRWlBRlFRSjBhaUlSSUFscVFRSnFJUTRnQmtHRUJHb2hFMEdBZ0FJZ0VIUkJFSFloQ1VFQUlRVkJBU0VQSUExQkFXc2lGQ0VLQTBBZ0JTQVZSa1VFUUFKQUlBWWdCVUVCZENJSWFpOEJBQ0lFUWYvL0EwWUVRQ0FUSUFwQkFuUnFJQVU2QUFJZ0NrRUJheUVLUVFFaEJBd0JDeUFQUVFBZ0NTQUV3VW9iSVE4TElBZ2dFV29nQkRzQkFDQUZRUUZxSVFVTUFRc0xJQVlnRHpzQmdnUWdCaUFRT3dHQUJBSkFJQW9nRkVZRVFDQU5RUU4ySVFoQ0FDRVlRUUFoRHdOQUlBd2dGVVlFUUNBSUlBMUJBWFpxUVFOcUlnbEJBWFFoQ0VFQUlRUkJBQ0VLQTBCQkFDRUZJQW9nRFU4TkJBTkFJQVZCQWtaRkJFQWdFeUFGSUFsc0lBUnFJQlJ4UVFKMGFpQU9JQVVnQ21wcUxRQUFPZ0FDSUFWQkFXb2hCUXdCQ3dzZ0NrRUNhaUVLSUFRZ0NHb2dGSEVoQkF3QUN3QUZJQVlnREVFQmRHb3VBUUFoQ1NBT0lBOXFJZ1FnR0RjQUFFRUlJUVVEUUNBRklBbE9SUVJBSUFRZ0JXb2dHRGNBQUNBRlFRaHFJUVVNQVFzTElCaENnWUtFaUpDZ3dJQUJmQ0VZSUF4QkFXb2hEQ0FKSUE5cUlROE1BUXNBQ3dBTElBMUJBM1lnRFVFQmRtcEJBMm9oQ0VFQUlRVURRQ0FNSUJWR1JRUkFRUUFoQ1NBR0lBeEJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBSlJrVUVRQ0FUSUFWQkFuUnFJQXc2QUFJRFFDQUZJQWhxSUJSeElnVWdDa3NOQUFzZ0NVRUJhaUVKREFFTEN5QU1RUUZxSVF3TUFRc0xRWDhoQ0NBRkRRSUxJQkJCQVdvaENFRUFJUVVEUUNBRklBMUdSUVJBSUJFZ0V5QUZRUUowYWlJT0xRQUNRUUYwYWlJRUlBUXZBUUFpQ1VFQmFqc0JBQ0FPSUFnZ0NXZEJZSE5xSWdRNkFBTWdEaUFKSUFSMElBMXJPd0VBSUFWQkFXb2hCUXdCQ3dzQ1FBSkFJQVl2QVlJRUJFQWdCMEVjYWlJRUlCY2dGaEFOSWdoQmlIOUxEUUlnQjBFVWFpQUVJQklRRGlBSFFReHFJQVFnRWhBT1FRQWhCUU5BSUFkQkhHb2lCQkFQSUFWQit3RkxjZzBDSUFBZ0JXb2lCaUFIUVJScUlBUVFFRG9BQUNBR0lBZEJER29nQkJBUU9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVNQXdVZ0FDQUVhaUFIUVJScUlBZEJIR29pQkJBUU9nQUFJQVlnQjBFTWFpQUVFQkE2QUFNZ0JVRUVhaUVGREFFTEFBc0FDeUFIUVJ4cUlnUWdGeUFXRUEwaUNFR0lmMHNOQVNBSFFSUnFJQVFnRWhBT0lBZEJER29nQkNBU0VBNUJBQ0VGQTBBZ0IwRWNhaUlFRUE4Z0JVSDdBVXR5UlFSQUlBQWdCV29pQmlBSFFSUnFJQVFRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVRklBQWdCR29nQjBFVWFpQUhRUnhxSWdRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBRElBVkJCR29oQlF3Q0N3c0xBbjhEUUVHNmZ5RUlJQVZCL1FGTERRTWdBQ0FGYWlJR0lBZEJGR29nQjBFY2FpSUpFQkU2QUFBZ0JrRUJhaUVFSUFrUUQwRURSZ1JBSUFkQkRHb2hDRUVDREFJTElBVkIvQUZMRFFNZ0JpQUhRUXhxSUFkQkhHb2lCQkFST2dBQklBVkJBbW9oQlNBRUVBOUJBMGNOQUFzZ0FDQUZhaUVFSUFkQkZHb2hDRUVEQ3lBRUlBZ2dCMEVjYWhBUk9nQUFJQVpxSUFCcklRZ01BUXNDZndOQVFicC9JUWdnQlVIOUFVc05BaUFBSUFWcUlnWWdCMEVVYWlBSFFSeHFJZ2tRRURvQUFDQUdRUUZxSVFRZ0NSQVBRUU5HQkVBZ0IwRU1haUVJUVFJTUFnc2dCVUg4QVVzTkFpQUdJQWRCREdvZ0IwRWNhaUlFRUJBNkFBRWdCVUVDYWlFRklBUVFEMEVEUncwQUN5QUFJQVZxSVFRZ0IwRVVhaUVJUVFNTElBUWdDQ0FIUVJ4cUVCQTZBQUFnQm1vZ0FHc2hDQXNnQ0VHSWYwc05BUXNnQ0NFRVFRQWhCU0FCUVFCQk5CQURJUWxCQUNFS0EwQWdCQ0FGUndSQUlBQWdCV29pQmkwQUFDSUJRUXRMQkVCQmJDRUlEQU1GSUFrZ0FVRUNkR29pQVNBQktBSUFRUUZxTmdJQUlBVkJBV29oQlVFQklBWXRBQUIwUVFGMUlBcHFJUW9NQWdzQUN3dEJiQ0VJSUFwRkRRQWdDbWNpQlVFZmN5SUJRUXRMRFFBZ0EwRWdJQVZyTmdJQVFRRkJBaUFCZENBS2F5SURaMEVmY3lJQmRDQURSdzBBSUFBZ0JHb2dBVUVCYWlJQU9nQUFJQWtnQUVFQ2RHb2lBQ0FBS0FJQVFRRnFOZ0lBSUFrb0FnUWlBRUVDU1NBQVFRRnhjZzBBSUFJZ0JFRUJhallDQUNBTFFRRnFJUWdMSUFkQk1Hb2tBQ0FJQzZBRkFReC9Jd0JCRUdzaURDUUFBbjhnQkVFSFRRUkFJQXhDQURjRENDQU1RUWhxSWdVZ0F5QUVFQUlhUVd3Z0FDQUJJQUlnQlVFSUVBd2lBQ0FBSUFSTEd5QUFJQUJCaVg5Skd3d0JDeUFBUVFBZ0FTZ0NBRUVCYWlJTlFRRjBFQU1oRDBGVUlBTW9BQUFpQmtFUGNTSUFRUXBMRFFBYUlBSWdBRUVGYWpZQ0FDQURJQVJxSWdKQkJHc2hCeUFDUVFkcklRc2dBRUVHYWlFT1FRUWhBaUFHUVFSMklRVkJJQ0FBZENJSVFRRnlJUWxCQUNFQVFRRWhCaUFESVFRRFFBSkFJQVpCQVhGRkJFQURRQ0FGUVg5elFZQ0FnSUI0Y21naUJrRVlTVVVFUUNBQVFTUnFJUUFnQkNBTFRRUi9JQVJCQTJvRklBUWdDMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMSUFJZ0JrRWVjU0lLYWtFQ2FpRUNJQVpCQVhaQkEyd2dBR29nQlNBS2RrRURjV29pQUNBTlR3MEJBbjhnQkNBTFN5QUNRUU4ySUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQVFnQjJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVMSUFVZ0NFRUJhM0VpQmlBSVFRRjBRUUZySWdvZ0NXc2lFRWtFZnlBT1FRRnJCU0FGSUFweElnVWdFRUVBSUFVZ0NFNGJheUVHSUE0TElRVWdEeUFBUVFGMGFpQUdRUUZySWdvN0FRQWdBRUVCYWlFQUlBSWdCV29oQWlBSVFRRWdCbXNnQ2lBR1FRQktHeUFKYWlJSlNnUkFJQWxCQWtnTkFVRWdJQWxuSWdWcklRNUJBU0FGUVI5emRDRUlDeUFBSUExUERRQWdDa0VBUnlFR0FuOGdCQ0FMU3lBQ1FRTjFJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBSWdCQ0FIYTBFRGRHcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMUVd3Z0NVRUJSdzBBR2tGUUlBQWdEVXNOQUJwQmJDQUNRU0JLRFFBYUlBRWdBRUVCYXpZQ0FDQUVJQUpCQjJwQkEzVnFJQU5yQ3lBTVFSQnFKQUFMOGdFQkFYOGdBa1VFUUNBQVFnQTNBZ0FnQUVFQU5nSVFJQUJDQURjQ0NFRzRmdzhMSUFBZ0FUWUNEQ0FBSUFGQkJHbzJBaEFnQWtFRVR3UkFJQUFnQVNBQ2FpSUJRUVJySWdNMkFnZ2dBQ0FES0FBQU5nSUFJQUZCQVdzdEFBQWlBUVJBSUFBZ0FXZEJGMnMyQWdRZ0FnOExJQUJCQURZQ0JFRi9Ed3NnQUNBQk5nSUlJQUFnQVMwQUFDSUROZ0lBQWtBQ1FBSkFJQUpCQW1zT0FnRUFBZ3NnQUNBQkxRQUNRUkIwSUFOeUlnTTJBZ0FMSUFBZ0FTMEFBVUVJZENBRGFqWUNBQXNnQVNBQ2FrRUJheTBBQUNJQlJRUkFJQUJCQURZQ0JFRnNEd3NnQUNBQlp5QUNRUU4wYTBFSmFqWUNCQ0FDQzBRQkFuOGdBU0FDTHdFQUlnTWdBU2dDQkdvaUJEWUNCQ0FBSUFOQkFuUkJvQjFxS0FJQUlBRW9BZ0JCQUNBRWEzWnhOZ0lBSUFFUUR4b2dBQ0FDUVFScU5nSUVDNThCQVFSL1FRTWhBU0FBS0FJRUlnSkJJRTBFUUNBQUtBSUlJZ0VnQUNnQ0VFOEVRQ0FBSUFKQkIzRTJBZ1FnQUNBQklBSkJBM1pySWdJMkFnZ2dBQ0FDS0FBQU5nSUFRUUFQQ3lBQUtBSU1JZ01nQVVZRVFFRUJRUUlnQWtFZ1NSc1BDeUFBSUFFZ0FTQURheUFDUVFOMklnUWdBU0FFYXlBRFNTSUJHeUlEYXlJRU5nSUlJQUFnQWlBRFFRTjBhellDQkNBQUlBUW9BQUEyQWdBTElBRUxTQUVFZnlBQUtBSUVJQUFvQWdCQkFuUnFJZ0l0QUFJZ0FpOEJBQ0VFSUFFZ0FTZ0NCQ0lGSUFJdEFBTWlBbW8yQWdRZ0FDQUVJQUVvQWdBZ0JYUkJBQ0FDYTNacU5nSUFDMUlCQkg4Z0FDZ0NCQ0FBS0FJQVFRSjBhaUlDTFFBQ0lBSXZBUUFoQkNBQklBSXRBQU1pQWlBQktBSUVhaUlGTmdJRUlBQWdCQ0FDUVFKMFFhQWRhaWdDQUNBQktBSUFRUUFnQld0MmNXbzJBZ0FMQ0FBZ0FFR0lmMHNMR2dBZ0FBUkFJQUVFUUNBQ0lBQWdBUkVDQUE4TElBQVFCZ3NMcGdnQ0RYOEJmaU1BUVJCcklna2tBQ0FKUVFBMkFnd2dDVUVBTmdJSUFuOENRQ0FEUWVnSmFpQURJQWxCQ0dvZ0NVRU1haUFCSUFJZ0EwR0FBV29RQ3lJUFFZaC9TdzBBUVZRZ0NTZ0NEQ0lFSUFBb0FnQWlBVUgvQVhGQkFXcExEUUVhSUFCQkJHb2hDeUFBSUFGQi80R0FlSEVnQkVFUWRFR0FnUHdIY1hJMkFnQkJmeUFFSUFSQkFFZ2JRUUZxSVFCQkFDRUJJQWtvQWdnaEJVRUFJUUlEUUNBQUlBSkdCRUFnQlVFRGF5RUJRUUFoQUFOQUFrQkJBQ0VDSUFBZ0FVNEVRQU5BSUFBZ0JVNE5BaUFESUFBZ0EycEI2QWxxTFFBQVFRSjBha0ZBYXlJQklBRW9BZ0FpQVVFQmFqWUNBQ0FCSUFOcUlBQTZBT2dISUFCQkFXb2hBQXdBQ3dBRkEwQWdBa0VFUmtVRVFDQURJQU1nQUNBQ2FpSUhha0hvQ1dvdEFBQkJBblJxUVVCcklnZ2dDQ2dDQUNJSVFRRnFOZ0lBSUFNZ0NHb2dCem9BNkFjZ0FrRUJhaUVDREFFTEN5QUFRUVJxSVFBTUFnc0FDd3NnQkVFQmFpRU9JQU1vQWdBaEIwRUFJUUJCQVNFSUEwQWdDQ0FPUmcwRElBNGdDR3NoQkNBRElBaEJBblJxS0FJQUlRVUNRQUpBQWtBQ1FBSkFBa0JCQVNBSWRFRUJkU0lOUVFGckRnZ0FBUVFDQkFRRUF3UUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUFJUUVEUUNBQ0lBWkdEUVVnQXlBQ0lBZHFhaTBBNkFjaENpQUxJQUZCQVhScUlnd2dCRG9BQVNBTUlBbzZBQUFnQWtFQmFpRUNJQUZCQVdvaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hDaUFBSVFFRFFDQUNJQXBHRFFRZ0N5QUJRUUYwYWlJR0lBTWdBaUFIYW1vdEFPZ0hJZ3c2QUFJZ0JpQUVPZ0FCSUFZZ0REb0FBQ0FHSUFRNkFBTWdBa0VCYWlFQ0lBRkJBbW9oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUVRUWgwUVlEK0EzRWhCQ0FBSVFFRFFDQUNJQVpHRFFNZ0N5QUJRUUYwYWlBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrTndBQUlBSkJBV29oQWlBQlFRUnFJUUVNQUFzQUMwRUFJUUlnQlVFQUlBVkJBRW9iSVFZZ0JFRUlkRUdBL2dOeElRUWdBQ0VCQTBBZ0FpQUdSZzBDSUFzZ0FVRUJkR29pQ2lBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSWhFM0FBZ2dDaUFSTndBQUlBSkJBV29oQWlBQlFRaHFJUUVNQUFzQUMwRUFJUUVnQlVFQUlBVkJBRW9iSVFvZ0JFRUlkRUdBL2dOeElRd2dBQ0VFQTBBZ0FTQUtSZzBCSUFzZ0JFRUJkR29oRUNBTUlBTWdBU0FIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSVJGQkFDRUNBMEFnQWlBTlRrVUVRQ0FRSUFKQkFYUnFJZ1lnRVRjQUdDQUdJQkUzQUJBZ0JpQVJOd0FJSUFZZ0VUY0FBQ0FDUVJCcUlRSU1BUXNMSUFGQkFXb2hBU0FFSUExcUlRUU1BQXNBQ3lBSVFRRnFJUWdnQlNBSGFpRUhJQVVnRFd3Z0FHb2hBQXdBQ3dBRklBTWdBa0VDZEdvaUIwRkFheUFCTmdJQUlBSkJBV29oQWlBSEtBSUFJQUZxSVFFTUFRc0FDd0FMSUE4TElBbEJFR29rQUF2eUFnRUdmeU1BUVNCcklnVWtBQ0FFS0FJQUlRWWdCVUVNYWlBQ0lBTVFEU0lEUVloL1RRUkFJQVJCQkdvaEFpQUFJQUZxSWdsQkEyc2hCRUVBSUFaQkVIWnJRUjl4SVFNRFFDQUZRUXhxRUE4Z0FDQUVUM0pGQkVBZ0FpQUZLQUlNSWdZZ0JTZ0NFQ0lIZENBRGRrRUJkR29pQ0MwQUFTRUtJQUFnQ0MwQUFEb0FBQ0FDSUFZZ0J5QUthaUlHZENBRGRrRUJkR29pQnkwQUFDRUlJQVVnQmlBSExRQUJhallDRUNBQUlBZzZBQUVnQUVFQ2FpRUFEQUVMQ3dOQUlBVkJER29RRHlFSElBVW9BZ3doQmlBRktBSVFJUVFnQUNBSlR5QUhja1VFUUNBQ0lBWWdCSFFnQTNaQkFYUnFJZ1l0QUFBaEJ5QUZJQVFnQmkwQUFXbzJBaEFnQUNBSE9nQUFJQUJCQVdvaEFBd0JDd3NEUUNBQUlBbFBSUVJBSUFJZ0JpQUVkQ0FEZGtFQmRHb2lCeTBBQVNFSUlBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0JDQUlhaUVFREFFTEMwRnNRV3dnQVNBRktBSVVJQVVvQWhoSEd5QUVRU0JIR3lFREN5QUZRU0JxSkFBZ0F3dlBGQUVqZnlNQVFkQUFheUlGSkFCQmJDRUpBa0FnQTBFS1NRMEFBa0FnQXlBQ0x3QUVJZ2NnQWk4QUFDSUlJQUl2QUFJaURXcHFRUVpxSWd4SkRRQWdCQzhCQWlFR0lBVkJQR29nQWtFR2FpSUNJQWdRRFNJSlFZaC9TdzBCSUFWQktHb2dBaUFJYWlJQ0lBMFFEU0lKUVloL1N3MEJJQVZCRkdvZ0FpQU5haUlDSUFjUURTSUpRWWgvU3cwQklBVWdBaUFIYWlBRElBeHJFQTBpQ1VHSWYwc05BU0FFUVFScUlRb2dBQ0FCYWlJZlFRTnJJU0JCQUNBR2EwRWZjU0VMSUFVb0FnZ2hFU0FGS0FJY0lSSWdCU2dDTUNFVElBVW9Ba1FoRkNBRktBSUVJUWtnQlNnQ0dDRU5JQVVvQWl3aERDQUZLQUpBSVFZZ0JTZ0NFQ0VoSUFVb0FpUWhJaUFGS0FJNElTTWdCU2dDVENFa0lBVW9BZ0FoRlNBRktBSVVJUllnQlNnQ0tDRVhJQVVvQWp3aEdFRUJJUThnQUNBQlFRTnFRUUoySWdScUlnTWdCR29pQWlBRWFpSVpJUVFnQWlFSUlBTWhCd05BSUE5QkFYRkZJQVFnSUU5eVJRUkFJQUFnQ2lBWUlBWjBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloR2lBT0xRQURJUkFnQnlBS0lCY2dESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdEaTBBQWlFYklBNHRBQU1oRHlBSUlBb2dGaUFOZENBTGRrRUNkR29pRGk4QkFEc0FBQ0FPTFFBQ0lSd2dEaTBBQXlFZElBUWdDaUFWSUFsMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhIaUFPTFFBRElRNGdBQ0FRYWlJbElBb2dHQ0FHSUJwcUlnWjBJQXQyUVFKMGFpSVFMd0VBT3dBQUlCQXRBQUlnRUMwQUF5RW1JQWNnRDJvaUp5QUtJQmNnRENBYmFpSWFkQ0FMZGtFQ2RHb2lCeThCQURzQUFDQUhMUUFDSVF3Z0J5MEFBeUVRSUFnZ0hXb2lHeUFLSUJZZ0RTQWNhaUlQZENBTGRrRUNkR29pQ0M4QkFEc0FBQ0FJTFFBQ0lRMGdDQzBBQXlFY0lBUWdEbW9pSFNBS0lCVWdDU0FlYWlJT2RDQUxka0VDZEdvaUNTOEJBRHNBQUNBR2FpRUFRUU1oQndKL0lCUWdKRWtFUUNBQUlRWkJBd3dCQ3lBQVFRZHhJUVlnRkNBQVFRTjJheUlVS0FBQUlSaEJBQXNnQ1MwQUF5RWVJQWt0QUFJaENDQU1JQnBxSVFBZ0V5QWpTUVIvSUFBRklCTWdBRUVEZG1zaUV5Z0FBQ0VYUVFBaEJ5QUFRUWR4Q3lFTUlBMGdEMm9oQUNBSGNpRUpRUU1oRHdKL0lCSWdJa2tFUUNBQUlRMUJBd3dCQ3lBQVFRZHhJUTBnRWlBQVFRTjJheUlTS0FBQUlSWkJBQXNnQ0NBT2FpRUFJQWx5SUJFZ0lVa0VmeUFBQlNBUklBQkJBM1pySWhFb0FBQWhGVUVBSVE4Z0FFRUhjUXNoQ1NBbElDWnFJUUFnRUNBbmFpRUhJQnNnSEdvaENDQWRJQjVxSVFRZ0QzSkZJUThNQVFzTElBVWdERFlDTENBRklBWTJBa0FnQlNBTk5nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUlnQjBrZ0FDQURTM0lOQUVGc0lRa2dDQ0FaU3cwQklBTkJBMnNoQ1FOQUlBVkJQR29RRDBVZ0FDQUpTWEVFUUNBQUlBb2dCU2dDUENJTklBVW9Ba0FpREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnQUNBT0xRQURhaUlHSUFvZ0RTQU1JQTR0QUFKcUlnQjBJQXQyUVFKMGFpSU1Md0VBT3dBQUlBVWdBQ0FNTFFBQ2FqWUNRQ0FHSUF3dEFBTnFJUUFNQVFVZ0EwRUNheUVNQTBBZ0JVRThhaEFQSVFZZ0JTZ0NQQ0VOSUFVb0FrQWhDU0FBSUF4TElBWnlSUVJBSUFBZ0NpQU5JQWwwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQ1NBR0xRQUNhallDUUNBQUlBWXRBQU5xSVFBTUFRc0xBMEFnQUNBTVMwVUVRQ0FBSUFvZ0RTQUpkQ0FMZGtFQ2RHb2lCaThCQURzQUFDQUFJQVl0QUFOcUlRQWdDU0FHTFFBQ2FpRUpEQUVMQ3dKQUlBQWdBMDhOQUNBQUlBb2dEU0FKZENBTGRpSUFRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSklBTXRBQUpxSVFrTUFRc2dDVUVmU3cwQVFTQWdDU0FLSUFCQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFrTElBSkJBMnNoREFOQUlBVkJLR29RRDBVZ0J5QU1TWEVFUUNBSElBb2dCU2dDS0NJR0lBVW9BaXdpQUhRZ0MzWkJBblJxSWcwdkFRQTdBQUFnQnlBTkxRQURhaUlESUFvZ0JpQUFJQTB0QUFKcUlnQjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBQ0FHTFFBQ2FqWUNMQ0FESUFZdEFBTnFJUWNNQVFVZ0FrRUNheUVHQTBBZ0JVRW9haEFQSVFNZ0JTZ0NLQ0VNSUFVb0Fpd2hBQ0FHSUFkSklBTnlSUVJBSUFjZ0NpQU1JQUIwSUF0MlFRSjBhaUlETHdFQU93QUFJQVVnQUNBRExRQUNhallDTENBSElBTXRBQU5xSVFjTUFRc0xBMEFnQmlBSFNVVUVRQ0FISUFvZ0RDQUFkQ0FMZGtFQ2RHb2lBeThCQURzQUFDQUhJQU10QUFOcUlRY2dBQ0FETFFBQ2FpRUFEQUVMQ3dKQUlBSWdCMDBOQUNBSElBb2dEQ0FBZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBQUlBTXRBQUpxSVFBTUFRc2dBRUVmU3cwQVFTQWdBQ0FLSUFKQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFBTElCbEJBMnNoREFOQUlBVkJGR29RRDBVZ0NDQU1TWEVFUUNBSUlBb2dCU2dDRkNJR0lBVW9BaGdpQW5RZ0MzWkJBblJxSWcwdkFRQTdBQUFnQ0NBTkxRQURhaUlESUFvZ0JpQUNJQTB0QUFKcUlnSjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBaUFHTFFBQ2FqWUNHQ0FESUFZdEFBTnFJUWdNQVFVZ0dVRUNheUVEQTBBZ0JVRVVhaEFQSVFJZ0JTZ0NGQ0VHSUFVb0FoZ2hCeUFESUFoSklBSnlSUVJBSUFnZ0NpQUdJQWQwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVVnQnlBQ0xRQUNhallDR0NBSUlBSXRBQU5xSVFnTUFRc0xBMEFnQXlBSVNVVUVRQ0FJSUFvZ0JpQUhkQ0FMZGtFQ2RHb2lBaThCQURzQUFDQUlJQUl0QUFOcUlRZ2dCeUFDTFFBQ2FpRUhEQUVMQ3dKQUlBZ2dHVThOQUNBSUlBb2dCaUFIZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSElBTXRBQUpxSVFjTUFRc2dCMEVmU3cwQVFTQWdCeUFLSUFKQkFuUnFMUUFDYWlJQ0lBSkJJRThiSVFjTEEwQWdCUkFQUlNBRUlDQkpjUVJBSUFRZ0NpQUZLQUlBSWdZZ0JTZ0NCQ0lDZENBTGRrRUNkR29pREM4QkFEc0FBQ0FFSUF3dEFBTnFJZ01nQ2lBR0lBSWdEQzBBQW1vaUFuUWdDM1pCQW5ScUlnUXZBUUE3QUFBZ0JTQUNJQVF0QUFKcU5nSUVJQU1nQkMwQUEyb2hCQXdCQlNBZlFRSnJJUU1EUUNBRkVBOGhBaUFGS0FJQUlRWWdCU2dDQkNFSUlBTWdCRWtnQW5KRkJFQWdCQ0FLSUFZZ0NIUWdDM1pCQW5ScUlnSXZBUUE3QUFBZ0JTQUlJQUl0QUFKcU5nSUVJQVFnQWkwQUEyb2hCQXdCQ3dzRFFDQURJQVJKUlFSQUlBUWdDaUFHSUFoMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0FpMEFBMm9oQkNBSUlBSXRBQUpxSVFnTUFRc0xBa0FnQkNBZlR3MEFJQVFnQ2lBR0lBaDBJQXQySWdKQkFuUnFJZ010QUFBNkFBQWdBeTBBQTBFQlJnUkFJQWdnQXkwQUFtb2hDQXdCQ3lBSVFSOUxEUUJCSUNBSUlBb2dBa0VDZEdvdEFBSnFJZ0lnQWtFZ1R4c2hDQXRCYkVGc1FXeEJiRUZzUVd4QmJFRnNJQUVnQ0VFZ1J4c2dCU2dDQ0NBRktBSU1SeHNnQjBFZ1J4c2dCU2dDSENBRktBSWdSeHNnQUVFZ1J4c2dCU2dDTUNBRktBSTBSeHNnQ1VFZ1J4c2dCU2dDUkNBRktBSklSeHNoQ1F3SkN3QUxBQXNBQ3dBTEFBc0FDd0FMQUF0QmJDRUpDeUFGUWRBQWFpUUFJQWtMN0JBQkhuOGpBRUhRQUdzaUJTUUFRV3doQ1FKQUlBTkJDa2tOQUFKQUlBTWdBaThBQkNJR0lBSXZBQUFpQnlBQ0x3QUNJZ2hxYWtFR2FpSU9TUTBBSUFRdkFRSWhEeUFGUVR4cUlBSkJCbW9pQWlBSEVBMGlDVUdJZjBzTkFTQUZRU2hxSUFJZ0Iyb2lBaUFJRUEwaUNVR0lmMHNOQVNBRlFSUnFJQUlnQ0dvaUFpQUdFQTBpQ1VHSWYwc05BU0FGSUFJZ0Jtb2dBeUFPYXhBTklnbEJpSDlMRFFFZ0JFRUVhaUVLSUFBZ0FXb2lIRUVEYXlFZFFRQWdEMnRCSDNFaEN5QUZLQUlJSVJFZ0JTZ0NIQ0VTSUFVb0FqQWhFeUFGS0FKRUlSUWdCU2dDQkNFSklBVW9BaGdoQmlBRktBSXNJUWNnQlNnQ1FDRUlJQVVvQWhBaEhpQUZLQUlrSVI4Z0JTZ0NPQ0VnSUFVb0Frd2hJU0FGS0FJQUlSVWdCU2dDRkNFV0lBVW9BaWdoRnlBRktBSThJUmhCQVNFTklBQWdBVUVEYWtFQ2RpSUNhaUlPSUFKcUlnOGdBbW9pR1NFRUlBOGhBaUFPSVFNRFFDQU5SU0FFSUIxUGNrVUVRQ0FLSUJnZ0NIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFBZ0NpQVhJQWQwSUF0MlFRRjBhaUlNTFFBQklSQWdBeUFNTFFBQU9nQUFJQW9nRmlBR2RDQUxka0VCZEdvaURDMEFBU0VhSUFJZ0RDMEFBRG9BQUNBS0lCVWdDWFFnQzNaQkFYUnFJZ3d0QUFFaEd5QUVJQXd0QUFBNkFBQWdDaUFZSUFnZ0RXb2lDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBRWdDaUFYSUFjZ0VHb2lCM1FnQzNaQkFYUnFJZ3d0QUFFaEVDQURJQXd0QUFBNkFBRWdDaUFXSUFZZ0dtb2lESFFnQzNaQkFYUnFJZ1l0QUFFaEdpQUNJQVl0QUFBNkFBRWdDaUFWSUFrZ0cyb2lHM1FnQzNaQkFYUnFJZ2t0QUFFaElpQUVJQWt0QUFBNkFBRWdDQ0FOYWlFR1FRTWhDUUovSUJRZ0lVa0VRRUVESVEwZ0Jnd0JDeUFVSUFaQkEzWnJJaFFvQUFBaEdFRUFJUTBnQmtFSGNRc2hDQ0FISUJCcUlRWWdFeUFnU1FSL0lBWUZJQk1nQmtFRGRtc2lFeWdBQUNFWFFRQWhDU0FHUVFkeEN5RUhJQXdnR21vaERDQUpJQTF5SVJCQkF5RU5BbjhnRWlBZlNRUkFJQXdoQmtFRERBRUxJQXhCQjNFaEJpQVNJQXhCQTNackloSW9BQUFoRmtFQUN5QWJJQ0pxSVF3Z0VISWhFQ0FSSUI1SkJIOGdEQVVnRVNBTVFRTjJheUlSS0FBQUlSVkJBQ0VOSUF4QkIzRUxJUWtnQkVFQ2FpRUVJQUpCQW1vaEFpQURRUUpxSVFNZ0FFRUNhaUVBSUEwZ0VISkZJUTBNQVFzTElBVWdCellDTENBRklBZzJBa0FnQlNBR05nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUFnRGtzZ0F5QVBTM0lOQUVGc0lRa2dBaUFaU3cwQklBNUJBMnNoQ1FOQUlBVkJQR29RRHlBQUlBbFBja1VFUUNBS0lBVW9BandpQmlBRktBSkFJZ2QwSUF0MlFRRjBhaUlJTFFBQklRd2dBQ0FJTFFBQU9nQUFJQW9nQmlBSElBeHFJZ1owSUF0MlFRRjBhaUlITFFBQUlRZ2dCU0FHSUFjdEFBRnFOZ0pBSUFBZ0NEb0FBU0FBUVFKcUlRQU1BUXNMQTBBZ0JVRThhaEFQSVFjZ0JTZ0NQQ0VHSUFVb0FrQWhDU0FBSUE1UElBZHlSUVJBSUFvZ0JpQUpkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdDU0FHTFFBQmFqWUNRQ0FBSUFjNkFBQWdBRUVCYWlFQURBRUxDd05BSUFBZ0RrOUZCRUFnQ2lBR0lBbDBJQXQyUVFGMGFpSUhMUUFCSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQ1dvaENRd0JDd3NnRDBFRGF5RUFBMEFnQlVFb2FoQVBJQUFnQTAxeVJRUkFJQW9nQlNnQ0tDSUdJQVVvQWl3aUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBRElBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFpd2dBeUFJT2dBQklBTkJBbW9oQXd3QkN3c0RRQ0FGUVNocUVBOGhCeUFGS0FJb0lRWWdCU2dDTENFQUlBTWdEMDhnQjNKRkJFQWdDaUFHSUFCMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBQUlBWXRBQUZxTmdJc0lBTWdCem9BQUNBRFFRRnFJUU1NQVFzTEEwQWdBeUFQVDBVRVFDQUtJQVlnQUhRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FESUFjdEFBQTZBQUFnQTBFQmFpRURJQUFnQ0dvaEFBd0JDd3NnR1VFRGF5RURBMEFnQlVFVWFoQVBJQUlnQTA5eVJRUkFJQW9nQlNnQ0ZDSUdJQVVvQWhnaUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBQ0lBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFoZ2dBaUFJT2dBQklBSkJBbW9oQWd3QkN3c0RRQ0FGUVJScUVBOGhCeUFGS0FJVUlRWWdCU2dDR0NFRElBSWdHVThnQjNKRkJFQWdDaUFHSUFOMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBRElBWXRBQUZxTmdJWUlBSWdCem9BQUNBQ1FRRnFJUUlNQVFzTEEwQWdBaUFaVDBVRVFDQUtJQVlnQTNRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FDSUFjdEFBQTZBQUFnQWtFQmFpRUNJQU1nQ0dvaEF3d0JDd3NEUUNBRkVBOGdCQ0FkVDNKRkJFQWdDaUFGS0FJQUlnSWdCU2dDQkNJR2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBS0lBSWdCaUFJYWlJQ2RDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0FpQUdMUUFCYWpZQ0JDQUVJQWM2QUFFZ0JFRUNhaUVFREFFTEN3TkFJQVVRRHlFSElBVW9BZ0FoQmlBRktBSUVJUUlnQkNBY1R5QUhja1VFUUNBS0lBWWdBblFnQzNaQkFYUnFJZ1l0QUFBaEJ5QUZJQUlnQmkwQUFXbzJBZ1FnQkNBSE9nQUFJQVJCQVdvaEJBd0JDd3NEUUNBRUlCeFBSUVJBSUFvZ0JpQUNkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUVRUUZxSVFRZ0FpQUlhaUVDREFFTEMwRnNRV3hCYkVGc1FXeEJiRUZzUVd3Z0FTQUNRU0JIR3lBRktBSUlJQVVvQWd4SEd5QURRU0JIR3lBRktBSWNJQVVvQWlCSEd5QUFRU0JIR3lBRktBSXdJQVVvQWpSSEd5QUpRU0JIR3lBRktBSkVJQVVvQWtoSEd5RUpEQUVMUVd3aENRc2dCVUhRQUdva0FDQUpDMWdCQTM4Q1FDQUFLQUtRNndFaUFVVU5BQ0FCS0FJQUlBRkJ0TlVCYWlnQ0FDSUNJQUZCdU5VQmFpZ0NBQ0lERUJNZ0FnUkFJQU1nQVNBQ0VRSUFEQUVMSUFFUUJnc2dBRUVBTmdLZzZ3RWdBRUlBTndPUTZ3RUw2UU1DQkg4Q2ZpQUFRUUJCS0JBRElRUWdBa0VCUVFVZ0F4c2lBRWtFUUNBQUR3c2dBVVVFUUVGL0R3dEJBU0VHQWtBQ1FDQURRUUZHRFFBZ0F5RUdJQUVvQUFBaUJVR282cjVwUmcwQVFYWWhBeUFGUVhCeFFkRFV0TUlCUncwQlFRZ2hBeUFDUVFoSkRRRWdBVFVBQkNFSUlBUkJBVFlDRkNBRUlBZzNBd0JCQUE4TElBRWdBaUFHRUJvaUF5QUNTdzBBSUFRZ0F6WUNHRUZ5SVFNZ0FDQUJhaUlGUVFGckxRQUFJZ0pCQ0hFTkFDQUNRU0J4SWdaRkJFQkJjQ0VESUFVdEFBQWlCVUduQVVzTkFTQUZRUWR4clVJQklBVkJBM1pCQ21xdGhpSUlRZ09JZmlBSWZDRUpJQUJCQVdvaEFBc2dBa0VHZGlFRklBSkJBblpCQUNFREFrQUNRQUpBQWtBZ0FrRURjVUVCYXc0REFBRUNBd3NnQUNBQmFpMEFBQ0VESUFCQkFXb2hBQXdDQ3lBQUlBRnFMd0FBSVFNZ0FFRUNhaUVBREFFTElBQWdBV29vQUFBaEF5QUFRUVJxSVFBTFFRRnhJUUlDZmdKQUFrQUNRQUpBSUFWQkFXc09Bd0VDQXdBTFFuOGdCa1VOQXhvZ0FDQUJhakVBQUF3REN5QUFJQUZxTXdBQVFvQUNmQXdDQ3lBQUlBRnFOUUFBREFFTElBQWdBV29wQUFBTElRZ2dCQ0FDTmdJZ0lBUWdBellDSENBRUlBZzNBd0JCQUNFRElBUkJBRFlDRkNBRUlBZ2dDU0FHR3lJSU53TUlJQVJDZ0lBSUlBZ2dDRUtBZ0FoYUd6NENFQXNnQXd0ZkFRRi9RYmgvSVFNZ0FVRUJRUVVnQWhzaUFrOEVmeUFBSUFKcVFRRnJMUUFBSWdCQkEzRkJBblJCb0I1cUtBSUFJQUpxSUFCQkJIWkJESEZCc0I1cUtBSUFhaUFBUVNCeElnRkZhaUFCUVFWMklBQkJ3QUJKY1dvRlFiaC9Dd3NNQUNBQUlBRWdBa0VBRUJrTGx3TUNCWDhDZmlNQVFVQnFJZ1FrQUFKQUEwQWdBVUVGVHdSQUFrQWdBQ2dBQUVGd2NVSFExTFRDQVVZRVFFSitJUWNnQVVFSVNRMEVJQUFvQUFRaUFrRjNTdzBFSUFKQkNHb2lBeUFCU3cwRUlBSkJnWDlKRFFFTUJBc2dCRUVZYWlBQUlBRVFHeUVDUW40Z0JDa0RHRUlBSUFRb0FpeEJBVWNiSUFJYklnZENmVllOQXlBSElBaDhJZ2dnQjFSQ2ZpRUhEUU1DUUFKQUlBRkJDRWtOQUNBQUtBQUFRWEJ4UWREVXRNSUJSdzBBSUFBb0FBUWlBa0YzU3cwRlFiaC9JQUpCQ0dvaUFpQUJJQUpKR3lFRERBRUxJQVJCR0dvZ0FDQUJFQnNpQWtHSWYwc0VRQ0FDSVFNTUFRdEJ1SDhoQXlBQ0RRQWdBU0FFS0FJd0lnSnJJUVVnQUNBQ2FpRUdBMEFnQmlBRklBUkJER29RSFNJRFFZaC9TdzBCSUFOQkEyb2lBaUFGU3dSQVFiaC9JUU1NQWdzZ0JTQUNheUVGSUFJZ0Jtb2hCaUFFS0FJUVJRMEFDeUFFS0FJNEJIOUJ1SDhoQXlBRlFRUkpEUUVnQmtFRWFnVWdCZ3NnQUdzaEF3c2dBMEdJZjBzTkF3c2dBU0FEYXlFQklBQWdBMm9oQUF3QkN3dENmaUFJSUFFYklRY0xJQVJCUUdza0FDQUhDMlFCQVg5QnVIOGhBd0pBSUFGQkEwa05BQ0FBTFFBQ0lRRWdBaUFBTHdBQUlnQkJBWEUyQWdRZ0FpQUFRUUYyUVFOeElnTTJBZ0FnQWlBQUlBRkJFSFJ5UVFOMklnQTJBZ2dDUUFKQUlBTkJBV3NPQXdJQkFBRUxRV3dQQ3lBQUlRTUxJQU1MUkFFQ2Z5QUJJQUlvQWdRaUF5QUJLQUlFYWlJRU5nSUVJQUFnQTBFQ2RFR2dIV29vQWdBZ0FTZ0NBRUVBSUFScmRuRTJBZ0FnQVJBUEdpQUFJQUpCQ0dvMkFnUUx6Z0VCQm45QnVuOGhDZ0pBSUFJb0FnUWlDQ0FDS0FJQUlnbHFJZzBnQVNBQWEwc05BRUZzSVFvZ0NTQUVJQU1vQWdBaUMydExEUUFnQUNBSmFpSUVJQUlvQWdnaURHc2hBaUFBSUFGQklHc2lBQ0FMSUFsQkFCQWdJQU1nQ1NBTGFqWUNBQUpBQWtBZ0JDQUZheUFNVHdSQUlBSWhCUXdCQ3lBTUlBUWdCbXRMRFFJZ0J5QUhJQUlnQldzaUFtb2lBU0FJYWs4RVFDQUVJQUVnQ0JBS0dnd0NDeUFDSUFocUlRZ2dCQ0FCUVFBZ0Ftc1FDaUFDYXlFRUN5QUVJQUFnQlNBSVFRRVFJQXNnRFNFS0N5QUtDOGNFQVFKL0lBQWdBMm9oQmdKQUlBTkJCMHdFUUFOQUlBQWdCazhOQWlBQUlBSXRBQUE2QUFBZ0FFRUJhaUVBSUFKQkFXb2hBZ3dBQ3dBTElBUkJBVVlFUUFKQUlBQWdBbXNpQlVFSFRRUkFJQUFnQWkwQUFEb0FBQ0FBSUFJdEFBRTZBQUVnQUNBQ0xRQUNPZ0FDSUFBZ0FpMEFBem9BQXlBQUlBSWdCVUVDZENJRlFjQWVhaWdDQUdvaUFpZ0FBRFlBQkNBQ0lBVkI0QjVxS0FJQWF5RUNEQUVMSUFBZ0Fpa0FBRGNBQUFzZ0FrRUlhaUVDSUFCQkNHb2hBQXNnQVNBR1R3UkFJQUFnQTJvaEFTQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUEwQWdBQ0FDS1FBQU53QUFJQUpCQ0dvaEFpQUFRUWhxSWdBZ0FVa05BQXdEQ3dBTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dBMEVSU1EwQklBQkJFR29oQUFOQUlBQWdBaWtBRURjQUFDQUFJQUlwQUJnM0FBZ2dBQ0FDS1FBZ053QVFJQUFnQWlrQUtEY0FHQ0FDUVNCcUlRSWdBRUVnYWlJQUlBRkpEUUFMREFFTEFrQWdBQ0FCU3dSQUlBQWhBUXdCQ3lBQklBQnJJUVVDUUNBRVFRRkhJQUFnQW10QkQwcHlSUVJBSUFJaEF3TkFJQUFnQXlrQUFEY0FBQ0FEUVFocUlRTWdBRUVJYWlJQUlBRkpEUUFMREFFTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dCVUVSU0EwQUlBQkJFR29oQUNBQ0lRTURRQ0FBSUFNcEFCQTNBQUFnQUNBREtRQVlOd0FJSUFBZ0F5a0FJRGNBRUNBQUlBTXBBQ2czQUJnZ0EwRWdhaUVESUFCQklHb2lBQ0FCU1EwQUN3c2dBaUFGYWlFQ0N3TkFJQUVnQms4TkFTQUJJQUl0QUFBNkFBQWdBVUVCYWlFQklBSkJBV29oQWd3QUN3QUxDNjRIQWdWL0FYNGpBRUdBQVdzaUVTUUFJQkVnQXpZQ2ZFRi9JUThDUUFKQUFrQUNRQUpBSUFJT0JBRUFBd0lFQ3lBR1JRUkFRYmgvSVE4TUJBdEJiQ0VQSUFVdEFBQWlBaUFEU3cwRElBZ2dBa0VDZENJQ2FpZ0NBQ0VESUFJZ0Iyb29BZ0FoQWlBQVFRQTZBQXNnQUVJQU53SUFJQUFnQWpZQ0RDQUFJQU02QUFvZ0FFRUFPd0VJSUFFZ0FEWUNBRUVCSVE4TUF3c2dBU0FKTmdJQVFRQWhEd3dDQ3lBS1JRUkFRV3doRHd3Q0MwRUFJUThnQzBVZ0RFRVpTSElOQVVFSUlBUjBRUWhxSVFCQkFDRURBMEFnQUNBRFRRMENJQU5CUUdzaEF3d0FDd0FMUVd3aER5QVJJQkZCL0FCcUlCRkIrQUJxSUFVZ0JoQU1JZ05CaUg5TERRQWdFU2dDZUNJQ0lBUkxEUUFnRVNnQ2ZFRUJhaUVKSUFCQkNHb2hDMEdBZ0FJZ0FuUkJFSFVoQlVFQklSQkJBU0FDZENJUFFRRnJJZ29oRWdOQUlBa2dEa2NFUUFKQUlCRWdEa0VCZENJRWFpOEJBQ0lNUWYvL0EwWUVRQ0FMSUJKQkEzUnFJQTQyQWdRZ0VrRUJheUVTUVFFaERBd0JDeUFRUVFBZ0JTQU13VW9iSVJBTElBUWdEV29nRERzQkFDQU9RUUZxSVE0TUFRc0xJQUFnQWpZQ0JDQUFJQkEyQWdBQ1FDQUtJQkpHQkVBZ0RVSHFBR29oQmtFQUlSQkJBQ0VNQTBBZ0NTQVFSZ1JBSUE5QkEzWWdEMEVCZG1wQkEyb2lCVUVCZENFRVFRQWhERUVBSVJJRFFFRUFJUTRnRHlBU1RRMEVBMEFnRGtFQ1J3UkFJQXNnQlNBT2JDQU1haUFLY1VFRGRHb2dCaUFPSUJKcWFpMEFBRFlDQkNBT1FRRnFJUTRNQVFzTElCSkJBbW9oRWlBRUlBeHFJQXB4SVF3TUFBc0FCU0FSSUJCQkFYUnFMZ0VBSVFVZ0JpQU1haUlFSUJNM0FBQkJDQ0VPQTBBZ0JTQU9TZ1JBSUFRZ0Rtb2dFemNBQUNBT1FRaHFJUTRNQVFzTElCTkNnWUtFaUpDZ3dJQUJmQ0VUSUJCQkFXb2hFQ0FGSUF4cUlRd01BUXNBQ3dBTElBOUJBM1lnRDBFQmRtcEJBMm9oQlVFQUlSQkJBQ0VPQTBBZ0NTQVFSZzBCUVFBaERDQVJJQkJCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQU1Sd1JBSUFzZ0RrRURkR29nRURZQ0JBTkFJQVVnRG1vZ0NuRWlEaUFTU3cwQUN5QU1RUUZxSVF3TUFRc0xJQkJCQVdvaEVBd0FDd0FMSUFKQkFXb2hCVUVBSVF3RFFDQU1JQTlIQkVBZ0RTQUxJQXhCQTNScUlna29BZ1FpQkVFQmRHb2lBaUFDTHdFQUlnWkJBV283QVFBZ0NTQUZJQVpuUVdCemFpSUNPZ0FESUFrZ0JpQUNkQ0FQYXpzQkFDQUpJQWdnQkVFQ2RDSUNhaWdDQURvQUFpQUpJQUlnQjJvb0FnQTJBZ1FnREVFQmFpRU1EQUVMQ3lBQklBQTJBZ0FnQXlFUEN5QVJRWUFCYWlRQUlBOEw3Vm9DTzM4R2ZpTUFRZUFCYXlJRUpBQUNRRUd3N0FrUUJTSUZSUVJBUVVBaEJ3d0JDeUFGUWdBM0F2VHFBU0FGUVFBMkFzVHJBU0FGUVFBMkFyVHJBU0FGUWdBM0FwenJBU0FGUVFBMkFyanBBU0FGUVFBMkFxenNDU0FGUWdBM0F0VHJBU0FGUWdBM0FxenJBU0FGUWdBM0E0anJBU0FGUWdBM0F1VHFBU0FGUWdBM0F1VHJBU0FGUVlHQWdNQUFOZ0s4NndFZ0JVSUFOd0trNndFZ0JVSDg2Z0ZxUVFBMkFnQWdCVUdRNndGcVFnQTNBd0FnQlJBWUlBVkJyTlVCYWlFVUlBVkIrT3NCYWlFY0lBVkJzT29CYWlFaUlBVkJvREJxSVNvZ0JVR1lJR29oS3lBRlFhalFBR29oSGlBRlFSQnFJU3dnQlVFSWFpRW9JQVZCQkdvaExTQUZRY0RwQVdvaEtTQUZRWWpyQVdvZ0JFR1VBV29oTHlBRVFZd0JhaUV3SUFSQmhBRnFJVEVnQkVIY0FHb2hNaUFFUWRRQWFpRXpJQVJCekFCcUlUUWdBQ0VkQWtBQ1FBSkFBa0FDUUFOQVFRRkJCU0FGS0FMazZnRWJJUVlDUUFOQUlBTWdCa2tOQVNBQ0tBQUFRWEJ4UWREVXRNSUJSZ1JBUWJoL0lRY2dBMEVJU1EwSUlBSW9BQVFpRGtGM1N3UkFRWEloQnd3SkN5QURJQTVCQ0dvaUNVa05DQ0FPUVlCL1N3UkFJQWtoQnd3SkN5QURJQWxySVFNZ0FpQUphaUVDREFFTEN5QUZRZ0EzQXF6cEFTQUZRZ0EzQStqcEFTQUZRUUEyQXBqckFTQUZRZ0EzQTREcUFTQUZRZ00zQS9qcEFTQUZRYlRwQVdwQ0FEY0NBQ0FGUWZEcEFXcENBRGNEQUNBRlFhalFBR29pQ1VHTWdJRGdBRFlDQUNBRlFhelFBV3BCNEJJcEFnQTNBZ0FnQlVHMDBBRnFRZWdTS0FJQU5nSUFJQVVnQlVFUWFqWUNBQ0FGSUFWQm9EQnFOZ0lFSUFVZ0JVR1lJR28yQWdnZ0JTQUpOZ0lNSUFWQkFVRUZJQVVvQXVUcUFSczJBcnpwQVFKQUlBRkZEUUFnQlNnQ3JPa0JJZ2tnSFVZTkFDQUZJQWsyQXJqcEFTQUZJQjAyQXF6cEFTQUZLQUt3NlFFaERpQUZJQjAyQXJEcEFTQUZJQjBnRGlBSmEybzJBclRwQVF0QnVIOGhDU0FEUVFWQkNTQUZLQUxrNmdFaUJodEpEUVVnQWtFQlFRVWdCaHNnQmhBYUlnNUJpSDlMQkVBZ0RpRUpEQVVMSUFNZ0RrRURha2tOQlNBcElBSWdEaUFHRUJraUJrR0lmMHNFUUNBR0lRa01CUXNnQmcwRkFrQUNRQ0FGS0FLbzZ3RkJBVWNOQUNBRktBS2s2d0VpQ1VVTkFDQUZLQUtVNndGRkRRQWdDU2dDQkVFQmF5SUhJQVVvQXR6cEFTSUtyVUtIbGErdm1MYmVtNTUvZmtMSno5bXk4ZVc2NmllRlFoZUpRcy9XMDc3U3g2dlpRbjVDK2ZQZDhabjJtYXNXZkNJL1FpR0lJRCtGUXMvVzA3N1N4NnZaUW40aVAwSWRpQ0EvaFVMNTg5M3htZmFacXhaK0lqOUNJSWdnUDRXbmNTRUdJQWtvQWdBaEZRTkFRUUFoQ0FKQUlCVWdCa0VDZEdvb0FnQWlDVVVOQUNBSktBSUlRUWhKRFFBZ0NTZ0NCQ0lTS0FBQVFiZkl3dUYrUncwQUlCSW9BQVFoQ0FzZ0NDQUtSd1JBSUFZZ0IzRkJBV29oQmlBSURRRUxDeUFKUlEwQUlBVVFHQ0FGUVg4MkFxRHJBU0FGSUFrMkFwVHJBU0FGSUFVb0F0enBBU0lJTmdLWTZ3RU1BUXNnQlNnQzNPa0JJUWdMQWtBZ0NFVU5BQ0FGS0FLWTZ3RWdDRVlOQUVGZ0lRa01CZ3NDUUNBRktBTGc2UUVFUUNBRklBVW9BdWpxQVNJSlJUWUM3T29CSUFrTkFTQUZRdm5xME5EbnlhSGs0UUEzQTZqcUFTQUZRZ0EzQTZEcUFTQUZRcy9XMDc3U3g2dlpRamNEbU9vQklBVkMxdXVDN3VyOWlmWGdBRGNEa09vQklBVkNBRGNEaU9vQklDSkJBRUVvRUFNYURBRUxJQVZCQURZQzdPb0JDeUFCSUIxcUlTVWdCU0FGS1FQbzZRRWdEcTE4TndQbzZRRWdBeUFPYXlFRElBSWdEbW9oQWlBZElRNERRQ0FDSUFNZ0JFRXNhaEFkSWhWQmlIOUxCRUFnRlNFSkRBWUxJQU5CQTJzaU5TQVZTUTBFSUFKQkEyb2hHMEZzSVFrQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FFS0FJc0RnTUNBUUFWQ3lBVlFmLy9CMHNORXlBVlFRTkpEUklnQlNrRHlPa0JJVDhDUUFKQUlCc3RBQUFpQ1VFRGNTSWFRUUZyRGdNR0FRQUhDeUFGS0FLQTZnRU5BRUZpSVFrTUZRc2dGVUVGU1EwU0lCc29BQUFoQXdKL0FrQUNRQUpBSUFsQkFuWkJBM0VpQ1VFQ2F3NENBUUlBQ3lBSlFRQkhJUWNnQTBFRWRrSC9CM0VoQzBFRElRWWdBMEVPZGtIL0IzRU1BZ3RCQkNFR0lBTkJCSFpCLy84QWNTRUxRUUVoQnlBRFFSSjJEQUVMSUFOQkJIWkIvLzhQY1NJTFFZQ0FDRXNORTBFQklRZEJCU0VHSUFJdEFBZEJDblFnQTBFV2RuSUxJZ2dnQm1vaUNTQVZTdzBTQWtBZ0MwR0JCa2tOQUNBRktBS2M2d0ZGRFFCQkFDRURBMEFnQTBHRGdBRkxEUUVnQTBGQWF5RUREQUFMQUFzZ0JpQWJhaUVQSUJwQkEwY05CaUFGS0FJTUlnSXRBQUZCQ0hRaEF5QUhEUWNnQTBVTkNDQUVRZkFBYWlBUElBZ1FEU0lEUVloL1N3MEpJQUpCQkdvaEJpQUxJQnhxSWhKQkEyc2hDa0VBSUFJdkFRSnJRUjl4SVFjZ0hDRURBMEFnQkVId0FHb1FEMFVnQXlBS1NYRUVRQ0FESUFZZ0JDZ0NjQ0lJSUFRb0FuUWlEM1FnQjNaQkFuUnFJZ0l2QVFBN0FBQWdBeUFDTFFBRGFpSURJQVlnQ0NBUElBSXRBQUpxSWdoMElBZDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0NDQUNMUUFDYWpZQ2RDQURJQUl0QUFOcUlRTU1BUVVnRWtFQ2F5RUlBMEFnQkVId0FHb1FEeUVQSUFRb0FuQWhDaUFFS0FKMElRSWdBeUFJU3lBUGNrVUVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lDaThCQURzQUFDQUVJQUlnQ2kwQUFtbzJBblFnQXlBS0xRQURhaUVEREFFTEN3TkFJQU1nQ0UwRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUR5OEJBRHNBQUNBRElBOHRBQU5xSVFNZ0FpQVBMUUFDYWlFQ0RBRUxDd0pBSUFNZ0VrOE5BQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lBeTBBQURvQUFDQURMUUFEUVFGR0JFQWdBaUFETFFBQ2FpRUNEQUVMSUFKQkgwc05BRUVnSUFJZ0F5MEFBbW9pQWlBQ1FTQlBHeUVDQzBGc1FXd2dDeUFFS0FKNElBUW9BbnhIR3lBQ1FTQkhHeUVEREFzTEFBc0FDeUFFS0FJMElnSWdKU0FPYTBzTkNpQU9SUVJBUVFBaENTQUNEUUlNRGdzZ0RpQWJMUUFBSUFJUUF4b2dBaUVKREF3TElCVWdKU0FPYTBzTkNTQU9EUUZCQUNFSklCVkZEUXdMUWJaL0lRa01FUXNnRGlBYklCVVFBaG9nRlNFSkRBb0xJQndnR3dKL0FrQUNRQUpBSUFsQkFuWkJBM0ZCQVdzT0F3RUFBZ0FMSUFsQkEzWWhBMEVCREFJTElCc3ZBQUJCQkhZaEEwRUNEQUVMSUJWQkJFa05EaUFDTHdBRElBSXRBQVZCRUhSeUlnSkJqNENBQVVzTkRpQUNRUVIySVFOQkF3c2lBbW90QUFBZ0EwRWdhaEFESVFrZ0JTQUROZ0tBNndFZ0JTQUpOZ0x3NmdFZ0FrRUJhaUVKREFVTElCVUNmd0pBQWtBQ1FDQUpRUUoyUVFOeFFRRnJEZ01CQUFJQUN5QUpRUU4ySVFOQkFRd0NDeUFiTHdBQVFRUjJJUU5CQWd3QkN5QUNMd0FESUFJdEFBVkJFSFJ5UVFSMklRTkJBd3NpQWlBRGFpSUpRU0JxU1FSQUlBa2dGVXNORFNBY0lBSWdHMm9nQXhBQ0lRSWdCU0FETmdLQTZ3RWdCU0FDTmdMdzZnRWdBaUFEYWlJQ1FnQTNBQmdnQWtJQU53QVFJQUpDQURjQUNDQUNRZ0EzQUFBTUJRc2dCU0FETmdLQTZ3RWdCU0FDSUJ0cU5nTHc2Z0VNQkFzZ0IwVUVRQ0FlSUE4Z0NDQVVFQlFpQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZTRUREQU1MSUF0RklBaEZjZzBMSUF0QkNIWWlBeUFJSUF0SkJIOGdDRUVFZENBTGJnVkJEd3RCR0d3aUFrR01DR29vQWdCc0lBSkJpQWhxS0FJQWFpSUdRUU4ySUFacUlBSkJnQWhxS0FJQUlBSkJoQWhxS0FJQUlBTnNha2tFUUNNQVFSQnJJaEFrQUNBZUtBSUFJUU1nRkVId0JHcEJBRUhzQUJBRElRWkJWQ0VDQWtBZ0EwSC9BWEVpREVFTVN3MEFBa0FnRkVIY0NXb2dCaUFRUVFocUlCQkJER29nRHlBSUlCUkIzQXRxSWhjUUN5SVNRWWgvU3cwQUlCQW9BZ3dpQmlBTVN3MEJJQlJCcUFWcUlRMGdGRUdrQldvaE5pQWVRUVJxSVJFZ0EwR0FnSUI0Y1NFM0lBWkJBV29pRXlFQ0lBWWhBd05BSUFJaUIwRUJheUVDSUFNaUNrRUJheUVESUJRZ0NrRUNkR29vQXZBRVJRMEFDMEVCSUFjZ0IwRUJUUnNoRmtFQUlRZEJBU0VDQTBBZ0FpQVdSd1JBSUJRZ0FrRUNkQ0lEYWlnQzhBUWhHQ0FESUExcUlBYzJBZ0FnQWtFQmFpRUNJQWNnR0dvaEJ3d0JDd3NnRFNBSE5nSUFRUUFoQWlBUUtBSUlJUU1EUUNBQ0lBTkhCRUFnRFNBQ0lCUnFRZHdKYWkwQUFDSVlRUUowYWlJWklCa29BZ0FpR1VFQmFqWUNBQ0FVSUJsQkFYUnFJaGtnR0RvQTNRVWdHU0FDT2dEY0JTQUNRUUZxSVFJTUFRc0xRUUFoQXlBTlFRQTJBZ0FnRENBR1FYOXphaUVHUVFFaEFnTkFJQUlnRmtjRVFDQVVJQUpCQW5ScUlnMGdBellDQUNBTktBTHdCQ0FDSUFacWRDQURhaUVESUFKQkFXb2hBZ3dCQ3dzZ0RDQVRJQXBySWdaclFRRnFJUW9nQmlFREEwQWdBeUFLU1FSQUlCUWdBMEUwYkdvaERVRUJJUUlEUUNBQ0lCWkhCRUFnRFNBQ1FRSjBJaGhxSUJRZ0dHb29BZ0FnQTNZMkFnQWdBa0VCYWlFQ0RBRUxDeUFEUVFGcUlRTU1BUXNMSUJjZ0ZFRTBFQUloT0NBVVFaQU1haUU1SUJNZ0RHc2hPaUFVUWR3RmFpRVhRUUFoQ2dOQUFrQUNRQ0FISUFwSEJFQkJBU0FNSUJNZ0Z5QUtRUUYwYWlJQ0xRQUJJZzFySWdOckloaDBJUmtnQWkwQUFDRVdJRGdnRFVFQ2RHb2lIeWdDQUNFQ0lBWWdHRTBFUUNBMlFRRWdBeUE2YWlJTklBMUJBVXdiSWlCQkFuUWlKR29vQWdBaERTQTVJQlFnQTBFMGJHcEJOQkFDSVNFZ0RVRUJkQ0VtSUJFZ0FrRUNkR29oSXlBZ1FRRk5EUUlnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFZ0lDRWdKR29vQWdBaEpFRUFJUUlEUUNBQ0lDUkdEUU1nSXlBQ1FRSjBhaUFnTmdFQUlBSkJBV29oQWd3QUN3QUxJQUlnQWlBWmFpSU5JQUlnRFVzYklRMGdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVEQTBBZ0FpQU5SZzBESUJFZ0FrRUNkR29nQXpZQkFDQUNRUUZxSVFJTUFBc0FDeUFlSUF4QkVIUWdOM0lnREhKQmdBSnlOZ0lBREFNTElBY2dEV3NoSkNBWElDWnFJU1pCQUNFTkEwQWdEU0FrUmcwQlFRRWdHQ0FUSUNZZ0RVRUJkR29pSnkwQUFTSUNheUk3YTNRaVBDQWhJQUpCQW5ScUlpQW9BZ0FpQW1vaFBTQURJRHRxUVJCMFFZQ0EvQWR4SUNjdEFBQkJDSFJ5SUJaeVFZQ0FnQkJ5SVNjRFFDQWpJQUpCQW5ScUlDYzJBUUFnQWtFQmFpSUNJRDFKRFFBTElDQWdJQ2dDQUNBOGFqWUNBQ0FOUVFGcUlRME1BQXNBQ3lBZklCOG9BZ0FnR1dvMkFnQWdDa0VCYWlFS0RBQUxBQXNnRWlFQ0N5QVFRUkJxSkFBZ0FrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGaUVEREFNTElCNGdEeUFJSUJRUUZDSUNRWWgvU3lBQ0lBaFBjZzBMSUJ3Z0N5QUNJQTlxSUFnZ0Ftc2dIaEFYSVFNTUFnc2dBd1JBSUJ3Z0N5QVBJQWdnQWhBV0lRTU1BZ3NnSENBTElBOGdDQ0FDRUJjaEF3d0JDeUFjSUFzZ0R5QUlJQUlRRlNFREN5QURRWWgvU3cwSUlBVWdDellDZ09zQklBVWdIRFlDOE9vQklBVkJBVFlDZ09vQklCcEJBa1lFUUNBRklCNDJBZ3dMSUFzZ0hHb2lBa0lBTndBQUlBSkNBRGNBR0NBQ1FnQTNBQkFnQWtJQU53QUlJQWxCaUg5TERRb0xJQWtnRlVZTkNDQVZJQWxySVFZZ0JTZ0NuT3NCSVFvQ1FDQUpJQnRxSWdNdEFBQWlEMFVFUUVFQklRSkJBQ0VQUWJoL0lRa2dCa0VCUmcwQkRBc0xBbjhnQTBFQmFpQVB3Q0lDUVFCT0RRQWFJQUpCZjBZRVFDQUdRUU5JRFFzZ0F5OEFBVUdBL2dGcUlROGdBMEVEYWd3QkN5QUdRUUpJRFFvZ0F5MEFBU0FQUVFoMGNrR0FnQUpySVE4Z0EwRUNhZ3NoRWtHNGZ5RUpJQkpCQVdvaUFpQVZJQnRxSWdkTERRb2dMQ0FGSUJJdEFBQWlFa0VHZGtFalFRa2dBaUFISUFKclFjQVFRZEFSUWZBU0lBVW9Bb1RxQVNBS0lBOGdGQkFoSWdsQmlIOUxEUWdnS3lBb0lCSkJCSFpCQTNGQkgwRUlJQUlnQ1dvaUFpQUhJQUpyUVlBTFFZQU1RWUFYSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUNFR0lmMHNOQ0VGc0lRa2dLaUF0SUJKQkFuWkJBM0ZCTkVFSklBSWdDR29pQWlBSElBSnJRWUFOUWVBT1FaQVpJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQjBHSWYwc05DaUFDSUFkcUlBTnJJZ0loQ1NBQ1FZaC9TdzBLQ3lBT0lBOUJBRXh5RFFFTFFicC9JUWtNQ0FzZ0pTQU9heUVKSUFZZ0Ftc2hCaUFDSUFOcUlRY0NRQUpBQWtBZ0NrVUVRQ0FQUVFsSUlBVXBBOGpwQVVLQmdJQUlWSElOQWlBb0tBSUFJZ0pCQ0dvaEVpQUNLQUlFSVFwQkFDRURRUUFoQWdOQUlBTWdDblpGQkVBZ0FpQVNJQU5CQTNScUxRQUNRUlpMYWlFQ0lBTkJBV29oQXd3QkN3c2dCVUVBTmdLYzZ3RWdBa0VJSUFwcmRFRVVUdzBCREFNTElBVkJBRFlDbk9zQkN5QUVJQVVvQXZEcUFTSUROZ0xjQVNBSklBNXFJUllnQXlBRktBS0E2d0ZxSVJjQ1FDQVBSUVJBSUE0aEJ3d0JDeUFGS0FLNDZRRWhHaUFGS0FLMDZRRWhHQ0FGS0FLdzZRRWhFaUFGUVFFMkFvVHFBVUVBSVFNRFFDQURRUU5IQkVBZ0JDQURRUUowSWdKcUlBSWdCV3BCck5BQmFpZ0NBRFlDWkNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUVRocUlnSWdCeUFHRUExQmlIOUxEUU5CQ0NBUElBOUJDRTRiSVI4Z05DQUNJQVVvQWdBUUhpQXpJQUlnQlNnQ0NCQWVJRElnQWlBRktBSUVFQjRnRGlBU2F5RVpRUUFoQ0FOQUlBUkJPR29RRDBFRFJpQUlJQjlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ2RCRUhZaUVVSC9BWEVoQ3lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklneEJFSFlpSVVIL0FYRWhFQ0FFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRWWdRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ2tIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSUtheUlOSUFJZ0FpQU5TeHNpRXlBS2FqWUNQQ0FHSUFRb0FqZ2dDblJCQUNBVGEzWWdBaUFUYXlJVGRHb2hDaUFFUVRocUVBOGFJQUlnRFUwTkFTQUVJQVFvQWp3aUFpQVRhallDUENBRUtBSTRJQUowUVFBZ0UydDJJQXBxSVFvTUFRc2dCQ0FDSUFRb0Fqd2lEV28yQWp3Z0JDZ0NPQ0FOZEVFQUlBcHJkaUFHYWlFS0lBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlBbzJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FEQkVBZ0JDZ0NaQ0VLREFNTElBUW9BbWdoQ2d3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBWWdBMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ1pGSUFacUlRb2dBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUFvMkFtUUxweUVDSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lCQnFOZ0k4SUFRb0FqZ2dCblJCQUNBaGEzWWdBbW9oQWdzZ0N5QVFha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQXRxTmdJOElBUW9BamdnQm5SQkFDQVJhM1lnQTJvaEF3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUJrRUFJQWRCR0hZaUN5QUVLQUk4YWlJUWEzWWdDMEVDZEVHZ0hXb29BZ0J4SUFkQi8vOERjV28yQWt3Z0JDQVFJQXhCR0hZaUIyb2lDellDUENBRUlBZEJBblJCb0IxcUtBSUFJQVpCQUNBTGEzWnhJQXhCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnWkJHSFlpQnlBRUtBSThhaUlMTmdJOElBUWdCMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQXRyZG5FZ0JrSC8vd054YWpZQ1ZDQUVRZkFBYWlBSVFReHNhaUlHSUFvMkFnZ2dCaUFDTmdJRUlBWWdBellDQUNBSVFRRnFJUWdnQXlBWmFpQUNhaUVaREFFTEN5QUlJQjlJRFFNZ0ZrRWdheUVoSUE0aEJ3TkFJQVJCT0dvUUQwRURSaUFJSUE5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdaQkVIWWlJMEgvQVhFaENpQUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZzFCRUhZaUlFSC9BWEVoRXlBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUU1nUVVJZ2lDQkFRaUNJcHlFTEFrQWdRa0lRaUtjaURFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lNYXlJUklBSWdBaUFSU3hzaUVDQU1hallDUENBRElBUW9BamdnREhSQkFDQVFhM1lnQWlBUWF5SU1kR29oRUNBRVFUaHFFQThhSUFJZ0VVME5BU0FFSUFRb0Fqd2lBaUFNYWpZQ1BDQUVLQUk0SUFKMFFRQWdER3QySUJCcUlSQU1BUXNnQkNBQ0lBUW9BandpRUdvMkFqd2dCQ2dDT0NBUWRFRUFJQXhyZGlBRGFpRVFJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQkEyQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBTEJFQWdCQ2dDWkNFUURBTUxJQVFvQW1naEVBd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQU1nQzBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdORklBTnFJUkFnQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlCQTJBbVFMcHlFTUlFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQk5xTmdJOElBUW9BamdnQW5SQkFDQWdhM1lnREdvaERBc2dDaUFUYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUFwcU5nSThJQVFvQWpnZ0FuUkJBQ0FqYTNZZ0Myb2hDd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lBa0VBSUFaQkdIWWlBeUFFS0FJOGFpSUthM1lnQTBFQ2RFR2dIV29vQWdCeElBWkIvLzhEY1dvMkFrd2dCQ0FLSUExQkdIWWlBMm9pQmpZQ1BDQUVJQU5CQW5SQm9CMXFLQUlBSUFKQkFDQUdhM1p4SUExQi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ0pCR0hZaUF5QUVLQUk4YWlJR05nSThJQVFnQTBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUFacmRuRWdBa0gvL3dOeGFqWUNWQUpBQWtBQ1FDQUVLQUxjQVNJRElBUkI4QUJxSUFoQkIzRkJER3hxSWhNb0FnQWlFV29pSXlBWFN3MEFJQWNnRXlnQ0JDSU5JQkZxSWdwcUlDRkxEUUFnQ2tFZ2FpQVdJQWRyVFEwQkN5QUVJQk1vQWdnMkFoZ2dCQ0FUS1FJQU53TVFJQWNnRmlBRVFSQnFJQVJCM0FGcUlCY2dFaUFZSUJvUUh5RUtEQUVMSUFjZ0VXb2hBaUFUS0FJSUlRWWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQUpBSUJGQkVVa05BQ0FISUFNcEFCQTNBQkFnQnlBREtRQVlOd0FZSUJGQkVHdEJFVWdOQUNBRFFSQnFJUU1nQjBFZ2FpRVJBMEFnRVNBREtRQVFOd0FBSUJFZ0F5a0FHRGNBQ0NBUklBTXBBQ0EzQUJBZ0VTQURLUUFvTndBWUlBTkJJR29oQXlBUlFTQnFJaEVnQWtrTkFBc0xJQUlnQm1zaEF5QUVJQ00yQXR3QklBSWdFbXNnQmtrRVFDQUdJQUlnR0d0TERRY2dHaUFhSUFNZ0Vtc2lBMm9pRVNBTmFrOEVRQ0FDSUJFZ0RSQUtHZ3dDQ3lBRElBMXFJUTBnQWlBUlFRQWdBMnNRQ2lBRGF5RUNJQkloQXdzZ0JrRVFUd1JBSUFJZ0F5a0FBRGNBQUNBQ0lBTXBBQWczQUFnZ0RVRVJTQTBCSUFJZ0RXb2hCaUFDUVJCcUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFHU1EwQUN3d0JDd0pBSUFaQkIwMEVRQ0FDSUFNdEFBQTZBQUFnQWlBRExRQUJPZ0FCSUFJZ0F5MEFBam9BQWlBQ0lBTXRBQU02QUFNZ0FpQURJQVpCQW5RaUJrSEFIbW9vQWdCcUlnTW9BQUEyQUFRZ0F5QUdRZUFlYWlnQ0FHc2hBd3dCQ3lBQ0lBTXBBQUEzQUFBTElBMUJDVWtOQUNBQ0lBMXFJUkVnQWtFSWFpSUdJQU5CQ0dvaUEydEJEMHdFUUFOQUlBWWdBeWtBQURjQUFDQURRUWhxSVFNZ0JrRUlhaUlHSUJGSkRRQU1BZ3NBQ3lBR0lBTXBBQUEzQUFBZ0JpQURLUUFJTndBSUlBMUJHVWdOQUNBQ1FSaHFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBUlNRMEFDd3NnQ2tHSWYwc0VRQ0FLSVFrTUJnVWdFeUFRTmdJSUlCTWdERFlDQkNBVElBczJBZ0FnQ0VFQmFpRUlJQWNnQ21vaEJ5QUxJQmxxSUF4cUlSa01BZ3NBQ3dzZ0NDQVBTQTBESUFnZ0gyc2hCZ05BQWtBZ0JpQVBUZ1JBUVFBaEF3TkFJQU5CQTBZTkFpQUZJQU5CQW5RaUFtcEJyTkFCYWlBQ0lBUnFLQUprTmdJQUlBTkJBV29oQXd3QUN3QUxBa0FDUUFKQUlBUW9BdHdCSWdNZ0JFSHdBR29nQmtFSGNVRU1iR29pQ0NnQ0FDSU1haUlRSUJkTERRQWdCeUFJS0FJRUlnc2dER29pQ21vZ0lVc05BQ0FLUVNCcUlCWWdCMnRORFFFTElBUWdDQ2dDQ0RZQ0tDQUVJQWdwQWdBM0F5QWdCeUFXSUFSQklHb2dCRUhjQVdvZ0Z5QVNJQmdnR2hBZklRb01BUXNnQnlBTWFpRUNJQWdvQWdnaENDQUhJQU1wQUFBM0FBQWdCeUFES1FBSU53QUlBa0FnREVFUlNRMEFJQWNnQXlrQUVEY0FFQ0FISUFNcEFCZzNBQmdnREVFUWEwRVJTQTBBSUFOQkVHb2hBeUFIUVNCcUlRd0RRQ0FNSUFNcEFCQTNBQUFnRENBREtRQVlOd0FJSUF3Z0F5a0FJRGNBRUNBTUlBTXBBQ2czQUJnZ0EwRWdhaUVESUF4QklHb2lEQ0FDU1EwQUN3c2dBaUFJYXlFRElBUWdFRFlDM0FFZ0FpQVNheUFJU1FSQUlBZ2dBaUFZYTBzTkJ5QWFJQm9nQXlBU2F5SURhaUlNSUF0cVR3UkFJQUlnRENBTEVBb2FEQUlMSUFNZ0Myb2hDeUFDSUF4QkFDQURheEFLSUFOcklRSWdFaUVEQ3lBSVFSQlBCRUFnQWlBREtRQUFOd0FBSUFJZ0F5a0FDRGNBQ0NBTFFSRklEUUVnQWlBTGFpRUlJQUpCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQUlnQXkwQUFEb0FBQ0FDSUFNdEFBRTZBQUVnQWlBRExRQUNPZ0FDSUFJZ0F5MEFBem9BQXlBQ0lBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFJZ0F5a0FBRGNBQUFzZ0MwRUpTUTBBSUFJZ0Myb2hEQ0FDUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnREVrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0MwRVpTQTBBSUFKQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF4SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3R0JTQUdRUUZxSVFZZ0J5QUthaUVIREFJTEFBc0xJQVFvQXR3QklRTUxRYnAvSVFrZ0Z5QURheUlDSUJZZ0IydExEUUlnQndSL0lBY2dBeUFDRUFJZ0Ftb0ZRUUFMSUE1cklRa01BZ3NnQlVFQU5nS2M2d0VMSUFRZ0JTZ0M4T29CSWdNMkF0d0JJQWtnRG1vaERDQURJQVVvQW9EckFXb2hFQUpBSUE5RkJFQWdEaUVHREFFTElBVW9BcmpwQVNFTklBVW9BclRwQVNFVElBVW9BckRwQVNFU0lBVkJBVFlDaE9vQlFRQWhBd05BSUFOQkEwY0VRQ0FFSUFOQkFuUWlBbW9nQWlBRmFrR3MwQUZxS0FJQU5nS2NBU0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRZkFBYWlJQ0lBY2dCaEFOUVloL1N3MEJJREVnQWlBRktBSUFFQjRnTUNBQ0lBVW9BZ2dRSGlBdklBSWdCU2dDQkJBZUlBeEJJR3NoR0NBT0lRWURRQ0FFS0FLSUFTQUVLQUtFQVVFRGRHb3BBZ0FpUUtjaUNrRVFkaUlaUWY4QmNTRUxJQVFvQXBnQklBUW9BcFFCUVFOMGFpa0NBQ0pCcHlJV1FSQjJJaDlCL3dGeElSb2dCQ2dDa0FFZ0JDZ0NqQUZCQTNScUtRSUFJa0pDSUlpbklRY2dRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ0VIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ2RDSUlheUlSSUFJZ0FpQVJTeHNpRnlBSWFqWUNkQ0FISUFRb0FuQWdDSFJCQUNBWGEzWWdBaUFYYXlJWGRHb2hDQ0FFUWZBQWFoQVBHaUFDSUJGTkRRRWdCQ0FFS0FKMElnSWdGMm8yQW5RZ0JDZ0NjQ0FDZEVFQUlCZHJkaUFJYWlFSURBRUxJQVFnQWlBRUtBSjBJaEZxTmdKMElBUW9BbkFnRVhSQkFDQUlhM1lnQjJvaENDQUVRZkFBYWhBUEdnc2dCQ2tDbkFFaFJDQUVJQWcyQXB3QklBUWdSRGNDb0FFTUFRc0NRQ0FDUlFSQUlBTUVRQ0FFS0FLY0FTRUlEQU1MSUFRb0FxQUJJUWdNQVFzZ0JDQUVLQUowSWdKQkFXbzJBblFDZnlBSElBTkZhaUFFS0FKd0lBSjBRUjkyYWlJQ1FRTkdCRUFnQkNnQ25BRkJBV3NNQVFzZ0FrRUNkQ0FFYWlnQ25BRUxJZ2RGSUFkcUlRZ2dBa0VCUndSQUlBUWdCQ2dDb0FFMkFxUUJDd3NnQkNBRUtBS2NBVFlDb0FFZ0JDQUlOZ0tjQVF1bklRSWdRVUtBZ1B3SGcxQkZCRUFnQkNBRUtBSjBJZ2NnR21vMkFuUWdCQ2dDY0NBSGRFRUFJQjlyZGlBQ2FpRUNDeUFMSUJwcVFSUlBCRUFnQkVId0FHb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDZENJSElBdHFOZ0owSUFRb0FuQWdCM1JCQUNBWmEzWWdBMm9oQXdzZ0JFSHdBR29RRHhvZ0JDQUVLQUp3SWdkQkFDQUtRUmgySWdzZ0JDZ0NkR29pR210MklBdEJBblJCb0IxcUtBSUFjU0FLUWYvL0EzRnFOZ0tFQVNBRUlCb2dGa0VZZGlJS2FpSUxOZ0owSUFRZ0NrRUNkRUdnSFdvb0FnQWdCMEVBSUF0cmRuRWdGa0gvL3dOeGFqWUNsQUVnQkVId0FHb1FEeG9nQkNCQ3B5SUhRUmgySWdvZ0JDZ0NkR29pQ3pZQ2RDQUVJQXBCQW5SQm9CMXFLQUlBSUFRb0FuQkJBQ0FMYTNaeElBZEIvLzhEY1dvMkFvd0JJQVFnQXpZQ09DQUVJQUkyQWp3Z0JDQUlOZ0pBQWtBQ1FBSkFJQVFvQXR3Qklnc2dBMm9pRmlBUVN3MEFJQVlnQWlBRGFpSUthaUFZU3cwQUlBcEJJR29nRENBR2EwME5BUXNnQkNBRVFVQnJLQUlBTmdJSUlBUWdCQ2tET0RjREFDQUdJQXdnQkNBRVFkd0JhaUFRSUJJZ0V5QU5FQjhoQ2d3QkN5QURJQVpxSVFjZ0JpQUxLUUFBTndBQUlBWWdDeWtBQ0RjQUNBSkFJQU5CRVVrTkFDQUdJQXNwQUJBM0FCQWdCaUFMS1FBWU53QVlJQU5CRUd0QkVVZ05BQ0FMUVJCcUlRTWdCa0VnYWlFTEEwQWdDeUFES1FBUU53QUFJQXNnQXlrQUdEY0FDQ0FMSUFNcEFDQTNBQkFnQ3lBREtRQW9Od0FZSUFOQklHb2hBeUFMUVNCcUlnc2dCMGtOQUFzTElBY2dDR3NoQXlBRUlCWTJBdHdCSUFjZ0Vtc2dDRWtFUUNBSUlBY2dFMnRMRFFRZ0RTQU5JQU1nRW1zaUEyb2lDeUFDYWs4RVFDQUhJQXNnQWhBS0dnd0NDeUFISUF0QkFDQURheEFLSUFRZ0FpQURhaUlDTmdJOElBTnJJUWNnRWlFREN5QUlRUkJQQkVBZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNDQUNRUkZJRFFFZ0FpQUhhaUVJSUFkQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFjZ0F5MEFBRG9BQUNBSElBTXRBQUU2QUFFZ0J5QURMUUFDT2dBQ0lBY2dBeTBBQXpvQUF5QUhJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBY2dBeWtBQURjQUFBc2dBa0VKU1EwQUlBSWdCMm9oQ3lBSFFRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0Mwa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dBa0VaU0EwQUlBZEJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBdEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0RDeUFHSUFwcUlRWWdCRUh3QUdvUUR5RURJQTlCQVdzaUR3MEFDMEVBSVFJZ0EwRUNTUTBCQTBBZ0FrRURSd1JBSUFVZ0FrRUNkQ0lEYWtHczBBRnFJQU1nQkdvb0Fwd0JOZ0lBSUFKQkFXb2hBZ3dCQ3dzZ0JDZ0MzQUVoQXd0QnVuOGhDU0FRSUFOcklnSWdEQ0FHYTBzTkFDQUdCSDhnQmlBRElBSVFBaUFDYWdWQkFBc2dEbXNoQ1FzZ0NVR0lmMHNOQmdzQ1FDQUZLQUxzNmdGRkRRQWdCU0FGS1FPSTZnRWdDYTE4TndPSTZnRUNRQ0FGS0FMUTZnRWlBaUFKYWlJSVFSOU5CRUFnRGtVTkFTQUNJQ0pxSUE0Z0NSQUNHaUFGS0FMUTZnRWdDV29oQ0F3QkN5QU9JUU1nQWdSQUlBSWdJbW9nQTBFZ0lBSnJFQUlhSUFVb0F0RHFBU0VDSUFWQkFEWUMwT29CSUFVZ0JTa0RrT29CSUFVcEFMRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEa09vQklBVWdCU2tEbU9vQklBVXBBTGpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG1Pb0JJQVVnQlNrRG9Pb0JJQVVwQU1EcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RvT29CSUFVZ0JTa0RxT29CSUFVcEFNanFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEcU9vQklBTWdBbXRCSUdvaEF3c2dDU0FPYWlJQ0lBTkJJR3BQQkVBZ0FrRWdheUVHSUFVcEE2anFBU0UvSUFVcEE2RHFBU0ZBSUFVcEE1anFBU0ZCSUFVcEE1RHFBU0ZDQTBBZ0F5a0FHRUxQMXRPKzBzZXIyVUorSUQ5OFFoK0pRb2VWcjYrWXR0NmJubjkrSVQ4Z0F5a0FFRUxQMXRPKzBzZXIyVUorSUVCOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVBZ0F5a0FDRUxQMXRPKzBzZXIyVUorSUVGOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVFZ0F5a0FBRUxQMXRPKzBzZXIyVUorSUVKOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVJZ0EwRWdhaUlESUFaTkRRQUxJQVVnUHpjRHFPb0JJQVVnUURjRG9Pb0JJQVVnUVRjRG1Pb0JJQVVnUWpjRGtPb0JDeUFDSUFOTkRRRWdJaUFESUFJZ0Eyc2lDQkFDR2dzZ0JTQUlOZ0xRNmdFTElEVWdGV3NoQXlBVklCdHFJUUlnQ1NBT2FpRU9JQVFvQWpCRkRRQUxJQ2twQXdBaVAwSi9VU0EvSUE0Z0hXdXNVWEpGQkVCQmJDRUpEQVlMSUFVb0F1RHBBUVJBUVdvaENTQURRUVJKRFFZZ0JTZ0M2T29CUlFSQUlDSWdCU2dDME9vQmFpRUtBbjRnQlNrRGlPb0JJajlDSUZvRVFDQUZLUU9ZNmdFaVFFSUhpU0FGS1FPUTZnRWlRVUlCaVh3Z0JTa0RvT29CSWtKQ0RJbDhJQVVwQTZqcUFTSkRRaEtKZkNCQlFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5SUVCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZm9WQ2g1V3ZyNWkyM3B1ZWYzNUNuYU8xNm9PeGpZcjZBSDBnUWtMUDF0Tyswc2VyMlVKK1FoK0pRb2VWcjYrWXR0NmJubjkraFVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0JEUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlEQUVMSUFVcEE2RHFBVUxGejlteThlVzY2aWQ4Q3lBL2ZDRS9JQ0loQmdOQUlBb2dCa0VJYWlJSFR3UkFJQVlwQUFCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZmlBL2hVSWJpVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTRS9JQWNoQmd3QkN3c0NRQ0FLSUFaQkJHb2lDRWtFUUNBR0lRZ01BUXNnQmpVQUFFS0hsYSt2bUxiZW01NS9maUEvaFVJWGlVTFAxdE8rMHNlcjJVSitRdm56M2ZHWjlwbXJGbndoUHdzRFFDQUlJQXBKQkVBZ0NERUFBRUxGejlteThlVzY2aWQrSUQrRlFndUpRb2VWcjYrWXR0NmJubjkrSVQ4Z0NFRUJhaUVJREFFTEN5QUNLQUFBSUQ5Q0lZZ2dQNFZDejliVHZ0TEhxOWxDZmlJL1FoMklJRCtGUXZuejNmR1o5cG1yRm40aVAwSWdpQ0EvaGFkSERRY0xJQU5CQkdzaEF5QUNRUVJxSVFJTElBNGdIV3NpQ1VHSmYwOE5CQ0FCSUFscklRRWdDU0FkYWlFZFFRRWhQZ3dCQ3d0QnVIOGhCeUFERFFRZ0hTQUFheUVIREFRTFFXd2hDUXdCQzBHNGZ5RUpDMEc0ZnlFSElBbEJka1lnUG5FTkFRc2dDU0VIQ3lnQ0FBMEFJQVZCL09vQmFpZ0NBQ0VCSUFWQitPb0JhaWdDQUNFQUlBVVFHQ0FGS0FLdzZ3RWdBQ0FCRUJNZ0JVRUFOZ0t3NndFZ0JTZ0NwT3NCSWdJRVFBSkFBa0FDUUFKQUlBSW9BZ0FpQXdSQUlBQkZEUUlnQVNBRElBQVJBZ0FNQVFzZ0FFVU5BZ3NnQVNBQ0lBQVJBZ0FNQWdzZ0F4QUdDeUFDRUFZTElBVkJBRFlDcE9zQkN5QUFCRUFnQVNBRklBQVJBZ0FNQVFzZ0JSQUdDeUFFUWVBQmFpUUFJQWNMQzZnVkNRQkJpQWdMRFFFQUFBQUJBQUFBQWdBQUFBSUFRYUFJQzdNR0FRQUFBQUVBQUFBQ0FBQUFBZ0FBQUNZQUFBQ0NBQUFBSVFVQUFFb0FBQUJuQ0FBQUpnQUFBTUFCQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBS1FBQUFDd0NBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFMd0FBQU1vQ0FBQ0FBQUFBaWdVQUFFb0FBQUNFQ1FBQU5RQUFBSE1EQUFDQUFBQUFuUVVBQUVvQUFBQ2dDUUFBUFFBQUFJRURBQUNBQUFBQTZ3VUFBRXNBQUFBK0NnQUFSQUFBQUo0REFBQ0FBQUFBVFFZQUFFc0FBQUNxQ2dBQVN3QUFBTE1EQUFDQUFBQUF3UVlBQUUwQUFBQWZEUUFBVFFBQUFGTUVBQUNBQUFBQUl3Z0FBRkVBQUFDbUR3QUFWQUFBQUprRUFBQ0FBQUFBU3drQUFGY0FBQUN4RWdBQVdBQUFBTm9FQUFDQUFBQUFid2tBQUYwQUFBQWpGQUFBVkFBQUFFVUZBQUNBQUFBQVZBb0FBR29BQUFDTUZBQUFhZ0FBQUs4RkFBQ0FBQUFBZGdrQUFId0FBQUJPRUFBQWZBQUFBTklDQUFDQUFBQUFZd2NBQUpFQUFBQ1FCd0FBa2dBQUFBQUFBQUFCQUFBQUFRQUFBQVVBQUFBTkFBQUFIUUFBQUQwQUFBQjlBQUFBL1FBQUFQMEJBQUQ5QXdBQS9RY0FBUDBQQUFEOUh3QUEvVDhBQVAxL0FBRDkvd0FBL2Y4QkFQMy9Bd0Q5L3djQS9mOFBBUDMvSHdEOS96OEEvZjkvQVAzLy93RDkvLzhCL2YvL0EvMy8vd2Y5Ly84UC9mLy9ILzMvL3ovOS8vOS9BQUFBQUFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBUkFBQUFFZ0FBQUJNQUFBQVVBQUFBRlFBQUFCWUFBQUFYQUFBQUdBQUFBQmtBQUFBYUFBQUFHd0FBQUJ3QUFBQWRBQUFBSGdBQUFCOEFBQUFEQUFBQUJBQUFBQVVBQUFBR0FBQUFCd0FBQUFnQUFBQUpBQUFBQ2dBQUFBc0FBQUFNQUFBQURRQUFBQTRBQUFBUEFBQUFFQUFBQUJFQUFBQVNBQUFBRXdBQUFCUUFBQUFWQUFBQUZnQUFBQmNBQUFBWUFBQUFHUUFBQUJvQUFBQWJBQUFBSEFBQUFCMEFBQUFlQUFBQUh3QUFBQ0FBQUFBaEFBQUFJZ0FBQUNNQUFBQWxBQUFBSndBQUFDa0FBQUFyQUFBQUx3QUFBRE1BQUFBN0FBQUFRd0FBQUZNQUFBQmpBQUFBZ3dBQUFBTUJBQUFEQWdBQUF3UUFBQU1JQUFBREVBQUFBeUFBQUFOQUFBQURnQUFBQXdBQkFFSGdEd3RSQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQkFBQUFBVUFBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0FBQUF3QUFBQU5BQUFBRGdBQUFBOEFBQUFRQUVIRUVBdUxBUUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFTQUFBQUZBQUFBQllBQUFBWUFBQUFIQUFBQUNBQUFBQW9BQUFBTUFBQUFFQUFBQUNBQUFBQUFBRUFBQUFDQUFBQUJBQUFBQWdBQUFBUUFBQUFJQUFBQUVBQUFBQ0FBQUFBQUFFQVFaQVNDK1lFQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFCQUFBQUJBQUFBQWdBQUFBQUFBQUFBUUFCQVFZQUFBQUFBQUFFQUFBQUFCQUFBQVFBQUFBQUlBQUFCUUVBQUFBQUFBQUZBd0FBQUFBQUFBVUVBQUFBQUFBQUJRWUFBQUFBQUFBRkJ3QUFBQUFBQUFVSkFBQUFBQUFBQlFvQUFBQUFBQUFGREFBQUFBQUFBQVlPQUFBQUFBQUJCUkFBQUFBQUFBRUZGQUFBQUFBQUFRVVdBQUFBQUFBQ0JSd0FBQUFBQUFNRklBQUFBQUFBQkFVd0FBQUFJQUFHQlVBQUFBQUFBQWNGZ0FBQUFBQUFDQVlBQVFBQUFBQUtCZ0FFQUFBQUFBd0dBQkFBQUNBQUFBUUFBQUFBQUFBQUJBRUFBQUFBQUFBRkFnQUFBQ0FBQUFVRUFBQUFBQUFBQlFVQUFBQWdBQUFGQndBQUFBQUFBQVVJQUFBQUlBQUFCUW9BQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBSUFBQkJSQUFBQUFBQUFFRkVnQUFBQ0FBQVFVV0FBQUFBQUFDQlJnQUFBQWdBQU1GSUFBQUFBQUFBd1VvQUFBQUFBQUdCRUFBQUFBUUFBWUVRQUFBQUNBQUJ3V0FBQUFBQUFBSkJnQUNBQUFBQUFzR0FBZ0FBREFBQUFRQUFBQUFFQUFBQkFFQUFBQWdBQUFGQWdBQUFDQUFBQVVEQUFBQUlBQUFCUVVBQUFBZ0FBQUZCZ0FBQUNBQUFBVUlBQUFBSUFBQUJRa0FBQUFnQUFBRkN3QUFBQ0FBQUFVTUFBQUFBQUFBQmc4QUFBQWdBQUVGRWdBQUFDQUFBUVVVQUFBQUlBQUNCUmdBQUFBZ0FBSUZIQUFBQUNBQUF3VW9BQUFBSUFBRUJUQUFBQUFBQUJBR0FBQUJBQUFBRHdZQWdBQUFBQUFPQmdCQUFBQUFBQTBHQUNBQVFZQVhDNGNDQVFBQkFRVUFBQUFBQUFBRkFBQUFBQUFBQmdROUFBQUFBQUFKQmYwQkFBQUFBQThGL1g4QUFBQUFGUVg5L3g4QUFBQURCUVVBQUFBQUFBY0VmUUFBQUFBQURBWDlEd0FBQUFBU0JmMy9Bd0FBQUJjRi9mOS9BQUFBQlFVZEFBQUFBQUFJQlAwQUFBQUFBQTRGL1Q4QUFBQUFGQVg5L3c4QUFBQUNCUUVBQUFBUUFBY0VmUUFBQUFBQUN3WDlCd0FBQUFBUkJmMy9BUUFBQUJZRi9mOC9BQUFBQkFVTkFBQUFFQUFJQlAwQUFBQUFBQTBGL1I4QUFBQUFFd1g5L3djQUFBQUJCUUVBQUFBUUFBWUVQUUFBQUFBQUNnWDlBd0FBQUFBUUJmMy9BQUFBQUJ3Ri9mLy9Ed0FBR3dYOS8vOEhBQUFhQmYzLy93TUFBQmtGL2YvL0FRQUFHQVg5Ly84QVFaQVpDNFlFQVFBQkFRWUFBQUFBQUFBR0F3QUFBQUFBQUFRRUFBQUFJQUFBQlFVQUFBQUFBQUFGQmdBQUFBQUFBQVVJQUFBQUFBQUFCUWtBQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBQUFBQUJoQUFBQUFBQUFBR0V3QUFBQUFBQUFZV0FBQUFBQUFBQmhrQUFBQUFBQUFHSEFBQUFBQUFBQVlmQUFBQUFBQUFCaUlBQUFBQUFBRUdKUUFBQUFBQUFRWXBBQUFBQUFBQ0JpOEFBQUFBQUFNR093QUFBQUFBQkFaVEFBQUFBQUFIQm9NQUFBQUFBQWtHQXdJQUFCQUFBQVFFQUFBQUFBQUFCQVVBQUFBZ0FBQUZCZ0FBQUFBQUFBVUhBQUFBSUFBQUJRa0FBQUFBQUFBRkNnQUFBQUFBQUFZTUFBQUFBQUFBQmc4QUFBQUFBQUFHRWdBQUFBQUFBQVlWQUFBQUFBQUFCaGdBQUFBQUFBQUdHd0FBQUFBQUFBWWVBQUFBQUFBQUJpRUFBQUFBQUFFR0l3QUFBQUFBQVFZbkFBQUFBQUFDQmlzQUFBQUFBQU1HTXdBQUFBQUFCQVpEQUFBQUFBQUZCbU1BQUFBQUFBZ0dBd0VBQUNBQUFBUUVBQUFBTUFBQUJBUUFBQUFRQUFBRUJRQUFBQ0FBQUFVSEFBQUFJQUFBQlFnQUFBQWdBQUFGQ2dBQUFDQUFBQVVMQUFBQUFBQUFCZzRBQUFBQUFBQUdFUUFBQUFBQUFBWVVBQUFBQUFBQUJoY0FBQUFBQUFBR0dnQUFBQUFBQUFZZEFBQUFBQUFBQmlBQUFBQUFBQkFHQXdBQkFBQUFEd1lEZ0FBQUFBQU9CZ05BQUFBQUFBMEdBeUFBQUFBQURBWURFQUFBQUFBTEJnTUlBQUFBQUFvR0F3UUFRYVFkQzlrQkFRQUFBQU1BQUFBSEFBQUFEd0FBQUI4QUFBQS9BQUFBZndBQUFQOEFBQUQvQVFBQS93TUFBUDhIQUFEL0R3QUEveDhBQVA4L0FBRC9md0FBLy84QUFQLy9BUUQvL3dNQS8vOEhBUC8vRHdELy94OEEvLzgvQVAvL2Z3RC8vLzhBLy8vL0FmLy8vd1AvLy84SC8vLy9ELy8vL3gvLy8vOC8vLy8vZndBQUFBQUJBQUFBQWdBQUFBUUFBQUFBQUFBQUFnQUFBQVFBQUFBSUFBQUFBQUFBQUFFQUFBQUNBQUFBQVFBQUFBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUFnQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QkJnQjhMQTRBUkFRPT0iO3ZhciB5ZT1uZXcgUEEsbWU9ITE7YXN5bmMgZnVuY3Rpb24gQ3IoQSx0LGUpe2xldCBJPW51bGw7dHlwZW9mIEEhPSJzdHJpbmciP0k9QS5ocmVmOkEuc3RhcnRzV2l0aCgiaHR0cCIpP0k9QTpJPWAke3R9LyR7QX1gLEkuZW5kc1dpdGgoIi5qcyIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTMpKSxJLmVuZHNXaXRoKCIud2FzbSIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTUpKSxJLmVuZHNXaXRoKCIud2FzbS56c3QiKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC05KSk7bGV0IHI9YCR7SX0ud2FzbWAsZz1hd2FpdCB4QS5nZXQoYCR7cn0uenN0YCx7cmVzcG9uc2VUeXBlOiJhcnJheWJ1ZmZlciIscGFyYW1zOmV9KTttZXx8KGF3YWl0IHllLmluaXQoKSxtZT0hMCk7bGV0IG49eWUuZGVjb2RlKG5ldyBVaW50OEFycmF5KGcuZGF0YSkpLmJ1ZmZlcjtyZXR1cm4oYXdhaXQgaW1wb3J0KGAke0l9LmpzYCkpLmRlZmF1bHQoe3dhc21CaW5hcnk6bn0pfXZhciB3ZT1Dcjt2YXIgakE9bmV3IE1hcDthc3luYyBmdW5jdGlvbiBCcihBLHQsZSl7bGV0IEk9QSxyPUEsZz1udWxsO3JldHVybiB0eXBlb2YgQSE9InN0cmluZyImJihJPW5ldyBVUkwoQS5ocmVmKSxyPUkuaHJlZiksakEuaGFzKHIpP2c9YXdhaXQgakEuZ2V0KHIpOihqQS5zZXQocix3ZShJLHQsZSkpLGc9YXdhaXQgakEuZ2V0KHIpKSxnfXZhciBwZT1Ccjt2YXIgYXI9e1RleHRGaWxlOiJUZXh0RmlsZSIsQmluYXJ5RmlsZToiQmluYXJ5RmlsZSIsVGV4dFN0cmVhbToiVGV4dFN0cmVhbSIsQmluYXJ5U3RyZWFtOiJCaW5hcnlTdHJlYW0iLEltYWdlOiJJbWFnZSIsUG9pbnRTZXQ6IlBvaW50U2V0IixNZXNoOiJNZXNoIixQb2x5RGF0YToiUG9seURhdGEiLFRyYW5zZm9ybUxpc3Q6IlRyYW5zZm9ybUxpc3QiLEpzb25Db21wYXRpYmxlOiJKc29uQ29tcGF0aWJsZSJ9LGQ9YXI7dmFyIFFyPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sVT1Rcjt2YXIgRXI9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LFY9RXI7ZnVuY3Rpb24gY3IoQSx0KXtsZXQgZT1udWxsO3N3aXRjaChBKXtjYXNlIFUuVUludDg6e2U9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBVLkludDg6e2U9bmV3IEludDhBcnJheSh0KTticmVha31jYXNlIFUuVUludDE2OntlPW5ldyBVaW50MTZBcnJheSh0KTticmVha31jYXNlIFUuSW50MTY6e2U9bmV3IEludDE2QXJyYXkodCk7YnJlYWt9Y2FzZSBVLlVJbnQzMjp7ZT1uZXcgVWludDMyQXJyYXkodCk7YnJlYWt9Y2FzZSBVLkludDMyOntlPW5ldyBJbnQzMkFycmF5KHQpO2JyZWFrfWNhc2UgVS5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP2U9bmV3IEJpZ1VpbnQ2NEFycmF5KHQpOmU9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBVLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP2U9bmV3IEJpZ0ludDY0QXJyYXkodCk6ZT1uZXcgVWludDhBcnJheSh0KTticmVha31jYXNlIFYuRmxvYXQzMjp7ZT1uZXcgRmxvYXQzMkFycmF5KHQpO2JyZWFrfWNhc2UgVi5GbG9hdDY0OntlPW5ldyBGbG9hdDY0QXJyYXkodCk7YnJlYWt9Y2FzZSJudWxsIjp7ZT1udWxsO2JyZWFrfWNhc2UgbnVsbDp7ZT1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIGV9dmFyIHE9Y3I7dmFyIFJlPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPT0iZnVuY3Rpb24iLFNlPW5ldyBUZXh0RW5jb2RlcixGZT1uZXcgVGV4dERlY29kZXIoInV0Zi04Iik7ZnVuY3Rpb24gZnIoQSx0KXtsZXQgZT17ZmxhZ3M6InIiLGVuY29kaW5nOiJiaW5hcnkifSxJPUEuZnNfb3Blbih0LGUuZmxhZ3MpLGc9QS5mc19zdGF0KHQpLnNpemUsbz1udWxsO1JlP289bmV3IFNoYXJlZEFycmF5QnVmZmVyKGcpOm89bmV3IEFycmF5QnVmZmVyKGcpO2xldCBuPW5ldyBVaW50OEFycmF5KG8pO3JldHVybiBBLmZzX3JlYWQoSSxuLDAsZywwKSxBLmZzX2Nsb3NlKEkpLG59ZnVuY3Rpb24gTmUoQSx0LGUpe2xldCBJPW51bGw7UmU/ST1uZXcgU2hhcmVkQXJyYXlCdWZmZXIoZSk6ST1uZXcgQXJyYXlCdWZmZXIoZSk7bGV0IHI9bmV3IFVpbnQ4QXJyYXkoSSksZz1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsdCxlKTtyZXR1cm4gci5zZXQoZykscn1mdW5jdGlvbiB3KEEsdCxlLEkpe2xldCByPTA7cmV0dXJuIHQhPT1udWxsJiYocj1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9hcnJheV9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLEksdC5idWZmZXIuYnl0ZUxlbmd0aF0pLEEuSEVBUFU4LnNldChuZXcgVWludDhBcnJheSh0LmJ1ZmZlcikscikpLHJ9ZnVuY3Rpb24geChBLHQsZSl7bGV0IEk9SlNPTi5zdHJpbmdpZnkodCkscj1BLmxlbmd0aEJ5dGVzVVRGOChJKSsxLGc9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfanNvbl9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLHJdKTtBLnN0cmluZ1RvVVRGOChJLGcscil9ZnVuY3Rpb24gUyhBLHQsZSxJKXtsZXQgcj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LGVdKSxnPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsZV0pLG89TmUoQSxyLGcpO3JldHVybiBxKEksby5idWZmZXIpfWZ1bmN0aW9uIHVBKEEsdCl7bGV0IGU9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2pzb25fYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiXSxbMCx0XSksST1BLlVURjhUb1N0cmluZyhlKTtyZXR1cm4gSlNPTi5wYXJzZShJKX1mdW5jdGlvbiBscihBLHQsZSxJKXtJIT1udWxsJiZJLmxlbmd0aD4wJiZJLmZvckVhY2goZnVuY3Rpb24oQixzKXtzd2l0Y2goQi50eXBlKXtjYXNlIGQuVGV4dFN0cmVhbTp7bGV0IEM9U2UuZW5jb2RlKEIuZGF0YS5kYXRhKSxsPXcoQSxDLHMsMCksYT17c2l6ZTpDLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O3goQSxhLHMpO2JyZWFrfWNhc2UgZC5Kc29uQ29tcGF0aWJsZTp7bGV0IEM9U2UuZW5jb2RlKEpTT04uc3RyaW5naWZ5KEIuZGF0YSkpLGw9dyhBLEMscywwKSxhPXtzaXplOkMuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07eChBLGEscyk7YnJlYWt9Y2FzZSBkLkJpbmFyeVN0cmVhbTp7bGV0IEM9Qi5kYXRhLmRhdGEsbD13KEEsQyxzLDApLGE9e3NpemU6Qy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTt4KEEsYSxzKTticmVha31jYXNlIGQuVGV4dEZpbGU6e0EuZnNfd3JpdGVGaWxlKEIuZGF0YS5wYXRoLEIuZGF0YS5kYXRhKTticmVha31jYXNlIGQuQmluYXJ5RmlsZTp7QS5mc193cml0ZUZpbGUoQi5kYXRhLnBhdGgsQi5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgZC5JbWFnZTp7bGV0IEM9Qi5kYXRhLGw9dyhBLEMuZGF0YSxzLDApLGE9dyhBLEMuZGlyZWN0aW9uLHMsMSksUT10eXBlb2YgQy5tZXRhZGF0YT8uZW50cmllczwidSI/QXJyYXkuZnJvbShDLm1ldGFkYXRhLmVudHJpZXMoKSk6W10sZj17aW1hZ2VUeXBlOkMuaW1hZ2VUeXBlLG5hbWU6Qy5uYW1lLG9yaWdpbjpDLm9yaWdpbixzcGFjaW5nOkMuc3BhY2luZyxkaXJlY3Rpb246YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHthfWAsc2l6ZTpDLnNpemUsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxtZXRhZGF0YTpRfTt4KEEsZixzKTticmVha31jYXNlIGQuTWVzaDp7bGV0IEM9Qi5kYXRhLGw9dyhBLEMucG9pbnRzLHMsMCksYT13KEEsQy5jZWxscyxzLDEpLFE9dyhBLEMucG9pbnREYXRhLHMsMiksZj13KEEsQy5jZWxsRGF0YSxzLDMpLGM9e21lc2hUeXBlOkMubWVzaFR5cGUsbmFtZTpDLm5hbWUsbnVtYmVyT2ZQb2ludHM6Qy5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbnVtYmVyT2ZDZWxsczpDLm51bWJlck9mQ2VsbHMsY2VsbHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHthfWAsY2VsbEJ1ZmZlclNpemU6Qy5jZWxsQnVmZmVyU2l6ZSxudW1iZXJPZlBvaW50UGl4ZWxzOkMubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOkMubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gfTt4KEEsYyxzKTticmVha31jYXNlIGQuUG9pbnRTZXQ6e2xldCBDPUIuZGF0YSxsPXcoQSxDLnBvaW50cyxzLDApLGE9dyhBLEMucG9pbnREYXRhLHMsMSksUT17cG9pbnRTZXRUeXBlOkMucG9pbnRTZXRUeXBlLG5hbWU6Qy5uYW1lLG51bWJlck9mUG9pbnRzOkMubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG51bWJlck9mUG9pbnRQaXhlbHM6Qy5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2F9YH07eChBLFEscyk7YnJlYWt9Y2FzZSBkLlRyYW5zZm9ybUxpc3Q6e2xldCBDPUIuZGF0YSxsPVtdLGE9MDtDLmZvckVhY2goUT0+e2xldCBmPSIiLGM9IiI7US50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGY9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt3KEEsUS5maXhlZFBhcmFtZXRlcnMscyxhKX1gLGErPTEsYz1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3coQSxRLnBhcmFtZXRlcnMscyxhKX1gLGErPTEpO2xldCBEPXt0cmFuc2Zvcm1UeXBlOlEudHJhbnNmb3JtVHlwZSxudW1iZXJPZkZpeGVkUGFyYW1ldGVyczpRLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzLG51bWJlck9mUGFyYW1ldGVyczpRLm51bWJlck9mUGFyYW1ldGVycyxuYW1lOlEubmFtZSxpbnB1dFNwYWNlTmFtZTpRLmlucHV0U3BhY2VOYW1lLG91dHB1dFNwYWNlTmFtZTpRLm91dHB1dFNwYWNlTmFtZSxwYXJhbWV0ZXJzOmMsZml4ZWRQYXJhbWV0ZXJzOmZ9O2wucHVzaChEKX0pLHgoQSxsLHMpO2JyZWFrfWNhc2UgZC5Qb2x5RGF0YTp7bGV0IEM9Qi5kYXRhLGw9dyhBLEMucG9pbnRzLHMsMCksYT13KEEsQy52ZXJ0aWNlcyxzLDEpLFE9dyhBLEMubGluZXMscywyKSxmPXcoQSxDLnBvbHlnb25zLHMsMyksYz13KEEsQy50cmlhbmdsZVN0cmlwcyxzLDQpLEQ9dyhBLEMucG9pbnREYXRhLHMsNSksRj13KEEsQy5wb2ludERhdGEscyw2KSx5PXtwb2x5RGF0YVR5cGU6Qy5wb2x5RGF0YVR5cGUsbmFtZTpDLm5hbWUsbnVtYmVyT2ZQb2ludHM6Qy5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsdmVydGljZXNCdWZmZXJTaXplOkMudmVydGljZXNCdWZmZXJTaXplLHZlcnRpY2VzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7YX1gLGxpbmVzQnVmZmVyU2l6ZTpDLmxpbmVzQnVmZmVyU2l6ZSxsaW5lczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YCxwb2x5Z29uc0J1ZmZlclNpemU6Qy5wb2x5Z29uc0J1ZmZlclNpemUscG9seWdvbnM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsdHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplOkMudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplLHRyaWFuZ2xlU3RyaXBzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLG51bWJlck9mUG9pbnRQaXhlbHM6Qy5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0R9YCxudW1iZXJPZkNlbGxQaXhlbHM6Qy5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtGfWB9O3goQSx5LHMpO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIGlucHV0IEludGVyZmFjZVR5cGUiKX19KSxBLnJlc2V0TW9kdWxlU3Rkb3V0KCksQS5yZXNldE1vZHVsZVN0ZGVycigpO2xldCByPUEuc3RhY2tTYXZlKCksZz0wO3RyeXtnPUEuY2FsbE1haW4odC5zbGljZSgpKX1jYXRjaChCKXt0aHJvdyB0eXBlb2YgQj09Im51bWJlciImJihjb25zb2xlLmxvZygiRXhjZXB0aW9uIHdoaWxlIHJ1bm5pbmcgcGlwZWxpbmU6IiksY29uc29sZS5sb2coInN0ZG91dDoiLEEuZ2V0TW9kdWxlU3Rkb3V0KCkpLGNvbnNvbGUuZXJyb3IoInN0ZGVycjoiLEEuZ2V0TW9kdWxlU3RkZXJyKCkpLHR5cGVvZiBBLmdldEV4Y2VwdGlvbk1lc3NhZ2U8InUiP2NvbnNvbGUuZXJyb3IoImV4Y2VwdGlvbjoiLEEuZ2V0RXhjZXB0aW9uTWVzc2FnZShCKSk6Y29uc29sZS5lcnJvcigiQnVpbGQgbW9kdWxlIGluIERlYnVnIG1vZGUgZm9yIGV4Y2VwdGlvbiBtZXNzYWdlIGluZm9ybWF0aW9uLiIpKSxCfWZpbmFsbHl7QS5zdGFja1Jlc3RvcmUocil9bGV0IG89QS5nZXRNb2R1bGVTdGRvdXQoKSxuPUEuZ2V0TW9kdWxlU3RkZXJyKCksRT1bXTtyZXR1cm4gZSE9bnVsbCYmZS5sZW5ndGg+MCYmZz09PTAmJmUuZm9yRWFjaChmdW5jdGlvbihCLHMpe2xldCBDPW51bGw7c3dpdGNoKEIudHlwZSl7Y2FzZSBkLlRleHRTdHJlYW06e2xldCBhPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksZj1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsYSxRKTtDPXtkYXRhOkZlLmRlY29kZShmKX07YnJlYWt9Y2FzZSBkLkpzb25Db21wYXRpYmxlOntsZXQgYT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLGY9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLGEsUSk7Qz1KU09OLnBhcnNlKEZlLmRlY29kZShmKSk7YnJlYWt9Y2FzZSBkLkJpbmFyeVN0cmVhbTp7bGV0IGE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKTtDPXtkYXRhOk5lKEEsYSxRKX07YnJlYWt9Y2FzZSBkLlRleHRGaWxlOntDPXtwYXRoOkIuZGF0YS5wYXRoLGRhdGE6QS5mc19yZWFkRmlsZShCLmRhdGEucGF0aCx7ZW5jb2Rpbmc6InV0ZjgifSl9O2JyZWFrfWNhc2UgZC5CaW5hcnlGaWxlOntDPXtwYXRoOkIuZGF0YS5wYXRoLGRhdGE6ZnIoQSxCLmRhdGEucGF0aCl9O2JyZWFrfWNhc2UgZC5JbWFnZTp7bGV0IGE9dUEoQSxzKTthLmRhdGE9UyhBLHMsMCxhLmltYWdlVHlwZS5jb21wb25lbnRUeXBlKSxhLmRpcmVjdGlvbj1TKEEscywxLFYuRmxvYXQ2NCksYS5tZXRhZGF0YT1uZXcgTWFwKGEubWV0YWRhdGEpLEM9YTticmVha31jYXNlIGQuTWVzaDp7bGV0IGE9dUEoQSxzKTthLm51bWJlck9mUG9pbnRzPjA/YS5wb2ludHM9UyhBLHMsMCxhLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6YS5wb2ludHM9cShhLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZDZWxscz4wP2EuY2VsbHM9UyhBLHMsMSxhLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlKTphLmNlbGxzPXEoYS5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZQb2ludFBpeGVscz4wP2EucG9pbnREYXRhPVMoQSxzLDIsYS5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6YS5wb2ludERhdGE9cShhLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYS5udW1iZXJPZkNlbGxQaXhlbHM+MD9hLmNlbGxEYXRhPVMoQSxzLDMsYS5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTphLmNlbGxEYXRhPXEoYS5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQz1hO2JyZWFrfWNhc2UgZC5Qb2ludFNldDp7bGV0IGE9dUEoQSxzKTthLm51bWJlck9mUG9pbnRzPjA/YS5wb2ludHM9UyhBLHMsMCxhLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUpOmEucG9pbnRzPXEoYS5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYS5udW1iZXJPZlBvaW50UGl4ZWxzPjA/YS5wb2ludERhdGE9UyhBLHMsMSxhLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6YS5wb2ludERhdGE9cShhLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEM9YTticmVha31jYXNlIGQuVHJhbnNmb3JtTGlzdDp7bGV0IGE9dUEoQSxzKSxRPTA7YS5mb3JFYWNoKChmLGMpPT57Zi50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGYubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM+MCYmKGFbY10uZml4ZWRQYXJhbWV0ZXJzPVMoQSxzLFEsVi5GbG9hdDY0KSksUSs9MSxmLm51bWJlck9mUGFyYW1ldGVycz4wJiYoYVtjXS5wYXJhbWV0ZXJzPVMoQSxzLFEsZi50cmFuc2Zvcm1UeXBlLnBhcmFtZXRlcnNWYWx1ZVR5cGUpKSxRKz0xKX0pLEM9YTticmVha31jYXNlIGQuUG9seURhdGE6e2xldCBhPXVBKEEscyk7YS5udW1iZXJPZlBvaW50cz4wP2EucG9pbnRzPVMoQSxzLDAsVi5GbG9hdDMyKTphLnBvaW50cz1uZXcgRmxvYXQzMkFycmF5LGEudmVydGljZXNCdWZmZXJTaXplPjA/YS52ZXJ0aWNlcz1TKEEscywxLFUuVUludDMyKTphLnZlcnRpY2VzPW5ldyBVaW50MzJBcnJheSxhLmxpbmVzQnVmZmVyU2l6ZT4wP2EubGluZXM9UyhBLHMsMixVLlVJbnQzMik6YS5saW5lcz1uZXcgVWludDMyQXJyYXksYS5wb2x5Z29uc0J1ZmZlclNpemU+MD9hLnBvbHlnb25zPVMoQSxzLDMsVS5VSW50MzIpOmEucG9seWdvbnM9bmV3IFVpbnQzMkFycmF5LGEudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplPjA/YS50cmlhbmdsZVN0cmlwcz1TKEEscyw0LFUuVUludDMyKTphLnRyaWFuZ2xlU3RyaXBzPW5ldyBVaW50MzJBcnJheSxhLm51bWJlck9mUG9pbnRQaXhlbHM+MD9hLnBvaW50RGF0YT1TKEEscyw1LGEucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTphLnBvaW50RGF0YT1xKGEucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYS5udW1iZXJPZkNlbGxQaXhlbHM+MD9hLmNlbGxEYXRhPVMoQSxzLDYsYS5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6YS5jZWxsRGF0YT1xKGEucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDPWE7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgb3V0cHV0IEludGVyZmFjZVR5cGUiKX1sZXQgbD17dHlwZTpCLnR5cGUsZGF0YTpDfTtFLnB1c2gobCl9KSx7cmV0dXJuVmFsdWU6ZyxzdGRvdXQ6byxzdGRlcnI6bixvdXRwdXRzOkV9fXZhciBVZT1scjt2YXIgdXI9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI8InUiO2Z1bmN0aW9uIGRyKEEsdCl7aWYoQT09bnVsbClyZXR1cm5bXTtsZXQgZT1bXTtmb3IobGV0IEk9MDtJPEEubGVuZ3RoO0krKyl7bGV0IHI9RHIoQVtJXSx0KTtyIT09bnVsbCYmZS5wdXNoKHIpfXJldHVybiBlfWZ1bmN0aW9uIERyKEEsdCl7aWYoQT09bnVsbClyZXR1cm4gbnVsbDtsZXQgZT1udWxsO3JldHVybiBBLmJ1ZmZlciE9PXZvaWQgMD9lPUEuYnVmZmVyOkEuYnl0ZUxlbmd0aCE9PXZvaWQgMCYmKGU9QSksdXImJmUgaW5zdGFuY2VvZiBTaGFyZWRBcnJheUJ1ZmZlcj9udWxsOnQ/ZTplLnNsaWNlKDApfXZhciBHZT1kcjtmdW5jdGlvbiBocihBKXtyZXR1cm5bQS5kYXRhLEEuZGlyZWN0aW9uXX12YXIga2U9aHI7ZnVuY3Rpb24geXIoQSl7cmV0dXJuW0EucG9pbnRzLEEucG9pbnREYXRhLEEuY2VsbHMsQS5jZWxsRGF0YV19dmFyIExlPXlyO2Z1bmN0aW9uIG1yKEEpe3JldHVybltBLnBvaW50cyxBLnZlcnRpY2VzLEEubGluZXMsQS5wb2x5Z29ucyxBLnRyaWFuZ2xlU3RyaXBzLEEucG9pbnREYXRhLEEuY2VsbERhdGFdfXZhciBiZT1tcjthc3luYyBmdW5jdGlvbiB3cihBLHQsZSxJKXtsZXQgcj1VZShBLHQsZSxJKSxnPVtdO3JldHVybiByLm91dHB1dHMuZm9yRWFjaChmdW5jdGlvbihvKXtpZihvLnR5cGU9PT1kLkJpbmFyeVN0cmVhbXx8by50eXBlPT09ZC5CaW5hcnlGaWxlKXtsZXQgbj1vLmRhdGE7Zy5wdXNoKG4pfWVsc2UgaWYoby50eXBlPT09ZC5JbWFnZSl7bGV0IG49by5kYXRhO2cucHVzaCguLi5rZShuKSl9ZWxzZSBpZihvLnR5cGU9PT1kLk1lc2gpe2xldCBuPW8uZGF0YTtnLnB1c2goLi4uTGUobikpfWVsc2UgaWYoby50eXBlPT09ZC5Qb2x5RGF0YSl7bGV0IG49by5kYXRhO2cucHVzaCguLi5iZShuKSl9fSksX0EocixHZShnLCEwKSl9dmFyIEplPXdyO3ZhciBwcj17cnVuUGlwZWxpbmU6YXN5bmMgZnVuY3Rpb24oQSx0LGUsSSxyLGcpe2xldCBvPWF3YWl0IHBlKEEsdCxnKTtyZXR1cm4gYXdhaXQgSmUobyxlLEkscil9fTtGQShwcik7JTBBLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjolMEElMEFjb21saW5rL2Rpc3QvZXNtL2NvbWxpbmsubWpzOiUwQSAgKCoqJTBBICAgKiBAbGljZW5zZSUwQSAgICogQ29weXJpZ2h0IDIwMTkgR29vZ2xlIExMQyUwQSAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAlMEEgICAqKSUwQSovJTBBJztBSSh0SSk7ZXhwb3J0e29nIGFzIGRvd25zYW1wbGUsZWcgYXMgZG93bnNhbXBsZUJpblNocmluayxJZyBhcyBkb3duc2FtcGxlTGFiZWxJbWFnZSxnZyBhcyBkb3duc2FtcGxlU2lnbWEsYWcgYXMgZ2F1c3NpYW5LZXJuZWxSYWRpdXMsVCBhcyBnZXREZWZhdWx0V2ViV29ya2VyLEcgYXMgZ2V0UGlwZWxpbmVXb3JrZXJVcmwsTyBhcyBnZXRQaXBlbGluZXNCYXNlVXJsLHFhIGFzIHNldERlZmF1bHRXZWJXb3JrZXIsQUkgYXMgc2V0UGlwZWxpbmVXb3JrZXJVcmwsR2EgYXMgc2V0UGlwZWxpbmVzQmFzZVVybCxlZSBhcyB2ZXJzaW9ufTsKLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjoKCmNvbWxpbmsvZGlzdC9lc20vY29tbGluay5tanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKICAgKikKKi8K""" +default_js_module = """data:text/javascript;base64,dmFyIHJJPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgZ0k9KEEsZSk9Pntmb3IodmFyIHQgaW4gZSlySShBLHQse2dldDplW3RdLGVudW1lcmFibGU6ITB9KX07dmFyIGlJPSIxLjguMSIsZWU9aUk7dmFyIG9JPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0saz1vSTt2YXIgbkk9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LFg9bkk7ZnVuY3Rpb24gYUkoQSxlKXtsZXQgdD1udWxsO3N3aXRjaChBKXtjYXNlIGsuVUludDg6e3Q9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBrLkludDg6e3Q9bmV3IEludDhBcnJheShlKTticmVha31jYXNlIGsuVUludDE2Ont0PW5ldyBVaW50MTZBcnJheShlKTticmVha31jYXNlIGsuSW50MTY6e3Q9bmV3IEludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBrLlVJbnQzMjp7dD1uZXcgVWludDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSBrLkludDMyOnt0PW5ldyBJbnQzMkFycmF5KGUpO2JyZWFrfWNhc2Ugay5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ1VpbnQ2NEFycmF5KGUpOnQ9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBrLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ0ludDY0QXJyYXkoZSk6dD1uZXcgVWludDhBcnJheShlKTticmVha31jYXNlIFguRmxvYXQzMjp7dD1uZXcgRmxvYXQzMkFycmF5KGUpO2JyZWFrfWNhc2UgWC5GbG9hdDY0Ont0PW5ldyBGbG9hdDY0QXJyYXkoZSk7YnJlYWt9Y2FzZSJudWxsIjp7dD1udWxsO2JyZWFrfWNhc2UgbnVsbDp7dD1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIHR9dmFyIEg9YUk7dmFyIHNJPXtUZXh0RmlsZToiVGV4dEZpbGUiLEJpbmFyeUZpbGU6IkJpbmFyeUZpbGUiLFRleHRTdHJlYW06IlRleHRTdHJlYW0iLEJpbmFyeVN0cmVhbToiQmluYXJ5U3RyZWFtIixJbWFnZToiSW1hZ2UiLFBvaW50U2V0OiJQb2ludFNldCIsTWVzaDoiTWVzaCIsUG9seURhdGE6IlBvbHlEYXRhIixUcmFuc2Zvcm1MaXN0OiJUcmFuc2Zvcm1MaXN0IixKc29uQ29tcGF0aWJsZToiSnNvbkNvbXBhdGlibGUifSxkPXNJO3ZhciBUZT1TeW1ib2woIkNvbWxpbmsucHJveHkiKSxDST1TeW1ib2woIkNvbWxpbmsuZW5kcG9pbnQiKSxyZT1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksdGU9U3ltYm9sKCJDb21saW5rLmZpbmFsaXplciIpLFVBPVN5bWJvbCgiQ29tbGluay50aHJvd24iKSx4ZT1BPT50eXBlb2YgQT09Im9iamVjdCImJkEhPT1udWxsfHx0eXBlb2YgQT09ImZ1bmN0aW9uIixCST17Y2FuSGFuZGxlOkE9PnhlKEEpJiZBW1RlXSxzZXJpYWxpemUoQSl7bGV0e3BvcnQxOmUscG9ydDI6dH09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiBXZShBLGUpLFt0LFt0XV19LGRlc2VyaWFsaXplKEEpe3JldHVybiBBLnN0YXJ0KCksZ2UoQSl9fSxRST17Y2FuSGFuZGxlOkE9PnhlKEEpJiZVQSBpbiBBLHNlcmlhbGl6ZSh7dmFsdWU6QX0pe2xldCBlO3JldHVybiBBIGluc3RhbmNlb2YgRXJyb3I/ZT17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTpBLm1lc3NhZ2UsbmFtZTpBLm5hbWUsc3RhY2s6QS5zdGFja319OmU9e2lzRXJyb3I6ITEsdmFsdWU6QX0sW2UsW11dfSxkZXNlcmlhbGl6ZShBKXt0aHJvdyBBLmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoQS52YWx1ZS5tZXNzYWdlKSxBLnZhbHVlKTpBLnZhbHVlfX0sUGU9bmV3IE1hcChbWyJwcm94eSIsQkldLFsidGhyb3ciLFFJXV0pO2Z1bmN0aW9uIEVJKEEsZSl7Zm9yKGxldCB0IG9mIEEpaWYoZT09PXR8fHQ9PT0iKiJ8fHQgaW5zdGFuY2VvZiBSZWdFeHAmJnQudGVzdChlKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBXZShBLGU9Z2xvYmFsVGhpcyx0PVsiKiJdKXtlLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIEkocil7aWYoIXJ8fCFyLmRhdGEpcmV0dXJuO2lmKCFFSSh0LHIub3JpZ2luKSl7Y29uc29sZS53YXJuKGBJbnZhbGlkIG9yaWdpbiAnJHtyLm9yaWdpbn0nIGZvciBjb21saW5rIHByb3h5YCk7cmV0dXJufWxldHtpZDppLHR5cGU6ZyxwYXRoOnN9PU9iamVjdC5hc3NpZ24oe3BhdGg6W119LHIuZGF0YSksRT0oci5kYXRhLmFyZ3VtZW50TGlzdHx8W10pLm1hcCh6KSxDO3RyeXtsZXQgbz1zLnNsaWNlKDAsLTEpLnJlZHVjZSgoYyxCKT0+Y1tCXSxBKSxhPXMucmVkdWNlKChjLEIpPT5jW0JdLEEpO3N3aXRjaChnKXtjYXNlIkdFVCI6Qz1hO2JyZWFrO2Nhc2UiU0VUIjpvW3Muc2xpY2UoLTEpWzBdXT16KHIuZGF0YS52YWx1ZSksQz0hMDticmVhaztjYXNlIkFQUExZIjpDPWEuYXBwbHkobyxFKTticmVhaztjYXNlIkNPTlNUUlVDVCI6e2xldCBjPW5ldyBhKC4uLkUpO0M9ZEkoYyl9YnJlYWs7Y2FzZSJFTkRQT0lOVCI6e2xldHtwb3J0MTpjLHBvcnQyOkJ9PW5ldyBNZXNzYWdlQ2hhbm5lbDtXZShBLEIpLEM9aWUoYyxbY10pfWJyZWFrO2Nhc2UiUkVMRUFTRSI6Qz12b2lkIDA7YnJlYWs7ZGVmYXVsdDpyZXR1cm59fWNhdGNoKG8pe0M9e3ZhbHVlOm8sW1VBXTowfX1Qcm9taXNlLnJlc29sdmUoQykuY2F0Y2gobz0+KHt2YWx1ZTpvLFtVQV06MH0pKS50aGVuKG89PntsZXRbYSxjXT1MQShvKTtlLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxhKSx7aWQ6aX0pLGMpLGc9PT0iUkVMRUFTRSImJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLEkpLGplKGUpLHRlIGluIEEmJnR5cGVvZiBBW3RlXT09ImZ1bmN0aW9uIiYmQVt0ZV0oKSl9KS5jYXRjaChvPT57bGV0W2EsY109TEEoe3ZhbHVlOm5ldyBUeXBlRXJyb3IoIlVuc2VyaWFsaXphYmxlIHJldHVybiB2YWx1ZSIpLFtVQV06MH0pO2UucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGEpLHtpZDppfSksYyl9KX0pLGUuc3RhcnQmJmUuc3RhcnQoKX1mdW5jdGlvbiBsSShBKXtyZXR1cm4gQS5jb25zdHJ1Y3Rvci5uYW1lPT09Ik1lc3NhZ2VQb3J0In1mdW5jdGlvbiBqZShBKXtsSShBKSYmQS5jbG9zZSgpfWZ1bmN0aW9uIGdlKEEsZSl7cmV0dXJuIEllKEEsW10sZSl9ZnVuY3Rpb24ga0EoQSl7aWYoQSl0aHJvdyBuZXcgRXJyb3IoIlByb3h5IGhhcyBiZWVuIHJlbGVhc2VkIGFuZCBpcyBub3QgdXNlYWJsZSIpfWZ1bmN0aW9uIHZlKEEpe3JldHVybiBBQShBLHt0eXBlOiJSRUxFQVNFIn0pLnRoZW4oKCk9PntqZShBKX0pfXZhciBOQT1uZXcgV2Vha01hcCxHQT0iRmluYWxpemF0aW9uUmVnaXN0cnkiaW4gZ2xvYmFsVGhpcyYmbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KEE9PntsZXQgZT0oTkEuZ2V0KEEpfHwwKS0xO05BLnNldChBLGUpLGU9PT0wJiZ2ZShBKX0pO2Z1bmN0aW9uIGNJKEEsZSl7bGV0IHQ9KE5BLmdldChlKXx8MCkrMTtOQS5zZXQoZSx0KSxHQSYmR0EucmVnaXN0ZXIoQSxlLEEpfWZ1bmN0aW9uIGZJKEEpe0dBJiZHQS51bnJlZ2lzdGVyKEEpfWZ1bmN0aW9uIEllKEEsZT1bXSx0PWZ1bmN0aW9uKCl7fSl7bGV0IEk9ITEscj1uZXcgUHJveHkodCx7Z2V0KGksZyl7aWYoa0EoSSksZz09PXJlKXJldHVybigpPT57ZkkociksdmUoQSksST0hMH07aWYoZz09PSJ0aGVuIil7aWYoZS5sZW5ndGg9PT0wKXJldHVybnt0aGVuOigpPT5yfTtsZXQgcz1BQShBLHt0eXBlOiJHRVQiLHBhdGg6ZS5tYXAoRT0+RS50b1N0cmluZygpKX0pLnRoZW4oeik7cmV0dXJuIHMudGhlbi5iaW5kKHMpfXJldHVybiBJZShBLFsuLi5lLGddKX0sc2V0KGksZyxzKXtrQShJKTtsZXRbRSxDXT1MQShzKTtyZXR1cm4gQUEoQSx7dHlwZToiU0VUIixwYXRoOlsuLi5lLGddLm1hcChvPT5vLnRvU3RyaW5nKCkpLHZhbHVlOkV9LEMpLnRoZW4oeil9LGFwcGx5KGksZyxzKXtrQShJKTtsZXQgRT1lW2UubGVuZ3RoLTFdO2lmKEU9PT1DSSlyZXR1cm4gQUEoQSx7dHlwZToiRU5EUE9JTlQifSkudGhlbih6KTtpZihFPT09ImJpbmQiKXJldHVybiBJZShBLGUuc2xpY2UoMCwtMSkpO2xldFtDLG9dPU9lKHMpO3JldHVybiBBQShBLHt0eXBlOiJBUFBMWSIscGF0aDplLm1hcChhPT5hLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpDfSxvKS50aGVuKHopfSxjb25zdHJ1Y3QoaSxnKXtrQShJKTtsZXRbcyxFXT1PZShnKTtyZXR1cm4gQUEoQSx7dHlwZToiQ09OU1RSVUNUIixwYXRoOmUubWFwKEM9PkMudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OnN9LEUpLnRoZW4oeil9fSk7cmV0dXJuIGNJKHIsQSkscn1mdW5jdGlvbiB1SShBKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxBKX1mdW5jdGlvbiBPZShBKXtsZXQgZT1BLm1hcChMQSk7cmV0dXJuW2UubWFwKHQ9PnRbMF0pLHVJKGUubWFwKHQ9PnRbMV0pKV19dmFyIFplPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIGllKEEsZSl7cmV0dXJuIFplLnNldChBLGUpLEF9ZnVuY3Rpb24gZEkoQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7W1RlXTohMH0pfWZ1bmN0aW9uIExBKEEpe2ZvcihsZXRbZSx0XW9mIFBlKWlmKHQuY2FuSGFuZGxlKEEpKXtsZXRbSSxyXT10LnNlcmlhbGl6ZShBKTtyZXR1cm5be3R5cGU6IkhBTkRMRVIiLG5hbWU6ZSx2YWx1ZTpJfSxyXX1yZXR1cm5be3R5cGU6IlJBVyIsdmFsdWU6QX0sWmUuZ2V0KEEpfHxbXV19ZnVuY3Rpb24geihBKXtzd2l0Y2goQS50eXBlKXtjYXNlIkhBTkRMRVIiOnJldHVybiBQZS5nZXQoQS5uYW1lKS5kZXNlcmlhbGl6ZShBLnZhbHVlKTtjYXNlIlJBVyI6cmV0dXJuIEEudmFsdWV9fWZ1bmN0aW9uIEFBKEEsZSx0KXtyZXR1cm4gbmV3IFByb21pc2UoST0+e2xldCByPXBJKCk7QS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBpKGcpeyFnLmRhdGF8fCFnLmRhdGEuaWR8fGcuZGF0YS5pZCE9PXJ8fChBLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGkpLEkoZy5kYXRhKSl9KSxBLnN0YXJ0JiZBLnN0YXJ0KCksQS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKHtpZDpyfSxlKSx0KX0pfWZ1bmN0aW9uIHBJKCl7cmV0dXJuIG5ldyBBcnJheSg0KS5maWxsKDApLm1hcCgoKT0+TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKk51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygxNikpLmpvaW4oIi0iKX1mdW5jdGlvbiBDQShBLGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBBLmFwcGx5KGUsYXJndW1lbnRzKX19dmFye3RvU3RyaW5nOmhJfT1PYmplY3QucHJvdG90eXBlLHtnZXRQcm90b3R5cGVPZjpuZX09T2JqZWN0LHtpdGVyYXRvcjpKQSx0b1N0cmluZ1RhZzp6ZX09U3ltYm9sLFlBPShBPT5lPT57bGV0IHQ9aEkuY2FsbChlKTtyZXR1cm4gQVt0XXx8KEFbdF09dC5zbGljZSg4LC0xKS50b0xvd2VyQ2FzZSgpKX0pKE9iamVjdC5jcmVhdGUobnVsbCkpLGI9QT0+KEE9QS50b0xvd2VyQ2FzZSgpLGU9PllBKGUpPT09QSksTUE9QT0+ZT0+dHlwZW9mIGU9PT1BLHtpc0FycmF5OnRBfT1BcnJheSxlQT1NQSgidW5kZWZpbmVkIik7ZnVuY3Rpb24gQkEoQSl7cmV0dXJuIEEhPT1udWxsJiYhZUEoQSkmJkEuY29uc3RydWN0b3IhPT1udWxsJiYhZUEoQS5jb25zdHJ1Y3RvcikmJlUoQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikmJkEuY29uc3RydWN0b3IuaXNCdWZmZXIoQSl9dmFyIF9lPWIoIkFycmF5QnVmZmVyIik7ZnVuY3Rpb24gREkoQSl7bGV0IGU7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJkFycmF5QnVmZmVyLmlzVmlldz9lPUFycmF5QnVmZmVyLmlzVmlldyhBKTplPUEmJkEuYnVmZmVyJiZfZShBLmJ1ZmZlciksZX12YXIgeUk9TUEoInN0cmluZyIpLFU9TUEoImZ1bmN0aW9uIiksJGU9TUEoIm51bWJlciIpLFFBPUE9PkEhPT1udWxsJiZ0eXBlb2YgQT09Im9iamVjdCIsd0k9QT0+QT09PSEwfHxBPT09ITEsYkE9QT0+e2lmKFlBKEEpIT09Im9iamVjdCIpcmV0dXJuITE7bGV0IGU9bmUoQSk7cmV0dXJuKGU9PT1udWxsfHxlPT09T2JqZWN0LnByb3RvdHlwZXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09bnVsbCkmJiEoemUgaW4gQSkmJiEoSkEgaW4gQSl9LG1JPUE9PntpZighUUEoQSl8fEJBKEEpKXJldHVybiExO3RyeXtyZXR1cm4gT2JqZWN0LmtleXMoQSkubGVuZ3RoPT09MCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKEEpPT09T2JqZWN0LnByb3RvdHlwZX1jYXRjaHtyZXR1cm4hMX19LFNJPWIoIkRhdGUiKSxGST1iKCJGaWxlIiksUkk9YigiQmxvYiIpLGtJPWIoIkZpbGVMaXN0IiksVUk9QT0+UUEoQSkmJlUoQS5waXBlKSxOST1BPT57bGV0IGU7cmV0dXJuIEEmJih0eXBlb2YgRm9ybURhdGE9PSJmdW5jdGlvbiImJkEgaW5zdGFuY2VvZiBGb3JtRGF0YXx8VShBLmFwcGVuZCkmJigoZT1ZQShBKSk9PT0iZm9ybWRhdGEifHxlPT09Im9iamVjdCImJlUoQS50b1N0cmluZykmJkEudG9TdHJpbmcoKT09PSJbb2JqZWN0IEZvcm1EYXRhXSIpKX0sR0k9YigiVVJMU2VhcmNoUGFyYW1zIiksW0xJLGJJLEpJLFlJXT1bIlJlYWRhYmxlU3RyZWFtIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiSGVhZGVycyJdLm1hcChiKSxNST1BPT5BLnRyaW0/QS50cmltKCk6QS5yZXBsYWNlKC9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZywiIik7ZnVuY3Rpb24gRUEoQSxlLHthbGxPd25LZXlzOnQ9ITF9PXt9KXtpZihBPT09bnVsbHx8dHlwZW9mIEE+InUiKXJldHVybjtsZXQgSSxyO2lmKHR5cGVvZiBBIT0ib2JqZWN0IiYmKEE9W0FdKSx0QShBKSlmb3IoST0wLHI9QS5sZW5ndGg7STxyO0krKyllLmNhbGwobnVsbCxBW0ldLEksQSk7ZWxzZXtpZihCQShBKSlyZXR1cm47bGV0IGk9dD9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKTpPYmplY3Qua2V5cyhBKSxnPWkubGVuZ3RoLHM7Zm9yKEk9MDtJPGc7SSsrKXM9aVtJXSxlLmNhbGwobnVsbCxBW3NdLHMsQSl9fWZ1bmN0aW9uIEF0KEEsZSl7aWYoQkEoQSkpcmV0dXJuIG51bGw7ZT1lLnRvTG93ZXJDYXNlKCk7bGV0IHQ9T2JqZWN0LmtleXMoQSksST10Lmxlbmd0aCxyO2Zvcig7SS0tID4wOylpZihyPXRbSV0sZT09PXIudG9Mb3dlckNhc2UoKSlyZXR1cm4gcjtyZXR1cm4gbnVsbH12YXIgXz10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6Z2xvYmFsLGV0PUE9PiFlQShBKSYmQSE9PV87ZnVuY3Rpb24gb2UoKXtsZXR7Y2FzZWxlc3M6QSxza2lwVW5kZWZpbmVkOmV9PWV0KHRoaXMpJiZ0aGlzfHx7fSx0PXt9LEk9KHIsaSk9PntsZXQgZz1BJiZBdCh0LGkpfHxpO2JBKHRbZ10pJiZiQShyKT90W2ddPW9lKHRbZ10scik6YkEocik/dFtnXT1vZSh7fSxyKTp0QShyKT90W2ddPXIuc2xpY2UoKTooIWV8fCFlQShyKSkmJih0W2ddPXIpfTtmb3IobGV0IHI9MCxpPWFyZ3VtZW50cy5sZW5ndGg7cjxpO3IrKylhcmd1bWVudHNbcl0mJkVBKGFyZ3VtZW50c1tyXSxJKTtyZXR1cm4gdH12YXIgSEk9KEEsZSx0LHthbGxPd25LZXlzOkl9PXt9KT0+KEVBKGUsKHIsaSk9Pnt0JiZVKHIpP0FbaV09Q0Eocix0KTpBW2ldPXJ9LHthbGxPd25LZXlzOkl9KSxBKSxxST1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLEtJPShBLGUsdCxJKT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUsSSksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTplLnByb3RvdHlwZX0pLHQmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsdCl9LE9JPShBLGUsdCxJKT0+e2xldCByLGksZyxzPXt9O2lmKGU9ZXx8e30sQT09bnVsbClyZXR1cm4gZTtkb3tmb3Iocj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxpPXIubGVuZ3RoO2ktLSA+MDspZz1yW2ldLCghSXx8SShnLEEsZSkpJiYhc1tnXSYmKGVbZ109QVtnXSxzW2ddPSEwKTtBPXQhPT0hMSYmbmUoQSl9d2hpbGUoQSYmKCF0fHx0KEEsZSkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIGV9LFRJPShBLGUsdCk9PntBPVN0cmluZyhBKSwodD09PXZvaWQgMHx8dD5BLmxlbmd0aCkmJih0PUEubGVuZ3RoKSx0LT1lLmxlbmd0aDtsZXQgST1BLmluZGV4T2YoZSx0KTtyZXR1cm4gSSE9PS0xJiZJPT09dH0seEk9QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKHRBKEEpKXJldHVybiBBO2xldCBlPUEubGVuZ3RoO2lmKCEkZShlKSlyZXR1cm4gbnVsbDtsZXQgdD1uZXcgQXJyYXkoZSk7Zm9yKDtlLS0gPjA7KXRbZV09QVtlXTtyZXR1cm4gdH0sUEk9KEE9PmU9PkEmJmUgaW5zdGFuY2VvZiBBKSh0eXBlb2YgVWludDhBcnJheTwidSImJm5lKFVpbnQ4QXJyYXkpKSxXST0oQSxlKT0+e2xldCBJPShBJiZBW0pBXSkuY2FsbChBKSxyO2Zvcig7KHI9SS5uZXh0KCkpJiYhci5kb25lOyl7bGV0IGk9ci52YWx1ZTtlLmNhbGwoQSxpWzBdLGlbMV0pfX0sakk9KEEsZSk9PntsZXQgdCxJPVtdO2Zvcig7KHQ9QS5leGVjKGUpKSE9PW51bGw7KUkucHVzaCh0KTtyZXR1cm4gSX0sdkk9YigiSFRNTEZvcm1FbGVtZW50IiksWkk9QT0+QS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xzXShbYS16XGRdKShcdyopL2csZnVuY3Rpb24odCxJLHIpe3JldHVybiBJLnRvVXBwZXJDYXNlKCkrcn0pLFhlPSgoe2hhc093blByb3BlcnR5OkF9KT0+KGUsdCk9PkEuY2FsbChlLHQpKShPYmplY3QucHJvdG90eXBlKSxWST1iKCJSZWdFeHAiKSx0dD0oQSxlKT0+e2xldCB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEEpLEk9e307RUEodCwocixpKT0+e2xldCBnOyhnPWUocixpLEEpKSE9PSExJiYoSVtpXT1nfHxyKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEEsSSl9LFhJPUE9Pnt0dChBLChlLHQpPT57aWYoVShBKSYmWyJhcmd1bWVudHMiLCJjYWxsZXIiLCJjYWxsZWUiXS5pbmRleE9mKHQpIT09LTEpcmV0dXJuITE7bGV0IEk9QVt0XTtpZihVKEkpKXtpZihlLmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIGUpe2Uud3JpdGFibGU9ITE7cmV0dXJufWUuc2V0fHwoZS5zZXQ9KCk9Pnt0aHJvdyBFcnJvcigiQ2FuIG5vdCByZXdyaXRlIHJlYWQtb25seSBtZXRob2QgJyIrdCsiJyIpfSl9fSl9LHpJPShBLGUpPT57bGV0IHQ9e30sST1yPT57ci5mb3JFYWNoKGk9Pnt0W2ldPSEwfSl9O3JldHVybiB0QShBKT9JKEEpOkkoU3RyaW5nKEEpLnNwbGl0KGUpKSx0fSxfST0oKT0+e30sJEk9KEEsZSk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOmU7ZnVuY3Rpb24gQXIoQSl7cmV0dXJuISEoQSYmVShBLmFwcGVuZCkmJkFbemVdPT09IkZvcm1EYXRhIiYmQVtKQV0pfXZhciBlcj1BPT57bGV0IGU9bmV3IEFycmF5KDEwKSx0PShJLHIpPT57aWYoUUEoSSkpe2lmKGUuaW5kZXhPZihJKT49MClyZXR1cm47aWYoQkEoSSkpcmV0dXJuIEk7aWYoISgidG9KU09OImluIEkpKXtlW3JdPUk7bGV0IGk9dEEoSSk/W106e307cmV0dXJuIEVBKEksKGcscyk9PntsZXQgRT10KGcscisxKTshZUEoRSkmJihpW3NdPUUpfSksZVtyXT12b2lkIDAsaX19cmV0dXJuIEl9O3JldHVybiB0KEEsMCl9LHRyPWIoIkFzeW5jRnVuY3Rpb24iKSxJcj1BPT5BJiYoUUEoQSl8fFUoQSkpJiZVKEEudGhlbikmJlUoQS5jYXRjaCksSXQ9KChBLGUpPT5BP3NldEltbWVkaWF0ZTplPygodCxJKT0+KF8uYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKHtzb3VyY2U6cixkYXRhOml9KT0+e3I9PT1fJiZpPT09dCYmSS5sZW5ndGgmJkkuc2hpZnQoKSgpfSwhMSkscj0+e0kucHVzaChyKSxfLnBvc3RNZXNzYWdlKHQsIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOnQ9PnNldFRpbWVvdXQodCkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsVShfLnBvc3RNZXNzYWdlKSkscnI9dHlwZW9mIHF1ZXVlTWljcm90YXNrPCJ1Ij9xdWV1ZU1pY3JvdGFzay5iaW5kKF8pOnR5cGVvZiBwcm9jZXNzPCJ1IiYmcHJvY2Vzcy5uZXh0VGlja3x8SXQsZ3I9QT0+QSE9bnVsbCYmVShBW0pBXSksbj17aXNBcnJheTp0QSxpc0FycmF5QnVmZmVyOl9lLGlzQnVmZmVyOkJBLGlzRm9ybURhdGE6TkksaXNBcnJheUJ1ZmZlclZpZXc6REksaXNTdHJpbmc6eUksaXNOdW1iZXI6JGUsaXNCb29sZWFuOndJLGlzT2JqZWN0OlFBLGlzUGxhaW5PYmplY3Q6YkEsaXNFbXB0eU9iamVjdDptSSxpc1JlYWRhYmxlU3RyZWFtOkxJLGlzUmVxdWVzdDpiSSxpc1Jlc3BvbnNlOkpJLGlzSGVhZGVyczpZSSxpc1VuZGVmaW5lZDplQSxpc0RhdGU6U0ksaXNGaWxlOkZJLGlzQmxvYjpSSSxpc1JlZ0V4cDpWSSxpc0Z1bmN0aW9uOlUsaXNTdHJlYW06VUksaXNVUkxTZWFyY2hQYXJhbXM6R0ksaXNUeXBlZEFycmF5OlBJLGlzRmlsZUxpc3Q6a0ksZm9yRWFjaDpFQSxtZXJnZTpvZSxleHRlbmQ6SEksdHJpbTpNSSxzdHJpcEJPTTpxSSxpbmhlcml0czpLSSx0b0ZsYXRPYmplY3Q6T0ksa2luZE9mOllBLGtpbmRPZlRlc3Q6YixlbmRzV2l0aDpUSSx0b0FycmF5OnhJLGZvckVhY2hFbnRyeTpXSSxtYXRjaEFsbDpqSSxpc0hUTUxGb3JtOnZJLGhhc093blByb3BlcnR5OlhlLGhhc093blByb3A6WGUscmVkdWNlRGVzY3JpcHRvcnM6dHQsZnJlZXplTWV0aG9kczpYSSx0b09iamVjdFNldDp6SSx0b0NhbWVsQ2FzZTpaSSxub29wOl9JLHRvRmluaXRlTnVtYmVyOiRJLGZpbmRLZXk6QXQsZ2xvYmFsOl8saXNDb250ZXh0RGVmaW5lZDpldCxpc1NwZWNDb21wbGlhbnRGb3JtOkFyLHRvSlNPTk9iamVjdDplcixpc0FzeW5jRm46dHIsaXNUaGVuYWJsZTpJcixzZXRJbW1lZGlhdGU6SXQsYXNhcDpycixpc0l0ZXJhYmxlOmdyfTtmdW5jdGlvbiBJQShBLGUsdCxJLHIpe0Vycm9yLmNhbGwodGhpcyksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrLHRoaXMubWVzc2FnZT1BLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsZSYmKHRoaXMuY29kZT1lKSx0JiYodGhpcy5jb25maWc9dCksSSYmKHRoaXMucmVxdWVzdD1JKSxyJiYodGhpcy5yZXNwb25zZT1yLHRoaXMuc3RhdHVzPXIuc3RhdHVzP3Iuc3RhdHVzOm51bGwpfW4uaW5oZXJpdHMoSUEsRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzpuLnRvSlNPTk9iamVjdCh0aGlzLmNvbmZpZyksY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMuc3RhdHVzfX19KTt2YXIgcnQ9SUEucHJvdG90eXBlLGd0PXt9O1siRVJSX0JBRF9PUFRJT05fVkFMVUUiLCJFUlJfQkFEX09QVElPTiIsIkVDT05OQUJPUlRFRCIsIkVUSU1FRE9VVCIsIkVSUl9ORVRXT1JLIiwiRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUUyIsIkVSUl9ERVBSRUNBVEVEIiwiRVJSX0JBRF9SRVNQT05TRSIsIkVSUl9CQURfUkVRVUVTVCIsIkVSUl9DQU5DRUxFRCIsIkVSUl9OT1RfU1VQUE9SVCIsIkVSUl9JTlZBTElEX1VSTCJdLmZvckVhY2goQT0+e2d0W0FdPXt2YWx1ZTpBfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKElBLGd0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkocnQsImlzQXhpb3NFcnJvciIse3ZhbHVlOiEwfSk7SUEuZnJvbT0oQSxlLHQsSSxyLGkpPT57bGV0IGc9T2JqZWN0LmNyZWF0ZShydCk7bi50b0ZsYXRPYmplY3QoQSxnLGZ1bmN0aW9uKG8pe3JldHVybiBvIT09RXJyb3IucHJvdG90eXBlfSxDPT5DIT09ImlzQXhpb3NFcnJvciIpO2xldCBzPUEmJkEubWVzc2FnZT9BLm1lc3NhZ2U6IkVycm9yIixFPWU9PW51bGwmJkE/QS5jb2RlOmU7cmV0dXJuIElBLmNhbGwoZyxzLEUsdCxJLHIpLEEmJmcuY2F1c2U9PW51bGwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShnLCJjYXVzZSIse3ZhbHVlOkEsY29uZmlndXJhYmxlOiEwfSksZy5uYW1lPUEmJkEubmFtZXx8IkVycm9yIixpJiZPYmplY3QuYXNzaWduKGcsaSksZ307dmFyIHU9SUE7dmFyIEhBPW51bGw7ZnVuY3Rpb24gYWUoQSl7cmV0dXJuIG4uaXNQbGFpbk9iamVjdChBKXx8bi5pc0FycmF5KEEpfWZ1bmN0aW9uIG90KEEpe3JldHVybiBuLmVuZHNXaXRoKEEsIltdIik/QS5zbGljZSgwLC0yKTpBfWZ1bmN0aW9uIGl0KEEsZSx0KXtyZXR1cm4gQT9BLmNvbmNhdChlKS5tYXAoZnVuY3Rpb24ocixpKXtyZXR1cm4gcj1vdChyKSwhdCYmaT8iWyIrcisiXSI6cn0pLmpvaW4odD8iLiI6IiIpOmV9ZnVuY3Rpb24gaXIoQSl7cmV0dXJuIG4uaXNBcnJheShBKSYmIUEuc29tZShhZSl9dmFyIG9yPW4udG9GbGF0T2JqZWN0KG4se30sbnVsbCxmdW5jdGlvbihlKXtyZXR1cm4vXmlzW0EtWl0vLnRlc3QoZSl9KTtmdW5jdGlvbiBucihBLGUsdCl7aWYoIW4uaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7ZT1lfHxuZXcoSEF8fEZvcm1EYXRhKSx0PW4udG9GbGF0T2JqZWN0KHQse21ldGFUb2tlbnM6ITAsZG90czohMSxpbmRleGVzOiExfSwhMSxmdW5jdGlvbihmLGwpe3JldHVybiFuLmlzVW5kZWZpbmVkKGxbZl0pfSk7bGV0IEk9dC5tZXRhVG9rZW5zLHI9dC52aXNpdG9yfHxvLGk9dC5kb3RzLGc9dC5pbmRleGVzLEU9KHQuQmxvYnx8dHlwZW9mIEJsb2I8InUiJiZCbG9iKSYmbi5pc1NwZWNDb21wbGlhbnRGb3JtKGUpO2lmKCFuLmlzRnVuY3Rpb24ocikpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBDKFEpe2lmKFE9PT1udWxsKXJldHVybiIiO2lmKG4uaXNEYXRlKFEpKXJldHVybiBRLnRvSVNPU3RyaW5nKCk7aWYobi5pc0Jvb2xlYW4oUSkpcmV0dXJuIFEudG9TdHJpbmcoKTtpZighRSYmbi5pc0Jsb2IoUSkpdGhyb3cgbmV3IHUoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7cmV0dXJuIG4uaXNBcnJheUJ1ZmZlcihRKXx8bi5pc1R5cGVkQXJyYXkoUSk/RSYmdHlwZW9mIEJsb2I9PSJmdW5jdGlvbiI/bmV3IEJsb2IoW1FdKTpCdWZmZXIuZnJvbShRKTpRfWZ1bmN0aW9uIG8oUSxmLGwpe2xldCBwPVE7aWYoUSYmIWwmJnR5cGVvZiBRPT0ib2JqZWN0Iil7aWYobi5lbmRzV2l0aChmLCJ7fSIpKWY9ST9mOmYuc2xpY2UoMCwtMiksUT1KU09OLnN0cmluZ2lmeShRKTtlbHNlIGlmKG4uaXNBcnJheShRKSYmaXIoUSl8fChuLmlzRmlsZUxpc3QoUSl8fG4uZW5kc1dpdGgoZiwiW10iKSkmJihwPW4udG9BcnJheShRKSkpcmV0dXJuIGY9b3QoZikscC5mb3JFYWNoKGZ1bmN0aW9uKEQsUil7IShuLmlzVW5kZWZpbmVkKEQpfHxEPT09bnVsbCkmJmUuYXBwZW5kKGc9PT0hMD9pdChbZl0sUixpKTpnPT09bnVsbD9mOmYrIltdIixDKEQpKX0pLCExfXJldHVybiBhZShRKT8hMDooZS5hcHBlbmQoaXQobCxmLGkpLEMoUSkpLCExKX1sZXQgYT1bXSxjPU9iamVjdC5hc3NpZ24ob3Ise2RlZmF1bHRWaXNpdG9yOm8sY29udmVydFZhbHVlOkMsaXNWaXNpdGFibGU6YWV9KTtmdW5jdGlvbiBCKFEsZil7aWYoIW4uaXNVbmRlZmluZWQoUSkpe2lmKGEuaW5kZXhPZihRKSE9PS0xKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitmLmpvaW4oIi4iKSk7YS5wdXNoKFEpLG4uZm9yRWFjaChRLGZ1bmN0aW9uKHAsRil7KCEobi5pc1VuZGVmaW5lZChwKXx8cD09PW51bGwpJiZyLmNhbGwoZSxwLG4uaXNTdHJpbmcoRik/Ri50cmltKCk6RixmLGMpKT09PSEwJiZCKHAsZj9mLmNvbmNhdChGKTpbRl0pfSksYS5wb3AoKX19aWYoIW4uaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZGF0YSBtdXN0IGJlIGFuIG9iamVjdCIpO3JldHVybiBCKEEpLGV9dmFyIGo9bnI7ZnVuY3Rpb24gbnQoQSl7bGV0IGU9eyIhIjoiJTIxIiwiJyI6IiUyNyIsIigiOiIlMjgiLCIpIjoiJTI5IiwifiI6IiU3RSIsIiUyMCI6IisiLCIlMDAiOiJcMCJ9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyEnKCl+XXwlMjB8JTAwL2csZnVuY3Rpb24oSSl7cmV0dXJuIGVbSV19KX1mdW5jdGlvbiBhdChBLGUpe3RoaXMuX3BhaXJzPVtdLEEmJmooQSx0aGlzLGUpfXZhciBzdD1hdC5wcm90b3R5cGU7c3QuYXBwZW5kPWZ1bmN0aW9uKGUsdCl7dGhpcy5fcGFpcnMucHVzaChbZSx0XSl9O3N0LnRvU3RyaW5nPWZ1bmN0aW9uKGUpe2xldCB0PWU/ZnVuY3Rpb24oSSl7cmV0dXJuIGUuY2FsbCh0aGlzLEksbnQpfTpudDtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKHIpe3JldHVybiB0KHJbMF0pKyI9Iit0KHJbMV0pfSwiIikuam9pbigiJiIpfTt2YXIgcUE9YXQ7ZnVuY3Rpb24gYXIoQSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpLnJlcGxhY2UoLyUyMC9nLCIrIil9ZnVuY3Rpb24gbEEoQSxlLHQpe2lmKCFlKXJldHVybiBBO2xldCBJPXQmJnQuZW5jb2RlfHxhcjtuLmlzRnVuY3Rpb24odCkmJih0PXtzZXJpYWxpemU6dH0pO2xldCByPXQmJnQuc2VyaWFsaXplLGk7aWYocj9pPXIoZSx0KTppPW4uaXNVUkxTZWFyY2hQYXJhbXMoZSk/ZS50b1N0cmluZygpOm5ldyBxQShlLHQpLnRvU3RyaW5nKEkpLGkpe2xldCBnPUEuaW5kZXhPZigiIyIpO2chPT0tMSYmKEE9QS5zbGljZSgwLGcpKSxBKz0oQS5pbmRleE9mKCI/Iik9PT0tMT8iPyI6IiYiKStpfXJldHVybiBBfXZhciBzZT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaGFuZGxlcnM9W119dXNlKGUsdCxJKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6ZSxyZWplY3RlZDp0LHN5bmNocm9ub3VzOkk/SS5zeW5jaHJvbm91czohMSxydW5XaGVuOkk/SS5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfWVqZWN0KGUpe3RoaXMuaGFuZGxlcnNbZV0mJih0aGlzLmhhbmRsZXJzW2VdPW51bGwpfWNsZWFyKCl7dGhpcy5oYW5kbGVycyYmKHRoaXMuaGFuZGxlcnM9W10pfWZvckVhY2goZSl7bi5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24oSSl7SSE9PW51bGwmJmUoSSl9KX19LENlPXNlO3ZhciBLQT17c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX07dmFyIEN0PXR5cGVvZiBVUkxTZWFyY2hQYXJhbXM8InUiP1VSTFNlYXJjaFBhcmFtczpxQTt2YXIgQnQ9dHlwZW9mIEZvcm1EYXRhPCJ1Ij9Gb3JtRGF0YTpudWxsO3ZhciBRdD10eXBlb2YgQmxvYjwidSI/QmxvYjpudWxsO3ZhciBFdD17aXNCcm93c2VyOiEwLGNsYXNzZXM6e1VSTFNlYXJjaFBhcmFtczpDdCxGb3JtRGF0YTpCdCxCbG9iOlF0fSxwcm90b2NvbHM6WyJodHRwIiwiaHR0cHMiLCJmaWxlIiwiYmxvYiIsInVybCIsImRhdGEiXX07dmFyIEVlPXt9O2dJKEVlLHtoYXNCcm93c2VyRW52OigpPT5RZSxoYXNTdGFuZGFyZEJyb3dzZXJFbnY6KCk9PnNyLGhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudjooKT0+Q3IsbmF2aWdhdG9yOigpPT5CZSxvcmlnaW46KCk9PkJyfSk7dmFyIFFlPXR5cGVvZiB3aW5kb3c8InUiJiZ0eXBlb2YgZG9jdW1lbnQ8InUiLEJlPXR5cGVvZiBuYXZpZ2F0b3I9PSJvYmplY3QiJiZuYXZpZ2F0b3J8fHZvaWQgMCxzcj1RZSYmKCFCZXx8WyJSZWFjdE5hdGl2ZSIsIk5hdGl2ZVNjcmlwdCIsIk5TIl0uaW5kZXhPZihCZS5wcm9kdWN0KTwwKSxDcj10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU8InUiJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnR5cGVvZiBzZWxmLmltcG9ydFNjcmlwdHM9PSJmdW5jdGlvbiIsQnI9UWUmJndpbmRvdy5sb2NhdGlvbi5ocmVmfHwiaHR0cDovL2xvY2FsaG9zdCI7dmFyIGg9ey4uLkVlLC4uLkV0fTtmdW5jdGlvbiBsZShBLGUpe3JldHVybiBqKEEsbmV3IGguY2xhc3Nlcy5VUkxTZWFyY2hQYXJhbXMse3Zpc2l0b3I6ZnVuY3Rpb24odCxJLHIsaSl7cmV0dXJuIGguaXNOb2RlJiZuLmlzQnVmZmVyKHQpPyh0aGlzLmFwcGVuZChJLHQudG9TdHJpbmcoImJhc2U2NCIpKSwhMSk6aS5kZWZhdWx0VmlzaXRvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LC4uLmV9KX1mdW5jdGlvbiBRcihBKXtyZXR1cm4gbi5tYXRjaEFsbCgvXHcrfFxbKFx3KildL2csQSkubWFwKGU9PmVbMF09PT0iW10iPyIiOmVbMV18fGVbMF0pfWZ1bmN0aW9uIEVyKEEpe2xldCBlPXt9LHQ9T2JqZWN0LmtleXMoQSksSSxyPXQubGVuZ3RoLGk7Zm9yKEk9MDtJPHI7SSsrKWk9dFtJXSxlW2ldPUFbaV07cmV0dXJuIGV9ZnVuY3Rpb24gbHIoQSl7ZnVuY3Rpb24gZSh0LEkscixpKXtsZXQgZz10W2krK107aWYoZz09PSJfX3Byb3RvX18iKXJldHVybiEwO2xldCBzPU51bWJlci5pc0Zpbml0ZSgrZyksRT1pPj10Lmxlbmd0aDtyZXR1cm4gZz0hZyYmbi5pc0FycmF5KHIpP3IubGVuZ3RoOmcsRT8obi5oYXNPd25Qcm9wKHIsZyk/cltnXT1bcltnXSxJXTpyW2ddPUksIXMpOigoIXJbZ118fCFuLmlzT2JqZWN0KHJbZ10pKSYmKHJbZ109W10pLGUodCxJLHJbZ10saSkmJm4uaXNBcnJheShyW2ddKSYmKHJbZ109RXIocltnXSkpLCFzKX1pZihuLmlzRm9ybURhdGEoQSkmJm4uaXNGdW5jdGlvbihBLmVudHJpZXMpKXtsZXQgdD17fTtyZXR1cm4gbi5mb3JFYWNoRW50cnkoQSwoSSxyKT0+e2UoUXIoSSkscix0LDApfSksdH1yZXR1cm4gbnVsbH12YXIgT0E9bHI7ZnVuY3Rpb24gY3IoQSxlLHQpe2lmKG4uaXNTdHJpbmcoQSkpdHJ5e3JldHVybihlfHxKU09OLnBhcnNlKShBKSxuLnRyaW0oQSl9Y2F0Y2goSSl7aWYoSS5uYW1lIT09IlN5bnRheEVycm9yIil0aHJvdyBJfXJldHVybih0fHxKU09OLnN0cmluZ2lmeSkoQSl9dmFyIGNlPXt0cmFuc2l0aW9uYWw6S0EsYWRhcHRlcjpbInhociIsImh0dHAiLCJmZXRjaCJdLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKGUsdCl7bGV0IEk9dC5nZXRDb250ZW50VHlwZSgpfHwiIixyPUkuaW5kZXhPZigiYXBwbGljYXRpb24vanNvbiIpPi0xLGk9bi5pc09iamVjdChlKTtpZihpJiZuLmlzSFRNTEZvcm0oZSkmJihlPW5ldyBGb3JtRGF0YShlKSksbi5pc0Zvcm1EYXRhKGUpKXJldHVybiByP0pTT04uc3RyaW5naWZ5KE9BKGUpKTplO2lmKG4uaXNBcnJheUJ1ZmZlcihlKXx8bi5pc0J1ZmZlcihlKXx8bi5pc1N0cmVhbShlKXx8bi5pc0ZpbGUoZSl8fG4uaXNCbG9iKGUpfHxuLmlzUmVhZGFibGVTdHJlYW0oZSkpcmV0dXJuIGU7aWYobi5pc0FycmF5QnVmZmVyVmlldyhlKSlyZXR1cm4gZS5idWZmZXI7aWYobi5pc1VSTFNlYXJjaFBhcmFtcyhlKSlyZXR1cm4gdC5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiLCExKSxlLnRvU3RyaW5nKCk7bGV0IHM7aWYoaSl7aWYoSS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKT4tMSlyZXR1cm4gbGUoZSx0aGlzLmZvcm1TZXJpYWxpemVyKS50b1N0cmluZygpO2lmKChzPW4uaXNGaWxlTGlzdChlKSl8fEkuaW5kZXhPZigibXVsdGlwYXJ0L2Zvcm0tZGF0YSIpPi0xKXtsZXQgRT10aGlzLmVudiYmdGhpcy5lbnYuRm9ybURhdGE7cmV0dXJuIGoocz97ImZpbGVzW10iOmV9OmUsRSYmbmV3IEUsdGhpcy5mb3JtU2VyaWFsaXplcil9fXJldHVybiBpfHxyPyh0LnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi9qc29uIiwhMSksY3IoZSkpOmV9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24oZSl7bGV0IHQ9dGhpcy50cmFuc2l0aW9uYWx8fGNlLnRyYW5zaXRpb25hbCxJPXQmJnQuZm9yY2VkSlNPTlBhcnNpbmcscj10aGlzLnJlc3BvbnNlVHlwZT09PSJqc29uIjtpZihuLmlzUmVzcG9uc2UoZSl8fG4uaXNSZWFkYWJsZVN0cmVhbShlKSlyZXR1cm4gZTtpZihlJiZuLmlzU3RyaW5nKGUpJiYoSSYmIXRoaXMucmVzcG9uc2VUeXBlfHxyKSl7bGV0IGc9ISh0JiZ0LnNpbGVudEpTT05QYXJzaW5nKSYmcjt0cnl7cmV0dXJuIEpTT04ucGFyc2UoZSx0aGlzLnBhcnNlUmV2aXZlcil9Y2F0Y2gocyl7aWYoZyl0aHJvdyBzLm5hbWU9PT0iU3ludGF4RXJyb3IiP3UuZnJvbShzLHUuRVJSX0JBRF9SRVNQT05TRSx0aGlzLG51bGwsdGhpcy5yZXNwb25zZSk6c319cmV0dXJuIGV9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSxlbnY6e0Zvcm1EYXRhOmguY2xhc3Nlcy5Gb3JtRGF0YSxCbG9iOmguY2xhc3Nlcy5CbG9ifSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbihlKXtyZXR1cm4gZT49MjAwJiZlPDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiIsIkNvbnRlbnQtVHlwZSI6dm9pZCAwfX19O24uZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giXSxBPT57Y2UuaGVhZGVyc1tBXT17fX0pO3ZhciByQT1jZTt2YXIgZnI9bi50b09iamVjdFNldChbImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdKSxsdD1BPT57bGV0IGU9e30sdCxJLHI7cmV0dXJuIEEmJkEuc3BsaXQoYApgKS5mb3JFYWNoKGZ1bmN0aW9uKGcpe3I9Zy5pbmRleE9mKCI6IiksdD1nLnN1YnN0cmluZygwLHIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLEk9Zy5zdWJzdHJpbmcocisxKS50cmltKCksISghdHx8ZVt0XSYmZnJbdF0pJiYodD09PSJzZXQtY29va2llIj9lW3RdP2VbdF0ucHVzaChJKTplW3RdPVtJXTplW3RdPWVbdF0/ZVt0XSsiLCAiK0k6SSl9KSxlfTt2YXIgY3Q9U3ltYm9sKCJpbnRlcm5hbHMiKTtmdW5jdGlvbiBjQShBKXtyZXR1cm4gQSYmU3RyaW5nKEEpLnRyaW0oKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIFRBKEEpe3JldHVybiBBPT09ITF8fEE9PW51bGw/QTpuLmlzQXJyYXkoQSk/QS5tYXAoVEEpOlN0cmluZyhBKX1mdW5jdGlvbiB1cihBKXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpLHQ9LyhbXlxzLDs9XSspXHMqKD86PVxzKihbXiw7XSspKT8vZyxJO2Zvcig7ST10LmV4ZWMoQSk7KWVbSVsxXV09SVsyXTtyZXR1cm4gZX12YXIgZHI9QT0+L15bLV9hLXpBLVowLTleYHx+LCEjJCUmJyorLl0rJC8udGVzdChBLnRyaW0oKSk7ZnVuY3Rpb24gZmUoQSxlLHQsSSxyKXtpZihuLmlzRnVuY3Rpb24oSSkpcmV0dXJuIEkuY2FsbCh0aGlzLGUsdCk7aWYociYmKGU9dCksISFuLmlzU3RyaW5nKGUpKXtpZihuLmlzU3RyaW5nKEkpKXJldHVybiBlLmluZGV4T2YoSSkhPT0tMTtpZihuLmlzUmVnRXhwKEkpKXJldHVybiBJLnRlc3QoZSl9fWZ1bmN0aW9uIHByKEEpe3JldHVybiBBLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbYS16XGRdKShcdyopL2csKGUsdCxJKT0+dC50b1VwcGVyQ2FzZSgpK0kpfWZ1bmN0aW9uIGhyKEEsZSl7bGV0IHQ9bi50b0NhbWVsQ2FzZSgiICIrZSk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKEk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxJK3Qse3ZhbHVlOmZ1bmN0aW9uKHIsaSxnKXtyZXR1cm4gdGhpc1tJXS5jYWxsKHRoaXMsZSxyLGksZyl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9dmFyIGdBPWNsYXNze2NvbnN0cnVjdG9yKGUpe2UmJnRoaXMuc2V0KGUpfXNldChlLHQsSSl7bGV0IHI9dGhpcztmdW5jdGlvbiBpKHMsRSxDKXtsZXQgbz1jQShFKTtpZighbyl0aHJvdyBuZXcgRXJyb3IoImhlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7bGV0IGE9bi5maW5kS2V5KHIsbyk7KCFhfHxyW2FdPT09dm9pZCAwfHxDPT09ITB8fEM9PT12b2lkIDAmJnJbYV0hPT0hMSkmJihyW2F8fEVdPVRBKHMpKX1sZXQgZz0ocyxFKT0+bi5mb3JFYWNoKHMsKEMsbyk9PmkoQyxvLEUpKTtpZihuLmlzUGxhaW5PYmplY3QoZSl8fGUgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKWcoZSx0KTtlbHNlIGlmKG4uaXNTdHJpbmcoZSkmJihlPWUudHJpbSgpKSYmIWRyKGUpKWcobHQoZSksdCk7ZWxzZSBpZihuLmlzT2JqZWN0KGUpJiZuLmlzSXRlcmFibGUoZSkpe2xldCBzPXt9LEUsQztmb3IobGV0IG8gb2YgZSl7aWYoIW4uaXNBcnJheShvKSl0aHJvdyBUeXBlRXJyb3IoIk9iamVjdCBpdGVyYXRvciBtdXN0IHJldHVybiBhIGtleS12YWx1ZSBwYWlyIik7c1tDPW9bMF1dPShFPXNbQ10pP24uaXNBcnJheShFKT9bLi4uRSxvWzFdXTpbRSxvWzFdXTpvWzFdfWcocyx0KX1lbHNlIGUhPW51bGwmJmkodCxlLEkpO3JldHVybiB0aGlzfWdldChlLHQpe2lmKGU9Y0EoZSksZSl7bGV0IEk9bi5maW5kS2V5KHRoaXMsZSk7aWYoSSl7bGV0IHI9dGhpc1tJXTtpZighdClyZXR1cm4gcjtpZih0PT09ITApcmV0dXJuIHVyKHIpO2lmKG4uaXNGdW5jdGlvbih0KSlyZXR1cm4gdC5jYWxsKHRoaXMscixJKTtpZihuLmlzUmVnRXhwKHQpKXJldHVybiB0LmV4ZWMocik7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyhlLHQpe2lmKGU9Y0EoZSksZSl7bGV0IEk9bi5maW5kS2V5KHRoaXMsZSk7cmV0dXJuISEoSSYmdGhpc1tJXSE9PXZvaWQgMCYmKCF0fHxmZSh0aGlzLHRoaXNbSV0sSSx0KSkpfXJldHVybiExfWRlbGV0ZShlLHQpe2xldCBJPXRoaXMscj0hMTtmdW5jdGlvbiBpKGcpe2lmKGc9Y0EoZyksZyl7bGV0IHM9bi5maW5kS2V5KEksZyk7cyYmKCF0fHxmZShJLElbc10scyx0KSkmJihkZWxldGUgSVtzXSxyPSEwKX19cmV0dXJuIG4uaXNBcnJheShlKT9lLmZvckVhY2goaSk6aShlKSxyfWNsZWFyKGUpe2xldCB0PU9iamVjdC5rZXlzKHRoaXMpLEk9dC5sZW5ndGgscj0hMTtmb3IoO0ktLTspe2xldCBpPXRbSV07KCFlfHxmZSh0aGlzLHRoaXNbaV0saSxlLCEwKSkmJihkZWxldGUgdGhpc1tpXSxyPSEwKX1yZXR1cm4gcn1ub3JtYWxpemUoZSl7bGV0IHQ9dGhpcyxJPXt9O3JldHVybiBuLmZvckVhY2godGhpcywocixpKT0+e2xldCBnPW4uZmluZEtleShJLGkpO2lmKGcpe3RbZ109VEEociksZGVsZXRlIHRbaV07cmV0dXJufWxldCBzPWU/cHIoaSk6U3RyaW5nKGkpLnRyaW0oKTtzIT09aSYmZGVsZXRlIHRbaV0sdFtzXT1UQShyKSxJW3NdPSEwfSksdGhpc31jb25jYXQoLi4uZSl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4uZSl9dG9KU09OKGUpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIG4uZm9yRWFjaCh0aGlzLChJLHIpPT57SSE9bnVsbCYmSSE9PSExJiYodFtyXT1lJiZuLmlzQXJyYXkoSSk/SS5qb2luKCIsICIpOkkpfSksdH1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbZSx0XSk9PmUrIjogIit0KS5qb2luKGAKYCl9Z2V0U2V0Q29va2llKCl7cmV0dXJuIHRoaXMuZ2V0KCJzZXQtY29va2llIil8fFtdfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkF4aW9zSGVhZGVycyJ9c3RhdGljIGZyb20oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzP2U6bmV3IHRoaXMoZSl9c3RhdGljIGNvbmNhdChlLC4uLnQpe2xldCBJPW5ldyB0aGlzKGUpO3JldHVybiB0LmZvckVhY2gocj0+SS5zZXQocikpLEl9c3RhdGljIGFjY2Vzc29yKGUpe2xldCBJPSh0aGlzW2N0XT10aGlzW2N0XT17YWNjZXNzb3JzOnt9fSkuYWNjZXNzb3JzLHI9dGhpcy5wcm90b3R5cGU7ZnVuY3Rpb24gaShnKXtsZXQgcz1jQShnKTtJW3NdfHwoaHIocixnKSxJW3NdPSEwKX1yZXR1cm4gbi5pc0FycmF5KGUpP2UuZm9yRWFjaChpKTppKGUpLHRoaXN9fTtnQS5hY2Nlc3NvcihbIkNvbnRlbnQtVHlwZSIsIkNvbnRlbnQtTGVuZ3RoIiwiQWNjZXB0IiwiQWNjZXB0LUVuY29kaW5nIiwiVXNlci1BZ2VudCIsIkF1dGhvcml6YXRpb24iXSk7bi5yZWR1Y2VEZXNjcmlwdG9ycyhnQS5wcm90b3R5cGUsKHt2YWx1ZTpBfSxlKT0+e2xldCB0PWVbMF0udG9VcHBlckNhc2UoKStlLnNsaWNlKDEpO3JldHVybntnZXQ6KCk9PkEsc2V0KEkpe3RoaXNbdF09SX19fSk7bi5mcmVlemVNZXRob2RzKGdBKTt2YXIgbT1nQTtmdW5jdGlvbiBmQShBLGUpe2xldCB0PXRoaXN8fHJBLEk9ZXx8dCxyPW0uZnJvbShJLmhlYWRlcnMpLGk9SS5kYXRhO3JldHVybiBuLmZvckVhY2goQSxmdW5jdGlvbihzKXtpPXMuY2FsbCh0LGksci5ub3JtYWxpemUoKSxlP2Uuc3RhdHVzOnZvaWQgMCl9KSxyLm5vcm1hbGl6ZSgpLGl9ZnVuY3Rpb24gdUEoQSl7cmV0dXJuISEoQSYmQS5fX0NBTkNFTF9fKX1mdW5jdGlvbiBmdChBLGUsdCl7dS5jYWxsKHRoaXMsQT8/ImNhbmNlbGVkIix1LkVSUl9DQU5DRUxFRCxlLHQpLHRoaXMubmFtZT0iQ2FuY2VsZWRFcnJvciJ9bi5pbmhlcml0cyhmdCx1LHtfX0NBTkNFTF9fOiEwfSk7dmFyIHE9ZnQ7ZnVuY3Rpb24gZEEoQSxlLHQpe2xldCBJPXQuY29uZmlnLnZhbGlkYXRlU3RhdHVzOyF0LnN0YXR1c3x8IUl8fEkodC5zdGF0dXMpP0EodCk6ZShuZXcgdSgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK3Quc3RhdHVzLFt1LkVSUl9CQURfUkVRVUVTVCx1LkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3IodC5zdGF0dXMvMTAwKS00XSx0LmNvbmZpZyx0LnJlcXVlc3QsdCkpfWZ1bmN0aW9uIHVlKEEpe2xldCBlPS9eKFstK1x3XXsxLDI1fSkoOj9cL1wvfDopLy5leGVjKEEpO3JldHVybiBlJiZlWzFdfHwiIn1mdW5jdGlvbiBEcihBLGUpe0E9QXx8MTA7bGV0IHQ9bmV3IEFycmF5KEEpLEk9bmV3IEFycmF5KEEpLHI9MCxpPTAsZztyZXR1cm4gZT1lIT09dm9pZCAwP2U6MWUzLGZ1bmN0aW9uKEUpe2xldCBDPURhdGUubm93KCksbz1JW2ldO2d8fChnPUMpLHRbcl09RSxJW3JdPUM7bGV0IGE9aSxjPTA7Zm9yKDthIT09cjspYys9dFthKytdLGE9YSVBO2lmKHI9KHIrMSklQSxyPT09aSYmKGk9KGkrMSklQSksQy1nPGUpcmV0dXJuO2xldCBCPW8mJkMtbztyZXR1cm4gQj9NYXRoLnJvdW5kKGMqMWUzL0IpOnZvaWQgMH19dmFyIHV0PURyO2Z1bmN0aW9uIHlyKEEsZSl7bGV0IHQ9MCxJPTFlMy9lLHIsaSxnPShDLG89RGF0ZS5ub3coKSk9Pnt0PW8scj1udWxsLGkmJihjbGVhclRpbWVvdXQoaSksaT1udWxsKSxBKC4uLkMpfTtyZXR1cm5bKC4uLkMpPT57bGV0IG89RGF0ZS5ub3coKSxhPW8tdDthPj1JP2coQyxvKToocj1DLGl8fChpPXNldFRpbWVvdXQoKCk9PntpPW51bGwsZyhyKX0sSS1hKSkpfSwoKT0+ciYmZyhyKV19dmFyIGR0PXlyO3ZhciBpQT0oQSxlLHQ9Myk9PntsZXQgST0wLHI9dXQoNTAsMjUwKTtyZXR1cm4gZHQoaT0+e2xldCBnPWkubG9hZGVkLHM9aS5sZW5ndGhDb21wdXRhYmxlP2kudG90YWw6dm9pZCAwLEU9Zy1JLEM9cihFKSxvPWc8PXM7ST1nO2xldCBhPXtsb2FkZWQ6Zyx0b3RhbDpzLHByb2dyZXNzOnM/Zy9zOnZvaWQgMCxieXRlczpFLHJhdGU6Q3x8dm9pZCAwLGVzdGltYXRlZDpDJiZzJiZvPyhzLWcpL0M6dm9pZCAwLGV2ZW50OmksbGVuZ3RoQ29tcHV0YWJsZTpzIT1udWxsLFtlPyJkb3dubG9hZCI6InVwbG9hZCJdOiEwfTtBKGEpfSx0KX0sZGU9KEEsZSk9PntsZXQgdD1BIT1udWxsO3JldHVybltJPT5lWzBdKHtsZW5ndGhDb21wdXRhYmxlOnQsdG90YWw6QSxsb2FkZWQ6SX0pLGVbMV1dfSxwZT1BPT4oLi4uZSk9Pm4uYXNhcCgoKT0+QSguLi5lKSk7dmFyIHB0PWguaGFzU3RhbmRhcmRCcm93c2VyRW52PygoQSxlKT0+dD0+KHQ9bmV3IFVSTCh0LGgub3JpZ2luKSxBLnByb3RvY29sPT09dC5wcm90b2NvbCYmQS5ob3N0PT09dC5ob3N0JiYoZXx8QS5wb3J0PT09dC5wb3J0KSkpKG5ldyBVUkwoaC5vcmlnaW4pLGgubmF2aWdhdG9yJiYvKG1zaWV8dHJpZGVudCkvaS50ZXN0KGgubmF2aWdhdG9yLnVzZXJBZ2VudCkpOigpPT4hMDt2YXIgaHQ9aC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/e3dyaXRlKEEsZSx0LEkscixpKXtsZXQgZz1bQSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGUpXTtuLmlzTnVtYmVyKHQpJiZnLnB1c2goImV4cGlyZXM9IituZXcgRGF0ZSh0KS50b0dNVFN0cmluZygpKSxuLmlzU3RyaW5nKEkpJiZnLnB1c2goInBhdGg9IitJKSxuLmlzU3RyaW5nKHIpJiZnLnB1c2goImRvbWFpbj0iK3IpLGk9PT0hMCYmZy5wdXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9Zy5qb2luKCI7ICIpfSxyZWFkKEEpe2xldCBlPWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxzKikoIitBKyIpPShbXjtdKikiKSk7cmV0dXJuIGU/ZGVjb2RlVVJJQ29tcG9uZW50KGVbM10pOm51bGx9LHJlbW92ZShBKXt0aGlzLndyaXRlKEEsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGUoKXt9LHJlYWQoKXtyZXR1cm4gbnVsbH0scmVtb3ZlKCl7fX07ZnVuY3Rpb24gaGUoQSl7cmV0dXJuL14oW2Etel1bYS16XGQrXC0uXSo6KT9cL1wvL2kudGVzdChBKX1mdW5jdGlvbiBEZShBLGUpe3JldHVybiBlP0EucmVwbGFjZSgvXC8/XC8kLywiIikrIi8iK2UucmVwbGFjZSgvXlwvKy8sIiIpOkF9ZnVuY3Rpb24gcEEoQSxlLHQpe2xldCBJPSFoZShlKTtyZXR1cm4gQSYmKEl8fHQ9PSExKT9EZShBLGUpOmV9dmFyIER0PUE9PkEgaW5zdGFuY2VvZiBtP3suLi5BfTpBO2Z1bmN0aW9uIEooQSxlKXtlPWV8fHt9O2xldCB0PXt9O2Z1bmN0aW9uIEkoQyxvLGEsYyl7cmV0dXJuIG4uaXNQbGFpbk9iamVjdChDKSYmbi5pc1BsYWluT2JqZWN0KG8pP24ubWVyZ2UuY2FsbCh7Y2FzZWxlc3M6Y30sQyxvKTpuLmlzUGxhaW5PYmplY3Qobyk/bi5tZXJnZSh7fSxvKTpuLmlzQXJyYXkobyk/by5zbGljZSgpOm99ZnVuY3Rpb24gcihDLG8sYSxjKXtpZihuLmlzVW5kZWZpbmVkKG8pKXtpZighbi5pc1VuZGVmaW5lZChDKSlyZXR1cm4gSSh2b2lkIDAsQyxhLGMpfWVsc2UgcmV0dXJuIEkoQyxvLGEsYyl9ZnVuY3Rpb24gaShDLG8pe2lmKCFuLmlzVW5kZWZpbmVkKG8pKXJldHVybiBJKHZvaWQgMCxvKX1mdW5jdGlvbiBnKEMsbyl7aWYobi5pc1VuZGVmaW5lZChvKSl7aWYoIW4uaXNVbmRlZmluZWQoQykpcmV0dXJuIEkodm9pZCAwLEMpfWVsc2UgcmV0dXJuIEkodm9pZCAwLG8pfWZ1bmN0aW9uIHMoQyxvLGEpe2lmKGEgaW4gZSlyZXR1cm4gSShDLG8pO2lmKGEgaW4gQSlyZXR1cm4gSSh2b2lkIDAsQyl9bGV0IEU9e3VybDppLG1ldGhvZDppLGRhdGE6aSxiYXNlVVJMOmcsdHJhbnNmb3JtUmVxdWVzdDpnLHRyYW5zZm9ybVJlc3BvbnNlOmcscGFyYW1zU2VyaWFsaXplcjpnLHRpbWVvdXQ6Zyx0aW1lb3V0TWVzc2FnZTpnLHdpdGhDcmVkZW50aWFsczpnLHdpdGhYU1JGVG9rZW46ZyxhZGFwdGVyOmcscmVzcG9uc2VUeXBlOmcseHNyZkNvb2tpZU5hbWU6Zyx4c3JmSGVhZGVyTmFtZTpnLG9uVXBsb2FkUHJvZ3Jlc3M6ZyxvbkRvd25sb2FkUHJvZ3Jlc3M6ZyxkZWNvbXByZXNzOmcsbWF4Q29udGVudExlbmd0aDpnLG1heEJvZHlMZW5ndGg6ZyxiZWZvcmVSZWRpcmVjdDpnLHRyYW5zcG9ydDpnLGh0dHBBZ2VudDpnLGh0dHBzQWdlbnQ6ZyxjYW5jZWxUb2tlbjpnLHNvY2tldFBhdGg6ZyxyZXNwb25zZUVuY29kaW5nOmcsdmFsaWRhdGVTdGF0dXM6cyxoZWFkZXJzOihDLG8sYSk9PnIoRHQoQyksRHQobyksYSwhMCl9O3JldHVybiBuLmZvckVhY2goT2JqZWN0LmtleXMoey4uLkEsLi4uZX0pLGZ1bmN0aW9uKG8pe2xldCBhPUVbb118fHIsYz1hKEFbb10sZVtvXSxvKTtuLmlzVW5kZWZpbmVkKGMpJiZhIT09c3x8KHRbb109Yyl9KSx0fXZhciB4QT1BPT57bGV0IGU9Sih7fSxBKSx7ZGF0YTp0LHdpdGhYU1JGVG9rZW46SSx4c3JmSGVhZGVyTmFtZTpyLHhzcmZDb29raWVOYW1lOmksaGVhZGVyczpnLGF1dGg6c309ZTtpZihlLmhlYWRlcnM9Zz1tLmZyb20oZyksZS51cmw9bEEocEEoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMpLEEucGFyYW1zLEEucGFyYW1zU2VyaWFsaXplcikscyYmZy5zZXQoIkF1dGhvcml6YXRpb24iLCJCYXNpYyAiK2J0b2EoKHMudXNlcm5hbWV8fCIiKSsiOiIrKHMucGFzc3dvcmQ/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHMucGFzc3dvcmQpKToiIikpKSxuLmlzRm9ybURhdGEodCkpe2lmKGguaGFzU3RhbmRhcmRCcm93c2VyRW52fHxoLmhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudilnLnNldENvbnRlbnRUeXBlKHZvaWQgMCk7ZWxzZSBpZihuLmlzRnVuY3Rpb24odC5nZXRIZWFkZXJzKSl7bGV0IEU9dC5nZXRIZWFkZXJzKCksQz1bImNvbnRlbnQtdHlwZSIsImNvbnRlbnQtbGVuZ3RoIl07T2JqZWN0LmVudHJpZXMoRSkuZm9yRWFjaCgoW28sYV0pPT57Qy5pbmNsdWRlcyhvLnRvTG93ZXJDYXNlKCkpJiZnLnNldChvLGEpfSl9fWlmKGguaGFzU3RhbmRhcmRCcm93c2VyRW52JiYoSSYmbi5pc0Z1bmN0aW9uKEkpJiYoST1JKGUpKSxJfHxJIT09ITEmJnB0KGUudXJsKSkpe2xldCBFPXImJmkmJmh0LnJlYWQoaSk7RSYmZy5zZXQocixFKX1yZXR1cm4gZX07dmFyIHdyPXR5cGVvZiBYTUxIdHRwUmVxdWVzdDwidSIseXQ9d3ImJmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0LEkpe2xldCByPXhBKEEpLGk9ci5kYXRhLGc9bS5mcm9tKHIuaGVhZGVycykubm9ybWFsaXplKCkse3Jlc3BvbnNlVHlwZTpzLG9uVXBsb2FkUHJvZ3Jlc3M6RSxvbkRvd25sb2FkUHJvZ3Jlc3M6Q309cixvLGEsYyxCLFE7ZnVuY3Rpb24gZigpe0ImJkIoKSxRJiZRKCksci5jYW5jZWxUb2tlbiYmci5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShvKSxyLnNpZ25hbCYmci5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG8pfWxldCBsPW5ldyBYTUxIdHRwUmVxdWVzdDtsLm9wZW4oci5tZXRob2QudG9VcHBlckNhc2UoKSxyLnVybCwhMCksbC50aW1lb3V0PXIudGltZW91dDtmdW5jdGlvbiBwKCl7aWYoIWwpcmV0dXJuO2xldCBEPW0uZnJvbSgiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIGwmJmwuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLEw9e2RhdGE6IXN8fHM9PT0idGV4dCJ8fHM9PT0ianNvbiI/bC5yZXNwb25zZVRleHQ6bC5yZXNwb25zZSxzdGF0dXM6bC5zdGF0dXMsc3RhdHVzVGV4dDpsLnN0YXR1c1RleHQsaGVhZGVyczpELGNvbmZpZzpBLHJlcXVlc3Q6bH07ZEEoZnVuY3Rpb24oTil7dChOKSxmKCl9LGZ1bmN0aW9uKE4pe0koTiksZigpfSxMKSxsPW51bGx9Im9ubG9hZGVuZCJpbiBsP2wub25sb2FkZW5kPXA6bC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXshbHx8bC5yZWFkeVN0YXRlIT09NHx8bC5zdGF0dXM9PT0wJiYhKGwucmVzcG9uc2VVUkwmJmwucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKT09PTApfHxzZXRUaW1lb3V0KHApfSxsLm9uYWJvcnQ9ZnVuY3Rpb24oKXtsJiYoSShuZXcgdSgiUmVxdWVzdCBhYm9ydGVkIix1LkVDT05OQUJPUlRFRCxBLGwpKSxsPW51bGwpfSxsLm9uZXJyb3I9ZnVuY3Rpb24oUil7bGV0IEw9UiYmUi5tZXNzYWdlP1IubWVzc2FnZToiTmV0d29yayBFcnJvciIsWj1uZXcgdShMLHUuRVJSX05FVFdPUkssQSxsKTtaLmV2ZW50PVJ8fG51bGwsSShaKSxsPW51bGx9LGwub250aW1lb3V0PWZ1bmN0aW9uKCl7bGV0IFI9ci50aW1lb3V0PyJ0aW1lb3V0IG9mICIrci50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiLEw9ci50cmFuc2l0aW9uYWx8fEtBO3IudGltZW91dEVycm9yTWVzc2FnZSYmKFI9ci50aW1lb3V0RXJyb3JNZXNzYWdlKSxJKG5ldyB1KFIsTC5jbGFyaWZ5VGltZW91dEVycm9yP3UuRVRJTUVET1VUOnUuRUNPTk5BQk9SVEVELEEsbCkpLGw9bnVsbH0saT09PXZvaWQgMCYmZy5zZXRDb250ZW50VHlwZShudWxsKSwic2V0UmVxdWVzdEhlYWRlciJpbiBsJiZuLmZvckVhY2goZy50b0pTT04oKSxmdW5jdGlvbihSLEwpe2wuc2V0UmVxdWVzdEhlYWRlcihMLFIpfSksbi5pc1VuZGVmaW5lZChyLndpdGhDcmVkZW50aWFscyl8fChsLndpdGhDcmVkZW50aWFscz0hIXIud2l0aENyZWRlbnRpYWxzKSxzJiZzIT09Impzb24iJiYobC5yZXNwb25zZVR5cGU9ci5yZXNwb25zZVR5cGUpLEMmJihbYyxRXT1pQShDLCEwKSxsLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixjKSksRSYmbC51cGxvYWQmJihbYSxCXT1pQShFKSxsLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsYSksbC51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVuZCIsQikpLChyLmNhbmNlbFRva2VufHxyLnNpZ25hbCkmJihvPUQ9PntsJiYoSSghRHx8RC50eXBlP25ldyBxKG51bGwsQSxsKTpEKSxsLmFib3J0KCksbD1udWxsKX0sci5jYW5jZWxUb2tlbiYmci5jYW5jZWxUb2tlbi5zdWJzY3JpYmUobyksci5zaWduYWwmJihyLnNpZ25hbC5hYm9ydGVkP28oKTpyLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbykpKTtsZXQgRj11ZShyLnVybCk7aWYoRiYmaC5wcm90b2NvbHMuaW5kZXhPZihGKT09PS0xKXtJKG5ldyB1KCJVbnN1cHBvcnRlZCBwcm90b2NvbCAiK0YrIjoiLHUuRVJSX0JBRF9SRVFVRVNULEEpKTtyZXR1cm59bC5zZW5kKGl8fG51bGwpfSl9O3ZhciBtcj0oQSxlKT0+e2xldHtsZW5ndGg6dH09QT1BP0EuZmlsdGVyKEJvb2xlYW4pOltdO2lmKGV8fHQpe2xldCBJPW5ldyBBYm9ydENvbnRyb2xsZXIscixpPWZ1bmN0aW9uKEMpe2lmKCFyKXtyPSEwLHMoKTtsZXQgbz1DIGluc3RhbmNlb2YgRXJyb3I/Qzp0aGlzLnJlYXNvbjtJLmFib3J0KG8gaW5zdGFuY2VvZiB1P286bmV3IHEobyBpbnN0YW5jZW9mIEVycm9yP28ubWVzc2FnZTpvKSl9fSxnPWUmJnNldFRpbWVvdXQoKCk9PntnPW51bGwsaShuZXcgdShgdGltZW91dCAke2V9IG9mIG1zIGV4Y2VlZGVkYCx1LkVUSU1FRE9VVCkpfSxlKSxzPSgpPT57QSYmKGcmJmNsZWFyVGltZW91dChnKSxnPW51bGwsQS5mb3JFYWNoKEM9PntDLnVuc3Vic2NyaWJlP0MudW5zdWJzY3JpYmUoaSk6Qy5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsaSl9KSxBPW51bGwpfTtBLmZvckVhY2goQz0+Qy5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsaSkpO2xldHtzaWduYWw6RX09STtyZXR1cm4gRS51bnN1YnNjcmliZT0oKT0+bi5hc2FwKHMpLEV9fSx3dD1tcjt2YXIgU3I9ZnVuY3Rpb24qKEEsZSl7bGV0IHQ9QS5ieXRlTGVuZ3RoO2lmKCFlfHx0PGUpe3lpZWxkIEE7cmV0dXJufWxldCBJPTAscjtmb3IoO0k8dDspcj1JK2UseWllbGQgQS5zbGljZShJLHIpLEk9cn0sRnI9YXN5bmMgZnVuY3Rpb24qKEEsZSl7Zm9yIGF3YWl0KGxldCB0IG9mIFJyKEEpKXlpZWxkKlNyKHQsZSl9LFJyPWFzeW5jIGZ1bmN0aW9uKihBKXtpZihBW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl7eWllbGQqQTtyZXR1cm59bGV0IGU9QS5nZXRSZWFkZXIoKTt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTp0LHZhbHVlOkl9PWF3YWl0IGUucmVhZCgpO2lmKHQpYnJlYWs7eWllbGQgSX19ZmluYWxseXthd2FpdCBlLmNhbmNlbCgpfX0seWU9KEEsZSx0LEkpPT57bGV0IHI9RnIoQSxlKSxpPTAsZyxzPUU9PntnfHwoZz0hMCxJJiZJKEUpKX07cmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7YXN5bmMgcHVsbChFKXt0cnl7bGV0e2RvbmU6Qyx2YWx1ZTpvfT1hd2FpdCByLm5leHQoKTtpZihDKXtzKCksRS5jbG9zZSgpO3JldHVybn1sZXQgYT1vLmJ5dGVMZW5ndGg7aWYodCl7bGV0IGM9aSs9YTt0KGMpfUUuZW5xdWV1ZShuZXcgVWludDhBcnJheShvKSl9Y2F0Y2goQyl7dGhyb3cgcyhDKSxDfX0sY2FuY2VsKEUpe3JldHVybiBzKEUpLHIucmV0dXJuKCl9fSx7aGlnaFdhdGVyTWFyazoyfSl9O3ZhciBtdD02NCoxMDI0LHtpc0Z1bmN0aW9uOlBBfT1uLGt0PSgoe2ZldGNoOkEsUmVxdWVzdDplLFJlc3BvbnNlOnR9KT0+KHtmZXRjaDpBLFJlcXVlc3Q6ZSxSZXNwb25zZTp0fSkpKG4uZ2xvYmFsKSx7UmVhZGFibGVTdHJlYW06U3QsVGV4dEVuY29kZXI6RnR9PW4uZ2xvYmFsLFJ0PShBLC4uLmUpPT57dHJ5e3JldHVybiEhQSguLi5lKX1jYXRjaHtyZXR1cm4hMX19LGtyPUE9PntsZXR7ZmV0Y2g6ZSxSZXF1ZXN0OnQsUmVzcG9uc2U6SX09T2JqZWN0LmFzc2lnbih7fSxrdCxBKSxyPVBBKGUpLGk9UEEodCksZz1QQShJKTtpZighcilyZXR1cm4hMTtsZXQgcz1yJiZQQShTdCksRT1yJiYodHlwZW9mIEZ0PT0iZnVuY3Rpb24iPyhRPT5mPT5RLmVuY29kZShmKSkobmV3IEZ0KTphc3luYyBRPT5uZXcgVWludDhBcnJheShhd2FpdCBuZXcgdChRKS5hcnJheUJ1ZmZlcigpKSksQz1pJiZzJiZSdCgoKT0+e2xldCBRPSExLGY9bmV3IHQoaC5vcmlnaW4se2JvZHk6bmV3IFN0LG1ldGhvZDoiUE9TVCIsZ2V0IGR1cGxleCgpe3JldHVybiBRPSEwLCJoYWxmIn19KS5oZWFkZXJzLmhhcygiQ29udGVudC1UeXBlIik7cmV0dXJuIFEmJiFmfSksbz1nJiZzJiZSdCgoKT0+bi5pc1JlYWRhYmxlU3RyZWFtKG5ldyBJKCIiKS5ib2R5KSksYT17c3RyZWFtOm8mJihRPT5RLmJvZHkpfTtyJiZbInRleHQiLCJhcnJheUJ1ZmZlciIsImJsb2IiLCJmb3JtRGF0YSIsInN0cmVhbSJdLmZvckVhY2goUT0+eyFhW1FdJiYoYVtRXT0oZixsKT0+e2xldCBwPWYmJmZbUV07aWYocClyZXR1cm4gcC5jYWxsKGYpO3Rocm93IG5ldyB1KGBSZXNwb25zZSB0eXBlICcke1F9JyBpcyBub3Qgc3VwcG9ydGVkYCx1LkVSUl9OT1RfU1VQUE9SVCxsKX0pfSk7bGV0IGM9YXN5bmMgUT0+e2lmKFE9PW51bGwpcmV0dXJuIDA7aWYobi5pc0Jsb2IoUSkpcmV0dXJuIFEuc2l6ZTtpZihuLmlzU3BlY0NvbXBsaWFudEZvcm0oUSkpcmV0dXJuKGF3YWl0IG5ldyB0KGgub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6UX0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYobi5pc0FycmF5QnVmZmVyVmlldyhRKXx8bi5pc0FycmF5QnVmZmVyKFEpKXJldHVybiBRLmJ5dGVMZW5ndGg7aWYobi5pc1VSTFNlYXJjaFBhcmFtcyhRKSYmKFE9USsiIiksbi5pc1N0cmluZyhRKSlyZXR1cm4oYXdhaXQgRShRKSkuYnl0ZUxlbmd0aH0sQj1hc3luYyhRLGYpPT57bGV0IGw9bi50b0Zpbml0ZU51bWJlcihRLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIGw/P2MoZil9O3JldHVybiBhc3luYyBRPT57bGV0e3VybDpmLG1ldGhvZDpsLGRhdGE6cCxzaWduYWw6RixjYW5jZWxUb2tlbjpELHRpbWVvdXQ6UixvbkRvd25sb2FkUHJvZ3Jlc3M6TCxvblVwbG9hZFByb2dyZXNzOloscmVzcG9uc2VUeXBlOk4saGVhZGVyczokQSx3aXRoQ3JlZGVudGlhbHM6U0E9InNhbWUtb3JpZ2luIixmZXRjaE9wdGlvbnM6WWV9PXhBKFEpO049Tj8oTisiIikudG9Mb3dlckNhc2UoKToidGV4dCI7bGV0IEZBPXd0KFtGLEQmJkQudG9BYm9ydFNpZ25hbCgpXSxSKSxzQT1udWxsLFY9RkEmJkZBLnVuc3Vic2NyaWJlJiYoKCk9PntGQS51bnN1YnNjcmliZSgpfSksTWU7dHJ5e2lmKFomJkMmJmwhPT0iZ2V0IiYmbCE9PSJoZWFkIiYmKE1lPWF3YWl0IEIoJEEscCkpIT09MCl7bGV0IFc9bmV3IHQoZix7bWV0aG9kOiJQT1NUIixib2R5OnAsZHVwbGV4OiJoYWxmIn0pLCQ7aWYobi5pc0Zvcm1EYXRhKHApJiYoJD1XLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKSkmJiRBLnNldENvbnRlbnRUeXBlKCQpLFcuYm9keSl7bGV0W0FlLFJBXT1kZShNZSxpQShwZShaKSkpO3A9eWUoVy5ib2R5LG10LEFlLFJBKX19bi5pc1N0cmluZyhTQSl8fChTQT1TQT8iaW5jbHVkZSI6Im9taXQiKTtsZXQgTT1pJiYiY3JlZGVudGlhbHMiaW4gdC5wcm90b3R5cGUsSGU9ey4uLlllLHNpZ25hbDpGQSxtZXRob2Q6bC50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6JEEubm9ybWFsaXplKCkudG9KU09OKCksYm9keTpwLGR1cGxleDoiaGFsZiIsY3JlZGVudGlhbHM6TT9TQTp2b2lkIDB9O3NBPWkmJm5ldyB0KGYsSGUpO2xldCBQPWF3YWl0KGk/ZShzQSxZZSk6ZShmLEhlKSkscWU9byYmKE49PT0ic3RyZWFtInx8Tj09PSJyZXNwb25zZSIpO2lmKG8mJihMfHxxZSYmVikpe2xldCBXPXt9O1sic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXS5mb3JFYWNoKEtlPT57V1tLZV09UFtLZV19KTtsZXQgJD1uLnRvRmluaXRlTnVtYmVyKFAuaGVhZGVycy5nZXQoImNvbnRlbnQtbGVuZ3RoIikpLFtBZSxSQV09TCYmZGUoJCxpQShwZShMKSwhMCkpfHxbXTtQPW5ldyBJKHllKFAuYm9keSxtdCxBZSwoKT0+e1JBJiZSQSgpLFYmJlYoKX0pLFcpfU49Tnx8InRleHQiO2xldCBJST1hd2FpdCBhW24uZmluZEtleShhLE4pfHwidGV4dCJdKFAsUSk7cmV0dXJuIXFlJiZWJiZWKCksYXdhaXQgbmV3IFByb21pc2UoKFcsJCk9PntkQShXLCQse2RhdGE6SUksaGVhZGVyczptLmZyb20oUC5oZWFkZXJzKSxzdGF0dXM6UC5zdGF0dXMsc3RhdHVzVGV4dDpQLnN0YXR1c1RleHQsY29uZmlnOlEscmVxdWVzdDpzQX0pfSl9Y2F0Y2goTSl7dGhyb3cgViYmVigpLE0mJk0ubmFtZT09PSJUeXBlRXJyb3IiJiYvTG9hZCBmYWlsZWR8ZmV0Y2gvaS50ZXN0KE0ubWVzc2FnZSk/T2JqZWN0LmFzc2lnbihuZXcgdSgiTmV0d29yayBFcnJvciIsdS5FUlJfTkVUV09SSyxRLHNBKSx7Y2F1c2U6TS5jYXVzZXx8TX0pOnUuZnJvbShNLE0mJk0uY29kZSxRLHNBKX19fSxVcj1uZXcgTWFwLHdlPUE9PntsZXQgZT1uLm1lcmdlLmNhbGwoe3NraXBVbmRlZmluZWQ6ITB9LGt0LEE/QS5lbnY6bnVsbCkse2ZldGNoOnQsUmVxdWVzdDpJLFJlc3BvbnNlOnJ9PWUsaT1bSSxyLHRdLGc9aS5sZW5ndGgscz1nLEUsQyxvPVVyO2Zvcig7cy0tOylFPWlbc10sQz1vLmdldChFKSxDPT09dm9pZCAwJiZvLnNldChFLEM9cz9uZXcgTWFwOmtyKGUpKSxvPUM7cmV0dXJuIEN9LEZvPXdlKCk7dmFyIG1lPXtodHRwOkhBLHhocjp5dCxmZXRjaDp7Z2V0OndlfX07bi5mb3JFYWNoKG1lLChBLGUpPT57aWYoQSl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJuYW1lIix7dmFsdWU6ZX0pfWNhdGNoe31PYmplY3QuZGVmaW5lUHJvcGVydHkoQSwiYWRhcHRlck5hbWUiLHt2YWx1ZTplfSl9fSk7dmFyIFV0PUE9PmAtICR7QX1gLEdyPUE9Pm4uaXNGdW5jdGlvbihBKXx8QT09PW51bGx8fEE9PT0hMSxXQT17Z2V0QWRhcHRlcjooQSxlKT0+e0E9bi5pc0FycmF5KEEpP0E6W0FdO2xldHtsZW5ndGg6dH09QSxJLHIsaT17fTtmb3IobGV0IGc9MDtnPHQ7ZysrKXtJPUFbZ107bGV0IHM7aWYocj1JLCFHcihJKSYmKHI9bWVbKHM9U3RyaW5nKEkpKS50b0xvd2VyQ2FzZSgpXSxyPT09dm9pZCAwKSl0aHJvdyBuZXcgdShgVW5rbm93biBhZGFwdGVyICcke3N9J2ApO2lmKHImJihuLmlzRnVuY3Rpb24ocil8fChyPXIuZ2V0KGUpKSkpYnJlYWs7aVtzfHwiIyIrZ109cn1pZighcil7bGV0IGc9T2JqZWN0LmVudHJpZXMoaSkubWFwKChbRSxDXSk9PmBhZGFwdGVyICR7RX0gYCsoQz09PSExPyJpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBlbnZpcm9ubWVudCI6ImlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJ1aWxkIikpLHM9dD9nLmxlbmd0aD4xP2BzaW5jZSA6CmArZy5tYXAoVXQpLmpvaW4oYApgKToiICIrVXQoZ1swXSk6ImFzIG5vIGFkYXB0ZXIgc3BlY2lmaWVkIjt0aHJvdyBuZXcgdSgiVGhlcmUgaXMgbm8gc3VpdGFibGUgYWRhcHRlciB0byBkaXNwYXRjaCB0aGUgcmVxdWVzdCAiK3MsIkVSUl9OT1RfU1VQUE9SVCIpfXJldHVybiByfSxhZGFwdGVyczptZX07ZnVuY3Rpb24gU2UoQSl7aWYoQS5jYW5jZWxUb2tlbiYmQS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksQS5zaWduYWwmJkEuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IHEobnVsbCxBKX1mdW5jdGlvbiBqQShBKXtyZXR1cm4gU2UoQSksQS5oZWFkZXJzPW0uZnJvbShBLmhlYWRlcnMpLEEuZGF0YT1mQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXF1ZXN0KSxbInBvc3QiLCJwdXQiLCJwYXRjaCJdLmluZGV4T2YoQS5tZXRob2QpIT09LTEmJkEuaGVhZGVycy5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwhMSksV0EuZ2V0QWRhcHRlcihBLmFkYXB0ZXJ8fHJBLmFkYXB0ZXIsQSkoQSkudGhlbihmdW5jdGlvbihJKXtyZXR1cm4gU2UoQSksSS5kYXRhPWZBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkpLEkuaGVhZGVycz1tLmZyb20oSS5oZWFkZXJzKSxJfSxmdW5jdGlvbihJKXtyZXR1cm4gdUEoSSl8fChTZShBKSxJJiZJLnJlc3BvbnNlJiYoSS5yZXNwb25zZS5kYXRhPWZBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkucmVzcG9uc2UpLEkucmVzcG9uc2UuaGVhZGVycz1tLmZyb20oSS5yZXNwb25zZS5oZWFkZXJzKSkpLFByb21pc2UucmVqZWN0KEkpfSl9dmFyIHZBPSIxLjEyLjAiO3ZhciBaQT17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKEEsZSk9PntaQVtBXT1mdW5jdGlvbihJKXtyZXR1cm4gdHlwZW9mIEk9PT1BfHwiYSIrKGU8MT8ibiAiOiIgIikrQX19KTt2YXIgTnQ9e307WkEudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKGUsdCxJKXtmdW5jdGlvbiByKGksZyl7cmV0dXJuIltBeGlvcyB2Iit2QSsiXSBUcmFuc2l0aW9uYWwgb3B0aW9uICciK2krIiciK2crKEk/Ii4gIitJOiIiKX1yZXR1cm4oaSxnLHMpPT57aWYoZT09PSExKXRocm93IG5ldyB1KHIoZywiIGhhcyBiZWVuIHJlbW92ZWQiKyh0PyIgaW4gIit0OiIiKSksdS5FUlJfREVQUkVDQVRFRCk7cmV0dXJuIHQmJiFOdFtnXSYmKE50W2ddPSEwLGNvbnNvbGUud2FybihyKGcsIiBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYiK3QrIiBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZWFyIGZ1dHVyZSIpKSksZT9lKGksZyxzKTohMH19O1pBLnNwZWxsaW5nPWZ1bmN0aW9uKGUpe3JldHVybih0LEkpPT4oY29uc29sZS53YXJuKGAke0l9IGlzIGxpa2VseSBhIG1pc3NwZWxsaW5nIG9mICR7ZX1gKSwhMCl9O2Z1bmN0aW9uIExyKEEsZSx0KXtpZih0eXBlb2YgQSE9Im9iamVjdCIpdGhyb3cgbmV3IHUoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiLHUuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2xldCBJPU9iamVjdC5rZXlzKEEpLHI9SS5sZW5ndGg7Zm9yKDtyLS0gPjA7KXtsZXQgaT1JW3JdLGc9ZVtpXTtpZihnKXtsZXQgcz1BW2ldLEU9cz09PXZvaWQgMHx8ZyhzLGksQSk7aWYoRSE9PSEwKXRocm93IG5ldyB1KCJvcHRpb24gIitpKyIgbXVzdCBiZSAiK0UsdS5FUlJfQkFEX09QVElPTl9WQUxVRSk7Y29udGludWV9aWYodCE9PSEwKXRocm93IG5ldyB1KCJVbmtub3duIG9wdGlvbiAiK2ksdS5FUlJfQkFEX09QVElPTil9fXZhciBoQT17YXNzZXJ0T3B0aW9uczpMcix2YWxpZGF0b3JzOlpBfTt2YXIgSz1oQS52YWxpZGF0b3JzLG9BPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuZGVmYXVsdHM9ZXx8e30sdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IENlLHJlc3BvbnNlOm5ldyBDZX19YXN5bmMgcmVxdWVzdChlLHQpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fcmVxdWVzdChlLHQpfWNhdGNoKEkpe2lmKEkgaW5zdGFuY2VvZiBFcnJvcil7bGV0IHI9e307RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2Uocik6cj1uZXcgRXJyb3I7bGV0IGk9ci5zdGFjaz9yLnN0YWNrLnJlcGxhY2UoL14uK1xuLywiIik6IiI7dHJ5e0kuc3RhY2s/aSYmIVN0cmluZyhJLnN0YWNrKS5lbmRzV2l0aChpLnJlcGxhY2UoL14uK1xuLitcbi8sIiIpKSYmKEkuc3RhY2srPWAKYCtpKTpJLnN0YWNrPWl9Y2F0Y2h7fX10aHJvdyBJfX1fcmVxdWVzdChlLHQpe3R5cGVvZiBlPT0ic3RyaW5nIj8odD10fHx7fSx0LnVybD1lKTp0PWV8fHt9LHQ9Sih0aGlzLmRlZmF1bHRzLHQpO2xldHt0cmFuc2l0aW9uYWw6SSxwYXJhbXNTZXJpYWxpemVyOnIsaGVhZGVyczppfT10O0khPT12b2lkIDAmJmhBLmFzc2VydE9wdGlvbnMoSSx7c2lsZW50SlNPTlBhcnNpbmc6Sy50cmFuc2l0aW9uYWwoSy5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzpLLnRyYW5zaXRpb25hbChLLmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6Sy50cmFuc2l0aW9uYWwoSy5ib29sZWFuKX0sITEpLHIhPW51bGwmJihuLmlzRnVuY3Rpb24ocik/dC5wYXJhbXNTZXJpYWxpemVyPXtzZXJpYWxpemU6cn06aEEuYXNzZXJ0T3B0aW9ucyhyLHtlbmNvZGU6Sy5mdW5jdGlvbixzZXJpYWxpemU6Sy5mdW5jdGlvbn0sITApKSx0LmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwfHwodGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMD90LmFsbG93QWJzb2x1dGVVcmxzPXRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHM6dC5hbGxvd0Fic29sdXRlVXJscz0hMCksaEEuYXNzZXJ0T3B0aW9ucyh0LHtiYXNlVXJsOksuc3BlbGxpbmcoImJhc2VVUkwiKSx3aXRoWHNyZlRva2VuOksuc3BlbGxpbmcoIndpdGhYU1JGVG9rZW4iKX0sITApLHQubWV0aG9kPSh0Lm1ldGhvZHx8dGhpcy5kZWZhdWx0cy5tZXRob2R8fCJnZXQiKS50b0xvd2VyQ2FzZSgpO2xldCBnPWkmJm4ubWVyZ2UoaS5jb21tb24saVt0Lm1ldGhvZF0pO2kmJm4uZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giLCJjb21tb24iXSxRPT57ZGVsZXRlIGlbUV19KSx0LmhlYWRlcnM9bS5jb25jYXQoZyxpKTtsZXQgcz1bXSxFPSEwO3RoaXMuaW50ZXJjZXB0b3JzLnJlcXVlc3QuZm9yRWFjaChmdW5jdGlvbihmKXt0eXBlb2YgZi5ydW5XaGVuPT0iZnVuY3Rpb24iJiZmLnJ1bldoZW4odCk9PT0hMXx8KEU9RSYmZi5zeW5jaHJvbm91cyxzLnVuc2hpZnQoZi5mdWxmaWxsZWQsZi5yZWplY3RlZCkpfSk7bGV0IEM9W107dGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaChmdW5jdGlvbihmKXtDLnB1c2goZi5mdWxmaWxsZWQsZi5yZWplY3RlZCl9KTtsZXQgbyxhPTAsYztpZighRSl7bGV0IFE9W2pBLmJpbmQodGhpcyksdm9pZCAwXTtmb3IoUS51bnNoaWZ0KC4uLnMpLFEucHVzaCguLi5DKSxjPVEubGVuZ3RoLG89UHJvbWlzZS5yZXNvbHZlKHQpO2E8Yzspbz1vLnRoZW4oUVthKytdLFFbYSsrXSk7cmV0dXJuIG99Yz1zLmxlbmd0aDtsZXQgQj10O2ZvcihhPTA7YTxjOyl7bGV0IFE9c1thKytdLGY9c1thKytdO3RyeXtCPVEoQil9Y2F0Y2gobCl7Zi5jYWxsKHRoaXMsbCk7YnJlYWt9fXRyeXtvPWpBLmNhbGwodGhpcyxCKX1jYXRjaChRKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoUSl9Zm9yKGE9MCxjPUMubGVuZ3RoO2E8Yzspbz1vLnRoZW4oQ1thKytdLENbYSsrXSk7cmV0dXJuIG99Z2V0VXJpKGUpe2U9Sih0aGlzLmRlZmF1bHRzLGUpO2xldCB0PXBBKGUuYmFzZVVSTCxlLnVybCxlLmFsbG93QWJzb2x1dGVVcmxzKTtyZXR1cm4gbEEodCxlLnBhcmFtcyxlLnBhcmFtc1NlcmlhbGl6ZXIpfX07bi5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSxmdW5jdGlvbihlKXtvQS5wcm90b3R5cGVbZV09ZnVuY3Rpb24odCxJKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KEooSXx8e30se21ldGhvZDplLHVybDp0LGRhdGE6KEl8fHt9KS5kYXRhfSkpfX0pO24uZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoSSl7cmV0dXJuIGZ1bmN0aW9uKGksZyxzKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KEooc3x8e30se21ldGhvZDplLGhlYWRlcnM6ST97IkNvbnRlbnQtVHlwZSI6Im11bHRpcGFydC9mb3JtLWRhdGEifTp7fSx1cmw6aSxkYXRhOmd9KSl9fW9BLnByb3RvdHlwZVtlXT10KCksb0EucHJvdG90eXBlW2UrIkZvcm0iXT10KCEwKX0pO3ZhciBEQT1vQTt2YXIgRmU9Y2xhc3MgQXtjb25zdHJ1Y3RvcihlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7bGV0IHQ7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGkpe3Q9aX0pO2xldCBJPXRoaXM7dGhpcy5wcm9taXNlLnRoZW4ocj0+e2lmKCFJLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBpPUkuX2xpc3RlbmVycy5sZW5ndGg7Zm9yKDtpLS0gPjA7KUkuX2xpc3RlbmVyc1tpXShyKTtJLl9saXN0ZW5lcnM9bnVsbH0pLHRoaXMucHJvbWlzZS50aGVuPXI9PntsZXQgaSxnPW5ldyBQcm9taXNlKHM9PntJLnN1YnNjcmliZShzKSxpPXN9KS50aGVuKHIpO3JldHVybiBnLmNhbmNlbD1mdW5jdGlvbigpe0kudW5zdWJzY3JpYmUoaSl9LGd9LGUoZnVuY3Rpb24oaSxnLHMpe0kucmVhc29ufHwoSS5yZWFzb249bmV3IHEoaSxnLHMpLHQoSS5yZWFzb24pKX0pfXRocm93SWZSZXF1ZXN0ZWQoKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn1zdWJzY3JpYmUoZSl7aWYodGhpcy5yZWFzb24pe2UodGhpcy5yZWFzb24pO3JldHVybn10aGlzLl9saXN0ZW5lcnM/dGhpcy5fbGlzdGVuZXJzLnB1c2goZSk6dGhpcy5fbGlzdGVuZXJzPVtlXX11bnN1YnNjcmliZShlKXtpZighdGhpcy5fbGlzdGVuZXJzKXJldHVybjtsZXQgdD10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZihlKTt0IT09LTEmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UodCwxKX10b0Fib3J0U2lnbmFsKCl7bGV0IGU9bmV3IEFib3J0Q29udHJvbGxlcix0PUk9PntlLmFib3J0KEkpfTtyZXR1cm4gdGhpcy5zdWJzY3JpYmUodCksZS5zaWduYWwudW5zdWJzY3JpYmU9KCk9PnRoaXMudW5zdWJzY3JpYmUodCksZS5zaWduYWx9c3RhdGljIHNvdXJjZSgpe2xldCBlO3JldHVybnt0b2tlbjpuZXcgQShmdW5jdGlvbihyKXtlPXJ9KSxjYW5jZWw6ZX19fSxHdD1GZTtmdW5jdGlvbiBSZShBKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIEEuYXBwbHkobnVsbCx0KX19ZnVuY3Rpb24ga2UoQSl7cmV0dXJuIG4uaXNPYmplY3QoQSkmJkEuaXNBeGlvc0Vycm9yPT09ITB9dmFyIFVlPXtDb250aW51ZToxMDAsU3dpdGNoaW5nUHJvdG9jb2xzOjEwMSxQcm9jZXNzaW5nOjEwMixFYXJseUhpbnRzOjEwMyxPazoyMDAsQ3JlYXRlZDoyMDEsQWNjZXB0ZWQ6MjAyLE5vbkF1dGhvcml0YXRpdmVJbmZvcm1hdGlvbjoyMDMsTm9Db250ZW50OjIwNCxSZXNldENvbnRlbnQ6MjA1LFBhcnRpYWxDb250ZW50OjIwNixNdWx0aVN0YXR1czoyMDcsQWxyZWFkeVJlcG9ydGVkOjIwOCxJbVVzZWQ6MjI2LE11bHRpcGxlQ2hvaWNlczozMDAsTW92ZWRQZXJtYW5lbnRseTozMDEsRm91bmQ6MzAyLFNlZU90aGVyOjMwMyxOb3RNb2RpZmllZDozMDQsVXNlUHJveHk6MzA1LFVudXNlZDozMDYsVGVtcG9yYXJ5UmVkaXJlY3Q6MzA3LFBlcm1hbmVudFJlZGlyZWN0OjMwOCxCYWRSZXF1ZXN0OjQwMCxVbmF1dGhvcml6ZWQ6NDAxLFBheW1lbnRSZXF1aXJlZDo0MDIsRm9yYmlkZGVuOjQwMyxOb3RGb3VuZDo0MDQsTWV0aG9kTm90QWxsb3dlZDo0MDUsTm90QWNjZXB0YWJsZTo0MDYsUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkOjQwNyxSZXF1ZXN0VGltZW91dDo0MDgsQ29uZmxpY3Q6NDA5LEdvbmU6NDEwLExlbmd0aFJlcXVpcmVkOjQxMSxQcmVjb25kaXRpb25GYWlsZWQ6NDEyLFBheWxvYWRUb29MYXJnZTo0MTMsVXJpVG9vTG9uZzo0MTQsVW5zdXBwb3J0ZWRNZWRpYVR5cGU6NDE1LFJhbmdlTm90U2F0aXNmaWFibGU6NDE2LEV4cGVjdGF0aW9uRmFpbGVkOjQxNyxJbUFUZWFwb3Q6NDE4LE1pc2RpcmVjdGVkUmVxdWVzdDo0MjEsVW5wcm9jZXNzYWJsZUVudGl0eTo0MjIsTG9ja2VkOjQyMyxGYWlsZWREZXBlbmRlbmN5OjQyNCxUb29FYXJseTo0MjUsVXBncmFkZVJlcXVpcmVkOjQyNixQcmVjb25kaXRpb25SZXF1aXJlZDo0MjgsVG9vTWFueVJlcXVlc3RzOjQyOSxSZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6NDMxLFVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zOjQ1MSxJbnRlcm5hbFNlcnZlckVycm9yOjUwMCxOb3RJbXBsZW1lbnRlZDo1MDEsQmFkR2F0ZXdheTo1MDIsU2VydmljZVVuYXZhaWxhYmxlOjUwMyxHYXRld2F5VGltZW91dDo1MDQsSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6NTA1LFZhcmlhbnRBbHNvTmVnb3RpYXRlczo1MDYsSW5zdWZmaWNpZW50U3RvcmFnZTo1MDcsTG9vcERldGVjdGVkOjUwOCxOb3RFeHRlbmRlZDo1MTAsTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NTExfTtPYmplY3QuZW50cmllcyhVZSkuZm9yRWFjaCgoW0EsZV0pPT57VWVbZV09QX0pO3ZhciBMdD1VZTtmdW5jdGlvbiBidChBKXtsZXQgZT1uZXcgREEoQSksdD1DQShEQS5wcm90b3R5cGUucmVxdWVzdCxlKTtyZXR1cm4gbi5leHRlbmQodCxEQS5wcm90b3R5cGUsZSx7YWxsT3duS2V5czohMH0pLG4uZXh0ZW5kKHQsZSxudWxsLHthbGxPd25LZXlzOiEwfSksdC5jcmVhdGU9ZnVuY3Rpb24ocil7cmV0dXJuIGJ0KEooQSxyKSl9LHR9dmFyIHk9YnQockEpO3kuQXhpb3M9REE7eS5DYW5jZWxlZEVycm9yPXE7eS5DYW5jZWxUb2tlbj1HdDt5LmlzQ2FuY2VsPXVBO3kuVkVSU0lPTj12QTt5LnRvRm9ybURhdGE9ajt5LkF4aW9zRXJyb3I9dTt5LkNhbmNlbD15LkNhbmNlbGVkRXJyb3I7eS5hbGw9ZnVuY3Rpb24oZSl7cmV0dXJuIFByb21pc2UuYWxsKGUpfTt5LnNwcmVhZD1SZTt5LmlzQXhpb3NFcnJvcj1rZTt5Lm1lcmdlQ29uZmlnPUo7eS5BeGlvc0hlYWRlcnM9bTt5LmZvcm1Ub0pTT049QT0+T0Eobi5pc0hUTUxGb3JtKEEpP25ldyBGb3JtRGF0YShBKTpBKTt5LmdldEFkYXB0ZXI9V0EuZ2V0QWRhcHRlcjt5Lkh0dHBTdGF0dXNDb2RlPUx0O3kuZGVmYXVsdD15O3ZhciBuQT15O3ZhcntBeGlvczptbixBeGlvc0Vycm9yOlNuLENhbmNlbGVkRXJyb3I6Rm4saXNDYW5jZWw6Um4sQ2FuY2VsVG9rZW46a24sVkVSU0lPTjpVbixhbGw6Tm4sQ2FuY2VsOkduLGlzQXhpb3NFcnJvcjpMbixzcHJlYWQ6Ym4sdG9Gb3JtRGF0YTpKbixBeGlvc0hlYWRlcnM6WW4sSHR0cFN0YXR1c0NvZGU6TW4sZm9ybVRvSlNPTjpIbixnZXRBZGFwdGVyOnFuLG1lcmdlQ29uZmlnOktufT1uQTthc3luYyBmdW5jdGlvbiBicihBLGUpe2xldCB0PUEsST1udWxsO2lmKHQ9PW51bGwpST1uZXcgV29ya2VyKG5ldyBVUkwoIi4vd2ViLXdvcmtlcnMvaXRrLXdhc20tcGlwZWxpbmUud29ya2VyLmpzIixpbXBvcnQubWV0YS51cmwpLHt0eXBlOiJtb2R1bGUifSk7ZWxzZSBpZih0LnN0YXJ0c1dpdGgoImh0dHAiKSl7bGV0IHI9YXdhaXQgbkEuZ2V0KHQse3Jlc3BvbnNlVHlwZToiYmxvYiIscGFyYW1zOmV9KSxpPVVSTC5jcmVhdGVPYmplY3RVUkwoci5kYXRhKTtJPW5ldyBXb3JrZXIoaSx7dHlwZToibW9kdWxlIn0pfWVsc2UgST1uZXcgV29ya2VyKHQse3R5cGU6Im1vZHVsZSJ9KTtyZXR1cm4gSX12YXIgeUE9YnI7ZnVuY3Rpb24gSnQoQSl7bGV0IGU9Z2UoQSksdD1BO3JldHVybiB0LnRlcm1pbmF0ZWQ9ITEsdC53b3JrZXJQcm94eT1lLHQub3JpZ2luYWxUZXJtaW5hdGU9dC50ZXJtaW5hdGUsdC50ZXJtaW5hdGU9KCk9Pnt0LnRlcm1pbmF0ZWQ9ITAsdC53b3JrZXJQcm94eVtyZV0oKSx0Lm9yaWdpbmFsVGVybWluYXRlKCl9LHt3b3JrZXJQcm94eTplLHdvcmtlcjp0fX1hc3luYyBmdW5jdGlvbiBKcihBLGUsdCl7bGV0IEk7aWYoQSE9bnVsbCl7bGV0IGk9QTtyZXR1cm4gaS53b3JrZXJQcm94eSE9PXZvaWQgMD8oST1pLndvcmtlclByb3h5LHt3b3JrZXJQcm94eTpJLHdvcmtlcjppfSk6SnQoQSl9bGV0IHI9YXdhaXQgeUEoZSx0KTtyZXR1cm4gSnQocil9dmFyIFl0PUpyO3ZhciB3QSx4LEdlLE5lPXtlbnY6e2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGg6ZnVuY3Rpb24oQSl7R2U9bmV3IFVpbnQ4QXJyYXkoeC5leHBvcnRzLm1lbW9yeS5idWZmZXIpfX19LFZBPWNsYXNze2luaXQoKXtyZXR1cm4gd0F8fCh0eXBlb2YgZmV0Y2g8InUiP3dBPWZldGNoKCJkYXRhOmFwcGxpY2F0aW9uL3dhc207YmFzZTY0LCIrTXQpLnRoZW4oZT0+ZS5hcnJheUJ1ZmZlcigpKS50aGVuKGU9PldlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGUsTmUpKS50aGVuKHRoaXMuX2luaXQpOndBPVdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEJ1ZmZlci5mcm9tKE10LCJiYXNlNjQiKSxOZSkudGhlbih0aGlzLl9pbml0KSx3QSl9X2luaXQoZSl7eD1lLmluc3RhbmNlLE5lLmVudi5lbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoKDApfWRlY29kZShlLHQ9MCl7aWYoIXgpdGhyb3cgbmV3IEVycm9yKCJaU1RERGVjb2RlcjogQXdhaXQgLmluaXQoKSBiZWZvcmUgZGVjb2RpbmcuIik7bGV0IEk9ZS5ieXRlTGVuZ3RoLHI9eC5leHBvcnRzLm1hbGxvYyhJKTtHZS5zZXQoZSxyKSx0PXR8fE51bWJlcih4LmV4cG9ydHMuWlNURF9maW5kRGVjb21wcmVzc2VkU2l6ZShyLEkpKTtsZXQgaT14LmV4cG9ydHMubWFsbG9jKHQpLGc9eC5leHBvcnRzLlpTVERfZGVjb21wcmVzcyhpLHQscixJKSxzPUdlLnNsaWNlKGksaStnKTtyZXR1cm4geC5leHBvcnRzLmZyZWUocikseC5leHBvcnRzLmZyZWUoaSksc319LE10PSJBR0Z6YlFFQUFBQUJiZzVnQTM5L2Z3Ri9ZQUYvQVg5Z0FuOS9BR0FCZndCZ0JYOS9mMzkvQVg5Z0EzOS9md0JnQkg5L2YzOEJmMkFBQVg5Z0FuOS9BWDlnQjM5L2YzOS9mMzhCZjJBQ2YzOEJmbUFJZjM5L2YzOS9mMzhCZjJBRmYzOS9mMzhBWUE1L2YzOS9mMzkvZjM5L2YzOS9md0YvQWljQkEyVnVkaDlsYlhOamNtbHdkR1Z1WDI1dmRHbG1lVjl0WlcxdmNubGZaM0p2ZDNSb0FBTURJeUlIQUFBQkFRTUhBd0VBQ1FRQUJRRUlDQUVGQmdRRUJBTUdBQUFLQUFVTERBMEdCQVVCY0FFQkFRVUhBUUdBQW9DQUFnWUlBWDhCUVlDakJBc0hyZ0VMQm0xbGJXOXllUUlBQm0xaGJHeHZZd0FGQkdaeVpXVUFCZ3hhVTFSRVgybHpSWEp5YjNJQUVobGFVMVJFWDJacGJtUkVaV052YlhCeVpYTnpaV1JUYVhwbEFCd1BXbE5VUkY5a1pXTnZiWEJ5WlhOekFDSVpYMTlwYm1ScGNtVmpkRjltZFc1amRHbHZibDkwWVdKc1pRRUFFRjlmWlhKeWJtOWZiRzlqWVhScGIyNEFBUWx6ZEdGamExTmhkbVVBQnd4emRHRmphMUpsYzNSdmNtVUFDQXB6ZEdGamEwRnNiRzlqQUFrS2kvSUJJZ1VBUVlRZkN6TUJBWDhnQWdSQUlBQWhBd05BSUFNZ0FTMEFBRG9BQUNBRFFRRnFJUU1nQVVFQmFpRUJJQUpCQVdzaUFnMEFDd3NnQUFzcEFRRi9JQUlFUUNBQUlRTURRQ0FESUFFNkFBQWdBMEVCYWlFRElBSkJBV3NpQWcwQUN3c2dBQXRzQVFKL1FZQWZLQUlBSWdFZ0FFRUhha0Y0Y1NJQ2FpRUFBa0FnQWtFQUlBQWdBVTBiRFFBZ0FEOEFRUkIwU3dSQUlBQS9BRUVRZEd0Qi8vOERha0VRZGtBQVFYOUdCSDlCQUFWQkFCQUFRUUVMUlEwQkMwR0FIeUFBTmdJQUlBRVBDMEdFSDBFd05nSUFRWDhMdVNjQkMzOGpBRUVRYXlJS0pBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQUJCOUFGTkJFQkJpQjhvQWdBaUJrRVFJQUJCQzJwQmVIRWdBRUVMU1JzaUJVRURkaUlBZGlJQlFRTnhCRUFDUUNBQlFYOXpRUUZ4SUFCcUlnSkJBM1FpQVVHd0gyb2lBQ0FCUWJnZmFpZ0NBQ0lCS0FJSUlnUkdCRUJCaUI4Z0JrRitJQUozY1RZQ0FBd0JDeUFFSUFBMkFnd2dBQ0FFTmdJSUN5QUJRUWhxSVFBZ0FTQUNRUU4wSWdKQkEzSTJBZ1FnQVNBQ2FpSUJJQUVvQWdSQkFYSTJBZ1FNRHdzZ0JVR1FIeWdDQUNJSFRRMEJJQUVFUUFKQVFRSWdBSFFpQWtFQUlBSnJjaUFCSUFCMGNXZ2lBVUVEZENJQVFiQWZhaUlDSUFCQnVCOXFLQUlBSWdBb0FnZ2lCRVlFUUVHSUh5QUdRWDRnQVhkeElnWTJBZ0FNQVFzZ0JDQUNOZ0lNSUFJZ0JEWUNDQXNnQUNBRlFRTnlOZ0lFSUFBZ0JXb2lDQ0FCUVFOMElnRWdCV3NpQkVFQmNqWUNCQ0FBSUFGcUlBUTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRRkJuQjhvQWdBaEFnSi9JQVpCQVNBSFFRTjJkQ0lEY1VVRVFFR0lIeUFESUFaeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQXlBQklBSTJBZ2dnQXlBQ05nSU1JQUlnQVRZQ0RDQUNJQU0yQWdnTElBQkJDR29oQUVHY0h5QUlOZ0lBUVpBZklBUTJBZ0FNRHd0QmpCOG9BZ0FpQzBVTkFTQUxhRUVDZEVHNElXb29BZ0FpQWlnQ0JFRjRjU0FGYXlFRElBSWhBUU5BQWtBZ0FTZ0NFQ0lBUlFSQUlBRW9BaFFpQUVVTkFRc2dBQ2dDQkVGNGNTQUZheUlCSUFNZ0FTQURTU0lCR3lFRElBQWdBaUFCR3lFQ0lBQWhBUXdCQ3dzZ0FpZ0NHQ0VKSUFJZ0FpZ0NEQ0lFUndSQVFaZ2ZLQUlBR2lBQ0tBSUlJZ0FnQkRZQ0RDQUVJQUEyQWdnTURnc2dBa0VVYWlJQktBSUFJZ0JGQkVBZ0FpZ0NFQ0lBUlEwRElBSkJFR29oQVFzRFFDQUJJUWdnQUNJRVFSUnFJZ0VvQWdBaUFBMEFJQVJCRUdvaEFTQUVLQUlRSWdBTkFBc2dDRUVBTmdJQURBMExRWDhoQlNBQVFiOS9TdzBBSUFCQkMyb2lBRUY0Y1NFRlFZd2ZLQUlBSWdoRkRRQkJBQ0FGYXlFREFrQUNRQUpBQW45QkFDQUZRWUFDU1EwQUdrRWZJQVZCLy8vL0Iwc05BQm9nQlVFbUlBQkJDSFpuSWdCcmRrRUJjU0FBUVFGMGEwRSthZ3NpQjBFQ2RFRzRJV29vQWdBaUFVVUVRRUVBSVFBTUFRdEJBQ0VBSUFWQkdTQUhRUUYyYTBFQUlBZEJIMGNiZENFQ0EwQUNRQ0FCS0FJRVFYaHhJQVZySWdZZ0EwOE5BQ0FCSVFRZ0JpSUREUUJCQUNFRElBRWhBQXdEQ3lBQUlBRW9BaFFpQmlBR0lBRWdBa0VkZGtFRWNXb29BaEFpQVVZYklBQWdCaHNoQUNBQ1FRRjBJUUlnQVEwQUN3c2dBQ0FFY2tVRVFFRUFJUVJCQWlBSGRDSUFRUUFnQUd0eUlBaHhJZ0JGRFFNZ0FHaEJBblJCdUNGcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJQ0lBTkpJUUVnQWlBRElBRWJJUU1nQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBRFFaQWZLQUlBSUFWclR3MEFJQVFvQWhnaEJ5QUVJQVFvQWd3aUFrY0VRRUdZSHlnQ0FCb2dCQ2dDQ0NJQUlBSTJBZ3dnQWlBQU5nSUlEQXdMSUFSQkZHb2lBU2dDQUNJQVJRUkFJQVFvQWhBaUFFVU5BeUFFUVJCcUlRRUxBMEFnQVNFR0lBQWlBa0VVYWlJQktBSUFJZ0FOQUNBQ1FSQnFJUUVnQWlnQ0VDSUFEUUFMSUFaQkFEWUNBQXdMQ3lBRlFaQWZLQUlBSWdSTkJFQkJuQjhvQWdBaEFBSkFJQVFnQldzaUFVRVFUd1JBSUFBZ0JXb2lBaUFCUVFGeU5nSUVJQUFnQkdvZ0FUWUNBQ0FBSUFWQkEzSTJBZ1FNQVFzZ0FDQUVRUU55TmdJRUlBQWdCR29pQVNBQktBSUVRUUZ5TmdJRVFRQWhBa0VBSVFFTFFaQWZJQUUyQWdCQm5COGdBallDQUNBQVFRaHFJUUFNRFFzZ0JVR1VIeWdDQUNJQ1NRUkFRWlFmSUFJZ0JXc2lBVFlDQUVHZ0gwR2dIeWdDQUNJQUlBVnFJZ0kyQWdBZ0FpQUJRUUZ5TmdJRUlBQWdCVUVEY2pZQ0JDQUFRUWhxSVFBTURRdEJBQ0VBSUFWQkwyb2lBd0ovUWVBaUtBSUFCRUJCNkNJb0FnQU1BUXRCN0NKQ2Z6Y0NBRUhrSWtLQW9JQ0FnSUFFTndJQVFlQWlJQXBCREdwQmNIRkIyS3JWcWdWek5nSUFRZlFpUVFBMkFnQkJ4Q0pCQURZQ0FFR0FJQXNpQVdvaUJrRUFJQUZySWdoeElnRWdCVTBOREVIQUlpZ0NBQ0lFQkVCQnVDSW9BZ0FpQnlBQmFpSUpJQWROSUFRZ0NVbHlEUTBMQWtCQnhDSXRBQUJCQkhGRkJFQUNRQUpBQWtBQ1FFR2dIeWdDQUNJRUJFQkJ5Q0loQUFOQUlBUWdBQ2dDQUNJSFR3UkFJQWNnQUNnQ0JHb2dCRXNOQXdzZ0FDZ0NDQ0lBRFFBTEMwRUFFQVFpQWtGL1JnMERJQUVoQmtIa0lpZ0NBQ0lBUVFGcklnUWdBbkVFUUNBQklBSnJJQUlnQkdwQkFDQUFhM0ZxSVFZTElBVWdCazhOQTBIQUlpZ0NBQ0lBQkVCQnVDSW9BZ0FpQkNBR2FpSUlJQVJOSUFBZ0NFbHlEUVFMSUFZUUJDSUFJQUpIRFFFTUJRc2dCaUFDYXlBSWNTSUdFQVFpQWlBQUtBSUFJQUFvQWdScVJnMEJJQUloQUFzZ0FFRi9SZzBCSUFWQk1Hb2dCazBFUUNBQUlRSU1CQXRCNkNJb0FnQWlBaUFESUFacmFrRUFJQUpyY1NJQ0VBUkJmMFlOQVNBQ0lBWnFJUVlnQUNFQ0RBTUxJQUpCZjBjTkFndEJ4Q0pCeENJb0FnQkJCSEkyQWdBTElBRVFCQ0lDUVg5R1FRQVFCQ0lBUVg5R2NpQUFJQUpOY2cwRklBQWdBbXNpQmlBRlFTaHFUUTBGQzBHNElrRzRJaWdDQUNBR2FpSUFOZ0lBUWJ3aUtBSUFJQUJKQkVCQnZDSWdBRFlDQUFzQ1FFR2dIeWdDQUNJREJFQkJ5Q0loQUFOQUlBSWdBQ2dDQUNJQklBQW9BZ1FpQkdwR0RRSWdBQ2dDQ0NJQURRQUxEQVFMUVpnZktBSUFJZ0JCQUNBQUlBSk5HMFVFUUVHWUh5QUNOZ0lBQzBFQUlRQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFhZ2ZRWDgyQWdCQnJCOUI0Q0lvQWdBMkFnQkIxQ0pCQURZQ0FBTkFJQUJCQTNRaUFVRzRIMm9nQVVHd0gyb2lCRFlDQUNBQlFid2ZhaUFFTmdJQUlBQkJBV29pQUVFZ1J3MEFDMEdVSHlBR1FTaHJJZ0JCZUNBQ2EwRUhjU0lCYXlJRU5nSUFRYUFmSUFFZ0Ftb2lBVFlDQUNBQklBUkJBWEkyQWdRZ0FDQUNha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQVFMSUFJZ0EwMGdBU0FEUzNJTkFpQUFLQUlNUVFoeERRSWdBQ0FFSUFacU5nSUVRYUFmSUFOQmVDQURhMEVIY1NJQWFpSUJOZ0lBUVpRZlFaUWZLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFNTFFRQWhCQXdLQzBFQUlRSU1DQXRCbUI4b0FnQWdBa3NFUUVHWUh5QUNOZ0lBQ3lBQ0lBWnFJUUZCeUNJaEFBSkFBa0FDUUFOQUlBRWdBQ2dDQUVjRVFDQUFLQUlJSWdBTkFRd0NDd3NnQUMwQURFRUljVVVOQVF0QnlDSWhBQU5BSUFNZ0FDZ0NBQ0lCVHdSQUlBRWdBQ2dDQkdvaUJDQURTdzBEQ3lBQUtBSUlJUUFNQUFzQUN5QUFJQUkyQWdBZ0FDQUFLQUlFSUFacU5nSUVJQUpCZUNBQ2EwRUhjV29pQnlBRlFRTnlOZ0lFSUFGQmVDQUJhMEVIY1dvaUJpQUZJQWRxSWdWcklRQWdBeUFHUmdSQVFhQWZJQVUyQWdCQmxCOUJsQjhvQWdBZ0FHb2lBRFlDQUNBRklBQkJBWEkyQWdRTUNBdEJuQjhvQWdBZ0JrWUVRRUdjSHlBRk5nSUFRWkFmUVpBZktBSUFJQUJxSWdBMkFnQWdCU0FBUVFGeU5nSUVJQUFnQldvZ0FEWUNBQXdJQ3lBR0tBSUVJZ05CQTNGQkFVY05CaUFEUVhoeElRa2dBMEgvQVUwRVFDQUdLQUlNSWdFZ0JpZ0NDQ0lDUmdSQVFZZ2ZRWWdmS0FJQVFYNGdBMEVEZG5keE5nSUFEQWNMSUFJZ0FUWUNEQ0FCSUFJMkFnZ01CZ3NnQmlnQ0dDRUlJQVlnQmlnQ0RDSUNSd1JBSUFZb0FnZ2lBU0FDTmdJTUlBSWdBVFlDQ0F3RkN5QUdRUlJxSWdFb0FnQWlBMFVFUUNBR0tBSVFJZ05GRFFRZ0JrRVFhaUVCQ3dOQUlBRWhCQ0FESWdKQkZHb2lBU2dDQUNJRERRQWdBa0VRYWlFQklBSW9BaEFpQXcwQUN5QUVRUUEyQWdBTUJBdEJsQjhnQmtFb2F5SUFRWGdnQW10QkIzRWlBV3NpQ0RZQ0FFR2dIeUFCSUFKcUlnRTJBZ0FnQVNBSVFRRnlOZ0lFSUFBZ0FtcEJLRFlDQkVHa0gwSHdJaWdDQURZQ0FDQURJQVJCSnlBRWEwRUhjV3BCTDJzaUFDQUFJQU5CRUdwSkd5SUJRUnMyQWdRZ0FVSFFJaWtDQURjQ0VDQUJRY2dpS1FJQU53SUlRZEFpSUFGQkNHbzJBZ0JCekNJZ0JqWUNBRUhJSWlBQ05nSUFRZFFpUVFBMkFnQWdBVUVZYWlFQUEwQWdBRUVITmdJRUlBQkJDR29nQUVFRWFpRUFJQVJKRFFBTElBRWdBMFlOQUNBQklBRW9BZ1JCZm5FMkFnUWdBeUFCSUFOcklnSkJBWEkyQWdRZ0FTQUNOZ0lBSUFKQi93Rk5CRUFnQWtGNGNVR3dIMm9oQUFKL1FZZ2ZLQUlBSWdGQkFTQUNRUU4yZENJQ2NVVUVRRUdJSHlBQklBSnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEFTQUFJQU0yQWdnZ0FTQUROZ0lNSUFNZ0FEWUNEQ0FESUFFMkFnZ01BUXRCSHlFQUlBSkIvLy8vQjAwRVFDQUNRU1lnQWtFSWRtY2lBR3QyUVFGeElBQkJBWFJyUVQ1cUlRQUxJQU1nQURZQ0hDQURRZ0EzQWhBZ0FFRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlCRUVCSUFCMElnWnhSUVJBUVl3ZklBUWdCbkkyQWdBZ0FTQUROZ0lBREFFTElBSkJHU0FBUVFGMmEwRUFJQUJCSDBjYmRDRUFJQUVvQWdBaEJBTkFJQVFpQVNnQ0JFRjRjU0FDUmcwQ0lBQkJIWFloQkNBQVFRRjBJUUFnQVNBRVFRUnhhaUlHS0FJUUlnUU5BQXNnQmlBRE5nSVFDeUFESUFFMkFoZ2dBeUFETmdJTUlBTWdBellDQ0F3QkN5QUJLQUlJSWdBZ0F6WUNEQ0FCSUFNMkFnZ2dBMEVBTmdJWUlBTWdBVFlDRENBRElBQTJBZ2dMUVpRZktBSUFJZ0FnQlUwTkFFR1VIeUFBSUFWcklnRTJBZ0JCb0I5Qm9COG9BZ0FpQUNBRmFpSUNOZ0lBSUFJZ0FVRUJjallDQkNBQUlBVkJBM0kyQWdRZ0FFRUlhaUVBREFnTFFZUWZRVEEyQWdCQkFDRUFEQWNMUVFBaEFnc2dDRVVOQUFKQUlBWW9BaHdpQVVFQ2RFRzRJV29pQkNnQ0FDQUdSZ1JBSUFRZ0FqWUNBQ0FDRFFGQmpCOUJqQjhvQWdCQmZpQUJkM0UyQWdBTUFnc2dDRUVRUVJRZ0NDZ0NFQ0FHUmh0cUlBSTJBZ0FnQWtVTkFRc2dBaUFJTmdJWUlBWW9BaEFpQVFSQUlBSWdBVFlDRUNBQklBSTJBaGdMSUFZb0FoUWlBVVVOQUNBQ0lBRTJBaFFnQVNBQ05nSVlDeUFBSUFscUlRQWdCaUFKYWlJR0tBSUVJUU1MSUFZZ0EwRitjVFlDQkNBRklBQkJBWEkyQWdRZ0FDQUZhaUFBTmdJQUlBQkIvd0ZOQkVBZ0FFRjRjVUd3SDJvaEFRSi9RWWdmS0FJQUlnSkJBU0FBUVFOMmRDSUFjVVVFUUVHSUh5QUFJQUp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBQ0FCSUFVMkFnZ2dBQ0FGTmdJTUlBVWdBVFlDRENBRklBQTJBZ2dNQVF0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFVZ0F6WUNIQ0FGUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQWtFQklBTjBJZ1J4UlFSQVFZd2ZJQUlnQkhJMkFnQWdBU0FGTmdJQURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBZ05BSUFJaUFTZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFpQURRUUYwSVFNZ0FTQUNRUVJ4YWlJRUtBSVFJZ0lOQUFzZ0JDQUZOZ0lRQ3lBRklBRTJBaGdnQlNBRk5nSU1JQVVnQlRZQ0NBd0JDeUFCS0FJSUlnQWdCVFlDRENBQklBVTJBZ2dnQlVFQU5nSVlJQVVnQVRZQ0RDQUZJQUEyQWdnTElBZEJDR29oQUF3Q0N3SkFJQWRGRFFBQ1FDQUVLQUljSWdCQkFuUkJ1Q0ZxSWdFb0FnQWdCRVlFUUNBQklBSTJBZ0FnQWcwQlFZd2ZJQWhCZmlBQWQzRWlDRFlDQUF3Q0N5QUhRUkJCRkNBSEtBSVFJQVJHRzJvZ0FqWUNBQ0FDUlEwQkN5QUNJQWMyQWhnZ0JDZ0NFQ0lBQkVBZ0FpQUFOZ0lRSUFBZ0FqWUNHQXNnQkNnQ0ZDSUFSUTBBSUFJZ0FEWUNGQ0FBSUFJMkFoZ0xBa0FnQTBFUFRRUkFJQVFnQXlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnSWdBMEVCY2pZQ0JDQUNJQU5xSUFNMkFnQWdBMEgvQVUwRVFDQURRWGh4UWJBZmFpRUFBbjlCaUI4b0FnQWlBVUVCSUFOQkEzWjBJZ054UlFSQVFZZ2ZJQUVnQTNJMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0FqWUNDQ0FCSUFJMkFnd2dBaUFBTmdJTUlBSWdBVFlDQ0F3QkMwRWZJUUFnQTBILy8vOEhUUVJBSUFOQkppQURRUWgyWnlJQWEzWkJBWEVnQUVFQmRHdEJQbW9oQUFzZ0FpQUFOZ0ljSUFKQ0FEY0NFQ0FBUVFKMFFiZ2hhaUVCQWtBQ1FDQUlRUUVnQUhRaUJuRkZCRUJCakI4Z0JpQUljallDQUNBQklBSTJBZ0FNQVFzZ0EwRVpJQUJCQVhaclFRQWdBRUVmUnh0MElRQWdBU2dDQUNFRkEwQWdCU0lCS0FJRVFYaHhJQU5HRFFJZ0FFRWRkaUVHSUFCQkFYUWhBQ0FCSUFaQkJIRnFJZ1lvQWhBaUJRMEFDeUFHSUFJMkFoQUxJQUlnQVRZQ0dDQUNJQUkyQWd3Z0FpQUNOZ0lJREFFTElBRW9BZ2dpQUNBQ05nSU1JQUVnQWpZQ0NDQUNRUUEyQWhnZ0FpQUJOZ0lNSUFJZ0FEWUNDQXNnQkVFSWFpRUFEQUVMQWtBZ0NVVU5BQUpBSUFJb0Fod2lBRUVDZEVHNElXb2lBU2dDQUNBQ1JnUkFJQUVnQkRZQ0FDQUVEUUZCakI4Z0MwRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFKR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBaWdDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FpZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFJZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQW1vaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFJZ0JVRURjallDQkNBQ0lBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRQkJuQjhvQWdBaEFRSi9RUUVnQjBFRGRuUWlCU0FHY1VVRVFFR0lIeUFGSUFaeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQmlBQUlBRTJBZ2dnQmlBQk5nSU1JQUVnQURZQ0RDQUJJQVkyQWdnTFFad2ZJQVEyQWdCQmtCOGdBellDQUFzZ0FrRUlhaUVBQ3lBS1FSQnFKQUFnQUF2U0N3RUhmd0pBSUFCRkRRQWdBRUVJYXlJQ0lBQkJCR3NvQWdBaUFVRjRjU0lBYWlFRkFrQWdBVUVCY1EwQUlBRkJBM0ZGRFFFZ0FpQUNLQUlBSWdGcklnSkJtQjhvQWdCSkRRRWdBQ0FCYWlFQUFrQUNRRUdjSHlnQ0FDQUNSd1JBSUFGQi93Rk5CRUFnQVVFRGRpRUVJQUlvQWd3aUFTQUNLQUlJSWdOR0JFQkJpQjlCaUI4b0FnQkJmaUFFZDNFMkFnQU1CUXNnQXlBQk5nSU1JQUVnQXpZQ0NBd0VDeUFDS0FJWUlRWWdBaUFDS0FJTUlnRkhCRUFnQWlnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBSkJGR29pQkNnQ0FDSURSUVJBSUFJb0FoQWlBMFVOQWlBQ1FSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZLQUlFSWdGQkEzRkJBMGNOQWtHUUh5QUFOZ0lBSUFVZ0FVRitjVFlDQkNBQ0lBQkJBWEkyQWdRZ0JTQUFOZ0lBRHd0QkFDRUJDeUFHUlEwQUFrQWdBaWdDSENJRFFRSjBRYmdoYWlJRUtBSUFJQUpHQkVBZ0JDQUJOZ0lBSUFFTkFVR01IMEdNSHlnQ0FFRitJQU4zY1RZQ0FBd0NDeUFHUVJCQkZDQUdLQUlRSUFKR0cyb2dBVFlDQUNBQlJRMEJDeUFCSUFZMkFoZ2dBaWdDRUNJREJFQWdBU0FETmdJUUlBTWdBVFlDR0FzZ0FpZ0NGQ0lEUlEwQUlBRWdBellDRkNBRElBRTJBaGdMSUFJZ0JVOE5BQ0FGS0FJRUlnRkJBWEZGRFFBQ1FBSkFBa0FDUUNBQlFRSnhSUVJBUWFBZktBSUFJQVZHQkVCQm9COGdBallDQUVHVUgwR1VIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQ1Fad2ZLQUlBUncwR1FaQWZRUUEyQWdCQm5COUJBRFlDQUE4TFFad2ZLQUlBSUFWR0JFQkJuQjhnQWpZQ0FFR1FIMEdRSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUFJQUpxSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFnQVVIL0FVMEVRQ0FCUVFOMklRUWdCU2dDRENJQklBVW9BZ2dpQTBZRVFFR0lIMEdJSHlnQ0FFRitJQVIzY1RZQ0FBd0ZDeUFESUFFMkFnd2dBU0FETmdJSURBUUxJQVVvQWhnaEJpQUZJQVVvQWd3aUFVY0VRRUdZSHlnQ0FCb2dCU2dDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFWQkZHb2lCQ2dDQUNJRFJRUkFJQVVvQWhBaUEwVU5BaUFGUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRklBRkJmbkUyQWdRZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FBd0RDMEVBSVFFTElBWkZEUUFDUUNBRktBSWNJZ05CQW5SQnVDRnFJZ1FvQWdBZ0JVWUVRQ0FFSUFFMkFnQWdBUTBCUVl3ZlFZd2ZLQUlBUVg0Z0EzZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ01FUUNBQklBTTJBaEFnQXlBQk5nSVlDeUFGS0FJVUlnTkZEUUFnQVNBRE5nSVVJQU1nQVRZQ0dBc2dBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQ0FDUVp3ZktBSUFSdzBBUVpBZklBQTJBZ0FQQ3lBQVFmOEJUUVJBSUFCQmVIRkJzQjlxSVFFQ2YwR0lIeWdDQUNJRFFRRWdBRUVEZG5RaUFIRkZCRUJCaUI4Z0FDQURjallDQUNBQkRBRUxJQUVvQWdnTElRQWdBU0FDTmdJSUlBQWdBallDRENBQ0lBRTJBZ3dnQWlBQU5nSUlEd3RCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQUlnQXpZQ0hDQUNRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0FDUUVHTUh5Z0NBQ0lFUVFFZ0EzUWlCM0ZGQkVCQmpCOGdCQ0FIY2pZQ0FDQUJJQUkyQWdBZ0FpQUJOZ0lZREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFRTkFJQUVpQkNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQVNBRFFRRjBJUU1nQkNBQlFRUnhhaUlIUVJCcUtBSUFJZ0VOQUFzZ0J5QUNOZ0lRSUFJZ0JEWUNHQXNnQWlBQ05nSU1JQUlnQWpZQ0NBd0JDeUFFS0FJSUlnQWdBallDRENBRUlBSTJBZ2dnQWtFQU5nSVlJQUlnQkRZQ0RDQUNJQUEyQWdnTFFhZ2ZRYWdmS0FJQVFRRnJJZ0JCZnlBQUd6WUNBQXNMQkFBakFBc0dBQ0FBSkFBTEVBQWpBQ0FBYTBGd2NTSUFKQUFnQUF0S0FRRi9JQUFnQVVrRVFDQUFJQUVnQWhBQ0R3c2dBZ1JBSUFBZ0Ftb2hBeUFCSUFKcUlRRURRQ0FEUVFGcklnTWdBVUVCYXlJQkxRQUFPZ0FBSUFKQkFXc2lBZzBBQ3dzZ0FBdjlEZ0lSZndGK0l3QkJNR3NpQnlRQVFiaC9JUWdDUUNBRlJRMEFJQVFzQUFBaUNVSC9BWEVoQ3dKQUlBbEJBRWdFUUNBTFFmNEFhMEVCZGlJR0lBVlBEUUpCYkNFSUlBdEIvd0JySWd0Qi93RkxEUUlnQkVFQmFpRUlRUUFoQlFOQUlBVWdDMDhFUUNBTElRZ2dCaUVMREFNRklBQWdCV29nQ0NBRlFRRjJhaUlFTFFBQVFRUjJPZ0FBSUFBZ0JVRUJjbW9nQkMwQUFFRVBjVG9BQUNBRlFRSnFJUVVNQVFzQUN3QUxJQVVnQzAwTkFTQUhRZjhCTmdJRUlBWWdCMEVFYWlBSFFRaHFJQVJCQVdvaURpQUxFQXdpQkVHSWYwc0VRQ0FFSVFnTUFndEJWQ0VJSUFjb0FnZ2lFRUVHU3cwQklBY29BZ1FpRVVFQmRDSUpRUUpxclVJQklCQ3RoaUlZUVFFZ0VIUWlEVUVCYWlJRnJVSUNobng4UWd0OFF2ei8vLy8vLy8vLy93Q0RRdVFDVmcwQlFWSWhDQ0FSUWY4QlN3MEJJQTFCZjNOQkFuUkI1QUpxclNBUlFRRnFJaFZCQVhTdElCaDhRZ2g4VkEwQklBc2dCR3NoRmlBRUlBNXFJUmNnQmtHQUJHb2lFaUFGUVFKMGFpSVJJQWxxUVFKcUlRNGdCa0dFQkdvaEUwR0FnQUlnRUhSQkVIWWhDVUVBSVFWQkFTRVBJQTFCQVdzaUZDRUtBMEFnQlNBVlJrVUVRQUpBSUFZZ0JVRUJkQ0lJYWk4QkFDSUVRZi8vQTBZRVFDQVRJQXBCQW5ScUlBVTZBQUlnQ2tFQmF5RUtRUUVoQkF3QkN5QVBRUUFnQ1NBRXdVb2JJUThMSUFnZ0VXb2dCRHNCQUNBRlFRRnFJUVVNQVFzTElBWWdEenNCZ2dRZ0JpQVFPd0dBQkFKQUlBb2dGRVlFUUNBTlFRTjJJUWhDQUNFWVFRQWhEd05BSUF3Z0ZVWUVRQ0FJSUExQkFYWnFRUU5xSWdsQkFYUWhDRUVBSVFSQkFDRUtBMEJCQUNFRklBb2dEVThOQkFOQUlBVkJBa1pGQkVBZ0V5QUZJQWxzSUFScUlCUnhRUUowYWlBT0lBVWdDbXBxTFFBQU9nQUNJQVZCQVdvaEJRd0JDd3NnQ2tFQ2FpRUtJQVFnQ0dvZ0ZIRWhCQXdBQ3dBRklBWWdERUVCZEdvdUFRQWhDU0FPSUE5cUlnUWdHRGNBQUVFSUlRVURRQ0FGSUFsT1JRUkFJQVFnQldvZ0dEY0FBQ0FGUVFocUlRVU1BUXNMSUJoQ2dZS0VpSkNnd0lBQmZDRVlJQXhCQVdvaERDQUpJQTlxSVE4TUFRc0FDd0FMSUExQkEzWWdEVUVCZG1wQkEyb2hDRUVBSVFVRFFDQU1JQlZHUlFSQVFRQWhDU0FHSUF4QkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FKUmtVRVFDQVRJQVZCQW5ScUlBdzZBQUlEUUNBRklBaHFJQlJ4SWdVZ0Nrc05BQXNnQ1VFQmFpRUpEQUVMQ3lBTVFRRnFJUXdNQVFzTFFYOGhDQ0FGRFFJTElCQkJBV29oQ0VFQUlRVURRQ0FGSUExR1JRUkFJQkVnRXlBRlFRSjBhaUlPTFFBQ1FRRjBhaUlFSUFRdkFRQWlDVUVCYWpzQkFDQU9JQWdnQ1dkQllITnFJZ1E2QUFNZ0RpQUpJQVIwSUExck93RUFJQVZCQVdvaEJRd0JDd3NDUUFKQUlBWXZBWUlFQkVBZ0IwRWNhaUlFSUJjZ0ZoQU5JZ2hCaUg5TERRSWdCMEVVYWlBRUlCSVFEaUFIUVF4cUlBUWdFaEFPUVFBaEJRTkFJQWRCSEdvaUJCQVBJQVZCK3dGTGNnMENJQUFnQldvaUJpQUhRUlJxSUFRUUVEb0FBQ0FHSUFkQkRHb2dCQkFRT2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVU1Bd1VnQUNBRWFpQUhRUlJxSUFkQkhHb2lCQkFRT2dBQUlBWWdCMEVNYWlBRUVCQTZBQU1nQlVFRWFpRUZEQUVMQUFzQUN5QUhRUnhxSWdRZ0Z5QVdFQTBpQ0VHSWYwc05BU0FIUVJScUlBUWdFaEFPSUFkQkRHb2dCQ0FTRUE1QkFDRUZBMEFnQjBFY2FpSUVFQThnQlVIN0FVdHlSUVJBSUFBZ0JXb2lCaUFIUVJScUlBUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVGSUFBZ0JHb2dCMEVVYWlBSFFSeHFJZ1FRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FESUFWQkJHb2hCUXdDQ3dzTEFuOERRRUc2ZnlFSUlBVkIvUUZMRFFNZ0FDQUZhaUlHSUFkQkZHb2dCMEVjYWlJSkVCRTZBQUFnQmtFQmFpRUVJQWtRRDBFRFJnUkFJQWRCREdvaENFRUNEQUlMSUFWQi9BRkxEUU1nQmlBSFFReHFJQWRCSEdvaUJCQVJPZ0FCSUFWQkFtb2hCU0FFRUE5QkEwY05BQXNnQUNBRmFpRUVJQWRCRkdvaENFRURDeUFFSUFnZ0IwRWNhaEFST2dBQUlBWnFJQUJySVFnTUFRc0Nmd05BUWJwL0lRZ2dCVUg5QVVzTkFpQUFJQVZxSWdZZ0IwRVVhaUFIUVJ4cUlna1FFRG9BQUNBR1FRRnFJUVFnQ1JBUFFRTkdCRUFnQjBFTWFpRUlRUUlNQWdzZ0JVSDhBVXNOQWlBR0lBZEJER29nQjBFY2FpSUVFQkE2QUFFZ0JVRUNhaUVGSUFRUUQwRURSdzBBQ3lBQUlBVnFJUVFnQjBFVWFpRUlRUU1MSUFRZ0NDQUhRUnhxRUJBNkFBQWdCbW9nQUdzaENBc2dDRUdJZjBzTkFRc2dDQ0VFUVFBaEJTQUJRUUJCTkJBRElRbEJBQ0VLQTBBZ0JDQUZSd1JBSUFBZ0JXb2lCaTBBQUNJQlFRdExCRUJCYkNFSURBTUZJQWtnQVVFQ2RHb2lBU0FCS0FJQVFRRnFOZ0lBSUFWQkFXb2hCVUVCSUFZdEFBQjBRUUYxSUFwcUlRb01BZ3NBQ3d0QmJDRUlJQXBGRFFBZ0NtY2lCVUVmY3lJQlFRdExEUUFnQTBFZ0lBVnJOZ0lBUVFGQkFpQUJkQ0FLYXlJRFowRWZjeUlCZENBRFJ3MEFJQUFnQkdvZ0FVRUJhaUlBT2dBQUlBa2dBRUVDZEdvaUFDQUFLQUlBUVFGcU5nSUFJQWtvQWdRaUFFRUNTU0FBUVFGeGNnMEFJQUlnQkVFQmFqWUNBQ0FMUVFGcUlRZ0xJQWRCTUdva0FDQUlDNkFGQVF4L0l3QkJFR3NpRENRQUFuOGdCRUVIVFFSQUlBeENBRGNEQ0NBTVFRaHFJZ1VnQXlBRUVBSWFRV3dnQUNBQklBSWdCVUVJRUF3aUFDQUFJQVJMR3lBQUlBQkJpWDlKR3d3QkN5QUFRUUFnQVNnQ0FFRUJhaUlOUVFGMEVBTWhEMEZVSUFNb0FBQWlCa0VQY1NJQVFRcExEUUFhSUFJZ0FFRUZhallDQUNBRElBUnFJZ0pCQkdzaEJ5QUNRUWRySVFzZ0FFRUdhaUVPUVFRaEFpQUdRUVIySVFWQklDQUFkQ0lJUVFGeUlRbEJBQ0VBUVFFaEJpQURJUVFEUUFKQUlBWkJBWEZGQkVBRFFDQUZRWDl6UVlDQWdJQjRjbWdpQmtFWVNVVUVRQ0FBUVNScUlRQWdCQ0FMVFFSL0lBUkJBMm9GSUFRZ0MydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xJQUlnQmtFZWNTSUtha0VDYWlFQ0lBWkJBWFpCQTJ3Z0FHb2dCU0FLZGtFRGNXb2lBQ0FOVHcwQkFuOGdCQ0FMU3lBQ1FRTjJJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBUWdCMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVUxJQVVnQ0VFQmEzRWlCaUFJUVFGMFFRRnJJZ29nQ1dzaUVFa0VmeUFPUVFGckJTQUZJQXB4SWdVZ0VFRUFJQVVnQ0U0YmF5RUdJQTRMSVFVZ0R5QUFRUUYwYWlBR1FRRnJJZ283QVFBZ0FFRUJhaUVBSUFJZ0JXb2hBaUFJUVFFZ0Jtc2dDaUFHUVFCS0d5QUphaUlKU2dSQUlBbEJBa2dOQVVFZ0lBbG5JZ1ZySVE1QkFTQUZRUjl6ZENFSUN5QUFJQTFQRFFBZ0NrRUFSeUVHQW44Z0JDQUxTeUFDUVFOMUlBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFJZ0JDQUhhMEVEZEdwQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xRV3dnQ1VFQlJ3MEFHa0ZRSUFBZ0RVc05BQnBCYkNBQ1FTQktEUUFhSUFFZ0FFRUJhellDQUNBRUlBSkJCMnBCQTNWcUlBTnJDeUFNUVJCcUpBQUw4Z0VCQVg4Z0FrVUVRQ0FBUWdBM0FnQWdBRUVBTmdJUUlBQkNBRGNDQ0VHNGZ3OExJQUFnQVRZQ0RDQUFJQUZCQkdvMkFoQWdBa0VFVHdSQUlBQWdBU0FDYWlJQlFRUnJJZ00yQWdnZ0FDQURLQUFBTmdJQUlBRkJBV3N0QUFBaUFRUkFJQUFnQVdkQkYyczJBZ1FnQWc4TElBQkJBRFlDQkVGL0R3c2dBQ0FCTmdJSUlBQWdBUzBBQUNJRE5nSUFBa0FDUUFKQUlBSkJBbXNPQWdFQUFnc2dBQ0FCTFFBQ1FSQjBJQU55SWdNMkFnQUxJQUFnQVMwQUFVRUlkQ0FEYWpZQ0FBc2dBU0FDYWtFQmF5MEFBQ0lCUlFSQUlBQkJBRFlDQkVGc0R3c2dBQ0FCWnlBQ1FRTjBhMEVKYWpZQ0JDQUNDMFFCQW44Z0FTQUNMd0VBSWdNZ0FTZ0NCR29pQkRZQ0JDQUFJQU5CQW5SQm9CMXFLQUlBSUFFb0FnQkJBQ0FFYTNaeE5nSUFJQUVRRHhvZ0FDQUNRUVJxTmdJRUM1OEJBUVIvUVFNaEFTQUFLQUlFSWdKQklFMEVRQ0FBS0FJSUlnRWdBQ2dDRUU4RVFDQUFJQUpCQjNFMkFnUWdBQ0FCSUFKQkEzWnJJZ0kyQWdnZ0FDQUNLQUFBTmdJQVFRQVBDeUFBS0FJTUlnTWdBVVlFUUVFQlFRSWdBa0VnU1JzUEN5QUFJQUVnQVNBRGF5QUNRUU4ySWdRZ0FTQUVheUFEU1NJQkd5SURheUlFTmdJSUlBQWdBaUFEUVFOMGF6WUNCQ0FBSUFRb0FBQTJBZ0FMSUFFTFNBRUVmeUFBS0FJRUlBQW9BZ0JCQW5ScUlnSXRBQUlnQWk4QkFDRUVJQUVnQVNnQ0JDSUZJQUl0QUFNaUFtbzJBZ1FnQUNBRUlBRW9BZ0FnQlhSQkFDQUNhM1pxTmdJQUMxSUJCSDhnQUNnQ0JDQUFLQUlBUVFKMGFpSUNMUUFDSUFJdkFRQWhCQ0FCSUFJdEFBTWlBaUFCS0FJRWFpSUZOZ0lFSUFBZ0JDQUNRUUowUWFBZGFpZ0NBQ0FCS0FJQVFRQWdCV3QyY1dvMkFnQUxDQUFnQUVHSWYwc0xHZ0FnQUFSQUlBRUVRQ0FDSUFBZ0FSRUNBQThMSUFBUUJnc0xwZ2dDRFg4QmZpTUFRUkJySWdra0FDQUpRUUEyQWd3Z0NVRUFOZ0lJQW44Q1FDQURRZWdKYWlBRElBbEJDR29nQ1VFTWFpQUJJQUlnQTBHQUFXb1FDeUlQUVloL1N3MEFRVlFnQ1NnQ0RDSUVJQUFvQWdBaUFVSC9BWEZCQVdwTERRRWFJQUJCQkdvaEN5QUFJQUZCLzRHQWVIRWdCRUVRZEVHQWdQd0hjWEkyQWdCQmZ5QUVJQVJCQUVnYlFRRnFJUUJCQUNFQklBa29BZ2doQlVFQUlRSURRQ0FBSUFKR0JFQWdCVUVEYXlFQlFRQWhBQU5BQWtCQkFDRUNJQUFnQVU0RVFBTkFJQUFnQlU0TkFpQURJQUFnQTJwQjZBbHFMUUFBUVFKMGFrRkFheUlCSUFFb0FnQWlBVUVCYWpZQ0FDQUJJQU5xSUFBNkFPZ0hJQUJCQVdvaEFBd0FDd0FGQTBBZ0FrRUVSa1VFUUNBRElBTWdBQ0FDYWlJSGFrSG9DV290QUFCQkFuUnFRVUJySWdnZ0NDZ0NBQ0lJUVFGcU5nSUFJQU1nQ0dvZ0J6b0E2QWNnQWtFQmFpRUNEQUVMQ3lBQVFRUnFJUUFNQWdzQUN3c2dCRUVCYWlFT0lBTW9BZ0FoQjBFQUlRQkJBU0VJQTBBZ0NDQU9SZzBESUE0Z0NHc2hCQ0FESUFoQkFuUnFLQUlBSVFVQ1FBSkFBa0FDUUFKQUFrQkJBU0FJZEVFQmRTSU5RUUZyRGdnQUFRUUNCQVFFQXdRTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBQUlRRURRQ0FDSUFaR0RRVWdBeUFDSUFkcWFpMEE2QWNoQ2lBTElBRkJBWFJxSWd3Z0JEb0FBU0FNSUFvNkFBQWdBa0VCYWlFQ0lBRkJBV29oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaENpQUFJUUVEUUNBQ0lBcEdEUVFnQ3lBQlFRRjBhaUlHSUFNZ0FpQUhhbW90QU9nSElndzZBQUlnQmlBRU9nQUJJQVlnRERvQUFDQUdJQVE2QUFNZ0FrRUJhaUVDSUFGQkFtb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBRVFRaDBRWUQrQTNFaEJDQUFJUUVEUUNBQ0lBWkdEUU1nQ3lBQlFRRjBhaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitOd0FBSUFKQkFXb2hBaUFCUVFScUlRRU1BQXNBQzBFQUlRSWdCVUVBSUFWQkFFb2JJUVlnQkVFSWRFR0EvZ054SVFRZ0FDRUJBMEFnQWlBR1JnMENJQXNnQVVFQmRHb2lDaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJaEUzQUFnZ0NpQVJOd0FBSUFKQkFXb2hBaUFCUVFocUlRRU1BQXNBQzBFQUlRRWdCVUVBSUFWQkFFb2JJUW9nQkVFSWRFR0EvZ054SVF3Z0FDRUVBMEFnQVNBS1JnMEJJQXNnQkVFQmRHb2hFQ0FNSUFNZ0FTQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJUkZCQUNFQ0EwQWdBaUFOVGtVRVFDQVFJQUpCQVhScUlnWWdFVGNBR0NBR0lCRTNBQkFnQmlBUk53QUlJQVlnRVRjQUFDQUNRUkJxSVFJTUFRc0xJQUZCQVdvaEFTQUVJQTFxSVFRTUFBc0FDeUFJUVFGcUlRZ2dCU0FIYWlFSElBVWdEV3dnQUdvaEFBd0FDd0FGSUFNZ0FrRUNkR29pQjBGQWF5QUJOZ0lBSUFKQkFXb2hBaUFIS0FJQUlBRnFJUUVNQVFzQUN3QUxJQThMSUFsQkVHb2tBQXZ5QWdFR2Z5TUFRU0JySWdVa0FDQUVLQUlBSVFZZ0JVRU1haUFDSUFNUURTSURRWWgvVFFSQUlBUkJCR29oQWlBQUlBRnFJZ2xCQTJzaEJFRUFJQVpCRUhaclFSOXhJUU1EUUNBRlFReHFFQThnQUNBRVQzSkZCRUFnQWlBRktBSU1JZ1lnQlNnQ0VDSUhkQ0FEZGtFQmRHb2lDQzBBQVNFS0lBQWdDQzBBQURvQUFDQUNJQVlnQnlBS2FpSUdkQ0FEZGtFQmRHb2lCeTBBQUNFSUlBVWdCaUFITFFBQmFqWUNFQ0FBSUFnNkFBRWdBRUVDYWlFQURBRUxDd05BSUFWQkRHb1FEeUVISUFVb0Fnd2hCaUFGS0FJUUlRUWdBQ0FKVHlBSGNrVUVRQ0FDSUFZZ0JIUWdBM1pCQVhScUlnWXRBQUFoQnlBRklBUWdCaTBBQVdvMkFoQWdBQ0FIT2dBQUlBQkJBV29oQUF3QkN3c0RRQ0FBSUFsUFJRUkFJQUlnQmlBRWRDQURka0VCZEdvaUJ5MEFBU0VJSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQkNBSWFpRUVEQUVMQzBGc1FXd2dBU0FGS0FJVUlBVW9BaGhIR3lBRVFTQkhHeUVEQ3lBRlFTQnFKQUFnQXd2UEZBRWpmeU1BUWRBQWF5SUZKQUJCYkNFSkFrQWdBMEVLU1EwQUFrQWdBeUFDTHdBRUlnY2dBaThBQUNJSUlBSXZBQUlpRFdwcVFRWnFJZ3hKRFFBZ0JDOEJBaUVHSUFWQlBHb2dBa0VHYWlJQ0lBZ1FEU0lKUVloL1N3MEJJQVZCS0dvZ0FpQUlhaUlDSUEwUURTSUpRWWgvU3cwQklBVkJGR29nQWlBTmFpSUNJQWNRRFNJSlFZaC9TdzBCSUFVZ0FpQUhhaUFESUF4ckVBMGlDVUdJZjBzTkFTQUVRUVJxSVFvZ0FDQUJhaUlmUVFOcklTQkJBQ0FHYTBFZmNTRUxJQVVvQWdnaEVTQUZLQUljSVJJZ0JTZ0NNQ0VUSUFVb0FrUWhGQ0FGS0FJRUlRa2dCU2dDR0NFTklBVW9BaXdoRENBRktBSkFJUVlnQlNnQ0VDRWhJQVVvQWlRaElpQUZLQUk0SVNNZ0JTZ0NUQ0VrSUFVb0FnQWhGU0FGS0FJVUlSWWdCU2dDS0NFWElBVW9BandoR0VFQklROGdBQ0FCUVFOcVFRSjJJZ1JxSWdNZ0JHb2lBaUFFYWlJWklRUWdBaUVJSUFNaEJ3TkFJQTlCQVhGRklBUWdJRTl5UlFSQUlBQWdDaUFZSUFaMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhHaUFPTFFBRElSQWdCeUFLSUJjZ0RIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0RpMEFBaUViSUE0dEFBTWhEeUFJSUFvZ0ZpQU5kQ0FMZGtFQ2RHb2lEaThCQURzQUFDQU9MUUFDSVJ3Z0RpMEFBeUVkSUFRZ0NpQVZJQWwwSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEhpQU9MUUFESVE0Z0FDQVFhaUlsSUFvZ0dDQUdJQnBxSWdaMElBdDJRUUowYWlJUUx3RUFPd0FBSUJBdEFBSWdFQzBBQXlFbUlBY2dEMm9pSnlBS0lCY2dEQ0FiYWlJYWRDQUxka0VDZEdvaUJ5OEJBRHNBQUNBSExRQUNJUXdnQnkwQUF5RVFJQWdnSFdvaUd5QUtJQllnRFNBY2FpSVBkQ0FMZGtFQ2RHb2lDQzhCQURzQUFDQUlMUUFDSVEwZ0NDMEFBeUVjSUFRZ0Rtb2lIU0FLSUJVZ0NTQWVhaUlPZENBTGRrRUNkR29pQ1M4QkFEc0FBQ0FHYWlFQVFRTWhCd0ovSUJRZ0pFa0VRQ0FBSVFaQkF3d0JDeUFBUVFkeElRWWdGQ0FBUVFOMmF5SVVLQUFBSVJoQkFBc2dDUzBBQXlFZUlBa3RBQUloQ0NBTUlCcHFJUUFnRXlBalNRUi9JQUFGSUJNZ0FFRURkbXNpRXlnQUFDRVhRUUFoQnlBQVFRZHhDeUVNSUEwZ0Qyb2hBQ0FIY2lFSlFRTWhEd0ovSUJJZ0lra0VRQ0FBSVExQkF3d0JDeUFBUVFkeElRMGdFaUFBUVFOMmF5SVNLQUFBSVJaQkFBc2dDQ0FPYWlFQUlBbHlJQkVnSVVrRWZ5QUFCU0FSSUFCQkEzWnJJaEVvQUFBaEZVRUFJUThnQUVFSGNRc2hDU0FsSUNacUlRQWdFQ0FuYWlFSElCc2dIR29oQ0NBZElCNXFJUVFnRDNKRklROE1BUXNMSUFVZ0REWUNMQ0FGSUFZMkFrQWdCU0FOTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBSWdCMGtnQUNBRFMzSU5BRUZzSVFrZ0NDQVpTdzBCSUFOQkEyc2hDUU5BSUFWQlBHb1FEMFVnQUNBSlNYRUVRQ0FBSUFvZ0JTZ0NQQ0lOSUFVb0FrQWlESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdBQ0FPTFFBRGFpSUdJQW9nRFNBTUlBNHRBQUpxSWdCMElBdDJRUUowYWlJTUx3RUFPd0FBSUFVZ0FDQU1MUUFDYWpZQ1FDQUdJQXd0QUFOcUlRQU1BUVVnQTBFQ2F5RU1BMEFnQlVFOGFoQVBJUVlnQlNnQ1BDRU5JQVVvQWtBaENTQUFJQXhMSUFaeVJRUkFJQUFnQ2lBTklBbDBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdDU0FHTFFBQ2FqWUNRQ0FBSUFZdEFBTnFJUUFNQVFzTEEwQWdBQ0FNUzBVRVFDQUFJQW9nRFNBSmRDQUxka0VDZEdvaUJpOEJBRHNBQUNBQUlBWXRBQU5xSVFBZ0NTQUdMUUFDYWlFSkRBRUxDd0pBSUFBZ0EwOE5BQ0FBSUFvZ0RTQUpkQ0FMZGlJQVFRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FKSUFNdEFBSnFJUWtNQVFzZ0NVRWZTdzBBUVNBZ0NTQUtJQUJCQW5ScUxRQUNhaUlBSUFCQklFOGJJUWtMSUFKQkEyc2hEQU5BSUFWQktHb1FEMFVnQnlBTVNYRUVRQ0FISUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lBSFFnQzNaQkFuUnFJZzB2QVFBN0FBQWdCeUFOTFFBRGFpSURJQW9nQmlBQUlBMHRBQUpxSWdCMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FDQUdMUUFDYWpZQ0xDQURJQVl0QUFOcUlRY01BUVVnQWtFQ2F5RUdBMEFnQlVFb2FoQVBJUU1nQlNnQ0tDRU1JQVVvQWl3aEFDQUdJQWRKSUFOeVJRUkFJQWNnQ2lBTUlBQjBJQXQyUVFKMGFpSURMd0VBT3dBQUlBVWdBQ0FETFFBQ2FqWUNMQ0FISUFNdEFBTnFJUWNNQVFzTEEwQWdCaUFIU1VVRVFDQUhJQW9nRENBQWRDQUxka0VDZEdvaUF5OEJBRHNBQUNBSElBTXRBQU5xSVFjZ0FDQURMUUFDYWlFQURBRUxDd0pBSUFJZ0IwME5BQ0FISUFvZ0RDQUFkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FBSUFNdEFBSnFJUUFNQVFzZ0FFRWZTdzBBUVNBZ0FDQUtJQUpCQW5ScUxRQUNhaUlBSUFCQklFOGJJUUFMSUJsQkEyc2hEQU5BSUFWQkZHb1FEMFVnQ0NBTVNYRUVRQ0FJSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lBblFnQzNaQkFuUnFJZzB2QVFBN0FBQWdDQ0FOTFFBRGFpSURJQW9nQmlBQ0lBMHRBQUpxSWdKMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FpQUdMUUFDYWpZQ0dDQURJQVl0QUFOcUlRZ01BUVVnR1VFQ2F5RURBMEFnQlVFVWFoQVBJUUlnQlNnQ0ZDRUdJQVVvQWhnaEJ5QURJQWhKSUFKeVJRUkFJQWdnQ2lBR0lBZDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBVWdCeUFDTFFBQ2FqWUNHQ0FJSUFJdEFBTnFJUWdNQVFzTEEwQWdBeUFJU1VVRVFDQUlJQW9nQmlBSGRDQUxka0VDZEdvaUFpOEJBRHNBQUNBSUlBSXRBQU5xSVFnZ0J5QUNMUUFDYWlFSERBRUxDd0pBSUFnZ0dVOE5BQ0FJSUFvZ0JpQUhkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FISUFNdEFBSnFJUWNNQVFzZ0IwRWZTdzBBUVNBZ0J5QUtJQUpCQW5ScUxRQUNhaUlDSUFKQklFOGJJUWNMQTBBZ0JSQVBSU0FFSUNCSmNRUkFJQVFnQ2lBRktBSUFJZ1lnQlNnQ0JDSUNkQ0FMZGtFQ2RHb2lEQzhCQURzQUFDQUVJQXd0QUFOcUlnTWdDaUFHSUFJZ0RDMEFBbW9pQW5RZ0MzWkJBblJxSWdRdkFRQTdBQUFnQlNBQ0lBUXRBQUpxTmdJRUlBTWdCQzBBQTJvaEJBd0JCU0FmUVFKcklRTURRQ0FGRUE4aEFpQUZLQUlBSVFZZ0JTZ0NCQ0VJSUFNZ0JFa2dBbkpGQkVBZ0JDQUtJQVlnQ0hRZ0MzWkJBblJxSWdJdkFRQTdBQUFnQlNBSUlBSXRBQUpxTmdJRUlBUWdBaTBBQTJvaEJBd0JDd3NEUUNBRElBUkpSUVJBSUFRZ0NpQUdJQWgwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVFnQWkwQUEyb2hCQ0FJSUFJdEFBSnFJUWdNQVFzTEFrQWdCQ0FmVHcwQUlBUWdDaUFHSUFoMElBdDJJZ0pCQW5ScUlnTXRBQUE2QUFBZ0F5MEFBMEVCUmdSQUlBZ2dBeTBBQW1vaENBd0JDeUFJUVI5TERRQkJJQ0FJSUFvZ0FrRUNkR290QUFKcUlnSWdBa0VnVHhzaENBdEJiRUZzUVd4QmJFRnNRV3hCYkVGc0lBRWdDRUVnUnhzZ0JTZ0NDQ0FGS0FJTVJ4c2dCMEVnUnhzZ0JTZ0NIQ0FGS0FJZ1J4c2dBRUVnUnhzZ0JTZ0NNQ0FGS0FJMFJ4c2dDVUVnUnhzZ0JTZ0NSQ0FGS0FKSVJ4c2hDUXdKQ3dBTEFBc0FDd0FMQUFzQUN3QUxBQXRCYkNFSkN5QUZRZEFBYWlRQUlBa0w3QkFCSG44akFFSFFBR3NpQlNRQVFXd2hDUUpBSUFOQkNra05BQUpBSUFNZ0FpOEFCQ0lHSUFJdkFBQWlCeUFDTHdBQ0lnaHFha0VHYWlJT1NRMEFJQVF2QVFJaER5QUZRVHhxSUFKQkJtb2lBaUFIRUEwaUNVR0lmMHNOQVNBRlFTaHFJQUlnQjJvaUFpQUlFQTBpQ1VHSWYwc05BU0FGUVJScUlBSWdDR29pQWlBR0VBMGlDVUdJZjBzTkFTQUZJQUlnQm1vZ0F5QU9heEFOSWdsQmlIOUxEUUVnQkVFRWFpRUtJQUFnQVdvaUhFRURheUVkUVFBZ0QydEJIM0VoQ3lBRktBSUlJUkVnQlNnQ0hDRVNJQVVvQWpBaEV5QUZLQUpFSVJRZ0JTZ0NCQ0VKSUFVb0FoZ2hCaUFGS0FJc0lRY2dCU2dDUUNFSUlBVW9BaEFoSGlBRktBSWtJUjhnQlNnQ09DRWdJQVVvQWt3aElTQUZLQUlBSVJVZ0JTZ0NGQ0VXSUFVb0FpZ2hGeUFGS0FJOElSaEJBU0VOSUFBZ0FVRURha0VDZGlJQ2FpSU9JQUpxSWc4Z0Ftb2lHU0VFSUE4aEFpQU9JUU1EUUNBTlJTQUVJQjFQY2tVRVFDQUtJQmdnQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUFnQ2lBWElBZDBJQXQyUVFGMGFpSU1MUUFCSVJBZ0F5QU1MUUFBT2dBQUlBb2dGaUFHZENBTGRrRUJkR29pREMwQUFTRWFJQUlnREMwQUFEb0FBQ0FLSUJVZ0NYUWdDM1pCQVhScUlnd3RBQUVoR3lBRUlBd3RBQUE2QUFBZ0NpQVlJQWdnRFdvaUNIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFFZ0NpQVhJQWNnRUdvaUIzUWdDM1pCQVhScUlnd3RBQUVoRUNBRElBd3RBQUE2QUFFZ0NpQVdJQVlnR21vaURIUWdDM1pCQVhScUlnWXRBQUVoR2lBQ0lBWXRBQUE2QUFFZ0NpQVZJQWtnRzJvaUczUWdDM1pCQVhScUlna3RBQUVoSWlBRUlBa3RBQUE2QUFFZ0NDQU5haUVHUVFNaENRSi9JQlFnSVVrRVFFRURJUTBnQmd3QkN5QVVJQVpCQTNackloUW9BQUFoR0VFQUlRMGdCa0VIY1FzaENDQUhJQkJxSVFZZ0V5QWdTUVIvSUFZRklCTWdCa0VEZG1zaUV5Z0FBQ0VYUVFBaENTQUdRUWR4Q3lFSElBd2dHbW9oRENBSklBMXlJUkJCQXlFTkFuOGdFaUFmU1FSQUlBd2hCa0VEREFFTElBeEJCM0VoQmlBU0lBeEJBM1pySWhJb0FBQWhGa0VBQ3lBYklDSnFJUXdnRUhJaEVDQVJJQjVKQkg4Z0RBVWdFU0FNUVFOMmF5SVJLQUFBSVJWQkFDRU5JQXhCQjNFTElRa2dCRUVDYWlFRUlBSkJBbW9oQWlBRFFRSnFJUU1nQUVFQ2FpRUFJQTBnRUhKRklRME1BUXNMSUFVZ0J6WUNMQ0FGSUFnMkFrQWdCU0FHTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBQWdEa3NnQXlBUFMzSU5BRUZzSVFrZ0FpQVpTdzBCSUE1QkEyc2hDUU5BSUFWQlBHb1FEeUFBSUFsUGNrVUVRQ0FLSUFVb0Fqd2lCaUFGS0FKQUlnZDBJQXQyUVFGMGFpSUlMUUFCSVF3Z0FDQUlMUUFBT2dBQUlBb2dCaUFISUF4cUlnWjBJQXQyUVFGMGFpSUhMUUFBSVFnZ0JTQUdJQWN0QUFGcU5nSkFJQUFnQ0RvQUFTQUFRUUpxSVFBTUFRc0xBMEFnQlVFOGFoQVBJUWNnQlNnQ1BDRUdJQVVvQWtBaENTQUFJQTVQSUFkeVJRUkFJQW9nQmlBSmRDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0NTQUdMUUFCYWpZQ1FDQUFJQWM2QUFBZ0FFRUJhaUVBREFFTEN3TkFJQUFnRGs5RkJFQWdDaUFHSUFsMElBdDJRUUYwYWlJSExRQUJJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdDV29oQ1F3QkN3c2dEMEVEYXlFQUEwQWdCVUVvYWhBUElBQWdBMDF5UlFSQUlBb2dCU2dDS0NJR0lBVW9BaXdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFESUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWl3Z0F5QUlPZ0FCSUFOQkFtb2hBd3dCQ3dzRFFDQUZRU2hxRUE4aEJ5QUZLQUlvSVFZZ0JTZ0NMQ0VBSUFNZ0QwOGdCM0pGQkVBZ0NpQUdJQUIwSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FBSUFZdEFBRnFOZ0lzSUFNZ0J6b0FBQ0FEUVFGcUlRTU1BUXNMQTBBZ0F5QVBUMFVFUUNBS0lBWWdBSFFnQzNaQkFYUnFJZ2N0QUFFaENDQURJQWN0QUFBNkFBQWdBMEVCYWlFRElBQWdDR29oQUF3QkN3c2dHVUVEYXlFREEwQWdCVUVVYWhBUElBSWdBMDl5UlFSQUlBb2dCU2dDRkNJR0lBVW9BaGdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFDSUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWhnZ0FpQUlPZ0FCSUFKQkFtb2hBZ3dCQ3dzRFFDQUZRUlJxRUE4aEJ5QUZLQUlVSVFZZ0JTZ0NHQ0VESUFJZ0dVOGdCM0pGQkVBZ0NpQUdJQU4wSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FESUFZdEFBRnFOZ0lZSUFJZ0J6b0FBQ0FDUVFGcUlRSU1BUXNMQTBBZ0FpQVpUMFVFUUNBS0lBWWdBM1FnQzNaQkFYUnFJZ2N0QUFFaENDQUNJQWN0QUFBNkFBQWdBa0VCYWlFQ0lBTWdDR29oQXd3QkN3c0RRQ0FGRUE4Z0JDQWRUM0pGQkVBZ0NpQUZLQUlBSWdJZ0JTZ0NCQ0lHZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FLSUFJZ0JpQUlhaUlDZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQWlBR0xRQUJhallDQkNBRUlBYzZBQUVnQkVFQ2FpRUVEQUVMQ3dOQUlBVVFEeUVISUFVb0FnQWhCaUFGS0FJRUlRSWdCQ0FjVHlBSGNrVUVRQ0FLSUFZZ0FuUWdDM1pCQVhScUlnWXRBQUFoQnlBRklBSWdCaTBBQVdvMkFnUWdCQ0FIT2dBQUlBUkJBV29oQkF3QkN3c0RRQ0FFSUJ4UFJRUkFJQW9nQmlBQ2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBRVFRRnFJUVFnQWlBSWFpRUNEQUVMQzBGc1FXeEJiRUZzUVd4QmJFRnNRV3dnQVNBQ1FTQkhHeUFGS0FJSUlBVW9BZ3hIR3lBRFFTQkhHeUFGS0FJY0lBVW9BaUJIR3lBQVFTQkhHeUFGS0FJd0lBVW9BalJIR3lBSlFTQkhHeUFGS0FKRUlBVW9Ba2hIR3lFSkRBRUxRV3doQ1FzZ0JVSFFBR29rQUNBSkMxZ0JBMzhDUUNBQUtBS1E2d0VpQVVVTkFDQUJLQUlBSUFGQnROVUJhaWdDQUNJQ0lBRkJ1TlVCYWlnQ0FDSURFQk1nQWdSQUlBTWdBU0FDRVFJQURBRUxJQUVRQmdzZ0FFRUFOZ0tnNndFZ0FFSUFOd09RNndFTDZRTUNCSDhDZmlBQVFRQkJLQkFESVFRZ0FrRUJRUVVnQXhzaUFFa0VRQ0FBRHdzZ0FVVUVRRUYvRHd0QkFTRUdBa0FDUUNBRFFRRkdEUUFnQXlFR0lBRW9BQUFpQlVHbzZyNXBSZzBBUVhZaEF5QUZRWEJ4UWREVXRNSUJSdzBCUVFnaEF5QUNRUWhKRFFFZ0FUVUFCQ0VJSUFSQkFUWUNGQ0FFSUFnM0F3QkJBQThMSUFFZ0FpQUdFQm9pQXlBQ1N3MEFJQVFnQXpZQ0dFRnlJUU1nQUNBQmFpSUZRUUZyTFFBQUlnSkJDSEVOQUNBQ1FTQnhJZ1pGQkVCQmNDRURJQVV0QUFBaUJVR25BVXNOQVNBRlFRZHhyVUlCSUFWQkEzWkJDbXF0aGlJSVFnT0lmaUFJZkNFSklBQkJBV29oQUFzZ0FrRUdkaUVGSUFKQkFuWkJBQ0VEQWtBQ1FBSkFBa0FnQWtFRGNVRUJhdzREQUFFQ0F3c2dBQ0FCYWkwQUFDRURJQUJCQVdvaEFBd0NDeUFBSUFGcUx3QUFJUU1nQUVFQ2FpRUFEQUVMSUFBZ0FXb29BQUFoQXlBQVFRUnFJUUFMUVFGeElRSUNmZ0pBQWtBQ1FBSkFJQVZCQVdzT0F3RUNBd0FMUW44Z0JrVU5BeG9nQUNBQmFqRUFBQXdEQ3lBQUlBRnFNd0FBUW9BQ2ZBd0NDeUFBSUFGcU5RQUFEQUVMSUFBZ0FXb3BBQUFMSVFnZ0JDQUNOZ0lnSUFRZ0F6WUNIQ0FFSUFnM0F3QkJBQ0VESUFSQkFEWUNGQ0FFSUFnZ0NTQUdHeUlJTndNSUlBUkNnSUFJSUFnZ0NFS0FnQWhhR3o0Q0VBc2dBd3RmQVFGL1FiaC9JUU1nQVVFQlFRVWdBaHNpQWs4RWZ5QUFJQUpxUVFGckxRQUFJZ0JCQTNGQkFuUkJvQjVxS0FJQUlBSnFJQUJCQkhaQkRIRkJzQjVxS0FJQWFpQUFRU0J4SWdGRmFpQUJRUVYySUFCQndBQkpjV29GUWJoL0N3c01BQ0FBSUFFZ0FrRUFFQmtMbHdNQ0JYOENmaU1BUVVCcUlnUWtBQUpBQTBBZ0FVRUZUd1JBQWtBZ0FDZ0FBRUZ3Y1VIUTFMVENBVVlFUUVKK0lRY2dBVUVJU1EwRUlBQW9BQVFpQWtGM1N3MEVJQUpCQ0dvaUF5QUJTdzBFSUFKQmdYOUpEUUVNQkFzZ0JFRVlhaUFBSUFFUUd5RUNRbjRnQkNrREdFSUFJQVFvQWl4QkFVY2JJQUliSWdkQ2ZWWU5BeUFISUFoOElnZ2dCMVJDZmlFSERRTUNRQUpBSUFGQkNFa05BQ0FBS0FBQVFYQnhRZERVdE1JQlJ3MEFJQUFvQUFRaUFrRjNTdzBGUWJoL0lBSkJDR29pQWlBQklBSkpHeUVEREFFTElBUkJHR29nQUNBQkVCc2lBa0dJZjBzRVFDQUNJUU1NQVF0QnVIOGhBeUFDRFFBZ0FTQUVLQUl3SWdKcklRVWdBQ0FDYWlFR0EwQWdCaUFGSUFSQkRHb1FIU0lEUVloL1N3MEJJQU5CQTJvaUFpQUZTd1JBUWJoL0lRTU1BZ3NnQlNBQ2F5RUZJQUlnQm1vaEJpQUVLQUlRUlEwQUN5QUVLQUk0Qkg5QnVIOGhBeUFGUVFSSkRRRWdCa0VFYWdVZ0Jnc2dBR3NoQXdzZ0EwR0lmMHNOQXdzZ0FTQURheUVCSUFBZ0Eyb2hBQXdCQ3d0Q2ZpQUlJQUViSVFjTElBUkJRR3NrQUNBSEMyUUJBWDlCdUg4aEF3SkFJQUZCQTBrTkFDQUFMUUFDSVFFZ0FpQUFMd0FBSWdCQkFYRTJBZ1FnQWlBQVFRRjJRUU54SWdNMkFnQWdBaUFBSUFGQkVIUnlRUU4ySWdBMkFnZ0NRQUpBSUFOQkFXc09Bd0lCQUFFTFFXd1BDeUFBSVFNTElBTUxSQUVDZnlBQklBSW9BZ1FpQXlBQktBSUVhaUlFTmdJRUlBQWdBMEVDZEVHZ0hXb29BZ0FnQVNnQ0FFRUFJQVJyZG5FMkFnQWdBUkFQR2lBQUlBSkJDR28yQWdRTHpnRUJCbjlCdW44aENnSkFJQUlvQWdRaUNDQUNLQUlBSWdscUlnMGdBU0FBYTBzTkFFRnNJUW9nQ1NBRUlBTW9BZ0FpQzJ0TERRQWdBQ0FKYWlJRUlBSW9BZ2dpREdzaEFpQUFJQUZCSUdzaUFDQUxJQWxCQUJBZ0lBTWdDU0FMYWpZQ0FBSkFBa0FnQkNBRmF5QU1Ud1JBSUFJaEJRd0JDeUFNSUFRZ0JtdExEUUlnQnlBSElBSWdCV3NpQW1vaUFTQUlhazhFUUNBRUlBRWdDQkFLR2d3Q0N5QUNJQWhxSVFnZ0JDQUJRUUFnQW1zUUNpQUNheUVFQ3lBRUlBQWdCU0FJUVFFUUlBc2dEU0VLQ3lBS0M4Y0VBUUovSUFBZ0Eyb2hCZ0pBSUFOQkIwd0VRQU5BSUFBZ0JrOE5BaUFBSUFJdEFBQTZBQUFnQUVFQmFpRUFJQUpCQVdvaEFnd0FDd0FMSUFSQkFVWUVRQUpBSUFBZ0Ftc2lCVUVIVFFSQUlBQWdBaTBBQURvQUFDQUFJQUl0QUFFNkFBRWdBQ0FDTFFBQ09nQUNJQUFnQWkwQUF6b0FBeUFBSUFJZ0JVRUNkQ0lGUWNBZWFpZ0NBR29pQWlnQUFEWUFCQ0FDSUFWQjRCNXFLQUlBYXlFQ0RBRUxJQUFnQWlrQUFEY0FBQXNnQWtFSWFpRUNJQUJCQ0dvaEFBc2dBU0FHVHdSQUlBQWdBMm9oQVNBRVFRRkhJQUFnQW10QkQwcHlSUVJBQTBBZ0FDQUNLUUFBTndBQUlBSkJDR29oQWlBQVFRaHFJZ0FnQVVrTkFBd0RDd0FMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0EwRVJTUTBCSUFCQkVHb2hBQU5BSUFBZ0Fpa0FFRGNBQUNBQUlBSXBBQmczQUFnZ0FDQUNLUUFnTndBUUlBQWdBaWtBS0RjQUdDQUNRU0JxSVFJZ0FFRWdhaUlBSUFGSkRRQUxEQUVMQWtBZ0FDQUJTd1JBSUFBaEFRd0JDeUFCSUFCcklRVUNRQ0FFUVFGSElBQWdBbXRCRDBweVJRUkFJQUloQXdOQUlBQWdBeWtBQURjQUFDQURRUWhxSVFNZ0FFRUlhaUlBSUFGSkRRQUxEQUVMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0JVRVJTQTBBSUFCQkVHb2hBQ0FDSVFNRFFDQUFJQU1wQUJBM0FBQWdBQ0FES1FBWU53QUlJQUFnQXlrQUlEY0FFQ0FBSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUJCSUdvaUFDQUJTUTBBQ3dzZ0FpQUZhaUVDQ3dOQUlBRWdCazhOQVNBQklBSXRBQUE2QUFBZ0FVRUJhaUVCSUFKQkFXb2hBZ3dBQ3dBTEM2NEhBZ1YvQVg0akFFR0FBV3NpRVNRQUlCRWdBellDZkVGL0lROENRQUpBQWtBQ1FBSkFJQUlPQkFFQUF3SUVDeUFHUlFSQVFiaC9JUThNQkF0QmJDRVBJQVV0QUFBaUFpQURTdzBESUFnZ0FrRUNkQ0lDYWlnQ0FDRURJQUlnQjJvb0FnQWhBaUFBUVFBNkFBc2dBRUlBTndJQUlBQWdBallDRENBQUlBTTZBQW9nQUVFQU93RUlJQUVnQURZQ0FFRUJJUThNQXdzZ0FTQUpOZ0lBUVFBaER3d0NDeUFLUlFSQVFXd2hEd3dDQzBFQUlROGdDMFVnREVFWlNISU5BVUVJSUFSMFFRaHFJUUJCQUNFREEwQWdBQ0FEVFEwQ0lBTkJRR3NoQXd3QUN3QUxRV3doRHlBUklCRkIvQUJxSUJGQitBQnFJQVVnQmhBTUlnTkJpSDlMRFFBZ0VTZ0NlQ0lDSUFSTERRQWdFU2dDZkVFQmFpRUpJQUJCQ0dvaEMwR0FnQUlnQW5SQkVIVWhCVUVCSVJCQkFTQUNkQ0lQUVFGcklnb2hFZ05BSUFrZ0RrY0VRQUpBSUJFZ0RrRUJkQ0lFYWk4QkFDSU1RZi8vQTBZRVFDQUxJQkpCQTNScUlBNDJBZ1FnRWtFQmF5RVNRUUVoREF3QkN5QVFRUUFnQlNBTXdVb2JJUkFMSUFRZ0RXb2dERHNCQUNBT1FRRnFJUTRNQVFzTElBQWdBallDQkNBQUlCQTJBZ0FDUUNBS0lCSkdCRUFnRFVIcUFHb2hCa0VBSVJCQkFDRU1BMEFnQ1NBUVJnUkFJQTlCQTNZZ0QwRUJkbXBCQTJvaUJVRUJkQ0VFUVFBaERFRUFJUklEUUVFQUlRNGdEeUFTVFEwRUEwQWdEa0VDUndSQUlBc2dCU0FPYkNBTWFpQUtjVUVEZEdvZ0JpQU9JQkpxYWkwQUFEWUNCQ0FPUVFGcUlRNE1BUXNMSUJKQkFtb2hFaUFFSUF4cUlBcHhJUXdNQUFzQUJTQVJJQkJCQVhScUxnRUFJUVVnQmlBTWFpSUVJQk0zQUFCQkNDRU9BMEFnQlNBT1NnUkFJQVFnRG1vZ0V6Y0FBQ0FPUVFocUlRNE1BUXNMSUJOQ2dZS0VpSkNnd0lBQmZDRVRJQkJCQVdvaEVDQUZJQXhxSVF3TUFRc0FDd0FMSUE5QkEzWWdEMEVCZG1wQkEyb2hCVUVBSVJCQkFDRU9BMEFnQ1NBUVJnMEJRUUFoRENBUklCQkJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBTVJ3UkFJQXNnRGtFRGRHb2dFRFlDQkFOQUlBVWdEbW9nQ25FaURpQVNTdzBBQ3lBTVFRRnFJUXdNQVFzTElCQkJBV29oRUF3QUN3QUxJQUpCQVdvaEJVRUFJUXdEUUNBTUlBOUhCRUFnRFNBTElBeEJBM1JxSWdrb0FnUWlCRUVCZEdvaUFpQUNMd0VBSWdaQkFXbzdBUUFnQ1NBRklBWm5RV0J6YWlJQ09nQURJQWtnQmlBQ2RDQVBhenNCQUNBSklBZ2dCRUVDZENJQ2FpZ0NBRG9BQWlBSklBSWdCMm9vQWdBMkFnUWdERUVCYWlFTURBRUxDeUFCSUFBMkFnQWdBeUVQQ3lBUlFZQUJhaVFBSUE4TDdWb0NPMzhHZmlNQVFlQUJheUlFSkFBQ1FFR3c3QWtRQlNJRlJRUkFRVUFoQnd3QkN5QUZRZ0EzQXZUcUFTQUZRUUEyQXNUckFTQUZRUUEyQXJUckFTQUZRZ0EzQXB6ckFTQUZRUUEyQXJqcEFTQUZRUUEyQXF6c0NTQUZRZ0EzQXRUckFTQUZRZ0EzQXF6ckFTQUZRZ0EzQTRqckFTQUZRZ0EzQXVUcUFTQUZRZ0EzQXVUckFTQUZRWUdBZ01BQU5nSzg2d0VnQlVJQU53S2s2d0VnQlVIODZnRnFRUUEyQWdBZ0JVR1E2d0ZxUWdBM0F3QWdCUkFZSUFWQnJOVUJhaUVVSUFWQitPc0JhaUVjSUFWQnNPb0JhaUVpSUFWQm9EQnFJU29nQlVHWUlHb2hLeUFGUWFqUUFHb2hIaUFGUVJCcUlTd2dCVUVJYWlFb0lBVkJCR29oTFNBRlFjRHBBV29oS1NBRlFZanJBV29nQkVHVUFXb2hMeUFFUVl3QmFpRXdJQVJCaEFGcUlURWdCRUhjQUdvaE1pQUVRZFFBYWlFeklBUkJ6QUJxSVRRZ0FDRWRBa0FDUUFKQUFrQUNRQU5BUVFGQkJTQUZLQUxrNmdFYklRWUNRQU5BSUFNZ0Jra05BU0FDS0FBQVFYQnhRZERVdE1JQlJnUkFRYmgvSVFjZ0EwRUlTUTBJSUFJb0FBUWlEa0YzU3dSQVFYSWhCd3dKQ3lBRElBNUJDR29pQ1VrTkNDQU9RWUIvU3dSQUlBa2hCd3dKQ3lBRElBbHJJUU1nQWlBSmFpRUNEQUVMQ3lBRlFnQTNBcXpwQVNBRlFnQTNBK2pwQVNBRlFRQTJBcGpyQVNBRlFnQTNBNERxQVNBRlFnTTNBL2pwQVNBRlFiVHBBV3BDQURjQ0FDQUZRZkRwQVdwQ0FEY0RBQ0FGUWFqUUFHb2lDVUdNZ0lEZ0FEWUNBQ0FGUWF6UUFXcEI0QklwQWdBM0FnQWdCVUcwMEFGcVFlZ1NLQUlBTmdJQUlBVWdCVUVRYWpZQ0FDQUZJQVZCb0RCcU5nSUVJQVVnQlVHWUlHbzJBZ2dnQlNBSk5nSU1JQVZCQVVFRklBVW9BdVRxQVJzMkFyenBBUUpBSUFGRkRRQWdCU2dDck9rQklna2dIVVlOQUNBRklBazJBcmpwQVNBRklCMDJBcXpwQVNBRktBS3c2UUVoRGlBRklCMDJBckRwQVNBRklCMGdEaUFKYTJvMkFyVHBBUXRCdUg4aENTQURRUVZCQ1NBRktBTGs2Z0VpQmh0SkRRVWdBa0VCUVFVZ0Joc2dCaEFhSWc1QmlIOUxCRUFnRGlFSkRBVUxJQU1nRGtFRGFra05CU0FwSUFJZ0RpQUdFQmtpQmtHSWYwc0VRQ0FHSVFrTUJRc2dCZzBGQWtBQ1FDQUZLQUtvNndGQkFVY05BQ0FGS0FLazZ3RWlDVVVOQUNBRktBS1U2d0ZGRFFBZ0NTZ0NCRUVCYXlJSElBVW9BdHpwQVNJS3JVS0hsYSt2bUxiZW01NS9ma0xKejlteThlVzY2aWVGUWhlSlFzL1cwNzdTeDZ2WlFuNUMrZlBkOFpuMm1hc1dmQ0kvUWlHSUlEK0ZRcy9XMDc3U3g2dlpRbjRpUDBJZGlDQS9oVUw1ODkzeG1mYVpxeForSWo5Q0lJZ2dQNFduY1NFR0lBa29BZ0FoRlFOQVFRQWhDQUpBSUJVZ0JrRUNkR29vQWdBaUNVVU5BQ0FKS0FJSVFRaEpEUUFnQ1NnQ0JDSVNLQUFBUWJmSXd1RitSdzBBSUJJb0FBUWhDQXNnQ0NBS1J3UkFJQVlnQjNGQkFXb2hCaUFJRFFFTEN5QUpSUTBBSUFVUUdDQUZRWDgyQXFEckFTQUZJQWsyQXBUckFTQUZJQVVvQXR6cEFTSUlOZ0tZNndFTUFRc2dCU2dDM09rQklRZ0xBa0FnQ0VVTkFDQUZLQUtZNndFZ0NFWU5BRUZnSVFrTUJnc0NRQ0FGS0FMZzZRRUVRQ0FGSUFVb0F1anFBU0lKUlRZQzdPb0JJQWtOQVNBRlF2bnEwTkRueWFIazRRQTNBNmpxQVNBRlFnQTNBNkRxQVNBRlFzL1cwNzdTeDZ2WlFqY0RtT29CSUFWQzF1dUM3dXI5aWZYZ0FEY0RrT29CSUFWQ0FEY0RpT29CSUNKQkFFRW9FQU1hREFFTElBVkJBRFlDN09vQkN5QUJJQjFxSVNVZ0JTQUZLUVBvNlFFZ0RxMThOd1BvNlFFZ0F5QU9heUVESUFJZ0Rtb2hBaUFkSVE0RFFDQUNJQU1nQkVFc2FoQWRJaFZCaUg5TEJFQWdGU0VKREFZTElBTkJBMnNpTlNBVlNRMEVJQUpCQTJvaEcwRnNJUWtDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQUVLQUlzRGdNQ0FRQVZDeUFWUWYvL0Iwc05FeUFWUVFOSkRSSWdCU2tEeU9rQklUOENRQUpBSUJzdEFBQWlDVUVEY1NJYVFRRnJEZ01HQVFBSEN5QUZLQUtBNmdFTkFFRmlJUWtNRlFzZ0ZVRUZTUTBTSUJzb0FBQWhBd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRWlDVUVDYXc0Q0FRSUFDeUFKUVFCSElRY2dBMEVFZGtIL0IzRWhDMEVESVFZZ0EwRU9ka0gvQjNFTUFndEJCQ0VHSUFOQkJIWkIvLzhBY1NFTFFRRWhCeUFEUVJKMkRBRUxJQU5CQkhaQi8vOFBjU0lMUVlDQUNFc05FMEVCSVFkQkJTRUdJQUl0QUFkQkNuUWdBMEVXZG5JTElnZ2dCbW9pQ1NBVlN3MFNBa0FnQzBHQkJra05BQ0FGS0FLYzZ3RkZEUUJCQUNFREEwQWdBMEdEZ0FGTERRRWdBMEZBYXlFRERBQUxBQXNnQmlBYmFpRVBJQnBCQTBjTkJpQUZLQUlNSWdJdEFBRkJDSFFoQXlBSERRY2dBMFVOQ0NBRVFmQUFhaUFQSUFnUURTSURRWWgvU3cwSklBSkJCR29oQmlBTElCeHFJaEpCQTJzaENrRUFJQUl2QVFKclFSOXhJUWNnSENFREEwQWdCRUh3QUdvUUQwVWdBeUFLU1hFRVFDQURJQVlnQkNnQ2NDSUlJQVFvQW5RaUQzUWdCM1pCQW5ScUlnSXZBUUE3QUFBZ0F5QUNMUUFEYWlJRElBWWdDQ0FQSUFJdEFBSnFJZ2gwSUFkMlFRSjBhaUlDTHdFQU93QUFJQVFnQ0NBQ0xRQUNhallDZENBRElBSXRBQU5xSVFNTUFRVWdFa0VDYXlFSUEwQWdCRUh3QUdvUUR5RVBJQVFvQW5BaENpQUVLQUowSVFJZ0F5QUlTeUFQY2tVRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUNpOEJBRHNBQUNBRUlBSWdDaTBBQW1vMkFuUWdBeUFLTFFBRGFpRUREQUVMQ3dOQUlBTWdDRTBFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pRHk4QkFEc0FBQ0FESUE4dEFBTnFJUU1nQWlBUExRQUNhaUVDREFFTEN3SkFJQU1nRWs4TkFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUF5MEFBRG9BQUNBRExRQURRUUZHQkVBZ0FpQURMUUFDYWlFQ0RBRUxJQUpCSDBzTkFFRWdJQUlnQXkwQUFtb2lBaUFDUVNCUEd5RUNDMEZzUVd3Z0N5QUVLQUo0SUFRb0FueEhHeUFDUVNCSEd5RUREQXNMQUFzQUN5QUVLQUkwSWdJZ0pTQU9hMHNOQ2lBT1JRUkFRUUFoQ1NBQ0RRSU1EZ3NnRGlBYkxRQUFJQUlRQXhvZ0FpRUpEQXdMSUJVZ0pTQU9hMHNOQ1NBT0RRRkJBQ0VKSUJWRkRRd0xRYlovSVFrTUVRc2dEaUFiSUJVUUFob2dGU0VKREFvTElCd2dHd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRkJBV3NPQXdFQUFnQUxJQWxCQTNZaEEwRUJEQUlMSUJzdkFBQkJCSFloQTBFQ0RBRUxJQlZCQkVrTkRpQUNMd0FESUFJdEFBVkJFSFJ5SWdKQmo0Q0FBVXNORGlBQ1FRUjJJUU5CQXdzaUFtb3RBQUFnQTBFZ2FoQURJUWtnQlNBRE5nS0E2d0VnQlNBSk5nTHc2Z0VnQWtFQmFpRUpEQVVMSUJVQ2Z3SkFBa0FDUUNBSlFRSjJRUU54UVFGckRnTUJBQUlBQ3lBSlFRTjJJUU5CQVF3Q0N5QWJMd0FBUVFSMklRTkJBZ3dCQ3lBQ0x3QURJQUl0QUFWQkVIUnlRUVIySVFOQkF3c2lBaUFEYWlJSlFTQnFTUVJBSUFrZ0ZVc05EU0FjSUFJZ0cyb2dBeEFDSVFJZ0JTQUROZ0tBNndFZ0JTQUNOZ0x3NmdFZ0FpQURhaUlDUWdBM0FCZ2dBa0lBTndBUUlBSkNBRGNBQ0NBQ1FnQTNBQUFNQlFzZ0JTQUROZ0tBNndFZ0JTQUNJQnRxTmdMdzZnRU1CQXNnQjBVRVFDQWVJQThnQ0NBVUVCUWlBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRlNFRERBTUxJQXRGSUFoRmNnMExJQXRCQ0hZaUF5QUlJQXRKQkg4Z0NFRUVkQ0FMYmdWQkR3dEJHR3dpQWtHTUNHb29BZ0JzSUFKQmlBaHFLQUlBYWlJR1FRTjJJQVpxSUFKQmdBaHFLQUlBSUFKQmhBaHFLQUlBSUFOc2Fra0VRQ01BUVJCckloQWtBQ0FlS0FJQUlRTWdGRUh3QkdwQkFFSHNBQkFESVFaQlZDRUNBa0FnQTBIL0FYRWlERUVNU3cwQUFrQWdGRUhjQ1dvZ0JpQVFRUWhxSUJCQkRHb2dEeUFJSUJSQjNBdHFJaGNRQ3lJU1FZaC9TdzBBSUJBb0Fnd2lCaUFNU3cwQklCUkJxQVZxSVEwZ0ZFR2tCV29oTmlBZVFRUnFJUkVnQTBHQWdJQjRjU0UzSUFaQkFXb2lFeUVDSUFZaEF3TkFJQUlpQjBFQmF5RUNJQU1pQ2tFQmF5RURJQlFnQ2tFQ2RHb29BdkFFUlEwQUMwRUJJQWNnQjBFQlRSc2hGa0VBSVFkQkFTRUNBMEFnQWlBV1J3UkFJQlFnQWtFQ2RDSURhaWdDOEFRaEdDQURJQTFxSUFjMkFnQWdBa0VCYWlFQ0lBY2dHR29oQnd3QkN3c2dEU0FITmdJQVFRQWhBaUFRS0FJSUlRTURRQ0FDSUFOSEJFQWdEU0FDSUJScVFkd0phaTBBQUNJWVFRSjBhaUlaSUJrb0FnQWlHVUVCYWpZQ0FDQVVJQmxCQVhScUloa2dHRG9BM1FVZ0dTQUNPZ0RjQlNBQ1FRRnFJUUlNQVFzTFFRQWhBeUFOUVFBMkFnQWdEQ0FHUVg5emFpRUdRUUVoQWdOQUlBSWdGa2NFUUNBVUlBSkJBblJxSWcwZ0F6WUNBQ0FOS0FMd0JDQUNJQVpxZENBRGFpRURJQUpCQVdvaEFnd0JDd3NnRENBVElBcHJJZ1pyUVFGcUlRb2dCaUVEQTBBZ0F5QUtTUVJBSUJRZ0EwRTBiR29oRFVFQklRSURRQ0FDSUJaSEJFQWdEU0FDUVFKMEloaHFJQlFnR0dvb0FnQWdBM1kyQWdBZ0FrRUJhaUVDREFFTEN5QURRUUZxSVFNTUFRc0xJQmNnRkVFMEVBSWhPQ0FVUVpBTWFpRTVJQk1nREdzaE9pQVVRZHdGYWlFWFFRQWhDZ05BQWtBQ1FDQUhJQXBIQkVCQkFTQU1JQk1nRnlBS1FRRjBhaUlDTFFBQklnMXJJZ05ySWhoMElSa2dBaTBBQUNFV0lEZ2dEVUVDZEdvaUh5Z0NBQ0VDSUFZZ0dFMEVRQ0EyUVFFZ0F5QTZhaUlOSUExQkFVd2JJaUJCQW5RaUpHb29BZ0FoRFNBNUlCUWdBMEUwYkdwQk5CQUNJU0VnRFVFQmRDRW1JQkVnQWtFQ2RHb2hJeUFnUVFGTkRRSWdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVnSUNFZ0pHb29BZ0FoSkVFQUlRSURRQ0FDSUNSR0RRTWdJeUFDUVFKMGFpQWdOZ0VBSUFKQkFXb2hBZ3dBQ3dBTElBSWdBaUFaYWlJTklBSWdEVXNiSVEwZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRURBMEFnQWlBTlJnMERJQkVnQWtFQ2RHb2dBellCQUNBQ1FRRnFJUUlNQUFzQUN5QWVJQXhCRUhRZ04zSWdESEpCZ0FKeU5nSUFEQU1MSUFjZ0RXc2hKQ0FYSUNacUlTWkJBQ0VOQTBBZ0RTQWtSZzBCUVFFZ0dDQVRJQ1lnRFVFQmRHb2lKeTBBQVNJQ2F5STdhM1FpUENBaElBSkJBblJxSWlBb0FnQWlBbW9oUFNBRElEdHFRUkIwUVlDQS9BZHhJQ2N0QUFCQkNIUnlJQlp5UVlDQWdCQnlJU2NEUUNBaklBSkJBblJxSUNjMkFRQWdBa0VCYWlJQ0lEMUpEUUFMSUNBZ0lDZ0NBQ0E4YWpZQ0FDQU5RUUZxSVEwTUFBc0FDeUFmSUI4b0FnQWdHV28yQWdBZ0NrRUJhaUVLREFBTEFBc2dFaUVDQ3lBUVFSQnFKQUFnQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZpRUREQU1MSUI0Z0R5QUlJQlFRRkNJQ1FZaC9TeUFDSUFoUGNnMExJQndnQ3lBQ0lBOXFJQWdnQW1zZ0hoQVhJUU1NQWdzZ0F3UkFJQndnQ3lBUElBZ2dBaEFXSVFNTUFnc2dIQ0FMSUE4Z0NDQUNFQmNoQXd3QkN5QWNJQXNnRHlBSUlBSVFGU0VEQ3lBRFFZaC9TdzBJSUFVZ0N6WUNnT3NCSUFVZ0hEWUM4T29CSUFWQkFUWUNnT29CSUJwQkFrWUVRQ0FGSUI0MkFnd0xJQXNnSEdvaUFrSUFOd0FBSUFKQ0FEY0FHQ0FDUWdBM0FCQWdBa0lBTndBSUlBbEJpSDlMRFFvTElBa2dGVVlOQ0NBVklBbHJJUVlnQlNnQ25Pc0JJUW9DUUNBSklCdHFJZ010QUFBaUQwVUVRRUVCSVFKQkFDRVBRYmgvSVFrZ0JrRUJSZzBCREFzTEFuOGdBMEVCYWlBUHdDSUNRUUJPRFFBYUlBSkJmMFlFUUNBR1FRTklEUXNnQXk4QUFVR0EvZ0ZxSVE4Z0EwRURhZ3dCQ3lBR1FRSklEUW9nQXkwQUFTQVBRUWgwY2tHQWdBSnJJUThnQTBFQ2Fnc2hFa0c0ZnlFSklCSkJBV29pQWlBVklCdHFJZ2RMRFFvZ0xDQUZJQkl0QUFBaUVrRUdka0VqUVFrZ0FpQUhJQUpyUWNBUVFkQVJRZkFTSUFVb0FvVHFBU0FLSUE4Z0ZCQWhJZ2xCaUg5TERRZ2dLeUFvSUJKQkJIWkJBM0ZCSDBFSUlBSWdDV29pQWlBSElBSnJRWUFMUVlBTVFZQVhJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQ0VHSWYwc05DRUZzSVFrZ0tpQXRJQkpCQW5aQkEzRkJORUVKSUFJZ0NHb2lBaUFISUFKclFZQU5RZUFPUVpBWklBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlCMEdJZjBzTkNpQUNJQWRxSUFOcklnSWhDU0FDUVloL1N3MEtDeUFPSUE5QkFFeHlEUUVMUWJwL0lRa01DQXNnSlNBT2F5RUpJQVlnQW1zaEJpQUNJQU5xSVFjQ1FBSkFBa0FnQ2tVRVFDQVBRUWxJSUFVcEE4anBBVUtCZ0lBSVZISU5BaUFvS0FJQUlnSkJDR29oRWlBQ0tBSUVJUXBCQUNFRFFRQWhBZ05BSUFNZ0NuWkZCRUFnQWlBU0lBTkJBM1JxTFFBQ1FSWkxhaUVDSUFOQkFXb2hBd3dCQ3dzZ0JVRUFOZ0tjNndFZ0FrRUlJQXByZEVFVVR3MEJEQU1MSUFWQkFEWUNuT3NCQ3lBRUlBVW9BdkRxQVNJRE5nTGNBU0FKSUE1cUlSWWdBeUFGS0FLQTZ3RnFJUmNDUUNBUFJRUkFJQTRoQnd3QkN5QUZLQUs0NlFFaEdpQUZLQUswNlFFaEdDQUZLQUt3NlFFaEVpQUZRUUUyQW9UcUFVRUFJUU1EUUNBRFFRTkhCRUFnQkNBRFFRSjBJZ0pxSUFJZ0JXcEJyTkFCYWlnQ0FEWUNaQ0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRVGhxSWdJZ0J5QUdFQTFCaUg5TERRTkJDQ0FQSUE5QkNFNGJJUjhnTkNBQ0lBVW9BZ0FRSGlBeklBSWdCU2dDQ0JBZUlESWdBaUFGS0FJRUVCNGdEaUFTYXlFWlFRQWhDQU5BSUFSQk9Hb1FEMEVEUmlBSUlCOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnZEJFSFlpRVVIL0FYRWhDeUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWd4QkVIWWlJVUgvQVhFaEVDQUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFZZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDa0gvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJS2F5SU5JQUlnQWlBTlN4c2lFeUFLYWpZQ1BDQUdJQVFvQWpnZ0NuUkJBQ0FUYTNZZ0FpQVRheUlUZEdvaENpQUVRVGhxRUE4YUlBSWdEVTBOQVNBRUlBUW9BandpQWlBVGFqWUNQQ0FFS0FJNElBSjBRUUFnRTJ0MklBcHFJUW9NQVFzZ0JDQUNJQVFvQWp3aURXbzJBandnQkNnQ09DQU5kRUVBSUFwcmRpQUdhaUVLSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUFvMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQURCRUFnQkNnQ1pDRUtEQU1MSUFRb0FtZ2hDZ3dCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFZZ0EwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnWkZJQVpxSVFvZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQW8yQW1RTHB5RUNJRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUJCcU5nSThJQVFvQWpnZ0JuUkJBQ0FoYTNZZ0Ftb2hBZ3NnQ3lBUWFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lBdHFOZ0k4SUFRb0FqZ2dCblJCQUNBUmEzWWdBMm9oQXdzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQmtFQUlBZEJHSFlpQ3lBRUtBSThhaUlRYTNZZ0MwRUNkRUdnSFdvb0FnQnhJQWRCLy84RGNXbzJBa3dnQkNBUUlBeEJHSFlpQjJvaUN6WUNQQ0FFSUFkQkFuUkJvQjFxS0FJQUlBWkJBQ0FMYTNaeElBeEIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdaQkdIWWlCeUFFS0FJOGFpSUxOZ0k4SUFRZ0IwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBdHJkbkVnQmtILy93TnhhallDVkNBRVFmQUFhaUFJUVF4c2FpSUdJQW8yQWdnZ0JpQUNOZ0lFSUFZZ0F6WUNBQ0FJUVFGcUlRZ2dBeUFaYWlBQ2FpRVpEQUVMQ3lBSUlCOUlEUU1nRmtFZ2F5RWhJQTRoQndOQUlBUkJPR29RRDBFRFJpQUlJQTlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ1pCRUhZaUkwSC9BWEVoQ2lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklnMUJFSFlpSUVIL0FYRWhFeUFFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRTWdRVUlnaUNCQVFpQ0lweUVMQWtBZ1FrSVFpS2NpREVIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSU1heUlSSUFJZ0FpQVJTeHNpRUNBTWFqWUNQQ0FESUFRb0FqZ2dESFJCQUNBUWEzWWdBaUFRYXlJTWRHb2hFQ0FFUVRocUVBOGFJQUlnRVUwTkFTQUVJQVFvQWp3aUFpQU1hallDUENBRUtBSTRJQUowUVFBZ0RHdDJJQkJxSVJBTUFRc2dCQ0FDSUFRb0Fqd2lFR28yQWp3Z0JDZ0NPQ0FRZEVFQUlBeHJkaUFEYWlFUUlBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlCQTJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FMQkVBZ0JDZ0NaQ0VRREFNTElBUW9BbWdoRUF3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBTWdDMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ05GSUFOcUlSQWdBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUJBMkFtUUxweUVNSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lCTnFOZ0k4SUFRb0FqZ2dBblJCQUNBZ2EzWWdER29oREFzZ0NpQVRha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQXBxTmdJOElBUW9BamdnQW5SQkFDQWphM1lnQzJvaEN3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUFrRUFJQVpCR0hZaUF5QUVLQUk4YWlJS2EzWWdBMEVDZEVHZ0hXb29BZ0J4SUFaQi8vOERjV28yQWt3Z0JDQUtJQTFCR0hZaUEyb2lCallDUENBRUlBTkJBblJCb0IxcUtBSUFJQUpCQUNBR2EzWnhJQTFCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnSkJHSFlpQXlBRUtBSThhaUlHTmdJOElBUWdBMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQVpyZG5FZ0FrSC8vd054YWpZQ1ZBSkFBa0FDUUNBRUtBTGNBU0lESUFSQjhBQnFJQWhCQjNGQkRHeHFJaE1vQWdBaUVXb2lJeUFYU3cwQUlBY2dFeWdDQkNJTklCRnFJZ3BxSUNGTERRQWdDa0VnYWlBV0lBZHJUUTBCQ3lBRUlCTW9BZ2cyQWhnZ0JDQVRLUUlBTndNUUlBY2dGaUFFUVJCcUlBUkIzQUZxSUJjZ0VpQVlJQm9RSHlFS0RBRUxJQWNnRVdvaEFpQVRLQUlJSVFZZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNBSkFJQkZCRVVrTkFDQUhJQU1wQUJBM0FCQWdCeUFES1FBWU53QVlJQkZCRUd0QkVVZ05BQ0FEUVJCcUlRTWdCMEVnYWlFUkEwQWdFU0FES1FBUU53QUFJQkVnQXlrQUdEY0FDQ0FSSUFNcEFDQTNBQkFnRVNBREtRQW9Od0FZSUFOQklHb2hBeUFSUVNCcUloRWdBa2tOQUFzTElBSWdCbXNoQXlBRUlDTTJBdHdCSUFJZ0Vtc2dCa2tFUUNBR0lBSWdHR3RMRFFjZ0dpQWFJQU1nRW1zaUEyb2lFU0FOYWs4RVFDQUNJQkVnRFJBS0dnd0NDeUFESUExcUlRMGdBaUFSUVFBZ0Eyc1FDaUFEYXlFQ0lCSWhBd3NnQmtFUVR3UkFJQUlnQXlrQUFEY0FBQ0FDSUFNcEFBZzNBQWdnRFVFUlNBMEJJQUlnRFdvaEJpQUNRUkJxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQUdTUTBBQ3d3QkN3SkFJQVpCQjAwRVFDQUNJQU10QUFBNkFBQWdBaUFETFFBQk9nQUJJQUlnQXkwQUFqb0FBaUFDSUFNdEFBTTZBQU1nQWlBRElBWkJBblFpQmtIQUhtb29BZ0JxSWdNb0FBQTJBQVFnQXlBR1FlQWVhaWdDQUdzaEF3d0JDeUFDSUFNcEFBQTNBQUFMSUExQkNVa05BQ0FDSUExcUlSRWdBa0VJYWlJR0lBTkJDR29pQTJ0QkQwd0VRQU5BSUFZZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQmtFSWFpSUdJQkZKRFFBTUFnc0FDeUFHSUFNcEFBQTNBQUFnQmlBREtRQUlOd0FJSUExQkdVZ05BQ0FDUVJocUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFSU1EwQUN3c2dDa0dJZjBzRVFDQUtJUWtNQmdVZ0V5QVFOZ0lJSUJNZ0REWUNCQ0FUSUFzMkFnQWdDRUVCYWlFSUlBY2dDbW9oQnlBTElCbHFJQXhxSVJrTUFnc0FDd3NnQ0NBUFNBMERJQWdnSDJzaEJnTkFBa0FnQmlBUFRnUkFRUUFoQXdOQUlBTkJBMFlOQWlBRklBTkJBblFpQW1wQnJOQUJhaUFDSUFScUtBSmtOZ0lBSUFOQkFXb2hBd3dBQ3dBTEFrQUNRQUpBSUFRb0F0d0JJZ01nQkVId0FHb2dCa0VIY1VFTWJHb2lDQ2dDQUNJTWFpSVFJQmRMRFFBZ0J5QUlLQUlFSWdzZ0RHb2lDbW9nSVVzTkFDQUtRU0JxSUJZZ0IydE5EUUVMSUFRZ0NDZ0NDRFlDS0NBRUlBZ3BBZ0EzQXlBZ0J5QVdJQVJCSUdvZ0JFSGNBV29nRnlBU0lCZ2dHaEFmSVFvTUFRc2dCeUFNYWlFQ0lBZ29BZ2doQ0NBSElBTXBBQUEzQUFBZ0J5QURLUUFJTndBSUFrQWdERUVSU1EwQUlBY2dBeWtBRURjQUVDQUhJQU1wQUJnM0FCZ2dERUVRYTBFUlNBMEFJQU5CRUdvaEF5QUhRU0JxSVF3RFFDQU1JQU1wQUJBM0FBQWdEQ0FES1FBWU53QUlJQXdnQXlrQUlEY0FFQ0FNSUFNcEFDZzNBQmdnQTBFZ2FpRURJQXhCSUdvaURDQUNTUTBBQ3dzZ0FpQUlheUVESUFRZ0VEWUMzQUVnQWlBU2F5QUlTUVJBSUFnZ0FpQVlhMHNOQnlBYUlCb2dBeUFTYXlJRGFpSU1JQXRxVHdSQUlBSWdEQ0FMRUFvYURBSUxJQU1nQzJvaEN5QUNJQXhCQUNBRGF4QUtJQU5ySVFJZ0VpRURDeUFJUVJCUEJFQWdBaUFES1FBQU53QUFJQUlnQXlrQUNEY0FDQ0FMUVJGSURRRWdBaUFMYWlFSUlBSkJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBSWdBeTBBQURvQUFDQUNJQU10QUFFNkFBRWdBaUFETFFBQ09nQUNJQUlnQXkwQUF6b0FBeUFDSUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQUlnQXlrQUFEY0FBQXNnQzBFSlNRMEFJQUlnQzJvaERDQUNRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dERWtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQzBFWlNBMEFJQUpCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXhKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdHQlNBR1FRRnFJUVlnQnlBS2FpRUhEQUlMQUFzTElBUW9BdHdCSVFNTFFicC9JUWtnRnlBRGF5SUNJQllnQjJ0TERRSWdCd1IvSUFjZ0F5QUNFQUlnQW1vRlFRQUxJQTVySVFrTUFnc2dCVUVBTmdLYzZ3RUxJQVFnQlNnQzhPb0JJZ00yQXR3QklBa2dEbW9oRENBRElBVW9Bb0RyQVdvaEVBSkFJQTlGQkVBZ0RpRUdEQUVMSUFVb0FyanBBU0VOSUFVb0FyVHBBU0VUSUFVb0FyRHBBU0VTSUFWQkFUWUNoT29CUVFBaEF3TkFJQU5CQTBjRVFDQUVJQU5CQW5RaUFtb2dBaUFGYWtHczBBRnFLQUlBTmdLY0FTQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFmQUFhaUlDSUFjZ0JoQU5RWWgvU3cwQklERWdBaUFGS0FJQUVCNGdNQ0FDSUFVb0FnZ1FIaUF2SUFJZ0JTZ0NCQkFlSUF4QklHc2hHQ0FPSVFZRFFDQUVLQUtJQVNBRUtBS0VBVUVEZEdvcEFnQWlRS2NpQ2tFUWRpSVpRZjhCY1NFTElBUW9BcGdCSUFRb0FwUUJRUU4wYWlrQ0FDSkJweUlXUVJCMkloOUIvd0Z4SVJvZ0JDZ0NrQUVnQkNnQ2pBRkJBM1JxS1FJQUlrSkNJSWluSVFjZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDRUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDZENJSWF5SVJJQUlnQWlBUlN4c2lGeUFJYWpZQ2RDQUhJQVFvQW5BZ0NIUkJBQ0FYYTNZZ0FpQVhheUlYZEdvaENDQUVRZkFBYWhBUEdpQUNJQkZORFFFZ0JDQUVLQUowSWdJZ0YybzJBblFnQkNnQ2NDQUNkRUVBSUJkcmRpQUlhaUVJREFFTElBUWdBaUFFS0FKMEloRnFOZ0owSUFRb0FuQWdFWFJCQUNBSWEzWWdCMm9oQ0NBRVFmQUFhaEFQR2dzZ0JDa0NuQUVoUkNBRUlBZzJBcHdCSUFRZ1JEY0NvQUVNQVFzQ1FDQUNSUVJBSUFNRVFDQUVLQUtjQVNFSURBTUxJQVFvQXFBQklRZ01BUXNnQkNBRUtBSjBJZ0pCQVdvMkFuUUNmeUFISUFORmFpQUVLQUp3SUFKMFFSOTJhaUlDUVFOR0JFQWdCQ2dDbkFGQkFXc01BUXNnQWtFQ2RDQUVhaWdDbkFFTElnZEZJQWRxSVFnZ0FrRUJSd1JBSUFRZ0JDZ0NvQUUyQXFRQkN3c2dCQ0FFS0FLY0FUWUNvQUVnQkNBSU5nS2NBUXVuSVFJZ1FVS0FnUHdIZzFCRkJFQWdCQ0FFS0FKMElnY2dHbW8yQW5RZ0JDZ0NjQ0FIZEVFQUlCOXJkaUFDYWlFQ0N5QUxJQnBxUVJSUEJFQWdCRUh3QUdvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NkQ0lISUF0cU5nSjBJQVFvQW5BZ0IzUkJBQ0FaYTNZZ0Eyb2hBd3NnQkVId0FHb1FEeG9nQkNBRUtBSndJZ2RCQUNBS1FSaDJJZ3NnQkNnQ2RHb2lHbXQySUF0QkFuUkJvQjFxS0FJQWNTQUtRZi8vQTNGcU5nS0VBU0FFSUJvZ0ZrRVlkaUlLYWlJTE5nSjBJQVFnQ2tFQ2RFR2dIV29vQWdBZ0IwRUFJQXRyZG5FZ0ZrSC8vd054YWpZQ2xBRWdCRUh3QUdvUUR4b2dCQ0JDcHlJSFFSaDJJZ29nQkNnQ2RHb2lDellDZENBRUlBcEJBblJCb0IxcUtBSUFJQVFvQW5CQkFDQUxhM1p4SUFkQi8vOERjV28yQW93QklBUWdBellDT0NBRUlBSTJBandnQkNBSU5nSkFBa0FDUUFKQUlBUW9BdHdCSWdzZ0Eyb2lGaUFRU3cwQUlBWWdBaUFEYWlJS2FpQVlTdzBBSUFwQklHb2dEQ0FHYTAwTkFRc2dCQ0FFUVVCcktBSUFOZ0lJSUFRZ0JDa0RPRGNEQUNBR0lBd2dCQ0FFUWR3QmFpQVFJQklnRXlBTkVCOGhDZ3dCQ3lBRElBWnFJUWNnQmlBTEtRQUFOd0FBSUFZZ0N5a0FDRGNBQ0FKQUlBTkJFVWtOQUNBR0lBc3BBQkEzQUJBZ0JpQUxLUUFZTndBWUlBTkJFR3RCRVVnTkFDQUxRUkJxSVFNZ0JrRWdhaUVMQTBBZ0N5QURLUUFRTndBQUlBc2dBeWtBR0RjQUNDQUxJQU1wQUNBM0FCQWdDeUFES1FBb053QVlJQU5CSUdvaEF5QUxRU0JxSWdzZ0Iwa05BQXNMSUFjZ0NHc2hBeUFFSUJZMkF0d0JJQWNnRW1zZ0NFa0VRQ0FJSUFjZ0UydExEUVFnRFNBTklBTWdFbXNpQTJvaUN5QUNhazhFUUNBSElBc2dBaEFLR2d3Q0N5QUhJQXRCQUNBRGF4QUtJQVFnQWlBRGFpSUNOZ0k4SUFOcklRY2dFaUVEQ3lBSVFSQlBCRUFnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0NBQ1FSRklEUUVnQWlBSGFpRUlJQWRCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQWNnQXkwQUFEb0FBQ0FISUFNdEFBRTZBQUVnQnlBRExRQUNPZ0FDSUFjZ0F5MEFBem9BQXlBSElBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFjZ0F5a0FBRGNBQUFzZ0FrRUpTUTBBSUFJZ0Iyb2hDeUFIUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnQzBrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0FrRVpTQTBBSUFkQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF0SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3REN5QUdJQXBxSVFZZ0JFSHdBR29RRHlFRElBOUJBV3NpRHcwQUMwRUFJUUlnQTBFQ1NRMEJBMEFnQWtFRFJ3UkFJQVVnQWtFQ2RDSURha0dzMEFGcUlBTWdCR29vQXB3Qk5nSUFJQUpCQVdvaEFnd0JDd3NnQkNnQzNBRWhBd3RCdW44aENTQVFJQU5ySWdJZ0RDQUdhMHNOQUNBR0JIOGdCaUFESUFJUUFpQUNhZ1ZCQUFzZ0Rtc2hDUXNnQ1VHSWYwc05CZ3NDUUNBRktBTHM2Z0ZGRFFBZ0JTQUZLUU9JNmdFZ0NhMThOd09JNmdFQ1FDQUZLQUxRNmdFaUFpQUphaUlJUVI5TkJFQWdEa1VOQVNBQ0lDSnFJQTRnQ1JBQ0dpQUZLQUxRNmdFZ0NXb2hDQXdCQ3lBT0lRTWdBZ1JBSUFJZ0ltb2dBMEVnSUFKckVBSWFJQVVvQXREcUFTRUNJQVZCQURZQzBPb0JJQVVnQlNrRGtPb0JJQVVwQUxEcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RrT29CSUFVZ0JTa0RtT29CSUFVcEFManFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEbU9vQklBVWdCU2tEb09vQklBVXBBTURxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG9Pb0JJQVVnQlNrRHFPb0JJQVVwQU1qcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RxT29CSUFNZ0FtdEJJR29oQXdzZ0NTQU9haUlDSUFOQklHcFBCRUFnQWtFZ2F5RUdJQVVwQTZqcUFTRS9JQVVwQTZEcUFTRkFJQVVwQTVqcUFTRkJJQVVwQTVEcUFTRkNBMEFnQXlrQUdFTFAxdE8rMHNlcjJVSitJRDk4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVDhnQXlrQUVFTFAxdE8rMHNlcjJVSitJRUI4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUFnQXlrQUNFTFAxdE8rMHNlcjJVSitJRUY4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUVnQXlrQUFFTFAxdE8rMHNlcjJVSitJRUo4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUlnQTBFZ2FpSURJQVpORFFBTElBVWdQemNEcU9vQklBVWdRRGNEb09vQklBVWdRVGNEbU9vQklBVWdRamNEa09vQkN5QUNJQU5ORFFFZ0lpQURJQUlnQTJzaUNCQUNHZ3NnQlNBSU5nTFE2Z0VMSURVZ0ZXc2hBeUFWSUJ0cUlRSWdDU0FPYWlFT0lBUW9BakJGRFFBTElDa3BBd0FpUDBKL1VTQS9JQTRnSFd1c1VYSkZCRUJCYkNFSkRBWUxJQVVvQXVEcEFRUkFRV29oQ1NBRFFRUkpEUVlnQlNnQzZPb0JSUVJBSUNJZ0JTZ0MwT29CYWlFS0FuNGdCU2tEaU9vQklqOUNJRm9FUUNBRktRT1k2Z0VpUUVJSGlTQUZLUU9RNmdFaVFVSUJpWHdnQlNrRG9Pb0JJa0pDRElsOElBVXBBNmpxQVNKRFFoS0pmQ0JCUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlJRUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9mb1ZDaDVXdnI1aTIzcHVlZjM1Q25hTzE2b094allyNkFIMGdRa0xQMXRPKzBzZXIyVUorUWgrSlFvZVZyNitZdHQ2Ym5uOStoVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTQkRRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOURBRUxJQVVwQTZEcUFVTEZ6OW15OGVXNjZpZDhDeUEvZkNFL0lDSWhCZ05BSUFvZ0JrRUlhaUlIVHdSQUlBWXBBQUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9maUEvaFVJYmlVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNFL0lBY2hCZ3dCQ3dzQ1FDQUtJQVpCQkdvaUNFa0VRQ0FHSVFnTUFRc2dCalVBQUVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUlYaVVMUDF0Tyswc2VyMlVKK1F2bnozZkdaOXBtckZud2hQd3NEUUNBSUlBcEpCRUFnQ0RFQUFFTEZ6OW15OGVXNjZpZCtJRCtGUWd1SlFvZVZyNitZdHQ2Ym5uOStJVDhnQ0VFQmFpRUlEQUVMQ3lBQ0tBQUFJRDlDSVlnZ1A0VkN6OWJUdnRMSHE5bENmaUkvUWgySUlEK0ZRdm56M2ZHWjlwbXJGbjRpUDBJZ2lDQS9oYWRIRFFjTElBTkJCR3NoQXlBQ1FRUnFJUUlMSUE0Z0hXc2lDVUdKZjA4TkJDQUJJQWxySVFFZ0NTQWRhaUVkUVFFaFBnd0JDd3RCdUg4aEJ5QUREUVFnSFNBQWF5RUhEQVFMUVd3aENRd0JDMEc0ZnlFSkMwRzRmeUVISUFsQmRrWWdQbkVOQVFzZ0NTRUhDeWdDQUEwQUlBVkIvT29CYWlnQ0FDRUJJQVZCK09vQmFpZ0NBQ0VBSUFVUUdDQUZLQUt3NndFZ0FDQUJFQk1nQlVFQU5nS3c2d0VnQlNnQ3BPc0JJZ0lFUUFKQUFrQUNRQUpBSUFJb0FnQWlBd1JBSUFCRkRRSWdBU0FESUFBUkFnQU1BUXNnQUVVTkFnc2dBU0FDSUFBUkFnQU1BZ3NnQXhBR0N5QUNFQVlMSUFWQkFEWUNwT3NCQ3lBQUJFQWdBU0FGSUFBUkFnQU1BUXNnQlJBR0N5QUVRZUFCYWlRQUlBY0xDNmdWQ1FCQmlBZ0xEUUVBQUFBQkFBQUFBZ0FBQUFJQVFhQUlDN01HQVFBQUFBRUFBQUFDQUFBQUFnQUFBQ1lBQUFDQ0FBQUFJUVVBQUVvQUFBQm5DQUFBSmdBQUFNQUJBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFLUUFBQUN3Q0FBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUx3QUFBTW9DQUFDQUFBQUFpZ1VBQUVvQUFBQ0VDUUFBTlFBQUFITURBQUNBQUFBQW5RVUFBRW9BQUFDZ0NRQUFQUUFBQUlFREFBQ0FBQUFBNndVQUFFc0FBQUErQ2dBQVJBQUFBSjREQUFDQUFBQUFUUVlBQUVzQUFBQ3FDZ0FBU3dBQUFMTURBQUNBQUFBQXdRWUFBRTBBQUFBZkRRQUFUUUFBQUZNRUFBQ0FBQUFBSXdnQUFGRUFBQUNtRHdBQVZBQUFBSmtFQUFDQUFBQUFTd2tBQUZjQUFBQ3hFZ0FBV0FBQUFOb0VBQUNBQUFBQWJ3a0FBRjBBQUFBakZBQUFWQUFBQUVVRkFBQ0FBQUFBVkFvQUFHb0FBQUNNRkFBQWFnQUFBSzhGQUFDQUFBQUFkZ2tBQUh3QUFBQk9FQUFBZkFBQUFOSUNBQUNBQUFBQVl3Y0FBSkVBQUFDUUJ3QUFrZ0FBQUFBQUFBQUJBQUFBQVFBQUFBVUFBQUFOQUFBQUhRQUFBRDBBQUFCOUFBQUEvUUFBQVAwQkFBRDlBd0FBL1FjQUFQMFBBQUQ5SHdBQS9UOEFBUDEvQUFEOS93QUEvZjhCQVAzL0F3RDkvd2NBL2Y4UEFQMy9Id0Q5L3o4QS9mOS9BUDMvL3dEOS8vOEIvZi8vQS8zLy93ZjkvLzhQL2YvL0gvMy8vei85Ly85L0FBQUFBQUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFSQUFBQUVnQUFBQk1BQUFBVUFBQUFGUUFBQUJZQUFBQVhBQUFBR0FBQUFCa0FBQUFhQUFBQUd3QUFBQndBQUFBZEFBQUFIZ0FBQUI4QUFBQURBQUFBQkFBQUFBVUFBQUFHQUFBQUJ3QUFBQWdBQUFBSkFBQUFDZ0FBQUFzQUFBQU1BQUFBRFFBQUFBNEFBQUFQQUFBQUVBQUFBQkVBQUFBU0FBQUFFd0FBQUJRQUFBQVZBQUFBRmdBQUFCY0FBQUFZQUFBQUdRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBSHdBQUFDQUFBQUFoQUFBQUlnQUFBQ01BQUFBbEFBQUFKd0FBQUNrQUFBQXJBQUFBTHdBQUFETUFBQUE3QUFBQVF3QUFBRk1BQUFCakFBQUFnd0FBQUFNQkFBQURBZ0FBQXdRQUFBTUlBQUFERUFBQUF5QUFBQU5BQUFBRGdBQUFBd0FCQUVIZ0R3dFJBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCQUFBQUFVQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QUFBQVFBRUhFRUF1TEFRRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVNBQUFBRkFBQUFCWUFBQUFZQUFBQUhBQUFBQ0FBQUFBb0FBQUFNQUFBQUVBQUFBQ0FBQUFBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFBQUVBUVpBU0MrWUVBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQUJBQUFBQkFBQUFBZ0FBQUFBQUFBQUFRQUJBUVlBQUFBQUFBQUVBQUFBQUJBQUFBUUFBQUFBSUFBQUJRRUFBQUFBQUFBRkF3QUFBQUFBQUFVRUFBQUFBQUFBQlFZQUFBQUFBQUFGQndBQUFBQUFBQVVKQUFBQUFBQUFCUW9BQUFBQUFBQUZEQUFBQUFBQUFBWU9BQUFBQUFBQkJSQUFBQUFBQUFFRkZBQUFBQUFBQVFVV0FBQUFBQUFDQlJ3QUFBQUFBQU1GSUFBQUFBQUFCQVV3QUFBQUlBQUdCVUFBQUFBQUFBY0ZnQUFBQUFBQUNBWUFBUUFBQUFBS0JnQUVBQUFBQUF3R0FCQUFBQ0FBQUFRQUFBQUFBQUFBQkFFQUFBQUFBQUFGQWdBQUFDQUFBQVVFQUFBQUFBQUFCUVVBQUFBZ0FBQUZCd0FBQUFBQUFBVUlBQUFBSUFBQUJRb0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFJQUFCQlJBQUFBQUFBQUVGRWdBQUFDQUFBUVVXQUFBQUFBQUNCUmdBQUFBZ0FBTUZJQUFBQUFBQUF3VW9BQUFBQUFBR0JFQUFBQUFRQUFZRVFBQUFBQ0FBQndXQUFBQUFBQUFKQmdBQ0FBQUFBQXNHQUFnQUFEQUFBQVFBQUFBQUVBQUFCQUVBQUFBZ0FBQUZBZ0FBQUNBQUFBVURBQUFBSUFBQUJRVUFBQUFnQUFBRkJnQUFBQ0FBQUFVSUFBQUFJQUFBQlFrQUFBQWdBQUFGQ3dBQUFDQUFBQVVNQUFBQUFBQUFCZzhBQUFBZ0FBRUZFZ0FBQUNBQUFRVVVBQUFBSUFBQ0JSZ0FBQUFnQUFJRkhBQUFBQ0FBQXdVb0FBQUFJQUFFQlRBQUFBQUFBQkFHQUFBQkFBQUFEd1lBZ0FBQUFBQU9CZ0JBQUFBQUFBMEdBQ0FBUVlBWEM0Y0NBUUFCQVFVQUFBQUFBQUFGQUFBQUFBQUFCZ1E5QUFBQUFBQUpCZjBCQUFBQUFBOEYvWDhBQUFBQUZRWDkveDhBQUFBREJRVUFBQUFBQUFjRWZRQUFBQUFBREFYOUR3QUFBQUFTQmYzL0F3QUFBQmNGL2Y5L0FBQUFCUVVkQUFBQUFBQUlCUDBBQUFBQUFBNEYvVDhBQUFBQUZBWDkvdzhBQUFBQ0JRRUFBQUFRQUFjRWZRQUFBQUFBQ3dYOUJ3QUFBQUFSQmYzL0FRQUFBQllGL2Y4L0FBQUFCQVVOQUFBQUVBQUlCUDBBQUFBQUFBMEYvUjhBQUFBQUV3WDkvd2NBQUFBQkJRRUFBQUFRQUFZRVBRQUFBQUFBQ2dYOUF3QUFBQUFRQmYzL0FBQUFBQndGL2YvL0R3QUFHd1g5Ly84SEFBQWFCZjMvL3dNQUFCa0YvZi8vQVFBQUdBWDkvLzhBUVpBWkM0WUVBUUFCQVFZQUFBQUFBQUFHQXdBQUFBQUFBQVFFQUFBQUlBQUFCUVVBQUFBQUFBQUZCZ0FBQUFBQUFBVUlBQUFBQUFBQUJRa0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFBQUFBQmhBQUFBQUFBQUFHRXdBQUFBQUFBQVlXQUFBQUFBQUFCaGtBQUFBQUFBQUdIQUFBQUFBQUFBWWZBQUFBQUFBQUJpSUFBQUFBQUFFR0pRQUFBQUFBQVFZcEFBQUFBQUFDQmk4QUFBQUFBQU1HT3dBQUFBQUFCQVpUQUFBQUFBQUhCb01BQUFBQUFBa0dBd0lBQUJBQUFBUUVBQUFBQUFBQUJBVUFBQUFnQUFBRkJnQUFBQUFBQUFVSEFBQUFJQUFBQlFrQUFBQUFBQUFGQ2dBQUFBQUFBQVlNQUFBQUFBQUFCZzhBQUFBQUFBQUdFZ0FBQUFBQUFBWVZBQUFBQUFBQUJoZ0FBQUFBQUFBR0d3QUFBQUFBQUFZZUFBQUFBQUFBQmlFQUFBQUFBQUVHSXdBQUFBQUFBUVluQUFBQUFBQUNCaXNBQUFBQUFBTUdNd0FBQUFBQUJBWkRBQUFBQUFBRkJtTUFBQUFBQUFnR0F3RUFBQ0FBQUFRRUFBQUFNQUFBQkFRQUFBQVFBQUFFQlFBQUFDQUFBQVVIQUFBQUlBQUFCUWdBQUFBZ0FBQUZDZ0FBQUNBQUFBVUxBQUFBQUFBQUJnNEFBQUFBQUFBR0VRQUFBQUFBQUFZVUFBQUFBQUFBQmhjQUFBQUFBQUFHR2dBQUFBQUFBQVlkQUFBQUFBQUFCaUFBQUFBQUFCQUdBd0FCQUFBQUR3WURnQUFBQUFBT0JnTkFBQUFBQUEwR0F5QUFBQUFBREFZREVBQUFBQUFMQmdNSUFBQUFBQW9HQXdRQVFhUWRDOWtCQVFBQUFBTUFBQUFIQUFBQUR3QUFBQjhBQUFBL0FBQUFmd0FBQVA4QUFBRC9BUUFBL3dNQUFQOEhBQUQvRHdBQS94OEFBUDgvQUFEL2Z3QUEvLzhBQVAvL0FRRC8vd01BLy84SEFQLy9Ed0QvL3g4QS8vOC9BUC8vZndELy8vOEEvLy8vQWYvLy93UC8vLzhILy8vL0QvLy8veC8vLy84Ly8vLy9md0FBQUFBQkFBQUFBZ0FBQUFRQUFBQUFBQUFBQWdBQUFBUUFBQUFJQUFBQUFBQUFBQUVBQUFBQ0FBQUFBUUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQWdBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dCQmdCOExBNEFSQVE9PSI7dmFyIEh0PW5ldyBWQSxxdD0hMTthc3luYyBmdW5jdGlvbiBZcihBLGUsdCl7bGV0IEk9InVua25vd24iO3R5cGVvZiBBIT0ic3RyaW5nIj9JPUEuaHJlZjpBLnN0YXJ0c1dpdGgoImh0dHAiKT9JPUE6ST10eXBlb2YgZTwidSI/YCR7ZX0vJHtBfWA6QSxJLmVuZHNXaXRoKCIuanMiKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC0zKSksSS5lbmRzV2l0aCgiLndhc20iKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC01KSksSS5lbmRzV2l0aCgiLndhc20uenN0IikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtOSkpO2xldCByPWAke0l9Lndhc21gLGk9YXdhaXQgbkEuZ2V0KGAke3J9LnpzdGAse3Jlc3BvbnNlVHlwZToiYXJyYXlidWZmZXIiLHBhcmFtczp0fSk7cXR8fChhd2FpdCBIdC5pbml0KCkscXQ9ITApO2xldCBzPUh0LmRlY29kZShuZXcgVWludDhBcnJheShpLmRhdGEpKS5idWZmZXI7cmV0dXJuKGF3YWl0IGltcG9ydChgJHtJfS5qc2ApKS5kZWZhdWx0KHt3YXNtQmluYXJ5OnN9KX12YXIgS3Q9WXI7dmFyIE90PWFzeW5jKCk9PldlYkFzc2VtYmx5LnZhbGlkYXRlKG5ldyBVaW50OEFycmF5KFswLDk3LDExNSwxMDksMSwwLDAsMCwxLDUsMSw5NiwwLDEsMTIzLDMsMiwxLDAsMTAsMTAsMSw4LDAsNjUsMCwyNTMsMTUsMjUzLDk4LDExXSkpO3ZhciBQdD10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcj09ImZ1bmN0aW9uIixUdD1uZXcgVGV4dEVuY29kZXIseHQ9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpO2Z1bmN0aW9uIE1yKEEsZSl7bGV0IHQ9e2ZsYWdzOiJyIixlbmNvZGluZzoiYmluYXJ5In0sST1BLmZzX29wZW4oZSx0LmZsYWdzKSxpPUEuZnNfc3RhdChlKS5zaXplLGc9bnVsbDtQdD9nPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihpKTpnPW5ldyBBcnJheUJ1ZmZlcihpKTtsZXQgcz1uZXcgVWludDhBcnJheShnKTtyZXR1cm4gQS5mc19yZWFkKEkscywwLGksMCksQS5mc19jbG9zZShJKSxzfWZ1bmN0aW9uIFd0KEEsZSx0KXtsZXQgST1udWxsO1B0P0k9bmV3IFNoYXJlZEFycmF5QnVmZmVyKHQpOkk9bmV3IEFycmF5QnVmZmVyKHQpO2xldCByPW5ldyBVaW50OEFycmF5KEkpLGk9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLGUsdCk7cmV0dXJuIHIuc2V0KGkpLHJ9ZnVuY3Rpb24gdyhBLGUsdCxJKXtsZXQgcj0wO3JldHVybiBlIT09bnVsbCYmKHI9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfYXJyYXlfYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxJLGUuYnVmZmVyLmJ5dGVMZW5ndGhdKSxBLkhFQVBVOC5zZXQobmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpLHIpKSxyfWZ1bmN0aW9uIHYoQSxlLHQpe2xldCBJPUpTT04uc3RyaW5naWZ5KGUpLHI9QS5sZW5ndGhCeXRlc1VURjgoSSkrMSxpPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2pzb25fYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxyXSk7QS5zdHJpbmdUb1VURjgoSSxpLHIpfWZ1bmN0aW9uIFMoQSxlLHQsSSl7bGV0IHI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSx0XSksaT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLHRdKSxnPVd0KEEscixpKTtyZXR1cm4gSChJLGcuYnVmZmVyKX1mdW5jdGlvbiBtQShBLGUpe2xldCB0PUEuY2NhbGwoIml0a193YXNtX291dHB1dF9qc29uX2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIl0sWzAsZV0pLEk9QS5VVEY4VG9TdHJpbmcodCk7cmV0dXJuIEpTT04ucGFyc2UoSSl9ZnVuY3Rpb24gSHIoQSxlLHQsSSl7SSE9bnVsbCYmSS5sZW5ndGg+MCYmSS5mb3JFYWNoKGZ1bmN0aW9uKEMsbyl7c3dpdGNoKEMudHlwZSl7Y2FzZSBkLlRleHRTdHJlYW06e2xldCBhPVR0LmVuY29kZShDLmRhdGEuZGF0YSksYz13KEEsYSxvLDApLEI9e3NpemU6YS5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gfTt2KEEsQixvKTticmVha31jYXNlIGQuSnNvbkNvbXBhdGlibGU6e2xldCBhPVR0LmVuY29kZShKU09OLnN0cmluZ2lmeShDLmRhdGEpKSxjPXcoQSxhLG8sMCksQj17c2l6ZTphLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWB9O3YoQSxCLG8pO2JyZWFrfWNhc2UgZC5CaW5hcnlTdHJlYW06e2xldCBhPUMuZGF0YS5kYXRhLGM9dyhBLGEsbywwKSxCPXtzaXplOmEuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YH07dihBLEIsbyk7YnJlYWt9Y2FzZSBkLlRleHRGaWxlOntBLmZzX3dyaXRlRmlsZShDLmRhdGEucGF0aCxDLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBkLkJpbmFyeUZpbGU6e0EuZnNfd3JpdGVGaWxlKEMuZGF0YS5wYXRoLEMuZGF0YS5kYXRhKTticmVha31jYXNlIGQuSW1hZ2U6e2xldCBhPUMuZGF0YSxjPXcoQSxhLmRhdGEsbywwKSxCPXcoQSxhLmRpcmVjdGlvbixvLDEpLFE9dHlwZW9mIGEubWV0YWRhdGE/LmVudHJpZXM8InUiP0FycmF5LmZyb20oYS5tZXRhZGF0YS5lbnRyaWVzKCkpOltdLGY9e2ltYWdlVHlwZTphLmltYWdlVHlwZSxuYW1lOmEubmFtZSxvcmlnaW46YS5vcmlnaW4sc3BhY2luZzphLnNwYWNpbmcsZGlyZWN0aW9uOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Qn1gLHNpemU6YS5zaXplLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWAsbWV0YWRhdGE6UX07dihBLGYsbyk7YnJlYWt9Y2FzZSBkLk1lc2g6e2xldCBhPUMuZGF0YSxjPXcoQSxhLnBvaW50cyxvLDApLEI9dyhBLGEuY2VsbHMsbywxKSxRPXcoQSxhLnBvaW50RGF0YSxvLDIpLGY9dyhBLGEuY2VsbERhdGEsbywzKSxsPXttZXNoVHlwZTphLm1lc2hUeXBlLG5hbWU6YS5uYW1lLG51bWJlck9mUG9pbnRzOmEubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLG51bWJlck9mQ2VsbHM6YS5udW1iZXJPZkNlbGxzLGNlbGxzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Qn1gLGNlbGxCdWZmZXJTaXplOmEuY2VsbEJ1ZmZlclNpemUsbnVtYmVyT2ZQb2ludFBpeGVsczphLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLG51bWJlck9mQ2VsbFBpeGVsczphLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YH07dihBLGwsbyk7YnJlYWt9Y2FzZSBkLlBvaW50U2V0OntsZXQgYT1DLmRhdGEsYz13KEEsYS5wb2ludHMsbywwKSxCPXcoQSxhLnBvaW50RGF0YSxvLDEpLFE9e3BvaW50U2V0VHlwZTphLnBvaW50U2V0VHlwZSxuYW1lOmEubmFtZSxudW1iZXJPZlBvaW50czphLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YCxudW1iZXJPZlBvaW50UGl4ZWxzOmEubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWB9O3YoQSxRLG8pO2JyZWFrfWNhc2UgZC5UcmFuc2Zvcm1MaXN0OntsZXQgYT1DLmRhdGEsYz1bXSxCPTA7YS5mb3JFYWNoKFE9PntsZXQgZj0iIixsPSIiO1EudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihmPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dyhBLFEuZml4ZWRQYXJhbWV0ZXJzLG8sQil9YCxCKz0xLGw9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt3KEEsUS5wYXJhbWV0ZXJzLG8sQil9YCxCKz0xKTtsZXQgcD17dHJhbnNmb3JtVHlwZTpRLnRyYW5zZm9ybVR5cGUsbnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM6US5udW1iZXJPZkZpeGVkUGFyYW1ldGVycyxudW1iZXJPZlBhcmFtZXRlcnM6US5udW1iZXJPZlBhcmFtZXRlcnMsbmFtZTpRLm5hbWUsaW5wdXRTcGFjZU5hbWU6US5pbnB1dFNwYWNlTmFtZSxvdXRwdXRTcGFjZU5hbWU6US5vdXRwdXRTcGFjZU5hbWUscGFyYW1ldGVyczpsLGZpeGVkUGFyYW1ldGVyczpmfTtjLnB1c2gocCl9KSx2KEEsYyxvKTticmVha31jYXNlIGQuUG9seURhdGE6e2xldCBhPUMuZGF0YSxjPXcoQSxhLnBvaW50cyxvLDApLEI9dyhBLGEudmVydGljZXMsbywxKSxRPXcoQSxhLmxpbmVzLG8sMiksZj13KEEsYS5wb2x5Z29ucyxvLDMpLGw9dyhBLGEudHJpYW5nbGVTdHJpcHMsbyw0KSxwPXcoQSxhLnBvaW50RGF0YSxvLDUpLEY9dyhBLGEucG9pbnREYXRhLG8sNiksRD17cG9seURhdGFUeXBlOmEucG9seURhdGFUeXBlLG5hbWU6YS5uYW1lLG51bWJlck9mUG9pbnRzOmEubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLHZlcnRpY2VzQnVmZmVyU2l6ZTphLnZlcnRpY2VzQnVmZmVyU2l6ZSx2ZXJ0aWNlczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0J9YCxsaW5lc0J1ZmZlclNpemU6YS5saW5lc0J1ZmZlclNpemUsbGluZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAscG9seWdvbnNCdWZmZXJTaXplOmEucG9seWdvbnNCdWZmZXJTaXplLHBvbHlnb25zOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gLHRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZTphLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZSx0cmlhbmdsZVN0cmlwczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxudW1iZXJPZlBvaW50UGl4ZWxzOmEubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtwfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOmEubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Rn1gfTt2KEEsRCxvKTticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBpbnB1dCBJbnRlcmZhY2VUeXBlIil9fSksQS5yZXNldE1vZHVsZVN0ZG91dCgpLEEucmVzZXRNb2R1bGVTdGRlcnIoKTtsZXQgcj1BLnN0YWNrU2F2ZSgpLGk9MDt0cnl7aT1BLmNhbGxNYWluKGUuc2xpY2UoKSl9Y2F0Y2goQyl7dGhyb3cgdHlwZW9mIEM9PSJudW1iZXIiJiYoY29uc29sZS5sb2coIkV4Y2VwdGlvbiB3aGlsZSBydW5uaW5nIHBpcGVsaW5lOiIpLGNvbnNvbGUubG9nKCJzdGRvdXQ6IixBLmdldE1vZHVsZVN0ZG91dCgpKSxjb25zb2xlLmVycm9yKCJzdGRlcnI6IixBLmdldE1vZHVsZVN0ZGVycigpKSx0eXBlb2YgQS5nZXRFeGNlcHRpb25NZXNzYWdlPCJ1Ij9jb25zb2xlLmVycm9yKCJleGNlcHRpb246IixBLmdldEV4Y2VwdGlvbk1lc3NhZ2UoQykpOmNvbnNvbGUuZXJyb3IoIkJ1aWxkIG1vZHVsZSBpbiBEZWJ1ZyBtb2RlIGZvciBleGNlcHRpb24gbWVzc2FnZSBpbmZvcm1hdGlvbi4iKSksQ31maW5hbGx5e0Euc3RhY2tSZXN0b3JlKHIpfWxldCBnPUEuZ2V0TW9kdWxlU3Rkb3V0KCkscz1BLmdldE1vZHVsZVN0ZGVycigpLEU9W107cmV0dXJuIHQhPW51bGwmJnQubGVuZ3RoPjAmJmk9PT0wJiZ0LmZvckVhY2goZnVuY3Rpb24oQyxvKXtsZXQgYT1udWxsO3N3aXRjaChDLnR5cGUpe2Nhc2UgZC5UZXh0U3RyZWFtOntsZXQgQj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxvLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG8sMF0pLGY9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLEIsUSk7YT17ZGF0YTp4dC5kZWNvZGUoZil9O2JyZWFrfWNhc2UgZC5Kc29uQ29tcGF0aWJsZTp7bGV0IEI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxvLDBdKSxmPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixCLFEpO2E9SlNPTi5wYXJzZSh4dC5kZWNvZGUoZikpO2JyZWFrfWNhc2UgZC5CaW5hcnlTdHJlYW06e2xldCBCPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG8sMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbywwXSk7YT17ZGF0YTpXdChBLEIsUSl9O2JyZWFrfWNhc2UgZC5UZXh0RmlsZTp7YT17cGF0aDpDLmRhdGEucGF0aCxkYXRhOkEuZnNfcmVhZEZpbGUoQy5kYXRhLnBhdGgse2VuY29kaW5nOiJ1dGY4In0pfTticmVha31jYXNlIGQuQmluYXJ5RmlsZTp7YT17cGF0aDpDLmRhdGEucGF0aCxkYXRhOk1yKEEsQy5kYXRhLnBhdGgpfTticmVha31jYXNlIGQuSW1hZ2U6e2xldCBCPW1BKEEsbyk7Qi5kYXRhPVMoQSxvLDAsQi5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSksQi5kaXJlY3Rpb249UyhBLG8sMSxYLkZsb2F0NjQpLEIubWV0YWRhdGE9bmV3IE1hcChCLm1ldGFkYXRhKSxhPUI7YnJlYWt9Y2FzZSBkLk1lc2g6e2xldCBCPW1BKEEsbyk7Qi5udW1iZXJPZlBvaW50cz4wP0IucG9pbnRzPVMoQSxvLDAsQi5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUpOkIucG9pbnRzPUgoQi5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxCLm51bWJlck9mQ2VsbHM+MD9CLmNlbGxzPVMoQSxvLDEsQi5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSk6Qi5jZWxscz1IKEIubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxCLm51bWJlck9mUG9pbnRQaXhlbHM+MD9CLnBvaW50RGF0YT1TKEEsbywyLEIubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkIucG9pbnREYXRhPUgoQi5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/Qi5jZWxsRGF0YT1TKEEsbywzLEIubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5jZWxsRGF0YT1IKEIubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGE9QjticmVha31jYXNlIGQuUG9pbnRTZXQ6e2xldCBCPW1BKEEsbyk7Qi5udW1iZXJPZlBvaW50cz4wP0IucG9pbnRzPVMoQSxvLDAsQi5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTpCLnBvaW50cz1IKEIucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZQb2ludFBpeGVscz4wP0IucG9pbnREYXRhPVMoQSxvLDEsQi5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkIucG9pbnREYXRhPUgoQi5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhPUI7YnJlYWt9Y2FzZSBkLlRyYW5zZm9ybUxpc3Q6e2xldCBCPW1BKEEsbyksUT0wO0IuZm9yRWFjaCgoZixsKT0+e2YudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihmLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzPjAmJihCW2xdLmZpeGVkUGFyYW1ldGVycz1TKEEsbyxRLFguRmxvYXQ2NCkpLFErPTEsZi5udW1iZXJPZlBhcmFtZXRlcnM+MCYmKEJbbF0ucGFyYW1ldGVycz1TKEEsbyxRLGYudHJhbnNmb3JtVHlwZS5wYXJhbWV0ZXJzVmFsdWVUeXBlKSksUSs9MSl9KSxhPUI7YnJlYWt9Y2FzZSBkLlBvbHlEYXRhOntsZXQgQj1tQShBLG8pO0IubnVtYmVyT2ZQb2ludHM+MD9CLnBvaW50cz1TKEEsbywwLFguRmxvYXQzMik6Qi5wb2ludHM9bmV3IEZsb2F0MzJBcnJheSxCLnZlcnRpY2VzQnVmZmVyU2l6ZT4wP0IudmVydGljZXM9UyhBLG8sMSxrLlVJbnQzMik6Qi52ZXJ0aWNlcz1uZXcgVWludDMyQXJyYXksQi5saW5lc0J1ZmZlclNpemU+MD9CLmxpbmVzPVMoQSxvLDIsay5VSW50MzIpOkIubGluZXM9bmV3IFVpbnQzMkFycmF5LEIucG9seWdvbnNCdWZmZXJTaXplPjA/Qi5wb2x5Z29ucz1TKEEsbywzLGsuVUludDMyKTpCLnBvbHlnb25zPW5ldyBVaW50MzJBcnJheSxCLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZT4wP0IudHJpYW5nbGVTdHJpcHM9UyhBLG8sNCxrLlVJbnQzMik6Qi50cmlhbmdsZVN0cmlwcz1uZXcgVWludDMyQXJyYXksQi5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qi5wb2ludERhdGE9UyhBLG8sNSxCLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5wb2ludERhdGE9SChCLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/Qi5jZWxsRGF0YT1TKEEsbyw2LEIucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOkIuY2VsbERhdGE9SChCLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYT1CO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIG91dHB1dCBJbnRlcmZhY2VUeXBlIil9bGV0IGM9e3R5cGU6Qy50eXBlLGRhdGE6YX07RS5wdXNoKGMpfSkse3JldHVyblZhbHVlOmksc3Rkb3V0Omcsc3RkZXJyOnMsb3V0cHV0czpFfX12YXIganQ9SHI7dmFyIHFyPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPCJ1IjtmdW5jdGlvbiBLcihBLGUpe2lmKEE9PW51bGwpcmV0dXJuW107bGV0IHQ9W107Zm9yKGxldCBJPTA7STxBLmxlbmd0aDtJKyspe2xldCByPU9yKEFbSV0sZSk7ciE9PW51bGwmJnQucHVzaChyKX1yZXR1cm4gdH1mdW5jdGlvbiBPcihBLGUpe2lmKEE9PW51bGwpcmV0dXJuIG51bGw7bGV0IHQ9bnVsbDtyZXR1cm4gQS5idWZmZXIhPT12b2lkIDA/dD1BLmJ1ZmZlcjpBLmJ5dGVMZW5ndGghPT12b2lkIDAmJih0PUEpLHFyJiZ0IGluc3RhbmNlb2YgU2hhcmVkQXJyYXlCdWZmZXI/bnVsbDplP3Q6dC5zbGljZSgwKX12YXIgdnQ9S3I7ZnVuY3Rpb24gVHIoQSl7cmV0dXJuW0EuZGF0YSxBLmRpcmVjdGlvbl19dmFyIFp0PVRyO2Z1bmN0aW9uIHhyKEEpe3JldHVybltBLnBvaW50cyxBLnBvaW50RGF0YSxBLmNlbGxzLEEuY2VsbERhdGFdfXZhciBWdD14cjtmdW5jdGlvbiBQcihBKXtyZXR1cm5bQS5wb2ludHMsQS52ZXJ0aWNlcyxBLmxpbmVzLEEucG9seWdvbnMsQS50cmlhbmdsZVN0cmlwcyxBLnBvaW50RGF0YSxBLmNlbGxEYXRhXX12YXIgWHQ9UHI7dmFyIFdyO2Z1bmN0aW9uIFhBKCl7cmV0dXJuIFdyfXZhciBqcjtmdW5jdGlvbiB6dCgpe3JldHVybiBqcn12YXIgdnI7ZnVuY3Rpb24gekEoKXtyZXR1cm4gdnJ9dmFyIExlPW5ldyBNYXA7ZnVuY3Rpb24gWnIoKXtsZXQgQT16QSgpO3JldHVybiB0eXBlb2YgQT4idSImJihBPW51bGwpLEF9ZnVuY3Rpb24gX3QoKXtsZXQgQT1YQSgpO3JldHVybiB0eXBlb2YgQT4idSImJihBPW5ldyBVUkwoIi9waXBlbGluZXMiLGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbikuaHJlZiksQX1mdW5jdGlvbiBfQSgpe2xldCBBPXp0KCk7cmV0dXJuIHR5cGVvZiBBPiJ1IiYmKEE9e30pLEF9YXN5bmMgZnVuY3Rpb24gVnIoQSxlLHQpe2xldCBJPUEscj1BO2lmKHR5cGVvZiBBIT0ic3RyaW5nIiYmKEk9bmV3IFVSTChBLmhyZWYpLHI9SS5ocmVmKSxMZS5oYXMocikpcmV0dXJuIExlLmdldChyKTt7bGV0IGk9YXdhaXQgS3QoQSxlPy50b1N0cmluZygpPz9fdCgpLHQ/P19BKCkpO3JldHVybiBMZS5zZXQocixpKSxpfX1hc3luYyBmdW5jdGlvbiBYcihBLGUsdCxJLHIpe2lmKCFhd2FpdCBPdCgpKXtsZXQgbD0iV2ViQXNzZW1ibHkgU0lNRCBzdXBwb3J0IGlzIHJlcXVpcmVkIC0tIHBsZWFzZSB1cGRhdGUgeW91ciBicm93c2VyLiI7dGhyb3cgYWxlcnQobCksbmV3IEVycm9yKGwpfWxldCBpPXI/LndlYldvcmtlcj8/bnVsbDtpZihpPT09ITEpe2xldCBsPWF3YWl0IFZyKEEudG9TdHJpbmcoKSxyPy5waXBlbGluZUJhc2VVcmwscj8ucGlwZWxpbmVRdWVyeVBhcmFtcz8/X0EoKSk7cmV0dXJuIGp0KGwsZSx0LEkpfWxldCBnPWkscz1yPy5waXBlbGluZVdvcmtlclVybD8/WnIoKSxFPXR5cGVvZiBzIT0ic3RyaW5nIiYmdHlwZW9mIHM/LmhyZWY8InUiP3MuaHJlZjpzLHt3b3JrZXJQcm94eTpDLHdvcmtlcjpvfT1hd2FpdCBZdChnLEUscj8ucGlwZWxpbmVRdWVyeVBhcmFtcz8/X0EoKSk7Zz1vO2xldCBhPVtdO0khPW51bGwmJkkubGVuZ3RoPjAmJkkuZm9yRWFjaChmdW5jdGlvbihsKXtpZihsLnR5cGU9PT1kLkJpbmFyeVN0cmVhbSl7bGV0IHA9bC5kYXRhLmRhdGE7YS5wdXNoKHApfWVsc2UgaWYobC50eXBlPT09ZC5CaW5hcnlGaWxlKXtsZXQgcD1sLmRhdGEuZGF0YTthLnB1c2gocCl9ZWxzZSBpZihsLnR5cGU9PT1kLkltYWdlKXtsZXQgcD1sLmRhdGE7cC5kYXRhIT09bnVsbCYmYS5wdXNoKC4uLlp0KHApKX1lbHNlIGlmKGwudHlwZT09PWQuTWVzaCl7bGV0IHA9bC5kYXRhO2EucHVzaCguLi5WdChwKSl9ZWxzZSBpZihsLnR5cGU9PT1kLlBvbHlEYXRhKXtsZXQgcD1sLmRhdGE7YS5wdXNoKC4uLlh0KHApKX19KTtsZXQgYz1yPy5waXBlbGluZUJhc2VVcmw/P190KCksQj10eXBlb2YgYyE9InN0cmluZyImJnR5cGVvZiBjPy5ocmVmPCJ1Ij9jLmhyZWY6YyxRPUkhPW51bGw/aWUoSSx2dChhLHI/Lm5vQ29weSkpOm51bGwsZj1hd2FpdCBDLnJ1blBpcGVsaW5lKEEudG9TdHJpbmcoKSxCLGUsdCxRLHI/LnBpcGVsaW5lUXVlcnlQYXJhbXM/P19BKCkpO3JldHVybntyZXR1cm5WYWx1ZTpmLnJldHVyblZhbHVlLHN0ZG91dDpmLnN0ZG91dCxzdGRlcnI6Zi5zdGRlcnIsb3V0cHV0czpmLm91dHB1dHMsd2ViV29ya2VyOmd9fXZhciBZPVhyO3ZhciB6cj1udWxsO2Z1bmN0aW9uICR0KCl7cmV0dXJuIHpyfXZhciBiZSxfcj1gaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9AaXRrLXdhc20vZG93bnNhbXBsZUAke2VlfS9kaXN0L3BpcGVsaW5lc2A7ZnVuY3Rpb24gR2EoQSl7YmU9QX1mdW5jdGlvbiBPKCl7aWYodHlwZW9mIGJlPCJ1IilyZXR1cm4gYmU7bGV0IEE9WEEoKTtyZXR1cm4gdHlwZW9mIEE8InUiP0E6X3J9dmFyIEplLCRyPW51bGw7ZnVuY3Rpb24gQUkoQSl7SmU9QX1mdW5jdGlvbiBHKCl7aWYodHlwZW9mIEplPCJ1IilyZXR1cm4gSmU7bGV0IEE9ekEoKTtyZXR1cm4gdHlwZW9mIEE8InUiP0E6JHJ9dmFyIGFBPW51bGw7YXN5bmMgZnVuY3Rpb24gZUkoKXtsZXQgQT1HKCksZT10eXBlb2YgQSE9InN0cmluZyImJnR5cGVvZiBBPy5ocmVmPCJ1Ij9BLmhyZWY6QTthQT1hd2FpdCB5QShlKX1mdW5jdGlvbiBxYShBKXthQT1BfWFzeW5jIGZ1bmN0aW9uIFQoKXtpZihhQSE9PW51bGwpcmV0dXJuIGFBLnRlcm1pbmF0ZWQmJmF3YWl0IGVJKCksYUE7bGV0IEE9JHQoKTtyZXR1cm4gQSE9PW51bGw/QTooYXdhaXQgZUkoKSxhQSl9YXN5bmMgZnVuY3Rpb24gQWcoQSxlPXtzaHJpbmtGYWN0b3JzOlsyLDJdfSl7bGV0IHQ9W3t0eXBlOmQuSW1hZ2V9XSxJPVt7dHlwZTpkLkltYWdlLGRhdGE6QX1dLHI9W107aWYoci5wdXNoKCIwIiksci5wdXNoKCIwIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuc2hyaW5rRmFjdG9ycyl7aWYoZS5zaHJpbmtGYWN0b3JzLmxlbmd0aDwyKXRocm93IG5ldyBFcnJvcignInNocmluay1mYWN0b3JzIiBvcHRpb24gbXVzdCBoYXZlIGEgbGVuZ3RoID4gMicpO3IucHVzaCgiLS1zaHJpbmstZmFjdG9ycyIpLGF3YWl0IFByb21pc2UuYWxsKGUuc2hyaW5rRmFjdG9ycy5tYXAoYXN5bmMgUT0+e3IucHVzaChRLnRvU3RyaW5nKCkpfSkpfWUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgcz0iZG93bnNhbXBsZS1iaW4tc2hyaW5rIixFPWU/LndlYldvcmtlcjtFPT09dm9pZCAwJiYoRT1hd2FpdCBUKCkpO2xldHt3ZWJXb3JrZXI6QyxyZXR1cm5WYWx1ZTpvLHN0ZGVycjphLG91dHB1dHM6Y309YXdhaXQgWShzLHIsdCxJLHtwaXBlbGluZUJhc2VVcmw6TygpLHBpcGVsaW5lV29ya2VyVXJsOkcoKSx3ZWJXb3JrZXI6RSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYobyE9PTAmJmEhPT0iIil0aHJvdyBuZXcgRXJyb3IoYSk7cmV0dXJue3dlYldvcmtlcjpDLGRvd25zYW1wbGVkOmNbMF0/LmRhdGF9fXZhciBlZz1BZzthc3luYyBmdW5jdGlvbiB0ZyhBLGU9e3Nocmlua0ZhY3RvcnM6WzIsMl19KXtsZXQgdD1be3R5cGU6ZC5JbWFnZX1dLEk9W3t0eXBlOmQuSW1hZ2UsZGF0YTpBfV0scj1bXTtpZihyLnB1c2goIjAiKSxyLnB1c2goIjAiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5zaHJpbmtGYWN0b3JzKXtpZihlLnNocmlua0ZhY3RvcnMubGVuZ3RoPDIpdGhyb3cgbmV3IEVycm9yKCcic2hyaW5rLWZhY3RvcnMiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAyJyk7ci5wdXNoKCItLXNocmluay1mYWN0b3JzIiksYXdhaXQgUHJvbWlzZS5hbGwoZS5zaHJpbmtGYWN0b3JzLm1hcChhc3luYyBRPT57ci5wdXNoKFEudG9TdHJpbmcoKSl9KSl9aWYoZS5jcm9wUmFkaXVzKXtpZihlLmNyb3BSYWRpdXMubGVuZ3RoPDIpdGhyb3cgbmV3IEVycm9yKCciY3JvcC1yYWRpdXMiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAyJyk7ci5wdXNoKCItLWNyb3AtcmFkaXVzIiksYXdhaXQgUHJvbWlzZS5hbGwoZS5jcm9wUmFkaXVzLm1hcChhc3luYyBRPT57ci5wdXNoKFEudG9TdHJpbmcoKSl9KSl9bGV0IHM9ImRvd25zYW1wbGUtbGFiZWwtaW1hZ2UiLEU9ZT8ud2ViV29ya2VyO0U9PT12b2lkIDAmJihFPWF3YWl0IFQoKSk7bGV0e3dlYldvcmtlcjpDLHJldHVyblZhbHVlOm8sc3RkZXJyOmEsb3V0cHV0czpjfT1hd2FpdCBZKHMscix0LEkse3BpcGVsaW5lQmFzZVVybDpPKCkscGlwZWxpbmVXb3JrZXJVcmw6RygpLHdlYldvcmtlcjpFLG5vQ29weTplPy5ub0NvcHl9KTtpZihvIT09MCYmYSE9PSIiKXRocm93IG5ldyBFcnJvcihhKTtyZXR1cm57d2ViV29ya2VyOkMsZG93bnNhbXBsZWQ6Y1swXT8uZGF0YX19dmFyIElnPXRnO2FzeW5jIGZ1bmN0aW9uIHJnKEE9e3Nocmlua0ZhY3RvcnM6WzIsMl19KXtsZXQgZT1be3R5cGU6ZC5Kc29uQ29tcGF0aWJsZX1dLHQ9W10sST1bXTtpZihJLnB1c2goIjAiKSxJLnB1c2goIi0tbWVtb3J5LWlvIiksdHlwZW9mIEEuc2hyaW5rRmFjdG9yczwidSIpe2lmKEEuc2hyaW5rRmFjdG9ycy5sZW5ndGg8MSl0aHJvdyBuZXcgRXJyb3IoJyJzaHJpbmstZmFjdG9ycyIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtJLnB1c2goIi0tc2hyaW5rLWZhY3RvcnMiKSxhd2FpdCBQcm9taXNlLmFsbChBLnNocmlua0ZhY3RvcnMubWFwKGFzeW5jIGM9PntJLnB1c2goYy50b1N0cmluZygpKX0pKX1sZXQgaT0iZG93bnNhbXBsZS1zaWdtYSIsZz1BPy53ZWJXb3JrZXI7Zz09PXZvaWQgMCYmKGc9YXdhaXQgVCgpKTtsZXR7d2ViV29ya2VyOnMscmV0dXJuVmFsdWU6RSxzdGRlcnI6QyxvdXRwdXRzOm99PWF3YWl0IFkoaSxJLGUsdCx7cGlwZWxpbmVCYXNlVXJsOk8oKSxwaXBlbGluZVdvcmtlclVybDpHKCksd2ViV29ya2VyOmcsbm9Db3B5OkE/Lm5vQ29weX0pO2lmKEUhPT0wJiZDIT09IiIpdGhyb3cgbmV3IEVycm9yKEMpO3JldHVybnt3ZWJXb3JrZXI6cyxzaWdtYTpvWzBdPy5kYXRhfX12YXIgZ2c9cmc7YXN5bmMgZnVuY3Rpb24gaWcoQSxlPXtzaHJpbmtGYWN0b3JzOlsyLDJdfSl7bGV0IHQ9W3t0eXBlOmQuSW1hZ2V9XSxJPVt7dHlwZTpkLkltYWdlLGRhdGE6QX1dLHI9W107aWYoci5wdXNoKCIwIiksci5wdXNoKCIwIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuc2hyaW5rRmFjdG9ycyl7aWYoZS5zaHJpbmtGYWN0b3JzLmxlbmd0aDwyKXRocm93IG5ldyBFcnJvcignInNocmluay1mYWN0b3JzIiBvcHRpb24gbXVzdCBoYXZlIGEgbGVuZ3RoID4gMicpO3IucHVzaCgiLS1zaHJpbmstZmFjdG9ycyIpLGF3YWl0IFByb21pc2UuYWxsKGUuc2hyaW5rRmFjdG9ycy5tYXAoYXN5bmMgUT0+e3IucHVzaChRLnRvU3RyaW5nKCkpfSkpfWlmKGUuY3JvcFJhZGl1cyl7aWYoZS5jcm9wUmFkaXVzLmxlbmd0aDwyKXRocm93IG5ldyBFcnJvcignImNyb3AtcmFkaXVzIiBvcHRpb24gbXVzdCBoYXZlIGEgbGVuZ3RoID4gMicpO3IucHVzaCgiLS1jcm9wLXJhZGl1cyIpLGF3YWl0IFByb21pc2UuYWxsKGUuY3JvcFJhZGl1cy5tYXAoYXN5bmMgUT0+e3IucHVzaChRLnRvU3RyaW5nKCkpfSkpfWxldCBzPSJkb3duc2FtcGxlIixFPWU/LndlYldvcmtlcjtFPT09dm9pZCAwJiYoRT1hd2FpdCBUKCkpO2xldHt3ZWJXb3JrZXI6QyxyZXR1cm5WYWx1ZTpvLHN0ZGVycjphLG91dHB1dHM6Y309YXdhaXQgWShzLHIsdCxJLHtwaXBlbGluZUJhc2VVcmw6TygpLHBpcGVsaW5lV29ya2VyVXJsOkcoKSx3ZWJXb3JrZXI6RSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYobyE9PTAmJmEhPT0iIil0aHJvdyBuZXcgRXJyb3IoYSk7cmV0dXJue3dlYldvcmtlcjpDLGRvd25zYW1wbGVkOmNbMF0/LmRhdGF9fXZhciBvZz1pZzthc3luYyBmdW5jdGlvbiBuZyhBPXtzaXplOlsxLDFdLHNpZ21hOlsxLDFdfSl7bGV0IGU9W3t0eXBlOmQuSnNvbkNvbXBhdGlibGV9XSx0PVtdLEk9W107aWYoSS5wdXNoKCIwIiksSS5wdXNoKCItLW1lbW9yeS1pbyIpLHR5cGVvZiBBLnNpemU8InUiKXtpZihBLnNpemUubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcic2l6ZSIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtJLnB1c2goIi0tc2l6ZSIpLGF3YWl0IFByb21pc2UuYWxsKEEuc2l6ZS5tYXAoYXN5bmMgYz0+e0kucHVzaChjLnRvU3RyaW5nKCkpfSkpfWlmKHR5cGVvZiBBLnNpZ21hPCJ1Iil7aWYoQS5zaWdtYS5sZW5ndGg8MSl0aHJvdyBuZXcgRXJyb3IoJyJzaWdtYSIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtJLnB1c2goIi0tc2lnbWEiKSxhd2FpdCBQcm9taXNlLmFsbChBLnNpZ21hLm1hcChhc3luYyBjPT57SS5wdXNoKGMudG9TdHJpbmcoKSl9KSl9dHlwZW9mIEEubWF4S2VybmVsV2lkdGg8InUiJiZJLnB1c2goIi0tbWF4LWtlcm5lbC13aWR0aCIsQS5tYXhLZXJuZWxXaWR0aC50b1N0cmluZygpKSx0eXBlb2YgQS5tYXhLZXJuZWxFcnJvcjwidSImJkkucHVzaCgiLS1tYXgta2VybmVsLWVycm9yIixBLm1heEtlcm5lbEVycm9yLnRvU3RyaW5nKCkpO2xldCBpPSJnYXVzc2lhbi1rZXJuZWwtcmFkaXVzIixnPUE/LndlYldvcmtlcjtnPT09dm9pZCAwJiYoZz1hd2FpdCBUKCkpO2xldHt3ZWJXb3JrZXI6cyxyZXR1cm5WYWx1ZTpFLHN0ZGVycjpDLG91dHB1dHM6b309YXdhaXQgWShpLEksZSx0LHtwaXBlbGluZUJhc2VVcmw6TygpLHBpcGVsaW5lV29ya2VyVXJsOkcoKSx3ZWJXb3JrZXI6Zyxub0NvcHk6QT8ubm9Db3B5fSk7aWYoRSE9PTAmJkMhPT0iIil0aHJvdyBuZXcgRXJyb3IoQyk7cmV0dXJue3dlYldvcmtlcjpzLHJhZGl1czpvWzBdPy5kYXRhfX12YXIgYWc9bmc7dmFyIHRJPSdkYXRhOnRleHQvamF2YXNjcmlwdDtjaGFyc2V0PXV0Zi04LHZhciBZZT1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIHFlPShBLHQpPT57Zm9yKHZhciBlIGluIHQpWWUoQSxlLHtnZXQ6dFtlXSxlbnVtZXJhYmxlOiEwfSl9O3ZhciBOdD1TeW1ib2woIkNvbWxpbmsucHJveHkiKSxNZT1TeW1ib2woIkNvbWxpbmsuZW5kcG9pbnQiKSxLZT1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksVkE9U3ltYm9sKCJDb21saW5rLmZpbmFsaXplciIpLG1BPVN5bWJvbCgiQ29tbGluay50aHJvd24iKSxVdD1BPT50eXBlb2YgQT09Im9iamVjdCImJkEhPT1udWxsfHx0eXBlb2YgQT09ImZ1bmN0aW9uIixPZT17Y2FuSGFuZGxlOkE9PlV0KEEpJiZBW050XSxzZXJpYWxpemUoQSl7bGV0e3BvcnQxOnQscG9ydDI6ZX09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiBGQShBLHQpLFtlLFtlXV19LGRlc2VyaWFsaXplKEEpe3JldHVybiBBLnN0YXJ0KCksamUoQSl9fSxUZT17Y2FuSGFuZGxlOkE9PlV0KEEpJiZtQSBpbiBBLHNlcmlhbGl6ZSh7dmFsdWU6QX0pe2xldCB0O3JldHVybiBBIGluc3RhbmNlb2YgRXJyb3I/dD17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTpBLm1lc3NhZ2UsbmFtZTpBLm5hbWUsc3RhY2s6QS5zdGFja319OnQ9e2lzRXJyb3I6ITEsdmFsdWU6QX0sW3QsW11dfSxkZXNlcmlhbGl6ZShBKXt0aHJvdyBBLmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoQS52YWx1ZS5tZXNzYWdlKSxBLnZhbHVlKTpBLnZhbHVlfX0sR3Q9bmV3IE1hcChbWyJwcm94eSIsT2VdLFsidGhyb3ciLFRlXV0pO2Z1bmN0aW9uIHhlKEEsdCl7Zm9yKGxldCBlIG9mIEEpaWYodD09PWV8fGU9PT0iKiJ8fGUgaW5zdGFuY2VvZiBSZWdFeHAmJmUudGVzdCh0KSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBGQShBLHQ9Z2xvYmFsVGhpcyxlPVsiKiJdKXt0LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIEkocil7aWYoIXJ8fCFyLmRhdGEpcmV0dXJuO2lmKCF4ZShlLHIub3JpZ2luKSl7Y29uc29sZS53YXJuKGBJbnZhbGlkIG9yaWdpbiBcJyR7ci5vcmlnaW59XCcgZm9yIGNvbWxpbmsgcHJveHlgKTtyZXR1cm59bGV0e2lkOmcsdHlwZTpvLHBhdGg6bn09T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0sci5kYXRhKSxFPShyLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKFcpLEI7dHJ5e2xldCBzPW4uc2xpY2UoMCwtMSkucmVkdWNlKChsLGEpPT5sW2FdLEEpLEM9bi5yZWR1Y2UoKGwsYSk9PmxbYV0sQSk7c3dpdGNoKG8pe2Nhc2UiR0VUIjpCPUM7YnJlYWs7Y2FzZSJTRVQiOnNbbi5zbGljZSgtMSlbMF1dPVcoci5kYXRhLnZhbHVlKSxCPSEwO2JyZWFrO2Nhc2UiQVBQTFkiOkI9Qy5hcHBseShzLEUpO2JyZWFrO2Nhc2UiQ09OU1RSVUNUIjp7bGV0IGw9bmV3IEMoLi4uRSk7Qj1YZShsKX1icmVhaztjYXNlIkVORFBPSU5UIjp7bGV0e3BvcnQxOmwscG9ydDI6YX09bmV3IE1lc3NhZ2VDaGFubmVsO0ZBKEEsYSksQj1fQShsLFtsXSl9YnJlYWs7Y2FzZSJSRUxFQVNFIjpCPXZvaWQgMDticmVhaztkZWZhdWx0OnJldHVybn19Y2F0Y2gocyl7Qj17dmFsdWU6cyxbbUFdOjB9fVByb21pc2UucmVzb2x2ZShCKS5jYXRjaChzPT4oe3ZhbHVlOnMsW21BXTowfSkpLnRoZW4ocz0+e2xldFtDLGxdPVNBKHMpO3QucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEMpLHtpZDpnfSksbCksbz09PSJSRUxFQVNFIiYmKHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsSSksa3QodCksVkEgaW4gQSYmdHlwZW9mIEFbVkFdPT0iZnVuY3Rpb24iJiZBW1ZBXSgpKX0pLmNhdGNoKHM9PntsZXRbQyxsXT1TQSh7dmFsdWU6bmV3IFR5cGVFcnJvcigiVW5zZXJpYWxpemFibGUgcmV0dXJuIHZhbHVlIiksW21BXTowfSk7dC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sQykse2lkOmd9KSxsKX0pfSksdC5zdGFydCYmdC5zdGFydCgpfWZ1bmN0aW9uIFBlKEEpe3JldHVybiBBLmNvbnN0cnVjdG9yLm5hbWU9PT0iTWVzc2FnZVBvcnQifWZ1bmN0aW9uIGt0KEEpe1BlKEEpJiZBLmNsb3NlKCl9ZnVuY3Rpb24gamUoQSx0KXtyZXR1cm4gWEEoQSxbXSx0KX1mdW5jdGlvbiB5QShBKXtpZihBKXRocm93IG5ldyBFcnJvcigiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlIil9ZnVuY3Rpb24gTHQoQSl7cmV0dXJuIF8oQSx7dHlwZToiUkVMRUFTRSJ9KS50aGVuKCgpPT57a3QoQSl9KX12YXIgd0E9bmV3IFdlYWtNYXAscEE9IkZpbmFsaXphdGlvblJlZ2lzdHJ5ImluIGdsb2JhbFRoaXMmJm5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShBPT57bGV0IHQ9KHdBLmdldChBKXx8MCktMTt3QS5zZXQoQSx0KSx0PT09MCYmTHQoQSl9KTtmdW5jdGlvbiBXZShBLHQpe2xldCBlPSh3QS5nZXQodCl8fDApKzE7d0Euc2V0KHQsZSkscEEmJnBBLnJlZ2lzdGVyKEEsdCxBKX1mdW5jdGlvbiBaZShBKXtwQSYmcEEudW5yZWdpc3RlcihBKX1mdW5jdGlvbiBYQShBLHQ9W10sZT1mdW5jdGlvbigpe30pe2xldCBJPSExLHI9bmV3IFByb3h5KGUse2dldChnLG8pe2lmKHlBKEkpLG89PT1LZSlyZXR1cm4oKT0+e1plKHIpLEx0KEEpLEk9ITB9O2lmKG89PT0idGhlbiIpe2lmKHQubGVuZ3RoPT09MClyZXR1cm57dGhlbjooKT0+cn07bGV0IG49XyhBLHt0eXBlOiJHRVQiLHBhdGg6dC5tYXAoRT0+RS50b1N0cmluZygpKX0pLnRoZW4oVyk7cmV0dXJuIG4udGhlbi5iaW5kKG4pfXJldHVybiBYQShBLFsuLi50LG9dKX0sc2V0KGcsbyxuKXt5QShJKTtsZXRbRSxCXT1TQShuKTtyZXR1cm4gXyhBLHt0eXBlOiJTRVQiLHBhdGg6Wy4uLnQsb10ubWFwKHM9PnMudG9TdHJpbmcoKSksdmFsdWU6RX0sQikudGhlbihXKX0sYXBwbHkoZyxvLG4pe3lBKEkpO2xldCBFPXRbdC5sZW5ndGgtMV07aWYoRT09PU1lKXJldHVybiBfKEEse3R5cGU6IkVORFBPSU5UIn0pLnRoZW4oVyk7aWYoRT09PSJiaW5kIilyZXR1cm4gWEEoQSx0LnNsaWNlKDAsLTEpKTtsZXRbQixzXT1SdChuKTtyZXR1cm4gXyhBLHt0eXBlOiJBUFBMWSIscGF0aDp0Lm1hcChDPT5DLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpCfSxzKS50aGVuKFcpfSxjb25zdHJ1Y3QoZyxvKXt5QShJKTtsZXRbbixFXT1SdChvKTtyZXR1cm4gXyhBLHt0eXBlOiJDT05TVFJVQ1QiLHBhdGg6dC5tYXAoQj0+Qi50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6bn0sRSkudGhlbihXKX19KTtyZXR1cm4gV2UocixBKSxyfWZ1bmN0aW9uIFZlKEEpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLEEpfWZ1bmN0aW9uIFJ0KEEpe2xldCB0PUEubWFwKFNBKTtyZXR1cm5bdC5tYXAoZT0+ZVswXSksVmUodC5tYXAoZT0+ZVsxXSkpXX12YXIgYnQ9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gX0EoQSx0KXtyZXR1cm4gYnQuc2V0KEEsdCksQX1mdW5jdGlvbiBYZShBKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihBLHtbTnRdOiEwfSl9ZnVuY3Rpb24gU0EoQSl7Zm9yKGxldFt0LGVdb2YgR3QpaWYoZS5jYW5IYW5kbGUoQSkpe2xldFtJLHJdPWUuc2VyaWFsaXplKEEpO3JldHVyblt7dHlwZToiSEFORExFUiIsbmFtZTp0LHZhbHVlOkl9LHJdfXJldHVyblt7dHlwZToiUkFXIix2YWx1ZTpBfSxidC5nZXQoQSl8fFtdXX1mdW5jdGlvbiBXKEEpe3N3aXRjaChBLnR5cGUpe2Nhc2UiSEFORExFUiI6cmV0dXJuIEd0LmdldChBLm5hbWUpLmRlc2VyaWFsaXplKEEudmFsdWUpO2Nhc2UiUkFXIjpyZXR1cm4gQS52YWx1ZX19ZnVuY3Rpb24gXyhBLHQsZSl7cmV0dXJuIG5ldyBQcm9taXNlKEk9PntsZXQgcj1fZSgpO0EuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gZyhvKXshby5kYXRhfHwhby5kYXRhLmlkfHxvLmRhdGEuaWQhPT1yfHwoQS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixnKSxJKG8uZGF0YSkpfSksQS5zdGFydCYmQS5zdGFydCgpLEEucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7aWQ6cn0sdCksZSl9KX1mdW5jdGlvbiBfZSgpe3JldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikudG9TdHJpbmcoMTYpKS5qb2luKCItIil9ZnVuY3Rpb24gb0EoQSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseSh0LGFyZ3VtZW50cyl9fXZhcnt0b1N0cmluZzp6ZX09T2JqZWN0LnByb3RvdHlwZSx7Z2V0UHJvdG90eXBlT2Y6dkF9PU9iamVjdCx7aXRlcmF0b3I6TkEsdG9TdHJpbmdUYWc6WXR9PVN5bWJvbCxVQT0oQT0+dD0+e2xldCBlPXplLmNhbGwodCk7cmV0dXJuIEFbZV18fChBW2VdPWUuc2xpY2UoOCwtMSkudG9Mb3dlckNhc2UoKSl9KShPYmplY3QuY3JlYXRlKG51bGwpKSxMPUE9PihBPUEudG9Mb3dlckNhc2UoKSx0PT5VQSh0KT09PUEpLEdBPUE9PnQ9PnR5cGVvZiB0PT09QSx7aXNBcnJheTp2fT1BcnJheSx6PUdBKCJ1bmRlZmluZWQiKTtmdW5jdGlvbiBnQShBKXtyZXR1cm4gQSE9PW51bGwmJiF6KEEpJiZBLmNvbnN0cnVjdG9yIT09bnVsbCYmIXooQS5jb25zdHJ1Y3RvcikmJk4oQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikmJkEuY29uc3RydWN0b3IuaXNCdWZmZXIoQSl9dmFyIHF0PUwoIkFycmF5QnVmZmVyIik7ZnVuY3Rpb24gdmUoQSl7bGV0IHQ7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJkFycmF5QnVmZmVyLmlzVmlldz90PUFycmF5QnVmZmVyLmlzVmlldyhBKTp0PUEmJkEuYnVmZmVyJiZxdChBLmJ1ZmZlciksdH12YXIgJGU9R0EoInN0cmluZyIpLE49R0EoImZ1bmN0aW9uIiksTXQ9R0EoIm51bWJlciIpLGlBPUE9PkEhPT1udWxsJiZ0eXBlb2YgQT09Im9iamVjdCIsQUk9QT0+QT09PSEwfHxBPT09ITEsUkE9QT0+e2lmKFVBKEEpIT09Im9iamVjdCIpcmV0dXJuITE7bGV0IHQ9dkEoQSk7cmV0dXJuKHQ9PT1udWxsfHx0PT09T2JqZWN0LnByb3RvdHlwZXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpPT09bnVsbCkmJiEoWXQgaW4gQSkmJiEoTkEgaW4gQSl9LHRJPUE9PntpZighaUEoQSl8fGdBKEEpKXJldHVybiExO3RyeXtyZXR1cm4gT2JqZWN0LmtleXMoQSkubGVuZ3RoPT09MCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKEEpPT09T2JqZWN0LnByb3RvdHlwZX1jYXRjaHtyZXR1cm4hMX19LGVJPUwoIkRhdGUiKSxJST1MKCJGaWxlIiksckk9TCgiQmxvYiIpLG9JPUwoIkZpbGVMaXN0IiksZ0k9QT0+aUEoQSkmJk4oQS5waXBlKSxpST1BPT57bGV0IHQ7cmV0dXJuIEEmJih0eXBlb2YgRm9ybURhdGE9PSJmdW5jdGlvbiImJkEgaW5zdGFuY2VvZiBGb3JtRGF0YXx8TihBLmFwcGVuZCkmJigodD1VQShBKSk9PT0iZm9ybWRhdGEifHx0PT09Im9iamVjdCImJk4oQS50b1N0cmluZykmJkEudG9TdHJpbmcoKT09PSJbb2JqZWN0IEZvcm1EYXRhXSIpKX0sc0k9TCgiVVJMU2VhcmNoUGFyYW1zIiksW25JLENJLEJJLGFJXT1bIlJlYWRhYmxlU3RyZWFtIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiSGVhZGVycyJdLm1hcChMKSxRST1BPT5BLnRyaW0/QS50cmltKCk6QS5yZXBsYWNlKC9eW1xcc1xcdUZFRkZcXHhBMF0rfFtcXHNcXHVGRUZGXFx4QTBdKyQvZywiIik7ZnVuY3Rpb24gc0EoQSx0LHthbGxPd25LZXlzOmU9ITF9PXt9KXtpZihBPT09bnVsbHx8dHlwZW9mIEE+InUiKXJldHVybjtsZXQgSSxyO2lmKHR5cGVvZiBBIT0ib2JqZWN0IiYmKEE9W0FdKSx2KEEpKWZvcihJPTAscj1BLmxlbmd0aDtJPHI7SSsrKXQuY2FsbChudWxsLEFbSV0sSSxBKTtlbHNle2lmKGdBKEEpKXJldHVybjtsZXQgZz1lP09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpOk9iamVjdC5rZXlzKEEpLG89Zy5sZW5ndGgsbjtmb3IoST0wO0k8bztJKyspbj1nW0ldLHQuY2FsbChudWxsLEFbbl0sbixBKX19ZnVuY3Rpb24gS3QoQSx0KXtpZihnQShBKSlyZXR1cm4gbnVsbDt0PXQudG9Mb3dlckNhc2UoKTtsZXQgZT1PYmplY3Qua2V5cyhBKSxJPWUubGVuZ3RoLHI7Zm9yKDtJLS0gPjA7KWlmKHI9ZVtJXSx0PT09ci50b0xvd2VyQ2FzZSgpKXJldHVybiByO3JldHVybiBudWxsfXZhciBaPXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzpnbG9iYWwsT3Q9QT0+IXooQSkmJkEhPT1aO2Z1bmN0aW9uIHpBKCl7bGV0e2Nhc2VsZXNzOkEsc2tpcFVuZGVmaW5lZDp0fT1PdCh0aGlzKSYmdGhpc3x8e30sZT17fSxJPShyLGcpPT57bGV0IG89QSYmS3QoZSxnKXx8ZztSQShlW29dKSYmUkEocik/ZVtvXT16QShlW29dLHIpOlJBKHIpP2Vbb109ekEoe30scik6dihyKT9lW29dPXIuc2xpY2UoKTooIXR8fCF6KHIpKSYmKGVbb109cil9O2ZvcihsZXQgcj0wLGc9YXJndW1lbnRzLmxlbmd0aDtyPGc7cisrKWFyZ3VtZW50c1tyXSYmc0EoYXJndW1lbnRzW3JdLEkpO3JldHVybiBlfXZhciBFST0oQSx0LGUse2FsbE93bktleXM6SX09e30pPT4oc0EodCwocixnKT0+e2UmJk4ocik/QVtnXT1vQShyLGUpOkFbZ109cn0se2FsbE93bktleXM6SX0pLEEpLGNJPUE9PihBLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKEE9QS5zbGljZSgxKSksQSksZkk9KEEsdCxlLEkpPT57QS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSxJKSxBLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1BLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJzdXBlciIse3ZhbHVlOnQucHJvdG90eXBlfSksZSYmT2JqZWN0LmFzc2lnbihBLnByb3RvdHlwZSxlKX0sbEk9KEEsdCxlLEkpPT57bGV0IHIsZyxvLG49e307aWYodD10fHx7fSxBPT1udWxsKXJldHVybiB0O2Rve2ZvcihyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpLGc9ci5sZW5ndGg7Zy0tID4wOylvPXJbZ10sKCFJfHxJKG8sQSx0KSkmJiFuW29dJiYodFtvXT1BW29dLG5bb109ITApO0E9ZSE9PSExJiZ2QShBKX13aGlsZShBJiYoIWV8fGUoQSx0KSkmJkEhPT1PYmplY3QucHJvdG90eXBlKTtyZXR1cm4gdH0sdUk9KEEsdCxlKT0+e0E9U3RyaW5nKEEpLChlPT09dm9pZCAwfHxlPkEubGVuZ3RoKSYmKGU9QS5sZW5ndGgpLGUtPXQubGVuZ3RoO2xldCBJPUEuaW5kZXhPZih0LGUpO3JldHVybiBJIT09LTEmJkk9PT1lfSxkST1BPT57aWYoIUEpcmV0dXJuIG51bGw7aWYodihBKSlyZXR1cm4gQTtsZXQgdD1BLmxlbmd0aDtpZighTXQodCkpcmV0dXJuIG51bGw7bGV0IGU9bmV3IEFycmF5KHQpO2Zvcig7dC0tID4wOyllW3RdPUFbdF07cmV0dXJuIGV9LERJPShBPT50PT5BJiZ0IGluc3RhbmNlb2YgQSkodHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZ2QShVaW50OEFycmF5KSksaEk9KEEsdCk9PntsZXQgST0oQSYmQVtOQV0pLmNhbGwoQSkscjtmb3IoOyhyPUkubmV4dCgpKSYmIXIuZG9uZTspe2xldCBnPXIudmFsdWU7dC5jYWxsKEEsZ1swXSxnWzFdKX19LHlJPShBLHQpPT57bGV0IGUsST1bXTtmb3IoOyhlPUEuZXhlYyh0KSkhPT1udWxsOylJLnB1c2goZSk7cmV0dXJuIEl9LG1JPUwoIkhUTUxGb3JtRWxlbWVudCIpLHdJPUE9PkEudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bLV9cXHNdKFthLXpcXGRdKShcXHcqKS9nLGZ1bmN0aW9uKGUsSSxyKXtyZXR1cm4gSS50b1VwcGVyQ2FzZSgpK3J9KSxIdD0oKHtoYXNPd25Qcm9wZXJ0eTpBfSk9Pih0LGUpPT5BLmNhbGwodCxlKSkoT2JqZWN0LnByb3RvdHlwZSkscEk9TCgiUmVnRXhwIiksVHQ9KEEsdCk9PntsZXQgZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhBKSxJPXt9O3NBKGUsKHIsZyk9PntsZXQgbzsobz10KHIsZyxBKSkhPT0hMSYmKElbZ109b3x8cil9KSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhBLEkpfSxTST1BPT57VHQoQSwodCxlKT0+e2lmKE4oQSkmJlsiYXJndW1lbnRzIiwiY2FsbGVyIiwiY2FsbGVlIl0uaW5kZXhPZihlKSE9PS0xKXJldHVybiExO2xldCBJPUFbZV07aWYoTihJKSl7aWYodC5lbnVtZXJhYmxlPSExLCJ3cml0YWJsZSJpbiB0KXt0LndyaXRhYmxlPSExO3JldHVybn10LnNldHx8KHQuc2V0PSgpPT57dGhyb3cgRXJyb3IoIkNhbiBub3QgcmV3cml0ZSByZWFkLW9ubHkgbWV0aG9kIFwnIitlKyJcJyIpfSl9fSl9LEZJPShBLHQpPT57bGV0IGU9e30sST1yPT57ci5mb3JFYWNoKGc9PntlW2ddPSEwfSl9O3JldHVybiB2KEEpP0koQSk6SShTdHJpbmcoQSkuc3BsaXQodCkpLGV9LFJJPSgpPT57fSxOST0oQSx0KT0+QSE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKEE9K0EpP0E6dDtmdW5jdGlvbiBVSShBKXtyZXR1cm4hIShBJiZOKEEuYXBwZW5kKSYmQVtZdF09PT0iRm9ybURhdGEiJiZBW05BXSl9dmFyIEdJPUE9PntsZXQgdD1uZXcgQXJyYXkoMTApLGU9KEkscik9PntpZihpQShJKSl7aWYodC5pbmRleE9mKEkpPj0wKXJldHVybjtpZihnQShJKSlyZXR1cm4gSTtpZighKCJ0b0pTT04iaW4gSSkpe3Rbcl09STtsZXQgZz12KEkpP1tdOnt9O3JldHVybiBzQShJLChvLG4pPT57bGV0IEU9ZShvLHIrMSk7IXooRSkmJihnW25dPUUpfSksdFtyXT12b2lkIDAsZ319cmV0dXJuIEl9O3JldHVybiBlKEEsMCl9LGtJPUwoIkFzeW5jRnVuY3Rpb24iKSxMST1BPT5BJiYoaUEoQSl8fE4oQSkpJiZOKEEudGhlbikmJk4oQS5jYXRjaCkseHQ9KChBLHQpPT5BP3NldEltbWVkaWF0ZTp0PygoZSxJKT0+KFouYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKHtzb3VyY2U6cixkYXRhOmd9KT0+e3I9PT1aJiZnPT09ZSYmSS5sZW5ndGgmJkkuc2hpZnQoKSgpfSwhMSkscj0+e0kucHVzaChyKSxaLnBvc3RNZXNzYWdlKGUsIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOmU9PnNldFRpbWVvdXQoZSkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsTihaLnBvc3RNZXNzYWdlKSksYkk9dHlwZW9mIHF1ZXVlTWljcm90YXNrPCJ1Ij9xdWV1ZU1pY3JvdGFzay5iaW5kKFopOnR5cGVvZiBwcm9jZXNzPCJ1IiYmcHJvY2Vzcy5uZXh0VGlja3x8eHQsSkk9QT0+QSE9bnVsbCYmTihBW05BXSksaT17aXNBcnJheTp2LGlzQXJyYXlCdWZmZXI6cXQsaXNCdWZmZXI6Z0EsaXNGb3JtRGF0YTppSSxpc0FycmF5QnVmZmVyVmlldzp2ZSxpc1N0cmluZzokZSxpc051bWJlcjpNdCxpc0Jvb2xlYW46QUksaXNPYmplY3Q6aUEsaXNQbGFpbk9iamVjdDpSQSxpc0VtcHR5T2JqZWN0OnRJLGlzUmVhZGFibGVTdHJlYW06bkksaXNSZXF1ZXN0OkNJLGlzUmVzcG9uc2U6QkksaXNIZWFkZXJzOmFJLGlzVW5kZWZpbmVkOnosaXNEYXRlOmVJLGlzRmlsZTpJSSxpc0Jsb2I6ckksaXNSZWdFeHA6cEksaXNGdW5jdGlvbjpOLGlzU3RyZWFtOmdJLGlzVVJMU2VhcmNoUGFyYW1zOnNJLGlzVHlwZWRBcnJheTpESSxpc0ZpbGVMaXN0Om9JLGZvckVhY2g6c0EsbWVyZ2U6ekEsZXh0ZW5kOkVJLHRyaW06UUksc3RyaXBCT006Y0ksaW5oZXJpdHM6ZkksdG9GbGF0T2JqZWN0OmxJLGtpbmRPZjpVQSxraW5kT2ZUZXN0OkwsZW5kc1dpdGg6dUksdG9BcnJheTpkSSxmb3JFYWNoRW50cnk6aEksbWF0Y2hBbGw6eUksaXNIVE1MRm9ybTptSSxoYXNPd25Qcm9wZXJ0eTpIdCxoYXNPd25Qcm9wOkh0LHJlZHVjZURlc2NyaXB0b3JzOlR0LGZyZWV6ZU1ldGhvZHM6U0ksdG9PYmplY3RTZXQ6RkksdG9DYW1lbENhc2U6d0ksbm9vcDpSSSx0b0Zpbml0ZU51bWJlcjpOSSxmaW5kS2V5Okt0LGdsb2JhbDpaLGlzQ29udGV4dERlZmluZWQ6T3QsaXNTcGVjQ29tcGxpYW50Rm9ybTpVSSx0b0pTT05PYmplY3Q6R0ksaXNBc3luY0ZuOmtJLGlzVGhlbmFibGU6TEksc2V0SW1tZWRpYXRlOnh0LGFzYXA6YkksaXNJdGVyYWJsZTpKSX07ZnVuY3Rpb24gJChBLHQsZSxJLHIpe0Vycm9yLmNhbGwodGhpcyksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrLHRoaXMubWVzc2FnZT1BLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsdCYmKHRoaXMuY29kZT10KSxlJiYodGhpcy5jb25maWc9ZSksSSYmKHRoaXMucmVxdWVzdD1JKSxyJiYodGhpcy5yZXNwb25zZT1yLHRoaXMuc3RhdHVzPXIuc3RhdHVzP3Iuc3RhdHVzOm51bGwpfWkuaW5oZXJpdHMoJCxFcnJvcix7dG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJue21lc3NhZ2U6dGhpcy5tZXNzYWdlLG5hbWU6dGhpcy5uYW1lLGRlc2NyaXB0aW9uOnRoaXMuZGVzY3JpcHRpb24sbnVtYmVyOnRoaXMubnVtYmVyLGZpbGVOYW1lOnRoaXMuZmlsZU5hbWUsbGluZU51bWJlcjp0aGlzLmxpbmVOdW1iZXIsY29sdW1uTnVtYmVyOnRoaXMuY29sdW1uTnVtYmVyLHN0YWNrOnRoaXMuc3RhY2ssY29uZmlnOmkudG9KU09OT2JqZWN0KHRoaXMuY29uZmlnKSxjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5zdGF0dXN9fX0pO3ZhciBQdD0kLnByb3RvdHlwZSxqdD17fTtbIkVSUl9CQURfT1BUSU9OX1ZBTFVFIiwiRVJSX0JBRF9PUFRJT04iLCJFQ09OTkFCT1JURUQiLCJFVElNRURPVVQiLCJFUlJfTkVUV09SSyIsIkVSUl9GUl9UT09fTUFOWV9SRURJUkVDVFMiLCJFUlJfREVQUkVDQVRFRCIsIkVSUl9CQURfUkVTUE9OU0UiLCJFUlJfQkFEX1JFUVVFU1QiLCJFUlJfQ0FOQ0VMRUQiLCJFUlJfTk9UX1NVUFBPUlQiLCJFUlJfSU5WQUxJRF9VUkwiXS5mb3JFYWNoKEE9PntqdFtBXT17dmFsdWU6QX19KTtPYmplY3QuZGVmaW5lUHJvcGVydGllcygkLGp0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUHQsImlzQXhpb3NFcnJvciIse3ZhbHVlOiEwfSk7JC5mcm9tPShBLHQsZSxJLHIsZyk9PntsZXQgbz1PYmplY3QuY3JlYXRlKFB0KTtpLnRvRmxhdE9iamVjdChBLG8sZnVuY3Rpb24ocyl7cmV0dXJuIHMhPT1FcnJvci5wcm90b3R5cGV9LEI9PkIhPT0iaXNBeGlvc0Vycm9yIik7bGV0IG49QSYmQS5tZXNzYWdlP0EubWVzc2FnZToiRXJyb3IiLEU9dD09bnVsbCYmQT9BLmNvZGU6dDtyZXR1cm4gJC5jYWxsKG8sbixFLGUsSSxyKSxBJiZvLmNhdXNlPT1udWxsJiZPYmplY3QuZGVmaW5lUHJvcGVydHkobywiY2F1c2UiLHt2YWx1ZTpBLGNvbmZpZ3VyYWJsZTohMH0pLG8ubmFtZT1BJiZBLm5hbWV8fCJFcnJvciIsZyYmT2JqZWN0LmFzc2lnbihvLGcpLG99O3ZhciB1PSQ7dmFyIGtBPW51bGw7ZnVuY3Rpb24gJEEoQSl7cmV0dXJuIGkuaXNQbGFpbk9iamVjdChBKXx8aS5pc0FycmF5KEEpfWZ1bmN0aW9uIFp0KEEpe3JldHVybiBpLmVuZHNXaXRoKEEsIltdIik/QS5zbGljZSgwLC0yKTpBfWZ1bmN0aW9uIFd0KEEsdCxlKXtyZXR1cm4gQT9BLmNvbmNhdCh0KS5tYXAoZnVuY3Rpb24ocixnKXtyZXR1cm4gcj1adChyKSwhZSYmZz8iWyIrcisiXSI6cn0pLmpvaW4oZT8iLiI6IiIpOnR9ZnVuY3Rpb24gSEkoQSl7cmV0dXJuIGkuaXNBcnJheShBKSYmIUEuc29tZSgkQSl9dmFyIFlJPWkudG9GbGF0T2JqZWN0KGkse30sbnVsbCxmdW5jdGlvbih0KXtyZXR1cm4vXmlzW0EtWl0vLnRlc3QodCl9KTtmdW5jdGlvbiBxSShBLHQsZSl7aWYoIWkuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7dD10fHxuZXcoa0F8fEZvcm1EYXRhKSxlPWkudG9GbGF0T2JqZWN0KGUse21ldGFUb2tlbnM6ITAsZG90czohMSxpbmRleGVzOiExfSwhMSxmdW5jdGlvbihmLGMpe3JldHVybiFpLmlzVW5kZWZpbmVkKGNbZl0pfSk7bGV0IEk9ZS5tZXRhVG9rZW5zLHI9ZS52aXNpdG9yfHxzLGc9ZS5kb3RzLG89ZS5pbmRleGVzLEU9KGUuQmxvYnx8dHlwZW9mIEJsb2I8InUiJiZCbG9iKSYmaS5pc1NwZWNDb21wbGlhbnRGb3JtKHQpO2lmKCFpLmlzRnVuY3Rpb24ocikpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBCKFEpe2lmKFE9PT1udWxsKXJldHVybiIiO2lmKGkuaXNEYXRlKFEpKXJldHVybiBRLnRvSVNPU3RyaW5nKCk7aWYoaS5pc0Jvb2xlYW4oUSkpcmV0dXJuIFEudG9TdHJpbmcoKTtpZighRSYmaS5pc0Jsb2IoUSkpdGhyb3cgbmV3IHUoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7cmV0dXJuIGkuaXNBcnJheUJ1ZmZlcihRKXx8aS5pc1R5cGVkQXJyYXkoUSk/RSYmdHlwZW9mIEJsb2I9PSJmdW5jdGlvbiI/bmV3IEJsb2IoW1FdKTpCdWZmZXIuZnJvbShRKTpRfWZ1bmN0aW9uIHMoUSxmLGMpe2xldCBEPVE7aWYoUSYmIWMmJnR5cGVvZiBRPT0ib2JqZWN0Iil7aWYoaS5lbmRzV2l0aChmLCJ7fSIpKWY9ST9mOmYuc2xpY2UoMCwtMiksUT1KU09OLnN0cmluZ2lmeShRKTtlbHNlIGlmKGkuaXNBcnJheShRKSYmSEkoUSl8fChpLmlzRmlsZUxpc3QoUSl8fGkuZW5kc1dpdGgoZiwiW10iKSkmJihEPWkudG9BcnJheShRKSkpcmV0dXJuIGY9WnQoZiksRC5mb3JFYWNoKGZ1bmN0aW9uKHksUil7IShpLmlzVW5kZWZpbmVkKHkpfHx5PT09bnVsbCkmJnQuYXBwZW5kKG89PT0hMD9XdChbZl0sUixnKTpvPT09bnVsbD9mOmYrIltdIixCKHkpKX0pLCExfXJldHVybiAkQShRKT8hMDoodC5hcHBlbmQoV3QoYyxmLGcpLEIoUSkpLCExKX1sZXQgQz1bXSxsPU9iamVjdC5hc3NpZ24oWUkse2RlZmF1bHRWaXNpdG9yOnMsY29udmVydFZhbHVlOkIsaXNWaXNpdGFibGU6JEF9KTtmdW5jdGlvbiBhKFEsZil7aWYoIWkuaXNVbmRlZmluZWQoUSkpe2lmKEMuaW5kZXhPZihRKSE9PS0xKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitmLmpvaW4oIi4iKSk7Qy5wdXNoKFEpLGkuZm9yRWFjaChRLGZ1bmN0aW9uKEQsRil7KCEoaS5pc1VuZGVmaW5lZChEKXx8RD09PW51bGwpJiZyLmNhbGwodCxELGkuaXNTdHJpbmcoRik/Ri50cmltKCk6RixmLGwpKT09PSEwJiZhKEQsZj9mLmNvbmNhdChGKTpbRl0pfSksQy5wb3AoKX19aWYoIWkuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZGF0YSBtdXN0IGJlIGFuIG9iamVjdCIpO3JldHVybiBhKEEpLHR9dmFyIFQ9cUk7ZnVuY3Rpb24gVnQoQSl7bGV0IHQ9eyIhIjoiJTI1MjEiLCJcJyI6IiUyNTI3IiwiKCI6IiUyNTI4IiwiKSI6IiUyNTI5IiwifiI6IiUyNTdFIiwiJTI1MjAiOiIrIiwiJTI1MDAiOiJcXDAifTtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEEpLnJlcGxhY2UoL1shXCcoKX5dfCUyNTIwfCUyNTAwL2csZnVuY3Rpb24oSSl7cmV0dXJuIHRbSV19KX1mdW5jdGlvbiBYdChBLHQpe3RoaXMuX3BhaXJzPVtdLEEmJlQoQSx0aGlzLHQpfXZhciBfdD1YdC5wcm90b3R5cGU7X3QuYXBwZW5kPWZ1bmN0aW9uKHQsZSl7dGhpcy5fcGFpcnMucHVzaChbdCxlXSl9O190LnRvU3RyaW5nPWZ1bmN0aW9uKHQpe2xldCBlPXQ/ZnVuY3Rpb24oSSl7cmV0dXJuIHQuY2FsbCh0aGlzLEksVnQpfTpWdDtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKHIpe3JldHVybiBlKHJbMF0pKyI9IitlKHJbMV0pfSwiIikuam9pbigiJiIpfTt2YXIgTEE9WHQ7ZnVuY3Rpb24gTUkoQSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lMjUzQS9naSwiOiIpLnJlcGxhY2UoLyUyNTI0L2csIiQiKS5yZXBsYWNlKC8lMjUyQy9naSwiLCIpLnJlcGxhY2UoLyUyNTIwL2csIisiKX1mdW5jdGlvbiBuQShBLHQsZSl7aWYoIXQpcmV0dXJuIEE7bGV0IEk9ZSYmZS5lbmNvZGV8fE1JO2kuaXNGdW5jdGlvbihlKSYmKGU9e3NlcmlhbGl6ZTplfSk7bGV0IHI9ZSYmZS5zZXJpYWxpemUsZztpZihyP2c9cih0LGUpOmc9aS5pc1VSTFNlYXJjaFBhcmFtcyh0KT90LnRvU3RyaW5nKCk6bmV3IExBKHQsZSkudG9TdHJpbmcoSSksZyl7bGV0IG89QS5pbmRleE9mKCIlMjMiKTtvIT09LTEmJihBPUEuc2xpY2UoMCxvKSksQSs9KEEuaW5kZXhPZigiPyIpPT09LTE/Ij8iOiImIikrZ31yZXR1cm4gQX12YXIgQXQ9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmhhbmRsZXJzPVtdfXVzZSh0LGUsSSl7cmV0dXJuIHRoaXMuaGFuZGxlcnMucHVzaCh7ZnVsZmlsbGVkOnQscmVqZWN0ZWQ6ZSxzeW5jaHJvbm91czpJP0kuc3luY2hyb25vdXM6ITEscnVuV2hlbjpJP0kucnVuV2hlbjpudWxsfSksdGhpcy5oYW5kbGVycy5sZW5ndGgtMX1lamVjdCh0KXt0aGlzLmhhbmRsZXJzW3RdJiYodGhpcy5oYW5kbGVyc1t0XT1udWxsKX1jbGVhcigpe3RoaXMuaGFuZGxlcnMmJih0aGlzLmhhbmRsZXJzPVtdKX1mb3JFYWNoKHQpe2kuZm9yRWFjaCh0aGlzLmhhbmRsZXJzLGZ1bmN0aW9uKEkpe0khPT1udWxsJiZ0KEkpfSl9fSx0dD1BdDt2YXIgYkE9e3NpbGVudEpTT05QYXJzaW5nOiEwLGZvcmNlZEpTT05QYXJzaW5nOiEwLGNsYXJpZnlUaW1lb3V0RXJyb3I6ITF9O3ZhciB6dD10eXBlb2YgVVJMU2VhcmNoUGFyYW1zPCJ1Ij9VUkxTZWFyY2hQYXJhbXM6TEE7dmFyIHZ0PXR5cGVvZiBGb3JtRGF0YTwidSI/Rm9ybURhdGE6bnVsbDt2YXIgJHQ9dHlwZW9mIEJsb2I8InUiP0Jsb2I6bnVsbDt2YXIgQWU9e2lzQnJvd3NlcjohMCxjbGFzc2VzOntVUkxTZWFyY2hQYXJhbXM6enQsRm9ybURhdGE6dnQsQmxvYjokdH0scHJvdG9jb2xzOlsiaHR0cCIsImh0dHBzIiwiZmlsZSIsImJsb2IiLCJ1cmwiLCJkYXRhIl19O3ZhciBydD17fTtxZShydCx7aGFzQnJvd3NlckVudjooKT0+SXQsaGFzU3RhbmRhcmRCcm93c2VyRW52OigpPT5LSSxoYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnY6KCk9Pk9JLG5hdmlnYXRvcjooKT0+ZXQsb3JpZ2luOigpPT5USX0pO3ZhciBJdD10eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9mIGRvY3VtZW50PCJ1IixldD10eXBlb2YgbmF2aWdhdG9yPT0ib2JqZWN0IiYmbmF2aWdhdG9yfHx2b2lkIDAsS0k9SXQmJighZXR8fFsiUmVhY3ROYXRpdmUiLCJOYXRpdmVTY3JpcHQiLCJOUyJdLmluZGV4T2YoZXQucHJvZHVjdCk8MCksT0k9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlPCJ1IiYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZ0eXBlb2Ygc2VsZi5pbXBvcnRTY3JpcHRzPT0iZnVuY3Rpb24iLFRJPUl0JiZ3aW5kb3cubG9jYXRpb24uaHJlZnx8Imh0dHA6Ly9sb2NhbGhvc3QiO3ZhciBoPXsuLi5ydCwuLi5BZX07ZnVuY3Rpb24gb3QoQSx0KXtyZXR1cm4gVChBLG5ldyBoLmNsYXNzZXMuVVJMU2VhcmNoUGFyYW1zLHt2aXNpdG9yOmZ1bmN0aW9uKGUsSSxyLGcpe3JldHVybiBoLmlzTm9kZSYmaS5pc0J1ZmZlcihlKT8odGhpcy5hcHBlbmQoSSxlLnRvU3RyaW5nKCJiYXNlNjQiKSksITEpOmcuZGVmYXVsdFZpc2l0b3IuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwuLi50fSl9ZnVuY3Rpb24geEkoQSl7cmV0dXJuIGkubWF0Y2hBbGwoL1xcdyt8XFxbKFxcdyopXS9nLEEpLm1hcCh0PT50WzBdPT09IltdIj8iIjp0WzFdfHx0WzBdKX1mdW5jdGlvbiBQSShBKXtsZXQgdD17fSxlPU9iamVjdC5rZXlzKEEpLEkscj1lLmxlbmd0aCxnO2ZvcihJPTA7STxyO0krKylnPWVbSV0sdFtnXT1BW2ddO3JldHVybiB0fWZ1bmN0aW9uIGpJKEEpe2Z1bmN0aW9uIHQoZSxJLHIsZyl7bGV0IG89ZVtnKytdO2lmKG89PT0iX19wcm90b19fIilyZXR1cm4hMDtsZXQgbj1OdW1iZXIuaXNGaW5pdGUoK28pLEU9Zz49ZS5sZW5ndGg7cmV0dXJuIG89IW8mJmkuaXNBcnJheShyKT9yLmxlbmd0aDpvLEU/KGkuaGFzT3duUHJvcChyLG8pP3Jbb109W3Jbb10sSV06cltvXT1JLCFuKTooKCFyW29dfHwhaS5pc09iamVjdChyW29dKSkmJihyW29dPVtdKSx0KGUsSSxyW29dLGcpJiZpLmlzQXJyYXkocltvXSkmJihyW29dPVBJKHJbb10pKSwhbil9aWYoaS5pc0Zvcm1EYXRhKEEpJiZpLmlzRnVuY3Rpb24oQS5lbnRyaWVzKSl7bGV0IGU9e307cmV0dXJuIGkuZm9yRWFjaEVudHJ5KEEsKEkscik9Pnt0KHhJKEkpLHIsZSwwKX0pLGV9cmV0dXJuIG51bGx9dmFyIEpBPWpJO2Z1bmN0aW9uIFdJKEEsdCxlKXtpZihpLmlzU3RyaW5nKEEpKXRyeXtyZXR1cm4odHx8SlNPTi5wYXJzZSkoQSksaS50cmltKEEpfWNhdGNoKEkpe2lmKEkubmFtZSE9PSJTeW50YXhFcnJvciIpdGhyb3cgSX1yZXR1cm4oZXx8SlNPTi5zdHJpbmdpZnkpKEEpfXZhciBndD17dHJhbnNpdGlvbmFsOmJBLGFkYXB0ZXI6WyJ4aHIiLCJodHRwIiwiZmV0Y2giXSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbih0LGUpe2xldCBJPWUuZ2V0Q29udGVudFR5cGUoKXx8IiIscj1JLmluZGV4T2YoImFwcGxpY2F0aW9uL2pzb24iKT4tMSxnPWkuaXNPYmplY3QodCk7aWYoZyYmaS5pc0hUTUxGb3JtKHQpJiYodD1uZXcgRm9ybURhdGEodCkpLGkuaXNGb3JtRGF0YSh0KSlyZXR1cm4gcj9KU09OLnN0cmluZ2lmeShKQSh0KSk6dDtpZihpLmlzQXJyYXlCdWZmZXIodCl8fGkuaXNCdWZmZXIodCl8fGkuaXNTdHJlYW0odCl8fGkuaXNGaWxlKHQpfHxpLmlzQmxvYih0KXx8aS5pc1JlYWRhYmxlU3RyZWFtKHQpKXJldHVybiB0O2lmKGkuaXNBcnJheUJ1ZmZlclZpZXcodCkpcmV0dXJuIHQuYnVmZmVyO2lmKGkuaXNVUkxTZWFyY2hQYXJhbXModCkpcmV0dXJuIGUuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04IiwhMSksdC50b1N0cmluZygpO2xldCBuO2lmKGcpe2lmKEkuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik+LTEpcmV0dXJuIG90KHQsdGhpcy5mb3JtU2VyaWFsaXplcikudG9TdHJpbmcoKTtpZigobj1pLmlzRmlsZUxpc3QodCkpfHxJLmluZGV4T2YoIm11bHRpcGFydC9mb3JtLWRhdGEiKT4tMSl7bGV0IEU9dGhpcy5lbnYmJnRoaXMuZW52LkZvcm1EYXRhO3JldHVybiBUKG4/eyJmaWxlc1tdIjp0fTp0LEUmJm5ldyBFLHRoaXMuZm9ybVNlcmlhbGl6ZXIpfX1yZXR1cm4gZ3x8cj8oZS5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24vanNvbiIsITEpLFdJKHQpKTp0fV0sdHJhbnNmb3JtUmVzcG9uc2U6W2Z1bmN0aW9uKHQpe2xldCBlPXRoaXMudHJhbnNpdGlvbmFsfHxndC50cmFuc2l0aW9uYWwsST1lJiZlLmZvcmNlZEpTT05QYXJzaW5nLHI9dGhpcy5yZXNwb25zZVR5cGU9PT0ianNvbiI7aWYoaS5pc1Jlc3BvbnNlKHQpfHxpLmlzUmVhZGFibGVTdHJlYW0odCkpcmV0dXJuIHQ7aWYodCYmaS5pc1N0cmluZyh0KSYmKEkmJiF0aGlzLnJlc3BvbnNlVHlwZXx8cikpe2xldCBvPSEoZSYmZS5zaWxlbnRKU09OUGFyc2luZykmJnI7dHJ5e3JldHVybiBKU09OLnBhcnNlKHQsdGhpcy5wYXJzZVJldml2ZXIpfWNhdGNoKG4pe2lmKG8pdGhyb3cgbi5uYW1lPT09IlN5bnRheEVycm9yIj91LmZyb20obix1LkVSUl9CQURfUkVTUE9OU0UsdGhpcyxudWxsLHRoaXMucmVzcG9uc2UpOm59fXJldHVybiB0fV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsZW52OntGb3JtRGF0YTpoLmNsYXNzZXMuRm9ybURhdGEsQmxvYjpoLmNsYXNzZXMuQmxvYn0sdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTIwMCYmdDwzMDB9LGhlYWRlcnM6e2NvbW1vbjp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoiLCJDb250ZW50LVR5cGUiOnZvaWQgMH19fTtpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIl0sQT0+e2d0LmhlYWRlcnNbQV09e319KTt2YXIgQUE9Z3Q7dmFyIFpJPWkudG9PYmplY3RTZXQoWyJhZ2UiLCJhdXRob3JpemF0aW9uIiwiY29udGVudC1sZW5ndGgiLCJjb250ZW50LXR5cGUiLCJldGFnIiwiZXhwaXJlcyIsImZyb20iLCJob3N0IiwiaWYtbW9kaWZpZWQtc2luY2UiLCJpZi11bm1vZGlmaWVkLXNpbmNlIiwibGFzdC1tb2RpZmllZCIsImxvY2F0aW9uIiwibWF4LWZvcndhcmRzIiwicHJveHktYXV0aG9yaXphdGlvbiIsInJlZmVyZXIiLCJyZXRyeS1hZnRlciIsInVzZXItYWdlbnQiXSksdGU9QT0+e2xldCB0PXt9LGUsSSxyO3JldHVybiBBJiZBLnNwbGl0KGAlMEFgKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3I9by5pbmRleE9mKCI6IiksZT1vLnN1YnN0cmluZygwLHIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLEk9by5zdWJzdHJpbmcocisxKS50cmltKCksISghZXx8dFtlXSYmWklbZV0pJiYoZT09PSJzZXQtY29va2llIj90W2VdP3RbZV0ucHVzaChJKTp0W2VdPVtJXTp0W2VdPXRbZV0/dFtlXSsiLCAiK0k6SSl9KSx0fTt2YXIgZWU9U3ltYm9sKCJpbnRlcm5hbHMiKTtmdW5jdGlvbiBDQShBKXtyZXR1cm4gQSYmU3RyaW5nKEEpLnRyaW0oKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIEhBKEEpe3JldHVybiBBPT09ITF8fEE9PW51bGw/QTppLmlzQXJyYXkoQSk/QS5tYXAoSEEpOlN0cmluZyhBKX1mdW5jdGlvbiBWSShBKXtsZXQgdD1PYmplY3QuY3JlYXRlKG51bGwpLGU9LyhbXlxccyw7PV0rKVxccyooPzo9XFxzKihbXiw7XSspKT8vZyxJO2Zvcig7ST1lLmV4ZWMoQSk7KXRbSVsxXV09SVsyXTtyZXR1cm4gdH12YXIgWEk9QT0+L15bLV9hLXpBLVowLTleYHx+LCElMjMkJSZcJyorLl0rJC8udGVzdChBLnRyaW0oKSk7ZnVuY3Rpb24gaXQoQSx0LGUsSSxyKXtpZihpLmlzRnVuY3Rpb24oSSkpcmV0dXJuIEkuY2FsbCh0aGlzLHQsZSk7aWYociYmKHQ9ZSksISFpLmlzU3RyaW5nKHQpKXtpZihpLmlzU3RyaW5nKEkpKXJldHVybiB0LmluZGV4T2YoSSkhPT0tMTtpZihpLmlzUmVnRXhwKEkpKXJldHVybiBJLnRlc3QodCl9fWZ1bmN0aW9uIF9JKEEpe3JldHVybiBBLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbYS16XFxkXSkoXFx3KikvZywodCxlLEkpPT5lLnRvVXBwZXJDYXNlKCkrSSl9ZnVuY3Rpb24gekkoQSx0KXtsZXQgZT1pLnRvQ2FtZWxDYXNlKCIgIit0KTtbImdldCIsInNldCIsImhhcyJdLmZvckVhY2goST0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLEkrZSx7dmFsdWU6ZnVuY3Rpb24ocixnLG8pe3JldHVybiB0aGlzW0ldLmNhbGwodGhpcyx0LHIsZyxvKX0sY29uZmlndXJhYmxlOiEwfSl9KX12YXIgdEE9Y2xhc3N7Y29uc3RydWN0b3IodCl7dCYmdGhpcy5zZXQodCl9c2V0KHQsZSxJKXtsZXQgcj10aGlzO2Z1bmN0aW9uIGcobixFLEIpe2xldCBzPUNBKEUpO2lmKCFzKXRocm93IG5ldyBFcnJvcigiaGVhZGVyIG5hbWUgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmciKTtsZXQgQz1pLmZpbmRLZXkocixzKTsoIUN8fHJbQ109PT12b2lkIDB8fEI9PT0hMHx8Qj09PXZvaWQgMCYmcltDXSE9PSExKSYmKHJbQ3x8RV09SEEobikpfWxldCBvPShuLEUpPT5pLmZvckVhY2gobiwoQixzKT0+ZyhCLHMsRSkpO2lmKGkuaXNQbGFpbk9iamVjdCh0KXx8dCBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3Ipbyh0LGUpO2Vsc2UgaWYoaS5pc1N0cmluZyh0KSYmKHQ9dC50cmltKCkpJiYhWEkodCkpbyh0ZSh0KSxlKTtlbHNlIGlmKGkuaXNPYmplY3QodCkmJmkuaXNJdGVyYWJsZSh0KSl7bGV0IG49e30sRSxCO2ZvcihsZXQgcyBvZiB0KXtpZighaS5pc0FycmF5KHMpKXRocm93IFR5cGVFcnJvcigiT2JqZWN0IGl0ZXJhdG9yIG11c3QgcmV0dXJuIGEga2V5LXZhbHVlIHBhaXIiKTtuW0I9c1swXV09KEU9bltCXSk/aS5pc0FycmF5KEUpP1suLi5FLHNbMV1dOltFLHNbMV1dOnNbMV19byhuLGUpfWVsc2UgdCE9bnVsbCYmZyhlLHQsSSk7cmV0dXJuIHRoaXN9Z2V0KHQsZSl7aWYodD1DQSh0KSx0KXtsZXQgST1pLmZpbmRLZXkodGhpcyx0KTtpZihJKXtsZXQgcj10aGlzW0ldO2lmKCFlKXJldHVybiByO2lmKGU9PT0hMClyZXR1cm4gVkkocik7aWYoaS5pc0Z1bmN0aW9uKGUpKXJldHVybiBlLmNhbGwodGhpcyxyLEkpO2lmKGkuaXNSZWdFeHAoZSkpcmV0dXJuIGUuZXhlYyhyKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJwYXJzZXIgbXVzdCBiZSBib29sZWFufHJlZ2V4cHxmdW5jdGlvbiIpfX19aGFzKHQsZSl7aWYodD1DQSh0KSx0KXtsZXQgST1pLmZpbmRLZXkodGhpcyx0KTtyZXR1cm4hIShJJiZ0aGlzW0ldIT09dm9pZCAwJiYoIWV8fGl0KHRoaXMsdGhpc1tJXSxJLGUpKSl9cmV0dXJuITF9ZGVsZXRlKHQsZSl7bGV0IEk9dGhpcyxyPSExO2Z1bmN0aW9uIGcobyl7aWYobz1DQShvKSxvKXtsZXQgbj1pLmZpbmRLZXkoSSxvKTtuJiYoIWV8fGl0KEksSVtuXSxuLGUpKSYmKGRlbGV0ZSBJW25dLHI9ITApfX1yZXR1cm4gaS5pc0FycmF5KHQpP3QuZm9yRWFjaChnKTpnKHQpLHJ9Y2xlYXIodCl7bGV0IGU9T2JqZWN0LmtleXModGhpcyksST1lLmxlbmd0aCxyPSExO2Zvcig7SS0tOyl7bGV0IGc9ZVtJXTsoIXR8fGl0KHRoaXMsdGhpc1tnXSxnLHQsITApKSYmKGRlbGV0ZSB0aGlzW2ddLHI9ITApfXJldHVybiByfW5vcm1hbGl6ZSh0KXtsZXQgZT10aGlzLEk9e307cmV0dXJuIGkuZm9yRWFjaCh0aGlzLChyLGcpPT57bGV0IG89aS5maW5kS2V5KEksZyk7aWYobyl7ZVtvXT1IQShyKSxkZWxldGUgZVtnXTtyZXR1cm59bGV0IG49dD9fSShnKTpTdHJpbmcoZykudHJpbSgpO24hPT1nJiZkZWxldGUgZVtnXSxlW25dPUhBKHIpLElbbl09ITB9KSx0aGlzfWNvbmNhdCguLi50KXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5jb25jYXQodGhpcywuLi50KX10b0pTT04odCl7bGV0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gaS5mb3JFYWNoKHRoaXMsKEkscik9PntJIT1udWxsJiZJIT09ITEmJihlW3JdPXQmJmkuaXNBcnJheShJKT9JLmpvaW4oIiwgIik6SSl9KSxlfVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpW1N5bWJvbC5pdGVyYXRvcl0oKX10b1N0cmluZygpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKS5tYXAoKFt0LGVdKT0+dCsiOiAiK2UpLmpvaW4oYCUwQWApfWdldFNldENvb2tpZSgpe3JldHVybiB0aGlzLmdldCgic2V0LWNvb2tpZSIpfHxbXX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJBeGlvc0hlYWRlcnMifXN0YXRpYyBmcm9tKHQpe3JldHVybiB0IGluc3RhbmNlb2YgdGhpcz90Om5ldyB0aGlzKHQpfXN0YXRpYyBjb25jYXQodCwuLi5lKXtsZXQgST1uZXcgdGhpcyh0KTtyZXR1cm4gZS5mb3JFYWNoKHI9Pkkuc2V0KHIpKSxJfXN0YXRpYyBhY2Nlc3Nvcih0KXtsZXQgST0odGhpc1tlZV09dGhpc1tlZV09e2FjY2Vzc29yczp7fX0pLmFjY2Vzc29ycyxyPXRoaXMucHJvdG90eXBlO2Z1bmN0aW9uIGcobyl7bGV0IG49Q0Eobyk7SVtuXXx8KHpJKHIsbyksSVtuXT0hMCl9cmV0dXJuIGkuaXNBcnJheSh0KT90LmZvckVhY2goZyk6Zyh0KSx0aGlzfX07dEEuYWNjZXNzb3IoWyJDb250ZW50LVR5cGUiLCJDb250ZW50LUxlbmd0aCIsIkFjY2VwdCIsIkFjY2VwdC1FbmNvZGluZyIsIlVzZXItQWdlbnQiLCJBdXRob3JpemF0aW9uIl0pO2kucmVkdWNlRGVzY3JpcHRvcnModEEucHJvdG90eXBlLCh7dmFsdWU6QX0sdCk9PntsZXQgZT10WzBdLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKTtyZXR1cm57Z2V0OigpPT5BLHNldChJKXt0aGlzW2VdPUl9fX0pO2kuZnJlZXplTWV0aG9kcyh0QSk7dmFyIHA9dEE7ZnVuY3Rpb24gQkEoQSx0KXtsZXQgZT10aGlzfHxBQSxJPXR8fGUscj1wLmZyb20oSS5oZWFkZXJzKSxnPUkuZGF0YTtyZXR1cm4gaS5mb3JFYWNoKEEsZnVuY3Rpb24obil7Zz1uLmNhbGwoZSxnLHIubm9ybWFsaXplKCksdD90LnN0YXR1czp2b2lkIDApfSksci5ub3JtYWxpemUoKSxnfWZ1bmN0aW9uIGFBKEEpe3JldHVybiEhKEEmJkEuX19DQU5DRUxfXyl9ZnVuY3Rpb24gSWUoQSx0LGUpe3UuY2FsbCh0aGlzLEE/PyJjYW5jZWxlZCIsdS5FUlJfQ0FOQ0VMRUQsdCxlKSx0aGlzLm5hbWU9IkNhbmNlbGVkRXJyb3IifWkuaW5oZXJpdHMoSWUsdSx7X19DQU5DRUxfXzohMH0pO3ZhciBIPUllO2Z1bmN0aW9uIFFBKEEsdCxlKXtsZXQgST1lLmNvbmZpZy52YWxpZGF0ZVN0YXR1czshZS5zdGF0dXN8fCFJfHxJKGUuc3RhdHVzKT9BKGUpOnQobmV3IHUoIlJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgIitlLnN0YXR1cyxbdS5FUlJfQkFEX1JFUVVFU1QsdS5FUlJfQkFEX1JFU1BPTlNFXVtNYXRoLmZsb29yKGUuc3RhdHVzLzEwMCktNF0sZS5jb25maWcsZS5yZXF1ZXN0LGUpKX1mdW5jdGlvbiBzdChBKXtsZXQgdD0vXihbLStcXHddezEsMjV9KSg6P1xcL1xcL3w6KS8uZXhlYyhBKTtyZXR1cm4gdCYmdFsxXXx8IiJ9ZnVuY3Rpb24gdkkoQSx0KXtBPUF8fDEwO2xldCBlPW5ldyBBcnJheShBKSxJPW5ldyBBcnJheShBKSxyPTAsZz0wLG87cmV0dXJuIHQ9dCE9PXZvaWQgMD90OjFlMyxmdW5jdGlvbihFKXtsZXQgQj1EYXRlLm5vdygpLHM9SVtnXTtvfHwobz1CKSxlW3JdPUUsSVtyXT1CO2xldCBDPWcsbD0wO2Zvcig7QyE9PXI7KWwrPWVbQysrXSxDPUMlQTtpZihyPShyKzEpJUEscj09PWcmJihnPShnKzEpJUEpLEItbzx0KXJldHVybjtsZXQgYT1zJiZCLXM7cmV0dXJuIGE/TWF0aC5yb3VuZChsKjFlMy9hKTp2b2lkIDB9fXZhciByZT12STtmdW5jdGlvbiAkSShBLHQpe2xldCBlPTAsST0xZTMvdCxyLGcsbz0oQixzPURhdGUubm93KCkpPT57ZT1zLHI9bnVsbCxnJiYoY2xlYXJUaW1lb3V0KGcpLGc9bnVsbCksQSguLi5CKX07cmV0dXJuWyguLi5CKT0+e2xldCBzPURhdGUubm93KCksQz1zLWU7Qz49ST9vKEIscyk6KHI9QixnfHwoZz1zZXRUaW1lb3V0KCgpPT57Zz1udWxsLG8ocil9LEktQykpKX0sKCk9PnImJm8ocildfXZhciBvZT0kSTt2YXIgZUE9KEEsdCxlPTMpPT57bGV0IEk9MCxyPXJlKDUwLDI1MCk7cmV0dXJuIG9lKGc9PntsZXQgbz1nLmxvYWRlZCxuPWcubGVuZ3RoQ29tcHV0YWJsZT9nLnRvdGFsOnZvaWQgMCxFPW8tSSxCPXIoRSkscz1vPD1uO0k9bztsZXQgQz17bG9hZGVkOm8sdG90YWw6bixwcm9ncmVzczpuP28vbjp2b2lkIDAsYnl0ZXM6RSxyYXRlOkJ8fHZvaWQgMCxlc3RpbWF0ZWQ6QiYmbiYmcz8obi1vKS9COnZvaWQgMCxldmVudDpnLGxlbmd0aENvbXB1dGFibGU6biE9bnVsbCxbdD8iZG93bmxvYWQiOiJ1cGxvYWQiXTohMH07QShDKX0sZSl9LG50PShBLHQpPT57bGV0IGU9QSE9bnVsbDtyZXR1cm5bST0+dFswXSh7bGVuZ3RoQ29tcHV0YWJsZTplLHRvdGFsOkEsbG9hZGVkOkl9KSx0WzFdXX0sQ3Q9QT0+KC4uLnQpPT5pLmFzYXAoKCk9PkEoLi4udCkpO3ZhciBnZT1oLmhhc1N0YW5kYXJkQnJvd3NlckVudj8oKEEsdCk9PmU9PihlPW5ldyBVUkwoZSxoLm9yaWdpbiksQS5wcm90b2NvbD09PWUucHJvdG9jb2wmJkEuaG9zdD09PWUuaG9zdCYmKHR8fEEucG9ydD09PWUucG9ydCkpKShuZXcgVVJMKGgub3JpZ2luKSxoLm5hdmlnYXRvciYmLyhtc2llfHRyaWRlbnQpL2kudGVzdChoLm5hdmlnYXRvci51c2VyQWdlbnQpKTooKT0+ITA7dmFyIGllPWguaGFzU3RhbmRhcmRCcm93c2VyRW52P3t3cml0ZShBLHQsZSxJLHIsZyl7bGV0IG89W0ErIj0iK2VuY29kZVVSSUNvbXBvbmVudCh0KV07aS5pc051bWJlcihlKSYmby5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUoZSkudG9HTVRTdHJpbmcoKSksaS5pc1N0cmluZyhJKSYmby5wdXNoKCJwYXRoPSIrSSksaS5pc1N0cmluZyhyKSYmby5wdXNoKCJkb21haW49IityKSxnPT09ITAmJm8ucHVzaCgic2VjdXJlIiksZG9jdW1lbnQuY29va2llPW8uam9pbigiOyAiKX0scmVhZChBKXtsZXQgdD1kb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgiKF58O1xcXFxzKikoIitBKyIpPShbXjtdKikiKSk7cmV0dXJuIHQ/ZGVjb2RlVVJJQ29tcG9uZW50KHRbM10pOm51bGx9LHJlbW92ZShBKXt0aGlzLndyaXRlKEEsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGUoKXt9LHJlYWQoKXtyZXR1cm4gbnVsbH0scmVtb3ZlKCl7fX07ZnVuY3Rpb24gQnQoQSl7cmV0dXJuL14oW2Etel1bYS16XFxkK1xcLS5dKjopP1xcL1xcLy9pLnRlc3QoQSl9ZnVuY3Rpb24gYXQoQSx0KXtyZXR1cm4gdD9BLnJlcGxhY2UoL1xcLz9cXC8kLywiIikrIi8iK3QucmVwbGFjZSgvXlxcLysvLCIiKTpBfWZ1bmN0aW9uIEVBKEEsdCxlKXtsZXQgST0hQnQodCk7cmV0dXJuIEEmJihJfHxlPT0hMSk/YXQoQSx0KTp0fXZhciBzZT1BPT5BIGluc3RhbmNlb2YgcD97Li4uQX06QTtmdW5jdGlvbiBiKEEsdCl7dD10fHx7fTtsZXQgZT17fTtmdW5jdGlvbiBJKEIscyxDLGwpe3JldHVybiBpLmlzUGxhaW5PYmplY3QoQikmJmkuaXNQbGFpbk9iamVjdChzKT9pLm1lcmdlLmNhbGwoe2Nhc2VsZXNzOmx9LEIscyk6aS5pc1BsYWluT2JqZWN0KHMpP2kubWVyZ2Uoe30scyk6aS5pc0FycmF5KHMpP3Muc2xpY2UoKTpzfWZ1bmN0aW9uIHIoQixzLEMsbCl7aWYoaS5pc1VuZGVmaW5lZChzKSl7aWYoIWkuaXNVbmRlZmluZWQoQikpcmV0dXJuIEkodm9pZCAwLEIsQyxsKX1lbHNlIHJldHVybiBJKEIscyxDLGwpfWZ1bmN0aW9uIGcoQixzKXtpZighaS5pc1VuZGVmaW5lZChzKSlyZXR1cm4gSSh2b2lkIDAscyl9ZnVuY3Rpb24gbyhCLHMpe2lmKGkuaXNVbmRlZmluZWQocykpe2lmKCFpLmlzVW5kZWZpbmVkKEIpKXJldHVybiBJKHZvaWQgMCxCKX1lbHNlIHJldHVybiBJKHZvaWQgMCxzKX1mdW5jdGlvbiBuKEIscyxDKXtpZihDIGluIHQpcmV0dXJuIEkoQixzKTtpZihDIGluIEEpcmV0dXJuIEkodm9pZCAwLEIpfWxldCBFPXt1cmw6ZyxtZXRob2Q6ZyxkYXRhOmcsYmFzZVVSTDpvLHRyYW5zZm9ybVJlcXVlc3Q6byx0cmFuc2Zvcm1SZXNwb25zZTpvLHBhcmFtc1NlcmlhbGl6ZXI6byx0aW1lb3V0Om8sdGltZW91dE1lc3NhZ2U6byx3aXRoQ3JlZGVudGlhbHM6byx3aXRoWFNSRlRva2VuOm8sYWRhcHRlcjpvLHJlc3BvbnNlVHlwZTpvLHhzcmZDb29raWVOYW1lOm8seHNyZkhlYWRlck5hbWU6byxvblVwbG9hZFByb2dyZXNzOm8sb25Eb3dubG9hZFByb2dyZXNzOm8sZGVjb21wcmVzczpvLG1heENvbnRlbnRMZW5ndGg6byxtYXhCb2R5TGVuZ3RoOm8sYmVmb3JlUmVkaXJlY3Q6byx0cmFuc3BvcnQ6byxodHRwQWdlbnQ6byxodHRwc0FnZW50Om8sY2FuY2VsVG9rZW46byxzb2NrZXRQYXRoOm8scmVzcG9uc2VFbmNvZGluZzpvLHZhbGlkYXRlU3RhdHVzOm4saGVhZGVyczooQixzLEMpPT5yKHNlKEIpLHNlKHMpLEMsITApfTtyZXR1cm4gaS5mb3JFYWNoKE9iamVjdC5rZXlzKHsuLi5BLC4uLnR9KSxmdW5jdGlvbihzKXtsZXQgQz1FW3NdfHxyLGw9QyhBW3NdLHRbc10scyk7aS5pc1VuZGVmaW5lZChsKSYmQyE9PW58fChlW3NdPWwpfSksZX12YXIgWUE9QT0+e2xldCB0PWIoe30sQSkse2RhdGE6ZSx3aXRoWFNSRlRva2VuOkkseHNyZkhlYWRlck5hbWU6cix4c3JmQ29va2llTmFtZTpnLGhlYWRlcnM6byxhdXRoOm59PXQ7aWYodC5oZWFkZXJzPW89cC5mcm9tKG8pLHQudXJsPW5BKEVBKHQuYmFzZVVSTCx0LnVybCx0LmFsbG93QWJzb2x1dGVVcmxzKSxBLnBhcmFtcyxBLnBhcmFtc1NlcmlhbGl6ZXIpLG4mJm8uc2V0KCJBdXRob3JpemF0aW9uIiwiQmFzaWMgIitidG9hKChuLnVzZXJuYW1lfHwiIikrIjoiKyhuLnBhc3N3b3JkP3VuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChuLnBhc3N3b3JkKSk6IiIpKSksaS5pc0Zvcm1EYXRhKGUpKXtpZihoLmhhc1N0YW5kYXJkQnJvd3NlckVudnx8aC5oYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnYpby5zZXRDb250ZW50VHlwZSh2b2lkIDApO2Vsc2UgaWYoaS5pc0Z1bmN0aW9uKGUuZ2V0SGVhZGVycykpe2xldCBFPWUuZ2V0SGVhZGVycygpLEI9WyJjb250ZW50LXR5cGUiLCJjb250ZW50LWxlbmd0aCJdO09iamVjdC5lbnRyaWVzKEUpLmZvckVhY2goKFtzLENdKT0+e0IuaW5jbHVkZXMocy50b0xvd2VyQ2FzZSgpKSYmby5zZXQocyxDKX0pfX1pZihoLmhhc1N0YW5kYXJkQnJvd3NlckVudiYmKEkmJmkuaXNGdW5jdGlvbihJKSYmKEk9SSh0KSksSXx8SSE9PSExJiZnZSh0LnVybCkpKXtsZXQgRT1yJiZnJiZpZS5yZWFkKGcpO0UmJm8uc2V0KHIsRSl9cmV0dXJuIHR9O3ZhciBBcj10eXBlb2YgWE1MSHR0cFJlcXVlc3Q8InUiLG5lPUFyJiZmdW5jdGlvbihBKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSxJKXtsZXQgcj1ZQShBKSxnPXIuZGF0YSxvPXAuZnJvbShyLmhlYWRlcnMpLm5vcm1hbGl6ZSgpLHtyZXNwb25zZVR5cGU6bixvblVwbG9hZFByb2dyZXNzOkUsb25Eb3dubG9hZFByb2dyZXNzOkJ9PXIscyxDLGwsYSxRO2Z1bmN0aW9uIGYoKXthJiZhKCksUSYmUSgpLHIuY2FuY2VsVG9rZW4mJnIuY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUocyksci5zaWduYWwmJnIuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixzKX1sZXQgYz1uZXcgWE1MSHR0cFJlcXVlc3Q7Yy5vcGVuKHIubWV0aG9kLnRvVXBwZXJDYXNlKCksci51cmwsITApLGMudGltZW91dD1yLnRpbWVvdXQ7ZnVuY3Rpb24gRCgpe2lmKCFjKXJldHVybjtsZXQgeT1wLmZyb20oImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiBjJiZjLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSxrPXtkYXRhOiFufHxuPT09InRleHQifHxuPT09Impzb24iP2MucmVzcG9uc2VUZXh0OmMucmVzcG9uc2Usc3RhdHVzOmMuc3RhdHVzLHN0YXR1c1RleHQ6Yy5zdGF0dXNUZXh0LGhlYWRlcnM6eSxjb25maWc6QSxyZXF1ZXN0OmN9O1FBKGZ1bmN0aW9uKEcpe2UoRyksZigpfSxmdW5jdGlvbihHKXtJKEcpLGYoKX0sayksYz1udWxsfSJvbmxvYWRlbmQiaW4gYz9jLm9ubG9hZGVuZD1EOmMub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7IWN8fGMucmVhZHlTdGF0ZSE9PTR8fGMuc3RhdHVzPT09MCYmIShjLnJlc3BvbnNlVVJMJiZjLnJlc3BvbnNlVVJMLmluZGV4T2YoImZpbGU6Iik9PT0wKXx8c2V0VGltZW91dChEKX0sYy5vbmFib3J0PWZ1bmN0aW9uKCl7YyYmKEkobmV3IHUoIlJlcXVlc3QgYWJvcnRlZCIsdS5FQ09OTkFCT1JURUQsQSxjKSksYz1udWxsKX0sYy5vbmVycm9yPWZ1bmN0aW9uKFIpe2xldCBrPVImJlIubWVzc2FnZT9SLm1lc3NhZ2U6Ik5ldHdvcmsgRXJyb3IiLFA9bmV3IHUoayx1LkVSUl9ORVRXT1JLLEEsYyk7UC5ldmVudD1SfHxudWxsLEkoUCksYz1udWxsfSxjLm9udGltZW91dD1mdW5jdGlvbigpe2xldCBSPXIudGltZW91dD8idGltZW91dCBvZiAiK3IudGltZW91dCsibXMgZXhjZWVkZWQiOiJ0aW1lb3V0IGV4Y2VlZGVkIixrPXIudHJhbnNpdGlvbmFsfHxiQTtyLnRpbWVvdXRFcnJvck1lc3NhZ2UmJihSPXIudGltZW91dEVycm9yTWVzc2FnZSksSShuZXcgdShSLGsuY2xhcmlmeVRpbWVvdXRFcnJvcj91LkVUSU1FRE9VVDp1LkVDT05OQUJPUlRFRCxBLGMpKSxjPW51bGx9LGc9PT12b2lkIDAmJm8uc2V0Q29udGVudFR5cGUobnVsbCksInNldFJlcXVlc3RIZWFkZXIiaW4gYyYmaS5mb3JFYWNoKG8udG9KU09OKCksZnVuY3Rpb24oUixrKXtjLnNldFJlcXVlc3RIZWFkZXIoayxSKX0pLGkuaXNVbmRlZmluZWQoci53aXRoQ3JlZGVudGlhbHMpfHwoYy53aXRoQ3JlZGVudGlhbHM9ISFyLndpdGhDcmVkZW50aWFscyksbiYmbiE9PSJqc29uIiYmKGMucmVzcG9uc2VUeXBlPXIucmVzcG9uc2VUeXBlKSxCJiYoW2wsUV09ZUEoQiwhMCksYy5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsbCkpLEUmJmMudXBsb2FkJiYoW0MsYV09ZUEoRSksYy51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLEMpLGMudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlbmQiLGEpKSwoci5jYW5jZWxUb2tlbnx8ci5zaWduYWwpJiYocz15PT57YyYmKEkoIXl8fHkudHlwZT9uZXcgSChudWxsLEEsYyk6eSksYy5hYm9ydCgpLGM9bnVsbCl9LHIuY2FuY2VsVG9rZW4mJnIuY2FuY2VsVG9rZW4uc3Vic2NyaWJlKHMpLHIuc2lnbmFsJiYoci5zaWduYWwuYWJvcnRlZD9zKCk6ci5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHMpKSk7bGV0IEY9c3Qoci51cmwpO2lmKEYmJmgucHJvdG9jb2xzLmluZGV4T2YoRik9PT0tMSl7SShuZXcgdSgiVW5zdXBwb3J0ZWQgcHJvdG9jb2wgIitGKyI6Iix1LkVSUl9CQURfUkVRVUVTVCxBKSk7cmV0dXJufWMuc2VuZChnfHxudWxsKX0pfTt2YXIgdHI9KEEsdCk9PntsZXR7bGVuZ3RoOmV9PUE9QT9BLmZpbHRlcihCb29sZWFuKTpbXTtpZih0fHxlKXtsZXQgST1uZXcgQWJvcnRDb250cm9sbGVyLHIsZz1mdW5jdGlvbihCKXtpZighcil7cj0hMCxuKCk7bGV0IHM9QiBpbnN0YW5jZW9mIEVycm9yP0I6dGhpcy5yZWFzb247SS5hYm9ydChzIGluc3RhbmNlb2YgdT9zOm5ldyBIKHMgaW5zdGFuY2VvZiBFcnJvcj9zLm1lc3NhZ2U6cykpfX0sbz10JiZzZXRUaW1lb3V0KCgpPT57bz1udWxsLGcobmV3IHUoYHRpbWVvdXQgJHt0fSBvZiBtcyBleGNlZWRlZGAsdS5FVElNRURPVVQpKX0sdCksbj0oKT0+e0EmJihvJiZjbGVhclRpbWVvdXQobyksbz1udWxsLEEuZm9yRWFjaChCPT57Qi51bnN1YnNjcmliZT9CLnVuc3Vic2NyaWJlKGcpOkIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGcpfSksQT1udWxsKX07QS5mb3JFYWNoKEI9PkIuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGcpKTtsZXR7c2lnbmFsOkV9PUk7cmV0dXJuIEUudW5zdWJzY3JpYmU9KCk9PmkuYXNhcChuKSxFfX0sQ2U9dHI7dmFyIGVyPWZ1bmN0aW9uKihBLHQpe2xldCBlPUEuYnl0ZUxlbmd0aDtpZighdHx8ZTx0KXt5aWVsZCBBO3JldHVybn1sZXQgST0wLHI7Zm9yKDtJPGU7KXI9SSt0LHlpZWxkIEEuc2xpY2UoSSxyKSxJPXJ9LElyPWFzeW5jIGZ1bmN0aW9uKihBLHQpe2ZvciBhd2FpdChsZXQgZSBvZiBycihBKSl5aWVsZCplcihlLHQpfSxycj1hc3luYyBmdW5jdGlvbiooQSl7aWYoQVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0pe3lpZWxkKkE7cmV0dXJufWxldCB0PUEuZ2V0UmVhZGVyKCk7dHJ5e2Zvcig7Oyl7bGV0e2RvbmU6ZSx2YWx1ZTpJfT1hd2FpdCB0LnJlYWQoKTtpZihlKWJyZWFrO3lpZWxkIEl9fWZpbmFsbHl7YXdhaXQgdC5jYW5jZWwoKX19LFF0PShBLHQsZSxJKT0+e2xldCByPUlyKEEsdCksZz0wLG8sbj1FPT57b3x8KG89ITAsSSYmSShFKSl9O3JldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe2FzeW5jIHB1bGwoRSl7dHJ5e2xldHtkb25lOkIsdmFsdWU6c309YXdhaXQgci5uZXh0KCk7aWYoQil7bigpLEUuY2xvc2UoKTtyZXR1cm59bGV0IEM9cy5ieXRlTGVuZ3RoO2lmKGUpe2xldCBsPWcrPUM7ZShsKX1FLmVucXVldWUobmV3IFVpbnQ4QXJyYXkocykpfWNhdGNoKEIpe3Rocm93IG4oQiksQn19LGNhbmNlbChFKXtyZXR1cm4gbihFKSxyLnJldHVybigpfX0se2hpZ2hXYXRlck1hcms6Mn0pfTt2YXIgQmU9NjQqMTAyNCx7aXNGdW5jdGlvbjpxQX09aSxjZT0oKHtmZXRjaDpBLFJlcXVlc3Q6dCxSZXNwb25zZTplfSk9Pih7ZmV0Y2g6QSxSZXF1ZXN0OnQsUmVzcG9uc2U6ZX0pKShpLmdsb2JhbCkse1JlYWRhYmxlU3RyZWFtOmFlLFRleHRFbmNvZGVyOlFlfT1pLmdsb2JhbCxFZT0oQSwuLi50KT0+e3RyeXtyZXR1cm4hIUEoLi4udCl9Y2F0Y2h7cmV0dXJuITF9fSxvcj1BPT57bGV0e2ZldGNoOnQsUmVxdWVzdDplLFJlc3BvbnNlOkl9PU9iamVjdC5hc3NpZ24oe30sY2UsQSkscj1xQSh0KSxnPXFBKGUpLG89cUEoSSk7aWYoIXIpcmV0dXJuITE7bGV0IG49ciYmcUEoYWUpLEU9ciYmKHR5cGVvZiBRZT09ImZ1bmN0aW9uIj8oUT0+Zj0+US5lbmNvZGUoZikpKG5ldyBRZSk6YXN5bmMgUT0+bmV3IFVpbnQ4QXJyYXkoYXdhaXQgbmV3IGUoUSkuYXJyYXlCdWZmZXIoKSkpLEI9ZyYmbiYmRWUoKCk9PntsZXQgUT0hMSxmPW5ldyBlKGgub3JpZ2luLHtib2R5Om5ldyBhZSxtZXRob2Q6IlBPU1QiLGdldCBkdXBsZXgoKXtyZXR1cm4gUT0hMCwiaGFsZiJ9fSkuaGVhZGVycy5oYXMoIkNvbnRlbnQtVHlwZSIpO3JldHVybiBRJiYhZn0pLHM9byYmbiYmRWUoKCk9PmkuaXNSZWFkYWJsZVN0cmVhbShuZXcgSSgiIikuYm9keSkpLEM9e3N0cmVhbTpzJiYoUT0+US5ib2R5KX07ciYmWyJ0ZXh0IiwiYXJyYXlCdWZmZXIiLCJibG9iIiwiZm9ybURhdGEiLCJzdHJlYW0iXS5mb3JFYWNoKFE9PnshQ1tRXSYmKENbUV09KGYsYyk9PntsZXQgRD1mJiZmW1FdO2lmKEQpcmV0dXJuIEQuY2FsbChmKTt0aHJvdyBuZXcgdShgUmVzcG9uc2UgdHlwZSBcJyR7UX1cJyBpcyBub3Qgc3VwcG9ydGVkYCx1LkVSUl9OT1RfU1VQUE9SVCxjKX0pfSk7bGV0IGw9YXN5bmMgUT0+e2lmKFE9PW51bGwpcmV0dXJuIDA7aWYoaS5pc0Jsb2IoUSkpcmV0dXJuIFEuc2l6ZTtpZihpLmlzU3BlY0NvbXBsaWFudEZvcm0oUSkpcmV0dXJuKGF3YWl0IG5ldyBlKGgub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6UX0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYoaS5pc0FycmF5QnVmZmVyVmlldyhRKXx8aS5pc0FycmF5QnVmZmVyKFEpKXJldHVybiBRLmJ5dGVMZW5ndGg7aWYoaS5pc1VSTFNlYXJjaFBhcmFtcyhRKSYmKFE9USsiIiksaS5pc1N0cmluZyhRKSlyZXR1cm4oYXdhaXQgRShRKSkuYnl0ZUxlbmd0aH0sYT1hc3luYyhRLGYpPT57bGV0IGM9aS50b0Zpbml0ZU51bWJlcihRLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIGM/P2woZil9O3JldHVybiBhc3luYyBRPT57bGV0e3VybDpmLG1ldGhvZDpjLGRhdGE6RCxzaWduYWw6RixjYW5jZWxUb2tlbjp5LHRpbWVvdXQ6UixvbkRvd25sb2FkUHJvZ3Jlc3M6ayxvblVwbG9hZFByb2dyZXNzOlAscmVzcG9uc2VUeXBlOkcsaGVhZGVyczpXQSx3aXRoQ3JlZGVudGlhbHM6ZEE9InNhbWUtb3JpZ2luIixmZXRjaE9wdGlvbnM6bXR9PVlBKFEpO0c9Rz8oRysiIikudG9Mb3dlckNhc2UoKToidGV4dCI7bGV0IERBPUNlKFtGLHkmJnkudG9BYm9ydFNpZ25hbCgpXSxSKSxyQT1udWxsLGo9REEmJkRBLnVuc3Vic2NyaWJlJiYoKCk9PntEQS51bnN1YnNjcmliZSgpfSksd3Q7dHJ5e2lmKFAmJkImJmMhPT0iZ2V0IiYmYyE9PSJoZWFkIiYmKHd0PWF3YWl0IGEoV0EsRCkpIT09MCl7bGV0IE89bmV3IGUoZix7bWV0aG9kOiJQT1NUIixib2R5OkQsZHVwbGV4OiJoYWxmIn0pLFg7aWYoaS5pc0Zvcm1EYXRhKEQpJiYoWD1PLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKSkmJldBLnNldENvbnRlbnRUeXBlKFgpLE8uYm9keSl7bGV0W1pBLGhBXT1udCh3dCxlQShDdChQKSkpO0Q9UXQoTy5ib2R5LEJlLFpBLGhBKX19aS5pc1N0cmluZyhkQSl8fChkQT1kQT8iaW5jbHVkZSI6Im9taXQiKTtsZXQgSj1nJiYiY3JlZGVudGlhbHMiaW4gZS5wcm90b3R5cGUscHQ9ey4uLm10LHNpZ25hbDpEQSxtZXRob2Q6Yy50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6V0Eubm9ybWFsaXplKCkudG9KU09OKCksYm9keTpELGR1cGxleDoiaGFsZiIsY3JlZGVudGlhbHM6Sj9kQTp2b2lkIDB9O3JBPWcmJm5ldyBlKGYscHQpO2xldCBLPWF3YWl0KGc/dChyQSxtdCk6dChmLHB0KSksU3Q9cyYmKEc9PT0ic3RyZWFtInx8Rz09PSJyZXNwb25zZSIpO2lmKHMmJihrfHxTdCYmaikpe2xldCBPPXt9O1sic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXS5mb3JFYWNoKEZ0PT57T1tGdF09S1tGdF19KTtsZXQgWD1pLnRvRmluaXRlTnVtYmVyKEsuaGVhZGVycy5nZXQoImNvbnRlbnQtbGVuZ3RoIikpLFtaQSxoQV09ayYmbnQoWCxlQShDdChrKSwhMCkpfHxbXTtLPW5ldyBJKFF0KEsuYm9keSxCZSxaQSwoKT0+e2hBJiZoQSgpLGomJmooKX0pLE8pfUc9R3x8InRleHQiO2xldCBIZT1hd2FpdCBDW2kuZmluZEtleShDLEcpfHwidGV4dCJdKEssUSk7cmV0dXJuIVN0JiZqJiZqKCksYXdhaXQgbmV3IFByb21pc2UoKE8sWCk9PntRQShPLFgse2RhdGE6SGUsaGVhZGVyczpwLmZyb20oSy5oZWFkZXJzKSxzdGF0dXM6Sy5zdGF0dXMsc3RhdHVzVGV4dDpLLnN0YXR1c1RleHQsY29uZmlnOlEscmVxdWVzdDpyQX0pfSl9Y2F0Y2goSil7dGhyb3cgaiYmaigpLEomJkoubmFtZT09PSJUeXBlRXJyb3IiJiYvTG9hZCBmYWlsZWR8ZmV0Y2gvaS50ZXN0KEoubWVzc2FnZSk/T2JqZWN0LmFzc2lnbihuZXcgdSgiTmV0d29yayBFcnJvciIsdS5FUlJfTkVUV09SSyxRLHJBKSx7Y2F1c2U6Si5jYXVzZXx8Sn0pOnUuZnJvbShKLEomJkouY29kZSxRLHJBKX19fSxncj1uZXcgTWFwLEV0PUE9PntsZXQgdD1pLm1lcmdlLmNhbGwoe3NraXBVbmRlZmluZWQ6ITB9LGNlLEE/QS5lbnY6bnVsbCkse2ZldGNoOmUsUmVxdWVzdDpJLFJlc3BvbnNlOnJ9PXQsZz1bSSxyLGVdLG89Zy5sZW5ndGgsbj1vLEUsQixzPWdyO2Zvcig7bi0tOylFPWdbbl0sQj1zLmdldChFKSxCPT09dm9pZCAwJiZzLnNldChFLEI9bj9uZXcgTWFwOm9yKHQpKSxzPUI7cmV0dXJuIEJ9LEdnPUV0KCk7dmFyIGN0PXtodHRwOmtBLHhocjpuZSxmZXRjaDp7Z2V0OkV0fX07aS5mb3JFYWNoKGN0LChBLHQpPT57aWYoQSl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJuYW1lIix7dmFsdWU6dH0pfWNhdGNoe31PYmplY3QuZGVmaW5lUHJvcGVydHkoQSwiYWRhcHRlck5hbWUiLHt2YWx1ZTp0fSl9fSk7dmFyIGZlPUE9PmAtICR7QX1gLHNyPUE9PmkuaXNGdW5jdGlvbihBKXx8QT09PW51bGx8fEE9PT0hMSxNQT17Z2V0QWRhcHRlcjooQSx0KT0+e0E9aS5pc0FycmF5KEEpP0E6W0FdO2xldHtsZW5ndGg6ZX09QSxJLHIsZz17fTtmb3IobGV0IG89MDtvPGU7bysrKXtJPUFbb107bGV0IG47aWYocj1JLCFzcihJKSYmKHI9Y3RbKG49U3RyaW5nKEkpKS50b0xvd2VyQ2FzZSgpXSxyPT09dm9pZCAwKSl0aHJvdyBuZXcgdShgVW5rbm93biBhZGFwdGVyIFwnJHtufVwnYCk7aWYociYmKGkuaXNGdW5jdGlvbihyKXx8KHI9ci5nZXQodCkpKSlicmVhaztnW258fCIlMjMiK29dPXJ9aWYoIXIpe2xldCBvPU9iamVjdC5lbnRyaWVzKGcpLm1hcCgoW0UsQl0pPT5gYWRhcHRlciAke0V9IGArKEI9PT0hMT8iaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZW52aXJvbm1lbnQiOiJpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBidWlsZCIpKSxuPWU/by5sZW5ndGg+MT9gc2luY2UgOiUwQWArby5tYXAoZmUpLmpvaW4oYCUwQWApOiIgIitmZShvWzBdKToiYXMgbm8gYWRhcHRlciBzcGVjaWZpZWQiO3Rocm93IG5ldyB1KCJUaGVyZSBpcyBubyBzdWl0YWJsZSBhZGFwdGVyIHRvIGRpc3BhdGNoIHRoZSByZXF1ZXN0ICIrbiwiRVJSX05PVF9TVVBQT1JUIil9cmV0dXJuIHJ9LGFkYXB0ZXJzOmN0fTtmdW5jdGlvbiBmdChBKXtpZihBLmNhbmNlbFRva2VuJiZBLmNhbmNlbFRva2VuLnRocm93SWZSZXF1ZXN0ZWQoKSxBLnNpZ25hbCYmQS5zaWduYWwuYWJvcnRlZCl0aHJvdyBuZXcgSChudWxsLEEpfWZ1bmN0aW9uIEtBKEEpe3JldHVybiBmdChBKSxBLmhlYWRlcnM9cC5mcm9tKEEuaGVhZGVycyksQS5kYXRhPUJBLmNhbGwoQSxBLnRyYW5zZm9ybVJlcXVlc3QpLFsicG9zdCIsInB1dCIsInBhdGNoIl0uaW5kZXhPZihBLm1ldGhvZCkhPT0tMSYmQS5oZWFkZXJzLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLCExKSxNQS5nZXRBZGFwdGVyKEEuYWRhcHRlcnx8QUEuYWRhcHRlcixBKShBKS50aGVuKGZ1bmN0aW9uKEkpe3JldHVybiBmdChBKSxJLmRhdGE9QkEuY2FsbChBLEEudHJhbnNmb3JtUmVzcG9uc2UsSSksSS5oZWFkZXJzPXAuZnJvbShJLmhlYWRlcnMpLEl9LGZ1bmN0aW9uKEkpe3JldHVybiBhQShJKXx8KGZ0KEEpLEkmJkkucmVzcG9uc2UmJihJLnJlc3BvbnNlLmRhdGE9QkEuY2FsbChBLEEudHJhbnNmb3JtUmVzcG9uc2UsSS5yZXNwb25zZSksSS5yZXNwb25zZS5oZWFkZXJzPXAuZnJvbShJLnJlc3BvbnNlLmhlYWRlcnMpKSksUHJvbWlzZS5yZWplY3QoSSl9KX12YXIgT0E9IjEuMTIuMCI7dmFyIFRBPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaCgoQSx0KT0+e1RBW0FdPWZ1bmN0aW9uKEkpe3JldHVybiB0eXBlb2YgST09PUF8fCJhIisodDwxPyJuICI6IiAiKStBfX0pO3ZhciBsZT17fTtUQS50cmFuc2l0aW9uYWw9ZnVuY3Rpb24odCxlLEkpe2Z1bmN0aW9uIHIoZyxvKXtyZXR1cm4iW0F4aW9zIHYiK09BKyJdIFRyYW5zaXRpb25hbCBvcHRpb24gXCciK2crIlwnIitvKyhJPyIuICIrSToiIil9cmV0dXJuKGcsbyxuKT0+e2lmKHQ9PT0hMSl0aHJvdyBuZXcgdShyKG8sIiBoYXMgYmVlbiByZW1vdmVkIisoZT8iIGluICIrZToiIikpLHUuRVJSX0RFUFJFQ0FURUQpO3JldHVybiBlJiYhbGVbb10mJihsZVtvXT0hMCxjb25zb2xlLndhcm4ocihvLCIgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2IitlKyIgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUiKSkpLHQ/dChnLG8sbik6ITB9fTtUQS5zcGVsbGluZz1mdW5jdGlvbih0KXtyZXR1cm4oZSxJKT0+KGNvbnNvbGUud2FybihgJHtJfSBpcyBsaWtlbHkgYSBtaXNzcGVsbGluZyBvZiAke3R9YCksITApfTtmdW5jdGlvbiBucihBLHQsZSl7aWYodHlwZW9mIEEhPSJvYmplY3QiKXRocm93IG5ldyB1KCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Iix1LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtsZXQgST1PYmplY3Qua2V5cyhBKSxyPUkubGVuZ3RoO2Zvcig7ci0tID4wOyl7bGV0IGc9SVtyXSxvPXRbZ107aWYobyl7bGV0IG49QVtnXSxFPW49PT12b2lkIDB8fG8obixnLEEpO2lmKEUhPT0hMCl0aHJvdyBuZXcgdSgib3B0aW9uICIrZysiIG11c3QgYmUgIitFLHUuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2NvbnRpbnVlfWlmKGUhPT0hMCl0aHJvdyBuZXcgdSgiVW5rbm93biBvcHRpb24gIitnLHUuRVJSX0JBRF9PUFRJT04pfX12YXIgY0E9e2Fzc2VydE9wdGlvbnM6bnIsdmFsaWRhdG9yczpUQX07dmFyIFk9Y0EudmFsaWRhdG9ycyxJQT1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmRlZmF1bHRzPXR8fHt9LHRoaXMuaW50ZXJjZXB0b3JzPXtyZXF1ZXN0Om5ldyB0dCxyZXNwb25zZTpuZXcgdHR9fWFzeW5jIHJlcXVlc3QodCxlKXt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuX3JlcXVlc3QodCxlKX1jYXRjaChJKXtpZihJIGluc3RhbmNlb2YgRXJyb3Ipe2xldCByPXt9O0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHIpOnI9bmV3IEVycm9yO2xldCBnPXIuc3RhY2s/ci5zdGFjay5yZXBsYWNlKC9eLitcXG4vLCIiKToiIjt0cnl7SS5zdGFjaz9nJiYhU3RyaW5nKEkuc3RhY2spLmVuZHNXaXRoKGcucmVwbGFjZSgvXi4rXFxuLitcXG4vLCIiKSkmJihJLnN0YWNrKz1gJTBBYCtnKTpJLnN0YWNrPWd9Y2F0Y2h7fX10aHJvdyBJfX1fcmVxdWVzdCh0LGUpe3R5cGVvZiB0PT0ic3RyaW5nIj8oZT1lfHx7fSxlLnVybD10KTplPXR8fHt9LGU9Yih0aGlzLmRlZmF1bHRzLGUpO2xldHt0cmFuc2l0aW9uYWw6SSxwYXJhbXNTZXJpYWxpemVyOnIsaGVhZGVyczpnfT1lO0khPT12b2lkIDAmJmNBLmFzc2VydE9wdGlvbnMoSSx7c2lsZW50SlNPTlBhcnNpbmc6WS50cmFuc2l0aW9uYWwoWS5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzpZLnRyYW5zaXRpb25hbChZLmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6WS50cmFuc2l0aW9uYWwoWS5ib29sZWFuKX0sITEpLHIhPW51bGwmJihpLmlzRnVuY3Rpb24ocik/ZS5wYXJhbXNTZXJpYWxpemVyPXtzZXJpYWxpemU6cn06Y0EuYXNzZXJ0T3B0aW9ucyhyLHtlbmNvZGU6WS5mdW5jdGlvbixzZXJpYWxpemU6WS5mdW5jdGlvbn0sITApKSxlLmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwfHwodGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMD9lLmFsbG93QWJzb2x1dGVVcmxzPXRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHM6ZS5hbGxvd0Fic29sdXRlVXJscz0hMCksY0EuYXNzZXJ0T3B0aW9ucyhlLHtiYXNlVXJsOlkuc3BlbGxpbmcoImJhc2VVUkwiKSx3aXRoWHNyZlRva2VuOlkuc3BlbGxpbmcoIndpdGhYU1JGVG9rZW4iKX0sITApLGUubWV0aG9kPShlLm1ldGhvZHx8dGhpcy5kZWZhdWx0cy5tZXRob2R8fCJnZXQiKS50b0xvd2VyQ2FzZSgpO2xldCBvPWcmJmkubWVyZ2UoZy5jb21tb24sZ1tlLm1ldGhvZF0pO2cmJmkuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giLCJjb21tb24iXSxRPT57ZGVsZXRlIGdbUV19KSxlLmhlYWRlcnM9cC5jb25jYXQobyxnKTtsZXQgbj1bXSxFPSEwO3RoaXMuaW50ZXJjZXB0b3JzLnJlcXVlc3QuZm9yRWFjaChmdW5jdGlvbihmKXt0eXBlb2YgZi5ydW5XaGVuPT0iZnVuY3Rpb24iJiZmLnJ1bldoZW4oZSk9PT0hMXx8KEU9RSYmZi5zeW5jaHJvbm91cyxuLnVuc2hpZnQoZi5mdWxmaWxsZWQsZi5yZWplY3RlZCkpfSk7bGV0IEI9W107dGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaChmdW5jdGlvbihmKXtCLnB1c2goZi5mdWxmaWxsZWQsZi5yZWplY3RlZCl9KTtsZXQgcyxDPTAsbDtpZighRSl7bGV0IFE9W0tBLmJpbmQodGhpcyksdm9pZCAwXTtmb3IoUS51bnNoaWZ0KC4uLm4pLFEucHVzaCguLi5CKSxsPVEubGVuZ3RoLHM9UHJvbWlzZS5yZXNvbHZlKGUpO0M8bDspcz1zLnRoZW4oUVtDKytdLFFbQysrXSk7cmV0dXJuIHN9bD1uLmxlbmd0aDtsZXQgYT1lO2ZvcihDPTA7QzxsOyl7bGV0IFE9bltDKytdLGY9bltDKytdO3RyeXthPVEoYSl9Y2F0Y2goYyl7Zi5jYWxsKHRoaXMsYyk7YnJlYWt9fXRyeXtzPUtBLmNhbGwodGhpcyxhKX1jYXRjaChRKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoUSl9Zm9yKEM9MCxsPUIubGVuZ3RoO0M8bDspcz1zLnRoZW4oQltDKytdLEJbQysrXSk7cmV0dXJuIHN9Z2V0VXJpKHQpe3Q9Yih0aGlzLmRlZmF1bHRzLHQpO2xldCBlPUVBKHQuYmFzZVVSTCx0LnVybCx0LmFsbG93QWJzb2x1dGVVcmxzKTtyZXR1cm4gbkEoZSx0LnBhcmFtcyx0LnBhcmFtc1NlcmlhbGl6ZXIpfX07aS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSxmdW5jdGlvbih0KXtJQS5wcm90b3R5cGVbdF09ZnVuY3Rpb24oZSxJKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KGIoSXx8e30se21ldGhvZDp0LHVybDplLGRhdGE6KEl8fHt9KS5kYXRhfSkpfX0pO2kuZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoSSl7cmV0dXJuIGZ1bmN0aW9uKGcsbyxuKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KGIobnx8e30se21ldGhvZDp0LGhlYWRlcnM6ST97IkNvbnRlbnQtVHlwZSI6Im11bHRpcGFydC9mb3JtLWRhdGEifTp7fSx1cmw6ZyxkYXRhOm99KSl9fUlBLnByb3RvdHlwZVt0XT1lKCksSUEucHJvdG90eXBlW3QrIkZvcm0iXT1lKCEwKX0pO3ZhciBmQT1JQTt2YXIgbHQ9Y2xhc3MgQXtjb25zdHJ1Y3Rvcih0KXtpZih0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7bGV0IGU7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGcpe2U9Z30pO2xldCBJPXRoaXM7dGhpcy5wcm9taXNlLnRoZW4ocj0+e2lmKCFJLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBnPUkuX2xpc3RlbmVycy5sZW5ndGg7Zm9yKDtnLS0gPjA7KUkuX2xpc3RlbmVyc1tnXShyKTtJLl9saXN0ZW5lcnM9bnVsbH0pLHRoaXMucHJvbWlzZS50aGVuPXI9PntsZXQgZyxvPW5ldyBQcm9taXNlKG49PntJLnN1YnNjcmliZShuKSxnPW59KS50aGVuKHIpO3JldHVybiBvLmNhbmNlbD1mdW5jdGlvbigpe0kudW5zdWJzY3JpYmUoZyl9LG99LHQoZnVuY3Rpb24oZyxvLG4pe0kucmVhc29ufHwoSS5yZWFzb249bmV3IEgoZyxvLG4pLGUoSS5yZWFzb24pKX0pfXRocm93SWZSZXF1ZXN0ZWQoKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn1zdWJzY3JpYmUodCl7aWYodGhpcy5yZWFzb24pe3QodGhpcy5yZWFzb24pO3JldHVybn10aGlzLl9saXN0ZW5lcnM/dGhpcy5fbGlzdGVuZXJzLnB1c2godCk6dGhpcy5fbGlzdGVuZXJzPVt0XX11bnN1YnNjcmliZSh0KXtpZighdGhpcy5fbGlzdGVuZXJzKXJldHVybjtsZXQgZT10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZih0KTtlIT09LTEmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UoZSwxKX10b0Fib3J0U2lnbmFsKCl7bGV0IHQ9bmV3IEFib3J0Q29udHJvbGxlcixlPUk9Pnt0LmFib3J0KEkpfTtyZXR1cm4gdGhpcy5zdWJzY3JpYmUoZSksdC5zaWduYWwudW5zdWJzY3JpYmU9KCk9PnRoaXMudW5zdWJzY3JpYmUoZSksdC5zaWduYWx9c3RhdGljIHNvdXJjZSgpe2xldCB0O3JldHVybnt0b2tlbjpuZXcgQShmdW5jdGlvbihyKXt0PXJ9KSxjYW5jZWw6dH19fSx1ZT1sdDtmdW5jdGlvbiB1dChBKXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIEEuYXBwbHkobnVsbCxlKX19ZnVuY3Rpb24gZHQoQSl7cmV0dXJuIGkuaXNPYmplY3QoQSkmJkEuaXNBeGlvc0Vycm9yPT09ITB9dmFyIER0PXtDb250aW51ZToxMDAsU3dpdGNoaW5nUHJvdG9jb2xzOjEwMSxQcm9jZXNzaW5nOjEwMixFYXJseUhpbnRzOjEwMyxPazoyMDAsQ3JlYXRlZDoyMDEsQWNjZXB0ZWQ6MjAyLE5vbkF1dGhvcml0YXRpdmVJbmZvcm1hdGlvbjoyMDMsTm9Db250ZW50OjIwNCxSZXNldENvbnRlbnQ6MjA1LFBhcnRpYWxDb250ZW50OjIwNixNdWx0aVN0YXR1czoyMDcsQWxyZWFkeVJlcG9ydGVkOjIwOCxJbVVzZWQ6MjI2LE11bHRpcGxlQ2hvaWNlczozMDAsTW92ZWRQZXJtYW5lbnRseTozMDEsRm91bmQ6MzAyLFNlZU90aGVyOjMwMyxOb3RNb2RpZmllZDozMDQsVXNlUHJveHk6MzA1LFVudXNlZDozMDYsVGVtcG9yYXJ5UmVkaXJlY3Q6MzA3LFBlcm1hbmVudFJlZGlyZWN0OjMwOCxCYWRSZXF1ZXN0OjQwMCxVbmF1dGhvcml6ZWQ6NDAxLFBheW1lbnRSZXF1aXJlZDo0MDIsRm9yYmlkZGVuOjQwMyxOb3RGb3VuZDo0MDQsTWV0aG9kTm90QWxsb3dlZDo0MDUsTm90QWNjZXB0YWJsZTo0MDYsUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkOjQwNyxSZXF1ZXN0VGltZW91dDo0MDgsQ29uZmxpY3Q6NDA5LEdvbmU6NDEwLExlbmd0aFJlcXVpcmVkOjQxMSxQcmVjb25kaXRpb25GYWlsZWQ6NDEyLFBheWxvYWRUb29MYXJnZTo0MTMsVXJpVG9vTG9uZzo0MTQsVW5zdXBwb3J0ZWRNZWRpYVR5cGU6NDE1LFJhbmdlTm90U2F0aXNmaWFibGU6NDE2LEV4cGVjdGF0aW9uRmFpbGVkOjQxNyxJbUFUZWFwb3Q6NDE4LE1pc2RpcmVjdGVkUmVxdWVzdDo0MjEsVW5wcm9jZXNzYWJsZUVudGl0eTo0MjIsTG9ja2VkOjQyMyxGYWlsZWREZXBlbmRlbmN5OjQyNCxUb29FYXJseTo0MjUsVXBncmFkZVJlcXVpcmVkOjQyNixQcmVjb25kaXRpb25SZXF1aXJlZDo0MjgsVG9vTWFueVJlcXVlc3RzOjQyOSxSZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6NDMxLFVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zOjQ1MSxJbnRlcm5hbFNlcnZlckVycm9yOjUwMCxOb3RJbXBsZW1lbnRlZDo1MDEsQmFkR2F0ZXdheTo1MDIsU2VydmljZVVuYXZhaWxhYmxlOjUwMyxHYXRld2F5VGltZW91dDo1MDQsSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6NTA1LFZhcmlhbnRBbHNvTmVnb3RpYXRlczo1MDYsSW5zdWZmaWNpZW50U3RvcmFnZTo1MDcsTG9vcERldGVjdGVkOjUwOCxOb3RFeHRlbmRlZDo1MTAsTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NTExfTtPYmplY3QuZW50cmllcyhEdCkuZm9yRWFjaCgoW0EsdF0pPT57RHRbdF09QX0pO3ZhciBkZT1EdDtmdW5jdGlvbiBEZShBKXtsZXQgdD1uZXcgZkEoQSksZT1vQShmQS5wcm90b3R5cGUucmVxdWVzdCx0KTtyZXR1cm4gaS5leHRlbmQoZSxmQS5wcm90b3R5cGUsdCx7YWxsT3duS2V5czohMH0pLGkuZXh0ZW5kKGUsdCxudWxsLHthbGxPd25LZXlzOiEwfSksZS5jcmVhdGU9ZnVuY3Rpb24ocil7cmV0dXJuIERlKGIoQSxyKSl9LGV9dmFyIG09RGUoQUEpO20uQXhpb3M9ZkE7bS5DYW5jZWxlZEVycm9yPUg7bS5DYW5jZWxUb2tlbj11ZTttLmlzQ2FuY2VsPWFBO20uVkVSU0lPTj1PQTttLnRvRm9ybURhdGE9VDttLkF4aW9zRXJyb3I9dTttLkNhbmNlbD1tLkNhbmNlbGVkRXJyb3I7bS5hbGw9ZnVuY3Rpb24odCl7cmV0dXJuIFByb21pc2UuYWxsKHQpfTttLnNwcmVhZD11dDttLmlzQXhpb3NFcnJvcj1kdDttLm1lcmdlQ29uZmlnPWI7bS5BeGlvc0hlYWRlcnM9cDttLmZvcm1Ub0pTT049QT0+SkEoaS5pc0hUTUxGb3JtKEEpP25ldyBGb3JtRGF0YShBKTpBKTttLmdldEFkYXB0ZXI9TUEuZ2V0QWRhcHRlcjttLkh0dHBTdGF0dXNDb2RlPWRlO20uZGVmYXVsdD1tO3ZhciB4QT1tO3ZhcntBeGlvczpSaSxBeGlvc0Vycm9yOk5pLENhbmNlbGVkRXJyb3I6VWksaXNDYW5jZWw6R2ksQ2FuY2VsVG9rZW46a2ksVkVSU0lPTjpMaSxhbGw6YmksQ2FuY2VsOkppLGlzQXhpb3NFcnJvcjpIaSxzcHJlYWQ6WWksdG9Gb3JtRGF0YTpxaSxBeGlvc0hlYWRlcnM6TWksSHR0cFN0YXR1c0NvZGU6S2ksZm9ybVRvSlNPTjpPaSxnZXRBZGFwdGVyOlRpLG1lcmdlQ29uZmlnOnhpfT14QTt2YXIgbEEsTSx5dCxodD17ZW52OntlbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoOmZ1bmN0aW9uKEEpe3l0PW5ldyBVaW50OEFycmF5KE0uZXhwb3J0cy5tZW1vcnkuYnVmZmVyKX19fSxQQT1jbGFzc3tpbml0KCl7cmV0dXJuIGxBfHwodHlwZW9mIGZldGNoPCJ1Ij9sQT1mZXRjaCgiZGF0YTphcHBsaWNhdGlvbi93YXNtO2Jhc2U2NCwiK2hlKS50aGVuKHQ9PnQuYXJyYXlCdWZmZXIoKSkudGhlbih0PT5XZWJBc3NlbWJseS5pbnN0YW50aWF0ZSh0LGh0KSkudGhlbih0aGlzLl9pbml0KTpsQT1XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShCdWZmZXIuZnJvbShoZSwiYmFzZTY0IiksaHQpLnRoZW4odGhpcy5faW5pdCksbEEpfV9pbml0KHQpe009dC5pbnN0YW5jZSxodC5lbnYuZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aCgwKX1kZWNvZGUodCxlPTApe2lmKCFNKXRocm93IG5ldyBFcnJvcigiWlNURERlY29kZXI6IEF3YWl0IC5pbml0KCkgYmVmb3JlIGRlY29kaW5nLiIpO2xldCBJPXQuYnl0ZUxlbmd0aCxyPU0uZXhwb3J0cy5tYWxsb2MoSSk7eXQuc2V0KHQsciksZT1lfHxOdW1iZXIoTS5leHBvcnRzLlpTVERfZmluZERlY29tcHJlc3NlZFNpemUocixJKSk7bGV0IGc9TS5leHBvcnRzLm1hbGxvYyhlKSxvPU0uZXhwb3J0cy5aU1REX2RlY29tcHJlc3MoZyxlLHIsSSksbj15dC5zbGljZShnLGcrbyk7cmV0dXJuIE0uZXhwb3J0cy5mcmVlKHIpLE0uZXhwb3J0cy5mcmVlKGcpLG59fSxoZT0iQUdGemJRRUFBQUFCYmc1Z0EzOS9md0YvWUFGL0FYOWdBbjkvQUdBQmZ3QmdCWDkvZjM5L0FYOWdBMzkvZndCZ0JIOS9mMzhCZjJBQUFYOWdBbjkvQVg5Z0IzOS9mMzkvZjM4QmYyQUNmMzhCZm1BSWYzOS9mMzkvZjM4QmYyQUZmMzkvZjM4QVlBNS9mMzkvZjM5L2YzOS9mMzkvZndGL0FpY0JBMlZ1ZGg5bGJYTmpjbWx3ZEdWdVgyNXZkR2xtZVY5dFpXMXZjbmxmWjNKdmQzUm9BQU1ESXlJSEFBQUJBUU1IQXdFQUNRUUFCUUVJQ0FFRkJnUUVCQU1HQUFBS0FBVUxEQTBHQkFVQmNBRUJBUVVIQVFHQUFvQ0FBZ1lJQVg4QlFZQ2pCQXNIcmdFTEJtMWxiVzl5ZVFJQUJtMWhiR3h2WXdBRkJHWnlaV1VBQmd4YVUxUkVYMmx6UlhKeWIzSUFFaGxhVTFSRVgyWnBibVJFWldOdmJYQnlaWE56WldSVGFYcGxBQndQV2xOVVJGOWtaV052YlhCeVpYTnpBQ0laWDE5cGJtUnBjbVZqZEY5bWRXNWpkR2x2Ymw5MFlXSnNaUUVBRUY5ZlpYSnlibTlmYkc5allYUnBiMjRBQVFsemRHRmphMU5oZG1VQUJ3eHpkR0ZqYTFKbGMzUnZjbVVBQ0FwemRHRmphMEZzYkc5akFBa0tpL0lCSWdVQVFZUWZDek1CQVg4Z0FnUkFJQUFoQXdOQUlBTWdBUzBBQURvQUFDQURRUUZxSVFNZ0FVRUJhaUVCSUFKQkFXc2lBZzBBQ3dzZ0FBc3BBUUYvSUFJRVFDQUFJUU1EUUNBRElBRTZBQUFnQTBFQmFpRURJQUpCQVdzaUFnMEFDd3NnQUF0c0FRSi9RWUFmS0FJQUlnRWdBRUVIYWtGNGNTSUNhaUVBQWtBZ0FrRUFJQUFnQVUwYkRRQWdBRDhBUVJCMFN3UkFJQUEvQUVFUWRHdEIvLzhEYWtFUWRrQUFRWDlHQkg5QkFBVkJBQkFBUVFFTFJRMEJDMEdBSHlBQU5nSUFJQUVQQzBHRUgwRXdOZ0lBUVg4THVTY0JDMzhqQUVFUWF5SUtKQUFDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCaUI4b0FnQWlCa0VRSUFCQkMycEJlSEVnQUVFTFNSc2lCVUVEZGlJQWRpSUJRUU54QkVBQ1FDQUJRWDl6UVFGeElBQnFJZ0pCQTNRaUFVR3dIMm9pQUNBQlFiZ2ZhaWdDQUNJQktBSUlJZ1JHQkVCQmlCOGdCa0YrSUFKM2NUWUNBQXdCQ3lBRUlBQTJBZ3dnQUNBRU5nSUlDeUFCUVFocUlRQWdBU0FDUVFOMElnSkJBM0kyQWdRZ0FTQUNhaUlCSUFFb0FnUkJBWEkyQWdRTUR3c2dCVUdRSHlnQ0FDSUhUUTBCSUFFRVFBSkFRUUlnQUhRaUFrRUFJQUpyY2lBQklBQjBjV2dpQVVFRGRDSUFRYkFmYWlJQ0lBQkJ1QjlxS0FJQUlnQW9BZ2dpQkVZRVFFR0lIeUFHUVg0Z0FYZHhJZ1kyQWdBTUFRc2dCQ0FDTmdJTUlBSWdCRFlDQ0FzZ0FDQUZRUU55TmdJRUlBQWdCV29pQ0NBQlFRTjBJZ0VnQldzaUJFRUJjallDQkNBQUlBRnFJQVEyQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUZCbkI4b0FnQWhBZ0ovSUFaQkFTQUhRUU4yZENJRGNVVUVRRUdJSHlBRElBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEF5QUJJQUkyQWdnZ0F5QUNOZ0lNSUFJZ0FUWUNEQ0FDSUFNMkFnZ0xJQUJCQ0dvaEFFR2NIeUFJTmdJQVFaQWZJQVEyQWdBTUR3dEJqQjhvQWdBaUMwVU5BU0FMYUVFQ2RFRzRJV29vQWdBaUFpZ0NCRUY0Y1NBRmF5RURJQUloQVFOQUFrQWdBU2dDRUNJQVJRUkFJQUVvQWhRaUFFVU5BUXNnQUNnQ0JFRjRjU0FGYXlJQklBTWdBU0FEU1NJQkd5RURJQUFnQWlBQkd5RUNJQUFoQVF3QkN3c2dBaWdDR0NFSklBSWdBaWdDRENJRVJ3UkFRWmdmS0FJQUdpQUNLQUlJSWdBZ0JEWUNEQ0FFSUFBMkFnZ01EZ3NnQWtFVWFpSUJLQUlBSWdCRkJFQWdBaWdDRUNJQVJRMERJQUpCRUdvaEFRc0RRQ0FCSVFnZ0FDSUVRUlJxSWdFb0FnQWlBQTBBSUFSQkVHb2hBU0FFS0FJUUlnQU5BQXNnQ0VFQU5nSUFEQTBMUVg4aEJTQUFRYjkvU3cwQUlBQkJDMm9pQUVGNGNTRUZRWXdmS0FJQUlnaEZEUUJCQUNBRmF5RURBa0FDUUFKQUFuOUJBQ0FGUVlBQ1NRMEFHa0VmSUFWQi8vLy9CMHNOQUJvZ0JVRW1JQUJCQ0habklnQnJka0VCY1NBQVFRRjBhMEUrYWdzaUIwRUNkRUc0SVdvb0FnQWlBVVVFUUVFQUlRQU1BUXRCQUNFQUlBVkJHU0FIUVFGMmEwRUFJQWRCSDBjYmRDRUNBMEFDUUNBQktBSUVRWGh4SUFWcklnWWdBMDhOQUNBQklRUWdCaUlERFFCQkFDRURJQUVoQUF3REN5QUFJQUVvQWhRaUJpQUdJQUVnQWtFZGRrRUVjV29vQWhBaUFVWWJJQUFnQmhzaEFDQUNRUUYwSVFJZ0FRMEFDd3NnQUNBRWNrVUVRRUVBSVFSQkFpQUhkQ0lBUVFBZ0FHdHlJQWh4SWdCRkRRTWdBR2hCQW5SQnVDRnFLQUlBSVFBTElBQkZEUUVMQTBBZ0FDZ0NCRUY0Y1NBRmF5SUNJQU5KSVFFZ0FpQURJQUViSVFNZ0FDQUVJQUViSVFRZ0FDZ0NFQ0lCQkg4Z0FRVWdBQ2dDRkFzaUFBMEFDd3NnQkVVTkFDQURRWkFmS0FJQUlBVnJUdzBBSUFRb0FoZ2hCeUFFSUFRb0Fnd2lBa2NFUUVHWUh5Z0NBQm9nQkNnQ0NDSUFJQUkyQWd3Z0FpQUFOZ0lJREF3TElBUkJGR29pQVNnQ0FDSUFSUVJBSUFRb0FoQWlBRVVOQXlBRVFSQnFJUUVMQTBBZ0FTRUdJQUFpQWtFVWFpSUJLQUlBSWdBTkFDQUNRUkJxSVFFZ0FpZ0NFQ0lBRFFBTElBWkJBRFlDQUF3TEN5QUZRWkFmS0FJQUlnUk5CRUJCbkI4b0FnQWhBQUpBSUFRZ0JXc2lBVUVRVHdSQUlBQWdCV29pQWlBQlFRRnlOZ0lFSUFBZ0JHb2dBVFlDQUNBQUlBVkJBM0kyQWdRTUFRc2dBQ0FFUVFOeU5nSUVJQUFnQkdvaUFTQUJLQUlFUVFGeU5nSUVRUUFoQWtFQUlRRUxRWkFmSUFFMkFnQkJuQjhnQWpZQ0FDQUFRUWhxSVFBTURRc2dCVUdVSHlnQ0FDSUNTUVJBUVpRZklBSWdCV3NpQVRZQ0FFR2dIMEdnSHlnQ0FDSUFJQVZxSWdJMkFnQWdBaUFCUVFGeU5nSUVJQUFnQlVFRGNqWUNCQ0FBUVFocUlRQU1EUXRCQUNFQUlBVkJMMm9pQXdKL1FlQWlLQUlBQkVCQjZDSW9BZ0FNQVF0QjdDSkNmemNDQUVIa0lrS0FvSUNBZ0lBRU53SUFRZUFpSUFwQkRHcEJjSEZCMktyVnFnVnpOZ0lBUWZRaVFRQTJBZ0JCeENKQkFEWUNBRUdBSUFzaUFXb2lCa0VBSUFGcklnaHhJZ0VnQlUwTkRFSEFJaWdDQUNJRUJFQkJ1Q0lvQWdBaUJ5QUJhaUlKSUFkTklBUWdDVWx5RFEwTEFrQkJ4Q0l0QUFCQkJIRkZCRUFDUUFKQUFrQUNRRUdnSHlnQ0FDSUVCRUJCeUNJaEFBTkFJQVFnQUNnQ0FDSUhUd1JBSUFjZ0FDZ0NCR29nQkVzTkF3c2dBQ2dDQ0NJQURRQUxDMEVBRUFRaUFrRi9SZzBESUFFaEJrSGtJaWdDQUNJQVFRRnJJZ1FnQW5FRVFDQUJJQUpySUFJZ0JHcEJBQ0FBYTNGcUlRWUxJQVVnQms4TkEwSEFJaWdDQUNJQUJFQkJ1Q0lvQWdBaUJDQUdhaUlJSUFSTklBQWdDRWx5RFFRTElBWVFCQ0lBSUFKSERRRU1CUXNnQmlBQ2F5QUljU0lHRUFRaUFpQUFLQUlBSUFBb0FnUnFSZzBCSUFJaEFBc2dBRUYvUmcwQklBVkJNR29nQmswRVFDQUFJUUlNQkF0QjZDSW9BZ0FpQWlBRElBWnJha0VBSUFKcmNTSUNFQVJCZjBZTkFTQUNJQVpxSVFZZ0FDRUNEQU1MSUFKQmYwY05BZ3RCeENKQnhDSW9BZ0JCQkhJMkFnQUxJQUVRQkNJQ1FYOUdRUUFRQkNJQVFYOUdjaUFBSUFKTmNnMEZJQUFnQW1zaUJpQUZRU2hxVFEwRkMwRzRJa0c0SWlnQ0FDQUdhaUlBTmdJQVFid2lLQUlBSUFCSkJFQkJ2Q0lnQURZQ0FBc0NRRUdnSHlnQ0FDSURCRUJCeUNJaEFBTkFJQUlnQUNnQ0FDSUJJQUFvQWdRaUJHcEdEUUlnQUNnQ0NDSUFEUUFMREFRTFFaZ2ZLQUlBSWdCQkFDQUFJQUpORzBVRVFFR1lIeUFDTmdJQUMwRUFJUUJCekNJZ0JqWUNBRUhJSWlBQ05nSUFRYWdmUVg4MkFnQkJyQjlCNENJb0FnQTJBZ0JCMUNKQkFEWUNBQU5BSUFCQkEzUWlBVUc0SDJvZ0FVR3dIMm9pQkRZQ0FDQUJRYndmYWlBRU5nSUFJQUJCQVdvaUFFRWdSdzBBQzBHVUh5QUdRU2hySWdCQmVDQUNhMEVIY1NJQmF5SUVOZ0lBUWFBZklBRWdBbW9pQVRZQ0FDQUJJQVJCQVhJMkFnUWdBQ0FDYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFRTElBSWdBMDBnQVNBRFMzSU5BaUFBS0FJTVFRaHhEUUlnQUNBRUlBWnFOZ0lFUWFBZklBTkJlQ0FEYTBFSGNTSUFhaUlCTmdJQVFaUWZRWlFmS0FJQUlBWnFJZ0lnQUdzaUFEWUNBQ0FCSUFCQkFYSTJBZ1FnQWlBRGFrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBTUxRUUFoQkF3S0MwRUFJUUlNQ0F0Qm1COG9BZ0FnQWtzRVFFR1lIeUFDTmdJQUN5QUNJQVpxSVFGQnlDSWhBQUpBQWtBQ1FBTkFJQUVnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEJ5Q0loQUFOQUlBTWdBQ2dDQUNJQlR3UkFJQUVnQUNnQ0JHb2lCQ0FEU3cwREN5QUFLQUlJSVFBTUFBc0FDeUFBSUFJMkFnQWdBQ0FBS0FJRUlBWnFOZ0lFSUFKQmVDQUNhMEVIY1dvaUJ5QUZRUU55TmdJRUlBRkJlQ0FCYTBFSGNXb2lCaUFGSUFkcUlnVnJJUUFnQXlBR1JnUkFRYUFmSUFVMkFnQkJsQjlCbEI4b0FnQWdBR29pQURZQ0FDQUZJQUJCQVhJMkFnUU1DQXRCbkI4b0FnQWdCa1lFUUVHY0h5QUZOZ0lBUVpBZlFaQWZLQUlBSUFCcUlnQTJBZ0FnQlNBQVFRRnlOZ0lFSUFBZ0JXb2dBRFlDQUF3SUN5QUdLQUlFSWdOQkEzRkJBVWNOQmlBRFFYaHhJUWtnQTBIL0FVMEVRQ0FHS0FJTUlnRWdCaWdDQ0NJQ1JnUkFRWWdmUVlnZktBSUFRWDRnQTBFRGRuZHhOZ0lBREFjTElBSWdBVFlDRENBQklBSTJBZ2dNQmdzZ0JpZ0NHQ0VJSUFZZ0JpZ0NEQ0lDUndSQUlBWW9BZ2dpQVNBQ05nSU1JQUlnQVRZQ0NBd0ZDeUFHUVJScUlnRW9BZ0FpQTBVRVFDQUdLQUlRSWdORkRRUWdCa0VRYWlFQkN3TkFJQUVoQkNBRElnSkJGR29pQVNnQ0FDSUREUUFnQWtFUWFpRUJJQUlvQWhBaUF3MEFDeUFFUVFBMkFnQU1CQXRCbEI4Z0JrRW9heUlBUVhnZ0FtdEJCM0VpQVdzaUNEWUNBRUdnSHlBQklBSnFJZ0UyQWdBZ0FTQUlRUUZ5TmdJRUlBQWdBbXBCS0RZQ0JFR2tIMEh3SWlnQ0FEWUNBQ0FESUFSQkp5QUVhMEVIY1dwQkwyc2lBQ0FBSUFOQkVHcEpHeUlCUVJzMkFnUWdBVUhRSWlrQ0FEY0NFQ0FCUWNnaUtRSUFOd0lJUWRBaUlBRkJDR28yQWdCQnpDSWdCallDQUVISUlpQUNOZ0lBUWRRaVFRQTJBZ0FnQVVFWWFpRUFBMEFnQUVFSE5nSUVJQUJCQ0dvZ0FFRUVhaUVBSUFSSkRRQUxJQUVnQTBZTkFDQUJJQUVvQWdSQmZuRTJBZ1FnQXlBQklBTnJJZ0pCQVhJMkFnUWdBU0FDTmdJQUlBSkIvd0ZOQkVBZ0FrRjRjVUd3SDJvaEFBSi9RWWdmS0FJQUlnRkJBU0FDUVFOMmRDSUNjVVVFUUVHSUh5QUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBU0FBSUFNMkFnZ2dBU0FETmdJTUlBTWdBRFlDRENBRElBRTJBZ2dNQVF0Qkh5RUFJQUpCLy8vL0IwMEVRQ0FDUVNZZ0FrRUlkbWNpQUd0MlFRRnhJQUJCQVhSclFUNXFJUUFMSUFNZ0FEWUNIQ0FEUWdBM0FoQWdBRUVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQkVFQklBQjBJZ1p4UlFSQVFZd2ZJQVFnQm5JMkFnQWdBU0FETmdJQURBRUxJQUpCR1NBQVFRRjJhMEVBSUFCQkgwY2JkQ0VBSUFFb0FnQWhCQU5BSUFRaUFTZ0NCRUY0Y1NBQ1JnMENJQUJCSFhZaEJDQUFRUUYwSVFBZ0FTQUVRUVJ4YWlJR0tBSVFJZ1FOQUFzZ0JpQUROZ0lRQ3lBRElBRTJBaGdnQXlBRE5nSU1JQU1nQXpZQ0NBd0JDeUFCS0FJSUlnQWdBellDRENBQklBTTJBZ2dnQTBFQU5nSVlJQU1nQVRZQ0RDQURJQUEyQWdnTFFaUWZLQUlBSWdBZ0JVME5BRUdVSHlBQUlBVnJJZ0UyQWdCQm9COUJvQjhvQWdBaUFDQUZhaUlDTmdJQUlBSWdBVUVCY2pZQ0JDQUFJQVZCQTNJMkFnUWdBRUVJYWlFQURBZ0xRWVFmUVRBMkFnQkJBQ0VBREFjTFFRQWhBZ3NnQ0VVTkFBSkFJQVlvQWh3aUFVRUNkRUc0SVdvaUJDZ0NBQ0FHUmdSQUlBUWdBallDQUNBQ0RRRkJqQjlCakI4b0FnQkJmaUFCZDNFMkFnQU1BZ3NnQ0VFUVFSUWdDQ2dDRUNBR1JodHFJQUkyQWdBZ0FrVU5BUXNnQWlBSU5nSVlJQVlvQWhBaUFRUkFJQUlnQVRZQ0VDQUJJQUkyQWhnTElBWW9BaFFpQVVVTkFDQUNJQUUyQWhRZ0FTQUNOZ0lZQ3lBQUlBbHFJUUFnQmlBSmFpSUdLQUlFSVFNTElBWWdBMEYrY1RZQ0JDQUZJQUJCQVhJMkFnUWdBQ0FGYWlBQU5nSUFJQUJCL3dGTkJFQWdBRUY0Y1VHd0gyb2hBUUovUVlnZktBSUFJZ0pCQVNBQVFRTjJkQ0lBY1VVRVFFR0lIeUFBSUFKeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQUNBQklBVTJBZ2dnQUNBRk5nSU1JQVVnQVRZQ0RDQUZJQUEyQWdnTUFRdEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBVWdBellDSENBRlFnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUFrRUJJQU4wSWdSeFJRUkFRWXdmSUFJZ0JISTJBZ0FnQVNBRk5nSUFEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQWdOQUlBSWlBU2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBaUFEUVFGMElRTWdBU0FDUVFSeGFpSUVLQUlRSWdJTkFBc2dCQ0FGTmdJUUN5QUZJQUUyQWhnZ0JTQUZOZ0lNSUFVZ0JUWUNDQXdCQ3lBQktBSUlJZ0FnQlRZQ0RDQUJJQVUyQWdnZ0JVRUFOZ0lZSUFVZ0FUWUNEQ0FGSUFBMkFnZ0xJQWRCQ0dvaEFBd0NDd0pBSUFkRkRRQUNRQ0FFS0FJY0lnQkJBblJCdUNGcUlnRW9BZ0FnQkVZRVFDQUJJQUkyQWdBZ0FnMEJRWXdmSUFoQmZpQUFkM0VpQ0RZQ0FBd0NDeUFIUVJCQkZDQUhLQUlRSUFSR0cyb2dBallDQUNBQ1JRMEJDeUFDSUFjMkFoZ2dCQ2dDRUNJQUJFQWdBaUFBTmdJUUlBQWdBallDR0FzZ0JDZ0NGQ0lBUlEwQUlBSWdBRFlDRkNBQUlBSTJBaGdMQWtBZ0EwRVBUUVJBSUFRZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQkdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFRZ0JVRURjallDQkNBRUlBVnFJZ0lnQTBFQmNqWUNCQ0FDSUFOcUlBTTJBZ0FnQTBIL0FVMEVRQ0FEUVhoeFFiQWZhaUVBQW45QmlCOG9BZ0FpQVVFQklBTkJBM1owSWdOeFJRUkFRWWdmSUFFZ0EzSTJBZ0FnQUF3QkN5QUFLQUlJQ3lFQklBQWdBallDQ0NBQklBSTJBZ3dnQWlBQU5nSU1JQUlnQVRZQ0NBd0JDMEVmSVFBZ0EwSC8vLzhIVFFSQUlBTkJKaUFEUVFoMlp5SUFhM1pCQVhFZ0FFRUJkR3RCUG1vaEFBc2dBaUFBTmdJY0lBSkNBRGNDRUNBQVFRSjBRYmdoYWlFQkFrQUNRQ0FJUVFFZ0FIUWlCbkZGQkVCQmpCOGdCaUFJY2pZQ0FDQUJJQUkyQWdBTUFRc2dBMEVaSUFCQkFYWnJRUUFnQUVFZlJ4dDBJUUFnQVNnQ0FDRUZBMEFnQlNJQktBSUVRWGh4SUFOR0RRSWdBRUVkZGlFR0lBQkJBWFFoQUNBQklBWkJCSEZxSWdZb0FoQWlCUTBBQ3lBR0lBSTJBaEFMSUFJZ0FUWUNHQ0FDSUFJMkFnd2dBaUFDTmdJSURBRUxJQUVvQWdnaUFDQUNOZ0lNSUFFZ0FqWUNDQ0FDUVFBMkFoZ2dBaUFCTmdJTUlBSWdBRFlDQ0FzZ0JFRUlhaUVBREFFTEFrQWdDVVVOQUFKQUlBSW9BaHdpQUVFQ2RFRzRJV29pQVNnQ0FDQUNSZ1JBSUFFZ0JEWUNBQ0FFRFFGQmpCOGdDMEYrSUFCM2NUWUNBQXdDQ3lBSlFSQkJGQ0FKS0FJUUlBSkdHMm9nQkRZQ0FDQUVSUTBCQ3lBRUlBazJBaGdnQWlnQ0VDSUFCRUFnQkNBQU5nSVFJQUFnQkRZQ0dBc2dBaWdDRkNJQVJRMEFJQVFnQURZQ0ZDQUFJQVEyQWhnTEFrQWdBMEVQVFFSQUlBSWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0Ftb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBSWdCVUVEY2pZQ0JDQUNJQVZxSWdRZ0EwRUJjallDQkNBRElBUnFJQU0yQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUJCbkI4b0FnQWhBUUovUVFFZ0IwRURkblFpQlNBR2NVVUVRRUdJSHlBRklBWnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEJpQUFJQUUyQWdnZ0JpQUJOZ0lNSUFFZ0FEWUNEQ0FCSUFZMkFnZ0xRWndmSUFRMkFnQkJrQjhnQXpZQ0FBc2dBa0VJYWlFQUN5QUtRUkJxSkFBZ0FBdlNDd0VIZndKQUlBQkZEUUFnQUVFSWF5SUNJQUJCQkdzb0FnQWlBVUY0Y1NJQWFpRUZBa0FnQVVFQmNRMEFJQUZCQTNGRkRRRWdBaUFDS0FJQUlnRnJJZ0pCbUI4b0FnQkpEUUVnQUNBQmFpRUFBa0FDUUVHY0h5Z0NBQ0FDUndSQUlBRkIvd0ZOQkVBZ0FVRURkaUVFSUFJb0Fnd2lBU0FDS0FJSUlnTkdCRUJCaUI5QmlCOG9BZ0JCZmlBRWQzRTJBZ0FNQlFzZ0F5QUJOZ0lNSUFFZ0F6WUNDQXdFQ3lBQ0tBSVlJUVlnQWlBQ0tBSU1JZ0ZIQkVBZ0FpZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQUpCRkdvaUJDZ0NBQ0lEUlFSQUlBSW9BaEFpQTBVTkFpQUNRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGS0FJRUlnRkJBM0ZCQTBjTkFrR1FIeUFBTmdJQUlBVWdBVUYrY1RZQ0JDQUNJQUJCQVhJMkFnUWdCU0FBTmdJQUR3dEJBQ0VCQ3lBR1JRMEFBa0FnQWlnQ0hDSURRUUowUWJnaGFpSUVLQUlBSUFKR0JFQWdCQ0FCTmdJQUlBRU5BVUdNSDBHTUh5Z0NBRUYrSUFOM2NUWUNBQXdDQ3lBR1FSQkJGQ0FHS0FJUUlBSkdHMm9nQVRZQ0FDQUJSUTBCQ3lBQklBWTJBaGdnQWlnQ0VDSURCRUFnQVNBRE5nSVFJQU1nQVRZQ0dBc2dBaWdDRkNJRFJRMEFJQUVnQXpZQ0ZDQURJQUUyQWhnTElBSWdCVThOQUNBRktBSUVJZ0ZCQVhGRkRRQUNRQUpBQWtBQ1FDQUJRUUp4UlFSQVFhQWZLQUlBSUFWR0JFQkJvQjhnQWpZQ0FFR1VIMEdVSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUNRWndmS0FJQVJ3MEdRWkFmUVFBMkFnQkJuQjlCQURZQ0FBOExRWndmS0FJQUlBVkdCRUJCbkI4Z0FqWUNBRUdRSDBHUUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FBSUFKcUlBQTJBZ0FQQ3lBQlFYaHhJQUJxSVFBZ0FVSC9BVTBFUUNBQlFRTjJJUVFnQlNnQ0RDSUJJQVVvQWdnaUEwWUVRRUdJSDBHSUh5Z0NBRUYrSUFSM2NUWUNBQXdGQ3lBRElBRTJBZ3dnQVNBRE5nSUlEQVFMSUFVb0FoZ2hCaUFGSUFVb0Fnd2lBVWNFUUVHWUh5Z0NBQm9nQlNnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBVkJGR29pQkNnQ0FDSURSUVJBSUFVb0FoQWlBMFVOQWlBRlFSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZJQUZCZm5FMkFnUWdBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQXdEQzBFQUlRRUxJQVpGRFFBQ1FDQUZLQUljSWdOQkFuUkJ1Q0ZxSWdRb0FnQWdCVVlFUUNBRUlBRTJBZ0FnQVEwQlFZd2ZRWXdmS0FJQVFYNGdBM2R4TmdJQURBSUxJQVpCRUVFVUlBWW9BaEFnQlVZYmFpQUJOZ0lBSUFGRkRRRUxJQUVnQmpZQ0dDQUZLQUlRSWdNRVFDQUJJQU0yQWhBZ0F5QUJOZ0lZQ3lBRktBSVVJZ05GRFFBZ0FTQUROZ0lVSUFNZ0FUWUNHQXNnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUNBQ1Fad2ZLQUlBUncwQVFaQWZJQUEyQWdBUEN5QUFRZjhCVFFSQUlBQkJlSEZCc0I5cUlRRUNmMEdJSHlnQ0FDSURRUUVnQUVFRGRuUWlBSEZGQkVCQmlCOGdBQ0FEY2pZQ0FDQUJEQUVMSUFFb0FnZ0xJUUFnQVNBQ05nSUlJQUFnQWpZQ0RDQUNJQUUyQWd3Z0FpQUFOZ0lJRHd0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFJZ0F6WUNIQ0FDUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtBQ1FFR01IeWdDQUNJRVFRRWdBM1FpQjNGRkJFQkJqQjhnQkNBSGNqWUNBQ0FCSUFJMkFnQWdBaUFCTmdJWURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBUU5BSUFFaUJDZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFTQURRUUYwSVFNZ0JDQUJRUVJ4YWlJSFFSQnFLQUlBSWdFTkFBc2dCeUFDTmdJUUlBSWdCRFlDR0FzZ0FpQUNOZ0lNSUFJZ0FqWUNDQXdCQ3lBRUtBSUlJZ0FnQWpZQ0RDQUVJQUkyQWdnZ0FrRUFOZ0lZSUFJZ0JEWUNEQ0FDSUFBMkFnZ0xRYWdmUWFnZktBSUFRUUZySWdCQmZ5QUFHellDQUFzTEJBQWpBQXNHQUNBQUpBQUxFQUFqQUNBQWEwRndjU0lBSkFBZ0FBdEtBUUYvSUFBZ0FVa0VRQ0FBSUFFZ0FoQUNEd3NnQWdSQUlBQWdBbW9oQXlBQklBSnFJUUVEUUNBRFFRRnJJZ01nQVVFQmF5SUJMUUFBT2dBQUlBSkJBV3NpQWcwQUN3c2dBQXY5RGdJUmZ3RitJd0JCTUdzaUJ5UUFRYmgvSVFnQ1FDQUZSUTBBSUFRc0FBQWlDVUgvQVhFaEN3SkFJQWxCQUVnRVFDQUxRZjRBYTBFQmRpSUdJQVZQRFFKQmJDRUlJQXRCL3dCcklndEIvd0ZMRFFJZ0JFRUJhaUVJUVFBaEJRTkFJQVVnQzA4RVFDQUxJUWdnQmlFTERBTUZJQUFnQldvZ0NDQUZRUUYyYWlJRUxRQUFRUVIyT2dBQUlBQWdCVUVCY21vZ0JDMEFBRUVQY1RvQUFDQUZRUUpxSVFVTUFRc0FDd0FMSUFVZ0MwME5BU0FIUWY4Qk5nSUVJQVlnQjBFRWFpQUhRUWhxSUFSQkFXb2lEaUFMRUF3aUJFR0lmMHNFUUNBRUlRZ01BZ3RCVkNFSUlBY29BZ2dpRUVFR1N3MEJJQWNvQWdRaUVVRUJkQ0lKUVFKcXJVSUJJQkN0aGlJWVFRRWdFSFFpRFVFQmFpSUZyVUlDaG54OFFndDhRdnovLy8vLy8vLy8vd0NEUXVRQ1ZnMEJRVkloQ0NBUlFmOEJTdzBCSUExQmYzTkJBblJCNUFKcXJTQVJRUUZxSWhWQkFYU3RJQmg4UWdoOFZBMEJJQXNnQkdzaEZpQUVJQTVxSVJjZ0JrR0FCR29pRWlBRlFRSjBhaUlSSUFscVFRSnFJUTRnQmtHRUJHb2hFMEdBZ0FJZ0VIUkJFSFloQ1VFQUlRVkJBU0VQSUExQkFXc2lGQ0VLQTBBZ0JTQVZSa1VFUUFKQUlBWWdCVUVCZENJSWFpOEJBQ0lFUWYvL0EwWUVRQ0FUSUFwQkFuUnFJQVU2QUFJZ0NrRUJheUVLUVFFaEJBd0JDeUFQUVFBZ0NTQUV3VW9iSVE4TElBZ2dFV29nQkRzQkFDQUZRUUZxSVFVTUFRc0xJQVlnRHpzQmdnUWdCaUFRT3dHQUJBSkFJQW9nRkVZRVFDQU5RUU4ySVFoQ0FDRVlRUUFoRHdOQUlBd2dGVVlFUUNBSUlBMUJBWFpxUVFOcUlnbEJBWFFoQ0VFQUlRUkJBQ0VLQTBCQkFDRUZJQW9nRFU4TkJBTkFJQVZCQWtaRkJFQWdFeUFGSUFsc0lBUnFJQlJ4UVFKMGFpQU9JQVVnQ21wcUxRQUFPZ0FDSUFWQkFXb2hCUXdCQ3dzZ0NrRUNhaUVLSUFRZ0NHb2dGSEVoQkF3QUN3QUZJQVlnREVFQmRHb3VBUUFoQ1NBT0lBOXFJZ1FnR0RjQUFFRUlJUVVEUUNBRklBbE9SUVJBSUFRZ0JXb2dHRGNBQUNBRlFRaHFJUVVNQVFzTElCaENnWUtFaUpDZ3dJQUJmQ0VZSUF4QkFXb2hEQ0FKSUE5cUlROE1BUXNBQ3dBTElBMUJBM1lnRFVFQmRtcEJBMm9oQ0VFQUlRVURRQ0FNSUJWR1JRUkFRUUFoQ1NBR0lBeEJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBSlJrVUVRQ0FUSUFWQkFuUnFJQXc2QUFJRFFDQUZJQWhxSUJSeElnVWdDa3NOQUFzZ0NVRUJhaUVKREFFTEN5QU1RUUZxSVF3TUFRc0xRWDhoQ0NBRkRRSUxJQkJCQVdvaENFRUFJUVVEUUNBRklBMUdSUVJBSUJFZ0V5QUZRUUowYWlJT0xRQUNRUUYwYWlJRUlBUXZBUUFpQ1VFQmFqc0JBQ0FPSUFnZ0NXZEJZSE5xSWdRNkFBTWdEaUFKSUFSMElBMXJPd0VBSUFWQkFXb2hCUXdCQ3dzQ1FBSkFJQVl2QVlJRUJFQWdCMEVjYWlJRUlCY2dGaEFOSWdoQmlIOUxEUUlnQjBFVWFpQUVJQklRRGlBSFFReHFJQVFnRWhBT1FRQWhCUU5BSUFkQkhHb2lCQkFQSUFWQit3RkxjZzBDSUFBZ0JXb2lCaUFIUVJScUlBUVFFRG9BQUNBR0lBZEJER29nQkJBUU9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVNQXdVZ0FDQUVhaUFIUVJScUlBZEJIR29pQkJBUU9nQUFJQVlnQjBFTWFpQUVFQkE2QUFNZ0JVRUVhaUVGREFFTEFBc0FDeUFIUVJ4cUlnUWdGeUFXRUEwaUNFR0lmMHNOQVNBSFFSUnFJQVFnRWhBT0lBZEJER29nQkNBU0VBNUJBQ0VGQTBBZ0IwRWNhaUlFRUE4Z0JVSDdBVXR5UlFSQUlBQWdCV29pQmlBSFFSUnFJQVFRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVRklBQWdCR29nQjBFVWFpQUhRUnhxSWdRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBRElBVkJCR29oQlF3Q0N3c0xBbjhEUUVHNmZ5RUlJQVZCL1FGTERRTWdBQ0FGYWlJR0lBZEJGR29nQjBFY2FpSUpFQkU2QUFBZ0JrRUJhaUVFSUFrUUQwRURSZ1JBSUFkQkRHb2hDRUVDREFJTElBVkIvQUZMRFFNZ0JpQUhRUXhxSUFkQkhHb2lCQkFST2dBQklBVkJBbW9oQlNBRUVBOUJBMGNOQUFzZ0FDQUZhaUVFSUFkQkZHb2hDRUVEQ3lBRUlBZ2dCMEVjYWhBUk9nQUFJQVpxSUFCcklRZ01BUXNDZndOQVFicC9JUWdnQlVIOUFVc05BaUFBSUFWcUlnWWdCMEVVYWlBSFFSeHFJZ2tRRURvQUFDQUdRUUZxSVFRZ0NSQVBRUU5HQkVBZ0IwRU1haUVJUVFJTUFnc2dCVUg4QVVzTkFpQUdJQWRCREdvZ0IwRWNhaUlFRUJBNkFBRWdCVUVDYWlFRklBUVFEMEVEUncwQUN5QUFJQVZxSVFRZ0IwRVVhaUVJUVFNTElBUWdDQ0FIUVJ4cUVCQTZBQUFnQm1vZ0FHc2hDQXNnQ0VHSWYwc05BUXNnQ0NFRVFRQWhCU0FCUVFCQk5CQURJUWxCQUNFS0EwQWdCQ0FGUndSQUlBQWdCV29pQmkwQUFDSUJRUXRMQkVCQmJDRUlEQU1GSUFrZ0FVRUNkR29pQVNBQktBSUFRUUZxTmdJQUlBVkJBV29oQlVFQklBWXRBQUIwUVFGMUlBcHFJUW9NQWdzQUN3dEJiQ0VJSUFwRkRRQWdDbWNpQlVFZmN5SUJRUXRMRFFBZ0EwRWdJQVZyTmdJQVFRRkJBaUFCZENBS2F5SURaMEVmY3lJQmRDQURSdzBBSUFBZ0JHb2dBVUVCYWlJQU9nQUFJQWtnQUVFQ2RHb2lBQ0FBS0FJQVFRRnFOZ0lBSUFrb0FnUWlBRUVDU1NBQVFRRnhjZzBBSUFJZ0JFRUJhallDQUNBTFFRRnFJUWdMSUFkQk1Hb2tBQ0FJQzZBRkFReC9Jd0JCRUdzaURDUUFBbjhnQkVFSFRRUkFJQXhDQURjRENDQU1RUWhxSWdVZ0F5QUVFQUlhUVd3Z0FDQUJJQUlnQlVFSUVBd2lBQ0FBSUFSTEd5QUFJQUJCaVg5Skd3d0JDeUFBUVFBZ0FTZ0NBRUVCYWlJTlFRRjBFQU1oRDBGVUlBTW9BQUFpQmtFUGNTSUFRUXBMRFFBYUlBSWdBRUVGYWpZQ0FDQURJQVJxSWdKQkJHc2hCeUFDUVFkcklRc2dBRUVHYWlFT1FRUWhBaUFHUVFSMklRVkJJQ0FBZENJSVFRRnlJUWxCQUNFQVFRRWhCaUFESVFRRFFBSkFJQVpCQVhGRkJFQURRQ0FGUVg5elFZQ0FnSUI0Y21naUJrRVlTVVVFUUNBQVFTUnFJUUFnQkNBTFRRUi9JQVJCQTJvRklBUWdDMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMSUFJZ0JrRWVjU0lLYWtFQ2FpRUNJQVpCQVhaQkEyd2dBR29nQlNBS2RrRURjV29pQUNBTlR3MEJBbjhnQkNBTFN5QUNRUU4ySUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQVFnQjJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVMSUFVZ0NFRUJhM0VpQmlBSVFRRjBRUUZySWdvZ0NXc2lFRWtFZnlBT1FRRnJCU0FGSUFweElnVWdFRUVBSUFVZ0NFNGJheUVHSUE0TElRVWdEeUFBUVFGMGFpQUdRUUZySWdvN0FRQWdBRUVCYWlFQUlBSWdCV29oQWlBSVFRRWdCbXNnQ2lBR1FRQktHeUFKYWlJSlNnUkFJQWxCQWtnTkFVRWdJQWxuSWdWcklRNUJBU0FGUVI5emRDRUlDeUFBSUExUERRQWdDa0VBUnlFR0FuOGdCQ0FMU3lBQ1FRTjFJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBSWdCQ0FIYTBFRGRHcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMUVd3Z0NVRUJSdzBBR2tGUUlBQWdEVXNOQUJwQmJDQUNRU0JLRFFBYUlBRWdBRUVCYXpZQ0FDQUVJQUpCQjJwQkEzVnFJQU5yQ3lBTVFSQnFKQUFMOGdFQkFYOGdBa1VFUUNBQVFnQTNBZ0FnQUVFQU5nSVFJQUJDQURjQ0NFRzRmdzhMSUFBZ0FUWUNEQ0FBSUFGQkJHbzJBaEFnQWtFRVR3UkFJQUFnQVNBQ2FpSUJRUVJySWdNMkFnZ2dBQ0FES0FBQU5nSUFJQUZCQVdzdEFBQWlBUVJBSUFBZ0FXZEJGMnMyQWdRZ0FnOExJQUJCQURZQ0JFRi9Ed3NnQUNBQk5nSUlJQUFnQVMwQUFDSUROZ0lBQWtBQ1FBSkFJQUpCQW1zT0FnRUFBZ3NnQUNBQkxRQUNRUkIwSUFOeUlnTTJBZ0FMSUFBZ0FTMEFBVUVJZENBRGFqWUNBQXNnQVNBQ2FrRUJheTBBQUNJQlJRUkFJQUJCQURZQ0JFRnNEd3NnQUNBQlp5QUNRUU4wYTBFSmFqWUNCQ0FDQzBRQkFuOGdBU0FDTHdFQUlnTWdBU2dDQkdvaUJEWUNCQ0FBSUFOQkFuUkJvQjFxS0FJQUlBRW9BZ0JCQUNBRWEzWnhOZ0lBSUFFUUR4b2dBQ0FDUVFScU5nSUVDNThCQVFSL1FRTWhBU0FBS0FJRUlnSkJJRTBFUUNBQUtBSUlJZ0VnQUNnQ0VFOEVRQ0FBSUFKQkIzRTJBZ1FnQUNBQklBSkJBM1pySWdJMkFnZ2dBQ0FDS0FBQU5nSUFRUUFQQ3lBQUtBSU1JZ01nQVVZRVFFRUJRUUlnQWtFZ1NSc1BDeUFBSUFFZ0FTQURheUFDUVFOMklnUWdBU0FFYXlBRFNTSUJHeUlEYXlJRU5nSUlJQUFnQWlBRFFRTjBhellDQkNBQUlBUW9BQUEyQWdBTElBRUxTQUVFZnlBQUtBSUVJQUFvQWdCQkFuUnFJZ0l0QUFJZ0FpOEJBQ0VFSUFFZ0FTZ0NCQ0lGSUFJdEFBTWlBbW8yQWdRZ0FDQUVJQUVvQWdBZ0JYUkJBQ0FDYTNacU5nSUFDMUlCQkg4Z0FDZ0NCQ0FBS0FJQVFRSjBhaUlDTFFBQ0lBSXZBUUFoQkNBQklBSXRBQU1pQWlBQktBSUVhaUlGTmdJRUlBQWdCQ0FDUVFKMFFhQWRhaWdDQUNBQktBSUFRUUFnQld0MmNXbzJBZ0FMQ0FBZ0FFR0lmMHNMR2dBZ0FBUkFJQUVFUUNBQ0lBQWdBUkVDQUE4TElBQVFCZ3NMcGdnQ0RYOEJmaU1BUVJCcklna2tBQ0FKUVFBMkFnd2dDVUVBTmdJSUFuOENRQ0FEUWVnSmFpQURJQWxCQ0dvZ0NVRU1haUFCSUFJZ0EwR0FBV29RQ3lJUFFZaC9TdzBBUVZRZ0NTZ0NEQ0lFSUFBb0FnQWlBVUgvQVhGQkFXcExEUUVhSUFCQkJHb2hDeUFBSUFGQi80R0FlSEVnQkVFUWRFR0FnUHdIY1hJMkFnQkJmeUFFSUFSQkFFZ2JRUUZxSVFCQkFDRUJJQWtvQWdnaEJVRUFJUUlEUUNBQUlBSkdCRUFnQlVFRGF5RUJRUUFoQUFOQUFrQkJBQ0VDSUFBZ0FVNEVRQU5BSUFBZ0JVNE5BaUFESUFBZ0EycEI2QWxxTFFBQVFRSjBha0ZBYXlJQklBRW9BZ0FpQVVFQmFqWUNBQ0FCSUFOcUlBQTZBT2dISUFCQkFXb2hBQXdBQ3dBRkEwQWdBa0VFUmtVRVFDQURJQU1nQUNBQ2FpSUhha0hvQ1dvdEFBQkJBblJxUVVCcklnZ2dDQ2dDQUNJSVFRRnFOZ0lBSUFNZ0NHb2dCem9BNkFjZ0FrRUJhaUVDREFFTEN5QUFRUVJxSVFBTUFnc0FDd3NnQkVFQmFpRU9JQU1vQWdBaEIwRUFJUUJCQVNFSUEwQWdDQ0FPUmcwRElBNGdDR3NoQkNBRElBaEJBblJxS0FJQUlRVUNRQUpBQWtBQ1FBSkFBa0JCQVNBSWRFRUJkU0lOUVFGckRnZ0FBUVFDQkFRRUF3UUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUFJUUVEUUNBQ0lBWkdEUVVnQXlBQ0lBZHFhaTBBNkFjaENpQUxJQUZCQVhScUlnd2dCRG9BQVNBTUlBbzZBQUFnQWtFQmFpRUNJQUZCQVdvaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hDaUFBSVFFRFFDQUNJQXBHRFFRZ0N5QUJRUUYwYWlJR0lBTWdBaUFIYW1vdEFPZ0hJZ3c2QUFJZ0JpQUVPZ0FCSUFZZ0REb0FBQ0FHSUFRNkFBTWdBa0VCYWlFQ0lBRkJBbW9oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUVRUWgwUVlEK0EzRWhCQ0FBSVFFRFFDQUNJQVpHRFFNZ0N5QUJRUUYwYWlBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrTndBQUlBSkJBV29oQWlBQlFRUnFJUUVNQUFzQUMwRUFJUUlnQlVFQUlBVkJBRW9iSVFZZ0JFRUlkRUdBL2dOeElRUWdBQ0VCQTBBZ0FpQUdSZzBDSUFzZ0FVRUJkR29pQ2lBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSWhFM0FBZ2dDaUFSTndBQUlBSkJBV29oQWlBQlFRaHFJUUVNQUFzQUMwRUFJUUVnQlVFQUlBVkJBRW9iSVFvZ0JFRUlkRUdBL2dOeElRd2dBQ0VFQTBBZ0FTQUtSZzBCSUFzZ0JFRUJkR29oRUNBTUlBTWdBU0FIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSVJGQkFDRUNBMEFnQWlBTlRrVUVRQ0FRSUFKQkFYUnFJZ1lnRVRjQUdDQUdJQkUzQUJBZ0JpQVJOd0FJSUFZZ0VUY0FBQ0FDUVJCcUlRSU1BUXNMSUFGQkFXb2hBU0FFSUExcUlRUU1BQXNBQ3lBSVFRRnFJUWdnQlNBSGFpRUhJQVVnRFd3Z0FHb2hBQXdBQ3dBRklBTWdBa0VDZEdvaUIwRkFheUFCTmdJQUlBSkJBV29oQWlBSEtBSUFJQUZxSVFFTUFRc0FDd0FMSUE4TElBbEJFR29rQUF2eUFnRUdmeU1BUVNCcklnVWtBQ0FFS0FJQUlRWWdCVUVNYWlBQ0lBTVFEU0lEUVloL1RRUkFJQVJCQkdvaEFpQUFJQUZxSWdsQkEyc2hCRUVBSUFaQkVIWnJRUjl4SVFNRFFDQUZRUXhxRUE4Z0FDQUVUM0pGQkVBZ0FpQUZLQUlNSWdZZ0JTZ0NFQ0lIZENBRGRrRUJkR29pQ0MwQUFTRUtJQUFnQ0MwQUFEb0FBQ0FDSUFZZ0J5QUthaUlHZENBRGRrRUJkR29pQnkwQUFDRUlJQVVnQmlBSExRQUJhallDRUNBQUlBZzZBQUVnQUVFQ2FpRUFEQUVMQ3dOQUlBVkJER29RRHlFSElBVW9BZ3doQmlBRktBSVFJUVFnQUNBSlR5QUhja1VFUUNBQ0lBWWdCSFFnQTNaQkFYUnFJZ1l0QUFBaEJ5QUZJQVFnQmkwQUFXbzJBaEFnQUNBSE9nQUFJQUJCQVdvaEFBd0JDd3NEUUNBQUlBbFBSUVJBSUFJZ0JpQUVkQ0FEZGtFQmRHb2lCeTBBQVNFSUlBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0JDQUlhaUVFREFFTEMwRnNRV3dnQVNBRktBSVVJQVVvQWhoSEd5QUVRU0JIR3lFREN5QUZRU0JxSkFBZ0F3dlBGQUVqZnlNQVFkQUFheUlGSkFCQmJDRUpBa0FnQTBFS1NRMEFBa0FnQXlBQ0x3QUVJZ2NnQWk4QUFDSUlJQUl2QUFJaURXcHFRUVpxSWd4SkRRQWdCQzhCQWlFR0lBVkJQR29nQWtFR2FpSUNJQWdRRFNJSlFZaC9TdzBCSUFWQktHb2dBaUFJYWlJQ0lBMFFEU0lKUVloL1N3MEJJQVZCRkdvZ0FpQU5haUlDSUFjUURTSUpRWWgvU3cwQklBVWdBaUFIYWlBRElBeHJFQTBpQ1VHSWYwc05BU0FFUVFScUlRb2dBQ0FCYWlJZlFRTnJJU0JCQUNBR2EwRWZjU0VMSUFVb0FnZ2hFU0FGS0FJY0lSSWdCU2dDTUNFVElBVW9Ba1FoRkNBRktBSUVJUWtnQlNnQ0dDRU5JQVVvQWl3aERDQUZLQUpBSVFZZ0JTZ0NFQ0VoSUFVb0FpUWhJaUFGS0FJNElTTWdCU2dDVENFa0lBVW9BZ0FoRlNBRktBSVVJUllnQlNnQ0tDRVhJQVVvQWp3aEdFRUJJUThnQUNBQlFRTnFRUUoySWdScUlnTWdCR29pQWlBRWFpSVpJUVFnQWlFSUlBTWhCd05BSUE5QkFYRkZJQVFnSUU5eVJRUkFJQUFnQ2lBWUlBWjBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloR2lBT0xRQURJUkFnQnlBS0lCY2dESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdEaTBBQWlFYklBNHRBQU1oRHlBSUlBb2dGaUFOZENBTGRrRUNkR29pRGk4QkFEc0FBQ0FPTFFBQ0lSd2dEaTBBQXlFZElBUWdDaUFWSUFsMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhIaUFPTFFBRElRNGdBQ0FRYWlJbElBb2dHQ0FHSUJwcUlnWjBJQXQyUVFKMGFpSVFMd0VBT3dBQUlCQXRBQUlnRUMwQUF5RW1JQWNnRDJvaUp5QUtJQmNnRENBYmFpSWFkQ0FMZGtFQ2RHb2lCeThCQURzQUFDQUhMUUFDSVF3Z0J5MEFBeUVRSUFnZ0hXb2lHeUFLSUJZZ0RTQWNhaUlQZENBTGRrRUNkR29pQ0M4QkFEc0FBQ0FJTFFBQ0lRMGdDQzBBQXlFY0lBUWdEbW9pSFNBS0lCVWdDU0FlYWlJT2RDQUxka0VDZEdvaUNTOEJBRHNBQUNBR2FpRUFRUU1oQndKL0lCUWdKRWtFUUNBQUlRWkJBd3dCQ3lBQVFRZHhJUVlnRkNBQVFRTjJheUlVS0FBQUlSaEJBQXNnQ1MwQUF5RWVJQWt0QUFJaENDQU1JQnBxSVFBZ0V5QWpTUVIvSUFBRklCTWdBRUVEZG1zaUV5Z0FBQ0VYUVFBaEJ5QUFRUWR4Q3lFTUlBMGdEMm9oQUNBSGNpRUpRUU1oRHdKL0lCSWdJa2tFUUNBQUlRMUJBd3dCQ3lBQVFRZHhJUTBnRWlBQVFRTjJheUlTS0FBQUlSWkJBQXNnQ0NBT2FpRUFJQWx5SUJFZ0lVa0VmeUFBQlNBUklBQkJBM1pySWhFb0FBQWhGVUVBSVE4Z0FFRUhjUXNoQ1NBbElDWnFJUUFnRUNBbmFpRUhJQnNnSEdvaENDQWRJQjVxSVFRZ0QzSkZJUThNQVFzTElBVWdERFlDTENBRklBWTJBa0FnQlNBTk5nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUlnQjBrZ0FDQURTM0lOQUVGc0lRa2dDQ0FaU3cwQklBTkJBMnNoQ1FOQUlBVkJQR29RRDBVZ0FDQUpTWEVFUUNBQUlBb2dCU2dDUENJTklBVW9Ba0FpREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnQUNBT0xRQURhaUlHSUFvZ0RTQU1JQTR0QUFKcUlnQjBJQXQyUVFKMGFpSU1Md0VBT3dBQUlBVWdBQ0FNTFFBQ2FqWUNRQ0FHSUF3dEFBTnFJUUFNQVFVZ0EwRUNheUVNQTBBZ0JVRThhaEFQSVFZZ0JTZ0NQQ0VOSUFVb0FrQWhDU0FBSUF4TElBWnlSUVJBSUFBZ0NpQU5JQWwwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQ1NBR0xRQUNhallDUUNBQUlBWXRBQU5xSVFBTUFRc0xBMEFnQUNBTVMwVUVRQ0FBSUFvZ0RTQUpkQ0FMZGtFQ2RHb2lCaThCQURzQUFDQUFJQVl0QUFOcUlRQWdDU0FHTFFBQ2FpRUpEQUVMQ3dKQUlBQWdBMDhOQUNBQUlBb2dEU0FKZENBTGRpSUFRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSklBTXRBQUpxSVFrTUFRc2dDVUVmU3cwQVFTQWdDU0FLSUFCQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFrTElBSkJBMnNoREFOQUlBVkJLR29RRDBVZ0J5QU1TWEVFUUNBSElBb2dCU2dDS0NJR0lBVW9BaXdpQUhRZ0MzWkJBblJxSWcwdkFRQTdBQUFnQnlBTkxRQURhaUlESUFvZ0JpQUFJQTB0QUFKcUlnQjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBQ0FHTFFBQ2FqWUNMQ0FESUFZdEFBTnFJUWNNQVFVZ0FrRUNheUVHQTBBZ0JVRW9haEFQSVFNZ0JTZ0NLQ0VNSUFVb0Fpd2hBQ0FHSUFkSklBTnlSUVJBSUFjZ0NpQU1JQUIwSUF0MlFRSjBhaUlETHdFQU93QUFJQVVnQUNBRExRQUNhallDTENBSElBTXRBQU5xSVFjTUFRc0xBMEFnQmlBSFNVVUVRQ0FISUFvZ0RDQUFkQ0FMZGtFQ2RHb2lBeThCQURzQUFDQUhJQU10QUFOcUlRY2dBQ0FETFFBQ2FpRUFEQUVMQ3dKQUlBSWdCMDBOQUNBSElBb2dEQ0FBZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBQUlBTXRBQUpxSVFBTUFRc2dBRUVmU3cwQVFTQWdBQ0FLSUFKQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFBTElCbEJBMnNoREFOQUlBVkJGR29RRDBVZ0NDQU1TWEVFUUNBSUlBb2dCU2dDRkNJR0lBVW9BaGdpQW5RZ0MzWkJBblJxSWcwdkFRQTdBQUFnQ0NBTkxRQURhaUlESUFvZ0JpQUNJQTB0QUFKcUlnSjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBaUFHTFFBQ2FqWUNHQ0FESUFZdEFBTnFJUWdNQVFVZ0dVRUNheUVEQTBBZ0JVRVVhaEFQSVFJZ0JTZ0NGQ0VHSUFVb0FoZ2hCeUFESUFoSklBSnlSUVJBSUFnZ0NpQUdJQWQwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVVnQnlBQ0xRQUNhallDR0NBSUlBSXRBQU5xSVFnTUFRc0xBMEFnQXlBSVNVVUVRQ0FJSUFvZ0JpQUhkQ0FMZGtFQ2RHb2lBaThCQURzQUFDQUlJQUl0QUFOcUlRZ2dCeUFDTFFBQ2FpRUhEQUVMQ3dKQUlBZ2dHVThOQUNBSUlBb2dCaUFIZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSElBTXRBQUpxSVFjTUFRc2dCMEVmU3cwQVFTQWdCeUFLSUFKQkFuUnFMUUFDYWlJQ0lBSkJJRThiSVFjTEEwQWdCUkFQUlNBRUlDQkpjUVJBSUFRZ0NpQUZLQUlBSWdZZ0JTZ0NCQ0lDZENBTGRrRUNkR29pREM4QkFEc0FBQ0FFSUF3dEFBTnFJZ01nQ2lBR0lBSWdEQzBBQW1vaUFuUWdDM1pCQW5ScUlnUXZBUUE3QUFBZ0JTQUNJQVF0QUFKcU5nSUVJQU1nQkMwQUEyb2hCQXdCQlNBZlFRSnJJUU1EUUNBRkVBOGhBaUFGS0FJQUlRWWdCU2dDQkNFSUlBTWdCRWtnQW5KRkJFQWdCQ0FLSUFZZ0NIUWdDM1pCQW5ScUlnSXZBUUE3QUFBZ0JTQUlJQUl0QUFKcU5nSUVJQVFnQWkwQUEyb2hCQXdCQ3dzRFFDQURJQVJKUlFSQUlBUWdDaUFHSUFoMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0FpMEFBMm9oQkNBSUlBSXRBQUpxSVFnTUFRc0xBa0FnQkNBZlR3MEFJQVFnQ2lBR0lBaDBJQXQySWdKQkFuUnFJZ010QUFBNkFBQWdBeTBBQTBFQlJnUkFJQWdnQXkwQUFtb2hDQXdCQ3lBSVFSOUxEUUJCSUNBSUlBb2dBa0VDZEdvdEFBSnFJZ0lnQWtFZ1R4c2hDQXRCYkVGc1FXeEJiRUZzUVd4QmJFRnNJQUVnQ0VFZ1J4c2dCU2dDQ0NBRktBSU1SeHNnQjBFZ1J4c2dCU2dDSENBRktBSWdSeHNnQUVFZ1J4c2dCU2dDTUNBRktBSTBSeHNnQ1VFZ1J4c2dCU2dDUkNBRktBSklSeHNoQ1F3SkN3QUxBQXNBQ3dBTEFBc0FDd0FMQUF0QmJDRUpDeUFGUWRBQWFpUUFJQWtMN0JBQkhuOGpBRUhRQUdzaUJTUUFRV3doQ1FKQUlBTkJDa2tOQUFKQUlBTWdBaThBQkNJR0lBSXZBQUFpQnlBQ0x3QUNJZ2hxYWtFR2FpSU9TUTBBSUFRdkFRSWhEeUFGUVR4cUlBSkJCbW9pQWlBSEVBMGlDVUdJZjBzTkFTQUZRU2hxSUFJZ0Iyb2lBaUFJRUEwaUNVR0lmMHNOQVNBRlFSUnFJQUlnQ0dvaUFpQUdFQTBpQ1VHSWYwc05BU0FGSUFJZ0Jtb2dBeUFPYXhBTklnbEJpSDlMRFFFZ0JFRUVhaUVLSUFBZ0FXb2lIRUVEYXlFZFFRQWdEMnRCSDNFaEN5QUZLQUlJSVJFZ0JTZ0NIQ0VTSUFVb0FqQWhFeUFGS0FKRUlSUWdCU2dDQkNFSklBVW9BaGdoQmlBRktBSXNJUWNnQlNnQ1FDRUlJQVVvQWhBaEhpQUZLQUlrSVI4Z0JTZ0NPQ0VnSUFVb0Frd2hJU0FGS0FJQUlSVWdCU2dDRkNFV0lBVW9BaWdoRnlBRktBSThJUmhCQVNFTklBQWdBVUVEYWtFQ2RpSUNhaUlPSUFKcUlnOGdBbW9pR1NFRUlBOGhBaUFPSVFNRFFDQU5SU0FFSUIxUGNrVUVRQ0FLSUJnZ0NIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFBZ0NpQVhJQWQwSUF0MlFRRjBhaUlNTFFBQklSQWdBeUFNTFFBQU9nQUFJQW9nRmlBR2RDQUxka0VCZEdvaURDMEFBU0VhSUFJZ0RDMEFBRG9BQUNBS0lCVWdDWFFnQzNaQkFYUnFJZ3d0QUFFaEd5QUVJQXd0QUFBNkFBQWdDaUFZSUFnZ0RXb2lDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBRWdDaUFYSUFjZ0VHb2lCM1FnQzNaQkFYUnFJZ3d0QUFFaEVDQURJQXd0QUFBNkFBRWdDaUFXSUFZZ0dtb2lESFFnQzNaQkFYUnFJZ1l0QUFFaEdpQUNJQVl0QUFBNkFBRWdDaUFWSUFrZ0cyb2lHM1FnQzNaQkFYUnFJZ2t0QUFFaElpQUVJQWt0QUFBNkFBRWdDQ0FOYWlFR1FRTWhDUUovSUJRZ0lVa0VRRUVESVEwZ0Jnd0JDeUFVSUFaQkEzWnJJaFFvQUFBaEdFRUFJUTBnQmtFSGNRc2hDQ0FISUJCcUlRWWdFeUFnU1FSL0lBWUZJQk1nQmtFRGRtc2lFeWdBQUNFWFFRQWhDU0FHUVFkeEN5RUhJQXdnR21vaERDQUpJQTF5SVJCQkF5RU5BbjhnRWlBZlNRUkFJQXdoQmtFRERBRUxJQXhCQjNFaEJpQVNJQXhCQTNackloSW9BQUFoRmtFQUN5QWJJQ0pxSVF3Z0VISWhFQ0FSSUI1SkJIOGdEQVVnRVNBTVFRTjJheUlSS0FBQUlSVkJBQ0VOSUF4QkIzRUxJUWtnQkVFQ2FpRUVJQUpCQW1vaEFpQURRUUpxSVFNZ0FFRUNhaUVBSUEwZ0VISkZJUTBNQVFzTElBVWdCellDTENBRklBZzJBa0FnQlNBR05nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUFnRGtzZ0F5QVBTM0lOQUVGc0lRa2dBaUFaU3cwQklBNUJBMnNoQ1FOQUlBVkJQR29RRHlBQUlBbFBja1VFUUNBS0lBVW9BandpQmlBRktBSkFJZ2QwSUF0MlFRRjBhaUlJTFFBQklRd2dBQ0FJTFFBQU9nQUFJQW9nQmlBSElBeHFJZ1owSUF0MlFRRjBhaUlITFFBQUlRZ2dCU0FHSUFjdEFBRnFOZ0pBSUFBZ0NEb0FBU0FBUVFKcUlRQU1BUXNMQTBBZ0JVRThhaEFQSVFjZ0JTZ0NQQ0VHSUFVb0FrQWhDU0FBSUE1UElBZHlSUVJBSUFvZ0JpQUpkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdDU0FHTFFBQmFqWUNRQ0FBSUFjNkFBQWdBRUVCYWlFQURBRUxDd05BSUFBZ0RrOUZCRUFnQ2lBR0lBbDBJQXQyUVFGMGFpSUhMUUFCSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQ1dvaENRd0JDd3NnRDBFRGF5RUFBMEFnQlVFb2FoQVBJQUFnQTAxeVJRUkFJQW9nQlNnQ0tDSUdJQVVvQWl3aUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBRElBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFpd2dBeUFJT2dBQklBTkJBbW9oQXd3QkN3c0RRQ0FGUVNocUVBOGhCeUFGS0FJb0lRWWdCU2dDTENFQUlBTWdEMDhnQjNKRkJFQWdDaUFHSUFCMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBQUlBWXRBQUZxTmdJc0lBTWdCem9BQUNBRFFRRnFJUU1NQVFzTEEwQWdBeUFQVDBVRVFDQUtJQVlnQUhRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FESUFjdEFBQTZBQUFnQTBFQmFpRURJQUFnQ0dvaEFBd0JDd3NnR1VFRGF5RURBMEFnQlVFVWFoQVBJQUlnQTA5eVJRUkFJQW9nQlNnQ0ZDSUdJQVVvQWhnaUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBQ0lBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFoZ2dBaUFJT2dBQklBSkJBbW9oQWd3QkN3c0RRQ0FGUVJScUVBOGhCeUFGS0FJVUlRWWdCU2dDR0NFRElBSWdHVThnQjNKRkJFQWdDaUFHSUFOMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBRElBWXRBQUZxTmdJWUlBSWdCem9BQUNBQ1FRRnFJUUlNQVFzTEEwQWdBaUFaVDBVRVFDQUtJQVlnQTNRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FDSUFjdEFBQTZBQUFnQWtFQmFpRUNJQU1nQ0dvaEF3d0JDd3NEUUNBRkVBOGdCQ0FkVDNKRkJFQWdDaUFGS0FJQUlnSWdCU2dDQkNJR2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBS0lBSWdCaUFJYWlJQ2RDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0FpQUdMUUFCYWpZQ0JDQUVJQWM2QUFFZ0JFRUNhaUVFREFFTEN3TkFJQVVRRHlFSElBVW9BZ0FoQmlBRktBSUVJUUlnQkNBY1R5QUhja1VFUUNBS0lBWWdBblFnQzNaQkFYUnFJZ1l0QUFBaEJ5QUZJQUlnQmkwQUFXbzJBZ1FnQkNBSE9nQUFJQVJCQVdvaEJBd0JDd3NEUUNBRUlCeFBSUVJBSUFvZ0JpQUNkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUVRUUZxSVFRZ0FpQUlhaUVDREFFTEMwRnNRV3hCYkVGc1FXeEJiRUZzUVd3Z0FTQUNRU0JIR3lBRktBSUlJQVVvQWd4SEd5QURRU0JIR3lBRktBSWNJQVVvQWlCSEd5QUFRU0JIR3lBRktBSXdJQVVvQWpSSEd5QUpRU0JIR3lBRktBSkVJQVVvQWtoSEd5RUpEQUVMUVd3aENRc2dCVUhRQUdva0FDQUpDMWdCQTM4Q1FDQUFLQUtRNndFaUFVVU5BQ0FCS0FJQUlBRkJ0TlVCYWlnQ0FDSUNJQUZCdU5VQmFpZ0NBQ0lERUJNZ0FnUkFJQU1nQVNBQ0VRSUFEQUVMSUFFUUJnc2dBRUVBTmdLZzZ3RWdBRUlBTndPUTZ3RUw2UU1DQkg4Q2ZpQUFRUUJCS0JBRElRUWdBa0VCUVFVZ0F4c2lBRWtFUUNBQUR3c2dBVVVFUUVGL0R3dEJBU0VHQWtBQ1FDQURRUUZHRFFBZ0F5RUdJQUVvQUFBaUJVR282cjVwUmcwQVFYWWhBeUFGUVhCeFFkRFV0TUlCUncwQlFRZ2hBeUFDUVFoSkRRRWdBVFVBQkNFSUlBUkJBVFlDRkNBRUlBZzNBd0JCQUE4TElBRWdBaUFHRUJvaUF5QUNTdzBBSUFRZ0F6WUNHRUZ5SVFNZ0FDQUJhaUlGUVFGckxRQUFJZ0pCQ0hFTkFDQUNRU0J4SWdaRkJFQkJjQ0VESUFVdEFBQWlCVUduQVVzTkFTQUZRUWR4clVJQklBVkJBM1pCQ21xdGhpSUlRZ09JZmlBSWZDRUpJQUJCQVdvaEFBc2dBa0VHZGlFRklBSkJBblpCQUNFREFrQUNRQUpBQWtBZ0FrRURjVUVCYXc0REFBRUNBd3NnQUNBQmFpMEFBQ0VESUFCQkFXb2hBQXdDQ3lBQUlBRnFMd0FBSVFNZ0FFRUNhaUVBREFFTElBQWdBV29vQUFBaEF5QUFRUVJxSVFBTFFRRnhJUUlDZmdKQUFrQUNRQUpBSUFWQkFXc09Bd0VDQXdBTFFuOGdCa1VOQXhvZ0FDQUJhakVBQUF3REN5QUFJQUZxTXdBQVFvQUNmQXdDQ3lBQUlBRnFOUUFBREFFTElBQWdBV29wQUFBTElRZ2dCQ0FDTmdJZ0lBUWdBellDSENBRUlBZzNBd0JCQUNFRElBUkJBRFlDRkNBRUlBZ2dDU0FHR3lJSU53TUlJQVJDZ0lBSUlBZ2dDRUtBZ0FoYUd6NENFQXNnQXd0ZkFRRi9RYmgvSVFNZ0FVRUJRUVVnQWhzaUFrOEVmeUFBSUFKcVFRRnJMUUFBSWdCQkEzRkJBblJCb0I1cUtBSUFJQUpxSUFCQkJIWkJESEZCc0I1cUtBSUFhaUFBUVNCeElnRkZhaUFCUVFWMklBQkJ3QUJKY1dvRlFiaC9Dd3NNQUNBQUlBRWdBa0VBRUJrTGx3TUNCWDhDZmlNQVFVQnFJZ1FrQUFKQUEwQWdBVUVGVHdSQUFrQWdBQ2dBQUVGd2NVSFExTFRDQVVZRVFFSitJUWNnQVVFSVNRMEVJQUFvQUFRaUFrRjNTdzBFSUFKQkNHb2lBeUFCU3cwRUlBSkJnWDlKRFFFTUJBc2dCRUVZYWlBQUlBRVFHeUVDUW40Z0JDa0RHRUlBSUFRb0FpeEJBVWNiSUFJYklnZENmVllOQXlBSElBaDhJZ2dnQjFSQ2ZpRUhEUU1DUUFKQUlBRkJDRWtOQUNBQUtBQUFRWEJ4UWREVXRNSUJSdzBBSUFBb0FBUWlBa0YzU3cwRlFiaC9JQUpCQ0dvaUFpQUJJQUpKR3lFRERBRUxJQVJCR0dvZ0FDQUJFQnNpQWtHSWYwc0VRQ0FDSVFNTUFRdEJ1SDhoQXlBQ0RRQWdBU0FFS0FJd0lnSnJJUVVnQUNBQ2FpRUdBMEFnQmlBRklBUkJER29RSFNJRFFZaC9TdzBCSUFOQkEyb2lBaUFGU3dSQVFiaC9JUU1NQWdzZ0JTQUNheUVGSUFJZ0Jtb2hCaUFFS0FJUVJRMEFDeUFFS0FJNEJIOUJ1SDhoQXlBRlFRUkpEUUVnQmtFRWFnVWdCZ3NnQUdzaEF3c2dBMEdJZjBzTkF3c2dBU0FEYXlFQklBQWdBMm9oQUF3QkN3dENmaUFJSUFFYklRY0xJQVJCUUdza0FDQUhDMlFCQVg5QnVIOGhBd0pBSUFGQkEwa05BQ0FBTFFBQ0lRRWdBaUFBTHdBQUlnQkJBWEUyQWdRZ0FpQUFRUUYyUVFOeElnTTJBZ0FnQWlBQUlBRkJFSFJ5UVFOMklnQTJBZ2dDUUFKQUlBTkJBV3NPQXdJQkFBRUxRV3dQQ3lBQUlRTUxJQU1MUkFFQ2Z5QUJJQUlvQWdRaUF5QUJLQUlFYWlJRU5nSUVJQUFnQTBFQ2RFR2dIV29vQWdBZ0FTZ0NBRUVBSUFScmRuRTJBZ0FnQVJBUEdpQUFJQUpCQ0dvMkFnUUx6Z0VCQm45QnVuOGhDZ0pBSUFJb0FnUWlDQ0FDS0FJQUlnbHFJZzBnQVNBQWEwc05BRUZzSVFvZ0NTQUVJQU1vQWdBaUMydExEUUFnQUNBSmFpSUVJQUlvQWdnaURHc2hBaUFBSUFGQklHc2lBQ0FMSUFsQkFCQWdJQU1nQ1NBTGFqWUNBQUpBQWtBZ0JDQUZheUFNVHdSQUlBSWhCUXdCQ3lBTUlBUWdCbXRMRFFJZ0J5QUhJQUlnQldzaUFtb2lBU0FJYWs4RVFDQUVJQUVnQ0JBS0dnd0NDeUFDSUFocUlRZ2dCQ0FCUVFBZ0Ftc1FDaUFDYXlFRUN5QUVJQUFnQlNBSVFRRVFJQXNnRFNFS0N5QUtDOGNFQVFKL0lBQWdBMm9oQmdKQUlBTkJCMHdFUUFOQUlBQWdCazhOQWlBQUlBSXRBQUE2QUFBZ0FFRUJhaUVBSUFKQkFXb2hBZ3dBQ3dBTElBUkJBVVlFUUFKQUlBQWdBbXNpQlVFSFRRUkFJQUFnQWkwQUFEb0FBQ0FBSUFJdEFBRTZBQUVnQUNBQ0xRQUNPZ0FDSUFBZ0FpMEFBem9BQXlBQUlBSWdCVUVDZENJRlFjQWVhaWdDQUdvaUFpZ0FBRFlBQkNBQ0lBVkI0QjVxS0FJQWF5RUNEQUVMSUFBZ0Fpa0FBRGNBQUFzZ0FrRUlhaUVDSUFCQkNHb2hBQXNnQVNBR1R3UkFJQUFnQTJvaEFTQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUEwQWdBQ0FDS1FBQU53QUFJQUpCQ0dvaEFpQUFRUWhxSWdBZ0FVa05BQXdEQ3dBTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dBMEVSU1EwQklBQkJFR29oQUFOQUlBQWdBaWtBRURjQUFDQUFJQUlwQUJnM0FBZ2dBQ0FDS1FBZ053QVFJQUFnQWlrQUtEY0FHQ0FDUVNCcUlRSWdBRUVnYWlJQUlBRkpEUUFMREFFTEFrQWdBQ0FCU3dSQUlBQWhBUXdCQ3lBQklBQnJJUVVDUUNBRVFRRkhJQUFnQW10QkQwcHlSUVJBSUFJaEF3TkFJQUFnQXlrQUFEY0FBQ0FEUVFocUlRTWdBRUVJYWlJQUlBRkpEUUFMREFFTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dCVUVSU0EwQUlBQkJFR29oQUNBQ0lRTURRQ0FBSUFNcEFCQTNBQUFnQUNBREtRQVlOd0FJSUFBZ0F5a0FJRGNBRUNBQUlBTXBBQ2czQUJnZ0EwRWdhaUVESUFCQklHb2lBQ0FCU1EwQUN3c2dBaUFGYWlFQ0N3TkFJQUVnQms4TkFTQUJJQUl0QUFBNkFBQWdBVUVCYWlFQklBSkJBV29oQWd3QUN3QUxDNjRIQWdWL0FYNGpBRUdBQVdzaUVTUUFJQkVnQXpZQ2ZFRi9JUThDUUFKQUFrQUNRQUpBSUFJT0JBRUFBd0lFQ3lBR1JRUkFRYmgvSVE4TUJBdEJiQ0VQSUFVdEFBQWlBaUFEU3cwRElBZ2dBa0VDZENJQ2FpZ0NBQ0VESUFJZ0Iyb29BZ0FoQWlBQVFRQTZBQXNnQUVJQU53SUFJQUFnQWpZQ0RDQUFJQU02QUFvZ0FFRUFPd0VJSUFFZ0FEWUNBRUVCSVE4TUF3c2dBU0FKTmdJQVFRQWhEd3dDQ3lBS1JRUkFRV3doRHd3Q0MwRUFJUThnQzBVZ0RFRVpTSElOQVVFSUlBUjBRUWhxSVFCQkFDRURBMEFnQUNBRFRRMENJQU5CUUdzaEF3d0FDd0FMUVd3aER5QVJJQkZCL0FCcUlCRkIrQUJxSUFVZ0JoQU1JZ05CaUg5TERRQWdFU2dDZUNJQ0lBUkxEUUFnRVNnQ2ZFRUJhaUVKSUFCQkNHb2hDMEdBZ0FJZ0FuUkJFSFVoQlVFQklSQkJBU0FDZENJUFFRRnJJZ29oRWdOQUlBa2dEa2NFUUFKQUlCRWdEa0VCZENJRWFpOEJBQ0lNUWYvL0EwWUVRQ0FMSUJKQkEzUnFJQTQyQWdRZ0VrRUJheUVTUVFFaERBd0JDeUFRUVFBZ0JTQU13VW9iSVJBTElBUWdEV29nRERzQkFDQU9RUUZxSVE0TUFRc0xJQUFnQWpZQ0JDQUFJQkEyQWdBQ1FDQUtJQkpHQkVBZ0RVSHFBR29oQmtFQUlSQkJBQ0VNQTBBZ0NTQVFSZ1JBSUE5QkEzWWdEMEVCZG1wQkEyb2lCVUVCZENFRVFRQWhERUVBSVJJRFFFRUFJUTRnRHlBU1RRMEVBMEFnRGtFQ1J3UkFJQXNnQlNBT2JDQU1haUFLY1VFRGRHb2dCaUFPSUJKcWFpMEFBRFlDQkNBT1FRRnFJUTRNQVFzTElCSkJBbW9oRWlBRUlBeHFJQXB4SVF3TUFBc0FCU0FSSUJCQkFYUnFMZ0VBSVFVZ0JpQU1haUlFSUJNM0FBQkJDQ0VPQTBBZ0JTQU9TZ1JBSUFRZ0Rtb2dFemNBQUNBT1FRaHFJUTRNQVFzTElCTkNnWUtFaUpDZ3dJQUJmQ0VUSUJCQkFXb2hFQ0FGSUF4cUlRd01BUXNBQ3dBTElBOUJBM1lnRDBFQmRtcEJBMm9oQlVFQUlSQkJBQ0VPQTBBZ0NTQVFSZzBCUVFBaERDQVJJQkJCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQU1Sd1JBSUFzZ0RrRURkR29nRURZQ0JBTkFJQVVnRG1vZ0NuRWlEaUFTU3cwQUN5QU1RUUZxSVF3TUFRc0xJQkJCQVdvaEVBd0FDd0FMSUFKQkFXb2hCVUVBSVF3RFFDQU1JQTlIQkVBZ0RTQUxJQXhCQTNScUlna29BZ1FpQkVFQmRHb2lBaUFDTHdFQUlnWkJBV283QVFBZ0NTQUZJQVpuUVdCemFpSUNPZ0FESUFrZ0JpQUNkQ0FQYXpzQkFDQUpJQWdnQkVFQ2RDSUNhaWdDQURvQUFpQUpJQUlnQjJvb0FnQTJBZ1FnREVFQmFpRU1EQUVMQ3lBQklBQTJBZ0FnQXlFUEN5QVJRWUFCYWlRQUlBOEw3Vm9DTzM4R2ZpTUFRZUFCYXlJRUpBQUNRRUd3N0FrUUJTSUZSUVJBUVVBaEJ3d0JDeUFGUWdBM0F2VHFBU0FGUVFBMkFzVHJBU0FGUVFBMkFyVHJBU0FGUWdBM0FwenJBU0FGUVFBMkFyanBBU0FGUVFBMkFxenNDU0FGUWdBM0F0VHJBU0FGUWdBM0FxenJBU0FGUWdBM0E0anJBU0FGUWdBM0F1VHFBU0FGUWdBM0F1VHJBU0FGUVlHQWdNQUFOZ0s4NndFZ0JVSUFOd0trNndFZ0JVSDg2Z0ZxUVFBMkFnQWdCVUdRNndGcVFnQTNBd0FnQlJBWUlBVkJyTlVCYWlFVUlBVkIrT3NCYWlFY0lBVkJzT29CYWlFaUlBVkJvREJxSVNvZ0JVR1lJR29oS3lBRlFhalFBR29oSGlBRlFSQnFJU3dnQlVFSWFpRW9JQVZCQkdvaExTQUZRY0RwQVdvaEtTQUZRWWpyQVdvZ0JFR1VBV29oTHlBRVFZd0JhaUV3SUFSQmhBRnFJVEVnQkVIY0FHb2hNaUFFUWRRQWFpRXpJQVJCekFCcUlUUWdBQ0VkQWtBQ1FBSkFBa0FDUUFOQVFRRkJCU0FGS0FMazZnRWJJUVlDUUFOQUlBTWdCa2tOQVNBQ0tBQUFRWEJ4UWREVXRNSUJSZ1JBUWJoL0lRY2dBMEVJU1EwSUlBSW9BQVFpRGtGM1N3UkFRWEloQnd3SkN5QURJQTVCQ0dvaUNVa05DQ0FPUVlCL1N3UkFJQWtoQnd3SkN5QURJQWxySVFNZ0FpQUphaUVDREFFTEN5QUZRZ0EzQXF6cEFTQUZRZ0EzQStqcEFTQUZRUUEyQXBqckFTQUZRZ0EzQTREcUFTQUZRZ00zQS9qcEFTQUZRYlRwQVdwQ0FEY0NBQ0FGUWZEcEFXcENBRGNEQUNBRlFhalFBR29pQ1VHTWdJRGdBRFlDQUNBRlFhelFBV3BCNEJJcEFnQTNBZ0FnQlVHMDBBRnFRZWdTS0FJQU5nSUFJQVVnQlVFUWFqWUNBQ0FGSUFWQm9EQnFOZ0lFSUFVZ0JVR1lJR28yQWdnZ0JTQUpOZ0lNSUFWQkFVRUZJQVVvQXVUcUFSczJBcnpwQVFKQUlBRkZEUUFnQlNnQ3JPa0JJZ2tnSFVZTkFDQUZJQWsyQXJqcEFTQUZJQjAyQXF6cEFTQUZLQUt3NlFFaERpQUZJQjAyQXJEcEFTQUZJQjBnRGlBSmEybzJBclRwQVF0QnVIOGhDU0FEUVFWQkNTQUZLQUxrNmdFaUJodEpEUVVnQWtFQlFRVWdCaHNnQmhBYUlnNUJpSDlMQkVBZ0RpRUpEQVVMSUFNZ0RrRURha2tOQlNBcElBSWdEaUFHRUJraUJrR0lmMHNFUUNBR0lRa01CUXNnQmcwRkFrQUNRQ0FGS0FLbzZ3RkJBVWNOQUNBRktBS2s2d0VpQ1VVTkFDQUZLQUtVNndGRkRRQWdDU2dDQkVFQmF5SUhJQVVvQXR6cEFTSUtyVUtIbGErdm1MYmVtNTUvZmtMSno5bXk4ZVc2NmllRlFoZUpRcy9XMDc3U3g2dlpRbjVDK2ZQZDhabjJtYXNXZkNJL1FpR0lJRCtGUXMvVzA3N1N4NnZaUW40aVAwSWRpQ0EvaFVMNTg5M3htZmFacXhaK0lqOUNJSWdnUDRXbmNTRUdJQWtvQWdBaEZRTkFRUUFoQ0FKQUlCVWdCa0VDZEdvb0FnQWlDVVVOQUNBSktBSUlRUWhKRFFBZ0NTZ0NCQ0lTS0FBQVFiZkl3dUYrUncwQUlCSW9BQVFoQ0FzZ0NDQUtSd1JBSUFZZ0IzRkJBV29oQmlBSURRRUxDeUFKUlEwQUlBVVFHQ0FGUVg4MkFxRHJBU0FGSUFrMkFwVHJBU0FGSUFVb0F0enBBU0lJTmdLWTZ3RU1BUXNnQlNnQzNPa0JJUWdMQWtBZ0NFVU5BQ0FGS0FLWTZ3RWdDRVlOQUVGZ0lRa01CZ3NDUUNBRktBTGc2UUVFUUNBRklBVW9BdWpxQVNJSlJUWUM3T29CSUFrTkFTQUZRdm5xME5EbnlhSGs0UUEzQTZqcUFTQUZRZ0EzQTZEcUFTQUZRcy9XMDc3U3g2dlpRamNEbU9vQklBVkMxdXVDN3VyOWlmWGdBRGNEa09vQklBVkNBRGNEaU9vQklDSkJBRUVvRUFNYURBRUxJQVZCQURZQzdPb0JDeUFCSUIxcUlTVWdCU0FGS1FQbzZRRWdEcTE4TndQbzZRRWdBeUFPYXlFRElBSWdEbW9oQWlBZElRNERRQ0FDSUFNZ0JFRXNhaEFkSWhWQmlIOUxCRUFnRlNFSkRBWUxJQU5CQTJzaU5TQVZTUTBFSUFKQkEyb2hHMEZzSVFrQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FFS0FJc0RnTUNBUUFWQ3lBVlFmLy9CMHNORXlBVlFRTkpEUklnQlNrRHlPa0JJVDhDUUFKQUlCc3RBQUFpQ1VFRGNTSWFRUUZyRGdNR0FRQUhDeUFGS0FLQTZnRU5BRUZpSVFrTUZRc2dGVUVGU1EwU0lCc29BQUFoQXdKL0FrQUNRQUpBSUFsQkFuWkJBM0VpQ1VFQ2F3NENBUUlBQ3lBSlFRQkhJUWNnQTBFRWRrSC9CM0VoQzBFRElRWWdBMEVPZGtIL0IzRU1BZ3RCQkNFR0lBTkJCSFpCLy84QWNTRUxRUUVoQnlBRFFSSjJEQUVMSUFOQkJIWkIvLzhQY1NJTFFZQ0FDRXNORTBFQklRZEJCU0VHSUFJdEFBZEJDblFnQTBFV2RuSUxJZ2dnQm1vaUNTQVZTdzBTQWtBZ0MwR0JCa2tOQUNBRktBS2M2d0ZGRFFCQkFDRURBMEFnQTBHRGdBRkxEUUVnQTBGQWF5RUREQUFMQUFzZ0JpQWJhaUVQSUJwQkEwY05CaUFGS0FJTUlnSXRBQUZCQ0hRaEF5QUhEUWNnQTBVTkNDQUVRZkFBYWlBUElBZ1FEU0lEUVloL1N3MEpJQUpCQkdvaEJpQUxJQnhxSWhKQkEyc2hDa0VBSUFJdkFRSnJRUjl4SVFjZ0hDRURBMEFnQkVId0FHb1FEMFVnQXlBS1NYRUVRQ0FESUFZZ0JDZ0NjQ0lJSUFRb0FuUWlEM1FnQjNaQkFuUnFJZ0l2QVFBN0FBQWdBeUFDTFFBRGFpSURJQVlnQ0NBUElBSXRBQUpxSWdoMElBZDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0NDQUNMUUFDYWpZQ2RDQURJQUl0QUFOcUlRTU1BUVVnRWtFQ2F5RUlBMEFnQkVId0FHb1FEeUVQSUFRb0FuQWhDaUFFS0FKMElRSWdBeUFJU3lBUGNrVUVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lDaThCQURzQUFDQUVJQUlnQ2kwQUFtbzJBblFnQXlBS0xRQURhaUVEREFFTEN3TkFJQU1nQ0UwRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUR5OEJBRHNBQUNBRElBOHRBQU5xSVFNZ0FpQVBMUUFDYWlFQ0RBRUxDd0pBSUFNZ0VrOE5BQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lBeTBBQURvQUFDQURMUUFEUVFGR0JFQWdBaUFETFFBQ2FpRUNEQUVMSUFKQkgwc05BRUVnSUFJZ0F5MEFBbW9pQWlBQ1FTQlBHeUVDQzBGc1FXd2dDeUFFS0FKNElBUW9BbnhIR3lBQ1FTQkhHeUVEREFzTEFBc0FDeUFFS0FJMElnSWdKU0FPYTBzTkNpQU9SUVJBUVFBaENTQUNEUUlNRGdzZ0RpQWJMUUFBSUFJUUF4b2dBaUVKREF3TElCVWdKU0FPYTBzTkNTQU9EUUZCQUNFSklCVkZEUXdMUWJaL0lRa01FUXNnRGlBYklCVVFBaG9nRlNFSkRBb0xJQndnR3dKL0FrQUNRQUpBSUFsQkFuWkJBM0ZCQVdzT0F3RUFBZ0FMSUFsQkEzWWhBMEVCREFJTElCc3ZBQUJCQkhZaEEwRUNEQUVMSUJWQkJFa05EaUFDTHdBRElBSXRBQVZCRUhSeUlnSkJqNENBQVVzTkRpQUNRUVIySVFOQkF3c2lBbW90QUFBZ0EwRWdhaEFESVFrZ0JTQUROZ0tBNndFZ0JTQUpOZ0x3NmdFZ0FrRUJhaUVKREFVTElCVUNmd0pBQWtBQ1FDQUpRUUoyUVFOeFFRRnJEZ01CQUFJQUN5QUpRUU4ySVFOQkFRd0NDeUFiTHdBQVFRUjJJUU5CQWd3QkN5QUNMd0FESUFJdEFBVkJFSFJ5UVFSMklRTkJBd3NpQWlBRGFpSUpRU0JxU1FSQUlBa2dGVXNORFNBY0lBSWdHMm9nQXhBQ0lRSWdCU0FETmdLQTZ3RWdCU0FDTmdMdzZnRWdBaUFEYWlJQ1FnQTNBQmdnQWtJQU53QVFJQUpDQURjQUNDQUNRZ0EzQUFBTUJRc2dCU0FETmdLQTZ3RWdCU0FDSUJ0cU5nTHc2Z0VNQkFzZ0IwVUVRQ0FlSUE4Z0NDQVVFQlFpQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZTRUREQU1MSUF0RklBaEZjZzBMSUF0QkNIWWlBeUFJSUF0SkJIOGdDRUVFZENBTGJnVkJEd3RCR0d3aUFrR01DR29vQWdCc0lBSkJpQWhxS0FJQWFpSUdRUU4ySUFacUlBSkJnQWhxS0FJQUlBSkJoQWhxS0FJQUlBTnNha2tFUUNNQVFSQnJJaEFrQUNBZUtBSUFJUU1nRkVId0JHcEJBRUhzQUJBRElRWkJWQ0VDQWtBZ0EwSC9BWEVpREVFTVN3MEFBa0FnRkVIY0NXb2dCaUFRUVFocUlCQkJER29nRHlBSUlCUkIzQXRxSWhjUUN5SVNRWWgvU3cwQUlCQW9BZ3dpQmlBTVN3MEJJQlJCcUFWcUlRMGdGRUdrQldvaE5pQWVRUVJxSVJFZ0EwR0FnSUI0Y1NFM0lBWkJBV29pRXlFQ0lBWWhBd05BSUFJaUIwRUJheUVDSUFNaUNrRUJheUVESUJRZ0NrRUNkR29vQXZBRVJRMEFDMEVCSUFjZ0IwRUJUUnNoRmtFQUlRZEJBU0VDQTBBZ0FpQVdSd1JBSUJRZ0FrRUNkQ0lEYWlnQzhBUWhHQ0FESUExcUlBYzJBZ0FnQWtFQmFpRUNJQWNnR0dvaEJ3d0JDd3NnRFNBSE5nSUFRUUFoQWlBUUtBSUlJUU1EUUNBQ0lBTkhCRUFnRFNBQ0lCUnFRZHdKYWkwQUFDSVlRUUowYWlJWklCa29BZ0FpR1VFQmFqWUNBQ0FVSUJsQkFYUnFJaGtnR0RvQTNRVWdHU0FDT2dEY0JTQUNRUUZxSVFJTUFRc0xRUUFoQXlBTlFRQTJBZ0FnRENBR1FYOXphaUVHUVFFaEFnTkFJQUlnRmtjRVFDQVVJQUpCQW5ScUlnMGdBellDQUNBTktBTHdCQ0FDSUFacWRDQURhaUVESUFKQkFXb2hBZ3dCQ3dzZ0RDQVRJQXBySWdaclFRRnFJUW9nQmlFREEwQWdBeUFLU1FSQUlCUWdBMEUwYkdvaERVRUJJUUlEUUNBQ0lCWkhCRUFnRFNBQ1FRSjBJaGhxSUJRZ0dHb29BZ0FnQTNZMkFnQWdBa0VCYWlFQ0RBRUxDeUFEUVFGcUlRTU1BUXNMSUJjZ0ZFRTBFQUloT0NBVVFaQU1haUU1SUJNZ0RHc2hPaUFVUWR3RmFpRVhRUUFoQ2dOQUFrQUNRQ0FISUFwSEJFQkJBU0FNSUJNZ0Z5QUtRUUYwYWlJQ0xRQUJJZzFySWdOckloaDBJUmtnQWkwQUFDRVdJRGdnRFVFQ2RHb2lIeWdDQUNFQ0lBWWdHRTBFUUNBMlFRRWdBeUE2YWlJTklBMUJBVXdiSWlCQkFuUWlKR29vQWdBaERTQTVJQlFnQTBFMGJHcEJOQkFDSVNFZ0RVRUJkQ0VtSUJFZ0FrRUNkR29oSXlBZ1FRRk5EUUlnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFZ0lDRWdKR29vQWdBaEpFRUFJUUlEUUNBQ0lDUkdEUU1nSXlBQ1FRSjBhaUFnTmdFQUlBSkJBV29oQWd3QUN3QUxJQUlnQWlBWmFpSU5JQUlnRFVzYklRMGdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVEQTBBZ0FpQU5SZzBESUJFZ0FrRUNkR29nQXpZQkFDQUNRUUZxSVFJTUFBc0FDeUFlSUF4QkVIUWdOM0lnREhKQmdBSnlOZ0lBREFNTElBY2dEV3NoSkNBWElDWnFJU1pCQUNFTkEwQWdEU0FrUmcwQlFRRWdHQ0FUSUNZZ0RVRUJkR29pSnkwQUFTSUNheUk3YTNRaVBDQWhJQUpCQW5ScUlpQW9BZ0FpQW1vaFBTQURJRHRxUVJCMFFZQ0EvQWR4SUNjdEFBQkJDSFJ5SUJaeVFZQ0FnQkJ5SVNjRFFDQWpJQUpCQW5ScUlDYzJBUUFnQWtFQmFpSUNJRDFKRFFBTElDQWdJQ2dDQUNBOGFqWUNBQ0FOUVFGcUlRME1BQXNBQ3lBZklCOG9BZ0FnR1dvMkFnQWdDa0VCYWlFS0RBQUxBQXNnRWlFQ0N5QVFRUkJxSkFBZ0FrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGaUVEREFNTElCNGdEeUFJSUJRUUZDSUNRWWgvU3lBQ0lBaFBjZzBMSUJ3Z0N5QUNJQTlxSUFnZ0Ftc2dIaEFYSVFNTUFnc2dBd1JBSUJ3Z0N5QVBJQWdnQWhBV0lRTU1BZ3NnSENBTElBOGdDQ0FDRUJjaEF3d0JDeUFjSUFzZ0R5QUlJQUlRRlNFREN5QURRWWgvU3cwSUlBVWdDellDZ09zQklBVWdIRFlDOE9vQklBVkJBVFlDZ09vQklCcEJBa1lFUUNBRklCNDJBZ3dMSUFzZ0hHb2lBa0lBTndBQUlBSkNBRGNBR0NBQ1FnQTNBQkFnQWtJQU53QUlJQWxCaUg5TERRb0xJQWtnRlVZTkNDQVZJQWxySVFZZ0JTZ0NuT3NCSVFvQ1FDQUpJQnRxSWdNdEFBQWlEMFVFUUVFQklRSkJBQ0VQUWJoL0lRa2dCa0VCUmcwQkRBc0xBbjhnQTBFQmFpQVB3Q0lDUVFCT0RRQWFJQUpCZjBZRVFDQUdRUU5JRFFzZ0F5OEFBVUdBL2dGcUlROGdBMEVEYWd3QkN5QUdRUUpJRFFvZ0F5MEFBU0FQUVFoMGNrR0FnQUpySVE4Z0EwRUNhZ3NoRWtHNGZ5RUpJQkpCQVdvaUFpQVZJQnRxSWdkTERRb2dMQ0FGSUJJdEFBQWlFa0VHZGtFalFRa2dBaUFISUFKclFjQVFRZEFSUWZBU0lBVW9Bb1RxQVNBS0lBOGdGQkFoSWdsQmlIOUxEUWdnS3lBb0lCSkJCSFpCQTNGQkgwRUlJQUlnQ1dvaUFpQUhJQUpyUVlBTFFZQU1RWUFYSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUNFR0lmMHNOQ0VGc0lRa2dLaUF0SUJKQkFuWkJBM0ZCTkVFSklBSWdDR29pQWlBSElBSnJRWUFOUWVBT1FaQVpJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQjBHSWYwc05DaUFDSUFkcUlBTnJJZ0loQ1NBQ1FZaC9TdzBLQ3lBT0lBOUJBRXh5RFFFTFFicC9JUWtNQ0FzZ0pTQU9heUVKSUFZZ0Ftc2hCaUFDSUFOcUlRY0NRQUpBQWtBZ0NrVUVRQ0FQUVFsSUlBVXBBOGpwQVVLQmdJQUlWSElOQWlBb0tBSUFJZ0pCQ0dvaEVpQUNLQUlFSVFwQkFDRURRUUFoQWdOQUlBTWdDblpGQkVBZ0FpQVNJQU5CQTNScUxRQUNRUlpMYWlFQ0lBTkJBV29oQXd3QkN3c2dCVUVBTmdLYzZ3RWdBa0VJSUFwcmRFRVVUdzBCREFNTElBVkJBRFlDbk9zQkN5QUVJQVVvQXZEcUFTSUROZ0xjQVNBSklBNXFJUllnQXlBRktBS0E2d0ZxSVJjQ1FDQVBSUVJBSUE0aEJ3d0JDeUFGS0FLNDZRRWhHaUFGS0FLMDZRRWhHQ0FGS0FLdzZRRWhFaUFGUVFFMkFvVHFBVUVBSVFNRFFDQURRUU5IQkVBZ0JDQURRUUowSWdKcUlBSWdCV3BCck5BQmFpZ0NBRFlDWkNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUVRocUlnSWdCeUFHRUExQmlIOUxEUU5CQ0NBUElBOUJDRTRiSVI4Z05DQUNJQVVvQWdBUUhpQXpJQUlnQlNnQ0NCQWVJRElnQWlBRktBSUVFQjRnRGlBU2F5RVpRUUFoQ0FOQUlBUkJPR29RRDBFRFJpQUlJQjlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ2RCRUhZaUVVSC9BWEVoQ3lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklneEJFSFlpSVVIL0FYRWhFQ0FFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRWWdRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ2tIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSUtheUlOSUFJZ0FpQU5TeHNpRXlBS2FqWUNQQ0FHSUFRb0FqZ2dDblJCQUNBVGEzWWdBaUFUYXlJVGRHb2hDaUFFUVRocUVBOGFJQUlnRFUwTkFTQUVJQVFvQWp3aUFpQVRhallDUENBRUtBSTRJQUowUVFBZ0UydDJJQXBxSVFvTUFRc2dCQ0FDSUFRb0Fqd2lEV28yQWp3Z0JDZ0NPQ0FOZEVFQUlBcHJkaUFHYWlFS0lBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlBbzJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FEQkVBZ0JDZ0NaQ0VLREFNTElBUW9BbWdoQ2d3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBWWdBMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ1pGSUFacUlRb2dBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUFvMkFtUUxweUVDSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lCQnFOZ0k4SUFRb0FqZ2dCblJCQUNBaGEzWWdBbW9oQWdzZ0N5QVFha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQXRxTmdJOElBUW9BamdnQm5SQkFDQVJhM1lnQTJvaEF3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUJrRUFJQWRCR0hZaUN5QUVLQUk4YWlJUWEzWWdDMEVDZEVHZ0hXb29BZ0J4SUFkQi8vOERjV28yQWt3Z0JDQVFJQXhCR0hZaUIyb2lDellDUENBRUlBZEJBblJCb0IxcUtBSUFJQVpCQUNBTGEzWnhJQXhCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnWkJHSFlpQnlBRUtBSThhaUlMTmdJOElBUWdCMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQXRyZG5FZ0JrSC8vd054YWpZQ1ZDQUVRZkFBYWlBSVFReHNhaUlHSUFvMkFnZ2dCaUFDTmdJRUlBWWdBellDQUNBSVFRRnFJUWdnQXlBWmFpQUNhaUVaREFFTEN5QUlJQjlJRFFNZ0ZrRWdheUVoSUE0aEJ3TkFJQVJCT0dvUUQwRURSaUFJSUE5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdaQkVIWWlJMEgvQVhFaENpQUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZzFCRUhZaUlFSC9BWEVoRXlBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUU1nUVVJZ2lDQkFRaUNJcHlFTEFrQWdRa0lRaUtjaURFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lNYXlJUklBSWdBaUFSU3hzaUVDQU1hallDUENBRElBUW9BamdnREhSQkFDQVFhM1lnQWlBUWF5SU1kR29oRUNBRVFUaHFFQThhSUFJZ0VVME5BU0FFSUFRb0Fqd2lBaUFNYWpZQ1BDQUVLQUk0SUFKMFFRQWdER3QySUJCcUlSQU1BUXNnQkNBQ0lBUW9BandpRUdvMkFqd2dCQ2dDT0NBUWRFRUFJQXhyZGlBRGFpRVFJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQkEyQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBTEJFQWdCQ2dDWkNFUURBTUxJQVFvQW1naEVBd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQU1nQzBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdORklBTnFJUkFnQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlCQTJBbVFMcHlFTUlFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQk5xTmdJOElBUW9BamdnQW5SQkFDQWdhM1lnREdvaERBc2dDaUFUYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUFwcU5nSThJQVFvQWpnZ0FuUkJBQ0FqYTNZZ0Myb2hDd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lBa0VBSUFaQkdIWWlBeUFFS0FJOGFpSUthM1lnQTBFQ2RFR2dIV29vQWdCeElBWkIvLzhEY1dvMkFrd2dCQ0FLSUExQkdIWWlBMm9pQmpZQ1BDQUVJQU5CQW5SQm9CMXFLQUlBSUFKQkFDQUdhM1p4SUExQi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ0pCR0hZaUF5QUVLQUk4YWlJR05nSThJQVFnQTBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUFacmRuRWdBa0gvL3dOeGFqWUNWQUpBQWtBQ1FDQUVLQUxjQVNJRElBUkI4QUJxSUFoQkIzRkJER3hxSWhNb0FnQWlFV29pSXlBWFN3MEFJQWNnRXlnQ0JDSU5JQkZxSWdwcUlDRkxEUUFnQ2tFZ2FpQVdJQWRyVFEwQkN5QUVJQk1vQWdnMkFoZ2dCQ0FUS1FJQU53TVFJQWNnRmlBRVFSQnFJQVJCM0FGcUlCY2dFaUFZSUJvUUh5RUtEQUVMSUFjZ0VXb2hBaUFUS0FJSUlRWWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQUpBSUJGQkVVa05BQ0FISUFNcEFCQTNBQkFnQnlBREtRQVlOd0FZSUJGQkVHdEJFVWdOQUNBRFFSQnFJUU1nQjBFZ2FpRVJBMEFnRVNBREtRQVFOd0FBSUJFZ0F5a0FHRGNBQ0NBUklBTXBBQ0EzQUJBZ0VTQURLUUFvTndBWUlBTkJJR29oQXlBUlFTQnFJaEVnQWtrTkFBc0xJQUlnQm1zaEF5QUVJQ00yQXR3QklBSWdFbXNnQmtrRVFDQUdJQUlnR0d0TERRY2dHaUFhSUFNZ0Vtc2lBMm9pRVNBTmFrOEVRQ0FDSUJFZ0RSQUtHZ3dDQ3lBRElBMXFJUTBnQWlBUlFRQWdBMnNRQ2lBRGF5RUNJQkloQXdzZ0JrRVFUd1JBSUFJZ0F5a0FBRGNBQUNBQ0lBTXBBQWczQUFnZ0RVRVJTQTBCSUFJZ0RXb2hCaUFDUVJCcUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFHU1EwQUN3d0JDd0pBSUFaQkIwMEVRQ0FDSUFNdEFBQTZBQUFnQWlBRExRQUJPZ0FCSUFJZ0F5MEFBam9BQWlBQ0lBTXRBQU02QUFNZ0FpQURJQVpCQW5RaUJrSEFIbW9vQWdCcUlnTW9BQUEyQUFRZ0F5QUdRZUFlYWlnQ0FHc2hBd3dCQ3lBQ0lBTXBBQUEzQUFBTElBMUJDVWtOQUNBQ0lBMXFJUkVnQWtFSWFpSUdJQU5CQ0dvaUEydEJEMHdFUUFOQUlBWWdBeWtBQURjQUFDQURRUWhxSVFNZ0JrRUlhaUlHSUJGSkRRQU1BZ3NBQ3lBR0lBTXBBQUEzQUFBZ0JpQURLUUFJTndBSUlBMUJHVWdOQUNBQ1FSaHFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBUlNRMEFDd3NnQ2tHSWYwc0VRQ0FLSVFrTUJnVWdFeUFRTmdJSUlCTWdERFlDQkNBVElBczJBZ0FnQ0VFQmFpRUlJQWNnQ21vaEJ5QUxJQmxxSUF4cUlSa01BZ3NBQ3dzZ0NDQVBTQTBESUFnZ0gyc2hCZ05BQWtBZ0JpQVBUZ1JBUVFBaEF3TkFJQU5CQTBZTkFpQUZJQU5CQW5RaUFtcEJyTkFCYWlBQ0lBUnFLQUprTmdJQUlBTkJBV29oQXd3QUN3QUxBa0FDUUFKQUlBUW9BdHdCSWdNZ0JFSHdBR29nQmtFSGNVRU1iR29pQ0NnQ0FDSU1haUlRSUJkTERRQWdCeUFJS0FJRUlnc2dER29pQ21vZ0lVc05BQ0FLUVNCcUlCWWdCMnRORFFFTElBUWdDQ2dDQ0RZQ0tDQUVJQWdwQWdBM0F5QWdCeUFXSUFSQklHb2dCRUhjQVdvZ0Z5QVNJQmdnR2hBZklRb01BUXNnQnlBTWFpRUNJQWdvQWdnaENDQUhJQU1wQUFBM0FBQWdCeUFES1FBSU53QUlBa0FnREVFUlNRMEFJQWNnQXlrQUVEY0FFQ0FISUFNcEFCZzNBQmdnREVFUWEwRVJTQTBBSUFOQkVHb2hBeUFIUVNCcUlRd0RRQ0FNSUFNcEFCQTNBQUFnRENBREtRQVlOd0FJSUF3Z0F5a0FJRGNBRUNBTUlBTXBBQ2czQUJnZ0EwRWdhaUVESUF4QklHb2lEQ0FDU1EwQUN3c2dBaUFJYXlFRElBUWdFRFlDM0FFZ0FpQVNheUFJU1FSQUlBZ2dBaUFZYTBzTkJ5QWFJQm9nQXlBU2F5SURhaUlNSUF0cVR3UkFJQUlnRENBTEVBb2FEQUlMSUFNZ0Myb2hDeUFDSUF4QkFDQURheEFLSUFOcklRSWdFaUVEQ3lBSVFSQlBCRUFnQWlBREtRQUFOd0FBSUFJZ0F5a0FDRGNBQ0NBTFFSRklEUUVnQWlBTGFpRUlJQUpCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQUlnQXkwQUFEb0FBQ0FDSUFNdEFBRTZBQUVnQWlBRExRQUNPZ0FDSUFJZ0F5MEFBem9BQXlBQ0lBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFJZ0F5a0FBRGNBQUFzZ0MwRUpTUTBBSUFJZ0Myb2hEQ0FDUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnREVrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0MwRVpTQTBBSUFKQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF4SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3R0JTQUdRUUZxSVFZZ0J5QUthaUVIREFJTEFBc0xJQVFvQXR3QklRTUxRYnAvSVFrZ0Z5QURheUlDSUJZZ0IydExEUUlnQndSL0lBY2dBeUFDRUFJZ0Ftb0ZRUUFMSUE1cklRa01BZ3NnQlVFQU5nS2M2d0VMSUFRZ0JTZ0M4T29CSWdNMkF0d0JJQWtnRG1vaERDQURJQVVvQW9EckFXb2hFQUpBSUE5RkJFQWdEaUVHREFFTElBVW9BcmpwQVNFTklBVW9BclRwQVNFVElBVW9BckRwQVNFU0lBVkJBVFlDaE9vQlFRQWhBd05BSUFOQkEwY0VRQ0FFSUFOQkFuUWlBbW9nQWlBRmFrR3MwQUZxS0FJQU5nS2NBU0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRZkFBYWlJQ0lBY2dCaEFOUVloL1N3MEJJREVnQWlBRktBSUFFQjRnTUNBQ0lBVW9BZ2dRSGlBdklBSWdCU2dDQkJBZUlBeEJJR3NoR0NBT0lRWURRQ0FFS0FLSUFTQUVLQUtFQVVFRGRHb3BBZ0FpUUtjaUNrRVFkaUlaUWY4QmNTRUxJQVFvQXBnQklBUW9BcFFCUVFOMGFpa0NBQ0pCcHlJV1FSQjJJaDlCL3dGeElSb2dCQ2dDa0FFZ0JDZ0NqQUZCQTNScUtRSUFJa0pDSUlpbklRY2dRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ0VIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ2RDSUlheUlSSUFJZ0FpQVJTeHNpRnlBSWFqWUNkQ0FISUFRb0FuQWdDSFJCQUNBWGEzWWdBaUFYYXlJWGRHb2hDQ0FFUWZBQWFoQVBHaUFDSUJGTkRRRWdCQ0FFS0FKMElnSWdGMm8yQW5RZ0JDZ0NjQ0FDZEVFQUlCZHJkaUFJYWlFSURBRUxJQVFnQWlBRUtBSjBJaEZxTmdKMElBUW9BbkFnRVhSQkFDQUlhM1lnQjJvaENDQUVRZkFBYWhBUEdnc2dCQ2tDbkFFaFJDQUVJQWcyQXB3QklBUWdSRGNDb0FFTUFRc0NRQ0FDUlFSQUlBTUVRQ0FFS0FLY0FTRUlEQU1MSUFRb0FxQUJJUWdNQVFzZ0JDQUVLQUowSWdKQkFXbzJBblFDZnlBSElBTkZhaUFFS0FKd0lBSjBRUjkyYWlJQ1FRTkdCRUFnQkNnQ25BRkJBV3NNQVFzZ0FrRUNkQ0FFYWlnQ25BRUxJZ2RGSUFkcUlRZ2dBa0VCUndSQUlBUWdCQ2dDb0FFMkFxUUJDd3NnQkNBRUtBS2NBVFlDb0FFZ0JDQUlOZ0tjQVF1bklRSWdRVUtBZ1B3SGcxQkZCRUFnQkNBRUtBSjBJZ2NnR21vMkFuUWdCQ2dDY0NBSGRFRUFJQjlyZGlBQ2FpRUNDeUFMSUJwcVFSUlBCRUFnQkVId0FHb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDZENJSElBdHFOZ0owSUFRb0FuQWdCM1JCQUNBWmEzWWdBMm9oQXdzZ0JFSHdBR29RRHhvZ0JDQUVLQUp3SWdkQkFDQUtRUmgySWdzZ0JDZ0NkR29pR210MklBdEJBblJCb0IxcUtBSUFjU0FLUWYvL0EzRnFOZ0tFQVNBRUlCb2dGa0VZZGlJS2FpSUxOZ0owSUFRZ0NrRUNkRUdnSFdvb0FnQWdCMEVBSUF0cmRuRWdGa0gvL3dOeGFqWUNsQUVnQkVId0FHb1FEeG9nQkNCQ3B5SUhRUmgySWdvZ0JDZ0NkR29pQ3pZQ2RDQUVJQXBCQW5SQm9CMXFLQUlBSUFRb0FuQkJBQ0FMYTNaeElBZEIvLzhEY1dvMkFvd0JJQVFnQXpZQ09DQUVJQUkyQWp3Z0JDQUlOZ0pBQWtBQ1FBSkFJQVFvQXR3Qklnc2dBMm9pRmlBUVN3MEFJQVlnQWlBRGFpSUthaUFZU3cwQUlBcEJJR29nRENBR2EwME5BUXNnQkNBRVFVQnJLQUlBTmdJSUlBUWdCQ2tET0RjREFDQUdJQXdnQkNBRVFkd0JhaUFRSUJJZ0V5QU5FQjhoQ2d3QkN5QURJQVpxSVFjZ0JpQUxLUUFBTndBQUlBWWdDeWtBQ0RjQUNBSkFJQU5CRVVrTkFDQUdJQXNwQUJBM0FCQWdCaUFMS1FBWU53QVlJQU5CRUd0QkVVZ05BQ0FMUVJCcUlRTWdCa0VnYWlFTEEwQWdDeUFES1FBUU53QUFJQXNnQXlrQUdEY0FDQ0FMSUFNcEFDQTNBQkFnQ3lBREtRQW9Od0FZSUFOQklHb2hBeUFMUVNCcUlnc2dCMGtOQUFzTElBY2dDR3NoQXlBRUlCWTJBdHdCSUFjZ0Vtc2dDRWtFUUNBSUlBY2dFMnRMRFFRZ0RTQU5JQU1nRW1zaUEyb2lDeUFDYWs4RVFDQUhJQXNnQWhBS0dnd0NDeUFISUF0QkFDQURheEFLSUFRZ0FpQURhaUlDTmdJOElBTnJJUWNnRWlFREN5QUlRUkJQQkVBZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNDQUNRUkZJRFFFZ0FpQUhhaUVJSUFkQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFjZ0F5MEFBRG9BQUNBSElBTXRBQUU2QUFFZ0J5QURMUUFDT2dBQ0lBY2dBeTBBQXpvQUF5QUhJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBY2dBeWtBQURjQUFBc2dBa0VKU1EwQUlBSWdCMm9oQ3lBSFFRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0Mwa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dBa0VaU0EwQUlBZEJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBdEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0RDeUFHSUFwcUlRWWdCRUh3QUdvUUR5RURJQTlCQVdzaUR3MEFDMEVBSVFJZ0EwRUNTUTBCQTBBZ0FrRURSd1JBSUFVZ0FrRUNkQ0lEYWtHczBBRnFJQU1nQkdvb0Fwd0JOZ0lBSUFKQkFXb2hBZ3dCQ3dzZ0JDZ0MzQUVoQXd0QnVuOGhDU0FRSUFOcklnSWdEQ0FHYTBzTkFDQUdCSDhnQmlBRElBSVFBaUFDYWdWQkFBc2dEbXNoQ1FzZ0NVR0lmMHNOQmdzQ1FDQUZLQUxzNmdGRkRRQWdCU0FGS1FPSTZnRWdDYTE4TndPSTZnRUNRQ0FGS0FMUTZnRWlBaUFKYWlJSVFSOU5CRUFnRGtVTkFTQUNJQ0pxSUE0Z0NSQUNHaUFGS0FMUTZnRWdDV29oQ0F3QkN5QU9JUU1nQWdSQUlBSWdJbW9nQTBFZ0lBSnJFQUlhSUFVb0F0RHFBU0VDSUFWQkFEWUMwT29CSUFVZ0JTa0RrT29CSUFVcEFMRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEa09vQklBVWdCU2tEbU9vQklBVXBBTGpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG1Pb0JJQVVnQlNrRG9Pb0JJQVVwQU1EcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RvT29CSUFVZ0JTa0RxT29CSUFVcEFNanFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEcU9vQklBTWdBbXRCSUdvaEF3c2dDU0FPYWlJQ0lBTkJJR3BQQkVBZ0FrRWdheUVHSUFVcEE2anFBU0UvSUFVcEE2RHFBU0ZBSUFVcEE1anFBU0ZCSUFVcEE1RHFBU0ZDQTBBZ0F5a0FHRUxQMXRPKzBzZXIyVUorSUQ5OFFoK0pRb2VWcjYrWXR0NmJubjkrSVQ4Z0F5a0FFRUxQMXRPKzBzZXIyVUorSUVCOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVBZ0F5a0FDRUxQMXRPKzBzZXIyVUorSUVGOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVFZ0F5a0FBRUxQMXRPKzBzZXIyVUorSUVKOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVJZ0EwRWdhaUlESUFaTkRRQUxJQVVnUHpjRHFPb0JJQVVnUURjRG9Pb0JJQVVnUVRjRG1Pb0JJQVVnUWpjRGtPb0JDeUFDSUFOTkRRRWdJaUFESUFJZ0Eyc2lDQkFDR2dzZ0JTQUlOZ0xRNmdFTElEVWdGV3NoQXlBVklCdHFJUUlnQ1NBT2FpRU9JQVFvQWpCRkRRQUxJQ2twQXdBaVAwSi9VU0EvSUE0Z0hXdXNVWEpGQkVCQmJDRUpEQVlMSUFVb0F1RHBBUVJBUVdvaENTQURRUVJKRFFZZ0JTZ0M2T29CUlFSQUlDSWdCU2dDME9vQmFpRUtBbjRnQlNrRGlPb0JJajlDSUZvRVFDQUZLUU9ZNmdFaVFFSUhpU0FGS1FPUTZnRWlRVUlCaVh3Z0JTa0RvT29CSWtKQ0RJbDhJQVVwQTZqcUFTSkRRaEtKZkNCQlFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5SUVCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZm9WQ2g1V3ZyNWkyM3B1ZWYzNUNuYU8xNm9PeGpZcjZBSDBnUWtMUDF0Tyswc2VyMlVKK1FoK0pRb2VWcjYrWXR0NmJubjkraFVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0JEUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlEQUVMSUFVcEE2RHFBVUxGejlteThlVzY2aWQ4Q3lBL2ZDRS9JQ0loQmdOQUlBb2dCa0VJYWlJSFR3UkFJQVlwQUFCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZmlBL2hVSWJpVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTRS9JQWNoQmd3QkN3c0NRQ0FLSUFaQkJHb2lDRWtFUUNBR0lRZ01BUXNnQmpVQUFFS0hsYSt2bUxiZW01NS9maUEvaFVJWGlVTFAxdE8rMHNlcjJVSitRdm56M2ZHWjlwbXJGbndoUHdzRFFDQUlJQXBKQkVBZ0NERUFBRUxGejlteThlVzY2aWQrSUQrRlFndUpRb2VWcjYrWXR0NmJubjkrSVQ4Z0NFRUJhaUVJREFFTEN5QUNLQUFBSUQ5Q0lZZ2dQNFZDejliVHZ0TEhxOWxDZmlJL1FoMklJRCtGUXZuejNmR1o5cG1yRm40aVAwSWdpQ0EvaGFkSERRY0xJQU5CQkdzaEF5QUNRUVJxSVFJTElBNGdIV3NpQ1VHSmYwOE5CQ0FCSUFscklRRWdDU0FkYWlFZFFRRWhQZ3dCQ3d0QnVIOGhCeUFERFFRZ0hTQUFheUVIREFRTFFXd2hDUXdCQzBHNGZ5RUpDMEc0ZnlFSElBbEJka1lnUG5FTkFRc2dDU0VIQ3lnQ0FBMEFJQVZCL09vQmFpZ0NBQ0VCSUFWQitPb0JhaWdDQUNFQUlBVVFHQ0FGS0FLdzZ3RWdBQ0FCRUJNZ0JVRUFOZ0t3NndFZ0JTZ0NwT3NCSWdJRVFBSkFBa0FDUUFKQUlBSW9BZ0FpQXdSQUlBQkZEUUlnQVNBRElBQVJBZ0FNQVFzZ0FFVU5BZ3NnQVNBQ0lBQVJBZ0FNQWdzZ0F4QUdDeUFDRUFZTElBVkJBRFlDcE9zQkN5QUFCRUFnQVNBRklBQVJBZ0FNQVFzZ0JSQUdDeUFFUWVBQmFpUUFJQWNMQzZnVkNRQkJpQWdMRFFFQUFBQUJBQUFBQWdBQUFBSUFRYUFJQzdNR0FRQUFBQUVBQUFBQ0FBQUFBZ0FBQUNZQUFBQ0NBQUFBSVFVQUFFb0FBQUJuQ0FBQUpnQUFBTUFCQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBS1FBQUFDd0NBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFMd0FBQU1vQ0FBQ0FBQUFBaWdVQUFFb0FBQUNFQ1FBQU5RQUFBSE1EQUFDQUFBQUFuUVVBQUVvQUFBQ2dDUUFBUFFBQUFJRURBQUNBQUFBQTZ3VUFBRXNBQUFBK0NnQUFSQUFBQUo0REFBQ0FBQUFBVFFZQUFFc0FBQUNxQ2dBQVN3QUFBTE1EQUFDQUFBQUF3UVlBQUUwQUFBQWZEUUFBVFFBQUFGTUVBQUNBQUFBQUl3Z0FBRkVBQUFDbUR3QUFWQUFBQUprRUFBQ0FBQUFBU3drQUFGY0FBQUN4RWdBQVdBQUFBTm9FQUFDQUFBQUFid2tBQUYwQUFBQWpGQUFBVkFBQUFFVUZBQUNBQUFBQVZBb0FBR29BQUFDTUZBQUFhZ0FBQUs4RkFBQ0FBQUFBZGdrQUFId0FBQUJPRUFBQWZBQUFBTklDQUFDQUFBQUFZd2NBQUpFQUFBQ1FCd0FBa2dBQUFBQUFBQUFCQUFBQUFRQUFBQVVBQUFBTkFBQUFIUUFBQUQwQUFBQjlBQUFBL1FBQUFQMEJBQUQ5QXdBQS9RY0FBUDBQQUFEOUh3QUEvVDhBQVAxL0FBRDkvd0FBL2Y4QkFQMy9Bd0Q5L3djQS9mOFBBUDMvSHdEOS96OEEvZjkvQVAzLy93RDkvLzhCL2YvL0EvMy8vd2Y5Ly84UC9mLy9ILzMvL3ovOS8vOS9BQUFBQUFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBUkFBQUFFZ0FBQUJNQUFBQVVBQUFBRlFBQUFCWUFBQUFYQUFBQUdBQUFBQmtBQUFBYUFBQUFHd0FBQUJ3QUFBQWRBQUFBSGdBQUFCOEFBQUFEQUFBQUJBQUFBQVVBQUFBR0FBQUFCd0FBQUFnQUFBQUpBQUFBQ2dBQUFBc0FBQUFNQUFBQURRQUFBQTRBQUFBUEFBQUFFQUFBQUJFQUFBQVNBQUFBRXdBQUFCUUFBQUFWQUFBQUZnQUFBQmNBQUFBWUFBQUFHUUFBQUJvQUFBQWJBQUFBSEFBQUFCMEFBQUFlQUFBQUh3QUFBQ0FBQUFBaEFBQUFJZ0FBQUNNQUFBQWxBQUFBSndBQUFDa0FBQUFyQUFBQUx3QUFBRE1BQUFBN0FBQUFRd0FBQUZNQUFBQmpBQUFBZ3dBQUFBTUJBQUFEQWdBQUF3UUFBQU1JQUFBREVBQUFBeUFBQUFOQUFBQURnQUFBQXdBQkFFSGdEd3RSQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQkFBQUFBVUFBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0FBQUF3QUFBQU5BQUFBRGdBQUFBOEFBQUFRQUVIRUVBdUxBUUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFTQUFBQUZBQUFBQllBQUFBWUFBQUFIQUFBQUNBQUFBQW9BQUFBTUFBQUFFQUFBQUNBQUFBQUFBRUFBQUFDQUFBQUJBQUFBQWdBQUFBUUFBQUFJQUFBQUVBQUFBQ0FBQUFBQUFFQVFaQVNDK1lFQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFCQUFBQUJBQUFBQWdBQUFBQUFBQUFBUUFCQVFZQUFBQUFBQUFFQUFBQUFCQUFBQVFBQUFBQUlBQUFCUUVBQUFBQUFBQUZBd0FBQUFBQUFBVUVBQUFBQUFBQUJRWUFBQUFBQUFBRkJ3QUFBQUFBQUFVSkFBQUFBQUFBQlFvQUFBQUFBQUFGREFBQUFBQUFBQVlPQUFBQUFBQUJCUkFBQUFBQUFBRUZGQUFBQUFBQUFRVVdBQUFBQUFBQ0JSd0FBQUFBQUFNRklBQUFBQUFBQkFVd0FBQUFJQUFHQlVBQUFBQUFBQWNGZ0FBQUFBQUFDQVlBQVFBQUFBQUtCZ0FFQUFBQUFBd0dBQkFBQUNBQUFBUUFBQUFBQUFBQUJBRUFBQUFBQUFBRkFnQUFBQ0FBQUFVRUFBQUFBQUFBQlFVQUFBQWdBQUFGQndBQUFBQUFBQVVJQUFBQUlBQUFCUW9BQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBSUFBQkJSQUFBQUFBQUFFRkVnQUFBQ0FBQVFVV0FBQUFBQUFDQlJnQUFBQWdBQU1GSUFBQUFBQUFBd1VvQUFBQUFBQUdCRUFBQUFBUUFBWUVRQUFBQUNBQUJ3V0FBQUFBQUFBSkJnQUNBQUFBQUFzR0FBZ0FBREFBQUFRQUFBQUFFQUFBQkFFQUFBQWdBQUFGQWdBQUFDQUFBQVVEQUFBQUlBQUFCUVVBQUFBZ0FBQUZCZ0FBQUNBQUFBVUlBQUFBSUFBQUJRa0FBQUFnQUFBRkN3QUFBQ0FBQUFVTUFBQUFBQUFBQmc4QUFBQWdBQUVGRWdBQUFDQUFBUVVVQUFBQUlBQUNCUmdBQUFBZ0FBSUZIQUFBQUNBQUF3VW9BQUFBSUFBRUJUQUFBQUFBQUJBR0FBQUJBQUFBRHdZQWdBQUFBQUFPQmdCQUFBQUFBQTBHQUNBQVFZQVhDNGNDQVFBQkFRVUFBQUFBQUFBRkFBQUFBQUFBQmdROUFBQUFBQUFKQmYwQkFBQUFBQThGL1g4QUFBQUFGUVg5L3g4QUFBQURCUVVBQUFBQUFBY0VmUUFBQUFBQURBWDlEd0FBQUFBU0JmMy9Bd0FBQUJjRi9mOS9BQUFBQlFVZEFBQUFBQUFJQlAwQUFBQUFBQTRGL1Q4QUFBQUFGQVg5L3c4QUFBQUNCUUVBQUFBUUFBY0VmUUFBQUFBQUN3WDlCd0FBQUFBUkJmMy9BUUFBQUJZRi9mOC9BQUFBQkFVTkFBQUFFQUFJQlAwQUFBQUFBQTBGL1I4QUFBQUFFd1g5L3djQUFBQUJCUUVBQUFBUUFBWUVQUUFBQUFBQUNnWDlBd0FBQUFBUUJmMy9BQUFBQUJ3Ri9mLy9Ed0FBR3dYOS8vOEhBQUFhQmYzLy93TUFBQmtGL2YvL0FRQUFHQVg5Ly84QVFaQVpDNFlFQVFBQkFRWUFBQUFBQUFBR0F3QUFBQUFBQUFRRUFBQUFJQUFBQlFVQUFBQUFBQUFGQmdBQUFBQUFBQVVJQUFBQUFBQUFCUWtBQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBQUFBQUJoQUFBQUFBQUFBR0V3QUFBQUFBQUFZV0FBQUFBQUFBQmhrQUFBQUFBQUFHSEFBQUFBQUFBQVlmQUFBQUFBQUFCaUlBQUFBQUFBRUdKUUFBQUFBQUFRWXBBQUFBQUFBQ0JpOEFBQUFBQUFNR093QUFBQUFBQkFaVEFBQUFBQUFIQm9NQUFBQUFBQWtHQXdJQUFCQUFBQVFFQUFBQUFBQUFCQVVBQUFBZ0FBQUZCZ0FBQUFBQUFBVUhBQUFBSUFBQUJRa0FBQUFBQUFBRkNnQUFBQUFBQUFZTUFBQUFBQUFBQmc4QUFBQUFBQUFHRWdBQUFBQUFBQVlWQUFBQUFBQUFCaGdBQUFBQUFBQUdHd0FBQUFBQUFBWWVBQUFBQUFBQUJpRUFBQUFBQUFFR0l3QUFBQUFBQVFZbkFBQUFBQUFDQmlzQUFBQUFBQU1HTXdBQUFBQUFCQVpEQUFBQUFBQUZCbU1BQUFBQUFBZ0dBd0VBQUNBQUFBUUVBQUFBTUFBQUJBUUFBQUFRQUFBRUJRQUFBQ0FBQUFVSEFBQUFJQUFBQlFnQUFBQWdBQUFGQ2dBQUFDQUFBQVVMQUFBQUFBQUFCZzRBQUFBQUFBQUdFUUFBQUFBQUFBWVVBQUFBQUFBQUJoY0FBQUFBQUFBR0dnQUFBQUFBQUFZZEFBQUFBQUFBQmlBQUFBQUFBQkFHQXdBQkFBQUFEd1lEZ0FBQUFBQU9CZ05BQUFBQUFBMEdBeUFBQUFBQURBWURFQUFBQUFBTEJnTUlBQUFBQUFvR0F3UUFRYVFkQzlrQkFRQUFBQU1BQUFBSEFBQUFEd0FBQUI4QUFBQS9BQUFBZndBQUFQOEFBQUQvQVFBQS93TUFBUDhIQUFEL0R3QUEveDhBQVA4L0FBRC9md0FBLy84QUFQLy9BUUQvL3dNQS8vOEhBUC8vRHdELy94OEEvLzgvQVAvL2Z3RC8vLzhBLy8vL0FmLy8vd1AvLy84SC8vLy9ELy8vL3gvLy8vOC8vLy8vZndBQUFBQUJBQUFBQWdBQUFBUUFBQUFBQUFBQUFnQUFBQVFBQUFBSUFBQUFBQUFBQUFFQUFBQUNBQUFBQVFBQUFBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUFnQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QkJnQjhMQTRBUkFRPT0iO3ZhciB5ZT1uZXcgUEEsbWU9ITE7YXN5bmMgZnVuY3Rpb24gQ3IoQSx0LGUpe2xldCBJPW51bGw7dHlwZW9mIEEhPSJzdHJpbmciP0k9QS5ocmVmOkEuc3RhcnRzV2l0aCgiaHR0cCIpP0k9QTpJPWAke3R9LyR7QX1gLEkuZW5kc1dpdGgoIi5qcyIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTMpKSxJLmVuZHNXaXRoKCIud2FzbSIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTUpKSxJLmVuZHNXaXRoKCIud2FzbS56c3QiKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC05KSk7bGV0IHI9YCR7SX0ud2FzbWAsZz1hd2FpdCB4QS5nZXQoYCR7cn0uenN0YCx7cmVzcG9uc2VUeXBlOiJhcnJheWJ1ZmZlciIscGFyYW1zOmV9KTttZXx8KGF3YWl0IHllLmluaXQoKSxtZT0hMCk7bGV0IG49eWUuZGVjb2RlKG5ldyBVaW50OEFycmF5KGcuZGF0YSkpLmJ1ZmZlcjtyZXR1cm4oYXdhaXQgaW1wb3J0KGAke0l9LmpzYCkpLmRlZmF1bHQoe3dhc21CaW5hcnk6bn0pfXZhciB3ZT1Dcjt2YXIgakE9bmV3IE1hcDthc3luYyBmdW5jdGlvbiBCcihBLHQsZSl7bGV0IEk9QSxyPUEsZz1udWxsO3JldHVybiB0eXBlb2YgQSE9InN0cmluZyImJihJPW5ldyBVUkwoQS5ocmVmKSxyPUkuaHJlZiksakEuaGFzKHIpP2c9YXdhaXQgakEuZ2V0KHIpOihqQS5zZXQocix3ZShJLHQsZSkpLGc9YXdhaXQgakEuZ2V0KHIpKSxnfXZhciBwZT1Ccjt2YXIgYXI9e1RleHRGaWxlOiJUZXh0RmlsZSIsQmluYXJ5RmlsZToiQmluYXJ5RmlsZSIsVGV4dFN0cmVhbToiVGV4dFN0cmVhbSIsQmluYXJ5U3RyZWFtOiJCaW5hcnlTdHJlYW0iLEltYWdlOiJJbWFnZSIsUG9pbnRTZXQ6IlBvaW50U2V0IixNZXNoOiJNZXNoIixQb2x5RGF0YToiUG9seURhdGEiLFRyYW5zZm9ybUxpc3Q6IlRyYW5zZm9ybUxpc3QiLEpzb25Db21wYXRpYmxlOiJKc29uQ29tcGF0aWJsZSJ9LGQ9YXI7dmFyIFFyPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sVT1Rcjt2YXIgRXI9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LFY9RXI7ZnVuY3Rpb24gY3IoQSx0KXtsZXQgZT1udWxsO3N3aXRjaChBKXtjYXNlIFUuVUludDg6e2U9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBVLkludDg6e2U9bmV3IEludDhBcnJheSh0KTticmVha31jYXNlIFUuVUludDE2OntlPW5ldyBVaW50MTZBcnJheSh0KTticmVha31jYXNlIFUuSW50MTY6e2U9bmV3IEludDE2QXJyYXkodCk7YnJlYWt9Y2FzZSBVLlVJbnQzMjp7ZT1uZXcgVWludDMyQXJyYXkodCk7YnJlYWt9Y2FzZSBVLkludDMyOntlPW5ldyBJbnQzMkFycmF5KHQpO2JyZWFrfWNhc2UgVS5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP2U9bmV3IEJpZ1VpbnQ2NEFycmF5KHQpOmU9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBVLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP2U9bmV3IEJpZ0ludDY0QXJyYXkodCk6ZT1uZXcgVWludDhBcnJheSh0KTticmVha31jYXNlIFYuRmxvYXQzMjp7ZT1uZXcgRmxvYXQzMkFycmF5KHQpO2JyZWFrfWNhc2UgVi5GbG9hdDY0OntlPW5ldyBGbG9hdDY0QXJyYXkodCk7YnJlYWt9Y2FzZSJudWxsIjp7ZT1udWxsO2JyZWFrfWNhc2UgbnVsbDp7ZT1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIGV9dmFyIHE9Y3I7dmFyIFJlPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPT0iZnVuY3Rpb24iLFNlPW5ldyBUZXh0RW5jb2RlcixGZT1uZXcgVGV4dERlY29kZXIoInV0Zi04Iik7ZnVuY3Rpb24gZnIoQSx0KXtsZXQgZT17ZmxhZ3M6InIiLGVuY29kaW5nOiJiaW5hcnkifSxJPUEuZnNfb3Blbih0LGUuZmxhZ3MpLGc9QS5mc19zdGF0KHQpLnNpemUsbz1udWxsO1JlP289bmV3IFNoYXJlZEFycmF5QnVmZmVyKGcpOm89bmV3IEFycmF5QnVmZmVyKGcpO2xldCBuPW5ldyBVaW50OEFycmF5KG8pO3JldHVybiBBLmZzX3JlYWQoSSxuLDAsZywwKSxBLmZzX2Nsb3NlKEkpLG59ZnVuY3Rpb24gTmUoQSx0LGUpe2xldCBJPW51bGw7UmU/ST1uZXcgU2hhcmVkQXJyYXlCdWZmZXIoZSk6ST1uZXcgQXJyYXlCdWZmZXIoZSk7bGV0IHI9bmV3IFVpbnQ4QXJyYXkoSSksZz1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsdCxlKTtyZXR1cm4gci5zZXQoZykscn1mdW5jdGlvbiB3KEEsdCxlLEkpe2xldCByPTA7cmV0dXJuIHQhPT1udWxsJiYocj1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9hcnJheV9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLEksdC5idWZmZXIuYnl0ZUxlbmd0aF0pLEEuSEVBUFU4LnNldChuZXcgVWludDhBcnJheSh0LmJ1ZmZlcikscikpLHJ9ZnVuY3Rpb24geChBLHQsZSl7bGV0IEk9SlNPTi5zdHJpbmdpZnkodCkscj1BLmxlbmd0aEJ5dGVzVVRGOChJKSsxLGc9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfanNvbl9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLHJdKTtBLnN0cmluZ1RvVVRGOChJLGcscil9ZnVuY3Rpb24gUyhBLHQsZSxJKXtsZXQgcj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LGVdKSxnPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsZV0pLG89TmUoQSxyLGcpO3JldHVybiBxKEksby5idWZmZXIpfWZ1bmN0aW9uIHVBKEEsdCl7bGV0IGU9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2pzb25fYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiXSxbMCx0XSksST1BLlVURjhUb1N0cmluZyhlKTtyZXR1cm4gSlNPTi5wYXJzZShJKX1mdW5jdGlvbiBscihBLHQsZSxJKXtJIT1udWxsJiZJLmxlbmd0aD4wJiZJLmZvckVhY2goZnVuY3Rpb24oQixzKXtzd2l0Y2goQi50eXBlKXtjYXNlIGQuVGV4dFN0cmVhbTp7bGV0IEM9U2UuZW5jb2RlKEIuZGF0YS5kYXRhKSxsPXcoQSxDLHMsMCksYT17c2l6ZTpDLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O3goQSxhLHMpO2JyZWFrfWNhc2UgZC5Kc29uQ29tcGF0aWJsZTp7bGV0IEM9U2UuZW5jb2RlKEpTT04uc3RyaW5naWZ5KEIuZGF0YSkpLGw9dyhBLEMscywwKSxhPXtzaXplOkMuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07eChBLGEscyk7YnJlYWt9Y2FzZSBkLkJpbmFyeVN0cmVhbTp7bGV0IEM9Qi5kYXRhLmRhdGEsbD13KEEsQyxzLDApLGE9e3NpemU6Qy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTt4KEEsYSxzKTticmVha31jYXNlIGQuVGV4dEZpbGU6e0EuZnNfd3JpdGVGaWxlKEIuZGF0YS5wYXRoLEIuZGF0YS5kYXRhKTticmVha31jYXNlIGQuQmluYXJ5RmlsZTp7QS5mc193cml0ZUZpbGUoQi5kYXRhLnBhdGgsQi5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgZC5JbWFnZTp7bGV0IEM9Qi5kYXRhLGw9dyhBLEMuZGF0YSxzLDApLGE9dyhBLEMuZGlyZWN0aW9uLHMsMSksUT10eXBlb2YgQy5tZXRhZGF0YT8uZW50cmllczwidSI/QXJyYXkuZnJvbShDLm1ldGFkYXRhLmVudHJpZXMoKSk6W10sZj17aW1hZ2VUeXBlOkMuaW1hZ2VUeXBlLG5hbWU6Qy5uYW1lLG9yaWdpbjpDLm9yaWdpbixzcGFjaW5nOkMuc3BhY2luZyxkaXJlY3Rpb246YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHthfWAsc2l6ZTpDLnNpemUsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxtZXRhZGF0YTpRfTt4KEEsZixzKTticmVha31jYXNlIGQuTWVzaDp7bGV0IEM9Qi5kYXRhLGw9dyhBLEMucG9pbnRzLHMsMCksYT13KEEsQy5jZWxscyxzLDEpLFE9dyhBLEMucG9pbnREYXRhLHMsMiksZj13KEEsQy5jZWxsRGF0YSxzLDMpLGM9e21lc2hUeXBlOkMubWVzaFR5cGUsbmFtZTpDLm5hbWUsbnVtYmVyT2ZQb2ludHM6Qy5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbnVtYmVyT2ZDZWxsczpDLm51bWJlck9mQ2VsbHMsY2VsbHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHthfWAsY2VsbEJ1ZmZlclNpemU6Qy5jZWxsQnVmZmVyU2l6ZSxudW1iZXJPZlBvaW50UGl4ZWxzOkMubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOkMubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gfTt4KEEsYyxzKTticmVha31jYXNlIGQuUG9pbnRTZXQ6e2xldCBDPUIuZGF0YSxsPXcoQSxDLnBvaW50cyxzLDApLGE9dyhBLEMucG9pbnREYXRhLHMsMSksUT17cG9pbnRTZXRUeXBlOkMucG9pbnRTZXRUeXBlLG5hbWU6Qy5uYW1lLG51bWJlck9mUG9pbnRzOkMubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG51bWJlck9mUG9pbnRQaXhlbHM6Qy5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2F9YH07eChBLFEscyk7YnJlYWt9Y2FzZSBkLlRyYW5zZm9ybUxpc3Q6e2xldCBDPUIuZGF0YSxsPVtdLGE9MDtDLmZvckVhY2goUT0+e2xldCBmPSIiLGM9IiI7US50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGY9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt3KEEsUS5maXhlZFBhcmFtZXRlcnMscyxhKX1gLGErPTEsYz1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3coQSxRLnBhcmFtZXRlcnMscyxhKX1gLGErPTEpO2xldCBEPXt0cmFuc2Zvcm1UeXBlOlEudHJhbnNmb3JtVHlwZSxudW1iZXJPZkZpeGVkUGFyYW1ldGVyczpRLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzLG51bWJlck9mUGFyYW1ldGVyczpRLm51bWJlck9mUGFyYW1ldGVycyxuYW1lOlEubmFtZSxpbnB1dFNwYWNlTmFtZTpRLmlucHV0U3BhY2VOYW1lLG91dHB1dFNwYWNlTmFtZTpRLm91dHB1dFNwYWNlTmFtZSxwYXJhbWV0ZXJzOmMsZml4ZWRQYXJhbWV0ZXJzOmZ9O2wucHVzaChEKX0pLHgoQSxsLHMpO2JyZWFrfWNhc2UgZC5Qb2x5RGF0YTp7bGV0IEM9Qi5kYXRhLGw9dyhBLEMucG9pbnRzLHMsMCksYT13KEEsQy52ZXJ0aWNlcyxzLDEpLFE9dyhBLEMubGluZXMscywyKSxmPXcoQSxDLnBvbHlnb25zLHMsMyksYz13KEEsQy50cmlhbmdsZVN0cmlwcyxzLDQpLEQ9dyhBLEMucG9pbnREYXRhLHMsNSksRj13KEEsQy5wb2ludERhdGEscyw2KSx5PXtwb2x5RGF0YVR5cGU6Qy5wb2x5RGF0YVR5cGUsbmFtZTpDLm5hbWUsbnVtYmVyT2ZQb2ludHM6Qy5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsdmVydGljZXNCdWZmZXJTaXplOkMudmVydGljZXNCdWZmZXJTaXplLHZlcnRpY2VzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7YX1gLGxpbmVzQnVmZmVyU2l6ZTpDLmxpbmVzQnVmZmVyU2l6ZSxsaW5lczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YCxwb2x5Z29uc0J1ZmZlclNpemU6Qy5wb2x5Z29uc0J1ZmZlclNpemUscG9seWdvbnM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsdHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplOkMudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplLHRyaWFuZ2xlU3RyaXBzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLG51bWJlck9mUG9pbnRQaXhlbHM6Qy5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0R9YCxudW1iZXJPZkNlbGxQaXhlbHM6Qy5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtGfWB9O3goQSx5LHMpO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIGlucHV0IEludGVyZmFjZVR5cGUiKX19KSxBLnJlc2V0TW9kdWxlU3Rkb3V0KCksQS5yZXNldE1vZHVsZVN0ZGVycigpO2xldCByPUEuc3RhY2tTYXZlKCksZz0wO3RyeXtnPUEuY2FsbE1haW4odC5zbGljZSgpKX1jYXRjaChCKXt0aHJvdyB0eXBlb2YgQj09Im51bWJlciImJihjb25zb2xlLmxvZygiRXhjZXB0aW9uIHdoaWxlIHJ1bm5pbmcgcGlwZWxpbmU6IiksY29uc29sZS5sb2coInN0ZG91dDoiLEEuZ2V0TW9kdWxlU3Rkb3V0KCkpLGNvbnNvbGUuZXJyb3IoInN0ZGVycjoiLEEuZ2V0TW9kdWxlU3RkZXJyKCkpLHR5cGVvZiBBLmdldEV4Y2VwdGlvbk1lc3NhZ2U8InUiP2NvbnNvbGUuZXJyb3IoImV4Y2VwdGlvbjoiLEEuZ2V0RXhjZXB0aW9uTWVzc2FnZShCKSk6Y29uc29sZS5lcnJvcigiQnVpbGQgbW9kdWxlIGluIERlYnVnIG1vZGUgZm9yIGV4Y2VwdGlvbiBtZXNzYWdlIGluZm9ybWF0aW9uLiIpKSxCfWZpbmFsbHl7QS5zdGFja1Jlc3RvcmUocil9bGV0IG89QS5nZXRNb2R1bGVTdGRvdXQoKSxuPUEuZ2V0TW9kdWxlU3RkZXJyKCksRT1bXTtyZXR1cm4gZSE9bnVsbCYmZS5sZW5ndGg+MCYmZz09PTAmJmUuZm9yRWFjaChmdW5jdGlvbihCLHMpe2xldCBDPW51bGw7c3dpdGNoKEIudHlwZSl7Y2FzZSBkLlRleHRTdHJlYW06e2xldCBhPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksZj1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsYSxRKTtDPXtkYXRhOkZlLmRlY29kZShmKX07YnJlYWt9Y2FzZSBkLkpzb25Db21wYXRpYmxlOntsZXQgYT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLGY9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLGEsUSk7Qz1KU09OLnBhcnNlKEZlLmRlY29kZShmKSk7YnJlYWt9Y2FzZSBkLkJpbmFyeVN0cmVhbTp7bGV0IGE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKTtDPXtkYXRhOk5lKEEsYSxRKX07YnJlYWt9Y2FzZSBkLlRleHRGaWxlOntDPXtwYXRoOkIuZGF0YS5wYXRoLGRhdGE6QS5mc19yZWFkRmlsZShCLmRhdGEucGF0aCx7ZW5jb2Rpbmc6InV0ZjgifSl9O2JyZWFrfWNhc2UgZC5CaW5hcnlGaWxlOntDPXtwYXRoOkIuZGF0YS5wYXRoLGRhdGE6ZnIoQSxCLmRhdGEucGF0aCl9O2JyZWFrfWNhc2UgZC5JbWFnZTp7bGV0IGE9dUEoQSxzKTthLmRhdGE9UyhBLHMsMCxhLmltYWdlVHlwZS5jb21wb25lbnRUeXBlKSxhLmRpcmVjdGlvbj1TKEEscywxLFYuRmxvYXQ2NCksYS5tZXRhZGF0YT1uZXcgTWFwKGEubWV0YWRhdGEpLEM9YTticmVha31jYXNlIGQuTWVzaDp7bGV0IGE9dUEoQSxzKTthLm51bWJlck9mUG9pbnRzPjA/YS5wb2ludHM9UyhBLHMsMCxhLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6YS5wb2ludHM9cShhLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZDZWxscz4wP2EuY2VsbHM9UyhBLHMsMSxhLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlKTphLmNlbGxzPXEoYS5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZQb2ludFBpeGVscz4wP2EucG9pbnREYXRhPVMoQSxzLDIsYS5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6YS5wb2ludERhdGE9cShhLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYS5udW1iZXJPZkNlbGxQaXhlbHM+MD9hLmNlbGxEYXRhPVMoQSxzLDMsYS5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTphLmNlbGxEYXRhPXEoYS5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQz1hO2JyZWFrfWNhc2UgZC5Qb2ludFNldDp7bGV0IGE9dUEoQSxzKTthLm51bWJlck9mUG9pbnRzPjA/YS5wb2ludHM9UyhBLHMsMCxhLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUpOmEucG9pbnRzPXEoYS5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYS5udW1iZXJPZlBvaW50UGl4ZWxzPjA/YS5wb2ludERhdGE9UyhBLHMsMSxhLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6YS5wb2ludERhdGE9cShhLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEM9YTticmVha31jYXNlIGQuVHJhbnNmb3JtTGlzdDp7bGV0IGE9dUEoQSxzKSxRPTA7YS5mb3JFYWNoKChmLGMpPT57Zi50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGYubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM+MCYmKGFbY10uZml4ZWRQYXJhbWV0ZXJzPVMoQSxzLFEsVi5GbG9hdDY0KSksUSs9MSxmLm51bWJlck9mUGFyYW1ldGVycz4wJiYoYVtjXS5wYXJhbWV0ZXJzPVMoQSxzLFEsZi50cmFuc2Zvcm1UeXBlLnBhcmFtZXRlcnNWYWx1ZVR5cGUpKSxRKz0xKX0pLEM9YTticmVha31jYXNlIGQuUG9seURhdGE6e2xldCBhPXVBKEEscyk7YS5udW1iZXJPZlBvaW50cz4wP2EucG9pbnRzPVMoQSxzLDAsVi5GbG9hdDMyKTphLnBvaW50cz1uZXcgRmxvYXQzMkFycmF5LGEudmVydGljZXNCdWZmZXJTaXplPjA/YS52ZXJ0aWNlcz1TKEEscywxLFUuVUludDMyKTphLnZlcnRpY2VzPW5ldyBVaW50MzJBcnJheSxhLmxpbmVzQnVmZmVyU2l6ZT4wP2EubGluZXM9UyhBLHMsMixVLlVJbnQzMik6YS5saW5lcz1uZXcgVWludDMyQXJyYXksYS5wb2x5Z29uc0J1ZmZlclNpemU+MD9hLnBvbHlnb25zPVMoQSxzLDMsVS5VSW50MzIpOmEucG9seWdvbnM9bmV3IFVpbnQzMkFycmF5LGEudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplPjA/YS50cmlhbmdsZVN0cmlwcz1TKEEscyw0LFUuVUludDMyKTphLnRyaWFuZ2xlU3RyaXBzPW5ldyBVaW50MzJBcnJheSxhLm51bWJlck9mUG9pbnRQaXhlbHM+MD9hLnBvaW50RGF0YT1TKEEscyw1LGEucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTphLnBvaW50RGF0YT1xKGEucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYS5udW1iZXJPZkNlbGxQaXhlbHM+MD9hLmNlbGxEYXRhPVMoQSxzLDYsYS5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6YS5jZWxsRGF0YT1xKGEucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDPWE7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgb3V0cHV0IEludGVyZmFjZVR5cGUiKX1sZXQgbD17dHlwZTpCLnR5cGUsZGF0YTpDfTtFLnB1c2gobCl9KSx7cmV0dXJuVmFsdWU6ZyxzdGRvdXQ6byxzdGRlcnI6bixvdXRwdXRzOkV9fXZhciBVZT1scjt2YXIgdXI9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI8InUiO2Z1bmN0aW9uIGRyKEEsdCl7aWYoQT09bnVsbClyZXR1cm5bXTtsZXQgZT1bXTtmb3IobGV0IEk9MDtJPEEubGVuZ3RoO0krKyl7bGV0IHI9RHIoQVtJXSx0KTtyIT09bnVsbCYmZS5wdXNoKHIpfXJldHVybiBlfWZ1bmN0aW9uIERyKEEsdCl7aWYoQT09bnVsbClyZXR1cm4gbnVsbDtsZXQgZT1udWxsO3JldHVybiBBLmJ1ZmZlciE9PXZvaWQgMD9lPUEuYnVmZmVyOkEuYnl0ZUxlbmd0aCE9PXZvaWQgMCYmKGU9QSksdXImJmUgaW5zdGFuY2VvZiBTaGFyZWRBcnJheUJ1ZmZlcj9udWxsOnQ/ZTplLnNsaWNlKDApfXZhciBHZT1kcjtmdW5jdGlvbiBocihBKXtyZXR1cm5bQS5kYXRhLEEuZGlyZWN0aW9uXX12YXIga2U9aHI7ZnVuY3Rpb24geXIoQSl7cmV0dXJuW0EucG9pbnRzLEEucG9pbnREYXRhLEEuY2VsbHMsQS5jZWxsRGF0YV19dmFyIExlPXlyO2Z1bmN0aW9uIG1yKEEpe3JldHVybltBLnBvaW50cyxBLnZlcnRpY2VzLEEubGluZXMsQS5wb2x5Z29ucyxBLnRyaWFuZ2xlU3RyaXBzLEEucG9pbnREYXRhLEEuY2VsbERhdGFdfXZhciBiZT1tcjthc3luYyBmdW5jdGlvbiB3cihBLHQsZSxJKXtsZXQgcj1VZShBLHQsZSxJKSxnPVtdO3JldHVybiByLm91dHB1dHMuZm9yRWFjaChmdW5jdGlvbihvKXtpZihvLnR5cGU9PT1kLkJpbmFyeVN0cmVhbXx8by50eXBlPT09ZC5CaW5hcnlGaWxlKXtsZXQgbj1vLmRhdGE7Zy5wdXNoKG4pfWVsc2UgaWYoby50eXBlPT09ZC5JbWFnZSl7bGV0IG49by5kYXRhO2cucHVzaCguLi5rZShuKSl9ZWxzZSBpZihvLnR5cGU9PT1kLk1lc2gpe2xldCBuPW8uZGF0YTtnLnB1c2goLi4uTGUobikpfWVsc2UgaWYoby50eXBlPT09ZC5Qb2x5RGF0YSl7bGV0IG49by5kYXRhO2cucHVzaCguLi5iZShuKSl9fSksX0EocixHZShnLCEwKSl9dmFyIEplPXdyO3ZhciBwcj17cnVuUGlwZWxpbmU6YXN5bmMgZnVuY3Rpb24oQSx0LGUsSSxyLGcpe2xldCBvPWF3YWl0IHBlKEEsdCxnKTtyZXR1cm4gYXdhaXQgSmUobyxlLEkscil9fTtGQShwcik7JTBBLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjolMEElMEFjb21saW5rL2Rpc3QvZXNtL2NvbWxpbmsubWpzOiUwQSAgKCoqJTBBICAgKiBAbGljZW5zZSUwQSAgICogQ29weXJpZ2h0IDIwMTkgR29vZ2xlIExMQyUwQSAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAlMEEgICAqKSUwQSovJTBBJztBSSh0SSk7ZXhwb3J0e29nIGFzIGRvd25zYW1wbGUsZWcgYXMgZG93bnNhbXBsZUJpblNocmluayxJZyBhcyBkb3duc2FtcGxlTGFiZWxJbWFnZSxnZyBhcyBkb3duc2FtcGxlU2lnbWEsYWcgYXMgZ2F1c3NpYW5LZXJuZWxSYWRpdXMsVCBhcyBnZXREZWZhdWx0V2ViV29ya2VyLEcgYXMgZ2V0UGlwZWxpbmVXb3JrZXJVcmwsTyBhcyBnZXRQaXBlbGluZXNCYXNlVXJsLHFhIGFzIHNldERlZmF1bHRXZWJXb3JrZXIsQUkgYXMgc2V0UGlwZWxpbmVXb3JrZXJVcmwsR2EgYXMgc2V0UGlwZWxpbmVzQmFzZVVybCxlZSBhcyB2ZXJzaW9ufTsKLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjoKCmNvbWxpbmsvZGlzdC9lc20vY29tbGluay5tanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKICAgKikKKi8K""" default_config = JsPackageConfig(default_js_module) js_package = JsPackage(default_config) diff --git a/packages/downsample/python/itkwasm-downsample-wasi/itkwasm_downsample_wasi/_version.py b/packages/downsample/python/itkwasm-downsample-wasi/itkwasm_downsample_wasi/_version.py index 29654eec0..2d986fc50 100644 --- a/packages/downsample/python/itkwasm-downsample-wasi/itkwasm_downsample_wasi/_version.py +++ b/packages/downsample/python/itkwasm-downsample-wasi/itkwasm_downsample_wasi/_version.py @@ -1 +1 @@ -__version__ = "1.8.0" +__version__ = "1.8.1" diff --git a/packages/downsample/python/itkwasm-downsample/itkwasm_downsample/_version.py b/packages/downsample/python/itkwasm-downsample/itkwasm_downsample/_version.py index 29654eec0..2d986fc50 100644 --- a/packages/downsample/python/itkwasm-downsample/itkwasm_downsample/_version.py +++ b/packages/downsample/python/itkwasm-downsample/itkwasm_downsample/_version.py @@ -1 +1 @@ -__version__ = "1.8.0" +__version__ = "1.8.1" diff --git a/packages/downsample/typescript/package.json b/packages/downsample/typescript/package.json index a7e6e73e1..040c5befa 100644 --- a/packages/downsample/typescript/package.json +++ b/packages/downsample/typescript/package.json @@ -1,6 +1,6 @@ { "name": "@itk-wasm/downsample", - "version": "1.8.0", + "version": "1.8.1", "description": "Pipelines for downsampling images.", "type": "module", "module": "./dist/index.js", diff --git a/packages/downsample/typescript/src/downsample-sigma-node.ts b/packages/downsample/typescript/src/downsample-sigma-node.ts index 4f6cd0d30..b5980e7b2 100644 --- a/packages/downsample/typescript/src/downsample-sigma-node.ts +++ b/packages/downsample/typescript/src/downsample-sigma-node.ts @@ -2,13 +2,14 @@ import { InterfaceTypes, PipelineOutput, PipelineInput, - runPipelineNode -} from 'itk-wasm' + runPipelineNode, +} from "itk-wasm"; -import DownsampleSigmaNodeOptions from './downsample-sigma-node-options.js' -import DownsampleSigmaNodeResult from './downsample-sigma-node-result.js' +import DownsampleSigmaNodeOptions from "./downsample-sigma-node-options.js"; +import DownsampleSigmaNodeResult from "./downsample-sigma-node-result.js"; -import path from 'path' +import path from "path"; +import { fileURLToPath } from "url"; /** * Compute gaussian kernel sigma values in pixel units for downsampling. @@ -18,51 +19,53 @@ import path from 'path' * @returns {Promise} - result object */ async function downsampleSigmaNode( - options: DownsampleSigmaNodeOptions = { shrinkFactors: [2,2], } -) : Promise { - + options: DownsampleSigmaNodeOptions = { shrinkFactors: [2, 2] } +): Promise { const desiredOutputs: Array = [ { type: InterfaceTypes.JsonCompatible }, - ] + ]; - const inputs: Array = [ - ] + const inputs: Array = []; - const args = [] + const args = []; // Inputs // Outputs - const sigmaName = '0' - args.push(sigmaName) + const sigmaName = "0"; + args.push(sigmaName); // Options - args.push('--memory-io') + args.push("--memory-io"); if (typeof options.shrinkFactors !== "undefined") { - if(options.shrinkFactors.length < 1) { - throw new Error('"shrink-factors" option must have a length > 1') + if (options.shrinkFactors.length < 1) { + throw new Error('"shrink-factors" option must have a length > 1'); } - args.push('--shrink-factors') + args.push("--shrink-factors"); options.shrinkFactors.forEach((value) => { - args.push(value.toString()) - - }) + args.push(value.toString()); + }); } - const pipelinePath = path.join(path.dirname(import.meta.url.substring(7)), 'pipelines', 'downsample-sigma') + const pipelinePath = path.join( + path.dirname(fileURLToPath(import.meta.url)), + "pipelines", + "downsample-sigma" + ); - const { - returnValue, - stderr, - outputs - } = await runPipelineNode(pipelinePath, args, desiredOutputs, inputs) + const { returnValue, stderr, outputs } = await runPipelineNode( + pipelinePath, + args, + desiredOutputs, + inputs + ); if (returnValue !== 0 && stderr !== "") { - throw new Error(stderr) + throw new Error(stderr); } const result = { sigma: outputs[0]?.data as number[], - } - return result + }; + return result; } -export default downsampleSigmaNode +export default downsampleSigmaNode; diff --git a/packages/downsample/typescript/src/gaussian-kernel-radius-node.ts b/packages/downsample/typescript/src/gaussian-kernel-radius-node.ts index 6aff122d9..626d5470d 100644 --- a/packages/downsample/typescript/src/gaussian-kernel-radius-node.ts +++ b/packages/downsample/typescript/src/gaussian-kernel-radius-node.ts @@ -2,13 +2,14 @@ import { InterfaceTypes, PipelineOutput, PipelineInput, - runPipelineNode -} from 'itk-wasm' + runPipelineNode, +} from "itk-wasm"; -import GaussianKernelRadiusNodeOptions from './gaussian-kernel-radius-node-options.js' -import GaussianKernelRadiusNodeResult from './gaussian-kernel-radius-node-result.js' +import GaussianKernelRadiusNodeOptions from "./gaussian-kernel-radius-node-options.js"; +import GaussianKernelRadiusNodeResult from "./gaussian-kernel-radius-node-result.js"; -import path from 'path' +import path from "path"; +import { fileURLToPath } from "url"; /** * Radius in pixels required for effective discrete gaussian filtering. @@ -18,70 +19,69 @@ import path from 'path' * @returns {Promise} - result object */ async function gaussianKernelRadiusNode( - options: GaussianKernelRadiusNodeOptions = { size: [1,1], sigma: [1,1], } -) : Promise { - + options: GaussianKernelRadiusNodeOptions = { size: [1, 1], sigma: [1, 1] } +): Promise { const desiredOutputs: Array = [ { type: InterfaceTypes.JsonCompatible }, - ] + ]; - const inputs: Array = [ - ] + const inputs: Array = []; - const args = [] + const args = []; // Inputs // Outputs - const radiusName = '0' - args.push(radiusName) + const radiusName = "0"; + args.push(radiusName); // Options - args.push('--memory-io') - if (typeof options.size !== "undefined") { - if(options.size.length < 1) { - throw new Error('"size" option must have a length > 1') + args.push("--memory-io"); + if (options.size) { + if (options.size.length < 1) { + throw new Error('"size" option must have a length > 1'); } - args.push('--size') + args.push("--size"); options.size.forEach((value) => { - args.push(value.toString()) - - }) + args.push(value.toString()); + }); } - if (typeof options.sigma !== "undefined") { - if(options.sigma.length < 1) { - throw new Error('"sigma" option must have a length > 1') + if (options.sigma) { + if (options.sigma.length < 1) { + throw new Error('"sigma" option must have a length > 1'); } - args.push('--sigma') + args.push("--sigma"); options.sigma.forEach((value) => { - args.push(value.toString()) - - }) + args.push(value.toString()); + }); } - if (typeof options.maxKernelWidth !== "undefined") { - args.push('--max-kernel-width', options.maxKernelWidth.toString()) - + if (options.maxKernelWidth) { + args.push("--max-kernel-width", options.maxKernelWidth.toString()); } - if (typeof options.maxKernelError !== "undefined") { - args.push('--max-kernel-error', options.maxKernelError.toString()) - + if (options.maxKernelError) { + args.push("--max-kernel-error", options.maxKernelError.toString()); } - const pipelinePath = path.join(path.dirname(import.meta.url.substring(7)), 'pipelines', 'gaussian-kernel-radius') - - const { - returnValue, - stderr, - outputs - } = await runPipelineNode(pipelinePath, args, desiredOutputs, inputs) + const pipelinePath = path.join( + path.dirname(fileURLToPath(import.meta.url)), + "pipelines", + "gaussian-kernel-radius" + ); + + const { returnValue, stderr, outputs } = await runPipelineNode( + pipelinePath, + args, + desiredOutputs, + inputs + ); if (returnValue !== 0 && stderr !== "") { - throw new Error(stderr) + throw new Error(stderr); } const result = { radius: outputs[0]?.data as number[], - } - return result + }; + return result; } -export default gaussianKernelRadiusNode +export default gaussianKernelRadiusNode; diff --git a/packages/mesh-io/package.json b/packages/mesh-io/package.json index 0ef6a782a..f0df01beb 100644 --- a/packages/mesh-io/package.json +++ b/packages/mesh-io/package.json @@ -1,6 +1,6 @@ { "name": "@itk-wasm/mesh-io-build", - "version": "1.7.0", + "version": "1.7.1", "private": true, "description": "scripts to generate @itk-wasm/compare-stringify itk-wasm artifacts.", "type": "module", diff --git a/packages/mesh-io/pixi.toml b/packages/mesh-io/pixi.toml index 37df2650f..2afc34df3 100644 --- a/packages/mesh-io/pixi.toml +++ b/packages/mesh-io/pixi.toml @@ -1,5 +1,5 @@ -[project] -authors = ["Matt McCormick "] +[workspace] +authors = ["Matt McCormick "] channels = ["conda-forge"] description = "Input and output for scientific and medical mesh file formats." name = "mesh-io" diff --git a/packages/mesh-io/python/itkwasm-mesh-io-emscripten/itkwasm_mesh_io_emscripten/_version.py b/packages/mesh-io/python/itkwasm-mesh-io-emscripten/itkwasm_mesh_io_emscripten/_version.py index 14d9d2f58..3c1e9cbd3 100644 --- a/packages/mesh-io/python/itkwasm-mesh-io-emscripten/itkwasm_mesh_io_emscripten/_version.py +++ b/packages/mesh-io/python/itkwasm-mesh-io-emscripten/itkwasm_mesh_io_emscripten/_version.py @@ -1 +1 @@ -__version__ = "1.7.0" +__version__ = "1.7.1" diff --git a/packages/mesh-io/python/itkwasm-mesh-io-emscripten/itkwasm_mesh_io_emscripten/js_package.py b/packages/mesh-io/python/itkwasm-mesh-io-emscripten/itkwasm_mesh_io_emscripten/js_package.py index f05418a44..07bfde747 100644 --- a/packages/mesh-io/python/itkwasm-mesh-io-emscripten/itkwasm_mesh_io_emscripten/js_package.py +++ b/packages/mesh-io/python/itkwasm-mesh-io-emscripten/itkwasm_mesh_io_emscripten/js_package.py @@ -3,6 +3,6 @@ from itkwasm.pyodide import JsPackageConfig, JsPackage from ._version import __version__ -default_js_module = """data:text/javascript;base64,dmFyIEtyPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIganI9KEEsZSk9Pntmb3IodmFyIHQgaW4gZSlLcihBLHQse2dldDplW3RdLGVudW1lcmFibGU6ITB9KX07dmFyIHZyPW5ldyBNYXAoW1sidnRrIiwidnRrIl0sWyJieXUiLCJieXUiXSxbImZzYSIsImZyZWUtc3VyZmVyLWFzY2lpIl0sWyJmc2IiLCJmcmVlLXN1cmZlci1iaW5hcnkiXSxbIm16MyIsIm16MyJdLFsib2JqIiwib2JqIl0sWyJvZmYiLCJvZmYiXSxbInN0bCIsInN0bCJdLFsic3djIiwic3djIl0sWyJpd20iLCJ3YXNtIl0sWyJpd20uY2JvciIsIndhc20iXSxbIml3bS5jYm9yLnpzdCIsIndhc20tenN0ZCJdXSksWD12cjt2YXIgWnI9bmV3IE1hcChbWyJ2dGsiLCJ2dGsiXSxbIm9iaiIsIm9iaiJdLFsib2ZmIiwib2ZmIl0sWyJtejMiLCJtejMiXSxbIml3bSIsIndhc20iXSxbIml3bS5jYm9yIiwid2FzbSJdLFsiaXdtLmNib3IuenN0Iiwid2FzbS16c3RkIl1dKSxfPVpyO3ZhciBWcj17SW50ODoiaW50OCIsVUludDg6InVpbnQ4IixJbnQxNjoiaW50MTYiLFVJbnQxNjoidWludDE2IixJbnQzMjoiaW50MzIiLFVJbnQzMjoidWludDMyIixJbnQ2NDoiaW50NjQiLFVJbnQ2NDoidWludDY0IixTaXplVmFsdWVUeXBlOiJ1aW50NjQiLElkZW50aWZpZXJUeXBlOiJ1aW50NjQiLEluZGV4VmFsdWVUeXBlOiJpbnQ2NCIsT2Zmc2V0VmFsdWVUeXBlOiJpbnQ2NCJ9LEc9VnI7dmFyIHpyPXtGbG9hdDMyOiJmbG9hdDMyIixGbG9hdDY0OiJmbG9hdDY0IixTcGFjZVByZWNpc2lvblR5cGU6ImZsb2F0NjQifSwkPXpyO2Z1bmN0aW9uIFhyKEEsZSl7bGV0IHQ9bnVsbDtzd2l0Y2goQSl7Y2FzZSBHLlVJbnQ4Ont0PW5ldyBVaW50OEFycmF5KGUpO2JyZWFrfWNhc2UgRy5JbnQ4Ont0PW5ldyBJbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBHLlVJbnQxNjp7dD1uZXcgVWludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBHLkludDE2Ont0PW5ldyBJbnQxNkFycmF5KGUpO2JyZWFrfWNhc2UgRy5VSW50MzI6e3Q9bmV3IFVpbnQzMkFycmF5KGUpO2JyZWFrfWNhc2UgRy5JbnQzMjp7dD1uZXcgSW50MzJBcnJheShlKTticmVha31jYXNlIEcuVUludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdVaW50NjRBcnJheT09ImZ1bmN0aW9uIj90PW5ldyBCaWdVaW50NjRBcnJheShlKTp0PW5ldyBVaW50OEFycmF5KGUpO2JyZWFrfWNhc2UgRy5JbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnSW50NjRBcnJheT09ImZ1bmN0aW9uIj90PW5ldyBCaWdJbnQ2NEFycmF5KGUpOnQ9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSAkLkZsb2F0MzI6e3Q9bmV3IEZsb2F0MzJBcnJheShlKTticmVha31jYXNlICQuRmxvYXQ2NDp7dD1uZXcgRmxvYXQ2NEFycmF5KGUpO2JyZWFrfWNhc2UibnVsbCI6e3Q9bnVsbDticmVha31jYXNlIG51bGw6e3Q9bnVsbDticmVha31kZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVHlwZSBpcyBub3Qgc3VwcG9ydGVkIGFzIGEgVHlwZWRBcnJheSIpfXJldHVybiB0fXZhciB4PVhyO2Z1bmN0aW9uIF9yKEEpe2xldCBlPUEuc2xpY2UoKEEubGFzdEluZGV4T2YoIi4iKS0xPj4+MCkrMik7aWYoZS50b0xvd2VyQ2FzZSgpPT09Imd6Iil7bGV0IHQ9QS5zbGljZSgwLC0zKS5sYXN0SW5kZXhPZigiLiIpO2U9QS5zbGljZSgodC0xPj4+MCkrMil9ZWxzZSBpZihlLnRvTG93ZXJDYXNlKCk9PT0iY2JvciIpe2xldCB0PUEuc2xpY2UoMCwtNSkubGFzdEluZGV4T2YoIi4iKTtlPUEuc2xpY2UoKHQtMT4+PjApKzIpfWVsc2UgaWYoZS50b0xvd2VyQ2FzZSgpPT09InpzdCIpe2xldCB0PUEuc2xpY2UoMCwtMTApLmxhc3RJbmRleE9mKCIuIik7ZT1BLnNsaWNlKCh0LTE+Pj4wKSsyKX1lbHNlIGlmKGUudG9Mb3dlckNhc2UoKT09PSJ6aXAiKXtsZXQgdD1BLnNsaWNlKDAsLTQpLmxhc3RJbmRleE9mKCIuIik7ZT1BLnNsaWNlKCh0LTE+Pj4wKSsyKX1yZXR1cm4gZX12YXIgVD1fcjt2YXIgJHI9e1RleHRGaWxlOiJUZXh0RmlsZSIsQmluYXJ5RmlsZToiQmluYXJ5RmlsZSIsVGV4dFN0cmVhbToiVGV4dFN0cmVhbSIsQmluYXJ5U3RyZWFtOiJCaW5hcnlTdHJlYW0iLEltYWdlOiJJbWFnZSIsUG9pbnRTZXQ6IlBvaW50U2V0IixNZXNoOiJNZXNoIixQb2x5RGF0YToiUG9seURhdGEiLFRyYW5zZm9ybUxpc3Q6IlRyYW5zZm9ybUxpc3QiLEpzb25Db21wYXRpYmxlOiJKc29uQ29tcGF0aWJsZSJ9LFE9JHI7dmFyIEZ0PVN5bWJvbCgiQ29tbGluay5wcm94eSIpLEFpPVN5bWJvbCgiQ29tbGluay5lbmRwb2ludCIpLGdlPVN5bWJvbCgiQ29tbGluay5yZWxlYXNlUHJveHkiKSxzZT1TeW1ib2woIkNvbWxpbmsuZmluYWxpemVyIiksT0E9U3ltYm9sKCJDb21saW5rLnRocm93biIpLGt0PUE9PnR5cGVvZiBBPT0ib2JqZWN0IiYmQSE9PW51bGx8fHR5cGVvZiBBPT0iZnVuY3Rpb24iLGVpPXtjYW5IYW5kbGU6QT0+a3QoQSkmJkFbRnRdLHNlcmlhbGl6ZShBKXtsZXR7cG9ydDE6ZSxwb3J0Mjp0fT1uZXcgTWVzc2FnZUNoYW5uZWw7cmV0dXJuIGJ0KEEsZSksW3QsW3RdXX0sZGVzZXJpYWxpemUoQSl7cmV0dXJuIEEuc3RhcnQoKSxCZShBKX19LHRpPXtjYW5IYW5kbGU6QT0+a3QoQSkmJk9BIGluIEEsc2VyaWFsaXplKHt2YWx1ZTpBfSl7bGV0IGU7cmV0dXJuIEEgaW5zdGFuY2VvZiBFcnJvcj9lPXtpc0Vycm9yOiEwLHZhbHVlOnttZXNzYWdlOkEubWVzc2FnZSxuYW1lOkEubmFtZSxzdGFjazpBLnN0YWNrfX06ZT17aXNFcnJvcjohMSx2YWx1ZTpBfSxbZSxbXV19LGRlc2VyaWFsaXplKEEpe3Rocm93IEEuaXNFcnJvcj9PYmplY3QuYXNzaWduKG5ldyBFcnJvcihBLnZhbHVlLm1lc3NhZ2UpLEEudmFsdWUpOkEudmFsdWV9fSxVdD1uZXcgTWFwKFtbInByb3h5IixlaV0sWyJ0aHJvdyIsdGldXSk7ZnVuY3Rpb24gcmkoQSxlKXtmb3IobGV0IHQgb2YgQSlpZihlPT09dHx8dD09PSIqInx8dCBpbnN0YW5jZW9mIFJlZ0V4cCYmdC50ZXN0KGUpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIGJ0KEEsZT1nbG9iYWxUaGlzLHQ9WyIqIl0pe2UuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gaShvKXtpZighb3x8IW8uZGF0YSlyZXR1cm47aWYoIXJpKHQsby5vcmlnaW4pKXtjb25zb2xlLndhcm4oYEludmFsaWQgb3JpZ2luICcke28ub3JpZ2lufScgZm9yIGNvbWxpbmsgcHJveHlgKTtyZXR1cm59bGV0e2lkOnIsdHlwZTphLHBhdGg6Q309T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0sby5kYXRhKSxwPShvLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKEFBKSxCO3RyeXtsZXQgbj1DLnNsaWNlKDAsLTEpLnJlZHVjZSgobCxzKT0+bFtzXSxBKSxnPUMucmVkdWNlKChsLHMpPT5sW3NdLEEpO3N3aXRjaChhKXtjYXNlIkdFVCI6Qj1nO2JyZWFrO2Nhc2UiU0VUIjpuW0Muc2xpY2UoLTEpWzBdXT1BQShvLmRhdGEudmFsdWUpLEI9ITA7YnJlYWs7Y2FzZSJBUFBMWSI6Qj1nLmFwcGx5KG4scCk7YnJlYWs7Y2FzZSJDT05TVFJVQ1QiOntsZXQgbD1uZXcgZyguLi5wKTtCPXNpKGwpfWJyZWFrO2Nhc2UiRU5EUE9JTlQiOntsZXR7cG9ydDE6bCxwb3J0MjpzfT1uZXcgTWVzc2FnZUNoYW5uZWw7YnQoQSxzKSxCPUNlKGwsW2xdKX1icmVhaztjYXNlIlJFTEVBU0UiOkI9dm9pZCAwO2JyZWFrO2RlZmF1bHQ6cmV0dXJufX1jYXRjaChuKXtCPXt2YWx1ZTpuLFtPQV06MH19UHJvbWlzZS5yZXNvbHZlKEIpLmNhdGNoKG49Pih7dmFsdWU6bixbT0FdOjB9KSkudGhlbihuPT57bGV0W2csbF09eEEobik7ZS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZykse2lkOnJ9KSxsKSxhPT09IlJFTEVBU0UiJiYoZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixpKSxOdChlKSxzZSBpbiBBJiZ0eXBlb2YgQVtzZV09PSJmdW5jdGlvbiImJkFbc2VdKCkpfSkuY2F0Y2gobj0+e2xldFtnLGxdPXhBKHt2YWx1ZTpuZXcgVHlwZUVycm9yKCJVbnNlcmlhbGl6YWJsZSByZXR1cm4gdmFsdWUiKSxbT0FdOjB9KTtlLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnKSx7aWQ6cn0pLGwpfSl9KSxlLnN0YXJ0JiZlLnN0YXJ0KCl9ZnVuY3Rpb24gaWkoQSl7cmV0dXJuIEEuY29uc3RydWN0b3IubmFtZT09PSJNZXNzYWdlUG9ydCJ9ZnVuY3Rpb24gTnQoQSl7aWkoQSkmJkEuY2xvc2UoKX1mdW5jdGlvbiBCZShBLGUpe3JldHVybiBJZShBLFtdLGUpfWZ1bmN0aW9uIFBBKEEpe2lmKEEpdGhyb3cgbmV3IEVycm9yKCJQcm94eSBoYXMgYmVlbiByZWxlYXNlZCBhbmQgaXMgbm90IHVzZWFibGUiKX1mdW5jdGlvbiBHdChBKXtyZXR1cm4gckEoQSx7dHlwZToiUkVMRUFTRSJ9KS50aGVuKCgpPT57TnQoQSl9KX12YXIgTEE9bmV3IFdlYWtNYXAsSkE9IkZpbmFsaXphdGlvblJlZ2lzdHJ5ImluIGdsb2JhbFRoaXMmJm5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShBPT57bGV0IGU9KExBLmdldChBKXx8MCktMTtMQS5zZXQoQSxlKSxlPT09MCYmR3QoQSl9KTtmdW5jdGlvbiBvaShBLGUpe2xldCB0PShMQS5nZXQoZSl8fDApKzE7TEEuc2V0KGUsdCksSkEmJkpBLnJlZ2lzdGVyKEEsZSxBKX1mdW5jdGlvbiBuaShBKXtKQSYmSkEudW5yZWdpc3RlcihBKX1mdW5jdGlvbiBJZShBLGU9W10sdD1mdW5jdGlvbigpe30pe2xldCBpPSExLG89bmV3IFByb3h5KHQse2dldChyLGEpe2lmKFBBKGkpLGE9PT1nZSlyZXR1cm4oKT0+e25pKG8pLEd0KEEpLGk9ITB9O2lmKGE9PT0idGhlbiIpe2lmKGUubGVuZ3RoPT09MClyZXR1cm57dGhlbjooKT0+b307bGV0IEM9ckEoQSx7dHlwZToiR0VUIixwYXRoOmUubWFwKHA9PnAudG9TdHJpbmcoKSl9KS50aGVuKEFBKTtyZXR1cm4gQy50aGVuLmJpbmQoQyl9cmV0dXJuIEllKEEsWy4uLmUsYV0pfSxzZXQocixhLEMpe1BBKGkpO2xldFtwLEJdPXhBKEMpO3JldHVybiByQShBLHt0eXBlOiJTRVQiLHBhdGg6Wy4uLmUsYV0ubWFwKG49Pm4udG9TdHJpbmcoKSksdmFsdWU6cH0sQikudGhlbihBQSl9LGFwcGx5KHIsYSxDKXtQQShpKTtsZXQgcD1lW2UubGVuZ3RoLTFdO2lmKHA9PT1BaSlyZXR1cm4gckEoQSx7dHlwZToiRU5EUE9JTlQifSkudGhlbihBQSk7aWYocD09PSJiaW5kIilyZXR1cm4gSWUoQSxlLnNsaWNlKDAsLTEpKTtsZXRbQixuXT1SdChDKTtyZXR1cm4gckEoQSx7dHlwZToiQVBQTFkiLHBhdGg6ZS5tYXAoZz0+Zy50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Qn0sbikudGhlbihBQSl9LGNvbnN0cnVjdChyLGEpe1BBKGkpO2xldFtDLHBdPVJ0KGEpO3JldHVybiByQShBLHt0eXBlOiJDT05TVFJVQ1QiLHBhdGg6ZS5tYXAoQj0+Qi50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Q30scCkudGhlbihBQSl9fSk7cmV0dXJuIG9pKG8sQSksb31mdW5jdGlvbiBhaShBKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxBKX1mdW5jdGlvbiBSdChBKXtsZXQgZT1BLm1hcCh4QSk7cmV0dXJuW2UubWFwKHQ9PnRbMF0pLGFpKGUubWFwKHQ9PnRbMV0pKV19dmFyIE10PW5ldyBXZWFrTWFwO2Z1bmN0aW9uIENlKEEsZSl7cmV0dXJuIE10LnNldChBLGUpLEF9ZnVuY3Rpb24gc2koQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7W0Z0XTohMH0pfWZ1bmN0aW9uIHhBKEEpe2ZvcihsZXRbZSx0XW9mIFV0KWlmKHQuY2FuSGFuZGxlKEEpKXtsZXRbaSxvXT10LnNlcmlhbGl6ZShBKTtyZXR1cm5be3R5cGU6IkhBTkRMRVIiLG5hbWU6ZSx2YWx1ZTppfSxvXX1yZXR1cm5be3R5cGU6IlJBVyIsdmFsdWU6QX0sTXQuZ2V0KEEpfHxbXV19ZnVuY3Rpb24gQUEoQSl7c3dpdGNoKEEudHlwZSl7Y2FzZSJIQU5ETEVSIjpyZXR1cm4gVXQuZ2V0KEEubmFtZSkuZGVzZXJpYWxpemUoQS52YWx1ZSk7Y2FzZSJSQVciOnJldHVybiBBLnZhbHVlfX1mdW5jdGlvbiByQShBLGUsdCl7cmV0dXJuIG5ldyBQcm9taXNlKGk9PntsZXQgbz1JaSgpO0EuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gcihhKXshYS5kYXRhfHwhYS5kYXRhLmlkfHxhLmRhdGEuaWQhPT1vfHwoQS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixyKSxpKGEuZGF0YSkpfSksQS5zdGFydCYmQS5zdGFydCgpLEEucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7aWQ6b30sZSksdCl9KX1mdW5jdGlvbiBJaSgpe3JldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikudG9TdHJpbmcoMTYpKS5qb2luKCItIil9ZnVuY3Rpb24gZkEoQSxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseShlLGFyZ3VtZW50cyl9fXZhcnt0b1N0cmluZzpnaX09T2JqZWN0LnByb3RvdHlwZSx7Z2V0UHJvdG90eXBlT2Y6RWV9PU9iamVjdCx7aXRlcmF0b3I6SEEsdG9TdHJpbmdUYWc6T3R9PVN5bWJvbCxUQT0oQT0+ZT0+e2xldCB0PWdpLmNhbGwoZSk7cmV0dXJuIEFbdF18fChBW3RdPXQuc2xpY2UoOCwtMSkudG9Mb3dlckNhc2UoKSl9KShPYmplY3QuY3JlYXRlKG51bGwpKSxPPUE9PihBPUEudG9Mb3dlckNhc2UoKSxlPT5UQShlKT09PUEpLHFBPUE9PmU9PnR5cGVvZiBlPT09QSx7aXNBcnJheTpvQX09QXJyYXksaUE9cUEoInVuZGVmaW5lZCIpO2Z1bmN0aW9uIGNBKEEpe3JldHVybiBBIT09bnVsbCYmIWlBKEEpJiZBLmNvbnN0cnVjdG9yIT09bnVsbCYmIWlBKEEuY29uc3RydWN0b3IpJiZNKEEuY29uc3RydWN0b3IuaXNCdWZmZXIpJiZBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKEEpfXZhciBMdD1PKCJBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uIEJpKEEpe2xldCBlO3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXc/ZT1BcnJheUJ1ZmZlci5pc1ZpZXcoQSk6ZT1BJiZBLmJ1ZmZlciYmTHQoQS5idWZmZXIpLGV9dmFyIENpPXFBKCJzdHJpbmciKSxNPXFBKCJmdW5jdGlvbiIpLEp0PXFBKCJudW1iZXIiKSxtQT1BPT5BIT09bnVsbCYmdHlwZW9mIEE9PSJvYmplY3QiLFFpPUE9PkE9PT0hMHx8QT09PSExLFlBPUE9PntpZihUQShBKSE9PSJvYmplY3QiKXJldHVybiExO2xldCBlPUVlKEEpO3JldHVybihlPT09bnVsbHx8ZT09PU9iamVjdC5wcm90b3R5cGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKT09PW51bGwpJiYhKE90IGluIEEpJiYhKEhBIGluIEEpfSxFaT1BPT57aWYoIW1BKEEpfHxjQShBKSlyZXR1cm4hMTt0cnl7cmV0dXJuIE9iamVjdC5rZXlzKEEpLmxlbmd0aD09PTAmJk9iamVjdC5nZXRQcm90b3R5cGVPZihBKT09PU9iamVjdC5wcm90b3R5cGV9Y2F0Y2h7cmV0dXJuITF9fSxsaT1PKCJEYXRlIikscGk9TygiRmlsZSIpLHVpPU8oIkJsb2IiKSxmaT1PKCJGaWxlTGlzdCIpLGNpPUE9Pm1BKEEpJiZNKEEucGlwZSksbWk9QT0+e2xldCBlO3JldHVybiBBJiYodHlwZW9mIEZvcm1EYXRhPT0iZnVuY3Rpb24iJiZBIGluc3RhbmNlb2YgRm9ybURhdGF8fE0oQS5hcHBlbmQpJiYoKGU9VEEoQSkpPT09ImZvcm1kYXRhInx8ZT09PSJvYmplY3QiJiZNKEEudG9TdHJpbmcpJiZBLnRvU3RyaW5nKCk9PT0iW29iamVjdCBGb3JtRGF0YV0iKSl9LGRpPU8oIlVSTFNlYXJjaFBhcmFtcyIpLFt5aSxoaSx3aSxEaV09WyJSZWFkYWJsZVN0cmVhbSIsIlJlcXVlc3QiLCJSZXNwb25zZSIsIkhlYWRlcnMiXS5tYXAoTyksU2k9QT0+QS50cmltP0EudHJpbSgpOkEucmVwbGFjZSgvXltcc1x1RkVGRlx4QTBdK3xbXHNcdUZFRkZceEEwXSskL2csIiIpO2Z1bmN0aW9uIGRBKEEsZSx7YWxsT3duS2V5czp0PSExfT17fSl7aWYoQT09PW51bGx8fHR5cGVvZiBBPiJ1IilyZXR1cm47bGV0IGksbztpZih0eXBlb2YgQSE9Im9iamVjdCImJihBPVtBXSksb0EoQSkpZm9yKGk9MCxvPUEubGVuZ3RoO2k8bztpKyspZS5jYWxsKG51bGwsQVtpXSxpLEEpO2Vsc2V7aWYoY0EoQSkpcmV0dXJuO2xldCByPXQ/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQSk6T2JqZWN0LmtleXMoQSksYT1yLmxlbmd0aCxDO2ZvcihpPTA7aTxhO2krKylDPXJbaV0sZS5jYWxsKG51bGwsQVtDXSxDLEEpfX1mdW5jdGlvbiB4dChBLGUpe2lmKGNBKEEpKXJldHVybiBudWxsO2U9ZS50b0xvd2VyQ2FzZSgpO2xldCB0PU9iamVjdC5rZXlzKEEpLGk9dC5sZW5ndGgsbztmb3IoO2ktLSA+MDspaWYobz10W2ldLGU9PT1vLnRvTG93ZXJDYXNlKCkpcmV0dXJuIG87cmV0dXJuIG51bGx9dmFyIGVBPXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzpnbG9iYWwsWXQ9QT0+IWlBKEEpJiZBIT09ZUE7ZnVuY3Rpb24gUWUoKXtsZXR7Y2FzZWxlc3M6QSxza2lwVW5kZWZpbmVkOmV9PVl0KHRoaXMpJiZ0aGlzfHx7fSx0PXt9LGk9KG8scik9PntsZXQgYT1BJiZ4dCh0LHIpfHxyO1lBKHRbYV0pJiZZQShvKT90W2FdPVFlKHRbYV0sbyk6WUEobyk/dFthXT1RZSh7fSxvKTpvQShvKT90W2FdPW8uc2xpY2UoKTooIWV8fCFpQShvKSkmJih0W2FdPW8pfTtmb3IobGV0IG89MCxyPWFyZ3VtZW50cy5sZW5ndGg7bzxyO28rKylhcmd1bWVudHNbb10mJmRBKGFyZ3VtZW50c1tvXSxpKTtyZXR1cm4gdH12YXIgUmk9KEEsZSx0LHthbGxPd25LZXlzOml9PXt9KT0+KGRBKGUsKG8scik9Pnt0JiZNKG8pP0Fbcl09ZkEobyx0KTpBW3JdPW99LHthbGxPd25LZXlzOml9KSxBKSxGaT1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLGtpPShBLGUsdCxpKT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUsaSksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTplLnByb3RvdHlwZX0pLHQmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsdCl9LFVpPShBLGUsdCxpKT0+e2xldCBvLHIsYSxDPXt9O2lmKGU9ZXx8e30sQT09bnVsbClyZXR1cm4gZTtkb3tmb3Iobz1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxyPW8ubGVuZ3RoO3ItLSA+MDspYT1vW3JdLCghaXx8aShhLEEsZSkpJiYhQ1thXSYmKGVbYV09QVthXSxDW2FdPSEwKTtBPXQhPT0hMSYmRWUoQSl9d2hpbGUoQSYmKCF0fHx0KEEsZSkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIGV9LGJpPShBLGUsdCk9PntBPVN0cmluZyhBKSwodD09PXZvaWQgMHx8dD5BLmxlbmd0aCkmJih0PUEubGVuZ3RoKSx0LT1lLmxlbmd0aDtsZXQgaT1BLmluZGV4T2YoZSx0KTtyZXR1cm4gaSE9PS0xJiZpPT09dH0sTmk9QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKG9BKEEpKXJldHVybiBBO2xldCBlPUEubGVuZ3RoO2lmKCFKdChlKSlyZXR1cm4gbnVsbDtsZXQgdD1uZXcgQXJyYXkoZSk7Zm9yKDtlLS0gPjA7KXRbZV09QVtlXTtyZXR1cm4gdH0sR2k9KEE9PmU9PkEmJmUgaW5zdGFuY2VvZiBBKSh0eXBlb2YgVWludDhBcnJheTwidSImJkVlKFVpbnQ4QXJyYXkpKSxNaT0oQSxlKT0+e2xldCBpPShBJiZBW0hBXSkuY2FsbChBKSxvO2Zvcig7KG89aS5uZXh0KCkpJiYhby5kb25lOyl7bGV0IHI9by52YWx1ZTtlLmNhbGwoQSxyWzBdLHJbMV0pfX0sV2k9KEEsZSk9PntsZXQgdCxpPVtdO2Zvcig7KHQ9QS5leGVjKGUpKSE9PW51bGw7KWkucHVzaCh0KTtyZXR1cm4gaX0sUGk9TygiSFRNTEZvcm1FbGVtZW50IiksT2k9QT0+QS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xzXShbYS16XGRdKShcdyopL2csZnVuY3Rpb24odCxpLG8pe3JldHVybiBpLnRvVXBwZXJDYXNlKCkrb30pLFB0PSgoe2hhc093blByb3BlcnR5OkF9KT0+KGUsdCk9PkEuY2FsbChlLHQpKShPYmplY3QucHJvdG90eXBlKSxMaT1PKCJSZWdFeHAiKSxIdD0oQSxlKT0+e2xldCB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEEpLGk9e307ZEEodCwobyxyKT0+e2xldCBhOyhhPWUobyxyLEEpKSE9PSExJiYoaVtyXT1hfHxvKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEEsaSl9LEppPUE9PntIdChBLChlLHQpPT57aWYoTShBKSYmWyJhcmd1bWVudHMiLCJjYWxsZXIiLCJjYWxsZWUiXS5pbmRleE9mKHQpIT09LTEpcmV0dXJuITE7bGV0IGk9QVt0XTtpZihNKGkpKXtpZihlLmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIGUpe2Uud3JpdGFibGU9ITE7cmV0dXJufWUuc2V0fHwoZS5zZXQ9KCk9Pnt0aHJvdyBFcnJvcigiQ2FuIG5vdCByZXdyaXRlIHJlYWQtb25seSBtZXRob2QgJyIrdCsiJyIpfSl9fSl9LHhpPShBLGUpPT57bGV0IHQ9e30saT1vPT57by5mb3JFYWNoKHI9Pnt0W3JdPSEwfSl9O3JldHVybiBvQShBKT9pKEEpOmkoU3RyaW5nKEEpLnNwbGl0KGUpKSx0fSxZaT0oKT0+e30sSGk9KEEsZSk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOmU7ZnVuY3Rpb24gVGkoQSl7cmV0dXJuISEoQSYmTShBLmFwcGVuZCkmJkFbT3RdPT09IkZvcm1EYXRhIiYmQVtIQV0pfXZhciBxaT1BPT57bGV0IGU9bmV3IEFycmF5KDEwKSx0PShpLG8pPT57aWYobUEoaSkpe2lmKGUuaW5kZXhPZihpKT49MClyZXR1cm47aWYoY0EoaSkpcmV0dXJuIGk7aWYoISgidG9KU09OImluIGkpKXtlW29dPWk7bGV0IHI9b0EoaSk/W106e307cmV0dXJuIGRBKGksKGEsQyk9PntsZXQgcD10KGEsbysxKTshaUEocCkmJihyW0NdPXApfSksZVtvXT12b2lkIDAscn19cmV0dXJuIGl9O3JldHVybiB0KEEsMCl9LEtpPU8oIkFzeW5jRnVuY3Rpb24iKSxqaT1BPT5BJiYobUEoQSl8fE0oQSkpJiZNKEEudGhlbikmJk0oQS5jYXRjaCksVHQ9KChBLGUpPT5BP3NldEltbWVkaWF0ZTplPygodCxpKT0+KGVBLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCh7c291cmNlOm8sZGF0YTpyfSk9PntvPT09ZUEmJnI9PT10JiZpLmxlbmd0aCYmaS5zaGlmdCgpKCl9LCExKSxvPT57aS5wdXNoKG8pLGVBLnBvc3RNZXNzYWdlKHQsIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOnQ9PnNldFRpbWVvdXQodCkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsTShlQS5wb3N0TWVzc2FnZSkpLHZpPXR5cGVvZiBxdWV1ZU1pY3JvdGFzazwidSI/cXVldWVNaWNyb3Rhc2suYmluZChlQSk6dHlwZW9mIHByb2Nlc3M8InUiJiZwcm9jZXNzLm5leHRUaWNrfHxUdCxaaT1BPT5BIT1udWxsJiZNKEFbSEFdKSxFPXtpc0FycmF5Om9BLGlzQXJyYXlCdWZmZXI6THQsaXNCdWZmZXI6Y0EsaXNGb3JtRGF0YTptaSxpc0FycmF5QnVmZmVyVmlldzpCaSxpc1N0cmluZzpDaSxpc051bWJlcjpKdCxpc0Jvb2xlYW46UWksaXNPYmplY3Q6bUEsaXNQbGFpbk9iamVjdDpZQSxpc0VtcHR5T2JqZWN0OkVpLGlzUmVhZGFibGVTdHJlYW06eWksaXNSZXF1ZXN0OmhpLGlzUmVzcG9uc2U6d2ksaXNIZWFkZXJzOkRpLGlzVW5kZWZpbmVkOmlBLGlzRGF0ZTpsaSxpc0ZpbGU6cGksaXNCbG9iOnVpLGlzUmVnRXhwOkxpLGlzRnVuY3Rpb246TSxpc1N0cmVhbTpjaSxpc1VSTFNlYXJjaFBhcmFtczpkaSxpc1R5cGVkQXJyYXk6R2ksaXNGaWxlTGlzdDpmaSxmb3JFYWNoOmRBLG1lcmdlOlFlLGV4dGVuZDpSaSx0cmltOlNpLHN0cmlwQk9NOkZpLGluaGVyaXRzOmtpLHRvRmxhdE9iamVjdDpVaSxraW5kT2Y6VEEsa2luZE9mVGVzdDpPLGVuZHNXaXRoOmJpLHRvQXJyYXk6TmksZm9yRWFjaEVudHJ5Ok1pLG1hdGNoQWxsOldpLGlzSFRNTEZvcm06UGksaGFzT3duUHJvcGVydHk6UHQsaGFzT3duUHJvcDpQdCxyZWR1Y2VEZXNjcmlwdG9yczpIdCxmcmVlemVNZXRob2RzOkppLHRvT2JqZWN0U2V0OnhpLHRvQ2FtZWxDYXNlOk9pLG5vb3A6WWksdG9GaW5pdGVOdW1iZXI6SGksZmluZEtleTp4dCxnbG9iYWw6ZUEsaXNDb250ZXh0RGVmaW5lZDpZdCxpc1NwZWNDb21wbGlhbnRGb3JtOlRpLHRvSlNPTk9iamVjdDpxaSxpc0FzeW5jRm46S2ksaXNUaGVuYWJsZTpqaSxzZXRJbW1lZGlhdGU6VHQsYXNhcDp2aSxpc0l0ZXJhYmxlOlppfTtmdW5jdGlvbiBuQShBLGUsdCxpLG8pe0Vycm9yLmNhbGwodGhpcyksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrLHRoaXMubWVzc2FnZT1BLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsZSYmKHRoaXMuY29kZT1lKSx0JiYodGhpcy5jb25maWc9dCksaSYmKHRoaXMucmVxdWVzdD1pKSxvJiYodGhpcy5yZXNwb25zZT1vLHRoaXMuc3RhdHVzPW8uc3RhdHVzP28uc3RhdHVzOm51bGwpfUUuaW5oZXJpdHMobkEsRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzpFLnRvSlNPTk9iamVjdCh0aGlzLmNvbmZpZyksY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMuc3RhdHVzfX19KTt2YXIgcXQ9bkEucHJvdG90eXBlLEt0PXt9O1siRVJSX0JBRF9PUFRJT05fVkFMVUUiLCJFUlJfQkFEX09QVElPTiIsIkVDT05OQUJPUlRFRCIsIkVUSU1FRE9VVCIsIkVSUl9ORVRXT1JLIiwiRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUUyIsIkVSUl9ERVBSRUNBVEVEIiwiRVJSX0JBRF9SRVNQT05TRSIsIkVSUl9CQURfUkVRVUVTVCIsIkVSUl9DQU5DRUxFRCIsIkVSUl9OT1RfU1VQUE9SVCIsIkVSUl9JTlZBTElEX1VSTCJdLmZvckVhY2goQT0+e0t0W0FdPXt2YWx1ZTpBfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG5BLEt0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkocXQsImlzQXhpb3NFcnJvciIse3ZhbHVlOiEwfSk7bkEuZnJvbT0oQSxlLHQsaSxvLHIpPT57bGV0IGE9T2JqZWN0LmNyZWF0ZShxdCk7RS50b0ZsYXRPYmplY3QoQSxhLGZ1bmN0aW9uKG4pe3JldHVybiBuIT09RXJyb3IucHJvdG90eXBlfSxCPT5CIT09ImlzQXhpb3NFcnJvciIpO2xldCBDPUEmJkEubWVzc2FnZT9BLm1lc3NhZ2U6IkVycm9yIixwPWU9PW51bGwmJkE/QS5jb2RlOmU7cmV0dXJuIG5BLmNhbGwoYSxDLHAsdCxpLG8pLEEmJmEuY2F1c2U9PW51bGwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJjYXVzZSIse3ZhbHVlOkEsY29uZmlndXJhYmxlOiEwfSksYS5uYW1lPUEmJkEubmFtZXx8IkVycm9yIixyJiZPYmplY3QuYXNzaWduKGEsciksYX07dmFyIGg9bkE7dmFyIEtBPW51bGw7ZnVuY3Rpb24gbGUoQSl7cmV0dXJuIEUuaXNQbGFpbk9iamVjdChBKXx8RS5pc0FycmF5KEEpfWZ1bmN0aW9uIHZ0KEEpe3JldHVybiBFLmVuZHNXaXRoKEEsIltdIik/QS5zbGljZSgwLC0yKTpBfWZ1bmN0aW9uIGp0KEEsZSx0KXtyZXR1cm4gQT9BLmNvbmNhdChlKS5tYXAoZnVuY3Rpb24obyxyKXtyZXR1cm4gbz12dChvKSwhdCYmcj8iWyIrbysiXSI6b30pLmpvaW4odD8iLiI6IiIpOmV9ZnVuY3Rpb24gVmkoQSl7cmV0dXJuIEUuaXNBcnJheShBKSYmIUEuc29tZShsZSl9dmFyIHppPUUudG9GbGF0T2JqZWN0KEUse30sbnVsbCxmdW5jdGlvbihlKXtyZXR1cm4vXmlzW0EtWl0vLnRlc3QoZSl9KTtmdW5jdGlvbiBYaShBLGUsdCl7aWYoIUUuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7ZT1lfHxuZXcoS0F8fEZvcm1EYXRhKSx0PUUudG9GbGF0T2JqZWN0KHQse21ldGFUb2tlbnM6ITAsZG90czohMSxpbmRleGVzOiExfSwhMSxmdW5jdGlvbihmLHUpe3JldHVybiFFLmlzVW5kZWZpbmVkKHVbZl0pfSk7bGV0IGk9dC5tZXRhVG9rZW5zLG89dC52aXNpdG9yfHxuLHI9dC5kb3RzLGE9dC5pbmRleGVzLHA9KHQuQmxvYnx8dHlwZW9mIEJsb2I8InUiJiZCbG9iKSYmRS5pc1NwZWNDb21wbGlhbnRGb3JtKGUpO2lmKCFFLmlzRnVuY3Rpb24obykpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBCKEkpe2lmKEk9PT1udWxsKXJldHVybiIiO2lmKEUuaXNEYXRlKEkpKXJldHVybiBJLnRvSVNPU3RyaW5nKCk7aWYoRS5pc0Jvb2xlYW4oSSkpcmV0dXJuIEkudG9TdHJpbmcoKTtpZighcCYmRS5pc0Jsb2IoSSkpdGhyb3cgbmV3IGgoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7cmV0dXJuIEUuaXNBcnJheUJ1ZmZlcihJKXx8RS5pc1R5cGVkQXJyYXkoSSk/cCYmdHlwZW9mIEJsb2I9PSJmdW5jdGlvbiI/bmV3IEJsb2IoW0ldKTpCdWZmZXIuZnJvbShJKTpJfWZ1bmN0aW9uIG4oSSxmLHUpe2xldCB3PUk7aWYoSSYmIXUmJnR5cGVvZiBJPT0ib2JqZWN0Iil7aWYoRS5lbmRzV2l0aChmLCJ7fSIpKWY9aT9mOmYuc2xpY2UoMCwtMiksST1KU09OLnN0cmluZ2lmeShJKTtlbHNlIGlmKEUuaXNBcnJheShJKSYmVmkoSSl8fChFLmlzRmlsZUxpc3QoSSl8fEUuZW5kc1dpdGgoZiwiW10iKSkmJih3PUUudG9BcnJheShJKSkpcmV0dXJuIGY9dnQoZiksdy5mb3JFYWNoKGZ1bmN0aW9uKFMsTil7IShFLmlzVW5kZWZpbmVkKFMpfHxTPT09bnVsbCkmJmUuYXBwZW5kKGE9PT0hMD9qdChbZl0sTixyKTphPT09bnVsbD9mOmYrIltdIixCKFMpKX0pLCExfXJldHVybiBsZShJKT8hMDooZS5hcHBlbmQoanQodSxmLHIpLEIoSSkpLCExKX1sZXQgZz1bXSxsPU9iamVjdC5hc3NpZ24oemkse2RlZmF1bHRWaXNpdG9yOm4sY29udmVydFZhbHVlOkIsaXNWaXNpdGFibGU6bGV9KTtmdW5jdGlvbiBzKEksZil7aWYoIUUuaXNVbmRlZmluZWQoSSkpe2lmKGcuaW5kZXhPZihJKSE9PS0xKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitmLmpvaW4oIi4iKSk7Zy5wdXNoKEkpLEUuZm9yRWFjaChJLGZ1bmN0aW9uKHcsYil7KCEoRS5pc1VuZGVmaW5lZCh3KXx8dz09PW51bGwpJiZvLmNhbGwoZSx3LEUuaXNTdHJpbmcoYik/Yi50cmltKCk6YixmLGwpKT09PSEwJiZzKHcsZj9mLmNvbmNhdChiKTpbYl0pfSksZy5wb3AoKX19aWYoIUUuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZGF0YSBtdXN0IGJlIGFuIG9iamVjdCIpO3JldHVybiBzKEEpLGV9dmFyIHY9WGk7ZnVuY3Rpb24gWnQoQSl7bGV0IGU9eyIhIjoiJTIxIiwiJyI6IiUyNyIsIigiOiIlMjgiLCIpIjoiJTI5IiwifiI6IiU3RSIsIiUyMCI6IisiLCIlMDAiOiJcMCJ9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyEnKCl+XXwlMjB8JTAwL2csZnVuY3Rpb24oaSl7cmV0dXJuIGVbaV19KX1mdW5jdGlvbiBWdChBLGUpe3RoaXMuX3BhaXJzPVtdLEEmJnYoQSx0aGlzLGUpfXZhciB6dD1WdC5wcm90b3R5cGU7enQuYXBwZW5kPWZ1bmN0aW9uKGUsdCl7dGhpcy5fcGFpcnMucHVzaChbZSx0XSl9O3p0LnRvU3RyaW5nPWZ1bmN0aW9uKGUpe2xldCB0PWU/ZnVuY3Rpb24oaSl7cmV0dXJuIGUuY2FsbCh0aGlzLGksWnQpfTpadDtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKG8pe3JldHVybiB0KG9bMF0pKyI9Iit0KG9bMV0pfSwiIikuam9pbigiJiIpfTt2YXIgakE9VnQ7ZnVuY3Rpb24gX2koQSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpLnJlcGxhY2UoLyUyMC9nLCIrIil9ZnVuY3Rpb24geUEoQSxlLHQpe2lmKCFlKXJldHVybiBBO2xldCBpPXQmJnQuZW5jb2RlfHxfaTtFLmlzRnVuY3Rpb24odCkmJih0PXtzZXJpYWxpemU6dH0pO2xldCBvPXQmJnQuc2VyaWFsaXplLHI7aWYobz9yPW8oZSx0KTpyPUUuaXNVUkxTZWFyY2hQYXJhbXMoZSk/ZS50b1N0cmluZygpOm5ldyBqQShlLHQpLnRvU3RyaW5nKGkpLHIpe2xldCBhPUEuaW5kZXhPZigiIyIpO2EhPT0tMSYmKEE9QS5zbGljZSgwLGEpKSxBKz0oQS5pbmRleE9mKCI/Iik9PT0tMT8iPyI6IiYiKStyfXJldHVybiBBfXZhciBwZT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaGFuZGxlcnM9W119dXNlKGUsdCxpKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6ZSxyZWplY3RlZDp0LHN5bmNocm9ub3VzOmk/aS5zeW5jaHJvbm91czohMSxydW5XaGVuOmk/aS5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfWVqZWN0KGUpe3RoaXMuaGFuZGxlcnNbZV0mJih0aGlzLmhhbmRsZXJzW2VdPW51bGwpfWNsZWFyKCl7dGhpcy5oYW5kbGVycyYmKHRoaXMuaGFuZGxlcnM9W10pfWZvckVhY2goZSl7RS5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24oaSl7aSE9PW51bGwmJmUoaSl9KX19LHVlPXBlO3ZhciB2QT17c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX07dmFyIFh0PXR5cGVvZiBVUkxTZWFyY2hQYXJhbXM8InUiP1VSTFNlYXJjaFBhcmFtczpqQTt2YXIgX3Q9dHlwZW9mIEZvcm1EYXRhPCJ1Ij9Gb3JtRGF0YTpudWxsO3ZhciAkdD10eXBlb2YgQmxvYjwidSI/QmxvYjpudWxsO3ZhciBBcj17aXNCcm93c2VyOiEwLGNsYXNzZXM6e1VSTFNlYXJjaFBhcmFtczpYdCxGb3JtRGF0YTpfdCxCbG9iOiR0fSxwcm90b2NvbHM6WyJodHRwIiwiaHR0cHMiLCJmaWxlIiwiYmxvYiIsInVybCIsImRhdGEiXX07dmFyIG1lPXt9O2pyKG1lLHtoYXNCcm93c2VyRW52OigpPT5jZSxoYXNTdGFuZGFyZEJyb3dzZXJFbnY6KCk9PiRpLGhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudjooKT0+QW8sbmF2aWdhdG9yOigpPT5mZSxvcmlnaW46KCk9PmVvfSk7dmFyIGNlPXR5cGVvZiB3aW5kb3c8InUiJiZ0eXBlb2YgZG9jdW1lbnQ8InUiLGZlPXR5cGVvZiBuYXZpZ2F0b3I9PSJvYmplY3QiJiZuYXZpZ2F0b3J8fHZvaWQgMCwkaT1jZSYmKCFmZXx8WyJSZWFjdE5hdGl2ZSIsIk5hdGl2ZVNjcmlwdCIsIk5TIl0uaW5kZXhPZihmZS5wcm9kdWN0KTwwKSxBbz10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU8InUiJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnR5cGVvZiBzZWxmLmltcG9ydFNjcmlwdHM9PSJmdW5jdGlvbiIsZW89Y2UmJndpbmRvdy5sb2NhdGlvbi5ocmVmfHwiaHR0cDovL2xvY2FsaG9zdCI7dmFyIEQ9ey4uLm1lLC4uLkFyfTtmdW5jdGlvbiBkZShBLGUpe3JldHVybiB2KEEsbmV3IEQuY2xhc3Nlcy5VUkxTZWFyY2hQYXJhbXMse3Zpc2l0b3I6ZnVuY3Rpb24odCxpLG8scil7cmV0dXJuIEQuaXNOb2RlJiZFLmlzQnVmZmVyKHQpPyh0aGlzLmFwcGVuZChpLHQudG9TdHJpbmcoImJhc2U2NCIpKSwhMSk6ci5kZWZhdWx0VmlzaXRvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LC4uLmV9KX1mdW5jdGlvbiB0byhBKXtyZXR1cm4gRS5tYXRjaEFsbCgvXHcrfFxbKFx3KildL2csQSkubWFwKGU9PmVbMF09PT0iW10iPyIiOmVbMV18fGVbMF0pfWZ1bmN0aW9uIHJvKEEpe2xldCBlPXt9LHQ9T2JqZWN0LmtleXMoQSksaSxvPXQubGVuZ3RoLHI7Zm9yKGk9MDtpPG87aSsrKXI9dFtpXSxlW3JdPUFbcl07cmV0dXJuIGV9ZnVuY3Rpb24gaW8oQSl7ZnVuY3Rpb24gZSh0LGksbyxyKXtsZXQgYT10W3IrK107aWYoYT09PSJfX3Byb3RvX18iKXJldHVybiEwO2xldCBDPU51bWJlci5pc0Zpbml0ZSgrYSkscD1yPj10Lmxlbmd0aDtyZXR1cm4gYT0hYSYmRS5pc0FycmF5KG8pP28ubGVuZ3RoOmEscD8oRS5oYXNPd25Qcm9wKG8sYSk/b1thXT1bb1thXSxpXTpvW2FdPWksIUMpOigoIW9bYV18fCFFLmlzT2JqZWN0KG9bYV0pKSYmKG9bYV09W10pLGUodCxpLG9bYV0scikmJkUuaXNBcnJheShvW2FdKSYmKG9bYV09cm8ob1thXSkpLCFDKX1pZihFLmlzRm9ybURhdGEoQSkmJkUuaXNGdW5jdGlvbihBLmVudHJpZXMpKXtsZXQgdD17fTtyZXR1cm4gRS5mb3JFYWNoRW50cnkoQSwoaSxvKT0+e2UodG8oaSksbyx0LDApfSksdH1yZXR1cm4gbnVsbH12YXIgWkE9aW87ZnVuY3Rpb24gb28oQSxlLHQpe2lmKEUuaXNTdHJpbmcoQSkpdHJ5e3JldHVybihlfHxKU09OLnBhcnNlKShBKSxFLnRyaW0oQSl9Y2F0Y2goaSl7aWYoaS5uYW1lIT09IlN5bnRheEVycm9yIil0aHJvdyBpfXJldHVybih0fHxKU09OLnN0cmluZ2lmeSkoQSl9dmFyIHllPXt0cmFuc2l0aW9uYWw6dkEsYWRhcHRlcjpbInhociIsImh0dHAiLCJmZXRjaCJdLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKGUsdCl7bGV0IGk9dC5nZXRDb250ZW50VHlwZSgpfHwiIixvPWkuaW5kZXhPZigiYXBwbGljYXRpb24vanNvbiIpPi0xLHI9RS5pc09iamVjdChlKTtpZihyJiZFLmlzSFRNTEZvcm0oZSkmJihlPW5ldyBGb3JtRGF0YShlKSksRS5pc0Zvcm1EYXRhKGUpKXJldHVybiBvP0pTT04uc3RyaW5naWZ5KFpBKGUpKTplO2lmKEUuaXNBcnJheUJ1ZmZlcihlKXx8RS5pc0J1ZmZlcihlKXx8RS5pc1N0cmVhbShlKXx8RS5pc0ZpbGUoZSl8fEUuaXNCbG9iKGUpfHxFLmlzUmVhZGFibGVTdHJlYW0oZSkpcmV0dXJuIGU7aWYoRS5pc0FycmF5QnVmZmVyVmlldyhlKSlyZXR1cm4gZS5idWZmZXI7aWYoRS5pc1VSTFNlYXJjaFBhcmFtcyhlKSlyZXR1cm4gdC5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiLCExKSxlLnRvU3RyaW5nKCk7bGV0IEM7aWYocil7aWYoaS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKT4tMSlyZXR1cm4gZGUoZSx0aGlzLmZvcm1TZXJpYWxpemVyKS50b1N0cmluZygpO2lmKChDPUUuaXNGaWxlTGlzdChlKSl8fGkuaW5kZXhPZigibXVsdGlwYXJ0L2Zvcm0tZGF0YSIpPi0xKXtsZXQgcD10aGlzLmVudiYmdGhpcy5lbnYuRm9ybURhdGE7cmV0dXJuIHYoQz97ImZpbGVzW10iOmV9OmUscCYmbmV3IHAsdGhpcy5mb3JtU2VyaWFsaXplcil9fXJldHVybiByfHxvPyh0LnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi9qc29uIiwhMSksb28oZSkpOmV9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24oZSl7bGV0IHQ9dGhpcy50cmFuc2l0aW9uYWx8fHllLnRyYW5zaXRpb25hbCxpPXQmJnQuZm9yY2VkSlNPTlBhcnNpbmcsbz10aGlzLnJlc3BvbnNlVHlwZT09PSJqc29uIjtpZihFLmlzUmVzcG9uc2UoZSl8fEUuaXNSZWFkYWJsZVN0cmVhbShlKSlyZXR1cm4gZTtpZihlJiZFLmlzU3RyaW5nKGUpJiYoaSYmIXRoaXMucmVzcG9uc2VUeXBlfHxvKSl7bGV0IGE9ISh0JiZ0LnNpbGVudEpTT05QYXJzaW5nKSYmbzt0cnl7cmV0dXJuIEpTT04ucGFyc2UoZSx0aGlzLnBhcnNlUmV2aXZlcil9Y2F0Y2goQyl7aWYoYSl0aHJvdyBDLm5hbWU9PT0iU3ludGF4RXJyb3IiP2guZnJvbShDLGguRVJSX0JBRF9SRVNQT05TRSx0aGlzLG51bGwsdGhpcy5yZXNwb25zZSk6Q319cmV0dXJuIGV9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSxlbnY6e0Zvcm1EYXRhOkQuY2xhc3Nlcy5Gb3JtRGF0YSxCbG9iOkQuY2xhc3Nlcy5CbG9ifSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbihlKXtyZXR1cm4gZT49MjAwJiZlPDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiIsIkNvbnRlbnQtVHlwZSI6dm9pZCAwfX19O0UuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giXSxBPT57eWUuaGVhZGVyc1tBXT17fX0pO3ZhciBhQT15ZTt2YXIgbm89RS50b09iamVjdFNldChbImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdKSxlcj1BPT57bGV0IGU9e30sdCxpLG87cmV0dXJuIEEmJkEuc3BsaXQoYApgKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe289YS5pbmRleE9mKCI6IiksdD1hLnN1YnN0cmluZygwLG8pLnRyaW0oKS50b0xvd2VyQ2FzZSgpLGk9YS5zdWJzdHJpbmcobysxKS50cmltKCksISghdHx8ZVt0XSYmbm9bdF0pJiYodD09PSJzZXQtY29va2llIj9lW3RdP2VbdF0ucHVzaChpKTplW3RdPVtpXTplW3RdPWVbdF0/ZVt0XSsiLCAiK2k6aSl9KSxlfTt2YXIgdHI9U3ltYm9sKCJpbnRlcm5hbHMiKTtmdW5jdGlvbiBoQShBKXtyZXR1cm4gQSYmU3RyaW5nKEEpLnRyaW0oKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIFZBKEEpe3JldHVybiBBPT09ITF8fEE9PW51bGw/QTpFLmlzQXJyYXkoQSk/QS5tYXAoVkEpOlN0cmluZyhBKX1mdW5jdGlvbiBhbyhBKXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpLHQ9LyhbXlxzLDs9XSspXHMqKD86PVxzKihbXiw7XSspKT8vZyxpO2Zvcig7aT10LmV4ZWMoQSk7KWVbaVsxXV09aVsyXTtyZXR1cm4gZX12YXIgc289QT0+L15bLV9hLXpBLVowLTleYHx+LCEjJCUmJyorLl0rJC8udGVzdChBLnRyaW0oKSk7ZnVuY3Rpb24gaGUoQSxlLHQsaSxvKXtpZihFLmlzRnVuY3Rpb24oaSkpcmV0dXJuIGkuY2FsbCh0aGlzLGUsdCk7aWYobyYmKGU9dCksISFFLmlzU3RyaW5nKGUpKXtpZihFLmlzU3RyaW5nKGkpKXJldHVybiBlLmluZGV4T2YoaSkhPT0tMTtpZihFLmlzUmVnRXhwKGkpKXJldHVybiBpLnRlc3QoZSl9fWZ1bmN0aW9uIElvKEEpe3JldHVybiBBLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbYS16XGRdKShcdyopL2csKGUsdCxpKT0+dC50b1VwcGVyQ2FzZSgpK2kpfWZ1bmN0aW9uIGdvKEEsZSl7bGV0IHQ9RS50b0NhbWVsQ2FzZSgiICIrZSk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKGk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxpK3Qse3ZhbHVlOmZ1bmN0aW9uKG8scixhKXtyZXR1cm4gdGhpc1tpXS5jYWxsKHRoaXMsZSxvLHIsYSl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9dmFyIHNBPWNsYXNze2NvbnN0cnVjdG9yKGUpe2UmJnRoaXMuc2V0KGUpfXNldChlLHQsaSl7bGV0IG89dGhpcztmdW5jdGlvbiByKEMscCxCKXtsZXQgbj1oQShwKTtpZighbil0aHJvdyBuZXcgRXJyb3IoImhlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7bGV0IGc9RS5maW5kS2V5KG8sbik7KCFnfHxvW2ddPT09dm9pZCAwfHxCPT09ITB8fEI9PT12b2lkIDAmJm9bZ10hPT0hMSkmJihvW2d8fHBdPVZBKEMpKX1sZXQgYT0oQyxwKT0+RS5mb3JFYWNoKEMsKEIsbik9PnIoQixuLHApKTtpZihFLmlzUGxhaW5PYmplY3QoZSl8fGUgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKWEoZSx0KTtlbHNlIGlmKEUuaXNTdHJpbmcoZSkmJihlPWUudHJpbSgpKSYmIXNvKGUpKWEoZXIoZSksdCk7ZWxzZSBpZihFLmlzT2JqZWN0KGUpJiZFLmlzSXRlcmFibGUoZSkpe2xldCBDPXt9LHAsQjtmb3IobGV0IG4gb2YgZSl7aWYoIUUuaXNBcnJheShuKSl0aHJvdyBUeXBlRXJyb3IoIk9iamVjdCBpdGVyYXRvciBtdXN0IHJldHVybiBhIGtleS12YWx1ZSBwYWlyIik7Q1tCPW5bMF1dPShwPUNbQl0pP0UuaXNBcnJheShwKT9bLi4ucCxuWzFdXTpbcCxuWzFdXTpuWzFdfWEoQyx0KX1lbHNlIGUhPW51bGwmJnIodCxlLGkpO3JldHVybiB0aGlzfWdldChlLHQpe2lmKGU9aEEoZSksZSl7bGV0IGk9RS5maW5kS2V5KHRoaXMsZSk7aWYoaSl7bGV0IG89dGhpc1tpXTtpZighdClyZXR1cm4gbztpZih0PT09ITApcmV0dXJuIGFvKG8pO2lmKEUuaXNGdW5jdGlvbih0KSlyZXR1cm4gdC5jYWxsKHRoaXMsbyxpKTtpZihFLmlzUmVnRXhwKHQpKXJldHVybiB0LmV4ZWMobyk7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyhlLHQpe2lmKGU9aEEoZSksZSl7bGV0IGk9RS5maW5kS2V5KHRoaXMsZSk7cmV0dXJuISEoaSYmdGhpc1tpXSE9PXZvaWQgMCYmKCF0fHxoZSh0aGlzLHRoaXNbaV0saSx0KSkpfXJldHVybiExfWRlbGV0ZShlLHQpe2xldCBpPXRoaXMsbz0hMTtmdW5jdGlvbiByKGEpe2lmKGE9aEEoYSksYSl7bGV0IEM9RS5maW5kS2V5KGksYSk7QyYmKCF0fHxoZShpLGlbQ10sQyx0KSkmJihkZWxldGUgaVtDXSxvPSEwKX19cmV0dXJuIEUuaXNBcnJheShlKT9lLmZvckVhY2gocik6cihlKSxvfWNsZWFyKGUpe2xldCB0PU9iamVjdC5rZXlzKHRoaXMpLGk9dC5sZW5ndGgsbz0hMTtmb3IoO2ktLTspe2xldCByPXRbaV07KCFlfHxoZSh0aGlzLHRoaXNbcl0scixlLCEwKSkmJihkZWxldGUgdGhpc1tyXSxvPSEwKX1yZXR1cm4gb31ub3JtYWxpemUoZSl7bGV0IHQ9dGhpcyxpPXt9O3JldHVybiBFLmZvckVhY2godGhpcywobyxyKT0+e2xldCBhPUUuZmluZEtleShpLHIpO2lmKGEpe3RbYV09VkEobyksZGVsZXRlIHRbcl07cmV0dXJufWxldCBDPWU/SW8ocik6U3RyaW5nKHIpLnRyaW0oKTtDIT09ciYmZGVsZXRlIHRbcl0sdFtDXT1WQShvKSxpW0NdPSEwfSksdGhpc31jb25jYXQoLi4uZSl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4uZSl9dG9KU09OKGUpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIEUuZm9yRWFjaCh0aGlzLChpLG8pPT57aSE9bnVsbCYmaSE9PSExJiYodFtvXT1lJiZFLmlzQXJyYXkoaSk/aS5qb2luKCIsICIpOmkpfSksdH1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbZSx0XSk9PmUrIjogIit0KS5qb2luKGAKYCl9Z2V0U2V0Q29va2llKCl7cmV0dXJuIHRoaXMuZ2V0KCJzZXQtY29va2llIil8fFtdfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkF4aW9zSGVhZGVycyJ9c3RhdGljIGZyb20oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzP2U6bmV3IHRoaXMoZSl9c3RhdGljIGNvbmNhdChlLC4uLnQpe2xldCBpPW5ldyB0aGlzKGUpO3JldHVybiB0LmZvckVhY2gobz0+aS5zZXQobykpLGl9c3RhdGljIGFjY2Vzc29yKGUpe2xldCBpPSh0aGlzW3RyXT10aGlzW3RyXT17YWNjZXNzb3JzOnt9fSkuYWNjZXNzb3JzLG89dGhpcy5wcm90b3R5cGU7ZnVuY3Rpb24gcihhKXtsZXQgQz1oQShhKTtpW0NdfHwoZ28obyxhKSxpW0NdPSEwKX1yZXR1cm4gRS5pc0FycmF5KGUpP2UuZm9yRWFjaChyKTpyKGUpLHRoaXN9fTtzQS5hY2Nlc3NvcihbIkNvbnRlbnQtVHlwZSIsIkNvbnRlbnQtTGVuZ3RoIiwiQWNjZXB0IiwiQWNjZXB0LUVuY29kaW5nIiwiVXNlci1BZ2VudCIsIkF1dGhvcml6YXRpb24iXSk7RS5yZWR1Y2VEZXNjcmlwdG9ycyhzQS5wcm90b3R5cGUsKHt2YWx1ZTpBfSxlKT0+e2xldCB0PWVbMF0udG9VcHBlckNhc2UoKStlLnNsaWNlKDEpO3JldHVybntnZXQ6KCk9PkEsc2V0KGkpe3RoaXNbdF09aX19fSk7RS5mcmVlemVNZXRob2RzKHNBKTt2YXIgaz1zQTtmdW5jdGlvbiB3QShBLGUpe2xldCB0PXRoaXN8fGFBLGk9ZXx8dCxvPWsuZnJvbShpLmhlYWRlcnMpLHI9aS5kYXRhO3JldHVybiBFLmZvckVhY2goQSxmdW5jdGlvbihDKXtyPUMuY2FsbCh0LHIsby5ub3JtYWxpemUoKSxlP2Uuc3RhdHVzOnZvaWQgMCl9KSxvLm5vcm1hbGl6ZSgpLHJ9ZnVuY3Rpb24gREEoQSl7cmV0dXJuISEoQSYmQS5fX0NBTkNFTF9fKX1mdW5jdGlvbiBycihBLGUsdCl7aC5jYWxsKHRoaXMsQT8/ImNhbmNlbGVkIixoLkVSUl9DQU5DRUxFRCxlLHQpLHRoaXMubmFtZT0iQ2FuY2VsZWRFcnJvciJ9RS5pbmhlcml0cyhycixoLHtfX0NBTkNFTF9fOiEwfSk7dmFyIFk9cnI7ZnVuY3Rpb24gU0EoQSxlLHQpe2xldCBpPXQuY29uZmlnLnZhbGlkYXRlU3RhdHVzOyF0LnN0YXR1c3x8IWl8fGkodC5zdGF0dXMpP0EodCk6ZShuZXcgaCgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK3Quc3RhdHVzLFtoLkVSUl9CQURfUkVRVUVTVCxoLkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3IodC5zdGF0dXMvMTAwKS00XSx0LmNvbmZpZyx0LnJlcXVlc3QsdCkpfWZ1bmN0aW9uIHdlKEEpe2xldCBlPS9eKFstK1x3XXsxLDI1fSkoOj9cL1wvfDopLy5leGVjKEEpO3JldHVybiBlJiZlWzFdfHwiIn1mdW5jdGlvbiBCbyhBLGUpe0E9QXx8MTA7bGV0IHQ9bmV3IEFycmF5KEEpLGk9bmV3IEFycmF5KEEpLG89MCxyPTAsYTtyZXR1cm4gZT1lIT09dm9pZCAwP2U6MWUzLGZ1bmN0aW9uKHApe2xldCBCPURhdGUubm93KCksbj1pW3JdO2F8fChhPUIpLHRbb109cCxpW29dPUI7bGV0IGc9cixsPTA7Zm9yKDtnIT09bzspbCs9dFtnKytdLGc9ZyVBO2lmKG89KG8rMSklQSxvPT09ciYmKHI9KHIrMSklQSksQi1hPGUpcmV0dXJuO2xldCBzPW4mJkItbjtyZXR1cm4gcz9NYXRoLnJvdW5kKGwqMWUzL3MpOnZvaWQgMH19dmFyIGlyPUJvO2Z1bmN0aW9uIENvKEEsZSl7bGV0IHQ9MCxpPTFlMy9lLG8scixhPShCLG49RGF0ZS5ub3coKSk9Pnt0PW4sbz1udWxsLHImJihjbGVhclRpbWVvdXQocikscj1udWxsKSxBKC4uLkIpfTtyZXR1cm5bKC4uLkIpPT57bGV0IG49RGF0ZS5ub3coKSxnPW4tdDtnPj1pP2EoQixuKToobz1CLHJ8fChyPXNldFRpbWVvdXQoKCk9PntyPW51bGwsYShvKX0saS1nKSkpfSwoKT0+byYmYShvKV19dmFyIG9yPUNvO3ZhciBJQT0oQSxlLHQ9Myk9PntsZXQgaT0wLG89aXIoNTAsMjUwKTtyZXR1cm4gb3Iocj0+e2xldCBhPXIubG9hZGVkLEM9ci5sZW5ndGhDb21wdXRhYmxlP3IudG90YWw6dm9pZCAwLHA9YS1pLEI9byhwKSxuPWE8PUM7aT1hO2xldCBnPXtsb2FkZWQ6YSx0b3RhbDpDLHByb2dyZXNzOkM/YS9DOnZvaWQgMCxieXRlczpwLHJhdGU6Qnx8dm9pZCAwLGVzdGltYXRlZDpCJiZDJiZuPyhDLWEpL0I6dm9pZCAwLGV2ZW50OnIsbGVuZ3RoQ29tcHV0YWJsZTpDIT1udWxsLFtlPyJkb3dubG9hZCI6InVwbG9hZCJdOiEwfTtBKGcpfSx0KX0sRGU9KEEsZSk9PntsZXQgdD1BIT1udWxsO3JldHVybltpPT5lWzBdKHtsZW5ndGhDb21wdXRhYmxlOnQsdG90YWw6QSxsb2FkZWQ6aX0pLGVbMV1dfSxTZT1BPT4oLi4uZSk9PkUuYXNhcCgoKT0+QSguLi5lKSk7dmFyIG5yPUQuaGFzU3RhbmRhcmRCcm93c2VyRW52PygoQSxlKT0+dD0+KHQ9bmV3IFVSTCh0LEQub3JpZ2luKSxBLnByb3RvY29sPT09dC5wcm90b2NvbCYmQS5ob3N0PT09dC5ob3N0JiYoZXx8QS5wb3J0PT09dC5wb3J0KSkpKG5ldyBVUkwoRC5vcmlnaW4pLEQubmF2aWdhdG9yJiYvKG1zaWV8dHJpZGVudCkvaS50ZXN0KEQubmF2aWdhdG9yLnVzZXJBZ2VudCkpOigpPT4hMDt2YXIgYXI9RC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/e3dyaXRlKEEsZSx0LGksbyxyKXtsZXQgYT1bQSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGUpXTtFLmlzTnVtYmVyKHQpJiZhLnB1c2goImV4cGlyZXM9IituZXcgRGF0ZSh0KS50b0dNVFN0cmluZygpKSxFLmlzU3RyaW5nKGkpJiZhLnB1c2goInBhdGg9IitpKSxFLmlzU3RyaW5nKG8pJiZhLnB1c2goImRvbWFpbj0iK28pLHI9PT0hMCYmYS5wdXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9YS5qb2luKCI7ICIpfSxyZWFkKEEpe2xldCBlPWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxzKikoIitBKyIpPShbXjtdKikiKSk7cmV0dXJuIGU/ZGVjb2RlVVJJQ29tcG9uZW50KGVbM10pOm51bGx9LHJlbW92ZShBKXt0aGlzLndyaXRlKEEsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGUoKXt9LHJlYWQoKXtyZXR1cm4gbnVsbH0scmVtb3ZlKCl7fX07ZnVuY3Rpb24gUmUoQSl7cmV0dXJuL14oW2Etel1bYS16XGQrXC0uXSo6KT9cL1wvL2kudGVzdChBKX1mdW5jdGlvbiBGZShBLGUpe3JldHVybiBlP0EucmVwbGFjZSgvXC8/XC8kLywiIikrIi8iK2UucmVwbGFjZSgvXlwvKy8sIiIpOkF9ZnVuY3Rpb24gUkEoQSxlLHQpe2xldCBpPSFSZShlKTtyZXR1cm4gQSYmKGl8fHQ9PSExKT9GZShBLGUpOmV9dmFyIHNyPUE9PkEgaW5zdGFuY2VvZiBrP3suLi5BfTpBO2Z1bmN0aW9uIEwoQSxlKXtlPWV8fHt9O2xldCB0PXt9O2Z1bmN0aW9uIGkoQixuLGcsbCl7cmV0dXJuIEUuaXNQbGFpbk9iamVjdChCKSYmRS5pc1BsYWluT2JqZWN0KG4pP0UubWVyZ2UuY2FsbCh7Y2FzZWxlc3M6bH0sQixuKTpFLmlzUGxhaW5PYmplY3Qobik/RS5tZXJnZSh7fSxuKTpFLmlzQXJyYXkobik/bi5zbGljZSgpOm59ZnVuY3Rpb24gbyhCLG4sZyxsKXtpZihFLmlzVW5kZWZpbmVkKG4pKXtpZighRS5pc1VuZGVmaW5lZChCKSlyZXR1cm4gaSh2b2lkIDAsQixnLGwpfWVsc2UgcmV0dXJuIGkoQixuLGcsbCl9ZnVuY3Rpb24gcihCLG4pe2lmKCFFLmlzVW5kZWZpbmVkKG4pKXJldHVybiBpKHZvaWQgMCxuKX1mdW5jdGlvbiBhKEIsbil7aWYoRS5pc1VuZGVmaW5lZChuKSl7aWYoIUUuaXNVbmRlZmluZWQoQikpcmV0dXJuIGkodm9pZCAwLEIpfWVsc2UgcmV0dXJuIGkodm9pZCAwLG4pfWZ1bmN0aW9uIEMoQixuLGcpe2lmKGcgaW4gZSlyZXR1cm4gaShCLG4pO2lmKGcgaW4gQSlyZXR1cm4gaSh2b2lkIDAsQil9bGV0IHA9e3VybDpyLG1ldGhvZDpyLGRhdGE6cixiYXNlVVJMOmEsdHJhbnNmb3JtUmVxdWVzdDphLHRyYW5zZm9ybVJlc3BvbnNlOmEscGFyYW1zU2VyaWFsaXplcjphLHRpbWVvdXQ6YSx0aW1lb3V0TWVzc2FnZTphLHdpdGhDcmVkZW50aWFsczphLHdpdGhYU1JGVG9rZW46YSxhZGFwdGVyOmEscmVzcG9uc2VUeXBlOmEseHNyZkNvb2tpZU5hbWU6YSx4c3JmSGVhZGVyTmFtZTphLG9uVXBsb2FkUHJvZ3Jlc3M6YSxvbkRvd25sb2FkUHJvZ3Jlc3M6YSxkZWNvbXByZXNzOmEsbWF4Q29udGVudExlbmd0aDphLG1heEJvZHlMZW5ndGg6YSxiZWZvcmVSZWRpcmVjdDphLHRyYW5zcG9ydDphLGh0dHBBZ2VudDphLGh0dHBzQWdlbnQ6YSxjYW5jZWxUb2tlbjphLHNvY2tldFBhdGg6YSxyZXNwb25zZUVuY29kaW5nOmEsdmFsaWRhdGVTdGF0dXM6QyxoZWFkZXJzOihCLG4sZyk9Pm8oc3IoQiksc3IobiksZywhMCl9O3JldHVybiBFLmZvckVhY2goT2JqZWN0LmtleXMoey4uLkEsLi4uZX0pLGZ1bmN0aW9uKG4pe2xldCBnPXBbbl18fG8sbD1nKEFbbl0sZVtuXSxuKTtFLmlzVW5kZWZpbmVkKGwpJiZnIT09Q3x8KHRbbl09bCl9KSx0fXZhciB6QT1BPT57bGV0IGU9TCh7fSxBKSx7ZGF0YTp0LHdpdGhYU1JGVG9rZW46aSx4c3JmSGVhZGVyTmFtZTpvLHhzcmZDb29raWVOYW1lOnIsaGVhZGVyczphLGF1dGg6Q309ZTtpZihlLmhlYWRlcnM9YT1rLmZyb20oYSksZS51cmw9eUEoUkEoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMpLEEucGFyYW1zLEEucGFyYW1zU2VyaWFsaXplciksQyYmYS5zZXQoIkF1dGhvcml6YXRpb24iLCJCYXNpYyAiK2J0b2EoKEMudXNlcm5hbWV8fCIiKSsiOiIrKEMucGFzc3dvcmQ/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEMucGFzc3dvcmQpKToiIikpKSxFLmlzRm9ybURhdGEodCkpe2lmKEQuaGFzU3RhbmRhcmRCcm93c2VyRW52fHxELmhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudilhLnNldENvbnRlbnRUeXBlKHZvaWQgMCk7ZWxzZSBpZihFLmlzRnVuY3Rpb24odC5nZXRIZWFkZXJzKSl7bGV0IHA9dC5nZXRIZWFkZXJzKCksQj1bImNvbnRlbnQtdHlwZSIsImNvbnRlbnQtbGVuZ3RoIl07T2JqZWN0LmVudHJpZXMocCkuZm9yRWFjaCgoW24sZ10pPT57Qi5pbmNsdWRlcyhuLnRvTG93ZXJDYXNlKCkpJiZhLnNldChuLGcpfSl9fWlmKEQuaGFzU3RhbmRhcmRCcm93c2VyRW52JiYoaSYmRS5pc0Z1bmN0aW9uKGkpJiYoaT1pKGUpKSxpfHxpIT09ITEmJm5yKGUudXJsKSkpe2xldCBwPW8mJnImJmFyLnJlYWQocik7cCYmYS5zZXQobyxwKX1yZXR1cm4gZX07dmFyIFFvPXR5cGVvZiBYTUxIdHRwUmVxdWVzdDwidSIsSXI9UW8mJmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0LGkpe2xldCBvPXpBKEEpLHI9by5kYXRhLGE9ay5mcm9tKG8uaGVhZGVycykubm9ybWFsaXplKCkse3Jlc3BvbnNlVHlwZTpDLG9uVXBsb2FkUHJvZ3Jlc3M6cCxvbkRvd25sb2FkUHJvZ3Jlc3M6Qn09byxuLGcsbCxzLEk7ZnVuY3Rpb24gZigpe3MmJnMoKSxJJiZJKCksby5jYW5jZWxUb2tlbiYmby5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShuKSxvLnNpZ25hbCYmby5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG4pfWxldCB1PW5ldyBYTUxIdHRwUmVxdWVzdDt1Lm9wZW4oby5tZXRob2QudG9VcHBlckNhc2UoKSxvLnVybCwhMCksdS50aW1lb3V0PW8udGltZW91dDtmdW5jdGlvbiB3KCl7aWYoIXUpcmV0dXJuO2xldCBTPWsuZnJvbSgiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIHUmJnUuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLFA9e2RhdGE6IUN8fEM9PT0idGV4dCJ8fEM9PT0ianNvbiI/dS5yZXNwb25zZVRleHQ6dS5yZXNwb25zZSxzdGF0dXM6dS5zdGF0dXMsc3RhdHVzVGV4dDp1LnN0YXR1c1RleHQsaGVhZGVyczpTLGNvbmZpZzpBLHJlcXVlc3Q6dX07U0EoZnVuY3Rpb24oVyl7dChXKSxmKCl9LGZ1bmN0aW9uKFcpe2koVyksZigpfSxQKSx1PW51bGx9Im9ubG9hZGVuZCJpbiB1P3Uub25sb2FkZW5kPXc6dS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXshdXx8dS5yZWFkeVN0YXRlIT09NHx8dS5zdGF0dXM9PT0wJiYhKHUucmVzcG9uc2VVUkwmJnUucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKT09PTApfHxzZXRUaW1lb3V0KHcpfSx1Lm9uYWJvcnQ9ZnVuY3Rpb24oKXt1JiYoaShuZXcgaCgiUmVxdWVzdCBhYm9ydGVkIixoLkVDT05OQUJPUlRFRCxBLHUpKSx1PW51bGwpfSx1Lm9uZXJyb3I9ZnVuY3Rpb24oTil7bGV0IFA9TiYmTi5tZXNzYWdlP04ubWVzc2FnZToiTmV0d29yayBFcnJvciIsVj1uZXcgaChQLGguRVJSX05FVFdPUkssQSx1KTtWLmV2ZW50PU58fG51bGwsaShWKSx1PW51bGx9LHUub250aW1lb3V0PWZ1bmN0aW9uKCl7bGV0IE49by50aW1lb3V0PyJ0aW1lb3V0IG9mICIrby50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiLFA9by50cmFuc2l0aW9uYWx8fHZBO28udGltZW91dEVycm9yTWVzc2FnZSYmKE49by50aW1lb3V0RXJyb3JNZXNzYWdlKSxpKG5ldyBoKE4sUC5jbGFyaWZ5VGltZW91dEVycm9yP2guRVRJTUVET1VUOmguRUNPTk5BQk9SVEVELEEsdSkpLHU9bnVsbH0scj09PXZvaWQgMCYmYS5zZXRDb250ZW50VHlwZShudWxsKSwic2V0UmVxdWVzdEhlYWRlciJpbiB1JiZFLmZvckVhY2goYS50b0pTT04oKSxmdW5jdGlvbihOLFApe3Uuc2V0UmVxdWVzdEhlYWRlcihQLE4pfSksRS5pc1VuZGVmaW5lZChvLndpdGhDcmVkZW50aWFscyl8fCh1LndpdGhDcmVkZW50aWFscz0hIW8ud2l0aENyZWRlbnRpYWxzKSxDJiZDIT09Impzb24iJiYodS5yZXNwb25zZVR5cGU9by5yZXNwb25zZVR5cGUpLEImJihbbCxJXT1JQShCLCEwKSx1LmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixsKSkscCYmdS51cGxvYWQmJihbZyxzXT1JQShwKSx1LnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZyksdS51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVuZCIscykpLChvLmNhbmNlbFRva2VufHxvLnNpZ25hbCkmJihuPVM9Pnt1JiYoaSghU3x8Uy50eXBlP25ldyBZKG51bGwsQSx1KTpTKSx1LmFib3J0KCksdT1udWxsKX0sby5jYW5jZWxUb2tlbiYmby5jYW5jZWxUb2tlbi5zdWJzY3JpYmUobiksby5zaWduYWwmJihvLnNpZ25hbC5hYm9ydGVkP24oKTpvLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbikpKTtsZXQgYj13ZShvLnVybCk7aWYoYiYmRC5wcm90b2NvbHMuaW5kZXhPZihiKT09PS0xKXtpKG5ldyBoKCJVbnN1cHBvcnRlZCBwcm90b2NvbCAiK2IrIjoiLGguRVJSX0JBRF9SRVFVRVNULEEpKTtyZXR1cm59dS5zZW5kKHJ8fG51bGwpfSl9O3ZhciBFbz0oQSxlKT0+e2xldHtsZW5ndGg6dH09QT1BP0EuZmlsdGVyKEJvb2xlYW4pOltdO2lmKGV8fHQpe2xldCBpPW5ldyBBYm9ydENvbnRyb2xsZXIsbyxyPWZ1bmN0aW9uKEIpe2lmKCFvKXtvPSEwLEMoKTtsZXQgbj1CIGluc3RhbmNlb2YgRXJyb3I/Qjp0aGlzLnJlYXNvbjtpLmFib3J0KG4gaW5zdGFuY2VvZiBoP246bmV3IFkobiBpbnN0YW5jZW9mIEVycm9yP24ubWVzc2FnZTpuKSl9fSxhPWUmJnNldFRpbWVvdXQoKCk9PnthPW51bGwscihuZXcgaChgdGltZW91dCAke2V9IG9mIG1zIGV4Y2VlZGVkYCxoLkVUSU1FRE9VVCkpfSxlKSxDPSgpPT57QSYmKGEmJmNsZWFyVGltZW91dChhKSxhPW51bGwsQS5mb3JFYWNoKEI9PntCLnVuc3Vic2NyaWJlP0IudW5zdWJzY3JpYmUocik6Qi5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIscil9KSxBPW51bGwpfTtBLmZvckVhY2goQj0+Qi5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIscikpO2xldHtzaWduYWw6cH09aTtyZXR1cm4gcC51bnN1YnNjcmliZT0oKT0+RS5hc2FwKEMpLHB9fSxncj1Fbzt2YXIgbG89ZnVuY3Rpb24qKEEsZSl7bGV0IHQ9QS5ieXRlTGVuZ3RoO2lmKCFlfHx0PGUpe3lpZWxkIEE7cmV0dXJufWxldCBpPTAsbztmb3IoO2k8dDspbz1pK2UseWllbGQgQS5zbGljZShpLG8pLGk9b30scG89YXN5bmMgZnVuY3Rpb24qKEEsZSl7Zm9yIGF3YWl0KGxldCB0IG9mIHVvKEEpKXlpZWxkKmxvKHQsZSl9LHVvPWFzeW5jIGZ1bmN0aW9uKihBKXtpZihBW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl7eWllbGQqQTtyZXR1cm59bGV0IGU9QS5nZXRSZWFkZXIoKTt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTp0LHZhbHVlOml9PWF3YWl0IGUucmVhZCgpO2lmKHQpYnJlYWs7eWllbGQgaX19ZmluYWxseXthd2FpdCBlLmNhbmNlbCgpfX0sa2U9KEEsZSx0LGkpPT57bGV0IG89cG8oQSxlKSxyPTAsYSxDPXA9PnthfHwoYT0hMCxpJiZpKHApKX07cmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7YXN5bmMgcHVsbChwKXt0cnl7bGV0e2RvbmU6Qix2YWx1ZTpufT1hd2FpdCBvLm5leHQoKTtpZihCKXtDKCkscC5jbG9zZSgpO3JldHVybn1sZXQgZz1uLmJ5dGVMZW5ndGg7aWYodCl7bGV0IGw9cis9Zzt0KGwpfXAuZW5xdWV1ZShuZXcgVWludDhBcnJheShuKSl9Y2F0Y2goQil7dGhyb3cgQyhCKSxCfX0sY2FuY2VsKHApe3JldHVybiBDKHApLG8ucmV0dXJuKCl9fSx7aGlnaFdhdGVyTWFyazoyfSl9O3ZhciBCcj02NCoxMDI0LHtpc0Z1bmN0aW9uOlhBfT1FLGxyPSgoe2ZldGNoOkEsUmVxdWVzdDplLFJlc3BvbnNlOnR9KT0+KHtmZXRjaDpBLFJlcXVlc3Q6ZSxSZXNwb25zZTp0fSkpKEUuZ2xvYmFsKSx7UmVhZGFibGVTdHJlYW06Q3IsVGV4dEVuY29kZXI6UXJ9PUUuZ2xvYmFsLEVyPShBLC4uLmUpPT57dHJ5e3JldHVybiEhQSguLi5lKX1jYXRjaHtyZXR1cm4hMX19LGZvPUE9PntsZXR7ZmV0Y2g6ZSxSZXF1ZXN0OnQsUmVzcG9uc2U6aX09T2JqZWN0LmFzc2lnbih7fSxscixBKSxvPVhBKGUpLHI9WEEodCksYT1YQShpKTtpZighbylyZXR1cm4hMTtsZXQgQz1vJiZYQShDcikscD1vJiYodHlwZW9mIFFyPT0iZnVuY3Rpb24iPyhJPT5mPT5JLmVuY29kZShmKSkobmV3IFFyKTphc3luYyBJPT5uZXcgVWludDhBcnJheShhd2FpdCBuZXcgdChJKS5hcnJheUJ1ZmZlcigpKSksQj1yJiZDJiZFcigoKT0+e2xldCBJPSExLGY9bmV3IHQoRC5vcmlnaW4se2JvZHk6bmV3IENyLG1ldGhvZDoiUE9TVCIsZ2V0IGR1cGxleCgpe3JldHVybiBJPSEwLCJoYWxmIn19KS5oZWFkZXJzLmhhcygiQ29udGVudC1UeXBlIik7cmV0dXJuIEkmJiFmfSksbj1hJiZDJiZFcigoKT0+RS5pc1JlYWRhYmxlU3RyZWFtKG5ldyBpKCIiKS5ib2R5KSksZz17c3RyZWFtOm4mJihJPT5JLmJvZHkpfTtvJiZbInRleHQiLCJhcnJheUJ1ZmZlciIsImJsb2IiLCJmb3JtRGF0YSIsInN0cmVhbSJdLmZvckVhY2goST0+eyFnW0ldJiYoZ1tJXT0oZix1KT0+e2xldCB3PWYmJmZbSV07aWYodylyZXR1cm4gdy5jYWxsKGYpO3Rocm93IG5ldyBoKGBSZXNwb25zZSB0eXBlICcke0l9JyBpcyBub3Qgc3VwcG9ydGVkYCxoLkVSUl9OT1RfU1VQUE9SVCx1KX0pfSk7bGV0IGw9YXN5bmMgST0+e2lmKEk9PW51bGwpcmV0dXJuIDA7aWYoRS5pc0Jsb2IoSSkpcmV0dXJuIEkuc2l6ZTtpZihFLmlzU3BlY0NvbXBsaWFudEZvcm0oSSkpcmV0dXJuKGF3YWl0IG5ldyB0KEQub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6SX0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYoRS5pc0FycmF5QnVmZmVyVmlldyhJKXx8RS5pc0FycmF5QnVmZmVyKEkpKXJldHVybiBJLmJ5dGVMZW5ndGg7aWYoRS5pc1VSTFNlYXJjaFBhcmFtcyhJKSYmKEk9SSsiIiksRS5pc1N0cmluZyhJKSlyZXR1cm4oYXdhaXQgcChJKSkuYnl0ZUxlbmd0aH0scz1hc3luYyhJLGYpPT57bGV0IHU9RS50b0Zpbml0ZU51bWJlcihJLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIHU/P2woZil9O3JldHVybiBhc3luYyBJPT57bGV0e3VybDpmLG1ldGhvZDp1LGRhdGE6dyxzaWduYWw6YixjYW5jZWxUb2tlbjpTLHRpbWVvdXQ6TixvbkRvd25sb2FkUHJvZ3Jlc3M6UCxvblVwbG9hZFByb2dyZXNzOlYscmVzcG9uc2VUeXBlOlcsaGVhZGVyczpuZSx3aXRoQ3JlZGVudGlhbHM6R0E9InNhbWUtb3JpZ2luIixmZXRjaE9wdGlvbnM6eXR9PXpBKEkpO1c9Vz8oVysiIikudG9Mb3dlckNhc2UoKToidGV4dCI7bGV0IE1BPWdyKFtiLFMmJlMudG9BYm9ydFNpZ25hbCgpXSxOKSx1QT1udWxsLHo9TUEmJk1BLnVuc3Vic2NyaWJlJiYoKCk9PntNQS51bnN1YnNjcmliZSgpfSksaHQ7dHJ5e2lmKFYmJkImJnUhPT0iZ2V0IiYmdSE9PSJoZWFkIiYmKGh0PWF3YWl0IHMobmUsdykpIT09MCl7bGV0IGo9bmV3IHQoZix7bWV0aG9kOiJQT1NUIixib2R5OncsZHVwbGV4OiJoYWxmIn0pLHRBO2lmKEUuaXNGb3JtRGF0YSh3KSYmKHRBPWouaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpKSYmbmUuc2V0Q29udGVudFR5cGUodEEpLGouYm9keSl7bGV0W2FlLFdBXT1EZShodCxJQShTZShWKSkpO3c9a2Uoai5ib2R5LEJyLGFlLFdBKX19RS5pc1N0cmluZyhHQSl8fChHQT1HQT8iaW5jbHVkZSI6Im9taXQiKTtsZXQgSj1yJiYiY3JlZGVudGlhbHMiaW4gdC5wcm90b3R5cGUsd3Q9ey4uLnl0LHNpZ25hbDpNQSxtZXRob2Q6dS50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6bmUubm9ybWFsaXplKCkudG9KU09OKCksYm9keTp3LGR1cGxleDoiaGFsZiIsY3JlZGVudGlhbHM6Sj9HQTp2b2lkIDB9O3VBPXImJm5ldyB0KGYsd3QpO2xldCBLPWF3YWl0KHI/ZSh1QSx5dCk6ZShmLHd0KSksRHQ9biYmKFc9PT0ic3RyZWFtInx8Vz09PSJyZXNwb25zZSIpO2lmKG4mJihQfHxEdCYmeikpe2xldCBqPXt9O1sic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXS5mb3JFYWNoKFN0PT57altTdF09S1tTdF19KTtsZXQgdEE9RS50b0Zpbml0ZU51bWJlcihLLmhlYWRlcnMuZ2V0KCJjb250ZW50LWxlbmd0aCIpKSxbYWUsV0FdPVAmJkRlKHRBLElBKFNlKFApLCEwKSl8fFtdO0s9bmV3IGkoa2UoSy5ib2R5LEJyLGFlLCgpPT57V0EmJldBKCkseiYmeigpfSksail9Vz1XfHwidGV4dCI7bGV0IHFyPWF3YWl0IGdbRS5maW5kS2V5KGcsVyl8fCJ0ZXh0Il0oSyxJKTtyZXR1cm4hRHQmJnomJnooKSxhd2FpdCBuZXcgUHJvbWlzZSgoaix0QSk9PntTQShqLHRBLHtkYXRhOnFyLGhlYWRlcnM6ay5mcm9tKEsuaGVhZGVycyksc3RhdHVzOksuc3RhdHVzLHN0YXR1c1RleHQ6Sy5zdGF0dXNUZXh0LGNvbmZpZzpJLHJlcXVlc3Q6dUF9KX0pfWNhdGNoKEope3Rocm93IHomJnooKSxKJiZKLm5hbWU9PT0iVHlwZUVycm9yIiYmL0xvYWQgZmFpbGVkfGZldGNoL2kudGVzdChKLm1lc3NhZ2UpP09iamVjdC5hc3NpZ24obmV3IGgoIk5ldHdvcmsgRXJyb3IiLGguRVJSX05FVFdPUkssSSx1QSkse2NhdXNlOkouY2F1c2V8fEp9KTpoLmZyb20oSixKJiZKLmNvZGUsSSx1QSl9fX0sY289bmV3IE1hcCxVZT1BPT57bGV0IGU9RS5tZXJnZS5jYWxsKHtza2lwVW5kZWZpbmVkOiEwfSxscixBP0EuZW52Om51bGwpLHtmZXRjaDp0LFJlcXVlc3Q6aSxSZXNwb25zZTpvfT1lLHI9W2ksbyx0XSxhPXIubGVuZ3RoLEM9YSxwLEIsbj1jbztmb3IoO0MtLTspcD1yW0NdLEI9bi5nZXQocCksQj09PXZvaWQgMCYmbi5zZXQocCxCPUM/bmV3IE1hcDpmbyhlKSksbj1CO3JldHVybiBCfSxzST1VZSgpO3ZhciBiZT17aHR0cDpLQSx4aHI6SXIsZmV0Y2g6e2dldDpVZX19O0UuZm9yRWFjaChiZSwoQSxlKT0+e2lmKEEpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwibmFtZSIse3ZhbHVlOmV9KX1jYXRjaHt9T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsImFkYXB0ZXJOYW1lIix7dmFsdWU6ZX0pfX0pO3ZhciBwcj1BPT5gLSAke0F9YCx5bz1BPT5FLmlzRnVuY3Rpb24oQSl8fEE9PT1udWxsfHxBPT09ITEsX0E9e2dldEFkYXB0ZXI6KEEsZSk9PntBPUUuaXNBcnJheShBKT9BOltBXTtsZXR7bGVuZ3RoOnR9PUEsaSxvLHI9e307Zm9yKGxldCBhPTA7YTx0O2ErKyl7aT1BW2FdO2xldCBDO2lmKG89aSwheW8oaSkmJihvPWJlWyhDPVN0cmluZyhpKSkudG9Mb3dlckNhc2UoKV0sbz09PXZvaWQgMCkpdGhyb3cgbmV3IGgoYFVua25vd24gYWRhcHRlciAnJHtDfSdgKTtpZihvJiYoRS5pc0Z1bmN0aW9uKG8pfHwobz1vLmdldChlKSkpKWJyZWFrO3JbQ3x8IiMiK2FdPW99aWYoIW8pe2xldCBhPU9iamVjdC5lbnRyaWVzKHIpLm1hcCgoW3AsQl0pPT5gYWRhcHRlciAke3B9IGArKEI9PT0hMT8iaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZW52aXJvbm1lbnQiOiJpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBidWlsZCIpKSxDPXQ/YS5sZW5ndGg+MT9gc2luY2UgOgpgK2EubWFwKHByKS5qb2luKGAKYCk6IiAiK3ByKGFbMF0pOiJhcyBubyBhZGFwdGVyIHNwZWNpZmllZCI7dGhyb3cgbmV3IGgoIlRoZXJlIGlzIG5vIHN1aXRhYmxlIGFkYXB0ZXIgdG8gZGlzcGF0Y2ggdGhlIHJlcXVlc3QgIitDLCJFUlJfTk9UX1NVUFBPUlQiKX1yZXR1cm4gb30sYWRhcHRlcnM6YmV9O2Z1bmN0aW9uIE5lKEEpe2lmKEEuY2FuY2VsVG9rZW4mJkEuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLEEuc2lnbmFsJiZBLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBZKG51bGwsQSl9ZnVuY3Rpb24gJEEoQSl7cmV0dXJuIE5lKEEpLEEuaGVhZGVycz1rLmZyb20oQS5oZWFkZXJzKSxBLmRhdGE9d0EuY2FsbChBLEEudHJhbnNmb3JtUmVxdWVzdCksWyJwb3N0IiwicHV0IiwicGF0Y2giXS5pbmRleE9mKEEubWV0aG9kKSE9PS0xJiZBLmhlYWRlcnMuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsITEpLF9BLmdldEFkYXB0ZXIoQS5hZGFwdGVyfHxhQS5hZGFwdGVyLEEpKEEpLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIE5lKEEpLGkuZGF0YT13QS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxpKSxpLmhlYWRlcnM9ay5mcm9tKGkuaGVhZGVycyksaX0sZnVuY3Rpb24oaSl7cmV0dXJuIERBKGkpfHwoTmUoQSksaSYmaS5yZXNwb25zZSYmKGkucmVzcG9uc2UuZGF0YT13QS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxpLnJlc3BvbnNlKSxpLnJlc3BvbnNlLmhlYWRlcnM9ay5mcm9tKGkucmVzcG9uc2UuaGVhZGVycykpKSxQcm9taXNlLnJlamVjdChpKX0pfXZhciBBZT0iMS4xMi4wIjt2YXIgZWU9e307WyJvYmplY3QiLCJib29sZWFuIiwibnVtYmVyIiwiZnVuY3Rpb24iLCJzdHJpbmciLCJzeW1ib2wiXS5mb3JFYWNoKChBLGUpPT57ZWVbQV09ZnVuY3Rpb24oaSl7cmV0dXJuIHR5cGVvZiBpPT09QXx8ImEiKyhlPDE/Im4gIjoiICIpK0F9fSk7dmFyIHVyPXt9O2VlLnRyYW5zaXRpb25hbD1mdW5jdGlvbihlLHQsaSl7ZnVuY3Rpb24gbyhyLGEpe3JldHVybiJbQXhpb3MgdiIrQWUrIl0gVHJhbnNpdGlvbmFsIG9wdGlvbiAnIityKyInIithKyhpPyIuICIraToiIil9cmV0dXJuKHIsYSxDKT0+e2lmKGU9PT0hMSl0aHJvdyBuZXcgaChvKGEsIiBoYXMgYmVlbiByZW1vdmVkIisodD8iIGluICIrdDoiIikpLGguRVJSX0RFUFJFQ0FURUQpO3JldHVybiB0JiYhdXJbYV0mJih1clthXT0hMCxjb25zb2xlLndhcm4obyhhLCIgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2Iit0KyIgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUiKSkpLGU/ZShyLGEsQyk6ITB9fTtlZS5zcGVsbGluZz1mdW5jdGlvbihlKXtyZXR1cm4odCxpKT0+KGNvbnNvbGUud2FybihgJHtpfSBpcyBsaWtlbHkgYSBtaXNzcGVsbGluZyBvZiAke2V9YCksITApfTtmdW5jdGlvbiBobyhBLGUsdCl7aWYodHlwZW9mIEEhPSJvYmplY3QiKXRocm93IG5ldyBoKCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0IixoLkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtsZXQgaT1PYmplY3Qua2V5cyhBKSxvPWkubGVuZ3RoO2Zvcig7by0tID4wOyl7bGV0IHI9aVtvXSxhPWVbcl07aWYoYSl7bGV0IEM9QVtyXSxwPUM9PT12b2lkIDB8fGEoQyxyLEEpO2lmKHAhPT0hMCl0aHJvdyBuZXcgaCgib3B0aW9uICIrcisiIG11c3QgYmUgIitwLGguRVJSX0JBRF9PUFRJT05fVkFMVUUpO2NvbnRpbnVlfWlmKHQhPT0hMCl0aHJvdyBuZXcgaCgiVW5rbm93biBvcHRpb24gIityLGguRVJSX0JBRF9PUFRJT04pfX12YXIgRkE9e2Fzc2VydE9wdGlvbnM6aG8sdmFsaWRhdG9yczplZX07dmFyIEg9RkEudmFsaWRhdG9ycyxnQT1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmRlZmF1bHRzPWV8fHt9LHRoaXMuaW50ZXJjZXB0b3JzPXtyZXF1ZXN0Om5ldyB1ZSxyZXNwb25zZTpuZXcgdWV9fWFzeW5jIHJlcXVlc3QoZSx0KXt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuX3JlcXVlc3QoZSx0KX1jYXRjaChpKXtpZihpIGluc3RhbmNlb2YgRXJyb3Ipe2xldCBvPXt9O0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKG8pOm89bmV3IEVycm9yO2xldCByPW8uc3RhY2s/by5zdGFjay5yZXBsYWNlKC9eLitcbi8sIiIpOiIiO3RyeXtpLnN0YWNrP3ImJiFTdHJpbmcoaS5zdGFjaykuZW5kc1dpdGgoci5yZXBsYWNlKC9eLitcbi4rXG4vLCIiKSkmJihpLnN0YWNrKz1gCmArcik6aS5zdGFjaz1yfWNhdGNoe319dGhyb3cgaX19X3JlcXVlc3QoZSx0KXt0eXBlb2YgZT09InN0cmluZyI/KHQ9dHx8e30sdC51cmw9ZSk6dD1lfHx7fSx0PUwodGhpcy5kZWZhdWx0cyx0KTtsZXR7dHJhbnNpdGlvbmFsOmkscGFyYW1zU2VyaWFsaXplcjpvLGhlYWRlcnM6cn09dDtpIT09dm9pZCAwJiZGQS5hc3NlcnRPcHRpb25zKGkse3NpbGVudEpTT05QYXJzaW5nOkgudHJhbnNpdGlvbmFsKEguYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6SC50cmFuc2l0aW9uYWwoSC5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOkgudHJhbnNpdGlvbmFsKEguYm9vbGVhbil9LCExKSxvIT1udWxsJiYoRS5pc0Z1bmN0aW9uKG8pP3QucGFyYW1zU2VyaWFsaXplcj17c2VyaWFsaXplOm99OkZBLmFzc2VydE9wdGlvbnMobyx7ZW5jb2RlOkguZnVuY3Rpb24sc2VyaWFsaXplOkguZnVuY3Rpb259LCEwKSksdC5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMHx8KHRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDA/dC5hbGxvd0Fic29sdXRlVXJscz10aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzOnQuYWxsb3dBYnNvbHV0ZVVybHM9ITApLEZBLmFzc2VydE9wdGlvbnModCx7YmFzZVVybDpILnNwZWxsaW5nKCJiYXNlVVJMIiksd2l0aFhzcmZUb2tlbjpILnNwZWxsaW5nKCJ3aXRoWFNSRlRva2VuIil9LCEwKSx0Lm1ldGhvZD0odC5tZXRob2R8fHRoaXMuZGVmYXVsdHMubWV0aG9kfHwiZ2V0IikudG9Mb3dlckNhc2UoKTtsZXQgYT1yJiZFLm1lcmdlKHIuY29tbW9uLHJbdC5tZXRob2RdKTtyJiZFLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sST0+e2RlbGV0ZSByW0ldfSksdC5oZWFkZXJzPWsuY29uY2F0KGEscik7bGV0IEM9W10scD0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24oZil7dHlwZW9mIGYucnVuV2hlbj09ImZ1bmN0aW9uIiYmZi5ydW5XaGVuKHQpPT09ITF8fChwPXAmJmYuc3luY2hyb25vdXMsQy51bnNoaWZ0KGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpKX0pO2xldCBCPVtdO3RoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24oZil7Qi5wdXNoKGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpfSk7bGV0IG4sZz0wLGw7aWYoIXApe2xldCBJPVskQS5iaW5kKHRoaXMpLHZvaWQgMF07Zm9yKEkudW5zaGlmdCguLi5DKSxJLnB1c2goLi4uQiksbD1JLmxlbmd0aCxuPVByb21pc2UucmVzb2x2ZSh0KTtnPGw7KW49bi50aGVuKElbZysrXSxJW2crK10pO3JldHVybiBufWw9Qy5sZW5ndGg7bGV0IHM9dDtmb3IoZz0wO2c8bDspe2xldCBJPUNbZysrXSxmPUNbZysrXTt0cnl7cz1JKHMpfWNhdGNoKHUpe2YuY2FsbCh0aGlzLHUpO2JyZWFrfX10cnl7bj0kQS5jYWxsKHRoaXMscyl9Y2F0Y2goSSl7cmV0dXJuIFByb21pc2UucmVqZWN0KEkpfWZvcihnPTAsbD1CLmxlbmd0aDtnPGw7KW49bi50aGVuKEJbZysrXSxCW2crK10pO3JldHVybiBufWdldFVyaShlKXtlPUwodGhpcy5kZWZhdWx0cyxlKTtsZXQgdD1SQShlLmJhc2VVUkwsZS51cmwsZS5hbGxvd0Fic29sdXRlVXJscyk7cmV0dXJuIHlBKHQsZS5wYXJhbXMsZS5wYXJhbXNTZXJpYWxpemVyKX19O0UuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJvcHRpb25zIl0sZnVuY3Rpb24oZSl7Z0EucHJvdG90eXBlW2VdPWZ1bmN0aW9uKHQsaSl7cmV0dXJuIHRoaXMucmVxdWVzdChMKGl8fHt9LHttZXRob2Q6ZSx1cmw6dCxkYXRhOihpfHx7fSkuZGF0YX0pKX19KTtFLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSxmdW5jdGlvbihlKXtmdW5jdGlvbiB0KGkpe3JldHVybiBmdW5jdGlvbihyLGEsQyl7cmV0dXJuIHRoaXMucmVxdWVzdChMKEN8fHt9LHttZXRob2Q6ZSxoZWFkZXJzOmk/eyJDb250ZW50LVR5cGUiOiJtdWx0aXBhcnQvZm9ybS1kYXRhIn06e30sdXJsOnIsZGF0YTphfSkpfX1nQS5wcm90b3R5cGVbZV09dCgpLGdBLnByb3RvdHlwZVtlKyJGb3JtIl09dCghMCl9KTt2YXIga0E9Z0E7dmFyIEdlPWNsYXNzIEF7Y29uc3RydWN0b3IoZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO2xldCB0O3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihyKXt0PXJ9KTtsZXQgaT10aGlzO3RoaXMucHJvbWlzZS50aGVuKG89PntpZighaS5fbGlzdGVuZXJzKXJldHVybjtsZXQgcj1pLl9saXN0ZW5lcnMubGVuZ3RoO2Zvcig7ci0tID4wOylpLl9saXN0ZW5lcnNbcl0obyk7aS5fbGlzdGVuZXJzPW51bGx9KSx0aGlzLnByb21pc2UudGhlbj1vPT57bGV0IHIsYT1uZXcgUHJvbWlzZShDPT57aS5zdWJzY3JpYmUoQykscj1DfSkudGhlbihvKTtyZXR1cm4gYS5jYW5jZWw9ZnVuY3Rpb24oKXtpLnVuc3Vic2NyaWJlKHIpfSxhfSxlKGZ1bmN0aW9uKHIsYSxDKXtpLnJlYXNvbnx8KGkucmVhc29uPW5ldyBZKHIsYSxDKSx0KGkucmVhc29uKSl9KX10aHJvd0lmUmVxdWVzdGVkKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259c3Vic2NyaWJlKGUpe2lmKHRoaXMucmVhc29uKXtlKHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKGUpOnRoaXMuX2xpc3RlbmVycz1bZV19dW5zdWJzY3JpYmUoZSl7aWYoIXRoaXMuX2xpc3RlbmVycylyZXR1cm47bGV0IHQ9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YoZSk7dCE9PS0xJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKHQsMSl9dG9BYm9ydFNpZ25hbCgpe2xldCBlPW5ldyBBYm9ydENvbnRyb2xsZXIsdD1pPT57ZS5hYm9ydChpKX07cmV0dXJuIHRoaXMuc3Vic2NyaWJlKHQpLGUuc2lnbmFsLnVuc3Vic2NyaWJlPSgpPT50aGlzLnVuc3Vic2NyaWJlKHQpLGUuc2lnbmFsfXN0YXRpYyBzb3VyY2UoKXtsZXQgZTtyZXR1cm57dG9rZW46bmV3IEEoZnVuY3Rpb24obyl7ZT1vfSksY2FuY2VsOmV9fX0sZnI9R2U7ZnVuY3Rpb24gTWUoQSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBBLmFwcGx5KG51bGwsdCl9fWZ1bmN0aW9uIFdlKEEpe3JldHVybiBFLmlzT2JqZWN0KEEpJiZBLmlzQXhpb3NFcnJvcj09PSEwfXZhciBQZT17Q29udGludWU6MTAwLFN3aXRjaGluZ1Byb3RvY29sczoxMDEsUHJvY2Vzc2luZzoxMDIsRWFybHlIaW50czoxMDMsT2s6MjAwLENyZWF0ZWQ6MjAxLEFjY2VwdGVkOjIwMixOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb246MjAzLE5vQ29udGVudDoyMDQsUmVzZXRDb250ZW50OjIwNSxQYXJ0aWFsQ29udGVudDoyMDYsTXVsdGlTdGF0dXM6MjA3LEFscmVhZHlSZXBvcnRlZDoyMDgsSW1Vc2VkOjIyNixNdWx0aXBsZUNob2ljZXM6MzAwLE1vdmVkUGVybWFuZW50bHk6MzAxLEZvdW5kOjMwMixTZWVPdGhlcjozMDMsTm90TW9kaWZpZWQ6MzA0LFVzZVByb3h5OjMwNSxVbnVzZWQ6MzA2LFRlbXBvcmFyeVJlZGlyZWN0OjMwNyxQZXJtYW5lbnRSZWRpcmVjdDozMDgsQmFkUmVxdWVzdDo0MDAsVW5hdXRob3JpemVkOjQwMSxQYXltZW50UmVxdWlyZWQ6NDAyLEZvcmJpZGRlbjo0MDMsTm90Rm91bmQ6NDA0LE1ldGhvZE5vdEFsbG93ZWQ6NDA1LE5vdEFjY2VwdGFibGU6NDA2LFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDo0MDcsUmVxdWVzdFRpbWVvdXQ6NDA4LENvbmZsaWN0OjQwOSxHb25lOjQxMCxMZW5ndGhSZXF1aXJlZDo0MTEsUHJlY29uZGl0aW9uRmFpbGVkOjQxMixQYXlsb2FkVG9vTGFyZ2U6NDEzLFVyaVRvb0xvbmc6NDE0LFVuc3VwcG9ydGVkTWVkaWFUeXBlOjQxNSxSYW5nZU5vdFNhdGlzZmlhYmxlOjQxNixFeHBlY3RhdGlvbkZhaWxlZDo0MTcsSW1BVGVhcG90OjQxOCxNaXNkaXJlY3RlZFJlcXVlc3Q6NDIxLFVucHJvY2Vzc2FibGVFbnRpdHk6NDIyLExvY2tlZDo0MjMsRmFpbGVkRGVwZW5kZW5jeTo0MjQsVG9vRWFybHk6NDI1LFVwZ3JhZGVSZXF1aXJlZDo0MjYsUHJlY29uZGl0aW9uUmVxdWlyZWQ6NDI4LFRvb01hbnlSZXF1ZXN0czo0MjksUmVxdWVzdEhlYWRlckZpZWxkc1Rvb0xhcmdlOjQzMSxVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczo0NTEsSW50ZXJuYWxTZXJ2ZXJFcnJvcjo1MDAsTm90SW1wbGVtZW50ZWQ6NTAxLEJhZEdhdGV3YXk6NTAyLFNlcnZpY2VVbmF2YWlsYWJsZTo1MDMsR2F0ZXdheVRpbWVvdXQ6NTA0LEh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOjUwNSxWYXJpYW50QWxzb05lZ290aWF0ZXM6NTA2LEluc3VmZmljaWVudFN0b3JhZ2U6NTA3LExvb3BEZXRlY3RlZDo1MDgsTm90RXh0ZW5kZWQ6NTEwLE5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOjUxMX07T2JqZWN0LmVudHJpZXMoUGUpLmZvckVhY2goKFtBLGVdKT0+e1BlW2VdPUF9KTt2YXIgY3I9UGU7ZnVuY3Rpb24gbXIoQSl7bGV0IGU9bmV3IGtBKEEpLHQ9ZkEoa0EucHJvdG90eXBlLnJlcXVlc3QsZSk7cmV0dXJuIEUuZXh0ZW5kKHQsa0EucHJvdG90eXBlLGUse2FsbE93bktleXM6ITB9KSxFLmV4dGVuZCh0LGUsbnVsbCx7YWxsT3duS2V5czohMH0pLHQuY3JlYXRlPWZ1bmN0aW9uKG8pe3JldHVybiBtcihMKEEsbykpfSx0fXZhciBSPW1yKGFBKTtSLkF4aW9zPWtBO1IuQ2FuY2VsZWRFcnJvcj1ZO1IuQ2FuY2VsVG9rZW49ZnI7Ui5pc0NhbmNlbD1EQTtSLlZFUlNJT049QWU7Ui50b0Zvcm1EYXRhPXY7Ui5BeGlvc0Vycm9yPWg7Ui5DYW5jZWw9Ui5DYW5jZWxlZEVycm9yO1IuYWxsPWZ1bmN0aW9uKGUpe3JldHVybiBQcm9taXNlLmFsbChlKX07Ui5zcHJlYWQ9TWU7Ui5pc0F4aW9zRXJyb3I9V2U7Ui5tZXJnZUNvbmZpZz1MO1IuQXhpb3NIZWFkZXJzPWs7Ui5mb3JtVG9KU09OPUE9PlpBKEUuaXNIVE1MRm9ybShBKT9uZXcgRm9ybURhdGEoQSk6QSk7Ui5nZXRBZGFwdGVyPV9BLmdldEFkYXB0ZXI7Ui5IdHRwU3RhdHVzQ29kZT1jcjtSLmRlZmF1bHQ9Ujt2YXIgQkE9Ujt2YXJ7QXhpb3M6b2csQXhpb3NFcnJvcjpuZyxDYW5jZWxlZEVycm9yOmFnLGlzQ2FuY2VsOnNnLENhbmNlbFRva2VuOklnLFZFUlNJT046Z2csYWxsOkJnLENhbmNlbDpDZyxpc0F4aW9zRXJyb3I6UWcsc3ByZWFkOkVnLHRvRm9ybURhdGE6bGcsQXhpb3NIZWFkZXJzOnBnLEh0dHBTdGF0dXNDb2RlOnVnLGZvcm1Ub0pTT046ZmcsZ2V0QWRhcHRlcjpjZyxtZXJnZUNvbmZpZzptZ309QkE7YXN5bmMgZnVuY3Rpb24gd28oQSxlKXtsZXQgdD1BLGk9bnVsbDtpZih0PT1udWxsKWk9bmV3IFdvcmtlcihuZXcgVVJMKCIuL3dlYi13b3JrZXJzL2l0ay13YXNtLXBpcGVsaW5lLndvcmtlci5qcyIsaW1wb3J0Lm1ldGEudXJsKSx7dHlwZToibW9kdWxlIn0pO2Vsc2UgaWYodC5zdGFydHNXaXRoKCJodHRwIikpe2xldCBvPWF3YWl0IEJBLmdldCh0LHtyZXNwb25zZVR5cGU6ImJsb2IiLHBhcmFtczplfSkscj1VUkwuY3JlYXRlT2JqZWN0VVJMKG8uZGF0YSk7aT1uZXcgV29ya2VyKHIse3R5cGU6Im1vZHVsZSJ9KX1lbHNlIGk9bmV3IFdvcmtlcih0LHt0eXBlOiJtb2R1bGUifSk7cmV0dXJuIGl9dmFyIFVBPXdvO2Z1bmN0aW9uIGRyKEEpe2xldCBlPUJlKEEpLHQ9QTtyZXR1cm4gdC50ZXJtaW5hdGVkPSExLHQud29ya2VyUHJveHk9ZSx0Lm9yaWdpbmFsVGVybWluYXRlPXQudGVybWluYXRlLHQudGVybWluYXRlPSgpPT57dC50ZXJtaW5hdGVkPSEwLHQud29ya2VyUHJveHlbZ2VdKCksdC5vcmlnaW5hbFRlcm1pbmF0ZSgpfSx7d29ya2VyUHJveHk6ZSx3b3JrZXI6dH19YXN5bmMgZnVuY3Rpb24gRG8oQSxlLHQpe2xldCBpO2lmKEEhPW51bGwpe2xldCByPUE7cmV0dXJuIHIud29ya2VyUHJveHkhPT12b2lkIDA/KGk9ci53b3JrZXJQcm94eSx7d29ya2VyUHJveHk6aSx3b3JrZXI6cn0pOmRyKEEpfWxldCBvPWF3YWl0IFVBKGUsdCk7cmV0dXJuIGRyKG8pfXZhciB5cj1Ebzt2YXIgYkEscSxMZSxPZT17ZW52OntlbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoOmZ1bmN0aW9uKEEpe0xlPW5ldyBVaW50OEFycmF5KHEuZXhwb3J0cy5tZW1vcnkuYnVmZmVyKX19fSx0ZT1jbGFzc3tpbml0KCl7cmV0dXJuIGJBfHwodHlwZW9mIGZldGNoPCJ1Ij9iQT1mZXRjaCgiZGF0YTphcHBsaWNhdGlvbi93YXNtO2Jhc2U2NCwiK2hyKS50aGVuKGU9PmUuYXJyYXlCdWZmZXIoKSkudGhlbihlPT5XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShlLE9lKSkudGhlbih0aGlzLl9pbml0KTpiQT1XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShCdWZmZXIuZnJvbShociwiYmFzZTY0IiksT2UpLnRoZW4odGhpcy5faW5pdCksYkEpfV9pbml0KGUpe3E9ZS5pbnN0YW5jZSxPZS5lbnYuZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aCgwKX1kZWNvZGUoZSx0PTApe2lmKCFxKXRocm93IG5ldyBFcnJvcigiWlNURERlY29kZXI6IEF3YWl0IC5pbml0KCkgYmVmb3JlIGRlY29kaW5nLiIpO2xldCBpPWUuYnl0ZUxlbmd0aCxvPXEuZXhwb3J0cy5tYWxsb2MoaSk7TGUuc2V0KGUsbyksdD10fHxOdW1iZXIocS5leHBvcnRzLlpTVERfZmluZERlY29tcHJlc3NlZFNpemUobyxpKSk7bGV0IHI9cS5leHBvcnRzLm1hbGxvYyh0KSxhPXEuZXhwb3J0cy5aU1REX2RlY29tcHJlc3Mocix0LG8saSksQz1MZS5zbGljZShyLHIrYSk7cmV0dXJuIHEuZXhwb3J0cy5mcmVlKG8pLHEuZXhwb3J0cy5mcmVlKHIpLEN9fSxocj0iQUdGemJRRUFBQUFCYmc1Z0EzOS9md0YvWUFGL0FYOWdBbjkvQUdBQmZ3QmdCWDkvZjM5L0FYOWdBMzkvZndCZ0JIOS9mMzhCZjJBQUFYOWdBbjkvQVg5Z0IzOS9mMzkvZjM4QmYyQUNmMzhCZm1BSWYzOS9mMzkvZjM4QmYyQUZmMzkvZjM4QVlBNS9mMzkvZjM5L2YzOS9mMzkvZndGL0FpY0JBMlZ1ZGg5bGJYTmpjbWx3ZEdWdVgyNXZkR2xtZVY5dFpXMXZjbmxmWjNKdmQzUm9BQU1ESXlJSEFBQUJBUU1IQXdFQUNRUUFCUUVJQ0FFRkJnUUVCQU1HQUFBS0FBVUxEQTBHQkFVQmNBRUJBUVVIQVFHQUFvQ0FBZ1lJQVg4QlFZQ2pCQXNIcmdFTEJtMWxiVzl5ZVFJQUJtMWhiR3h2WXdBRkJHWnlaV1VBQmd4YVUxUkVYMmx6UlhKeWIzSUFFaGxhVTFSRVgyWnBibVJFWldOdmJYQnlaWE56WldSVGFYcGxBQndQV2xOVVJGOWtaV052YlhCeVpYTnpBQ0laWDE5cGJtUnBjbVZqZEY5bWRXNWpkR2x2Ymw5MFlXSnNaUUVBRUY5ZlpYSnlibTlmYkc5allYUnBiMjRBQVFsemRHRmphMU5oZG1VQUJ3eHpkR0ZqYTFKbGMzUnZjbVVBQ0FwemRHRmphMEZzYkc5akFBa0tpL0lCSWdVQVFZUWZDek1CQVg4Z0FnUkFJQUFoQXdOQUlBTWdBUzBBQURvQUFDQURRUUZxSVFNZ0FVRUJhaUVCSUFKQkFXc2lBZzBBQ3dzZ0FBc3BBUUYvSUFJRVFDQUFJUU1EUUNBRElBRTZBQUFnQTBFQmFpRURJQUpCQVdzaUFnMEFDd3NnQUF0c0FRSi9RWUFmS0FJQUlnRWdBRUVIYWtGNGNTSUNhaUVBQWtBZ0FrRUFJQUFnQVUwYkRRQWdBRDhBUVJCMFN3UkFJQUEvQUVFUWRHdEIvLzhEYWtFUWRrQUFRWDlHQkg5QkFBVkJBQkFBUVFFTFJRMEJDMEdBSHlBQU5nSUFJQUVQQzBHRUgwRXdOZ0lBUVg4THVTY0JDMzhqQUVFUWF5SUtKQUFDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCaUI4b0FnQWlCa0VRSUFCQkMycEJlSEVnQUVFTFNSc2lCVUVEZGlJQWRpSUJRUU54QkVBQ1FDQUJRWDl6UVFGeElBQnFJZ0pCQTNRaUFVR3dIMm9pQUNBQlFiZ2ZhaWdDQUNJQktBSUlJZ1JHQkVCQmlCOGdCa0YrSUFKM2NUWUNBQXdCQ3lBRUlBQTJBZ3dnQUNBRU5nSUlDeUFCUVFocUlRQWdBU0FDUVFOMElnSkJBM0kyQWdRZ0FTQUNhaUlCSUFFb0FnUkJBWEkyQWdRTUR3c2dCVUdRSHlnQ0FDSUhUUTBCSUFFRVFBSkFRUUlnQUhRaUFrRUFJQUpyY2lBQklBQjBjV2dpQVVFRGRDSUFRYkFmYWlJQ0lBQkJ1QjlxS0FJQUlnQW9BZ2dpQkVZRVFFR0lIeUFHUVg0Z0FYZHhJZ1kyQWdBTUFRc2dCQ0FDTmdJTUlBSWdCRFlDQ0FzZ0FDQUZRUU55TmdJRUlBQWdCV29pQ0NBQlFRTjBJZ0VnQldzaUJFRUJjallDQkNBQUlBRnFJQVEyQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUZCbkI4b0FnQWhBZ0ovSUFaQkFTQUhRUU4yZENJRGNVVUVRRUdJSHlBRElBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEF5QUJJQUkyQWdnZ0F5QUNOZ0lNSUFJZ0FUWUNEQ0FDSUFNMkFnZ0xJQUJCQ0dvaEFFR2NIeUFJTmdJQVFaQWZJQVEyQWdBTUR3dEJqQjhvQWdBaUMwVU5BU0FMYUVFQ2RFRzRJV29vQWdBaUFpZ0NCRUY0Y1NBRmF5RURJQUloQVFOQUFrQWdBU2dDRUNJQVJRUkFJQUVvQWhRaUFFVU5BUXNnQUNnQ0JFRjRjU0FGYXlJQklBTWdBU0FEU1NJQkd5RURJQUFnQWlBQkd5RUNJQUFoQVF3QkN3c2dBaWdDR0NFSklBSWdBaWdDRENJRVJ3UkFRWmdmS0FJQUdpQUNLQUlJSWdBZ0JEWUNEQ0FFSUFBMkFnZ01EZ3NnQWtFVWFpSUJLQUlBSWdCRkJFQWdBaWdDRUNJQVJRMERJQUpCRUdvaEFRc0RRQ0FCSVFnZ0FDSUVRUlJxSWdFb0FnQWlBQTBBSUFSQkVHb2hBU0FFS0FJUUlnQU5BQXNnQ0VFQU5nSUFEQTBMUVg4aEJTQUFRYjkvU3cwQUlBQkJDMm9pQUVGNGNTRUZRWXdmS0FJQUlnaEZEUUJCQUNBRmF5RURBa0FDUUFKQUFuOUJBQ0FGUVlBQ1NRMEFHa0VmSUFWQi8vLy9CMHNOQUJvZ0JVRW1JQUJCQ0habklnQnJka0VCY1NBQVFRRjBhMEUrYWdzaUIwRUNkRUc0SVdvb0FnQWlBVVVFUUVFQUlRQU1BUXRCQUNFQUlBVkJHU0FIUVFGMmEwRUFJQWRCSDBjYmRDRUNBMEFDUUNBQktBSUVRWGh4SUFWcklnWWdBMDhOQUNBQklRUWdCaUlERFFCQkFDRURJQUVoQUF3REN5QUFJQUVvQWhRaUJpQUdJQUVnQWtFZGRrRUVjV29vQWhBaUFVWWJJQUFnQmhzaEFDQUNRUUYwSVFJZ0FRMEFDd3NnQUNBRWNrVUVRRUVBSVFSQkFpQUhkQ0lBUVFBZ0FHdHlJQWh4SWdCRkRRTWdBR2hCQW5SQnVDRnFLQUlBSVFBTElBQkZEUUVMQTBBZ0FDZ0NCRUY0Y1NBRmF5SUNJQU5KSVFFZ0FpQURJQUViSVFNZ0FDQUVJQUViSVFRZ0FDZ0NFQ0lCQkg4Z0FRVWdBQ2dDRkFzaUFBMEFDd3NnQkVVTkFDQURRWkFmS0FJQUlBVnJUdzBBSUFRb0FoZ2hCeUFFSUFRb0Fnd2lBa2NFUUVHWUh5Z0NBQm9nQkNnQ0NDSUFJQUkyQWd3Z0FpQUFOZ0lJREF3TElBUkJGR29pQVNnQ0FDSUFSUVJBSUFRb0FoQWlBRVVOQXlBRVFSQnFJUUVMQTBBZ0FTRUdJQUFpQWtFVWFpSUJLQUlBSWdBTkFDQUNRUkJxSVFFZ0FpZ0NFQ0lBRFFBTElBWkJBRFlDQUF3TEN5QUZRWkFmS0FJQUlnUk5CRUJCbkI4b0FnQWhBQUpBSUFRZ0JXc2lBVUVRVHdSQUlBQWdCV29pQWlBQlFRRnlOZ0lFSUFBZ0JHb2dBVFlDQUNBQUlBVkJBM0kyQWdRTUFRc2dBQ0FFUVFOeU5nSUVJQUFnQkdvaUFTQUJLQUlFUVFGeU5nSUVRUUFoQWtFQUlRRUxRWkFmSUFFMkFnQkJuQjhnQWpZQ0FDQUFRUWhxSVFBTURRc2dCVUdVSHlnQ0FDSUNTUVJBUVpRZklBSWdCV3NpQVRZQ0FFR2dIMEdnSHlnQ0FDSUFJQVZxSWdJMkFnQWdBaUFCUVFGeU5nSUVJQUFnQlVFRGNqWUNCQ0FBUVFocUlRQU1EUXRCQUNFQUlBVkJMMm9pQXdKL1FlQWlLQUlBQkVCQjZDSW9BZ0FNQVF0QjdDSkNmemNDQUVIa0lrS0FvSUNBZ0lBRU53SUFRZUFpSUFwQkRHcEJjSEZCMktyVnFnVnpOZ0lBUWZRaVFRQTJBZ0JCeENKQkFEWUNBRUdBSUFzaUFXb2lCa0VBSUFGcklnaHhJZ0VnQlUwTkRFSEFJaWdDQUNJRUJFQkJ1Q0lvQWdBaUJ5QUJhaUlKSUFkTklBUWdDVWx5RFEwTEFrQkJ4Q0l0QUFCQkJIRkZCRUFDUUFKQUFrQUNRRUdnSHlnQ0FDSUVCRUJCeUNJaEFBTkFJQVFnQUNnQ0FDSUhUd1JBSUFjZ0FDZ0NCR29nQkVzTkF3c2dBQ2dDQ0NJQURRQUxDMEVBRUFRaUFrRi9SZzBESUFFaEJrSGtJaWdDQUNJQVFRRnJJZ1FnQW5FRVFDQUJJQUpySUFJZ0JHcEJBQ0FBYTNGcUlRWUxJQVVnQms4TkEwSEFJaWdDQUNJQUJFQkJ1Q0lvQWdBaUJDQUdhaUlJSUFSTklBQWdDRWx5RFFRTElBWVFCQ0lBSUFKSERRRU1CUXNnQmlBQ2F5QUljU0lHRUFRaUFpQUFLQUlBSUFBb0FnUnFSZzBCSUFJaEFBc2dBRUYvUmcwQklBVkJNR29nQmswRVFDQUFJUUlNQkF0QjZDSW9BZ0FpQWlBRElBWnJha0VBSUFKcmNTSUNFQVJCZjBZTkFTQUNJQVpxSVFZZ0FDRUNEQU1MSUFKQmYwY05BZ3RCeENKQnhDSW9BZ0JCQkhJMkFnQUxJQUVRQkNJQ1FYOUdRUUFRQkNJQVFYOUdjaUFBSUFKTmNnMEZJQUFnQW1zaUJpQUZRU2hxVFEwRkMwRzRJa0c0SWlnQ0FDQUdhaUlBTmdJQVFid2lLQUlBSUFCSkJFQkJ2Q0lnQURZQ0FBc0NRRUdnSHlnQ0FDSURCRUJCeUNJaEFBTkFJQUlnQUNnQ0FDSUJJQUFvQWdRaUJHcEdEUUlnQUNnQ0NDSUFEUUFMREFRTFFaZ2ZLQUlBSWdCQkFDQUFJQUpORzBVRVFFR1lIeUFDTmdJQUMwRUFJUUJCekNJZ0JqWUNBRUhJSWlBQ05nSUFRYWdmUVg4MkFnQkJyQjlCNENJb0FnQTJBZ0JCMUNKQkFEWUNBQU5BSUFCQkEzUWlBVUc0SDJvZ0FVR3dIMm9pQkRZQ0FDQUJRYndmYWlBRU5nSUFJQUJCQVdvaUFFRWdSdzBBQzBHVUh5QUdRU2hySWdCQmVDQUNhMEVIY1NJQmF5SUVOZ0lBUWFBZklBRWdBbW9pQVRZQ0FDQUJJQVJCQVhJMkFnUWdBQ0FDYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFRTElBSWdBMDBnQVNBRFMzSU5BaUFBS0FJTVFRaHhEUUlnQUNBRUlBWnFOZ0lFUWFBZklBTkJlQ0FEYTBFSGNTSUFhaUlCTmdJQVFaUWZRWlFmS0FJQUlBWnFJZ0lnQUdzaUFEWUNBQ0FCSUFCQkFYSTJBZ1FnQWlBRGFrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBTUxRUUFoQkF3S0MwRUFJUUlNQ0F0Qm1COG9BZ0FnQWtzRVFFR1lIeUFDTmdJQUN5QUNJQVpxSVFGQnlDSWhBQUpBQWtBQ1FBTkFJQUVnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEJ5Q0loQUFOQUlBTWdBQ2dDQUNJQlR3UkFJQUVnQUNnQ0JHb2lCQ0FEU3cwREN5QUFLQUlJSVFBTUFBc0FDeUFBSUFJMkFnQWdBQ0FBS0FJRUlBWnFOZ0lFSUFKQmVDQUNhMEVIY1dvaUJ5QUZRUU55TmdJRUlBRkJlQ0FCYTBFSGNXb2lCaUFGSUFkcUlnVnJJUUFnQXlBR1JnUkFRYUFmSUFVMkFnQkJsQjlCbEI4b0FnQWdBR29pQURZQ0FDQUZJQUJCQVhJMkFnUU1DQXRCbkI4b0FnQWdCa1lFUUVHY0h5QUZOZ0lBUVpBZlFaQWZLQUlBSUFCcUlnQTJBZ0FnQlNBQVFRRnlOZ0lFSUFBZ0JXb2dBRFlDQUF3SUN5QUdLQUlFSWdOQkEzRkJBVWNOQmlBRFFYaHhJUWtnQTBIL0FVMEVRQ0FHS0FJTUlnRWdCaWdDQ0NJQ1JnUkFRWWdmUVlnZktBSUFRWDRnQTBFRGRuZHhOZ0lBREFjTElBSWdBVFlDRENBQklBSTJBZ2dNQmdzZ0JpZ0NHQ0VJSUFZZ0JpZ0NEQ0lDUndSQUlBWW9BZ2dpQVNBQ05nSU1JQUlnQVRZQ0NBd0ZDeUFHUVJScUlnRW9BZ0FpQTBVRVFDQUdLQUlRSWdORkRRUWdCa0VRYWlFQkN3TkFJQUVoQkNBRElnSkJGR29pQVNnQ0FDSUREUUFnQWtFUWFpRUJJQUlvQWhBaUF3MEFDeUFFUVFBMkFnQU1CQXRCbEI4Z0JrRW9heUlBUVhnZ0FtdEJCM0VpQVdzaUNEWUNBRUdnSHlBQklBSnFJZ0UyQWdBZ0FTQUlRUUZ5TmdJRUlBQWdBbXBCS0RZQ0JFR2tIMEh3SWlnQ0FEWUNBQ0FESUFSQkp5QUVhMEVIY1dwQkwyc2lBQ0FBSUFOQkVHcEpHeUlCUVJzMkFnUWdBVUhRSWlrQ0FEY0NFQ0FCUWNnaUtRSUFOd0lJUWRBaUlBRkJDR28yQWdCQnpDSWdCallDQUVISUlpQUNOZ0lBUWRRaVFRQTJBZ0FnQVVFWWFpRUFBMEFnQUVFSE5nSUVJQUJCQ0dvZ0FFRUVhaUVBSUFSSkRRQUxJQUVnQTBZTkFDQUJJQUVvQWdSQmZuRTJBZ1FnQXlBQklBTnJJZ0pCQVhJMkFnUWdBU0FDTmdJQUlBSkIvd0ZOQkVBZ0FrRjRjVUd3SDJvaEFBSi9RWWdmS0FJQUlnRkJBU0FDUVFOMmRDSUNjVVVFUUVHSUh5QUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBU0FBSUFNMkFnZ2dBU0FETmdJTUlBTWdBRFlDRENBRElBRTJBZ2dNQVF0Qkh5RUFJQUpCLy8vL0IwMEVRQ0FDUVNZZ0FrRUlkbWNpQUd0MlFRRnhJQUJCQVhSclFUNXFJUUFMSUFNZ0FEWUNIQ0FEUWdBM0FoQWdBRUVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQkVFQklBQjBJZ1p4UlFSQVFZd2ZJQVFnQm5JMkFnQWdBU0FETmdJQURBRUxJQUpCR1NBQVFRRjJhMEVBSUFCQkgwY2JkQ0VBSUFFb0FnQWhCQU5BSUFRaUFTZ0NCRUY0Y1NBQ1JnMENJQUJCSFhZaEJDQUFRUUYwSVFBZ0FTQUVRUVJ4YWlJR0tBSVFJZ1FOQUFzZ0JpQUROZ0lRQ3lBRElBRTJBaGdnQXlBRE5nSU1JQU1nQXpZQ0NBd0JDeUFCS0FJSUlnQWdBellDRENBQklBTTJBZ2dnQTBFQU5nSVlJQU1nQVRZQ0RDQURJQUEyQWdnTFFaUWZLQUlBSWdBZ0JVME5BRUdVSHlBQUlBVnJJZ0UyQWdCQm9COUJvQjhvQWdBaUFDQUZhaUlDTmdJQUlBSWdBVUVCY2pZQ0JDQUFJQVZCQTNJMkFnUWdBRUVJYWlFQURBZ0xRWVFmUVRBMkFnQkJBQ0VBREFjTFFRQWhBZ3NnQ0VVTkFBSkFJQVlvQWh3aUFVRUNkRUc0SVdvaUJDZ0NBQ0FHUmdSQUlBUWdBallDQUNBQ0RRRkJqQjlCakI4b0FnQkJmaUFCZDNFMkFnQU1BZ3NnQ0VFUVFSUWdDQ2dDRUNBR1JodHFJQUkyQWdBZ0FrVU5BUXNnQWlBSU5nSVlJQVlvQWhBaUFRUkFJQUlnQVRZQ0VDQUJJQUkyQWhnTElBWW9BaFFpQVVVTkFDQUNJQUUyQWhRZ0FTQUNOZ0lZQ3lBQUlBbHFJUUFnQmlBSmFpSUdLQUlFSVFNTElBWWdBMEYrY1RZQ0JDQUZJQUJCQVhJMkFnUWdBQ0FGYWlBQU5nSUFJQUJCL3dGTkJFQWdBRUY0Y1VHd0gyb2hBUUovUVlnZktBSUFJZ0pCQVNBQVFRTjJkQ0lBY1VVRVFFR0lIeUFBSUFKeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQUNBQklBVTJBZ2dnQUNBRk5nSU1JQVVnQVRZQ0RDQUZJQUEyQWdnTUFRdEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBVWdBellDSENBRlFnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUFrRUJJQU4wSWdSeFJRUkFRWXdmSUFJZ0JISTJBZ0FnQVNBRk5nSUFEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQWdOQUlBSWlBU2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBaUFEUVFGMElRTWdBU0FDUVFSeGFpSUVLQUlRSWdJTkFBc2dCQ0FGTmdJUUN5QUZJQUUyQWhnZ0JTQUZOZ0lNSUFVZ0JUWUNDQXdCQ3lBQktBSUlJZ0FnQlRZQ0RDQUJJQVUyQWdnZ0JVRUFOZ0lZSUFVZ0FUWUNEQ0FGSUFBMkFnZ0xJQWRCQ0dvaEFBd0NDd0pBSUFkRkRRQUNRQ0FFS0FJY0lnQkJBblJCdUNGcUlnRW9BZ0FnQkVZRVFDQUJJQUkyQWdBZ0FnMEJRWXdmSUFoQmZpQUFkM0VpQ0RZQ0FBd0NDeUFIUVJCQkZDQUhLQUlRSUFSR0cyb2dBallDQUNBQ1JRMEJDeUFDSUFjMkFoZ2dCQ2dDRUNJQUJFQWdBaUFBTmdJUUlBQWdBallDR0FzZ0JDZ0NGQ0lBUlEwQUlBSWdBRFlDRkNBQUlBSTJBaGdMQWtBZ0EwRVBUUVJBSUFRZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQkdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFRZ0JVRURjallDQkNBRUlBVnFJZ0lnQTBFQmNqWUNCQ0FDSUFOcUlBTTJBZ0FnQTBIL0FVMEVRQ0FEUVhoeFFiQWZhaUVBQW45QmlCOG9BZ0FpQVVFQklBTkJBM1owSWdOeFJRUkFRWWdmSUFFZ0EzSTJBZ0FnQUF3QkN5QUFLQUlJQ3lFQklBQWdBallDQ0NBQklBSTJBZ3dnQWlBQU5nSU1JQUlnQVRZQ0NBd0JDMEVmSVFBZ0EwSC8vLzhIVFFSQUlBTkJKaUFEUVFoMlp5SUFhM1pCQVhFZ0FFRUJkR3RCUG1vaEFBc2dBaUFBTmdJY0lBSkNBRGNDRUNBQVFRSjBRYmdoYWlFQkFrQUNRQ0FJUVFFZ0FIUWlCbkZGQkVCQmpCOGdCaUFJY2pZQ0FDQUJJQUkyQWdBTUFRc2dBMEVaSUFCQkFYWnJRUUFnQUVFZlJ4dDBJUUFnQVNnQ0FDRUZBMEFnQlNJQktBSUVRWGh4SUFOR0RRSWdBRUVkZGlFR0lBQkJBWFFoQUNBQklBWkJCSEZxSWdZb0FoQWlCUTBBQ3lBR0lBSTJBaEFMSUFJZ0FUWUNHQ0FDSUFJMkFnd2dBaUFDTmdJSURBRUxJQUVvQWdnaUFDQUNOZ0lNSUFFZ0FqWUNDQ0FDUVFBMkFoZ2dBaUFCTmdJTUlBSWdBRFlDQ0FzZ0JFRUlhaUVBREFFTEFrQWdDVVVOQUFKQUlBSW9BaHdpQUVFQ2RFRzRJV29pQVNnQ0FDQUNSZ1JBSUFFZ0JEWUNBQ0FFRFFGQmpCOGdDMEYrSUFCM2NUWUNBQXdDQ3lBSlFSQkJGQ0FKS0FJUUlBSkdHMm9nQkRZQ0FDQUVSUTBCQ3lBRUlBazJBaGdnQWlnQ0VDSUFCRUFnQkNBQU5nSVFJQUFnQkRZQ0dBc2dBaWdDRkNJQVJRMEFJQVFnQURZQ0ZDQUFJQVEyQWhnTEFrQWdBMEVQVFFSQUlBSWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0Ftb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBSWdCVUVEY2pZQ0JDQUNJQVZxSWdRZ0EwRUJjallDQkNBRElBUnFJQU0yQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUJCbkI4b0FnQWhBUUovUVFFZ0IwRURkblFpQlNBR2NVVUVRRUdJSHlBRklBWnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEJpQUFJQUUyQWdnZ0JpQUJOZ0lNSUFFZ0FEWUNEQ0FCSUFZMkFnZ0xRWndmSUFRMkFnQkJrQjhnQXpZQ0FBc2dBa0VJYWlFQUN5QUtRUkJxSkFBZ0FBdlNDd0VIZndKQUlBQkZEUUFnQUVFSWF5SUNJQUJCQkdzb0FnQWlBVUY0Y1NJQWFpRUZBa0FnQVVFQmNRMEFJQUZCQTNGRkRRRWdBaUFDS0FJQUlnRnJJZ0pCbUI4b0FnQkpEUUVnQUNBQmFpRUFBa0FDUUVHY0h5Z0NBQ0FDUndSQUlBRkIvd0ZOQkVBZ0FVRURkaUVFSUFJb0Fnd2lBU0FDS0FJSUlnTkdCRUJCaUI5QmlCOG9BZ0JCZmlBRWQzRTJBZ0FNQlFzZ0F5QUJOZ0lNSUFFZ0F6WUNDQXdFQ3lBQ0tBSVlJUVlnQWlBQ0tBSU1JZ0ZIQkVBZ0FpZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQUpCRkdvaUJDZ0NBQ0lEUlFSQUlBSW9BaEFpQTBVTkFpQUNRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGS0FJRUlnRkJBM0ZCQTBjTkFrR1FIeUFBTmdJQUlBVWdBVUYrY1RZQ0JDQUNJQUJCQVhJMkFnUWdCU0FBTmdJQUR3dEJBQ0VCQ3lBR1JRMEFBa0FnQWlnQ0hDSURRUUowUWJnaGFpSUVLQUlBSUFKR0JFQWdCQ0FCTmdJQUlBRU5BVUdNSDBHTUh5Z0NBRUYrSUFOM2NUWUNBQXdDQ3lBR1FSQkJGQ0FHS0FJUUlBSkdHMm9nQVRZQ0FDQUJSUTBCQ3lBQklBWTJBaGdnQWlnQ0VDSURCRUFnQVNBRE5nSVFJQU1nQVRZQ0dBc2dBaWdDRkNJRFJRMEFJQUVnQXpZQ0ZDQURJQUUyQWhnTElBSWdCVThOQUNBRktBSUVJZ0ZCQVhGRkRRQUNRQUpBQWtBQ1FDQUJRUUp4UlFSQVFhQWZLQUlBSUFWR0JFQkJvQjhnQWpZQ0FFR1VIMEdVSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUNRWndmS0FJQVJ3MEdRWkFmUVFBMkFnQkJuQjlCQURZQ0FBOExRWndmS0FJQUlBVkdCRUJCbkI4Z0FqWUNBRUdRSDBHUUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FBSUFKcUlBQTJBZ0FQQ3lBQlFYaHhJQUJxSVFBZ0FVSC9BVTBFUUNBQlFRTjJJUVFnQlNnQ0RDSUJJQVVvQWdnaUEwWUVRRUdJSDBHSUh5Z0NBRUYrSUFSM2NUWUNBQXdGQ3lBRElBRTJBZ3dnQVNBRE5nSUlEQVFMSUFVb0FoZ2hCaUFGSUFVb0Fnd2lBVWNFUUVHWUh5Z0NBQm9nQlNnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBVkJGR29pQkNnQ0FDSURSUVJBSUFVb0FoQWlBMFVOQWlBRlFSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZJQUZCZm5FMkFnUWdBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQXdEQzBFQUlRRUxJQVpGRFFBQ1FDQUZLQUljSWdOQkFuUkJ1Q0ZxSWdRb0FnQWdCVVlFUUNBRUlBRTJBZ0FnQVEwQlFZd2ZRWXdmS0FJQVFYNGdBM2R4TmdJQURBSUxJQVpCRUVFVUlBWW9BaEFnQlVZYmFpQUJOZ0lBSUFGRkRRRUxJQUVnQmpZQ0dDQUZLQUlRSWdNRVFDQUJJQU0yQWhBZ0F5QUJOZ0lZQ3lBRktBSVVJZ05GRFFBZ0FTQUROZ0lVSUFNZ0FUWUNHQXNnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUNBQ1Fad2ZLQUlBUncwQVFaQWZJQUEyQWdBUEN5QUFRZjhCVFFSQUlBQkJlSEZCc0I5cUlRRUNmMEdJSHlnQ0FDSURRUUVnQUVFRGRuUWlBSEZGQkVCQmlCOGdBQ0FEY2pZQ0FDQUJEQUVMSUFFb0FnZ0xJUUFnQVNBQ05nSUlJQUFnQWpZQ0RDQUNJQUUyQWd3Z0FpQUFOZ0lJRHd0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFJZ0F6WUNIQ0FDUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtBQ1FFR01IeWdDQUNJRVFRRWdBM1FpQjNGRkJFQkJqQjhnQkNBSGNqWUNBQ0FCSUFJMkFnQWdBaUFCTmdJWURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBUU5BSUFFaUJDZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFTQURRUUYwSVFNZ0JDQUJRUVJ4YWlJSFFSQnFLQUlBSWdFTkFBc2dCeUFDTmdJUUlBSWdCRFlDR0FzZ0FpQUNOZ0lNSUFJZ0FqWUNDQXdCQ3lBRUtBSUlJZ0FnQWpZQ0RDQUVJQUkyQWdnZ0FrRUFOZ0lZSUFJZ0JEWUNEQ0FDSUFBMkFnZ0xRYWdmUWFnZktBSUFRUUZySWdCQmZ5QUFHellDQUFzTEJBQWpBQXNHQUNBQUpBQUxFQUFqQUNBQWEwRndjU0lBSkFBZ0FBdEtBUUYvSUFBZ0FVa0VRQ0FBSUFFZ0FoQUNEd3NnQWdSQUlBQWdBbW9oQXlBQklBSnFJUUVEUUNBRFFRRnJJZ01nQVVFQmF5SUJMUUFBT2dBQUlBSkJBV3NpQWcwQUN3c2dBQXY5RGdJUmZ3RitJd0JCTUdzaUJ5UUFRYmgvSVFnQ1FDQUZSUTBBSUFRc0FBQWlDVUgvQVhFaEN3SkFJQWxCQUVnRVFDQUxRZjRBYTBFQmRpSUdJQVZQRFFKQmJDRUlJQXRCL3dCcklndEIvd0ZMRFFJZ0JFRUJhaUVJUVFBaEJRTkFJQVVnQzA4RVFDQUxJUWdnQmlFTERBTUZJQUFnQldvZ0NDQUZRUUYyYWlJRUxRQUFRUVIyT2dBQUlBQWdCVUVCY21vZ0JDMEFBRUVQY1RvQUFDQUZRUUpxSVFVTUFRc0FDd0FMSUFVZ0MwME5BU0FIUWY4Qk5nSUVJQVlnQjBFRWFpQUhRUWhxSUFSQkFXb2lEaUFMRUF3aUJFR0lmMHNFUUNBRUlRZ01BZ3RCVkNFSUlBY29BZ2dpRUVFR1N3MEJJQWNvQWdRaUVVRUJkQ0lKUVFKcXJVSUJJQkN0aGlJWVFRRWdFSFFpRFVFQmFpSUZyVUlDaG54OFFndDhRdnovLy8vLy8vLy8vd0NEUXVRQ1ZnMEJRVkloQ0NBUlFmOEJTdzBCSUExQmYzTkJBblJCNUFKcXJTQVJRUUZxSWhWQkFYU3RJQmg4UWdoOFZBMEJJQXNnQkdzaEZpQUVJQTVxSVJjZ0JrR0FCR29pRWlBRlFRSjBhaUlSSUFscVFRSnFJUTRnQmtHRUJHb2hFMEdBZ0FJZ0VIUkJFSFloQ1VFQUlRVkJBU0VQSUExQkFXc2lGQ0VLQTBBZ0JTQVZSa1VFUUFKQUlBWWdCVUVCZENJSWFpOEJBQ0lFUWYvL0EwWUVRQ0FUSUFwQkFuUnFJQVU2QUFJZ0NrRUJheUVLUVFFaEJBd0JDeUFQUVFBZ0NTQUV3VW9iSVE4TElBZ2dFV29nQkRzQkFDQUZRUUZxSVFVTUFRc0xJQVlnRHpzQmdnUWdCaUFRT3dHQUJBSkFJQW9nRkVZRVFDQU5RUU4ySVFoQ0FDRVlRUUFoRHdOQUlBd2dGVVlFUUNBSUlBMUJBWFpxUVFOcUlnbEJBWFFoQ0VFQUlRUkJBQ0VLQTBCQkFDRUZJQW9nRFU4TkJBTkFJQVZCQWtaRkJFQWdFeUFGSUFsc0lBUnFJQlJ4UVFKMGFpQU9JQVVnQ21wcUxRQUFPZ0FDSUFWQkFXb2hCUXdCQ3dzZ0NrRUNhaUVLSUFRZ0NHb2dGSEVoQkF3QUN3QUZJQVlnREVFQmRHb3VBUUFoQ1NBT0lBOXFJZ1FnR0RjQUFFRUlJUVVEUUNBRklBbE9SUVJBSUFRZ0JXb2dHRGNBQUNBRlFRaHFJUVVNQVFzTElCaENnWUtFaUpDZ3dJQUJmQ0VZSUF4QkFXb2hEQ0FKSUE5cUlROE1BUXNBQ3dBTElBMUJBM1lnRFVFQmRtcEJBMm9oQ0VFQUlRVURRQ0FNSUJWR1JRUkFRUUFoQ1NBR0lBeEJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBSlJrVUVRQ0FUSUFWQkFuUnFJQXc2QUFJRFFDQUZJQWhxSUJSeElnVWdDa3NOQUFzZ0NVRUJhaUVKREFFTEN5QU1RUUZxSVF3TUFRc0xRWDhoQ0NBRkRRSUxJQkJCQVdvaENFRUFJUVVEUUNBRklBMUdSUVJBSUJFZ0V5QUZRUUowYWlJT0xRQUNRUUYwYWlJRUlBUXZBUUFpQ1VFQmFqc0JBQ0FPSUFnZ0NXZEJZSE5xSWdRNkFBTWdEaUFKSUFSMElBMXJPd0VBSUFWQkFXb2hCUXdCQ3dzQ1FBSkFJQVl2QVlJRUJFQWdCMEVjYWlJRUlCY2dGaEFOSWdoQmlIOUxEUUlnQjBFVWFpQUVJQklRRGlBSFFReHFJQVFnRWhBT1FRQWhCUU5BSUFkQkhHb2lCQkFQSUFWQit3RkxjZzBDSUFBZ0JXb2lCaUFIUVJScUlBUVFFRG9BQUNBR0lBZEJER29nQkJBUU9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVNQXdVZ0FDQUVhaUFIUVJScUlBZEJIR29pQkJBUU9nQUFJQVlnQjBFTWFpQUVFQkE2QUFNZ0JVRUVhaUVGREFFTEFBc0FDeUFIUVJ4cUlnUWdGeUFXRUEwaUNFR0lmMHNOQVNBSFFSUnFJQVFnRWhBT0lBZEJER29nQkNBU0VBNUJBQ0VGQTBBZ0IwRWNhaUlFRUE4Z0JVSDdBVXR5UlFSQUlBQWdCV29pQmlBSFFSUnFJQVFRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVRklBQWdCR29nQjBFVWFpQUhRUnhxSWdRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBRElBVkJCR29oQlF3Q0N3c0xBbjhEUUVHNmZ5RUlJQVZCL1FGTERRTWdBQ0FGYWlJR0lBZEJGR29nQjBFY2FpSUpFQkU2QUFBZ0JrRUJhaUVFSUFrUUQwRURSZ1JBSUFkQkRHb2hDRUVDREFJTElBVkIvQUZMRFFNZ0JpQUhRUXhxSUFkQkhHb2lCQkFST2dBQklBVkJBbW9oQlNBRUVBOUJBMGNOQUFzZ0FDQUZhaUVFSUFkQkZHb2hDRUVEQ3lBRUlBZ2dCMEVjYWhBUk9nQUFJQVpxSUFCcklRZ01BUXNDZndOQVFicC9JUWdnQlVIOUFVc05BaUFBSUFWcUlnWWdCMEVVYWlBSFFSeHFJZ2tRRURvQUFDQUdRUUZxSVFRZ0NSQVBRUU5HQkVBZ0IwRU1haUVJUVFJTUFnc2dCVUg4QVVzTkFpQUdJQWRCREdvZ0IwRWNhaUlFRUJBNkFBRWdCVUVDYWlFRklBUVFEMEVEUncwQUN5QUFJQVZxSVFRZ0IwRVVhaUVJUVFNTElBUWdDQ0FIUVJ4cUVCQTZBQUFnQm1vZ0FHc2hDQXNnQ0VHSWYwc05BUXNnQ0NFRVFRQWhCU0FCUVFCQk5CQURJUWxCQUNFS0EwQWdCQ0FGUndSQUlBQWdCV29pQmkwQUFDSUJRUXRMQkVCQmJDRUlEQU1GSUFrZ0FVRUNkR29pQVNBQktBSUFRUUZxTmdJQUlBVkJBV29oQlVFQklBWXRBQUIwUVFGMUlBcHFJUW9NQWdzQUN3dEJiQ0VJSUFwRkRRQWdDbWNpQlVFZmN5SUJRUXRMRFFBZ0EwRWdJQVZyTmdJQVFRRkJBaUFCZENBS2F5SURaMEVmY3lJQmRDQURSdzBBSUFBZ0JHb2dBVUVCYWlJQU9nQUFJQWtnQUVFQ2RHb2lBQ0FBS0FJQVFRRnFOZ0lBSUFrb0FnUWlBRUVDU1NBQVFRRnhjZzBBSUFJZ0JFRUJhallDQUNBTFFRRnFJUWdMSUFkQk1Hb2tBQ0FJQzZBRkFReC9Jd0JCRUdzaURDUUFBbjhnQkVFSFRRUkFJQXhDQURjRENDQU1RUWhxSWdVZ0F5QUVFQUlhUVd3Z0FDQUJJQUlnQlVFSUVBd2lBQ0FBSUFSTEd5QUFJQUJCaVg5Skd3d0JDeUFBUVFBZ0FTZ0NBRUVCYWlJTlFRRjBFQU1oRDBGVUlBTW9BQUFpQmtFUGNTSUFRUXBMRFFBYUlBSWdBRUVGYWpZQ0FDQURJQVJxSWdKQkJHc2hCeUFDUVFkcklRc2dBRUVHYWlFT1FRUWhBaUFHUVFSMklRVkJJQ0FBZENJSVFRRnlJUWxCQUNFQVFRRWhCaUFESVFRRFFBSkFJQVpCQVhGRkJFQURRQ0FGUVg5elFZQ0FnSUI0Y21naUJrRVlTVVVFUUNBQVFTUnFJUUFnQkNBTFRRUi9JQVJCQTJvRklBUWdDMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMSUFJZ0JrRWVjU0lLYWtFQ2FpRUNJQVpCQVhaQkEyd2dBR29nQlNBS2RrRURjV29pQUNBTlR3MEJBbjhnQkNBTFN5QUNRUU4ySUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQVFnQjJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVMSUFVZ0NFRUJhM0VpQmlBSVFRRjBRUUZySWdvZ0NXc2lFRWtFZnlBT1FRRnJCU0FGSUFweElnVWdFRUVBSUFVZ0NFNGJheUVHSUE0TElRVWdEeUFBUVFGMGFpQUdRUUZySWdvN0FRQWdBRUVCYWlFQUlBSWdCV29oQWlBSVFRRWdCbXNnQ2lBR1FRQktHeUFKYWlJSlNnUkFJQWxCQWtnTkFVRWdJQWxuSWdWcklRNUJBU0FGUVI5emRDRUlDeUFBSUExUERRQWdDa0VBUnlFR0FuOGdCQ0FMU3lBQ1FRTjFJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBSWdCQ0FIYTBFRGRHcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMUVd3Z0NVRUJSdzBBR2tGUUlBQWdEVXNOQUJwQmJDQUNRU0JLRFFBYUlBRWdBRUVCYXpZQ0FDQUVJQUpCQjJwQkEzVnFJQU5yQ3lBTVFSQnFKQUFMOGdFQkFYOGdBa1VFUUNBQVFnQTNBZ0FnQUVFQU5nSVFJQUJDQURjQ0NFRzRmdzhMSUFBZ0FUWUNEQ0FBSUFGQkJHbzJBaEFnQWtFRVR3UkFJQUFnQVNBQ2FpSUJRUVJySWdNMkFnZ2dBQ0FES0FBQU5nSUFJQUZCQVdzdEFBQWlBUVJBSUFBZ0FXZEJGMnMyQWdRZ0FnOExJQUJCQURZQ0JFRi9Ed3NnQUNBQk5nSUlJQUFnQVMwQUFDSUROZ0lBQWtBQ1FBSkFJQUpCQW1zT0FnRUFBZ3NnQUNBQkxRQUNRUkIwSUFOeUlnTTJBZ0FMSUFBZ0FTMEFBVUVJZENBRGFqWUNBQXNnQVNBQ2FrRUJheTBBQUNJQlJRUkFJQUJCQURZQ0JFRnNEd3NnQUNBQlp5QUNRUU4wYTBFSmFqWUNCQ0FDQzBRQkFuOGdBU0FDTHdFQUlnTWdBU2dDQkdvaUJEWUNCQ0FBSUFOQkFuUkJvQjFxS0FJQUlBRW9BZ0JCQUNBRWEzWnhOZ0lBSUFFUUR4b2dBQ0FDUVFScU5nSUVDNThCQVFSL1FRTWhBU0FBS0FJRUlnSkJJRTBFUUNBQUtBSUlJZ0VnQUNnQ0VFOEVRQ0FBSUFKQkIzRTJBZ1FnQUNBQklBSkJBM1pySWdJMkFnZ2dBQ0FDS0FBQU5nSUFRUUFQQ3lBQUtBSU1JZ01nQVVZRVFFRUJRUUlnQWtFZ1NSc1BDeUFBSUFFZ0FTQURheUFDUVFOMklnUWdBU0FFYXlBRFNTSUJHeUlEYXlJRU5nSUlJQUFnQWlBRFFRTjBhellDQkNBQUlBUW9BQUEyQWdBTElBRUxTQUVFZnlBQUtBSUVJQUFvQWdCQkFuUnFJZ0l0QUFJZ0FpOEJBQ0VFSUFFZ0FTZ0NCQ0lGSUFJdEFBTWlBbW8yQWdRZ0FDQUVJQUVvQWdBZ0JYUkJBQ0FDYTNacU5nSUFDMUlCQkg4Z0FDZ0NCQ0FBS0FJQVFRSjBhaUlDTFFBQ0lBSXZBUUFoQkNBQklBSXRBQU1pQWlBQktBSUVhaUlGTmdJRUlBQWdCQ0FDUVFKMFFhQWRhaWdDQUNBQktBSUFRUUFnQld0MmNXbzJBZ0FMQ0FBZ0FFR0lmMHNMR2dBZ0FBUkFJQUVFUUNBQ0lBQWdBUkVDQUE4TElBQVFCZ3NMcGdnQ0RYOEJmaU1BUVJCcklna2tBQ0FKUVFBMkFnd2dDVUVBTmdJSUFuOENRQ0FEUWVnSmFpQURJQWxCQ0dvZ0NVRU1haUFCSUFJZ0EwR0FBV29RQ3lJUFFZaC9TdzBBUVZRZ0NTZ0NEQ0lFSUFBb0FnQWlBVUgvQVhGQkFXcExEUUVhSUFCQkJHb2hDeUFBSUFGQi80R0FlSEVnQkVFUWRFR0FnUHdIY1hJMkFnQkJmeUFFSUFSQkFFZ2JRUUZxSVFCQkFDRUJJQWtvQWdnaEJVRUFJUUlEUUNBQUlBSkdCRUFnQlVFRGF5RUJRUUFoQUFOQUFrQkJBQ0VDSUFBZ0FVNEVRQU5BSUFBZ0JVNE5BaUFESUFBZ0EycEI2QWxxTFFBQVFRSjBha0ZBYXlJQklBRW9BZ0FpQVVFQmFqWUNBQ0FCSUFOcUlBQTZBT2dISUFCQkFXb2hBQXdBQ3dBRkEwQWdBa0VFUmtVRVFDQURJQU1nQUNBQ2FpSUhha0hvQ1dvdEFBQkJBblJxUVVCcklnZ2dDQ2dDQUNJSVFRRnFOZ0lBSUFNZ0NHb2dCem9BNkFjZ0FrRUJhaUVDREFFTEN5QUFRUVJxSVFBTUFnc0FDd3NnQkVFQmFpRU9JQU1vQWdBaEIwRUFJUUJCQVNFSUEwQWdDQ0FPUmcwRElBNGdDR3NoQkNBRElBaEJBblJxS0FJQUlRVUNRQUpBQWtBQ1FBSkFBa0JCQVNBSWRFRUJkU0lOUVFGckRnZ0FBUVFDQkFRRUF3UUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUFJUUVEUUNBQ0lBWkdEUVVnQXlBQ0lBZHFhaTBBNkFjaENpQUxJQUZCQVhScUlnd2dCRG9BQVNBTUlBbzZBQUFnQWtFQmFpRUNJQUZCQVdvaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hDaUFBSVFFRFFDQUNJQXBHRFFRZ0N5QUJRUUYwYWlJR0lBTWdBaUFIYW1vdEFPZ0hJZ3c2QUFJZ0JpQUVPZ0FCSUFZZ0REb0FBQ0FHSUFRNkFBTWdBa0VCYWlFQ0lBRkJBbW9oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUVRUWgwUVlEK0EzRWhCQ0FBSVFFRFFDQUNJQVpHRFFNZ0N5QUJRUUYwYWlBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrTndBQUlBSkJBV29oQWlBQlFRUnFJUUVNQUFzQUMwRUFJUUlnQlVFQUlBVkJBRW9iSVFZZ0JFRUlkRUdBL2dOeElRUWdBQ0VCQTBBZ0FpQUdSZzBDSUFzZ0FVRUJkR29pQ2lBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSWhFM0FBZ2dDaUFSTndBQUlBSkJBV29oQWlBQlFRaHFJUUVNQUFzQUMwRUFJUUVnQlVFQUlBVkJBRW9iSVFvZ0JFRUlkRUdBL2dOeElRd2dBQ0VFQTBBZ0FTQUtSZzBCSUFzZ0JFRUJkR29oRUNBTUlBTWdBU0FIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSVJGQkFDRUNBMEFnQWlBTlRrVUVRQ0FRSUFKQkFYUnFJZ1lnRVRjQUdDQUdJQkUzQUJBZ0JpQVJOd0FJSUFZZ0VUY0FBQ0FDUVJCcUlRSU1BUXNMSUFGQkFXb2hBU0FFSUExcUlRUU1BQXNBQ3lBSVFRRnFJUWdnQlNBSGFpRUhJQVVnRFd3Z0FHb2hBQXdBQ3dBRklBTWdBa0VDZEdvaUIwRkFheUFCTmdJQUlBSkJBV29oQWlBSEtBSUFJQUZxSVFFTUFRc0FDd0FMSUE4TElBbEJFR29rQUF2eUFnRUdmeU1BUVNCcklnVWtBQ0FFS0FJQUlRWWdCVUVNYWlBQ0lBTVFEU0lEUVloL1RRUkFJQVJCQkdvaEFpQUFJQUZxSWdsQkEyc2hCRUVBSUFaQkVIWnJRUjl4SVFNRFFDQUZRUXhxRUE4Z0FDQUVUM0pGQkVBZ0FpQUZLQUlNSWdZZ0JTZ0NFQ0lIZENBRGRrRUJkR29pQ0MwQUFTRUtJQUFnQ0MwQUFEb0FBQ0FDSUFZZ0J5QUthaUlHZENBRGRrRUJkR29pQnkwQUFDRUlJQVVnQmlBSExRQUJhallDRUNBQUlBZzZBQUVnQUVFQ2FpRUFEQUVMQ3dOQUlBVkJER29RRHlFSElBVW9BZ3doQmlBRktBSVFJUVFnQUNBSlR5QUhja1VFUUNBQ0lBWWdCSFFnQTNaQkFYUnFJZ1l0QUFBaEJ5QUZJQVFnQmkwQUFXbzJBaEFnQUNBSE9nQUFJQUJCQVdvaEFBd0JDd3NEUUNBQUlBbFBSUVJBSUFJZ0JpQUVkQ0FEZGtFQmRHb2lCeTBBQVNFSUlBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0JDQUlhaUVFREFFTEMwRnNRV3dnQVNBRktBSVVJQVVvQWhoSEd5QUVRU0JIR3lFREN5QUZRU0JxSkFBZ0F3dlBGQUVqZnlNQVFkQUFheUlGSkFCQmJDRUpBa0FnQTBFS1NRMEFBa0FnQXlBQ0x3QUVJZ2NnQWk4QUFDSUlJQUl2QUFJaURXcHFRUVpxSWd4SkRRQWdCQzhCQWlFR0lBVkJQR29nQWtFR2FpSUNJQWdRRFNJSlFZaC9TdzBCSUFWQktHb2dBaUFJYWlJQ0lBMFFEU0lKUVloL1N3MEJJQVZCRkdvZ0FpQU5haUlDSUFjUURTSUpRWWgvU3cwQklBVWdBaUFIYWlBRElBeHJFQTBpQ1VHSWYwc05BU0FFUVFScUlRb2dBQ0FCYWlJZlFRTnJJU0JCQUNBR2EwRWZjU0VMSUFVb0FnZ2hFU0FGS0FJY0lSSWdCU2dDTUNFVElBVW9Ba1FoRkNBRktBSUVJUWtnQlNnQ0dDRU5JQVVvQWl3aERDQUZLQUpBSVFZZ0JTZ0NFQ0VoSUFVb0FpUWhJaUFGS0FJNElTTWdCU2dDVENFa0lBVW9BZ0FoRlNBRktBSVVJUllnQlNnQ0tDRVhJQVVvQWp3aEdFRUJJUThnQUNBQlFRTnFRUUoySWdScUlnTWdCR29pQWlBRWFpSVpJUVFnQWlFSUlBTWhCd05BSUE5QkFYRkZJQVFnSUU5eVJRUkFJQUFnQ2lBWUlBWjBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloR2lBT0xRQURJUkFnQnlBS0lCY2dESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdEaTBBQWlFYklBNHRBQU1oRHlBSUlBb2dGaUFOZENBTGRrRUNkR29pRGk4QkFEc0FBQ0FPTFFBQ0lSd2dEaTBBQXlFZElBUWdDaUFWSUFsMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhIaUFPTFFBRElRNGdBQ0FRYWlJbElBb2dHQ0FHSUJwcUlnWjBJQXQyUVFKMGFpSVFMd0VBT3dBQUlCQXRBQUlnRUMwQUF5RW1JQWNnRDJvaUp5QUtJQmNnRENBYmFpSWFkQ0FMZGtFQ2RHb2lCeThCQURzQUFDQUhMUUFDSVF3Z0J5MEFBeUVRSUFnZ0hXb2lHeUFLSUJZZ0RTQWNhaUlQZENBTGRrRUNkR29pQ0M4QkFEc0FBQ0FJTFFBQ0lRMGdDQzBBQXlFY0lBUWdEbW9pSFNBS0lCVWdDU0FlYWlJT2RDQUxka0VDZEdvaUNTOEJBRHNBQUNBR2FpRUFRUU1oQndKL0lCUWdKRWtFUUNBQUlRWkJBd3dCQ3lBQVFRZHhJUVlnRkNBQVFRTjJheUlVS0FBQUlSaEJBQXNnQ1MwQUF5RWVJQWt0QUFJaENDQU1JQnBxSVFBZ0V5QWpTUVIvSUFBRklCTWdBRUVEZG1zaUV5Z0FBQ0VYUVFBaEJ5QUFRUWR4Q3lFTUlBMGdEMm9oQUNBSGNpRUpRUU1oRHdKL0lCSWdJa2tFUUNBQUlRMUJBd3dCQ3lBQVFRZHhJUTBnRWlBQVFRTjJheUlTS0FBQUlSWkJBQXNnQ0NBT2FpRUFJQWx5SUJFZ0lVa0VmeUFBQlNBUklBQkJBM1pySWhFb0FBQWhGVUVBSVE4Z0FFRUhjUXNoQ1NBbElDWnFJUUFnRUNBbmFpRUhJQnNnSEdvaENDQWRJQjVxSVFRZ0QzSkZJUThNQVFzTElBVWdERFlDTENBRklBWTJBa0FnQlNBTk5nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUlnQjBrZ0FDQURTM0lOQUVGc0lRa2dDQ0FaU3cwQklBTkJBMnNoQ1FOQUlBVkJQR29RRDBVZ0FDQUpTWEVFUUNBQUlBb2dCU2dDUENJTklBVW9Ba0FpREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnQUNBT0xRQURhaUlHSUFvZ0RTQU1JQTR0QUFKcUlnQjBJQXQyUVFKMGFpSU1Md0VBT3dBQUlBVWdBQ0FNTFFBQ2FqWUNRQ0FHSUF3dEFBTnFJUUFNQVFVZ0EwRUNheUVNQTBBZ0JVRThhaEFQSVFZZ0JTZ0NQQ0VOSUFVb0FrQWhDU0FBSUF4TElBWnlSUVJBSUFBZ0NpQU5JQWwwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQ1NBR0xRQUNhallDUUNBQUlBWXRBQU5xSVFBTUFRc0xBMEFnQUNBTVMwVUVRQ0FBSUFvZ0RTQUpkQ0FMZGtFQ2RHb2lCaThCQURzQUFDQUFJQVl0QUFOcUlRQWdDU0FHTFFBQ2FpRUpEQUVMQ3dKQUlBQWdBMDhOQUNBQUlBb2dEU0FKZENBTGRpSUFRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSklBTXRBQUpxSVFrTUFRc2dDVUVmU3cwQVFTQWdDU0FLSUFCQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFrTElBSkJBMnNoREFOQUlBVkJLR29RRDBVZ0J5QU1TWEVFUUNBSElBb2dCU2dDS0NJR0lBVW9BaXdpQUhRZ0MzWkJBblJxSWcwdkFRQTdBQUFnQnlBTkxRQURhaUlESUFvZ0JpQUFJQTB0QUFKcUlnQjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBQ0FHTFFBQ2FqWUNMQ0FESUFZdEFBTnFJUWNNQVFVZ0FrRUNheUVHQTBBZ0JVRW9haEFQSVFNZ0JTZ0NLQ0VNSUFVb0Fpd2hBQ0FHSUFkSklBTnlSUVJBSUFjZ0NpQU1JQUIwSUF0MlFRSjBhaUlETHdFQU93QUFJQVVnQUNBRExRQUNhallDTENBSElBTXRBQU5xSVFjTUFRc0xBMEFnQmlBSFNVVUVRQ0FISUFvZ0RDQUFkQ0FMZGtFQ2RHb2lBeThCQURzQUFDQUhJQU10QUFOcUlRY2dBQ0FETFFBQ2FpRUFEQUVMQ3dKQUlBSWdCMDBOQUNBSElBb2dEQ0FBZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBQUlBTXRBQUpxSVFBTUFRc2dBRUVmU3cwQVFTQWdBQ0FLSUFKQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFBTElCbEJBMnNoREFOQUlBVkJGR29RRDBVZ0NDQU1TWEVFUUNBSUlBb2dCU2dDRkNJR0lBVW9BaGdpQW5RZ0MzWkJBblJxSWcwdkFRQTdBQUFnQ0NBTkxRQURhaUlESUFvZ0JpQUNJQTB0QUFKcUlnSjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBaUFHTFFBQ2FqWUNHQ0FESUFZdEFBTnFJUWdNQVFVZ0dVRUNheUVEQTBBZ0JVRVVhaEFQSVFJZ0JTZ0NGQ0VHSUFVb0FoZ2hCeUFESUFoSklBSnlSUVJBSUFnZ0NpQUdJQWQwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVVnQnlBQ0xRQUNhallDR0NBSUlBSXRBQU5xSVFnTUFRc0xBMEFnQXlBSVNVVUVRQ0FJSUFvZ0JpQUhkQ0FMZGtFQ2RHb2lBaThCQURzQUFDQUlJQUl0QUFOcUlRZ2dCeUFDTFFBQ2FpRUhEQUVMQ3dKQUlBZ2dHVThOQUNBSUlBb2dCaUFIZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSElBTXRBQUpxSVFjTUFRc2dCMEVmU3cwQVFTQWdCeUFLSUFKQkFuUnFMUUFDYWlJQ0lBSkJJRThiSVFjTEEwQWdCUkFQUlNBRUlDQkpjUVJBSUFRZ0NpQUZLQUlBSWdZZ0JTZ0NCQ0lDZENBTGRrRUNkR29pREM4QkFEc0FBQ0FFSUF3dEFBTnFJZ01nQ2lBR0lBSWdEQzBBQW1vaUFuUWdDM1pCQW5ScUlnUXZBUUE3QUFBZ0JTQUNJQVF0QUFKcU5nSUVJQU1nQkMwQUEyb2hCQXdCQlNBZlFRSnJJUU1EUUNBRkVBOGhBaUFGS0FJQUlRWWdCU2dDQkNFSUlBTWdCRWtnQW5KRkJFQWdCQ0FLSUFZZ0NIUWdDM1pCQW5ScUlnSXZBUUE3QUFBZ0JTQUlJQUl0QUFKcU5nSUVJQVFnQWkwQUEyb2hCQXdCQ3dzRFFDQURJQVJKUlFSQUlBUWdDaUFHSUFoMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0FpMEFBMm9oQkNBSUlBSXRBQUpxSVFnTUFRc0xBa0FnQkNBZlR3MEFJQVFnQ2lBR0lBaDBJQXQySWdKQkFuUnFJZ010QUFBNkFBQWdBeTBBQTBFQlJnUkFJQWdnQXkwQUFtb2hDQXdCQ3lBSVFSOUxEUUJCSUNBSUlBb2dBa0VDZEdvdEFBSnFJZ0lnQWtFZ1R4c2hDQXRCYkVGc1FXeEJiRUZzUVd4QmJFRnNJQUVnQ0VFZ1J4c2dCU2dDQ0NBRktBSU1SeHNnQjBFZ1J4c2dCU2dDSENBRktBSWdSeHNnQUVFZ1J4c2dCU2dDTUNBRktBSTBSeHNnQ1VFZ1J4c2dCU2dDUkNBRktBSklSeHNoQ1F3SkN3QUxBQXNBQ3dBTEFBc0FDd0FMQUF0QmJDRUpDeUFGUWRBQWFpUUFJQWtMN0JBQkhuOGpBRUhRQUdzaUJTUUFRV3doQ1FKQUlBTkJDa2tOQUFKQUlBTWdBaThBQkNJR0lBSXZBQUFpQnlBQ0x3QUNJZ2hxYWtFR2FpSU9TUTBBSUFRdkFRSWhEeUFGUVR4cUlBSkJCbW9pQWlBSEVBMGlDVUdJZjBzTkFTQUZRU2hxSUFJZ0Iyb2lBaUFJRUEwaUNVR0lmMHNOQVNBRlFSUnFJQUlnQ0dvaUFpQUdFQTBpQ1VHSWYwc05BU0FGSUFJZ0Jtb2dBeUFPYXhBTklnbEJpSDlMRFFFZ0JFRUVhaUVLSUFBZ0FXb2lIRUVEYXlFZFFRQWdEMnRCSDNFaEN5QUZLQUlJSVJFZ0JTZ0NIQ0VTSUFVb0FqQWhFeUFGS0FKRUlSUWdCU2dDQkNFSklBVW9BaGdoQmlBRktBSXNJUWNnQlNnQ1FDRUlJQVVvQWhBaEhpQUZLQUlrSVI4Z0JTZ0NPQ0VnSUFVb0Frd2hJU0FGS0FJQUlSVWdCU2dDRkNFV0lBVW9BaWdoRnlBRktBSThJUmhCQVNFTklBQWdBVUVEYWtFQ2RpSUNhaUlPSUFKcUlnOGdBbW9pR1NFRUlBOGhBaUFPSVFNRFFDQU5SU0FFSUIxUGNrVUVRQ0FLSUJnZ0NIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFBZ0NpQVhJQWQwSUF0MlFRRjBhaUlNTFFBQklSQWdBeUFNTFFBQU9nQUFJQW9nRmlBR2RDQUxka0VCZEdvaURDMEFBU0VhSUFJZ0RDMEFBRG9BQUNBS0lCVWdDWFFnQzNaQkFYUnFJZ3d0QUFFaEd5QUVJQXd0QUFBNkFBQWdDaUFZSUFnZ0RXb2lDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBRWdDaUFYSUFjZ0VHb2lCM1FnQzNaQkFYUnFJZ3d0QUFFaEVDQURJQXd0QUFBNkFBRWdDaUFXSUFZZ0dtb2lESFFnQzNaQkFYUnFJZ1l0QUFFaEdpQUNJQVl0QUFBNkFBRWdDaUFWSUFrZ0cyb2lHM1FnQzNaQkFYUnFJZ2t0QUFFaElpQUVJQWt0QUFBNkFBRWdDQ0FOYWlFR1FRTWhDUUovSUJRZ0lVa0VRRUVESVEwZ0Jnd0JDeUFVSUFaQkEzWnJJaFFvQUFBaEdFRUFJUTBnQmtFSGNRc2hDQ0FISUJCcUlRWWdFeUFnU1FSL0lBWUZJQk1nQmtFRGRtc2lFeWdBQUNFWFFRQWhDU0FHUVFkeEN5RUhJQXdnR21vaERDQUpJQTF5SVJCQkF5RU5BbjhnRWlBZlNRUkFJQXdoQmtFRERBRUxJQXhCQjNFaEJpQVNJQXhCQTNackloSW9BQUFoRmtFQUN5QWJJQ0pxSVF3Z0VISWhFQ0FSSUI1SkJIOGdEQVVnRVNBTVFRTjJheUlSS0FBQUlSVkJBQ0VOSUF4QkIzRUxJUWtnQkVFQ2FpRUVJQUpCQW1vaEFpQURRUUpxSVFNZ0FFRUNhaUVBSUEwZ0VISkZJUTBNQVFzTElBVWdCellDTENBRklBZzJBa0FnQlNBR05nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUFnRGtzZ0F5QVBTM0lOQUVGc0lRa2dBaUFaU3cwQklBNUJBMnNoQ1FOQUlBVkJQR29RRHlBQUlBbFBja1VFUUNBS0lBVW9BandpQmlBRktBSkFJZ2QwSUF0MlFRRjBhaUlJTFFBQklRd2dBQ0FJTFFBQU9nQUFJQW9nQmlBSElBeHFJZ1owSUF0MlFRRjBhaUlITFFBQUlRZ2dCU0FHSUFjdEFBRnFOZ0pBSUFBZ0NEb0FBU0FBUVFKcUlRQU1BUXNMQTBBZ0JVRThhaEFQSVFjZ0JTZ0NQQ0VHSUFVb0FrQWhDU0FBSUE1UElBZHlSUVJBSUFvZ0JpQUpkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdDU0FHTFFBQmFqWUNRQ0FBSUFjNkFBQWdBRUVCYWlFQURBRUxDd05BSUFBZ0RrOUZCRUFnQ2lBR0lBbDBJQXQyUVFGMGFpSUhMUUFCSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQ1dvaENRd0JDd3NnRDBFRGF5RUFBMEFnQlVFb2FoQVBJQUFnQTAxeVJRUkFJQW9nQlNnQ0tDSUdJQVVvQWl3aUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBRElBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFpd2dBeUFJT2dBQklBTkJBbW9oQXd3QkN3c0RRQ0FGUVNocUVBOGhCeUFGS0FJb0lRWWdCU2dDTENFQUlBTWdEMDhnQjNKRkJFQWdDaUFHSUFCMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBQUlBWXRBQUZxTmdJc0lBTWdCem9BQUNBRFFRRnFJUU1NQVFzTEEwQWdBeUFQVDBVRVFDQUtJQVlnQUhRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FESUFjdEFBQTZBQUFnQTBFQmFpRURJQUFnQ0dvaEFBd0JDd3NnR1VFRGF5RURBMEFnQlVFVWFoQVBJQUlnQTA5eVJRUkFJQW9nQlNnQ0ZDSUdJQVVvQWhnaUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBQ0lBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFoZ2dBaUFJT2dBQklBSkJBbW9oQWd3QkN3c0RRQ0FGUVJScUVBOGhCeUFGS0FJVUlRWWdCU2dDR0NFRElBSWdHVThnQjNKRkJFQWdDaUFHSUFOMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBRElBWXRBQUZxTmdJWUlBSWdCem9BQUNBQ1FRRnFJUUlNQVFzTEEwQWdBaUFaVDBVRVFDQUtJQVlnQTNRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FDSUFjdEFBQTZBQUFnQWtFQmFpRUNJQU1nQ0dvaEF3d0JDd3NEUUNBRkVBOGdCQ0FkVDNKRkJFQWdDaUFGS0FJQUlnSWdCU2dDQkNJR2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBS0lBSWdCaUFJYWlJQ2RDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0FpQUdMUUFCYWpZQ0JDQUVJQWM2QUFFZ0JFRUNhaUVFREFFTEN3TkFJQVVRRHlFSElBVW9BZ0FoQmlBRktBSUVJUUlnQkNBY1R5QUhja1VFUUNBS0lBWWdBblFnQzNaQkFYUnFJZ1l0QUFBaEJ5QUZJQUlnQmkwQUFXbzJBZ1FnQkNBSE9nQUFJQVJCQVdvaEJBd0JDd3NEUUNBRUlCeFBSUVJBSUFvZ0JpQUNkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUVRUUZxSVFRZ0FpQUlhaUVDREFFTEMwRnNRV3hCYkVGc1FXeEJiRUZzUVd3Z0FTQUNRU0JIR3lBRktBSUlJQVVvQWd4SEd5QURRU0JIR3lBRktBSWNJQVVvQWlCSEd5QUFRU0JIR3lBRktBSXdJQVVvQWpSSEd5QUpRU0JIR3lBRktBSkVJQVVvQWtoSEd5RUpEQUVMUVd3aENRc2dCVUhRQUdva0FDQUpDMWdCQTM4Q1FDQUFLQUtRNndFaUFVVU5BQ0FCS0FJQUlBRkJ0TlVCYWlnQ0FDSUNJQUZCdU5VQmFpZ0NBQ0lERUJNZ0FnUkFJQU1nQVNBQ0VRSUFEQUVMSUFFUUJnc2dBRUVBTmdLZzZ3RWdBRUlBTndPUTZ3RUw2UU1DQkg4Q2ZpQUFRUUJCS0JBRElRUWdBa0VCUVFVZ0F4c2lBRWtFUUNBQUR3c2dBVVVFUUVGL0R3dEJBU0VHQWtBQ1FDQURRUUZHRFFBZ0F5RUdJQUVvQUFBaUJVR282cjVwUmcwQVFYWWhBeUFGUVhCeFFkRFV0TUlCUncwQlFRZ2hBeUFDUVFoSkRRRWdBVFVBQkNFSUlBUkJBVFlDRkNBRUlBZzNBd0JCQUE4TElBRWdBaUFHRUJvaUF5QUNTdzBBSUFRZ0F6WUNHRUZ5SVFNZ0FDQUJhaUlGUVFGckxRQUFJZ0pCQ0hFTkFDQUNRU0J4SWdaRkJFQkJjQ0VESUFVdEFBQWlCVUduQVVzTkFTQUZRUWR4clVJQklBVkJBM1pCQ21xdGhpSUlRZ09JZmlBSWZDRUpJQUJCQVdvaEFBc2dBa0VHZGlFRklBSkJBblpCQUNFREFrQUNRQUpBQWtBZ0FrRURjVUVCYXc0REFBRUNBd3NnQUNBQmFpMEFBQ0VESUFCQkFXb2hBQXdDQ3lBQUlBRnFMd0FBSVFNZ0FFRUNhaUVBREFFTElBQWdBV29vQUFBaEF5QUFRUVJxSVFBTFFRRnhJUUlDZmdKQUFrQUNRQUpBSUFWQkFXc09Bd0VDQXdBTFFuOGdCa1VOQXhvZ0FDQUJhakVBQUF3REN5QUFJQUZxTXdBQVFvQUNmQXdDQ3lBQUlBRnFOUUFBREFFTElBQWdBV29wQUFBTElRZ2dCQ0FDTmdJZ0lBUWdBellDSENBRUlBZzNBd0JCQUNFRElBUkJBRFlDRkNBRUlBZ2dDU0FHR3lJSU53TUlJQVJDZ0lBSUlBZ2dDRUtBZ0FoYUd6NENFQXNnQXd0ZkFRRi9RYmgvSVFNZ0FVRUJRUVVnQWhzaUFrOEVmeUFBSUFKcVFRRnJMUUFBSWdCQkEzRkJBblJCb0I1cUtBSUFJQUpxSUFCQkJIWkJESEZCc0I1cUtBSUFhaUFBUVNCeElnRkZhaUFCUVFWMklBQkJ3QUJKY1dvRlFiaC9Dd3NNQUNBQUlBRWdBa0VBRUJrTGx3TUNCWDhDZmlNQVFVQnFJZ1FrQUFKQUEwQWdBVUVGVHdSQUFrQWdBQ2dBQUVGd2NVSFExTFRDQVVZRVFFSitJUWNnQVVFSVNRMEVJQUFvQUFRaUFrRjNTdzBFSUFKQkNHb2lBeUFCU3cwRUlBSkJnWDlKRFFFTUJBc2dCRUVZYWlBQUlBRVFHeUVDUW40Z0JDa0RHRUlBSUFRb0FpeEJBVWNiSUFJYklnZENmVllOQXlBSElBaDhJZ2dnQjFSQ2ZpRUhEUU1DUUFKQUlBRkJDRWtOQUNBQUtBQUFRWEJ4UWREVXRNSUJSdzBBSUFBb0FBUWlBa0YzU3cwRlFiaC9JQUpCQ0dvaUFpQUJJQUpKR3lFRERBRUxJQVJCR0dvZ0FDQUJFQnNpQWtHSWYwc0VRQ0FDSVFNTUFRdEJ1SDhoQXlBQ0RRQWdBU0FFS0FJd0lnSnJJUVVnQUNBQ2FpRUdBMEFnQmlBRklBUkJER29RSFNJRFFZaC9TdzBCSUFOQkEyb2lBaUFGU3dSQVFiaC9JUU1NQWdzZ0JTQUNheUVGSUFJZ0Jtb2hCaUFFS0FJUVJRMEFDeUFFS0FJNEJIOUJ1SDhoQXlBRlFRUkpEUUVnQmtFRWFnVWdCZ3NnQUdzaEF3c2dBMEdJZjBzTkF3c2dBU0FEYXlFQklBQWdBMm9oQUF3QkN3dENmaUFJSUFFYklRY0xJQVJCUUdza0FDQUhDMlFCQVg5QnVIOGhBd0pBSUFGQkEwa05BQ0FBTFFBQ0lRRWdBaUFBTHdBQUlnQkJBWEUyQWdRZ0FpQUFRUUYyUVFOeElnTTJBZ0FnQWlBQUlBRkJFSFJ5UVFOMklnQTJBZ2dDUUFKQUlBTkJBV3NPQXdJQkFBRUxRV3dQQ3lBQUlRTUxJQU1MUkFFQ2Z5QUJJQUlvQWdRaUF5QUJLQUlFYWlJRU5nSUVJQUFnQTBFQ2RFR2dIV29vQWdBZ0FTZ0NBRUVBSUFScmRuRTJBZ0FnQVJBUEdpQUFJQUpCQ0dvMkFnUUx6Z0VCQm45QnVuOGhDZ0pBSUFJb0FnUWlDQ0FDS0FJQUlnbHFJZzBnQVNBQWEwc05BRUZzSVFvZ0NTQUVJQU1vQWdBaUMydExEUUFnQUNBSmFpSUVJQUlvQWdnaURHc2hBaUFBSUFGQklHc2lBQ0FMSUFsQkFCQWdJQU1nQ1NBTGFqWUNBQUpBQWtBZ0JDQUZheUFNVHdSQUlBSWhCUXdCQ3lBTUlBUWdCbXRMRFFJZ0J5QUhJQUlnQldzaUFtb2lBU0FJYWs4RVFDQUVJQUVnQ0JBS0dnd0NDeUFDSUFocUlRZ2dCQ0FCUVFBZ0Ftc1FDaUFDYXlFRUN5QUVJQUFnQlNBSVFRRVFJQXNnRFNFS0N5QUtDOGNFQVFKL0lBQWdBMm9oQmdKQUlBTkJCMHdFUUFOQUlBQWdCazhOQWlBQUlBSXRBQUE2QUFBZ0FFRUJhaUVBSUFKQkFXb2hBZ3dBQ3dBTElBUkJBVVlFUUFKQUlBQWdBbXNpQlVFSFRRUkFJQUFnQWkwQUFEb0FBQ0FBSUFJdEFBRTZBQUVnQUNBQ0xRQUNPZ0FDSUFBZ0FpMEFBem9BQXlBQUlBSWdCVUVDZENJRlFjQWVhaWdDQUdvaUFpZ0FBRFlBQkNBQ0lBVkI0QjVxS0FJQWF5RUNEQUVMSUFBZ0Fpa0FBRGNBQUFzZ0FrRUlhaUVDSUFCQkNHb2hBQXNnQVNBR1R3UkFJQUFnQTJvaEFTQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUEwQWdBQ0FDS1FBQU53QUFJQUpCQ0dvaEFpQUFRUWhxSWdBZ0FVa05BQXdEQ3dBTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dBMEVSU1EwQklBQkJFR29oQUFOQUlBQWdBaWtBRURjQUFDQUFJQUlwQUJnM0FBZ2dBQ0FDS1FBZ053QVFJQUFnQWlrQUtEY0FHQ0FDUVNCcUlRSWdBRUVnYWlJQUlBRkpEUUFMREFFTEFrQWdBQ0FCU3dSQUlBQWhBUXdCQ3lBQklBQnJJUVVDUUNBRVFRRkhJQUFnQW10QkQwcHlSUVJBSUFJaEF3TkFJQUFnQXlrQUFEY0FBQ0FEUVFocUlRTWdBRUVJYWlJQUlBRkpEUUFMREFFTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dCVUVSU0EwQUlBQkJFR29oQUNBQ0lRTURRQ0FBSUFNcEFCQTNBQUFnQUNBREtRQVlOd0FJSUFBZ0F5a0FJRGNBRUNBQUlBTXBBQ2czQUJnZ0EwRWdhaUVESUFCQklHb2lBQ0FCU1EwQUN3c2dBaUFGYWlFQ0N3TkFJQUVnQms4TkFTQUJJQUl0QUFBNkFBQWdBVUVCYWlFQklBSkJBV29oQWd3QUN3QUxDNjRIQWdWL0FYNGpBRUdBQVdzaUVTUUFJQkVnQXpZQ2ZFRi9JUThDUUFKQUFrQUNRQUpBSUFJT0JBRUFBd0lFQ3lBR1JRUkFRYmgvSVE4TUJBdEJiQ0VQSUFVdEFBQWlBaUFEU3cwRElBZ2dBa0VDZENJQ2FpZ0NBQ0VESUFJZ0Iyb29BZ0FoQWlBQVFRQTZBQXNnQUVJQU53SUFJQUFnQWpZQ0RDQUFJQU02QUFvZ0FFRUFPd0VJSUFFZ0FEWUNBRUVCSVE4TUF3c2dBU0FKTmdJQVFRQWhEd3dDQ3lBS1JRUkFRV3doRHd3Q0MwRUFJUThnQzBVZ0RFRVpTSElOQVVFSUlBUjBRUWhxSVFCQkFDRURBMEFnQUNBRFRRMENJQU5CUUdzaEF3d0FDd0FMUVd3aER5QVJJQkZCL0FCcUlCRkIrQUJxSUFVZ0JoQU1JZ05CaUg5TERRQWdFU2dDZUNJQ0lBUkxEUUFnRVNnQ2ZFRUJhaUVKSUFCQkNHb2hDMEdBZ0FJZ0FuUkJFSFVoQlVFQklSQkJBU0FDZENJUFFRRnJJZ29oRWdOQUlBa2dEa2NFUUFKQUlCRWdEa0VCZENJRWFpOEJBQ0lNUWYvL0EwWUVRQ0FMSUJKQkEzUnFJQTQyQWdRZ0VrRUJheUVTUVFFaERBd0JDeUFRUVFBZ0JTQU13VW9iSVJBTElBUWdEV29nRERzQkFDQU9RUUZxSVE0TUFRc0xJQUFnQWpZQ0JDQUFJQkEyQWdBQ1FDQUtJQkpHQkVBZ0RVSHFBR29oQmtFQUlSQkJBQ0VNQTBBZ0NTQVFSZ1JBSUE5QkEzWWdEMEVCZG1wQkEyb2lCVUVCZENFRVFRQWhERUVBSVJJRFFFRUFJUTRnRHlBU1RRMEVBMEFnRGtFQ1J3UkFJQXNnQlNBT2JDQU1haUFLY1VFRGRHb2dCaUFPSUJKcWFpMEFBRFlDQkNBT1FRRnFJUTRNQVFzTElCSkJBbW9oRWlBRUlBeHFJQXB4SVF3TUFBc0FCU0FSSUJCQkFYUnFMZ0VBSVFVZ0JpQU1haUlFSUJNM0FBQkJDQ0VPQTBBZ0JTQU9TZ1JBSUFRZ0Rtb2dFemNBQUNBT1FRaHFJUTRNQVFzTElCTkNnWUtFaUpDZ3dJQUJmQ0VUSUJCQkFXb2hFQ0FGSUF4cUlRd01BUXNBQ3dBTElBOUJBM1lnRDBFQmRtcEJBMm9oQlVFQUlSQkJBQ0VPQTBBZ0NTQVFSZzBCUVFBaERDQVJJQkJCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQU1Sd1JBSUFzZ0RrRURkR29nRURZQ0JBTkFJQVVnRG1vZ0NuRWlEaUFTU3cwQUN5QU1RUUZxSVF3TUFRc0xJQkJCQVdvaEVBd0FDd0FMSUFKQkFXb2hCVUVBSVF3RFFDQU1JQTlIQkVBZ0RTQUxJQXhCQTNScUlna29BZ1FpQkVFQmRHb2lBaUFDTHdFQUlnWkJBV283QVFBZ0NTQUZJQVpuUVdCemFpSUNPZ0FESUFrZ0JpQUNkQ0FQYXpzQkFDQUpJQWdnQkVFQ2RDSUNhaWdDQURvQUFpQUpJQUlnQjJvb0FnQTJBZ1FnREVFQmFpRU1EQUVMQ3lBQklBQTJBZ0FnQXlFUEN5QVJRWUFCYWlRQUlBOEw3Vm9DTzM4R2ZpTUFRZUFCYXlJRUpBQUNRRUd3N0FrUUJTSUZSUVJBUVVBaEJ3d0JDeUFGUWdBM0F2VHFBU0FGUVFBMkFzVHJBU0FGUVFBMkFyVHJBU0FGUWdBM0FwenJBU0FGUVFBMkFyanBBU0FGUVFBMkFxenNDU0FGUWdBM0F0VHJBU0FGUWdBM0FxenJBU0FGUWdBM0E0anJBU0FGUWdBM0F1VHFBU0FGUWdBM0F1VHJBU0FGUVlHQWdNQUFOZ0s4NndFZ0JVSUFOd0trNndFZ0JVSDg2Z0ZxUVFBMkFnQWdCVUdRNndGcVFnQTNBd0FnQlJBWUlBVkJyTlVCYWlFVUlBVkIrT3NCYWlFY0lBVkJzT29CYWlFaUlBVkJvREJxSVNvZ0JVR1lJR29oS3lBRlFhalFBR29oSGlBRlFSQnFJU3dnQlVFSWFpRW9JQVZCQkdvaExTQUZRY0RwQVdvaEtTQUZRWWpyQVdvZ0JFR1VBV29oTHlBRVFZd0JhaUV3SUFSQmhBRnFJVEVnQkVIY0FHb2hNaUFFUWRRQWFpRXpJQVJCekFCcUlUUWdBQ0VkQWtBQ1FBSkFBa0FDUUFOQVFRRkJCU0FGS0FMazZnRWJJUVlDUUFOQUlBTWdCa2tOQVNBQ0tBQUFRWEJ4UWREVXRNSUJSZ1JBUWJoL0lRY2dBMEVJU1EwSUlBSW9BQVFpRGtGM1N3UkFRWEloQnd3SkN5QURJQTVCQ0dvaUNVa05DQ0FPUVlCL1N3UkFJQWtoQnd3SkN5QURJQWxySVFNZ0FpQUphaUVDREFFTEN5QUZRZ0EzQXF6cEFTQUZRZ0EzQStqcEFTQUZRUUEyQXBqckFTQUZRZ0EzQTREcUFTQUZRZ00zQS9qcEFTQUZRYlRwQVdwQ0FEY0NBQ0FGUWZEcEFXcENBRGNEQUNBRlFhalFBR29pQ1VHTWdJRGdBRFlDQUNBRlFhelFBV3BCNEJJcEFnQTNBZ0FnQlVHMDBBRnFRZWdTS0FJQU5nSUFJQVVnQlVFUWFqWUNBQ0FGSUFWQm9EQnFOZ0lFSUFVZ0JVR1lJR28yQWdnZ0JTQUpOZ0lNSUFWQkFVRUZJQVVvQXVUcUFSczJBcnpwQVFKQUlBRkZEUUFnQlNnQ3JPa0JJZ2tnSFVZTkFDQUZJQWsyQXJqcEFTQUZJQjAyQXF6cEFTQUZLQUt3NlFFaERpQUZJQjAyQXJEcEFTQUZJQjBnRGlBSmEybzJBclRwQVF0QnVIOGhDU0FEUVFWQkNTQUZLQUxrNmdFaUJodEpEUVVnQWtFQlFRVWdCaHNnQmhBYUlnNUJpSDlMQkVBZ0RpRUpEQVVMSUFNZ0RrRURha2tOQlNBcElBSWdEaUFHRUJraUJrR0lmMHNFUUNBR0lRa01CUXNnQmcwRkFrQUNRQ0FGS0FLbzZ3RkJBVWNOQUNBRktBS2s2d0VpQ1VVTkFDQUZLQUtVNndGRkRRQWdDU2dDQkVFQmF5SUhJQVVvQXR6cEFTSUtyVUtIbGErdm1MYmVtNTUvZmtMSno5bXk4ZVc2NmllRlFoZUpRcy9XMDc3U3g2dlpRbjVDK2ZQZDhabjJtYXNXZkNJL1FpR0lJRCtGUXMvVzA3N1N4NnZaUW40aVAwSWRpQ0EvaFVMNTg5M3htZmFacXhaK0lqOUNJSWdnUDRXbmNTRUdJQWtvQWdBaEZRTkFRUUFoQ0FKQUlCVWdCa0VDZEdvb0FnQWlDVVVOQUNBSktBSUlRUWhKRFFBZ0NTZ0NCQ0lTS0FBQVFiZkl3dUYrUncwQUlCSW9BQVFoQ0FzZ0NDQUtSd1JBSUFZZ0IzRkJBV29oQmlBSURRRUxDeUFKUlEwQUlBVVFHQ0FGUVg4MkFxRHJBU0FGSUFrMkFwVHJBU0FGSUFVb0F0enBBU0lJTmdLWTZ3RU1BUXNnQlNnQzNPa0JJUWdMQWtBZ0NFVU5BQ0FGS0FLWTZ3RWdDRVlOQUVGZ0lRa01CZ3NDUUNBRktBTGc2UUVFUUNBRklBVW9BdWpxQVNJSlJUWUM3T29CSUFrTkFTQUZRdm5xME5EbnlhSGs0UUEzQTZqcUFTQUZRZ0EzQTZEcUFTQUZRcy9XMDc3U3g2dlpRamNEbU9vQklBVkMxdXVDN3VyOWlmWGdBRGNEa09vQklBVkNBRGNEaU9vQklDSkJBRUVvRUFNYURBRUxJQVZCQURZQzdPb0JDeUFCSUIxcUlTVWdCU0FGS1FQbzZRRWdEcTE4TndQbzZRRWdBeUFPYXlFRElBSWdEbW9oQWlBZElRNERRQ0FDSUFNZ0JFRXNhaEFkSWhWQmlIOUxCRUFnRlNFSkRBWUxJQU5CQTJzaU5TQVZTUTBFSUFKQkEyb2hHMEZzSVFrQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FFS0FJc0RnTUNBUUFWQ3lBVlFmLy9CMHNORXlBVlFRTkpEUklnQlNrRHlPa0JJVDhDUUFKQUlCc3RBQUFpQ1VFRGNTSWFRUUZyRGdNR0FRQUhDeUFGS0FLQTZnRU5BRUZpSVFrTUZRc2dGVUVGU1EwU0lCc29BQUFoQXdKL0FrQUNRQUpBSUFsQkFuWkJBM0VpQ1VFQ2F3NENBUUlBQ3lBSlFRQkhJUWNnQTBFRWRrSC9CM0VoQzBFRElRWWdBMEVPZGtIL0IzRU1BZ3RCQkNFR0lBTkJCSFpCLy84QWNTRUxRUUVoQnlBRFFSSjJEQUVMSUFOQkJIWkIvLzhQY1NJTFFZQ0FDRXNORTBFQklRZEJCU0VHSUFJdEFBZEJDblFnQTBFV2RuSUxJZ2dnQm1vaUNTQVZTdzBTQWtBZ0MwR0JCa2tOQUNBRktBS2M2d0ZGRFFCQkFDRURBMEFnQTBHRGdBRkxEUUVnQTBGQWF5RUREQUFMQUFzZ0JpQWJhaUVQSUJwQkEwY05CaUFGS0FJTUlnSXRBQUZCQ0hRaEF5QUhEUWNnQTBVTkNDQUVRZkFBYWlBUElBZ1FEU0lEUVloL1N3MEpJQUpCQkdvaEJpQUxJQnhxSWhKQkEyc2hDa0VBSUFJdkFRSnJRUjl4SVFjZ0hDRURBMEFnQkVId0FHb1FEMFVnQXlBS1NYRUVRQ0FESUFZZ0JDZ0NjQ0lJSUFRb0FuUWlEM1FnQjNaQkFuUnFJZ0l2QVFBN0FBQWdBeUFDTFFBRGFpSURJQVlnQ0NBUElBSXRBQUpxSWdoMElBZDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0NDQUNMUUFDYWpZQ2RDQURJQUl0QUFOcUlRTU1BUVVnRWtFQ2F5RUlBMEFnQkVId0FHb1FEeUVQSUFRb0FuQWhDaUFFS0FKMElRSWdBeUFJU3lBUGNrVUVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lDaThCQURzQUFDQUVJQUlnQ2kwQUFtbzJBblFnQXlBS0xRQURhaUVEREFFTEN3TkFJQU1nQ0UwRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUR5OEJBRHNBQUNBRElBOHRBQU5xSVFNZ0FpQVBMUUFDYWlFQ0RBRUxDd0pBSUFNZ0VrOE5BQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lBeTBBQURvQUFDQURMUUFEUVFGR0JFQWdBaUFETFFBQ2FpRUNEQUVMSUFKQkgwc05BRUVnSUFJZ0F5MEFBbW9pQWlBQ1FTQlBHeUVDQzBGc1FXd2dDeUFFS0FKNElBUW9BbnhIR3lBQ1FTQkhHeUVEREFzTEFBc0FDeUFFS0FJMElnSWdKU0FPYTBzTkNpQU9SUVJBUVFBaENTQUNEUUlNRGdzZ0RpQWJMUUFBSUFJUUF4b2dBaUVKREF3TElCVWdKU0FPYTBzTkNTQU9EUUZCQUNFSklCVkZEUXdMUWJaL0lRa01FUXNnRGlBYklCVVFBaG9nRlNFSkRBb0xJQndnR3dKL0FrQUNRQUpBSUFsQkFuWkJBM0ZCQVdzT0F3RUFBZ0FMSUFsQkEzWWhBMEVCREFJTElCc3ZBQUJCQkhZaEEwRUNEQUVMSUJWQkJFa05EaUFDTHdBRElBSXRBQVZCRUhSeUlnSkJqNENBQVVzTkRpQUNRUVIySVFOQkF3c2lBbW90QUFBZ0EwRWdhaEFESVFrZ0JTQUROZ0tBNndFZ0JTQUpOZ0x3NmdFZ0FrRUJhaUVKREFVTElCVUNmd0pBQWtBQ1FDQUpRUUoyUVFOeFFRRnJEZ01CQUFJQUN5QUpRUU4ySVFOQkFRd0NDeUFiTHdBQVFRUjJJUU5CQWd3QkN5QUNMd0FESUFJdEFBVkJFSFJ5UVFSMklRTkJBd3NpQWlBRGFpSUpRU0JxU1FSQUlBa2dGVXNORFNBY0lBSWdHMm9nQXhBQ0lRSWdCU0FETmdLQTZ3RWdCU0FDTmdMdzZnRWdBaUFEYWlJQ1FnQTNBQmdnQWtJQU53QVFJQUpDQURjQUNDQUNRZ0EzQUFBTUJRc2dCU0FETmdLQTZ3RWdCU0FDSUJ0cU5nTHc2Z0VNQkFzZ0IwVUVRQ0FlSUE4Z0NDQVVFQlFpQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZTRUREQU1MSUF0RklBaEZjZzBMSUF0QkNIWWlBeUFJSUF0SkJIOGdDRUVFZENBTGJnVkJEd3RCR0d3aUFrR01DR29vQWdCc0lBSkJpQWhxS0FJQWFpSUdRUU4ySUFacUlBSkJnQWhxS0FJQUlBSkJoQWhxS0FJQUlBTnNha2tFUUNNQVFSQnJJaEFrQUNBZUtBSUFJUU1nRkVId0JHcEJBRUhzQUJBRElRWkJWQ0VDQWtBZ0EwSC9BWEVpREVFTVN3MEFBa0FnRkVIY0NXb2dCaUFRUVFocUlCQkJER29nRHlBSUlCUkIzQXRxSWhjUUN5SVNRWWgvU3cwQUlCQW9BZ3dpQmlBTVN3MEJJQlJCcUFWcUlRMGdGRUdrQldvaE5pQWVRUVJxSVJFZ0EwR0FnSUI0Y1NFM0lBWkJBV29pRXlFQ0lBWWhBd05BSUFJaUIwRUJheUVDSUFNaUNrRUJheUVESUJRZ0NrRUNkR29vQXZBRVJRMEFDMEVCSUFjZ0IwRUJUUnNoRmtFQUlRZEJBU0VDQTBBZ0FpQVdSd1JBSUJRZ0FrRUNkQ0lEYWlnQzhBUWhHQ0FESUExcUlBYzJBZ0FnQWtFQmFpRUNJQWNnR0dvaEJ3d0JDd3NnRFNBSE5nSUFRUUFoQWlBUUtBSUlJUU1EUUNBQ0lBTkhCRUFnRFNBQ0lCUnFRZHdKYWkwQUFDSVlRUUowYWlJWklCa29BZ0FpR1VFQmFqWUNBQ0FVSUJsQkFYUnFJaGtnR0RvQTNRVWdHU0FDT2dEY0JTQUNRUUZxSVFJTUFRc0xRUUFoQXlBTlFRQTJBZ0FnRENBR1FYOXphaUVHUVFFaEFnTkFJQUlnRmtjRVFDQVVJQUpCQW5ScUlnMGdBellDQUNBTktBTHdCQ0FDSUFacWRDQURhaUVESUFKQkFXb2hBZ3dCQ3dzZ0RDQVRJQXBySWdaclFRRnFJUW9nQmlFREEwQWdBeUFLU1FSQUlCUWdBMEUwYkdvaERVRUJJUUlEUUNBQ0lCWkhCRUFnRFNBQ1FRSjBJaGhxSUJRZ0dHb29BZ0FnQTNZMkFnQWdBa0VCYWlFQ0RBRUxDeUFEUVFGcUlRTU1BUXNMSUJjZ0ZFRTBFQUloT0NBVVFaQU1haUU1SUJNZ0RHc2hPaUFVUWR3RmFpRVhRUUFoQ2dOQUFrQUNRQ0FISUFwSEJFQkJBU0FNSUJNZ0Z5QUtRUUYwYWlJQ0xRQUJJZzFySWdOckloaDBJUmtnQWkwQUFDRVdJRGdnRFVFQ2RHb2lIeWdDQUNFQ0lBWWdHRTBFUUNBMlFRRWdBeUE2YWlJTklBMUJBVXdiSWlCQkFuUWlKR29vQWdBaERTQTVJQlFnQTBFMGJHcEJOQkFDSVNFZ0RVRUJkQ0VtSUJFZ0FrRUNkR29oSXlBZ1FRRk5EUUlnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFZ0lDRWdKR29vQWdBaEpFRUFJUUlEUUNBQ0lDUkdEUU1nSXlBQ1FRSjBhaUFnTmdFQUlBSkJBV29oQWd3QUN3QUxJQUlnQWlBWmFpSU5JQUlnRFVzYklRMGdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVEQTBBZ0FpQU5SZzBESUJFZ0FrRUNkR29nQXpZQkFDQUNRUUZxSVFJTUFBc0FDeUFlSUF4QkVIUWdOM0lnREhKQmdBSnlOZ0lBREFNTElBY2dEV3NoSkNBWElDWnFJU1pCQUNFTkEwQWdEU0FrUmcwQlFRRWdHQ0FUSUNZZ0RVRUJkR29pSnkwQUFTSUNheUk3YTNRaVBDQWhJQUpCQW5ScUlpQW9BZ0FpQW1vaFBTQURJRHRxUVJCMFFZQ0EvQWR4SUNjdEFBQkJDSFJ5SUJaeVFZQ0FnQkJ5SVNjRFFDQWpJQUpCQW5ScUlDYzJBUUFnQWtFQmFpSUNJRDFKRFFBTElDQWdJQ2dDQUNBOGFqWUNBQ0FOUVFGcUlRME1BQXNBQ3lBZklCOG9BZ0FnR1dvMkFnQWdDa0VCYWlFS0RBQUxBQXNnRWlFQ0N5QVFRUkJxSkFBZ0FrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGaUVEREFNTElCNGdEeUFJSUJRUUZDSUNRWWgvU3lBQ0lBaFBjZzBMSUJ3Z0N5QUNJQTlxSUFnZ0Ftc2dIaEFYSVFNTUFnc2dBd1JBSUJ3Z0N5QVBJQWdnQWhBV0lRTU1BZ3NnSENBTElBOGdDQ0FDRUJjaEF3d0JDeUFjSUFzZ0R5QUlJQUlRRlNFREN5QURRWWgvU3cwSUlBVWdDellDZ09zQklBVWdIRFlDOE9vQklBVkJBVFlDZ09vQklCcEJBa1lFUUNBRklCNDJBZ3dMSUFzZ0hHb2lBa0lBTndBQUlBSkNBRGNBR0NBQ1FnQTNBQkFnQWtJQU53QUlJQWxCaUg5TERRb0xJQWtnRlVZTkNDQVZJQWxySVFZZ0JTZ0NuT3NCSVFvQ1FDQUpJQnRxSWdNdEFBQWlEMFVFUUVFQklRSkJBQ0VQUWJoL0lRa2dCa0VCUmcwQkRBc0xBbjhnQTBFQmFpQVB3Q0lDUVFCT0RRQWFJQUpCZjBZRVFDQUdRUU5JRFFzZ0F5OEFBVUdBL2dGcUlROGdBMEVEYWd3QkN5QUdRUUpJRFFvZ0F5MEFBU0FQUVFoMGNrR0FnQUpySVE4Z0EwRUNhZ3NoRWtHNGZ5RUpJQkpCQVdvaUFpQVZJQnRxSWdkTERRb2dMQ0FGSUJJdEFBQWlFa0VHZGtFalFRa2dBaUFISUFKclFjQVFRZEFSUWZBU0lBVW9Bb1RxQVNBS0lBOGdGQkFoSWdsQmlIOUxEUWdnS3lBb0lCSkJCSFpCQTNGQkgwRUlJQUlnQ1dvaUFpQUhJQUpyUVlBTFFZQU1RWUFYSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUNFR0lmMHNOQ0VGc0lRa2dLaUF0SUJKQkFuWkJBM0ZCTkVFSklBSWdDR29pQWlBSElBSnJRWUFOUWVBT1FaQVpJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQjBHSWYwc05DaUFDSUFkcUlBTnJJZ0loQ1NBQ1FZaC9TdzBLQ3lBT0lBOUJBRXh5RFFFTFFicC9JUWtNQ0FzZ0pTQU9heUVKSUFZZ0Ftc2hCaUFDSUFOcUlRY0NRQUpBQWtBZ0NrVUVRQ0FQUVFsSUlBVXBBOGpwQVVLQmdJQUlWSElOQWlBb0tBSUFJZ0pCQ0dvaEVpQUNLQUlFSVFwQkFDRURRUUFoQWdOQUlBTWdDblpGQkVBZ0FpQVNJQU5CQTNScUxRQUNRUlpMYWlFQ0lBTkJBV29oQXd3QkN3c2dCVUVBTmdLYzZ3RWdBa0VJSUFwcmRFRVVUdzBCREFNTElBVkJBRFlDbk9zQkN5QUVJQVVvQXZEcUFTSUROZ0xjQVNBSklBNXFJUllnQXlBRktBS0E2d0ZxSVJjQ1FDQVBSUVJBSUE0aEJ3d0JDeUFGS0FLNDZRRWhHaUFGS0FLMDZRRWhHQ0FGS0FLdzZRRWhFaUFGUVFFMkFvVHFBVUVBSVFNRFFDQURRUU5IQkVBZ0JDQURRUUowSWdKcUlBSWdCV3BCck5BQmFpZ0NBRFlDWkNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUVRocUlnSWdCeUFHRUExQmlIOUxEUU5CQ0NBUElBOUJDRTRiSVI4Z05DQUNJQVVvQWdBUUhpQXpJQUlnQlNnQ0NCQWVJRElnQWlBRktBSUVFQjRnRGlBU2F5RVpRUUFoQ0FOQUlBUkJPR29RRDBFRFJpQUlJQjlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ2RCRUhZaUVVSC9BWEVoQ3lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklneEJFSFlpSVVIL0FYRWhFQ0FFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRWWdRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ2tIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSUtheUlOSUFJZ0FpQU5TeHNpRXlBS2FqWUNQQ0FHSUFRb0FqZ2dDblJCQUNBVGEzWWdBaUFUYXlJVGRHb2hDaUFFUVRocUVBOGFJQUlnRFUwTkFTQUVJQVFvQWp3aUFpQVRhallDUENBRUtBSTRJQUowUVFBZ0UydDJJQXBxSVFvTUFRc2dCQ0FDSUFRb0Fqd2lEV28yQWp3Z0JDZ0NPQ0FOZEVFQUlBcHJkaUFHYWlFS0lBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlBbzJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FEQkVBZ0JDZ0NaQ0VLREFNTElBUW9BbWdoQ2d3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBWWdBMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ1pGSUFacUlRb2dBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUFvMkFtUUxweUVDSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lCQnFOZ0k4SUFRb0FqZ2dCblJCQUNBaGEzWWdBbW9oQWdzZ0N5QVFha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQXRxTmdJOElBUW9BamdnQm5SQkFDQVJhM1lnQTJvaEF3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUJrRUFJQWRCR0hZaUN5QUVLQUk4YWlJUWEzWWdDMEVDZEVHZ0hXb29BZ0J4SUFkQi8vOERjV28yQWt3Z0JDQVFJQXhCR0hZaUIyb2lDellDUENBRUlBZEJBblJCb0IxcUtBSUFJQVpCQUNBTGEzWnhJQXhCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnWkJHSFlpQnlBRUtBSThhaUlMTmdJOElBUWdCMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQXRyZG5FZ0JrSC8vd054YWpZQ1ZDQUVRZkFBYWlBSVFReHNhaUlHSUFvMkFnZ2dCaUFDTmdJRUlBWWdBellDQUNBSVFRRnFJUWdnQXlBWmFpQUNhaUVaREFFTEN5QUlJQjlJRFFNZ0ZrRWdheUVoSUE0aEJ3TkFJQVJCT0dvUUQwRURSaUFJSUE5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdaQkVIWWlJMEgvQVhFaENpQUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZzFCRUhZaUlFSC9BWEVoRXlBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUU1nUVVJZ2lDQkFRaUNJcHlFTEFrQWdRa0lRaUtjaURFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lNYXlJUklBSWdBaUFSU3hzaUVDQU1hallDUENBRElBUW9BamdnREhSQkFDQVFhM1lnQWlBUWF5SU1kR29oRUNBRVFUaHFFQThhSUFJZ0VVME5BU0FFSUFRb0Fqd2lBaUFNYWpZQ1BDQUVLQUk0SUFKMFFRQWdER3QySUJCcUlSQU1BUXNnQkNBQ0lBUW9BandpRUdvMkFqd2dCQ2dDT0NBUWRFRUFJQXhyZGlBRGFpRVFJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQkEyQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBTEJFQWdCQ2dDWkNFUURBTUxJQVFvQW1naEVBd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQU1nQzBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdORklBTnFJUkFnQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlCQTJBbVFMcHlFTUlFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQk5xTmdJOElBUW9BamdnQW5SQkFDQWdhM1lnREdvaERBc2dDaUFUYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUFwcU5nSThJQVFvQWpnZ0FuUkJBQ0FqYTNZZ0Myb2hDd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lBa0VBSUFaQkdIWWlBeUFFS0FJOGFpSUthM1lnQTBFQ2RFR2dIV29vQWdCeElBWkIvLzhEY1dvMkFrd2dCQ0FLSUExQkdIWWlBMm9pQmpZQ1BDQUVJQU5CQW5SQm9CMXFLQUlBSUFKQkFDQUdhM1p4SUExQi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ0pCR0hZaUF5QUVLQUk4YWlJR05nSThJQVFnQTBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUFacmRuRWdBa0gvL3dOeGFqWUNWQUpBQWtBQ1FDQUVLQUxjQVNJRElBUkI4QUJxSUFoQkIzRkJER3hxSWhNb0FnQWlFV29pSXlBWFN3MEFJQWNnRXlnQ0JDSU5JQkZxSWdwcUlDRkxEUUFnQ2tFZ2FpQVdJQWRyVFEwQkN5QUVJQk1vQWdnMkFoZ2dCQ0FUS1FJQU53TVFJQWNnRmlBRVFSQnFJQVJCM0FGcUlCY2dFaUFZSUJvUUh5RUtEQUVMSUFjZ0VXb2hBaUFUS0FJSUlRWWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQUpBSUJGQkVVa05BQ0FISUFNcEFCQTNBQkFnQnlBREtRQVlOd0FZSUJGQkVHdEJFVWdOQUNBRFFSQnFJUU1nQjBFZ2FpRVJBMEFnRVNBREtRQVFOd0FBSUJFZ0F5a0FHRGNBQ0NBUklBTXBBQ0EzQUJBZ0VTQURLUUFvTndBWUlBTkJJR29oQXlBUlFTQnFJaEVnQWtrTkFBc0xJQUlnQm1zaEF5QUVJQ00yQXR3QklBSWdFbXNnQmtrRVFDQUdJQUlnR0d0TERRY2dHaUFhSUFNZ0Vtc2lBMm9pRVNBTmFrOEVRQ0FDSUJFZ0RSQUtHZ3dDQ3lBRElBMXFJUTBnQWlBUlFRQWdBMnNRQ2lBRGF5RUNJQkloQXdzZ0JrRVFUd1JBSUFJZ0F5a0FBRGNBQUNBQ0lBTXBBQWczQUFnZ0RVRVJTQTBCSUFJZ0RXb2hCaUFDUVJCcUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFHU1EwQUN3d0JDd0pBSUFaQkIwMEVRQ0FDSUFNdEFBQTZBQUFnQWlBRExRQUJPZ0FCSUFJZ0F5MEFBam9BQWlBQ0lBTXRBQU02QUFNZ0FpQURJQVpCQW5RaUJrSEFIbW9vQWdCcUlnTW9BQUEyQUFRZ0F5QUdRZUFlYWlnQ0FHc2hBd3dCQ3lBQ0lBTXBBQUEzQUFBTElBMUJDVWtOQUNBQ0lBMXFJUkVnQWtFSWFpSUdJQU5CQ0dvaUEydEJEMHdFUUFOQUlBWWdBeWtBQURjQUFDQURRUWhxSVFNZ0JrRUlhaUlHSUJGSkRRQU1BZ3NBQ3lBR0lBTXBBQUEzQUFBZ0JpQURLUUFJTndBSUlBMUJHVWdOQUNBQ1FSaHFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBUlNRMEFDd3NnQ2tHSWYwc0VRQ0FLSVFrTUJnVWdFeUFRTmdJSUlCTWdERFlDQkNBVElBczJBZ0FnQ0VFQmFpRUlJQWNnQ21vaEJ5QUxJQmxxSUF4cUlSa01BZ3NBQ3dzZ0NDQVBTQTBESUFnZ0gyc2hCZ05BQWtBZ0JpQVBUZ1JBUVFBaEF3TkFJQU5CQTBZTkFpQUZJQU5CQW5RaUFtcEJyTkFCYWlBQ0lBUnFLQUprTmdJQUlBTkJBV29oQXd3QUN3QUxBa0FDUUFKQUlBUW9BdHdCSWdNZ0JFSHdBR29nQmtFSGNVRU1iR29pQ0NnQ0FDSU1haUlRSUJkTERRQWdCeUFJS0FJRUlnc2dER29pQ21vZ0lVc05BQ0FLUVNCcUlCWWdCMnRORFFFTElBUWdDQ2dDQ0RZQ0tDQUVJQWdwQWdBM0F5QWdCeUFXSUFSQklHb2dCRUhjQVdvZ0Z5QVNJQmdnR2hBZklRb01BUXNnQnlBTWFpRUNJQWdvQWdnaENDQUhJQU1wQUFBM0FBQWdCeUFES1FBSU53QUlBa0FnREVFUlNRMEFJQWNnQXlrQUVEY0FFQ0FISUFNcEFCZzNBQmdnREVFUWEwRVJTQTBBSUFOQkVHb2hBeUFIUVNCcUlRd0RRQ0FNSUFNcEFCQTNBQUFnRENBREtRQVlOd0FJSUF3Z0F5a0FJRGNBRUNBTUlBTXBBQ2czQUJnZ0EwRWdhaUVESUF4QklHb2lEQ0FDU1EwQUN3c2dBaUFJYXlFRElBUWdFRFlDM0FFZ0FpQVNheUFJU1FSQUlBZ2dBaUFZYTBzTkJ5QWFJQm9nQXlBU2F5SURhaUlNSUF0cVR3UkFJQUlnRENBTEVBb2FEQUlMSUFNZ0Myb2hDeUFDSUF4QkFDQURheEFLSUFOcklRSWdFaUVEQ3lBSVFSQlBCRUFnQWlBREtRQUFOd0FBSUFJZ0F5a0FDRGNBQ0NBTFFSRklEUUVnQWlBTGFpRUlJQUpCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQUlnQXkwQUFEb0FBQ0FDSUFNdEFBRTZBQUVnQWlBRExRQUNPZ0FDSUFJZ0F5MEFBem9BQXlBQ0lBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFJZ0F5a0FBRGNBQUFzZ0MwRUpTUTBBSUFJZ0Myb2hEQ0FDUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnREVrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0MwRVpTQTBBSUFKQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF4SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3R0JTQUdRUUZxSVFZZ0J5QUthaUVIREFJTEFBc0xJQVFvQXR3QklRTUxRYnAvSVFrZ0Z5QURheUlDSUJZZ0IydExEUUlnQndSL0lBY2dBeUFDRUFJZ0Ftb0ZRUUFMSUE1cklRa01BZ3NnQlVFQU5nS2M2d0VMSUFRZ0JTZ0M4T29CSWdNMkF0d0JJQWtnRG1vaERDQURJQVVvQW9EckFXb2hFQUpBSUE5RkJFQWdEaUVHREFFTElBVW9BcmpwQVNFTklBVW9BclRwQVNFVElBVW9BckRwQVNFU0lBVkJBVFlDaE9vQlFRQWhBd05BSUFOQkEwY0VRQ0FFSUFOQkFuUWlBbW9nQWlBRmFrR3MwQUZxS0FJQU5nS2NBU0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRZkFBYWlJQ0lBY2dCaEFOUVloL1N3MEJJREVnQWlBRktBSUFFQjRnTUNBQ0lBVW9BZ2dRSGlBdklBSWdCU2dDQkJBZUlBeEJJR3NoR0NBT0lRWURRQ0FFS0FLSUFTQUVLQUtFQVVFRGRHb3BBZ0FpUUtjaUNrRVFkaUlaUWY4QmNTRUxJQVFvQXBnQklBUW9BcFFCUVFOMGFpa0NBQ0pCcHlJV1FSQjJJaDlCL3dGeElSb2dCQ2dDa0FFZ0JDZ0NqQUZCQTNScUtRSUFJa0pDSUlpbklRY2dRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ0VIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ2RDSUlheUlSSUFJZ0FpQVJTeHNpRnlBSWFqWUNkQ0FISUFRb0FuQWdDSFJCQUNBWGEzWWdBaUFYYXlJWGRHb2hDQ0FFUWZBQWFoQVBHaUFDSUJGTkRRRWdCQ0FFS0FKMElnSWdGMm8yQW5RZ0JDZ0NjQ0FDZEVFQUlCZHJkaUFJYWlFSURBRUxJQVFnQWlBRUtBSjBJaEZxTmdKMElBUW9BbkFnRVhSQkFDQUlhM1lnQjJvaENDQUVRZkFBYWhBUEdnc2dCQ2tDbkFFaFJDQUVJQWcyQXB3QklBUWdSRGNDb0FFTUFRc0NRQ0FDUlFSQUlBTUVRQ0FFS0FLY0FTRUlEQU1MSUFRb0FxQUJJUWdNQVFzZ0JDQUVLQUowSWdKQkFXbzJBblFDZnlBSElBTkZhaUFFS0FKd0lBSjBRUjkyYWlJQ1FRTkdCRUFnQkNnQ25BRkJBV3NNQVFzZ0FrRUNkQ0FFYWlnQ25BRUxJZ2RGSUFkcUlRZ2dBa0VCUndSQUlBUWdCQ2dDb0FFMkFxUUJDd3NnQkNBRUtBS2NBVFlDb0FFZ0JDQUlOZ0tjQVF1bklRSWdRVUtBZ1B3SGcxQkZCRUFnQkNBRUtBSjBJZ2NnR21vMkFuUWdCQ2dDY0NBSGRFRUFJQjlyZGlBQ2FpRUNDeUFMSUJwcVFSUlBCRUFnQkVId0FHb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDZENJSElBdHFOZ0owSUFRb0FuQWdCM1JCQUNBWmEzWWdBMm9oQXdzZ0JFSHdBR29RRHhvZ0JDQUVLQUp3SWdkQkFDQUtRUmgySWdzZ0JDZ0NkR29pR210MklBdEJBblJCb0IxcUtBSUFjU0FLUWYvL0EzRnFOZ0tFQVNBRUlCb2dGa0VZZGlJS2FpSUxOZ0owSUFRZ0NrRUNkRUdnSFdvb0FnQWdCMEVBSUF0cmRuRWdGa0gvL3dOeGFqWUNsQUVnQkVId0FHb1FEeG9nQkNCQ3B5SUhRUmgySWdvZ0JDZ0NkR29pQ3pZQ2RDQUVJQXBCQW5SQm9CMXFLQUlBSUFRb0FuQkJBQ0FMYTNaeElBZEIvLzhEY1dvMkFvd0JJQVFnQXpZQ09DQUVJQUkyQWp3Z0JDQUlOZ0pBQWtBQ1FBSkFJQVFvQXR3Qklnc2dBMm9pRmlBUVN3MEFJQVlnQWlBRGFpSUthaUFZU3cwQUlBcEJJR29nRENBR2EwME5BUXNnQkNBRVFVQnJLQUlBTmdJSUlBUWdCQ2tET0RjREFDQUdJQXdnQkNBRVFkd0JhaUFRSUJJZ0V5QU5FQjhoQ2d3QkN5QURJQVpxSVFjZ0JpQUxLUUFBTndBQUlBWWdDeWtBQ0RjQUNBSkFJQU5CRVVrTkFDQUdJQXNwQUJBM0FCQWdCaUFMS1FBWU53QVlJQU5CRUd0QkVVZ05BQ0FMUVJCcUlRTWdCa0VnYWlFTEEwQWdDeUFES1FBUU53QUFJQXNnQXlrQUdEY0FDQ0FMSUFNcEFDQTNBQkFnQ3lBREtRQW9Od0FZSUFOQklHb2hBeUFMUVNCcUlnc2dCMGtOQUFzTElBY2dDR3NoQXlBRUlCWTJBdHdCSUFjZ0Vtc2dDRWtFUUNBSUlBY2dFMnRMRFFRZ0RTQU5JQU1nRW1zaUEyb2lDeUFDYWs4RVFDQUhJQXNnQWhBS0dnd0NDeUFISUF0QkFDQURheEFLSUFRZ0FpQURhaUlDTmdJOElBTnJJUWNnRWlFREN5QUlRUkJQQkVBZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNDQUNRUkZJRFFFZ0FpQUhhaUVJSUFkQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFjZ0F5MEFBRG9BQUNBSElBTXRBQUU2QUFFZ0J5QURMUUFDT2dBQ0lBY2dBeTBBQXpvQUF5QUhJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBY2dBeWtBQURjQUFBc2dBa0VKU1EwQUlBSWdCMm9oQ3lBSFFRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0Mwa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dBa0VaU0EwQUlBZEJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBdEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0RDeUFHSUFwcUlRWWdCRUh3QUdvUUR5RURJQTlCQVdzaUR3MEFDMEVBSVFJZ0EwRUNTUTBCQTBBZ0FrRURSd1JBSUFVZ0FrRUNkQ0lEYWtHczBBRnFJQU1nQkdvb0Fwd0JOZ0lBSUFKQkFXb2hBZ3dCQ3dzZ0JDZ0MzQUVoQXd0QnVuOGhDU0FRSUFOcklnSWdEQ0FHYTBzTkFDQUdCSDhnQmlBRElBSVFBaUFDYWdWQkFBc2dEbXNoQ1FzZ0NVR0lmMHNOQmdzQ1FDQUZLQUxzNmdGRkRRQWdCU0FGS1FPSTZnRWdDYTE4TndPSTZnRUNRQ0FGS0FMUTZnRWlBaUFKYWlJSVFSOU5CRUFnRGtVTkFTQUNJQ0pxSUE0Z0NSQUNHaUFGS0FMUTZnRWdDV29oQ0F3QkN5QU9JUU1nQWdSQUlBSWdJbW9nQTBFZ0lBSnJFQUlhSUFVb0F0RHFBU0VDSUFWQkFEWUMwT29CSUFVZ0JTa0RrT29CSUFVcEFMRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEa09vQklBVWdCU2tEbU9vQklBVXBBTGpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG1Pb0JJQVVnQlNrRG9Pb0JJQVVwQU1EcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RvT29CSUFVZ0JTa0RxT29CSUFVcEFNanFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEcU9vQklBTWdBbXRCSUdvaEF3c2dDU0FPYWlJQ0lBTkJJR3BQQkVBZ0FrRWdheUVHSUFVcEE2anFBU0UvSUFVcEE2RHFBU0ZBSUFVcEE1anFBU0ZCSUFVcEE1RHFBU0ZDQTBBZ0F5a0FHRUxQMXRPKzBzZXIyVUorSUQ5OFFoK0pRb2VWcjYrWXR0NmJubjkrSVQ4Z0F5a0FFRUxQMXRPKzBzZXIyVUorSUVCOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVBZ0F5a0FDRUxQMXRPKzBzZXIyVUorSUVGOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVFZ0F5a0FBRUxQMXRPKzBzZXIyVUorSUVKOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVJZ0EwRWdhaUlESUFaTkRRQUxJQVVnUHpjRHFPb0JJQVVnUURjRG9Pb0JJQVVnUVRjRG1Pb0JJQVVnUWpjRGtPb0JDeUFDSUFOTkRRRWdJaUFESUFJZ0Eyc2lDQkFDR2dzZ0JTQUlOZ0xRNmdFTElEVWdGV3NoQXlBVklCdHFJUUlnQ1NBT2FpRU9JQVFvQWpCRkRRQUxJQ2twQXdBaVAwSi9VU0EvSUE0Z0hXdXNVWEpGQkVCQmJDRUpEQVlMSUFVb0F1RHBBUVJBUVdvaENTQURRUVJKRFFZZ0JTZ0M2T29CUlFSQUlDSWdCU2dDME9vQmFpRUtBbjRnQlNrRGlPb0JJajlDSUZvRVFDQUZLUU9ZNmdFaVFFSUhpU0FGS1FPUTZnRWlRVUlCaVh3Z0JTa0RvT29CSWtKQ0RJbDhJQVVwQTZqcUFTSkRRaEtKZkNCQlFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5SUVCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZm9WQ2g1V3ZyNWkyM3B1ZWYzNUNuYU8xNm9PeGpZcjZBSDBnUWtMUDF0Tyswc2VyMlVKK1FoK0pRb2VWcjYrWXR0NmJubjkraFVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0JEUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlEQUVMSUFVcEE2RHFBVUxGejlteThlVzY2aWQ4Q3lBL2ZDRS9JQ0loQmdOQUlBb2dCa0VJYWlJSFR3UkFJQVlwQUFCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZmlBL2hVSWJpVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTRS9JQWNoQmd3QkN3c0NRQ0FLSUFaQkJHb2lDRWtFUUNBR0lRZ01BUXNnQmpVQUFFS0hsYSt2bUxiZW01NS9maUEvaFVJWGlVTFAxdE8rMHNlcjJVSitRdm56M2ZHWjlwbXJGbndoUHdzRFFDQUlJQXBKQkVBZ0NERUFBRUxGejlteThlVzY2aWQrSUQrRlFndUpRb2VWcjYrWXR0NmJubjkrSVQ4Z0NFRUJhaUVJREFFTEN5QUNLQUFBSUQ5Q0lZZ2dQNFZDejliVHZ0TEhxOWxDZmlJL1FoMklJRCtGUXZuejNmR1o5cG1yRm40aVAwSWdpQ0EvaGFkSERRY0xJQU5CQkdzaEF5QUNRUVJxSVFJTElBNGdIV3NpQ1VHSmYwOE5CQ0FCSUFscklRRWdDU0FkYWlFZFFRRWhQZ3dCQ3d0QnVIOGhCeUFERFFRZ0hTQUFheUVIREFRTFFXd2hDUXdCQzBHNGZ5RUpDMEc0ZnlFSElBbEJka1lnUG5FTkFRc2dDU0VIQ3lnQ0FBMEFJQVZCL09vQmFpZ0NBQ0VCSUFWQitPb0JhaWdDQUNFQUlBVVFHQ0FGS0FLdzZ3RWdBQ0FCRUJNZ0JVRUFOZ0t3NndFZ0JTZ0NwT3NCSWdJRVFBSkFBa0FDUUFKQUlBSW9BZ0FpQXdSQUlBQkZEUUlnQVNBRElBQVJBZ0FNQVFzZ0FFVU5BZ3NnQVNBQ0lBQVJBZ0FNQWdzZ0F4QUdDeUFDRUFZTElBVkJBRFlDcE9zQkN5QUFCRUFnQVNBRklBQVJBZ0FNQVFzZ0JSQUdDeUFFUWVBQmFpUUFJQWNMQzZnVkNRQkJpQWdMRFFFQUFBQUJBQUFBQWdBQUFBSUFRYUFJQzdNR0FRQUFBQUVBQUFBQ0FBQUFBZ0FBQUNZQUFBQ0NBQUFBSVFVQUFFb0FBQUJuQ0FBQUpnQUFBTUFCQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBS1FBQUFDd0NBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFMd0FBQU1vQ0FBQ0FBQUFBaWdVQUFFb0FBQUNFQ1FBQU5RQUFBSE1EQUFDQUFBQUFuUVVBQUVvQUFBQ2dDUUFBUFFBQUFJRURBQUNBQUFBQTZ3VUFBRXNBQUFBK0NnQUFSQUFBQUo0REFBQ0FBQUFBVFFZQUFFc0FBQUNxQ2dBQVN3QUFBTE1EQUFDQUFBQUF3UVlBQUUwQUFBQWZEUUFBVFFBQUFGTUVBQUNBQUFBQUl3Z0FBRkVBQUFDbUR3QUFWQUFBQUprRUFBQ0FBQUFBU3drQUFGY0FBQUN4RWdBQVdBQUFBTm9FQUFDQUFBQUFid2tBQUYwQUFBQWpGQUFBVkFBQUFFVUZBQUNBQUFBQVZBb0FBR29BQUFDTUZBQUFhZ0FBQUs4RkFBQ0FBQUFBZGdrQUFId0FBQUJPRUFBQWZBQUFBTklDQUFDQUFBQUFZd2NBQUpFQUFBQ1FCd0FBa2dBQUFBQUFBQUFCQUFBQUFRQUFBQVVBQUFBTkFBQUFIUUFBQUQwQUFBQjlBQUFBL1FBQUFQMEJBQUQ5QXdBQS9RY0FBUDBQQUFEOUh3QUEvVDhBQVAxL0FBRDkvd0FBL2Y4QkFQMy9Bd0Q5L3djQS9mOFBBUDMvSHdEOS96OEEvZjkvQVAzLy93RDkvLzhCL2YvL0EvMy8vd2Y5Ly84UC9mLy9ILzMvL3ovOS8vOS9BQUFBQUFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBUkFBQUFFZ0FBQUJNQUFBQVVBQUFBRlFBQUFCWUFBQUFYQUFBQUdBQUFBQmtBQUFBYUFBQUFHd0FBQUJ3QUFBQWRBQUFBSGdBQUFCOEFBQUFEQUFBQUJBQUFBQVVBQUFBR0FBQUFCd0FBQUFnQUFBQUpBQUFBQ2dBQUFBc0FBQUFNQUFBQURRQUFBQTRBQUFBUEFBQUFFQUFBQUJFQUFBQVNBQUFBRXdBQUFCUUFBQUFWQUFBQUZnQUFBQmNBQUFBWUFBQUFHUUFBQUJvQUFBQWJBQUFBSEFBQUFCMEFBQUFlQUFBQUh3QUFBQ0FBQUFBaEFBQUFJZ0FBQUNNQUFBQWxBQUFBSndBQUFDa0FBQUFyQUFBQUx3QUFBRE1BQUFBN0FBQUFRd0FBQUZNQUFBQmpBQUFBZ3dBQUFBTUJBQUFEQWdBQUF3UUFBQU1JQUFBREVBQUFBeUFBQUFOQUFBQURnQUFBQXdBQkFFSGdEd3RSQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQkFBQUFBVUFBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0FBQUF3QUFBQU5BQUFBRGdBQUFBOEFBQUFRQUVIRUVBdUxBUUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFTQUFBQUZBQUFBQllBQUFBWUFBQUFIQUFBQUNBQUFBQW9BQUFBTUFBQUFFQUFBQUNBQUFBQUFBRUFBQUFDQUFBQUJBQUFBQWdBQUFBUUFBQUFJQUFBQUVBQUFBQ0FBQUFBQUFFQVFaQVNDK1lFQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFCQUFBQUJBQUFBQWdBQUFBQUFBQUFBUUFCQVFZQUFBQUFBQUFFQUFBQUFCQUFBQVFBQUFBQUlBQUFCUUVBQUFBQUFBQUZBd0FBQUFBQUFBVUVBQUFBQUFBQUJRWUFBQUFBQUFBRkJ3QUFBQUFBQUFVSkFBQUFBQUFBQlFvQUFBQUFBQUFGREFBQUFBQUFBQVlPQUFBQUFBQUJCUkFBQUFBQUFBRUZGQUFBQUFBQUFRVVdBQUFBQUFBQ0JSd0FBQUFBQUFNRklBQUFBQUFBQkFVd0FBQUFJQUFHQlVBQUFBQUFBQWNGZ0FBQUFBQUFDQVlBQVFBQUFBQUtCZ0FFQUFBQUFBd0dBQkFBQUNBQUFBUUFBQUFBQUFBQUJBRUFBQUFBQUFBRkFnQUFBQ0FBQUFVRUFBQUFBQUFBQlFVQUFBQWdBQUFGQndBQUFBQUFBQVVJQUFBQUlBQUFCUW9BQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBSUFBQkJSQUFBQUFBQUFFRkVnQUFBQ0FBQVFVV0FBQUFBQUFDQlJnQUFBQWdBQU1GSUFBQUFBQUFBd1VvQUFBQUFBQUdCRUFBQUFBUUFBWUVRQUFBQUNBQUJ3V0FBQUFBQUFBSkJnQUNBQUFBQUFzR0FBZ0FBREFBQUFRQUFBQUFFQUFBQkFFQUFBQWdBQUFGQWdBQUFDQUFBQVVEQUFBQUlBQUFCUVVBQUFBZ0FBQUZCZ0FBQUNBQUFBVUlBQUFBSUFBQUJRa0FBQUFnQUFBRkN3QUFBQ0FBQUFVTUFBQUFBQUFBQmc4QUFBQWdBQUVGRWdBQUFDQUFBUVVVQUFBQUlBQUNCUmdBQUFBZ0FBSUZIQUFBQUNBQUF3VW9BQUFBSUFBRUJUQUFBQUFBQUJBR0FBQUJBQUFBRHdZQWdBQUFBQUFPQmdCQUFBQUFBQTBHQUNBQVFZQVhDNGNDQVFBQkFRVUFBQUFBQUFBRkFBQUFBQUFBQmdROUFBQUFBQUFKQmYwQkFBQUFBQThGL1g4QUFBQUFGUVg5L3g4QUFBQURCUVVBQUFBQUFBY0VmUUFBQUFBQURBWDlEd0FBQUFBU0JmMy9Bd0FBQUJjRi9mOS9BQUFBQlFVZEFBQUFBQUFJQlAwQUFBQUFBQTRGL1Q4QUFBQUFGQVg5L3c4QUFBQUNCUUVBQUFBUUFBY0VmUUFBQUFBQUN3WDlCd0FBQUFBUkJmMy9BUUFBQUJZRi9mOC9BQUFBQkFVTkFBQUFFQUFJQlAwQUFBQUFBQTBGL1I4QUFBQUFFd1g5L3djQUFBQUJCUUVBQUFBUUFBWUVQUUFBQUFBQUNnWDlBd0FBQUFBUUJmMy9BQUFBQUJ3Ri9mLy9Ed0FBR3dYOS8vOEhBQUFhQmYzLy93TUFBQmtGL2YvL0FRQUFHQVg5Ly84QVFaQVpDNFlFQVFBQkFRWUFBQUFBQUFBR0F3QUFBQUFBQUFRRUFBQUFJQUFBQlFVQUFBQUFBQUFGQmdBQUFBQUFBQVVJQUFBQUFBQUFCUWtBQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBQUFBQUJoQUFBQUFBQUFBR0V3QUFBQUFBQUFZV0FBQUFBQUFBQmhrQUFBQUFBQUFHSEFBQUFBQUFBQVlmQUFBQUFBQUFCaUlBQUFBQUFBRUdKUUFBQUFBQUFRWXBBQUFBQUFBQ0JpOEFBQUFBQUFNR093QUFBQUFBQkFaVEFBQUFBQUFIQm9NQUFBQUFBQWtHQXdJQUFCQUFBQVFFQUFBQUFBQUFCQVVBQUFBZ0FBQUZCZ0FBQUFBQUFBVUhBQUFBSUFBQUJRa0FBQUFBQUFBRkNnQUFBQUFBQUFZTUFBQUFBQUFBQmc4QUFBQUFBQUFHRWdBQUFBQUFBQVlWQUFBQUFBQUFCaGdBQUFBQUFBQUdHd0FBQUFBQUFBWWVBQUFBQUFBQUJpRUFBQUFBQUFFR0l3QUFBQUFBQVFZbkFBQUFBQUFDQmlzQUFBQUFBQU1HTXdBQUFBQUFCQVpEQUFBQUFBQUZCbU1BQUFBQUFBZ0dBd0VBQUNBQUFBUUVBQUFBTUFBQUJBUUFBQUFRQUFBRUJRQUFBQ0FBQUFVSEFBQUFJQUFBQlFnQUFBQWdBQUFGQ2dBQUFDQUFBQVVMQUFBQUFBQUFCZzRBQUFBQUFBQUdFUUFBQUFBQUFBWVVBQUFBQUFBQUJoY0FBQUFBQUFBR0dnQUFBQUFBQUFZZEFBQUFBQUFBQmlBQUFBQUFBQkFHQXdBQkFBQUFEd1lEZ0FBQUFBQU9CZ05BQUFBQUFBMEdBeUFBQUFBQURBWURFQUFBQUFBTEJnTUlBQUFBQUFvR0F3UUFRYVFkQzlrQkFRQUFBQU1BQUFBSEFBQUFEd0FBQUI4QUFBQS9BQUFBZndBQUFQOEFBQUQvQVFBQS93TUFBUDhIQUFEL0R3QUEveDhBQVA4L0FBRC9md0FBLy84QUFQLy9BUUQvL3dNQS8vOEhBUC8vRHdELy94OEEvLzgvQVAvL2Z3RC8vLzhBLy8vL0FmLy8vd1AvLy84SC8vLy9ELy8vL3gvLy8vOC8vLy8vZndBQUFBQUJBQUFBQWdBQUFBUUFBQUFBQUFBQUFnQUFBQVFBQUFBSUFBQUFBQUFBQUFFQUFBQUNBQUFBQVFBQUFBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUFnQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QkJnQjhMQTRBUkFRPT0iO3ZhciB3cj1uZXcgdGUsRHI9ITE7YXN5bmMgZnVuY3Rpb24gU28oQSxlLHQpe2xldCBpPSJ1bmtub3duIjt0eXBlb2YgQSE9InN0cmluZyI/aT1BLmhyZWY6QS5zdGFydHNXaXRoKCJodHRwIik/aT1BOmk9dHlwZW9mIGU8InUiP2Ake2V9LyR7QX1gOkEsaS5lbmRzV2l0aCgiLmpzIikmJihpPWkuc3Vic3RyaW5nKDAsaS5sZW5ndGgtMykpLGkuZW5kc1dpdGgoIi53YXNtIikmJihpPWkuc3Vic3RyaW5nKDAsaS5sZW5ndGgtNSkpLGkuZW5kc1dpdGgoIi53YXNtLnpzdCIpJiYoaT1pLnN1YnN0cmluZygwLGkubGVuZ3RoLTkpKTtsZXQgbz1gJHtpfS53YXNtYCxyPWF3YWl0IEJBLmdldChgJHtvfS56c3RgLHtyZXNwb25zZVR5cGU6ImFycmF5YnVmZmVyIixwYXJhbXM6dH0pO0RyfHwoYXdhaXQgd3IuaW5pdCgpLERyPSEwKTtsZXQgQz13ci5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoci5kYXRhKSkuYnVmZmVyO3JldHVybihhd2FpdCBpbXBvcnQoYCR7aX0uanNgKSkuZGVmYXVsdCh7d2FzbUJpbmFyeTpDfSl9dmFyIFNyPVNvO3ZhciBScj1hc3luYygpPT5XZWJBc3NlbWJseS52YWxpZGF0ZShuZXcgVWludDhBcnJheShbMCw5NywxMTUsMTA5LDEsMCwwLDAsMSw1LDEsOTYsMCwxLDEyMywzLDIsMSwwLDEwLDEwLDEsOCwwLDY1LDAsMjUzLDE1LDI1Myw5OCwxMV0pKTt2YXIgVXI9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI9PSJmdW5jdGlvbiIsRnI9bmV3IFRleHRFbmNvZGVyLGtyPW5ldyBUZXh0RGVjb2RlcigidXRmLTgiKTtmdW5jdGlvbiBSbyhBLGUpe2xldCB0PXtmbGFnczoiciIsZW5jb2Rpbmc6ImJpbmFyeSJ9LGk9QS5mc19vcGVuKGUsdC5mbGFncykscj1BLmZzX3N0YXQoZSkuc2l6ZSxhPW51bGw7VXI/YT1uZXcgU2hhcmVkQXJyYXlCdWZmZXIocik6YT1uZXcgQXJyYXlCdWZmZXIocik7bGV0IEM9bmV3IFVpbnQ4QXJyYXkoYSk7cmV0dXJuIEEuZnNfcmVhZChpLEMsMCxyLDApLEEuZnNfY2xvc2UoaSksQ31mdW5jdGlvbiBicihBLGUsdCl7bGV0IGk9bnVsbDtVcj9pPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcih0KTppPW5ldyBBcnJheUJ1ZmZlcih0KTtsZXQgbz1uZXcgVWludDhBcnJheShpKSxyPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixlLHQpO3JldHVybiBvLnNldChyKSxvfWZ1bmN0aW9uIEYoQSxlLHQsaSl7bGV0IG89MDtyZXR1cm4gZSE9PW51bGwmJihvPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2FycmF5X2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsaSxlLmJ1ZmZlci5ieXRlTGVuZ3RoXSksQS5IRUFQVTguc2V0KG5ldyBVaW50OEFycmF5KGUuYnVmZmVyKSxvKSksb31mdW5jdGlvbiBaKEEsZSx0KXtsZXQgaT1KU09OLnN0cmluZ2lmeShlKSxvPUEubGVuZ3RoQnl0ZXNVVEY4KGkpKzEscj1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9qc29uX2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsb10pO0Euc3RyaW5nVG9VVEY4KGkscixvKX1mdW5jdGlvbiBVKEEsZSx0LGkpe2xldCBvPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUsdF0pLHI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSx0XSksYT1icihBLG8scik7cmV0dXJuIHgoaSxhLmJ1ZmZlcil9ZnVuY3Rpb24gTkEoQSxlKXtsZXQgdD1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfanNvbl9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciJdLFswLGVdKSxpPUEuVVRGOFRvU3RyaW5nKHQpO3JldHVybiBKU09OLnBhcnNlKGkpfWZ1bmN0aW9uIEZvKEEsZSx0LGkpe2khPW51bGwmJmkubGVuZ3RoPjAmJmkuZm9yRWFjaChmdW5jdGlvbihCLG4pe3N3aXRjaChCLnR5cGUpe2Nhc2UgUS5UZXh0U3RyZWFtOntsZXQgZz1Gci5lbmNvZGUoQi5kYXRhLmRhdGEpLGw9RihBLGcsbiwwKSxzPXtzaXplOmcuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07WihBLHMsbik7YnJlYWt9Y2FzZSBRLkpzb25Db21wYXRpYmxlOntsZXQgZz1Gci5lbmNvZGUoSlNPTi5zdHJpbmdpZnkoQi5kYXRhKSksbD1GKEEsZyxuLDApLHM9e3NpemU6Zy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTtaKEEscyxuKTticmVha31jYXNlIFEuQmluYXJ5U3RyZWFtOntsZXQgZz1CLmRhdGEuZGF0YSxsPUYoQSxnLG4sMCkscz17c2l6ZTpnLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O1ooQSxzLG4pO2JyZWFrfWNhc2UgUS5UZXh0RmlsZTp7QS5mc193cml0ZUZpbGUoQi5kYXRhLnBhdGgsQi5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgUS5CaW5hcnlGaWxlOntBLmZzX3dyaXRlRmlsZShCLmRhdGEucGF0aCxCLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBRLkltYWdlOntsZXQgZz1CLmRhdGEsbD1GKEEsZy5kYXRhLG4sMCkscz1GKEEsZy5kaXJlY3Rpb24sbiwxKSxJPXR5cGVvZiBnLm1ldGFkYXRhPy5lbnRyaWVzPCJ1Ij9BcnJheS5mcm9tKGcubWV0YWRhdGEuZW50cmllcygpKTpbXSxmPXtpbWFnZVR5cGU6Zy5pbWFnZVR5cGUsbmFtZTpnLm5hbWUsb3JpZ2luOmcub3JpZ2luLHNwYWNpbmc6Zy5zcGFjaW5nLGRpcmVjdGlvbjpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3N9YCxzaXplOmcuc2l6ZSxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG1ldGFkYXRhOkl9O1ooQSxmLG4pO2JyZWFrfWNhc2UgUS5NZXNoOntsZXQgZz1CLmRhdGEsbD1GKEEsZy5wb2ludHMsbiwwKSxzPUYoQSxnLmNlbGxzLG4sMSksST1GKEEsZy5wb2ludERhdGEsbiwyKSxmPUYoQSxnLmNlbGxEYXRhLG4sMyksdT17bWVzaFR5cGU6Zy5tZXNoVHlwZSxuYW1lOmcubmFtZSxudW1iZXJPZlBvaW50czpnLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxudW1iZXJPZkNlbGxzOmcubnVtYmVyT2ZDZWxscyxjZWxsczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3N9YCxjZWxsQnVmZmVyU2l6ZTpnLmNlbGxCdWZmZXJTaXplLG51bWJlck9mUG9pbnRQaXhlbHM6Zy5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0l9YCxudW1iZXJPZkNlbGxQaXhlbHM6Zy5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWB9O1ooQSx1LG4pO2JyZWFrfWNhc2UgUS5Qb2ludFNldDp7bGV0IGc9Qi5kYXRhLGw9RihBLGcucG9pbnRzLG4sMCkscz1GKEEsZy5wb2ludERhdGEsbiwxKSxJPXtwb2ludFNldFR5cGU6Zy5wb2ludFNldFR5cGUsbmFtZTpnLm5hbWUsbnVtYmVyT2ZQb2ludHM6Zy5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbnVtYmVyT2ZQb2ludFBpeGVsczpnLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7c31gfTtaKEEsSSxuKTticmVha31jYXNlIFEuVHJhbnNmb3JtTGlzdDp7bGV0IGc9Qi5kYXRhLGw9W10scz0wO2cuZm9yRWFjaChJPT57bGV0IGY9IiIsdT0iIjtJLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYoZj1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0YoQSxJLmZpeGVkUGFyYW1ldGVycyxuLHMpfWAscys9MSx1PWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7RihBLEkucGFyYW1ldGVycyxuLHMpfWAscys9MSk7bGV0IHc9e3RyYW5zZm9ybVR5cGU6SS50cmFuc2Zvcm1UeXBlLG51bWJlck9mRml4ZWRQYXJhbWV0ZXJzOkkubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnMsbnVtYmVyT2ZQYXJhbWV0ZXJzOkkubnVtYmVyT2ZQYXJhbWV0ZXJzLG5hbWU6SS5uYW1lLGlucHV0U3BhY2VOYW1lOkkuaW5wdXRTcGFjZU5hbWUsb3V0cHV0U3BhY2VOYW1lOkkub3V0cHV0U3BhY2VOYW1lLHBhcmFtZXRlcnM6dSxmaXhlZFBhcmFtZXRlcnM6Zn07bC5wdXNoKHcpfSksWihBLGwsbik7YnJlYWt9Y2FzZSBRLlBvbHlEYXRhOntsZXQgZz1CLmRhdGEsbD1GKEEsZy5wb2ludHMsbiwwKSxzPUYoQSxnLnZlcnRpY2VzLG4sMSksST1GKEEsZy5saW5lcyxuLDIpLGY9RihBLGcucG9seWdvbnMsbiwzKSx1PUYoQSxnLnRyaWFuZ2xlU3RyaXBzLG4sNCksdz1GKEEsZy5wb2ludERhdGEsbiw1KSxiPUYoQSxnLnBvaW50RGF0YSxuLDYpLFM9e3BvbHlEYXRhVHlwZTpnLnBvbHlEYXRhVHlwZSxuYW1lOmcubmFtZSxudW1iZXJPZlBvaW50czpnLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCx2ZXJ0aWNlc0J1ZmZlclNpemU6Zy52ZXJ0aWNlc0J1ZmZlclNpemUsdmVydGljZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtzfWAsbGluZXNCdWZmZXJTaXplOmcubGluZXNCdWZmZXJTaXplLGxpbmVzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7SX1gLHBvbHlnb25zQnVmZmVyU2l6ZTpnLnBvbHlnb25zQnVmZmVyU2l6ZSxwb2x5Z29uczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YCx0cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU6Zy50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemUsdHJpYW5nbGVTdHJpcHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt1fWAsbnVtYmVyT2ZQb2ludFBpeGVsczpnLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7d31gLG51bWJlck9mQ2VsbFBpeGVsczpnLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2J9YH07WihBLFMsbik7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgaW5wdXQgSW50ZXJmYWNlVHlwZSIpfX0pLEEucmVzZXRNb2R1bGVTdGRvdXQoKSxBLnJlc2V0TW9kdWxlU3RkZXJyKCk7bGV0IG89QS5zdGFja1NhdmUoKSxyPTA7dHJ5e3I9QS5jYWxsTWFpbihlLnNsaWNlKCkpfWNhdGNoKEIpe3Rocm93IHR5cGVvZiBCPT0ibnVtYmVyIiYmKGNvbnNvbGUubG9nKCJFeGNlcHRpb24gd2hpbGUgcnVubmluZyBwaXBlbGluZToiKSxjb25zb2xlLmxvZygic3Rkb3V0OiIsQS5nZXRNb2R1bGVTdGRvdXQoKSksY29uc29sZS5lcnJvcigic3RkZXJyOiIsQS5nZXRNb2R1bGVTdGRlcnIoKSksdHlwZW9mIEEuZ2V0RXhjZXB0aW9uTWVzc2FnZTwidSI/Y29uc29sZS5lcnJvcigiZXhjZXB0aW9uOiIsQS5nZXRFeGNlcHRpb25NZXNzYWdlKEIpKTpjb25zb2xlLmVycm9yKCJCdWlsZCBtb2R1bGUgaW4gRGVidWcgbW9kZSBmb3IgZXhjZXB0aW9uIG1lc3NhZ2UgaW5mb3JtYXRpb24uIikpLEJ9ZmluYWxseXtBLnN0YWNrUmVzdG9yZShvKX1sZXQgYT1BLmdldE1vZHVsZVN0ZG91dCgpLEM9QS5nZXRNb2R1bGVTdGRlcnIoKSxwPVtdO3JldHVybiB0IT1udWxsJiZ0Lmxlbmd0aD4wJiZyPT09MCYmdC5mb3JFYWNoKGZ1bmN0aW9uKEIsbil7bGV0IGc9bnVsbDtzd2l0Y2goQi50eXBlKXtjYXNlIFEuVGV4dFN0cmVhbTp7bGV0IHM9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbiwwXSksST1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxuLDBdKSxmPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixzLEkpO2c9e2RhdGE6a3IuZGVjb2RlKGYpfTticmVha31jYXNlIFEuSnNvbkNvbXBhdGlibGU6e2xldCBzPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG4sMF0pLEk9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbiwwXSksZj1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIscyxJKTtnPUpTT04ucGFyc2Uoa3IuZGVjb2RlKGYpKTticmVha31jYXNlIFEuQmluYXJ5U3RyZWFtOntsZXQgcz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxuLDBdKSxJPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG4sMF0pO2c9e2RhdGE6YnIoQSxzLEkpfTticmVha31jYXNlIFEuVGV4dEZpbGU6e2c9e3BhdGg6Qi5kYXRhLnBhdGgsZGF0YTpBLmZzX3JlYWRGaWxlKEIuZGF0YS5wYXRoLHtlbmNvZGluZzoidXRmOCJ9KX07YnJlYWt9Y2FzZSBRLkJpbmFyeUZpbGU6e2c9e3BhdGg6Qi5kYXRhLnBhdGgsZGF0YTpSbyhBLEIuZGF0YS5wYXRoKX07YnJlYWt9Y2FzZSBRLkltYWdlOntsZXQgcz1OQShBLG4pO3MuZGF0YT1VKEEsbiwwLHMuaW1hZ2VUeXBlLmNvbXBvbmVudFR5cGUpLHMuZGlyZWN0aW9uPVUoQSxuLDEsJC5GbG9hdDY0KSxzLm1ldGFkYXRhPW5ldyBNYXAocy5tZXRhZGF0YSksZz1zO2JyZWFrfWNhc2UgUS5NZXNoOntsZXQgcz1OQShBLG4pO3MubnVtYmVyT2ZQb2ludHM+MD9zLnBvaW50cz1VKEEsbiwwLHMubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTpzLnBvaW50cz14KHMubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSkscy5udW1iZXJPZkNlbGxzPjA/cy5jZWxscz1VKEEsbiwxLHMubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUpOnMuY2VsbHM9eChzLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSkscy5udW1iZXJPZlBvaW50UGl4ZWxzPjA/cy5wb2ludERhdGE9VShBLG4sMixzLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpzLnBvaW50RGF0YT14KHMubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxzLm51bWJlck9mQ2VsbFBpeGVscz4wP3MuY2VsbERhdGE9VShBLG4sMyxzLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOnMuY2VsbERhdGE9eChzLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxnPXM7YnJlYWt9Y2FzZSBRLlBvaW50U2V0OntsZXQgcz1OQShBLG4pO3MubnVtYmVyT2ZQb2ludHM+MD9zLnBvaW50cz1VKEEsbiwwLHMucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6cy5wb2ludHM9eChzLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxzLm51bWJlck9mUG9pbnRQaXhlbHM+MD9zLnBvaW50RGF0YT1VKEEsbiwxLHMucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpzLnBvaW50RGF0YT14KHMucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksZz1zO2JyZWFrfWNhc2UgUS5UcmFuc2Zvcm1MaXN0OntsZXQgcz1OQShBLG4pLEk9MDtzLmZvckVhY2goKGYsdSk9PntmLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYoZi5udW1iZXJPZkZpeGVkUGFyYW1ldGVycz4wJiYoc1t1XS5maXhlZFBhcmFtZXRlcnM9VShBLG4sSSwkLkZsb2F0NjQpKSxJKz0xLGYubnVtYmVyT2ZQYXJhbWV0ZXJzPjAmJihzW3VdLnBhcmFtZXRlcnM9VShBLG4sSSxmLnRyYW5zZm9ybVR5cGUucGFyYW1ldGVyc1ZhbHVlVHlwZSkpLEkrPTEpfSksZz1zO2JyZWFrfWNhc2UgUS5Qb2x5RGF0YTp7bGV0IHM9TkEoQSxuKTtzLm51bWJlck9mUG9pbnRzPjA/cy5wb2ludHM9VShBLG4sMCwkLkZsb2F0MzIpOnMucG9pbnRzPW5ldyBGbG9hdDMyQXJyYXkscy52ZXJ0aWNlc0J1ZmZlclNpemU+MD9zLnZlcnRpY2VzPVUoQSxuLDEsRy5VSW50MzIpOnMudmVydGljZXM9bmV3IFVpbnQzMkFycmF5LHMubGluZXNCdWZmZXJTaXplPjA/cy5saW5lcz1VKEEsbiwyLEcuVUludDMyKTpzLmxpbmVzPW5ldyBVaW50MzJBcnJheSxzLnBvbHlnb25zQnVmZmVyU2l6ZT4wP3MucG9seWdvbnM9VShBLG4sMyxHLlVJbnQzMik6cy5wb2x5Z29ucz1uZXcgVWludDMyQXJyYXkscy50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU+MD9zLnRyaWFuZ2xlU3RyaXBzPVUoQSxuLDQsRy5VSW50MzIpOnMudHJpYW5nbGVTdHJpcHM9bmV3IFVpbnQzMkFycmF5LHMubnVtYmVyT2ZQb2ludFBpeGVscz4wP3MucG9pbnREYXRhPVUoQSxuLDUscy5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOnMucG9pbnREYXRhPXgocy5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxzLm51bWJlck9mQ2VsbFBpeGVscz4wP3MuY2VsbERhdGE9VShBLG4sNixzLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpzLmNlbGxEYXRhPXgocy5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGc9czticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBvdXRwdXQgSW50ZXJmYWNlVHlwZSIpfWxldCBsPXt0eXBlOkIudHlwZSxkYXRhOmd9O3AucHVzaChsKX0pLHtyZXR1cm5WYWx1ZTpyLHN0ZG91dDphLHN0ZGVycjpDLG91dHB1dHM6cH19dmFyIE5yPUZvO3ZhciBrbz10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcjwidSI7ZnVuY3Rpb24gVW8oQSxlKXtpZihBPT1udWxsKXJldHVybltdO2xldCB0PVtdO2ZvcihsZXQgaT0wO2k8QS5sZW5ndGg7aSsrKXtsZXQgbz1ibyhBW2ldLGUpO28hPT1udWxsJiZ0LnB1c2gobyl9cmV0dXJuIHR9ZnVuY3Rpb24gYm8oQSxlKXtpZihBPT1udWxsKXJldHVybiBudWxsO2xldCB0PW51bGw7cmV0dXJuIEEuYnVmZmVyIT09dm9pZCAwP3Q9QS5idWZmZXI6QS5ieXRlTGVuZ3RoIT09dm9pZCAwJiYodD1BKSxrbyYmdCBpbnN0YW5jZW9mIFNoYXJlZEFycmF5QnVmZmVyP251bGw6ZT90OnQuc2xpY2UoMCl9dmFyIEdyPVVvO2Z1bmN0aW9uIE5vKEEpe3JldHVybltBLmRhdGEsQS5kaXJlY3Rpb25dfXZhciBNcj1ObztmdW5jdGlvbiBHbyhBKXtyZXR1cm5bQS5wb2ludHMsQS5wb2ludERhdGEsQS5jZWxscyxBLmNlbGxEYXRhXX12YXIgV3I9R287ZnVuY3Rpb24gTW8oQSl7cmV0dXJuW0EucG9pbnRzLEEudmVydGljZXMsQS5saW5lcyxBLnBvbHlnb25zLEEudHJpYW5nbGVTdHJpcHMsQS5wb2ludERhdGEsQS5jZWxsRGF0YV19dmFyIFByPU1vO3ZhciBXbztmdW5jdGlvbiByZSgpe3JldHVybiBXb312YXIgUG87ZnVuY3Rpb24gT3IoKXtyZXR1cm4gUG99dmFyIE9vO2Z1bmN0aW9uIGllKCl7cmV0dXJuIE9vfXZhciBKZT1uZXcgTWFwO2Z1bmN0aW9uIExvKCl7bGV0IEE9aWUoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT1udWxsKSxBfWZ1bmN0aW9uIExyKCl7bGV0IEE9cmUoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT1uZXcgVVJMKCIvcGlwZWxpbmVzIixkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4pLmhyZWYpLEF9ZnVuY3Rpb24gb2UoKXtsZXQgQT1PcigpO3JldHVybiB0eXBlb2YgQT4idSImJihBPXt9KSxBfWFzeW5jIGZ1bmN0aW9uIEpvKEEsZSx0KXtsZXQgaT1BLG89QTtpZih0eXBlb2YgQSE9InN0cmluZyImJihpPW5ldyBVUkwoQS5ocmVmKSxvPWkuaHJlZiksSmUuaGFzKG8pKXJldHVybiBKZS5nZXQobyk7e2xldCByPWF3YWl0IFNyKEEsZT8udG9TdHJpbmcoKT8/THIoKSx0Pz9vZSgpKTtyZXR1cm4gSmUuc2V0KG8scikscn19YXN5bmMgZnVuY3Rpb24geG8oQSxlLHQsaSxvKXtpZighYXdhaXQgUnIoKSl7bGV0IHU9IldlYkFzc2VtYmx5IFNJTUQgc3VwcG9ydCBpcyByZXF1aXJlZCAtLSBwbGVhc2UgdXBkYXRlIHlvdXIgYnJvd3Nlci4iO3Rocm93IGFsZXJ0KHUpLG5ldyBFcnJvcih1KX1sZXQgcj1vPy53ZWJXb3JrZXI/P251bGw7aWYocj09PSExKXtsZXQgdT1hd2FpdCBKbyhBLnRvU3RyaW5nKCksbz8ucGlwZWxpbmVCYXNlVXJsLG8/LnBpcGVsaW5lUXVlcnlQYXJhbXM/P29lKCkpO3JldHVybiBOcih1LGUsdCxpKX1sZXQgYT1yLEM9bz8ucGlwZWxpbmVXb3JrZXJVcmw/P0xvKCkscD10eXBlb2YgQyE9InN0cmluZyImJnR5cGVvZiBDPy5ocmVmPCJ1Ij9DLmhyZWY6Qyx7d29ya2VyUHJveHk6Qix3b3JrZXI6bn09YXdhaXQgeXIoYSxwLG8/LnBpcGVsaW5lUXVlcnlQYXJhbXM/P29lKCkpO2E9bjtsZXQgZz1bXTtpIT1udWxsJiZpLmxlbmd0aD4wJiZpLmZvckVhY2goZnVuY3Rpb24odSl7aWYodS50eXBlPT09US5CaW5hcnlTdHJlYW0pe2xldCB3PXUuZGF0YS5kYXRhO2cucHVzaCh3KX1lbHNlIGlmKHUudHlwZT09PVEuQmluYXJ5RmlsZSl7bGV0IHc9dS5kYXRhLmRhdGE7Zy5wdXNoKHcpfWVsc2UgaWYodS50eXBlPT09US5JbWFnZSl7bGV0IHc9dS5kYXRhO3cuZGF0YSE9PW51bGwmJmcucHVzaCguLi5Ncih3KSl9ZWxzZSBpZih1LnR5cGU9PT1RLk1lc2gpe2xldCB3PXUuZGF0YTtnLnB1c2goLi4uV3IodykpfWVsc2UgaWYodS50eXBlPT09US5Qb2x5RGF0YSl7bGV0IHc9dS5kYXRhO2cucHVzaCguLi5Qcih3KSl9fSk7bGV0IGw9bz8ucGlwZWxpbmVCYXNlVXJsPz9McigpLHM9dHlwZW9mIGwhPSJzdHJpbmciJiZ0eXBlb2YgbD8uaHJlZjwidSI/bC5ocmVmOmwsST1pIT1udWxsP0NlKGksR3IoZyxvPy5ub0NvcHkpKTpudWxsLGY9YXdhaXQgQi5ydW5QaXBlbGluZShBLnRvU3RyaW5nKCkscyxlLHQsSSxvPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz9vZSgpKTtyZXR1cm57cmV0dXJuVmFsdWU6Zi5yZXR1cm5WYWx1ZSxzdGRvdXQ6Zi5zdGRvdXQsc3RkZXJyOmYuc3RkZXJyLG91dHB1dHM6Zi5vdXRwdXRzLHdlYldvcmtlcjphfX12YXIgbT14bzt2YXIgWW89bnVsbDtmdW5jdGlvbiBKcigpe3JldHVybiBZb312YXIgSG89bmV3IE1hcChbXSksQ0E9SG87dmFyIFRvPSIxLjcuMCIseHI9VG87dmFyIHhlLHFvPWBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL0BpdGstd2FzbS9tZXNoLWlvQCR7eHJ9L2Rpc3QvcGlwZWxpbmVzYDtmdW5jdGlvbiBFQihBKXt4ZT1BfWZ1bmN0aW9uIGQoKXtpZih0eXBlb2YgeGU8InUiKXJldHVybiB4ZTtsZXQgQT1yZSgpO3JldHVybiB0eXBlb2YgQTwidSI/QTpxb312YXIgWWUsS289bnVsbDtmdW5jdGlvbiBZcihBKXtZZT1BfWZ1bmN0aW9uIGMoKXtpZih0eXBlb2YgWWU8InUiKXJldHVybiBZZTtsZXQgQT1pZSgpO3JldHVybiB0eXBlb2YgQTwidSI/QTpLb312YXIgUUE9bnVsbDthc3luYyBmdW5jdGlvbiBIcigpe2xldCBBPWMoKSxlPXR5cGVvZiBBIT0ic3RyaW5nIiYmdHlwZW9mIEE/LmhyZWY8InUiP0EuaHJlZjpBO1FBPWF3YWl0IFVBKGUpfWZ1bmN0aW9uIGRCKEEpe1FBPUF9YXN5bmMgZnVuY3Rpb24geSgpe2lmKFFBIT09bnVsbClyZXR1cm4gUUEudGVybWluYXRlZCYmYXdhaXQgSHIoKSxRQTtsZXQgQT1KcigpO3JldHVybiBBIT09bnVsbD9BOihhd2FpdCBIcigpLFFBKX1hc3luYyBmdW5jdGlvbiBqbyhBLGU9e30pe2xldCB0PVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLk1lc2h9XSxpPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCB1PWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtpPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KHUpfX1sZXQgbz1be3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6aX1dLHI9W10sYT1pLnBhdGg7ci5wdXNoKGEpLHIucHVzaCgiMCIpLHIucHVzaCgiMSIpLHIucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IEI9InZ0ay1wb2x5LWRhdGEtcmVhZC1tZXNoIixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpJWzBdPy5kYXRhLG1lc2g6SVsxXT8uZGF0YX19dmFyIEhlPWpvO2FzeW5jIGZ1bmN0aW9uIHZvKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuTWVzaCxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpO2xldCBwPWU7ci5wdXNoKHApLHIucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmci5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpLHQuYmluYXJ5RmlsZVR5cGUmJnQuYmluYXJ5RmlsZVR5cGUmJnIucHVzaCgiLS1iaW5hcnktZmlsZS10eXBlIik7bGV0IEI9InZ0ay1wb2x5LWRhdGEtd3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6SVsxXT8uZGF0YX19dmFyIFRlPXZvO2FzeW5jIGZ1bmN0aW9uIFpvKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuTWVzaH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0ib2JqLXJlYWQtbWVzaCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6SVswXT8uZGF0YSxtZXNoOklbMV0/LmRhdGF9fXZhciBxZT1abzthc3luYyBmdW5jdGlvbiBWbyhBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLk1lc2gsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBCPSJvYmotd3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6SVsxXT8uZGF0YX19dmFyIEtlPVZvO2FzeW5jIGZ1bmN0aW9uIHpvKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuTWVzaH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0ic3RsLXJlYWQtbWVzaCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6SVswXT8uZGF0YSxtZXNoOklbMV0/LmRhdGF9fXZhciBqZT16bzthc3luYyBmdW5jdGlvbiBYbyhBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLk1lc2gsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBCPSJzdGwtd3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6SVsxXT8uZGF0YX19dmFyIHZlPVhvO2FzeW5jIGZ1bmN0aW9uIF9vKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuTWVzaH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0ib2ZmLXJlYWQtbWVzaCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6SVswXT8uZGF0YSxtZXNoOklbMV0/LmRhdGF9fXZhciBaZT1fbzthc3luYyBmdW5jdGlvbiAkbyhBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLk1lc2gsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBCPSJvZmYtd3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6SVsxXT8uZGF0YX19dmFyIFZlPSRvO2FzeW5jIGZ1bmN0aW9uIEFuKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuTWVzaH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0ibXozLXJlYWQtbWVzaCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6SVswXT8uZGF0YSxtZXNoOklbMV0/LmRhdGF9fXZhciB6ZT1Bbjthc3luYyBmdW5jdGlvbiBlbihBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLk1lc2gsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBCPSJtejMtd3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6SVsxXT8uZGF0YX19dmFyIFhlPWVuO2FzeW5jIGZ1bmN0aW9uIHRuKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuTWVzaH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0id2FzbS1yZWFkLW1lc2giLG49ZT8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpJfT1hd2FpdCBtKEIscix0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTplPy5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRSZWFkOklbMF0/LmRhdGEsbWVzaDpJWzFdPy5kYXRhfX12YXIgX2U9dG47YXN5bmMgZnVuY3Rpb24gcm4oQSxlLHQ9e30pe2xldCBpPVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6US5NZXNoLGRhdGE6QX1dLHI9W107ci5wdXNoKCIwIiksci5wdXNoKCIwIik7bGV0IHA9ZTtyLnB1c2gocCksci5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZyLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIiksdC5iaW5hcnlGaWxlVHlwZSYmdC5iaW5hcnlGaWxlVHlwZSYmci5wdXNoKCItLWJpbmFyeS1maWxlLXR5cGUiKTtsZXQgQj0id2FzbS13cml0ZS1tZXNoIixuPXQ/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsaSxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6dD8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6SVswXT8uZGF0YSxzZXJpYWxpemVkTWVzaDpJWzFdPy5kYXRhfX12YXIgJGU9cm47YXN5bmMgZnVuY3Rpb24gb24oQSxlPXt9KXtsZXQgdD1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5NZXNofV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgdT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheSh1KX19bGV0IG89W3t0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOml9XSxyPVtdLGE9aS5wYXRoO3IucHVzaChhKSxyLnB1c2goIjAiKSxyLnB1c2goIjEiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJ3YXNtLXpzdGQtcmVhZC1tZXNoIixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpJWzBdPy5kYXRhLG1lc2g6SVsxXT8uZGF0YX19dmFyIEF0PW9uO2FzeW5jIGZ1bmN0aW9uIG5uKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuTWVzaCxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpO2xldCBwPWU7ci5wdXNoKHApLHIucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmci5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpLHQuYmluYXJ5RmlsZVR5cGUmJnQuYmluYXJ5RmlsZVR5cGUmJnIucHVzaCgiLS1iaW5hcnktZmlsZS10eXBlIik7bGV0IEI9Indhc20tenN0ZC13cml0ZS1tZXNoIixuPXQ/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsaSxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6dD8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6SVswXT8uZGF0YSxzZXJpYWxpemVkTWVzaDpJWzFdPy5kYXRhfX12YXIgZXQ9bm47YXN5bmMgZnVuY3Rpb24gYW4oQSxlPXt9KXtsZXQgdD1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5NZXNofV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgdT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheSh1KX19bGV0IG89W3t0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOml9XSxyPVtdLGE9aS5wYXRoO3IucHVzaChhKSxyLnB1c2goIjAiKSxyLnB1c2goIjEiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJzd2MtcmVhZC1tZXNoIixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpJWzBdPy5kYXRhLG1lc2g6SVsxXT8uZGF0YX19dmFyIHR0PWFuO2FzeW5jIGZ1bmN0aW9uIHNuKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuTWVzaCxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpO2xldCBwPWU7ci5wdXNoKHApLHIucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmci5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpLHQuYmluYXJ5RmlsZVR5cGUmJnQuYmluYXJ5RmlsZVR5cGUmJnIucHVzaCgiLS1iaW5hcnktZmlsZS10eXBlIik7bGV0IEI9InN3Yy13cml0ZS1tZXNoIixuPXQ/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsaSxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6dD8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6SVswXT8uZGF0YSxzZXJpYWxpemVkTWVzaDpJWzFdPy5kYXRhfX12YXIgcnQ9c247YXN5bmMgZnVuY3Rpb24gSW4oQSxlPXt9KXtsZXQgdD1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5NZXNofV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgdT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheSh1KX19bGV0IG89W3t0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOml9XSxyPVtdLGE9aS5wYXRoO3IucHVzaChhKSxyLnB1c2goIjAiKSxyLnB1c2goIjEiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJieXUtcmVhZC1tZXNoIixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpJWzBdPy5kYXRhLG1lc2g6SVsxXT8uZGF0YX19dmFyIGl0PUluO2FzeW5jIGZ1bmN0aW9uIGduKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuTWVzaCxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpO2xldCBwPWU7ci5wdXNoKHApLHIucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmci5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpLHQuYmluYXJ5RmlsZVR5cGUmJnQuYmluYXJ5RmlsZVR5cGUmJnIucHVzaCgiLS1iaW5hcnktZmlsZS10eXBlIik7bGV0IEI9ImJ5dS13cml0ZS1tZXNoIixuPXQ/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsaSxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6dD8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6SVswXT8uZGF0YSxzZXJpYWxpemVkTWVzaDpJWzFdPy5kYXRhfX12YXIgb3Q9Z247YXN5bmMgZnVuY3Rpb24gQm4oQSxlPXt9KXtsZXQgdD1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5NZXNofV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgdT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheSh1KX19bGV0IG89W3t0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOml9XSxyPVtdLGE9aS5wYXRoO3IucHVzaChhKSxyLnB1c2goIjAiKSxyLnB1c2goIjEiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJmcmVlLXN1cmZlci1hc2NpaS1yZWFkLW1lc2giLG49ZT8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpJfT1hd2FpdCBtKEIscix0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTplPy5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRSZWFkOklbMF0/LmRhdGEsbWVzaDpJWzFdPy5kYXRhfX12YXIgbnQ9Qm47YXN5bmMgZnVuY3Rpb24gQ24oQSxlLHQ9e30pe2xldCBpPVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6US5NZXNoLGRhdGE6QX1dLHI9W107ci5wdXNoKCIwIiksci5wdXNoKCIwIik7bGV0IHA9ZTtyLnB1c2gocCksci5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZyLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIiksdC5iaW5hcnlGaWxlVHlwZSYmdC5iaW5hcnlGaWxlVHlwZSYmci5wdXNoKCItLWJpbmFyeS1maWxlLXR5cGUiKTtsZXQgQj0iZnJlZS1zdXJmZXItYXNjaWktd3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6SVsxXT8uZGF0YX19dmFyIGF0PUNuO2FzeW5jIGZ1bmN0aW9uIFFuKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuTWVzaH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0iZnJlZS1zdXJmZXItYmluYXJ5LXJlYWQtbWVzaCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6SVswXT8uZGF0YSxtZXNoOklbMV0/LmRhdGF9fXZhciBzdD1Rbjthc3luYyBmdW5jdGlvbiBFbihBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLk1lc2gsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBCPSJmcmVlLXN1cmZlci1iaW5hcnktd3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6SVsxXT8uZGF0YX19dmFyIEl0PUVuO3ZhciBsbj1uZXcgTWFwKFtbInZ0ayIsW0hlLFRlXV0sWyJvYmoiLFtxZSxLZV1dLFsic3RsIixbamUsdmVdXSxbIm9mZiIsW1plLFZlXV0sWyJtejMiLFt6ZSxYZV1dLFsid2FzbSIsW19lLCRlXV0sWyJ3YXNtWnN0ZCIsW0F0LGV0XV0sWyJzd2MiLFt0dCxydF1dLFsiYnl1IixbaXQsb3RdXSxbImZyZWVTdXJmZXJBc2NpaSIsW250LGF0XV0sWyJmcmVlU3VyZmVyQmluYXJ5Iixbc3QsSXRdXV0pLEVBPWxuO2FzeW5jIGZ1bmN0aW9uIHBuKEEsZT17fSl7bGV0IHQ9QS50eXBlPz8iIixpPUEubmFtZT8/QS5wYXRoPz8iZmlsZU5hbWUiLG89VChpKS50b0xvd2VyQ2FzZSgpLHI9ZT8ud2ViV29ya2VyLGE9QTtpZihBIGluc3RhbmNlb2YgQmxvYil7bGV0IHM9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2E9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkocyl9fWxldCBDPW51bGw7aWYodCYmQ0EuaGFzKHQpKUM9Q0EuZ2V0KHQpO2Vsc2UgaWYoWC5oYXMobykpQz1YLmdldChvKTtlbHNlIGZvcihsZXQgcyBvZiBFQS52YWx1ZXMoKSlpZihzWzBdIT09bnVsbCl7bGV0e3dlYldvcmtlcjpJLGNvdWxkUmVhZDpmLG1lc2g6dX09YXdhaXQgc1swXSh7cGF0aDphLnBhdGgsZGF0YTphLmRhdGEuc2xpY2UoKX0se2luZm9ybWF0aW9uT25seTplLmluZm9ybWF0aW9uT25seSx3ZWJXb3JrZXI6cixub0NvcHk6ZT8ubm9Db3B5fSk7aWYocj1JLGYpcmV0dXJue3dlYldvcmtlcjpyLG1lc2g6dX19aWYoIUMpdGhyb3cgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIElPIGZvcjogIitpKTtsZXQgQj1FQS5nZXQoQylbMF0se3dlYldvcmtlcjpuLGNvdWxkUmVhZDpnLG1lc2g6bH09YXdhaXQgQihhLHtpbmZvcm1hdGlvbk9ubHk6ZS5pbmZvcm1hdGlvbk9ubHksd2ViV29ya2VyOnIsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKHI9biwhZyl0aHJvdyBFcnJvcigiQ291bGQgbm90IHJlYWQ6ICIraSk7cmV0dXJue3dlYldvcmtlcjpyLG1lc2g6bH19dmFyIHVuPXBuO2FzeW5jIGZ1bmN0aW9uIGZuKEEsZSx0PXt9KXtsZXQgaT1BLG89dC5taW1lVHlwZSxyPVQoZSkudG9Mb3dlckNhc2UoKSxhPXQud2ViV29ya2VyLEM9bnVsbDtpZih0eXBlb2YgbzwidSImJkNBLmhhcyhvKSlDPUNBLmdldChvKTtlbHNlIGlmKFguaGFzKHIpKUM9WC5nZXQocik7ZWxzZSBmb3IobGV0IEkgb2YgRUEudmFsdWVzKCkpaWYoSVsxXSE9PW51bGwpe2xldHt3ZWJXb3JrZXI6Zixjb3VsZFdyaXRlOnUsc2VyaWFsaXplZE1lc2g6d309YXdhaXQgSVsxXShpLGUsdCk7aWYoYT1mLHUpcmV0dXJue3dlYldvcmtlcjphLHNlcmlhbGl6ZWRNZXNoOnd9fWlmKCFDKXRocm93IEVycm9yKCJDb3VsZCBub3QgZmluZCBJTyBmb3I6ICIrZSk7bGV0IEI9RUEuZ2V0KEMpWzFdLHt3ZWJXb3JrZXI6bixjb3VsZFdyaXRlOmcsc2VyaWFsaXplZE1lc2g6bH09YXdhaXQgQihpLGUsdCk7aWYoYT1uLCFnKXRocm93IEVycm9yKCJDb3VsZCBub3Qgd3JpdGU6ICIrZSk7cmV0dXJue3dlYldvcmtlcjphLHNlcmlhbGl6ZWRNZXNoOmx9fXZhciBjbj1mbjt2YXIgbW49bmV3IE1hcChbXSksbEE9bW47YXN5bmMgZnVuY3Rpb24gZG4oQSxlPXt9KXtsZXQgdD1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5Qb2ludFNldH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0idnRrLXBvbHktZGF0YS1yZWFkLXBvaW50LXNldCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6SVswXT8uZGF0YSxwb2ludFNldDpJWzFdPy5kYXRhfX12YXIgZ3Q9ZG47YXN5bmMgZnVuY3Rpb24geW4oQSxlLHQ9e30pe2xldCBpPVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6US5Qb2ludFNldCxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpO2xldCBwPWU7ci5wdXNoKHApLHIucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmci5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpLHQuYmluYXJ5RmlsZVR5cGUmJnQuYmluYXJ5RmlsZVR5cGUmJnIucHVzaCgiLS1iaW5hcnktZmlsZS10eXBlIik7bGV0IEI9InZ0ay1wb2x5LWRhdGEtd3JpdGUtcG9pbnQtc2V0IixuPXQ/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsaSxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6dD8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6SVswXT8uZGF0YSxzZXJpYWxpemVkUG9pbnRTZXQ6SVsxXT8uZGF0YX19dmFyIEJ0PXluO2FzeW5jIGZ1bmN0aW9uIGhuKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuUG9pbnRTZXR9XSxpPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCB1PWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtpPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KHUpfX1sZXQgbz1be3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6aX1dLHI9W10sYT1pLnBhdGg7ci5wdXNoKGEpLHIucHVzaCgiMCIpLHIucHVzaCgiMSIpLHIucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IEI9Im16My1yZWFkLXBvaW50LXNldCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6SVswXT8uZGF0YSxwb2ludFNldDpJWzFdPy5kYXRhfX12YXIgQ3Q9aG47YXN5bmMgZnVuY3Rpb24gd24oQSxlLHQ9e30pe2xldCBpPVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6US5Qb2ludFNldCxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpO2xldCBwPWU7ci5wdXNoKHApLHIucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmci5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpLHQuYmluYXJ5RmlsZVR5cGUmJnQuYmluYXJ5RmlsZVR5cGUmJnIucHVzaCgiLS1iaW5hcnktZmlsZS10eXBlIik7bGV0IEI9Im16My13cml0ZS1wb2ludC1zZXQiLG49dD8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpJfT1hd2FpdCBtKEIscixpLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTp0Py5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRXcml0ZTpJWzBdPy5kYXRhLHNlcmlhbGl6ZWRQb2ludFNldDpJWzFdPy5kYXRhfX12YXIgUXQ9d247YXN5bmMgZnVuY3Rpb24gRG4oQSxlPXt9KXtsZXQgdD1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5Qb2ludFNldH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0ib2JqLXJlYWQtcG9pbnQtc2V0IixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpJWzBdPy5kYXRhLHBvaW50U2V0OklbMV0/LmRhdGF9fXZhciBFdD1Ebjthc3luYyBmdW5jdGlvbiBTbihBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLlBvaW50U2V0LGRhdGE6QX1dLHI9W107ci5wdXNoKCIwIiksci5wdXNoKCIwIik7bGV0IHA9ZTtyLnB1c2gocCksci5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZyLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIiksdC5iaW5hcnlGaWxlVHlwZSYmdC5iaW5hcnlGaWxlVHlwZSYmci5wdXNoKCItLWJpbmFyeS1maWxlLXR5cGUiKTtsZXQgQj0ib2JqLXdyaXRlLXBvaW50LXNldCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZFBvaW50U2V0OklbMV0/LmRhdGF9fXZhciBsdD1Tbjthc3luYyBmdW5jdGlvbiBSbihBLGU9e30pe2xldCB0PVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLlBvaW50U2V0fV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgdT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheSh1KX19bGV0IG89W3t0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOml9XSxyPVtdLGE9aS5wYXRoO3IucHVzaChhKSxyLnB1c2goIjAiKSxyLnB1c2goIjEiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJvZmYtcmVhZC1wb2ludC1zZXQiLG49ZT8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpJfT1hd2FpdCBtKEIscix0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTplPy5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRSZWFkOklbMF0/LmRhdGEscG9pbnRTZXQ6SVsxXT8uZGF0YX19dmFyIHB0PVJuO2FzeW5jIGZ1bmN0aW9uIEZuKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuUG9pbnRTZXQsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBCPSJvZmYtd3JpdGUtcG9pbnQtc2V0IixuPXQ/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsaSxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6dD8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6SVswXT8uZGF0YSxzZXJpYWxpemVkUG9pbnRTZXQ6SVsxXT8uZGF0YX19dmFyIHV0PUZuO2FzeW5jIGZ1bmN0aW9uIGtuKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuUG9pbnRTZXR9XSxpPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCB1PWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtpPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KHUpfX1sZXQgbz1be3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6aX1dLHI9W10sYT1pLnBhdGg7ci5wdXNoKGEpLHIucHVzaCgiMCIpLHIucHVzaCgiMSIpLHIucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IEI9Indhc20tcmVhZC1wb2ludC1zZXQiLG49ZT8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpJfT1hd2FpdCBtKEIscix0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTplPy5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRSZWFkOklbMF0/LmRhdGEscG9pbnRTZXQ6SVsxXT8uZGF0YX19dmFyIGZ0PWtuO2FzeW5jIGZ1bmN0aW9uIFVuKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuUG9pbnRTZXQsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBCPSJ3YXNtLXdyaXRlLXBvaW50LXNldCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZFBvaW50U2V0OklbMV0/LmRhdGF9fXZhciBjdD1Vbjthc3luYyBmdW5jdGlvbiBibihBLGU9e30pe2xldCB0PVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLlBvaW50U2V0fV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgdT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheSh1KX19bGV0IG89W3t0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOml9XSxyPVtdLGE9aS5wYXRoO3IucHVzaChhKSxyLnB1c2goIjAiKSxyLnB1c2goIjEiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJ3YXNtLXpzdGQtcmVhZC1wb2ludC1zZXQiLG49ZT8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpJfT1hd2FpdCBtKEIscix0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTplPy5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRSZWFkOklbMF0/LmRhdGEscG9pbnRTZXQ6SVsxXT8uZGF0YX19dmFyIG10PWJuO2FzeW5jIGZ1bmN0aW9uIE5uKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuUG9pbnRTZXQsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBCPSJ3YXNtLXpzdGQtd3JpdGUtcG9pbnQtc2V0IixuPXQ/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsaSxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6dD8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6SVswXT8uZGF0YSxzZXJpYWxpemVkUG9pbnRTZXQ6SVsxXT8uZGF0YX19dmFyIGR0PU5uO3ZhciBHbj1uZXcgTWFwKFtbInZ0ayIsW2d0LEJ0XV0sWyJtejMiLFtDdCxRdF1dLFsib2JqIixbRXQsbHRdXSxbIm9mZiIsW3B0LHV0XV0sWyJ3YXNtIixbZnQsY3RdXSxbIndhc20tenN0IixbbXQsZHRdXV0pLHBBPUduO2FzeW5jIGZ1bmN0aW9uIE1uKEEsZT17fSl7bGV0IHQ9QS50eXBlPz8iIixpPUEubmFtZT8/QS5wYXRoPz8iZmlsZU5hbWUiLG89VChpKS50b0xvd2VyQ2FzZSgpLHI9ZT8ud2ViV29ya2VyLGE9QTtpZihBIGluc3RhbmNlb2YgQmxvYil7bGV0IHM9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2E9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkocyl9fWxldCBDPW51bGw7aWYodCYmbEEuaGFzKHQpKUM9bEEuZ2V0KHQpO2Vsc2UgaWYoXy5oYXMobykpQz1fLmdldChvKTtlbHNlIGZvcihsZXQgcyBvZiBwQS52YWx1ZXMoKSlpZihzWzBdIT09bnVsbCl7bGV0e3dlYldvcmtlcjpJLGNvdWxkUmVhZDpmLHBvaW50U2V0OnV9PWF3YWl0IHNbMF0oe3BhdGg6YS5wYXRoLGRhdGE6YS5kYXRhLnNsaWNlKCl9LHtpbmZvcm1hdGlvbk9ubHk6ZS5pbmZvcm1hdGlvbk9ubHksd2ViV29ya2VyOnIsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKHI9SSxmKXJldHVybnt3ZWJXb3JrZXI6cixwb2ludFNldDp1fX1pZighQyl0aHJvdyBFcnJvcigiQ291bGQgbm90IGZpbmQgSU8gZm9yOiAiK2kpO2xldCBCPXBBLmdldChDKVswXSx7d2ViV29ya2VyOm4sY291bGRSZWFkOmcscG9pbnRTZXQ6bH09YXdhaXQgQihhLHtpbmZvcm1hdGlvbk9ubHk6ZS5pbmZvcm1hdGlvbk9ubHksd2ViV29ya2VyOnIsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKHI9biwhZyl0aHJvdyBFcnJvcigiQ291bGQgbm90IHJlYWQ6ICIraSk7cmV0dXJue3dlYldvcmtlcjpyLHBvaW50U2V0Omx9fXZhciBXbj1Nbjthc3luYyBmdW5jdGlvbiBQbihBLGUsdD17fSl7bGV0IGk9QSxvPXQubWltZVR5cGUscj1UKGUpLnRvTG93ZXJDYXNlKCksYT10LndlYldvcmtlcixDPW51bGw7aWYodHlwZW9mIG88InUiJiZsQS5oYXMobykpQz1sQS5nZXQobyk7ZWxzZSBpZihfLmhhcyhyKSlDPV8uZ2V0KHIpO2Vsc2UgZm9yKGxldCBJIG9mIHBBLnZhbHVlcygpKWlmKElbMV0hPT1udWxsKXtsZXR7d2ViV29ya2VyOmYsY291bGRXcml0ZTp1LHNlcmlhbGl6ZWRQb2ludFNldDp3fT1hd2FpdCBJWzFdKGksZSx0KTtpZihhPWYsdSlyZXR1cm57d2ViV29ya2VyOmEsc2VyaWFsaXplZFBvaW50U2V0Ond9fWlmKCFDKXRocm93IEVycm9yKCJDb3VsZCBub3QgZmluZCBJTyBmb3I6ICIrZSk7bGV0IEI9cEEuZ2V0KEMpWzFdLHt3ZWJXb3JrZXI6bixjb3VsZFdyaXRlOmcsc2VyaWFsaXplZFBvaW50U2V0Omx9PWF3YWl0IEIoaSxlLHQpO2lmKGE9biwhZyl0aHJvdyBFcnJvcigiQ291bGQgbm90IHdyaXRlOiAiK2UpO3JldHVybnt3ZWJXb3JrZXI6YSxzZXJpYWxpemVkUG9pbnRTZXQ6bH19dmFyIE9uPVBuO3ZhciBUcj0nZGF0YTp0ZXh0L2phdmFzY3JpcHQ7Y2hhcnNldD11dGYtOCx2YXIgWWU9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBxZT0oQSx0KT0+e2Zvcih2YXIgZSBpbiB0KVllKEEsZSx7Z2V0OnRbZV0sZW51bWVyYWJsZTohMH0pfTt2YXIgTnQ9U3ltYm9sKCJDb21saW5rLnByb3h5IiksTWU9U3ltYm9sKCJDb21saW5rLmVuZHBvaW50IiksS2U9U3ltYm9sKCJDb21saW5rLnJlbGVhc2VQcm94eSIpLFZBPVN5bWJvbCgiQ29tbGluay5maW5hbGl6ZXIiKSxtQT1TeW1ib2woIkNvbWxpbmsudGhyb3duIiksVXQ9QT0+dHlwZW9mIEE9PSJvYmplY3QiJiZBIT09bnVsbHx8dHlwZW9mIEE9PSJmdW5jdGlvbiIsT2U9e2NhbkhhbmRsZTpBPT5VdChBKSYmQVtOdF0sc2VyaWFsaXplKEEpe2xldHtwb3J0MTp0LHBvcnQyOmV9PW5ldyBNZXNzYWdlQ2hhbm5lbDtyZXR1cm4gRkEoQSx0KSxbZSxbZV1dfSxkZXNlcmlhbGl6ZShBKXtyZXR1cm4gQS5zdGFydCgpLGplKEEpfX0sVGU9e2NhbkhhbmRsZTpBPT5VdChBKSYmbUEgaW4gQSxzZXJpYWxpemUoe3ZhbHVlOkF9KXtsZXQgdDtyZXR1cm4gQSBpbnN0YW5jZW9mIEVycm9yP3Q9e2lzRXJyb3I6ITAsdmFsdWU6e21lc3NhZ2U6QS5tZXNzYWdlLG5hbWU6QS5uYW1lLHN0YWNrOkEuc3RhY2t9fTp0PXtpc0Vycm9yOiExLHZhbHVlOkF9LFt0LFtdXX0sZGVzZXJpYWxpemUoQSl7dGhyb3cgQS5pc0Vycm9yP09iamVjdC5hc3NpZ24obmV3IEVycm9yKEEudmFsdWUubWVzc2FnZSksQS52YWx1ZSk6QS52YWx1ZX19LEd0PW5ldyBNYXAoW1sicHJveHkiLE9lXSxbInRocm93IixUZV1dKTtmdW5jdGlvbiB4ZShBLHQpe2ZvcihsZXQgZSBvZiBBKWlmKHQ9PT1lfHxlPT09IioifHxlIGluc3RhbmNlb2YgUmVnRXhwJiZlLnRlc3QodCkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gRkEoQSx0PWdsb2JhbFRoaXMsZT1bIioiXSl7dC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBJKHIpe2lmKCFyfHwhci5kYXRhKXJldHVybjtpZigheGUoZSxyLm9yaWdpbikpe2NvbnNvbGUud2FybihgSW52YWxpZCBvcmlnaW4gXCcke3Iub3JpZ2lufVwnIGZvciBjb21saW5rIHByb3h5YCk7cmV0dXJufWxldHtpZDpnLHR5cGU6byxwYXRoOm59PU9iamVjdC5hc3NpZ24oe3BhdGg6W119LHIuZGF0YSksRT0oci5kYXRhLmFyZ3VtZW50TGlzdHx8W10pLm1hcChXKSxCO3RyeXtsZXQgcz1uLnNsaWNlKDAsLTEpLnJlZHVjZSgobCxhKT0+bFthXSxBKSxDPW4ucmVkdWNlKChsLGEpPT5sW2FdLEEpO3N3aXRjaChvKXtjYXNlIkdFVCI6Qj1DO2JyZWFrO2Nhc2UiU0VUIjpzW24uc2xpY2UoLTEpWzBdXT1XKHIuZGF0YS52YWx1ZSksQj0hMDticmVhaztjYXNlIkFQUExZIjpCPUMuYXBwbHkocyxFKTticmVhaztjYXNlIkNPTlNUUlVDVCI6e2xldCBsPW5ldyBDKC4uLkUpO0I9WGUobCl9YnJlYWs7Y2FzZSJFTkRQT0lOVCI6e2xldHtwb3J0MTpsLHBvcnQyOmF9PW5ldyBNZXNzYWdlQ2hhbm5lbDtGQShBLGEpLEI9X0EobCxbbF0pfWJyZWFrO2Nhc2UiUkVMRUFTRSI6Qj12b2lkIDA7YnJlYWs7ZGVmYXVsdDpyZXR1cm59fWNhdGNoKHMpe0I9e3ZhbHVlOnMsW21BXTowfX1Qcm9taXNlLnJlc29sdmUoQikuY2F0Y2gocz0+KHt2YWx1ZTpzLFttQV06MH0pKS50aGVuKHM9PntsZXRbQyxsXT1TQShzKTt0LnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxDKSx7aWQ6Z30pLGwpLG89PT0iUkVMRUFTRSImJih0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLEkpLGt0KHQpLFZBIGluIEEmJnR5cGVvZiBBW1ZBXT09ImZ1bmN0aW9uIiYmQVtWQV0oKSl9KS5jYXRjaChzPT57bGV0W0MsbF09U0Eoe3ZhbHVlOm5ldyBUeXBlRXJyb3IoIlVuc2VyaWFsaXphYmxlIHJldHVybiB2YWx1ZSIpLFttQV06MH0pO3QucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEMpLHtpZDpnfSksbCl9KX0pLHQuc3RhcnQmJnQuc3RhcnQoKX1mdW5jdGlvbiBQZShBKXtyZXR1cm4gQS5jb25zdHJ1Y3Rvci5uYW1lPT09Ik1lc3NhZ2VQb3J0In1mdW5jdGlvbiBrdChBKXtQZShBKSYmQS5jbG9zZSgpfWZ1bmN0aW9uIGplKEEsdCl7cmV0dXJuIFhBKEEsW10sdCl9ZnVuY3Rpb24geUEoQSl7aWYoQSl0aHJvdyBuZXcgRXJyb3IoIlByb3h5IGhhcyBiZWVuIHJlbGVhc2VkIGFuZCBpcyBub3QgdXNlYWJsZSIpfWZ1bmN0aW9uIEx0KEEpe3JldHVybiBfKEEse3R5cGU6IlJFTEVBU0UifSkudGhlbigoKT0+e2t0KEEpfSl9dmFyIHdBPW5ldyBXZWFrTWFwLHBBPSJGaW5hbGl6YXRpb25SZWdpc3RyeSJpbiBnbG9iYWxUaGlzJiZuZXcgRmluYWxpemF0aW9uUmVnaXN0cnkoQT0+e2xldCB0PSh3QS5nZXQoQSl8fDApLTE7d0Euc2V0KEEsdCksdD09PTAmJkx0KEEpfSk7ZnVuY3Rpb24gV2UoQSx0KXtsZXQgZT0od0EuZ2V0KHQpfHwwKSsxO3dBLnNldCh0LGUpLHBBJiZwQS5yZWdpc3RlcihBLHQsQSl9ZnVuY3Rpb24gWmUoQSl7cEEmJnBBLnVucmVnaXN0ZXIoQSl9ZnVuY3Rpb24gWEEoQSx0PVtdLGU9ZnVuY3Rpb24oKXt9KXtsZXQgST0hMSxyPW5ldyBQcm94eShlLHtnZXQoZyxvKXtpZih5QShJKSxvPT09S2UpcmV0dXJuKCk9PntaZShyKSxMdChBKSxJPSEwfTtpZihvPT09InRoZW4iKXtpZih0Lmxlbmd0aD09PTApcmV0dXJue3RoZW46KCk9PnJ9O2xldCBuPV8oQSx7dHlwZToiR0VUIixwYXRoOnQubWFwKEU9PkUudG9TdHJpbmcoKSl9KS50aGVuKFcpO3JldHVybiBuLnRoZW4uYmluZChuKX1yZXR1cm4gWEEoQSxbLi4udCxvXSl9LHNldChnLG8sbil7eUEoSSk7bGV0W0UsQl09U0Eobik7cmV0dXJuIF8oQSx7dHlwZToiU0VUIixwYXRoOlsuLi50LG9dLm1hcChzPT5zLnRvU3RyaW5nKCkpLHZhbHVlOkV9LEIpLnRoZW4oVyl9LGFwcGx5KGcsbyxuKXt5QShJKTtsZXQgRT10W3QubGVuZ3RoLTFdO2lmKEU9PT1NZSlyZXR1cm4gXyhBLHt0eXBlOiJFTkRQT0lOVCJ9KS50aGVuKFcpO2lmKEU9PT0iYmluZCIpcmV0dXJuIFhBKEEsdC5zbGljZSgwLC0xKSk7bGV0W0Isc109UnQobik7cmV0dXJuIF8oQSx7dHlwZToiQVBQTFkiLHBhdGg6dC5tYXAoQz0+Qy50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Qn0scykudGhlbihXKX0sY29uc3RydWN0KGcsbyl7eUEoSSk7bGV0W24sRV09UnQobyk7cmV0dXJuIF8oQSx7dHlwZToiQ09OU1RSVUNUIixwYXRoOnQubWFwKEI9PkIudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0Om59LEUpLnRoZW4oVyl9fSk7cmV0dXJuIFdlKHIsQSkscn1mdW5jdGlvbiBWZShBKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxBKX1mdW5jdGlvbiBSdChBKXtsZXQgdD1BLm1hcChTQSk7cmV0dXJuW3QubWFwKGU9PmVbMF0pLFZlKHQubWFwKGU9PmVbMV0pKV19dmFyIGJ0PW5ldyBXZWFrTWFwO2Z1bmN0aW9uIF9BKEEsdCl7cmV0dXJuIGJ0LnNldChBLHQpLEF9ZnVuY3Rpb24gWGUoQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7W050XTohMH0pfWZ1bmN0aW9uIFNBKEEpe2ZvcihsZXRbdCxlXW9mIEd0KWlmKGUuY2FuSGFuZGxlKEEpKXtsZXRbSSxyXT1lLnNlcmlhbGl6ZShBKTtyZXR1cm5be3R5cGU6IkhBTkRMRVIiLG5hbWU6dCx2YWx1ZTpJfSxyXX1yZXR1cm5be3R5cGU6IlJBVyIsdmFsdWU6QX0sYnQuZ2V0KEEpfHxbXV19ZnVuY3Rpb24gVyhBKXtzd2l0Y2goQS50eXBlKXtjYXNlIkhBTkRMRVIiOnJldHVybiBHdC5nZXQoQS5uYW1lKS5kZXNlcmlhbGl6ZShBLnZhbHVlKTtjYXNlIlJBVyI6cmV0dXJuIEEudmFsdWV9fWZ1bmN0aW9uIF8oQSx0LGUpe3JldHVybiBuZXcgUHJvbWlzZShJPT57bGV0IHI9X2UoKTtBLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIGcobyl7IW8uZGF0YXx8IW8uZGF0YS5pZHx8by5kYXRhLmlkIT09cnx8KEEucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZyksSShvLmRhdGEpKX0pLEEuc3RhcnQmJkEuc3RhcnQoKSxBLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oe2lkOnJ9LHQpLGUpfSl9ZnVuY3Rpb24gX2UoKXtyZXR1cm4gbmV3IEFycmF5KDQpLmZpbGwoMCkubWFwKCgpPT5NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpLnRvU3RyaW5nKDE2KSkuam9pbigiLSIpfWZ1bmN0aW9uIG9BKEEsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEEuYXBwbHkodCxhcmd1bWVudHMpfX12YXJ7dG9TdHJpbmc6emV9PU9iamVjdC5wcm90b3R5cGUse2dldFByb3RvdHlwZU9mOnZBfT1PYmplY3Qse2l0ZXJhdG9yOk5BLHRvU3RyaW5nVGFnOll0fT1TeW1ib2wsVUE9KEE9PnQ9PntsZXQgZT16ZS5jYWxsKHQpO3JldHVybiBBW2VdfHwoQVtlXT1lLnNsaWNlKDgsLTEpLnRvTG93ZXJDYXNlKCkpfSkoT2JqZWN0LmNyZWF0ZShudWxsKSksTD1BPT4oQT1BLnRvTG93ZXJDYXNlKCksdD0+VUEodCk9PT1BKSxHQT1BPT50PT50eXBlb2YgdD09PUEse2lzQXJyYXk6dn09QXJyYXksej1HQSgidW5kZWZpbmVkIik7ZnVuY3Rpb24gZ0EoQSl7cmV0dXJuIEEhPT1udWxsJiYheihBKSYmQS5jb25zdHJ1Y3RvciE9PW51bGwmJiF6KEEuY29uc3RydWN0b3IpJiZOKEEuY29uc3RydWN0b3IuaXNCdWZmZXIpJiZBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKEEpfXZhciBxdD1MKCJBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uIHZlKEEpe2xldCB0O3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXc/dD1BcnJheUJ1ZmZlci5pc1ZpZXcoQSk6dD1BJiZBLmJ1ZmZlciYmcXQoQS5idWZmZXIpLHR9dmFyICRlPUdBKCJzdHJpbmciKSxOPUdBKCJmdW5jdGlvbiIpLE10PUdBKCJudW1iZXIiKSxpQT1BPT5BIT09bnVsbCYmdHlwZW9mIEE9PSJvYmplY3QiLEFJPUE9PkE9PT0hMHx8QT09PSExLFJBPUE9PntpZihVQShBKSE9PSJvYmplY3QiKXJldHVybiExO2xldCB0PXZBKEEpO3JldHVybih0PT09bnVsbHx8dD09PU9iamVjdC5wcm90b3R5cGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KT09PW51bGwpJiYhKFl0IGluIEEpJiYhKE5BIGluIEEpfSx0ST1BPT57aWYoIWlBKEEpfHxnQShBKSlyZXR1cm4hMTt0cnl7cmV0dXJuIE9iamVjdC5rZXlzKEEpLmxlbmd0aD09PTAmJk9iamVjdC5nZXRQcm90b3R5cGVPZihBKT09PU9iamVjdC5wcm90b3R5cGV9Y2F0Y2h7cmV0dXJuITF9fSxlST1MKCJEYXRlIiksSUk9TCgiRmlsZSIpLHJJPUwoIkJsb2IiKSxvST1MKCJGaWxlTGlzdCIpLGdJPUE9PmlBKEEpJiZOKEEucGlwZSksaUk9QT0+e2xldCB0O3JldHVybiBBJiYodHlwZW9mIEZvcm1EYXRhPT0iZnVuY3Rpb24iJiZBIGluc3RhbmNlb2YgRm9ybURhdGF8fE4oQS5hcHBlbmQpJiYoKHQ9VUEoQSkpPT09ImZvcm1kYXRhInx8dD09PSJvYmplY3QiJiZOKEEudG9TdHJpbmcpJiZBLnRvU3RyaW5nKCk9PT0iW29iamVjdCBGb3JtRGF0YV0iKSl9LHNJPUwoIlVSTFNlYXJjaFBhcmFtcyIpLFtuSSxDSSxCSSxhSV09WyJSZWFkYWJsZVN0cmVhbSIsIlJlcXVlc3QiLCJSZXNwb25zZSIsIkhlYWRlcnMiXS5tYXAoTCksUUk9QT0+QS50cmltP0EudHJpbSgpOkEucmVwbGFjZSgvXltcXHNcXHVGRUZGXFx4QTBdK3xbXFxzXFx1RkVGRlxceEEwXSskL2csIiIpO2Z1bmN0aW9uIHNBKEEsdCx7YWxsT3duS2V5czplPSExfT17fSl7aWYoQT09PW51bGx8fHR5cGVvZiBBPiJ1IilyZXR1cm47bGV0IEkscjtpZih0eXBlb2YgQSE9Im9iamVjdCImJihBPVtBXSksdihBKSlmb3IoST0wLHI9QS5sZW5ndGg7STxyO0krKyl0LmNhbGwobnVsbCxBW0ldLEksQSk7ZWxzZXtpZihnQShBKSlyZXR1cm47bGV0IGc9ZT9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKTpPYmplY3Qua2V5cyhBKSxvPWcubGVuZ3RoLG47Zm9yKEk9MDtJPG87SSsrKW49Z1tJXSx0LmNhbGwobnVsbCxBW25dLG4sQSl9fWZ1bmN0aW9uIEt0KEEsdCl7aWYoZ0EoQSkpcmV0dXJuIG51bGw7dD10LnRvTG93ZXJDYXNlKCk7bGV0IGU9T2JqZWN0LmtleXMoQSksST1lLmxlbmd0aCxyO2Zvcig7SS0tID4wOylpZihyPWVbSV0sdD09PXIudG9Mb3dlckNhc2UoKSlyZXR1cm4gcjtyZXR1cm4gbnVsbH12YXIgWj10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6Z2xvYmFsLE90PUE9PiF6KEEpJiZBIT09WjtmdW5jdGlvbiB6QSgpe2xldHtjYXNlbGVzczpBLHNraXBVbmRlZmluZWQ6dH09T3QodGhpcykmJnRoaXN8fHt9LGU9e30sST0ocixnKT0+e2xldCBvPUEmJkt0KGUsZyl8fGc7UkEoZVtvXSkmJlJBKHIpP2Vbb109ekEoZVtvXSxyKTpSQShyKT9lW29dPXpBKHt9LHIpOnYocik/ZVtvXT1yLnNsaWNlKCk6KCF0fHwheihyKSkmJihlW29dPXIpfTtmb3IobGV0IHI9MCxnPWFyZ3VtZW50cy5sZW5ndGg7cjxnO3IrKylhcmd1bWVudHNbcl0mJnNBKGFyZ3VtZW50c1tyXSxJKTtyZXR1cm4gZX12YXIgRUk9KEEsdCxlLHthbGxPd25LZXlzOkl9PXt9KT0+KHNBKHQsKHIsZyk9PntlJiZOKHIpP0FbZ109b0EocixlKTpBW2ddPXJ9LHthbGxPd25LZXlzOkl9KSxBKSxjST1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLGZJPShBLHQsZSxJKT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUsSSksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTp0LnByb3RvdHlwZX0pLGUmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsZSl9LGxJPShBLHQsZSxJKT0+e2xldCByLGcsbyxuPXt9O2lmKHQ9dHx8e30sQT09bnVsbClyZXR1cm4gdDtkb3tmb3Iocj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxnPXIubGVuZ3RoO2ctLSA+MDspbz1yW2ddLCghSXx8SShvLEEsdCkpJiYhbltvXSYmKHRbb109QVtvXSxuW29dPSEwKTtBPWUhPT0hMSYmdkEoQSl9d2hpbGUoQSYmKCFlfHxlKEEsdCkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIHR9LHVJPShBLHQsZSk9PntBPVN0cmluZyhBKSwoZT09PXZvaWQgMHx8ZT5BLmxlbmd0aCkmJihlPUEubGVuZ3RoKSxlLT10Lmxlbmd0aDtsZXQgST1BLmluZGV4T2YodCxlKTtyZXR1cm4gSSE9PS0xJiZJPT09ZX0sZEk9QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKHYoQSkpcmV0dXJuIEE7bGV0IHQ9QS5sZW5ndGg7aWYoIU10KHQpKXJldHVybiBudWxsO2xldCBlPW5ldyBBcnJheSh0KTtmb3IoO3QtLSA+MDspZVt0XT1BW3RdO3JldHVybiBlfSxEST0oQT0+dD0+QSYmdCBpbnN0YW5jZW9mIEEpKHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmdkEoVWludDhBcnJheSkpLGhJPShBLHQpPT57bGV0IEk9KEEmJkFbTkFdKS5jYWxsKEEpLHI7Zm9yKDsocj1JLm5leHQoKSkmJiFyLmRvbmU7KXtsZXQgZz1yLnZhbHVlO3QuY2FsbChBLGdbMF0sZ1sxXSl9fSx5ST0oQSx0KT0+e2xldCBlLEk9W107Zm9yKDsoZT1BLmV4ZWModCkpIT09bnVsbDspSS5wdXNoKGUpO3JldHVybiBJfSxtST1MKCJIVE1MRm9ybUVsZW1lbnQiKSx3ST1BPT5BLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvWy1fXFxzXShbYS16XFxkXSkoXFx3KikvZyxmdW5jdGlvbihlLEkscil7cmV0dXJuIEkudG9VcHBlckNhc2UoKStyfSksSHQ9KCh7aGFzT3duUHJvcGVydHk6QX0pPT4odCxlKT0+QS5jYWxsKHQsZSkpKE9iamVjdC5wcm90b3R5cGUpLHBJPUwoIlJlZ0V4cCIpLFR0PShBLHQpPT57bGV0IGU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoQSksST17fTtzQShlLChyLGcpPT57bGV0IG87KG89dChyLGcsQSkpIT09ITEmJihJW2ddPW98fHIpfSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQSxJKX0sU0k9QT0+e1R0KEEsKHQsZSk9PntpZihOKEEpJiZbImFyZ3VtZW50cyIsImNhbGxlciIsImNhbGxlZSJdLmluZGV4T2YoZSkhPT0tMSlyZXR1cm4hMTtsZXQgST1BW2VdO2lmKE4oSSkpe2lmKHQuZW51bWVyYWJsZT0hMSwid3JpdGFibGUiaW4gdCl7dC53cml0YWJsZT0hMTtyZXR1cm59dC5zZXR8fCh0LnNldD0oKT0+e3Rocm93IEVycm9yKCJDYW4gbm90IHJld3JpdGUgcmVhZC1vbmx5IG1ldGhvZCBcJyIrZSsiXCciKX0pfX0pfSxGST0oQSx0KT0+e2xldCBlPXt9LEk9cj0+e3IuZm9yRWFjaChnPT57ZVtnXT0hMH0pfTtyZXR1cm4gdihBKT9JKEEpOkkoU3RyaW5nKEEpLnNwbGl0KHQpKSxlfSxSST0oKT0+e30sTkk9KEEsdCk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOnQ7ZnVuY3Rpb24gVUkoQSl7cmV0dXJuISEoQSYmTihBLmFwcGVuZCkmJkFbWXRdPT09IkZvcm1EYXRhIiYmQVtOQV0pfXZhciBHST1BPT57bGV0IHQ9bmV3IEFycmF5KDEwKSxlPShJLHIpPT57aWYoaUEoSSkpe2lmKHQuaW5kZXhPZihJKT49MClyZXR1cm47aWYoZ0EoSSkpcmV0dXJuIEk7aWYoISgidG9KU09OImluIEkpKXt0W3JdPUk7bGV0IGc9dihJKT9bXTp7fTtyZXR1cm4gc0EoSSwobyxuKT0+e2xldCBFPWUobyxyKzEpOyF6KEUpJiYoZ1tuXT1FKX0pLHRbcl09dm9pZCAwLGd9fXJldHVybiBJfTtyZXR1cm4gZShBLDApfSxrST1MKCJBc3luY0Z1bmN0aW9uIiksTEk9QT0+QSYmKGlBKEEpfHxOKEEpKSYmTihBLnRoZW4pJiZOKEEuY2F0Y2gpLHh0PSgoQSx0KT0+QT9zZXRJbW1lZGlhdGU6dD8oKGUsSSk9PihaLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCh7c291cmNlOnIsZGF0YTpnfSk9PntyPT09WiYmZz09PWUmJkkubGVuZ3RoJiZJLnNoaWZ0KCkoKX0sITEpLHI9PntJLnB1c2gociksWi5wb3N0TWVzc2FnZShlLCIqIil9KSkoYGF4aW9zQCR7TWF0aC5yYW5kb20oKX1gLFtdKTplPT5zZXRUaW1lb3V0KGUpKSh0eXBlb2Ygc2V0SW1tZWRpYXRlPT0iZnVuY3Rpb24iLE4oWi5wb3N0TWVzc2FnZSkpLGJJPXR5cGVvZiBxdWV1ZU1pY3JvdGFzazwidSI/cXVldWVNaWNyb3Rhc2suYmluZChaKTp0eXBlb2YgcHJvY2VzczwidSImJnByb2Nlc3MubmV4dFRpY2t8fHh0LEpJPUE9PkEhPW51bGwmJk4oQVtOQV0pLGk9e2lzQXJyYXk6dixpc0FycmF5QnVmZmVyOnF0LGlzQnVmZmVyOmdBLGlzRm9ybURhdGE6aUksaXNBcnJheUJ1ZmZlclZpZXc6dmUsaXNTdHJpbmc6JGUsaXNOdW1iZXI6TXQsaXNCb29sZWFuOkFJLGlzT2JqZWN0OmlBLGlzUGxhaW5PYmplY3Q6UkEsaXNFbXB0eU9iamVjdDp0SSxpc1JlYWRhYmxlU3RyZWFtOm5JLGlzUmVxdWVzdDpDSSxpc1Jlc3BvbnNlOkJJLGlzSGVhZGVyczphSSxpc1VuZGVmaW5lZDp6LGlzRGF0ZTplSSxpc0ZpbGU6SUksaXNCbG9iOnJJLGlzUmVnRXhwOnBJLGlzRnVuY3Rpb246Tixpc1N0cmVhbTpnSSxpc1VSTFNlYXJjaFBhcmFtczpzSSxpc1R5cGVkQXJyYXk6REksaXNGaWxlTGlzdDpvSSxmb3JFYWNoOnNBLG1lcmdlOnpBLGV4dGVuZDpFSSx0cmltOlFJLHN0cmlwQk9NOmNJLGluaGVyaXRzOmZJLHRvRmxhdE9iamVjdDpsSSxraW5kT2Y6VUEsa2luZE9mVGVzdDpMLGVuZHNXaXRoOnVJLHRvQXJyYXk6ZEksZm9yRWFjaEVudHJ5OmhJLG1hdGNoQWxsOnlJLGlzSFRNTEZvcm06bUksaGFzT3duUHJvcGVydHk6SHQsaGFzT3duUHJvcDpIdCxyZWR1Y2VEZXNjcmlwdG9yczpUdCxmcmVlemVNZXRob2RzOlNJLHRvT2JqZWN0U2V0OkZJLHRvQ2FtZWxDYXNlOndJLG5vb3A6UkksdG9GaW5pdGVOdW1iZXI6TkksZmluZEtleTpLdCxnbG9iYWw6Wixpc0NvbnRleHREZWZpbmVkOk90LGlzU3BlY0NvbXBsaWFudEZvcm06VUksdG9KU09OT2JqZWN0OkdJLGlzQXN5bmNGbjprSSxpc1RoZW5hYmxlOkxJLHNldEltbWVkaWF0ZTp4dCxhc2FwOmJJLGlzSXRlcmFibGU6Skl9O2Z1bmN0aW9uICQoQSx0LGUsSSxyKXtFcnJvci5jYWxsKHRoaXMpLEVycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsdGhpcy5jb25zdHJ1Y3Rvcik6dGhpcy5zdGFjaz1uZXcgRXJyb3IoKS5zdGFjayx0aGlzLm1lc3NhZ2U9QSx0aGlzLm5hbWU9IkF4aW9zRXJyb3IiLHQmJih0aGlzLmNvZGU9dCksZSYmKHRoaXMuY29uZmlnPWUpLEkmJih0aGlzLnJlcXVlc3Q9SSksciYmKHRoaXMucmVzcG9uc2U9cix0aGlzLnN0YXR1cz1yLnN0YXR1cz9yLnN0YXR1czpudWxsKX1pLmluaGVyaXRzKCQsRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzppLnRvSlNPTk9iamVjdCh0aGlzLmNvbmZpZyksY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMuc3RhdHVzfX19KTt2YXIgUHQ9JC5wcm90b3R5cGUsanQ9e307WyJFUlJfQkFEX09QVElPTl9WQUxVRSIsIkVSUl9CQURfT1BUSU9OIiwiRUNPTk5BQk9SVEVEIiwiRVRJTUVET1VUIiwiRVJSX05FVFdPUksiLCJFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIiwiRVJSX0RFUFJFQ0FURUQiLCJFUlJfQkFEX1JFU1BPTlNFIiwiRVJSX0JBRF9SRVFVRVNUIiwiRVJSX0NBTkNFTEVEIiwiRVJSX05PVF9TVVBQT1JUIiwiRVJSX0lOVkFMSURfVVJMIl0uZm9yRWFjaChBPT57anRbQV09e3ZhbHVlOkF9fSk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoJCxqdCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFB0LCJpc0F4aW9zRXJyb3IiLHt2YWx1ZTohMH0pOyQuZnJvbT0oQSx0LGUsSSxyLGcpPT57bGV0IG89T2JqZWN0LmNyZWF0ZShQdCk7aS50b0ZsYXRPYmplY3QoQSxvLGZ1bmN0aW9uKHMpe3JldHVybiBzIT09RXJyb3IucHJvdG90eXBlfSxCPT5CIT09ImlzQXhpb3NFcnJvciIpO2xldCBuPUEmJkEubWVzc2FnZT9BLm1lc3NhZ2U6IkVycm9yIixFPXQ9PW51bGwmJkE/QS5jb2RlOnQ7cmV0dXJuICQuY2FsbChvLG4sRSxlLEksciksQSYmby5jYXVzZT09bnVsbCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sImNhdXNlIix7dmFsdWU6QSxjb25maWd1cmFibGU6ITB9KSxvLm5hbWU9QSYmQS5uYW1lfHwiRXJyb3IiLGcmJk9iamVjdC5hc3NpZ24obyxnKSxvfTt2YXIgdT0kO3ZhciBrQT1udWxsO2Z1bmN0aW9uICRBKEEpe3JldHVybiBpLmlzUGxhaW5PYmplY3QoQSl8fGkuaXNBcnJheShBKX1mdW5jdGlvbiBadChBKXtyZXR1cm4gaS5lbmRzV2l0aChBLCJbXSIpP0Euc2xpY2UoMCwtMik6QX1mdW5jdGlvbiBXdChBLHQsZSl7cmV0dXJuIEE/QS5jb25jYXQodCkubWFwKGZ1bmN0aW9uKHIsZyl7cmV0dXJuIHI9WnQociksIWUmJmc/IlsiK3IrIl0iOnJ9KS5qb2luKGU/Ii4iOiIiKTp0fWZ1bmN0aW9uIEhJKEEpe3JldHVybiBpLmlzQXJyYXkoQSkmJiFBLnNvbWUoJEEpfXZhciBZST1pLnRvRmxhdE9iamVjdChpLHt9LG51bGwsZnVuY3Rpb24odCl7cmV0dXJuL15pc1tBLVpdLy50ZXN0KHQpfSk7ZnVuY3Rpb24gcUkoQSx0LGUpe2lmKCFpLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoInRhcmdldCBtdXN0IGJlIGFuIG9iamVjdCIpO3Q9dHx8bmV3KGtBfHxGb3JtRGF0YSksZT1pLnRvRmxhdE9iamVjdChlLHttZXRhVG9rZW5zOiEwLGRvdHM6ITEsaW5kZXhlczohMX0sITEsZnVuY3Rpb24oZixjKXtyZXR1cm4haS5pc1VuZGVmaW5lZChjW2ZdKX0pO2xldCBJPWUubWV0YVRva2VucyxyPWUudmlzaXRvcnx8cyxnPWUuZG90cyxvPWUuaW5kZXhlcyxFPShlLkJsb2J8fHR5cGVvZiBCbG9iPCJ1IiYmQmxvYikmJmkuaXNTcGVjQ29tcGxpYW50Rm9ybSh0KTtpZighaS5pc0Z1bmN0aW9uKHIpKXRocm93IG5ldyBUeXBlRXJyb3IoInZpc2l0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uIik7ZnVuY3Rpb24gQihRKXtpZihRPT09bnVsbClyZXR1cm4iIjtpZihpLmlzRGF0ZShRKSlyZXR1cm4gUS50b0lTT1N0cmluZygpO2lmKGkuaXNCb29sZWFuKFEpKXJldHVybiBRLnRvU3RyaW5nKCk7aWYoIUUmJmkuaXNCbG9iKFEpKXRocm93IG5ldyB1KCJCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLiIpO3JldHVybiBpLmlzQXJyYXlCdWZmZXIoUSl8fGkuaXNUeXBlZEFycmF5KFEpP0UmJnR5cGVvZiBCbG9iPT0iZnVuY3Rpb24iP25ldyBCbG9iKFtRXSk6QnVmZmVyLmZyb20oUSk6UX1mdW5jdGlvbiBzKFEsZixjKXtsZXQgRD1RO2lmKFEmJiFjJiZ0eXBlb2YgUT09Im9iamVjdCIpe2lmKGkuZW5kc1dpdGgoZiwie30iKSlmPUk/ZjpmLnNsaWNlKDAsLTIpLFE9SlNPTi5zdHJpbmdpZnkoUSk7ZWxzZSBpZihpLmlzQXJyYXkoUSkmJkhJKFEpfHwoaS5pc0ZpbGVMaXN0KFEpfHxpLmVuZHNXaXRoKGYsIltdIikpJiYoRD1pLnRvQXJyYXkoUSkpKXJldHVybiBmPVp0KGYpLEQuZm9yRWFjaChmdW5jdGlvbih5LFIpeyEoaS5pc1VuZGVmaW5lZCh5KXx8eT09PW51bGwpJiZ0LmFwcGVuZChvPT09ITA/V3QoW2ZdLFIsZyk6bz09PW51bGw/ZjpmKyJbXSIsQih5KSl9KSwhMX1yZXR1cm4gJEEoUSk/ITA6KHQuYXBwZW5kKFd0KGMsZixnKSxCKFEpKSwhMSl9bGV0IEM9W10sbD1PYmplY3QuYXNzaWduKFlJLHtkZWZhdWx0VmlzaXRvcjpzLGNvbnZlcnRWYWx1ZTpCLGlzVmlzaXRhYmxlOiRBfSk7ZnVuY3Rpb24gYShRLGYpe2lmKCFpLmlzVW5kZWZpbmVkKFEpKXtpZihDLmluZGV4T2YoUSkhPT0tMSl0aHJvdyBFcnJvcigiQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIGluICIrZi5qb2luKCIuIikpO0MucHVzaChRKSxpLmZvckVhY2goUSxmdW5jdGlvbihELEYpeyghKGkuaXNVbmRlZmluZWQoRCl8fEQ9PT1udWxsKSYmci5jYWxsKHQsRCxpLmlzU3RyaW5nKEYpP0YudHJpbSgpOkYsZixsKSk9PT0hMCYmYShELGY/Zi5jb25jYXQoRik6W0ZdKX0pLEMucG9wKCl9fWlmKCFpLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoImRhdGEgbXVzdCBiZSBhbiBvYmplY3QiKTtyZXR1cm4gYShBKSx0fXZhciBUPXFJO2Z1bmN0aW9uIFZ0KEEpe2xldCB0PXsiISI6IiUyNTIxIiwiXCciOiIlMjUyNyIsIigiOiIlMjUyOCIsIikiOiIlMjUyOSIsIn4iOiIlMjU3RSIsIiUyNTIwIjoiKyIsIiUyNTAwIjoiXFwwIn07cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC9bIVwnKCl+XXwlMjUyMHwlMjUwMC9nLGZ1bmN0aW9uKEkpe3JldHVybiB0W0ldfSl9ZnVuY3Rpb24gWHQoQSx0KXt0aGlzLl9wYWlycz1bXSxBJiZUKEEsdGhpcyx0KX12YXIgX3Q9WHQucHJvdG90eXBlO190LmFwcGVuZD1mdW5jdGlvbih0LGUpe3RoaXMuX3BhaXJzLnB1c2goW3QsZV0pfTtfdC50b1N0cmluZz1mdW5jdGlvbih0KXtsZXQgZT10P2Z1bmN0aW9uKEkpe3JldHVybiB0LmNhbGwodGhpcyxJLFZ0KX06VnQ7cmV0dXJuIHRoaXMuX3BhaXJzLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gZShyWzBdKSsiPSIrZShyWzFdKX0sIiIpLmpvaW4oIiYiKX07dmFyIExBPVh0O2Z1bmN0aW9uIE1JKEEpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvJTI1M0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjUyNC9nLCIkIikucmVwbGFjZSgvJTI1MkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjUyMC9nLCIrIil9ZnVuY3Rpb24gbkEoQSx0LGUpe2lmKCF0KXJldHVybiBBO2xldCBJPWUmJmUuZW5jb2RlfHxNSTtpLmlzRnVuY3Rpb24oZSkmJihlPXtzZXJpYWxpemU6ZX0pO2xldCByPWUmJmUuc2VyaWFsaXplLGc7aWYocj9nPXIodCxlKTpnPWkuaXNVUkxTZWFyY2hQYXJhbXModCk/dC50b1N0cmluZygpOm5ldyBMQSh0LGUpLnRvU3RyaW5nKEkpLGcpe2xldCBvPUEuaW5kZXhPZigiJTIzIik7byE9PS0xJiYoQT1BLnNsaWNlKDAsbykpLEErPShBLmluZGV4T2YoIj8iKT09PS0xPyI/IjoiJiIpK2d9cmV0dXJuIEF9dmFyIEF0PWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5oYW5kbGVycz1bXX11c2UodCxlLEkpe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDp0LHJlamVjdGVkOmUsc3luY2hyb25vdXM6ST9JLnN5bmNocm9ub3VzOiExLHJ1bldoZW46ST9JLnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9ZWplY3QodCl7dGhpcy5oYW5kbGVyc1t0XSYmKHRoaXMuaGFuZGxlcnNbdF09bnVsbCl9Y2xlYXIoKXt0aGlzLmhhbmRsZXJzJiYodGhpcy5oYW5kbGVycz1bXSl9Zm9yRWFjaCh0KXtpLmZvckVhY2godGhpcy5oYW5kbGVycyxmdW5jdGlvbihJKXtJIT09bnVsbCYmdChJKX0pfX0sdHQ9QXQ7dmFyIGJBPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfTt2YXIgenQ9dHlwZW9mIFVSTFNlYXJjaFBhcmFtczwidSI/VVJMU2VhcmNoUGFyYW1zOkxBO3ZhciB2dD10eXBlb2YgRm9ybURhdGE8InUiP0Zvcm1EYXRhOm51bGw7dmFyICR0PXR5cGVvZiBCbG9iPCJ1Ij9CbG9iOm51bGw7dmFyIEFlPXtpc0Jyb3dzZXI6ITAsY2xhc3Nlczp7VVJMU2VhcmNoUGFyYW1zOnp0LEZvcm1EYXRhOnZ0LEJsb2I6JHR9LHByb3RvY29sczpbImh0dHAiLCJodHRwcyIsImZpbGUiLCJibG9iIiwidXJsIiwiZGF0YSJdfTt2YXIgcnQ9e307cWUocnQse2hhc0Jyb3dzZXJFbnY6KCk9Pkl0LGhhc1N0YW5kYXJkQnJvd3NlckVudjooKT0+S0ksaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52OigpPT5PSSxuYXZpZ2F0b3I6KCk9PmV0LG9yaWdpbjooKT0+VEl9KTt2YXIgSXQ9dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiBkb2N1bWVudDwidSIsZXQ9dHlwZW9mIG5hdmlnYXRvcj09Im9iamVjdCImJm5hdmlnYXRvcnx8dm9pZCAwLEtJPUl0JiYoIWV0fHxbIlJlYWN0TmF0aXZlIiwiTmF0aXZlU2NyaXB0IiwiTlMiXS5pbmRleE9mKGV0LnByb2R1Y3QpPDApLE9JPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZTwidSImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSYmdHlwZW9mIHNlbGYuaW1wb3J0U2NyaXB0cz09ImZ1bmN0aW9uIixUST1JdCYmd2luZG93LmxvY2F0aW9uLmhyZWZ8fCJodHRwOi8vbG9jYWxob3N0Ijt2YXIgaD17Li4ucnQsLi4uQWV9O2Z1bmN0aW9uIG90KEEsdCl7cmV0dXJuIFQoQSxuZXcgaC5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcyx7dmlzaXRvcjpmdW5jdGlvbihlLEkscixnKXtyZXR1cm4gaC5pc05vZGUmJmkuaXNCdWZmZXIoZSk/KHRoaXMuYXBwZW5kKEksZS50b1N0cmluZygiYmFzZTY0IikpLCExKTpnLmRlZmF1bHRWaXNpdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sLi4udH0pfWZ1bmN0aW9uIHhJKEEpe3JldHVybiBpLm1hdGNoQWxsKC9cXHcrfFxcWyhcXHcqKV0vZyxBKS5tYXAodD0+dFswXT09PSJbXSI/IiI6dFsxXXx8dFswXSl9ZnVuY3Rpb24gUEkoQSl7bGV0IHQ9e30sZT1PYmplY3Qua2V5cyhBKSxJLHI9ZS5sZW5ndGgsZztmb3IoST0wO0k8cjtJKyspZz1lW0ldLHRbZ109QVtnXTtyZXR1cm4gdH1mdW5jdGlvbiBqSShBKXtmdW5jdGlvbiB0KGUsSSxyLGcpe2xldCBvPWVbZysrXTtpZihvPT09Il9fcHJvdG9fXyIpcmV0dXJuITA7bGV0IG49TnVtYmVyLmlzRmluaXRlKCtvKSxFPWc+PWUubGVuZ3RoO3JldHVybiBvPSFvJiZpLmlzQXJyYXkocik/ci5sZW5ndGg6byxFPyhpLmhhc093blByb3AocixvKT9yW29dPVtyW29dLEldOnJbb109SSwhbik6KCghcltvXXx8IWkuaXNPYmplY3QocltvXSkpJiYocltvXT1bXSksdChlLEkscltvXSxnKSYmaS5pc0FycmF5KHJbb10pJiYocltvXT1QSShyW29dKSksIW4pfWlmKGkuaXNGb3JtRGF0YShBKSYmaS5pc0Z1bmN0aW9uKEEuZW50cmllcykpe2xldCBlPXt9O3JldHVybiBpLmZvckVhY2hFbnRyeShBLChJLHIpPT57dCh4SShJKSxyLGUsMCl9KSxlfXJldHVybiBudWxsfXZhciBKQT1qSTtmdW5jdGlvbiBXSShBLHQsZSl7aWYoaS5pc1N0cmluZyhBKSl0cnl7cmV0dXJuKHR8fEpTT04ucGFyc2UpKEEpLGkudHJpbShBKX1jYXRjaChJKXtpZihJLm5hbWUhPT0iU3ludGF4RXJyb3IiKXRocm93IEl9cmV0dXJuKGV8fEpTT04uc3RyaW5naWZ5KShBKX12YXIgZ3Q9e3RyYW5zaXRpb25hbDpiQSxhZGFwdGVyOlsieGhyIiwiaHR0cCIsImZldGNoIl0sdHJhbnNmb3JtUmVxdWVzdDpbZnVuY3Rpb24odCxlKXtsZXQgST1lLmdldENvbnRlbnRUeXBlKCl8fCIiLHI9SS5pbmRleE9mKCJhcHBsaWNhdGlvbi9qc29uIik+LTEsZz1pLmlzT2JqZWN0KHQpO2lmKGcmJmkuaXNIVE1MRm9ybSh0KSYmKHQ9bmV3IEZvcm1EYXRhKHQpKSxpLmlzRm9ybURhdGEodCkpcmV0dXJuIHI/SlNPTi5zdHJpbmdpZnkoSkEodCkpOnQ7aWYoaS5pc0FycmF5QnVmZmVyKHQpfHxpLmlzQnVmZmVyKHQpfHxpLmlzU3RyZWFtKHQpfHxpLmlzRmlsZSh0KXx8aS5pc0Jsb2IodCl8fGkuaXNSZWFkYWJsZVN0cmVhbSh0KSlyZXR1cm4gdDtpZihpLmlzQXJyYXlCdWZmZXJWaWV3KHQpKXJldHVybiB0LmJ1ZmZlcjtpZihpLmlzVVJMU2VhcmNoUGFyYW1zKHQpKXJldHVybiBlLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIsITEpLHQudG9TdHJpbmcoKTtsZXQgbjtpZihnKXtpZihJLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpPi0xKXJldHVybiBvdCh0LHRoaXMuZm9ybVNlcmlhbGl6ZXIpLnRvU3RyaW5nKCk7aWYoKG49aS5pc0ZpbGVMaXN0KHQpKXx8SS5pbmRleE9mKCJtdWx0aXBhcnQvZm9ybS1kYXRhIik+LTEpe2xldCBFPXRoaXMuZW52JiZ0aGlzLmVudi5Gb3JtRGF0YTtyZXR1cm4gVChuP3siZmlsZXNbXSI6dH06dCxFJiZuZXcgRSx0aGlzLmZvcm1TZXJpYWxpemVyKX19cmV0dXJuIGd8fHI/KGUuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL2pzb24iLCExKSxXSSh0KSk6dH1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbih0KXtsZXQgZT10aGlzLnRyYW5zaXRpb25hbHx8Z3QudHJhbnNpdGlvbmFsLEk9ZSYmZS5mb3JjZWRKU09OUGFyc2luZyxyPXRoaXMucmVzcG9uc2VUeXBlPT09Impzb24iO2lmKGkuaXNSZXNwb25zZSh0KXx8aS5pc1JlYWRhYmxlU3RyZWFtKHQpKXJldHVybiB0O2lmKHQmJmkuaXNTdHJpbmcodCkmJihJJiYhdGhpcy5yZXNwb25zZVR5cGV8fHIpKXtsZXQgbz0hKGUmJmUuc2lsZW50SlNPTlBhcnNpbmcpJiZyO3RyeXtyZXR1cm4gSlNPTi5wYXJzZSh0LHRoaXMucGFyc2VSZXZpdmVyKX1jYXRjaChuKXtpZihvKXRocm93IG4ubmFtZT09PSJTeW50YXhFcnJvciI/dS5mcm9tKG4sdS5FUlJfQkFEX1JFU1BPTlNFLHRoaXMsbnVsbCx0aGlzLnJlc3BvbnNlKTpufX1yZXR1cm4gdH1dLHRpbWVvdXQ6MCx4c3JmQ29va2llTmFtZToiWFNSRi1UT0tFTiIseHNyZkhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiIsbWF4Q29udGVudExlbmd0aDotMSxtYXhCb2R5TGVuZ3RoOi0xLGVudjp7Rm9ybURhdGE6aC5jbGFzc2VzLkZvcm1EYXRhLEJsb2I6aC5jbGFzc2VzLkJsb2J9LHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0yMDAmJnQ8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiwiQ29udGVudC1UeXBlIjp2b2lkIDB9fX07aS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCJdLEE9PntndC5oZWFkZXJzW0FdPXt9fSk7dmFyIEFBPWd0O3ZhciBaST1pLnRvT2JqZWN0U2V0KFsiYWdlIiwiYXV0aG9yaXphdGlvbiIsImNvbnRlbnQtbGVuZ3RoIiwiY29udGVudC10eXBlIiwiZXRhZyIsImV4cGlyZXMiLCJmcm9tIiwiaG9zdCIsImlmLW1vZGlmaWVkLXNpbmNlIiwiaWYtdW5tb2RpZmllZC1zaW5jZSIsImxhc3QtbW9kaWZpZWQiLCJsb2NhdGlvbiIsIm1heC1mb3J3YXJkcyIsInByb3h5LWF1dGhvcml6YXRpb24iLCJyZWZlcmVyIiwicmV0cnktYWZ0ZXIiLCJ1c2VyLWFnZW50Il0pLHRlPUE9PntsZXQgdD17fSxlLEkscjtyZXR1cm4gQSYmQS5zcGxpdChgJTBBYCkuZm9yRWFjaChmdW5jdGlvbihvKXtyPW8uaW5kZXhPZigiOiIpLGU9by5zdWJzdHJpbmcoMCxyKS50cmltKCkudG9Mb3dlckNhc2UoKSxJPW8uc3Vic3RyaW5nKHIrMSkudHJpbSgpLCEoIWV8fHRbZV0mJlpJW2VdKSYmKGU9PT0ic2V0LWNvb2tpZSI/dFtlXT90W2VdLnB1c2goSSk6dFtlXT1bSV06dFtlXT10W2VdP3RbZV0rIiwgIitJOkkpfSksdH07dmFyIGVlPVN5bWJvbCgiaW50ZXJuYWxzIik7ZnVuY3Rpb24gQ0EoQSl7cmV0dXJuIEEmJlN0cmluZyhBKS50cmltKCkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBIQShBKXtyZXR1cm4gQT09PSExfHxBPT1udWxsP0E6aS5pc0FycmF5KEEpP0EubWFwKEhBKTpTdHJpbmcoQSl9ZnVuY3Rpb24gVkkoQSl7bGV0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKSxlPS8oW15cXHMsOz1dKylcXHMqKD86PVxccyooW14sO10rKSk/L2csSTtmb3IoO0k9ZS5leGVjKEEpOyl0W0lbMV1dPUlbMl07cmV0dXJuIHR9dmFyIFhJPUE9Pi9eWy1fYS16QS1aMC05XmB8fiwhJTIzJCUmXCcqKy5dKyQvLnRlc3QoQS50cmltKCkpO2Z1bmN0aW9uIGl0KEEsdCxlLEkscil7aWYoaS5pc0Z1bmN0aW9uKEkpKXJldHVybiBJLmNhbGwodGhpcyx0LGUpO2lmKHImJih0PWUpLCEhaS5pc1N0cmluZyh0KSl7aWYoaS5pc1N0cmluZyhJKSlyZXR1cm4gdC5pbmRleE9mKEkpIT09LTE7aWYoaS5pc1JlZ0V4cChJKSlyZXR1cm4gSS50ZXN0KHQpfX1mdW5jdGlvbiBfSShBKXtyZXR1cm4gQS50cmltKCkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8oW2EtelxcZF0pKFxcdyopL2csKHQsZSxJKT0+ZS50b1VwcGVyQ2FzZSgpK0kpfWZ1bmN0aW9uIHpJKEEsdCl7bGV0IGU9aS50b0NhbWVsQ2FzZSgiICIrdCk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKEk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxJK2Use3ZhbHVlOmZ1bmN0aW9uKHIsZyxvKXtyZXR1cm4gdGhpc1tJXS5jYWxsKHRoaXMsdCxyLGcsbyl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9dmFyIHRBPWNsYXNze2NvbnN0cnVjdG9yKHQpe3QmJnRoaXMuc2V0KHQpfXNldCh0LGUsSSl7bGV0IHI9dGhpcztmdW5jdGlvbiBnKG4sRSxCKXtsZXQgcz1DQShFKTtpZighcyl0aHJvdyBuZXcgRXJyb3IoImhlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7bGV0IEM9aS5maW5kS2V5KHIscyk7KCFDfHxyW0NdPT09dm9pZCAwfHxCPT09ITB8fEI9PT12b2lkIDAmJnJbQ10hPT0hMSkmJihyW0N8fEVdPUhBKG4pKX1sZXQgbz0obixFKT0+aS5mb3JFYWNoKG4sKEIscyk9PmcoQixzLEUpKTtpZihpLmlzUGxhaW5PYmplY3QodCl8fHQgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKW8odCxlKTtlbHNlIGlmKGkuaXNTdHJpbmcodCkmJih0PXQudHJpbSgpKSYmIVhJKHQpKW8odGUodCksZSk7ZWxzZSBpZihpLmlzT2JqZWN0KHQpJiZpLmlzSXRlcmFibGUodCkpe2xldCBuPXt9LEUsQjtmb3IobGV0IHMgb2YgdCl7aWYoIWkuaXNBcnJheShzKSl0aHJvdyBUeXBlRXJyb3IoIk9iamVjdCBpdGVyYXRvciBtdXN0IHJldHVybiBhIGtleS12YWx1ZSBwYWlyIik7bltCPXNbMF1dPShFPW5bQl0pP2kuaXNBcnJheShFKT9bLi4uRSxzWzFdXTpbRSxzWzFdXTpzWzFdfW8obixlKX1lbHNlIHQhPW51bGwmJmcoZSx0LEkpO3JldHVybiB0aGlzfWdldCh0LGUpe2lmKHQ9Q0EodCksdCl7bGV0IEk9aS5maW5kS2V5KHRoaXMsdCk7aWYoSSl7bGV0IHI9dGhpc1tJXTtpZighZSlyZXR1cm4gcjtpZihlPT09ITApcmV0dXJuIFZJKHIpO2lmKGkuaXNGdW5jdGlvbihlKSlyZXR1cm4gZS5jYWxsKHRoaXMscixJKTtpZihpLmlzUmVnRXhwKGUpKXJldHVybiBlLmV4ZWMocik7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyh0LGUpe2lmKHQ9Q0EodCksdCl7bGV0IEk9aS5maW5kS2V5KHRoaXMsdCk7cmV0dXJuISEoSSYmdGhpc1tJXSE9PXZvaWQgMCYmKCFlfHxpdCh0aGlzLHRoaXNbSV0sSSxlKSkpfXJldHVybiExfWRlbGV0ZSh0LGUpe2xldCBJPXRoaXMscj0hMTtmdW5jdGlvbiBnKG8pe2lmKG89Q0Eobyksbyl7bGV0IG49aS5maW5kS2V5KEksbyk7biYmKCFlfHxpdChJLElbbl0sbixlKSkmJihkZWxldGUgSVtuXSxyPSEwKX19cmV0dXJuIGkuaXNBcnJheSh0KT90LmZvckVhY2goZyk6Zyh0KSxyfWNsZWFyKHQpe2xldCBlPU9iamVjdC5rZXlzKHRoaXMpLEk9ZS5sZW5ndGgscj0hMTtmb3IoO0ktLTspe2xldCBnPWVbSV07KCF0fHxpdCh0aGlzLHRoaXNbZ10sZyx0LCEwKSkmJihkZWxldGUgdGhpc1tnXSxyPSEwKX1yZXR1cm4gcn1ub3JtYWxpemUodCl7bGV0IGU9dGhpcyxJPXt9O3JldHVybiBpLmZvckVhY2godGhpcywocixnKT0+e2xldCBvPWkuZmluZEtleShJLGcpO2lmKG8pe2Vbb109SEEociksZGVsZXRlIGVbZ107cmV0dXJufWxldCBuPXQ/X0koZyk6U3RyaW5nKGcpLnRyaW0oKTtuIT09ZyYmZGVsZXRlIGVbZ10sZVtuXT1IQShyKSxJW25dPSEwfSksdGhpc31jb25jYXQoLi4udCl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4udCl9dG9KU09OKHQpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGkuZm9yRWFjaCh0aGlzLChJLHIpPT57SSE9bnVsbCYmSSE9PSExJiYoZVtyXT10JiZpLmlzQXJyYXkoSSk/SS5qb2luKCIsICIpOkkpfSksZX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbdCxlXSk9PnQrIjogIitlKS5qb2luKGAlMEFgKX1nZXRTZXRDb29raWUoKXtyZXR1cm4gdGhpcy5nZXQoInNldC1jb29raWUiKXx8W119Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm4iQXhpb3NIZWFkZXJzIn1zdGF0aWMgZnJvbSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIHRoaXM/dDpuZXcgdGhpcyh0KX1zdGF0aWMgY29uY2F0KHQsLi4uZSl7bGV0IEk9bmV3IHRoaXModCk7cmV0dXJuIGUuZm9yRWFjaChyPT5JLnNldChyKSksSX1zdGF0aWMgYWNjZXNzb3IodCl7bGV0IEk9KHRoaXNbZWVdPXRoaXNbZWVdPXthY2Nlc3NvcnM6e319KS5hY2Nlc3NvcnMscj10aGlzLnByb3RvdHlwZTtmdW5jdGlvbiBnKG8pe2xldCBuPUNBKG8pO0lbbl18fCh6SShyLG8pLElbbl09ITApfXJldHVybiBpLmlzQXJyYXkodCk/dC5mb3JFYWNoKGcpOmcodCksdGhpc319O3RBLmFjY2Vzc29yKFsiQ29udGVudC1UeXBlIiwiQ29udGVudC1MZW5ndGgiLCJBY2NlcHQiLCJBY2NlcHQtRW5jb2RpbmciLCJVc2VyLUFnZW50IiwiQXV0aG9yaXphdGlvbiJdKTtpLnJlZHVjZURlc2NyaXB0b3JzKHRBLnByb3RvdHlwZSwoe3ZhbHVlOkF9LHQpPT57bGV0IGU9dFswXS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSk7cmV0dXJue2dldDooKT0+QSxzZXQoSSl7dGhpc1tlXT1JfX19KTtpLmZyZWV6ZU1ldGhvZHModEEpO3ZhciBwPXRBO2Z1bmN0aW9uIEJBKEEsdCl7bGV0IGU9dGhpc3x8QUEsST10fHxlLHI9cC5mcm9tKEkuaGVhZGVycyksZz1JLmRhdGE7cmV0dXJuIGkuZm9yRWFjaChBLGZ1bmN0aW9uKG4pe2c9bi5jYWxsKGUsZyxyLm5vcm1hbGl6ZSgpLHQ/dC5zdGF0dXM6dm9pZCAwKX0pLHIubm9ybWFsaXplKCksZ31mdW5jdGlvbiBhQShBKXtyZXR1cm4hIShBJiZBLl9fQ0FOQ0VMX18pfWZ1bmN0aW9uIEllKEEsdCxlKXt1LmNhbGwodGhpcyxBPz8iY2FuY2VsZWQiLHUuRVJSX0NBTkNFTEVELHQsZSksdGhpcy5uYW1lPSJDYW5jZWxlZEVycm9yIn1pLmluaGVyaXRzKEllLHUse19fQ0FOQ0VMX186ITB9KTt2YXIgSD1JZTtmdW5jdGlvbiBRQShBLHQsZSl7bGV0IEk9ZS5jb25maWcudmFsaWRhdGVTdGF0dXM7IWUuc3RhdHVzfHwhSXx8SShlLnN0YXR1cyk/QShlKTp0KG5ldyB1KCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrZS5zdGF0dXMsW3UuRVJSX0JBRF9SRVFVRVNULHUuRVJSX0JBRF9SRVNQT05TRV1bTWF0aC5mbG9vcihlLnN0YXR1cy8xMDApLTRdLGUuY29uZmlnLGUucmVxdWVzdCxlKSl9ZnVuY3Rpb24gc3QoQSl7bGV0IHQ9L14oWy0rXFx3XXsxLDI1fSkoOj9cXC9cXC98OikvLmV4ZWMoQSk7cmV0dXJuIHQmJnRbMV18fCIifWZ1bmN0aW9uIHZJKEEsdCl7QT1BfHwxMDtsZXQgZT1uZXcgQXJyYXkoQSksST1uZXcgQXJyYXkoQSkscj0wLGc9MCxvO3JldHVybiB0PXQhPT12b2lkIDA/dDoxZTMsZnVuY3Rpb24oRSl7bGV0IEI9RGF0ZS5ub3coKSxzPUlbZ107b3x8KG89QiksZVtyXT1FLElbcl09QjtsZXQgQz1nLGw9MDtmb3IoO0MhPT1yOylsKz1lW0MrK10sQz1DJUE7aWYocj0ocisxKSVBLHI9PT1nJiYoZz0oZysxKSVBKSxCLW88dClyZXR1cm47bGV0IGE9cyYmQi1zO3JldHVybiBhP01hdGgucm91bmQobCoxZTMvYSk6dm9pZCAwfX12YXIgcmU9dkk7ZnVuY3Rpb24gJEkoQSx0KXtsZXQgZT0wLEk9MWUzL3QscixnLG89KEIscz1EYXRlLm5vdygpKT0+e2U9cyxyPW51bGwsZyYmKGNsZWFyVGltZW91dChnKSxnPW51bGwpLEEoLi4uQil9O3JldHVyblsoLi4uQik9PntsZXQgcz1EYXRlLm5vdygpLEM9cy1lO0M+PUk/byhCLHMpOihyPUIsZ3x8KGc9c2V0VGltZW91dCgoKT0+e2c9bnVsbCxvKHIpfSxJLUMpKSl9LCgpPT5yJiZvKHIpXX12YXIgb2U9JEk7dmFyIGVBPShBLHQsZT0zKT0+e2xldCBJPTAscj1yZSg1MCwyNTApO3JldHVybiBvZShnPT57bGV0IG89Zy5sb2FkZWQsbj1nLmxlbmd0aENvbXB1dGFibGU/Zy50b3RhbDp2b2lkIDAsRT1vLUksQj1yKEUpLHM9bzw9bjtJPW87bGV0IEM9e2xvYWRlZDpvLHRvdGFsOm4scHJvZ3Jlc3M6bj9vL246dm9pZCAwLGJ5dGVzOkUscmF0ZTpCfHx2b2lkIDAsZXN0aW1hdGVkOkImJm4mJnM/KG4tbykvQjp2b2lkIDAsZXZlbnQ6ZyxsZW5ndGhDb21wdXRhYmxlOm4hPW51bGwsW3Q/ImRvd25sb2FkIjoidXBsb2FkIl06ITB9O0EoQyl9LGUpfSxudD0oQSx0KT0+e2xldCBlPUEhPW51bGw7cmV0dXJuW0k9PnRbMF0oe2xlbmd0aENvbXB1dGFibGU6ZSx0b3RhbDpBLGxvYWRlZDpJfSksdFsxXV19LEN0PUE9PiguLi50KT0+aS5hc2FwKCgpPT5BKC4uLnQpKTt2YXIgZ2U9aC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/KChBLHQpPT5lPT4oZT1uZXcgVVJMKGUsaC5vcmlnaW4pLEEucHJvdG9jb2w9PT1lLnByb3RvY29sJiZBLmhvc3Q9PT1lLmhvc3QmJih0fHxBLnBvcnQ9PT1lLnBvcnQpKSkobmV3IFVSTChoLm9yaWdpbiksaC5uYXZpZ2F0b3ImJi8obXNpZXx0cmlkZW50KS9pLnRlc3QoaC5uYXZpZ2F0b3IudXNlckFnZW50KSk6KCk9PiEwO3ZhciBpZT1oLmhhc1N0YW5kYXJkQnJvd3NlckVudj97d3JpdGUoQSx0LGUsSSxyLGcpe2xldCBvPVtBKyI9IitlbmNvZGVVUklDb21wb25lbnQodCldO2kuaXNOdW1iZXIoZSkmJm8ucHVzaCgiZXhwaXJlcz0iK25ldyBEYXRlKGUpLnRvR01UU3RyaW5nKCkpLGkuaXNTdHJpbmcoSSkmJm8ucHVzaCgicGF0aD0iK0kpLGkuaXNTdHJpbmcocikmJm8ucHVzaCgiZG9tYWluPSIrciksZz09PSEwJiZvLnB1c2goInNlY3VyZSIpLGRvY3VtZW50LmNvb2tpZT1vLmpvaW4oIjsgIil9LHJlYWQoQSl7bGV0IHQ9ZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIihefDtcXFxccyopKCIrQSsiKT0oW147XSopIikpO3JldHVybiB0P2RlY29kZVVSSUNvbXBvbmVudCh0WzNdKTpudWxsfSxyZW1vdmUoQSl7dGhpcy53cml0ZShBLCIiLERhdGUubm93KCktODY0ZTUpfX06e3dyaXRlKCl7fSxyZWFkKCl7cmV0dXJuIG51bGx9LHJlbW92ZSgpe319O2Z1bmN0aW9uIEJ0KEEpe3JldHVybi9eKFthLXpdW2EtelxcZCtcXC0uXSo6KT9cXC9cXC8vaS50ZXN0KEEpfWZ1bmN0aW9uIGF0KEEsdCl7cmV0dXJuIHQ/QS5yZXBsYWNlKC9cXC8/XFwvJC8sIiIpKyIvIit0LnJlcGxhY2UoL15cXC8rLywiIik6QX1mdW5jdGlvbiBFQShBLHQsZSl7bGV0IEk9IUJ0KHQpO3JldHVybiBBJiYoSXx8ZT09ITEpP2F0KEEsdCk6dH12YXIgc2U9QT0+QSBpbnN0YW5jZW9mIHA/ey4uLkF9OkE7ZnVuY3Rpb24gYihBLHQpe3Q9dHx8e307bGV0IGU9e307ZnVuY3Rpb24gSShCLHMsQyxsKXtyZXR1cm4gaS5pc1BsYWluT2JqZWN0KEIpJiZpLmlzUGxhaW5PYmplY3Qocyk/aS5tZXJnZS5jYWxsKHtjYXNlbGVzczpsfSxCLHMpOmkuaXNQbGFpbk9iamVjdChzKT9pLm1lcmdlKHt9LHMpOmkuaXNBcnJheShzKT9zLnNsaWNlKCk6c31mdW5jdGlvbiByKEIscyxDLGwpe2lmKGkuaXNVbmRlZmluZWQocykpe2lmKCFpLmlzVW5kZWZpbmVkKEIpKXJldHVybiBJKHZvaWQgMCxCLEMsbCl9ZWxzZSByZXR1cm4gSShCLHMsQyxsKX1mdW5jdGlvbiBnKEIscyl7aWYoIWkuaXNVbmRlZmluZWQocykpcmV0dXJuIEkodm9pZCAwLHMpfWZ1bmN0aW9uIG8oQixzKXtpZihpLmlzVW5kZWZpbmVkKHMpKXtpZighaS5pc1VuZGVmaW5lZChCKSlyZXR1cm4gSSh2b2lkIDAsQil9ZWxzZSByZXR1cm4gSSh2b2lkIDAscyl9ZnVuY3Rpb24gbihCLHMsQyl7aWYoQyBpbiB0KXJldHVybiBJKEIscyk7aWYoQyBpbiBBKXJldHVybiBJKHZvaWQgMCxCKX1sZXQgRT17dXJsOmcsbWV0aG9kOmcsZGF0YTpnLGJhc2VVUkw6byx0cmFuc2Zvcm1SZXF1ZXN0Om8sdHJhbnNmb3JtUmVzcG9uc2U6byxwYXJhbXNTZXJpYWxpemVyOm8sdGltZW91dDpvLHRpbWVvdXRNZXNzYWdlOm8sd2l0aENyZWRlbnRpYWxzOm8sd2l0aFhTUkZUb2tlbjpvLGFkYXB0ZXI6byxyZXNwb25zZVR5cGU6byx4c3JmQ29va2llTmFtZTpvLHhzcmZIZWFkZXJOYW1lOm8sb25VcGxvYWRQcm9ncmVzczpvLG9uRG93bmxvYWRQcm9ncmVzczpvLGRlY29tcHJlc3M6byxtYXhDb250ZW50TGVuZ3RoOm8sbWF4Qm9keUxlbmd0aDpvLGJlZm9yZVJlZGlyZWN0Om8sdHJhbnNwb3J0Om8saHR0cEFnZW50Om8saHR0cHNBZ2VudDpvLGNhbmNlbFRva2VuOm8sc29ja2V0UGF0aDpvLHJlc3BvbnNlRW5jb2Rpbmc6byx2YWxpZGF0ZVN0YXR1czpuLGhlYWRlcnM6KEIscyxDKT0+cihzZShCKSxzZShzKSxDLCEwKX07cmV0dXJuIGkuZm9yRWFjaChPYmplY3Qua2V5cyh7Li4uQSwuLi50fSksZnVuY3Rpb24ocyl7bGV0IEM9RVtzXXx8cixsPUMoQVtzXSx0W3NdLHMpO2kuaXNVbmRlZmluZWQobCkmJkMhPT1ufHwoZVtzXT1sKX0pLGV9dmFyIFlBPUE9PntsZXQgdD1iKHt9LEEpLHtkYXRhOmUsd2l0aFhTUkZUb2tlbjpJLHhzcmZIZWFkZXJOYW1lOnIseHNyZkNvb2tpZU5hbWU6ZyxoZWFkZXJzOm8sYXV0aDpufT10O2lmKHQuaGVhZGVycz1vPXAuZnJvbShvKSx0LnVybD1uQShFQSh0LmJhc2VVUkwsdC51cmwsdC5hbGxvd0Fic29sdXRlVXJscyksQS5wYXJhbXMsQS5wYXJhbXNTZXJpYWxpemVyKSxuJiZvLnNldCgiQXV0aG9yaXphdGlvbiIsIkJhc2ljICIrYnRvYSgobi51c2VybmFtZXx8IiIpKyI6Iisobi5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQobi5wYXNzd29yZCkpOiIiKSkpLGkuaXNGb3JtRGF0YShlKSl7aWYoaC5oYXNTdGFuZGFyZEJyb3dzZXJFbnZ8fGguaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52KW8uc2V0Q29udGVudFR5cGUodm9pZCAwKTtlbHNlIGlmKGkuaXNGdW5jdGlvbihlLmdldEhlYWRlcnMpKXtsZXQgRT1lLmdldEhlYWRlcnMoKSxCPVsiY29udGVudC10eXBlIiwiY29udGVudC1sZW5ndGgiXTtPYmplY3QuZW50cmllcyhFKS5mb3JFYWNoKChbcyxDXSk9PntCLmluY2x1ZGVzKHMudG9Mb3dlckNhc2UoKSkmJm8uc2V0KHMsQyl9KX19aWYoaC5oYXNTdGFuZGFyZEJyb3dzZXJFbnYmJihJJiZpLmlzRnVuY3Rpb24oSSkmJihJPUkodCkpLEl8fEkhPT0hMSYmZ2UodC51cmwpKSl7bGV0IEU9ciYmZyYmaWUucmVhZChnKTtFJiZvLnNldChyLEUpfXJldHVybiB0fTt2YXIgQXI9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0PCJ1IixuZT1BciYmZnVuY3Rpb24oQSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsSSl7bGV0IHI9WUEoQSksZz1yLmRhdGEsbz1wLmZyb20oci5oZWFkZXJzKS5ub3JtYWxpemUoKSx7cmVzcG9uc2VUeXBlOm4sb25VcGxvYWRQcm9ncmVzczpFLG9uRG93bmxvYWRQcm9ncmVzczpCfT1yLHMsQyxsLGEsUTtmdW5jdGlvbiBmKCl7YSYmYSgpLFEmJlEoKSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKHMpLHIuc2lnbmFsJiZyLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIscyl9bGV0IGM9bmV3IFhNTEh0dHBSZXF1ZXN0O2Mub3BlbihyLm1ldGhvZC50b1VwcGVyQ2FzZSgpLHIudXJsLCEwKSxjLnRpbWVvdXQ9ci50aW1lb3V0O2Z1bmN0aW9uIEQoKXtpZighYylyZXR1cm47bGV0IHk9cC5mcm9tKCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiaW4gYyYmYy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSksaz17ZGF0YTohbnx8bj09PSJ0ZXh0Inx8bj09PSJqc29uIj9jLnJlc3BvbnNlVGV4dDpjLnJlc3BvbnNlLHN0YXR1czpjLnN0YXR1cyxzdGF0dXNUZXh0OmMuc3RhdHVzVGV4dCxoZWFkZXJzOnksY29uZmlnOkEscmVxdWVzdDpjfTtRQShmdW5jdGlvbihHKXtlKEcpLGYoKX0sZnVuY3Rpb24oRyl7SShHKSxmKCl9LGspLGM9bnVsbH0ib25sb2FkZW5kImluIGM/Yy5vbmxvYWRlbmQ9RDpjLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpeyFjfHxjLnJlYWR5U3RhdGUhPT00fHxjLnN0YXR1cz09PTAmJiEoYy5yZXNwb25zZVVSTCYmYy5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpPT09MCl8fHNldFRpbWVvdXQoRCl9LGMub25hYm9ydD1mdW5jdGlvbigpe2MmJihJKG5ldyB1KCJSZXF1ZXN0IGFib3J0ZWQiLHUuRUNPTk5BQk9SVEVELEEsYykpLGM9bnVsbCl9LGMub25lcnJvcj1mdW5jdGlvbihSKXtsZXQgaz1SJiZSLm1lc3NhZ2U/Ui5tZXNzYWdlOiJOZXR3b3JrIEVycm9yIixQPW5ldyB1KGssdS5FUlJfTkVUV09SSyxBLGMpO1AuZXZlbnQ9Unx8bnVsbCxJKFApLGM9bnVsbH0sYy5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXtsZXQgUj1yLnRpbWVvdXQ/InRpbWVvdXQgb2YgIityLnRpbWVvdXQrIm1zIGV4Y2VlZGVkIjoidGltZW91dCBleGNlZWRlZCIsaz1yLnRyYW5zaXRpb25hbHx8YkE7ci50aW1lb3V0RXJyb3JNZXNzYWdlJiYoUj1yLnRpbWVvdXRFcnJvck1lc3NhZ2UpLEkobmV3IHUoUixrLmNsYXJpZnlUaW1lb3V0RXJyb3I/dS5FVElNRURPVVQ6dS5FQ09OTkFCT1JURUQsQSxjKSksYz1udWxsfSxnPT09dm9pZCAwJiZvLnNldENvbnRlbnRUeXBlKG51bGwpLCJzZXRSZXF1ZXN0SGVhZGVyImluIGMmJmkuZm9yRWFjaChvLnRvSlNPTigpLGZ1bmN0aW9uKFIsayl7Yy5zZXRSZXF1ZXN0SGVhZGVyKGssUil9KSxpLmlzVW5kZWZpbmVkKHIud2l0aENyZWRlbnRpYWxzKXx8KGMud2l0aENyZWRlbnRpYWxzPSEhci53aXRoQ3JlZGVudGlhbHMpLG4mJm4hPT0ianNvbiImJihjLnJlc3BvbnNlVHlwZT1yLnJlc3BvbnNlVHlwZSksQiYmKFtsLFFdPWVBKEIsITApLGMuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGwpKSxFJiZjLnVwbG9hZCYmKFtDLGFdPWVBKEUpLGMudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixDKSxjLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJsb2FkZW5kIixhKSksKHIuY2FuY2VsVG9rZW58fHIuc2lnbmFsKSYmKHM9eT0+e2MmJihJKCF5fHx5LnR5cGU/bmV3IEgobnVsbCxBLGMpOnkpLGMuYWJvcnQoKSxjPW51bGwpfSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnN1YnNjcmliZShzKSxyLnNpZ25hbCYmKHIuc2lnbmFsLmFib3J0ZWQ/cygpOnIuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixzKSkpO2xldCBGPXN0KHIudXJsKTtpZihGJiZoLnByb3RvY29scy5pbmRleE9mKEYpPT09LTEpe0kobmV3IHUoIlVuc3VwcG9ydGVkIHByb3RvY29sICIrRisiOiIsdS5FUlJfQkFEX1JFUVVFU1QsQSkpO3JldHVybn1jLnNlbmQoZ3x8bnVsbCl9KX07dmFyIHRyPShBLHQpPT57bGV0e2xlbmd0aDplfT1BPUE/QS5maWx0ZXIoQm9vbGVhbik6W107aWYodHx8ZSl7bGV0IEk9bmV3IEFib3J0Q29udHJvbGxlcixyLGc9ZnVuY3Rpb24oQil7aWYoIXIpe3I9ITAsbigpO2xldCBzPUIgaW5zdGFuY2VvZiBFcnJvcj9COnRoaXMucmVhc29uO0kuYWJvcnQocyBpbnN0YW5jZW9mIHU/czpuZXcgSChzIGluc3RhbmNlb2YgRXJyb3I/cy5tZXNzYWdlOnMpKX19LG89dCYmc2V0VGltZW91dCgoKT0+e289bnVsbCxnKG5ldyB1KGB0aW1lb3V0ICR7dH0gb2YgbXMgZXhjZWVkZWRgLHUuRVRJTUVET1VUKSl9LHQpLG49KCk9PntBJiYobyYmY2xlYXJUaW1lb3V0KG8pLG89bnVsbCxBLmZvckVhY2goQj0+e0IudW5zdWJzY3JpYmU/Qi51bnN1YnNjcmliZShnKTpCLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixnKX0pLEE9bnVsbCl9O0EuZm9yRWFjaChCPT5CLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixnKSk7bGV0e3NpZ25hbDpFfT1JO3JldHVybiBFLnVuc3Vic2NyaWJlPSgpPT5pLmFzYXAobiksRX19LENlPXRyO3ZhciBlcj1mdW5jdGlvbiooQSx0KXtsZXQgZT1BLmJ5dGVMZW5ndGg7aWYoIXR8fGU8dCl7eWllbGQgQTtyZXR1cm59bGV0IEk9MCxyO2Zvcig7STxlOylyPUkrdCx5aWVsZCBBLnNsaWNlKEksciksST1yfSxJcj1hc3luYyBmdW5jdGlvbiooQSx0KXtmb3IgYXdhaXQobGV0IGUgb2YgcnIoQSkpeWllbGQqZXIoZSx0KX0scnI9YXN5bmMgZnVuY3Rpb24qKEEpe2lmKEFbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKXt5aWVsZCpBO3JldHVybn1sZXQgdD1BLmdldFJlYWRlcigpO3RyeXtmb3IoOzspe2xldHtkb25lOmUsdmFsdWU6SX09YXdhaXQgdC5yZWFkKCk7aWYoZSlicmVhazt5aWVsZCBJfX1maW5hbGx5e2F3YWl0IHQuY2FuY2VsKCl9fSxRdD0oQSx0LGUsSSk9PntsZXQgcj1JcihBLHQpLGc9MCxvLG49RT0+e298fChvPSEwLEkmJkkoRSkpfTtyZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHthc3luYyBwdWxsKEUpe3RyeXtsZXR7ZG9uZTpCLHZhbHVlOnN9PWF3YWl0IHIubmV4dCgpO2lmKEIpe24oKSxFLmNsb3NlKCk7cmV0dXJufWxldCBDPXMuYnl0ZUxlbmd0aDtpZihlKXtsZXQgbD1nKz1DO2UobCl9RS5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KHMpKX1jYXRjaChCKXt0aHJvdyBuKEIpLEJ9fSxjYW5jZWwoRSl7cmV0dXJuIG4oRSksci5yZXR1cm4oKX19LHtoaWdoV2F0ZXJNYXJrOjJ9KX07dmFyIEJlPTY0KjEwMjQse2lzRnVuY3Rpb246cUF9PWksY2U9KCh7ZmV0Y2g6QSxSZXF1ZXN0OnQsUmVzcG9uc2U6ZX0pPT4oe2ZldGNoOkEsUmVxdWVzdDp0LFJlc3BvbnNlOmV9KSkoaS5nbG9iYWwpLHtSZWFkYWJsZVN0cmVhbTphZSxUZXh0RW5jb2RlcjpRZX09aS5nbG9iYWwsRWU9KEEsLi4udCk9Pnt0cnl7cmV0dXJuISFBKC4uLnQpfWNhdGNoe3JldHVybiExfX0sb3I9QT0+e2xldHtmZXRjaDp0LFJlcXVlc3Q6ZSxSZXNwb25zZTpJfT1PYmplY3QuYXNzaWduKHt9LGNlLEEpLHI9cUEodCksZz1xQShlKSxvPXFBKEkpO2lmKCFyKXJldHVybiExO2xldCBuPXImJnFBKGFlKSxFPXImJih0eXBlb2YgUWU9PSJmdW5jdGlvbiI/KFE9PmY9PlEuZW5jb2RlKGYpKShuZXcgUWUpOmFzeW5jIFE9Pm5ldyBVaW50OEFycmF5KGF3YWl0IG5ldyBlKFEpLmFycmF5QnVmZmVyKCkpKSxCPWcmJm4mJkVlKCgpPT57bGV0IFE9ITEsZj1uZXcgZShoLm9yaWdpbix7Ym9keTpuZXcgYWUsbWV0aG9kOiJQT1NUIixnZXQgZHVwbGV4KCl7cmV0dXJuIFE9ITAsImhhbGYifX0pLmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKTtyZXR1cm4gUSYmIWZ9KSxzPW8mJm4mJkVlKCgpPT5pLmlzUmVhZGFibGVTdHJlYW0obmV3IEkoIiIpLmJvZHkpKSxDPXtzdHJlYW06cyYmKFE9PlEuYm9keSl9O3ImJlsidGV4dCIsImFycmF5QnVmZmVyIiwiYmxvYiIsImZvcm1EYXRhIiwic3RyZWFtIl0uZm9yRWFjaChRPT57IUNbUV0mJihDW1FdPShmLGMpPT57bGV0IEQ9ZiYmZltRXTtpZihEKXJldHVybiBELmNhbGwoZik7dGhyb3cgbmV3IHUoYFJlc3BvbnNlIHR5cGUgXCcke1F9XCcgaXMgbm90IHN1cHBvcnRlZGAsdS5FUlJfTk9UX1NVUFBPUlQsYyl9KX0pO2xldCBsPWFzeW5jIFE9PntpZihRPT1udWxsKXJldHVybiAwO2lmKGkuaXNCbG9iKFEpKXJldHVybiBRLnNpemU7aWYoaS5pc1NwZWNDb21wbGlhbnRGb3JtKFEpKXJldHVybihhd2FpdCBuZXcgZShoLm9yaWdpbix7bWV0aG9kOiJQT1NUIixib2R5OlF9KS5hcnJheUJ1ZmZlcigpKS5ieXRlTGVuZ3RoO2lmKGkuaXNBcnJheUJ1ZmZlclZpZXcoUSl8fGkuaXNBcnJheUJ1ZmZlcihRKSlyZXR1cm4gUS5ieXRlTGVuZ3RoO2lmKGkuaXNVUkxTZWFyY2hQYXJhbXMoUSkmJihRPVErIiIpLGkuaXNTdHJpbmcoUSkpcmV0dXJuKGF3YWl0IEUoUSkpLmJ5dGVMZW5ndGh9LGE9YXN5bmMoUSxmKT0+e2xldCBjPWkudG9GaW5pdGVOdW1iZXIoUS5nZXRDb250ZW50TGVuZ3RoKCkpO3JldHVybiBjPz9sKGYpfTtyZXR1cm4gYXN5bmMgUT0+e2xldHt1cmw6ZixtZXRob2Q6YyxkYXRhOkQsc2lnbmFsOkYsY2FuY2VsVG9rZW46eSx0aW1lb3V0OlIsb25Eb3dubG9hZFByb2dyZXNzOmssb25VcGxvYWRQcm9ncmVzczpQLHJlc3BvbnNlVHlwZTpHLGhlYWRlcnM6V0Esd2l0aENyZWRlbnRpYWxzOmRBPSJzYW1lLW9yaWdpbiIsZmV0Y2hPcHRpb25zOm10fT1ZQShRKTtHPUc/KEcrIiIpLnRvTG93ZXJDYXNlKCk6InRleHQiO2xldCBEQT1DZShbRix5JiZ5LnRvQWJvcnRTaWduYWwoKV0sUiksckE9bnVsbCxqPURBJiZEQS51bnN1YnNjcmliZSYmKCgpPT57REEudW5zdWJzY3JpYmUoKX0pLHd0O3RyeXtpZihQJiZCJiZjIT09ImdldCImJmMhPT0iaGVhZCImJih3dD1hd2FpdCBhKFdBLEQpKSE9PTApe2xldCBPPW5ldyBlKGYse21ldGhvZDoiUE9TVCIsYm9keTpELGR1cGxleDoiaGFsZiJ9KSxYO2lmKGkuaXNGb3JtRGF0YShEKSYmKFg9Ty5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIikpJiZXQS5zZXRDb250ZW50VHlwZShYKSxPLmJvZHkpe2xldFtaQSxoQV09bnQod3QsZUEoQ3QoUCkpKTtEPVF0KE8uYm9keSxCZSxaQSxoQSl9fWkuaXNTdHJpbmcoZEEpfHwoZEE9ZEE/ImluY2x1ZGUiOiJvbWl0Iik7bGV0IEo9ZyYmImNyZWRlbnRpYWxzImluIGUucHJvdG90eXBlLHB0PXsuLi5tdCxzaWduYWw6REEsbWV0aG9kOmMudG9VcHBlckNhc2UoKSxoZWFkZXJzOldBLm5vcm1hbGl6ZSgpLnRvSlNPTigpLGJvZHk6RCxkdXBsZXg6ImhhbGYiLGNyZWRlbnRpYWxzOko/ZEE6dm9pZCAwfTtyQT1nJiZuZXcgZShmLHB0KTtsZXQgSz1hd2FpdChnP3QockEsbXQpOnQoZixwdCkpLFN0PXMmJihHPT09InN0cmVhbSJ8fEc9PT0icmVzcG9uc2UiKTtpZihzJiYoa3x8U3QmJmopKXtsZXQgTz17fTtbInN0YXR1cyIsInN0YXR1c1RleHQiLCJoZWFkZXJzIl0uZm9yRWFjaChGdD0+e09bRnRdPUtbRnRdfSk7bGV0IFg9aS50b0Zpbml0ZU51bWJlcihLLmhlYWRlcnMuZ2V0KCJjb250ZW50LWxlbmd0aCIpKSxbWkEsaEFdPWsmJm50KFgsZUEoQ3QoayksITApKXx8W107Sz1uZXcgSShRdChLLmJvZHksQmUsWkEsKCk9PntoQSYmaEEoKSxqJiZqKCl9KSxPKX1HPUd8fCJ0ZXh0IjtsZXQgSGU9YXdhaXQgQ1tpLmZpbmRLZXkoQyxHKXx8InRleHQiXShLLFEpO3JldHVybiFTdCYmaiYmaigpLGF3YWl0IG5ldyBQcm9taXNlKChPLFgpPT57UUEoTyxYLHtkYXRhOkhlLGhlYWRlcnM6cC5mcm9tKEsuaGVhZGVycyksc3RhdHVzOksuc3RhdHVzLHN0YXR1c1RleHQ6Sy5zdGF0dXNUZXh0LGNvbmZpZzpRLHJlcXVlc3Q6ckF9KX0pfWNhdGNoKEope3Rocm93IGomJmooKSxKJiZKLm5hbWU9PT0iVHlwZUVycm9yIiYmL0xvYWQgZmFpbGVkfGZldGNoL2kudGVzdChKLm1lc3NhZ2UpP09iamVjdC5hc3NpZ24obmV3IHUoIk5ldHdvcmsgRXJyb3IiLHUuRVJSX05FVFdPUkssUSxyQSkse2NhdXNlOkouY2F1c2V8fEp9KTp1LmZyb20oSixKJiZKLmNvZGUsUSxyQSl9fX0sZ3I9bmV3IE1hcCxFdD1BPT57bGV0IHQ9aS5tZXJnZS5jYWxsKHtza2lwVW5kZWZpbmVkOiEwfSxjZSxBP0EuZW52Om51bGwpLHtmZXRjaDplLFJlcXVlc3Q6SSxSZXNwb25zZTpyfT10LGc9W0kscixlXSxvPWcubGVuZ3RoLG49byxFLEIscz1ncjtmb3IoO24tLTspRT1nW25dLEI9cy5nZXQoRSksQj09PXZvaWQgMCYmcy5zZXQoRSxCPW4/bmV3IE1hcDpvcih0KSkscz1CO3JldHVybiBCfSxHZz1FdCgpO3ZhciBjdD17aHR0cDprQSx4aHI6bmUsZmV0Y2g6e2dldDpFdH19O2kuZm9yRWFjaChjdCwoQSx0KT0+e2lmKEEpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwibmFtZSIse3ZhbHVlOnR9KX1jYXRjaHt9T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsImFkYXB0ZXJOYW1lIix7dmFsdWU6dH0pfX0pO3ZhciBmZT1BPT5gLSAke0F9YCxzcj1BPT5pLmlzRnVuY3Rpb24oQSl8fEE9PT1udWxsfHxBPT09ITEsTUE9e2dldEFkYXB0ZXI6KEEsdCk9PntBPWkuaXNBcnJheShBKT9BOltBXTtsZXR7bGVuZ3RoOmV9PUEsSSxyLGc9e307Zm9yKGxldCBvPTA7bzxlO28rKyl7ST1BW29dO2xldCBuO2lmKHI9SSwhc3IoSSkmJihyPWN0WyhuPVN0cmluZyhJKSkudG9Mb3dlckNhc2UoKV0scj09PXZvaWQgMCkpdGhyb3cgbmV3IHUoYFVua25vd24gYWRhcHRlciBcJyR7bn1cJ2ApO2lmKHImJihpLmlzRnVuY3Rpb24ocil8fChyPXIuZ2V0KHQpKSkpYnJlYWs7Z1tufHwiJTIzIitvXT1yfWlmKCFyKXtsZXQgbz1PYmplY3QuZW50cmllcyhnKS5tYXAoKFtFLEJdKT0+YGFkYXB0ZXIgJHtFfSBgKyhCPT09ITE/ImlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVudmlyb25tZW50IjoiaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnVpbGQiKSksbj1lP28ubGVuZ3RoPjE/YHNpbmNlIDolMEFgK28ubWFwKGZlKS5qb2luKGAlMEFgKToiICIrZmUob1swXSk6ImFzIG5vIGFkYXB0ZXIgc3BlY2lmaWVkIjt0aHJvdyBuZXcgdSgiVGhlcmUgaXMgbm8gc3VpdGFibGUgYWRhcHRlciB0byBkaXNwYXRjaCB0aGUgcmVxdWVzdCAiK24sIkVSUl9OT1RfU1VQUE9SVCIpfXJldHVybiByfSxhZGFwdGVyczpjdH07ZnVuY3Rpb24gZnQoQSl7aWYoQS5jYW5jZWxUb2tlbiYmQS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksQS5zaWduYWwmJkEuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IEgobnVsbCxBKX1mdW5jdGlvbiBLQShBKXtyZXR1cm4gZnQoQSksQS5oZWFkZXJzPXAuZnJvbShBLmhlYWRlcnMpLEEuZGF0YT1CQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXF1ZXN0KSxbInBvc3QiLCJwdXQiLCJwYXRjaCJdLmluZGV4T2YoQS5tZXRob2QpIT09LTEmJkEuaGVhZGVycy5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwhMSksTUEuZ2V0QWRhcHRlcihBLmFkYXB0ZXJ8fEFBLmFkYXB0ZXIsQSkoQSkudGhlbihmdW5jdGlvbihJKXtyZXR1cm4gZnQoQSksSS5kYXRhPUJBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkpLEkuaGVhZGVycz1wLmZyb20oSS5oZWFkZXJzKSxJfSxmdW5jdGlvbihJKXtyZXR1cm4gYUEoSSl8fChmdChBKSxJJiZJLnJlc3BvbnNlJiYoSS5yZXNwb25zZS5kYXRhPUJBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkucmVzcG9uc2UpLEkucmVzcG9uc2UuaGVhZGVycz1wLmZyb20oSS5yZXNwb25zZS5oZWFkZXJzKSkpLFByb21pc2UucmVqZWN0KEkpfSl9dmFyIE9BPSIxLjEyLjAiO3ZhciBUQT17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKEEsdCk9PntUQVtBXT1mdW5jdGlvbihJKXtyZXR1cm4gdHlwZW9mIEk9PT1BfHwiYSIrKHQ8MT8ibiAiOiIgIikrQX19KTt2YXIgbGU9e307VEEudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKHQsZSxJKXtmdW5jdGlvbiByKGcsbyl7cmV0dXJuIltBeGlvcyB2IitPQSsiXSBUcmFuc2l0aW9uYWwgb3B0aW9uIFwnIitnKyJcJyIrbysoST8iLiAiK0k6IiIpfXJldHVybihnLG8sbik9PntpZih0PT09ITEpdGhyb3cgbmV3IHUocihvLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKGU/IiBpbiAiK2U6IiIpKSx1LkVSUl9ERVBSRUNBVEVEKTtyZXR1cm4gZSYmIWxlW29dJiYobGVbb109ITAsY29uc29sZS53YXJuKHIobywiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrZSsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSx0P3QoZyxvLG4pOiEwfX07VEEuc3BlbGxpbmc9ZnVuY3Rpb24odCl7cmV0dXJuKGUsSSk9Pihjb25zb2xlLndhcm4oYCR7SX0gaXMgbGlrZWx5IGEgbWlzc3BlbGxpbmcgb2YgJHt0fWApLCEwKX07ZnVuY3Rpb24gbnIoQSx0LGUpe2lmKHR5cGVvZiBBIT0ib2JqZWN0Iil0aHJvdyBuZXcgdSgib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIsdS5FUlJfQkFEX09QVElPTl9WQUxVRSk7bGV0IEk9T2JqZWN0LmtleXMoQSkscj1JLmxlbmd0aDtmb3IoO3ItLSA+MDspe2xldCBnPUlbcl0sbz10W2ddO2lmKG8pe2xldCBuPUFbZ10sRT1uPT09dm9pZCAwfHxvKG4sZyxBKTtpZihFIT09ITApdGhyb3cgbmV3IHUoIm9wdGlvbiAiK2crIiBtdXN0IGJlICIrRSx1LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtjb250aW51ZX1pZihlIT09ITApdGhyb3cgbmV3IHUoIlVua25vd24gb3B0aW9uICIrZyx1LkVSUl9CQURfT1BUSU9OKX19dmFyIGNBPXthc3NlcnRPcHRpb25zOm5yLHZhbGlkYXRvcnM6VEF9O3ZhciBZPWNBLnZhbGlkYXRvcnMsSUE9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5kZWZhdWx0cz10fHx7fSx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgdHQscmVzcG9uc2U6bmV3IHR0fX1hc3luYyByZXF1ZXN0KHQsZSl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLl9yZXF1ZXN0KHQsZSl9Y2F0Y2goSSl7aWYoSSBpbnN0YW5jZW9mIEVycm9yKXtsZXQgcj17fTtFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZShyKTpyPW5ldyBFcnJvcjtsZXQgZz1yLnN0YWNrP3Iuc3RhY2sucmVwbGFjZSgvXi4rXFxuLywiIik6IiI7dHJ5e0kuc3RhY2s/ZyYmIVN0cmluZyhJLnN0YWNrKS5lbmRzV2l0aChnLnJlcGxhY2UoL14uK1xcbi4rXFxuLywiIikpJiYoSS5zdGFjays9YCUwQWArZyk6SS5zdGFjaz1nfWNhdGNoe319dGhyb3cgSX19X3JlcXVlc3QodCxlKXt0eXBlb2YgdD09InN0cmluZyI/KGU9ZXx8e30sZS51cmw9dCk6ZT10fHx7fSxlPWIodGhpcy5kZWZhdWx0cyxlKTtsZXR7dHJhbnNpdGlvbmFsOkkscGFyYW1zU2VyaWFsaXplcjpyLGhlYWRlcnM6Z309ZTtJIT09dm9pZCAwJiZjQS5hc3NlcnRPcHRpb25zKEkse3NpbGVudEpTT05QYXJzaW5nOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6WS50cmFuc2l0aW9uYWwoWS5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbil9LCExKSxyIT1udWxsJiYoaS5pc0Z1bmN0aW9uKHIpP2UucGFyYW1zU2VyaWFsaXplcj17c2VyaWFsaXplOnJ9OmNBLmFzc2VydE9wdGlvbnMocix7ZW5jb2RlOlkuZnVuY3Rpb24sc2VyaWFsaXplOlkuZnVuY3Rpb259LCEwKSksZS5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMHx8KHRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDA/ZS5hbGxvd0Fic29sdXRlVXJscz10aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzOmUuYWxsb3dBYnNvbHV0ZVVybHM9ITApLGNBLmFzc2VydE9wdGlvbnMoZSx7YmFzZVVybDpZLnNwZWxsaW5nKCJiYXNlVVJMIiksd2l0aFhzcmZUb2tlbjpZLnNwZWxsaW5nKCJ3aXRoWFNSRlRva2VuIil9LCEwKSxlLm1ldGhvZD0oZS5tZXRob2R8fHRoaXMuZGVmYXVsdHMubWV0aG9kfHwiZ2V0IikudG9Mb3dlckNhc2UoKTtsZXQgbz1nJiZpLm1lcmdlKGcuY29tbW9uLGdbZS5tZXRob2RdKTtnJiZpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sUT0+e2RlbGV0ZSBnW1FdfSksZS5oZWFkZXJzPXAuY29uY2F0KG8sZyk7bGV0IG49W10sRT0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24oZil7dHlwZW9mIGYucnVuV2hlbj09ImZ1bmN0aW9uIiYmZi5ydW5XaGVuKGUpPT09ITF8fChFPUUmJmYuc3luY2hyb25vdXMsbi51bnNoaWZ0KGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpKX0pO2xldCBCPVtdO3RoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24oZil7Qi5wdXNoKGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpfSk7bGV0IHMsQz0wLGw7aWYoIUUpe2xldCBRPVtLQS5iaW5kKHRoaXMpLHZvaWQgMF07Zm9yKFEudW5zaGlmdCguLi5uKSxRLnB1c2goLi4uQiksbD1RLmxlbmd0aCxzPVByb21pc2UucmVzb2x2ZShlKTtDPGw7KXM9cy50aGVuKFFbQysrXSxRW0MrK10pO3JldHVybiBzfWw9bi5sZW5ndGg7bGV0IGE9ZTtmb3IoQz0wO0M8bDspe2xldCBRPW5bQysrXSxmPW5bQysrXTt0cnl7YT1RKGEpfWNhdGNoKGMpe2YuY2FsbCh0aGlzLGMpO2JyZWFrfX10cnl7cz1LQS5jYWxsKHRoaXMsYSl9Y2F0Y2goUSl7cmV0dXJuIFByb21pc2UucmVqZWN0KFEpfWZvcihDPTAsbD1CLmxlbmd0aDtDPGw7KXM9cy50aGVuKEJbQysrXSxCW0MrK10pO3JldHVybiBzfWdldFVyaSh0KXt0PWIodGhpcy5kZWZhdWx0cyx0KTtsZXQgZT1FQSh0LmJhc2VVUkwsdC51cmwsdC5hbGxvd0Fic29sdXRlVXJscyk7cmV0dXJuIG5BKGUsdC5wYXJhbXMsdC5wYXJhbXNTZXJpYWxpemVyKX19O2kuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJvcHRpb25zIl0sZnVuY3Rpb24odCl7SUEucHJvdG90eXBlW3RdPWZ1bmN0aW9uKGUsSSl7cmV0dXJuIHRoaXMucmVxdWVzdChiKEl8fHt9LHttZXRob2Q6dCx1cmw6ZSxkYXRhOihJfHx7fSkuZGF0YX0pKX19KTtpLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSxmdW5jdGlvbih0KXtmdW5jdGlvbiBlKEkpe3JldHVybiBmdW5jdGlvbihnLG8sbil7cmV0dXJuIHRoaXMucmVxdWVzdChiKG58fHt9LHttZXRob2Q6dCxoZWFkZXJzOkk/eyJDb250ZW50LVR5cGUiOiJtdWx0aXBhcnQvZm9ybS1kYXRhIn06e30sdXJsOmcsZGF0YTpvfSkpfX1JQS5wcm90b3R5cGVbdF09ZSgpLElBLnByb3RvdHlwZVt0KyJGb3JtIl09ZSghMCl9KTt2YXIgZkE9SUE7dmFyIGx0PWNsYXNzIEF7Y29uc3RydWN0b3IodCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO2xldCBlO3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihnKXtlPWd9KTtsZXQgST10aGlzO3RoaXMucHJvbWlzZS50aGVuKHI9PntpZighSS5fbGlzdGVuZXJzKXJldHVybjtsZXQgZz1JLl9saXN0ZW5lcnMubGVuZ3RoO2Zvcig7Zy0tID4wOylJLl9saXN0ZW5lcnNbZ10ocik7SS5fbGlzdGVuZXJzPW51bGx9KSx0aGlzLnByb21pc2UudGhlbj1yPT57bGV0IGcsbz1uZXcgUHJvbWlzZShuPT57SS5zdWJzY3JpYmUobiksZz1ufSkudGhlbihyKTtyZXR1cm4gby5jYW5jZWw9ZnVuY3Rpb24oKXtJLnVuc3Vic2NyaWJlKGcpfSxvfSx0KGZ1bmN0aW9uKGcsbyxuKXtJLnJlYXNvbnx8KEkucmVhc29uPW5ldyBIKGcsbyxuKSxlKEkucmVhc29uKSl9KX10aHJvd0lmUmVxdWVzdGVkKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259c3Vic2NyaWJlKHQpe2lmKHRoaXMucmVhc29uKXt0KHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKHQpOnRoaXMuX2xpc3RlbmVycz1bdF19dW5zdWJzY3JpYmUodCl7aWYoIXRoaXMuX2xpc3RlbmVycylyZXR1cm47bGV0IGU9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YodCk7ZSE9PS0xJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKGUsMSl9dG9BYm9ydFNpZ25hbCgpe2xldCB0PW5ldyBBYm9ydENvbnRyb2xsZXIsZT1JPT57dC5hYm9ydChJKX07cmV0dXJuIHRoaXMuc3Vic2NyaWJlKGUpLHQuc2lnbmFsLnVuc3Vic2NyaWJlPSgpPT50aGlzLnVuc3Vic2NyaWJlKGUpLHQuc2lnbmFsfXN0YXRpYyBzb3VyY2UoKXtsZXQgdDtyZXR1cm57dG9rZW46bmV3IEEoZnVuY3Rpb24ocil7dD1yfSksY2FuY2VsOnR9fX0sdWU9bHQ7ZnVuY3Rpb24gdXQoQSl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBBLmFwcGx5KG51bGwsZSl9fWZ1bmN0aW9uIGR0KEEpe3JldHVybiBpLmlzT2JqZWN0KEEpJiZBLmlzQXhpb3NFcnJvcj09PSEwfXZhciBEdD17Q29udGludWU6MTAwLFN3aXRjaGluZ1Byb3RvY29sczoxMDEsUHJvY2Vzc2luZzoxMDIsRWFybHlIaW50czoxMDMsT2s6MjAwLENyZWF0ZWQ6MjAxLEFjY2VwdGVkOjIwMixOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb246MjAzLE5vQ29udGVudDoyMDQsUmVzZXRDb250ZW50OjIwNSxQYXJ0aWFsQ29udGVudDoyMDYsTXVsdGlTdGF0dXM6MjA3LEFscmVhZHlSZXBvcnRlZDoyMDgsSW1Vc2VkOjIyNixNdWx0aXBsZUNob2ljZXM6MzAwLE1vdmVkUGVybWFuZW50bHk6MzAxLEZvdW5kOjMwMixTZWVPdGhlcjozMDMsTm90TW9kaWZpZWQ6MzA0LFVzZVByb3h5OjMwNSxVbnVzZWQ6MzA2LFRlbXBvcmFyeVJlZGlyZWN0OjMwNyxQZXJtYW5lbnRSZWRpcmVjdDozMDgsQmFkUmVxdWVzdDo0MDAsVW5hdXRob3JpemVkOjQwMSxQYXltZW50UmVxdWlyZWQ6NDAyLEZvcmJpZGRlbjo0MDMsTm90Rm91bmQ6NDA0LE1ldGhvZE5vdEFsbG93ZWQ6NDA1LE5vdEFjY2VwdGFibGU6NDA2LFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDo0MDcsUmVxdWVzdFRpbWVvdXQ6NDA4LENvbmZsaWN0OjQwOSxHb25lOjQxMCxMZW5ndGhSZXF1aXJlZDo0MTEsUHJlY29uZGl0aW9uRmFpbGVkOjQxMixQYXlsb2FkVG9vTGFyZ2U6NDEzLFVyaVRvb0xvbmc6NDE0LFVuc3VwcG9ydGVkTWVkaWFUeXBlOjQxNSxSYW5nZU5vdFNhdGlzZmlhYmxlOjQxNixFeHBlY3RhdGlvbkZhaWxlZDo0MTcsSW1BVGVhcG90OjQxOCxNaXNkaXJlY3RlZFJlcXVlc3Q6NDIxLFVucHJvY2Vzc2FibGVFbnRpdHk6NDIyLExvY2tlZDo0MjMsRmFpbGVkRGVwZW5kZW5jeTo0MjQsVG9vRWFybHk6NDI1LFVwZ3JhZGVSZXF1aXJlZDo0MjYsUHJlY29uZGl0aW9uUmVxdWlyZWQ6NDI4LFRvb01hbnlSZXF1ZXN0czo0MjksUmVxdWVzdEhlYWRlckZpZWxkc1Rvb0xhcmdlOjQzMSxVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczo0NTEsSW50ZXJuYWxTZXJ2ZXJFcnJvcjo1MDAsTm90SW1wbGVtZW50ZWQ6NTAxLEJhZEdhdGV3YXk6NTAyLFNlcnZpY2VVbmF2YWlsYWJsZTo1MDMsR2F0ZXdheVRpbWVvdXQ6NTA0LEh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOjUwNSxWYXJpYW50QWxzb05lZ290aWF0ZXM6NTA2LEluc3VmZmljaWVudFN0b3JhZ2U6NTA3LExvb3BEZXRlY3RlZDo1MDgsTm90RXh0ZW5kZWQ6NTEwLE5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOjUxMX07T2JqZWN0LmVudHJpZXMoRHQpLmZvckVhY2goKFtBLHRdKT0+e0R0W3RdPUF9KTt2YXIgZGU9RHQ7ZnVuY3Rpb24gRGUoQSl7bGV0IHQ9bmV3IGZBKEEpLGU9b0EoZkEucHJvdG90eXBlLnJlcXVlc3QsdCk7cmV0dXJuIGkuZXh0ZW5kKGUsZkEucHJvdG90eXBlLHQse2FsbE93bktleXM6ITB9KSxpLmV4dGVuZChlLHQsbnVsbCx7YWxsT3duS2V5czohMH0pLGUuY3JlYXRlPWZ1bmN0aW9uKHIpe3JldHVybiBEZShiKEEscikpfSxlfXZhciBtPURlKEFBKTttLkF4aW9zPWZBO20uQ2FuY2VsZWRFcnJvcj1IO20uQ2FuY2VsVG9rZW49dWU7bS5pc0NhbmNlbD1hQTttLlZFUlNJT049T0E7bS50b0Zvcm1EYXRhPVQ7bS5BeGlvc0Vycm9yPXU7bS5DYW5jZWw9bS5DYW5jZWxlZEVycm9yO20uYWxsPWZ1bmN0aW9uKHQpe3JldHVybiBQcm9taXNlLmFsbCh0KX07bS5zcHJlYWQ9dXQ7bS5pc0F4aW9zRXJyb3I9ZHQ7bS5tZXJnZUNvbmZpZz1iO20uQXhpb3NIZWFkZXJzPXA7bS5mb3JtVG9KU09OPUE9PkpBKGkuaXNIVE1MRm9ybShBKT9uZXcgRm9ybURhdGEoQSk6QSk7bS5nZXRBZGFwdGVyPU1BLmdldEFkYXB0ZXI7bS5IdHRwU3RhdHVzQ29kZT1kZTttLmRlZmF1bHQ9bTt2YXIgeEE9bTt2YXJ7QXhpb3M6UmksQXhpb3NFcnJvcjpOaSxDYW5jZWxlZEVycm9yOlVpLGlzQ2FuY2VsOkdpLENhbmNlbFRva2VuOmtpLFZFUlNJT046TGksYWxsOmJpLENhbmNlbDpKaSxpc0F4aW9zRXJyb3I6SGksc3ByZWFkOllpLHRvRm9ybURhdGE6cWksQXhpb3NIZWFkZXJzOk1pLEh0dHBTdGF0dXNDb2RlOktpLGZvcm1Ub0pTT046T2ksZ2V0QWRhcHRlcjpUaSxtZXJnZUNvbmZpZzp4aX09eEE7dmFyIGxBLE0seXQsaHQ9e2Vudjp7ZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aDpmdW5jdGlvbihBKXt5dD1uZXcgVWludDhBcnJheShNLmV4cG9ydHMubWVtb3J5LmJ1ZmZlcil9fX0sUEE9Y2xhc3N7aW5pdCgpe3JldHVybiBsQXx8KHR5cGVvZiBmZXRjaDwidSI/bEE9ZmV0Y2goImRhdGE6YXBwbGljYXRpb24vd2FzbTtiYXNlNjQsIitoZSkudGhlbih0PT50LmFycmF5QnVmZmVyKCkpLnRoZW4odD0+V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUodCxodCkpLnRoZW4odGhpcy5faW5pdCk6bEE9V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoQnVmZmVyLmZyb20oaGUsImJhc2U2NCIpLGh0KS50aGVuKHRoaXMuX2luaXQpLGxBKX1faW5pdCh0KXtNPXQuaW5zdGFuY2UsaHQuZW52LmVtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgoMCl9ZGVjb2RlKHQsZT0wKXtpZighTSl0aHJvdyBuZXcgRXJyb3IoIlpTVEREZWNvZGVyOiBBd2FpdCAuaW5pdCgpIGJlZm9yZSBkZWNvZGluZy4iKTtsZXQgST10LmJ5dGVMZW5ndGgscj1NLmV4cG9ydHMubWFsbG9jKEkpO3l0LnNldCh0LHIpLGU9ZXx8TnVtYmVyKE0uZXhwb3J0cy5aU1REX2ZpbmREZWNvbXByZXNzZWRTaXplKHIsSSkpO2xldCBnPU0uZXhwb3J0cy5tYWxsb2MoZSksbz1NLmV4cG9ydHMuWlNURF9kZWNvbXByZXNzKGcsZSxyLEkpLG49eXQuc2xpY2UoZyxnK28pO3JldHVybiBNLmV4cG9ydHMuZnJlZShyKSxNLmV4cG9ydHMuZnJlZShnKSxufX0saGU9IkFHRnpiUUVBQUFBQmJnNWdBMzkvZndGL1lBRi9BWDlnQW45L0FHQUJmd0JnQlg5L2YzOS9BWDlnQTM5L2Z3QmdCSDkvZjM4QmYyQUFBWDlnQW45L0FYOWdCMzkvZjM5L2YzOEJmMkFDZjM4QmZtQUlmMzkvZjM5L2YzOEJmMkFGZjM5L2YzOEFZQTUvZjM5L2YzOS9mMzkvZjM5L2Z3Ri9BaWNCQTJWdWRoOWxiWE5qY21sd2RHVnVYMjV2ZEdsbWVWOXRaVzF2Y25sZlozSnZkM1JvQUFNREl5SUhBQUFCQVFNSEF3RUFDUVFBQlFFSUNBRUZCZ1FFQkFNR0FBQUtBQVVMREEwR0JBVUJjQUVCQVFVSEFRR0FBb0NBQWdZSUFYOEJRWUNqQkFzSHJnRUxCbTFsYlc5eWVRSUFCbTFoYkd4dll3QUZCR1p5WldVQUJneGFVMVJFWDJselJYSnliM0lBRWhsYVUxUkVYMlpwYm1SRVpXTnZiWEJ5WlhOelpXUlRhWHBsQUJ3UFdsTlVSRjlrWldOdmJYQnlaWE56QUNJWlgxOXBibVJwY21WamRGOW1kVzVqZEdsdmJsOTBZV0pzWlFFQUVGOWZaWEp5Ym05ZmJHOWpZWFJwYjI0QUFRbHpkR0ZqYTFOaGRtVUFCd3h6ZEdGamExSmxjM1J2Y21VQUNBcHpkR0ZqYTBGc2JHOWpBQWtLaS9JQklnVUFRWVFmQ3pNQkFYOGdBZ1JBSUFBaEF3TkFJQU1nQVMwQUFEb0FBQ0FEUVFGcUlRTWdBVUVCYWlFQklBSkJBV3NpQWcwQUN3c2dBQXNwQVFGL0lBSUVRQ0FBSVFNRFFDQURJQUU2QUFBZ0EwRUJhaUVESUFKQkFXc2lBZzBBQ3dzZ0FBdHNBUUovUVlBZktBSUFJZ0VnQUVFSGFrRjRjU0lDYWlFQUFrQWdBa0VBSUFBZ0FVMGJEUUFnQUQ4QVFSQjBTd1JBSUFBL0FFRVFkR3RCLy84RGFrRVFka0FBUVg5R0JIOUJBQVZCQUJBQVFRRUxSUTBCQzBHQUh5QUFOZ0lBSUFFUEMwR0VIMEV3TmdJQVFYOEx1U2NCQzM4akFFRVFheUlLSkFBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBQkI5QUZOQkVCQmlCOG9BZ0FpQmtFUUlBQkJDMnBCZUhFZ0FFRUxTUnNpQlVFRGRpSUFkaUlCUVFOeEJFQUNRQ0FCUVg5elFRRnhJQUJxSWdKQkEzUWlBVUd3SDJvaUFDQUJRYmdmYWlnQ0FDSUJLQUlJSWdSR0JFQkJpQjhnQmtGK0lBSjNjVFlDQUF3QkN5QUVJQUEyQWd3Z0FDQUVOZ0lJQ3lBQlFRaHFJUUFnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1Ed3NnQlVHUUh5Z0NBQ0lIVFEwQklBRUVRQUpBUVFJZ0FIUWlBa0VBSUFKcmNpQUJJQUIwY1dnaUFVRURkQ0lBUWJBZmFpSUNJQUJCdUI5cUtBSUFJZ0FvQWdnaUJFWUVRRUdJSHlBR1FYNGdBWGR4SWdZMkFnQU1BUXNnQkNBQ05nSU1JQUlnQkRZQ0NBc2dBQ0FGUVFOeU5nSUVJQUFnQldvaUNDQUJRUU4wSWdFZ0JXc2lCRUVCY2pZQ0JDQUFJQUZxSUFRMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFGQm5COG9BZ0FoQWdKL0lBWkJBU0FIUVFOMmRDSURjVVVFUUVHSUh5QURJQVp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBeUFCSUFJMkFnZ2dBeUFDTmdJTUlBSWdBVFlDRENBQ0lBTTJBZ2dMSUFCQkNHb2hBRUdjSHlBSU5nSUFRWkFmSUFRMkFnQU1Ed3RCakI4b0FnQWlDMFVOQVNBTGFFRUNkRUc0SVdvb0FnQWlBaWdDQkVGNGNTQUZheUVESUFJaEFRTkFBa0FnQVNnQ0VDSUFSUVJBSUFFb0FoUWlBRVVOQVFzZ0FDZ0NCRUY0Y1NBRmF5SUJJQU1nQVNBRFNTSUJHeUVESUFBZ0FpQUJHeUVDSUFBaEFRd0JDd3NnQWlnQ0dDRUpJQUlnQWlnQ0RDSUVSd1JBUVpnZktBSUFHaUFDS0FJSUlnQWdCRFlDRENBRUlBQTJBZ2dNRGdzZ0FrRVVhaUlCS0FJQUlnQkZCRUFnQWlnQ0VDSUFSUTBESUFKQkVHb2hBUXNEUUNBQklRZ2dBQ0lFUVJScUlnRW9BZ0FpQUEwQUlBUkJFR29oQVNBRUtBSVFJZ0FOQUFzZ0NFRUFOZ0lBREEwTFFYOGhCU0FBUWI5L1N3MEFJQUJCQzJvaUFFRjRjU0VGUVl3ZktBSUFJZ2hGRFFCQkFDQUZheUVEQWtBQ1FBSkFBbjlCQUNBRlFZQUNTUTBBR2tFZklBVkIvLy8vQjBzTkFCb2dCVUVtSUFCQkNIWm5JZ0JyZGtFQmNTQUFRUUYwYTBFK2Fnc2lCMEVDZEVHNElXb29BZ0FpQVVVRVFFRUFJUUFNQVF0QkFDRUFJQVZCR1NBSFFRRjJhMEVBSUFkQkgwY2JkQ0VDQTBBQ1FDQUJLQUlFUVhoeElBVnJJZ1lnQTA4TkFDQUJJUVFnQmlJRERRQkJBQ0VESUFFaEFBd0RDeUFBSUFFb0FoUWlCaUFHSUFFZ0FrRWRka0VFY1dvb0FoQWlBVVliSUFBZ0Joc2hBQ0FDUVFGMElRSWdBUTBBQ3dzZ0FDQUVja1VFUUVFQUlRUkJBaUFIZENJQVFRQWdBR3R5SUFoeElnQkZEUU1nQUdoQkFuUkJ1Q0ZxS0FJQUlRQUxJQUJGRFFFTEEwQWdBQ2dDQkVGNGNTQUZheUlDSUFOSklRRWdBaUFESUFFYklRTWdBQ0FFSUFFYklRUWdBQ2dDRUNJQkJIOGdBUVVnQUNnQ0ZBc2lBQTBBQ3dzZ0JFVU5BQ0FEUVpBZktBSUFJQVZyVHcwQUlBUW9BaGdoQnlBRUlBUW9BZ3dpQWtjRVFFR1lIeWdDQUJvZ0JDZ0NDQ0lBSUFJMkFnd2dBaUFBTmdJSURBd0xJQVJCRkdvaUFTZ0NBQ0lBUlFSQUlBUW9BaEFpQUVVTkF5QUVRUkJxSVFFTEEwQWdBU0VHSUFBaUFrRVVhaUlCS0FJQUlnQU5BQ0FDUVJCcUlRRWdBaWdDRUNJQURRQUxJQVpCQURZQ0FBd0xDeUFGUVpBZktBSUFJZ1JOQkVCQm5COG9BZ0FoQUFKQUlBUWdCV3NpQVVFUVR3UkFJQUFnQldvaUFpQUJRUUZ5TmdJRUlBQWdCR29nQVRZQ0FDQUFJQVZCQTNJMkFnUU1BUXNnQUNBRVFRTnlOZ0lFSUFBZ0JHb2lBU0FCS0FJRVFRRnlOZ0lFUVFBaEFrRUFJUUVMUVpBZklBRTJBZ0JCbkI4Z0FqWUNBQ0FBUVFocUlRQU1EUXNnQlVHVUh5Z0NBQ0lDU1FSQVFaUWZJQUlnQldzaUFUWUNBRUdnSDBHZ0h5Z0NBQ0lBSUFWcUlnSTJBZ0FnQWlBQlFRRnlOZ0lFSUFBZ0JVRURjallDQkNBQVFRaHFJUUFNRFF0QkFDRUFJQVZCTDJvaUF3Si9RZUFpS0FJQUJFQkI2Q0lvQWdBTUFRdEI3Q0pDZnpjQ0FFSGtJa0tBb0lDQWdJQUVOd0lBUWVBaUlBcEJER3BCY0hGQjJLclZxZ1Z6TmdJQVFmUWlRUUEyQWdCQnhDSkJBRFlDQUVHQUlBc2lBV29pQmtFQUlBRnJJZ2h4SWdFZ0JVME5ERUhBSWlnQ0FDSUVCRUJCdUNJb0FnQWlCeUFCYWlJSklBZE5JQVFnQ1VseURRMExBa0JCeENJdEFBQkJCSEZGQkVBQ1FBSkFBa0FDUUVHZ0h5Z0NBQ0lFQkVCQnlDSWhBQU5BSUFRZ0FDZ0NBQ0lIVHdSQUlBY2dBQ2dDQkdvZ0JFc05Bd3NnQUNnQ0NDSUFEUUFMQzBFQUVBUWlBa0YvUmcwRElBRWhCa0hrSWlnQ0FDSUFRUUZySWdRZ0FuRUVRQ0FCSUFKcklBSWdCR3BCQUNBQWEzRnFJUVlMSUFVZ0JrOE5BMEhBSWlnQ0FDSUFCRUJCdUNJb0FnQWlCQ0FHYWlJSUlBUk5JQUFnQ0VseURRUUxJQVlRQkNJQUlBSkhEUUVNQlFzZ0JpQUNheUFJY1NJR0VBUWlBaUFBS0FJQUlBQW9BZ1JxUmcwQklBSWhBQXNnQUVGL1JnMEJJQVZCTUdvZ0JrMEVRQ0FBSVFJTUJBdEI2Q0lvQWdBaUFpQURJQVpyYWtFQUlBSnJjU0lDRUFSQmYwWU5BU0FDSUFacUlRWWdBQ0VDREFNTElBSkJmMGNOQWd0QnhDSkJ4Q0lvQWdCQkJISTJBZ0FMSUFFUUJDSUNRWDlHUVFBUUJDSUFRWDlHY2lBQUlBSk5jZzBGSUFBZ0Ftc2lCaUFGUVNocVRRMEZDMEc0SWtHNElpZ0NBQ0FHYWlJQU5nSUFRYndpS0FJQUlBQkpCRUJCdkNJZ0FEWUNBQXNDUUVHZ0h5Z0NBQ0lEQkVCQnlDSWhBQU5BSUFJZ0FDZ0NBQ0lCSUFBb0FnUWlCR3BHRFFJZ0FDZ0NDQ0lBRFFBTERBUUxRWmdmS0FJQUlnQkJBQ0FBSUFKTkcwVUVRRUdZSHlBQ05nSUFDMEVBSVFCQnpDSWdCallDQUVISUlpQUNOZ0lBUWFnZlFYODJBZ0JCckI5QjRDSW9BZ0EyQWdCQjFDSkJBRFlDQUFOQUlBQkJBM1FpQVVHNEgyb2dBVUd3SDJvaUJEWUNBQ0FCUWJ3ZmFpQUVOZ0lBSUFCQkFXb2lBRUVnUncwQUMwR1VIeUFHUVNocklnQkJlQ0FDYTBFSGNTSUJheUlFTmdJQVFhQWZJQUVnQW1vaUFUWUNBQ0FCSUFSQkFYSTJBZ1FnQUNBQ2FrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBUUxJQUlnQTAwZ0FTQURTM0lOQWlBQUtBSU1RUWh4RFFJZ0FDQUVJQVpxTmdJRVFhQWZJQU5CZUNBRGEwRUhjU0lBYWlJQk5nSUFRWlFmUVpRZktBSUFJQVpxSWdJZ0FHc2lBRFlDQUNBQklBQkJBWEkyQWdRZ0FpQURha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQU1MUVFBaEJBd0tDMEVBSVFJTUNBdEJtQjhvQWdBZ0Frc0VRRUdZSHlBQ05nSUFDeUFDSUFacUlRRkJ5Q0loQUFKQUFrQUNRQU5BSUFFZ0FDZ0NBRWNFUUNBQUtBSUlJZ0FOQVF3Q0N3c2dBQzBBREVFSWNVVU5BUXRCeUNJaEFBTkFJQU1nQUNnQ0FDSUJUd1JBSUFFZ0FDZ0NCR29pQkNBRFN3MERDeUFBS0FJSUlRQU1BQXNBQ3lBQUlBSTJBZ0FnQUNBQUtBSUVJQVpxTmdJRUlBSkJlQ0FDYTBFSGNXb2lCeUFGUVFOeU5nSUVJQUZCZUNBQmEwRUhjV29pQmlBRklBZHFJZ1ZySVFBZ0F5QUdSZ1JBUWFBZklBVTJBZ0JCbEI5QmxCOG9BZ0FnQUdvaUFEWUNBQ0FGSUFCQkFYSTJBZ1FNQ0F0Qm5COG9BZ0FnQmtZRVFFR2NIeUFGTmdJQVFaQWZRWkFmS0FJQUlBQnFJZ0EyQWdBZ0JTQUFRUUZ5TmdJRUlBQWdCV29nQURZQ0FBd0lDeUFHS0FJRUlnTkJBM0ZCQVVjTkJpQURRWGh4SVFrZ0EwSC9BVTBFUUNBR0tBSU1JZ0VnQmlnQ0NDSUNSZ1JBUVlnZlFZZ2ZLQUlBUVg0Z0EwRURkbmR4TmdJQURBY0xJQUlnQVRZQ0RDQUJJQUkyQWdnTUJnc2dCaWdDR0NFSUlBWWdCaWdDRENJQ1J3UkFJQVlvQWdnaUFTQUNOZ0lNSUFJZ0FUWUNDQXdGQ3lBR1FSUnFJZ0VvQWdBaUEwVUVRQ0FHS0FJUUlnTkZEUVFnQmtFUWFpRUJDd05BSUFFaEJDQURJZ0pCRkdvaUFTZ0NBQ0lERFFBZ0FrRVFhaUVCSUFJb0FoQWlBdzBBQ3lBRVFRQTJBZ0FNQkF0QmxCOGdCa0VvYXlJQVFYZ2dBbXRCQjNFaUFXc2lDRFlDQUVHZ0h5QUJJQUpxSWdFMkFnQWdBU0FJUVFGeU5nSUVJQUFnQW1wQktEWUNCRUdrSDBId0lpZ0NBRFlDQUNBRElBUkJKeUFFYTBFSGNXcEJMMnNpQUNBQUlBTkJFR3BKR3lJQlFSczJBZ1FnQVVIUUlpa0NBRGNDRUNBQlFjZ2lLUUlBTndJSVFkQWlJQUZCQ0dvMkFnQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFkUWlRUUEyQWdBZ0FVRVlhaUVBQTBBZ0FFRUhOZ0lFSUFCQkNHb2dBRUVFYWlFQUlBUkpEUUFMSUFFZ0EwWU5BQ0FCSUFFb0FnUkJmbkUyQWdRZ0F5QUJJQU5ySWdKQkFYSTJBZ1FnQVNBQ05nSUFJQUpCL3dGTkJFQWdBa0Y0Y1VHd0gyb2hBQUovUVlnZktBSUFJZ0ZCQVNBQ1FRTjJkQ0lDY1VVRVFFR0lIeUFCSUFKeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQVNBQUlBTTJBZ2dnQVNBRE5nSU1JQU1nQURZQ0RDQURJQUUyQWdnTUFRdEJIeUVBSUFKQi8vLy9CMDBFUUNBQ1FTWWdBa0VJZG1jaUFHdDJRUUZ4SUFCQkFYUnJRVDVxSVFBTElBTWdBRFlDSENBRFFnQTNBaEFnQUVFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUJFRUJJQUIwSWdaeFJRUkFRWXdmSUFRZ0JuSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkdTQUFRUUYyYTBFQUlBQkJIMGNiZENFQUlBRW9BZ0FoQkFOQUlBUWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCQ0FBUVFGMElRQWdBU0FFUVFSeGFpSUdLQUlRSWdRTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xRWlFmS0FJQUlnQWdCVTBOQUVHVUh5QUFJQVZySWdFMkFnQkJvQjlCb0I4b0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQWdMUVlRZlFUQTJBZ0JCQUNFQURBY0xRUUFoQWdzZ0NFVU5BQUpBSUFZb0Fod2lBVUVDZEVHNElXb2lCQ2dDQUNBR1JnUkFJQVFnQWpZQ0FDQUNEUUZCakI5QmpCOG9BZ0JCZmlBQmQzRTJBZ0FNQWdzZ0NFRVFRUlFnQ0NnQ0VDQUdSaHRxSUFJMkFnQWdBa1VOQVFzZ0FpQUlOZ0lZSUFZb0FoQWlBUVJBSUFJZ0FUWUNFQ0FCSUFJMkFoZ0xJQVlvQWhRaUFVVU5BQ0FDSUFFMkFoUWdBU0FDTmdJWUN5QUFJQWxxSVFBZ0JpQUphaUlHS0FJRUlRTUxJQVlnQTBGK2NUWUNCQ0FGSUFCQkFYSTJBZ1FnQUNBRmFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVGNGNVR3dIMm9oQVFKL1FZZ2ZLQUlBSWdKQkFTQUFRUU4yZENJQWNVVUVRRUdJSHlBQUlBSnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEFDQUJJQVUyQWdnZ0FDQUZOZ0lNSUFVZ0FUWUNEQ0FGSUFBMkFnZ01BUXRCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQVVnQXpZQ0hDQUZRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlBa0VCSUFOMElnUnhSUVJBUVl3ZklBSWdCSEkyQWdBZ0FTQUZOZ0lBREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFnTkFJQUlpQVNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQWlBRFFRRjBJUU1nQVNBQ1FRUnhhaUlFS0FJUUlnSU5BQXNnQkNBRk5nSVFDeUFGSUFFMkFoZ2dCU0FGTmdJTUlBVWdCVFlDQ0F3QkN5QUJLQUlJSWdBZ0JUWUNEQ0FCSUFVMkFnZ2dCVUVBTmdJWUlBVWdBVFlDRENBRklBQTJBZ2dMSUFkQkNHb2hBQXdDQ3dKQUlBZEZEUUFDUUNBRUtBSWNJZ0JCQW5SQnVDRnFJZ0VvQWdBZ0JFWUVRQ0FCSUFJMkFnQWdBZzBCUVl3ZklBaEJmaUFBZDNFaUNEWUNBQXdDQ3lBSFFSQkJGQ0FIS0FJUUlBUkdHMm9nQWpZQ0FDQUNSUTBCQ3lBQ0lBYzJBaGdnQkNnQ0VDSUFCRUFnQWlBQU5nSVFJQUFnQWpZQ0dBc2dCQ2dDRkNJQVJRMEFJQUlnQURZQ0ZDQUFJQUkyQWhnTEFrQWdBMEVQVFFSQUlBUWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0JHb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBUWdCVUVEY2pZQ0JDQUVJQVZxSWdJZ0EwRUJjallDQkNBQ0lBTnFJQU0yQWdBZ0EwSC9BVTBFUUNBRFFYaHhRYkFmYWlFQUFuOUJpQjhvQWdBaUFVRUJJQU5CQTNaMElnTnhSUVJBUVlnZklBRWdBM0kyQWdBZ0FBd0JDeUFBS0FJSUN5RUJJQUFnQWpZQ0NDQUJJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0FUWUNDQXdCQzBFZklRQWdBMEgvLy84SFRRUkFJQU5CSmlBRFFRaDJaeUlBYTNaQkFYRWdBRUVCZEd0QlBtb2hBQXNnQWlBQU5nSWNJQUpDQURjQ0VDQUFRUUowUWJnaGFpRUJBa0FDUUNBSVFRRWdBSFFpQm5GRkJFQkJqQjhnQmlBSWNqWUNBQ0FCSUFJMkFnQU1BUXNnQTBFWklBQkJBWFpyUVFBZ0FFRWZSeHQwSVFBZ0FTZ0NBQ0VGQTBBZ0JTSUJLQUlFUVhoeElBTkdEUUlnQUVFZGRpRUdJQUJCQVhRaEFDQUJJQVpCQkhGcUlnWW9BaEFpQlEwQUN5QUdJQUkyQWhBTElBSWdBVFlDR0NBQ0lBSTJBZ3dnQWlBQ05nSUlEQUVMSUFFb0FnZ2lBQ0FDTmdJTUlBRWdBallDQ0NBQ1FRQTJBaGdnQWlBQk5nSU1JQUlnQURZQ0NBc2dCRUVJYWlFQURBRUxBa0FnQ1VVTkFBSkFJQUlvQWh3aUFFRUNkRUc0SVdvaUFTZ0NBQ0FDUmdSQUlBRWdCRFlDQUNBRURRRkJqQjhnQzBGK0lBQjNjVFlDQUF3Q0N5QUpRUkJCRkNBSktBSVFJQUpHRzJvZ0JEWUNBQ0FFUlEwQkN5QUVJQWsyQWhnZ0FpZ0NFQ0lBQkVBZ0JDQUFOZ0lRSUFBZ0JEWUNHQXNnQWlnQ0ZDSUFSUTBBSUFRZ0FEWUNGQ0FBSUFRMkFoZ0xBa0FnQTBFUFRRUkFJQUlnQXlBRmFpSUFRUU55TmdJRUlBQWdBbW9pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQUlnQlVFRGNqWUNCQ0FDSUFWcUlnUWdBMEVCY2pZQ0JDQURJQVJxSUFNMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFCQm5COG9BZ0FoQVFKL1FRRWdCMEVEZG5RaUJTQUdjVVVFUUVHSUh5QUZJQVp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hCaUFBSUFFMkFnZ2dCaUFCTmdJTUlBRWdBRFlDRENBQklBWTJBZ2dMUVp3ZklBUTJBZ0JCa0I4Z0F6WUNBQXNnQWtFSWFpRUFDeUFLUVJCcUpBQWdBQXZTQ3dFSGZ3SkFJQUJGRFFBZ0FFRUlheUlDSUFCQkJHc29BZ0FpQVVGNGNTSUFhaUVGQWtBZ0FVRUJjUTBBSUFGQkEzRkZEUUVnQWlBQ0tBSUFJZ0ZySWdKQm1COG9BZ0JKRFFFZ0FDQUJhaUVBQWtBQ1FFR2NIeWdDQUNBQ1J3UkFJQUZCL3dGTkJFQWdBVUVEZGlFRUlBSW9BZ3dpQVNBQ0tBSUlJZ05HQkVCQmlCOUJpQjhvQWdCQmZpQUVkM0UyQWdBTUJRc2dBeUFCTmdJTUlBRWdBellDQ0F3RUN5QUNLQUlZSVFZZ0FpQUNLQUlNSWdGSEJFQWdBaWdDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFKQkZHb2lCQ2dDQUNJRFJRUkFJQUlvQWhBaUEwVU5BaUFDUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRktBSUVJZ0ZCQTNGQkEwY05Ba0dRSHlBQU5nSUFJQVVnQVVGK2NUWUNCQ0FDSUFCQkFYSTJBZ1FnQlNBQU5nSUFEd3RCQUNFQkN5QUdSUTBBQWtBZ0FpZ0NIQ0lEUVFKMFFiZ2hhaUlFS0FJQUlBSkdCRUFnQkNBQk5nSUFJQUVOQVVHTUgwR01IeWdDQUVGK0lBTjNjVFlDQUF3Q0N5QUdRUkJCRkNBR0tBSVFJQUpHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQVkyQWhnZ0FpZ0NFQ0lEQkVBZ0FTQUROZ0lRSUFNZ0FUWUNHQXNnQWlnQ0ZDSURSUTBBSUFFZ0F6WUNGQ0FESUFFMkFoZ0xJQUlnQlU4TkFDQUZLQUlFSWdGQkFYRkZEUUFDUUFKQUFrQUNRQ0FCUVFKeFJRUkFRYUFmS0FJQUlBVkdCRUJCb0I4Z0FqWUNBRUdVSDBHVUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FDUVp3ZktBSUFSdzBHUVpBZlFRQTJBZ0JCbkI5QkFEWUNBQThMUVp3ZktBSUFJQVZHQkVCQm5COGdBallDQUVHUUgwR1FIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQUlBSnFJQUEyQWdBUEN5QUJRWGh4SUFCcUlRQWdBVUgvQVUwRVFDQUJRUU4ySVFRZ0JTZ0NEQ0lCSUFVb0FnZ2lBMFlFUUVHSUgwR0lIeWdDQUVGK0lBUjNjVFlDQUF3RkN5QURJQUUyQWd3Z0FTQUROZ0lJREFRTElBVW9BaGdoQmlBRklBVW9BZ3dpQVVjRVFFR1lIeWdDQUJvZ0JTZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQVZCRkdvaUJDZ0NBQ0lEUlFSQUlBVW9BaEFpQTBVTkFpQUZRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGSUFGQmZuRTJBZ1FnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUF3REMwRUFJUUVMSUFaRkRRQUNRQ0FGS0FJY0lnTkJBblJCdUNGcUlnUW9BZ0FnQlVZRVFDQUVJQUUyQWdBZ0FRMEJRWXdmUVl3ZktBSUFRWDRnQTNkeE5nSUFEQUlMSUFaQkVFRVVJQVlvQWhBZ0JVWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0JqWUNHQ0FGS0FJUUlnTUVRQ0FCSUFNMkFoQWdBeUFCTmdJWUN5QUZLQUlVSWdORkRRQWdBU0FETmdJVUlBTWdBVFlDR0FzZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FDQUNRWndmS0FJQVJ3MEFRWkFmSUFBMkFnQVBDeUFBUWY4QlRRUkFJQUJCZUhGQnNCOXFJUUVDZjBHSUh5Z0NBQ0lEUVFFZ0FFRURkblFpQUhGRkJFQkJpQjhnQUNBRGNqWUNBQ0FCREFFTElBRW9BZ2dMSVFBZ0FTQUNOZ0lJSUFBZ0FqWUNEQ0FDSUFFMkFnd2dBaUFBTmdJSUR3dEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBSWdBellDSENBQ1FnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQUNRRUdNSHlnQ0FDSUVRUUVnQTNRaUIzRkZCRUJCakI4Z0JDQUhjallDQUNBQklBSTJBZ0FnQWlBQk5nSVlEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQVFOQUlBRWlCQ2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBU0FEUVFGMElRTWdCQ0FCUVFSeGFpSUhRUkJxS0FJQUlnRU5BQXNnQnlBQ05nSVFJQUlnQkRZQ0dBc2dBaUFDTmdJTUlBSWdBallDQ0F3QkN5QUVLQUlJSWdBZ0FqWUNEQ0FFSUFJMkFnZ2dBa0VBTmdJWUlBSWdCRFlDRENBQ0lBQTJBZ2dMUWFnZlFhZ2ZLQUlBUVFGcklnQkJmeUFBR3pZQ0FBc0xCQUFqQUFzR0FDQUFKQUFMRUFBakFDQUFhMEZ3Y1NJQUpBQWdBQXRLQVFGL0lBQWdBVWtFUUNBQUlBRWdBaEFDRHdzZ0FnUkFJQUFnQW1vaEF5QUJJQUpxSVFFRFFDQURRUUZySWdNZ0FVRUJheUlCTFFBQU9nQUFJQUpCQVdzaUFnMEFDd3NnQUF2OURnSVJmd0YrSXdCQk1Hc2lCeVFBUWJoL0lRZ0NRQ0FGUlEwQUlBUXNBQUFpQ1VIL0FYRWhDd0pBSUFsQkFFZ0VRQ0FMUWY0QWEwRUJkaUlHSUFWUERRSkJiQ0VJSUF0Qi93QnJJZ3RCL3dGTERRSWdCRUVCYWlFSVFRQWhCUU5BSUFVZ0MwOEVRQ0FMSVFnZ0JpRUxEQU1GSUFBZ0JXb2dDQ0FGUVFGMmFpSUVMUUFBUVFSMk9nQUFJQUFnQlVFQmNtb2dCQzBBQUVFUGNUb0FBQ0FGUVFKcUlRVU1BUXNBQ3dBTElBVWdDMDBOQVNBSFFmOEJOZ0lFSUFZZ0IwRUVhaUFIUVFocUlBUkJBV29pRGlBTEVBd2lCRUdJZjBzRVFDQUVJUWdNQWd0QlZDRUlJQWNvQWdnaUVFRUdTdzBCSUFjb0FnUWlFVUVCZENJSlFRSnFyVUlCSUJDdGhpSVlRUUVnRUhRaURVRUJhaUlGclVJQ2hueDhRZ3Q4UXZ6Ly8vLy8vLy8vL3dDRFF1UUNWZzBCUVZJaENDQVJRZjhCU3cwQklBMUJmM05CQW5SQjVBSnFyU0FSUVFGcUloVkJBWFN0SUJoOFFnaDhWQTBCSUFzZ0JHc2hGaUFFSUE1cUlSY2dCa0dBQkdvaUVpQUZRUUowYWlJUklBbHFRUUpxSVE0Z0JrR0VCR29oRTBHQWdBSWdFSFJCRUhZaENVRUFJUVZCQVNFUElBMUJBV3NpRkNFS0EwQWdCU0FWUmtVRVFBSkFJQVlnQlVFQmRDSUlhaThCQUNJRVFmLy9BMFlFUUNBVElBcEJBblJxSUFVNkFBSWdDa0VCYXlFS1FRRWhCQXdCQ3lBUFFRQWdDU0FFd1VvYklROExJQWdnRVdvZ0JEc0JBQ0FGUVFGcUlRVU1BUXNMSUFZZ0R6c0JnZ1FnQmlBUU93R0FCQUpBSUFvZ0ZFWUVRQ0FOUVFOMklRaENBQ0VZUVFBaER3TkFJQXdnRlVZRVFDQUlJQTFCQVhacVFRTnFJZ2xCQVhRaENFRUFJUVJCQUNFS0EwQkJBQ0VGSUFvZ0RVOE5CQU5BSUFWQkFrWkZCRUFnRXlBRklBbHNJQVJxSUJSeFFRSjBhaUFPSUFVZ0NtcHFMUUFBT2dBQ0lBVkJBV29oQlF3QkN3c2dDa0VDYWlFS0lBUWdDR29nRkhFaEJBd0FDd0FGSUFZZ0RFRUJkR291QVFBaENTQU9JQTlxSWdRZ0dEY0FBRUVJSVFVRFFDQUZJQWxPUlFSQUlBUWdCV29nR0RjQUFDQUZRUWhxSVFVTUFRc0xJQmhDZ1lLRWlKQ2d3SUFCZkNFWUlBeEJBV29oRENBSklBOXFJUThNQVFzQUN3QUxJQTFCQTNZZ0RVRUJkbXBCQTJvaENFRUFJUVVEUUNBTUlCVkdSUVJBUVFBaENTQUdJQXhCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQUpSa1VFUUNBVElBVkJBblJxSUF3NkFBSURRQ0FGSUFocUlCUnhJZ1VnQ2tzTkFBc2dDVUVCYWlFSkRBRUxDeUFNUVFGcUlRd01BUXNMUVg4aENDQUZEUUlMSUJCQkFXb2hDRUVBSVFVRFFDQUZJQTFHUlFSQUlCRWdFeUFGUVFKMGFpSU9MUUFDUVFGMGFpSUVJQVF2QVFBaUNVRUJhanNCQUNBT0lBZ2dDV2RCWUhOcUlnUTZBQU1nRGlBSklBUjBJQTFyT3dFQUlBVkJBV29oQlF3QkN3c0NRQUpBSUFZdkFZSUVCRUFnQjBFY2FpSUVJQmNnRmhBTklnaEJpSDlMRFFJZ0IwRVVhaUFFSUJJUURpQUhRUXhxSUFRZ0VoQU9RUUFoQlFOQUlBZEJIR29pQkJBUElBVkIrd0ZMY2cwQ0lBQWdCV29pQmlBSFFSUnFJQVFRRURvQUFDQUdJQWRCREdvZ0JCQVFPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVTUF3VWdBQ0FFYWlBSFFSUnFJQWRCSEdvaUJCQVFPZ0FBSUFZZ0IwRU1haUFFRUJBNkFBTWdCVUVFYWlFRkRBRUxBQXNBQ3lBSFFSeHFJZ1FnRnlBV0VBMGlDRUdJZjBzTkFTQUhRUlJxSUFRZ0VoQU9JQWRCREdvZ0JDQVNFQTVCQUNFRkEwQWdCMEVjYWlJRUVBOGdCVUg3QVV0eVJRUkFJQUFnQldvaUJpQUhRUlJxSUFRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVUZJQUFnQkdvZ0IwRVVhaUFIUVJ4cUlnUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQURJQVZCQkdvaEJRd0NDd3NMQW44RFFFRzZmeUVJSUFWQi9RRkxEUU1nQUNBRmFpSUdJQWRCRkdvZ0IwRWNhaUlKRUJFNkFBQWdCa0VCYWlFRUlBa1FEMEVEUmdSQUlBZEJER29oQ0VFQ0RBSUxJQVZCL0FGTERRTWdCaUFIUVF4cUlBZEJIR29pQkJBUk9nQUJJQVZCQW1vaEJTQUVFQTlCQTBjTkFBc2dBQ0FGYWlFRUlBZEJGR29oQ0VFREN5QUVJQWdnQjBFY2FoQVJPZ0FBSUFacUlBQnJJUWdNQVFzQ2Z3TkFRYnAvSVFnZ0JVSDlBVXNOQWlBQUlBVnFJZ1lnQjBFVWFpQUhRUnhxSWdrUUVEb0FBQ0FHUVFGcUlRUWdDUkFQUVFOR0JFQWdCMEVNYWlFSVFRSU1BZ3NnQlVIOEFVc05BaUFHSUFkQkRHb2dCMEVjYWlJRUVCQTZBQUVnQlVFQ2FpRUZJQVFRRDBFRFJ3MEFDeUFBSUFWcUlRUWdCMEVVYWlFSVFRTUxJQVFnQ0NBSFFSeHFFQkE2QUFBZ0Jtb2dBR3NoQ0FzZ0NFR0lmMHNOQVFzZ0NDRUVRUUFoQlNBQlFRQkJOQkFESVFsQkFDRUtBMEFnQkNBRlJ3UkFJQUFnQldvaUJpMEFBQ0lCUVF0TEJFQkJiQ0VJREFNRklBa2dBVUVDZEdvaUFTQUJLQUlBUVFGcU5nSUFJQVZCQVdvaEJVRUJJQVl0QUFCMFFRRjFJQXBxSVFvTUFnc0FDd3RCYkNFSUlBcEZEUUFnQ21jaUJVRWZjeUlCUVF0TERRQWdBMEVnSUFWck5nSUFRUUZCQWlBQmRDQUtheUlEWjBFZmN5SUJkQ0FEUncwQUlBQWdCR29nQVVFQmFpSUFPZ0FBSUFrZ0FFRUNkR29pQUNBQUtBSUFRUUZxTmdJQUlBa29BZ1FpQUVFQ1NTQUFRUUZ4Y2cwQUlBSWdCRUVCYWpZQ0FDQUxRUUZxSVFnTElBZEJNR29rQUNBSUM2QUZBUXgvSXdCQkVHc2lEQ1FBQW44Z0JFRUhUUVJBSUF4Q0FEY0RDQ0FNUVFocUlnVWdBeUFFRUFJYVFXd2dBQ0FCSUFJZ0JVRUlFQXdpQUNBQUlBUkxHeUFBSUFCQmlYOUpHd3dCQ3lBQVFRQWdBU2dDQUVFQmFpSU5RUUYwRUFNaEQwRlVJQU1vQUFBaUJrRVBjU0lBUVFwTERRQWFJQUlnQUVFRmFqWUNBQ0FESUFScUlnSkJCR3NoQnlBQ1FRZHJJUXNnQUVFR2FpRU9RUVFoQWlBR1FRUjJJUVZCSUNBQWRDSUlRUUZ5SVFsQkFDRUFRUUVoQmlBRElRUURRQUpBSUFaQkFYRkZCRUFEUUNBRlFYOXpRWUNBZ0lCNGNtZ2lCa0VZU1VVRVFDQUFRU1JxSVFBZ0JDQUxUUVIvSUFSQkEyb0ZJQVFnQzJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTElBSWdCa0VlY1NJS2FrRUNhaUVDSUFaQkFYWkJBMndnQUdvZ0JTQUtka0VEY1dvaUFDQU5UdzBCQW44Z0JDQUxTeUFDUVFOMklBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFRZ0IydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTElBVWdDRUVCYTNFaUJpQUlRUUYwUVFGcklnb2dDV3NpRUVrRWZ5QU9RUUZyQlNBRklBcHhJZ1VnRUVFQUlBVWdDRTRiYXlFR0lBNExJUVVnRHlBQVFRRjBhaUFHUVFGcklnbzdBUUFnQUVFQmFpRUFJQUlnQldvaEFpQUlRUUVnQm1zZ0NpQUdRUUJLR3lBSmFpSUpTZ1JBSUFsQkFrZ05BVUVnSUFsbklnVnJJUTVCQVNBRlFSOXpkQ0VJQ3lBQUlBMVBEUUFnQ2tFQVJ5RUdBbjhnQkNBTFN5QUNRUU4xSUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQUlnQkNBSGEwRURkR3BCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTFFXd2dDVUVCUncwQUdrRlFJQUFnRFVzTkFCcEJiQ0FDUVNCS0RRQWFJQUVnQUVFQmF6WUNBQ0FFSUFKQkIycEJBM1ZxSUFOckN5QU1RUkJxSkFBTDhnRUJBWDhnQWtVRVFDQUFRZ0EzQWdBZ0FFRUFOZ0lRSUFCQ0FEY0NDRUc0Znc4TElBQWdBVFlDRENBQUlBRkJCR28yQWhBZ0FrRUVUd1JBSUFBZ0FTQUNhaUlCUVFScklnTTJBZ2dnQUNBREtBQUFOZ0lBSUFGQkFXc3RBQUFpQVFSQUlBQWdBV2RCRjJzMkFnUWdBZzhMSUFCQkFEWUNCRUYvRHdzZ0FDQUJOZ0lJSUFBZ0FTMEFBQ0lETmdJQUFrQUNRQUpBSUFKQkFtc09BZ0VBQWdzZ0FDQUJMUUFDUVJCMElBTnlJZ00yQWdBTElBQWdBUzBBQVVFSWRDQURhallDQUFzZ0FTQUNha0VCYXkwQUFDSUJSUVJBSUFCQkFEWUNCRUZzRHdzZ0FDQUJaeUFDUVFOMGEwRUphallDQkNBQ0MwUUJBbjhnQVNBQ0x3RUFJZ01nQVNnQ0JHb2lCRFlDQkNBQUlBTkJBblJCb0IxcUtBSUFJQUVvQWdCQkFDQUVhM1p4TmdJQUlBRVFEeG9nQUNBQ1FRUnFOZ0lFQzU4QkFRUi9RUU1oQVNBQUtBSUVJZ0pCSUUwRVFDQUFLQUlJSWdFZ0FDZ0NFRThFUUNBQUlBSkJCM0UyQWdRZ0FDQUJJQUpCQTNacklnSTJBZ2dnQUNBQ0tBQUFOZ0lBUVFBUEN5QUFLQUlNSWdNZ0FVWUVRRUVCUVFJZ0FrRWdTUnNQQ3lBQUlBRWdBU0FEYXlBQ1FRTjJJZ1FnQVNBRWF5QURTU0lCR3lJRGF5SUVOZ0lJSUFBZ0FpQURRUU4wYXpZQ0JDQUFJQVFvQUFBMkFnQUxJQUVMU0FFRWZ5QUFLQUlFSUFBb0FnQkJBblJxSWdJdEFBSWdBaThCQUNFRUlBRWdBU2dDQkNJRklBSXRBQU1pQW1vMkFnUWdBQ0FFSUFFb0FnQWdCWFJCQUNBQ2EzWnFOZ0lBQzFJQkJIOGdBQ2dDQkNBQUtBSUFRUUowYWlJQ0xRQUNJQUl2QVFBaEJDQUJJQUl0QUFNaUFpQUJLQUlFYWlJRk5nSUVJQUFnQkNBQ1FRSjBRYUFkYWlnQ0FDQUJLQUlBUVFBZ0JXdDJjV28yQWdBTENBQWdBRUdJZjBzTEdnQWdBQVJBSUFFRVFDQUNJQUFnQVJFQ0FBOExJQUFRQmdzTHBnZ0NEWDhCZmlNQVFSQnJJZ2trQUNBSlFRQTJBZ3dnQ1VFQU5nSUlBbjhDUUNBRFFlZ0phaUFESUFsQkNHb2dDVUVNYWlBQklBSWdBMEdBQVdvUUN5SVBRWWgvU3cwQVFWUWdDU2dDRENJRUlBQW9BZ0FpQVVIL0FYRkJBV3BMRFFFYUlBQkJCR29oQ3lBQUlBRkIvNEdBZUhFZ0JFRVFkRUdBZ1B3SGNYSTJBZ0JCZnlBRUlBUkJBRWdiUVFGcUlRQkJBQ0VCSUFrb0FnZ2hCVUVBSVFJRFFDQUFJQUpHQkVBZ0JVRURheUVCUVFBaEFBTkFBa0JCQUNFQ0lBQWdBVTRFUUFOQUlBQWdCVTROQWlBRElBQWdBMnBCNkFscUxRQUFRUUowYWtGQWF5SUJJQUVvQWdBaUFVRUJhallDQUNBQklBTnFJQUE2QU9nSElBQkJBV29oQUF3QUN3QUZBMEFnQWtFRVJrVUVRQ0FESUFNZ0FDQUNhaUlIYWtIb0NXb3RBQUJCQW5ScVFVQnJJZ2dnQ0NnQ0FDSUlRUUZxTmdJQUlBTWdDR29nQnpvQTZBY2dBa0VCYWlFQ0RBRUxDeUFBUVFScUlRQU1BZ3NBQ3dzZ0JFRUJhaUVPSUFNb0FnQWhCMEVBSVFCQkFTRUlBMEFnQ0NBT1JnMERJQTRnQ0dzaEJDQURJQWhCQW5ScUtBSUFJUVVDUUFKQUFrQUNRQUpBQWtCQkFTQUlkRUVCZFNJTlFRRnJEZ2dBQVFRQ0JBUUVBd1FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFBSVFFRFFDQUNJQVpHRFFVZ0F5QUNJQWRxYWkwQTZBY2hDaUFMSUFGQkFYUnFJZ3dnQkRvQUFTQU1JQW82QUFBZ0FrRUJhaUVDSUFGQkFXb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQ2lBQUlRRURRQ0FDSUFwR0RRUWdDeUFCUVFGMGFpSUdJQU1nQWlBSGFtb3RBT2dISWd3NkFBSWdCaUFFT2dBQklBWWdERG9BQUNBR0lBUTZBQU1nQWtFQmFpRUNJQUZCQW1vaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFFUVFoMFFZRCtBM0VoQkNBQUlRRURRQ0FDSUFaR0RRTWdDeUFCUVFGMGFpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK053QUFJQUpCQVdvaEFpQUJRUVJxSVFFTUFBc0FDMEVBSVFJZ0JVRUFJQVZCQUVvYklRWWdCRUVJZEVHQS9nTnhJUVFnQUNFQkEwQWdBaUFHUmcwQ0lBc2dBVUVCZEdvaUNpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0loRTNBQWdnQ2lBUk53QUFJQUpCQVdvaEFpQUJRUWhxSVFFTUFBc0FDMEVBSVFFZ0JVRUFJQVZCQUVvYklRb2dCRUVJZEVHQS9nTnhJUXdnQUNFRUEwQWdBU0FLUmcwQklBc2dCRUVCZEdvaEVDQU1JQU1nQVNBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0lSRkJBQ0VDQTBBZ0FpQU5Ua1VFUUNBUUlBSkJBWFJxSWdZZ0VUY0FHQ0FHSUJFM0FCQWdCaUFSTndBSUlBWWdFVGNBQUNBQ1FSQnFJUUlNQVFzTElBRkJBV29oQVNBRUlBMXFJUVFNQUFzQUN5QUlRUUZxSVFnZ0JTQUhhaUVISUFVZ0RXd2dBR29oQUF3QUN3QUZJQU1nQWtFQ2RHb2lCMEZBYXlBQk5nSUFJQUpCQVdvaEFpQUhLQUlBSUFGcUlRRU1BUXNBQ3dBTElBOExJQWxCRUdva0FBdnlBZ0VHZnlNQVFTQnJJZ1VrQUNBRUtBSUFJUVlnQlVFTWFpQUNJQU1RRFNJRFFZaC9UUVJBSUFSQkJHb2hBaUFBSUFGcUlnbEJBMnNoQkVFQUlBWkJFSFpyUVI5eElRTURRQ0FGUVF4cUVBOGdBQ0FFVDNKRkJFQWdBaUFGS0FJTUlnWWdCU2dDRUNJSGRDQURka0VCZEdvaUNDMEFBU0VLSUFBZ0NDMEFBRG9BQUNBQ0lBWWdCeUFLYWlJR2RDQURka0VCZEdvaUJ5MEFBQ0VJSUFVZ0JpQUhMUUFCYWpZQ0VDQUFJQWc2QUFFZ0FFRUNhaUVBREFFTEN3TkFJQVZCREdvUUR5RUhJQVVvQWd3aEJpQUZLQUlRSVFRZ0FDQUpUeUFIY2tVRVFDQUNJQVlnQkhRZ0EzWkJBWFJxSWdZdEFBQWhCeUFGSUFRZ0JpMEFBV28yQWhBZ0FDQUhPZ0FBSUFCQkFXb2hBQXdCQ3dzRFFDQUFJQWxQUlFSQUlBSWdCaUFFZENBRGRrRUJkR29pQnkwQUFTRUlJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdCQ0FJYWlFRURBRUxDMEZzUVd3Z0FTQUZLQUlVSUFVb0FoaEhHeUFFUVNCSEd5RURDeUFGUVNCcUpBQWdBd3ZQRkFFamZ5TUFRZEFBYXlJRkpBQkJiQ0VKQWtBZ0EwRUtTUTBBQWtBZ0F5QUNMd0FFSWdjZ0FpOEFBQ0lJSUFJdkFBSWlEV3BxUVFacUlneEpEUUFnQkM4QkFpRUdJQVZCUEdvZ0FrRUdhaUlDSUFnUURTSUpRWWgvU3cwQklBVkJLR29nQWlBSWFpSUNJQTBRRFNJSlFZaC9TdzBCSUFWQkZHb2dBaUFOYWlJQ0lBY1FEU0lKUVloL1N3MEJJQVVnQWlBSGFpQURJQXhyRUEwaUNVR0lmMHNOQVNBRVFRUnFJUW9nQUNBQmFpSWZRUU5ySVNCQkFDQUdhMEVmY1NFTElBVW9BZ2doRVNBRktBSWNJUklnQlNnQ01DRVRJQVVvQWtRaEZDQUZLQUlFSVFrZ0JTZ0NHQ0VOSUFVb0Fpd2hEQ0FGS0FKQUlRWWdCU2dDRUNFaElBVW9BaVFoSWlBRktBSTRJU01nQlNnQ1RDRWtJQVVvQWdBaEZTQUZLQUlVSVJZZ0JTZ0NLQ0VYSUFVb0Fqd2hHRUVCSVE4Z0FDQUJRUU5xUVFKMklnUnFJZ01nQkdvaUFpQUVhaUlaSVFRZ0FpRUlJQU1oQndOQUlBOUJBWEZGSUFRZ0lFOXlSUVJBSUFBZ0NpQVlJQVowSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEdpQU9MUUFESVJBZ0J5QUtJQmNnREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnRGkwQUFpRWJJQTR0QUFNaER5QUlJQW9nRmlBTmRDQUxka0VDZEdvaURpOEJBRHNBQUNBT0xRQUNJUndnRGkwQUF5RWRJQVFnQ2lBVklBbDBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloSGlBT0xRQURJUTRnQUNBUWFpSWxJQW9nR0NBR0lCcHFJZ1owSUF0MlFRSjBhaUlRTHdFQU93QUFJQkF0QUFJZ0VDMEFBeUVtSUFjZ0Qyb2lKeUFLSUJjZ0RDQWJhaUlhZENBTGRrRUNkR29pQnk4QkFEc0FBQ0FITFFBQ0lRd2dCeTBBQXlFUUlBZ2dIV29pR3lBS0lCWWdEU0FjYWlJUGRDQUxka0VDZEdvaUNDOEJBRHNBQUNBSUxRQUNJUTBnQ0MwQUF5RWNJQVFnRG1vaUhTQUtJQlVnQ1NBZWFpSU9kQ0FMZGtFQ2RHb2lDUzhCQURzQUFDQUdhaUVBUVFNaEJ3Si9JQlFnSkVrRVFDQUFJUVpCQXd3QkN5QUFRUWR4SVFZZ0ZDQUFRUU4yYXlJVUtBQUFJUmhCQUFzZ0NTMEFBeUVlSUFrdEFBSWhDQ0FNSUJwcUlRQWdFeUFqU1FSL0lBQUZJQk1nQUVFRGRtc2lFeWdBQUNFWFFRQWhCeUFBUVFkeEN5RU1JQTBnRDJvaEFDQUhjaUVKUVFNaER3Si9JQklnSWtrRVFDQUFJUTFCQXd3QkN5QUFRUWR4SVEwZ0VpQUFRUU4yYXlJU0tBQUFJUlpCQUFzZ0NDQU9haUVBSUFseUlCRWdJVWtFZnlBQUJTQVJJQUJCQTNackloRW9BQUFoRlVFQUlROGdBRUVIY1FzaENTQWxJQ1pxSVFBZ0VDQW5haUVISUJzZ0hHb2hDQ0FkSUI1cUlRUWdEM0pGSVE4TUFRc0xJQVVnRERZQ0xDQUZJQVkyQWtBZ0JTQU5OZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFJZ0Iwa2dBQ0FEUzNJTkFFRnNJUWtnQ0NBWlN3MEJJQU5CQTJzaENRTkFJQVZCUEdvUUQwVWdBQ0FKU1hFRVFDQUFJQW9nQlNnQ1BDSU5JQVVvQWtBaURIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0FDQU9MUUFEYWlJR0lBb2dEU0FNSUE0dEFBSnFJZ0IwSUF0MlFRSjBhaUlNTHdFQU93QUFJQVVnQUNBTUxRQUNhallDUUNBR0lBd3RBQU5xSVFBTUFRVWdBMEVDYXlFTUEwQWdCVUU4YWhBUElRWWdCU2dDUENFTklBVW9Ba0FoQ1NBQUlBeExJQVp5UlFSQUlBQWdDaUFOSUFsMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0NTQUdMUUFDYWpZQ1FDQUFJQVl0QUFOcUlRQU1BUXNMQTBBZ0FDQU1TMFVFUUNBQUlBb2dEU0FKZENBTGRrRUNkR29pQmk4QkFEc0FBQ0FBSUFZdEFBTnFJUUFnQ1NBR0xRQUNhaUVKREFFTEN3SkFJQUFnQTA4TkFDQUFJQW9nRFNBSmRDQUxkaUlBUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUpJQU10QUFKcUlRa01BUXNnQ1VFZlN3MEFRU0FnQ1NBS0lBQkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRa0xJQUpCQTJzaERBTkFJQVZCS0dvUUQwVWdCeUFNU1hFRVFDQUhJQW9nQlNnQ0tDSUdJQVVvQWl3aUFIUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0J5QU5MUUFEYWlJRElBb2dCaUFBSUEwdEFBSnFJZ0IwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQUNBR0xRQUNhallDTENBRElBWXRBQU5xSVFjTUFRVWdBa0VDYXlFR0EwQWdCVUVvYWhBUElRTWdCU2dDS0NFTUlBVW9BaXdoQUNBR0lBZEpJQU55UlFSQUlBY2dDaUFNSUFCMElBdDJRUUowYWlJREx3RUFPd0FBSUFVZ0FDQURMUUFDYWpZQ0xDQUhJQU10QUFOcUlRY01BUXNMQTBBZ0JpQUhTVVVFUUNBSElBb2dEQ0FBZENBTGRrRUNkR29pQXk4QkFEc0FBQ0FISUFNdEFBTnFJUWNnQUNBRExRQUNhaUVBREFFTEN3SkFJQUlnQjAwTkFDQUhJQW9nRENBQWRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUFJQU10QUFKcUlRQU1BUXNnQUVFZlN3MEFRU0FnQUNBS0lBSkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRQUxJQmxCQTJzaERBTkFJQVZCRkdvUUQwVWdDQ0FNU1hFRVFDQUlJQW9nQlNnQ0ZDSUdJQVVvQWhnaUFuUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0NDQU5MUUFEYWlJRElBb2dCaUFDSUEwdEFBSnFJZ0owSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQWlBR0xRQUNhallDR0NBRElBWXRBQU5xSVFnTUFRVWdHVUVDYXlFREEwQWdCVUVVYWhBUElRSWdCU2dDRkNFR0lBVW9BaGdoQnlBRElBaEpJQUp5UlFSQUlBZ2dDaUFHSUFkMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFVZ0J5QUNMUUFDYWpZQ0dDQUlJQUl0QUFOcUlRZ01BUXNMQTBBZ0F5QUlTVVVFUUNBSUlBb2dCaUFIZENBTGRrRUNkR29pQWk4QkFEc0FBQ0FJSUFJdEFBTnFJUWdnQnlBQ0xRQUNhaUVIREFFTEN3SkFJQWdnR1U4TkFDQUlJQW9nQmlBSGRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUhJQU10QUFKcUlRY01BUXNnQjBFZlN3MEFRU0FnQnlBS0lBSkJBblJxTFFBQ2FpSUNJQUpCSUU4YklRY0xBMEFnQlJBUFJTQUVJQ0JKY1FSQUlBUWdDaUFGS0FJQUlnWWdCU2dDQkNJQ2RDQUxka0VDZEdvaURDOEJBRHNBQUNBRUlBd3RBQU5xSWdNZ0NpQUdJQUlnREMwQUFtb2lBblFnQzNaQkFuUnFJZ1F2QVFBN0FBQWdCU0FDSUFRdEFBSnFOZ0lFSUFNZ0JDMEFBMm9oQkF3QkJTQWZRUUpySVFNRFFDQUZFQThoQWlBRktBSUFJUVlnQlNnQ0JDRUlJQU1nQkVrZ0FuSkZCRUFnQkNBS0lBWWdDSFFnQzNaQkFuUnFJZ0l2QVFBN0FBQWdCU0FJSUFJdEFBSnFOZ0lFSUFRZ0FpMEFBMm9oQkF3QkN3c0RRQ0FESUFSSlJRUkFJQVFnQ2lBR0lBaDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBUWdBaTBBQTJvaEJDQUlJQUl0QUFKcUlRZ01BUXNMQWtBZ0JDQWZUdzBBSUFRZ0NpQUdJQWgwSUF0MklnSkJBblJxSWdNdEFBQTZBQUFnQXkwQUEwRUJSZ1JBSUFnZ0F5MEFBbW9oQ0F3QkN5QUlRUjlMRFFCQklDQUlJQW9nQWtFQ2RHb3RBQUpxSWdJZ0FrRWdUeHNoQ0F0QmJFRnNRV3hCYkVGc1FXeEJiRUZzSUFFZ0NFRWdSeHNnQlNnQ0NDQUZLQUlNUnhzZ0IwRWdSeHNnQlNnQ0hDQUZLQUlnUnhzZ0FFRWdSeHNnQlNnQ01DQUZLQUkwUnhzZ0NVRWdSeHNnQlNnQ1JDQUZLQUpJUnhzaENRd0pDd0FMQUFzQUN3QUxBQXNBQ3dBTEFBdEJiQ0VKQ3lBRlFkQUFhaVFBSUFrTDdCQUJIbjhqQUVIUUFHc2lCU1FBUVd3aENRSkFJQU5CQ2trTkFBSkFJQU1nQWk4QUJDSUdJQUl2QUFBaUJ5QUNMd0FDSWdocWFrRUdhaUlPU1EwQUlBUXZBUUloRHlBRlFUeHFJQUpCQm1vaUFpQUhFQTBpQ1VHSWYwc05BU0FGUVNocUlBSWdCMm9pQWlBSUVBMGlDVUdJZjBzTkFTQUZRUlJxSUFJZ0NHb2lBaUFHRUEwaUNVR0lmMHNOQVNBRklBSWdCbW9nQXlBT2F4QU5JZ2xCaUg5TERRRWdCRUVFYWlFS0lBQWdBV29pSEVFRGF5RWRRUUFnRDJ0QkgzRWhDeUFGS0FJSUlSRWdCU2dDSENFU0lBVW9BakFoRXlBRktBSkVJUlFnQlNnQ0JDRUpJQVVvQWhnaEJpQUZLQUlzSVFjZ0JTZ0NRQ0VJSUFVb0FoQWhIaUFGS0FJa0lSOGdCU2dDT0NFZ0lBVW9Ba3doSVNBRktBSUFJUlVnQlNnQ0ZDRVdJQVVvQWlnaEZ5QUZLQUk4SVJoQkFTRU5JQUFnQVVFRGFrRUNkaUlDYWlJT0lBSnFJZzhnQW1vaUdTRUVJQThoQWlBT0lRTURRQ0FOUlNBRUlCMVBja1VFUUNBS0lCZ2dDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBQWdDaUFYSUFkMElBdDJRUUYwYWlJTUxRQUJJUkFnQXlBTUxRQUFPZ0FBSUFvZ0ZpQUdkQ0FMZGtFQmRHb2lEQzBBQVNFYUlBSWdEQzBBQURvQUFDQUtJQlVnQ1hRZ0MzWkJBWFJxSWd3dEFBRWhHeUFFSUF3dEFBQTZBQUFnQ2lBWUlBZ2dEV29pQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUVnQ2lBWElBY2dFR29pQjNRZ0MzWkJBWFJxSWd3dEFBRWhFQ0FESUF3dEFBQTZBQUVnQ2lBV0lBWWdHbW9pREhRZ0MzWkJBWFJxSWdZdEFBRWhHaUFDSUFZdEFBQTZBQUVnQ2lBVklBa2dHMm9pRzNRZ0MzWkJBWFJxSWdrdEFBRWhJaUFFSUFrdEFBQTZBQUVnQ0NBTmFpRUdRUU1oQ1FKL0lCUWdJVWtFUUVFRElRMGdCZ3dCQ3lBVUlBWkJBM1pySWhRb0FBQWhHRUVBSVEwZ0JrRUhjUXNoQ0NBSElCQnFJUVlnRXlBZ1NRUi9JQVlGSUJNZ0JrRURkbXNpRXlnQUFDRVhRUUFoQ1NBR1FRZHhDeUVISUF3Z0dtb2hEQ0FKSUExeUlSQkJBeUVOQW44Z0VpQWZTUVJBSUF3aEJrRUREQUVMSUF4QkIzRWhCaUFTSUF4QkEzWnJJaElvQUFBaEZrRUFDeUFiSUNKcUlRd2dFSEloRUNBUklCNUpCSDhnREFVZ0VTQU1RUU4yYXlJUktBQUFJUlZCQUNFTklBeEJCM0VMSVFrZ0JFRUNhaUVFSUFKQkFtb2hBaUFEUVFKcUlRTWdBRUVDYWlFQUlBMGdFSEpGSVEwTUFRc0xJQVVnQnpZQ0xDQUZJQWcyQWtBZ0JTQUdOZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFBZ0Rrc2dBeUFQUzNJTkFFRnNJUWtnQWlBWlN3MEJJQTVCQTJzaENRTkFJQVZCUEdvUUR5QUFJQWxQY2tVRVFDQUtJQVVvQWp3aUJpQUZLQUpBSWdkMElBdDJRUUYwYWlJSUxRQUJJUXdnQUNBSUxRQUFPZ0FBSUFvZ0JpQUhJQXhxSWdaMElBdDJRUUYwYWlJSExRQUFJUWdnQlNBR0lBY3RBQUZxTmdKQUlBQWdDRG9BQVNBQVFRSnFJUUFNQVFzTEEwQWdCVUU4YWhBUElRY2dCU2dDUENFR0lBVW9Ba0FoQ1NBQUlBNVBJQWR5UlFSQUlBb2dCaUFKZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQ1NBR0xRQUJhallDUUNBQUlBYzZBQUFnQUVFQmFpRUFEQUVMQ3dOQUlBQWdEazlGQkVBZ0NpQUdJQWwwSUF0MlFRRjBhaUlITFFBQklBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0NXb2hDUXdCQ3dzZ0QwRURheUVBQTBBZ0JVRW9haEFQSUFBZ0EwMXlSUVJBSUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQURJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaXdnQXlBSU9nQUJJQU5CQW1vaEF3d0JDd3NEUUNBRlFTaHFFQThoQnlBRktBSW9JUVlnQlNnQ0xDRUFJQU1nRDA4Z0IzSkZCRUFnQ2lBR0lBQjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQUFJQVl0QUFGcU5nSXNJQU1nQnpvQUFDQURRUUZxSVFNTUFRc0xBMEFnQXlBUFQwVUVRQ0FLSUFZZ0FIUWdDM1pCQVhScUlnY3RBQUVoQ0NBRElBY3RBQUE2QUFBZ0EwRUJhaUVESUFBZ0NHb2hBQXdCQ3dzZ0dVRURheUVEQTBBZ0JVRVVhaEFQSUFJZ0EwOXlSUVJBSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQUNJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaGdnQWlBSU9nQUJJQUpCQW1vaEFnd0JDd3NEUUNBRlFSUnFFQThoQnlBRktBSVVJUVlnQlNnQ0dDRURJQUlnR1U4Z0IzSkZCRUFnQ2lBR0lBTjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQURJQVl0QUFGcU5nSVlJQUlnQnpvQUFDQUNRUUZxSVFJTUFRc0xBMEFnQWlBWlQwVUVRQ0FLSUFZZ0EzUWdDM1pCQVhScUlnY3RBQUVoQ0NBQ0lBY3RBQUE2QUFBZ0FrRUJhaUVDSUFNZ0NHb2hBd3dCQ3dzRFFDQUZFQThnQkNBZFQzSkZCRUFnQ2lBRktBSUFJZ0lnQlNnQ0JDSUdkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUtJQUlnQmlBSWFpSUNkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdBaUFHTFFBQmFqWUNCQ0FFSUFjNkFBRWdCRUVDYWlFRURBRUxDd05BSUFVUUR5RUhJQVVvQWdBaEJpQUZLQUlFSVFJZ0JDQWNUeUFIY2tVRVFDQUtJQVlnQW5RZ0MzWkJBWFJxSWdZdEFBQWhCeUFGSUFJZ0JpMEFBV28yQWdRZ0JDQUhPZ0FBSUFSQkFXb2hCQXdCQ3dzRFFDQUVJQnhQUlFSQUlBb2dCaUFDZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FFUVFGcUlRUWdBaUFJYWlFQ0RBRUxDMEZzUVd4QmJFRnNRV3hCYkVGc1FXd2dBU0FDUVNCSEd5QUZLQUlJSUFVb0FneEhHeUFEUVNCSEd5QUZLQUljSUFVb0FpQkhHeUFBUVNCSEd5QUZLQUl3SUFVb0FqUkhHeUFKUVNCSEd5QUZLQUpFSUFVb0FraEhHeUVKREFFTFFXd2hDUXNnQlVIUUFHb2tBQ0FKQzFnQkEzOENRQ0FBS0FLUTZ3RWlBVVVOQUNBQktBSUFJQUZCdE5VQmFpZ0NBQ0lDSUFGQnVOVUJhaWdDQUNJREVCTWdBZ1JBSUFNZ0FTQUNFUUlBREFFTElBRVFCZ3NnQUVFQU5nS2c2d0VnQUVJQU53T1E2d0VMNlFNQ0JIOENmaUFBUVFCQktCQURJUVFnQWtFQlFRVWdBeHNpQUVrRVFDQUFEd3NnQVVVRVFFRi9Ed3RCQVNFR0FrQUNRQ0FEUVFGR0RRQWdBeUVHSUFFb0FBQWlCVUdvNnI1cFJnMEFRWFloQXlBRlFYQnhRZERVdE1JQlJ3MEJRUWdoQXlBQ1FRaEpEUUVnQVRVQUJDRUlJQVJCQVRZQ0ZDQUVJQWczQXdCQkFBOExJQUVnQWlBR0VCb2lBeUFDU3cwQUlBUWdBellDR0VGeUlRTWdBQ0FCYWlJRlFRRnJMUUFBSWdKQkNIRU5BQ0FDUVNCeElnWkZCRUJCY0NFRElBVXRBQUFpQlVHbkFVc05BU0FGUVFkeHJVSUJJQVZCQTNaQkNtcXRoaUlJUWdPSWZpQUlmQ0VKSUFCQkFXb2hBQXNnQWtFR2RpRUZJQUpCQW5aQkFDRURBa0FDUUFKQUFrQWdBa0VEY1VFQmF3NERBQUVDQXdzZ0FDQUJhaTBBQUNFRElBQkJBV29oQUF3Q0N5QUFJQUZxTHdBQUlRTWdBRUVDYWlFQURBRUxJQUFnQVdvb0FBQWhBeUFBUVFScUlRQUxRUUZ4SVFJQ2ZnSkFBa0FDUUFKQUlBVkJBV3NPQXdFQ0F3QUxRbjhnQmtVTkF4b2dBQ0FCYWpFQUFBd0RDeUFBSUFGcU13QUFRb0FDZkF3Q0N5QUFJQUZxTlFBQURBRUxJQUFnQVdvcEFBQUxJUWdnQkNBQ05nSWdJQVFnQXpZQ0hDQUVJQWczQXdCQkFDRURJQVJCQURZQ0ZDQUVJQWdnQ1NBR0d5SUlOd01JSUFSQ2dJQUlJQWdnQ0VLQWdBaGFHejRDRUFzZ0F3dGZBUUYvUWJoL0lRTWdBVUVCUVFVZ0Foc2lBazhFZnlBQUlBSnFRUUZyTFFBQUlnQkJBM0ZCQW5SQm9CNXFLQUlBSUFKcUlBQkJCSFpCREhGQnNCNXFLQUlBYWlBQVFTQnhJZ0ZGYWlBQlFRVjJJQUJCd0FCSmNXb0ZRYmgvQ3dzTUFDQUFJQUVnQWtFQUVCa0xsd01DQlg4Q2ZpTUFRVUJxSWdRa0FBSkFBMEFnQVVFRlR3UkFBa0FnQUNnQUFFRndjVUhRMUxUQ0FVWUVRRUorSVFjZ0FVRUlTUTBFSUFBb0FBUWlBa0YzU3cwRUlBSkJDR29pQXlBQlN3MEVJQUpCZ1g5SkRRRU1CQXNnQkVFWWFpQUFJQUVRR3lFQ1FuNGdCQ2tER0VJQUlBUW9BaXhCQVVjYklBSWJJZ2RDZlZZTkF5QUhJQWg4SWdnZ0IxUkNmaUVIRFFNQ1FBSkFJQUZCQ0VrTkFDQUFLQUFBUVhCeFFkRFV0TUlCUncwQUlBQW9BQVFpQWtGM1N3MEZRYmgvSUFKQkNHb2lBaUFCSUFKSkd5RUREQUVMSUFSQkdHb2dBQ0FCRUJzaUFrR0lmMHNFUUNBQ0lRTU1BUXRCdUg4aEF5QUNEUUFnQVNBRUtBSXdJZ0pySVFVZ0FDQUNhaUVHQTBBZ0JpQUZJQVJCREdvUUhTSURRWWgvU3cwQklBTkJBMm9pQWlBRlN3UkFRYmgvSVFNTUFnc2dCU0FDYXlFRklBSWdCbW9oQmlBRUtBSVFSUTBBQ3lBRUtBSTRCSDlCdUg4aEF5QUZRUVJKRFFFZ0JrRUVhZ1VnQmdzZ0FHc2hBd3NnQTBHSWYwc05Bd3NnQVNBRGF5RUJJQUFnQTJvaEFBd0JDd3RDZmlBSUlBRWJJUWNMSUFSQlFHc2tBQ0FIQzJRQkFYOUJ1SDhoQXdKQUlBRkJBMGtOQUNBQUxRQUNJUUVnQWlBQUx3QUFJZ0JCQVhFMkFnUWdBaUFBUVFGMlFRTnhJZ00yQWdBZ0FpQUFJQUZCRUhSeVFRTjJJZ0EyQWdnQ1FBSkFJQU5CQVdzT0F3SUJBQUVMUVd3UEN5QUFJUU1MSUFNTFJBRUNmeUFCSUFJb0FnUWlBeUFCS0FJRWFpSUVOZ0lFSUFBZ0EwRUNkRUdnSFdvb0FnQWdBU2dDQUVFQUlBUnJkbkUyQWdBZ0FSQVBHaUFBSUFKQkNHbzJBZ1FMemdFQkJuOUJ1bjhoQ2dKQUlBSW9BZ1FpQ0NBQ0tBSUFJZ2xxSWcwZ0FTQUFhMHNOQUVGc0lRb2dDU0FFSUFNb0FnQWlDMnRMRFFBZ0FDQUphaUlFSUFJb0FnZ2lER3NoQWlBQUlBRkJJR3NpQUNBTElBbEJBQkFnSUFNZ0NTQUxhallDQUFKQUFrQWdCQ0FGYXlBTVR3UkFJQUloQlF3QkN5QU1JQVFnQm10TERRSWdCeUFISUFJZ0JXc2lBbW9pQVNBSWFrOEVRQ0FFSUFFZ0NCQUtHZ3dDQ3lBQ0lBaHFJUWdnQkNBQlFRQWdBbXNRQ2lBQ2F5RUVDeUFFSUFBZ0JTQUlRUUVRSUFzZ0RTRUtDeUFLQzhjRUFRSi9JQUFnQTJvaEJnSkFJQU5CQjB3RVFBTkFJQUFnQms4TkFpQUFJQUl0QUFBNkFBQWdBRUVCYWlFQUlBSkJBV29oQWd3QUN3QUxJQVJCQVVZRVFBSkFJQUFnQW1zaUJVRUhUUVJBSUFBZ0FpMEFBRG9BQUNBQUlBSXRBQUU2QUFFZ0FDQUNMUUFDT2dBQ0lBQWdBaTBBQXpvQUF5QUFJQUlnQlVFQ2RDSUZRY0FlYWlnQ0FHb2lBaWdBQURZQUJDQUNJQVZCNEI1cUtBSUFheUVDREFFTElBQWdBaWtBQURjQUFBc2dBa0VJYWlFQ0lBQkJDR29oQUFzZ0FTQUdUd1JBSUFBZ0Eyb2hBU0FFUVFGSElBQWdBbXRCRDBweVJRUkFBMEFnQUNBQ0tRQUFOd0FBSUFKQkNHb2hBaUFBUVFocUlnQWdBVWtOQUF3REN3QUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQTBFUlNRMEJJQUJCRUdvaEFBTkFJQUFnQWlrQUVEY0FBQ0FBSUFJcEFCZzNBQWdnQUNBQ0tRQWdOd0FRSUFBZ0Fpa0FLRGNBR0NBQ1FTQnFJUUlnQUVFZ2FpSUFJQUZKRFFBTERBRUxBa0FnQUNBQlN3UkFJQUFoQVF3QkN5QUJJQUJySVFVQ1FDQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUlBSWhBd05BSUFBZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQUVFSWFpSUFJQUZKRFFBTERBRUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQlVFUlNBMEFJQUJCRUdvaEFDQUNJUU1EUUNBQUlBTXBBQkEzQUFBZ0FDQURLUUFZTndBSUlBQWdBeWtBSURjQUVDQUFJQU1wQUNnM0FCZ2dBMEVnYWlFRElBQkJJR29pQUNBQlNRMEFDd3NnQWlBRmFpRUNDd05BSUFFZ0JrOE5BU0FCSUFJdEFBQTZBQUFnQVVFQmFpRUJJQUpCQVdvaEFnd0FDd0FMQzY0SEFnVi9BWDRqQUVHQUFXc2lFU1FBSUJFZ0F6WUNmRUYvSVE4Q1FBSkFBa0FDUUFKQUlBSU9CQUVBQXdJRUN5QUdSUVJBUWJoL0lROE1CQXRCYkNFUElBVXRBQUFpQWlBRFN3MERJQWdnQWtFQ2RDSUNhaWdDQUNFRElBSWdCMm9vQWdBaEFpQUFRUUE2QUFzZ0FFSUFOd0lBSUFBZ0FqWUNEQ0FBSUFNNkFBb2dBRUVBT3dFSUlBRWdBRFlDQUVFQklROE1Bd3NnQVNBSk5nSUFRUUFoRHd3Q0N5QUtSUVJBUVd3aER3d0NDMEVBSVE4Z0MwVWdERUVaU0hJTkFVRUlJQVIwUVFocUlRQkJBQ0VEQTBBZ0FDQURUUTBDSUFOQlFHc2hBd3dBQ3dBTFFXd2hEeUFSSUJGQi9BQnFJQkZCK0FCcUlBVWdCaEFNSWdOQmlIOUxEUUFnRVNnQ2VDSUNJQVJMRFFBZ0VTZ0NmRUVCYWlFSklBQkJDR29oQzBHQWdBSWdBblJCRUhVaEJVRUJJUkJCQVNBQ2RDSVBRUUZySWdvaEVnTkFJQWtnRGtjRVFBSkFJQkVnRGtFQmRDSUVhaThCQUNJTVFmLy9BMFlFUUNBTElCSkJBM1JxSUE0MkFnUWdFa0VCYXlFU1FRRWhEQXdCQ3lBUVFRQWdCU0FNd1VvYklSQUxJQVFnRFdvZ0REc0JBQ0FPUVFGcUlRNE1BUXNMSUFBZ0FqWUNCQ0FBSUJBMkFnQUNRQ0FLSUJKR0JFQWdEVUhxQUdvaEJrRUFJUkJCQUNFTUEwQWdDU0FRUmdSQUlBOUJBM1lnRDBFQmRtcEJBMm9pQlVFQmRDRUVRUUFoREVFQUlSSURRRUVBSVE0Z0R5QVNUUTBFQTBBZ0RrRUNSd1JBSUFzZ0JTQU9iQ0FNYWlBS2NVRURkR29nQmlBT0lCSnFhaTBBQURZQ0JDQU9RUUZxSVE0TUFRc0xJQkpCQW1vaEVpQUVJQXhxSUFweElRd01BQXNBQlNBUklCQkJBWFJxTGdFQUlRVWdCaUFNYWlJRUlCTTNBQUJCQ0NFT0EwQWdCU0FPU2dSQUlBUWdEbW9nRXpjQUFDQU9RUWhxSVE0TUFRc0xJQk5DZ1lLRWlKQ2d3SUFCZkNFVElCQkJBV29oRUNBRklBeHFJUXdNQVFzQUN3QUxJQTlCQTNZZ0QwRUJkbXBCQTJvaEJVRUFJUkJCQUNFT0EwQWdDU0FRUmcwQlFRQWhEQ0FSSUJCQkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FNUndSQUlBc2dEa0VEZEdvZ0VEWUNCQU5BSUFVZ0Rtb2dDbkVpRGlBU1N3MEFDeUFNUVFGcUlRd01BUXNMSUJCQkFXb2hFQXdBQ3dBTElBSkJBV29oQlVFQUlRd0RRQ0FNSUE5SEJFQWdEU0FMSUF4QkEzUnFJZ2tvQWdRaUJFRUJkR29pQWlBQ0x3RUFJZ1pCQVdvN0FRQWdDU0FGSUFablFXQnphaUlDT2dBRElBa2dCaUFDZENBUGF6c0JBQ0FKSUFnZ0JFRUNkQ0lDYWlnQ0FEb0FBaUFKSUFJZ0Iyb29BZ0EyQWdRZ0RFRUJhaUVNREFFTEN5QUJJQUEyQWdBZ0F5RVBDeUFSUVlBQmFpUUFJQThMN1ZvQ08zOEdmaU1BUWVBQmF5SUVKQUFDUUVHdzdBa1FCU0lGUlFSQVFVQWhCd3dCQ3lBRlFnQTNBdlRxQVNBRlFRQTJBc1RyQVNBRlFRQTJBclRyQVNBRlFnQTNBcHpyQVNBRlFRQTJBcmpwQVNBRlFRQTJBcXpzQ1NBRlFnQTNBdFRyQVNBRlFnQTNBcXpyQVNBRlFnQTNBNGpyQVNBRlFnQTNBdVRxQVNBRlFnQTNBdVRyQVNBRlFZR0FnTUFBTmdLODZ3RWdCVUlBTndLazZ3RWdCVUg4NmdGcVFRQTJBZ0FnQlVHUTZ3RnFRZ0EzQXdBZ0JSQVlJQVZCck5VQmFpRVVJQVZCK09zQmFpRWNJQVZCc09vQmFpRWlJQVZCb0RCcUlTb2dCVUdZSUdvaEt5QUZRYWpRQUdvaEhpQUZRUkJxSVN3Z0JVRUlhaUVvSUFWQkJHb2hMU0FGUWNEcEFXb2hLU0FGUVlqckFXb2dCRUdVQVdvaEx5QUVRWXdCYWlFd0lBUkJoQUZxSVRFZ0JFSGNBR29oTWlBRVFkUUFhaUV6SUFSQnpBQnFJVFFnQUNFZEFrQUNRQUpBQWtBQ1FBTkFRUUZCQlNBRktBTGs2Z0ViSVFZQ1FBTkFJQU1nQmtrTkFTQUNLQUFBUVhCeFFkRFV0TUlCUmdSQVFiaC9JUWNnQTBFSVNRMElJQUlvQUFRaURrRjNTd1JBUVhJaEJ3d0pDeUFESUE1QkNHb2lDVWtOQ0NBT1FZQi9Td1JBSUFraEJ3d0pDeUFESUFscklRTWdBaUFKYWlFQ0RBRUxDeUFGUWdBM0FxenBBU0FGUWdBM0EranBBU0FGUVFBMkFwanJBU0FGUWdBM0E0RHFBU0FGUWdNM0EvanBBU0FGUWJUcEFXcENBRGNDQUNBRlFmRHBBV3BDQURjREFDQUZRYWpRQUdvaUNVR01nSURnQURZQ0FDQUZRYXpRQVdwQjRCSXBBZ0EzQWdBZ0JVRzAwQUZxUWVnU0tBSUFOZ0lBSUFVZ0JVRVFhallDQUNBRklBVkJvREJxTmdJRUlBVWdCVUdZSUdvMkFnZ2dCU0FKTmdJTUlBVkJBVUVGSUFVb0F1VHFBUnMyQXJ6cEFRSkFJQUZGRFFBZ0JTZ0NyT2tCSWdrZ0hVWU5BQ0FGSUFrMkFyanBBU0FGSUIwMkFxenBBU0FGS0FLdzZRRWhEaUFGSUIwMkFyRHBBU0FGSUIwZ0RpQUphMm8yQXJUcEFRdEJ1SDhoQ1NBRFFRVkJDU0FGS0FMazZnRWlCaHRKRFFVZ0FrRUJRUVVnQmhzZ0JoQWFJZzVCaUg5TEJFQWdEaUVKREFVTElBTWdEa0VEYWtrTkJTQXBJQUlnRGlBR0VCa2lCa0dJZjBzRVFDQUdJUWtNQlFzZ0JnMEZBa0FDUUNBRktBS282d0ZCQVVjTkFDQUZLQUtrNndFaUNVVU5BQ0FGS0FLVTZ3RkZEUUFnQ1NnQ0JFRUJheUlISUFVb0F0enBBU0lLclVLSGxhK3ZtTGJlbTU1L2ZrTEp6OW15OGVXNjZpZUZRaGVKUXMvVzA3N1N4NnZaUW41QytmUGQ4Wm4ybWFzV2ZDSS9RaUdJSUQrRlFzL1cwNzdTeDZ2WlFuNGlQMElkaUNBL2hVTDU4OTN4bWZhWnF4WitJajlDSUlnZ1A0V25jU0VHSUFrb0FnQWhGUU5BUVFBaENBSkFJQlVnQmtFQ2RHb29BZ0FpQ1VVTkFDQUpLQUlJUVFoSkRRQWdDU2dDQkNJU0tBQUFRYmZJd3VGK1J3MEFJQklvQUFRaENBc2dDQ0FLUndSQUlBWWdCM0ZCQVdvaEJpQUlEUUVMQ3lBSlJRMEFJQVVRR0NBRlFYODJBcURyQVNBRklBazJBcFRyQVNBRklBVW9BdHpwQVNJSU5nS1k2d0VNQVFzZ0JTZ0MzT2tCSVFnTEFrQWdDRVVOQUNBRktBS1k2d0VnQ0VZTkFFRmdJUWtNQmdzQ1FDQUZLQUxnNlFFRVFDQUZJQVVvQXVqcUFTSUpSVFlDN09vQklBa05BU0FGUXZucTBORG55YUhrNFFBM0E2anFBU0FGUWdBM0E2RHFBU0FGUXMvVzA3N1N4NnZaUWpjRG1Pb0JJQVZDMXV1Qzd1cjlpZlhnQURjRGtPb0JJQVZDQURjRGlPb0JJQ0pCQUVFb0VBTWFEQUVMSUFWQkFEWUM3T29CQ3lBQklCMXFJU1VnQlNBRktRUG82UUVnRHExOE53UG82UUVnQXlBT2F5RURJQUlnRG1vaEFpQWRJUTREUUNBQ0lBTWdCRUVzYWhBZEloVkJpSDlMQkVBZ0ZTRUpEQVlMSUFOQkEyc2lOU0FWU1EwRUlBSkJBMm9oRzBGc0lRa0NRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBRUtBSXNEZ01DQVFBVkN5QVZRZi8vQjBzTkV5QVZRUU5KRFJJZ0JTa0R5T2tCSVQ4Q1FBSkFJQnN0QUFBaUNVRURjU0lhUVFGckRnTUdBUUFIQ3lBRktBS0E2Z0VOQUVGaUlRa01GUXNnRlVFRlNRMFNJQnNvQUFBaEF3Si9Ba0FDUUFKQUlBbEJBblpCQTNFaUNVRUNhdzRDQVFJQUN5QUpRUUJISVFjZ0EwRUVka0gvQjNFaEMwRURJUVlnQTBFT2RrSC9CM0VNQWd0QkJDRUdJQU5CQkhaQi8vOEFjU0VMUVFFaEJ5QURRUkoyREFFTElBTkJCSFpCLy84UGNTSUxRWUNBQ0VzTkUwRUJJUWRCQlNFR0lBSXRBQWRCQ25RZ0EwRVdkbklMSWdnZ0Jtb2lDU0FWU3cwU0FrQWdDMEdCQmtrTkFDQUZLQUtjNndGRkRRQkJBQ0VEQTBBZ0EwR0RnQUZMRFFFZ0EwRkFheUVEREFBTEFBc2dCaUFiYWlFUElCcEJBMGNOQmlBRktBSU1JZ0l0QUFGQkNIUWhBeUFIRFFjZ0EwVU5DQ0FFUWZBQWFpQVBJQWdRRFNJRFFZaC9TdzBKSUFKQkJHb2hCaUFMSUJ4cUloSkJBMnNoQ2tFQUlBSXZBUUpyUVI5eElRY2dIQ0VEQTBBZ0JFSHdBR29RRDBVZ0F5QUtTWEVFUUNBRElBWWdCQ2dDY0NJSUlBUW9BblFpRDNRZ0IzWkJBblJxSWdJdkFRQTdBQUFnQXlBQ0xRQURhaUlESUFZZ0NDQVBJQUl0QUFKcUlnaDBJQWQyUVFKMGFpSUNMd0VBT3dBQUlBUWdDQ0FDTFFBQ2FqWUNkQ0FESUFJdEFBTnFJUU1NQVFVZ0VrRUNheUVJQTBBZ0JFSHdBR29RRHlFUElBUW9BbkFoQ2lBRUtBSjBJUUlnQXlBSVN5QVBja1VFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pQ2k4QkFEc0FBQ0FFSUFJZ0NpMEFBbW8yQW5RZ0F5QUtMUUFEYWlFRERBRUxDd05BSUFNZ0NFMEVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lEeThCQURzQUFDQURJQTh0QUFOcUlRTWdBaUFQTFFBQ2FpRUNEQUVMQ3dKQUlBTWdFazhOQUNBRElBWWdDaUFDZENBSGRrRUNkR29pQXkwQUFEb0FBQ0FETFFBRFFRRkdCRUFnQWlBRExRQUNhaUVDREFFTElBSkJIMHNOQUVFZ0lBSWdBeTBBQW1vaUFpQUNRU0JQR3lFQ0MwRnNRV3dnQ3lBRUtBSjRJQVFvQW54SEd5QUNRU0JIR3lFRERBc0xBQXNBQ3lBRUtBSTBJZ0lnSlNBT2Ewc05DaUFPUlFSQVFRQWhDU0FDRFFJTURnc2dEaUFiTFFBQUlBSVFBeG9nQWlFSkRBd0xJQlVnSlNBT2Ewc05DU0FPRFFGQkFDRUpJQlZGRFF3TFFiWi9JUWtNRVFzZ0RpQWJJQlVRQWhvZ0ZTRUpEQW9MSUJ3Z0d3Si9Ba0FDUUFKQUlBbEJBblpCQTNGQkFXc09Bd0VBQWdBTElBbEJBM1loQTBFQkRBSUxJQnN2QUFCQkJIWWhBMEVDREFFTElCVkJCRWtORGlBQ0x3QURJQUl0QUFWQkVIUnlJZ0pCajRDQUFVc05EaUFDUVFSMklRTkJBd3NpQW1vdEFBQWdBMEVnYWhBRElRa2dCU0FETmdLQTZ3RWdCU0FKTmdMdzZnRWdBa0VCYWlFSkRBVUxJQlVDZndKQUFrQUNRQ0FKUVFKMlFRTnhRUUZyRGdNQkFBSUFDeUFKUVFOMklRTkJBUXdDQ3lBYkx3QUFRUVIySVFOQkFnd0JDeUFDTHdBRElBSXRBQVZCRUhSeVFRUjJJUU5CQXdzaUFpQURhaUlKUVNCcVNRUkFJQWtnRlVzTkRTQWNJQUlnRzJvZ0F4QUNJUUlnQlNBRE5nS0E2d0VnQlNBQ05nTHc2Z0VnQWlBRGFpSUNRZ0EzQUJnZ0FrSUFOd0FRSUFKQ0FEY0FDQ0FDUWdBM0FBQU1CUXNnQlNBRE5nS0E2d0VnQlNBQ0lCdHFOZ0x3NmdFTUJBc2dCMFVFUUNBZUlBOGdDQ0FVRUJRaUFrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGU0VEREFNTElBdEZJQWhGY2cwTElBdEJDSFlpQXlBSUlBdEpCSDhnQ0VFRWRDQUxiZ1ZCRHd0QkdHd2lBa0dNQ0dvb0FnQnNJQUpCaUFocUtBSUFhaUlHUVFOMklBWnFJQUpCZ0FocUtBSUFJQUpCaEFocUtBSUFJQU5zYWtrRVFDTUFRUkJySWhBa0FDQWVLQUlBSVFNZ0ZFSHdCR3BCQUVIc0FCQURJUVpCVkNFQ0FrQWdBMEgvQVhFaURFRU1TdzBBQWtBZ0ZFSGNDV29nQmlBUVFRaHFJQkJCREdvZ0R5QUlJQlJCM0F0cUloY1FDeUlTUVloL1N3MEFJQkFvQWd3aUJpQU1TdzBCSUJSQnFBVnFJUTBnRkVHa0JXb2hOaUFlUVFScUlSRWdBMEdBZ0lCNGNTRTNJQVpCQVdvaUV5RUNJQVloQXdOQUlBSWlCMEVCYXlFQ0lBTWlDa0VCYXlFRElCUWdDa0VDZEdvb0F2QUVSUTBBQzBFQklBY2dCMEVCVFJzaEZrRUFJUWRCQVNFQ0EwQWdBaUFXUndSQUlCUWdBa0VDZENJRGFpZ0M4QVFoR0NBRElBMXFJQWMyQWdBZ0FrRUJhaUVDSUFjZ0dHb2hCd3dCQ3dzZ0RTQUhOZ0lBUVFBaEFpQVFLQUlJSVFNRFFDQUNJQU5IQkVBZ0RTQUNJQlJxUWR3SmFpMEFBQ0lZUVFKMGFpSVpJQmtvQWdBaUdVRUJhallDQUNBVUlCbEJBWFJxSWhrZ0dEb0EzUVVnR1NBQ09nRGNCU0FDUVFGcUlRSU1BUXNMUVFBaEF5QU5RUUEyQWdBZ0RDQUdRWDl6YWlFR1FRRWhBZ05BSUFJZ0ZrY0VRQ0FVSUFKQkFuUnFJZzBnQXpZQ0FDQU5LQUx3QkNBQ0lBWnFkQ0FEYWlFRElBSkJBV29oQWd3QkN3c2dEQ0FUSUFwcklnWnJRUUZxSVFvZ0JpRURBMEFnQXlBS1NRUkFJQlFnQTBFMGJHb2hEVUVCSVFJRFFDQUNJQlpIQkVBZ0RTQUNRUUowSWhocUlCUWdHR29vQWdBZ0EzWTJBZ0FnQWtFQmFpRUNEQUVMQ3lBRFFRRnFJUU1NQVFzTElCY2dGRUUwRUFJaE9DQVVRWkFNYWlFNUlCTWdER3NoT2lBVVFkd0ZhaUVYUVFBaENnTkFBa0FDUUNBSElBcEhCRUJCQVNBTUlCTWdGeUFLUVFGMGFpSUNMUUFCSWcxcklnTnJJaGgwSVJrZ0FpMEFBQ0VXSURnZ0RVRUNkR29pSHlnQ0FDRUNJQVlnR0UwRVFDQTJRUUVnQXlBNmFpSU5JQTFCQVV3YklpQkJBblFpSkdvb0FnQWhEU0E1SUJRZ0EwRTBiR3BCTkJBQ0lTRWdEVUVCZENFbUlCRWdBa0VDZEdvaEl5QWdRUUZORFFJZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRWdJQ0VnSkdvb0FnQWhKRUVBSVFJRFFDQUNJQ1JHRFFNZ0l5QUNRUUowYWlBZ05nRUFJQUpCQVdvaEFnd0FDd0FMSUFJZ0FpQVphaUlOSUFJZ0RVc2JJUTBnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFREEwQWdBaUFOUmcwRElCRWdBa0VDZEdvZ0F6WUJBQ0FDUVFGcUlRSU1BQXNBQ3lBZUlBeEJFSFFnTjNJZ0RISkJnQUp5TmdJQURBTUxJQWNnRFdzaEpDQVhJQ1pxSVNaQkFDRU5BMEFnRFNBa1JnMEJRUUVnR0NBVElDWWdEVUVCZEdvaUp5MEFBU0lDYXlJN2EzUWlQQ0FoSUFKQkFuUnFJaUFvQWdBaUFtb2hQU0FESUR0cVFSQjBRWUNBL0FkeElDY3RBQUJCQ0hSeUlCWnlRWUNBZ0JCeUlTY0RRQ0FqSUFKQkFuUnFJQ2MyQVFBZ0FrRUJhaUlDSUQxSkRRQUxJQ0FnSUNnQ0FDQThhallDQUNBTlFRRnFJUTBNQUFzQUN5QWZJQjhvQWdBZ0dXbzJBZ0FnQ2tFQmFpRUtEQUFMQUFzZ0VpRUNDeUFRUVJCcUpBQWdBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRmlFRERBTUxJQjRnRHlBSUlCUVFGQ0lDUVloL1N5QUNJQWhQY2cwTElCd2dDeUFDSUE5cUlBZ2dBbXNnSGhBWElRTU1BZ3NnQXdSQUlCd2dDeUFQSUFnZ0FoQVdJUU1NQWdzZ0hDQUxJQThnQ0NBQ0VCY2hBd3dCQ3lBY0lBc2dEeUFJSUFJUUZTRURDeUFEUVloL1N3MElJQVVnQ3pZQ2dPc0JJQVVnSERZQzhPb0JJQVZCQVRZQ2dPb0JJQnBCQWtZRVFDQUZJQjQyQWd3TElBc2dIR29pQWtJQU53QUFJQUpDQURjQUdDQUNRZ0EzQUJBZ0FrSUFOd0FJSUFsQmlIOUxEUW9MSUFrZ0ZVWU5DQ0FWSUFscklRWWdCU2dDbk9zQklRb0NRQ0FKSUJ0cUlnTXRBQUFpRDBVRVFFRUJJUUpCQUNFUFFiaC9JUWtnQmtFQlJnMEJEQXNMQW44Z0EwRUJhaUFQd0NJQ1FRQk9EUUFhSUFKQmYwWUVRQ0FHUVFOSURRc2dBeThBQVVHQS9nRnFJUThnQTBFRGFnd0JDeUFHUVFKSURRb2dBeTBBQVNBUFFRaDBja0dBZ0FKcklROGdBMEVDYWdzaEVrRzRmeUVKSUJKQkFXb2lBaUFWSUJ0cUlnZExEUW9nTENBRklCSXRBQUFpRWtFR2RrRWpRUWtnQWlBSElBSnJRY0FRUWRBUlFmQVNJQVVvQW9UcUFTQUtJQThnRkJBaElnbEJpSDlMRFFnZ0t5QW9JQkpCQkhaQkEzRkJIMEVJSUFJZ0NXb2lBaUFISUFKclFZQUxRWUFNUVlBWElBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlDRUdJZjBzTkNFRnNJUWtnS2lBdElCSkJBblpCQTNGQk5FRUpJQUlnQ0dvaUFpQUhJQUpyUVlBTlFlQU9RWkFaSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUIwR0lmMHNOQ2lBQ0lBZHFJQU5ySWdJaENTQUNRWWgvU3cwS0N5QU9JQTlCQUV4eURRRUxRYnAvSVFrTUNBc2dKU0FPYXlFSklBWWdBbXNoQmlBQ0lBTnFJUWNDUUFKQUFrQWdDa1VFUUNBUFFRbElJQVVwQThqcEFVS0JnSUFJVkhJTkFpQW9LQUlBSWdKQkNHb2hFaUFDS0FJRUlRcEJBQ0VEUVFBaEFnTkFJQU1nQ25aRkJFQWdBaUFTSUFOQkEzUnFMUUFDUVJaTGFpRUNJQU5CQVdvaEF3d0JDd3NnQlVFQU5nS2M2d0VnQWtFSUlBcHJkRUVVVHcwQkRBTUxJQVZCQURZQ25Pc0JDeUFFSUFVb0F2RHFBU0lETmdMY0FTQUpJQTVxSVJZZ0F5QUZLQUtBNndGcUlSY0NRQ0FQUlFSQUlBNGhCd3dCQ3lBRktBSzQ2UUVoR2lBRktBSzA2UUVoR0NBRktBS3c2UUVoRWlBRlFRRTJBb1RxQVVFQUlRTURRQ0FEUVFOSEJFQWdCQ0FEUVFKMElnSnFJQUlnQldwQnJOQUJhaWdDQURZQ1pDQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFUaHFJZ0lnQnlBR0VBMUJpSDlMRFFOQkNDQVBJQTlCQ0U0YklSOGdOQ0FDSUFVb0FnQVFIaUF6SUFJZ0JTZ0NDQkFlSURJZ0FpQUZLQUlFRUI0Z0RpQVNheUVaUVFBaENBTkFJQVJCT0dvUUQwRURSaUFJSUI5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdkQkVIWWlFVUgvQVhFaEN5QUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZ3hCRUhZaUlVSC9BWEVoRUNBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUVlnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNrSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lLYXlJTklBSWdBaUFOU3hzaUV5QUthallDUENBR0lBUW9BamdnQ25SQkFDQVRhM1lnQWlBVGF5SVRkR29oQ2lBRVFUaHFFQThhSUFJZ0RVME5BU0FFSUFRb0Fqd2lBaUFUYWpZQ1BDQUVLQUk0SUFKMFFRQWdFMnQySUFwcUlRb01BUXNnQkNBQ0lBUW9BandpRFdvMkFqd2dCQ2dDT0NBTmRFRUFJQXByZGlBR2FpRUtJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQW8yQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBREJFQWdCQ2dDWkNFS0RBTUxJQVFvQW1naENnd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQVlnQTBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdaRklBWnFJUW9nQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlBbzJBbVFMcHlFQ0lFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQkJxTmdJOElBUW9BamdnQm5SQkFDQWhhM1lnQW1vaEFnc2dDeUFRYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUF0cU5nSThJQVFvQWpnZ0JuUkJBQ0FSYTNZZ0Eyb2hBd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lCa0VBSUFkQkdIWWlDeUFFS0FJOGFpSVFhM1lnQzBFQ2RFR2dIV29vQWdCeElBZEIvLzhEY1dvMkFrd2dCQ0FRSUF4QkdIWWlCMm9pQ3pZQ1BDQUVJQWRCQW5SQm9CMXFLQUlBSUFaQkFDQUxhM1p4SUF4Qi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ1pCR0hZaUJ5QUVLQUk4YWlJTE5nSThJQVFnQjBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUF0cmRuRWdCa0gvL3dOeGFqWUNWQ0FFUWZBQWFpQUlRUXhzYWlJR0lBbzJBZ2dnQmlBQ05nSUVJQVlnQXpZQ0FDQUlRUUZxSVFnZ0F5QVphaUFDYWlFWkRBRUxDeUFJSUI5SURRTWdGa0VnYXlFaElBNGhCd05BSUFSQk9Hb1FEMEVEUmlBSUlBOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnWkJFSFlpSTBIL0FYRWhDaUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWcxQkVIWWlJRUgvQVhFaEV5QUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFNZ1FVSWdpQ0JBUWlDSXB5RUxBa0FnUWtJUWlLY2lERUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJTWF5SVJJQUlnQWlBUlN4c2lFQ0FNYWpZQ1BDQURJQVFvQWpnZ0RIUkJBQ0FRYTNZZ0FpQVFheUlNZEdvaEVDQUVRVGhxRUE4YUlBSWdFVTBOQVNBRUlBUW9BandpQWlBTWFqWUNQQ0FFS0FJNElBSjBRUUFnREd0MklCQnFJUkFNQVFzZ0JDQUNJQVFvQWp3aUVHbzJBandnQkNnQ09DQVFkRUVBSUF4cmRpQURhaUVRSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUJBMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQUxCRUFnQkNnQ1pDRVFEQU1MSUFRb0FtZ2hFQXdCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFNZ0MwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnTkZJQU5xSVJBZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQkEyQW1RTHB5RU1JRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUJOcU5nSThJQVFvQWpnZ0FuUkJBQ0FnYTNZZ0RHb2hEQXNnQ2lBVGFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lBcHFOZ0k4SUFRb0FqZ2dBblJCQUNBamEzWWdDMm9oQ3dzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQWtFQUlBWkJHSFlpQXlBRUtBSThhaUlLYTNZZ0EwRUNkRUdnSFdvb0FnQnhJQVpCLy84RGNXbzJBa3dnQkNBS0lBMUJHSFlpQTJvaUJqWUNQQ0FFSUFOQkFuUkJvQjFxS0FJQUlBSkJBQ0FHYTNaeElBMUIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdKQkdIWWlBeUFFS0FJOGFpSUdOZ0k4SUFRZ0EwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBWnJkbkVnQWtILy93TnhhallDVkFKQUFrQUNRQ0FFS0FMY0FTSURJQVJCOEFCcUlBaEJCM0ZCREd4cUloTW9BZ0FpRVdvaUl5QVhTdzBBSUFjZ0V5Z0NCQ0lOSUJGcUlncHFJQ0ZMRFFBZ0NrRWdhaUFXSUFkclRRMEJDeUFFSUJNb0FnZzJBaGdnQkNBVEtRSUFOd01RSUFjZ0ZpQUVRUkJxSUFSQjNBRnFJQmNnRWlBWUlCb1FIeUVLREFFTElBY2dFV29oQWlBVEtBSUlJUVlnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0FKQUlCRkJFVWtOQUNBSElBTXBBQkEzQUJBZ0J5QURLUUFZTndBWUlCRkJFR3RCRVVnTkFDQURRUkJxSVFNZ0IwRWdhaUVSQTBBZ0VTQURLUUFRTndBQUlCRWdBeWtBR0RjQUNDQVJJQU1wQUNBM0FCQWdFU0FES1FBb053QVlJQU5CSUdvaEF5QVJRU0JxSWhFZ0Fra05BQXNMSUFJZ0Jtc2hBeUFFSUNNMkF0d0JJQUlnRW1zZ0Jra0VRQ0FHSUFJZ0dHdExEUWNnR2lBYUlBTWdFbXNpQTJvaUVTQU5hazhFUUNBQ0lCRWdEUkFLR2d3Q0N5QURJQTFxSVEwZ0FpQVJRUUFnQTJzUUNpQURheUVDSUJJaEF3c2dCa0VRVHdSQUlBSWdBeWtBQURjQUFDQUNJQU1wQUFnM0FBZ2dEVUVSU0EwQklBSWdEV29oQmlBQ1FSQnFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBR1NRMEFDd3dCQ3dKQUlBWkJCMDBFUUNBQ0lBTXRBQUE2QUFBZ0FpQURMUUFCT2dBQklBSWdBeTBBQWpvQUFpQUNJQU10QUFNNkFBTWdBaUFESUFaQkFuUWlCa0hBSG1vb0FnQnFJZ01vQUFBMkFBUWdBeUFHUWVBZWFpZ0NBR3NoQXd3QkN5QUNJQU1wQUFBM0FBQUxJQTFCQ1VrTkFDQUNJQTFxSVJFZ0FrRUlhaUlHSUFOQkNHb2lBMnRCRDB3RVFBTkFJQVlnQXlrQUFEY0FBQ0FEUVFocUlRTWdCa0VJYWlJR0lCRkpEUUFNQWdzQUN5QUdJQU1wQUFBM0FBQWdCaUFES1FBSU53QUlJQTFCR1VnTkFDQUNRUmhxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQVJTUTBBQ3dzZ0NrR0lmMHNFUUNBS0lRa01CZ1VnRXlBUU5nSUlJQk1nRERZQ0JDQVRJQXMyQWdBZ0NFRUJhaUVJSUFjZ0Ntb2hCeUFMSUJscUlBeHFJUmtNQWdzQUN3c2dDQ0FQU0EwRElBZ2dIMnNoQmdOQUFrQWdCaUFQVGdSQVFRQWhBd05BSUFOQkEwWU5BaUFGSUFOQkFuUWlBbXBCck5BQmFpQUNJQVJxS0FKa05nSUFJQU5CQVdvaEF3d0FDd0FMQWtBQ1FBSkFJQVFvQXR3QklnTWdCRUh3QUdvZ0JrRUhjVUVNYkdvaUNDZ0NBQ0lNYWlJUUlCZExEUUFnQnlBSUtBSUVJZ3NnREdvaUNtb2dJVXNOQUNBS1FTQnFJQllnQjJ0TkRRRUxJQVFnQ0NnQ0NEWUNLQ0FFSUFncEFnQTNBeUFnQnlBV0lBUkJJR29nQkVIY0FXb2dGeUFTSUJnZ0doQWZJUW9NQVFzZ0J5QU1haUVDSUFnb0FnZ2hDQ0FISUFNcEFBQTNBQUFnQnlBREtRQUlOd0FJQWtBZ0RFRVJTUTBBSUFjZ0F5a0FFRGNBRUNBSElBTXBBQmczQUJnZ0RFRVFhMEVSU0EwQUlBTkJFR29oQXlBSFFTQnFJUXdEUUNBTUlBTXBBQkEzQUFBZ0RDQURLUUFZTndBSUlBd2dBeWtBSURjQUVDQU1JQU1wQUNnM0FCZ2dBMEVnYWlFRElBeEJJR29pRENBQ1NRMEFDd3NnQWlBSWF5RURJQVFnRURZQzNBRWdBaUFTYXlBSVNRUkFJQWdnQWlBWWEwc05CeUFhSUJvZ0F5QVNheUlEYWlJTUlBdHFUd1JBSUFJZ0RDQUxFQW9hREFJTElBTWdDMm9oQ3lBQ0lBeEJBQ0FEYXhBS0lBTnJJUUlnRWlFREN5QUlRUkJQQkVBZ0FpQURLUUFBTndBQUlBSWdBeWtBQ0RjQUNDQUxRUkZJRFFFZ0FpQUxhaUVJSUFKQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFJZ0F5MEFBRG9BQUNBQ0lBTXRBQUU2QUFFZ0FpQURMUUFDT2dBQ0lBSWdBeTBBQXpvQUF5QUNJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBSWdBeWtBQURjQUFBc2dDMEVKU1EwQUlBSWdDMm9oRENBQ1FRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0RFa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dDMEVaU0EwQUlBSkJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBeEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0dCU0FHUVFGcUlRWWdCeUFLYWlFSERBSUxBQXNMSUFRb0F0d0JJUU1MUWJwL0lRa2dGeUFEYXlJQ0lCWWdCMnRMRFFJZ0J3Ui9JQWNnQXlBQ0VBSWdBbW9GUVFBTElBNXJJUWtNQWdzZ0JVRUFOZ0tjNndFTElBUWdCU2dDOE9vQklnTTJBdHdCSUFrZ0Rtb2hEQ0FESUFVb0FvRHJBV29oRUFKQUlBOUZCRUFnRGlFR0RBRUxJQVVvQXJqcEFTRU5JQVVvQXJUcEFTRVRJQVVvQXJEcEFTRVNJQVZCQVRZQ2hPb0JRUUFoQXdOQUlBTkJBMGNFUUNBRUlBTkJBblFpQW1vZ0FpQUZha0dzMEFGcUtBSUFOZ0tjQVNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUWZBQWFpSUNJQWNnQmhBTlFZaC9TdzBCSURFZ0FpQUZLQUlBRUI0Z01DQUNJQVVvQWdnUUhpQXZJQUlnQlNnQ0JCQWVJQXhCSUdzaEdDQU9JUVlEUUNBRUtBS0lBU0FFS0FLRUFVRURkR29wQWdBaVFLY2lDa0VRZGlJWlFmOEJjU0VMSUFRb0FwZ0JJQVFvQXBRQlFRTjBhaWtDQUNKQnB5SVdRUkIySWg5Qi93RnhJUm9nQkNnQ2tBRWdCQ2dDakFGQkEzUnFLUUlBSWtKQ0lJaW5JUWNnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NkQ0lJYXlJUklBSWdBaUFSU3hzaUZ5QUlhallDZENBSElBUW9BbkFnQ0hSQkFDQVhhM1lnQWlBWGF5SVhkR29oQ0NBRVFmQUFhaEFQR2lBQ0lCRk5EUUVnQkNBRUtBSjBJZ0lnRjJvMkFuUWdCQ2dDY0NBQ2RFRUFJQmRyZGlBSWFpRUlEQUVMSUFRZ0FpQUVLQUowSWhGcU5nSjBJQVFvQW5BZ0VYUkJBQ0FJYTNZZ0Iyb2hDQ0FFUWZBQWFoQVBHZ3NnQkNrQ25BRWhSQ0FFSUFnMkFwd0JJQVFnUkRjQ29BRU1BUXNDUUNBQ1JRUkFJQU1FUUNBRUtBS2NBU0VJREFNTElBUW9BcUFCSVFnTUFRc2dCQ0FFS0FKMElnSkJBV28yQW5RQ2Z5QUhJQU5GYWlBRUtBSndJQUowUVI5MmFpSUNRUU5HQkVBZ0JDZ0NuQUZCQVdzTUFRc2dBa0VDZENBRWFpZ0NuQUVMSWdkRklBZHFJUWdnQWtFQlJ3UkFJQVFnQkNnQ29BRTJBcVFCQ3dzZ0JDQUVLQUtjQVRZQ29BRWdCQ0FJTmdLY0FRdW5JUUlnUVVLQWdQd0hnMUJGQkVBZ0JDQUVLQUowSWdjZ0dtbzJBblFnQkNnQ2NDQUhkRUVBSUI5cmRpQUNhaUVDQ3lBTElCcHFRUlJQQkVBZ0JFSHdBR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ2RDSUhJQXRxTmdKMElBUW9BbkFnQjNSQkFDQVphM1lnQTJvaEF3c2dCRUh3QUdvUUR4b2dCQ0FFS0FKd0lnZEJBQ0FLUVJoMklnc2dCQ2dDZEdvaUdtdDJJQXRCQW5SQm9CMXFLQUlBY1NBS1FmLy9BM0ZxTmdLRUFTQUVJQm9nRmtFWWRpSUthaUlMTmdKMElBUWdDa0VDZEVHZ0hXb29BZ0FnQjBFQUlBdHJkbkVnRmtILy93TnhhallDbEFFZ0JFSHdBR29RRHhvZ0JDQkNweUlIUVJoMklnb2dCQ2dDZEdvaUN6WUNkQ0FFSUFwQkFuUkJvQjFxS0FJQUlBUW9BbkJCQUNBTGEzWnhJQWRCLy84RGNXbzJBb3dCSUFRZ0F6WUNPQ0FFSUFJMkFqd2dCQ0FJTmdKQUFrQUNRQUpBSUFRb0F0d0JJZ3NnQTJvaUZpQVFTdzBBSUFZZ0FpQURhaUlLYWlBWVN3MEFJQXBCSUdvZ0RDQUdhMDBOQVFzZ0JDQUVRVUJyS0FJQU5nSUlJQVFnQkNrRE9EY0RBQ0FHSUF3Z0JDQUVRZHdCYWlBUUlCSWdFeUFORUI4aENnd0JDeUFESUFacUlRY2dCaUFMS1FBQU53QUFJQVlnQ3lrQUNEY0FDQUpBSUFOQkVVa05BQ0FHSUFzcEFCQTNBQkFnQmlBTEtRQVlOd0FZSUFOQkVHdEJFVWdOQUNBTFFSQnFJUU1nQmtFZ2FpRUxBMEFnQ3lBREtRQVFOd0FBSUFzZ0F5a0FHRGNBQ0NBTElBTXBBQ0EzQUJBZ0N5QURLUUFvTndBWUlBTkJJR29oQXlBTFFTQnFJZ3NnQjBrTkFBc0xJQWNnQ0dzaEF5QUVJQlkyQXR3QklBY2dFbXNnQ0VrRVFDQUlJQWNnRTJ0TERRUWdEU0FOSUFNZ0Vtc2lBMm9pQ3lBQ2FrOEVRQ0FISUFzZ0FoQUtHZ3dDQ3lBSElBdEJBQ0FEYXhBS0lBUWdBaUFEYWlJQ05nSThJQU5ySVFjZ0VpRURDeUFJUVJCUEJFQWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQ0FDUVJGSURRRWdBaUFIYWlFSUlBZEJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBY2dBeTBBQURvQUFDQUhJQU10QUFFNkFBRWdCeUFETFFBQ09nQUNJQWNnQXkwQUF6b0FBeUFISUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQWNnQXlrQUFEY0FBQXNnQWtFSlNRMEFJQUlnQjJvaEN5QUhRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dDMGtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQWtFWlNBMEFJQWRCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXRKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdEQ3lBR0lBcHFJUVlnQkVId0FHb1FEeUVESUE5QkFXc2lEdzBBQzBFQUlRSWdBMEVDU1EwQkEwQWdBa0VEUndSQUlBVWdBa0VDZENJRGFrR3MwQUZxSUFNZ0JHb29BcHdCTmdJQUlBSkJBV29oQWd3QkN3c2dCQ2dDM0FFaEF3dEJ1bjhoQ1NBUUlBTnJJZ0lnRENBR2Ewc05BQ0FHQkg4Z0JpQURJQUlRQWlBQ2FnVkJBQXNnRG1zaENRc2dDVUdJZjBzTkJnc0NRQ0FGS0FMczZnRkZEUUFnQlNBRktRT0k2Z0VnQ2ExOE53T0k2Z0VDUUNBRktBTFE2Z0VpQWlBSmFpSUlRUjlOQkVBZ0RrVU5BU0FDSUNKcUlBNGdDUkFDR2lBRktBTFE2Z0VnQ1dvaENBd0JDeUFPSVFNZ0FnUkFJQUlnSW1vZ0EwRWdJQUpyRUFJYUlBVW9BdERxQVNFQ0lBVkJBRFlDME9vQklBVWdCU2tEa09vQklBVXBBTERxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRGtPb0JJQVVnQlNrRG1Pb0JJQVVwQUxqcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RtT29CSUFVZ0JTa0RvT29CSUFVcEFNRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEb09vQklBVWdCU2tEcU9vQklBVXBBTWpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRHFPb0JJQU1nQW10QklHb2hBd3NnQ1NBT2FpSUNJQU5CSUdwUEJFQWdBa0VnYXlFR0lBVXBBNmpxQVNFL0lBVXBBNkRxQVNGQUlBVXBBNWpxQVNGQklBVXBBNURxQVNGQ0EwQWdBeWtBR0VMUDF0Tyswc2VyMlVKK0lEOThRaCtKUW9lVnI2K1l0dDZibm45K0lUOGdBeWtBRUVMUDF0Tyswc2VyMlVKK0lFQjhRaCtKUW9lVnI2K1l0dDZibm45K0lVQWdBeWtBQ0VMUDF0Tyswc2VyMlVKK0lFRjhRaCtKUW9lVnI2K1l0dDZibm45K0lVRWdBeWtBQUVMUDF0Tyswc2VyMlVKK0lFSjhRaCtKUW9lVnI2K1l0dDZibm45K0lVSWdBMEVnYWlJRElBWk5EUUFMSUFVZ1B6Y0RxT29CSUFVZ1FEY0RvT29CSUFVZ1FUY0RtT29CSUFVZ1FqY0RrT29CQ3lBQ0lBTk5EUUVnSWlBRElBSWdBMnNpQ0JBQ0dnc2dCU0FJTmdMUTZnRUxJRFVnRldzaEF5QVZJQnRxSVFJZ0NTQU9haUVPSUFRb0FqQkZEUUFMSUNrcEF3QWlQMEovVVNBL0lBNGdIV3VzVVhKRkJFQkJiQ0VKREFZTElBVW9BdURwQVFSQVFXb2hDU0FEUVFSSkRRWWdCU2dDNk9vQlJRUkFJQ0lnQlNnQzBPb0JhaUVLQW40Z0JTa0RpT29CSWo5Q0lGb0VRQ0FGS1FPWTZnRWlRRUlIaVNBRktRT1E2Z0VpUVVJQmlYd2dCU2tEb09vQklrSkNESWw4SUFVcEE2anFBU0pEUWhLSmZDQkJRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOUlFQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZvVkNoNVd2cjVpMjNwdWVmMzVDbmFPMTZvT3hqWXI2QUgwZ1FrTFAxdE8rMHNlcjJVSitRaCtKUW9lVnI2K1l0dDZibm45K2hVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNCRFFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5REFFTElBVXBBNkRxQVVMRno5bXk4ZVc2NmlkOEN5QS9mQ0UvSUNJaEJnTkFJQW9nQmtFSWFpSUhUd1JBSUFZcEFBQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUliaVVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0UvSUFjaEJnd0JDd3NDUUNBS0lBWkJCR29pQ0VrRVFDQUdJUWdNQVFzZ0JqVUFBRUtIbGErdm1MYmVtNTUvZmlBL2hVSVhpVUxQMXRPKzBzZXIyVUorUXZuejNmR1o5cG1yRm53aFB3c0RRQ0FJSUFwSkJFQWdDREVBQUVMRno5bXk4ZVc2NmlkK0lEK0ZRZ3VKUW9lVnI2K1l0dDZibm45K0lUOGdDRUVCYWlFSURBRUxDeUFDS0FBQUlEOUNJWWdnUDRWQ3o5YlR2dExIcTlsQ2ZpSS9RaDJJSUQrRlF2bnozZkdaOXBtckZuNGlQMElnaUNBL2hhZEhEUWNMSUFOQkJHc2hBeUFDUVFScUlRSUxJQTRnSFdzaUNVR0pmMDhOQkNBQklBbHJJUUVnQ1NBZGFpRWRRUUVoUGd3QkN3dEJ1SDhoQnlBRERRUWdIU0FBYXlFSERBUUxRV3doQ1F3QkMwRzRmeUVKQzBHNGZ5RUhJQWxCZGtZZ1BuRU5BUXNnQ1NFSEN5Z0NBQTBBSUFWQi9Pb0JhaWdDQUNFQklBVkIrT29CYWlnQ0FDRUFJQVVRR0NBRktBS3c2d0VnQUNBQkVCTWdCVUVBTmdLdzZ3RWdCU2dDcE9zQklnSUVRQUpBQWtBQ1FBSkFJQUlvQWdBaUF3UkFJQUJGRFFJZ0FTQURJQUFSQWdBTUFRc2dBRVVOQWdzZ0FTQUNJQUFSQWdBTUFnc2dBeEFHQ3lBQ0VBWUxJQVZCQURZQ3BPc0JDeUFBQkVBZ0FTQUZJQUFSQWdBTUFRc2dCUkFHQ3lBRVFlQUJhaVFBSUFjTEM2Z1ZDUUJCaUFnTERRRUFBQUFCQUFBQUFnQUFBQUlBUWFBSUM3TUdBUUFBQUFFQUFBQUNBQUFBQWdBQUFDWUFBQUNDQUFBQUlRVUFBRW9BQUFCbkNBQUFKZ0FBQU1BQkFBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUtRQUFBQ3dDQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBTHdBQUFNb0NBQUNBQUFBQWlnVUFBRW9BQUFDRUNRQUFOUUFBQUhNREFBQ0FBQUFBblFVQUFFb0FBQUNnQ1FBQVBRQUFBSUVEQUFDQUFBQUE2d1VBQUVzQUFBQStDZ0FBUkFBQUFKNERBQUNBQUFBQVRRWUFBRXNBQUFDcUNnQUFTd0FBQUxNREFBQ0FBQUFBd1FZQUFFMEFBQUFmRFFBQVRRQUFBRk1FQUFDQUFBQUFJd2dBQUZFQUFBQ21Ed0FBVkFBQUFKa0VBQUNBQUFBQVN3a0FBRmNBQUFDeEVnQUFXQUFBQU5vRUFBQ0FBQUFBYndrQUFGMEFBQUFqRkFBQVZBQUFBRVVGQUFDQUFBQUFWQW9BQUdvQUFBQ01GQUFBYWdBQUFLOEZBQUNBQUFBQWRna0FBSHdBQUFCT0VBQUFmQUFBQU5JQ0FBQ0FBQUFBWXdjQUFKRUFBQUNRQndBQWtnQUFBQUFBQUFBQkFBQUFBUUFBQUFVQUFBQU5BQUFBSFFBQUFEMEFBQUI5QUFBQS9RQUFBUDBCQUFEOUF3QUEvUWNBQVAwUEFBRDlId0FBL1Q4QUFQMS9BQUQ5L3dBQS9mOEJBUDMvQXdEOS93Y0EvZjhQQVAzL0h3RDkvejhBL2Y5L0FQMy8vd0Q5Ly84Qi9mLy9BLzMvL3dmOS8vOFAvZi8vSC8zLy96LzkvLzkvQUFBQUFBRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBREFBQUFCQUFBQUFVQUFBQUdBQUFBQndBQUFBZ0FBQUFKQUFBQUNnQUFBQXNBQUFBTUFBQUFEUUFBQUE0QUFBQVBBQUFBRUFBQUFCRUFBQUFTQUFBQUV3QUFBQlFBQUFBVkFBQUFGZ0FBQUJjQUFBQVlBQUFBR1FBQUFCb0FBQUFiQUFBQUhBQUFBQjBBQUFBZUFBQUFId0FBQUNBQUFBQWhBQUFBSWdBQUFDTUFBQUFsQUFBQUp3QUFBQ2tBQUFBckFBQUFMd0FBQURNQUFBQTdBQUFBUXdBQUFGTUFBQUJqQUFBQWd3QUFBQU1CQUFBREFnQUFBd1FBQUFNSUFBQURFQUFBQXlBQUFBTkFBQUFEZ0FBQUF3QUJBRUhnRHd0UkFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJBQUFBQVVBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFFSEVFQXVMQVFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBU0FBQUFGQUFBQUJZQUFBQVlBQUFBSEFBQUFDQUFBQUFvQUFBQU1BQUFBRUFBQUFDQUFBQUFBQUVBQUFBQ0FBQUFCQUFBQUFnQUFBQVFBQUFBSUFBQUFFQUFBQUNBQUFBQUFBRUFRWkFTQytZRUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBQkFBQUFCQUFBQUFnQUFBQUFBQUFBQVFBQkFRWUFBQUFBQUFBRUFBQUFBQkFBQUFRQUFBQUFJQUFBQlFFQUFBQUFBQUFGQXdBQUFBQUFBQVVFQUFBQUFBQUFCUVlBQUFBQUFBQUZCd0FBQUFBQUFBVUpBQUFBQUFBQUJRb0FBQUFBQUFBRkRBQUFBQUFBQUFZT0FBQUFBQUFCQlJBQUFBQUFBQUVGRkFBQUFBQUFBUVVXQUFBQUFBQUNCUndBQUFBQUFBTUZJQUFBQUFBQUJBVXdBQUFBSUFBR0JVQUFBQUFBQUFjRmdBQUFBQUFBQ0FZQUFRQUFBQUFLQmdBRUFBQUFBQXdHQUJBQUFDQUFBQVFBQUFBQUFBQUFCQUVBQUFBQUFBQUZBZ0FBQUNBQUFBVUVBQUFBQUFBQUJRVUFBQUFnQUFBRkJ3QUFBQUFBQUFVSUFBQUFJQUFBQlFvQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUlBQUJCUkFBQUFBQUFBRUZFZ0FBQUNBQUFRVVdBQUFBQUFBQ0JSZ0FBQUFnQUFNRklBQUFBQUFBQXdVb0FBQUFBQUFHQkVBQUFBQVFBQVlFUUFBQUFDQUFCd1dBQUFBQUFBQUpCZ0FDQUFBQUFBc0dBQWdBQURBQUFBUUFBQUFBRUFBQUJBRUFBQUFnQUFBRkFnQUFBQ0FBQUFVREFBQUFJQUFBQlFVQUFBQWdBQUFGQmdBQUFDQUFBQVVJQUFBQUlBQUFCUWtBQUFBZ0FBQUZDd0FBQUNBQUFBVU1BQUFBQUFBQUJnOEFBQUFnQUFFRkVnQUFBQ0FBQVFVVUFBQUFJQUFDQlJnQUFBQWdBQUlGSEFBQUFDQUFBd1VvQUFBQUlBQUVCVEFBQUFBQUFCQUdBQUFCQUFBQUR3WUFnQUFBQUFBT0JnQkFBQUFBQUEwR0FDQUFRWUFYQzRjQ0FRQUJBUVVBQUFBQUFBQUZBQUFBQUFBQUJnUTlBQUFBQUFBSkJmMEJBQUFBQUE4Ri9YOEFBQUFBRlFYOS94OEFBQUFEQlFVQUFBQUFBQWNFZlFBQUFBQUFEQVg5RHdBQUFBQVNCZjMvQXdBQUFCY0YvZjkvQUFBQUJRVWRBQUFBQUFBSUJQMEFBQUFBQUE0Ri9UOEFBQUFBRkFYOS93OEFBQUFDQlFFQUFBQVFBQWNFZlFBQUFBQUFDd1g5QndBQUFBQVJCZjMvQVFBQUFCWUYvZjgvQUFBQUJBVU5BQUFBRUFBSUJQMEFBQUFBQUEwRi9SOEFBQUFBRXdYOS93Y0FBQUFCQlFFQUFBQVFBQVlFUFFBQUFBQUFDZ1g5QXdBQUFBQVFCZjMvQUFBQUFCd0YvZi8vRHdBQUd3WDkvLzhIQUFBYUJmMy8vd01BQUJrRi9mLy9BUUFBR0FYOS8vOEFRWkFaQzRZRUFRQUJBUVlBQUFBQUFBQUdBd0FBQUFBQUFBUUVBQUFBSUFBQUJRVUFBQUFBQUFBRkJnQUFBQUFBQUFVSUFBQUFBQUFBQlFrQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUFBQUFCaEFBQUFBQUFBQUdFd0FBQUFBQUFBWVdBQUFBQUFBQUJoa0FBQUFBQUFBR0hBQUFBQUFBQUFZZkFBQUFBQUFBQmlJQUFBQUFBQUVHSlFBQUFBQUFBUVlwQUFBQUFBQUNCaThBQUFBQUFBTUdPd0FBQUFBQUJBWlRBQUFBQUFBSEJvTUFBQUFBQUFrR0F3SUFBQkFBQUFRRUFBQUFBQUFBQkFVQUFBQWdBQUFGQmdBQUFBQUFBQVVIQUFBQUlBQUFCUWtBQUFBQUFBQUZDZ0FBQUFBQUFBWU1BQUFBQUFBQUJnOEFBQUFBQUFBR0VnQUFBQUFBQUFZVkFBQUFBQUFBQmhnQUFBQUFBQUFHR3dBQUFBQUFBQVllQUFBQUFBQUFCaUVBQUFBQUFBRUdJd0FBQUFBQUFRWW5BQUFBQUFBQ0Jpc0FBQUFBQUFNR013QUFBQUFBQkFaREFBQUFBQUFGQm1NQUFBQUFBQWdHQXdFQUFDQUFBQVFFQUFBQU1BQUFCQVFBQUFBUUFBQUVCUUFBQUNBQUFBVUhBQUFBSUFBQUJRZ0FBQUFnQUFBRkNnQUFBQ0FBQUFVTEFBQUFBQUFBQmc0QUFBQUFBQUFHRVFBQUFBQUFBQVlVQUFBQUFBQUFCaGNBQUFBQUFBQUdHZ0FBQUFBQUFBWWRBQUFBQUFBQUJpQUFBQUFBQUJBR0F3QUJBQUFBRHdZRGdBQUFBQUFPQmdOQUFBQUFBQTBHQXlBQUFBQUFEQVlERUFBQUFBQUxCZ01JQUFBQUFBb0dBd1FBUWFRZEM5a0JBUUFBQUFNQUFBQUhBQUFBRHdBQUFCOEFBQUEvQUFBQWZ3QUFBUDhBQUFEL0FRQUEvd01BQVA4SEFBRC9Ed0FBL3g4QUFQOC9BQUQvZndBQS8vOEFBUC8vQVFELy93TUEvLzhIQVAvL0R3RC8veDhBLy84L0FQLy9md0QvLy84QS8vLy9BZi8vL3dQLy8vOEgvLy8vRC8vLy94Ly8vLzgvLy8vL2Z3QUFBQUFCQUFBQUFnQUFBQVFBQUFBQUFBQUFBZ0FBQUFRQUFBQUlBQUFBQUFBQUFBRUFBQUFDQUFBQUFRQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBZ0FBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0JCZ0I4TEE0QVJBUT09Ijt2YXIgeWU9bmV3IFBBLG1lPSExO2FzeW5jIGZ1bmN0aW9uIENyKEEsdCxlKXtsZXQgST1udWxsO3R5cGVvZiBBIT0ic3RyaW5nIj9JPUEuaHJlZjpBLnN0YXJ0c1dpdGgoImh0dHAiKT9JPUE6ST1gJHt0fS8ke0F9YCxJLmVuZHNXaXRoKCIuanMiKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC0zKSksSS5lbmRzV2l0aCgiLndhc20iKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC01KSksSS5lbmRzV2l0aCgiLndhc20uenN0IikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtOSkpO2xldCByPWAke0l9Lndhc21gLGc9YXdhaXQgeEEuZ2V0KGAke3J9LnpzdGAse3Jlc3BvbnNlVHlwZToiYXJyYXlidWZmZXIiLHBhcmFtczplfSk7bWV8fChhd2FpdCB5ZS5pbml0KCksbWU9ITApO2xldCBuPXllLmRlY29kZShuZXcgVWludDhBcnJheShnLmRhdGEpKS5idWZmZXI7cmV0dXJuKGF3YWl0IGltcG9ydChgJHtJfS5qc2ApKS5kZWZhdWx0KHt3YXNtQmluYXJ5Om59KX12YXIgd2U9Q3I7dmFyIGpBPW5ldyBNYXA7YXN5bmMgZnVuY3Rpb24gQnIoQSx0LGUpe2xldCBJPUEscj1BLGc9bnVsbDtyZXR1cm4gdHlwZW9mIEEhPSJzdHJpbmciJiYoST1uZXcgVVJMKEEuaHJlZikscj1JLmhyZWYpLGpBLmhhcyhyKT9nPWF3YWl0IGpBLmdldChyKTooakEuc2V0KHIsd2UoSSx0LGUpKSxnPWF3YWl0IGpBLmdldChyKSksZ312YXIgcGU9QnI7dmFyIGFyPXtUZXh0RmlsZToiVGV4dEZpbGUiLEJpbmFyeUZpbGU6IkJpbmFyeUZpbGUiLFRleHRTdHJlYW06IlRleHRTdHJlYW0iLEJpbmFyeVN0cmVhbToiQmluYXJ5U3RyZWFtIixJbWFnZToiSW1hZ2UiLFBvaW50U2V0OiJQb2ludFNldCIsTWVzaDoiTWVzaCIsUG9seURhdGE6IlBvbHlEYXRhIixUcmFuc2Zvcm1MaXN0OiJUcmFuc2Zvcm1MaXN0IixKc29uQ29tcGF0aWJsZToiSnNvbkNvbXBhdGlibGUifSxkPWFyO3ZhciBRcj17SW50ODoiaW50OCIsVUludDg6InVpbnQ4IixJbnQxNjoiaW50MTYiLFVJbnQxNjoidWludDE2IixJbnQzMjoiaW50MzIiLFVJbnQzMjoidWludDMyIixJbnQ2NDoiaW50NjQiLFVJbnQ2NDoidWludDY0IixTaXplVmFsdWVUeXBlOiJ1aW50NjQiLElkZW50aWZpZXJUeXBlOiJ1aW50NjQiLEluZGV4VmFsdWVUeXBlOiJpbnQ2NCIsT2Zmc2V0VmFsdWVUeXBlOiJpbnQ2NCJ9LFU9UXI7dmFyIEVyPXtGbG9hdDMyOiJmbG9hdDMyIixGbG9hdDY0OiJmbG9hdDY0IixTcGFjZVByZWNpc2lvblR5cGU6ImZsb2F0NjQifSxWPUVyO2Z1bmN0aW9uIGNyKEEsdCl7bGV0IGU9bnVsbDtzd2l0Y2goQSl7Y2FzZSBVLlVJbnQ4OntlPW5ldyBVaW50OEFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQ4OntlPW5ldyBJbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBVLlVJbnQxNjp7ZT1uZXcgVWludDE2QXJyYXkodCk7YnJlYWt9Y2FzZSBVLkludDE2OntlPW5ldyBJbnQxNkFycmF5KHQpO2JyZWFrfWNhc2UgVS5VSW50MzI6e2U9bmV3IFVpbnQzMkFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQzMjp7ZT1uZXcgSW50MzJBcnJheSh0KTticmVha31jYXNlIFUuVUludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdVaW50NjRBcnJheT09ImZ1bmN0aW9uIj9lPW5ldyBCaWdVaW50NjRBcnJheSh0KTplPW5ldyBVaW50OEFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnSW50NjRBcnJheT09ImZ1bmN0aW9uIj9lPW5ldyBCaWdJbnQ2NEFycmF5KHQpOmU9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBWLkZsb2F0MzI6e2U9bmV3IEZsb2F0MzJBcnJheSh0KTticmVha31jYXNlIFYuRmxvYXQ2NDp7ZT1uZXcgRmxvYXQ2NEFycmF5KHQpO2JyZWFrfWNhc2UibnVsbCI6e2U9bnVsbDticmVha31jYXNlIG51bGw6e2U9bnVsbDticmVha31kZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVHlwZSBpcyBub3Qgc3VwcG9ydGVkIGFzIGEgVHlwZWRBcnJheSIpfXJldHVybiBlfXZhciBxPWNyO3ZhciBSZT10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcj09ImZ1bmN0aW9uIixTZT1uZXcgVGV4dEVuY29kZXIsRmU9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpO2Z1bmN0aW9uIGZyKEEsdCl7bGV0IGU9e2ZsYWdzOiJyIixlbmNvZGluZzoiYmluYXJ5In0sST1BLmZzX29wZW4odCxlLmZsYWdzKSxnPUEuZnNfc3RhdCh0KS5zaXplLG89bnVsbDtSZT9vPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihnKTpvPW5ldyBBcnJheUJ1ZmZlcihnKTtsZXQgbj1uZXcgVWludDhBcnJheShvKTtyZXR1cm4gQS5mc19yZWFkKEksbiwwLGcsMCksQS5mc19jbG9zZShJKSxufWZ1bmN0aW9uIE5lKEEsdCxlKXtsZXQgST1udWxsO1JlP0k9bmV3IFNoYXJlZEFycmF5QnVmZmVyKGUpOkk9bmV3IEFycmF5QnVmZmVyKGUpO2xldCByPW5ldyBVaW50OEFycmF5KEkpLGc9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLHQsZSk7cmV0dXJuIHIuc2V0KGcpLHJ9ZnVuY3Rpb24gdyhBLHQsZSxJKXtsZXQgcj0wO3JldHVybiB0IT09bnVsbCYmKHI9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfYXJyYXlfYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSxJLHQuYnVmZmVyLmJ5dGVMZW5ndGhdKSxBLkhFQVBVOC5zZXQobmV3IFVpbnQ4QXJyYXkodC5idWZmZXIpLHIpKSxyfWZ1bmN0aW9uIHgoQSx0LGUpe2xldCBJPUpTT04uc3RyaW5naWZ5KHQpLHI9QS5sZW5ndGhCeXRlc1VURjgoSSkrMSxnPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2pzb25fYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSxyXSk7QS5zdHJpbmdUb1VURjgoSSxnLHIpfWZ1bmN0aW9uIFMoQSx0LGUsSSl7bGV0IHI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxlXSksZz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LGVdKSxvPU5lKEEscixnKTtyZXR1cm4gcShJLG8uYnVmZmVyKX1mdW5jdGlvbiB1QShBLHQpe2xldCBlPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9qc29uX2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIl0sWzAsdF0pLEk9QS5VVEY4VG9TdHJpbmcoZSk7cmV0dXJuIEpTT04ucGFyc2UoSSl9ZnVuY3Rpb24gbHIoQSx0LGUsSSl7SSE9bnVsbCYmSS5sZW5ndGg+MCYmSS5mb3JFYWNoKGZ1bmN0aW9uKEIscyl7c3dpdGNoKEIudHlwZSl7Y2FzZSBkLlRleHRTdHJlYW06e2xldCBDPVNlLmVuY29kZShCLmRhdGEuZGF0YSksbD13KEEsQyxzLDApLGE9e3NpemU6Qy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTt4KEEsYSxzKTticmVha31jYXNlIGQuSnNvbkNvbXBhdGlibGU6e2xldCBDPVNlLmVuY29kZShKU09OLnN0cmluZ2lmeShCLmRhdGEpKSxsPXcoQSxDLHMsMCksYT17c2l6ZTpDLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O3goQSxhLHMpO2JyZWFrfWNhc2UgZC5CaW5hcnlTdHJlYW06e2xldCBDPUIuZGF0YS5kYXRhLGw9dyhBLEMscywwKSxhPXtzaXplOkMuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07eChBLGEscyk7YnJlYWt9Y2FzZSBkLlRleHRGaWxlOntBLmZzX3dyaXRlRmlsZShCLmRhdGEucGF0aCxCLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBkLkJpbmFyeUZpbGU6e0EuZnNfd3JpdGVGaWxlKEIuZGF0YS5wYXRoLEIuZGF0YS5kYXRhKTticmVha31jYXNlIGQuSW1hZ2U6e2xldCBDPUIuZGF0YSxsPXcoQSxDLmRhdGEscywwKSxhPXcoQSxDLmRpcmVjdGlvbixzLDEpLFE9dHlwZW9mIEMubWV0YWRhdGE/LmVudHJpZXM8InUiP0FycmF5LmZyb20oQy5tZXRhZGF0YS5lbnRyaWVzKCkpOltdLGY9e2ltYWdlVHlwZTpDLmltYWdlVHlwZSxuYW1lOkMubmFtZSxvcmlnaW46Qy5vcmlnaW4sc3BhY2luZzpDLnNwYWNpbmcsZGlyZWN0aW9uOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7YX1gLHNpemU6Qy5zaXplLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbWV0YWRhdGE6UX07eChBLGYscyk7YnJlYWt9Y2FzZSBkLk1lc2g6e2xldCBDPUIuZGF0YSxsPXcoQSxDLnBvaW50cyxzLDApLGE9dyhBLEMuY2VsbHMscywxKSxRPXcoQSxDLnBvaW50RGF0YSxzLDIpLGY9dyhBLEMuY2VsbERhdGEscywzKSxjPXttZXNoVHlwZTpDLm1lc2hUeXBlLG5hbWU6Qy5uYW1lLG51bWJlck9mUG9pbnRzOkMubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG51bWJlck9mQ2VsbHM6Qy5udW1iZXJPZkNlbGxzLGNlbGxzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7YX1gLGNlbGxCdWZmZXJTaXplOkMuY2VsbEJ1ZmZlclNpemUsbnVtYmVyT2ZQb2ludFBpeGVsczpDLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLG51bWJlck9mQ2VsbFBpeGVsczpDLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YH07eChBLGMscyk7YnJlYWt9Y2FzZSBkLlBvaW50U2V0OntsZXQgQz1CLmRhdGEsbD13KEEsQy5wb2ludHMscywwKSxhPXcoQSxDLnBvaW50RGF0YSxzLDEpLFE9e3BvaW50U2V0VHlwZTpDLnBvaW50U2V0VHlwZSxuYW1lOkMubmFtZSxudW1iZXJPZlBvaW50czpDLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxudW1iZXJPZlBvaW50UGl4ZWxzOkMubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHthfWB9O3goQSxRLHMpO2JyZWFrfWNhc2UgZC5UcmFuc2Zvcm1MaXN0OntsZXQgQz1CLmRhdGEsbD1bXSxhPTA7Qy5mb3JFYWNoKFE9PntsZXQgZj0iIixjPSIiO1EudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihmPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dyhBLFEuZml4ZWRQYXJhbWV0ZXJzLHMsYSl9YCxhKz0xLGM9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt3KEEsUS5wYXJhbWV0ZXJzLHMsYSl9YCxhKz0xKTtsZXQgRD17dHJhbnNmb3JtVHlwZTpRLnRyYW5zZm9ybVR5cGUsbnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM6US5udW1iZXJPZkZpeGVkUGFyYW1ldGVycyxudW1iZXJPZlBhcmFtZXRlcnM6US5udW1iZXJPZlBhcmFtZXRlcnMsbmFtZTpRLm5hbWUsaW5wdXRTcGFjZU5hbWU6US5pbnB1dFNwYWNlTmFtZSxvdXRwdXRTcGFjZU5hbWU6US5vdXRwdXRTcGFjZU5hbWUscGFyYW1ldGVyczpjLGZpeGVkUGFyYW1ldGVyczpmfTtsLnB1c2goRCl9KSx4KEEsbCxzKTticmVha31jYXNlIGQuUG9seURhdGE6e2xldCBDPUIuZGF0YSxsPXcoQSxDLnBvaW50cyxzLDApLGE9dyhBLEMudmVydGljZXMscywxKSxRPXcoQSxDLmxpbmVzLHMsMiksZj13KEEsQy5wb2x5Z29ucyxzLDMpLGM9dyhBLEMudHJpYW5nbGVTdHJpcHMscyw0KSxEPXcoQSxDLnBvaW50RGF0YSxzLDUpLEY9dyhBLEMucG9pbnREYXRhLHMsNikseT17cG9seURhdGFUeXBlOkMucG9seURhdGFUeXBlLG5hbWU6Qy5uYW1lLG51bWJlck9mUG9pbnRzOkMubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLHZlcnRpY2VzQnVmZmVyU2l6ZTpDLnZlcnRpY2VzQnVmZmVyU2l6ZSx2ZXJ0aWNlczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2F9YCxsaW5lc0J1ZmZlclNpemU6Qy5saW5lc0J1ZmZlclNpemUsbGluZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAscG9seWdvbnNCdWZmZXJTaXplOkMucG9seWdvbnNCdWZmZXJTaXplLHBvbHlnb25zOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gLHRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZTpDLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZSx0cmlhbmdsZVN0cmlwczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YCxudW1iZXJPZlBvaW50UGl4ZWxzOkMubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtEfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOkMubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Rn1gfTt4KEEseSxzKTticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBpbnB1dCBJbnRlcmZhY2VUeXBlIil9fSksQS5yZXNldE1vZHVsZVN0ZG91dCgpLEEucmVzZXRNb2R1bGVTdGRlcnIoKTtsZXQgcj1BLnN0YWNrU2F2ZSgpLGc9MDt0cnl7Zz1BLmNhbGxNYWluKHQuc2xpY2UoKSl9Y2F0Y2goQil7dGhyb3cgdHlwZW9mIEI9PSJudW1iZXIiJiYoY29uc29sZS5sb2coIkV4Y2VwdGlvbiB3aGlsZSBydW5uaW5nIHBpcGVsaW5lOiIpLGNvbnNvbGUubG9nKCJzdGRvdXQ6IixBLmdldE1vZHVsZVN0ZG91dCgpKSxjb25zb2xlLmVycm9yKCJzdGRlcnI6IixBLmdldE1vZHVsZVN0ZGVycigpKSx0eXBlb2YgQS5nZXRFeGNlcHRpb25NZXNzYWdlPCJ1Ij9jb25zb2xlLmVycm9yKCJleGNlcHRpb246IixBLmdldEV4Y2VwdGlvbk1lc3NhZ2UoQikpOmNvbnNvbGUuZXJyb3IoIkJ1aWxkIG1vZHVsZSBpbiBEZWJ1ZyBtb2RlIGZvciBleGNlcHRpb24gbWVzc2FnZSBpbmZvcm1hdGlvbi4iKSksQn1maW5hbGx5e0Euc3RhY2tSZXN0b3JlKHIpfWxldCBvPUEuZ2V0TW9kdWxlU3Rkb3V0KCksbj1BLmdldE1vZHVsZVN0ZGVycigpLEU9W107cmV0dXJuIGUhPW51bGwmJmUubGVuZ3RoPjAmJmc9PT0wJiZlLmZvckVhY2goZnVuY3Rpb24oQixzKXtsZXQgQz1udWxsO3N3aXRjaChCLnR5cGUpe2Nhc2UgZC5UZXh0U3RyZWFtOntsZXQgYT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLGY9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLGEsUSk7Qz17ZGF0YTpGZS5kZWNvZGUoZil9O2JyZWFrfWNhc2UgZC5Kc29uQ29tcGF0aWJsZTp7bGV0IGE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxmPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixhLFEpO0M9SlNPTi5wYXJzZShGZS5kZWNvZGUoZikpO2JyZWFrfWNhc2UgZC5CaW5hcnlTdHJlYW06e2xldCBhPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSk7Qz17ZGF0YTpOZShBLGEsUSl9O2JyZWFrfWNhc2UgZC5UZXh0RmlsZTp7Qz17cGF0aDpCLmRhdGEucGF0aCxkYXRhOkEuZnNfcmVhZEZpbGUoQi5kYXRhLnBhdGgse2VuY29kaW5nOiJ1dGY4In0pfTticmVha31jYXNlIGQuQmluYXJ5RmlsZTp7Qz17cGF0aDpCLmRhdGEucGF0aCxkYXRhOmZyKEEsQi5kYXRhLnBhdGgpfTticmVha31jYXNlIGQuSW1hZ2U6e2xldCBhPXVBKEEscyk7YS5kYXRhPVMoQSxzLDAsYS5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSksYS5kaXJlY3Rpb249UyhBLHMsMSxWLkZsb2F0NjQpLGEubWV0YWRhdGE9bmV3IE1hcChhLm1ldGFkYXRhKSxDPWE7YnJlYWt9Y2FzZSBkLk1lc2g6e2xldCBhPXVBKEEscyk7YS5udW1iZXJPZlBvaW50cz4wP2EucG9pbnRzPVMoQSxzLDAsYS5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUpOmEucG9pbnRzPXEoYS5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mQ2VsbHM+MD9hLmNlbGxzPVMoQSxzLDEsYS5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSk6YS5jZWxscz1xKGEubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mUG9pbnRQaXhlbHM+MD9hLnBvaW50RGF0YT1TKEEscywyLGEubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOmEucG9pbnREYXRhPXEoYS5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/YS5jZWxsRGF0YT1TKEEscywzLGEubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6YS5jZWxsRGF0YT1xKGEubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEM9YTticmVha31jYXNlIGQuUG9pbnRTZXQ6e2xldCBhPXVBKEEscyk7YS5udW1iZXJPZlBvaW50cz4wP2EucG9pbnRzPVMoQSxzLDAsYS5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTphLnBvaW50cz1xKGEucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZQb2ludFBpeGVscz4wP2EucG9pbnREYXRhPVMoQSxzLDEsYS5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOmEucG9pbnREYXRhPXEoYS5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDPWE7YnJlYWt9Y2FzZSBkLlRyYW5zZm9ybUxpc3Q6e2xldCBhPXVBKEEscyksUT0wO2EuZm9yRWFjaCgoZixjKT0+e2YudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihmLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzPjAmJihhW2NdLmZpeGVkUGFyYW1ldGVycz1TKEEscyxRLFYuRmxvYXQ2NCkpLFErPTEsZi5udW1iZXJPZlBhcmFtZXRlcnM+MCYmKGFbY10ucGFyYW1ldGVycz1TKEEscyxRLGYudHJhbnNmb3JtVHlwZS5wYXJhbWV0ZXJzVmFsdWVUeXBlKSksUSs9MSl9KSxDPWE7YnJlYWt9Y2FzZSBkLlBvbHlEYXRhOntsZXQgYT11QShBLHMpO2EubnVtYmVyT2ZQb2ludHM+MD9hLnBvaW50cz1TKEEscywwLFYuRmxvYXQzMik6YS5wb2ludHM9bmV3IEZsb2F0MzJBcnJheSxhLnZlcnRpY2VzQnVmZmVyU2l6ZT4wP2EudmVydGljZXM9UyhBLHMsMSxVLlVJbnQzMik6YS52ZXJ0aWNlcz1uZXcgVWludDMyQXJyYXksYS5saW5lc0J1ZmZlclNpemU+MD9hLmxpbmVzPVMoQSxzLDIsVS5VSW50MzIpOmEubGluZXM9bmV3IFVpbnQzMkFycmF5LGEucG9seWdvbnNCdWZmZXJTaXplPjA/YS5wb2x5Z29ucz1TKEEscywzLFUuVUludDMyKTphLnBvbHlnb25zPW5ldyBVaW50MzJBcnJheSxhLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZT4wP2EudHJpYW5nbGVTdHJpcHM9UyhBLHMsNCxVLlVJbnQzMik6YS50cmlhbmdsZVN0cmlwcz1uZXcgVWludDMyQXJyYXksYS5udW1iZXJPZlBvaW50UGl4ZWxzPjA/YS5wb2ludERhdGE9UyhBLHMsNSxhLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6YS5wb2ludERhdGE9cShhLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/YS5jZWxsRGF0YT1TKEEscyw2LGEucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOmEuY2VsbERhdGE9cShhLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQz1hO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIG91dHB1dCBJbnRlcmZhY2VUeXBlIil9bGV0IGw9e3R5cGU6Qi50eXBlLGRhdGE6Q307RS5wdXNoKGwpfSkse3JldHVyblZhbHVlOmcsc3Rkb3V0Om8sc3RkZXJyOm4sb3V0cHV0czpFfX12YXIgVWU9bHI7dmFyIHVyPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPCJ1IjtmdW5jdGlvbiBkcihBLHQpe2lmKEE9PW51bGwpcmV0dXJuW107bGV0IGU9W107Zm9yKGxldCBJPTA7STxBLmxlbmd0aDtJKyspe2xldCByPURyKEFbSV0sdCk7ciE9PW51bGwmJmUucHVzaChyKX1yZXR1cm4gZX1mdW5jdGlvbiBEcihBLHQpe2lmKEE9PW51bGwpcmV0dXJuIG51bGw7bGV0IGU9bnVsbDtyZXR1cm4gQS5idWZmZXIhPT12b2lkIDA/ZT1BLmJ1ZmZlcjpBLmJ5dGVMZW5ndGghPT12b2lkIDAmJihlPUEpLHVyJiZlIGluc3RhbmNlb2YgU2hhcmVkQXJyYXlCdWZmZXI/bnVsbDp0P2U6ZS5zbGljZSgwKX12YXIgR2U9ZHI7ZnVuY3Rpb24gaHIoQSl7cmV0dXJuW0EuZGF0YSxBLmRpcmVjdGlvbl19dmFyIGtlPWhyO2Z1bmN0aW9uIHlyKEEpe3JldHVybltBLnBvaW50cyxBLnBvaW50RGF0YSxBLmNlbGxzLEEuY2VsbERhdGFdfXZhciBMZT15cjtmdW5jdGlvbiBtcihBKXtyZXR1cm5bQS5wb2ludHMsQS52ZXJ0aWNlcyxBLmxpbmVzLEEucG9seWdvbnMsQS50cmlhbmdsZVN0cmlwcyxBLnBvaW50RGF0YSxBLmNlbGxEYXRhXX12YXIgYmU9bXI7YXN5bmMgZnVuY3Rpb24gd3IoQSx0LGUsSSl7bGV0IHI9VWUoQSx0LGUsSSksZz1bXTtyZXR1cm4gci5vdXRwdXRzLmZvckVhY2goZnVuY3Rpb24obyl7aWYoby50eXBlPT09ZC5CaW5hcnlTdHJlYW18fG8udHlwZT09PWQuQmluYXJ5RmlsZSl7bGV0IG49by5kYXRhO2cucHVzaChuKX1lbHNlIGlmKG8udHlwZT09PWQuSW1hZ2Upe2xldCBuPW8uZGF0YTtnLnB1c2goLi4ua2UobikpfWVsc2UgaWYoby50eXBlPT09ZC5NZXNoKXtsZXQgbj1vLmRhdGE7Zy5wdXNoKC4uLkxlKG4pKX1lbHNlIGlmKG8udHlwZT09PWQuUG9seURhdGEpe2xldCBuPW8uZGF0YTtnLnB1c2goLi4uYmUobikpfX0pLF9BKHIsR2UoZywhMCkpfXZhciBKZT13cjt2YXIgcHI9e3J1blBpcGVsaW5lOmFzeW5jIGZ1bmN0aW9uKEEsdCxlLEkscixnKXtsZXQgbz1hd2FpdCBwZShBLHQsZyk7cmV0dXJuIGF3YWl0IEplKG8sZSxJLHIpfX07RkEocHIpOyUwQS8qISBCdW5kbGVkIGxpY2Vuc2UgaW5mb3JtYXRpb246JTBBJTBBY29tbGluay9kaXN0L2VzbS9jb21saW5rLm1qczolMEEgICgqKiUwQSAgICogQGxpY2Vuc2UlMEEgICAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMlMEEgICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wJTBBICAgKiklMEEqLyUwQSc7WXIoVHIpO2V4cG9ydHtpdCBhcyBieXVSZWFkTWVzaCxvdCBhcyBieXVXcml0ZU1lc2gsWCBhcyBleHRlbnNpb25Ub01lc2hJbyxfIGFzIGV4dGVuc2lvblRvUG9pbnRTZXRJbyxudCBhcyBmcmVlU3VyZmVyQXNjaWlSZWFkTWVzaCxhdCBhcyBmcmVlU3VyZmVyQXNjaWlXcml0ZU1lc2gsc3QgYXMgZnJlZVN1cmZlckJpbmFyeVJlYWRNZXNoLEl0IGFzIGZyZWVTdXJmZXJCaW5hcnlXcml0ZU1lc2gseSBhcyBnZXREZWZhdWx0V2ViV29ya2VyLGMgYXMgZ2V0UGlwZWxpbmVXb3JrZXJVcmwsZCBhcyBnZXRQaXBlbGluZXNCYXNlVXJsLHplIGFzIG16M1JlYWRNZXNoLEN0IGFzIG16M1JlYWRQb2ludFNldCxYZSBhcyBtejNXcml0ZU1lc2gsUXQgYXMgbXozV3JpdGVQb2ludFNldCxxZSBhcyBvYmpSZWFkTWVzaCxFdCBhcyBvYmpSZWFkUG9pbnRTZXQsS2UgYXMgb2JqV3JpdGVNZXNoLGx0IGFzIG9ialdyaXRlUG9pbnRTZXQsWmUgYXMgb2ZmUmVhZE1lc2gscHQgYXMgb2ZmUmVhZFBvaW50U2V0LFZlIGFzIG9mZldyaXRlTWVzaCx1dCBhcyBvZmZXcml0ZVBvaW50U2V0LHVuIGFzIHJlYWRNZXNoLFduIGFzIHJlYWRQb2ludFNldCxkQiBhcyBzZXREZWZhdWx0V2ViV29ya2VyLFlyIGFzIHNldFBpcGVsaW5lV29ya2VyVXJsLEVCIGFzIHNldFBpcGVsaW5lc0Jhc2VVcmwsamUgYXMgc3RsUmVhZE1lc2gsdmUgYXMgc3RsV3JpdGVNZXNoLHR0IGFzIHN3Y1JlYWRNZXNoLHJ0IGFzIHN3Y1dyaXRlTWVzaCxIZSBhcyB2dGtQb2x5RGF0YVJlYWRNZXNoLGd0IGFzIHZ0a1BvbHlEYXRhUmVhZFBvaW50U2V0LFRlIGFzIHZ0a1BvbHlEYXRhV3JpdGVNZXNoLEJ0IGFzIHZ0a1BvbHlEYXRhV3JpdGVQb2ludFNldCxfZSBhcyB3YXNtUmVhZE1lc2gsZnQgYXMgd2FzbVJlYWRQb2ludFNldCwkZSBhcyB3YXNtV3JpdGVNZXNoLGN0IGFzIHdhc21Xcml0ZVBvaW50U2V0LEF0IGFzIHdhc21ac3RkUmVhZE1lc2gsbXQgYXMgd2FzbVpzdGRSZWFkUG9pbnRTZXQsZXQgYXMgd2FzbVpzdGRXcml0ZU1lc2gsZHQgYXMgd2FzbVpzdGRXcml0ZVBvaW50U2V0LGNuIGFzIHdyaXRlTWVzaCxPbiBhcyB3cml0ZVBvaW50U2V0fTsKLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjoKCmNvbWxpbmsvZGlzdC9lc20vY29tbGluay5tanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKICAgKikKKi8K""" +default_js_module = """data:text/javascript;base64,dmFyIEtyPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIganI9KEEsZSk9Pntmb3IodmFyIHQgaW4gZSlLcihBLHQse2dldDplW3RdLGVudW1lcmFibGU6ITB9KX07dmFyIHZyPW5ldyBNYXAoW1sidnRrIiwidnRrIl0sWyJieXUiLCJieXUiXSxbImZzYSIsImZyZWUtc3VyZmVyLWFzY2lpIl0sWyJmc2IiLCJmcmVlLXN1cmZlci1iaW5hcnkiXSxbIm16MyIsIm16MyJdLFsib2JqIiwib2JqIl0sWyJvZmYiLCJvZmYiXSxbInN0bCIsInN0bCJdLFsic3djIiwic3djIl0sWyJpd20iLCJ3YXNtIl0sWyJpd20uY2JvciIsIndhc20iXSxbIml3bS5jYm9yLnpzdCIsIndhc20tenN0ZCJdXSksWD12cjt2YXIgWnI9bmV3IE1hcChbWyJ2dGsiLCJ2dGsiXSxbIm9iaiIsIm9iaiJdLFsib2ZmIiwib2ZmIl0sWyJtejMiLCJtejMiXSxbIml3bSIsIndhc20iXSxbIml3bS5jYm9yIiwid2FzbSJdLFsiaXdtLmNib3IuenN0Iiwid2FzbS16c3RkIl1dKSxfPVpyO3ZhciBWcj17SW50ODoiaW50OCIsVUludDg6InVpbnQ4IixJbnQxNjoiaW50MTYiLFVJbnQxNjoidWludDE2IixJbnQzMjoiaW50MzIiLFVJbnQzMjoidWludDMyIixJbnQ2NDoiaW50NjQiLFVJbnQ2NDoidWludDY0IixTaXplVmFsdWVUeXBlOiJ1aW50NjQiLElkZW50aWZpZXJUeXBlOiJ1aW50NjQiLEluZGV4VmFsdWVUeXBlOiJpbnQ2NCIsT2Zmc2V0VmFsdWVUeXBlOiJpbnQ2NCJ9LEc9VnI7dmFyIHpyPXtGbG9hdDMyOiJmbG9hdDMyIixGbG9hdDY0OiJmbG9hdDY0IixTcGFjZVByZWNpc2lvblR5cGU6ImZsb2F0NjQifSwkPXpyO2Z1bmN0aW9uIFhyKEEsZSl7bGV0IHQ9bnVsbDtzd2l0Y2goQSl7Y2FzZSBHLlVJbnQ4Ont0PW5ldyBVaW50OEFycmF5KGUpO2JyZWFrfWNhc2UgRy5JbnQ4Ont0PW5ldyBJbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBHLlVJbnQxNjp7dD1uZXcgVWludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBHLkludDE2Ont0PW5ldyBJbnQxNkFycmF5KGUpO2JyZWFrfWNhc2UgRy5VSW50MzI6e3Q9bmV3IFVpbnQzMkFycmF5KGUpO2JyZWFrfWNhc2UgRy5JbnQzMjp7dD1uZXcgSW50MzJBcnJheShlKTticmVha31jYXNlIEcuVUludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdVaW50NjRBcnJheT09ImZ1bmN0aW9uIj90PW5ldyBCaWdVaW50NjRBcnJheShlKTp0PW5ldyBVaW50OEFycmF5KGUpO2JyZWFrfWNhc2UgRy5JbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnSW50NjRBcnJheT09ImZ1bmN0aW9uIj90PW5ldyBCaWdJbnQ2NEFycmF5KGUpOnQ9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSAkLkZsb2F0MzI6e3Q9bmV3IEZsb2F0MzJBcnJheShlKTticmVha31jYXNlICQuRmxvYXQ2NDp7dD1uZXcgRmxvYXQ2NEFycmF5KGUpO2JyZWFrfWNhc2UibnVsbCI6e3Q9bnVsbDticmVha31jYXNlIG51bGw6e3Q9bnVsbDticmVha31kZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVHlwZSBpcyBub3Qgc3VwcG9ydGVkIGFzIGEgVHlwZWRBcnJheSIpfXJldHVybiB0fXZhciB4PVhyO2Z1bmN0aW9uIF9yKEEpe2xldCBlPUEuc2xpY2UoKEEubGFzdEluZGV4T2YoIi4iKS0xPj4+MCkrMik7aWYoZS50b0xvd2VyQ2FzZSgpPT09Imd6Iil7bGV0IHQ9QS5zbGljZSgwLC0zKS5sYXN0SW5kZXhPZigiLiIpO2U9QS5zbGljZSgodC0xPj4+MCkrMil9ZWxzZSBpZihlLnRvTG93ZXJDYXNlKCk9PT0iY2JvciIpe2xldCB0PUEuc2xpY2UoMCwtNSkubGFzdEluZGV4T2YoIi4iKTtlPUEuc2xpY2UoKHQtMT4+PjApKzIpfWVsc2UgaWYoZS50b0xvd2VyQ2FzZSgpPT09InpzdCIpe2xldCB0PUEuc2xpY2UoMCwtMTApLmxhc3RJbmRleE9mKCIuIik7ZT1BLnNsaWNlKCh0LTE+Pj4wKSsyKX1lbHNlIGlmKGUudG9Mb3dlckNhc2UoKT09PSJ6aXAiKXtsZXQgdD1BLnNsaWNlKDAsLTQpLmxhc3RJbmRleE9mKCIuIik7ZT1BLnNsaWNlKCh0LTE+Pj4wKSsyKX1yZXR1cm4gZX12YXIgVD1fcjt2YXIgJHI9e1RleHRGaWxlOiJUZXh0RmlsZSIsQmluYXJ5RmlsZToiQmluYXJ5RmlsZSIsVGV4dFN0cmVhbToiVGV4dFN0cmVhbSIsQmluYXJ5U3RyZWFtOiJCaW5hcnlTdHJlYW0iLEltYWdlOiJJbWFnZSIsUG9pbnRTZXQ6IlBvaW50U2V0IixNZXNoOiJNZXNoIixQb2x5RGF0YToiUG9seURhdGEiLFRyYW5zZm9ybUxpc3Q6IlRyYW5zZm9ybUxpc3QiLEpzb25Db21wYXRpYmxlOiJKc29uQ29tcGF0aWJsZSJ9LFE9JHI7dmFyIEZ0PVN5bWJvbCgiQ29tbGluay5wcm94eSIpLEFpPVN5bWJvbCgiQ29tbGluay5lbmRwb2ludCIpLGdlPVN5bWJvbCgiQ29tbGluay5yZWxlYXNlUHJveHkiKSxzZT1TeW1ib2woIkNvbWxpbmsuZmluYWxpemVyIiksT0E9U3ltYm9sKCJDb21saW5rLnRocm93biIpLGt0PUE9PnR5cGVvZiBBPT0ib2JqZWN0IiYmQSE9PW51bGx8fHR5cGVvZiBBPT0iZnVuY3Rpb24iLGVpPXtjYW5IYW5kbGU6QT0+a3QoQSkmJkFbRnRdLHNlcmlhbGl6ZShBKXtsZXR7cG9ydDE6ZSxwb3J0Mjp0fT1uZXcgTWVzc2FnZUNoYW5uZWw7cmV0dXJuIGJ0KEEsZSksW3QsW3RdXX0sZGVzZXJpYWxpemUoQSl7cmV0dXJuIEEuc3RhcnQoKSxCZShBKX19LHRpPXtjYW5IYW5kbGU6QT0+a3QoQSkmJk9BIGluIEEsc2VyaWFsaXplKHt2YWx1ZTpBfSl7bGV0IGU7cmV0dXJuIEEgaW5zdGFuY2VvZiBFcnJvcj9lPXtpc0Vycm9yOiEwLHZhbHVlOnttZXNzYWdlOkEubWVzc2FnZSxuYW1lOkEubmFtZSxzdGFjazpBLnN0YWNrfX06ZT17aXNFcnJvcjohMSx2YWx1ZTpBfSxbZSxbXV19LGRlc2VyaWFsaXplKEEpe3Rocm93IEEuaXNFcnJvcj9PYmplY3QuYXNzaWduKG5ldyBFcnJvcihBLnZhbHVlLm1lc3NhZ2UpLEEudmFsdWUpOkEudmFsdWV9fSxVdD1uZXcgTWFwKFtbInByb3h5IixlaV0sWyJ0aHJvdyIsdGldXSk7ZnVuY3Rpb24gcmkoQSxlKXtmb3IobGV0IHQgb2YgQSlpZihlPT09dHx8dD09PSIqInx8dCBpbnN0YW5jZW9mIFJlZ0V4cCYmdC50ZXN0KGUpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIGJ0KEEsZT1nbG9iYWxUaGlzLHQ9WyIqIl0pe2UuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gaShvKXtpZighb3x8IW8uZGF0YSlyZXR1cm47aWYoIXJpKHQsby5vcmlnaW4pKXtjb25zb2xlLndhcm4oYEludmFsaWQgb3JpZ2luICcke28ub3JpZ2lufScgZm9yIGNvbWxpbmsgcHJveHlgKTtyZXR1cm59bGV0e2lkOnIsdHlwZTphLHBhdGg6Q309T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0sby5kYXRhKSxwPShvLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKEFBKSxCO3RyeXtsZXQgbj1DLnNsaWNlKDAsLTEpLnJlZHVjZSgobCxzKT0+bFtzXSxBKSxnPUMucmVkdWNlKChsLHMpPT5sW3NdLEEpO3N3aXRjaChhKXtjYXNlIkdFVCI6Qj1nO2JyZWFrO2Nhc2UiU0VUIjpuW0Muc2xpY2UoLTEpWzBdXT1BQShvLmRhdGEudmFsdWUpLEI9ITA7YnJlYWs7Y2FzZSJBUFBMWSI6Qj1nLmFwcGx5KG4scCk7YnJlYWs7Y2FzZSJDT05TVFJVQ1QiOntsZXQgbD1uZXcgZyguLi5wKTtCPXNpKGwpfWJyZWFrO2Nhc2UiRU5EUE9JTlQiOntsZXR7cG9ydDE6bCxwb3J0MjpzfT1uZXcgTWVzc2FnZUNoYW5uZWw7YnQoQSxzKSxCPUNlKGwsW2xdKX1icmVhaztjYXNlIlJFTEVBU0UiOkI9dm9pZCAwO2JyZWFrO2RlZmF1bHQ6cmV0dXJufX1jYXRjaChuKXtCPXt2YWx1ZTpuLFtPQV06MH19UHJvbWlzZS5yZXNvbHZlKEIpLmNhdGNoKG49Pih7dmFsdWU6bixbT0FdOjB9KSkudGhlbihuPT57bGV0W2csbF09eEEobik7ZS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZykse2lkOnJ9KSxsKSxhPT09IlJFTEVBU0UiJiYoZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixpKSxOdChlKSxzZSBpbiBBJiZ0eXBlb2YgQVtzZV09PSJmdW5jdGlvbiImJkFbc2VdKCkpfSkuY2F0Y2gobj0+e2xldFtnLGxdPXhBKHt2YWx1ZTpuZXcgVHlwZUVycm9yKCJVbnNlcmlhbGl6YWJsZSByZXR1cm4gdmFsdWUiKSxbT0FdOjB9KTtlLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnKSx7aWQ6cn0pLGwpfSl9KSxlLnN0YXJ0JiZlLnN0YXJ0KCl9ZnVuY3Rpb24gaWkoQSl7cmV0dXJuIEEuY29uc3RydWN0b3IubmFtZT09PSJNZXNzYWdlUG9ydCJ9ZnVuY3Rpb24gTnQoQSl7aWkoQSkmJkEuY2xvc2UoKX1mdW5jdGlvbiBCZShBLGUpe3JldHVybiBJZShBLFtdLGUpfWZ1bmN0aW9uIFBBKEEpe2lmKEEpdGhyb3cgbmV3IEVycm9yKCJQcm94eSBoYXMgYmVlbiByZWxlYXNlZCBhbmQgaXMgbm90IHVzZWFibGUiKX1mdW5jdGlvbiBHdChBKXtyZXR1cm4gckEoQSx7dHlwZToiUkVMRUFTRSJ9KS50aGVuKCgpPT57TnQoQSl9KX12YXIgTEE9bmV3IFdlYWtNYXAsSkE9IkZpbmFsaXphdGlvblJlZ2lzdHJ5ImluIGdsb2JhbFRoaXMmJm5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShBPT57bGV0IGU9KExBLmdldChBKXx8MCktMTtMQS5zZXQoQSxlKSxlPT09MCYmR3QoQSl9KTtmdW5jdGlvbiBvaShBLGUpe2xldCB0PShMQS5nZXQoZSl8fDApKzE7TEEuc2V0KGUsdCksSkEmJkpBLnJlZ2lzdGVyKEEsZSxBKX1mdW5jdGlvbiBuaShBKXtKQSYmSkEudW5yZWdpc3RlcihBKX1mdW5jdGlvbiBJZShBLGU9W10sdD1mdW5jdGlvbigpe30pe2xldCBpPSExLG89bmV3IFByb3h5KHQse2dldChyLGEpe2lmKFBBKGkpLGE9PT1nZSlyZXR1cm4oKT0+e25pKG8pLEd0KEEpLGk9ITB9O2lmKGE9PT0idGhlbiIpe2lmKGUubGVuZ3RoPT09MClyZXR1cm57dGhlbjooKT0+b307bGV0IEM9ckEoQSx7dHlwZToiR0VUIixwYXRoOmUubWFwKHA9PnAudG9TdHJpbmcoKSl9KS50aGVuKEFBKTtyZXR1cm4gQy50aGVuLmJpbmQoQyl9cmV0dXJuIEllKEEsWy4uLmUsYV0pfSxzZXQocixhLEMpe1BBKGkpO2xldFtwLEJdPXhBKEMpO3JldHVybiByQShBLHt0eXBlOiJTRVQiLHBhdGg6Wy4uLmUsYV0ubWFwKG49Pm4udG9TdHJpbmcoKSksdmFsdWU6cH0sQikudGhlbihBQSl9LGFwcGx5KHIsYSxDKXtQQShpKTtsZXQgcD1lW2UubGVuZ3RoLTFdO2lmKHA9PT1BaSlyZXR1cm4gckEoQSx7dHlwZToiRU5EUE9JTlQifSkudGhlbihBQSk7aWYocD09PSJiaW5kIilyZXR1cm4gSWUoQSxlLnNsaWNlKDAsLTEpKTtsZXRbQixuXT1SdChDKTtyZXR1cm4gckEoQSx7dHlwZToiQVBQTFkiLHBhdGg6ZS5tYXAoZz0+Zy50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Qn0sbikudGhlbihBQSl9LGNvbnN0cnVjdChyLGEpe1BBKGkpO2xldFtDLHBdPVJ0KGEpO3JldHVybiByQShBLHt0eXBlOiJDT05TVFJVQ1QiLHBhdGg6ZS5tYXAoQj0+Qi50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Q30scCkudGhlbihBQSl9fSk7cmV0dXJuIG9pKG8sQSksb31mdW5jdGlvbiBhaShBKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxBKX1mdW5jdGlvbiBSdChBKXtsZXQgZT1BLm1hcCh4QSk7cmV0dXJuW2UubWFwKHQ9PnRbMF0pLGFpKGUubWFwKHQ9PnRbMV0pKV19dmFyIE10PW5ldyBXZWFrTWFwO2Z1bmN0aW9uIENlKEEsZSl7cmV0dXJuIE10LnNldChBLGUpLEF9ZnVuY3Rpb24gc2koQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7W0Z0XTohMH0pfWZ1bmN0aW9uIHhBKEEpe2ZvcihsZXRbZSx0XW9mIFV0KWlmKHQuY2FuSGFuZGxlKEEpKXtsZXRbaSxvXT10LnNlcmlhbGl6ZShBKTtyZXR1cm5be3R5cGU6IkhBTkRMRVIiLG5hbWU6ZSx2YWx1ZTppfSxvXX1yZXR1cm5be3R5cGU6IlJBVyIsdmFsdWU6QX0sTXQuZ2V0KEEpfHxbXV19ZnVuY3Rpb24gQUEoQSl7c3dpdGNoKEEudHlwZSl7Y2FzZSJIQU5ETEVSIjpyZXR1cm4gVXQuZ2V0KEEubmFtZSkuZGVzZXJpYWxpemUoQS52YWx1ZSk7Y2FzZSJSQVciOnJldHVybiBBLnZhbHVlfX1mdW5jdGlvbiByQShBLGUsdCl7cmV0dXJuIG5ldyBQcm9taXNlKGk9PntsZXQgbz1JaSgpO0EuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gcihhKXshYS5kYXRhfHwhYS5kYXRhLmlkfHxhLmRhdGEuaWQhPT1vfHwoQS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixyKSxpKGEuZGF0YSkpfSksQS5zdGFydCYmQS5zdGFydCgpLEEucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7aWQ6b30sZSksdCl9KX1mdW5jdGlvbiBJaSgpe3JldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikudG9TdHJpbmcoMTYpKS5qb2luKCItIil9ZnVuY3Rpb24gZkEoQSxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseShlLGFyZ3VtZW50cyl9fXZhcnt0b1N0cmluZzpnaX09T2JqZWN0LnByb3RvdHlwZSx7Z2V0UHJvdG90eXBlT2Y6RWV9PU9iamVjdCx7aXRlcmF0b3I6SEEsdG9TdHJpbmdUYWc6T3R9PVN5bWJvbCxUQT0oQT0+ZT0+e2xldCB0PWdpLmNhbGwoZSk7cmV0dXJuIEFbdF18fChBW3RdPXQuc2xpY2UoOCwtMSkudG9Mb3dlckNhc2UoKSl9KShPYmplY3QuY3JlYXRlKG51bGwpKSxPPUE9PihBPUEudG9Mb3dlckNhc2UoKSxlPT5UQShlKT09PUEpLHFBPUE9PmU9PnR5cGVvZiBlPT09QSx7aXNBcnJheTpvQX09QXJyYXksaUE9cUEoInVuZGVmaW5lZCIpO2Z1bmN0aW9uIGNBKEEpe3JldHVybiBBIT09bnVsbCYmIWlBKEEpJiZBLmNvbnN0cnVjdG9yIT09bnVsbCYmIWlBKEEuY29uc3RydWN0b3IpJiZNKEEuY29uc3RydWN0b3IuaXNCdWZmZXIpJiZBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKEEpfXZhciBMdD1PKCJBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uIEJpKEEpe2xldCBlO3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXc/ZT1BcnJheUJ1ZmZlci5pc1ZpZXcoQSk6ZT1BJiZBLmJ1ZmZlciYmTHQoQS5idWZmZXIpLGV9dmFyIENpPXFBKCJzdHJpbmciKSxNPXFBKCJmdW5jdGlvbiIpLEp0PXFBKCJudW1iZXIiKSxtQT1BPT5BIT09bnVsbCYmdHlwZW9mIEE9PSJvYmplY3QiLFFpPUE9PkE9PT0hMHx8QT09PSExLFlBPUE9PntpZihUQShBKSE9PSJvYmplY3QiKXJldHVybiExO2xldCBlPUVlKEEpO3JldHVybihlPT09bnVsbHx8ZT09PU9iamVjdC5wcm90b3R5cGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKT09PW51bGwpJiYhKE90IGluIEEpJiYhKEhBIGluIEEpfSxFaT1BPT57aWYoIW1BKEEpfHxjQShBKSlyZXR1cm4hMTt0cnl7cmV0dXJuIE9iamVjdC5rZXlzKEEpLmxlbmd0aD09PTAmJk9iamVjdC5nZXRQcm90b3R5cGVPZihBKT09PU9iamVjdC5wcm90b3R5cGV9Y2F0Y2h7cmV0dXJuITF9fSxsaT1PKCJEYXRlIikscGk9TygiRmlsZSIpLHVpPU8oIkJsb2IiKSxmaT1PKCJGaWxlTGlzdCIpLGNpPUE9Pm1BKEEpJiZNKEEucGlwZSksbWk9QT0+e2xldCBlO3JldHVybiBBJiYodHlwZW9mIEZvcm1EYXRhPT0iZnVuY3Rpb24iJiZBIGluc3RhbmNlb2YgRm9ybURhdGF8fE0oQS5hcHBlbmQpJiYoKGU9VEEoQSkpPT09ImZvcm1kYXRhInx8ZT09PSJvYmplY3QiJiZNKEEudG9TdHJpbmcpJiZBLnRvU3RyaW5nKCk9PT0iW29iamVjdCBGb3JtRGF0YV0iKSl9LGRpPU8oIlVSTFNlYXJjaFBhcmFtcyIpLFt5aSxoaSx3aSxEaV09WyJSZWFkYWJsZVN0cmVhbSIsIlJlcXVlc3QiLCJSZXNwb25zZSIsIkhlYWRlcnMiXS5tYXAoTyksU2k9QT0+QS50cmltP0EudHJpbSgpOkEucmVwbGFjZSgvXltcc1x1RkVGRlx4QTBdK3xbXHNcdUZFRkZceEEwXSskL2csIiIpO2Z1bmN0aW9uIGRBKEEsZSx7YWxsT3duS2V5czp0PSExfT17fSl7aWYoQT09PW51bGx8fHR5cGVvZiBBPiJ1IilyZXR1cm47bGV0IGksbztpZih0eXBlb2YgQSE9Im9iamVjdCImJihBPVtBXSksb0EoQSkpZm9yKGk9MCxvPUEubGVuZ3RoO2k8bztpKyspZS5jYWxsKG51bGwsQVtpXSxpLEEpO2Vsc2V7aWYoY0EoQSkpcmV0dXJuO2xldCByPXQ/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQSk6T2JqZWN0LmtleXMoQSksYT1yLmxlbmd0aCxDO2ZvcihpPTA7aTxhO2krKylDPXJbaV0sZS5jYWxsKG51bGwsQVtDXSxDLEEpfX1mdW5jdGlvbiB4dChBLGUpe2lmKGNBKEEpKXJldHVybiBudWxsO2U9ZS50b0xvd2VyQ2FzZSgpO2xldCB0PU9iamVjdC5rZXlzKEEpLGk9dC5sZW5ndGgsbztmb3IoO2ktLSA+MDspaWYobz10W2ldLGU9PT1vLnRvTG93ZXJDYXNlKCkpcmV0dXJuIG87cmV0dXJuIG51bGx9dmFyIGVBPXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzpnbG9iYWwsWXQ9QT0+IWlBKEEpJiZBIT09ZUE7ZnVuY3Rpb24gUWUoKXtsZXR7Y2FzZWxlc3M6QSxza2lwVW5kZWZpbmVkOmV9PVl0KHRoaXMpJiZ0aGlzfHx7fSx0PXt9LGk9KG8scik9PntsZXQgYT1BJiZ4dCh0LHIpfHxyO1lBKHRbYV0pJiZZQShvKT90W2FdPVFlKHRbYV0sbyk6WUEobyk/dFthXT1RZSh7fSxvKTpvQShvKT90W2FdPW8uc2xpY2UoKTooIWV8fCFpQShvKSkmJih0W2FdPW8pfTtmb3IobGV0IG89MCxyPWFyZ3VtZW50cy5sZW5ndGg7bzxyO28rKylhcmd1bWVudHNbb10mJmRBKGFyZ3VtZW50c1tvXSxpKTtyZXR1cm4gdH12YXIgUmk9KEEsZSx0LHthbGxPd25LZXlzOml9PXt9KT0+KGRBKGUsKG8scik9Pnt0JiZNKG8pP0Fbcl09ZkEobyx0KTpBW3JdPW99LHthbGxPd25LZXlzOml9KSxBKSxGaT1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLGtpPShBLGUsdCxpKT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUsaSksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTplLnByb3RvdHlwZX0pLHQmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsdCl9LFVpPShBLGUsdCxpKT0+e2xldCBvLHIsYSxDPXt9O2lmKGU9ZXx8e30sQT09bnVsbClyZXR1cm4gZTtkb3tmb3Iobz1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxyPW8ubGVuZ3RoO3ItLSA+MDspYT1vW3JdLCghaXx8aShhLEEsZSkpJiYhQ1thXSYmKGVbYV09QVthXSxDW2FdPSEwKTtBPXQhPT0hMSYmRWUoQSl9d2hpbGUoQSYmKCF0fHx0KEEsZSkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIGV9LGJpPShBLGUsdCk9PntBPVN0cmluZyhBKSwodD09PXZvaWQgMHx8dD5BLmxlbmd0aCkmJih0PUEubGVuZ3RoKSx0LT1lLmxlbmd0aDtsZXQgaT1BLmluZGV4T2YoZSx0KTtyZXR1cm4gaSE9PS0xJiZpPT09dH0sTmk9QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKG9BKEEpKXJldHVybiBBO2xldCBlPUEubGVuZ3RoO2lmKCFKdChlKSlyZXR1cm4gbnVsbDtsZXQgdD1uZXcgQXJyYXkoZSk7Zm9yKDtlLS0gPjA7KXRbZV09QVtlXTtyZXR1cm4gdH0sR2k9KEE9PmU9PkEmJmUgaW5zdGFuY2VvZiBBKSh0eXBlb2YgVWludDhBcnJheTwidSImJkVlKFVpbnQ4QXJyYXkpKSxNaT0oQSxlKT0+e2xldCBpPShBJiZBW0hBXSkuY2FsbChBKSxvO2Zvcig7KG89aS5uZXh0KCkpJiYhby5kb25lOyl7bGV0IHI9by52YWx1ZTtlLmNhbGwoQSxyWzBdLHJbMV0pfX0sV2k9KEEsZSk9PntsZXQgdCxpPVtdO2Zvcig7KHQ9QS5leGVjKGUpKSE9PW51bGw7KWkucHVzaCh0KTtyZXR1cm4gaX0sUGk9TygiSFRNTEZvcm1FbGVtZW50IiksT2k9QT0+QS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xzXShbYS16XGRdKShcdyopL2csZnVuY3Rpb24odCxpLG8pe3JldHVybiBpLnRvVXBwZXJDYXNlKCkrb30pLFB0PSgoe2hhc093blByb3BlcnR5OkF9KT0+KGUsdCk9PkEuY2FsbChlLHQpKShPYmplY3QucHJvdG90eXBlKSxMaT1PKCJSZWdFeHAiKSxIdD0oQSxlKT0+e2xldCB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEEpLGk9e307ZEEodCwobyxyKT0+e2xldCBhOyhhPWUobyxyLEEpKSE9PSExJiYoaVtyXT1hfHxvKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEEsaSl9LEppPUE9PntIdChBLChlLHQpPT57aWYoTShBKSYmWyJhcmd1bWVudHMiLCJjYWxsZXIiLCJjYWxsZWUiXS5pbmRleE9mKHQpIT09LTEpcmV0dXJuITE7bGV0IGk9QVt0XTtpZihNKGkpKXtpZihlLmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIGUpe2Uud3JpdGFibGU9ITE7cmV0dXJufWUuc2V0fHwoZS5zZXQ9KCk9Pnt0aHJvdyBFcnJvcigiQ2FuIG5vdCByZXdyaXRlIHJlYWQtb25seSBtZXRob2QgJyIrdCsiJyIpfSl9fSl9LHhpPShBLGUpPT57bGV0IHQ9e30saT1vPT57by5mb3JFYWNoKHI9Pnt0W3JdPSEwfSl9O3JldHVybiBvQShBKT9pKEEpOmkoU3RyaW5nKEEpLnNwbGl0KGUpKSx0fSxZaT0oKT0+e30sSGk9KEEsZSk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOmU7ZnVuY3Rpb24gVGkoQSl7cmV0dXJuISEoQSYmTShBLmFwcGVuZCkmJkFbT3RdPT09IkZvcm1EYXRhIiYmQVtIQV0pfXZhciBxaT1BPT57bGV0IGU9bmV3IEFycmF5KDEwKSx0PShpLG8pPT57aWYobUEoaSkpe2lmKGUuaW5kZXhPZihpKT49MClyZXR1cm47aWYoY0EoaSkpcmV0dXJuIGk7aWYoISgidG9KU09OImluIGkpKXtlW29dPWk7bGV0IHI9b0EoaSk/W106e307cmV0dXJuIGRBKGksKGEsQyk9PntsZXQgcD10KGEsbysxKTshaUEocCkmJihyW0NdPXApfSksZVtvXT12b2lkIDAscn19cmV0dXJuIGl9O3JldHVybiB0KEEsMCl9LEtpPU8oIkFzeW5jRnVuY3Rpb24iKSxqaT1BPT5BJiYobUEoQSl8fE0oQSkpJiZNKEEudGhlbikmJk0oQS5jYXRjaCksVHQ9KChBLGUpPT5BP3NldEltbWVkaWF0ZTplPygodCxpKT0+KGVBLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCh7c291cmNlOm8sZGF0YTpyfSk9PntvPT09ZUEmJnI9PT10JiZpLmxlbmd0aCYmaS5zaGlmdCgpKCl9LCExKSxvPT57aS5wdXNoKG8pLGVBLnBvc3RNZXNzYWdlKHQsIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOnQ9PnNldFRpbWVvdXQodCkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsTShlQS5wb3N0TWVzc2FnZSkpLHZpPXR5cGVvZiBxdWV1ZU1pY3JvdGFzazwidSI/cXVldWVNaWNyb3Rhc2suYmluZChlQSk6dHlwZW9mIHByb2Nlc3M8InUiJiZwcm9jZXNzLm5leHRUaWNrfHxUdCxaaT1BPT5BIT1udWxsJiZNKEFbSEFdKSxFPXtpc0FycmF5Om9BLGlzQXJyYXlCdWZmZXI6THQsaXNCdWZmZXI6Y0EsaXNGb3JtRGF0YTptaSxpc0FycmF5QnVmZmVyVmlldzpCaSxpc1N0cmluZzpDaSxpc051bWJlcjpKdCxpc0Jvb2xlYW46UWksaXNPYmplY3Q6bUEsaXNQbGFpbk9iamVjdDpZQSxpc0VtcHR5T2JqZWN0OkVpLGlzUmVhZGFibGVTdHJlYW06eWksaXNSZXF1ZXN0OmhpLGlzUmVzcG9uc2U6d2ksaXNIZWFkZXJzOkRpLGlzVW5kZWZpbmVkOmlBLGlzRGF0ZTpsaSxpc0ZpbGU6cGksaXNCbG9iOnVpLGlzUmVnRXhwOkxpLGlzRnVuY3Rpb246TSxpc1N0cmVhbTpjaSxpc1VSTFNlYXJjaFBhcmFtczpkaSxpc1R5cGVkQXJyYXk6R2ksaXNGaWxlTGlzdDpmaSxmb3JFYWNoOmRBLG1lcmdlOlFlLGV4dGVuZDpSaSx0cmltOlNpLHN0cmlwQk9NOkZpLGluaGVyaXRzOmtpLHRvRmxhdE9iamVjdDpVaSxraW5kT2Y6VEEsa2luZE9mVGVzdDpPLGVuZHNXaXRoOmJpLHRvQXJyYXk6TmksZm9yRWFjaEVudHJ5Ok1pLG1hdGNoQWxsOldpLGlzSFRNTEZvcm06UGksaGFzT3duUHJvcGVydHk6UHQsaGFzT3duUHJvcDpQdCxyZWR1Y2VEZXNjcmlwdG9yczpIdCxmcmVlemVNZXRob2RzOkppLHRvT2JqZWN0U2V0OnhpLHRvQ2FtZWxDYXNlOk9pLG5vb3A6WWksdG9GaW5pdGVOdW1iZXI6SGksZmluZEtleTp4dCxnbG9iYWw6ZUEsaXNDb250ZXh0RGVmaW5lZDpZdCxpc1NwZWNDb21wbGlhbnRGb3JtOlRpLHRvSlNPTk9iamVjdDpxaSxpc0FzeW5jRm46S2ksaXNUaGVuYWJsZTpqaSxzZXRJbW1lZGlhdGU6VHQsYXNhcDp2aSxpc0l0ZXJhYmxlOlppfTtmdW5jdGlvbiBuQShBLGUsdCxpLG8pe0Vycm9yLmNhbGwodGhpcyksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrLHRoaXMubWVzc2FnZT1BLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsZSYmKHRoaXMuY29kZT1lKSx0JiYodGhpcy5jb25maWc9dCksaSYmKHRoaXMucmVxdWVzdD1pKSxvJiYodGhpcy5yZXNwb25zZT1vLHRoaXMuc3RhdHVzPW8uc3RhdHVzP28uc3RhdHVzOm51bGwpfUUuaW5oZXJpdHMobkEsRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzpFLnRvSlNPTk9iamVjdCh0aGlzLmNvbmZpZyksY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMuc3RhdHVzfX19KTt2YXIgcXQ9bkEucHJvdG90eXBlLEt0PXt9O1siRVJSX0JBRF9PUFRJT05fVkFMVUUiLCJFUlJfQkFEX09QVElPTiIsIkVDT05OQUJPUlRFRCIsIkVUSU1FRE9VVCIsIkVSUl9ORVRXT1JLIiwiRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUUyIsIkVSUl9ERVBSRUNBVEVEIiwiRVJSX0JBRF9SRVNQT05TRSIsIkVSUl9CQURfUkVRVUVTVCIsIkVSUl9DQU5DRUxFRCIsIkVSUl9OT1RfU1VQUE9SVCIsIkVSUl9JTlZBTElEX1VSTCJdLmZvckVhY2goQT0+e0t0W0FdPXt2YWx1ZTpBfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG5BLEt0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkocXQsImlzQXhpb3NFcnJvciIse3ZhbHVlOiEwfSk7bkEuZnJvbT0oQSxlLHQsaSxvLHIpPT57bGV0IGE9T2JqZWN0LmNyZWF0ZShxdCk7RS50b0ZsYXRPYmplY3QoQSxhLGZ1bmN0aW9uKG4pe3JldHVybiBuIT09RXJyb3IucHJvdG90eXBlfSxCPT5CIT09ImlzQXhpb3NFcnJvciIpO2xldCBDPUEmJkEubWVzc2FnZT9BLm1lc3NhZ2U6IkVycm9yIixwPWU9PW51bGwmJkE/QS5jb2RlOmU7cmV0dXJuIG5BLmNhbGwoYSxDLHAsdCxpLG8pLEEmJmEuY2F1c2U9PW51bGwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJjYXVzZSIse3ZhbHVlOkEsY29uZmlndXJhYmxlOiEwfSksYS5uYW1lPUEmJkEubmFtZXx8IkVycm9yIixyJiZPYmplY3QuYXNzaWduKGEsciksYX07dmFyIGg9bkE7dmFyIEtBPW51bGw7ZnVuY3Rpb24gbGUoQSl7cmV0dXJuIEUuaXNQbGFpbk9iamVjdChBKXx8RS5pc0FycmF5KEEpfWZ1bmN0aW9uIHZ0KEEpe3JldHVybiBFLmVuZHNXaXRoKEEsIltdIik/QS5zbGljZSgwLC0yKTpBfWZ1bmN0aW9uIGp0KEEsZSx0KXtyZXR1cm4gQT9BLmNvbmNhdChlKS5tYXAoZnVuY3Rpb24obyxyKXtyZXR1cm4gbz12dChvKSwhdCYmcj8iWyIrbysiXSI6b30pLmpvaW4odD8iLiI6IiIpOmV9ZnVuY3Rpb24gVmkoQSl7cmV0dXJuIEUuaXNBcnJheShBKSYmIUEuc29tZShsZSl9dmFyIHppPUUudG9GbGF0T2JqZWN0KEUse30sbnVsbCxmdW5jdGlvbihlKXtyZXR1cm4vXmlzW0EtWl0vLnRlc3QoZSl9KTtmdW5jdGlvbiBYaShBLGUsdCl7aWYoIUUuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7ZT1lfHxuZXcoS0F8fEZvcm1EYXRhKSx0PUUudG9GbGF0T2JqZWN0KHQse21ldGFUb2tlbnM6ITAsZG90czohMSxpbmRleGVzOiExfSwhMSxmdW5jdGlvbihmLHUpe3JldHVybiFFLmlzVW5kZWZpbmVkKHVbZl0pfSk7bGV0IGk9dC5tZXRhVG9rZW5zLG89dC52aXNpdG9yfHxuLHI9dC5kb3RzLGE9dC5pbmRleGVzLHA9KHQuQmxvYnx8dHlwZW9mIEJsb2I8InUiJiZCbG9iKSYmRS5pc1NwZWNDb21wbGlhbnRGb3JtKGUpO2lmKCFFLmlzRnVuY3Rpb24obykpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBCKEkpe2lmKEk9PT1udWxsKXJldHVybiIiO2lmKEUuaXNEYXRlKEkpKXJldHVybiBJLnRvSVNPU3RyaW5nKCk7aWYoRS5pc0Jvb2xlYW4oSSkpcmV0dXJuIEkudG9TdHJpbmcoKTtpZighcCYmRS5pc0Jsb2IoSSkpdGhyb3cgbmV3IGgoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7cmV0dXJuIEUuaXNBcnJheUJ1ZmZlcihJKXx8RS5pc1R5cGVkQXJyYXkoSSk/cCYmdHlwZW9mIEJsb2I9PSJmdW5jdGlvbiI/bmV3IEJsb2IoW0ldKTpCdWZmZXIuZnJvbShJKTpJfWZ1bmN0aW9uIG4oSSxmLHUpe2xldCB3PUk7aWYoSSYmIXUmJnR5cGVvZiBJPT0ib2JqZWN0Iil7aWYoRS5lbmRzV2l0aChmLCJ7fSIpKWY9aT9mOmYuc2xpY2UoMCwtMiksST1KU09OLnN0cmluZ2lmeShJKTtlbHNlIGlmKEUuaXNBcnJheShJKSYmVmkoSSl8fChFLmlzRmlsZUxpc3QoSSl8fEUuZW5kc1dpdGgoZiwiW10iKSkmJih3PUUudG9BcnJheShJKSkpcmV0dXJuIGY9dnQoZiksdy5mb3JFYWNoKGZ1bmN0aW9uKFMsTil7IShFLmlzVW5kZWZpbmVkKFMpfHxTPT09bnVsbCkmJmUuYXBwZW5kKGE9PT0hMD9qdChbZl0sTixyKTphPT09bnVsbD9mOmYrIltdIixCKFMpKX0pLCExfXJldHVybiBsZShJKT8hMDooZS5hcHBlbmQoanQodSxmLHIpLEIoSSkpLCExKX1sZXQgZz1bXSxsPU9iamVjdC5hc3NpZ24oemkse2RlZmF1bHRWaXNpdG9yOm4sY29udmVydFZhbHVlOkIsaXNWaXNpdGFibGU6bGV9KTtmdW5jdGlvbiBzKEksZil7aWYoIUUuaXNVbmRlZmluZWQoSSkpe2lmKGcuaW5kZXhPZihJKSE9PS0xKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitmLmpvaW4oIi4iKSk7Zy5wdXNoKEkpLEUuZm9yRWFjaChJLGZ1bmN0aW9uKHcsYil7KCEoRS5pc1VuZGVmaW5lZCh3KXx8dz09PW51bGwpJiZvLmNhbGwoZSx3LEUuaXNTdHJpbmcoYik/Yi50cmltKCk6YixmLGwpKT09PSEwJiZzKHcsZj9mLmNvbmNhdChiKTpbYl0pfSksZy5wb3AoKX19aWYoIUUuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZGF0YSBtdXN0IGJlIGFuIG9iamVjdCIpO3JldHVybiBzKEEpLGV9dmFyIHY9WGk7ZnVuY3Rpb24gWnQoQSl7bGV0IGU9eyIhIjoiJTIxIiwiJyI6IiUyNyIsIigiOiIlMjgiLCIpIjoiJTI5IiwifiI6IiU3RSIsIiUyMCI6IisiLCIlMDAiOiJcMCJ9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyEnKCl+XXwlMjB8JTAwL2csZnVuY3Rpb24oaSl7cmV0dXJuIGVbaV19KX1mdW5jdGlvbiBWdChBLGUpe3RoaXMuX3BhaXJzPVtdLEEmJnYoQSx0aGlzLGUpfXZhciB6dD1WdC5wcm90b3R5cGU7enQuYXBwZW5kPWZ1bmN0aW9uKGUsdCl7dGhpcy5fcGFpcnMucHVzaChbZSx0XSl9O3p0LnRvU3RyaW5nPWZ1bmN0aW9uKGUpe2xldCB0PWU/ZnVuY3Rpb24oaSl7cmV0dXJuIGUuY2FsbCh0aGlzLGksWnQpfTpadDtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKG8pe3JldHVybiB0KG9bMF0pKyI9Iit0KG9bMV0pfSwiIikuam9pbigiJiIpfTt2YXIgakE9VnQ7ZnVuY3Rpb24gX2koQSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpLnJlcGxhY2UoLyUyMC9nLCIrIil9ZnVuY3Rpb24geUEoQSxlLHQpe2lmKCFlKXJldHVybiBBO2xldCBpPXQmJnQuZW5jb2RlfHxfaTtFLmlzRnVuY3Rpb24odCkmJih0PXtzZXJpYWxpemU6dH0pO2xldCBvPXQmJnQuc2VyaWFsaXplLHI7aWYobz9yPW8oZSx0KTpyPUUuaXNVUkxTZWFyY2hQYXJhbXMoZSk/ZS50b1N0cmluZygpOm5ldyBqQShlLHQpLnRvU3RyaW5nKGkpLHIpe2xldCBhPUEuaW5kZXhPZigiIyIpO2EhPT0tMSYmKEE9QS5zbGljZSgwLGEpKSxBKz0oQS5pbmRleE9mKCI/Iik9PT0tMT8iPyI6IiYiKStyfXJldHVybiBBfXZhciBwZT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaGFuZGxlcnM9W119dXNlKGUsdCxpKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6ZSxyZWplY3RlZDp0LHN5bmNocm9ub3VzOmk/aS5zeW5jaHJvbm91czohMSxydW5XaGVuOmk/aS5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfWVqZWN0KGUpe3RoaXMuaGFuZGxlcnNbZV0mJih0aGlzLmhhbmRsZXJzW2VdPW51bGwpfWNsZWFyKCl7dGhpcy5oYW5kbGVycyYmKHRoaXMuaGFuZGxlcnM9W10pfWZvckVhY2goZSl7RS5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24oaSl7aSE9PW51bGwmJmUoaSl9KX19LHVlPXBlO3ZhciB2QT17c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX07dmFyIFh0PXR5cGVvZiBVUkxTZWFyY2hQYXJhbXM8InUiP1VSTFNlYXJjaFBhcmFtczpqQTt2YXIgX3Q9dHlwZW9mIEZvcm1EYXRhPCJ1Ij9Gb3JtRGF0YTpudWxsO3ZhciAkdD10eXBlb2YgQmxvYjwidSI/QmxvYjpudWxsO3ZhciBBcj17aXNCcm93c2VyOiEwLGNsYXNzZXM6e1VSTFNlYXJjaFBhcmFtczpYdCxGb3JtRGF0YTpfdCxCbG9iOiR0fSxwcm90b2NvbHM6WyJodHRwIiwiaHR0cHMiLCJmaWxlIiwiYmxvYiIsInVybCIsImRhdGEiXX07dmFyIG1lPXt9O2pyKG1lLHtoYXNCcm93c2VyRW52OigpPT5jZSxoYXNTdGFuZGFyZEJyb3dzZXJFbnY6KCk9PiRpLGhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudjooKT0+QW8sbmF2aWdhdG9yOigpPT5mZSxvcmlnaW46KCk9PmVvfSk7dmFyIGNlPXR5cGVvZiB3aW5kb3c8InUiJiZ0eXBlb2YgZG9jdW1lbnQ8InUiLGZlPXR5cGVvZiBuYXZpZ2F0b3I9PSJvYmplY3QiJiZuYXZpZ2F0b3J8fHZvaWQgMCwkaT1jZSYmKCFmZXx8WyJSZWFjdE5hdGl2ZSIsIk5hdGl2ZVNjcmlwdCIsIk5TIl0uaW5kZXhPZihmZS5wcm9kdWN0KTwwKSxBbz10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU8InUiJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnR5cGVvZiBzZWxmLmltcG9ydFNjcmlwdHM9PSJmdW5jdGlvbiIsZW89Y2UmJndpbmRvdy5sb2NhdGlvbi5ocmVmfHwiaHR0cDovL2xvY2FsaG9zdCI7dmFyIEQ9ey4uLm1lLC4uLkFyfTtmdW5jdGlvbiBkZShBLGUpe3JldHVybiB2KEEsbmV3IEQuY2xhc3Nlcy5VUkxTZWFyY2hQYXJhbXMse3Zpc2l0b3I6ZnVuY3Rpb24odCxpLG8scil7cmV0dXJuIEQuaXNOb2RlJiZFLmlzQnVmZmVyKHQpPyh0aGlzLmFwcGVuZChpLHQudG9TdHJpbmcoImJhc2U2NCIpKSwhMSk6ci5kZWZhdWx0VmlzaXRvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LC4uLmV9KX1mdW5jdGlvbiB0byhBKXtyZXR1cm4gRS5tYXRjaEFsbCgvXHcrfFxbKFx3KildL2csQSkubWFwKGU9PmVbMF09PT0iW10iPyIiOmVbMV18fGVbMF0pfWZ1bmN0aW9uIHJvKEEpe2xldCBlPXt9LHQ9T2JqZWN0LmtleXMoQSksaSxvPXQubGVuZ3RoLHI7Zm9yKGk9MDtpPG87aSsrKXI9dFtpXSxlW3JdPUFbcl07cmV0dXJuIGV9ZnVuY3Rpb24gaW8oQSl7ZnVuY3Rpb24gZSh0LGksbyxyKXtsZXQgYT10W3IrK107aWYoYT09PSJfX3Byb3RvX18iKXJldHVybiEwO2xldCBDPU51bWJlci5pc0Zpbml0ZSgrYSkscD1yPj10Lmxlbmd0aDtyZXR1cm4gYT0hYSYmRS5pc0FycmF5KG8pP28ubGVuZ3RoOmEscD8oRS5oYXNPd25Qcm9wKG8sYSk/b1thXT1bb1thXSxpXTpvW2FdPWksIUMpOigoIW9bYV18fCFFLmlzT2JqZWN0KG9bYV0pKSYmKG9bYV09W10pLGUodCxpLG9bYV0scikmJkUuaXNBcnJheShvW2FdKSYmKG9bYV09cm8ob1thXSkpLCFDKX1pZihFLmlzRm9ybURhdGEoQSkmJkUuaXNGdW5jdGlvbihBLmVudHJpZXMpKXtsZXQgdD17fTtyZXR1cm4gRS5mb3JFYWNoRW50cnkoQSwoaSxvKT0+e2UodG8oaSksbyx0LDApfSksdH1yZXR1cm4gbnVsbH12YXIgWkE9aW87ZnVuY3Rpb24gb28oQSxlLHQpe2lmKEUuaXNTdHJpbmcoQSkpdHJ5e3JldHVybihlfHxKU09OLnBhcnNlKShBKSxFLnRyaW0oQSl9Y2F0Y2goaSl7aWYoaS5uYW1lIT09IlN5bnRheEVycm9yIil0aHJvdyBpfXJldHVybih0fHxKU09OLnN0cmluZ2lmeSkoQSl9dmFyIHllPXt0cmFuc2l0aW9uYWw6dkEsYWRhcHRlcjpbInhociIsImh0dHAiLCJmZXRjaCJdLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKGUsdCl7bGV0IGk9dC5nZXRDb250ZW50VHlwZSgpfHwiIixvPWkuaW5kZXhPZigiYXBwbGljYXRpb24vanNvbiIpPi0xLHI9RS5pc09iamVjdChlKTtpZihyJiZFLmlzSFRNTEZvcm0oZSkmJihlPW5ldyBGb3JtRGF0YShlKSksRS5pc0Zvcm1EYXRhKGUpKXJldHVybiBvP0pTT04uc3RyaW5naWZ5KFpBKGUpKTplO2lmKEUuaXNBcnJheUJ1ZmZlcihlKXx8RS5pc0J1ZmZlcihlKXx8RS5pc1N0cmVhbShlKXx8RS5pc0ZpbGUoZSl8fEUuaXNCbG9iKGUpfHxFLmlzUmVhZGFibGVTdHJlYW0oZSkpcmV0dXJuIGU7aWYoRS5pc0FycmF5QnVmZmVyVmlldyhlKSlyZXR1cm4gZS5idWZmZXI7aWYoRS5pc1VSTFNlYXJjaFBhcmFtcyhlKSlyZXR1cm4gdC5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiLCExKSxlLnRvU3RyaW5nKCk7bGV0IEM7aWYocil7aWYoaS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKT4tMSlyZXR1cm4gZGUoZSx0aGlzLmZvcm1TZXJpYWxpemVyKS50b1N0cmluZygpO2lmKChDPUUuaXNGaWxlTGlzdChlKSl8fGkuaW5kZXhPZigibXVsdGlwYXJ0L2Zvcm0tZGF0YSIpPi0xKXtsZXQgcD10aGlzLmVudiYmdGhpcy5lbnYuRm9ybURhdGE7cmV0dXJuIHYoQz97ImZpbGVzW10iOmV9OmUscCYmbmV3IHAsdGhpcy5mb3JtU2VyaWFsaXplcil9fXJldHVybiByfHxvPyh0LnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi9qc29uIiwhMSksb28oZSkpOmV9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24oZSl7bGV0IHQ9dGhpcy50cmFuc2l0aW9uYWx8fHllLnRyYW5zaXRpb25hbCxpPXQmJnQuZm9yY2VkSlNPTlBhcnNpbmcsbz10aGlzLnJlc3BvbnNlVHlwZT09PSJqc29uIjtpZihFLmlzUmVzcG9uc2UoZSl8fEUuaXNSZWFkYWJsZVN0cmVhbShlKSlyZXR1cm4gZTtpZihlJiZFLmlzU3RyaW5nKGUpJiYoaSYmIXRoaXMucmVzcG9uc2VUeXBlfHxvKSl7bGV0IGE9ISh0JiZ0LnNpbGVudEpTT05QYXJzaW5nKSYmbzt0cnl7cmV0dXJuIEpTT04ucGFyc2UoZSx0aGlzLnBhcnNlUmV2aXZlcil9Y2F0Y2goQyl7aWYoYSl0aHJvdyBDLm5hbWU9PT0iU3ludGF4RXJyb3IiP2guZnJvbShDLGguRVJSX0JBRF9SRVNQT05TRSx0aGlzLG51bGwsdGhpcy5yZXNwb25zZSk6Q319cmV0dXJuIGV9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSxlbnY6e0Zvcm1EYXRhOkQuY2xhc3Nlcy5Gb3JtRGF0YSxCbG9iOkQuY2xhc3Nlcy5CbG9ifSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbihlKXtyZXR1cm4gZT49MjAwJiZlPDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiIsIkNvbnRlbnQtVHlwZSI6dm9pZCAwfX19O0UuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giXSxBPT57eWUuaGVhZGVyc1tBXT17fX0pO3ZhciBhQT15ZTt2YXIgbm89RS50b09iamVjdFNldChbImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdKSxlcj1BPT57bGV0IGU9e30sdCxpLG87cmV0dXJuIEEmJkEuc3BsaXQoYApgKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe289YS5pbmRleE9mKCI6IiksdD1hLnN1YnN0cmluZygwLG8pLnRyaW0oKS50b0xvd2VyQ2FzZSgpLGk9YS5zdWJzdHJpbmcobysxKS50cmltKCksISghdHx8ZVt0XSYmbm9bdF0pJiYodD09PSJzZXQtY29va2llIj9lW3RdP2VbdF0ucHVzaChpKTplW3RdPVtpXTplW3RdPWVbdF0/ZVt0XSsiLCAiK2k6aSl9KSxlfTt2YXIgdHI9U3ltYm9sKCJpbnRlcm5hbHMiKTtmdW5jdGlvbiBoQShBKXtyZXR1cm4gQSYmU3RyaW5nKEEpLnRyaW0oKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIFZBKEEpe3JldHVybiBBPT09ITF8fEE9PW51bGw/QTpFLmlzQXJyYXkoQSk/QS5tYXAoVkEpOlN0cmluZyhBKX1mdW5jdGlvbiBhbyhBKXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpLHQ9LyhbXlxzLDs9XSspXHMqKD86PVxzKihbXiw7XSspKT8vZyxpO2Zvcig7aT10LmV4ZWMoQSk7KWVbaVsxXV09aVsyXTtyZXR1cm4gZX12YXIgc289QT0+L15bLV9hLXpBLVowLTleYHx+LCEjJCUmJyorLl0rJC8udGVzdChBLnRyaW0oKSk7ZnVuY3Rpb24gaGUoQSxlLHQsaSxvKXtpZihFLmlzRnVuY3Rpb24oaSkpcmV0dXJuIGkuY2FsbCh0aGlzLGUsdCk7aWYobyYmKGU9dCksISFFLmlzU3RyaW5nKGUpKXtpZihFLmlzU3RyaW5nKGkpKXJldHVybiBlLmluZGV4T2YoaSkhPT0tMTtpZihFLmlzUmVnRXhwKGkpKXJldHVybiBpLnRlc3QoZSl9fWZ1bmN0aW9uIElvKEEpe3JldHVybiBBLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbYS16XGRdKShcdyopL2csKGUsdCxpKT0+dC50b1VwcGVyQ2FzZSgpK2kpfWZ1bmN0aW9uIGdvKEEsZSl7bGV0IHQ9RS50b0NhbWVsQ2FzZSgiICIrZSk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKGk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxpK3Qse3ZhbHVlOmZ1bmN0aW9uKG8scixhKXtyZXR1cm4gdGhpc1tpXS5jYWxsKHRoaXMsZSxvLHIsYSl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9dmFyIHNBPWNsYXNze2NvbnN0cnVjdG9yKGUpe2UmJnRoaXMuc2V0KGUpfXNldChlLHQsaSl7bGV0IG89dGhpcztmdW5jdGlvbiByKEMscCxCKXtsZXQgbj1oQShwKTtpZighbil0aHJvdyBuZXcgRXJyb3IoImhlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7bGV0IGc9RS5maW5kS2V5KG8sbik7KCFnfHxvW2ddPT09dm9pZCAwfHxCPT09ITB8fEI9PT12b2lkIDAmJm9bZ10hPT0hMSkmJihvW2d8fHBdPVZBKEMpKX1sZXQgYT0oQyxwKT0+RS5mb3JFYWNoKEMsKEIsbik9PnIoQixuLHApKTtpZihFLmlzUGxhaW5PYmplY3QoZSl8fGUgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKWEoZSx0KTtlbHNlIGlmKEUuaXNTdHJpbmcoZSkmJihlPWUudHJpbSgpKSYmIXNvKGUpKWEoZXIoZSksdCk7ZWxzZSBpZihFLmlzT2JqZWN0KGUpJiZFLmlzSXRlcmFibGUoZSkpe2xldCBDPXt9LHAsQjtmb3IobGV0IG4gb2YgZSl7aWYoIUUuaXNBcnJheShuKSl0aHJvdyBUeXBlRXJyb3IoIk9iamVjdCBpdGVyYXRvciBtdXN0IHJldHVybiBhIGtleS12YWx1ZSBwYWlyIik7Q1tCPW5bMF1dPShwPUNbQl0pP0UuaXNBcnJheShwKT9bLi4ucCxuWzFdXTpbcCxuWzFdXTpuWzFdfWEoQyx0KX1lbHNlIGUhPW51bGwmJnIodCxlLGkpO3JldHVybiB0aGlzfWdldChlLHQpe2lmKGU9aEEoZSksZSl7bGV0IGk9RS5maW5kS2V5KHRoaXMsZSk7aWYoaSl7bGV0IG89dGhpc1tpXTtpZighdClyZXR1cm4gbztpZih0PT09ITApcmV0dXJuIGFvKG8pO2lmKEUuaXNGdW5jdGlvbih0KSlyZXR1cm4gdC5jYWxsKHRoaXMsbyxpKTtpZihFLmlzUmVnRXhwKHQpKXJldHVybiB0LmV4ZWMobyk7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyhlLHQpe2lmKGU9aEEoZSksZSl7bGV0IGk9RS5maW5kS2V5KHRoaXMsZSk7cmV0dXJuISEoaSYmdGhpc1tpXSE9PXZvaWQgMCYmKCF0fHxoZSh0aGlzLHRoaXNbaV0saSx0KSkpfXJldHVybiExfWRlbGV0ZShlLHQpe2xldCBpPXRoaXMsbz0hMTtmdW5jdGlvbiByKGEpe2lmKGE9aEEoYSksYSl7bGV0IEM9RS5maW5kS2V5KGksYSk7QyYmKCF0fHxoZShpLGlbQ10sQyx0KSkmJihkZWxldGUgaVtDXSxvPSEwKX19cmV0dXJuIEUuaXNBcnJheShlKT9lLmZvckVhY2gocik6cihlKSxvfWNsZWFyKGUpe2xldCB0PU9iamVjdC5rZXlzKHRoaXMpLGk9dC5sZW5ndGgsbz0hMTtmb3IoO2ktLTspe2xldCByPXRbaV07KCFlfHxoZSh0aGlzLHRoaXNbcl0scixlLCEwKSkmJihkZWxldGUgdGhpc1tyXSxvPSEwKX1yZXR1cm4gb31ub3JtYWxpemUoZSl7bGV0IHQ9dGhpcyxpPXt9O3JldHVybiBFLmZvckVhY2godGhpcywobyxyKT0+e2xldCBhPUUuZmluZEtleShpLHIpO2lmKGEpe3RbYV09VkEobyksZGVsZXRlIHRbcl07cmV0dXJufWxldCBDPWU/SW8ocik6U3RyaW5nKHIpLnRyaW0oKTtDIT09ciYmZGVsZXRlIHRbcl0sdFtDXT1WQShvKSxpW0NdPSEwfSksdGhpc31jb25jYXQoLi4uZSl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4uZSl9dG9KU09OKGUpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIEUuZm9yRWFjaCh0aGlzLChpLG8pPT57aSE9bnVsbCYmaSE9PSExJiYodFtvXT1lJiZFLmlzQXJyYXkoaSk/aS5qb2luKCIsICIpOmkpfSksdH1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbZSx0XSk9PmUrIjogIit0KS5qb2luKGAKYCl9Z2V0U2V0Q29va2llKCl7cmV0dXJuIHRoaXMuZ2V0KCJzZXQtY29va2llIil8fFtdfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkF4aW9zSGVhZGVycyJ9c3RhdGljIGZyb20oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzP2U6bmV3IHRoaXMoZSl9c3RhdGljIGNvbmNhdChlLC4uLnQpe2xldCBpPW5ldyB0aGlzKGUpO3JldHVybiB0LmZvckVhY2gobz0+aS5zZXQobykpLGl9c3RhdGljIGFjY2Vzc29yKGUpe2xldCBpPSh0aGlzW3RyXT10aGlzW3RyXT17YWNjZXNzb3JzOnt9fSkuYWNjZXNzb3JzLG89dGhpcy5wcm90b3R5cGU7ZnVuY3Rpb24gcihhKXtsZXQgQz1oQShhKTtpW0NdfHwoZ28obyxhKSxpW0NdPSEwKX1yZXR1cm4gRS5pc0FycmF5KGUpP2UuZm9yRWFjaChyKTpyKGUpLHRoaXN9fTtzQS5hY2Nlc3NvcihbIkNvbnRlbnQtVHlwZSIsIkNvbnRlbnQtTGVuZ3RoIiwiQWNjZXB0IiwiQWNjZXB0LUVuY29kaW5nIiwiVXNlci1BZ2VudCIsIkF1dGhvcml6YXRpb24iXSk7RS5yZWR1Y2VEZXNjcmlwdG9ycyhzQS5wcm90b3R5cGUsKHt2YWx1ZTpBfSxlKT0+e2xldCB0PWVbMF0udG9VcHBlckNhc2UoKStlLnNsaWNlKDEpO3JldHVybntnZXQ6KCk9PkEsc2V0KGkpe3RoaXNbdF09aX19fSk7RS5mcmVlemVNZXRob2RzKHNBKTt2YXIgaz1zQTtmdW5jdGlvbiB3QShBLGUpe2xldCB0PXRoaXN8fGFBLGk9ZXx8dCxvPWsuZnJvbShpLmhlYWRlcnMpLHI9aS5kYXRhO3JldHVybiBFLmZvckVhY2goQSxmdW5jdGlvbihDKXtyPUMuY2FsbCh0LHIsby5ub3JtYWxpemUoKSxlP2Uuc3RhdHVzOnZvaWQgMCl9KSxvLm5vcm1hbGl6ZSgpLHJ9ZnVuY3Rpb24gREEoQSl7cmV0dXJuISEoQSYmQS5fX0NBTkNFTF9fKX1mdW5jdGlvbiBycihBLGUsdCl7aC5jYWxsKHRoaXMsQT8/ImNhbmNlbGVkIixoLkVSUl9DQU5DRUxFRCxlLHQpLHRoaXMubmFtZT0iQ2FuY2VsZWRFcnJvciJ9RS5pbmhlcml0cyhycixoLHtfX0NBTkNFTF9fOiEwfSk7dmFyIFk9cnI7ZnVuY3Rpb24gU0EoQSxlLHQpe2xldCBpPXQuY29uZmlnLnZhbGlkYXRlU3RhdHVzOyF0LnN0YXR1c3x8IWl8fGkodC5zdGF0dXMpP0EodCk6ZShuZXcgaCgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK3Quc3RhdHVzLFtoLkVSUl9CQURfUkVRVUVTVCxoLkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3IodC5zdGF0dXMvMTAwKS00XSx0LmNvbmZpZyx0LnJlcXVlc3QsdCkpfWZ1bmN0aW9uIHdlKEEpe2xldCBlPS9eKFstK1x3XXsxLDI1fSkoOj9cL1wvfDopLy5leGVjKEEpO3JldHVybiBlJiZlWzFdfHwiIn1mdW5jdGlvbiBCbyhBLGUpe0E9QXx8MTA7bGV0IHQ9bmV3IEFycmF5KEEpLGk9bmV3IEFycmF5KEEpLG89MCxyPTAsYTtyZXR1cm4gZT1lIT09dm9pZCAwP2U6MWUzLGZ1bmN0aW9uKHApe2xldCBCPURhdGUubm93KCksbj1pW3JdO2F8fChhPUIpLHRbb109cCxpW29dPUI7bGV0IGc9cixsPTA7Zm9yKDtnIT09bzspbCs9dFtnKytdLGc9ZyVBO2lmKG89KG8rMSklQSxvPT09ciYmKHI9KHIrMSklQSksQi1hPGUpcmV0dXJuO2xldCBzPW4mJkItbjtyZXR1cm4gcz9NYXRoLnJvdW5kKGwqMWUzL3MpOnZvaWQgMH19dmFyIGlyPUJvO2Z1bmN0aW9uIENvKEEsZSl7bGV0IHQ9MCxpPTFlMy9lLG8scixhPShCLG49RGF0ZS5ub3coKSk9Pnt0PW4sbz1udWxsLHImJihjbGVhclRpbWVvdXQocikscj1udWxsKSxBKC4uLkIpfTtyZXR1cm5bKC4uLkIpPT57bGV0IG49RGF0ZS5ub3coKSxnPW4tdDtnPj1pP2EoQixuKToobz1CLHJ8fChyPXNldFRpbWVvdXQoKCk9PntyPW51bGwsYShvKX0saS1nKSkpfSwoKT0+byYmYShvKV19dmFyIG9yPUNvO3ZhciBJQT0oQSxlLHQ9Myk9PntsZXQgaT0wLG89aXIoNTAsMjUwKTtyZXR1cm4gb3Iocj0+e2xldCBhPXIubG9hZGVkLEM9ci5sZW5ndGhDb21wdXRhYmxlP3IudG90YWw6dm9pZCAwLHA9YS1pLEI9byhwKSxuPWE8PUM7aT1hO2xldCBnPXtsb2FkZWQ6YSx0b3RhbDpDLHByb2dyZXNzOkM/YS9DOnZvaWQgMCxieXRlczpwLHJhdGU6Qnx8dm9pZCAwLGVzdGltYXRlZDpCJiZDJiZuPyhDLWEpL0I6dm9pZCAwLGV2ZW50OnIsbGVuZ3RoQ29tcHV0YWJsZTpDIT1udWxsLFtlPyJkb3dubG9hZCI6InVwbG9hZCJdOiEwfTtBKGcpfSx0KX0sRGU9KEEsZSk9PntsZXQgdD1BIT1udWxsO3JldHVybltpPT5lWzBdKHtsZW5ndGhDb21wdXRhYmxlOnQsdG90YWw6QSxsb2FkZWQ6aX0pLGVbMV1dfSxTZT1BPT4oLi4uZSk9PkUuYXNhcCgoKT0+QSguLi5lKSk7dmFyIG5yPUQuaGFzU3RhbmRhcmRCcm93c2VyRW52PygoQSxlKT0+dD0+KHQ9bmV3IFVSTCh0LEQub3JpZ2luKSxBLnByb3RvY29sPT09dC5wcm90b2NvbCYmQS5ob3N0PT09dC5ob3N0JiYoZXx8QS5wb3J0PT09dC5wb3J0KSkpKG5ldyBVUkwoRC5vcmlnaW4pLEQubmF2aWdhdG9yJiYvKG1zaWV8dHJpZGVudCkvaS50ZXN0KEQubmF2aWdhdG9yLnVzZXJBZ2VudCkpOigpPT4hMDt2YXIgYXI9RC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/e3dyaXRlKEEsZSx0LGksbyxyKXtsZXQgYT1bQSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGUpXTtFLmlzTnVtYmVyKHQpJiZhLnB1c2goImV4cGlyZXM9IituZXcgRGF0ZSh0KS50b0dNVFN0cmluZygpKSxFLmlzU3RyaW5nKGkpJiZhLnB1c2goInBhdGg9IitpKSxFLmlzU3RyaW5nKG8pJiZhLnB1c2goImRvbWFpbj0iK28pLHI9PT0hMCYmYS5wdXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9YS5qb2luKCI7ICIpfSxyZWFkKEEpe2xldCBlPWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxzKikoIitBKyIpPShbXjtdKikiKSk7cmV0dXJuIGU/ZGVjb2RlVVJJQ29tcG9uZW50KGVbM10pOm51bGx9LHJlbW92ZShBKXt0aGlzLndyaXRlKEEsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGUoKXt9LHJlYWQoKXtyZXR1cm4gbnVsbH0scmVtb3ZlKCl7fX07ZnVuY3Rpb24gUmUoQSl7cmV0dXJuL14oW2Etel1bYS16XGQrXC0uXSo6KT9cL1wvL2kudGVzdChBKX1mdW5jdGlvbiBGZShBLGUpe3JldHVybiBlP0EucmVwbGFjZSgvXC8/XC8kLywiIikrIi8iK2UucmVwbGFjZSgvXlwvKy8sIiIpOkF9ZnVuY3Rpb24gUkEoQSxlLHQpe2xldCBpPSFSZShlKTtyZXR1cm4gQSYmKGl8fHQ9PSExKT9GZShBLGUpOmV9dmFyIHNyPUE9PkEgaW5zdGFuY2VvZiBrP3suLi5BfTpBO2Z1bmN0aW9uIEwoQSxlKXtlPWV8fHt9O2xldCB0PXt9O2Z1bmN0aW9uIGkoQixuLGcsbCl7cmV0dXJuIEUuaXNQbGFpbk9iamVjdChCKSYmRS5pc1BsYWluT2JqZWN0KG4pP0UubWVyZ2UuY2FsbCh7Y2FzZWxlc3M6bH0sQixuKTpFLmlzUGxhaW5PYmplY3Qobik/RS5tZXJnZSh7fSxuKTpFLmlzQXJyYXkobik/bi5zbGljZSgpOm59ZnVuY3Rpb24gbyhCLG4sZyxsKXtpZihFLmlzVW5kZWZpbmVkKG4pKXtpZighRS5pc1VuZGVmaW5lZChCKSlyZXR1cm4gaSh2b2lkIDAsQixnLGwpfWVsc2UgcmV0dXJuIGkoQixuLGcsbCl9ZnVuY3Rpb24gcihCLG4pe2lmKCFFLmlzVW5kZWZpbmVkKG4pKXJldHVybiBpKHZvaWQgMCxuKX1mdW5jdGlvbiBhKEIsbil7aWYoRS5pc1VuZGVmaW5lZChuKSl7aWYoIUUuaXNVbmRlZmluZWQoQikpcmV0dXJuIGkodm9pZCAwLEIpfWVsc2UgcmV0dXJuIGkodm9pZCAwLG4pfWZ1bmN0aW9uIEMoQixuLGcpe2lmKGcgaW4gZSlyZXR1cm4gaShCLG4pO2lmKGcgaW4gQSlyZXR1cm4gaSh2b2lkIDAsQil9bGV0IHA9e3VybDpyLG1ldGhvZDpyLGRhdGE6cixiYXNlVVJMOmEsdHJhbnNmb3JtUmVxdWVzdDphLHRyYW5zZm9ybVJlc3BvbnNlOmEscGFyYW1zU2VyaWFsaXplcjphLHRpbWVvdXQ6YSx0aW1lb3V0TWVzc2FnZTphLHdpdGhDcmVkZW50aWFsczphLHdpdGhYU1JGVG9rZW46YSxhZGFwdGVyOmEscmVzcG9uc2VUeXBlOmEseHNyZkNvb2tpZU5hbWU6YSx4c3JmSGVhZGVyTmFtZTphLG9uVXBsb2FkUHJvZ3Jlc3M6YSxvbkRvd25sb2FkUHJvZ3Jlc3M6YSxkZWNvbXByZXNzOmEsbWF4Q29udGVudExlbmd0aDphLG1heEJvZHlMZW5ndGg6YSxiZWZvcmVSZWRpcmVjdDphLHRyYW5zcG9ydDphLGh0dHBBZ2VudDphLGh0dHBzQWdlbnQ6YSxjYW5jZWxUb2tlbjphLHNvY2tldFBhdGg6YSxyZXNwb25zZUVuY29kaW5nOmEsdmFsaWRhdGVTdGF0dXM6QyxoZWFkZXJzOihCLG4sZyk9Pm8oc3IoQiksc3IobiksZywhMCl9O3JldHVybiBFLmZvckVhY2goT2JqZWN0LmtleXMoey4uLkEsLi4uZX0pLGZ1bmN0aW9uKG4pe2xldCBnPXBbbl18fG8sbD1nKEFbbl0sZVtuXSxuKTtFLmlzVW5kZWZpbmVkKGwpJiZnIT09Q3x8KHRbbl09bCl9KSx0fXZhciB6QT1BPT57bGV0IGU9TCh7fSxBKSx7ZGF0YTp0LHdpdGhYU1JGVG9rZW46aSx4c3JmSGVhZGVyTmFtZTpvLHhzcmZDb29raWVOYW1lOnIsaGVhZGVyczphLGF1dGg6Q309ZTtpZihlLmhlYWRlcnM9YT1rLmZyb20oYSksZS51cmw9eUEoUkEoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMpLEEucGFyYW1zLEEucGFyYW1zU2VyaWFsaXplciksQyYmYS5zZXQoIkF1dGhvcml6YXRpb24iLCJCYXNpYyAiK2J0b2EoKEMudXNlcm5hbWV8fCIiKSsiOiIrKEMucGFzc3dvcmQ/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEMucGFzc3dvcmQpKToiIikpKSxFLmlzRm9ybURhdGEodCkpe2lmKEQuaGFzU3RhbmRhcmRCcm93c2VyRW52fHxELmhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudilhLnNldENvbnRlbnRUeXBlKHZvaWQgMCk7ZWxzZSBpZihFLmlzRnVuY3Rpb24odC5nZXRIZWFkZXJzKSl7bGV0IHA9dC5nZXRIZWFkZXJzKCksQj1bImNvbnRlbnQtdHlwZSIsImNvbnRlbnQtbGVuZ3RoIl07T2JqZWN0LmVudHJpZXMocCkuZm9yRWFjaCgoW24sZ10pPT57Qi5pbmNsdWRlcyhuLnRvTG93ZXJDYXNlKCkpJiZhLnNldChuLGcpfSl9fWlmKEQuaGFzU3RhbmRhcmRCcm93c2VyRW52JiYoaSYmRS5pc0Z1bmN0aW9uKGkpJiYoaT1pKGUpKSxpfHxpIT09ITEmJm5yKGUudXJsKSkpe2xldCBwPW8mJnImJmFyLnJlYWQocik7cCYmYS5zZXQobyxwKX1yZXR1cm4gZX07dmFyIFFvPXR5cGVvZiBYTUxIdHRwUmVxdWVzdDwidSIsSXI9UW8mJmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0LGkpe2xldCBvPXpBKEEpLHI9by5kYXRhLGE9ay5mcm9tKG8uaGVhZGVycykubm9ybWFsaXplKCkse3Jlc3BvbnNlVHlwZTpDLG9uVXBsb2FkUHJvZ3Jlc3M6cCxvbkRvd25sb2FkUHJvZ3Jlc3M6Qn09byxuLGcsbCxzLEk7ZnVuY3Rpb24gZigpe3MmJnMoKSxJJiZJKCksby5jYW5jZWxUb2tlbiYmby5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShuKSxvLnNpZ25hbCYmby5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG4pfWxldCB1PW5ldyBYTUxIdHRwUmVxdWVzdDt1Lm9wZW4oby5tZXRob2QudG9VcHBlckNhc2UoKSxvLnVybCwhMCksdS50aW1lb3V0PW8udGltZW91dDtmdW5jdGlvbiB3KCl7aWYoIXUpcmV0dXJuO2xldCBTPWsuZnJvbSgiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIHUmJnUuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLFA9e2RhdGE6IUN8fEM9PT0idGV4dCJ8fEM9PT0ianNvbiI/dS5yZXNwb25zZVRleHQ6dS5yZXNwb25zZSxzdGF0dXM6dS5zdGF0dXMsc3RhdHVzVGV4dDp1LnN0YXR1c1RleHQsaGVhZGVyczpTLGNvbmZpZzpBLHJlcXVlc3Q6dX07U0EoZnVuY3Rpb24oVyl7dChXKSxmKCl9LGZ1bmN0aW9uKFcpe2koVyksZigpfSxQKSx1PW51bGx9Im9ubG9hZGVuZCJpbiB1P3Uub25sb2FkZW5kPXc6dS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXshdXx8dS5yZWFkeVN0YXRlIT09NHx8dS5zdGF0dXM9PT0wJiYhKHUucmVzcG9uc2VVUkwmJnUucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKT09PTApfHxzZXRUaW1lb3V0KHcpfSx1Lm9uYWJvcnQ9ZnVuY3Rpb24oKXt1JiYoaShuZXcgaCgiUmVxdWVzdCBhYm9ydGVkIixoLkVDT05OQUJPUlRFRCxBLHUpKSx1PW51bGwpfSx1Lm9uZXJyb3I9ZnVuY3Rpb24oTil7bGV0IFA9TiYmTi5tZXNzYWdlP04ubWVzc2FnZToiTmV0d29yayBFcnJvciIsVj1uZXcgaChQLGguRVJSX05FVFdPUkssQSx1KTtWLmV2ZW50PU58fG51bGwsaShWKSx1PW51bGx9LHUub250aW1lb3V0PWZ1bmN0aW9uKCl7bGV0IE49by50aW1lb3V0PyJ0aW1lb3V0IG9mICIrby50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiLFA9by50cmFuc2l0aW9uYWx8fHZBO28udGltZW91dEVycm9yTWVzc2FnZSYmKE49by50aW1lb3V0RXJyb3JNZXNzYWdlKSxpKG5ldyBoKE4sUC5jbGFyaWZ5VGltZW91dEVycm9yP2guRVRJTUVET1VUOmguRUNPTk5BQk9SVEVELEEsdSkpLHU9bnVsbH0scj09PXZvaWQgMCYmYS5zZXRDb250ZW50VHlwZShudWxsKSwic2V0UmVxdWVzdEhlYWRlciJpbiB1JiZFLmZvckVhY2goYS50b0pTT04oKSxmdW5jdGlvbihOLFApe3Uuc2V0UmVxdWVzdEhlYWRlcihQLE4pfSksRS5pc1VuZGVmaW5lZChvLndpdGhDcmVkZW50aWFscyl8fCh1LndpdGhDcmVkZW50aWFscz0hIW8ud2l0aENyZWRlbnRpYWxzKSxDJiZDIT09Impzb24iJiYodS5yZXNwb25zZVR5cGU9by5yZXNwb25zZVR5cGUpLEImJihbbCxJXT1JQShCLCEwKSx1LmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixsKSkscCYmdS51cGxvYWQmJihbZyxzXT1JQShwKSx1LnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZyksdS51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVuZCIscykpLChvLmNhbmNlbFRva2VufHxvLnNpZ25hbCkmJihuPVM9Pnt1JiYoaSghU3x8Uy50eXBlP25ldyBZKG51bGwsQSx1KTpTKSx1LmFib3J0KCksdT1udWxsKX0sby5jYW5jZWxUb2tlbiYmby5jYW5jZWxUb2tlbi5zdWJzY3JpYmUobiksby5zaWduYWwmJihvLnNpZ25hbC5hYm9ydGVkP24oKTpvLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbikpKTtsZXQgYj13ZShvLnVybCk7aWYoYiYmRC5wcm90b2NvbHMuaW5kZXhPZihiKT09PS0xKXtpKG5ldyBoKCJVbnN1cHBvcnRlZCBwcm90b2NvbCAiK2IrIjoiLGguRVJSX0JBRF9SRVFVRVNULEEpKTtyZXR1cm59dS5zZW5kKHJ8fG51bGwpfSl9O3ZhciBFbz0oQSxlKT0+e2xldHtsZW5ndGg6dH09QT1BP0EuZmlsdGVyKEJvb2xlYW4pOltdO2lmKGV8fHQpe2xldCBpPW5ldyBBYm9ydENvbnRyb2xsZXIsbyxyPWZ1bmN0aW9uKEIpe2lmKCFvKXtvPSEwLEMoKTtsZXQgbj1CIGluc3RhbmNlb2YgRXJyb3I/Qjp0aGlzLnJlYXNvbjtpLmFib3J0KG4gaW5zdGFuY2VvZiBoP246bmV3IFkobiBpbnN0YW5jZW9mIEVycm9yP24ubWVzc2FnZTpuKSl9fSxhPWUmJnNldFRpbWVvdXQoKCk9PnthPW51bGwscihuZXcgaChgdGltZW91dCAke2V9IG9mIG1zIGV4Y2VlZGVkYCxoLkVUSU1FRE9VVCkpfSxlKSxDPSgpPT57QSYmKGEmJmNsZWFyVGltZW91dChhKSxhPW51bGwsQS5mb3JFYWNoKEI9PntCLnVuc3Vic2NyaWJlP0IudW5zdWJzY3JpYmUocik6Qi5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIscil9KSxBPW51bGwpfTtBLmZvckVhY2goQj0+Qi5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIscikpO2xldHtzaWduYWw6cH09aTtyZXR1cm4gcC51bnN1YnNjcmliZT0oKT0+RS5hc2FwKEMpLHB9fSxncj1Fbzt2YXIgbG89ZnVuY3Rpb24qKEEsZSl7bGV0IHQ9QS5ieXRlTGVuZ3RoO2lmKCFlfHx0PGUpe3lpZWxkIEE7cmV0dXJufWxldCBpPTAsbztmb3IoO2k8dDspbz1pK2UseWllbGQgQS5zbGljZShpLG8pLGk9b30scG89YXN5bmMgZnVuY3Rpb24qKEEsZSl7Zm9yIGF3YWl0KGxldCB0IG9mIHVvKEEpKXlpZWxkKmxvKHQsZSl9LHVvPWFzeW5jIGZ1bmN0aW9uKihBKXtpZihBW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl7eWllbGQqQTtyZXR1cm59bGV0IGU9QS5nZXRSZWFkZXIoKTt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTp0LHZhbHVlOml9PWF3YWl0IGUucmVhZCgpO2lmKHQpYnJlYWs7eWllbGQgaX19ZmluYWxseXthd2FpdCBlLmNhbmNlbCgpfX0sa2U9KEEsZSx0LGkpPT57bGV0IG89cG8oQSxlKSxyPTAsYSxDPXA9PnthfHwoYT0hMCxpJiZpKHApKX07cmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7YXN5bmMgcHVsbChwKXt0cnl7bGV0e2RvbmU6Qix2YWx1ZTpufT1hd2FpdCBvLm5leHQoKTtpZihCKXtDKCkscC5jbG9zZSgpO3JldHVybn1sZXQgZz1uLmJ5dGVMZW5ndGg7aWYodCl7bGV0IGw9cis9Zzt0KGwpfXAuZW5xdWV1ZShuZXcgVWludDhBcnJheShuKSl9Y2F0Y2goQil7dGhyb3cgQyhCKSxCfX0sY2FuY2VsKHApe3JldHVybiBDKHApLG8ucmV0dXJuKCl9fSx7aGlnaFdhdGVyTWFyazoyfSl9O3ZhciBCcj02NCoxMDI0LHtpc0Z1bmN0aW9uOlhBfT1FLGxyPSgoe2ZldGNoOkEsUmVxdWVzdDplLFJlc3BvbnNlOnR9KT0+KHtmZXRjaDpBLFJlcXVlc3Q6ZSxSZXNwb25zZTp0fSkpKEUuZ2xvYmFsKSx7UmVhZGFibGVTdHJlYW06Q3IsVGV4dEVuY29kZXI6UXJ9PUUuZ2xvYmFsLEVyPShBLC4uLmUpPT57dHJ5e3JldHVybiEhQSguLi5lKX1jYXRjaHtyZXR1cm4hMX19LGZvPUE9PntsZXR7ZmV0Y2g6ZSxSZXF1ZXN0OnQsUmVzcG9uc2U6aX09T2JqZWN0LmFzc2lnbih7fSxscixBKSxvPVhBKGUpLHI9WEEodCksYT1YQShpKTtpZighbylyZXR1cm4hMTtsZXQgQz1vJiZYQShDcikscD1vJiYodHlwZW9mIFFyPT0iZnVuY3Rpb24iPyhJPT5mPT5JLmVuY29kZShmKSkobmV3IFFyKTphc3luYyBJPT5uZXcgVWludDhBcnJheShhd2FpdCBuZXcgdChJKS5hcnJheUJ1ZmZlcigpKSksQj1yJiZDJiZFcigoKT0+e2xldCBJPSExLGY9bmV3IHQoRC5vcmlnaW4se2JvZHk6bmV3IENyLG1ldGhvZDoiUE9TVCIsZ2V0IGR1cGxleCgpe3JldHVybiBJPSEwLCJoYWxmIn19KS5oZWFkZXJzLmhhcygiQ29udGVudC1UeXBlIik7cmV0dXJuIEkmJiFmfSksbj1hJiZDJiZFcigoKT0+RS5pc1JlYWRhYmxlU3RyZWFtKG5ldyBpKCIiKS5ib2R5KSksZz17c3RyZWFtOm4mJihJPT5JLmJvZHkpfTtvJiZbInRleHQiLCJhcnJheUJ1ZmZlciIsImJsb2IiLCJmb3JtRGF0YSIsInN0cmVhbSJdLmZvckVhY2goST0+eyFnW0ldJiYoZ1tJXT0oZix1KT0+e2xldCB3PWYmJmZbSV07aWYodylyZXR1cm4gdy5jYWxsKGYpO3Rocm93IG5ldyBoKGBSZXNwb25zZSB0eXBlICcke0l9JyBpcyBub3Qgc3VwcG9ydGVkYCxoLkVSUl9OT1RfU1VQUE9SVCx1KX0pfSk7bGV0IGw9YXN5bmMgST0+e2lmKEk9PW51bGwpcmV0dXJuIDA7aWYoRS5pc0Jsb2IoSSkpcmV0dXJuIEkuc2l6ZTtpZihFLmlzU3BlY0NvbXBsaWFudEZvcm0oSSkpcmV0dXJuKGF3YWl0IG5ldyB0KEQub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6SX0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYoRS5pc0FycmF5QnVmZmVyVmlldyhJKXx8RS5pc0FycmF5QnVmZmVyKEkpKXJldHVybiBJLmJ5dGVMZW5ndGg7aWYoRS5pc1VSTFNlYXJjaFBhcmFtcyhJKSYmKEk9SSsiIiksRS5pc1N0cmluZyhJKSlyZXR1cm4oYXdhaXQgcChJKSkuYnl0ZUxlbmd0aH0scz1hc3luYyhJLGYpPT57bGV0IHU9RS50b0Zpbml0ZU51bWJlcihJLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIHU/P2woZil9O3JldHVybiBhc3luYyBJPT57bGV0e3VybDpmLG1ldGhvZDp1LGRhdGE6dyxzaWduYWw6YixjYW5jZWxUb2tlbjpTLHRpbWVvdXQ6TixvbkRvd25sb2FkUHJvZ3Jlc3M6UCxvblVwbG9hZFByb2dyZXNzOlYscmVzcG9uc2VUeXBlOlcsaGVhZGVyczpuZSx3aXRoQ3JlZGVudGlhbHM6R0E9InNhbWUtb3JpZ2luIixmZXRjaE9wdGlvbnM6eXR9PXpBKEkpO1c9Vz8oVysiIikudG9Mb3dlckNhc2UoKToidGV4dCI7bGV0IE1BPWdyKFtiLFMmJlMudG9BYm9ydFNpZ25hbCgpXSxOKSx1QT1udWxsLHo9TUEmJk1BLnVuc3Vic2NyaWJlJiYoKCk9PntNQS51bnN1YnNjcmliZSgpfSksaHQ7dHJ5e2lmKFYmJkImJnUhPT0iZ2V0IiYmdSE9PSJoZWFkIiYmKGh0PWF3YWl0IHMobmUsdykpIT09MCl7bGV0IGo9bmV3IHQoZix7bWV0aG9kOiJQT1NUIixib2R5OncsZHVwbGV4OiJoYWxmIn0pLHRBO2lmKEUuaXNGb3JtRGF0YSh3KSYmKHRBPWouaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpKSYmbmUuc2V0Q29udGVudFR5cGUodEEpLGouYm9keSl7bGV0W2FlLFdBXT1EZShodCxJQShTZShWKSkpO3c9a2Uoai5ib2R5LEJyLGFlLFdBKX19RS5pc1N0cmluZyhHQSl8fChHQT1HQT8iaW5jbHVkZSI6Im9taXQiKTtsZXQgSj1yJiYiY3JlZGVudGlhbHMiaW4gdC5wcm90b3R5cGUsd3Q9ey4uLnl0LHNpZ25hbDpNQSxtZXRob2Q6dS50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6bmUubm9ybWFsaXplKCkudG9KU09OKCksYm9keTp3LGR1cGxleDoiaGFsZiIsY3JlZGVudGlhbHM6Sj9HQTp2b2lkIDB9O3VBPXImJm5ldyB0KGYsd3QpO2xldCBLPWF3YWl0KHI/ZSh1QSx5dCk6ZShmLHd0KSksRHQ9biYmKFc9PT0ic3RyZWFtInx8Vz09PSJyZXNwb25zZSIpO2lmKG4mJihQfHxEdCYmeikpe2xldCBqPXt9O1sic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXS5mb3JFYWNoKFN0PT57altTdF09S1tTdF19KTtsZXQgdEE9RS50b0Zpbml0ZU51bWJlcihLLmhlYWRlcnMuZ2V0KCJjb250ZW50LWxlbmd0aCIpKSxbYWUsV0FdPVAmJkRlKHRBLElBKFNlKFApLCEwKSl8fFtdO0s9bmV3IGkoa2UoSy5ib2R5LEJyLGFlLCgpPT57V0EmJldBKCkseiYmeigpfSksail9Vz1XfHwidGV4dCI7bGV0IHFyPWF3YWl0IGdbRS5maW5kS2V5KGcsVyl8fCJ0ZXh0Il0oSyxJKTtyZXR1cm4hRHQmJnomJnooKSxhd2FpdCBuZXcgUHJvbWlzZSgoaix0QSk9PntTQShqLHRBLHtkYXRhOnFyLGhlYWRlcnM6ay5mcm9tKEsuaGVhZGVycyksc3RhdHVzOksuc3RhdHVzLHN0YXR1c1RleHQ6Sy5zdGF0dXNUZXh0LGNvbmZpZzpJLHJlcXVlc3Q6dUF9KX0pfWNhdGNoKEope3Rocm93IHomJnooKSxKJiZKLm5hbWU9PT0iVHlwZUVycm9yIiYmL0xvYWQgZmFpbGVkfGZldGNoL2kudGVzdChKLm1lc3NhZ2UpP09iamVjdC5hc3NpZ24obmV3IGgoIk5ldHdvcmsgRXJyb3IiLGguRVJSX05FVFdPUkssSSx1QSkse2NhdXNlOkouY2F1c2V8fEp9KTpoLmZyb20oSixKJiZKLmNvZGUsSSx1QSl9fX0sY289bmV3IE1hcCxVZT1BPT57bGV0IGU9RS5tZXJnZS5jYWxsKHtza2lwVW5kZWZpbmVkOiEwfSxscixBP0EuZW52Om51bGwpLHtmZXRjaDp0LFJlcXVlc3Q6aSxSZXNwb25zZTpvfT1lLHI9W2ksbyx0XSxhPXIubGVuZ3RoLEM9YSxwLEIsbj1jbztmb3IoO0MtLTspcD1yW0NdLEI9bi5nZXQocCksQj09PXZvaWQgMCYmbi5zZXQocCxCPUM/bmV3IE1hcDpmbyhlKSksbj1CO3JldHVybiBCfSxzST1VZSgpO3ZhciBiZT17aHR0cDpLQSx4aHI6SXIsZmV0Y2g6e2dldDpVZX19O0UuZm9yRWFjaChiZSwoQSxlKT0+e2lmKEEpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwibmFtZSIse3ZhbHVlOmV9KX1jYXRjaHt9T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsImFkYXB0ZXJOYW1lIix7dmFsdWU6ZX0pfX0pO3ZhciBwcj1BPT5gLSAke0F9YCx5bz1BPT5FLmlzRnVuY3Rpb24oQSl8fEE9PT1udWxsfHxBPT09ITEsX0E9e2dldEFkYXB0ZXI6KEEsZSk9PntBPUUuaXNBcnJheShBKT9BOltBXTtsZXR7bGVuZ3RoOnR9PUEsaSxvLHI9e307Zm9yKGxldCBhPTA7YTx0O2ErKyl7aT1BW2FdO2xldCBDO2lmKG89aSwheW8oaSkmJihvPWJlWyhDPVN0cmluZyhpKSkudG9Mb3dlckNhc2UoKV0sbz09PXZvaWQgMCkpdGhyb3cgbmV3IGgoYFVua25vd24gYWRhcHRlciAnJHtDfSdgKTtpZihvJiYoRS5pc0Z1bmN0aW9uKG8pfHwobz1vLmdldChlKSkpKWJyZWFrO3JbQ3x8IiMiK2FdPW99aWYoIW8pe2xldCBhPU9iamVjdC5lbnRyaWVzKHIpLm1hcCgoW3AsQl0pPT5gYWRhcHRlciAke3B9IGArKEI9PT0hMT8iaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZW52aXJvbm1lbnQiOiJpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBidWlsZCIpKSxDPXQ/YS5sZW5ndGg+MT9gc2luY2UgOgpgK2EubWFwKHByKS5qb2luKGAKYCk6IiAiK3ByKGFbMF0pOiJhcyBubyBhZGFwdGVyIHNwZWNpZmllZCI7dGhyb3cgbmV3IGgoIlRoZXJlIGlzIG5vIHN1aXRhYmxlIGFkYXB0ZXIgdG8gZGlzcGF0Y2ggdGhlIHJlcXVlc3QgIitDLCJFUlJfTk9UX1NVUFBPUlQiKX1yZXR1cm4gb30sYWRhcHRlcnM6YmV9O2Z1bmN0aW9uIE5lKEEpe2lmKEEuY2FuY2VsVG9rZW4mJkEuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLEEuc2lnbmFsJiZBLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBZKG51bGwsQSl9ZnVuY3Rpb24gJEEoQSl7cmV0dXJuIE5lKEEpLEEuaGVhZGVycz1rLmZyb20oQS5oZWFkZXJzKSxBLmRhdGE9d0EuY2FsbChBLEEudHJhbnNmb3JtUmVxdWVzdCksWyJwb3N0IiwicHV0IiwicGF0Y2giXS5pbmRleE9mKEEubWV0aG9kKSE9PS0xJiZBLmhlYWRlcnMuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsITEpLF9BLmdldEFkYXB0ZXIoQS5hZGFwdGVyfHxhQS5hZGFwdGVyLEEpKEEpLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIE5lKEEpLGkuZGF0YT13QS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxpKSxpLmhlYWRlcnM9ay5mcm9tKGkuaGVhZGVycyksaX0sZnVuY3Rpb24oaSl7cmV0dXJuIERBKGkpfHwoTmUoQSksaSYmaS5yZXNwb25zZSYmKGkucmVzcG9uc2UuZGF0YT13QS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxpLnJlc3BvbnNlKSxpLnJlc3BvbnNlLmhlYWRlcnM9ay5mcm9tKGkucmVzcG9uc2UuaGVhZGVycykpKSxQcm9taXNlLnJlamVjdChpKX0pfXZhciBBZT0iMS4xMi4wIjt2YXIgZWU9e307WyJvYmplY3QiLCJib29sZWFuIiwibnVtYmVyIiwiZnVuY3Rpb24iLCJzdHJpbmciLCJzeW1ib2wiXS5mb3JFYWNoKChBLGUpPT57ZWVbQV09ZnVuY3Rpb24oaSl7cmV0dXJuIHR5cGVvZiBpPT09QXx8ImEiKyhlPDE/Im4gIjoiICIpK0F9fSk7dmFyIHVyPXt9O2VlLnRyYW5zaXRpb25hbD1mdW5jdGlvbihlLHQsaSl7ZnVuY3Rpb24gbyhyLGEpe3JldHVybiJbQXhpb3MgdiIrQWUrIl0gVHJhbnNpdGlvbmFsIG9wdGlvbiAnIityKyInIithKyhpPyIuICIraToiIil9cmV0dXJuKHIsYSxDKT0+e2lmKGU9PT0hMSl0aHJvdyBuZXcgaChvKGEsIiBoYXMgYmVlbiByZW1vdmVkIisodD8iIGluICIrdDoiIikpLGguRVJSX0RFUFJFQ0FURUQpO3JldHVybiB0JiYhdXJbYV0mJih1clthXT0hMCxjb25zb2xlLndhcm4obyhhLCIgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2Iit0KyIgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUiKSkpLGU/ZShyLGEsQyk6ITB9fTtlZS5zcGVsbGluZz1mdW5jdGlvbihlKXtyZXR1cm4odCxpKT0+KGNvbnNvbGUud2FybihgJHtpfSBpcyBsaWtlbHkgYSBtaXNzcGVsbGluZyBvZiAke2V9YCksITApfTtmdW5jdGlvbiBobyhBLGUsdCl7aWYodHlwZW9mIEEhPSJvYmplY3QiKXRocm93IG5ldyBoKCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0IixoLkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtsZXQgaT1PYmplY3Qua2V5cyhBKSxvPWkubGVuZ3RoO2Zvcig7by0tID4wOyl7bGV0IHI9aVtvXSxhPWVbcl07aWYoYSl7bGV0IEM9QVtyXSxwPUM9PT12b2lkIDB8fGEoQyxyLEEpO2lmKHAhPT0hMCl0aHJvdyBuZXcgaCgib3B0aW9uICIrcisiIG11c3QgYmUgIitwLGguRVJSX0JBRF9PUFRJT05fVkFMVUUpO2NvbnRpbnVlfWlmKHQhPT0hMCl0aHJvdyBuZXcgaCgiVW5rbm93biBvcHRpb24gIityLGguRVJSX0JBRF9PUFRJT04pfX12YXIgRkE9e2Fzc2VydE9wdGlvbnM6aG8sdmFsaWRhdG9yczplZX07dmFyIEg9RkEudmFsaWRhdG9ycyxnQT1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmRlZmF1bHRzPWV8fHt9LHRoaXMuaW50ZXJjZXB0b3JzPXtyZXF1ZXN0Om5ldyB1ZSxyZXNwb25zZTpuZXcgdWV9fWFzeW5jIHJlcXVlc3QoZSx0KXt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuX3JlcXVlc3QoZSx0KX1jYXRjaChpKXtpZihpIGluc3RhbmNlb2YgRXJyb3Ipe2xldCBvPXt9O0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKG8pOm89bmV3IEVycm9yO2xldCByPW8uc3RhY2s/by5zdGFjay5yZXBsYWNlKC9eLitcbi8sIiIpOiIiO3RyeXtpLnN0YWNrP3ImJiFTdHJpbmcoaS5zdGFjaykuZW5kc1dpdGgoci5yZXBsYWNlKC9eLitcbi4rXG4vLCIiKSkmJihpLnN0YWNrKz1gCmArcik6aS5zdGFjaz1yfWNhdGNoe319dGhyb3cgaX19X3JlcXVlc3QoZSx0KXt0eXBlb2YgZT09InN0cmluZyI/KHQ9dHx8e30sdC51cmw9ZSk6dD1lfHx7fSx0PUwodGhpcy5kZWZhdWx0cyx0KTtsZXR7dHJhbnNpdGlvbmFsOmkscGFyYW1zU2VyaWFsaXplcjpvLGhlYWRlcnM6cn09dDtpIT09dm9pZCAwJiZGQS5hc3NlcnRPcHRpb25zKGkse3NpbGVudEpTT05QYXJzaW5nOkgudHJhbnNpdGlvbmFsKEguYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6SC50cmFuc2l0aW9uYWwoSC5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOkgudHJhbnNpdGlvbmFsKEguYm9vbGVhbil9LCExKSxvIT1udWxsJiYoRS5pc0Z1bmN0aW9uKG8pP3QucGFyYW1zU2VyaWFsaXplcj17c2VyaWFsaXplOm99OkZBLmFzc2VydE9wdGlvbnMobyx7ZW5jb2RlOkguZnVuY3Rpb24sc2VyaWFsaXplOkguZnVuY3Rpb259LCEwKSksdC5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMHx8KHRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDA/dC5hbGxvd0Fic29sdXRlVXJscz10aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzOnQuYWxsb3dBYnNvbHV0ZVVybHM9ITApLEZBLmFzc2VydE9wdGlvbnModCx7YmFzZVVybDpILnNwZWxsaW5nKCJiYXNlVVJMIiksd2l0aFhzcmZUb2tlbjpILnNwZWxsaW5nKCJ3aXRoWFNSRlRva2VuIil9LCEwKSx0Lm1ldGhvZD0odC5tZXRob2R8fHRoaXMuZGVmYXVsdHMubWV0aG9kfHwiZ2V0IikudG9Mb3dlckNhc2UoKTtsZXQgYT1yJiZFLm1lcmdlKHIuY29tbW9uLHJbdC5tZXRob2RdKTtyJiZFLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sST0+e2RlbGV0ZSByW0ldfSksdC5oZWFkZXJzPWsuY29uY2F0KGEscik7bGV0IEM9W10scD0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24oZil7dHlwZW9mIGYucnVuV2hlbj09ImZ1bmN0aW9uIiYmZi5ydW5XaGVuKHQpPT09ITF8fChwPXAmJmYuc3luY2hyb25vdXMsQy51bnNoaWZ0KGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpKX0pO2xldCBCPVtdO3RoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24oZil7Qi5wdXNoKGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpfSk7bGV0IG4sZz0wLGw7aWYoIXApe2xldCBJPVskQS5iaW5kKHRoaXMpLHZvaWQgMF07Zm9yKEkudW5zaGlmdCguLi5DKSxJLnB1c2goLi4uQiksbD1JLmxlbmd0aCxuPVByb21pc2UucmVzb2x2ZSh0KTtnPGw7KW49bi50aGVuKElbZysrXSxJW2crK10pO3JldHVybiBufWw9Qy5sZW5ndGg7bGV0IHM9dDtmb3IoZz0wO2c8bDspe2xldCBJPUNbZysrXSxmPUNbZysrXTt0cnl7cz1JKHMpfWNhdGNoKHUpe2YuY2FsbCh0aGlzLHUpO2JyZWFrfX10cnl7bj0kQS5jYWxsKHRoaXMscyl9Y2F0Y2goSSl7cmV0dXJuIFByb21pc2UucmVqZWN0KEkpfWZvcihnPTAsbD1CLmxlbmd0aDtnPGw7KW49bi50aGVuKEJbZysrXSxCW2crK10pO3JldHVybiBufWdldFVyaShlKXtlPUwodGhpcy5kZWZhdWx0cyxlKTtsZXQgdD1SQShlLmJhc2VVUkwsZS51cmwsZS5hbGxvd0Fic29sdXRlVXJscyk7cmV0dXJuIHlBKHQsZS5wYXJhbXMsZS5wYXJhbXNTZXJpYWxpemVyKX19O0UuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJvcHRpb25zIl0sZnVuY3Rpb24oZSl7Z0EucHJvdG90eXBlW2VdPWZ1bmN0aW9uKHQsaSl7cmV0dXJuIHRoaXMucmVxdWVzdChMKGl8fHt9LHttZXRob2Q6ZSx1cmw6dCxkYXRhOihpfHx7fSkuZGF0YX0pKX19KTtFLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSxmdW5jdGlvbihlKXtmdW5jdGlvbiB0KGkpe3JldHVybiBmdW5jdGlvbihyLGEsQyl7cmV0dXJuIHRoaXMucmVxdWVzdChMKEN8fHt9LHttZXRob2Q6ZSxoZWFkZXJzOmk/eyJDb250ZW50LVR5cGUiOiJtdWx0aXBhcnQvZm9ybS1kYXRhIn06e30sdXJsOnIsZGF0YTphfSkpfX1nQS5wcm90b3R5cGVbZV09dCgpLGdBLnByb3RvdHlwZVtlKyJGb3JtIl09dCghMCl9KTt2YXIga0E9Z0E7dmFyIEdlPWNsYXNzIEF7Y29uc3RydWN0b3IoZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO2xldCB0O3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihyKXt0PXJ9KTtsZXQgaT10aGlzO3RoaXMucHJvbWlzZS50aGVuKG89PntpZighaS5fbGlzdGVuZXJzKXJldHVybjtsZXQgcj1pLl9saXN0ZW5lcnMubGVuZ3RoO2Zvcig7ci0tID4wOylpLl9saXN0ZW5lcnNbcl0obyk7aS5fbGlzdGVuZXJzPW51bGx9KSx0aGlzLnByb21pc2UudGhlbj1vPT57bGV0IHIsYT1uZXcgUHJvbWlzZShDPT57aS5zdWJzY3JpYmUoQykscj1DfSkudGhlbihvKTtyZXR1cm4gYS5jYW5jZWw9ZnVuY3Rpb24oKXtpLnVuc3Vic2NyaWJlKHIpfSxhfSxlKGZ1bmN0aW9uKHIsYSxDKXtpLnJlYXNvbnx8KGkucmVhc29uPW5ldyBZKHIsYSxDKSx0KGkucmVhc29uKSl9KX10aHJvd0lmUmVxdWVzdGVkKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259c3Vic2NyaWJlKGUpe2lmKHRoaXMucmVhc29uKXtlKHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKGUpOnRoaXMuX2xpc3RlbmVycz1bZV19dW5zdWJzY3JpYmUoZSl7aWYoIXRoaXMuX2xpc3RlbmVycylyZXR1cm47bGV0IHQ9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YoZSk7dCE9PS0xJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKHQsMSl9dG9BYm9ydFNpZ25hbCgpe2xldCBlPW5ldyBBYm9ydENvbnRyb2xsZXIsdD1pPT57ZS5hYm9ydChpKX07cmV0dXJuIHRoaXMuc3Vic2NyaWJlKHQpLGUuc2lnbmFsLnVuc3Vic2NyaWJlPSgpPT50aGlzLnVuc3Vic2NyaWJlKHQpLGUuc2lnbmFsfXN0YXRpYyBzb3VyY2UoKXtsZXQgZTtyZXR1cm57dG9rZW46bmV3IEEoZnVuY3Rpb24obyl7ZT1vfSksY2FuY2VsOmV9fX0sZnI9R2U7ZnVuY3Rpb24gTWUoQSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBBLmFwcGx5KG51bGwsdCl9fWZ1bmN0aW9uIFdlKEEpe3JldHVybiBFLmlzT2JqZWN0KEEpJiZBLmlzQXhpb3NFcnJvcj09PSEwfXZhciBQZT17Q29udGludWU6MTAwLFN3aXRjaGluZ1Byb3RvY29sczoxMDEsUHJvY2Vzc2luZzoxMDIsRWFybHlIaW50czoxMDMsT2s6MjAwLENyZWF0ZWQ6MjAxLEFjY2VwdGVkOjIwMixOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb246MjAzLE5vQ29udGVudDoyMDQsUmVzZXRDb250ZW50OjIwNSxQYXJ0aWFsQ29udGVudDoyMDYsTXVsdGlTdGF0dXM6MjA3LEFscmVhZHlSZXBvcnRlZDoyMDgsSW1Vc2VkOjIyNixNdWx0aXBsZUNob2ljZXM6MzAwLE1vdmVkUGVybWFuZW50bHk6MzAxLEZvdW5kOjMwMixTZWVPdGhlcjozMDMsTm90TW9kaWZpZWQ6MzA0LFVzZVByb3h5OjMwNSxVbnVzZWQ6MzA2LFRlbXBvcmFyeVJlZGlyZWN0OjMwNyxQZXJtYW5lbnRSZWRpcmVjdDozMDgsQmFkUmVxdWVzdDo0MDAsVW5hdXRob3JpemVkOjQwMSxQYXltZW50UmVxdWlyZWQ6NDAyLEZvcmJpZGRlbjo0MDMsTm90Rm91bmQ6NDA0LE1ldGhvZE5vdEFsbG93ZWQ6NDA1LE5vdEFjY2VwdGFibGU6NDA2LFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDo0MDcsUmVxdWVzdFRpbWVvdXQ6NDA4LENvbmZsaWN0OjQwOSxHb25lOjQxMCxMZW5ndGhSZXF1aXJlZDo0MTEsUHJlY29uZGl0aW9uRmFpbGVkOjQxMixQYXlsb2FkVG9vTGFyZ2U6NDEzLFVyaVRvb0xvbmc6NDE0LFVuc3VwcG9ydGVkTWVkaWFUeXBlOjQxNSxSYW5nZU5vdFNhdGlzZmlhYmxlOjQxNixFeHBlY3RhdGlvbkZhaWxlZDo0MTcsSW1BVGVhcG90OjQxOCxNaXNkaXJlY3RlZFJlcXVlc3Q6NDIxLFVucHJvY2Vzc2FibGVFbnRpdHk6NDIyLExvY2tlZDo0MjMsRmFpbGVkRGVwZW5kZW5jeTo0MjQsVG9vRWFybHk6NDI1LFVwZ3JhZGVSZXF1aXJlZDo0MjYsUHJlY29uZGl0aW9uUmVxdWlyZWQ6NDI4LFRvb01hbnlSZXF1ZXN0czo0MjksUmVxdWVzdEhlYWRlckZpZWxkc1Rvb0xhcmdlOjQzMSxVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczo0NTEsSW50ZXJuYWxTZXJ2ZXJFcnJvcjo1MDAsTm90SW1wbGVtZW50ZWQ6NTAxLEJhZEdhdGV3YXk6NTAyLFNlcnZpY2VVbmF2YWlsYWJsZTo1MDMsR2F0ZXdheVRpbWVvdXQ6NTA0LEh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOjUwNSxWYXJpYW50QWxzb05lZ290aWF0ZXM6NTA2LEluc3VmZmljaWVudFN0b3JhZ2U6NTA3LExvb3BEZXRlY3RlZDo1MDgsTm90RXh0ZW5kZWQ6NTEwLE5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOjUxMX07T2JqZWN0LmVudHJpZXMoUGUpLmZvckVhY2goKFtBLGVdKT0+e1BlW2VdPUF9KTt2YXIgY3I9UGU7ZnVuY3Rpb24gbXIoQSl7bGV0IGU9bmV3IGtBKEEpLHQ9ZkEoa0EucHJvdG90eXBlLnJlcXVlc3QsZSk7cmV0dXJuIEUuZXh0ZW5kKHQsa0EucHJvdG90eXBlLGUse2FsbE93bktleXM6ITB9KSxFLmV4dGVuZCh0LGUsbnVsbCx7YWxsT3duS2V5czohMH0pLHQuY3JlYXRlPWZ1bmN0aW9uKG8pe3JldHVybiBtcihMKEEsbykpfSx0fXZhciBSPW1yKGFBKTtSLkF4aW9zPWtBO1IuQ2FuY2VsZWRFcnJvcj1ZO1IuQ2FuY2VsVG9rZW49ZnI7Ui5pc0NhbmNlbD1EQTtSLlZFUlNJT049QWU7Ui50b0Zvcm1EYXRhPXY7Ui5BeGlvc0Vycm9yPWg7Ui5DYW5jZWw9Ui5DYW5jZWxlZEVycm9yO1IuYWxsPWZ1bmN0aW9uKGUpe3JldHVybiBQcm9taXNlLmFsbChlKX07Ui5zcHJlYWQ9TWU7Ui5pc0F4aW9zRXJyb3I9V2U7Ui5tZXJnZUNvbmZpZz1MO1IuQXhpb3NIZWFkZXJzPWs7Ui5mb3JtVG9KU09OPUE9PlpBKEUuaXNIVE1MRm9ybShBKT9uZXcgRm9ybURhdGEoQSk6QSk7Ui5nZXRBZGFwdGVyPV9BLmdldEFkYXB0ZXI7Ui5IdHRwU3RhdHVzQ29kZT1jcjtSLmRlZmF1bHQ9Ujt2YXIgQkE9Ujt2YXJ7QXhpb3M6b2csQXhpb3NFcnJvcjpuZyxDYW5jZWxlZEVycm9yOmFnLGlzQ2FuY2VsOnNnLENhbmNlbFRva2VuOklnLFZFUlNJT046Z2csYWxsOkJnLENhbmNlbDpDZyxpc0F4aW9zRXJyb3I6UWcsc3ByZWFkOkVnLHRvRm9ybURhdGE6bGcsQXhpb3NIZWFkZXJzOnBnLEh0dHBTdGF0dXNDb2RlOnVnLGZvcm1Ub0pTT046ZmcsZ2V0QWRhcHRlcjpjZyxtZXJnZUNvbmZpZzptZ309QkE7YXN5bmMgZnVuY3Rpb24gd28oQSxlKXtsZXQgdD1BLGk9bnVsbDtpZih0PT1udWxsKWk9bmV3IFdvcmtlcihuZXcgVVJMKCIuL3dlYi13b3JrZXJzL2l0ay13YXNtLXBpcGVsaW5lLndvcmtlci5qcyIsaW1wb3J0Lm1ldGEudXJsKSx7dHlwZToibW9kdWxlIn0pO2Vsc2UgaWYodC5zdGFydHNXaXRoKCJodHRwIikpe2xldCBvPWF3YWl0IEJBLmdldCh0LHtyZXNwb25zZVR5cGU6ImJsb2IiLHBhcmFtczplfSkscj1VUkwuY3JlYXRlT2JqZWN0VVJMKG8uZGF0YSk7aT1uZXcgV29ya2VyKHIse3R5cGU6Im1vZHVsZSJ9KX1lbHNlIGk9bmV3IFdvcmtlcih0LHt0eXBlOiJtb2R1bGUifSk7cmV0dXJuIGl9dmFyIFVBPXdvO2Z1bmN0aW9uIGRyKEEpe2xldCBlPUJlKEEpLHQ9QTtyZXR1cm4gdC50ZXJtaW5hdGVkPSExLHQud29ya2VyUHJveHk9ZSx0Lm9yaWdpbmFsVGVybWluYXRlPXQudGVybWluYXRlLHQudGVybWluYXRlPSgpPT57dC50ZXJtaW5hdGVkPSEwLHQud29ya2VyUHJveHlbZ2VdKCksdC5vcmlnaW5hbFRlcm1pbmF0ZSgpfSx7d29ya2VyUHJveHk6ZSx3b3JrZXI6dH19YXN5bmMgZnVuY3Rpb24gRG8oQSxlLHQpe2xldCBpO2lmKEEhPW51bGwpe2xldCByPUE7cmV0dXJuIHIud29ya2VyUHJveHkhPT12b2lkIDA/KGk9ci53b3JrZXJQcm94eSx7d29ya2VyUHJveHk6aSx3b3JrZXI6cn0pOmRyKEEpfWxldCBvPWF3YWl0IFVBKGUsdCk7cmV0dXJuIGRyKG8pfXZhciB5cj1Ebzt2YXIgYkEscSxMZSxPZT17ZW52OntlbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoOmZ1bmN0aW9uKEEpe0xlPW5ldyBVaW50OEFycmF5KHEuZXhwb3J0cy5tZW1vcnkuYnVmZmVyKX19fSx0ZT1jbGFzc3tpbml0KCl7cmV0dXJuIGJBfHwodHlwZW9mIGZldGNoPCJ1Ij9iQT1mZXRjaCgiZGF0YTphcHBsaWNhdGlvbi93YXNtO2Jhc2U2NCwiK2hyKS50aGVuKGU9PmUuYXJyYXlCdWZmZXIoKSkudGhlbihlPT5XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShlLE9lKSkudGhlbih0aGlzLl9pbml0KTpiQT1XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShCdWZmZXIuZnJvbShociwiYmFzZTY0IiksT2UpLnRoZW4odGhpcy5faW5pdCksYkEpfV9pbml0KGUpe3E9ZS5pbnN0YW5jZSxPZS5lbnYuZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aCgwKX1kZWNvZGUoZSx0PTApe2lmKCFxKXRocm93IG5ldyBFcnJvcigiWlNURERlY29kZXI6IEF3YWl0IC5pbml0KCkgYmVmb3JlIGRlY29kaW5nLiIpO2xldCBpPWUuYnl0ZUxlbmd0aCxvPXEuZXhwb3J0cy5tYWxsb2MoaSk7TGUuc2V0KGUsbyksdD10fHxOdW1iZXIocS5leHBvcnRzLlpTVERfZmluZERlY29tcHJlc3NlZFNpemUobyxpKSk7bGV0IHI9cS5leHBvcnRzLm1hbGxvYyh0KSxhPXEuZXhwb3J0cy5aU1REX2RlY29tcHJlc3Mocix0LG8saSksQz1MZS5zbGljZShyLHIrYSk7cmV0dXJuIHEuZXhwb3J0cy5mcmVlKG8pLHEuZXhwb3J0cy5mcmVlKHIpLEN9fSxocj0iQUdGemJRRUFBQUFCYmc1Z0EzOS9md0YvWUFGL0FYOWdBbjkvQUdBQmZ3QmdCWDkvZjM5L0FYOWdBMzkvZndCZ0JIOS9mMzhCZjJBQUFYOWdBbjkvQVg5Z0IzOS9mMzkvZjM4QmYyQUNmMzhCZm1BSWYzOS9mMzkvZjM4QmYyQUZmMzkvZjM4QVlBNS9mMzkvZjM5L2YzOS9mMzkvZndGL0FpY0JBMlZ1ZGg5bGJYTmpjbWx3ZEdWdVgyNXZkR2xtZVY5dFpXMXZjbmxmWjNKdmQzUm9BQU1ESXlJSEFBQUJBUU1IQXdFQUNRUUFCUUVJQ0FFRkJnUUVCQU1HQUFBS0FBVUxEQTBHQkFVQmNBRUJBUVVIQVFHQUFvQ0FBZ1lJQVg4QlFZQ2pCQXNIcmdFTEJtMWxiVzl5ZVFJQUJtMWhiR3h2WXdBRkJHWnlaV1VBQmd4YVUxUkVYMmx6UlhKeWIzSUFFaGxhVTFSRVgyWnBibVJFWldOdmJYQnlaWE56WldSVGFYcGxBQndQV2xOVVJGOWtaV052YlhCeVpYTnpBQ0laWDE5cGJtUnBjbVZqZEY5bWRXNWpkR2x2Ymw5MFlXSnNaUUVBRUY5ZlpYSnlibTlmYkc5allYUnBiMjRBQVFsemRHRmphMU5oZG1VQUJ3eHpkR0ZqYTFKbGMzUnZjbVVBQ0FwemRHRmphMEZzYkc5akFBa0tpL0lCSWdVQVFZUWZDek1CQVg4Z0FnUkFJQUFoQXdOQUlBTWdBUzBBQURvQUFDQURRUUZxSVFNZ0FVRUJhaUVCSUFKQkFXc2lBZzBBQ3dzZ0FBc3BBUUYvSUFJRVFDQUFJUU1EUUNBRElBRTZBQUFnQTBFQmFpRURJQUpCQVdzaUFnMEFDd3NnQUF0c0FRSi9RWUFmS0FJQUlnRWdBRUVIYWtGNGNTSUNhaUVBQWtBZ0FrRUFJQUFnQVUwYkRRQWdBRDhBUVJCMFN3UkFJQUEvQUVFUWRHdEIvLzhEYWtFUWRrQUFRWDlHQkg5QkFBVkJBQkFBUVFFTFJRMEJDMEdBSHlBQU5nSUFJQUVQQzBHRUgwRXdOZ0lBUVg4THVTY0JDMzhqQUVFUWF5SUtKQUFDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCaUI4b0FnQWlCa0VRSUFCQkMycEJlSEVnQUVFTFNSc2lCVUVEZGlJQWRpSUJRUU54QkVBQ1FDQUJRWDl6UVFGeElBQnFJZ0pCQTNRaUFVR3dIMm9pQUNBQlFiZ2ZhaWdDQUNJQktBSUlJZ1JHQkVCQmlCOGdCa0YrSUFKM2NUWUNBQXdCQ3lBRUlBQTJBZ3dnQUNBRU5nSUlDeUFCUVFocUlRQWdBU0FDUVFOMElnSkJBM0kyQWdRZ0FTQUNhaUlCSUFFb0FnUkJBWEkyQWdRTUR3c2dCVUdRSHlnQ0FDSUhUUTBCSUFFRVFBSkFRUUlnQUhRaUFrRUFJQUpyY2lBQklBQjBjV2dpQVVFRGRDSUFRYkFmYWlJQ0lBQkJ1QjlxS0FJQUlnQW9BZ2dpQkVZRVFFR0lIeUFHUVg0Z0FYZHhJZ1kyQWdBTUFRc2dCQ0FDTmdJTUlBSWdCRFlDQ0FzZ0FDQUZRUU55TmdJRUlBQWdCV29pQ0NBQlFRTjBJZ0VnQldzaUJFRUJjallDQkNBQUlBRnFJQVEyQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUZCbkI4b0FnQWhBZ0ovSUFaQkFTQUhRUU4yZENJRGNVVUVRRUdJSHlBRElBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEF5QUJJQUkyQWdnZ0F5QUNOZ0lNSUFJZ0FUWUNEQ0FDSUFNMkFnZ0xJQUJCQ0dvaEFFR2NIeUFJTmdJQVFaQWZJQVEyQWdBTUR3dEJqQjhvQWdBaUMwVU5BU0FMYUVFQ2RFRzRJV29vQWdBaUFpZ0NCRUY0Y1NBRmF5RURJQUloQVFOQUFrQWdBU2dDRUNJQVJRUkFJQUVvQWhRaUFFVU5BUXNnQUNnQ0JFRjRjU0FGYXlJQklBTWdBU0FEU1NJQkd5RURJQUFnQWlBQkd5RUNJQUFoQVF3QkN3c2dBaWdDR0NFSklBSWdBaWdDRENJRVJ3UkFRWmdmS0FJQUdpQUNLQUlJSWdBZ0JEWUNEQ0FFSUFBMkFnZ01EZ3NnQWtFVWFpSUJLQUlBSWdCRkJFQWdBaWdDRUNJQVJRMERJQUpCRUdvaEFRc0RRQ0FCSVFnZ0FDSUVRUlJxSWdFb0FnQWlBQTBBSUFSQkVHb2hBU0FFS0FJUUlnQU5BQXNnQ0VFQU5nSUFEQTBMUVg4aEJTQUFRYjkvU3cwQUlBQkJDMm9pQUVGNGNTRUZRWXdmS0FJQUlnaEZEUUJCQUNBRmF5RURBa0FDUUFKQUFuOUJBQ0FGUVlBQ1NRMEFHa0VmSUFWQi8vLy9CMHNOQUJvZ0JVRW1JQUJCQ0habklnQnJka0VCY1NBQVFRRjBhMEUrYWdzaUIwRUNkRUc0SVdvb0FnQWlBVVVFUUVFQUlRQU1BUXRCQUNFQUlBVkJHU0FIUVFGMmEwRUFJQWRCSDBjYmRDRUNBMEFDUUNBQktBSUVRWGh4SUFWcklnWWdBMDhOQUNBQklRUWdCaUlERFFCQkFDRURJQUVoQUF3REN5QUFJQUVvQWhRaUJpQUdJQUVnQWtFZGRrRUVjV29vQWhBaUFVWWJJQUFnQmhzaEFDQUNRUUYwSVFJZ0FRMEFDd3NnQUNBRWNrVUVRRUVBSVFSQkFpQUhkQ0lBUVFBZ0FHdHlJQWh4SWdCRkRRTWdBR2hCQW5SQnVDRnFLQUlBSVFBTElBQkZEUUVMQTBBZ0FDZ0NCRUY0Y1NBRmF5SUNJQU5KSVFFZ0FpQURJQUViSVFNZ0FDQUVJQUViSVFRZ0FDZ0NFQ0lCQkg4Z0FRVWdBQ2dDRkFzaUFBMEFDd3NnQkVVTkFDQURRWkFmS0FJQUlBVnJUdzBBSUFRb0FoZ2hCeUFFSUFRb0Fnd2lBa2NFUUVHWUh5Z0NBQm9nQkNnQ0NDSUFJQUkyQWd3Z0FpQUFOZ0lJREF3TElBUkJGR29pQVNnQ0FDSUFSUVJBSUFRb0FoQWlBRVVOQXlBRVFSQnFJUUVMQTBBZ0FTRUdJQUFpQWtFVWFpSUJLQUlBSWdBTkFDQUNRUkJxSVFFZ0FpZ0NFQ0lBRFFBTElBWkJBRFlDQUF3TEN5QUZRWkFmS0FJQUlnUk5CRUJCbkI4b0FnQWhBQUpBSUFRZ0JXc2lBVUVRVHdSQUlBQWdCV29pQWlBQlFRRnlOZ0lFSUFBZ0JHb2dBVFlDQUNBQUlBVkJBM0kyQWdRTUFRc2dBQ0FFUVFOeU5nSUVJQUFnQkdvaUFTQUJLQUlFUVFGeU5nSUVRUUFoQWtFQUlRRUxRWkFmSUFFMkFnQkJuQjhnQWpZQ0FDQUFRUWhxSVFBTURRc2dCVUdVSHlnQ0FDSUNTUVJBUVpRZklBSWdCV3NpQVRZQ0FFR2dIMEdnSHlnQ0FDSUFJQVZxSWdJMkFnQWdBaUFCUVFGeU5nSUVJQUFnQlVFRGNqWUNCQ0FBUVFocUlRQU1EUXRCQUNFQUlBVkJMMm9pQXdKL1FlQWlLQUlBQkVCQjZDSW9BZ0FNQVF0QjdDSkNmemNDQUVIa0lrS0FvSUNBZ0lBRU53SUFRZUFpSUFwQkRHcEJjSEZCMktyVnFnVnpOZ0lBUWZRaVFRQTJBZ0JCeENKQkFEWUNBRUdBSUFzaUFXb2lCa0VBSUFGcklnaHhJZ0VnQlUwTkRFSEFJaWdDQUNJRUJFQkJ1Q0lvQWdBaUJ5QUJhaUlKSUFkTklBUWdDVWx5RFEwTEFrQkJ4Q0l0QUFCQkJIRkZCRUFDUUFKQUFrQUNRRUdnSHlnQ0FDSUVCRUJCeUNJaEFBTkFJQVFnQUNnQ0FDSUhUd1JBSUFjZ0FDZ0NCR29nQkVzTkF3c2dBQ2dDQ0NJQURRQUxDMEVBRUFRaUFrRi9SZzBESUFFaEJrSGtJaWdDQUNJQVFRRnJJZ1FnQW5FRVFDQUJJQUpySUFJZ0JHcEJBQ0FBYTNGcUlRWUxJQVVnQms4TkEwSEFJaWdDQUNJQUJFQkJ1Q0lvQWdBaUJDQUdhaUlJSUFSTklBQWdDRWx5RFFRTElBWVFCQ0lBSUFKSERRRU1CUXNnQmlBQ2F5QUljU0lHRUFRaUFpQUFLQUlBSUFBb0FnUnFSZzBCSUFJaEFBc2dBRUYvUmcwQklBVkJNR29nQmswRVFDQUFJUUlNQkF0QjZDSW9BZ0FpQWlBRElBWnJha0VBSUFKcmNTSUNFQVJCZjBZTkFTQUNJQVpxSVFZZ0FDRUNEQU1MSUFKQmYwY05BZ3RCeENKQnhDSW9BZ0JCQkhJMkFnQUxJQUVRQkNJQ1FYOUdRUUFRQkNJQVFYOUdjaUFBSUFKTmNnMEZJQUFnQW1zaUJpQUZRU2hxVFEwRkMwRzRJa0c0SWlnQ0FDQUdhaUlBTmdJQVFid2lLQUlBSUFCSkJFQkJ2Q0lnQURZQ0FBc0NRRUdnSHlnQ0FDSURCRUJCeUNJaEFBTkFJQUlnQUNnQ0FDSUJJQUFvQWdRaUJHcEdEUUlnQUNnQ0NDSUFEUUFMREFRTFFaZ2ZLQUlBSWdCQkFDQUFJQUpORzBVRVFFR1lIeUFDTmdJQUMwRUFJUUJCekNJZ0JqWUNBRUhJSWlBQ05nSUFRYWdmUVg4MkFnQkJyQjlCNENJb0FnQTJBZ0JCMUNKQkFEWUNBQU5BSUFCQkEzUWlBVUc0SDJvZ0FVR3dIMm9pQkRZQ0FDQUJRYndmYWlBRU5nSUFJQUJCQVdvaUFFRWdSdzBBQzBHVUh5QUdRU2hySWdCQmVDQUNhMEVIY1NJQmF5SUVOZ0lBUWFBZklBRWdBbW9pQVRZQ0FDQUJJQVJCQVhJMkFnUWdBQ0FDYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFRTElBSWdBMDBnQVNBRFMzSU5BaUFBS0FJTVFRaHhEUUlnQUNBRUlBWnFOZ0lFUWFBZklBTkJlQ0FEYTBFSGNTSUFhaUlCTmdJQVFaUWZRWlFmS0FJQUlBWnFJZ0lnQUdzaUFEWUNBQ0FCSUFCQkFYSTJBZ1FnQWlBRGFrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBTUxRUUFoQkF3S0MwRUFJUUlNQ0F0Qm1COG9BZ0FnQWtzRVFFR1lIeUFDTmdJQUN5QUNJQVpxSVFGQnlDSWhBQUpBQWtBQ1FBTkFJQUVnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEJ5Q0loQUFOQUlBTWdBQ2dDQUNJQlR3UkFJQUVnQUNnQ0JHb2lCQ0FEU3cwREN5QUFLQUlJSVFBTUFBc0FDeUFBSUFJMkFnQWdBQ0FBS0FJRUlBWnFOZ0lFSUFKQmVDQUNhMEVIY1dvaUJ5QUZRUU55TmdJRUlBRkJlQ0FCYTBFSGNXb2lCaUFGSUFkcUlnVnJJUUFnQXlBR1JnUkFRYUFmSUFVMkFnQkJsQjlCbEI4b0FnQWdBR29pQURZQ0FDQUZJQUJCQVhJMkFnUU1DQXRCbkI4b0FnQWdCa1lFUUVHY0h5QUZOZ0lBUVpBZlFaQWZLQUlBSUFCcUlnQTJBZ0FnQlNBQVFRRnlOZ0lFSUFBZ0JXb2dBRFlDQUF3SUN5QUdLQUlFSWdOQkEzRkJBVWNOQmlBRFFYaHhJUWtnQTBIL0FVMEVRQ0FHS0FJTUlnRWdCaWdDQ0NJQ1JnUkFRWWdmUVlnZktBSUFRWDRnQTBFRGRuZHhOZ0lBREFjTElBSWdBVFlDRENBQklBSTJBZ2dNQmdzZ0JpZ0NHQ0VJSUFZZ0JpZ0NEQ0lDUndSQUlBWW9BZ2dpQVNBQ05nSU1JQUlnQVRZQ0NBd0ZDeUFHUVJScUlnRW9BZ0FpQTBVRVFDQUdLQUlRSWdORkRRUWdCa0VRYWlFQkN3TkFJQUVoQkNBRElnSkJGR29pQVNnQ0FDSUREUUFnQWtFUWFpRUJJQUlvQWhBaUF3MEFDeUFFUVFBMkFnQU1CQXRCbEI4Z0JrRW9heUlBUVhnZ0FtdEJCM0VpQVdzaUNEWUNBRUdnSHlBQklBSnFJZ0UyQWdBZ0FTQUlRUUZ5TmdJRUlBQWdBbXBCS0RZQ0JFR2tIMEh3SWlnQ0FEWUNBQ0FESUFSQkp5QUVhMEVIY1dwQkwyc2lBQ0FBSUFOQkVHcEpHeUlCUVJzMkFnUWdBVUhRSWlrQ0FEY0NFQ0FCUWNnaUtRSUFOd0lJUWRBaUlBRkJDR28yQWdCQnpDSWdCallDQUVISUlpQUNOZ0lBUWRRaVFRQTJBZ0FnQVVFWWFpRUFBMEFnQUVFSE5nSUVJQUJCQ0dvZ0FFRUVhaUVBSUFSSkRRQUxJQUVnQTBZTkFDQUJJQUVvQWdSQmZuRTJBZ1FnQXlBQklBTnJJZ0pCQVhJMkFnUWdBU0FDTmdJQUlBSkIvd0ZOQkVBZ0FrRjRjVUd3SDJvaEFBSi9RWWdmS0FJQUlnRkJBU0FDUVFOMmRDSUNjVVVFUUVHSUh5QUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBU0FBSUFNMkFnZ2dBU0FETmdJTUlBTWdBRFlDRENBRElBRTJBZ2dNQVF0Qkh5RUFJQUpCLy8vL0IwMEVRQ0FDUVNZZ0FrRUlkbWNpQUd0MlFRRnhJQUJCQVhSclFUNXFJUUFMSUFNZ0FEWUNIQ0FEUWdBM0FoQWdBRUVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQkVFQklBQjBJZ1p4UlFSQVFZd2ZJQVFnQm5JMkFnQWdBU0FETmdJQURBRUxJQUpCR1NBQVFRRjJhMEVBSUFCQkgwY2JkQ0VBSUFFb0FnQWhCQU5BSUFRaUFTZ0NCRUY0Y1NBQ1JnMENJQUJCSFhZaEJDQUFRUUYwSVFBZ0FTQUVRUVJ4YWlJR0tBSVFJZ1FOQUFzZ0JpQUROZ0lRQ3lBRElBRTJBaGdnQXlBRE5nSU1JQU1nQXpZQ0NBd0JDeUFCS0FJSUlnQWdBellDRENBQklBTTJBZ2dnQTBFQU5nSVlJQU1nQVRZQ0RDQURJQUEyQWdnTFFaUWZLQUlBSWdBZ0JVME5BRUdVSHlBQUlBVnJJZ0UyQWdCQm9COUJvQjhvQWdBaUFDQUZhaUlDTmdJQUlBSWdBVUVCY2pZQ0JDQUFJQVZCQTNJMkFnUWdBRUVJYWlFQURBZ0xRWVFmUVRBMkFnQkJBQ0VBREFjTFFRQWhBZ3NnQ0VVTkFBSkFJQVlvQWh3aUFVRUNkRUc0SVdvaUJDZ0NBQ0FHUmdSQUlBUWdBallDQUNBQ0RRRkJqQjlCakI4b0FnQkJmaUFCZDNFMkFnQU1BZ3NnQ0VFUVFSUWdDQ2dDRUNBR1JodHFJQUkyQWdBZ0FrVU5BUXNnQWlBSU5nSVlJQVlvQWhBaUFRUkFJQUlnQVRZQ0VDQUJJQUkyQWhnTElBWW9BaFFpQVVVTkFDQUNJQUUyQWhRZ0FTQUNOZ0lZQ3lBQUlBbHFJUUFnQmlBSmFpSUdLQUlFSVFNTElBWWdBMEYrY1RZQ0JDQUZJQUJCQVhJMkFnUWdBQ0FGYWlBQU5nSUFJQUJCL3dGTkJFQWdBRUY0Y1VHd0gyb2hBUUovUVlnZktBSUFJZ0pCQVNBQVFRTjJkQ0lBY1VVRVFFR0lIeUFBSUFKeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQUNBQklBVTJBZ2dnQUNBRk5nSU1JQVVnQVRZQ0RDQUZJQUEyQWdnTUFRdEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBVWdBellDSENBRlFnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUFrRUJJQU4wSWdSeFJRUkFRWXdmSUFJZ0JISTJBZ0FnQVNBRk5nSUFEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQWdOQUlBSWlBU2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBaUFEUVFGMElRTWdBU0FDUVFSeGFpSUVLQUlRSWdJTkFBc2dCQ0FGTmdJUUN5QUZJQUUyQWhnZ0JTQUZOZ0lNSUFVZ0JUWUNDQXdCQ3lBQktBSUlJZ0FnQlRZQ0RDQUJJQVUyQWdnZ0JVRUFOZ0lZSUFVZ0FUWUNEQ0FGSUFBMkFnZ0xJQWRCQ0dvaEFBd0NDd0pBSUFkRkRRQUNRQ0FFS0FJY0lnQkJBblJCdUNGcUlnRW9BZ0FnQkVZRVFDQUJJQUkyQWdBZ0FnMEJRWXdmSUFoQmZpQUFkM0VpQ0RZQ0FBd0NDeUFIUVJCQkZDQUhLQUlRSUFSR0cyb2dBallDQUNBQ1JRMEJDeUFDSUFjMkFoZ2dCQ2dDRUNJQUJFQWdBaUFBTmdJUUlBQWdBallDR0FzZ0JDZ0NGQ0lBUlEwQUlBSWdBRFlDRkNBQUlBSTJBaGdMQWtBZ0EwRVBUUVJBSUFRZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQkdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFRZ0JVRURjallDQkNBRUlBVnFJZ0lnQTBFQmNqWUNCQ0FDSUFOcUlBTTJBZ0FnQTBIL0FVMEVRQ0FEUVhoeFFiQWZhaUVBQW45QmlCOG9BZ0FpQVVFQklBTkJBM1owSWdOeFJRUkFRWWdmSUFFZ0EzSTJBZ0FnQUF3QkN5QUFLQUlJQ3lFQklBQWdBallDQ0NBQklBSTJBZ3dnQWlBQU5nSU1JQUlnQVRZQ0NBd0JDMEVmSVFBZ0EwSC8vLzhIVFFSQUlBTkJKaUFEUVFoMlp5SUFhM1pCQVhFZ0FFRUJkR3RCUG1vaEFBc2dBaUFBTmdJY0lBSkNBRGNDRUNBQVFRSjBRYmdoYWlFQkFrQUNRQ0FJUVFFZ0FIUWlCbkZGQkVCQmpCOGdCaUFJY2pZQ0FDQUJJQUkyQWdBTUFRc2dBMEVaSUFCQkFYWnJRUUFnQUVFZlJ4dDBJUUFnQVNnQ0FDRUZBMEFnQlNJQktBSUVRWGh4SUFOR0RRSWdBRUVkZGlFR0lBQkJBWFFoQUNBQklBWkJCSEZxSWdZb0FoQWlCUTBBQ3lBR0lBSTJBaEFMSUFJZ0FUWUNHQ0FDSUFJMkFnd2dBaUFDTmdJSURBRUxJQUVvQWdnaUFDQUNOZ0lNSUFFZ0FqWUNDQ0FDUVFBMkFoZ2dBaUFCTmdJTUlBSWdBRFlDQ0FzZ0JFRUlhaUVBREFFTEFrQWdDVVVOQUFKQUlBSW9BaHdpQUVFQ2RFRzRJV29pQVNnQ0FDQUNSZ1JBSUFFZ0JEWUNBQ0FFRFFGQmpCOGdDMEYrSUFCM2NUWUNBQXdDQ3lBSlFSQkJGQ0FKS0FJUUlBSkdHMm9nQkRZQ0FDQUVSUTBCQ3lBRUlBazJBaGdnQWlnQ0VDSUFCRUFnQkNBQU5nSVFJQUFnQkRZQ0dBc2dBaWdDRkNJQVJRMEFJQVFnQURZQ0ZDQUFJQVEyQWhnTEFrQWdBMEVQVFFSQUlBSWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0Ftb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBSWdCVUVEY2pZQ0JDQUNJQVZxSWdRZ0EwRUJjallDQkNBRElBUnFJQU0yQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUJCbkI4b0FnQWhBUUovUVFFZ0IwRURkblFpQlNBR2NVVUVRRUdJSHlBRklBWnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEJpQUFJQUUyQWdnZ0JpQUJOZ0lNSUFFZ0FEWUNEQ0FCSUFZMkFnZ0xRWndmSUFRMkFnQkJrQjhnQXpZQ0FBc2dBa0VJYWlFQUN5QUtRUkJxSkFBZ0FBdlNDd0VIZndKQUlBQkZEUUFnQUVFSWF5SUNJQUJCQkdzb0FnQWlBVUY0Y1NJQWFpRUZBa0FnQVVFQmNRMEFJQUZCQTNGRkRRRWdBaUFDS0FJQUlnRnJJZ0pCbUI4b0FnQkpEUUVnQUNBQmFpRUFBa0FDUUVHY0h5Z0NBQ0FDUndSQUlBRkIvd0ZOQkVBZ0FVRURkaUVFSUFJb0Fnd2lBU0FDS0FJSUlnTkdCRUJCaUI5QmlCOG9BZ0JCZmlBRWQzRTJBZ0FNQlFzZ0F5QUJOZ0lNSUFFZ0F6WUNDQXdFQ3lBQ0tBSVlJUVlnQWlBQ0tBSU1JZ0ZIQkVBZ0FpZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQUpCRkdvaUJDZ0NBQ0lEUlFSQUlBSW9BaEFpQTBVTkFpQUNRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGS0FJRUlnRkJBM0ZCQTBjTkFrR1FIeUFBTmdJQUlBVWdBVUYrY1RZQ0JDQUNJQUJCQVhJMkFnUWdCU0FBTmdJQUR3dEJBQ0VCQ3lBR1JRMEFBa0FnQWlnQ0hDSURRUUowUWJnaGFpSUVLQUlBSUFKR0JFQWdCQ0FCTmdJQUlBRU5BVUdNSDBHTUh5Z0NBRUYrSUFOM2NUWUNBQXdDQ3lBR1FSQkJGQ0FHS0FJUUlBSkdHMm9nQVRZQ0FDQUJSUTBCQ3lBQklBWTJBaGdnQWlnQ0VDSURCRUFnQVNBRE5nSVFJQU1nQVRZQ0dBc2dBaWdDRkNJRFJRMEFJQUVnQXpZQ0ZDQURJQUUyQWhnTElBSWdCVThOQUNBRktBSUVJZ0ZCQVhGRkRRQUNRQUpBQWtBQ1FDQUJRUUp4UlFSQVFhQWZLQUlBSUFWR0JFQkJvQjhnQWpZQ0FFR1VIMEdVSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUNRWndmS0FJQVJ3MEdRWkFmUVFBMkFnQkJuQjlCQURZQ0FBOExRWndmS0FJQUlBVkdCRUJCbkI4Z0FqWUNBRUdRSDBHUUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FBSUFKcUlBQTJBZ0FQQ3lBQlFYaHhJQUJxSVFBZ0FVSC9BVTBFUUNBQlFRTjJJUVFnQlNnQ0RDSUJJQVVvQWdnaUEwWUVRRUdJSDBHSUh5Z0NBRUYrSUFSM2NUWUNBQXdGQ3lBRElBRTJBZ3dnQVNBRE5nSUlEQVFMSUFVb0FoZ2hCaUFGSUFVb0Fnd2lBVWNFUUVHWUh5Z0NBQm9nQlNnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBVkJGR29pQkNnQ0FDSURSUVJBSUFVb0FoQWlBMFVOQWlBRlFSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZJQUZCZm5FMkFnUWdBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQXdEQzBFQUlRRUxJQVpGRFFBQ1FDQUZLQUljSWdOQkFuUkJ1Q0ZxSWdRb0FnQWdCVVlFUUNBRUlBRTJBZ0FnQVEwQlFZd2ZRWXdmS0FJQVFYNGdBM2R4TmdJQURBSUxJQVpCRUVFVUlBWW9BaEFnQlVZYmFpQUJOZ0lBSUFGRkRRRUxJQUVnQmpZQ0dDQUZLQUlRSWdNRVFDQUJJQU0yQWhBZ0F5QUJOZ0lZQ3lBRktBSVVJZ05GRFFBZ0FTQUROZ0lVSUFNZ0FUWUNHQXNnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUNBQ1Fad2ZLQUlBUncwQVFaQWZJQUEyQWdBUEN5QUFRZjhCVFFSQUlBQkJlSEZCc0I5cUlRRUNmMEdJSHlnQ0FDSURRUUVnQUVFRGRuUWlBSEZGQkVCQmlCOGdBQ0FEY2pZQ0FDQUJEQUVMSUFFb0FnZ0xJUUFnQVNBQ05nSUlJQUFnQWpZQ0RDQUNJQUUyQWd3Z0FpQUFOZ0lJRHd0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFJZ0F6WUNIQ0FDUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtBQ1FFR01IeWdDQUNJRVFRRWdBM1FpQjNGRkJFQkJqQjhnQkNBSGNqWUNBQ0FCSUFJMkFnQWdBaUFCTmdJWURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBUU5BSUFFaUJDZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFTQURRUUYwSVFNZ0JDQUJRUVJ4YWlJSFFSQnFLQUlBSWdFTkFBc2dCeUFDTmdJUUlBSWdCRFlDR0FzZ0FpQUNOZ0lNSUFJZ0FqWUNDQXdCQ3lBRUtBSUlJZ0FnQWpZQ0RDQUVJQUkyQWdnZ0FrRUFOZ0lZSUFJZ0JEWUNEQ0FDSUFBMkFnZ0xRYWdmUWFnZktBSUFRUUZySWdCQmZ5QUFHellDQUFzTEJBQWpBQXNHQUNBQUpBQUxFQUFqQUNBQWEwRndjU0lBSkFBZ0FBdEtBUUYvSUFBZ0FVa0VRQ0FBSUFFZ0FoQUNEd3NnQWdSQUlBQWdBbW9oQXlBQklBSnFJUUVEUUNBRFFRRnJJZ01nQVVFQmF5SUJMUUFBT2dBQUlBSkJBV3NpQWcwQUN3c2dBQXY5RGdJUmZ3RitJd0JCTUdzaUJ5UUFRYmgvSVFnQ1FDQUZSUTBBSUFRc0FBQWlDVUgvQVhFaEN3SkFJQWxCQUVnRVFDQUxRZjRBYTBFQmRpSUdJQVZQRFFKQmJDRUlJQXRCL3dCcklndEIvd0ZMRFFJZ0JFRUJhaUVJUVFBaEJRTkFJQVVnQzA4RVFDQUxJUWdnQmlFTERBTUZJQUFnQldvZ0NDQUZRUUYyYWlJRUxRQUFRUVIyT2dBQUlBQWdCVUVCY21vZ0JDMEFBRUVQY1RvQUFDQUZRUUpxSVFVTUFRc0FDd0FMSUFVZ0MwME5BU0FIUWY4Qk5nSUVJQVlnQjBFRWFpQUhRUWhxSUFSQkFXb2lEaUFMRUF3aUJFR0lmMHNFUUNBRUlRZ01BZ3RCVkNFSUlBY29BZ2dpRUVFR1N3MEJJQWNvQWdRaUVVRUJkQ0lKUVFKcXJVSUJJQkN0aGlJWVFRRWdFSFFpRFVFQmFpSUZyVUlDaG54OFFndDhRdnovLy8vLy8vLy8vd0NEUXVRQ1ZnMEJRVkloQ0NBUlFmOEJTdzBCSUExQmYzTkJBblJCNUFKcXJTQVJRUUZxSWhWQkFYU3RJQmg4UWdoOFZBMEJJQXNnQkdzaEZpQUVJQTVxSVJjZ0JrR0FCR29pRWlBRlFRSjBhaUlSSUFscVFRSnFJUTRnQmtHRUJHb2hFMEdBZ0FJZ0VIUkJFSFloQ1VFQUlRVkJBU0VQSUExQkFXc2lGQ0VLQTBBZ0JTQVZSa1VFUUFKQUlBWWdCVUVCZENJSWFpOEJBQ0lFUWYvL0EwWUVRQ0FUSUFwQkFuUnFJQVU2QUFJZ0NrRUJheUVLUVFFaEJBd0JDeUFQUVFBZ0NTQUV3VW9iSVE4TElBZ2dFV29nQkRzQkFDQUZRUUZxSVFVTUFRc0xJQVlnRHpzQmdnUWdCaUFRT3dHQUJBSkFJQW9nRkVZRVFDQU5RUU4ySVFoQ0FDRVlRUUFoRHdOQUlBd2dGVVlFUUNBSUlBMUJBWFpxUVFOcUlnbEJBWFFoQ0VFQUlRUkJBQ0VLQTBCQkFDRUZJQW9nRFU4TkJBTkFJQVZCQWtaRkJFQWdFeUFGSUFsc0lBUnFJQlJ4UVFKMGFpQU9JQVVnQ21wcUxRQUFPZ0FDSUFWQkFXb2hCUXdCQ3dzZ0NrRUNhaUVLSUFRZ0NHb2dGSEVoQkF3QUN3QUZJQVlnREVFQmRHb3VBUUFoQ1NBT0lBOXFJZ1FnR0RjQUFFRUlJUVVEUUNBRklBbE9SUVJBSUFRZ0JXb2dHRGNBQUNBRlFRaHFJUVVNQVFzTElCaENnWUtFaUpDZ3dJQUJmQ0VZSUF4QkFXb2hEQ0FKSUE5cUlROE1BUXNBQ3dBTElBMUJBM1lnRFVFQmRtcEJBMm9oQ0VFQUlRVURRQ0FNSUJWR1JRUkFRUUFoQ1NBR0lBeEJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBSlJrVUVRQ0FUSUFWQkFuUnFJQXc2QUFJRFFDQUZJQWhxSUJSeElnVWdDa3NOQUFzZ0NVRUJhaUVKREFFTEN5QU1RUUZxSVF3TUFRc0xRWDhoQ0NBRkRRSUxJQkJCQVdvaENFRUFJUVVEUUNBRklBMUdSUVJBSUJFZ0V5QUZRUUowYWlJT0xRQUNRUUYwYWlJRUlBUXZBUUFpQ1VFQmFqc0JBQ0FPSUFnZ0NXZEJZSE5xSWdRNkFBTWdEaUFKSUFSMElBMXJPd0VBSUFWQkFXb2hCUXdCQ3dzQ1FBSkFJQVl2QVlJRUJFQWdCMEVjYWlJRUlCY2dGaEFOSWdoQmlIOUxEUUlnQjBFVWFpQUVJQklRRGlBSFFReHFJQVFnRWhBT1FRQWhCUU5BSUFkQkhHb2lCQkFQSUFWQit3RkxjZzBDSUFBZ0JXb2lCaUFIUVJScUlBUVFFRG9BQUNBR0lBZEJER29nQkJBUU9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVNQXdVZ0FDQUVhaUFIUVJScUlBZEJIR29pQkJBUU9nQUFJQVlnQjBFTWFpQUVFQkE2QUFNZ0JVRUVhaUVGREFFTEFBc0FDeUFIUVJ4cUlnUWdGeUFXRUEwaUNFR0lmMHNOQVNBSFFSUnFJQVFnRWhBT0lBZEJER29nQkNBU0VBNUJBQ0VGQTBBZ0IwRWNhaUlFRUE4Z0JVSDdBVXR5UlFSQUlBQWdCV29pQmlBSFFSUnFJQVFRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVRklBQWdCR29nQjBFVWFpQUhRUnhxSWdRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBRElBVkJCR29oQlF3Q0N3c0xBbjhEUUVHNmZ5RUlJQVZCL1FGTERRTWdBQ0FGYWlJR0lBZEJGR29nQjBFY2FpSUpFQkU2QUFBZ0JrRUJhaUVFSUFrUUQwRURSZ1JBSUFkQkRHb2hDRUVDREFJTElBVkIvQUZMRFFNZ0JpQUhRUXhxSUFkQkhHb2lCQkFST2dBQklBVkJBbW9oQlNBRUVBOUJBMGNOQUFzZ0FDQUZhaUVFSUFkQkZHb2hDRUVEQ3lBRUlBZ2dCMEVjYWhBUk9nQUFJQVpxSUFCcklRZ01BUXNDZndOQVFicC9JUWdnQlVIOUFVc05BaUFBSUFWcUlnWWdCMEVVYWlBSFFSeHFJZ2tRRURvQUFDQUdRUUZxSVFRZ0NSQVBRUU5HQkVBZ0IwRU1haUVJUVFJTUFnc2dCVUg4QVVzTkFpQUdJQWRCREdvZ0IwRWNhaUlFRUJBNkFBRWdCVUVDYWlFRklBUVFEMEVEUncwQUN5QUFJQVZxSVFRZ0IwRVVhaUVJUVFNTElBUWdDQ0FIUVJ4cUVCQTZBQUFnQm1vZ0FHc2hDQXNnQ0VHSWYwc05BUXNnQ0NFRVFRQWhCU0FCUVFCQk5CQURJUWxCQUNFS0EwQWdCQ0FGUndSQUlBQWdCV29pQmkwQUFDSUJRUXRMQkVCQmJDRUlEQU1GSUFrZ0FVRUNkR29pQVNBQktBSUFRUUZxTmdJQUlBVkJBV29oQlVFQklBWXRBQUIwUVFGMUlBcHFJUW9NQWdzQUN3dEJiQ0VJSUFwRkRRQWdDbWNpQlVFZmN5SUJRUXRMRFFBZ0EwRWdJQVZyTmdJQVFRRkJBaUFCZENBS2F5SURaMEVmY3lJQmRDQURSdzBBSUFBZ0JHb2dBVUVCYWlJQU9nQUFJQWtnQUVFQ2RHb2lBQ0FBS0FJQVFRRnFOZ0lBSUFrb0FnUWlBRUVDU1NBQVFRRnhjZzBBSUFJZ0JFRUJhallDQUNBTFFRRnFJUWdMSUFkQk1Hb2tBQ0FJQzZBRkFReC9Jd0JCRUdzaURDUUFBbjhnQkVFSFRRUkFJQXhDQURjRENDQU1RUWhxSWdVZ0F5QUVFQUlhUVd3Z0FDQUJJQUlnQlVFSUVBd2lBQ0FBSUFSTEd5QUFJQUJCaVg5Skd3d0JDeUFBUVFBZ0FTZ0NBRUVCYWlJTlFRRjBFQU1oRDBGVUlBTW9BQUFpQmtFUGNTSUFRUXBMRFFBYUlBSWdBRUVGYWpZQ0FDQURJQVJxSWdKQkJHc2hCeUFDUVFkcklRc2dBRUVHYWlFT1FRUWhBaUFHUVFSMklRVkJJQ0FBZENJSVFRRnlJUWxCQUNFQVFRRWhCaUFESVFRRFFBSkFJQVpCQVhGRkJFQURRQ0FGUVg5elFZQ0FnSUI0Y21naUJrRVlTVVVFUUNBQVFTUnFJUUFnQkNBTFRRUi9JQVJCQTJvRklBUWdDMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMSUFJZ0JrRWVjU0lLYWtFQ2FpRUNJQVpCQVhaQkEyd2dBR29nQlNBS2RrRURjV29pQUNBTlR3MEJBbjhnQkNBTFN5QUNRUU4ySUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQVFnQjJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVMSUFVZ0NFRUJhM0VpQmlBSVFRRjBRUUZySWdvZ0NXc2lFRWtFZnlBT1FRRnJCU0FGSUFweElnVWdFRUVBSUFVZ0NFNGJheUVHSUE0TElRVWdEeUFBUVFGMGFpQUdRUUZySWdvN0FRQWdBRUVCYWlFQUlBSWdCV29oQWlBSVFRRWdCbXNnQ2lBR1FRQktHeUFKYWlJSlNnUkFJQWxCQWtnTkFVRWdJQWxuSWdWcklRNUJBU0FGUVI5emRDRUlDeUFBSUExUERRQWdDa0VBUnlFR0FuOGdCQ0FMU3lBQ1FRTjFJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBSWdCQ0FIYTBFRGRHcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMUVd3Z0NVRUJSdzBBR2tGUUlBQWdEVXNOQUJwQmJDQUNRU0JLRFFBYUlBRWdBRUVCYXpZQ0FDQUVJQUpCQjJwQkEzVnFJQU5yQ3lBTVFSQnFKQUFMOGdFQkFYOGdBa1VFUUNBQVFnQTNBZ0FnQUVFQU5nSVFJQUJDQURjQ0NFRzRmdzhMSUFBZ0FUWUNEQ0FBSUFGQkJHbzJBaEFnQWtFRVR3UkFJQUFnQVNBQ2FpSUJRUVJySWdNMkFnZ2dBQ0FES0FBQU5nSUFJQUZCQVdzdEFBQWlBUVJBSUFBZ0FXZEJGMnMyQWdRZ0FnOExJQUJCQURZQ0JFRi9Ed3NnQUNBQk5nSUlJQUFnQVMwQUFDSUROZ0lBQWtBQ1FBSkFJQUpCQW1zT0FnRUFBZ3NnQUNBQkxRQUNRUkIwSUFOeUlnTTJBZ0FMSUFBZ0FTMEFBVUVJZENBRGFqWUNBQXNnQVNBQ2FrRUJheTBBQUNJQlJRUkFJQUJCQURZQ0JFRnNEd3NnQUNBQlp5QUNRUU4wYTBFSmFqWUNCQ0FDQzBRQkFuOGdBU0FDTHdFQUlnTWdBU2dDQkdvaUJEWUNCQ0FBSUFOQkFuUkJvQjFxS0FJQUlBRW9BZ0JCQUNBRWEzWnhOZ0lBSUFFUUR4b2dBQ0FDUVFScU5nSUVDNThCQVFSL1FRTWhBU0FBS0FJRUlnSkJJRTBFUUNBQUtBSUlJZ0VnQUNnQ0VFOEVRQ0FBSUFKQkIzRTJBZ1FnQUNBQklBSkJBM1pySWdJMkFnZ2dBQ0FDS0FBQU5nSUFRUUFQQ3lBQUtBSU1JZ01nQVVZRVFFRUJRUUlnQWtFZ1NSc1BDeUFBSUFFZ0FTQURheUFDUVFOMklnUWdBU0FFYXlBRFNTSUJHeUlEYXlJRU5nSUlJQUFnQWlBRFFRTjBhellDQkNBQUlBUW9BQUEyQWdBTElBRUxTQUVFZnlBQUtBSUVJQUFvQWdCQkFuUnFJZ0l0QUFJZ0FpOEJBQ0VFSUFFZ0FTZ0NCQ0lGSUFJdEFBTWlBbW8yQWdRZ0FDQUVJQUVvQWdBZ0JYUkJBQ0FDYTNacU5nSUFDMUlCQkg4Z0FDZ0NCQ0FBS0FJQVFRSjBhaUlDTFFBQ0lBSXZBUUFoQkNBQklBSXRBQU1pQWlBQktBSUVhaUlGTmdJRUlBQWdCQ0FDUVFKMFFhQWRhaWdDQUNBQktBSUFRUUFnQld0MmNXbzJBZ0FMQ0FBZ0FFR0lmMHNMR2dBZ0FBUkFJQUVFUUNBQ0lBQWdBUkVDQUE4TElBQVFCZ3NMcGdnQ0RYOEJmaU1BUVJCcklna2tBQ0FKUVFBMkFnd2dDVUVBTmdJSUFuOENRQ0FEUWVnSmFpQURJQWxCQ0dvZ0NVRU1haUFCSUFJZ0EwR0FBV29RQ3lJUFFZaC9TdzBBUVZRZ0NTZ0NEQ0lFSUFBb0FnQWlBVUgvQVhGQkFXcExEUUVhSUFCQkJHb2hDeUFBSUFGQi80R0FlSEVnQkVFUWRFR0FnUHdIY1hJMkFnQkJmeUFFSUFSQkFFZ2JRUUZxSVFCQkFDRUJJQWtvQWdnaEJVRUFJUUlEUUNBQUlBSkdCRUFnQlVFRGF5RUJRUUFoQUFOQUFrQkJBQ0VDSUFBZ0FVNEVRQU5BSUFBZ0JVNE5BaUFESUFBZ0EycEI2QWxxTFFBQVFRSjBha0ZBYXlJQklBRW9BZ0FpQVVFQmFqWUNBQ0FCSUFOcUlBQTZBT2dISUFCQkFXb2hBQXdBQ3dBRkEwQWdBa0VFUmtVRVFDQURJQU1nQUNBQ2FpSUhha0hvQ1dvdEFBQkJBblJxUVVCcklnZ2dDQ2dDQUNJSVFRRnFOZ0lBSUFNZ0NHb2dCem9BNkFjZ0FrRUJhaUVDREFFTEN5QUFRUVJxSVFBTUFnc0FDd3NnQkVFQmFpRU9JQU1vQWdBaEIwRUFJUUJCQVNFSUEwQWdDQ0FPUmcwRElBNGdDR3NoQkNBRElBaEJBblJxS0FJQUlRVUNRQUpBQWtBQ1FBSkFBa0JCQVNBSWRFRUJkU0lOUVFGckRnZ0FBUVFDQkFRRUF3UUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUFJUUVEUUNBQ0lBWkdEUVVnQXlBQ0lBZHFhaTBBNkFjaENpQUxJQUZCQVhScUlnd2dCRG9BQVNBTUlBbzZBQUFnQWtFQmFpRUNJQUZCQVdvaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hDaUFBSVFFRFFDQUNJQXBHRFFRZ0N5QUJRUUYwYWlJR0lBTWdBaUFIYW1vdEFPZ0hJZ3c2QUFJZ0JpQUVPZ0FCSUFZZ0REb0FBQ0FHSUFRNkFBTWdBa0VCYWlFQ0lBRkJBbW9oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUVRUWgwUVlEK0EzRWhCQ0FBSVFFRFFDQUNJQVpHRFFNZ0N5QUJRUUYwYWlBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrTndBQUlBSkJBV29oQWlBQlFRUnFJUUVNQUFzQUMwRUFJUUlnQlVFQUlBVkJBRW9iSVFZZ0JFRUlkRUdBL2dOeElRUWdBQ0VCQTBBZ0FpQUdSZzBDSUFzZ0FVRUJkR29pQ2lBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSWhFM0FBZ2dDaUFSTndBQUlBSkJBV29oQWlBQlFRaHFJUUVNQUFzQUMwRUFJUUVnQlVFQUlBVkJBRW9iSVFvZ0JFRUlkRUdBL2dOeElRd2dBQ0VFQTBBZ0FTQUtSZzBCSUFzZ0JFRUJkR29oRUNBTUlBTWdBU0FIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSVJGQkFDRUNBMEFnQWlBTlRrVUVRQ0FRSUFKQkFYUnFJZ1lnRVRjQUdDQUdJQkUzQUJBZ0JpQVJOd0FJSUFZZ0VUY0FBQ0FDUVJCcUlRSU1BUXNMSUFGQkFXb2hBU0FFSUExcUlRUU1BQXNBQ3lBSVFRRnFJUWdnQlNBSGFpRUhJQVVnRFd3Z0FHb2hBQXdBQ3dBRklBTWdBa0VDZEdvaUIwRkFheUFCTmdJQUlBSkJBV29oQWlBSEtBSUFJQUZxSVFFTUFRc0FDd0FMSUE4TElBbEJFR29rQUF2eUFnRUdmeU1BUVNCcklnVWtBQ0FFS0FJQUlRWWdCVUVNYWlBQ0lBTVFEU0lEUVloL1RRUkFJQVJCQkdvaEFpQUFJQUZxSWdsQkEyc2hCRUVBSUFaQkVIWnJRUjl4SVFNRFFDQUZRUXhxRUE4Z0FDQUVUM0pGQkVBZ0FpQUZLQUlNSWdZZ0JTZ0NFQ0lIZENBRGRrRUJkR29pQ0MwQUFTRUtJQUFnQ0MwQUFEb0FBQ0FDSUFZZ0J5QUthaUlHZENBRGRrRUJkR29pQnkwQUFDRUlJQVVnQmlBSExRQUJhallDRUNBQUlBZzZBQUVnQUVFQ2FpRUFEQUVMQ3dOQUlBVkJER29RRHlFSElBVW9BZ3doQmlBRktBSVFJUVFnQUNBSlR5QUhja1VFUUNBQ0lBWWdCSFFnQTNaQkFYUnFJZ1l0QUFBaEJ5QUZJQVFnQmkwQUFXbzJBaEFnQUNBSE9nQUFJQUJCQVdvaEFBd0JDd3NEUUNBQUlBbFBSUVJBSUFJZ0JpQUVkQ0FEZGtFQmRHb2lCeTBBQVNFSUlBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0JDQUlhaUVFREFFTEMwRnNRV3dnQVNBRktBSVVJQVVvQWhoSEd5QUVRU0JIR3lFREN5QUZRU0JxSkFBZ0F3dlBGQUVqZnlNQVFkQUFheUlGSkFCQmJDRUpBa0FnQTBFS1NRMEFBa0FnQXlBQ0x3QUVJZ2NnQWk4QUFDSUlJQUl2QUFJaURXcHFRUVpxSWd4SkRRQWdCQzhCQWlFR0lBVkJQR29nQWtFR2FpSUNJQWdRRFNJSlFZaC9TdzBCSUFWQktHb2dBaUFJYWlJQ0lBMFFEU0lKUVloL1N3MEJJQVZCRkdvZ0FpQU5haUlDSUFjUURTSUpRWWgvU3cwQklBVWdBaUFIYWlBRElBeHJFQTBpQ1VHSWYwc05BU0FFUVFScUlRb2dBQ0FCYWlJZlFRTnJJU0JCQUNBR2EwRWZjU0VMSUFVb0FnZ2hFU0FGS0FJY0lSSWdCU2dDTUNFVElBVW9Ba1FoRkNBRktBSUVJUWtnQlNnQ0dDRU5JQVVvQWl3aERDQUZLQUpBSVFZZ0JTZ0NFQ0VoSUFVb0FpUWhJaUFGS0FJNElTTWdCU2dDVENFa0lBVW9BZ0FoRlNBRktBSVVJUllnQlNnQ0tDRVhJQVVvQWp3aEdFRUJJUThnQUNBQlFRTnFRUUoySWdScUlnTWdCR29pQWlBRWFpSVpJUVFnQWlFSUlBTWhCd05BSUE5QkFYRkZJQVFnSUU5eVJRUkFJQUFnQ2lBWUlBWjBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloR2lBT0xRQURJUkFnQnlBS0lCY2dESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdEaTBBQWlFYklBNHRBQU1oRHlBSUlBb2dGaUFOZENBTGRrRUNkR29pRGk4QkFEc0FBQ0FPTFFBQ0lSd2dEaTBBQXlFZElBUWdDaUFWSUFsMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhIaUFPTFFBRElRNGdBQ0FRYWlJbElBb2dHQ0FHSUJwcUlnWjBJQXQyUVFKMGFpSVFMd0VBT3dBQUlCQXRBQUlnRUMwQUF5RW1JQWNnRDJvaUp5QUtJQmNnRENBYmFpSWFkQ0FMZGtFQ2RHb2lCeThCQURzQUFDQUhMUUFDSVF3Z0J5MEFBeUVRSUFnZ0hXb2lHeUFLSUJZZ0RTQWNhaUlQZENBTGRrRUNkR29pQ0M4QkFEc0FBQ0FJTFFBQ0lRMGdDQzBBQXlFY0lBUWdEbW9pSFNBS0lCVWdDU0FlYWlJT2RDQUxka0VDZEdvaUNTOEJBRHNBQUNBR2FpRUFRUU1oQndKL0lCUWdKRWtFUUNBQUlRWkJBd3dCQ3lBQVFRZHhJUVlnRkNBQVFRTjJheUlVS0FBQUlSaEJBQXNnQ1MwQUF5RWVJQWt0QUFJaENDQU1JQnBxSVFBZ0V5QWpTUVIvSUFBRklCTWdBRUVEZG1zaUV5Z0FBQ0VYUVFBaEJ5QUFRUWR4Q3lFTUlBMGdEMm9oQUNBSGNpRUpRUU1oRHdKL0lCSWdJa2tFUUNBQUlRMUJBd3dCQ3lBQVFRZHhJUTBnRWlBQVFRTjJheUlTS0FBQUlSWkJBQXNnQ0NBT2FpRUFJQWx5SUJFZ0lVa0VmeUFBQlNBUklBQkJBM1pySWhFb0FBQWhGVUVBSVE4Z0FFRUhjUXNoQ1NBbElDWnFJUUFnRUNBbmFpRUhJQnNnSEdvaENDQWRJQjVxSVFRZ0QzSkZJUThNQVFzTElBVWdERFlDTENBRklBWTJBa0FnQlNBTk5nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUlnQjBrZ0FDQURTM0lOQUVGc0lRa2dDQ0FaU3cwQklBTkJBMnNoQ1FOQUlBVkJQR29RRDBVZ0FDQUpTWEVFUUNBQUlBb2dCU2dDUENJTklBVW9Ba0FpREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnQUNBT0xRQURhaUlHSUFvZ0RTQU1JQTR0QUFKcUlnQjBJQXQyUVFKMGFpSU1Md0VBT3dBQUlBVWdBQ0FNTFFBQ2FqWUNRQ0FHSUF3dEFBTnFJUUFNQVFVZ0EwRUNheUVNQTBBZ0JVRThhaEFQSVFZZ0JTZ0NQQ0VOSUFVb0FrQWhDU0FBSUF4TElBWnlSUVJBSUFBZ0NpQU5JQWwwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQ1NBR0xRQUNhallDUUNBQUlBWXRBQU5xSVFBTUFRc0xBMEFnQUNBTVMwVUVRQ0FBSUFvZ0RTQUpkQ0FMZGtFQ2RHb2lCaThCQURzQUFDQUFJQVl0QUFOcUlRQWdDU0FHTFFBQ2FpRUpEQUVMQ3dKQUlBQWdBMDhOQUNBQUlBb2dEU0FKZENBTGRpSUFRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSklBTXRBQUpxSVFrTUFRc2dDVUVmU3cwQVFTQWdDU0FLSUFCQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFrTElBSkJBMnNoREFOQUlBVkJLR29RRDBVZ0J5QU1TWEVFUUNBSElBb2dCU2dDS0NJR0lBVW9BaXdpQUhRZ0MzWkJBblJxSWcwdkFRQTdBQUFnQnlBTkxRQURhaUlESUFvZ0JpQUFJQTB0QUFKcUlnQjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBQ0FHTFFBQ2FqWUNMQ0FESUFZdEFBTnFJUWNNQVFVZ0FrRUNheUVHQTBBZ0JVRW9haEFQSVFNZ0JTZ0NLQ0VNSUFVb0Fpd2hBQ0FHSUFkSklBTnlSUVJBSUFjZ0NpQU1JQUIwSUF0MlFRSjBhaUlETHdFQU93QUFJQVVnQUNBRExRQUNhallDTENBSElBTXRBQU5xSVFjTUFRc0xBMEFnQmlBSFNVVUVRQ0FISUFvZ0RDQUFkQ0FMZGtFQ2RHb2lBeThCQURzQUFDQUhJQU10QUFOcUlRY2dBQ0FETFFBQ2FpRUFEQUVMQ3dKQUlBSWdCMDBOQUNBSElBb2dEQ0FBZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBQUlBTXRBQUpxSVFBTUFRc2dBRUVmU3cwQVFTQWdBQ0FLSUFKQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFBTElCbEJBMnNoREFOQUlBVkJGR29RRDBVZ0NDQU1TWEVFUUNBSUlBb2dCU2dDRkNJR0lBVW9BaGdpQW5RZ0MzWkJBblJxSWcwdkFRQTdBQUFnQ0NBTkxRQURhaUlESUFvZ0JpQUNJQTB0QUFKcUlnSjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBaUFHTFFBQ2FqWUNHQ0FESUFZdEFBTnFJUWdNQVFVZ0dVRUNheUVEQTBBZ0JVRVVhaEFQSVFJZ0JTZ0NGQ0VHSUFVb0FoZ2hCeUFESUFoSklBSnlSUVJBSUFnZ0NpQUdJQWQwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVVnQnlBQ0xRQUNhallDR0NBSUlBSXRBQU5xSVFnTUFRc0xBMEFnQXlBSVNVVUVRQ0FJSUFvZ0JpQUhkQ0FMZGtFQ2RHb2lBaThCQURzQUFDQUlJQUl0QUFOcUlRZ2dCeUFDTFFBQ2FpRUhEQUVMQ3dKQUlBZ2dHVThOQUNBSUlBb2dCaUFIZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSElBTXRBQUpxSVFjTUFRc2dCMEVmU3cwQVFTQWdCeUFLSUFKQkFuUnFMUUFDYWlJQ0lBSkJJRThiSVFjTEEwQWdCUkFQUlNBRUlDQkpjUVJBSUFRZ0NpQUZLQUlBSWdZZ0JTZ0NCQ0lDZENBTGRrRUNkR29pREM4QkFEc0FBQ0FFSUF3dEFBTnFJZ01nQ2lBR0lBSWdEQzBBQW1vaUFuUWdDM1pCQW5ScUlnUXZBUUE3QUFBZ0JTQUNJQVF0QUFKcU5nSUVJQU1nQkMwQUEyb2hCQXdCQlNBZlFRSnJJUU1EUUNBRkVBOGhBaUFGS0FJQUlRWWdCU2dDQkNFSUlBTWdCRWtnQW5KRkJFQWdCQ0FLSUFZZ0NIUWdDM1pCQW5ScUlnSXZBUUE3QUFBZ0JTQUlJQUl0QUFKcU5nSUVJQVFnQWkwQUEyb2hCQXdCQ3dzRFFDQURJQVJKUlFSQUlBUWdDaUFHSUFoMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0FpMEFBMm9oQkNBSUlBSXRBQUpxSVFnTUFRc0xBa0FnQkNBZlR3MEFJQVFnQ2lBR0lBaDBJQXQySWdKQkFuUnFJZ010QUFBNkFBQWdBeTBBQTBFQlJnUkFJQWdnQXkwQUFtb2hDQXdCQ3lBSVFSOUxEUUJCSUNBSUlBb2dBa0VDZEdvdEFBSnFJZ0lnQWtFZ1R4c2hDQXRCYkVGc1FXeEJiRUZzUVd4QmJFRnNJQUVnQ0VFZ1J4c2dCU2dDQ0NBRktBSU1SeHNnQjBFZ1J4c2dCU2dDSENBRktBSWdSeHNnQUVFZ1J4c2dCU2dDTUNBRktBSTBSeHNnQ1VFZ1J4c2dCU2dDUkNBRktBSklSeHNoQ1F3SkN3QUxBQXNBQ3dBTEFBc0FDd0FMQUF0QmJDRUpDeUFGUWRBQWFpUUFJQWtMN0JBQkhuOGpBRUhRQUdzaUJTUUFRV3doQ1FKQUlBTkJDa2tOQUFKQUlBTWdBaThBQkNJR0lBSXZBQUFpQnlBQ0x3QUNJZ2hxYWtFR2FpSU9TUTBBSUFRdkFRSWhEeUFGUVR4cUlBSkJCbW9pQWlBSEVBMGlDVUdJZjBzTkFTQUZRU2hxSUFJZ0Iyb2lBaUFJRUEwaUNVR0lmMHNOQVNBRlFSUnFJQUlnQ0dvaUFpQUdFQTBpQ1VHSWYwc05BU0FGSUFJZ0Jtb2dBeUFPYXhBTklnbEJpSDlMRFFFZ0JFRUVhaUVLSUFBZ0FXb2lIRUVEYXlFZFFRQWdEMnRCSDNFaEN5QUZLQUlJSVJFZ0JTZ0NIQ0VTSUFVb0FqQWhFeUFGS0FKRUlSUWdCU2dDQkNFSklBVW9BaGdoQmlBRktBSXNJUWNnQlNnQ1FDRUlJQVVvQWhBaEhpQUZLQUlrSVI4Z0JTZ0NPQ0VnSUFVb0Frd2hJU0FGS0FJQUlSVWdCU2dDRkNFV0lBVW9BaWdoRnlBRktBSThJUmhCQVNFTklBQWdBVUVEYWtFQ2RpSUNhaUlPSUFKcUlnOGdBbW9pR1NFRUlBOGhBaUFPSVFNRFFDQU5SU0FFSUIxUGNrVUVRQ0FLSUJnZ0NIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFBZ0NpQVhJQWQwSUF0MlFRRjBhaUlNTFFBQklSQWdBeUFNTFFBQU9nQUFJQW9nRmlBR2RDQUxka0VCZEdvaURDMEFBU0VhSUFJZ0RDMEFBRG9BQUNBS0lCVWdDWFFnQzNaQkFYUnFJZ3d0QUFFaEd5QUVJQXd0QUFBNkFBQWdDaUFZSUFnZ0RXb2lDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBRWdDaUFYSUFjZ0VHb2lCM1FnQzNaQkFYUnFJZ3d0QUFFaEVDQURJQXd0QUFBNkFBRWdDaUFXSUFZZ0dtb2lESFFnQzNaQkFYUnFJZ1l0QUFFaEdpQUNJQVl0QUFBNkFBRWdDaUFWSUFrZ0cyb2lHM1FnQzNaQkFYUnFJZ2t0QUFFaElpQUVJQWt0QUFBNkFBRWdDQ0FOYWlFR1FRTWhDUUovSUJRZ0lVa0VRRUVESVEwZ0Jnd0JDeUFVSUFaQkEzWnJJaFFvQUFBaEdFRUFJUTBnQmtFSGNRc2hDQ0FISUJCcUlRWWdFeUFnU1FSL0lBWUZJQk1nQmtFRGRtc2lFeWdBQUNFWFFRQWhDU0FHUVFkeEN5RUhJQXdnR21vaERDQUpJQTF5SVJCQkF5RU5BbjhnRWlBZlNRUkFJQXdoQmtFRERBRUxJQXhCQjNFaEJpQVNJQXhCQTNackloSW9BQUFoRmtFQUN5QWJJQ0pxSVF3Z0VISWhFQ0FSSUI1SkJIOGdEQVVnRVNBTVFRTjJheUlSS0FBQUlSVkJBQ0VOSUF4QkIzRUxJUWtnQkVFQ2FpRUVJQUpCQW1vaEFpQURRUUpxSVFNZ0FFRUNhaUVBSUEwZ0VISkZJUTBNQVFzTElBVWdCellDTENBRklBZzJBa0FnQlNBR05nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUFnRGtzZ0F5QVBTM0lOQUVGc0lRa2dBaUFaU3cwQklBNUJBMnNoQ1FOQUlBVkJQR29RRHlBQUlBbFBja1VFUUNBS0lBVW9BandpQmlBRktBSkFJZ2QwSUF0MlFRRjBhaUlJTFFBQklRd2dBQ0FJTFFBQU9nQUFJQW9nQmlBSElBeHFJZ1owSUF0MlFRRjBhaUlITFFBQUlRZ2dCU0FHSUFjdEFBRnFOZ0pBSUFBZ0NEb0FBU0FBUVFKcUlRQU1BUXNMQTBBZ0JVRThhaEFQSVFjZ0JTZ0NQQ0VHSUFVb0FrQWhDU0FBSUE1UElBZHlSUVJBSUFvZ0JpQUpkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdDU0FHTFFBQmFqWUNRQ0FBSUFjNkFBQWdBRUVCYWlFQURBRUxDd05BSUFBZ0RrOUZCRUFnQ2lBR0lBbDBJQXQyUVFGMGFpSUhMUUFCSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQ1dvaENRd0JDd3NnRDBFRGF5RUFBMEFnQlVFb2FoQVBJQUFnQTAxeVJRUkFJQW9nQlNnQ0tDSUdJQVVvQWl3aUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBRElBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFpd2dBeUFJT2dBQklBTkJBbW9oQXd3QkN3c0RRQ0FGUVNocUVBOGhCeUFGS0FJb0lRWWdCU2dDTENFQUlBTWdEMDhnQjNKRkJFQWdDaUFHSUFCMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBQUlBWXRBQUZxTmdJc0lBTWdCem9BQUNBRFFRRnFJUU1NQVFzTEEwQWdBeUFQVDBVRVFDQUtJQVlnQUhRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FESUFjdEFBQTZBQUFnQTBFQmFpRURJQUFnQ0dvaEFBd0JDd3NnR1VFRGF5RURBMEFnQlVFVWFoQVBJQUlnQTA5eVJRUkFJQW9nQlNnQ0ZDSUdJQVVvQWhnaUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBQ0lBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFoZ2dBaUFJT2dBQklBSkJBbW9oQWd3QkN3c0RRQ0FGUVJScUVBOGhCeUFGS0FJVUlRWWdCU2dDR0NFRElBSWdHVThnQjNKRkJFQWdDaUFHSUFOMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBRElBWXRBQUZxTmdJWUlBSWdCem9BQUNBQ1FRRnFJUUlNQVFzTEEwQWdBaUFaVDBVRVFDQUtJQVlnQTNRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FDSUFjdEFBQTZBQUFnQWtFQmFpRUNJQU1nQ0dvaEF3d0JDd3NEUUNBRkVBOGdCQ0FkVDNKRkJFQWdDaUFGS0FJQUlnSWdCU2dDQkNJR2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBS0lBSWdCaUFJYWlJQ2RDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0FpQUdMUUFCYWpZQ0JDQUVJQWM2QUFFZ0JFRUNhaUVFREFFTEN3TkFJQVVRRHlFSElBVW9BZ0FoQmlBRktBSUVJUUlnQkNBY1R5QUhja1VFUUNBS0lBWWdBblFnQzNaQkFYUnFJZ1l0QUFBaEJ5QUZJQUlnQmkwQUFXbzJBZ1FnQkNBSE9nQUFJQVJCQVdvaEJBd0JDd3NEUUNBRUlCeFBSUVJBSUFvZ0JpQUNkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUVRUUZxSVFRZ0FpQUlhaUVDREFFTEMwRnNRV3hCYkVGc1FXeEJiRUZzUVd3Z0FTQUNRU0JIR3lBRktBSUlJQVVvQWd4SEd5QURRU0JIR3lBRktBSWNJQVVvQWlCSEd5QUFRU0JIR3lBRktBSXdJQVVvQWpSSEd5QUpRU0JIR3lBRktBSkVJQVVvQWtoSEd5RUpEQUVMUVd3aENRc2dCVUhRQUdva0FDQUpDMWdCQTM4Q1FDQUFLQUtRNndFaUFVVU5BQ0FCS0FJQUlBRkJ0TlVCYWlnQ0FDSUNJQUZCdU5VQmFpZ0NBQ0lERUJNZ0FnUkFJQU1nQVNBQ0VRSUFEQUVMSUFFUUJnc2dBRUVBTmdLZzZ3RWdBRUlBTndPUTZ3RUw2UU1DQkg4Q2ZpQUFRUUJCS0JBRElRUWdBa0VCUVFVZ0F4c2lBRWtFUUNBQUR3c2dBVVVFUUVGL0R3dEJBU0VHQWtBQ1FDQURRUUZHRFFBZ0F5RUdJQUVvQUFBaUJVR282cjVwUmcwQVFYWWhBeUFGUVhCeFFkRFV0TUlCUncwQlFRZ2hBeUFDUVFoSkRRRWdBVFVBQkNFSUlBUkJBVFlDRkNBRUlBZzNBd0JCQUE4TElBRWdBaUFHRUJvaUF5QUNTdzBBSUFRZ0F6WUNHRUZ5SVFNZ0FDQUJhaUlGUVFGckxRQUFJZ0pCQ0hFTkFDQUNRU0J4SWdaRkJFQkJjQ0VESUFVdEFBQWlCVUduQVVzTkFTQUZRUWR4clVJQklBVkJBM1pCQ21xdGhpSUlRZ09JZmlBSWZDRUpJQUJCQVdvaEFBc2dBa0VHZGlFRklBSkJBblpCQUNFREFrQUNRQUpBQWtBZ0FrRURjVUVCYXc0REFBRUNBd3NnQUNBQmFpMEFBQ0VESUFCQkFXb2hBQXdDQ3lBQUlBRnFMd0FBSVFNZ0FFRUNhaUVBREFFTElBQWdBV29vQUFBaEF5QUFRUVJxSVFBTFFRRnhJUUlDZmdKQUFrQUNRQUpBSUFWQkFXc09Bd0VDQXdBTFFuOGdCa1VOQXhvZ0FDQUJhakVBQUF3REN5QUFJQUZxTXdBQVFvQUNmQXdDQ3lBQUlBRnFOUUFBREFFTElBQWdBV29wQUFBTElRZ2dCQ0FDTmdJZ0lBUWdBellDSENBRUlBZzNBd0JCQUNFRElBUkJBRFlDRkNBRUlBZ2dDU0FHR3lJSU53TUlJQVJDZ0lBSUlBZ2dDRUtBZ0FoYUd6NENFQXNnQXd0ZkFRRi9RYmgvSVFNZ0FVRUJRUVVnQWhzaUFrOEVmeUFBSUFKcVFRRnJMUUFBSWdCQkEzRkJBblJCb0I1cUtBSUFJQUpxSUFCQkJIWkJESEZCc0I1cUtBSUFhaUFBUVNCeElnRkZhaUFCUVFWMklBQkJ3QUJKY1dvRlFiaC9Dd3NNQUNBQUlBRWdBa0VBRUJrTGx3TUNCWDhDZmlNQVFVQnFJZ1FrQUFKQUEwQWdBVUVGVHdSQUFrQWdBQ2dBQUVGd2NVSFExTFRDQVVZRVFFSitJUWNnQVVFSVNRMEVJQUFvQUFRaUFrRjNTdzBFSUFKQkNHb2lBeUFCU3cwRUlBSkJnWDlKRFFFTUJBc2dCRUVZYWlBQUlBRVFHeUVDUW40Z0JDa0RHRUlBSUFRb0FpeEJBVWNiSUFJYklnZENmVllOQXlBSElBaDhJZ2dnQjFSQ2ZpRUhEUU1DUUFKQUlBRkJDRWtOQUNBQUtBQUFRWEJ4UWREVXRNSUJSdzBBSUFBb0FBUWlBa0YzU3cwRlFiaC9JQUpCQ0dvaUFpQUJJQUpKR3lFRERBRUxJQVJCR0dvZ0FDQUJFQnNpQWtHSWYwc0VRQ0FDSVFNTUFRdEJ1SDhoQXlBQ0RRQWdBU0FFS0FJd0lnSnJJUVVnQUNBQ2FpRUdBMEFnQmlBRklBUkJER29RSFNJRFFZaC9TdzBCSUFOQkEyb2lBaUFGU3dSQVFiaC9JUU1NQWdzZ0JTQUNheUVGSUFJZ0Jtb2hCaUFFS0FJUVJRMEFDeUFFS0FJNEJIOUJ1SDhoQXlBRlFRUkpEUUVnQmtFRWFnVWdCZ3NnQUdzaEF3c2dBMEdJZjBzTkF3c2dBU0FEYXlFQklBQWdBMm9oQUF3QkN3dENmaUFJSUFFYklRY0xJQVJCUUdza0FDQUhDMlFCQVg5QnVIOGhBd0pBSUFGQkEwa05BQ0FBTFFBQ0lRRWdBaUFBTHdBQUlnQkJBWEUyQWdRZ0FpQUFRUUYyUVFOeElnTTJBZ0FnQWlBQUlBRkJFSFJ5UVFOMklnQTJBZ2dDUUFKQUlBTkJBV3NPQXdJQkFBRUxRV3dQQ3lBQUlRTUxJQU1MUkFFQ2Z5QUJJQUlvQWdRaUF5QUJLQUlFYWlJRU5nSUVJQUFnQTBFQ2RFR2dIV29vQWdBZ0FTZ0NBRUVBSUFScmRuRTJBZ0FnQVJBUEdpQUFJQUpCQ0dvMkFnUUx6Z0VCQm45QnVuOGhDZ0pBSUFJb0FnUWlDQ0FDS0FJQUlnbHFJZzBnQVNBQWEwc05BRUZzSVFvZ0NTQUVJQU1vQWdBaUMydExEUUFnQUNBSmFpSUVJQUlvQWdnaURHc2hBaUFBSUFGQklHc2lBQ0FMSUFsQkFCQWdJQU1nQ1NBTGFqWUNBQUpBQWtBZ0JDQUZheUFNVHdSQUlBSWhCUXdCQ3lBTUlBUWdCbXRMRFFJZ0J5QUhJQUlnQldzaUFtb2lBU0FJYWs4RVFDQUVJQUVnQ0JBS0dnd0NDeUFDSUFocUlRZ2dCQ0FCUVFBZ0Ftc1FDaUFDYXlFRUN5QUVJQUFnQlNBSVFRRVFJQXNnRFNFS0N5QUtDOGNFQVFKL0lBQWdBMm9oQmdKQUlBTkJCMHdFUUFOQUlBQWdCazhOQWlBQUlBSXRBQUE2QUFBZ0FFRUJhaUVBSUFKQkFXb2hBZ3dBQ3dBTElBUkJBVVlFUUFKQUlBQWdBbXNpQlVFSFRRUkFJQUFnQWkwQUFEb0FBQ0FBSUFJdEFBRTZBQUVnQUNBQ0xRQUNPZ0FDSUFBZ0FpMEFBem9BQXlBQUlBSWdCVUVDZENJRlFjQWVhaWdDQUdvaUFpZ0FBRFlBQkNBQ0lBVkI0QjVxS0FJQWF5RUNEQUVMSUFBZ0Fpa0FBRGNBQUFzZ0FrRUlhaUVDSUFCQkNHb2hBQXNnQVNBR1R3UkFJQUFnQTJvaEFTQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUEwQWdBQ0FDS1FBQU53QUFJQUpCQ0dvaEFpQUFRUWhxSWdBZ0FVa05BQXdEQ3dBTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dBMEVSU1EwQklBQkJFR29oQUFOQUlBQWdBaWtBRURjQUFDQUFJQUlwQUJnM0FBZ2dBQ0FDS1FBZ053QVFJQUFnQWlrQUtEY0FHQ0FDUVNCcUlRSWdBRUVnYWlJQUlBRkpEUUFMREFFTEFrQWdBQ0FCU3dSQUlBQWhBUXdCQ3lBQklBQnJJUVVDUUNBRVFRRkhJQUFnQW10QkQwcHlSUVJBSUFJaEF3TkFJQUFnQXlrQUFEY0FBQ0FEUVFocUlRTWdBRUVJYWlJQUlBRkpEUUFMREFFTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dCVUVSU0EwQUlBQkJFR29oQUNBQ0lRTURRQ0FBSUFNcEFCQTNBQUFnQUNBREtRQVlOd0FJSUFBZ0F5a0FJRGNBRUNBQUlBTXBBQ2czQUJnZ0EwRWdhaUVESUFCQklHb2lBQ0FCU1EwQUN3c2dBaUFGYWlFQ0N3TkFJQUVnQms4TkFTQUJJQUl0QUFBNkFBQWdBVUVCYWlFQklBSkJBV29oQWd3QUN3QUxDNjRIQWdWL0FYNGpBRUdBQVdzaUVTUUFJQkVnQXpZQ2ZFRi9JUThDUUFKQUFrQUNRQUpBSUFJT0JBRUFBd0lFQ3lBR1JRUkFRYmgvSVE4TUJBdEJiQ0VQSUFVdEFBQWlBaUFEU3cwRElBZ2dBa0VDZENJQ2FpZ0NBQ0VESUFJZ0Iyb29BZ0FoQWlBQVFRQTZBQXNnQUVJQU53SUFJQUFnQWpZQ0RDQUFJQU02QUFvZ0FFRUFPd0VJSUFFZ0FEWUNBRUVCSVE4TUF3c2dBU0FKTmdJQVFRQWhEd3dDQ3lBS1JRUkFRV3doRHd3Q0MwRUFJUThnQzBVZ0RFRVpTSElOQVVFSUlBUjBRUWhxSVFCQkFDRURBMEFnQUNBRFRRMENJQU5CUUdzaEF3d0FDd0FMUVd3aER5QVJJQkZCL0FCcUlCRkIrQUJxSUFVZ0JoQU1JZ05CaUg5TERRQWdFU2dDZUNJQ0lBUkxEUUFnRVNnQ2ZFRUJhaUVKSUFCQkNHb2hDMEdBZ0FJZ0FuUkJFSFVoQlVFQklSQkJBU0FDZENJUFFRRnJJZ29oRWdOQUlBa2dEa2NFUUFKQUlCRWdEa0VCZENJRWFpOEJBQ0lNUWYvL0EwWUVRQ0FMSUJKQkEzUnFJQTQyQWdRZ0VrRUJheUVTUVFFaERBd0JDeUFRUVFBZ0JTQU13VW9iSVJBTElBUWdEV29nRERzQkFDQU9RUUZxSVE0TUFRc0xJQUFnQWpZQ0JDQUFJQkEyQWdBQ1FDQUtJQkpHQkVBZ0RVSHFBR29oQmtFQUlSQkJBQ0VNQTBBZ0NTQVFSZ1JBSUE5QkEzWWdEMEVCZG1wQkEyb2lCVUVCZENFRVFRQWhERUVBSVJJRFFFRUFJUTRnRHlBU1RRMEVBMEFnRGtFQ1J3UkFJQXNnQlNBT2JDQU1haUFLY1VFRGRHb2dCaUFPSUJKcWFpMEFBRFlDQkNBT1FRRnFJUTRNQVFzTElCSkJBbW9oRWlBRUlBeHFJQXB4SVF3TUFBc0FCU0FSSUJCQkFYUnFMZ0VBSVFVZ0JpQU1haUlFSUJNM0FBQkJDQ0VPQTBBZ0JTQU9TZ1JBSUFRZ0Rtb2dFemNBQUNBT1FRaHFJUTRNQVFzTElCTkNnWUtFaUpDZ3dJQUJmQ0VUSUJCQkFXb2hFQ0FGSUF4cUlRd01BUXNBQ3dBTElBOUJBM1lnRDBFQmRtcEJBMm9oQlVFQUlSQkJBQ0VPQTBBZ0NTQVFSZzBCUVFBaERDQVJJQkJCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQU1Sd1JBSUFzZ0RrRURkR29nRURZQ0JBTkFJQVVnRG1vZ0NuRWlEaUFTU3cwQUN5QU1RUUZxSVF3TUFRc0xJQkJCQVdvaEVBd0FDd0FMSUFKQkFXb2hCVUVBSVF3RFFDQU1JQTlIQkVBZ0RTQUxJQXhCQTNScUlna29BZ1FpQkVFQmRHb2lBaUFDTHdFQUlnWkJBV283QVFBZ0NTQUZJQVpuUVdCemFpSUNPZ0FESUFrZ0JpQUNkQ0FQYXpzQkFDQUpJQWdnQkVFQ2RDSUNhaWdDQURvQUFpQUpJQUlnQjJvb0FnQTJBZ1FnREVFQmFpRU1EQUVMQ3lBQklBQTJBZ0FnQXlFUEN5QVJRWUFCYWlRQUlBOEw3Vm9DTzM4R2ZpTUFRZUFCYXlJRUpBQUNRRUd3N0FrUUJTSUZSUVJBUVVBaEJ3d0JDeUFGUWdBM0F2VHFBU0FGUVFBMkFzVHJBU0FGUVFBMkFyVHJBU0FGUWdBM0FwenJBU0FGUVFBMkFyanBBU0FGUVFBMkFxenNDU0FGUWdBM0F0VHJBU0FGUWdBM0FxenJBU0FGUWdBM0E0anJBU0FGUWdBM0F1VHFBU0FGUWdBM0F1VHJBU0FGUVlHQWdNQUFOZ0s4NndFZ0JVSUFOd0trNndFZ0JVSDg2Z0ZxUVFBMkFnQWdCVUdRNndGcVFnQTNBd0FnQlJBWUlBVkJyTlVCYWlFVUlBVkIrT3NCYWlFY0lBVkJzT29CYWlFaUlBVkJvREJxSVNvZ0JVR1lJR29oS3lBRlFhalFBR29oSGlBRlFSQnFJU3dnQlVFSWFpRW9JQVZCQkdvaExTQUZRY0RwQVdvaEtTQUZRWWpyQVdvZ0JFR1VBV29oTHlBRVFZd0JhaUV3SUFSQmhBRnFJVEVnQkVIY0FHb2hNaUFFUWRRQWFpRXpJQVJCekFCcUlUUWdBQ0VkQWtBQ1FBSkFBa0FDUUFOQVFRRkJCU0FGS0FMazZnRWJJUVlDUUFOQUlBTWdCa2tOQVNBQ0tBQUFRWEJ4UWREVXRNSUJSZ1JBUWJoL0lRY2dBMEVJU1EwSUlBSW9BQVFpRGtGM1N3UkFRWEloQnd3SkN5QURJQTVCQ0dvaUNVa05DQ0FPUVlCL1N3UkFJQWtoQnd3SkN5QURJQWxySVFNZ0FpQUphaUVDREFFTEN5QUZRZ0EzQXF6cEFTQUZRZ0EzQStqcEFTQUZRUUEyQXBqckFTQUZRZ0EzQTREcUFTQUZRZ00zQS9qcEFTQUZRYlRwQVdwQ0FEY0NBQ0FGUWZEcEFXcENBRGNEQUNBRlFhalFBR29pQ1VHTWdJRGdBRFlDQUNBRlFhelFBV3BCNEJJcEFnQTNBZ0FnQlVHMDBBRnFRZWdTS0FJQU5nSUFJQVVnQlVFUWFqWUNBQ0FGSUFWQm9EQnFOZ0lFSUFVZ0JVR1lJR28yQWdnZ0JTQUpOZ0lNSUFWQkFVRUZJQVVvQXVUcUFSczJBcnpwQVFKQUlBRkZEUUFnQlNnQ3JPa0JJZ2tnSFVZTkFDQUZJQWsyQXJqcEFTQUZJQjAyQXF6cEFTQUZLQUt3NlFFaERpQUZJQjAyQXJEcEFTQUZJQjBnRGlBSmEybzJBclRwQVF0QnVIOGhDU0FEUVFWQkNTQUZLQUxrNmdFaUJodEpEUVVnQWtFQlFRVWdCaHNnQmhBYUlnNUJpSDlMQkVBZ0RpRUpEQVVMSUFNZ0RrRURha2tOQlNBcElBSWdEaUFHRUJraUJrR0lmMHNFUUNBR0lRa01CUXNnQmcwRkFrQUNRQ0FGS0FLbzZ3RkJBVWNOQUNBRktBS2s2d0VpQ1VVTkFDQUZLQUtVNndGRkRRQWdDU2dDQkVFQmF5SUhJQVVvQXR6cEFTSUtyVUtIbGErdm1MYmVtNTUvZmtMSno5bXk4ZVc2NmllRlFoZUpRcy9XMDc3U3g2dlpRbjVDK2ZQZDhabjJtYXNXZkNJL1FpR0lJRCtGUXMvVzA3N1N4NnZaUW40aVAwSWRpQ0EvaFVMNTg5M3htZmFacXhaK0lqOUNJSWdnUDRXbmNTRUdJQWtvQWdBaEZRTkFRUUFoQ0FKQUlCVWdCa0VDZEdvb0FnQWlDVVVOQUNBSktBSUlRUWhKRFFBZ0NTZ0NCQ0lTS0FBQVFiZkl3dUYrUncwQUlCSW9BQVFoQ0FzZ0NDQUtSd1JBSUFZZ0IzRkJBV29oQmlBSURRRUxDeUFKUlEwQUlBVVFHQ0FGUVg4MkFxRHJBU0FGSUFrMkFwVHJBU0FGSUFVb0F0enBBU0lJTmdLWTZ3RU1BUXNnQlNnQzNPa0JJUWdMQWtBZ0NFVU5BQ0FGS0FLWTZ3RWdDRVlOQUVGZ0lRa01CZ3NDUUNBRktBTGc2UUVFUUNBRklBVW9BdWpxQVNJSlJUWUM3T29CSUFrTkFTQUZRdm5xME5EbnlhSGs0UUEzQTZqcUFTQUZRZ0EzQTZEcUFTQUZRcy9XMDc3U3g2dlpRamNEbU9vQklBVkMxdXVDN3VyOWlmWGdBRGNEa09vQklBVkNBRGNEaU9vQklDSkJBRUVvRUFNYURBRUxJQVZCQURZQzdPb0JDeUFCSUIxcUlTVWdCU0FGS1FQbzZRRWdEcTE4TndQbzZRRWdBeUFPYXlFRElBSWdEbW9oQWlBZElRNERRQ0FDSUFNZ0JFRXNhaEFkSWhWQmlIOUxCRUFnRlNFSkRBWUxJQU5CQTJzaU5TQVZTUTBFSUFKQkEyb2hHMEZzSVFrQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FFS0FJc0RnTUNBUUFWQ3lBVlFmLy9CMHNORXlBVlFRTkpEUklnQlNrRHlPa0JJVDhDUUFKQUlCc3RBQUFpQ1VFRGNTSWFRUUZyRGdNR0FRQUhDeUFGS0FLQTZnRU5BRUZpSVFrTUZRc2dGVUVGU1EwU0lCc29BQUFoQXdKL0FrQUNRQUpBSUFsQkFuWkJBM0VpQ1VFQ2F3NENBUUlBQ3lBSlFRQkhJUWNnQTBFRWRrSC9CM0VoQzBFRElRWWdBMEVPZGtIL0IzRU1BZ3RCQkNFR0lBTkJCSFpCLy84QWNTRUxRUUVoQnlBRFFSSjJEQUVMSUFOQkJIWkIvLzhQY1NJTFFZQ0FDRXNORTBFQklRZEJCU0VHSUFJdEFBZEJDblFnQTBFV2RuSUxJZ2dnQm1vaUNTQVZTdzBTQWtBZ0MwR0JCa2tOQUNBRktBS2M2d0ZGRFFCQkFDRURBMEFnQTBHRGdBRkxEUUVnQTBGQWF5RUREQUFMQUFzZ0JpQWJhaUVQSUJwQkEwY05CaUFGS0FJTUlnSXRBQUZCQ0hRaEF5QUhEUWNnQTBVTkNDQUVRZkFBYWlBUElBZ1FEU0lEUVloL1N3MEpJQUpCQkdvaEJpQUxJQnhxSWhKQkEyc2hDa0VBSUFJdkFRSnJRUjl4SVFjZ0hDRURBMEFnQkVId0FHb1FEMFVnQXlBS1NYRUVRQ0FESUFZZ0JDZ0NjQ0lJSUFRb0FuUWlEM1FnQjNaQkFuUnFJZ0l2QVFBN0FBQWdBeUFDTFFBRGFpSURJQVlnQ0NBUElBSXRBQUpxSWdoMElBZDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0NDQUNMUUFDYWpZQ2RDQURJQUl0QUFOcUlRTU1BUVVnRWtFQ2F5RUlBMEFnQkVId0FHb1FEeUVQSUFRb0FuQWhDaUFFS0FKMElRSWdBeUFJU3lBUGNrVUVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lDaThCQURzQUFDQUVJQUlnQ2kwQUFtbzJBblFnQXlBS0xRQURhaUVEREFFTEN3TkFJQU1nQ0UwRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUR5OEJBRHNBQUNBRElBOHRBQU5xSVFNZ0FpQVBMUUFDYWlFQ0RBRUxDd0pBSUFNZ0VrOE5BQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lBeTBBQURvQUFDQURMUUFEUVFGR0JFQWdBaUFETFFBQ2FpRUNEQUVMSUFKQkgwc05BRUVnSUFJZ0F5MEFBbW9pQWlBQ1FTQlBHeUVDQzBGc1FXd2dDeUFFS0FKNElBUW9BbnhIR3lBQ1FTQkhHeUVEREFzTEFBc0FDeUFFS0FJMElnSWdKU0FPYTBzTkNpQU9SUVJBUVFBaENTQUNEUUlNRGdzZ0RpQWJMUUFBSUFJUUF4b2dBaUVKREF3TElCVWdKU0FPYTBzTkNTQU9EUUZCQUNFSklCVkZEUXdMUWJaL0lRa01FUXNnRGlBYklCVVFBaG9nRlNFSkRBb0xJQndnR3dKL0FrQUNRQUpBSUFsQkFuWkJBM0ZCQVdzT0F3RUFBZ0FMSUFsQkEzWWhBMEVCREFJTElCc3ZBQUJCQkhZaEEwRUNEQUVMSUJWQkJFa05EaUFDTHdBRElBSXRBQVZCRUhSeUlnSkJqNENBQVVzTkRpQUNRUVIySVFOQkF3c2lBbW90QUFBZ0EwRWdhaEFESVFrZ0JTQUROZ0tBNndFZ0JTQUpOZ0x3NmdFZ0FrRUJhaUVKREFVTElCVUNmd0pBQWtBQ1FDQUpRUUoyUVFOeFFRRnJEZ01CQUFJQUN5QUpRUU4ySVFOQkFRd0NDeUFiTHdBQVFRUjJJUU5CQWd3QkN5QUNMd0FESUFJdEFBVkJFSFJ5UVFSMklRTkJBd3NpQWlBRGFpSUpRU0JxU1FSQUlBa2dGVXNORFNBY0lBSWdHMm9nQXhBQ0lRSWdCU0FETmdLQTZ3RWdCU0FDTmdMdzZnRWdBaUFEYWlJQ1FnQTNBQmdnQWtJQU53QVFJQUpDQURjQUNDQUNRZ0EzQUFBTUJRc2dCU0FETmdLQTZ3RWdCU0FDSUJ0cU5nTHc2Z0VNQkFzZ0IwVUVRQ0FlSUE4Z0NDQVVFQlFpQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZTRUREQU1MSUF0RklBaEZjZzBMSUF0QkNIWWlBeUFJSUF0SkJIOGdDRUVFZENBTGJnVkJEd3RCR0d3aUFrR01DR29vQWdCc0lBSkJpQWhxS0FJQWFpSUdRUU4ySUFacUlBSkJnQWhxS0FJQUlBSkJoQWhxS0FJQUlBTnNha2tFUUNNQVFSQnJJaEFrQUNBZUtBSUFJUU1nRkVId0JHcEJBRUhzQUJBRElRWkJWQ0VDQWtBZ0EwSC9BWEVpREVFTVN3MEFBa0FnRkVIY0NXb2dCaUFRUVFocUlCQkJER29nRHlBSUlCUkIzQXRxSWhjUUN5SVNRWWgvU3cwQUlCQW9BZ3dpQmlBTVN3MEJJQlJCcUFWcUlRMGdGRUdrQldvaE5pQWVRUVJxSVJFZ0EwR0FnSUI0Y1NFM0lBWkJBV29pRXlFQ0lBWWhBd05BSUFJaUIwRUJheUVDSUFNaUNrRUJheUVESUJRZ0NrRUNkR29vQXZBRVJRMEFDMEVCSUFjZ0IwRUJUUnNoRmtFQUlRZEJBU0VDQTBBZ0FpQVdSd1JBSUJRZ0FrRUNkQ0lEYWlnQzhBUWhHQ0FESUExcUlBYzJBZ0FnQWtFQmFpRUNJQWNnR0dvaEJ3d0JDd3NnRFNBSE5nSUFRUUFoQWlBUUtBSUlJUU1EUUNBQ0lBTkhCRUFnRFNBQ0lCUnFRZHdKYWkwQUFDSVlRUUowYWlJWklCa29BZ0FpR1VFQmFqWUNBQ0FVSUJsQkFYUnFJaGtnR0RvQTNRVWdHU0FDT2dEY0JTQUNRUUZxSVFJTUFRc0xRUUFoQXlBTlFRQTJBZ0FnRENBR1FYOXphaUVHUVFFaEFnTkFJQUlnRmtjRVFDQVVJQUpCQW5ScUlnMGdBellDQUNBTktBTHdCQ0FDSUFacWRDQURhaUVESUFKQkFXb2hBZ3dCQ3dzZ0RDQVRJQXBySWdaclFRRnFJUW9nQmlFREEwQWdBeUFLU1FSQUlCUWdBMEUwYkdvaERVRUJJUUlEUUNBQ0lCWkhCRUFnRFNBQ1FRSjBJaGhxSUJRZ0dHb29BZ0FnQTNZMkFnQWdBa0VCYWlFQ0RBRUxDeUFEUVFGcUlRTU1BUXNMSUJjZ0ZFRTBFQUloT0NBVVFaQU1haUU1SUJNZ0RHc2hPaUFVUWR3RmFpRVhRUUFoQ2dOQUFrQUNRQ0FISUFwSEJFQkJBU0FNSUJNZ0Z5QUtRUUYwYWlJQ0xRQUJJZzFySWdOckloaDBJUmtnQWkwQUFDRVdJRGdnRFVFQ2RHb2lIeWdDQUNFQ0lBWWdHRTBFUUNBMlFRRWdBeUE2YWlJTklBMUJBVXdiSWlCQkFuUWlKR29vQWdBaERTQTVJQlFnQTBFMGJHcEJOQkFDSVNFZ0RVRUJkQ0VtSUJFZ0FrRUNkR29oSXlBZ1FRRk5EUUlnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFZ0lDRWdKR29vQWdBaEpFRUFJUUlEUUNBQ0lDUkdEUU1nSXlBQ1FRSjBhaUFnTmdFQUlBSkJBV29oQWd3QUN3QUxJQUlnQWlBWmFpSU5JQUlnRFVzYklRMGdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVEQTBBZ0FpQU5SZzBESUJFZ0FrRUNkR29nQXpZQkFDQUNRUUZxSVFJTUFBc0FDeUFlSUF4QkVIUWdOM0lnREhKQmdBSnlOZ0lBREFNTElBY2dEV3NoSkNBWElDWnFJU1pCQUNFTkEwQWdEU0FrUmcwQlFRRWdHQ0FUSUNZZ0RVRUJkR29pSnkwQUFTSUNheUk3YTNRaVBDQWhJQUpCQW5ScUlpQW9BZ0FpQW1vaFBTQURJRHRxUVJCMFFZQ0EvQWR4SUNjdEFBQkJDSFJ5SUJaeVFZQ0FnQkJ5SVNjRFFDQWpJQUpCQW5ScUlDYzJBUUFnQWtFQmFpSUNJRDFKRFFBTElDQWdJQ2dDQUNBOGFqWUNBQ0FOUVFGcUlRME1BQXNBQ3lBZklCOG9BZ0FnR1dvMkFnQWdDa0VCYWlFS0RBQUxBQXNnRWlFQ0N5QVFRUkJxSkFBZ0FrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGaUVEREFNTElCNGdEeUFJSUJRUUZDSUNRWWgvU3lBQ0lBaFBjZzBMSUJ3Z0N5QUNJQTlxSUFnZ0Ftc2dIaEFYSVFNTUFnc2dBd1JBSUJ3Z0N5QVBJQWdnQWhBV0lRTU1BZ3NnSENBTElBOGdDQ0FDRUJjaEF3d0JDeUFjSUFzZ0R5QUlJQUlRRlNFREN5QURRWWgvU3cwSUlBVWdDellDZ09zQklBVWdIRFlDOE9vQklBVkJBVFlDZ09vQklCcEJBa1lFUUNBRklCNDJBZ3dMSUFzZ0hHb2lBa0lBTndBQUlBSkNBRGNBR0NBQ1FnQTNBQkFnQWtJQU53QUlJQWxCaUg5TERRb0xJQWtnRlVZTkNDQVZJQWxySVFZZ0JTZ0NuT3NCSVFvQ1FDQUpJQnRxSWdNdEFBQWlEMFVFUUVFQklRSkJBQ0VQUWJoL0lRa2dCa0VCUmcwQkRBc0xBbjhnQTBFQmFpQVB3Q0lDUVFCT0RRQWFJQUpCZjBZRVFDQUdRUU5JRFFzZ0F5OEFBVUdBL2dGcUlROGdBMEVEYWd3QkN5QUdRUUpJRFFvZ0F5MEFBU0FQUVFoMGNrR0FnQUpySVE4Z0EwRUNhZ3NoRWtHNGZ5RUpJQkpCQVdvaUFpQVZJQnRxSWdkTERRb2dMQ0FGSUJJdEFBQWlFa0VHZGtFalFRa2dBaUFISUFKclFjQVFRZEFSUWZBU0lBVW9Bb1RxQVNBS0lBOGdGQkFoSWdsQmlIOUxEUWdnS3lBb0lCSkJCSFpCQTNGQkgwRUlJQUlnQ1dvaUFpQUhJQUpyUVlBTFFZQU1RWUFYSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUNFR0lmMHNOQ0VGc0lRa2dLaUF0SUJKQkFuWkJBM0ZCTkVFSklBSWdDR29pQWlBSElBSnJRWUFOUWVBT1FaQVpJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQjBHSWYwc05DaUFDSUFkcUlBTnJJZ0loQ1NBQ1FZaC9TdzBLQ3lBT0lBOUJBRXh5RFFFTFFicC9JUWtNQ0FzZ0pTQU9heUVKSUFZZ0Ftc2hCaUFDSUFOcUlRY0NRQUpBQWtBZ0NrVUVRQ0FQUVFsSUlBVXBBOGpwQVVLQmdJQUlWSElOQWlBb0tBSUFJZ0pCQ0dvaEVpQUNLQUlFSVFwQkFDRURRUUFoQWdOQUlBTWdDblpGQkVBZ0FpQVNJQU5CQTNScUxRQUNRUlpMYWlFQ0lBTkJBV29oQXd3QkN3c2dCVUVBTmdLYzZ3RWdBa0VJSUFwcmRFRVVUdzBCREFNTElBVkJBRFlDbk9zQkN5QUVJQVVvQXZEcUFTSUROZ0xjQVNBSklBNXFJUllnQXlBRktBS0E2d0ZxSVJjQ1FDQVBSUVJBSUE0aEJ3d0JDeUFGS0FLNDZRRWhHaUFGS0FLMDZRRWhHQ0FGS0FLdzZRRWhFaUFGUVFFMkFvVHFBVUVBSVFNRFFDQURRUU5IQkVBZ0JDQURRUUowSWdKcUlBSWdCV3BCck5BQmFpZ0NBRFlDWkNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUVRocUlnSWdCeUFHRUExQmlIOUxEUU5CQ0NBUElBOUJDRTRiSVI4Z05DQUNJQVVvQWdBUUhpQXpJQUlnQlNnQ0NCQWVJRElnQWlBRktBSUVFQjRnRGlBU2F5RVpRUUFoQ0FOQUlBUkJPR29RRDBFRFJpQUlJQjlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ2RCRUhZaUVVSC9BWEVoQ3lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklneEJFSFlpSVVIL0FYRWhFQ0FFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRWWdRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ2tIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSUtheUlOSUFJZ0FpQU5TeHNpRXlBS2FqWUNQQ0FHSUFRb0FqZ2dDblJCQUNBVGEzWWdBaUFUYXlJVGRHb2hDaUFFUVRocUVBOGFJQUlnRFUwTkFTQUVJQVFvQWp3aUFpQVRhallDUENBRUtBSTRJQUowUVFBZ0UydDJJQXBxSVFvTUFRc2dCQ0FDSUFRb0Fqd2lEV28yQWp3Z0JDZ0NPQ0FOZEVFQUlBcHJkaUFHYWlFS0lBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlBbzJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FEQkVBZ0JDZ0NaQ0VLREFNTElBUW9BbWdoQ2d3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBWWdBMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ1pGSUFacUlRb2dBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUFvMkFtUUxweUVDSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lCQnFOZ0k4SUFRb0FqZ2dCblJCQUNBaGEzWWdBbW9oQWdzZ0N5QVFha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQXRxTmdJOElBUW9BamdnQm5SQkFDQVJhM1lnQTJvaEF3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUJrRUFJQWRCR0hZaUN5QUVLQUk4YWlJUWEzWWdDMEVDZEVHZ0hXb29BZ0J4SUFkQi8vOERjV28yQWt3Z0JDQVFJQXhCR0hZaUIyb2lDellDUENBRUlBZEJBblJCb0IxcUtBSUFJQVpCQUNBTGEzWnhJQXhCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnWkJHSFlpQnlBRUtBSThhaUlMTmdJOElBUWdCMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQXRyZG5FZ0JrSC8vd054YWpZQ1ZDQUVRZkFBYWlBSVFReHNhaUlHSUFvMkFnZ2dCaUFDTmdJRUlBWWdBellDQUNBSVFRRnFJUWdnQXlBWmFpQUNhaUVaREFFTEN5QUlJQjlJRFFNZ0ZrRWdheUVoSUE0aEJ3TkFJQVJCT0dvUUQwRURSaUFJSUE5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdaQkVIWWlJMEgvQVhFaENpQUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZzFCRUhZaUlFSC9BWEVoRXlBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUU1nUVVJZ2lDQkFRaUNJcHlFTEFrQWdRa0lRaUtjaURFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lNYXlJUklBSWdBaUFSU3hzaUVDQU1hallDUENBRElBUW9BamdnREhSQkFDQVFhM1lnQWlBUWF5SU1kR29oRUNBRVFUaHFFQThhSUFJZ0VVME5BU0FFSUFRb0Fqd2lBaUFNYWpZQ1BDQUVLQUk0SUFKMFFRQWdER3QySUJCcUlSQU1BUXNnQkNBQ0lBUW9BandpRUdvMkFqd2dCQ2dDT0NBUWRFRUFJQXhyZGlBRGFpRVFJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQkEyQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBTEJFQWdCQ2dDWkNFUURBTUxJQVFvQW1naEVBd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQU1nQzBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdORklBTnFJUkFnQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlCQTJBbVFMcHlFTUlFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQk5xTmdJOElBUW9BamdnQW5SQkFDQWdhM1lnREdvaERBc2dDaUFUYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUFwcU5nSThJQVFvQWpnZ0FuUkJBQ0FqYTNZZ0Myb2hDd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lBa0VBSUFaQkdIWWlBeUFFS0FJOGFpSUthM1lnQTBFQ2RFR2dIV29vQWdCeElBWkIvLzhEY1dvMkFrd2dCQ0FLSUExQkdIWWlBMm9pQmpZQ1BDQUVJQU5CQW5SQm9CMXFLQUlBSUFKQkFDQUdhM1p4SUExQi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ0pCR0hZaUF5QUVLQUk4YWlJR05nSThJQVFnQTBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUFacmRuRWdBa0gvL3dOeGFqWUNWQUpBQWtBQ1FDQUVLQUxjQVNJRElBUkI4QUJxSUFoQkIzRkJER3hxSWhNb0FnQWlFV29pSXlBWFN3MEFJQWNnRXlnQ0JDSU5JQkZxSWdwcUlDRkxEUUFnQ2tFZ2FpQVdJQWRyVFEwQkN5QUVJQk1vQWdnMkFoZ2dCQ0FUS1FJQU53TVFJQWNnRmlBRVFSQnFJQVJCM0FGcUlCY2dFaUFZSUJvUUh5RUtEQUVMSUFjZ0VXb2hBaUFUS0FJSUlRWWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQUpBSUJGQkVVa05BQ0FISUFNcEFCQTNBQkFnQnlBREtRQVlOd0FZSUJGQkVHdEJFVWdOQUNBRFFSQnFJUU1nQjBFZ2FpRVJBMEFnRVNBREtRQVFOd0FBSUJFZ0F5a0FHRGNBQ0NBUklBTXBBQ0EzQUJBZ0VTQURLUUFvTndBWUlBTkJJR29oQXlBUlFTQnFJaEVnQWtrTkFBc0xJQUlnQm1zaEF5QUVJQ00yQXR3QklBSWdFbXNnQmtrRVFDQUdJQUlnR0d0TERRY2dHaUFhSUFNZ0Vtc2lBMm9pRVNBTmFrOEVRQ0FDSUJFZ0RSQUtHZ3dDQ3lBRElBMXFJUTBnQWlBUlFRQWdBMnNRQ2lBRGF5RUNJQkloQXdzZ0JrRVFUd1JBSUFJZ0F5a0FBRGNBQUNBQ0lBTXBBQWczQUFnZ0RVRVJTQTBCSUFJZ0RXb2hCaUFDUVJCcUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFHU1EwQUN3d0JDd0pBSUFaQkIwMEVRQ0FDSUFNdEFBQTZBQUFnQWlBRExRQUJPZ0FCSUFJZ0F5MEFBam9BQWlBQ0lBTXRBQU02QUFNZ0FpQURJQVpCQW5RaUJrSEFIbW9vQWdCcUlnTW9BQUEyQUFRZ0F5QUdRZUFlYWlnQ0FHc2hBd3dCQ3lBQ0lBTXBBQUEzQUFBTElBMUJDVWtOQUNBQ0lBMXFJUkVnQWtFSWFpSUdJQU5CQ0dvaUEydEJEMHdFUUFOQUlBWWdBeWtBQURjQUFDQURRUWhxSVFNZ0JrRUlhaUlHSUJGSkRRQU1BZ3NBQ3lBR0lBTXBBQUEzQUFBZ0JpQURLUUFJTndBSUlBMUJHVWdOQUNBQ1FSaHFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBUlNRMEFDd3NnQ2tHSWYwc0VRQ0FLSVFrTUJnVWdFeUFRTmdJSUlCTWdERFlDQkNBVElBczJBZ0FnQ0VFQmFpRUlJQWNnQ21vaEJ5QUxJQmxxSUF4cUlSa01BZ3NBQ3dzZ0NDQVBTQTBESUFnZ0gyc2hCZ05BQWtBZ0JpQVBUZ1JBUVFBaEF3TkFJQU5CQTBZTkFpQUZJQU5CQW5RaUFtcEJyTkFCYWlBQ0lBUnFLQUprTmdJQUlBTkJBV29oQXd3QUN3QUxBa0FDUUFKQUlBUW9BdHdCSWdNZ0JFSHdBR29nQmtFSGNVRU1iR29pQ0NnQ0FDSU1haUlRSUJkTERRQWdCeUFJS0FJRUlnc2dER29pQ21vZ0lVc05BQ0FLUVNCcUlCWWdCMnRORFFFTElBUWdDQ2dDQ0RZQ0tDQUVJQWdwQWdBM0F5QWdCeUFXSUFSQklHb2dCRUhjQVdvZ0Z5QVNJQmdnR2hBZklRb01BUXNnQnlBTWFpRUNJQWdvQWdnaENDQUhJQU1wQUFBM0FBQWdCeUFES1FBSU53QUlBa0FnREVFUlNRMEFJQWNnQXlrQUVEY0FFQ0FISUFNcEFCZzNBQmdnREVFUWEwRVJTQTBBSUFOQkVHb2hBeUFIUVNCcUlRd0RRQ0FNSUFNcEFCQTNBQUFnRENBREtRQVlOd0FJSUF3Z0F5a0FJRGNBRUNBTUlBTXBBQ2czQUJnZ0EwRWdhaUVESUF4QklHb2lEQ0FDU1EwQUN3c2dBaUFJYXlFRElBUWdFRFlDM0FFZ0FpQVNheUFJU1FSQUlBZ2dBaUFZYTBzTkJ5QWFJQm9nQXlBU2F5SURhaUlNSUF0cVR3UkFJQUlnRENBTEVBb2FEQUlMSUFNZ0Myb2hDeUFDSUF4QkFDQURheEFLSUFOcklRSWdFaUVEQ3lBSVFSQlBCRUFnQWlBREtRQUFOd0FBSUFJZ0F5a0FDRGNBQ0NBTFFSRklEUUVnQWlBTGFpRUlJQUpCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQUlnQXkwQUFEb0FBQ0FDSUFNdEFBRTZBQUVnQWlBRExRQUNPZ0FDSUFJZ0F5MEFBem9BQXlBQ0lBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFJZ0F5a0FBRGNBQUFzZ0MwRUpTUTBBSUFJZ0Myb2hEQ0FDUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnREVrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0MwRVpTQTBBSUFKQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF4SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3R0JTQUdRUUZxSVFZZ0J5QUthaUVIREFJTEFBc0xJQVFvQXR3QklRTUxRYnAvSVFrZ0Z5QURheUlDSUJZZ0IydExEUUlnQndSL0lBY2dBeUFDRUFJZ0Ftb0ZRUUFMSUE1cklRa01BZ3NnQlVFQU5nS2M2d0VMSUFRZ0JTZ0M4T29CSWdNMkF0d0JJQWtnRG1vaERDQURJQVVvQW9EckFXb2hFQUpBSUE5RkJFQWdEaUVHREFFTElBVW9BcmpwQVNFTklBVW9BclRwQVNFVElBVW9BckRwQVNFU0lBVkJBVFlDaE9vQlFRQWhBd05BSUFOQkEwY0VRQ0FFSUFOQkFuUWlBbW9nQWlBRmFrR3MwQUZxS0FJQU5nS2NBU0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRZkFBYWlJQ0lBY2dCaEFOUVloL1N3MEJJREVnQWlBRktBSUFFQjRnTUNBQ0lBVW9BZ2dRSGlBdklBSWdCU2dDQkJBZUlBeEJJR3NoR0NBT0lRWURRQ0FFS0FLSUFTQUVLQUtFQVVFRGRHb3BBZ0FpUUtjaUNrRVFkaUlaUWY4QmNTRUxJQVFvQXBnQklBUW9BcFFCUVFOMGFpa0NBQ0pCcHlJV1FSQjJJaDlCL3dGeElSb2dCQ2dDa0FFZ0JDZ0NqQUZCQTNScUtRSUFJa0pDSUlpbklRY2dRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ0VIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ2RDSUlheUlSSUFJZ0FpQVJTeHNpRnlBSWFqWUNkQ0FISUFRb0FuQWdDSFJCQUNBWGEzWWdBaUFYYXlJWGRHb2hDQ0FFUWZBQWFoQVBHaUFDSUJGTkRRRWdCQ0FFS0FKMElnSWdGMm8yQW5RZ0JDZ0NjQ0FDZEVFQUlCZHJkaUFJYWlFSURBRUxJQVFnQWlBRUtBSjBJaEZxTmdKMElBUW9BbkFnRVhSQkFDQUlhM1lnQjJvaENDQUVRZkFBYWhBUEdnc2dCQ2tDbkFFaFJDQUVJQWcyQXB3QklBUWdSRGNDb0FFTUFRc0NRQ0FDUlFSQUlBTUVRQ0FFS0FLY0FTRUlEQU1MSUFRb0FxQUJJUWdNQVFzZ0JDQUVLQUowSWdKQkFXbzJBblFDZnlBSElBTkZhaUFFS0FKd0lBSjBRUjkyYWlJQ1FRTkdCRUFnQkNnQ25BRkJBV3NNQVFzZ0FrRUNkQ0FFYWlnQ25BRUxJZ2RGSUFkcUlRZ2dBa0VCUndSQUlBUWdCQ2dDb0FFMkFxUUJDd3NnQkNBRUtBS2NBVFlDb0FFZ0JDQUlOZ0tjQVF1bklRSWdRVUtBZ1B3SGcxQkZCRUFnQkNBRUtBSjBJZ2NnR21vMkFuUWdCQ2dDY0NBSGRFRUFJQjlyZGlBQ2FpRUNDeUFMSUJwcVFSUlBCRUFnQkVId0FHb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDZENJSElBdHFOZ0owSUFRb0FuQWdCM1JCQUNBWmEzWWdBMm9oQXdzZ0JFSHdBR29RRHhvZ0JDQUVLQUp3SWdkQkFDQUtRUmgySWdzZ0JDZ0NkR29pR210MklBdEJBblJCb0IxcUtBSUFjU0FLUWYvL0EzRnFOZ0tFQVNBRUlCb2dGa0VZZGlJS2FpSUxOZ0owSUFRZ0NrRUNkRUdnSFdvb0FnQWdCMEVBSUF0cmRuRWdGa0gvL3dOeGFqWUNsQUVnQkVId0FHb1FEeG9nQkNCQ3B5SUhRUmgySWdvZ0JDZ0NkR29pQ3pZQ2RDQUVJQXBCQW5SQm9CMXFLQUlBSUFRb0FuQkJBQ0FMYTNaeElBZEIvLzhEY1dvMkFvd0JJQVFnQXpZQ09DQUVJQUkyQWp3Z0JDQUlOZ0pBQWtBQ1FBSkFJQVFvQXR3Qklnc2dBMm9pRmlBUVN3MEFJQVlnQWlBRGFpSUthaUFZU3cwQUlBcEJJR29nRENBR2EwME5BUXNnQkNBRVFVQnJLQUlBTmdJSUlBUWdCQ2tET0RjREFDQUdJQXdnQkNBRVFkd0JhaUFRSUJJZ0V5QU5FQjhoQ2d3QkN5QURJQVpxSVFjZ0JpQUxLUUFBTndBQUlBWWdDeWtBQ0RjQUNBSkFJQU5CRVVrTkFDQUdJQXNwQUJBM0FCQWdCaUFMS1FBWU53QVlJQU5CRUd0QkVVZ05BQ0FMUVJCcUlRTWdCa0VnYWlFTEEwQWdDeUFES1FBUU53QUFJQXNnQXlrQUdEY0FDQ0FMSUFNcEFDQTNBQkFnQ3lBREtRQW9Od0FZSUFOQklHb2hBeUFMUVNCcUlnc2dCMGtOQUFzTElBY2dDR3NoQXlBRUlCWTJBdHdCSUFjZ0Vtc2dDRWtFUUNBSUlBY2dFMnRMRFFRZ0RTQU5JQU1nRW1zaUEyb2lDeUFDYWs4RVFDQUhJQXNnQWhBS0dnd0NDeUFISUF0QkFDQURheEFLSUFRZ0FpQURhaUlDTmdJOElBTnJJUWNnRWlFREN5QUlRUkJQQkVBZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNDQUNRUkZJRFFFZ0FpQUhhaUVJSUFkQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFjZ0F5MEFBRG9BQUNBSElBTXRBQUU2QUFFZ0J5QURMUUFDT2dBQ0lBY2dBeTBBQXpvQUF5QUhJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBY2dBeWtBQURjQUFBc2dBa0VKU1EwQUlBSWdCMm9oQ3lBSFFRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0Mwa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dBa0VaU0EwQUlBZEJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBdEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0RDeUFHSUFwcUlRWWdCRUh3QUdvUUR5RURJQTlCQVdzaUR3MEFDMEVBSVFJZ0EwRUNTUTBCQTBBZ0FrRURSd1JBSUFVZ0FrRUNkQ0lEYWtHczBBRnFJQU1nQkdvb0Fwd0JOZ0lBSUFKQkFXb2hBZ3dCQ3dzZ0JDZ0MzQUVoQXd0QnVuOGhDU0FRSUFOcklnSWdEQ0FHYTBzTkFDQUdCSDhnQmlBRElBSVFBaUFDYWdWQkFBc2dEbXNoQ1FzZ0NVR0lmMHNOQmdzQ1FDQUZLQUxzNmdGRkRRQWdCU0FGS1FPSTZnRWdDYTE4TndPSTZnRUNRQ0FGS0FMUTZnRWlBaUFKYWlJSVFSOU5CRUFnRGtVTkFTQUNJQ0pxSUE0Z0NSQUNHaUFGS0FMUTZnRWdDV29oQ0F3QkN5QU9JUU1nQWdSQUlBSWdJbW9nQTBFZ0lBSnJFQUlhSUFVb0F0RHFBU0VDSUFWQkFEWUMwT29CSUFVZ0JTa0RrT29CSUFVcEFMRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEa09vQklBVWdCU2tEbU9vQklBVXBBTGpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG1Pb0JJQVVnQlNrRG9Pb0JJQVVwQU1EcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RvT29CSUFVZ0JTa0RxT29CSUFVcEFNanFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEcU9vQklBTWdBbXRCSUdvaEF3c2dDU0FPYWlJQ0lBTkJJR3BQQkVBZ0FrRWdheUVHSUFVcEE2anFBU0UvSUFVcEE2RHFBU0ZBSUFVcEE1anFBU0ZCSUFVcEE1RHFBU0ZDQTBBZ0F5a0FHRUxQMXRPKzBzZXIyVUorSUQ5OFFoK0pRb2VWcjYrWXR0NmJubjkrSVQ4Z0F5a0FFRUxQMXRPKzBzZXIyVUorSUVCOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVBZ0F5a0FDRUxQMXRPKzBzZXIyVUorSUVGOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVFZ0F5a0FBRUxQMXRPKzBzZXIyVUorSUVKOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVJZ0EwRWdhaUlESUFaTkRRQUxJQVVnUHpjRHFPb0JJQVVnUURjRG9Pb0JJQVVnUVRjRG1Pb0JJQVVnUWpjRGtPb0JDeUFDSUFOTkRRRWdJaUFESUFJZ0Eyc2lDQkFDR2dzZ0JTQUlOZ0xRNmdFTElEVWdGV3NoQXlBVklCdHFJUUlnQ1NBT2FpRU9JQVFvQWpCRkRRQUxJQ2twQXdBaVAwSi9VU0EvSUE0Z0hXdXNVWEpGQkVCQmJDRUpEQVlMSUFVb0F1RHBBUVJBUVdvaENTQURRUVJKRFFZZ0JTZ0M2T29CUlFSQUlDSWdCU2dDME9vQmFpRUtBbjRnQlNrRGlPb0JJajlDSUZvRVFDQUZLUU9ZNmdFaVFFSUhpU0FGS1FPUTZnRWlRVUlCaVh3Z0JTa0RvT29CSWtKQ0RJbDhJQVVwQTZqcUFTSkRRaEtKZkNCQlFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5SUVCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZm9WQ2g1V3ZyNWkyM3B1ZWYzNUNuYU8xNm9PeGpZcjZBSDBnUWtMUDF0Tyswc2VyMlVKK1FoK0pRb2VWcjYrWXR0NmJubjkraFVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0JEUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlEQUVMSUFVcEE2RHFBVUxGejlteThlVzY2aWQ4Q3lBL2ZDRS9JQ0loQmdOQUlBb2dCa0VJYWlJSFR3UkFJQVlwQUFCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZmlBL2hVSWJpVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTRS9JQWNoQmd3QkN3c0NRQ0FLSUFaQkJHb2lDRWtFUUNBR0lRZ01BUXNnQmpVQUFFS0hsYSt2bUxiZW01NS9maUEvaFVJWGlVTFAxdE8rMHNlcjJVSitRdm56M2ZHWjlwbXJGbndoUHdzRFFDQUlJQXBKQkVBZ0NERUFBRUxGejlteThlVzY2aWQrSUQrRlFndUpRb2VWcjYrWXR0NmJubjkrSVQ4Z0NFRUJhaUVJREFFTEN5QUNLQUFBSUQ5Q0lZZ2dQNFZDejliVHZ0TEhxOWxDZmlJL1FoMklJRCtGUXZuejNmR1o5cG1yRm40aVAwSWdpQ0EvaGFkSERRY0xJQU5CQkdzaEF5QUNRUVJxSVFJTElBNGdIV3NpQ1VHSmYwOE5CQ0FCSUFscklRRWdDU0FkYWlFZFFRRWhQZ3dCQ3d0QnVIOGhCeUFERFFRZ0hTQUFheUVIREFRTFFXd2hDUXdCQzBHNGZ5RUpDMEc0ZnlFSElBbEJka1lnUG5FTkFRc2dDU0VIQ3lnQ0FBMEFJQVZCL09vQmFpZ0NBQ0VCSUFWQitPb0JhaWdDQUNFQUlBVVFHQ0FGS0FLdzZ3RWdBQ0FCRUJNZ0JVRUFOZ0t3NndFZ0JTZ0NwT3NCSWdJRVFBSkFBa0FDUUFKQUlBSW9BZ0FpQXdSQUlBQkZEUUlnQVNBRElBQVJBZ0FNQVFzZ0FFVU5BZ3NnQVNBQ0lBQVJBZ0FNQWdzZ0F4QUdDeUFDRUFZTElBVkJBRFlDcE9zQkN5QUFCRUFnQVNBRklBQVJBZ0FNQVFzZ0JSQUdDeUFFUWVBQmFpUUFJQWNMQzZnVkNRQkJpQWdMRFFFQUFBQUJBQUFBQWdBQUFBSUFRYUFJQzdNR0FRQUFBQUVBQUFBQ0FBQUFBZ0FBQUNZQUFBQ0NBQUFBSVFVQUFFb0FBQUJuQ0FBQUpnQUFBTUFCQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBS1FBQUFDd0NBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFMd0FBQU1vQ0FBQ0FBQUFBaWdVQUFFb0FBQUNFQ1FBQU5RQUFBSE1EQUFDQUFBQUFuUVVBQUVvQUFBQ2dDUUFBUFFBQUFJRURBQUNBQUFBQTZ3VUFBRXNBQUFBK0NnQUFSQUFBQUo0REFBQ0FBQUFBVFFZQUFFc0FBQUNxQ2dBQVN3QUFBTE1EQUFDQUFBQUF3UVlBQUUwQUFBQWZEUUFBVFFBQUFGTUVBQUNBQUFBQUl3Z0FBRkVBQUFDbUR3QUFWQUFBQUprRUFBQ0FBQUFBU3drQUFGY0FBQUN4RWdBQVdBQUFBTm9FQUFDQUFBQUFid2tBQUYwQUFBQWpGQUFBVkFBQUFFVUZBQUNBQUFBQVZBb0FBR29BQUFDTUZBQUFhZ0FBQUs4RkFBQ0FBQUFBZGdrQUFId0FBQUJPRUFBQWZBQUFBTklDQUFDQUFBQUFZd2NBQUpFQUFBQ1FCd0FBa2dBQUFBQUFBQUFCQUFBQUFRQUFBQVVBQUFBTkFBQUFIUUFBQUQwQUFBQjlBQUFBL1FBQUFQMEJBQUQ5QXdBQS9RY0FBUDBQQUFEOUh3QUEvVDhBQVAxL0FBRDkvd0FBL2Y4QkFQMy9Bd0Q5L3djQS9mOFBBUDMvSHdEOS96OEEvZjkvQVAzLy93RDkvLzhCL2YvL0EvMy8vd2Y5Ly84UC9mLy9ILzMvL3ovOS8vOS9BQUFBQUFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBUkFBQUFFZ0FBQUJNQUFBQVVBQUFBRlFBQUFCWUFBQUFYQUFBQUdBQUFBQmtBQUFBYUFBQUFHd0FBQUJ3QUFBQWRBQUFBSGdBQUFCOEFBQUFEQUFBQUJBQUFBQVVBQUFBR0FBQUFCd0FBQUFnQUFBQUpBQUFBQ2dBQUFBc0FBQUFNQUFBQURRQUFBQTRBQUFBUEFBQUFFQUFBQUJFQUFBQVNBQUFBRXdBQUFCUUFBQUFWQUFBQUZnQUFBQmNBQUFBWUFBQUFHUUFBQUJvQUFBQWJBQUFBSEFBQUFCMEFBQUFlQUFBQUh3QUFBQ0FBQUFBaEFBQUFJZ0FBQUNNQUFBQWxBQUFBSndBQUFDa0FBQUFyQUFBQUx3QUFBRE1BQUFBN0FBQUFRd0FBQUZNQUFBQmpBQUFBZ3dBQUFBTUJBQUFEQWdBQUF3UUFBQU1JQUFBREVBQUFBeUFBQUFOQUFBQURnQUFBQXdBQkFFSGdEd3RSQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQkFBQUFBVUFBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0FBQUF3QUFBQU5BQUFBRGdBQUFBOEFBQUFRQUVIRUVBdUxBUUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFTQUFBQUZBQUFBQllBQUFBWUFBQUFIQUFBQUNBQUFBQW9BQUFBTUFBQUFFQUFBQUNBQUFBQUFBRUFBQUFDQUFBQUJBQUFBQWdBQUFBUUFBQUFJQUFBQUVBQUFBQ0FBQUFBQUFFQVFaQVNDK1lFQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFCQUFBQUJBQUFBQWdBQUFBQUFBQUFBUUFCQVFZQUFBQUFBQUFFQUFBQUFCQUFBQVFBQUFBQUlBQUFCUUVBQUFBQUFBQUZBd0FBQUFBQUFBVUVBQUFBQUFBQUJRWUFBQUFBQUFBRkJ3QUFBQUFBQUFVSkFBQUFBQUFBQlFvQUFBQUFBQUFGREFBQUFBQUFBQVlPQUFBQUFBQUJCUkFBQUFBQUFBRUZGQUFBQUFBQUFRVVdBQUFBQUFBQ0JSd0FBQUFBQUFNRklBQUFBQUFBQkFVd0FBQUFJQUFHQlVBQUFBQUFBQWNGZ0FBQUFBQUFDQVlBQVFBQUFBQUtCZ0FFQUFBQUFBd0dBQkFBQUNBQUFBUUFBQUFBQUFBQUJBRUFBQUFBQUFBRkFnQUFBQ0FBQUFVRUFBQUFBQUFBQlFVQUFBQWdBQUFGQndBQUFBQUFBQVVJQUFBQUlBQUFCUW9BQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBSUFBQkJSQUFBQUFBQUFFRkVnQUFBQ0FBQVFVV0FBQUFBQUFDQlJnQUFBQWdBQU1GSUFBQUFBQUFBd1VvQUFBQUFBQUdCRUFBQUFBUUFBWUVRQUFBQUNBQUJ3V0FBQUFBQUFBSkJnQUNBQUFBQUFzR0FBZ0FBREFBQUFRQUFBQUFFQUFBQkFFQUFBQWdBQUFGQWdBQUFDQUFBQVVEQUFBQUlBQUFCUVVBQUFBZ0FBQUZCZ0FBQUNBQUFBVUlBQUFBSUFBQUJRa0FBQUFnQUFBRkN3QUFBQ0FBQUFVTUFBQUFBQUFBQmc4QUFBQWdBQUVGRWdBQUFDQUFBUVVVQUFBQUlBQUNCUmdBQUFBZ0FBSUZIQUFBQUNBQUF3VW9BQUFBSUFBRUJUQUFBQUFBQUJBR0FBQUJBQUFBRHdZQWdBQUFBQUFPQmdCQUFBQUFBQTBHQUNBQVFZQVhDNGNDQVFBQkFRVUFBQUFBQUFBRkFBQUFBQUFBQmdROUFBQUFBQUFKQmYwQkFBQUFBQThGL1g4QUFBQUFGUVg5L3g4QUFBQURCUVVBQUFBQUFBY0VmUUFBQUFBQURBWDlEd0FBQUFBU0JmMy9Bd0FBQUJjRi9mOS9BQUFBQlFVZEFBQUFBQUFJQlAwQUFBQUFBQTRGL1Q4QUFBQUFGQVg5L3c4QUFBQUNCUUVBQUFBUUFBY0VmUUFBQUFBQUN3WDlCd0FBQUFBUkJmMy9BUUFBQUJZRi9mOC9BQUFBQkFVTkFBQUFFQUFJQlAwQUFBQUFBQTBGL1I4QUFBQUFFd1g5L3djQUFBQUJCUUVBQUFBUUFBWUVQUUFBQUFBQUNnWDlBd0FBQUFBUUJmMy9BQUFBQUJ3Ri9mLy9Ed0FBR3dYOS8vOEhBQUFhQmYzLy93TUFBQmtGL2YvL0FRQUFHQVg5Ly84QVFaQVpDNFlFQVFBQkFRWUFBQUFBQUFBR0F3QUFBQUFBQUFRRUFBQUFJQUFBQlFVQUFBQUFBQUFGQmdBQUFBQUFBQVVJQUFBQUFBQUFCUWtBQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBQUFBQUJoQUFBQUFBQUFBR0V3QUFBQUFBQUFZV0FBQUFBQUFBQmhrQUFBQUFBQUFHSEFBQUFBQUFBQVlmQUFBQUFBQUFCaUlBQUFBQUFBRUdKUUFBQUFBQUFRWXBBQUFBQUFBQ0JpOEFBQUFBQUFNR093QUFBQUFBQkFaVEFBQUFBQUFIQm9NQUFBQUFBQWtHQXdJQUFCQUFBQVFFQUFBQUFBQUFCQVVBQUFBZ0FBQUZCZ0FBQUFBQUFBVUhBQUFBSUFBQUJRa0FBQUFBQUFBRkNnQUFBQUFBQUFZTUFBQUFBQUFBQmc4QUFBQUFBQUFHRWdBQUFBQUFBQVlWQUFBQUFBQUFCaGdBQUFBQUFBQUdHd0FBQUFBQUFBWWVBQUFBQUFBQUJpRUFBQUFBQUFFR0l3QUFBQUFBQVFZbkFBQUFBQUFDQmlzQUFBQUFBQU1HTXdBQUFBQUFCQVpEQUFBQUFBQUZCbU1BQUFBQUFBZ0dBd0VBQUNBQUFBUUVBQUFBTUFBQUJBUUFBQUFRQUFBRUJRQUFBQ0FBQUFVSEFBQUFJQUFBQlFnQUFBQWdBQUFGQ2dBQUFDQUFBQVVMQUFBQUFBQUFCZzRBQUFBQUFBQUdFUUFBQUFBQUFBWVVBQUFBQUFBQUJoY0FBQUFBQUFBR0dnQUFBQUFBQUFZZEFBQUFBQUFBQmlBQUFBQUFBQkFHQXdBQkFBQUFEd1lEZ0FBQUFBQU9CZ05BQUFBQUFBMEdBeUFBQUFBQURBWURFQUFBQUFBTEJnTUlBQUFBQUFvR0F3UUFRYVFkQzlrQkFRQUFBQU1BQUFBSEFBQUFEd0FBQUI4QUFBQS9BQUFBZndBQUFQOEFBQUQvQVFBQS93TUFBUDhIQUFEL0R3QUEveDhBQVA4L0FBRC9md0FBLy84QUFQLy9BUUQvL3dNQS8vOEhBUC8vRHdELy94OEEvLzgvQVAvL2Z3RC8vLzhBLy8vL0FmLy8vd1AvLy84SC8vLy9ELy8vL3gvLy8vOC8vLy8vZndBQUFBQUJBQUFBQWdBQUFBUUFBQUFBQUFBQUFnQUFBQVFBQUFBSUFBQUFBQUFBQUFFQUFBQUNBQUFBQVFBQUFBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUFnQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QkJnQjhMQTRBUkFRPT0iO3ZhciB3cj1uZXcgdGUsRHI9ITE7YXN5bmMgZnVuY3Rpb24gU28oQSxlLHQpe2xldCBpPSJ1bmtub3duIjt0eXBlb2YgQSE9InN0cmluZyI/aT1BLmhyZWY6QS5zdGFydHNXaXRoKCJodHRwIik/aT1BOmk9dHlwZW9mIGU8InUiP2Ake2V9LyR7QX1gOkEsaS5lbmRzV2l0aCgiLmpzIikmJihpPWkuc3Vic3RyaW5nKDAsaS5sZW5ndGgtMykpLGkuZW5kc1dpdGgoIi53YXNtIikmJihpPWkuc3Vic3RyaW5nKDAsaS5sZW5ndGgtNSkpLGkuZW5kc1dpdGgoIi53YXNtLnpzdCIpJiYoaT1pLnN1YnN0cmluZygwLGkubGVuZ3RoLTkpKTtsZXQgbz1gJHtpfS53YXNtYCxyPWF3YWl0IEJBLmdldChgJHtvfS56c3RgLHtyZXNwb25zZVR5cGU6ImFycmF5YnVmZmVyIixwYXJhbXM6dH0pO0RyfHwoYXdhaXQgd3IuaW5pdCgpLERyPSEwKTtsZXQgQz13ci5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoci5kYXRhKSkuYnVmZmVyO3JldHVybihhd2FpdCBpbXBvcnQoYCR7aX0uanNgKSkuZGVmYXVsdCh7d2FzbUJpbmFyeTpDfSl9dmFyIFNyPVNvO3ZhciBScj1hc3luYygpPT5XZWJBc3NlbWJseS52YWxpZGF0ZShuZXcgVWludDhBcnJheShbMCw5NywxMTUsMTA5LDEsMCwwLDAsMSw1LDEsOTYsMCwxLDEyMywzLDIsMSwwLDEwLDEwLDEsOCwwLDY1LDAsMjUzLDE1LDI1Myw5OCwxMV0pKTt2YXIgVXI9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI9PSJmdW5jdGlvbiIsRnI9bmV3IFRleHRFbmNvZGVyLGtyPW5ldyBUZXh0RGVjb2RlcigidXRmLTgiKTtmdW5jdGlvbiBSbyhBLGUpe2xldCB0PXtmbGFnczoiciIsZW5jb2Rpbmc6ImJpbmFyeSJ9LGk9QS5mc19vcGVuKGUsdC5mbGFncykscj1BLmZzX3N0YXQoZSkuc2l6ZSxhPW51bGw7VXI/YT1uZXcgU2hhcmVkQXJyYXlCdWZmZXIocik6YT1uZXcgQXJyYXlCdWZmZXIocik7bGV0IEM9bmV3IFVpbnQ4QXJyYXkoYSk7cmV0dXJuIEEuZnNfcmVhZChpLEMsMCxyLDApLEEuZnNfY2xvc2UoaSksQ31mdW5jdGlvbiBicihBLGUsdCl7bGV0IGk9bnVsbDtVcj9pPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcih0KTppPW5ldyBBcnJheUJ1ZmZlcih0KTtsZXQgbz1uZXcgVWludDhBcnJheShpKSxyPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixlLHQpO3JldHVybiBvLnNldChyKSxvfWZ1bmN0aW9uIEYoQSxlLHQsaSl7bGV0IG89MDtyZXR1cm4gZSE9PW51bGwmJihvPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2FycmF5X2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsaSxlLmJ1ZmZlci5ieXRlTGVuZ3RoXSksQS5IRUFQVTguc2V0KG5ldyBVaW50OEFycmF5KGUuYnVmZmVyKSxvKSksb31mdW5jdGlvbiBaKEEsZSx0KXtsZXQgaT1KU09OLnN0cmluZ2lmeShlKSxvPUEubGVuZ3RoQnl0ZXNVVEY4KGkpKzEscj1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9qc29uX2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsb10pO0Euc3RyaW5nVG9VVEY4KGkscixvKX1mdW5jdGlvbiBVKEEsZSx0LGkpe2xldCBvPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUsdF0pLHI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSx0XSksYT1icihBLG8scik7cmV0dXJuIHgoaSxhLmJ1ZmZlcil9ZnVuY3Rpb24gTkEoQSxlKXtsZXQgdD1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfanNvbl9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciJdLFswLGVdKSxpPUEuVVRGOFRvU3RyaW5nKHQpO3JldHVybiBKU09OLnBhcnNlKGkpfWZ1bmN0aW9uIEZvKEEsZSx0LGkpe2khPW51bGwmJmkubGVuZ3RoPjAmJmkuZm9yRWFjaChmdW5jdGlvbihCLG4pe3N3aXRjaChCLnR5cGUpe2Nhc2UgUS5UZXh0U3RyZWFtOntsZXQgZz1Gci5lbmNvZGUoQi5kYXRhLmRhdGEpLGw9RihBLGcsbiwwKSxzPXtzaXplOmcuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07WihBLHMsbik7YnJlYWt9Y2FzZSBRLkpzb25Db21wYXRpYmxlOntsZXQgZz1Gci5lbmNvZGUoSlNPTi5zdHJpbmdpZnkoQi5kYXRhKSksbD1GKEEsZyxuLDApLHM9e3NpemU6Zy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTtaKEEscyxuKTticmVha31jYXNlIFEuQmluYXJ5U3RyZWFtOntsZXQgZz1CLmRhdGEuZGF0YSxsPUYoQSxnLG4sMCkscz17c2l6ZTpnLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O1ooQSxzLG4pO2JyZWFrfWNhc2UgUS5UZXh0RmlsZTp7QS5mc193cml0ZUZpbGUoQi5kYXRhLnBhdGgsQi5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgUS5CaW5hcnlGaWxlOntBLmZzX3dyaXRlRmlsZShCLmRhdGEucGF0aCxCLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBRLkltYWdlOntsZXQgZz1CLmRhdGEsbD1GKEEsZy5kYXRhLG4sMCkscz1GKEEsZy5kaXJlY3Rpb24sbiwxKSxJPXR5cGVvZiBnLm1ldGFkYXRhPy5lbnRyaWVzPCJ1Ij9BcnJheS5mcm9tKGcubWV0YWRhdGEuZW50cmllcygpKTpbXSxmPXtpbWFnZVR5cGU6Zy5pbWFnZVR5cGUsbmFtZTpnLm5hbWUsb3JpZ2luOmcub3JpZ2luLHNwYWNpbmc6Zy5zcGFjaW5nLGRpcmVjdGlvbjpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3N9YCxzaXplOmcuc2l6ZSxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG1ldGFkYXRhOkl9O1ooQSxmLG4pO2JyZWFrfWNhc2UgUS5NZXNoOntsZXQgZz1CLmRhdGEsbD1GKEEsZy5wb2ludHMsbiwwKSxzPUYoQSxnLmNlbGxzLG4sMSksST1GKEEsZy5wb2ludERhdGEsbiwyKSxmPUYoQSxnLmNlbGxEYXRhLG4sMyksdT17bWVzaFR5cGU6Zy5tZXNoVHlwZSxuYW1lOmcubmFtZSxudW1iZXJPZlBvaW50czpnLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxudW1iZXJPZkNlbGxzOmcubnVtYmVyT2ZDZWxscyxjZWxsczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3N9YCxjZWxsQnVmZmVyU2l6ZTpnLmNlbGxCdWZmZXJTaXplLG51bWJlck9mUG9pbnRQaXhlbHM6Zy5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0l9YCxudW1iZXJPZkNlbGxQaXhlbHM6Zy5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWB9O1ooQSx1LG4pO2JyZWFrfWNhc2UgUS5Qb2ludFNldDp7bGV0IGc9Qi5kYXRhLGw9RihBLGcucG9pbnRzLG4sMCkscz1GKEEsZy5wb2ludERhdGEsbiwxKSxJPXtwb2ludFNldFR5cGU6Zy5wb2ludFNldFR5cGUsbmFtZTpnLm5hbWUsbnVtYmVyT2ZQb2ludHM6Zy5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbnVtYmVyT2ZQb2ludFBpeGVsczpnLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7c31gfTtaKEEsSSxuKTticmVha31jYXNlIFEuVHJhbnNmb3JtTGlzdDp7bGV0IGc9Qi5kYXRhLGw9W10scz0wO2cuZm9yRWFjaChJPT57bGV0IGY9IiIsdT0iIjtJLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYoZj1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0YoQSxJLmZpeGVkUGFyYW1ldGVycyxuLHMpfWAscys9MSx1PWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7RihBLEkucGFyYW1ldGVycyxuLHMpfWAscys9MSk7bGV0IHc9e3RyYW5zZm9ybVR5cGU6SS50cmFuc2Zvcm1UeXBlLG51bWJlck9mRml4ZWRQYXJhbWV0ZXJzOkkubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnMsbnVtYmVyT2ZQYXJhbWV0ZXJzOkkubnVtYmVyT2ZQYXJhbWV0ZXJzLG5hbWU6SS5uYW1lLGlucHV0U3BhY2VOYW1lOkkuaW5wdXRTcGFjZU5hbWUsb3V0cHV0U3BhY2VOYW1lOkkub3V0cHV0U3BhY2VOYW1lLHBhcmFtZXRlcnM6dSxmaXhlZFBhcmFtZXRlcnM6Zn07bC5wdXNoKHcpfSksWihBLGwsbik7YnJlYWt9Y2FzZSBRLlBvbHlEYXRhOntsZXQgZz1CLmRhdGEsbD1GKEEsZy5wb2ludHMsbiwwKSxzPUYoQSxnLnZlcnRpY2VzLG4sMSksST1GKEEsZy5saW5lcyxuLDIpLGY9RihBLGcucG9seWdvbnMsbiwzKSx1PUYoQSxnLnRyaWFuZ2xlU3RyaXBzLG4sNCksdz1GKEEsZy5wb2ludERhdGEsbiw1KSxiPUYoQSxnLnBvaW50RGF0YSxuLDYpLFM9e3BvbHlEYXRhVHlwZTpnLnBvbHlEYXRhVHlwZSxuYW1lOmcubmFtZSxudW1iZXJPZlBvaW50czpnLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCx2ZXJ0aWNlc0J1ZmZlclNpemU6Zy52ZXJ0aWNlc0J1ZmZlclNpemUsdmVydGljZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtzfWAsbGluZXNCdWZmZXJTaXplOmcubGluZXNCdWZmZXJTaXplLGxpbmVzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7SX1gLHBvbHlnb25zQnVmZmVyU2l6ZTpnLnBvbHlnb25zQnVmZmVyU2l6ZSxwb2x5Z29uczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YCx0cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU6Zy50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemUsdHJpYW5nbGVTdHJpcHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt1fWAsbnVtYmVyT2ZQb2ludFBpeGVsczpnLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7d31gLG51bWJlck9mQ2VsbFBpeGVsczpnLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2J9YH07WihBLFMsbik7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgaW5wdXQgSW50ZXJmYWNlVHlwZSIpfX0pLEEucmVzZXRNb2R1bGVTdGRvdXQoKSxBLnJlc2V0TW9kdWxlU3RkZXJyKCk7bGV0IG89QS5zdGFja1NhdmUoKSxyPTA7dHJ5e3I9QS5jYWxsTWFpbihlLnNsaWNlKCkpfWNhdGNoKEIpe3Rocm93IHR5cGVvZiBCPT0ibnVtYmVyIiYmKGNvbnNvbGUubG9nKCJFeGNlcHRpb24gd2hpbGUgcnVubmluZyBwaXBlbGluZToiKSxjb25zb2xlLmxvZygic3Rkb3V0OiIsQS5nZXRNb2R1bGVTdGRvdXQoKSksY29uc29sZS5lcnJvcigic3RkZXJyOiIsQS5nZXRNb2R1bGVTdGRlcnIoKSksdHlwZW9mIEEuZ2V0RXhjZXB0aW9uTWVzc2FnZTwidSI/Y29uc29sZS5lcnJvcigiZXhjZXB0aW9uOiIsQS5nZXRFeGNlcHRpb25NZXNzYWdlKEIpKTpjb25zb2xlLmVycm9yKCJCdWlsZCBtb2R1bGUgaW4gRGVidWcgbW9kZSBmb3IgZXhjZXB0aW9uIG1lc3NhZ2UgaW5mb3JtYXRpb24uIikpLEJ9ZmluYWxseXtBLnN0YWNrUmVzdG9yZShvKX1sZXQgYT1BLmdldE1vZHVsZVN0ZG91dCgpLEM9QS5nZXRNb2R1bGVTdGRlcnIoKSxwPVtdO3JldHVybiB0IT1udWxsJiZ0Lmxlbmd0aD4wJiZyPT09MCYmdC5mb3JFYWNoKGZ1bmN0aW9uKEIsbil7bGV0IGc9bnVsbDtzd2l0Y2goQi50eXBlKXtjYXNlIFEuVGV4dFN0cmVhbTp7bGV0IHM9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbiwwXSksST1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxuLDBdKSxmPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixzLEkpO2c9e2RhdGE6a3IuZGVjb2RlKGYpfTticmVha31jYXNlIFEuSnNvbkNvbXBhdGlibGU6e2xldCBzPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG4sMF0pLEk9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbiwwXSksZj1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIscyxJKTtnPUpTT04ucGFyc2Uoa3IuZGVjb2RlKGYpKTticmVha31jYXNlIFEuQmluYXJ5U3RyZWFtOntsZXQgcz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxuLDBdKSxJPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG4sMF0pO2c9e2RhdGE6YnIoQSxzLEkpfTticmVha31jYXNlIFEuVGV4dEZpbGU6e2c9e3BhdGg6Qi5kYXRhLnBhdGgsZGF0YTpBLmZzX3JlYWRGaWxlKEIuZGF0YS5wYXRoLHtlbmNvZGluZzoidXRmOCJ9KX07YnJlYWt9Y2FzZSBRLkJpbmFyeUZpbGU6e2c9e3BhdGg6Qi5kYXRhLnBhdGgsZGF0YTpSbyhBLEIuZGF0YS5wYXRoKX07YnJlYWt9Y2FzZSBRLkltYWdlOntsZXQgcz1OQShBLG4pO3MuZGF0YT1VKEEsbiwwLHMuaW1hZ2VUeXBlLmNvbXBvbmVudFR5cGUpLHMuZGlyZWN0aW9uPVUoQSxuLDEsJC5GbG9hdDY0KSxzLm1ldGFkYXRhPW5ldyBNYXAocy5tZXRhZGF0YSksZz1zO2JyZWFrfWNhc2UgUS5NZXNoOntsZXQgcz1OQShBLG4pO3MubnVtYmVyT2ZQb2ludHM+MD9zLnBvaW50cz1VKEEsbiwwLHMubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTpzLnBvaW50cz14KHMubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSkscy5udW1iZXJPZkNlbGxzPjA/cy5jZWxscz1VKEEsbiwxLHMubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUpOnMuY2VsbHM9eChzLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSkscy5udW1iZXJPZlBvaW50UGl4ZWxzPjA/cy5wb2ludERhdGE9VShBLG4sMixzLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpzLnBvaW50RGF0YT14KHMubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxzLm51bWJlck9mQ2VsbFBpeGVscz4wP3MuY2VsbERhdGE9VShBLG4sMyxzLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOnMuY2VsbERhdGE9eChzLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxnPXM7YnJlYWt9Y2FzZSBRLlBvaW50U2V0OntsZXQgcz1OQShBLG4pO3MubnVtYmVyT2ZQb2ludHM+MD9zLnBvaW50cz1VKEEsbiwwLHMucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6cy5wb2ludHM9eChzLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxzLm51bWJlck9mUG9pbnRQaXhlbHM+MD9zLnBvaW50RGF0YT1VKEEsbiwxLHMucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpzLnBvaW50RGF0YT14KHMucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksZz1zO2JyZWFrfWNhc2UgUS5UcmFuc2Zvcm1MaXN0OntsZXQgcz1OQShBLG4pLEk9MDtzLmZvckVhY2goKGYsdSk9PntmLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYoZi5udW1iZXJPZkZpeGVkUGFyYW1ldGVycz4wJiYoc1t1XS5maXhlZFBhcmFtZXRlcnM9VShBLG4sSSwkLkZsb2F0NjQpKSxJKz0xLGYubnVtYmVyT2ZQYXJhbWV0ZXJzPjAmJihzW3VdLnBhcmFtZXRlcnM9VShBLG4sSSxmLnRyYW5zZm9ybVR5cGUucGFyYW1ldGVyc1ZhbHVlVHlwZSkpLEkrPTEpfSksZz1zO2JyZWFrfWNhc2UgUS5Qb2x5RGF0YTp7bGV0IHM9TkEoQSxuKTtzLm51bWJlck9mUG9pbnRzPjA/cy5wb2ludHM9VShBLG4sMCwkLkZsb2F0MzIpOnMucG9pbnRzPW5ldyBGbG9hdDMyQXJyYXkscy52ZXJ0aWNlc0J1ZmZlclNpemU+MD9zLnZlcnRpY2VzPVUoQSxuLDEsRy5VSW50MzIpOnMudmVydGljZXM9bmV3IFVpbnQzMkFycmF5LHMubGluZXNCdWZmZXJTaXplPjA/cy5saW5lcz1VKEEsbiwyLEcuVUludDMyKTpzLmxpbmVzPW5ldyBVaW50MzJBcnJheSxzLnBvbHlnb25zQnVmZmVyU2l6ZT4wP3MucG9seWdvbnM9VShBLG4sMyxHLlVJbnQzMik6cy5wb2x5Z29ucz1uZXcgVWludDMyQXJyYXkscy50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU+MD9zLnRyaWFuZ2xlU3RyaXBzPVUoQSxuLDQsRy5VSW50MzIpOnMudHJpYW5nbGVTdHJpcHM9bmV3IFVpbnQzMkFycmF5LHMubnVtYmVyT2ZQb2ludFBpeGVscz4wP3MucG9pbnREYXRhPVUoQSxuLDUscy5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOnMucG9pbnREYXRhPXgocy5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxzLm51bWJlck9mQ2VsbFBpeGVscz4wP3MuY2VsbERhdGE9VShBLG4sNixzLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpzLmNlbGxEYXRhPXgocy5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGc9czticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBvdXRwdXQgSW50ZXJmYWNlVHlwZSIpfWxldCBsPXt0eXBlOkIudHlwZSxkYXRhOmd9O3AucHVzaChsKX0pLHtyZXR1cm5WYWx1ZTpyLHN0ZG91dDphLHN0ZGVycjpDLG91dHB1dHM6cH19dmFyIE5yPUZvO3ZhciBrbz10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcjwidSI7ZnVuY3Rpb24gVW8oQSxlKXtpZihBPT1udWxsKXJldHVybltdO2xldCB0PVtdO2ZvcihsZXQgaT0wO2k8QS5sZW5ndGg7aSsrKXtsZXQgbz1ibyhBW2ldLGUpO28hPT1udWxsJiZ0LnB1c2gobyl9cmV0dXJuIHR9ZnVuY3Rpb24gYm8oQSxlKXtpZihBPT1udWxsKXJldHVybiBudWxsO2xldCB0PW51bGw7cmV0dXJuIEEuYnVmZmVyIT09dm9pZCAwP3Q9QS5idWZmZXI6QS5ieXRlTGVuZ3RoIT09dm9pZCAwJiYodD1BKSxrbyYmdCBpbnN0YW5jZW9mIFNoYXJlZEFycmF5QnVmZmVyP251bGw6ZT90OnQuc2xpY2UoMCl9dmFyIEdyPVVvO2Z1bmN0aW9uIE5vKEEpe3JldHVybltBLmRhdGEsQS5kaXJlY3Rpb25dfXZhciBNcj1ObztmdW5jdGlvbiBHbyhBKXtyZXR1cm5bQS5wb2ludHMsQS5wb2ludERhdGEsQS5jZWxscyxBLmNlbGxEYXRhXX12YXIgV3I9R287ZnVuY3Rpb24gTW8oQSl7cmV0dXJuW0EucG9pbnRzLEEudmVydGljZXMsQS5saW5lcyxBLnBvbHlnb25zLEEudHJpYW5nbGVTdHJpcHMsQS5wb2ludERhdGEsQS5jZWxsRGF0YV19dmFyIFByPU1vO3ZhciBXbztmdW5jdGlvbiByZSgpe3JldHVybiBXb312YXIgUG87ZnVuY3Rpb24gT3IoKXtyZXR1cm4gUG99dmFyIE9vO2Z1bmN0aW9uIGllKCl7cmV0dXJuIE9vfXZhciBKZT1uZXcgTWFwO2Z1bmN0aW9uIExvKCl7bGV0IEE9aWUoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT1udWxsKSxBfWZ1bmN0aW9uIExyKCl7bGV0IEE9cmUoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT1uZXcgVVJMKCIvcGlwZWxpbmVzIixkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4pLmhyZWYpLEF9ZnVuY3Rpb24gb2UoKXtsZXQgQT1PcigpO3JldHVybiB0eXBlb2YgQT4idSImJihBPXt9KSxBfWFzeW5jIGZ1bmN0aW9uIEpvKEEsZSx0KXtsZXQgaT1BLG89QTtpZih0eXBlb2YgQSE9InN0cmluZyImJihpPW5ldyBVUkwoQS5ocmVmKSxvPWkuaHJlZiksSmUuaGFzKG8pKXJldHVybiBKZS5nZXQobyk7e2xldCByPWF3YWl0IFNyKEEsZT8udG9TdHJpbmcoKT8/THIoKSx0Pz9vZSgpKTtyZXR1cm4gSmUuc2V0KG8scikscn19YXN5bmMgZnVuY3Rpb24geG8oQSxlLHQsaSxvKXtpZighYXdhaXQgUnIoKSl7bGV0IHU9IldlYkFzc2VtYmx5IFNJTUQgc3VwcG9ydCBpcyByZXF1aXJlZCAtLSBwbGVhc2UgdXBkYXRlIHlvdXIgYnJvd3Nlci4iO3Rocm93IGFsZXJ0KHUpLG5ldyBFcnJvcih1KX1sZXQgcj1vPy53ZWJXb3JrZXI/P251bGw7aWYocj09PSExKXtsZXQgdT1hd2FpdCBKbyhBLnRvU3RyaW5nKCksbz8ucGlwZWxpbmVCYXNlVXJsLG8/LnBpcGVsaW5lUXVlcnlQYXJhbXM/P29lKCkpO3JldHVybiBOcih1LGUsdCxpKX1sZXQgYT1yLEM9bz8ucGlwZWxpbmVXb3JrZXJVcmw/P0xvKCkscD10eXBlb2YgQyE9InN0cmluZyImJnR5cGVvZiBDPy5ocmVmPCJ1Ij9DLmhyZWY6Qyx7d29ya2VyUHJveHk6Qix3b3JrZXI6bn09YXdhaXQgeXIoYSxwLG8/LnBpcGVsaW5lUXVlcnlQYXJhbXM/P29lKCkpO2E9bjtsZXQgZz1bXTtpIT1udWxsJiZpLmxlbmd0aD4wJiZpLmZvckVhY2goZnVuY3Rpb24odSl7aWYodS50eXBlPT09US5CaW5hcnlTdHJlYW0pe2xldCB3PXUuZGF0YS5kYXRhO2cucHVzaCh3KX1lbHNlIGlmKHUudHlwZT09PVEuQmluYXJ5RmlsZSl7bGV0IHc9dS5kYXRhLmRhdGE7Zy5wdXNoKHcpfWVsc2UgaWYodS50eXBlPT09US5JbWFnZSl7bGV0IHc9dS5kYXRhO3cuZGF0YSE9PW51bGwmJmcucHVzaCguLi5Ncih3KSl9ZWxzZSBpZih1LnR5cGU9PT1RLk1lc2gpe2xldCB3PXUuZGF0YTtnLnB1c2goLi4uV3IodykpfWVsc2UgaWYodS50eXBlPT09US5Qb2x5RGF0YSl7bGV0IHc9dS5kYXRhO2cucHVzaCguLi5Qcih3KSl9fSk7bGV0IGw9bz8ucGlwZWxpbmVCYXNlVXJsPz9McigpLHM9dHlwZW9mIGwhPSJzdHJpbmciJiZ0eXBlb2YgbD8uaHJlZjwidSI/bC5ocmVmOmwsST1pIT1udWxsP0NlKGksR3IoZyxvPy5ub0NvcHkpKTpudWxsLGY9YXdhaXQgQi5ydW5QaXBlbGluZShBLnRvU3RyaW5nKCkscyxlLHQsSSxvPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz9vZSgpKTtyZXR1cm57cmV0dXJuVmFsdWU6Zi5yZXR1cm5WYWx1ZSxzdGRvdXQ6Zi5zdGRvdXQsc3RkZXJyOmYuc3RkZXJyLG91dHB1dHM6Zi5vdXRwdXRzLHdlYldvcmtlcjphfX12YXIgbT14bzt2YXIgWW89bnVsbDtmdW5jdGlvbiBKcigpe3JldHVybiBZb312YXIgSG89bmV3IE1hcChbXSksQ0E9SG87dmFyIFRvPSIxLjcuMSIseHI9VG87dmFyIHhlLHFvPWBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL0BpdGstd2FzbS9tZXNoLWlvQCR7eHJ9L2Rpc3QvcGlwZWxpbmVzYDtmdW5jdGlvbiBFQihBKXt4ZT1BfWZ1bmN0aW9uIGQoKXtpZih0eXBlb2YgeGU8InUiKXJldHVybiB4ZTtsZXQgQT1yZSgpO3JldHVybiB0eXBlb2YgQTwidSI/QTpxb312YXIgWWUsS289bnVsbDtmdW5jdGlvbiBZcihBKXtZZT1BfWZ1bmN0aW9uIGMoKXtpZih0eXBlb2YgWWU8InUiKXJldHVybiBZZTtsZXQgQT1pZSgpO3JldHVybiB0eXBlb2YgQTwidSI/QTpLb312YXIgUUE9bnVsbDthc3luYyBmdW5jdGlvbiBIcigpe2xldCBBPWMoKSxlPXR5cGVvZiBBIT0ic3RyaW5nIiYmdHlwZW9mIEE/LmhyZWY8InUiP0EuaHJlZjpBO1FBPWF3YWl0IFVBKGUpfWZ1bmN0aW9uIGRCKEEpe1FBPUF9YXN5bmMgZnVuY3Rpb24geSgpe2lmKFFBIT09bnVsbClyZXR1cm4gUUEudGVybWluYXRlZCYmYXdhaXQgSHIoKSxRQTtsZXQgQT1KcigpO3JldHVybiBBIT09bnVsbD9BOihhd2FpdCBIcigpLFFBKX1hc3luYyBmdW5jdGlvbiBqbyhBLGU9e30pe2xldCB0PVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLk1lc2h9XSxpPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCB1PWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtpPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KHUpfX1sZXQgbz1be3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6aX1dLHI9W10sYT1pLnBhdGg7ci5wdXNoKGEpLHIucHVzaCgiMCIpLHIucHVzaCgiMSIpLHIucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IEI9InZ0ay1wb2x5LWRhdGEtcmVhZC1tZXNoIixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpJWzBdPy5kYXRhLG1lc2g6SVsxXT8uZGF0YX19dmFyIEhlPWpvO2FzeW5jIGZ1bmN0aW9uIHZvKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuTWVzaCxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpO2xldCBwPWU7ci5wdXNoKHApLHIucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmci5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpLHQuYmluYXJ5RmlsZVR5cGUmJnQuYmluYXJ5RmlsZVR5cGUmJnIucHVzaCgiLS1iaW5hcnktZmlsZS10eXBlIik7bGV0IEI9InZ0ay1wb2x5LWRhdGEtd3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6SVsxXT8uZGF0YX19dmFyIFRlPXZvO2FzeW5jIGZ1bmN0aW9uIFpvKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuTWVzaH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0ib2JqLXJlYWQtbWVzaCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6SVswXT8uZGF0YSxtZXNoOklbMV0/LmRhdGF9fXZhciBxZT1abzthc3luYyBmdW5jdGlvbiBWbyhBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLk1lc2gsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBCPSJvYmotd3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6SVsxXT8uZGF0YX19dmFyIEtlPVZvO2FzeW5jIGZ1bmN0aW9uIHpvKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuTWVzaH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0ic3RsLXJlYWQtbWVzaCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6SVswXT8uZGF0YSxtZXNoOklbMV0/LmRhdGF9fXZhciBqZT16bzthc3luYyBmdW5jdGlvbiBYbyhBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLk1lc2gsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBCPSJzdGwtd3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6SVsxXT8uZGF0YX19dmFyIHZlPVhvO2FzeW5jIGZ1bmN0aW9uIF9vKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuTWVzaH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0ib2ZmLXJlYWQtbWVzaCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6SVswXT8uZGF0YSxtZXNoOklbMV0/LmRhdGF9fXZhciBaZT1fbzthc3luYyBmdW5jdGlvbiAkbyhBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLk1lc2gsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBCPSJvZmYtd3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6SVsxXT8uZGF0YX19dmFyIFZlPSRvO2FzeW5jIGZ1bmN0aW9uIEFuKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuTWVzaH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0ibXozLXJlYWQtbWVzaCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6SVswXT8uZGF0YSxtZXNoOklbMV0/LmRhdGF9fXZhciB6ZT1Bbjthc3luYyBmdW5jdGlvbiBlbihBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLk1lc2gsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBCPSJtejMtd3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6SVsxXT8uZGF0YX19dmFyIFhlPWVuO2FzeW5jIGZ1bmN0aW9uIHRuKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuTWVzaH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0id2FzbS1yZWFkLW1lc2giLG49ZT8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpJfT1hd2FpdCBtKEIscix0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTplPy5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRSZWFkOklbMF0/LmRhdGEsbWVzaDpJWzFdPy5kYXRhfX12YXIgX2U9dG47YXN5bmMgZnVuY3Rpb24gcm4oQSxlLHQ9e30pe2xldCBpPVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6US5NZXNoLGRhdGE6QX1dLHI9W107ci5wdXNoKCIwIiksci5wdXNoKCIwIik7bGV0IHA9ZTtyLnB1c2gocCksci5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZyLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIiksdC5iaW5hcnlGaWxlVHlwZSYmdC5iaW5hcnlGaWxlVHlwZSYmci5wdXNoKCItLWJpbmFyeS1maWxlLXR5cGUiKTtsZXQgQj0id2FzbS13cml0ZS1tZXNoIixuPXQ/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsaSxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6dD8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6SVswXT8uZGF0YSxzZXJpYWxpemVkTWVzaDpJWzFdPy5kYXRhfX12YXIgJGU9cm47YXN5bmMgZnVuY3Rpb24gb24oQSxlPXt9KXtsZXQgdD1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5NZXNofV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgdT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheSh1KX19bGV0IG89W3t0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOml9XSxyPVtdLGE9aS5wYXRoO3IucHVzaChhKSxyLnB1c2goIjAiKSxyLnB1c2goIjEiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJ3YXNtLXpzdGQtcmVhZC1tZXNoIixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpJWzBdPy5kYXRhLG1lc2g6SVsxXT8uZGF0YX19dmFyIEF0PW9uO2FzeW5jIGZ1bmN0aW9uIG5uKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuTWVzaCxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpO2xldCBwPWU7ci5wdXNoKHApLHIucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmci5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpLHQuYmluYXJ5RmlsZVR5cGUmJnQuYmluYXJ5RmlsZVR5cGUmJnIucHVzaCgiLS1iaW5hcnktZmlsZS10eXBlIik7bGV0IEI9Indhc20tenN0ZC13cml0ZS1tZXNoIixuPXQ/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsaSxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6dD8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6SVswXT8uZGF0YSxzZXJpYWxpemVkTWVzaDpJWzFdPy5kYXRhfX12YXIgZXQ9bm47YXN5bmMgZnVuY3Rpb24gYW4oQSxlPXt9KXtsZXQgdD1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5NZXNofV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgdT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheSh1KX19bGV0IG89W3t0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOml9XSxyPVtdLGE9aS5wYXRoO3IucHVzaChhKSxyLnB1c2goIjAiKSxyLnB1c2goIjEiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJzd2MtcmVhZC1tZXNoIixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpJWzBdPy5kYXRhLG1lc2g6SVsxXT8uZGF0YX19dmFyIHR0PWFuO2FzeW5jIGZ1bmN0aW9uIHNuKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuTWVzaCxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpO2xldCBwPWU7ci5wdXNoKHApLHIucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmci5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpLHQuYmluYXJ5RmlsZVR5cGUmJnQuYmluYXJ5RmlsZVR5cGUmJnIucHVzaCgiLS1iaW5hcnktZmlsZS10eXBlIik7bGV0IEI9InN3Yy13cml0ZS1tZXNoIixuPXQ/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsaSxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6dD8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6SVswXT8uZGF0YSxzZXJpYWxpemVkTWVzaDpJWzFdPy5kYXRhfX12YXIgcnQ9c247YXN5bmMgZnVuY3Rpb24gSW4oQSxlPXt9KXtsZXQgdD1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5NZXNofV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgdT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheSh1KX19bGV0IG89W3t0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOml9XSxyPVtdLGE9aS5wYXRoO3IucHVzaChhKSxyLnB1c2goIjAiKSxyLnB1c2goIjEiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJieXUtcmVhZC1tZXNoIixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpJWzBdPy5kYXRhLG1lc2g6SVsxXT8uZGF0YX19dmFyIGl0PUluO2FzeW5jIGZ1bmN0aW9uIGduKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuTWVzaCxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpO2xldCBwPWU7ci5wdXNoKHApLHIucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmci5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpLHQuYmluYXJ5RmlsZVR5cGUmJnQuYmluYXJ5RmlsZVR5cGUmJnIucHVzaCgiLS1iaW5hcnktZmlsZS10eXBlIik7bGV0IEI9ImJ5dS13cml0ZS1tZXNoIixuPXQ/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsaSxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6dD8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6SVswXT8uZGF0YSxzZXJpYWxpemVkTWVzaDpJWzFdPy5kYXRhfX12YXIgb3Q9Z247YXN5bmMgZnVuY3Rpb24gQm4oQSxlPXt9KXtsZXQgdD1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5NZXNofV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgdT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheSh1KX19bGV0IG89W3t0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOml9XSxyPVtdLGE9aS5wYXRoO3IucHVzaChhKSxyLnB1c2goIjAiKSxyLnB1c2goIjEiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJmcmVlLXN1cmZlci1hc2NpaS1yZWFkLW1lc2giLG49ZT8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpJfT1hd2FpdCBtKEIscix0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTplPy5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRSZWFkOklbMF0/LmRhdGEsbWVzaDpJWzFdPy5kYXRhfX12YXIgbnQ9Qm47YXN5bmMgZnVuY3Rpb24gQ24oQSxlLHQ9e30pe2xldCBpPVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6US5NZXNoLGRhdGE6QX1dLHI9W107ci5wdXNoKCIwIiksci5wdXNoKCIwIik7bGV0IHA9ZTtyLnB1c2gocCksci5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZyLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIiksdC5iaW5hcnlGaWxlVHlwZSYmdC5iaW5hcnlGaWxlVHlwZSYmci5wdXNoKCItLWJpbmFyeS1maWxlLXR5cGUiKTtsZXQgQj0iZnJlZS1zdXJmZXItYXNjaWktd3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6SVsxXT8uZGF0YX19dmFyIGF0PUNuO2FzeW5jIGZ1bmN0aW9uIFFuKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuTWVzaH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0iZnJlZS1zdXJmZXItYmluYXJ5LXJlYWQtbWVzaCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6SVswXT8uZGF0YSxtZXNoOklbMV0/LmRhdGF9fXZhciBzdD1Rbjthc3luYyBmdW5jdGlvbiBFbihBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLk1lc2gsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBCPSJmcmVlLXN1cmZlci1iaW5hcnktd3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6SVsxXT8uZGF0YX19dmFyIEl0PUVuO3ZhciBsbj1uZXcgTWFwKFtbInZ0ayIsW0hlLFRlXV0sWyJvYmoiLFtxZSxLZV1dLFsic3RsIixbamUsdmVdXSxbIm9mZiIsW1plLFZlXV0sWyJtejMiLFt6ZSxYZV1dLFsid2FzbSIsW19lLCRlXV0sWyJ3YXNtWnN0ZCIsW0F0LGV0XV0sWyJzd2MiLFt0dCxydF1dLFsiYnl1IixbaXQsb3RdXSxbImZyZWVTdXJmZXJBc2NpaSIsW250LGF0XV0sWyJmcmVlU3VyZmVyQmluYXJ5Iixbc3QsSXRdXV0pLEVBPWxuO2FzeW5jIGZ1bmN0aW9uIHBuKEEsZT17fSl7bGV0IHQ9QS50eXBlPz8iIixpPUEubmFtZT8/QS5wYXRoPz8iZmlsZU5hbWUiLG89VChpKS50b0xvd2VyQ2FzZSgpLHI9ZT8ud2ViV29ya2VyLGE9QTtpZihBIGluc3RhbmNlb2YgQmxvYil7bGV0IHM9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2E9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkocyl9fWxldCBDPW51bGw7aWYodCYmQ0EuaGFzKHQpKUM9Q0EuZ2V0KHQpO2Vsc2UgaWYoWC5oYXMobykpQz1YLmdldChvKTtlbHNlIGZvcihsZXQgcyBvZiBFQS52YWx1ZXMoKSlpZihzWzBdIT09bnVsbCl7bGV0e3dlYldvcmtlcjpJLGNvdWxkUmVhZDpmLG1lc2g6dX09YXdhaXQgc1swXSh7cGF0aDphLnBhdGgsZGF0YTphLmRhdGEuc2xpY2UoKX0se2luZm9ybWF0aW9uT25seTplLmluZm9ybWF0aW9uT25seSx3ZWJXb3JrZXI6cixub0NvcHk6ZT8ubm9Db3B5fSk7aWYocj1JLGYpcmV0dXJue3dlYldvcmtlcjpyLG1lc2g6dX19aWYoIUMpdGhyb3cgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIElPIGZvcjogIitpKTtsZXQgQj1FQS5nZXQoQylbMF0se3dlYldvcmtlcjpuLGNvdWxkUmVhZDpnLG1lc2g6bH09YXdhaXQgQihhLHtpbmZvcm1hdGlvbk9ubHk6ZS5pbmZvcm1hdGlvbk9ubHksd2ViV29ya2VyOnIsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKHI9biwhZyl0aHJvdyBFcnJvcigiQ291bGQgbm90IHJlYWQ6ICIraSk7cmV0dXJue3dlYldvcmtlcjpyLG1lc2g6bH19dmFyIHVuPXBuO2FzeW5jIGZ1bmN0aW9uIGZuKEEsZSx0PXt9KXtsZXQgaT1BLG89dC5taW1lVHlwZSxyPVQoZSkudG9Mb3dlckNhc2UoKSxhPXQud2ViV29ya2VyLEM9bnVsbDtpZih0eXBlb2YgbzwidSImJkNBLmhhcyhvKSlDPUNBLmdldChvKTtlbHNlIGlmKFguaGFzKHIpKUM9WC5nZXQocik7ZWxzZSBmb3IobGV0IEkgb2YgRUEudmFsdWVzKCkpaWYoSVsxXSE9PW51bGwpe2xldHt3ZWJXb3JrZXI6Zixjb3VsZFdyaXRlOnUsc2VyaWFsaXplZE1lc2g6d309YXdhaXQgSVsxXShpLGUsdCk7aWYoYT1mLHUpcmV0dXJue3dlYldvcmtlcjphLHNlcmlhbGl6ZWRNZXNoOnd9fWlmKCFDKXRocm93IEVycm9yKCJDb3VsZCBub3QgZmluZCBJTyBmb3I6ICIrZSk7bGV0IEI9RUEuZ2V0KEMpWzFdLHt3ZWJXb3JrZXI6bixjb3VsZFdyaXRlOmcsc2VyaWFsaXplZE1lc2g6bH09YXdhaXQgQihpLGUsdCk7aWYoYT1uLCFnKXRocm93IEVycm9yKCJDb3VsZCBub3Qgd3JpdGU6ICIrZSk7cmV0dXJue3dlYldvcmtlcjphLHNlcmlhbGl6ZWRNZXNoOmx9fXZhciBjbj1mbjt2YXIgbW49bmV3IE1hcChbXSksbEE9bW47YXN5bmMgZnVuY3Rpb24gZG4oQSxlPXt9KXtsZXQgdD1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5Qb2ludFNldH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0idnRrLXBvbHktZGF0YS1yZWFkLXBvaW50LXNldCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6SVswXT8uZGF0YSxwb2ludFNldDpJWzFdPy5kYXRhfX12YXIgZ3Q9ZG47YXN5bmMgZnVuY3Rpb24geW4oQSxlLHQ9e30pe2xldCBpPVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6US5Qb2ludFNldCxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpO2xldCBwPWU7ci5wdXNoKHApLHIucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmci5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpLHQuYmluYXJ5RmlsZVR5cGUmJnQuYmluYXJ5RmlsZVR5cGUmJnIucHVzaCgiLS1iaW5hcnktZmlsZS10eXBlIik7bGV0IEI9InZ0ay1wb2x5LWRhdGEtd3JpdGUtcG9pbnQtc2V0IixuPXQ/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsaSxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6dD8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6SVswXT8uZGF0YSxzZXJpYWxpemVkUG9pbnRTZXQ6SVsxXT8uZGF0YX19dmFyIEJ0PXluO2FzeW5jIGZ1bmN0aW9uIGhuKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuUG9pbnRTZXR9XSxpPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCB1PWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtpPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KHUpfX1sZXQgbz1be3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6aX1dLHI9W10sYT1pLnBhdGg7ci5wdXNoKGEpLHIucHVzaCgiMCIpLHIucHVzaCgiMSIpLHIucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IEI9Im16My1yZWFkLXBvaW50LXNldCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6SVswXT8uZGF0YSxwb2ludFNldDpJWzFdPy5kYXRhfX12YXIgQ3Q9aG47YXN5bmMgZnVuY3Rpb24gd24oQSxlLHQ9e30pe2xldCBpPVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6US5Qb2ludFNldCxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpO2xldCBwPWU7ci5wdXNoKHApLHIucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmci5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpLHQuYmluYXJ5RmlsZVR5cGUmJnQuYmluYXJ5RmlsZVR5cGUmJnIucHVzaCgiLS1iaW5hcnktZmlsZS10eXBlIik7bGV0IEI9Im16My13cml0ZS1wb2ludC1zZXQiLG49dD8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpJfT1hd2FpdCBtKEIscixpLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTp0Py5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRXcml0ZTpJWzBdPy5kYXRhLHNlcmlhbGl6ZWRQb2ludFNldDpJWzFdPy5kYXRhfX12YXIgUXQ9d247YXN5bmMgZnVuY3Rpb24gRG4oQSxlPXt9KXtsZXQgdD1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5Qb2ludFNldH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0ib2JqLXJlYWQtcG9pbnQtc2V0IixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpJWzBdPy5kYXRhLHBvaW50U2V0OklbMV0/LmRhdGF9fXZhciBFdD1Ebjthc3luYyBmdW5jdGlvbiBTbihBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLlBvaW50U2V0LGRhdGE6QX1dLHI9W107ci5wdXNoKCIwIiksci5wdXNoKCIwIik7bGV0IHA9ZTtyLnB1c2gocCksci5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZyLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIiksdC5iaW5hcnlGaWxlVHlwZSYmdC5iaW5hcnlGaWxlVHlwZSYmci5wdXNoKCItLWJpbmFyeS1maWxlLXR5cGUiKTtsZXQgQj0ib2JqLXdyaXRlLXBvaW50LXNldCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZFBvaW50U2V0OklbMV0/LmRhdGF9fXZhciBsdD1Tbjthc3luYyBmdW5jdGlvbiBSbihBLGU9e30pe2xldCB0PVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLlBvaW50U2V0fV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgdT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheSh1KX19bGV0IG89W3t0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOml9XSxyPVtdLGE9aS5wYXRoO3IucHVzaChhKSxyLnB1c2goIjAiKSxyLnB1c2goIjEiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJvZmYtcmVhZC1wb2ludC1zZXQiLG49ZT8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpJfT1hd2FpdCBtKEIscix0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTplPy5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRSZWFkOklbMF0/LmRhdGEscG9pbnRTZXQ6SVsxXT8uZGF0YX19dmFyIHB0PVJuO2FzeW5jIGZ1bmN0aW9uIEZuKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuUG9pbnRTZXQsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBCPSJvZmYtd3JpdGUtcG9pbnQtc2V0IixuPXQ/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsaSxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6dD8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6SVswXT8uZGF0YSxzZXJpYWxpemVkUG9pbnRTZXQ6SVsxXT8uZGF0YX19dmFyIHV0PUZuO2FzeW5jIGZ1bmN0aW9uIGtuKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuUG9pbnRTZXR9XSxpPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCB1PWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtpPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KHUpfX1sZXQgbz1be3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6aX1dLHI9W10sYT1pLnBhdGg7ci5wdXNoKGEpLHIucHVzaCgiMCIpLHIucHVzaCgiMSIpLHIucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IEI9Indhc20tcmVhZC1wb2ludC1zZXQiLG49ZT8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpJfT1hd2FpdCBtKEIscix0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTplPy5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRSZWFkOklbMF0/LmRhdGEscG9pbnRTZXQ6SVsxXT8uZGF0YX19dmFyIGZ0PWtuO2FzeW5jIGZ1bmN0aW9uIFVuKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuUG9pbnRTZXQsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBCPSJ3YXNtLXdyaXRlLXBvaW50LXNldCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZFBvaW50U2V0OklbMV0/LmRhdGF9fXZhciBjdD1Vbjthc3luYyBmdW5jdGlvbiBibihBLGU9e30pe2xldCB0PVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLlBvaW50U2V0fV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgdT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheSh1KX19bGV0IG89W3t0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOml9XSxyPVtdLGE9aS5wYXRoO3IucHVzaChhKSxyLnB1c2goIjAiKSxyLnB1c2goIjEiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJ3YXNtLXpzdGQtcmVhZC1wb2ludC1zZXQiLG49ZT8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpJfT1hd2FpdCBtKEIscix0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTplPy5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRSZWFkOklbMF0/LmRhdGEscG9pbnRTZXQ6SVsxXT8uZGF0YX19dmFyIG10PWJuO2FzeW5jIGZ1bmN0aW9uIE5uKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuUG9pbnRTZXQsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBCPSJ3YXNtLXpzdGQtd3JpdGUtcG9pbnQtc2V0IixuPXQ/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsaSxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6dD8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6SVswXT8uZGF0YSxzZXJpYWxpemVkUG9pbnRTZXQ6SVsxXT8uZGF0YX19dmFyIGR0PU5uO3ZhciBHbj1uZXcgTWFwKFtbInZ0ayIsW2d0LEJ0XV0sWyJtejMiLFtDdCxRdF1dLFsib2JqIixbRXQsbHRdXSxbIm9mZiIsW3B0LHV0XV0sWyJ3YXNtIixbZnQsY3RdXSxbIndhc20tenN0IixbbXQsZHRdXV0pLHBBPUduO2FzeW5jIGZ1bmN0aW9uIE1uKEEsZT17fSl7bGV0IHQ9QS50eXBlPz8iIixpPUEubmFtZT8/QS5wYXRoPz8iZmlsZU5hbWUiLG89VChpKS50b0xvd2VyQ2FzZSgpLHI9ZT8ud2ViV29ya2VyLGE9QTtpZihBIGluc3RhbmNlb2YgQmxvYil7bGV0IHM9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2E9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkocyl9fWxldCBDPW51bGw7aWYodCYmbEEuaGFzKHQpKUM9bEEuZ2V0KHQpO2Vsc2UgaWYoXy5oYXMobykpQz1fLmdldChvKTtlbHNlIGZvcihsZXQgcyBvZiBwQS52YWx1ZXMoKSlpZihzWzBdIT09bnVsbCl7bGV0e3dlYldvcmtlcjpJLGNvdWxkUmVhZDpmLHBvaW50U2V0OnV9PWF3YWl0IHNbMF0oe3BhdGg6YS5wYXRoLGRhdGE6YS5kYXRhLnNsaWNlKCl9LHtpbmZvcm1hdGlvbk9ubHk6ZS5pbmZvcm1hdGlvbk9ubHksd2ViV29ya2VyOnIsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKHI9SSxmKXJldHVybnt3ZWJXb3JrZXI6cixwb2ludFNldDp1fX1pZighQyl0aHJvdyBFcnJvcigiQ291bGQgbm90IGZpbmQgSU8gZm9yOiAiK2kpO2xldCBCPXBBLmdldChDKVswXSx7d2ViV29ya2VyOm4sY291bGRSZWFkOmcscG9pbnRTZXQ6bH09YXdhaXQgQihhLHtpbmZvcm1hdGlvbk9ubHk6ZS5pbmZvcm1hdGlvbk9ubHksd2ViV29ya2VyOnIsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKHI9biwhZyl0aHJvdyBFcnJvcigiQ291bGQgbm90IHJlYWQ6ICIraSk7cmV0dXJue3dlYldvcmtlcjpyLHBvaW50U2V0Omx9fXZhciBXbj1Nbjthc3luYyBmdW5jdGlvbiBQbihBLGUsdD17fSl7bGV0IGk9QSxvPXQubWltZVR5cGUscj1UKGUpLnRvTG93ZXJDYXNlKCksYT10LndlYldvcmtlcixDPW51bGw7aWYodHlwZW9mIG88InUiJiZsQS5oYXMobykpQz1sQS5nZXQobyk7ZWxzZSBpZihfLmhhcyhyKSlDPV8uZ2V0KHIpO2Vsc2UgZm9yKGxldCBJIG9mIHBBLnZhbHVlcygpKWlmKElbMV0hPT1udWxsKXtsZXR7d2ViV29ya2VyOmYsY291bGRXcml0ZTp1LHNlcmlhbGl6ZWRQb2ludFNldDp3fT1hd2FpdCBJWzFdKGksZSx0KTtpZihhPWYsdSlyZXR1cm57d2ViV29ya2VyOmEsc2VyaWFsaXplZFBvaW50U2V0Ond9fWlmKCFDKXRocm93IEVycm9yKCJDb3VsZCBub3QgZmluZCBJTyBmb3I6ICIrZSk7bGV0IEI9cEEuZ2V0KEMpWzFdLHt3ZWJXb3JrZXI6bixjb3VsZFdyaXRlOmcsc2VyaWFsaXplZFBvaW50U2V0Omx9PWF3YWl0IEIoaSxlLHQpO2lmKGE9biwhZyl0aHJvdyBFcnJvcigiQ291bGQgbm90IHdyaXRlOiAiK2UpO3JldHVybnt3ZWJXb3JrZXI6YSxzZXJpYWxpemVkUG9pbnRTZXQ6bH19dmFyIE9uPVBuO3ZhciBUcj0nZGF0YTp0ZXh0L2phdmFzY3JpcHQ7Y2hhcnNldD11dGYtOCx2YXIgWWU9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBxZT0oQSx0KT0+e2Zvcih2YXIgZSBpbiB0KVllKEEsZSx7Z2V0OnRbZV0sZW51bWVyYWJsZTohMH0pfTt2YXIgTnQ9U3ltYm9sKCJDb21saW5rLnByb3h5IiksTWU9U3ltYm9sKCJDb21saW5rLmVuZHBvaW50IiksS2U9U3ltYm9sKCJDb21saW5rLnJlbGVhc2VQcm94eSIpLFZBPVN5bWJvbCgiQ29tbGluay5maW5hbGl6ZXIiKSxtQT1TeW1ib2woIkNvbWxpbmsudGhyb3duIiksVXQ9QT0+dHlwZW9mIEE9PSJvYmplY3QiJiZBIT09bnVsbHx8dHlwZW9mIEE9PSJmdW5jdGlvbiIsT2U9e2NhbkhhbmRsZTpBPT5VdChBKSYmQVtOdF0sc2VyaWFsaXplKEEpe2xldHtwb3J0MTp0LHBvcnQyOmV9PW5ldyBNZXNzYWdlQ2hhbm5lbDtyZXR1cm4gRkEoQSx0KSxbZSxbZV1dfSxkZXNlcmlhbGl6ZShBKXtyZXR1cm4gQS5zdGFydCgpLGplKEEpfX0sVGU9e2NhbkhhbmRsZTpBPT5VdChBKSYmbUEgaW4gQSxzZXJpYWxpemUoe3ZhbHVlOkF9KXtsZXQgdDtyZXR1cm4gQSBpbnN0YW5jZW9mIEVycm9yP3Q9e2lzRXJyb3I6ITAsdmFsdWU6e21lc3NhZ2U6QS5tZXNzYWdlLG5hbWU6QS5uYW1lLHN0YWNrOkEuc3RhY2t9fTp0PXtpc0Vycm9yOiExLHZhbHVlOkF9LFt0LFtdXX0sZGVzZXJpYWxpemUoQSl7dGhyb3cgQS5pc0Vycm9yP09iamVjdC5hc3NpZ24obmV3IEVycm9yKEEudmFsdWUubWVzc2FnZSksQS52YWx1ZSk6QS52YWx1ZX19LEd0PW5ldyBNYXAoW1sicHJveHkiLE9lXSxbInRocm93IixUZV1dKTtmdW5jdGlvbiB4ZShBLHQpe2ZvcihsZXQgZSBvZiBBKWlmKHQ9PT1lfHxlPT09IioifHxlIGluc3RhbmNlb2YgUmVnRXhwJiZlLnRlc3QodCkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gRkEoQSx0PWdsb2JhbFRoaXMsZT1bIioiXSl7dC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBJKHIpe2lmKCFyfHwhci5kYXRhKXJldHVybjtpZigheGUoZSxyLm9yaWdpbikpe2NvbnNvbGUud2FybihgSW52YWxpZCBvcmlnaW4gXCcke3Iub3JpZ2lufVwnIGZvciBjb21saW5rIHByb3h5YCk7cmV0dXJufWxldHtpZDpnLHR5cGU6byxwYXRoOm59PU9iamVjdC5hc3NpZ24oe3BhdGg6W119LHIuZGF0YSksRT0oci5kYXRhLmFyZ3VtZW50TGlzdHx8W10pLm1hcChXKSxCO3RyeXtsZXQgcz1uLnNsaWNlKDAsLTEpLnJlZHVjZSgobCxhKT0+bFthXSxBKSxDPW4ucmVkdWNlKChsLGEpPT5sW2FdLEEpO3N3aXRjaChvKXtjYXNlIkdFVCI6Qj1DO2JyZWFrO2Nhc2UiU0VUIjpzW24uc2xpY2UoLTEpWzBdXT1XKHIuZGF0YS52YWx1ZSksQj0hMDticmVhaztjYXNlIkFQUExZIjpCPUMuYXBwbHkocyxFKTticmVhaztjYXNlIkNPTlNUUlVDVCI6e2xldCBsPW5ldyBDKC4uLkUpO0I9WGUobCl9YnJlYWs7Y2FzZSJFTkRQT0lOVCI6e2xldHtwb3J0MTpsLHBvcnQyOmF9PW5ldyBNZXNzYWdlQ2hhbm5lbDtGQShBLGEpLEI9X0EobCxbbF0pfWJyZWFrO2Nhc2UiUkVMRUFTRSI6Qj12b2lkIDA7YnJlYWs7ZGVmYXVsdDpyZXR1cm59fWNhdGNoKHMpe0I9e3ZhbHVlOnMsW21BXTowfX1Qcm9taXNlLnJlc29sdmUoQikuY2F0Y2gocz0+KHt2YWx1ZTpzLFttQV06MH0pKS50aGVuKHM9PntsZXRbQyxsXT1TQShzKTt0LnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxDKSx7aWQ6Z30pLGwpLG89PT0iUkVMRUFTRSImJih0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLEkpLGt0KHQpLFZBIGluIEEmJnR5cGVvZiBBW1ZBXT09ImZ1bmN0aW9uIiYmQVtWQV0oKSl9KS5jYXRjaChzPT57bGV0W0MsbF09U0Eoe3ZhbHVlOm5ldyBUeXBlRXJyb3IoIlVuc2VyaWFsaXphYmxlIHJldHVybiB2YWx1ZSIpLFttQV06MH0pO3QucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEMpLHtpZDpnfSksbCl9KX0pLHQuc3RhcnQmJnQuc3RhcnQoKX1mdW5jdGlvbiBQZShBKXtyZXR1cm4gQS5jb25zdHJ1Y3Rvci5uYW1lPT09Ik1lc3NhZ2VQb3J0In1mdW5jdGlvbiBrdChBKXtQZShBKSYmQS5jbG9zZSgpfWZ1bmN0aW9uIGplKEEsdCl7cmV0dXJuIFhBKEEsW10sdCl9ZnVuY3Rpb24geUEoQSl7aWYoQSl0aHJvdyBuZXcgRXJyb3IoIlByb3h5IGhhcyBiZWVuIHJlbGVhc2VkIGFuZCBpcyBub3QgdXNlYWJsZSIpfWZ1bmN0aW9uIEx0KEEpe3JldHVybiBfKEEse3R5cGU6IlJFTEVBU0UifSkudGhlbigoKT0+e2t0KEEpfSl9dmFyIHdBPW5ldyBXZWFrTWFwLHBBPSJGaW5hbGl6YXRpb25SZWdpc3RyeSJpbiBnbG9iYWxUaGlzJiZuZXcgRmluYWxpemF0aW9uUmVnaXN0cnkoQT0+e2xldCB0PSh3QS5nZXQoQSl8fDApLTE7d0Euc2V0KEEsdCksdD09PTAmJkx0KEEpfSk7ZnVuY3Rpb24gV2UoQSx0KXtsZXQgZT0od0EuZ2V0KHQpfHwwKSsxO3dBLnNldCh0LGUpLHBBJiZwQS5yZWdpc3RlcihBLHQsQSl9ZnVuY3Rpb24gWmUoQSl7cEEmJnBBLnVucmVnaXN0ZXIoQSl9ZnVuY3Rpb24gWEEoQSx0PVtdLGU9ZnVuY3Rpb24oKXt9KXtsZXQgST0hMSxyPW5ldyBQcm94eShlLHtnZXQoZyxvKXtpZih5QShJKSxvPT09S2UpcmV0dXJuKCk9PntaZShyKSxMdChBKSxJPSEwfTtpZihvPT09InRoZW4iKXtpZih0Lmxlbmd0aD09PTApcmV0dXJue3RoZW46KCk9PnJ9O2xldCBuPV8oQSx7dHlwZToiR0VUIixwYXRoOnQubWFwKEU9PkUudG9TdHJpbmcoKSl9KS50aGVuKFcpO3JldHVybiBuLnRoZW4uYmluZChuKX1yZXR1cm4gWEEoQSxbLi4udCxvXSl9LHNldChnLG8sbil7eUEoSSk7bGV0W0UsQl09U0Eobik7cmV0dXJuIF8oQSx7dHlwZToiU0VUIixwYXRoOlsuLi50LG9dLm1hcChzPT5zLnRvU3RyaW5nKCkpLHZhbHVlOkV9LEIpLnRoZW4oVyl9LGFwcGx5KGcsbyxuKXt5QShJKTtsZXQgRT10W3QubGVuZ3RoLTFdO2lmKEU9PT1NZSlyZXR1cm4gXyhBLHt0eXBlOiJFTkRQT0lOVCJ9KS50aGVuKFcpO2lmKEU9PT0iYmluZCIpcmV0dXJuIFhBKEEsdC5zbGljZSgwLC0xKSk7bGV0W0Isc109UnQobik7cmV0dXJuIF8oQSx7dHlwZToiQVBQTFkiLHBhdGg6dC5tYXAoQz0+Qy50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Qn0scykudGhlbihXKX0sY29uc3RydWN0KGcsbyl7eUEoSSk7bGV0W24sRV09UnQobyk7cmV0dXJuIF8oQSx7dHlwZToiQ09OU1RSVUNUIixwYXRoOnQubWFwKEI9PkIudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0Om59LEUpLnRoZW4oVyl9fSk7cmV0dXJuIFdlKHIsQSkscn1mdW5jdGlvbiBWZShBKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxBKX1mdW5jdGlvbiBSdChBKXtsZXQgdD1BLm1hcChTQSk7cmV0dXJuW3QubWFwKGU9PmVbMF0pLFZlKHQubWFwKGU9PmVbMV0pKV19dmFyIGJ0PW5ldyBXZWFrTWFwO2Z1bmN0aW9uIF9BKEEsdCl7cmV0dXJuIGJ0LnNldChBLHQpLEF9ZnVuY3Rpb24gWGUoQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7W050XTohMH0pfWZ1bmN0aW9uIFNBKEEpe2ZvcihsZXRbdCxlXW9mIEd0KWlmKGUuY2FuSGFuZGxlKEEpKXtsZXRbSSxyXT1lLnNlcmlhbGl6ZShBKTtyZXR1cm5be3R5cGU6IkhBTkRMRVIiLG5hbWU6dCx2YWx1ZTpJfSxyXX1yZXR1cm5be3R5cGU6IlJBVyIsdmFsdWU6QX0sYnQuZ2V0KEEpfHxbXV19ZnVuY3Rpb24gVyhBKXtzd2l0Y2goQS50eXBlKXtjYXNlIkhBTkRMRVIiOnJldHVybiBHdC5nZXQoQS5uYW1lKS5kZXNlcmlhbGl6ZShBLnZhbHVlKTtjYXNlIlJBVyI6cmV0dXJuIEEudmFsdWV9fWZ1bmN0aW9uIF8oQSx0LGUpe3JldHVybiBuZXcgUHJvbWlzZShJPT57bGV0IHI9X2UoKTtBLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIGcobyl7IW8uZGF0YXx8IW8uZGF0YS5pZHx8by5kYXRhLmlkIT09cnx8KEEucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZyksSShvLmRhdGEpKX0pLEEuc3RhcnQmJkEuc3RhcnQoKSxBLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oe2lkOnJ9LHQpLGUpfSl9ZnVuY3Rpb24gX2UoKXtyZXR1cm4gbmV3IEFycmF5KDQpLmZpbGwoMCkubWFwKCgpPT5NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpLnRvU3RyaW5nKDE2KSkuam9pbigiLSIpfWZ1bmN0aW9uIG9BKEEsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEEuYXBwbHkodCxhcmd1bWVudHMpfX12YXJ7dG9TdHJpbmc6emV9PU9iamVjdC5wcm90b3R5cGUse2dldFByb3RvdHlwZU9mOnZBfT1PYmplY3Qse2l0ZXJhdG9yOk5BLHRvU3RyaW5nVGFnOll0fT1TeW1ib2wsVUE9KEE9PnQ9PntsZXQgZT16ZS5jYWxsKHQpO3JldHVybiBBW2VdfHwoQVtlXT1lLnNsaWNlKDgsLTEpLnRvTG93ZXJDYXNlKCkpfSkoT2JqZWN0LmNyZWF0ZShudWxsKSksTD1BPT4oQT1BLnRvTG93ZXJDYXNlKCksdD0+VUEodCk9PT1BKSxHQT1BPT50PT50eXBlb2YgdD09PUEse2lzQXJyYXk6dn09QXJyYXksej1HQSgidW5kZWZpbmVkIik7ZnVuY3Rpb24gZ0EoQSl7cmV0dXJuIEEhPT1udWxsJiYheihBKSYmQS5jb25zdHJ1Y3RvciE9PW51bGwmJiF6KEEuY29uc3RydWN0b3IpJiZOKEEuY29uc3RydWN0b3IuaXNCdWZmZXIpJiZBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKEEpfXZhciBxdD1MKCJBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uIHZlKEEpe2xldCB0O3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXc/dD1BcnJheUJ1ZmZlci5pc1ZpZXcoQSk6dD1BJiZBLmJ1ZmZlciYmcXQoQS5idWZmZXIpLHR9dmFyICRlPUdBKCJzdHJpbmciKSxOPUdBKCJmdW5jdGlvbiIpLE10PUdBKCJudW1iZXIiKSxpQT1BPT5BIT09bnVsbCYmdHlwZW9mIEE9PSJvYmplY3QiLEFJPUE9PkE9PT0hMHx8QT09PSExLFJBPUE9PntpZihVQShBKSE9PSJvYmplY3QiKXJldHVybiExO2xldCB0PXZBKEEpO3JldHVybih0PT09bnVsbHx8dD09PU9iamVjdC5wcm90b3R5cGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KT09PW51bGwpJiYhKFl0IGluIEEpJiYhKE5BIGluIEEpfSx0ST1BPT57aWYoIWlBKEEpfHxnQShBKSlyZXR1cm4hMTt0cnl7cmV0dXJuIE9iamVjdC5rZXlzKEEpLmxlbmd0aD09PTAmJk9iamVjdC5nZXRQcm90b3R5cGVPZihBKT09PU9iamVjdC5wcm90b3R5cGV9Y2F0Y2h7cmV0dXJuITF9fSxlST1MKCJEYXRlIiksSUk9TCgiRmlsZSIpLHJJPUwoIkJsb2IiKSxvST1MKCJGaWxlTGlzdCIpLGdJPUE9PmlBKEEpJiZOKEEucGlwZSksaUk9QT0+e2xldCB0O3JldHVybiBBJiYodHlwZW9mIEZvcm1EYXRhPT0iZnVuY3Rpb24iJiZBIGluc3RhbmNlb2YgRm9ybURhdGF8fE4oQS5hcHBlbmQpJiYoKHQ9VUEoQSkpPT09ImZvcm1kYXRhInx8dD09PSJvYmplY3QiJiZOKEEudG9TdHJpbmcpJiZBLnRvU3RyaW5nKCk9PT0iW29iamVjdCBGb3JtRGF0YV0iKSl9LHNJPUwoIlVSTFNlYXJjaFBhcmFtcyIpLFtuSSxDSSxCSSxhSV09WyJSZWFkYWJsZVN0cmVhbSIsIlJlcXVlc3QiLCJSZXNwb25zZSIsIkhlYWRlcnMiXS5tYXAoTCksUUk9QT0+QS50cmltP0EudHJpbSgpOkEucmVwbGFjZSgvXltcXHNcXHVGRUZGXFx4QTBdK3xbXFxzXFx1RkVGRlxceEEwXSskL2csIiIpO2Z1bmN0aW9uIHNBKEEsdCx7YWxsT3duS2V5czplPSExfT17fSl7aWYoQT09PW51bGx8fHR5cGVvZiBBPiJ1IilyZXR1cm47bGV0IEkscjtpZih0eXBlb2YgQSE9Im9iamVjdCImJihBPVtBXSksdihBKSlmb3IoST0wLHI9QS5sZW5ndGg7STxyO0krKyl0LmNhbGwobnVsbCxBW0ldLEksQSk7ZWxzZXtpZihnQShBKSlyZXR1cm47bGV0IGc9ZT9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKTpPYmplY3Qua2V5cyhBKSxvPWcubGVuZ3RoLG47Zm9yKEk9MDtJPG87SSsrKW49Z1tJXSx0LmNhbGwobnVsbCxBW25dLG4sQSl9fWZ1bmN0aW9uIEt0KEEsdCl7aWYoZ0EoQSkpcmV0dXJuIG51bGw7dD10LnRvTG93ZXJDYXNlKCk7bGV0IGU9T2JqZWN0LmtleXMoQSksST1lLmxlbmd0aCxyO2Zvcig7SS0tID4wOylpZihyPWVbSV0sdD09PXIudG9Mb3dlckNhc2UoKSlyZXR1cm4gcjtyZXR1cm4gbnVsbH12YXIgWj10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6Z2xvYmFsLE90PUE9PiF6KEEpJiZBIT09WjtmdW5jdGlvbiB6QSgpe2xldHtjYXNlbGVzczpBLHNraXBVbmRlZmluZWQ6dH09T3QodGhpcykmJnRoaXN8fHt9LGU9e30sST0ocixnKT0+e2xldCBvPUEmJkt0KGUsZyl8fGc7UkEoZVtvXSkmJlJBKHIpP2Vbb109ekEoZVtvXSxyKTpSQShyKT9lW29dPXpBKHt9LHIpOnYocik/ZVtvXT1yLnNsaWNlKCk6KCF0fHwheihyKSkmJihlW29dPXIpfTtmb3IobGV0IHI9MCxnPWFyZ3VtZW50cy5sZW5ndGg7cjxnO3IrKylhcmd1bWVudHNbcl0mJnNBKGFyZ3VtZW50c1tyXSxJKTtyZXR1cm4gZX12YXIgRUk9KEEsdCxlLHthbGxPd25LZXlzOkl9PXt9KT0+KHNBKHQsKHIsZyk9PntlJiZOKHIpP0FbZ109b0EocixlKTpBW2ddPXJ9LHthbGxPd25LZXlzOkl9KSxBKSxjST1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLGZJPShBLHQsZSxJKT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUsSSksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTp0LnByb3RvdHlwZX0pLGUmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsZSl9LGxJPShBLHQsZSxJKT0+e2xldCByLGcsbyxuPXt9O2lmKHQ9dHx8e30sQT09bnVsbClyZXR1cm4gdDtkb3tmb3Iocj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxnPXIubGVuZ3RoO2ctLSA+MDspbz1yW2ddLCghSXx8SShvLEEsdCkpJiYhbltvXSYmKHRbb109QVtvXSxuW29dPSEwKTtBPWUhPT0hMSYmdkEoQSl9d2hpbGUoQSYmKCFlfHxlKEEsdCkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIHR9LHVJPShBLHQsZSk9PntBPVN0cmluZyhBKSwoZT09PXZvaWQgMHx8ZT5BLmxlbmd0aCkmJihlPUEubGVuZ3RoKSxlLT10Lmxlbmd0aDtsZXQgST1BLmluZGV4T2YodCxlKTtyZXR1cm4gSSE9PS0xJiZJPT09ZX0sZEk9QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKHYoQSkpcmV0dXJuIEE7bGV0IHQ9QS5sZW5ndGg7aWYoIU10KHQpKXJldHVybiBudWxsO2xldCBlPW5ldyBBcnJheSh0KTtmb3IoO3QtLSA+MDspZVt0XT1BW3RdO3JldHVybiBlfSxEST0oQT0+dD0+QSYmdCBpbnN0YW5jZW9mIEEpKHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmdkEoVWludDhBcnJheSkpLGhJPShBLHQpPT57bGV0IEk9KEEmJkFbTkFdKS5jYWxsKEEpLHI7Zm9yKDsocj1JLm5leHQoKSkmJiFyLmRvbmU7KXtsZXQgZz1yLnZhbHVlO3QuY2FsbChBLGdbMF0sZ1sxXSl9fSx5ST0oQSx0KT0+e2xldCBlLEk9W107Zm9yKDsoZT1BLmV4ZWModCkpIT09bnVsbDspSS5wdXNoKGUpO3JldHVybiBJfSxtST1MKCJIVE1MRm9ybUVsZW1lbnQiKSx3ST1BPT5BLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvWy1fXFxzXShbYS16XFxkXSkoXFx3KikvZyxmdW5jdGlvbihlLEkscil7cmV0dXJuIEkudG9VcHBlckNhc2UoKStyfSksSHQ9KCh7aGFzT3duUHJvcGVydHk6QX0pPT4odCxlKT0+QS5jYWxsKHQsZSkpKE9iamVjdC5wcm90b3R5cGUpLHBJPUwoIlJlZ0V4cCIpLFR0PShBLHQpPT57bGV0IGU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoQSksST17fTtzQShlLChyLGcpPT57bGV0IG87KG89dChyLGcsQSkpIT09ITEmJihJW2ddPW98fHIpfSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQSxJKX0sU0k9QT0+e1R0KEEsKHQsZSk9PntpZihOKEEpJiZbImFyZ3VtZW50cyIsImNhbGxlciIsImNhbGxlZSJdLmluZGV4T2YoZSkhPT0tMSlyZXR1cm4hMTtsZXQgST1BW2VdO2lmKE4oSSkpe2lmKHQuZW51bWVyYWJsZT0hMSwid3JpdGFibGUiaW4gdCl7dC53cml0YWJsZT0hMTtyZXR1cm59dC5zZXR8fCh0LnNldD0oKT0+e3Rocm93IEVycm9yKCJDYW4gbm90IHJld3JpdGUgcmVhZC1vbmx5IG1ldGhvZCBcJyIrZSsiXCciKX0pfX0pfSxGST0oQSx0KT0+e2xldCBlPXt9LEk9cj0+e3IuZm9yRWFjaChnPT57ZVtnXT0hMH0pfTtyZXR1cm4gdihBKT9JKEEpOkkoU3RyaW5nKEEpLnNwbGl0KHQpKSxlfSxSST0oKT0+e30sTkk9KEEsdCk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOnQ7ZnVuY3Rpb24gVUkoQSl7cmV0dXJuISEoQSYmTihBLmFwcGVuZCkmJkFbWXRdPT09IkZvcm1EYXRhIiYmQVtOQV0pfXZhciBHST1BPT57bGV0IHQ9bmV3IEFycmF5KDEwKSxlPShJLHIpPT57aWYoaUEoSSkpe2lmKHQuaW5kZXhPZihJKT49MClyZXR1cm47aWYoZ0EoSSkpcmV0dXJuIEk7aWYoISgidG9KU09OImluIEkpKXt0W3JdPUk7bGV0IGc9dihJKT9bXTp7fTtyZXR1cm4gc0EoSSwobyxuKT0+e2xldCBFPWUobyxyKzEpOyF6KEUpJiYoZ1tuXT1FKX0pLHRbcl09dm9pZCAwLGd9fXJldHVybiBJfTtyZXR1cm4gZShBLDApfSxrST1MKCJBc3luY0Z1bmN0aW9uIiksTEk9QT0+QSYmKGlBKEEpfHxOKEEpKSYmTihBLnRoZW4pJiZOKEEuY2F0Y2gpLHh0PSgoQSx0KT0+QT9zZXRJbW1lZGlhdGU6dD8oKGUsSSk9PihaLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCh7c291cmNlOnIsZGF0YTpnfSk9PntyPT09WiYmZz09PWUmJkkubGVuZ3RoJiZJLnNoaWZ0KCkoKX0sITEpLHI9PntJLnB1c2gociksWi5wb3N0TWVzc2FnZShlLCIqIil9KSkoYGF4aW9zQCR7TWF0aC5yYW5kb20oKX1gLFtdKTplPT5zZXRUaW1lb3V0KGUpKSh0eXBlb2Ygc2V0SW1tZWRpYXRlPT0iZnVuY3Rpb24iLE4oWi5wb3N0TWVzc2FnZSkpLGJJPXR5cGVvZiBxdWV1ZU1pY3JvdGFzazwidSI/cXVldWVNaWNyb3Rhc2suYmluZChaKTp0eXBlb2YgcHJvY2VzczwidSImJnByb2Nlc3MubmV4dFRpY2t8fHh0LEpJPUE9PkEhPW51bGwmJk4oQVtOQV0pLGk9e2lzQXJyYXk6dixpc0FycmF5QnVmZmVyOnF0LGlzQnVmZmVyOmdBLGlzRm9ybURhdGE6aUksaXNBcnJheUJ1ZmZlclZpZXc6dmUsaXNTdHJpbmc6JGUsaXNOdW1iZXI6TXQsaXNCb29sZWFuOkFJLGlzT2JqZWN0OmlBLGlzUGxhaW5PYmplY3Q6UkEsaXNFbXB0eU9iamVjdDp0SSxpc1JlYWRhYmxlU3RyZWFtOm5JLGlzUmVxdWVzdDpDSSxpc1Jlc3BvbnNlOkJJLGlzSGVhZGVyczphSSxpc1VuZGVmaW5lZDp6LGlzRGF0ZTplSSxpc0ZpbGU6SUksaXNCbG9iOnJJLGlzUmVnRXhwOnBJLGlzRnVuY3Rpb246Tixpc1N0cmVhbTpnSSxpc1VSTFNlYXJjaFBhcmFtczpzSSxpc1R5cGVkQXJyYXk6REksaXNGaWxlTGlzdDpvSSxmb3JFYWNoOnNBLG1lcmdlOnpBLGV4dGVuZDpFSSx0cmltOlFJLHN0cmlwQk9NOmNJLGluaGVyaXRzOmZJLHRvRmxhdE9iamVjdDpsSSxraW5kT2Y6VUEsa2luZE9mVGVzdDpMLGVuZHNXaXRoOnVJLHRvQXJyYXk6ZEksZm9yRWFjaEVudHJ5OmhJLG1hdGNoQWxsOnlJLGlzSFRNTEZvcm06bUksaGFzT3duUHJvcGVydHk6SHQsaGFzT3duUHJvcDpIdCxyZWR1Y2VEZXNjcmlwdG9yczpUdCxmcmVlemVNZXRob2RzOlNJLHRvT2JqZWN0U2V0OkZJLHRvQ2FtZWxDYXNlOndJLG5vb3A6UkksdG9GaW5pdGVOdW1iZXI6TkksZmluZEtleTpLdCxnbG9iYWw6Wixpc0NvbnRleHREZWZpbmVkOk90LGlzU3BlY0NvbXBsaWFudEZvcm06VUksdG9KU09OT2JqZWN0OkdJLGlzQXN5bmNGbjprSSxpc1RoZW5hYmxlOkxJLHNldEltbWVkaWF0ZTp4dCxhc2FwOmJJLGlzSXRlcmFibGU6Skl9O2Z1bmN0aW9uICQoQSx0LGUsSSxyKXtFcnJvci5jYWxsKHRoaXMpLEVycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsdGhpcy5jb25zdHJ1Y3Rvcik6dGhpcy5zdGFjaz1uZXcgRXJyb3IoKS5zdGFjayx0aGlzLm1lc3NhZ2U9QSx0aGlzLm5hbWU9IkF4aW9zRXJyb3IiLHQmJih0aGlzLmNvZGU9dCksZSYmKHRoaXMuY29uZmlnPWUpLEkmJih0aGlzLnJlcXVlc3Q9SSksciYmKHRoaXMucmVzcG9uc2U9cix0aGlzLnN0YXR1cz1yLnN0YXR1cz9yLnN0YXR1czpudWxsKX1pLmluaGVyaXRzKCQsRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzppLnRvSlNPTk9iamVjdCh0aGlzLmNvbmZpZyksY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMuc3RhdHVzfX19KTt2YXIgUHQ9JC5wcm90b3R5cGUsanQ9e307WyJFUlJfQkFEX09QVElPTl9WQUxVRSIsIkVSUl9CQURfT1BUSU9OIiwiRUNPTk5BQk9SVEVEIiwiRVRJTUVET1VUIiwiRVJSX05FVFdPUksiLCJFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIiwiRVJSX0RFUFJFQ0FURUQiLCJFUlJfQkFEX1JFU1BPTlNFIiwiRVJSX0JBRF9SRVFVRVNUIiwiRVJSX0NBTkNFTEVEIiwiRVJSX05PVF9TVVBQT1JUIiwiRVJSX0lOVkFMSURfVVJMIl0uZm9yRWFjaChBPT57anRbQV09e3ZhbHVlOkF9fSk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoJCxqdCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFB0LCJpc0F4aW9zRXJyb3IiLHt2YWx1ZTohMH0pOyQuZnJvbT0oQSx0LGUsSSxyLGcpPT57bGV0IG89T2JqZWN0LmNyZWF0ZShQdCk7aS50b0ZsYXRPYmplY3QoQSxvLGZ1bmN0aW9uKHMpe3JldHVybiBzIT09RXJyb3IucHJvdG90eXBlfSxCPT5CIT09ImlzQXhpb3NFcnJvciIpO2xldCBuPUEmJkEubWVzc2FnZT9BLm1lc3NhZ2U6IkVycm9yIixFPXQ9PW51bGwmJkE/QS5jb2RlOnQ7cmV0dXJuICQuY2FsbChvLG4sRSxlLEksciksQSYmby5jYXVzZT09bnVsbCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sImNhdXNlIix7dmFsdWU6QSxjb25maWd1cmFibGU6ITB9KSxvLm5hbWU9QSYmQS5uYW1lfHwiRXJyb3IiLGcmJk9iamVjdC5hc3NpZ24obyxnKSxvfTt2YXIgdT0kO3ZhciBrQT1udWxsO2Z1bmN0aW9uICRBKEEpe3JldHVybiBpLmlzUGxhaW5PYmplY3QoQSl8fGkuaXNBcnJheShBKX1mdW5jdGlvbiBadChBKXtyZXR1cm4gaS5lbmRzV2l0aChBLCJbXSIpP0Euc2xpY2UoMCwtMik6QX1mdW5jdGlvbiBXdChBLHQsZSl7cmV0dXJuIEE/QS5jb25jYXQodCkubWFwKGZ1bmN0aW9uKHIsZyl7cmV0dXJuIHI9WnQociksIWUmJmc/IlsiK3IrIl0iOnJ9KS5qb2luKGU/Ii4iOiIiKTp0fWZ1bmN0aW9uIEhJKEEpe3JldHVybiBpLmlzQXJyYXkoQSkmJiFBLnNvbWUoJEEpfXZhciBZST1pLnRvRmxhdE9iamVjdChpLHt9LG51bGwsZnVuY3Rpb24odCl7cmV0dXJuL15pc1tBLVpdLy50ZXN0KHQpfSk7ZnVuY3Rpb24gcUkoQSx0LGUpe2lmKCFpLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoInRhcmdldCBtdXN0IGJlIGFuIG9iamVjdCIpO3Q9dHx8bmV3KGtBfHxGb3JtRGF0YSksZT1pLnRvRmxhdE9iamVjdChlLHttZXRhVG9rZW5zOiEwLGRvdHM6ITEsaW5kZXhlczohMX0sITEsZnVuY3Rpb24oZixjKXtyZXR1cm4haS5pc1VuZGVmaW5lZChjW2ZdKX0pO2xldCBJPWUubWV0YVRva2VucyxyPWUudmlzaXRvcnx8cyxnPWUuZG90cyxvPWUuaW5kZXhlcyxFPShlLkJsb2J8fHR5cGVvZiBCbG9iPCJ1IiYmQmxvYikmJmkuaXNTcGVjQ29tcGxpYW50Rm9ybSh0KTtpZighaS5pc0Z1bmN0aW9uKHIpKXRocm93IG5ldyBUeXBlRXJyb3IoInZpc2l0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uIik7ZnVuY3Rpb24gQihRKXtpZihRPT09bnVsbClyZXR1cm4iIjtpZihpLmlzRGF0ZShRKSlyZXR1cm4gUS50b0lTT1N0cmluZygpO2lmKGkuaXNCb29sZWFuKFEpKXJldHVybiBRLnRvU3RyaW5nKCk7aWYoIUUmJmkuaXNCbG9iKFEpKXRocm93IG5ldyB1KCJCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLiIpO3JldHVybiBpLmlzQXJyYXlCdWZmZXIoUSl8fGkuaXNUeXBlZEFycmF5KFEpP0UmJnR5cGVvZiBCbG9iPT0iZnVuY3Rpb24iP25ldyBCbG9iKFtRXSk6QnVmZmVyLmZyb20oUSk6UX1mdW5jdGlvbiBzKFEsZixjKXtsZXQgRD1RO2lmKFEmJiFjJiZ0eXBlb2YgUT09Im9iamVjdCIpe2lmKGkuZW5kc1dpdGgoZiwie30iKSlmPUk/ZjpmLnNsaWNlKDAsLTIpLFE9SlNPTi5zdHJpbmdpZnkoUSk7ZWxzZSBpZihpLmlzQXJyYXkoUSkmJkhJKFEpfHwoaS5pc0ZpbGVMaXN0KFEpfHxpLmVuZHNXaXRoKGYsIltdIikpJiYoRD1pLnRvQXJyYXkoUSkpKXJldHVybiBmPVp0KGYpLEQuZm9yRWFjaChmdW5jdGlvbih5LFIpeyEoaS5pc1VuZGVmaW5lZCh5KXx8eT09PW51bGwpJiZ0LmFwcGVuZChvPT09ITA/V3QoW2ZdLFIsZyk6bz09PW51bGw/ZjpmKyJbXSIsQih5KSl9KSwhMX1yZXR1cm4gJEEoUSk/ITA6KHQuYXBwZW5kKFd0KGMsZixnKSxCKFEpKSwhMSl9bGV0IEM9W10sbD1PYmplY3QuYXNzaWduKFlJLHtkZWZhdWx0VmlzaXRvcjpzLGNvbnZlcnRWYWx1ZTpCLGlzVmlzaXRhYmxlOiRBfSk7ZnVuY3Rpb24gYShRLGYpe2lmKCFpLmlzVW5kZWZpbmVkKFEpKXtpZihDLmluZGV4T2YoUSkhPT0tMSl0aHJvdyBFcnJvcigiQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIGluICIrZi5qb2luKCIuIikpO0MucHVzaChRKSxpLmZvckVhY2goUSxmdW5jdGlvbihELEYpeyghKGkuaXNVbmRlZmluZWQoRCl8fEQ9PT1udWxsKSYmci5jYWxsKHQsRCxpLmlzU3RyaW5nKEYpP0YudHJpbSgpOkYsZixsKSk9PT0hMCYmYShELGY/Zi5jb25jYXQoRik6W0ZdKX0pLEMucG9wKCl9fWlmKCFpLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoImRhdGEgbXVzdCBiZSBhbiBvYmplY3QiKTtyZXR1cm4gYShBKSx0fXZhciBUPXFJO2Z1bmN0aW9uIFZ0KEEpe2xldCB0PXsiISI6IiUyNTIxIiwiXCciOiIlMjUyNyIsIigiOiIlMjUyOCIsIikiOiIlMjUyOSIsIn4iOiIlMjU3RSIsIiUyNTIwIjoiKyIsIiUyNTAwIjoiXFwwIn07cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC9bIVwnKCl+XXwlMjUyMHwlMjUwMC9nLGZ1bmN0aW9uKEkpe3JldHVybiB0W0ldfSl9ZnVuY3Rpb24gWHQoQSx0KXt0aGlzLl9wYWlycz1bXSxBJiZUKEEsdGhpcyx0KX12YXIgX3Q9WHQucHJvdG90eXBlO190LmFwcGVuZD1mdW5jdGlvbih0LGUpe3RoaXMuX3BhaXJzLnB1c2goW3QsZV0pfTtfdC50b1N0cmluZz1mdW5jdGlvbih0KXtsZXQgZT10P2Z1bmN0aW9uKEkpe3JldHVybiB0LmNhbGwodGhpcyxJLFZ0KX06VnQ7cmV0dXJuIHRoaXMuX3BhaXJzLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gZShyWzBdKSsiPSIrZShyWzFdKX0sIiIpLmpvaW4oIiYiKX07dmFyIExBPVh0O2Z1bmN0aW9uIE1JKEEpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvJTI1M0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjUyNC9nLCIkIikucmVwbGFjZSgvJTI1MkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjUyMC9nLCIrIil9ZnVuY3Rpb24gbkEoQSx0LGUpe2lmKCF0KXJldHVybiBBO2xldCBJPWUmJmUuZW5jb2RlfHxNSTtpLmlzRnVuY3Rpb24oZSkmJihlPXtzZXJpYWxpemU6ZX0pO2xldCByPWUmJmUuc2VyaWFsaXplLGc7aWYocj9nPXIodCxlKTpnPWkuaXNVUkxTZWFyY2hQYXJhbXModCk/dC50b1N0cmluZygpOm5ldyBMQSh0LGUpLnRvU3RyaW5nKEkpLGcpe2xldCBvPUEuaW5kZXhPZigiJTIzIik7byE9PS0xJiYoQT1BLnNsaWNlKDAsbykpLEErPShBLmluZGV4T2YoIj8iKT09PS0xPyI/IjoiJiIpK2d9cmV0dXJuIEF9dmFyIEF0PWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5oYW5kbGVycz1bXX11c2UodCxlLEkpe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDp0LHJlamVjdGVkOmUsc3luY2hyb25vdXM6ST9JLnN5bmNocm9ub3VzOiExLHJ1bldoZW46ST9JLnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9ZWplY3QodCl7dGhpcy5oYW5kbGVyc1t0XSYmKHRoaXMuaGFuZGxlcnNbdF09bnVsbCl9Y2xlYXIoKXt0aGlzLmhhbmRsZXJzJiYodGhpcy5oYW5kbGVycz1bXSl9Zm9yRWFjaCh0KXtpLmZvckVhY2godGhpcy5oYW5kbGVycyxmdW5jdGlvbihJKXtJIT09bnVsbCYmdChJKX0pfX0sdHQ9QXQ7dmFyIGJBPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfTt2YXIgenQ9dHlwZW9mIFVSTFNlYXJjaFBhcmFtczwidSI/VVJMU2VhcmNoUGFyYW1zOkxBO3ZhciB2dD10eXBlb2YgRm9ybURhdGE8InUiP0Zvcm1EYXRhOm51bGw7dmFyICR0PXR5cGVvZiBCbG9iPCJ1Ij9CbG9iOm51bGw7dmFyIEFlPXtpc0Jyb3dzZXI6ITAsY2xhc3Nlczp7VVJMU2VhcmNoUGFyYW1zOnp0LEZvcm1EYXRhOnZ0LEJsb2I6JHR9LHByb3RvY29sczpbImh0dHAiLCJodHRwcyIsImZpbGUiLCJibG9iIiwidXJsIiwiZGF0YSJdfTt2YXIgcnQ9e307cWUocnQse2hhc0Jyb3dzZXJFbnY6KCk9Pkl0LGhhc1N0YW5kYXJkQnJvd3NlckVudjooKT0+S0ksaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52OigpPT5PSSxuYXZpZ2F0b3I6KCk9PmV0LG9yaWdpbjooKT0+VEl9KTt2YXIgSXQ9dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiBkb2N1bWVudDwidSIsZXQ9dHlwZW9mIG5hdmlnYXRvcj09Im9iamVjdCImJm5hdmlnYXRvcnx8dm9pZCAwLEtJPUl0JiYoIWV0fHxbIlJlYWN0TmF0aXZlIiwiTmF0aXZlU2NyaXB0IiwiTlMiXS5pbmRleE9mKGV0LnByb2R1Y3QpPDApLE9JPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZTwidSImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSYmdHlwZW9mIHNlbGYuaW1wb3J0U2NyaXB0cz09ImZ1bmN0aW9uIixUST1JdCYmd2luZG93LmxvY2F0aW9uLmhyZWZ8fCJodHRwOi8vbG9jYWxob3N0Ijt2YXIgaD17Li4ucnQsLi4uQWV9O2Z1bmN0aW9uIG90KEEsdCl7cmV0dXJuIFQoQSxuZXcgaC5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcyx7dmlzaXRvcjpmdW5jdGlvbihlLEkscixnKXtyZXR1cm4gaC5pc05vZGUmJmkuaXNCdWZmZXIoZSk/KHRoaXMuYXBwZW5kKEksZS50b1N0cmluZygiYmFzZTY0IikpLCExKTpnLmRlZmF1bHRWaXNpdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sLi4udH0pfWZ1bmN0aW9uIHhJKEEpe3JldHVybiBpLm1hdGNoQWxsKC9cXHcrfFxcWyhcXHcqKV0vZyxBKS5tYXAodD0+dFswXT09PSJbXSI/IiI6dFsxXXx8dFswXSl9ZnVuY3Rpb24gUEkoQSl7bGV0IHQ9e30sZT1PYmplY3Qua2V5cyhBKSxJLHI9ZS5sZW5ndGgsZztmb3IoST0wO0k8cjtJKyspZz1lW0ldLHRbZ109QVtnXTtyZXR1cm4gdH1mdW5jdGlvbiBqSShBKXtmdW5jdGlvbiB0KGUsSSxyLGcpe2xldCBvPWVbZysrXTtpZihvPT09Il9fcHJvdG9fXyIpcmV0dXJuITA7bGV0IG49TnVtYmVyLmlzRmluaXRlKCtvKSxFPWc+PWUubGVuZ3RoO3JldHVybiBvPSFvJiZpLmlzQXJyYXkocik/ci5sZW5ndGg6byxFPyhpLmhhc093blByb3AocixvKT9yW29dPVtyW29dLEldOnJbb109SSwhbik6KCghcltvXXx8IWkuaXNPYmplY3QocltvXSkpJiYocltvXT1bXSksdChlLEkscltvXSxnKSYmaS5pc0FycmF5KHJbb10pJiYocltvXT1QSShyW29dKSksIW4pfWlmKGkuaXNGb3JtRGF0YShBKSYmaS5pc0Z1bmN0aW9uKEEuZW50cmllcykpe2xldCBlPXt9O3JldHVybiBpLmZvckVhY2hFbnRyeShBLChJLHIpPT57dCh4SShJKSxyLGUsMCl9KSxlfXJldHVybiBudWxsfXZhciBKQT1qSTtmdW5jdGlvbiBXSShBLHQsZSl7aWYoaS5pc1N0cmluZyhBKSl0cnl7cmV0dXJuKHR8fEpTT04ucGFyc2UpKEEpLGkudHJpbShBKX1jYXRjaChJKXtpZihJLm5hbWUhPT0iU3ludGF4RXJyb3IiKXRocm93IEl9cmV0dXJuKGV8fEpTT04uc3RyaW5naWZ5KShBKX12YXIgZ3Q9e3RyYW5zaXRpb25hbDpiQSxhZGFwdGVyOlsieGhyIiwiaHR0cCIsImZldGNoIl0sdHJhbnNmb3JtUmVxdWVzdDpbZnVuY3Rpb24odCxlKXtsZXQgST1lLmdldENvbnRlbnRUeXBlKCl8fCIiLHI9SS5pbmRleE9mKCJhcHBsaWNhdGlvbi9qc29uIik+LTEsZz1pLmlzT2JqZWN0KHQpO2lmKGcmJmkuaXNIVE1MRm9ybSh0KSYmKHQ9bmV3IEZvcm1EYXRhKHQpKSxpLmlzRm9ybURhdGEodCkpcmV0dXJuIHI/SlNPTi5zdHJpbmdpZnkoSkEodCkpOnQ7aWYoaS5pc0FycmF5QnVmZmVyKHQpfHxpLmlzQnVmZmVyKHQpfHxpLmlzU3RyZWFtKHQpfHxpLmlzRmlsZSh0KXx8aS5pc0Jsb2IodCl8fGkuaXNSZWFkYWJsZVN0cmVhbSh0KSlyZXR1cm4gdDtpZihpLmlzQXJyYXlCdWZmZXJWaWV3KHQpKXJldHVybiB0LmJ1ZmZlcjtpZihpLmlzVVJMU2VhcmNoUGFyYW1zKHQpKXJldHVybiBlLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIsITEpLHQudG9TdHJpbmcoKTtsZXQgbjtpZihnKXtpZihJLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpPi0xKXJldHVybiBvdCh0LHRoaXMuZm9ybVNlcmlhbGl6ZXIpLnRvU3RyaW5nKCk7aWYoKG49aS5pc0ZpbGVMaXN0KHQpKXx8SS5pbmRleE9mKCJtdWx0aXBhcnQvZm9ybS1kYXRhIik+LTEpe2xldCBFPXRoaXMuZW52JiZ0aGlzLmVudi5Gb3JtRGF0YTtyZXR1cm4gVChuP3siZmlsZXNbXSI6dH06dCxFJiZuZXcgRSx0aGlzLmZvcm1TZXJpYWxpemVyKX19cmV0dXJuIGd8fHI/KGUuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL2pzb24iLCExKSxXSSh0KSk6dH1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbih0KXtsZXQgZT10aGlzLnRyYW5zaXRpb25hbHx8Z3QudHJhbnNpdGlvbmFsLEk9ZSYmZS5mb3JjZWRKU09OUGFyc2luZyxyPXRoaXMucmVzcG9uc2VUeXBlPT09Impzb24iO2lmKGkuaXNSZXNwb25zZSh0KXx8aS5pc1JlYWRhYmxlU3RyZWFtKHQpKXJldHVybiB0O2lmKHQmJmkuaXNTdHJpbmcodCkmJihJJiYhdGhpcy5yZXNwb25zZVR5cGV8fHIpKXtsZXQgbz0hKGUmJmUuc2lsZW50SlNPTlBhcnNpbmcpJiZyO3RyeXtyZXR1cm4gSlNPTi5wYXJzZSh0LHRoaXMucGFyc2VSZXZpdmVyKX1jYXRjaChuKXtpZihvKXRocm93IG4ubmFtZT09PSJTeW50YXhFcnJvciI/dS5mcm9tKG4sdS5FUlJfQkFEX1JFU1BPTlNFLHRoaXMsbnVsbCx0aGlzLnJlc3BvbnNlKTpufX1yZXR1cm4gdH1dLHRpbWVvdXQ6MCx4c3JmQ29va2llTmFtZToiWFNSRi1UT0tFTiIseHNyZkhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiIsbWF4Q29udGVudExlbmd0aDotMSxtYXhCb2R5TGVuZ3RoOi0xLGVudjp7Rm9ybURhdGE6aC5jbGFzc2VzLkZvcm1EYXRhLEJsb2I6aC5jbGFzc2VzLkJsb2J9LHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0yMDAmJnQ8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiwiQ29udGVudC1UeXBlIjp2b2lkIDB9fX07aS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCJdLEE9PntndC5oZWFkZXJzW0FdPXt9fSk7dmFyIEFBPWd0O3ZhciBaST1pLnRvT2JqZWN0U2V0KFsiYWdlIiwiYXV0aG9yaXphdGlvbiIsImNvbnRlbnQtbGVuZ3RoIiwiY29udGVudC10eXBlIiwiZXRhZyIsImV4cGlyZXMiLCJmcm9tIiwiaG9zdCIsImlmLW1vZGlmaWVkLXNpbmNlIiwiaWYtdW5tb2RpZmllZC1zaW5jZSIsImxhc3QtbW9kaWZpZWQiLCJsb2NhdGlvbiIsIm1heC1mb3J3YXJkcyIsInByb3h5LWF1dGhvcml6YXRpb24iLCJyZWZlcmVyIiwicmV0cnktYWZ0ZXIiLCJ1c2VyLWFnZW50Il0pLHRlPUE9PntsZXQgdD17fSxlLEkscjtyZXR1cm4gQSYmQS5zcGxpdChgJTBBYCkuZm9yRWFjaChmdW5jdGlvbihvKXtyPW8uaW5kZXhPZigiOiIpLGU9by5zdWJzdHJpbmcoMCxyKS50cmltKCkudG9Mb3dlckNhc2UoKSxJPW8uc3Vic3RyaW5nKHIrMSkudHJpbSgpLCEoIWV8fHRbZV0mJlpJW2VdKSYmKGU9PT0ic2V0LWNvb2tpZSI/dFtlXT90W2VdLnB1c2goSSk6dFtlXT1bSV06dFtlXT10W2VdP3RbZV0rIiwgIitJOkkpfSksdH07dmFyIGVlPVN5bWJvbCgiaW50ZXJuYWxzIik7ZnVuY3Rpb24gQ0EoQSl7cmV0dXJuIEEmJlN0cmluZyhBKS50cmltKCkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBIQShBKXtyZXR1cm4gQT09PSExfHxBPT1udWxsP0E6aS5pc0FycmF5KEEpP0EubWFwKEhBKTpTdHJpbmcoQSl9ZnVuY3Rpb24gVkkoQSl7bGV0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKSxlPS8oW15cXHMsOz1dKylcXHMqKD86PVxccyooW14sO10rKSk/L2csSTtmb3IoO0k9ZS5leGVjKEEpOyl0W0lbMV1dPUlbMl07cmV0dXJuIHR9dmFyIFhJPUE9Pi9eWy1fYS16QS1aMC05XmB8fiwhJTIzJCUmXCcqKy5dKyQvLnRlc3QoQS50cmltKCkpO2Z1bmN0aW9uIGl0KEEsdCxlLEkscil7aWYoaS5pc0Z1bmN0aW9uKEkpKXJldHVybiBJLmNhbGwodGhpcyx0LGUpO2lmKHImJih0PWUpLCEhaS5pc1N0cmluZyh0KSl7aWYoaS5pc1N0cmluZyhJKSlyZXR1cm4gdC5pbmRleE9mKEkpIT09LTE7aWYoaS5pc1JlZ0V4cChJKSlyZXR1cm4gSS50ZXN0KHQpfX1mdW5jdGlvbiBfSShBKXtyZXR1cm4gQS50cmltKCkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8oW2EtelxcZF0pKFxcdyopL2csKHQsZSxJKT0+ZS50b1VwcGVyQ2FzZSgpK0kpfWZ1bmN0aW9uIHpJKEEsdCl7bGV0IGU9aS50b0NhbWVsQ2FzZSgiICIrdCk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKEk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxJK2Use3ZhbHVlOmZ1bmN0aW9uKHIsZyxvKXtyZXR1cm4gdGhpc1tJXS5jYWxsKHRoaXMsdCxyLGcsbyl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9dmFyIHRBPWNsYXNze2NvbnN0cnVjdG9yKHQpe3QmJnRoaXMuc2V0KHQpfXNldCh0LGUsSSl7bGV0IHI9dGhpcztmdW5jdGlvbiBnKG4sRSxCKXtsZXQgcz1DQShFKTtpZighcyl0aHJvdyBuZXcgRXJyb3IoImhlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7bGV0IEM9aS5maW5kS2V5KHIscyk7KCFDfHxyW0NdPT09dm9pZCAwfHxCPT09ITB8fEI9PT12b2lkIDAmJnJbQ10hPT0hMSkmJihyW0N8fEVdPUhBKG4pKX1sZXQgbz0obixFKT0+aS5mb3JFYWNoKG4sKEIscyk9PmcoQixzLEUpKTtpZihpLmlzUGxhaW5PYmplY3QodCl8fHQgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKW8odCxlKTtlbHNlIGlmKGkuaXNTdHJpbmcodCkmJih0PXQudHJpbSgpKSYmIVhJKHQpKW8odGUodCksZSk7ZWxzZSBpZihpLmlzT2JqZWN0KHQpJiZpLmlzSXRlcmFibGUodCkpe2xldCBuPXt9LEUsQjtmb3IobGV0IHMgb2YgdCl7aWYoIWkuaXNBcnJheShzKSl0aHJvdyBUeXBlRXJyb3IoIk9iamVjdCBpdGVyYXRvciBtdXN0IHJldHVybiBhIGtleS12YWx1ZSBwYWlyIik7bltCPXNbMF1dPShFPW5bQl0pP2kuaXNBcnJheShFKT9bLi4uRSxzWzFdXTpbRSxzWzFdXTpzWzFdfW8obixlKX1lbHNlIHQhPW51bGwmJmcoZSx0LEkpO3JldHVybiB0aGlzfWdldCh0LGUpe2lmKHQ9Q0EodCksdCl7bGV0IEk9aS5maW5kS2V5KHRoaXMsdCk7aWYoSSl7bGV0IHI9dGhpc1tJXTtpZighZSlyZXR1cm4gcjtpZihlPT09ITApcmV0dXJuIFZJKHIpO2lmKGkuaXNGdW5jdGlvbihlKSlyZXR1cm4gZS5jYWxsKHRoaXMscixJKTtpZihpLmlzUmVnRXhwKGUpKXJldHVybiBlLmV4ZWMocik7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyh0LGUpe2lmKHQ9Q0EodCksdCl7bGV0IEk9aS5maW5kS2V5KHRoaXMsdCk7cmV0dXJuISEoSSYmdGhpc1tJXSE9PXZvaWQgMCYmKCFlfHxpdCh0aGlzLHRoaXNbSV0sSSxlKSkpfXJldHVybiExfWRlbGV0ZSh0LGUpe2xldCBJPXRoaXMscj0hMTtmdW5jdGlvbiBnKG8pe2lmKG89Q0Eobyksbyl7bGV0IG49aS5maW5kS2V5KEksbyk7biYmKCFlfHxpdChJLElbbl0sbixlKSkmJihkZWxldGUgSVtuXSxyPSEwKX19cmV0dXJuIGkuaXNBcnJheSh0KT90LmZvckVhY2goZyk6Zyh0KSxyfWNsZWFyKHQpe2xldCBlPU9iamVjdC5rZXlzKHRoaXMpLEk9ZS5sZW5ndGgscj0hMTtmb3IoO0ktLTspe2xldCBnPWVbSV07KCF0fHxpdCh0aGlzLHRoaXNbZ10sZyx0LCEwKSkmJihkZWxldGUgdGhpc1tnXSxyPSEwKX1yZXR1cm4gcn1ub3JtYWxpemUodCl7bGV0IGU9dGhpcyxJPXt9O3JldHVybiBpLmZvckVhY2godGhpcywocixnKT0+e2xldCBvPWkuZmluZEtleShJLGcpO2lmKG8pe2Vbb109SEEociksZGVsZXRlIGVbZ107cmV0dXJufWxldCBuPXQ/X0koZyk6U3RyaW5nKGcpLnRyaW0oKTtuIT09ZyYmZGVsZXRlIGVbZ10sZVtuXT1IQShyKSxJW25dPSEwfSksdGhpc31jb25jYXQoLi4udCl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4udCl9dG9KU09OKHQpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGkuZm9yRWFjaCh0aGlzLChJLHIpPT57SSE9bnVsbCYmSSE9PSExJiYoZVtyXT10JiZpLmlzQXJyYXkoSSk/SS5qb2luKCIsICIpOkkpfSksZX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbdCxlXSk9PnQrIjogIitlKS5qb2luKGAlMEFgKX1nZXRTZXRDb29raWUoKXtyZXR1cm4gdGhpcy5nZXQoInNldC1jb29raWUiKXx8W119Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm4iQXhpb3NIZWFkZXJzIn1zdGF0aWMgZnJvbSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIHRoaXM/dDpuZXcgdGhpcyh0KX1zdGF0aWMgY29uY2F0KHQsLi4uZSl7bGV0IEk9bmV3IHRoaXModCk7cmV0dXJuIGUuZm9yRWFjaChyPT5JLnNldChyKSksSX1zdGF0aWMgYWNjZXNzb3IodCl7bGV0IEk9KHRoaXNbZWVdPXRoaXNbZWVdPXthY2Nlc3NvcnM6e319KS5hY2Nlc3NvcnMscj10aGlzLnByb3RvdHlwZTtmdW5jdGlvbiBnKG8pe2xldCBuPUNBKG8pO0lbbl18fCh6SShyLG8pLElbbl09ITApfXJldHVybiBpLmlzQXJyYXkodCk/dC5mb3JFYWNoKGcpOmcodCksdGhpc319O3RBLmFjY2Vzc29yKFsiQ29udGVudC1UeXBlIiwiQ29udGVudC1MZW5ndGgiLCJBY2NlcHQiLCJBY2NlcHQtRW5jb2RpbmciLCJVc2VyLUFnZW50IiwiQXV0aG9yaXphdGlvbiJdKTtpLnJlZHVjZURlc2NyaXB0b3JzKHRBLnByb3RvdHlwZSwoe3ZhbHVlOkF9LHQpPT57bGV0IGU9dFswXS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSk7cmV0dXJue2dldDooKT0+QSxzZXQoSSl7dGhpc1tlXT1JfX19KTtpLmZyZWV6ZU1ldGhvZHModEEpO3ZhciBwPXRBO2Z1bmN0aW9uIEJBKEEsdCl7bGV0IGU9dGhpc3x8QUEsST10fHxlLHI9cC5mcm9tKEkuaGVhZGVycyksZz1JLmRhdGE7cmV0dXJuIGkuZm9yRWFjaChBLGZ1bmN0aW9uKG4pe2c9bi5jYWxsKGUsZyxyLm5vcm1hbGl6ZSgpLHQ/dC5zdGF0dXM6dm9pZCAwKX0pLHIubm9ybWFsaXplKCksZ31mdW5jdGlvbiBhQShBKXtyZXR1cm4hIShBJiZBLl9fQ0FOQ0VMX18pfWZ1bmN0aW9uIEllKEEsdCxlKXt1LmNhbGwodGhpcyxBPz8iY2FuY2VsZWQiLHUuRVJSX0NBTkNFTEVELHQsZSksdGhpcy5uYW1lPSJDYW5jZWxlZEVycm9yIn1pLmluaGVyaXRzKEllLHUse19fQ0FOQ0VMX186ITB9KTt2YXIgSD1JZTtmdW5jdGlvbiBRQShBLHQsZSl7bGV0IEk9ZS5jb25maWcudmFsaWRhdGVTdGF0dXM7IWUuc3RhdHVzfHwhSXx8SShlLnN0YXR1cyk/QShlKTp0KG5ldyB1KCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrZS5zdGF0dXMsW3UuRVJSX0JBRF9SRVFVRVNULHUuRVJSX0JBRF9SRVNQT05TRV1bTWF0aC5mbG9vcihlLnN0YXR1cy8xMDApLTRdLGUuY29uZmlnLGUucmVxdWVzdCxlKSl9ZnVuY3Rpb24gc3QoQSl7bGV0IHQ9L14oWy0rXFx3XXsxLDI1fSkoOj9cXC9cXC98OikvLmV4ZWMoQSk7cmV0dXJuIHQmJnRbMV18fCIifWZ1bmN0aW9uIHZJKEEsdCl7QT1BfHwxMDtsZXQgZT1uZXcgQXJyYXkoQSksST1uZXcgQXJyYXkoQSkscj0wLGc9MCxvO3JldHVybiB0PXQhPT12b2lkIDA/dDoxZTMsZnVuY3Rpb24oRSl7bGV0IEI9RGF0ZS5ub3coKSxzPUlbZ107b3x8KG89QiksZVtyXT1FLElbcl09QjtsZXQgQz1nLGw9MDtmb3IoO0MhPT1yOylsKz1lW0MrK10sQz1DJUE7aWYocj0ocisxKSVBLHI9PT1nJiYoZz0oZysxKSVBKSxCLW88dClyZXR1cm47bGV0IGE9cyYmQi1zO3JldHVybiBhP01hdGgucm91bmQobCoxZTMvYSk6dm9pZCAwfX12YXIgcmU9dkk7ZnVuY3Rpb24gJEkoQSx0KXtsZXQgZT0wLEk9MWUzL3QscixnLG89KEIscz1EYXRlLm5vdygpKT0+e2U9cyxyPW51bGwsZyYmKGNsZWFyVGltZW91dChnKSxnPW51bGwpLEEoLi4uQil9O3JldHVyblsoLi4uQik9PntsZXQgcz1EYXRlLm5vdygpLEM9cy1lO0M+PUk/byhCLHMpOihyPUIsZ3x8KGc9c2V0VGltZW91dCgoKT0+e2c9bnVsbCxvKHIpfSxJLUMpKSl9LCgpPT5yJiZvKHIpXX12YXIgb2U9JEk7dmFyIGVBPShBLHQsZT0zKT0+e2xldCBJPTAscj1yZSg1MCwyNTApO3JldHVybiBvZShnPT57bGV0IG89Zy5sb2FkZWQsbj1nLmxlbmd0aENvbXB1dGFibGU/Zy50b3RhbDp2b2lkIDAsRT1vLUksQj1yKEUpLHM9bzw9bjtJPW87bGV0IEM9e2xvYWRlZDpvLHRvdGFsOm4scHJvZ3Jlc3M6bj9vL246dm9pZCAwLGJ5dGVzOkUscmF0ZTpCfHx2b2lkIDAsZXN0aW1hdGVkOkImJm4mJnM/KG4tbykvQjp2b2lkIDAsZXZlbnQ6ZyxsZW5ndGhDb21wdXRhYmxlOm4hPW51bGwsW3Q/ImRvd25sb2FkIjoidXBsb2FkIl06ITB9O0EoQyl9LGUpfSxudD0oQSx0KT0+e2xldCBlPUEhPW51bGw7cmV0dXJuW0k9PnRbMF0oe2xlbmd0aENvbXB1dGFibGU6ZSx0b3RhbDpBLGxvYWRlZDpJfSksdFsxXV19LEN0PUE9PiguLi50KT0+aS5hc2FwKCgpPT5BKC4uLnQpKTt2YXIgZ2U9aC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/KChBLHQpPT5lPT4oZT1uZXcgVVJMKGUsaC5vcmlnaW4pLEEucHJvdG9jb2w9PT1lLnByb3RvY29sJiZBLmhvc3Q9PT1lLmhvc3QmJih0fHxBLnBvcnQ9PT1lLnBvcnQpKSkobmV3IFVSTChoLm9yaWdpbiksaC5uYXZpZ2F0b3ImJi8obXNpZXx0cmlkZW50KS9pLnRlc3QoaC5uYXZpZ2F0b3IudXNlckFnZW50KSk6KCk9PiEwO3ZhciBpZT1oLmhhc1N0YW5kYXJkQnJvd3NlckVudj97d3JpdGUoQSx0LGUsSSxyLGcpe2xldCBvPVtBKyI9IitlbmNvZGVVUklDb21wb25lbnQodCldO2kuaXNOdW1iZXIoZSkmJm8ucHVzaCgiZXhwaXJlcz0iK25ldyBEYXRlKGUpLnRvR01UU3RyaW5nKCkpLGkuaXNTdHJpbmcoSSkmJm8ucHVzaCgicGF0aD0iK0kpLGkuaXNTdHJpbmcocikmJm8ucHVzaCgiZG9tYWluPSIrciksZz09PSEwJiZvLnB1c2goInNlY3VyZSIpLGRvY3VtZW50LmNvb2tpZT1vLmpvaW4oIjsgIil9LHJlYWQoQSl7bGV0IHQ9ZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIihefDtcXFxccyopKCIrQSsiKT0oW147XSopIikpO3JldHVybiB0P2RlY29kZVVSSUNvbXBvbmVudCh0WzNdKTpudWxsfSxyZW1vdmUoQSl7dGhpcy53cml0ZShBLCIiLERhdGUubm93KCktODY0ZTUpfX06e3dyaXRlKCl7fSxyZWFkKCl7cmV0dXJuIG51bGx9LHJlbW92ZSgpe319O2Z1bmN0aW9uIEJ0KEEpe3JldHVybi9eKFthLXpdW2EtelxcZCtcXC0uXSo6KT9cXC9cXC8vaS50ZXN0KEEpfWZ1bmN0aW9uIGF0KEEsdCl7cmV0dXJuIHQ/QS5yZXBsYWNlKC9cXC8/XFwvJC8sIiIpKyIvIit0LnJlcGxhY2UoL15cXC8rLywiIik6QX1mdW5jdGlvbiBFQShBLHQsZSl7bGV0IEk9IUJ0KHQpO3JldHVybiBBJiYoSXx8ZT09ITEpP2F0KEEsdCk6dH12YXIgc2U9QT0+QSBpbnN0YW5jZW9mIHA/ey4uLkF9OkE7ZnVuY3Rpb24gYihBLHQpe3Q9dHx8e307bGV0IGU9e307ZnVuY3Rpb24gSShCLHMsQyxsKXtyZXR1cm4gaS5pc1BsYWluT2JqZWN0KEIpJiZpLmlzUGxhaW5PYmplY3Qocyk/aS5tZXJnZS5jYWxsKHtjYXNlbGVzczpsfSxCLHMpOmkuaXNQbGFpbk9iamVjdChzKT9pLm1lcmdlKHt9LHMpOmkuaXNBcnJheShzKT9zLnNsaWNlKCk6c31mdW5jdGlvbiByKEIscyxDLGwpe2lmKGkuaXNVbmRlZmluZWQocykpe2lmKCFpLmlzVW5kZWZpbmVkKEIpKXJldHVybiBJKHZvaWQgMCxCLEMsbCl9ZWxzZSByZXR1cm4gSShCLHMsQyxsKX1mdW5jdGlvbiBnKEIscyl7aWYoIWkuaXNVbmRlZmluZWQocykpcmV0dXJuIEkodm9pZCAwLHMpfWZ1bmN0aW9uIG8oQixzKXtpZihpLmlzVW5kZWZpbmVkKHMpKXtpZighaS5pc1VuZGVmaW5lZChCKSlyZXR1cm4gSSh2b2lkIDAsQil9ZWxzZSByZXR1cm4gSSh2b2lkIDAscyl9ZnVuY3Rpb24gbihCLHMsQyl7aWYoQyBpbiB0KXJldHVybiBJKEIscyk7aWYoQyBpbiBBKXJldHVybiBJKHZvaWQgMCxCKX1sZXQgRT17dXJsOmcsbWV0aG9kOmcsZGF0YTpnLGJhc2VVUkw6byx0cmFuc2Zvcm1SZXF1ZXN0Om8sdHJhbnNmb3JtUmVzcG9uc2U6byxwYXJhbXNTZXJpYWxpemVyOm8sdGltZW91dDpvLHRpbWVvdXRNZXNzYWdlOm8sd2l0aENyZWRlbnRpYWxzOm8sd2l0aFhTUkZUb2tlbjpvLGFkYXB0ZXI6byxyZXNwb25zZVR5cGU6byx4c3JmQ29va2llTmFtZTpvLHhzcmZIZWFkZXJOYW1lOm8sb25VcGxvYWRQcm9ncmVzczpvLG9uRG93bmxvYWRQcm9ncmVzczpvLGRlY29tcHJlc3M6byxtYXhDb250ZW50TGVuZ3RoOm8sbWF4Qm9keUxlbmd0aDpvLGJlZm9yZVJlZGlyZWN0Om8sdHJhbnNwb3J0Om8saHR0cEFnZW50Om8saHR0cHNBZ2VudDpvLGNhbmNlbFRva2VuOm8sc29ja2V0UGF0aDpvLHJlc3BvbnNlRW5jb2Rpbmc6byx2YWxpZGF0ZVN0YXR1czpuLGhlYWRlcnM6KEIscyxDKT0+cihzZShCKSxzZShzKSxDLCEwKX07cmV0dXJuIGkuZm9yRWFjaChPYmplY3Qua2V5cyh7Li4uQSwuLi50fSksZnVuY3Rpb24ocyl7bGV0IEM9RVtzXXx8cixsPUMoQVtzXSx0W3NdLHMpO2kuaXNVbmRlZmluZWQobCkmJkMhPT1ufHwoZVtzXT1sKX0pLGV9dmFyIFlBPUE9PntsZXQgdD1iKHt9LEEpLHtkYXRhOmUsd2l0aFhTUkZUb2tlbjpJLHhzcmZIZWFkZXJOYW1lOnIseHNyZkNvb2tpZU5hbWU6ZyxoZWFkZXJzOm8sYXV0aDpufT10O2lmKHQuaGVhZGVycz1vPXAuZnJvbShvKSx0LnVybD1uQShFQSh0LmJhc2VVUkwsdC51cmwsdC5hbGxvd0Fic29sdXRlVXJscyksQS5wYXJhbXMsQS5wYXJhbXNTZXJpYWxpemVyKSxuJiZvLnNldCgiQXV0aG9yaXphdGlvbiIsIkJhc2ljICIrYnRvYSgobi51c2VybmFtZXx8IiIpKyI6Iisobi5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQobi5wYXNzd29yZCkpOiIiKSkpLGkuaXNGb3JtRGF0YShlKSl7aWYoaC5oYXNTdGFuZGFyZEJyb3dzZXJFbnZ8fGguaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52KW8uc2V0Q29udGVudFR5cGUodm9pZCAwKTtlbHNlIGlmKGkuaXNGdW5jdGlvbihlLmdldEhlYWRlcnMpKXtsZXQgRT1lLmdldEhlYWRlcnMoKSxCPVsiY29udGVudC10eXBlIiwiY29udGVudC1sZW5ndGgiXTtPYmplY3QuZW50cmllcyhFKS5mb3JFYWNoKChbcyxDXSk9PntCLmluY2x1ZGVzKHMudG9Mb3dlckNhc2UoKSkmJm8uc2V0KHMsQyl9KX19aWYoaC5oYXNTdGFuZGFyZEJyb3dzZXJFbnYmJihJJiZpLmlzRnVuY3Rpb24oSSkmJihJPUkodCkpLEl8fEkhPT0hMSYmZ2UodC51cmwpKSl7bGV0IEU9ciYmZyYmaWUucmVhZChnKTtFJiZvLnNldChyLEUpfXJldHVybiB0fTt2YXIgQXI9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0PCJ1IixuZT1BciYmZnVuY3Rpb24oQSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsSSl7bGV0IHI9WUEoQSksZz1yLmRhdGEsbz1wLmZyb20oci5oZWFkZXJzKS5ub3JtYWxpemUoKSx7cmVzcG9uc2VUeXBlOm4sb25VcGxvYWRQcm9ncmVzczpFLG9uRG93bmxvYWRQcm9ncmVzczpCfT1yLHMsQyxsLGEsUTtmdW5jdGlvbiBmKCl7YSYmYSgpLFEmJlEoKSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKHMpLHIuc2lnbmFsJiZyLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIscyl9bGV0IGM9bmV3IFhNTEh0dHBSZXF1ZXN0O2Mub3BlbihyLm1ldGhvZC50b1VwcGVyQ2FzZSgpLHIudXJsLCEwKSxjLnRpbWVvdXQ9ci50aW1lb3V0O2Z1bmN0aW9uIEQoKXtpZighYylyZXR1cm47bGV0IHk9cC5mcm9tKCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiaW4gYyYmYy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSksaz17ZGF0YTohbnx8bj09PSJ0ZXh0Inx8bj09PSJqc29uIj9jLnJlc3BvbnNlVGV4dDpjLnJlc3BvbnNlLHN0YXR1czpjLnN0YXR1cyxzdGF0dXNUZXh0OmMuc3RhdHVzVGV4dCxoZWFkZXJzOnksY29uZmlnOkEscmVxdWVzdDpjfTtRQShmdW5jdGlvbihHKXtlKEcpLGYoKX0sZnVuY3Rpb24oRyl7SShHKSxmKCl9LGspLGM9bnVsbH0ib25sb2FkZW5kImluIGM/Yy5vbmxvYWRlbmQ9RDpjLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpeyFjfHxjLnJlYWR5U3RhdGUhPT00fHxjLnN0YXR1cz09PTAmJiEoYy5yZXNwb25zZVVSTCYmYy5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpPT09MCl8fHNldFRpbWVvdXQoRCl9LGMub25hYm9ydD1mdW5jdGlvbigpe2MmJihJKG5ldyB1KCJSZXF1ZXN0IGFib3J0ZWQiLHUuRUNPTk5BQk9SVEVELEEsYykpLGM9bnVsbCl9LGMub25lcnJvcj1mdW5jdGlvbihSKXtsZXQgaz1SJiZSLm1lc3NhZ2U/Ui5tZXNzYWdlOiJOZXR3b3JrIEVycm9yIixQPW5ldyB1KGssdS5FUlJfTkVUV09SSyxBLGMpO1AuZXZlbnQ9Unx8bnVsbCxJKFApLGM9bnVsbH0sYy5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXtsZXQgUj1yLnRpbWVvdXQ/InRpbWVvdXQgb2YgIityLnRpbWVvdXQrIm1zIGV4Y2VlZGVkIjoidGltZW91dCBleGNlZWRlZCIsaz1yLnRyYW5zaXRpb25hbHx8YkE7ci50aW1lb3V0RXJyb3JNZXNzYWdlJiYoUj1yLnRpbWVvdXRFcnJvck1lc3NhZ2UpLEkobmV3IHUoUixrLmNsYXJpZnlUaW1lb3V0RXJyb3I/dS5FVElNRURPVVQ6dS5FQ09OTkFCT1JURUQsQSxjKSksYz1udWxsfSxnPT09dm9pZCAwJiZvLnNldENvbnRlbnRUeXBlKG51bGwpLCJzZXRSZXF1ZXN0SGVhZGVyImluIGMmJmkuZm9yRWFjaChvLnRvSlNPTigpLGZ1bmN0aW9uKFIsayl7Yy5zZXRSZXF1ZXN0SGVhZGVyKGssUil9KSxpLmlzVW5kZWZpbmVkKHIud2l0aENyZWRlbnRpYWxzKXx8KGMud2l0aENyZWRlbnRpYWxzPSEhci53aXRoQ3JlZGVudGlhbHMpLG4mJm4hPT0ianNvbiImJihjLnJlc3BvbnNlVHlwZT1yLnJlc3BvbnNlVHlwZSksQiYmKFtsLFFdPWVBKEIsITApLGMuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGwpKSxFJiZjLnVwbG9hZCYmKFtDLGFdPWVBKEUpLGMudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixDKSxjLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJsb2FkZW5kIixhKSksKHIuY2FuY2VsVG9rZW58fHIuc2lnbmFsKSYmKHM9eT0+e2MmJihJKCF5fHx5LnR5cGU/bmV3IEgobnVsbCxBLGMpOnkpLGMuYWJvcnQoKSxjPW51bGwpfSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnN1YnNjcmliZShzKSxyLnNpZ25hbCYmKHIuc2lnbmFsLmFib3J0ZWQ/cygpOnIuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixzKSkpO2xldCBGPXN0KHIudXJsKTtpZihGJiZoLnByb3RvY29scy5pbmRleE9mKEYpPT09LTEpe0kobmV3IHUoIlVuc3VwcG9ydGVkIHByb3RvY29sICIrRisiOiIsdS5FUlJfQkFEX1JFUVVFU1QsQSkpO3JldHVybn1jLnNlbmQoZ3x8bnVsbCl9KX07dmFyIHRyPShBLHQpPT57bGV0e2xlbmd0aDplfT1BPUE/QS5maWx0ZXIoQm9vbGVhbik6W107aWYodHx8ZSl7bGV0IEk9bmV3IEFib3J0Q29udHJvbGxlcixyLGc9ZnVuY3Rpb24oQil7aWYoIXIpe3I9ITAsbigpO2xldCBzPUIgaW5zdGFuY2VvZiBFcnJvcj9COnRoaXMucmVhc29uO0kuYWJvcnQocyBpbnN0YW5jZW9mIHU/czpuZXcgSChzIGluc3RhbmNlb2YgRXJyb3I/cy5tZXNzYWdlOnMpKX19LG89dCYmc2V0VGltZW91dCgoKT0+e289bnVsbCxnKG5ldyB1KGB0aW1lb3V0ICR7dH0gb2YgbXMgZXhjZWVkZWRgLHUuRVRJTUVET1VUKSl9LHQpLG49KCk9PntBJiYobyYmY2xlYXJUaW1lb3V0KG8pLG89bnVsbCxBLmZvckVhY2goQj0+e0IudW5zdWJzY3JpYmU/Qi51bnN1YnNjcmliZShnKTpCLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixnKX0pLEE9bnVsbCl9O0EuZm9yRWFjaChCPT5CLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixnKSk7bGV0e3NpZ25hbDpFfT1JO3JldHVybiBFLnVuc3Vic2NyaWJlPSgpPT5pLmFzYXAobiksRX19LENlPXRyO3ZhciBlcj1mdW5jdGlvbiooQSx0KXtsZXQgZT1BLmJ5dGVMZW5ndGg7aWYoIXR8fGU8dCl7eWllbGQgQTtyZXR1cm59bGV0IEk9MCxyO2Zvcig7STxlOylyPUkrdCx5aWVsZCBBLnNsaWNlKEksciksST1yfSxJcj1hc3luYyBmdW5jdGlvbiooQSx0KXtmb3IgYXdhaXQobGV0IGUgb2YgcnIoQSkpeWllbGQqZXIoZSx0KX0scnI9YXN5bmMgZnVuY3Rpb24qKEEpe2lmKEFbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKXt5aWVsZCpBO3JldHVybn1sZXQgdD1BLmdldFJlYWRlcigpO3RyeXtmb3IoOzspe2xldHtkb25lOmUsdmFsdWU6SX09YXdhaXQgdC5yZWFkKCk7aWYoZSlicmVhazt5aWVsZCBJfX1maW5hbGx5e2F3YWl0IHQuY2FuY2VsKCl9fSxRdD0oQSx0LGUsSSk9PntsZXQgcj1JcihBLHQpLGc9MCxvLG49RT0+e298fChvPSEwLEkmJkkoRSkpfTtyZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHthc3luYyBwdWxsKEUpe3RyeXtsZXR7ZG9uZTpCLHZhbHVlOnN9PWF3YWl0IHIubmV4dCgpO2lmKEIpe24oKSxFLmNsb3NlKCk7cmV0dXJufWxldCBDPXMuYnl0ZUxlbmd0aDtpZihlKXtsZXQgbD1nKz1DO2UobCl9RS5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KHMpKX1jYXRjaChCKXt0aHJvdyBuKEIpLEJ9fSxjYW5jZWwoRSl7cmV0dXJuIG4oRSksci5yZXR1cm4oKX19LHtoaWdoV2F0ZXJNYXJrOjJ9KX07dmFyIEJlPTY0KjEwMjQse2lzRnVuY3Rpb246cUF9PWksY2U9KCh7ZmV0Y2g6QSxSZXF1ZXN0OnQsUmVzcG9uc2U6ZX0pPT4oe2ZldGNoOkEsUmVxdWVzdDp0LFJlc3BvbnNlOmV9KSkoaS5nbG9iYWwpLHtSZWFkYWJsZVN0cmVhbTphZSxUZXh0RW5jb2RlcjpRZX09aS5nbG9iYWwsRWU9KEEsLi4udCk9Pnt0cnl7cmV0dXJuISFBKC4uLnQpfWNhdGNoe3JldHVybiExfX0sb3I9QT0+e2xldHtmZXRjaDp0LFJlcXVlc3Q6ZSxSZXNwb25zZTpJfT1PYmplY3QuYXNzaWduKHt9LGNlLEEpLHI9cUEodCksZz1xQShlKSxvPXFBKEkpO2lmKCFyKXJldHVybiExO2xldCBuPXImJnFBKGFlKSxFPXImJih0eXBlb2YgUWU9PSJmdW5jdGlvbiI/KFE9PmY9PlEuZW5jb2RlKGYpKShuZXcgUWUpOmFzeW5jIFE9Pm5ldyBVaW50OEFycmF5KGF3YWl0IG5ldyBlKFEpLmFycmF5QnVmZmVyKCkpKSxCPWcmJm4mJkVlKCgpPT57bGV0IFE9ITEsZj1uZXcgZShoLm9yaWdpbix7Ym9keTpuZXcgYWUsbWV0aG9kOiJQT1NUIixnZXQgZHVwbGV4KCl7cmV0dXJuIFE9ITAsImhhbGYifX0pLmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKTtyZXR1cm4gUSYmIWZ9KSxzPW8mJm4mJkVlKCgpPT5pLmlzUmVhZGFibGVTdHJlYW0obmV3IEkoIiIpLmJvZHkpKSxDPXtzdHJlYW06cyYmKFE9PlEuYm9keSl9O3ImJlsidGV4dCIsImFycmF5QnVmZmVyIiwiYmxvYiIsImZvcm1EYXRhIiwic3RyZWFtIl0uZm9yRWFjaChRPT57IUNbUV0mJihDW1FdPShmLGMpPT57bGV0IEQ9ZiYmZltRXTtpZihEKXJldHVybiBELmNhbGwoZik7dGhyb3cgbmV3IHUoYFJlc3BvbnNlIHR5cGUgXCcke1F9XCcgaXMgbm90IHN1cHBvcnRlZGAsdS5FUlJfTk9UX1NVUFBPUlQsYyl9KX0pO2xldCBsPWFzeW5jIFE9PntpZihRPT1udWxsKXJldHVybiAwO2lmKGkuaXNCbG9iKFEpKXJldHVybiBRLnNpemU7aWYoaS5pc1NwZWNDb21wbGlhbnRGb3JtKFEpKXJldHVybihhd2FpdCBuZXcgZShoLm9yaWdpbix7bWV0aG9kOiJQT1NUIixib2R5OlF9KS5hcnJheUJ1ZmZlcigpKS5ieXRlTGVuZ3RoO2lmKGkuaXNBcnJheUJ1ZmZlclZpZXcoUSl8fGkuaXNBcnJheUJ1ZmZlcihRKSlyZXR1cm4gUS5ieXRlTGVuZ3RoO2lmKGkuaXNVUkxTZWFyY2hQYXJhbXMoUSkmJihRPVErIiIpLGkuaXNTdHJpbmcoUSkpcmV0dXJuKGF3YWl0IEUoUSkpLmJ5dGVMZW5ndGh9LGE9YXN5bmMoUSxmKT0+e2xldCBjPWkudG9GaW5pdGVOdW1iZXIoUS5nZXRDb250ZW50TGVuZ3RoKCkpO3JldHVybiBjPz9sKGYpfTtyZXR1cm4gYXN5bmMgUT0+e2xldHt1cmw6ZixtZXRob2Q6YyxkYXRhOkQsc2lnbmFsOkYsY2FuY2VsVG9rZW46eSx0aW1lb3V0OlIsb25Eb3dubG9hZFByb2dyZXNzOmssb25VcGxvYWRQcm9ncmVzczpQLHJlc3BvbnNlVHlwZTpHLGhlYWRlcnM6V0Esd2l0aENyZWRlbnRpYWxzOmRBPSJzYW1lLW9yaWdpbiIsZmV0Y2hPcHRpb25zOm10fT1ZQShRKTtHPUc/KEcrIiIpLnRvTG93ZXJDYXNlKCk6InRleHQiO2xldCBEQT1DZShbRix5JiZ5LnRvQWJvcnRTaWduYWwoKV0sUiksckE9bnVsbCxqPURBJiZEQS51bnN1YnNjcmliZSYmKCgpPT57REEudW5zdWJzY3JpYmUoKX0pLHd0O3RyeXtpZihQJiZCJiZjIT09ImdldCImJmMhPT0iaGVhZCImJih3dD1hd2FpdCBhKFdBLEQpKSE9PTApe2xldCBPPW5ldyBlKGYse21ldGhvZDoiUE9TVCIsYm9keTpELGR1cGxleDoiaGFsZiJ9KSxYO2lmKGkuaXNGb3JtRGF0YShEKSYmKFg9Ty5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIikpJiZXQS5zZXRDb250ZW50VHlwZShYKSxPLmJvZHkpe2xldFtaQSxoQV09bnQod3QsZUEoQ3QoUCkpKTtEPVF0KE8uYm9keSxCZSxaQSxoQSl9fWkuaXNTdHJpbmcoZEEpfHwoZEE9ZEE/ImluY2x1ZGUiOiJvbWl0Iik7bGV0IEo9ZyYmImNyZWRlbnRpYWxzImluIGUucHJvdG90eXBlLHB0PXsuLi5tdCxzaWduYWw6REEsbWV0aG9kOmMudG9VcHBlckNhc2UoKSxoZWFkZXJzOldBLm5vcm1hbGl6ZSgpLnRvSlNPTigpLGJvZHk6RCxkdXBsZXg6ImhhbGYiLGNyZWRlbnRpYWxzOko/ZEE6dm9pZCAwfTtyQT1nJiZuZXcgZShmLHB0KTtsZXQgSz1hd2FpdChnP3QockEsbXQpOnQoZixwdCkpLFN0PXMmJihHPT09InN0cmVhbSJ8fEc9PT0icmVzcG9uc2UiKTtpZihzJiYoa3x8U3QmJmopKXtsZXQgTz17fTtbInN0YXR1cyIsInN0YXR1c1RleHQiLCJoZWFkZXJzIl0uZm9yRWFjaChGdD0+e09bRnRdPUtbRnRdfSk7bGV0IFg9aS50b0Zpbml0ZU51bWJlcihLLmhlYWRlcnMuZ2V0KCJjb250ZW50LWxlbmd0aCIpKSxbWkEsaEFdPWsmJm50KFgsZUEoQ3QoayksITApKXx8W107Sz1uZXcgSShRdChLLmJvZHksQmUsWkEsKCk9PntoQSYmaEEoKSxqJiZqKCl9KSxPKX1HPUd8fCJ0ZXh0IjtsZXQgSGU9YXdhaXQgQ1tpLmZpbmRLZXkoQyxHKXx8InRleHQiXShLLFEpO3JldHVybiFTdCYmaiYmaigpLGF3YWl0IG5ldyBQcm9taXNlKChPLFgpPT57UUEoTyxYLHtkYXRhOkhlLGhlYWRlcnM6cC5mcm9tKEsuaGVhZGVycyksc3RhdHVzOksuc3RhdHVzLHN0YXR1c1RleHQ6Sy5zdGF0dXNUZXh0LGNvbmZpZzpRLHJlcXVlc3Q6ckF9KX0pfWNhdGNoKEope3Rocm93IGomJmooKSxKJiZKLm5hbWU9PT0iVHlwZUVycm9yIiYmL0xvYWQgZmFpbGVkfGZldGNoL2kudGVzdChKLm1lc3NhZ2UpP09iamVjdC5hc3NpZ24obmV3IHUoIk5ldHdvcmsgRXJyb3IiLHUuRVJSX05FVFdPUkssUSxyQSkse2NhdXNlOkouY2F1c2V8fEp9KTp1LmZyb20oSixKJiZKLmNvZGUsUSxyQSl9fX0sZ3I9bmV3IE1hcCxFdD1BPT57bGV0IHQ9aS5tZXJnZS5jYWxsKHtza2lwVW5kZWZpbmVkOiEwfSxjZSxBP0EuZW52Om51bGwpLHtmZXRjaDplLFJlcXVlc3Q6SSxSZXNwb25zZTpyfT10LGc9W0kscixlXSxvPWcubGVuZ3RoLG49byxFLEIscz1ncjtmb3IoO24tLTspRT1nW25dLEI9cy5nZXQoRSksQj09PXZvaWQgMCYmcy5zZXQoRSxCPW4/bmV3IE1hcDpvcih0KSkscz1CO3JldHVybiBCfSxHZz1FdCgpO3ZhciBjdD17aHR0cDprQSx4aHI6bmUsZmV0Y2g6e2dldDpFdH19O2kuZm9yRWFjaChjdCwoQSx0KT0+e2lmKEEpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwibmFtZSIse3ZhbHVlOnR9KX1jYXRjaHt9T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsImFkYXB0ZXJOYW1lIix7dmFsdWU6dH0pfX0pO3ZhciBmZT1BPT5gLSAke0F9YCxzcj1BPT5pLmlzRnVuY3Rpb24oQSl8fEE9PT1udWxsfHxBPT09ITEsTUE9e2dldEFkYXB0ZXI6KEEsdCk9PntBPWkuaXNBcnJheShBKT9BOltBXTtsZXR7bGVuZ3RoOmV9PUEsSSxyLGc9e307Zm9yKGxldCBvPTA7bzxlO28rKyl7ST1BW29dO2xldCBuO2lmKHI9SSwhc3IoSSkmJihyPWN0WyhuPVN0cmluZyhJKSkudG9Mb3dlckNhc2UoKV0scj09PXZvaWQgMCkpdGhyb3cgbmV3IHUoYFVua25vd24gYWRhcHRlciBcJyR7bn1cJ2ApO2lmKHImJihpLmlzRnVuY3Rpb24ocil8fChyPXIuZ2V0KHQpKSkpYnJlYWs7Z1tufHwiJTIzIitvXT1yfWlmKCFyKXtsZXQgbz1PYmplY3QuZW50cmllcyhnKS5tYXAoKFtFLEJdKT0+YGFkYXB0ZXIgJHtFfSBgKyhCPT09ITE/ImlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVudmlyb25tZW50IjoiaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnVpbGQiKSksbj1lP28ubGVuZ3RoPjE/YHNpbmNlIDolMEFgK28ubWFwKGZlKS5qb2luKGAlMEFgKToiICIrZmUob1swXSk6ImFzIG5vIGFkYXB0ZXIgc3BlY2lmaWVkIjt0aHJvdyBuZXcgdSgiVGhlcmUgaXMgbm8gc3VpdGFibGUgYWRhcHRlciB0byBkaXNwYXRjaCB0aGUgcmVxdWVzdCAiK24sIkVSUl9OT1RfU1VQUE9SVCIpfXJldHVybiByfSxhZGFwdGVyczpjdH07ZnVuY3Rpb24gZnQoQSl7aWYoQS5jYW5jZWxUb2tlbiYmQS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksQS5zaWduYWwmJkEuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IEgobnVsbCxBKX1mdW5jdGlvbiBLQShBKXtyZXR1cm4gZnQoQSksQS5oZWFkZXJzPXAuZnJvbShBLmhlYWRlcnMpLEEuZGF0YT1CQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXF1ZXN0KSxbInBvc3QiLCJwdXQiLCJwYXRjaCJdLmluZGV4T2YoQS5tZXRob2QpIT09LTEmJkEuaGVhZGVycy5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwhMSksTUEuZ2V0QWRhcHRlcihBLmFkYXB0ZXJ8fEFBLmFkYXB0ZXIsQSkoQSkudGhlbihmdW5jdGlvbihJKXtyZXR1cm4gZnQoQSksSS5kYXRhPUJBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkpLEkuaGVhZGVycz1wLmZyb20oSS5oZWFkZXJzKSxJfSxmdW5jdGlvbihJKXtyZXR1cm4gYUEoSSl8fChmdChBKSxJJiZJLnJlc3BvbnNlJiYoSS5yZXNwb25zZS5kYXRhPUJBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkucmVzcG9uc2UpLEkucmVzcG9uc2UuaGVhZGVycz1wLmZyb20oSS5yZXNwb25zZS5oZWFkZXJzKSkpLFByb21pc2UucmVqZWN0KEkpfSl9dmFyIE9BPSIxLjEyLjAiO3ZhciBUQT17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKEEsdCk9PntUQVtBXT1mdW5jdGlvbihJKXtyZXR1cm4gdHlwZW9mIEk9PT1BfHwiYSIrKHQ8MT8ibiAiOiIgIikrQX19KTt2YXIgbGU9e307VEEudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKHQsZSxJKXtmdW5jdGlvbiByKGcsbyl7cmV0dXJuIltBeGlvcyB2IitPQSsiXSBUcmFuc2l0aW9uYWwgb3B0aW9uIFwnIitnKyJcJyIrbysoST8iLiAiK0k6IiIpfXJldHVybihnLG8sbik9PntpZih0PT09ITEpdGhyb3cgbmV3IHUocihvLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKGU/IiBpbiAiK2U6IiIpKSx1LkVSUl9ERVBSRUNBVEVEKTtyZXR1cm4gZSYmIWxlW29dJiYobGVbb109ITAsY29uc29sZS53YXJuKHIobywiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrZSsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSx0P3QoZyxvLG4pOiEwfX07VEEuc3BlbGxpbmc9ZnVuY3Rpb24odCl7cmV0dXJuKGUsSSk9Pihjb25zb2xlLndhcm4oYCR7SX0gaXMgbGlrZWx5IGEgbWlzc3BlbGxpbmcgb2YgJHt0fWApLCEwKX07ZnVuY3Rpb24gbnIoQSx0LGUpe2lmKHR5cGVvZiBBIT0ib2JqZWN0Iil0aHJvdyBuZXcgdSgib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIsdS5FUlJfQkFEX09QVElPTl9WQUxVRSk7bGV0IEk9T2JqZWN0LmtleXMoQSkscj1JLmxlbmd0aDtmb3IoO3ItLSA+MDspe2xldCBnPUlbcl0sbz10W2ddO2lmKG8pe2xldCBuPUFbZ10sRT1uPT09dm9pZCAwfHxvKG4sZyxBKTtpZihFIT09ITApdGhyb3cgbmV3IHUoIm9wdGlvbiAiK2crIiBtdXN0IGJlICIrRSx1LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtjb250aW51ZX1pZihlIT09ITApdGhyb3cgbmV3IHUoIlVua25vd24gb3B0aW9uICIrZyx1LkVSUl9CQURfT1BUSU9OKX19dmFyIGNBPXthc3NlcnRPcHRpb25zOm5yLHZhbGlkYXRvcnM6VEF9O3ZhciBZPWNBLnZhbGlkYXRvcnMsSUE9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5kZWZhdWx0cz10fHx7fSx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgdHQscmVzcG9uc2U6bmV3IHR0fX1hc3luYyByZXF1ZXN0KHQsZSl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLl9yZXF1ZXN0KHQsZSl9Y2F0Y2goSSl7aWYoSSBpbnN0YW5jZW9mIEVycm9yKXtsZXQgcj17fTtFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZShyKTpyPW5ldyBFcnJvcjtsZXQgZz1yLnN0YWNrP3Iuc3RhY2sucmVwbGFjZSgvXi4rXFxuLywiIik6IiI7dHJ5e0kuc3RhY2s/ZyYmIVN0cmluZyhJLnN0YWNrKS5lbmRzV2l0aChnLnJlcGxhY2UoL14uK1xcbi4rXFxuLywiIikpJiYoSS5zdGFjays9YCUwQWArZyk6SS5zdGFjaz1nfWNhdGNoe319dGhyb3cgSX19X3JlcXVlc3QodCxlKXt0eXBlb2YgdD09InN0cmluZyI/KGU9ZXx8e30sZS51cmw9dCk6ZT10fHx7fSxlPWIodGhpcy5kZWZhdWx0cyxlKTtsZXR7dHJhbnNpdGlvbmFsOkkscGFyYW1zU2VyaWFsaXplcjpyLGhlYWRlcnM6Z309ZTtJIT09dm9pZCAwJiZjQS5hc3NlcnRPcHRpb25zKEkse3NpbGVudEpTT05QYXJzaW5nOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6WS50cmFuc2l0aW9uYWwoWS5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbil9LCExKSxyIT1udWxsJiYoaS5pc0Z1bmN0aW9uKHIpP2UucGFyYW1zU2VyaWFsaXplcj17c2VyaWFsaXplOnJ9OmNBLmFzc2VydE9wdGlvbnMocix7ZW5jb2RlOlkuZnVuY3Rpb24sc2VyaWFsaXplOlkuZnVuY3Rpb259LCEwKSksZS5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMHx8KHRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDA/ZS5hbGxvd0Fic29sdXRlVXJscz10aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzOmUuYWxsb3dBYnNvbHV0ZVVybHM9ITApLGNBLmFzc2VydE9wdGlvbnMoZSx7YmFzZVVybDpZLnNwZWxsaW5nKCJiYXNlVVJMIiksd2l0aFhzcmZUb2tlbjpZLnNwZWxsaW5nKCJ3aXRoWFNSRlRva2VuIil9LCEwKSxlLm1ldGhvZD0oZS5tZXRob2R8fHRoaXMuZGVmYXVsdHMubWV0aG9kfHwiZ2V0IikudG9Mb3dlckNhc2UoKTtsZXQgbz1nJiZpLm1lcmdlKGcuY29tbW9uLGdbZS5tZXRob2RdKTtnJiZpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sUT0+e2RlbGV0ZSBnW1FdfSksZS5oZWFkZXJzPXAuY29uY2F0KG8sZyk7bGV0IG49W10sRT0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24oZil7dHlwZW9mIGYucnVuV2hlbj09ImZ1bmN0aW9uIiYmZi5ydW5XaGVuKGUpPT09ITF8fChFPUUmJmYuc3luY2hyb25vdXMsbi51bnNoaWZ0KGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpKX0pO2xldCBCPVtdO3RoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24oZil7Qi5wdXNoKGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpfSk7bGV0IHMsQz0wLGw7aWYoIUUpe2xldCBRPVtLQS5iaW5kKHRoaXMpLHZvaWQgMF07Zm9yKFEudW5zaGlmdCguLi5uKSxRLnB1c2goLi4uQiksbD1RLmxlbmd0aCxzPVByb21pc2UucmVzb2x2ZShlKTtDPGw7KXM9cy50aGVuKFFbQysrXSxRW0MrK10pO3JldHVybiBzfWw9bi5sZW5ndGg7bGV0IGE9ZTtmb3IoQz0wO0M8bDspe2xldCBRPW5bQysrXSxmPW5bQysrXTt0cnl7YT1RKGEpfWNhdGNoKGMpe2YuY2FsbCh0aGlzLGMpO2JyZWFrfX10cnl7cz1LQS5jYWxsKHRoaXMsYSl9Y2F0Y2goUSl7cmV0dXJuIFByb21pc2UucmVqZWN0KFEpfWZvcihDPTAsbD1CLmxlbmd0aDtDPGw7KXM9cy50aGVuKEJbQysrXSxCW0MrK10pO3JldHVybiBzfWdldFVyaSh0KXt0PWIodGhpcy5kZWZhdWx0cyx0KTtsZXQgZT1FQSh0LmJhc2VVUkwsdC51cmwsdC5hbGxvd0Fic29sdXRlVXJscyk7cmV0dXJuIG5BKGUsdC5wYXJhbXMsdC5wYXJhbXNTZXJpYWxpemVyKX19O2kuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJvcHRpb25zIl0sZnVuY3Rpb24odCl7SUEucHJvdG90eXBlW3RdPWZ1bmN0aW9uKGUsSSl7cmV0dXJuIHRoaXMucmVxdWVzdChiKEl8fHt9LHttZXRob2Q6dCx1cmw6ZSxkYXRhOihJfHx7fSkuZGF0YX0pKX19KTtpLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSxmdW5jdGlvbih0KXtmdW5jdGlvbiBlKEkpe3JldHVybiBmdW5jdGlvbihnLG8sbil7cmV0dXJuIHRoaXMucmVxdWVzdChiKG58fHt9LHttZXRob2Q6dCxoZWFkZXJzOkk/eyJDb250ZW50LVR5cGUiOiJtdWx0aXBhcnQvZm9ybS1kYXRhIn06e30sdXJsOmcsZGF0YTpvfSkpfX1JQS5wcm90b3R5cGVbdF09ZSgpLElBLnByb3RvdHlwZVt0KyJGb3JtIl09ZSghMCl9KTt2YXIgZkE9SUE7dmFyIGx0PWNsYXNzIEF7Y29uc3RydWN0b3IodCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO2xldCBlO3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihnKXtlPWd9KTtsZXQgST10aGlzO3RoaXMucHJvbWlzZS50aGVuKHI9PntpZighSS5fbGlzdGVuZXJzKXJldHVybjtsZXQgZz1JLl9saXN0ZW5lcnMubGVuZ3RoO2Zvcig7Zy0tID4wOylJLl9saXN0ZW5lcnNbZ10ocik7SS5fbGlzdGVuZXJzPW51bGx9KSx0aGlzLnByb21pc2UudGhlbj1yPT57bGV0IGcsbz1uZXcgUHJvbWlzZShuPT57SS5zdWJzY3JpYmUobiksZz1ufSkudGhlbihyKTtyZXR1cm4gby5jYW5jZWw9ZnVuY3Rpb24oKXtJLnVuc3Vic2NyaWJlKGcpfSxvfSx0KGZ1bmN0aW9uKGcsbyxuKXtJLnJlYXNvbnx8KEkucmVhc29uPW5ldyBIKGcsbyxuKSxlKEkucmVhc29uKSl9KX10aHJvd0lmUmVxdWVzdGVkKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259c3Vic2NyaWJlKHQpe2lmKHRoaXMucmVhc29uKXt0KHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKHQpOnRoaXMuX2xpc3RlbmVycz1bdF19dW5zdWJzY3JpYmUodCl7aWYoIXRoaXMuX2xpc3RlbmVycylyZXR1cm47bGV0IGU9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YodCk7ZSE9PS0xJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKGUsMSl9dG9BYm9ydFNpZ25hbCgpe2xldCB0PW5ldyBBYm9ydENvbnRyb2xsZXIsZT1JPT57dC5hYm9ydChJKX07cmV0dXJuIHRoaXMuc3Vic2NyaWJlKGUpLHQuc2lnbmFsLnVuc3Vic2NyaWJlPSgpPT50aGlzLnVuc3Vic2NyaWJlKGUpLHQuc2lnbmFsfXN0YXRpYyBzb3VyY2UoKXtsZXQgdDtyZXR1cm57dG9rZW46bmV3IEEoZnVuY3Rpb24ocil7dD1yfSksY2FuY2VsOnR9fX0sdWU9bHQ7ZnVuY3Rpb24gdXQoQSl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBBLmFwcGx5KG51bGwsZSl9fWZ1bmN0aW9uIGR0KEEpe3JldHVybiBpLmlzT2JqZWN0KEEpJiZBLmlzQXhpb3NFcnJvcj09PSEwfXZhciBEdD17Q29udGludWU6MTAwLFN3aXRjaGluZ1Byb3RvY29sczoxMDEsUHJvY2Vzc2luZzoxMDIsRWFybHlIaW50czoxMDMsT2s6MjAwLENyZWF0ZWQ6MjAxLEFjY2VwdGVkOjIwMixOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb246MjAzLE5vQ29udGVudDoyMDQsUmVzZXRDb250ZW50OjIwNSxQYXJ0aWFsQ29udGVudDoyMDYsTXVsdGlTdGF0dXM6MjA3LEFscmVhZHlSZXBvcnRlZDoyMDgsSW1Vc2VkOjIyNixNdWx0aXBsZUNob2ljZXM6MzAwLE1vdmVkUGVybWFuZW50bHk6MzAxLEZvdW5kOjMwMixTZWVPdGhlcjozMDMsTm90TW9kaWZpZWQ6MzA0LFVzZVByb3h5OjMwNSxVbnVzZWQ6MzA2LFRlbXBvcmFyeVJlZGlyZWN0OjMwNyxQZXJtYW5lbnRSZWRpcmVjdDozMDgsQmFkUmVxdWVzdDo0MDAsVW5hdXRob3JpemVkOjQwMSxQYXltZW50UmVxdWlyZWQ6NDAyLEZvcmJpZGRlbjo0MDMsTm90Rm91bmQ6NDA0LE1ldGhvZE5vdEFsbG93ZWQ6NDA1LE5vdEFjY2VwdGFibGU6NDA2LFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDo0MDcsUmVxdWVzdFRpbWVvdXQ6NDA4LENvbmZsaWN0OjQwOSxHb25lOjQxMCxMZW5ndGhSZXF1aXJlZDo0MTEsUHJlY29uZGl0aW9uRmFpbGVkOjQxMixQYXlsb2FkVG9vTGFyZ2U6NDEzLFVyaVRvb0xvbmc6NDE0LFVuc3VwcG9ydGVkTWVkaWFUeXBlOjQxNSxSYW5nZU5vdFNhdGlzZmlhYmxlOjQxNixFeHBlY3RhdGlvbkZhaWxlZDo0MTcsSW1BVGVhcG90OjQxOCxNaXNkaXJlY3RlZFJlcXVlc3Q6NDIxLFVucHJvY2Vzc2FibGVFbnRpdHk6NDIyLExvY2tlZDo0MjMsRmFpbGVkRGVwZW5kZW5jeTo0MjQsVG9vRWFybHk6NDI1LFVwZ3JhZGVSZXF1aXJlZDo0MjYsUHJlY29uZGl0aW9uUmVxdWlyZWQ6NDI4LFRvb01hbnlSZXF1ZXN0czo0MjksUmVxdWVzdEhlYWRlckZpZWxkc1Rvb0xhcmdlOjQzMSxVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczo0NTEsSW50ZXJuYWxTZXJ2ZXJFcnJvcjo1MDAsTm90SW1wbGVtZW50ZWQ6NTAxLEJhZEdhdGV3YXk6NTAyLFNlcnZpY2VVbmF2YWlsYWJsZTo1MDMsR2F0ZXdheVRpbWVvdXQ6NTA0LEh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOjUwNSxWYXJpYW50QWxzb05lZ290aWF0ZXM6NTA2LEluc3VmZmljaWVudFN0b3JhZ2U6NTA3LExvb3BEZXRlY3RlZDo1MDgsTm90RXh0ZW5kZWQ6NTEwLE5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOjUxMX07T2JqZWN0LmVudHJpZXMoRHQpLmZvckVhY2goKFtBLHRdKT0+e0R0W3RdPUF9KTt2YXIgZGU9RHQ7ZnVuY3Rpb24gRGUoQSl7bGV0IHQ9bmV3IGZBKEEpLGU9b0EoZkEucHJvdG90eXBlLnJlcXVlc3QsdCk7cmV0dXJuIGkuZXh0ZW5kKGUsZkEucHJvdG90eXBlLHQse2FsbE93bktleXM6ITB9KSxpLmV4dGVuZChlLHQsbnVsbCx7YWxsT3duS2V5czohMH0pLGUuY3JlYXRlPWZ1bmN0aW9uKHIpe3JldHVybiBEZShiKEEscikpfSxlfXZhciBtPURlKEFBKTttLkF4aW9zPWZBO20uQ2FuY2VsZWRFcnJvcj1IO20uQ2FuY2VsVG9rZW49dWU7bS5pc0NhbmNlbD1hQTttLlZFUlNJT049T0E7bS50b0Zvcm1EYXRhPVQ7bS5BeGlvc0Vycm9yPXU7bS5DYW5jZWw9bS5DYW5jZWxlZEVycm9yO20uYWxsPWZ1bmN0aW9uKHQpe3JldHVybiBQcm9taXNlLmFsbCh0KX07bS5zcHJlYWQ9dXQ7bS5pc0F4aW9zRXJyb3I9ZHQ7bS5tZXJnZUNvbmZpZz1iO20uQXhpb3NIZWFkZXJzPXA7bS5mb3JtVG9KU09OPUE9PkpBKGkuaXNIVE1MRm9ybShBKT9uZXcgRm9ybURhdGEoQSk6QSk7bS5nZXRBZGFwdGVyPU1BLmdldEFkYXB0ZXI7bS5IdHRwU3RhdHVzQ29kZT1kZTttLmRlZmF1bHQ9bTt2YXIgeEE9bTt2YXJ7QXhpb3M6UmksQXhpb3NFcnJvcjpOaSxDYW5jZWxlZEVycm9yOlVpLGlzQ2FuY2VsOkdpLENhbmNlbFRva2VuOmtpLFZFUlNJT046TGksYWxsOmJpLENhbmNlbDpKaSxpc0F4aW9zRXJyb3I6SGksc3ByZWFkOllpLHRvRm9ybURhdGE6cWksQXhpb3NIZWFkZXJzOk1pLEh0dHBTdGF0dXNDb2RlOktpLGZvcm1Ub0pTT046T2ksZ2V0QWRhcHRlcjpUaSxtZXJnZUNvbmZpZzp4aX09eEE7dmFyIGxBLE0seXQsaHQ9e2Vudjp7ZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aDpmdW5jdGlvbihBKXt5dD1uZXcgVWludDhBcnJheShNLmV4cG9ydHMubWVtb3J5LmJ1ZmZlcil9fX0sUEE9Y2xhc3N7aW5pdCgpe3JldHVybiBsQXx8KHR5cGVvZiBmZXRjaDwidSI/bEE9ZmV0Y2goImRhdGE6YXBwbGljYXRpb24vd2FzbTtiYXNlNjQsIitoZSkudGhlbih0PT50LmFycmF5QnVmZmVyKCkpLnRoZW4odD0+V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUodCxodCkpLnRoZW4odGhpcy5faW5pdCk6bEE9V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoQnVmZmVyLmZyb20oaGUsImJhc2U2NCIpLGh0KS50aGVuKHRoaXMuX2luaXQpLGxBKX1faW5pdCh0KXtNPXQuaW5zdGFuY2UsaHQuZW52LmVtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgoMCl9ZGVjb2RlKHQsZT0wKXtpZighTSl0aHJvdyBuZXcgRXJyb3IoIlpTVEREZWNvZGVyOiBBd2FpdCAuaW5pdCgpIGJlZm9yZSBkZWNvZGluZy4iKTtsZXQgST10LmJ5dGVMZW5ndGgscj1NLmV4cG9ydHMubWFsbG9jKEkpO3l0LnNldCh0LHIpLGU9ZXx8TnVtYmVyKE0uZXhwb3J0cy5aU1REX2ZpbmREZWNvbXByZXNzZWRTaXplKHIsSSkpO2xldCBnPU0uZXhwb3J0cy5tYWxsb2MoZSksbz1NLmV4cG9ydHMuWlNURF9kZWNvbXByZXNzKGcsZSxyLEkpLG49eXQuc2xpY2UoZyxnK28pO3JldHVybiBNLmV4cG9ydHMuZnJlZShyKSxNLmV4cG9ydHMuZnJlZShnKSxufX0saGU9IkFHRnpiUUVBQUFBQmJnNWdBMzkvZndGL1lBRi9BWDlnQW45L0FHQUJmd0JnQlg5L2YzOS9BWDlnQTM5L2Z3QmdCSDkvZjM4QmYyQUFBWDlnQW45L0FYOWdCMzkvZjM5L2YzOEJmMkFDZjM4QmZtQUlmMzkvZjM5L2YzOEJmMkFGZjM5L2YzOEFZQTUvZjM5L2YzOS9mMzkvZjM5L2Z3Ri9BaWNCQTJWdWRoOWxiWE5qY21sd2RHVnVYMjV2ZEdsbWVWOXRaVzF2Y25sZlozSnZkM1JvQUFNREl5SUhBQUFCQVFNSEF3RUFDUVFBQlFFSUNBRUZCZ1FFQkFNR0FBQUtBQVVMREEwR0JBVUJjQUVCQVFVSEFRR0FBb0NBQWdZSUFYOEJRWUNqQkFzSHJnRUxCbTFsYlc5eWVRSUFCbTFoYkd4dll3QUZCR1p5WldVQUJneGFVMVJFWDJselJYSnliM0lBRWhsYVUxUkVYMlpwYm1SRVpXTnZiWEJ5WlhOelpXUlRhWHBsQUJ3UFdsTlVSRjlrWldOdmJYQnlaWE56QUNJWlgxOXBibVJwY21WamRGOW1kVzVqZEdsdmJsOTBZV0pzWlFFQUVGOWZaWEp5Ym05ZmJHOWpZWFJwYjI0QUFRbHpkR0ZqYTFOaGRtVUFCd3h6ZEdGamExSmxjM1J2Y21VQUNBcHpkR0ZqYTBGc2JHOWpBQWtLaS9JQklnVUFRWVFmQ3pNQkFYOGdBZ1JBSUFBaEF3TkFJQU1nQVMwQUFEb0FBQ0FEUVFGcUlRTWdBVUVCYWlFQklBSkJBV3NpQWcwQUN3c2dBQXNwQVFGL0lBSUVRQ0FBSVFNRFFDQURJQUU2QUFBZ0EwRUJhaUVESUFKQkFXc2lBZzBBQ3dzZ0FBdHNBUUovUVlBZktBSUFJZ0VnQUVFSGFrRjRjU0lDYWlFQUFrQWdBa0VBSUFBZ0FVMGJEUUFnQUQ4QVFSQjBTd1JBSUFBL0FFRVFkR3RCLy84RGFrRVFka0FBUVg5R0JIOUJBQVZCQUJBQVFRRUxSUTBCQzBHQUh5QUFOZ0lBSUFFUEMwR0VIMEV3TmdJQVFYOEx1U2NCQzM4akFFRVFheUlLSkFBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBQkI5QUZOQkVCQmlCOG9BZ0FpQmtFUUlBQkJDMnBCZUhFZ0FFRUxTUnNpQlVFRGRpSUFkaUlCUVFOeEJFQUNRQ0FCUVg5elFRRnhJQUJxSWdKQkEzUWlBVUd3SDJvaUFDQUJRYmdmYWlnQ0FDSUJLQUlJSWdSR0JFQkJpQjhnQmtGK0lBSjNjVFlDQUF3QkN5QUVJQUEyQWd3Z0FDQUVOZ0lJQ3lBQlFRaHFJUUFnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1Ed3NnQlVHUUh5Z0NBQ0lIVFEwQklBRUVRQUpBUVFJZ0FIUWlBa0VBSUFKcmNpQUJJQUIwY1dnaUFVRURkQ0lBUWJBZmFpSUNJQUJCdUI5cUtBSUFJZ0FvQWdnaUJFWUVRRUdJSHlBR1FYNGdBWGR4SWdZMkFnQU1BUXNnQkNBQ05nSU1JQUlnQkRZQ0NBc2dBQ0FGUVFOeU5nSUVJQUFnQldvaUNDQUJRUU4wSWdFZ0JXc2lCRUVCY2pZQ0JDQUFJQUZxSUFRMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFGQm5COG9BZ0FoQWdKL0lBWkJBU0FIUVFOMmRDSURjVVVFUUVHSUh5QURJQVp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBeUFCSUFJMkFnZ2dBeUFDTmdJTUlBSWdBVFlDRENBQ0lBTTJBZ2dMSUFCQkNHb2hBRUdjSHlBSU5nSUFRWkFmSUFRMkFnQU1Ed3RCakI4b0FnQWlDMFVOQVNBTGFFRUNkRUc0SVdvb0FnQWlBaWdDQkVGNGNTQUZheUVESUFJaEFRTkFBa0FnQVNnQ0VDSUFSUVJBSUFFb0FoUWlBRVVOQVFzZ0FDZ0NCRUY0Y1NBRmF5SUJJQU1nQVNBRFNTSUJHeUVESUFBZ0FpQUJHeUVDSUFBaEFRd0JDd3NnQWlnQ0dDRUpJQUlnQWlnQ0RDSUVSd1JBUVpnZktBSUFHaUFDS0FJSUlnQWdCRFlDRENBRUlBQTJBZ2dNRGdzZ0FrRVVhaUlCS0FJQUlnQkZCRUFnQWlnQ0VDSUFSUTBESUFKQkVHb2hBUXNEUUNBQklRZ2dBQ0lFUVJScUlnRW9BZ0FpQUEwQUlBUkJFR29oQVNBRUtBSVFJZ0FOQUFzZ0NFRUFOZ0lBREEwTFFYOGhCU0FBUWI5L1N3MEFJQUJCQzJvaUFFRjRjU0VGUVl3ZktBSUFJZ2hGRFFCQkFDQUZheUVEQWtBQ1FBSkFBbjlCQUNBRlFZQUNTUTBBR2tFZklBVkIvLy8vQjBzTkFCb2dCVUVtSUFCQkNIWm5JZ0JyZGtFQmNTQUFRUUYwYTBFK2Fnc2lCMEVDZEVHNElXb29BZ0FpQVVVRVFFRUFJUUFNQVF0QkFDRUFJQVZCR1NBSFFRRjJhMEVBSUFkQkgwY2JkQ0VDQTBBQ1FDQUJLQUlFUVhoeElBVnJJZ1lnQTA4TkFDQUJJUVFnQmlJRERRQkJBQ0VESUFFaEFBd0RDeUFBSUFFb0FoUWlCaUFHSUFFZ0FrRWRka0VFY1dvb0FoQWlBVVliSUFBZ0Joc2hBQ0FDUVFGMElRSWdBUTBBQ3dzZ0FDQUVja1VFUUVFQUlRUkJBaUFIZENJQVFRQWdBR3R5SUFoeElnQkZEUU1nQUdoQkFuUkJ1Q0ZxS0FJQUlRQUxJQUJGRFFFTEEwQWdBQ2dDQkVGNGNTQUZheUlDSUFOSklRRWdBaUFESUFFYklRTWdBQ0FFSUFFYklRUWdBQ2dDRUNJQkJIOGdBUVVnQUNnQ0ZBc2lBQTBBQ3dzZ0JFVU5BQ0FEUVpBZktBSUFJQVZyVHcwQUlBUW9BaGdoQnlBRUlBUW9BZ3dpQWtjRVFFR1lIeWdDQUJvZ0JDZ0NDQ0lBSUFJMkFnd2dBaUFBTmdJSURBd0xJQVJCRkdvaUFTZ0NBQ0lBUlFSQUlBUW9BaEFpQUVVTkF5QUVRUkJxSVFFTEEwQWdBU0VHSUFBaUFrRVVhaUlCS0FJQUlnQU5BQ0FDUVJCcUlRRWdBaWdDRUNJQURRQUxJQVpCQURZQ0FBd0xDeUFGUVpBZktBSUFJZ1JOQkVCQm5COG9BZ0FoQUFKQUlBUWdCV3NpQVVFUVR3UkFJQUFnQldvaUFpQUJRUUZ5TmdJRUlBQWdCR29nQVRZQ0FDQUFJQVZCQTNJMkFnUU1BUXNnQUNBRVFRTnlOZ0lFSUFBZ0JHb2lBU0FCS0FJRVFRRnlOZ0lFUVFBaEFrRUFJUUVMUVpBZklBRTJBZ0JCbkI4Z0FqWUNBQ0FBUVFocUlRQU1EUXNnQlVHVUh5Z0NBQ0lDU1FSQVFaUWZJQUlnQldzaUFUWUNBRUdnSDBHZ0h5Z0NBQ0lBSUFWcUlnSTJBZ0FnQWlBQlFRRnlOZ0lFSUFBZ0JVRURjallDQkNBQVFRaHFJUUFNRFF0QkFDRUFJQVZCTDJvaUF3Si9RZUFpS0FJQUJFQkI2Q0lvQWdBTUFRdEI3Q0pDZnpjQ0FFSGtJa0tBb0lDQWdJQUVOd0lBUWVBaUlBcEJER3BCY0hGQjJLclZxZ1Z6TmdJQVFmUWlRUUEyQWdCQnhDSkJBRFlDQUVHQUlBc2lBV29pQmtFQUlBRnJJZ2h4SWdFZ0JVME5ERUhBSWlnQ0FDSUVCRUJCdUNJb0FnQWlCeUFCYWlJSklBZE5JQVFnQ1VseURRMExBa0JCeENJdEFBQkJCSEZGQkVBQ1FBSkFBa0FDUUVHZ0h5Z0NBQ0lFQkVCQnlDSWhBQU5BSUFRZ0FDZ0NBQ0lIVHdSQUlBY2dBQ2dDQkdvZ0JFc05Bd3NnQUNnQ0NDSUFEUUFMQzBFQUVBUWlBa0YvUmcwRElBRWhCa0hrSWlnQ0FDSUFRUUZySWdRZ0FuRUVRQ0FCSUFKcklBSWdCR3BCQUNBQWEzRnFJUVlMSUFVZ0JrOE5BMEhBSWlnQ0FDSUFCRUJCdUNJb0FnQWlCQ0FHYWlJSUlBUk5JQUFnQ0VseURRUUxJQVlRQkNJQUlBSkhEUUVNQlFzZ0JpQUNheUFJY1NJR0VBUWlBaUFBS0FJQUlBQW9BZ1JxUmcwQklBSWhBQXNnQUVGL1JnMEJJQVZCTUdvZ0JrMEVRQ0FBSVFJTUJBdEI2Q0lvQWdBaUFpQURJQVpyYWtFQUlBSnJjU0lDRUFSQmYwWU5BU0FDSUFacUlRWWdBQ0VDREFNTElBSkJmMGNOQWd0QnhDSkJ4Q0lvQWdCQkJISTJBZ0FMSUFFUUJDSUNRWDlHUVFBUUJDSUFRWDlHY2lBQUlBSk5jZzBGSUFBZ0Ftc2lCaUFGUVNocVRRMEZDMEc0SWtHNElpZ0NBQ0FHYWlJQU5nSUFRYndpS0FJQUlBQkpCRUJCdkNJZ0FEWUNBQXNDUUVHZ0h5Z0NBQ0lEQkVCQnlDSWhBQU5BSUFJZ0FDZ0NBQ0lCSUFBb0FnUWlCR3BHRFFJZ0FDZ0NDQ0lBRFFBTERBUUxRWmdmS0FJQUlnQkJBQ0FBSUFKTkcwVUVRRUdZSHlBQ05nSUFDMEVBSVFCQnpDSWdCallDQUVISUlpQUNOZ0lBUWFnZlFYODJBZ0JCckI5QjRDSW9BZ0EyQWdCQjFDSkJBRFlDQUFOQUlBQkJBM1FpQVVHNEgyb2dBVUd3SDJvaUJEWUNBQ0FCUWJ3ZmFpQUVOZ0lBSUFCQkFXb2lBRUVnUncwQUMwR1VIeUFHUVNocklnQkJlQ0FDYTBFSGNTSUJheUlFTmdJQVFhQWZJQUVnQW1vaUFUWUNBQ0FCSUFSQkFYSTJBZ1FnQUNBQ2FrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBUUxJQUlnQTAwZ0FTQURTM0lOQWlBQUtBSU1RUWh4RFFJZ0FDQUVJQVpxTmdJRVFhQWZJQU5CZUNBRGEwRUhjU0lBYWlJQk5nSUFRWlFmUVpRZktBSUFJQVpxSWdJZ0FHc2lBRFlDQUNBQklBQkJBWEkyQWdRZ0FpQURha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQU1MUVFBaEJBd0tDMEVBSVFJTUNBdEJtQjhvQWdBZ0Frc0VRRUdZSHlBQ05nSUFDeUFDSUFacUlRRkJ5Q0loQUFKQUFrQUNRQU5BSUFFZ0FDZ0NBRWNFUUNBQUtBSUlJZ0FOQVF3Q0N3c2dBQzBBREVFSWNVVU5BUXRCeUNJaEFBTkFJQU1nQUNnQ0FDSUJUd1JBSUFFZ0FDZ0NCR29pQkNBRFN3MERDeUFBS0FJSUlRQU1BQXNBQ3lBQUlBSTJBZ0FnQUNBQUtBSUVJQVpxTmdJRUlBSkJlQ0FDYTBFSGNXb2lCeUFGUVFOeU5nSUVJQUZCZUNBQmEwRUhjV29pQmlBRklBZHFJZ1ZySVFBZ0F5QUdSZ1JBUWFBZklBVTJBZ0JCbEI5QmxCOG9BZ0FnQUdvaUFEWUNBQ0FGSUFCQkFYSTJBZ1FNQ0F0Qm5COG9BZ0FnQmtZRVFFR2NIeUFGTmdJQVFaQWZRWkFmS0FJQUlBQnFJZ0EyQWdBZ0JTQUFRUUZ5TmdJRUlBQWdCV29nQURZQ0FBd0lDeUFHS0FJRUlnTkJBM0ZCQVVjTkJpQURRWGh4SVFrZ0EwSC9BVTBFUUNBR0tBSU1JZ0VnQmlnQ0NDSUNSZ1JBUVlnZlFZZ2ZLQUlBUVg0Z0EwRURkbmR4TmdJQURBY0xJQUlnQVRZQ0RDQUJJQUkyQWdnTUJnc2dCaWdDR0NFSUlBWWdCaWdDRENJQ1J3UkFJQVlvQWdnaUFTQUNOZ0lNSUFJZ0FUWUNDQXdGQ3lBR1FSUnFJZ0VvQWdBaUEwVUVRQ0FHS0FJUUlnTkZEUVFnQmtFUWFpRUJDd05BSUFFaEJDQURJZ0pCRkdvaUFTZ0NBQ0lERFFBZ0FrRVFhaUVCSUFJb0FoQWlBdzBBQ3lBRVFRQTJBZ0FNQkF0QmxCOGdCa0VvYXlJQVFYZ2dBbXRCQjNFaUFXc2lDRFlDQUVHZ0h5QUJJQUpxSWdFMkFnQWdBU0FJUVFGeU5nSUVJQUFnQW1wQktEWUNCRUdrSDBId0lpZ0NBRFlDQUNBRElBUkJKeUFFYTBFSGNXcEJMMnNpQUNBQUlBTkJFR3BKR3lJQlFSczJBZ1FnQVVIUUlpa0NBRGNDRUNBQlFjZ2lLUUlBTndJSVFkQWlJQUZCQ0dvMkFnQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFkUWlRUUEyQWdBZ0FVRVlhaUVBQTBBZ0FFRUhOZ0lFSUFCQkNHb2dBRUVFYWlFQUlBUkpEUUFMSUFFZ0EwWU5BQ0FCSUFFb0FnUkJmbkUyQWdRZ0F5QUJJQU5ySWdKQkFYSTJBZ1FnQVNBQ05nSUFJQUpCL3dGTkJFQWdBa0Y0Y1VHd0gyb2hBQUovUVlnZktBSUFJZ0ZCQVNBQ1FRTjJkQ0lDY1VVRVFFR0lIeUFCSUFKeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQVNBQUlBTTJBZ2dnQVNBRE5nSU1JQU1nQURZQ0RDQURJQUUyQWdnTUFRdEJIeUVBSUFKQi8vLy9CMDBFUUNBQ1FTWWdBa0VJZG1jaUFHdDJRUUZ4SUFCQkFYUnJRVDVxSVFBTElBTWdBRFlDSENBRFFnQTNBaEFnQUVFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUJFRUJJQUIwSWdaeFJRUkFRWXdmSUFRZ0JuSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkdTQUFRUUYyYTBFQUlBQkJIMGNiZENFQUlBRW9BZ0FoQkFOQUlBUWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCQ0FBUVFGMElRQWdBU0FFUVFSeGFpSUdLQUlRSWdRTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xRWlFmS0FJQUlnQWdCVTBOQUVHVUh5QUFJQVZySWdFMkFnQkJvQjlCb0I4b0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQWdMUVlRZlFUQTJBZ0JCQUNFQURBY0xRUUFoQWdzZ0NFVU5BQUpBSUFZb0Fod2lBVUVDZEVHNElXb2lCQ2dDQUNBR1JnUkFJQVFnQWpZQ0FDQUNEUUZCakI5QmpCOG9BZ0JCZmlBQmQzRTJBZ0FNQWdzZ0NFRVFRUlFnQ0NnQ0VDQUdSaHRxSUFJMkFnQWdBa1VOQVFzZ0FpQUlOZ0lZSUFZb0FoQWlBUVJBSUFJZ0FUWUNFQ0FCSUFJMkFoZ0xJQVlvQWhRaUFVVU5BQ0FDSUFFMkFoUWdBU0FDTmdJWUN5QUFJQWxxSVFBZ0JpQUphaUlHS0FJRUlRTUxJQVlnQTBGK2NUWUNCQ0FGSUFCQkFYSTJBZ1FnQUNBRmFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVGNGNVR3dIMm9oQVFKL1FZZ2ZLQUlBSWdKQkFTQUFRUU4yZENJQWNVVUVRRUdJSHlBQUlBSnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEFDQUJJQVUyQWdnZ0FDQUZOZ0lNSUFVZ0FUWUNEQ0FGSUFBMkFnZ01BUXRCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQVVnQXpZQ0hDQUZRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlBa0VCSUFOMElnUnhSUVJBUVl3ZklBSWdCSEkyQWdBZ0FTQUZOZ0lBREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFnTkFJQUlpQVNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQWlBRFFRRjBJUU1nQVNBQ1FRUnhhaUlFS0FJUUlnSU5BQXNnQkNBRk5nSVFDeUFGSUFFMkFoZ2dCU0FGTmdJTUlBVWdCVFlDQ0F3QkN5QUJLQUlJSWdBZ0JUWUNEQ0FCSUFVMkFnZ2dCVUVBTmdJWUlBVWdBVFlDRENBRklBQTJBZ2dMSUFkQkNHb2hBQXdDQ3dKQUlBZEZEUUFDUUNBRUtBSWNJZ0JCQW5SQnVDRnFJZ0VvQWdBZ0JFWUVRQ0FCSUFJMkFnQWdBZzBCUVl3ZklBaEJmaUFBZDNFaUNEWUNBQXdDQ3lBSFFSQkJGQ0FIS0FJUUlBUkdHMm9nQWpZQ0FDQUNSUTBCQ3lBQ0lBYzJBaGdnQkNnQ0VDSUFCRUFnQWlBQU5nSVFJQUFnQWpZQ0dBc2dCQ2dDRkNJQVJRMEFJQUlnQURZQ0ZDQUFJQUkyQWhnTEFrQWdBMEVQVFFSQUlBUWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0JHb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBUWdCVUVEY2pZQ0JDQUVJQVZxSWdJZ0EwRUJjallDQkNBQ0lBTnFJQU0yQWdBZ0EwSC9BVTBFUUNBRFFYaHhRYkFmYWlFQUFuOUJpQjhvQWdBaUFVRUJJQU5CQTNaMElnTnhSUVJBUVlnZklBRWdBM0kyQWdBZ0FBd0JDeUFBS0FJSUN5RUJJQUFnQWpZQ0NDQUJJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0FUWUNDQXdCQzBFZklRQWdBMEgvLy84SFRRUkFJQU5CSmlBRFFRaDJaeUlBYTNaQkFYRWdBRUVCZEd0QlBtb2hBQXNnQWlBQU5nSWNJQUpDQURjQ0VDQUFRUUowUWJnaGFpRUJBa0FDUUNBSVFRRWdBSFFpQm5GRkJFQkJqQjhnQmlBSWNqWUNBQ0FCSUFJMkFnQU1BUXNnQTBFWklBQkJBWFpyUVFBZ0FFRWZSeHQwSVFBZ0FTZ0NBQ0VGQTBBZ0JTSUJLQUlFUVhoeElBTkdEUUlnQUVFZGRpRUdJQUJCQVhRaEFDQUJJQVpCQkhGcUlnWW9BaEFpQlEwQUN5QUdJQUkyQWhBTElBSWdBVFlDR0NBQ0lBSTJBZ3dnQWlBQ05nSUlEQUVMSUFFb0FnZ2lBQ0FDTmdJTUlBRWdBallDQ0NBQ1FRQTJBaGdnQWlBQk5nSU1JQUlnQURZQ0NBc2dCRUVJYWlFQURBRUxBa0FnQ1VVTkFBSkFJQUlvQWh3aUFFRUNkRUc0SVdvaUFTZ0NBQ0FDUmdSQUlBRWdCRFlDQUNBRURRRkJqQjhnQzBGK0lBQjNjVFlDQUF3Q0N5QUpRUkJCRkNBSktBSVFJQUpHRzJvZ0JEWUNBQ0FFUlEwQkN5QUVJQWsyQWhnZ0FpZ0NFQ0lBQkVBZ0JDQUFOZ0lRSUFBZ0JEWUNHQXNnQWlnQ0ZDSUFSUTBBSUFRZ0FEWUNGQ0FBSUFRMkFoZ0xBa0FnQTBFUFRRUkFJQUlnQXlBRmFpSUFRUU55TmdJRUlBQWdBbW9pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQUlnQlVFRGNqWUNCQ0FDSUFWcUlnUWdBMEVCY2pZQ0JDQURJQVJxSUFNMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFCQm5COG9BZ0FoQVFKL1FRRWdCMEVEZG5RaUJTQUdjVVVFUUVHSUh5QUZJQVp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hCaUFBSUFFMkFnZ2dCaUFCTmdJTUlBRWdBRFlDRENBQklBWTJBZ2dMUVp3ZklBUTJBZ0JCa0I4Z0F6WUNBQXNnQWtFSWFpRUFDeUFLUVJCcUpBQWdBQXZTQ3dFSGZ3SkFJQUJGRFFBZ0FFRUlheUlDSUFCQkJHc29BZ0FpQVVGNGNTSUFhaUVGQWtBZ0FVRUJjUTBBSUFGQkEzRkZEUUVnQWlBQ0tBSUFJZ0ZySWdKQm1COG9BZ0JKRFFFZ0FDQUJhaUVBQWtBQ1FFR2NIeWdDQUNBQ1J3UkFJQUZCL3dGTkJFQWdBVUVEZGlFRUlBSW9BZ3dpQVNBQ0tBSUlJZ05HQkVCQmlCOUJpQjhvQWdCQmZpQUVkM0UyQWdBTUJRc2dBeUFCTmdJTUlBRWdBellDQ0F3RUN5QUNLQUlZSVFZZ0FpQUNLQUlNSWdGSEJFQWdBaWdDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFKQkZHb2lCQ2dDQUNJRFJRUkFJQUlvQWhBaUEwVU5BaUFDUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRktBSUVJZ0ZCQTNGQkEwY05Ba0dRSHlBQU5nSUFJQVVnQVVGK2NUWUNCQ0FDSUFCQkFYSTJBZ1FnQlNBQU5nSUFEd3RCQUNFQkN5QUdSUTBBQWtBZ0FpZ0NIQ0lEUVFKMFFiZ2hhaUlFS0FJQUlBSkdCRUFnQkNBQk5nSUFJQUVOQVVHTUgwR01IeWdDQUVGK0lBTjNjVFlDQUF3Q0N5QUdRUkJCRkNBR0tBSVFJQUpHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQVkyQWhnZ0FpZ0NFQ0lEQkVBZ0FTQUROZ0lRSUFNZ0FUWUNHQXNnQWlnQ0ZDSURSUTBBSUFFZ0F6WUNGQ0FESUFFMkFoZ0xJQUlnQlU4TkFDQUZLQUlFSWdGQkFYRkZEUUFDUUFKQUFrQUNRQ0FCUVFKeFJRUkFRYUFmS0FJQUlBVkdCRUJCb0I4Z0FqWUNBRUdVSDBHVUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FDUVp3ZktBSUFSdzBHUVpBZlFRQTJBZ0JCbkI5QkFEWUNBQThMUVp3ZktBSUFJQVZHQkVCQm5COGdBallDQUVHUUgwR1FIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQUlBSnFJQUEyQWdBUEN5QUJRWGh4SUFCcUlRQWdBVUgvQVUwRVFDQUJRUU4ySVFRZ0JTZ0NEQ0lCSUFVb0FnZ2lBMFlFUUVHSUgwR0lIeWdDQUVGK0lBUjNjVFlDQUF3RkN5QURJQUUyQWd3Z0FTQUROZ0lJREFRTElBVW9BaGdoQmlBRklBVW9BZ3dpQVVjRVFFR1lIeWdDQUJvZ0JTZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQVZCRkdvaUJDZ0NBQ0lEUlFSQUlBVW9BaEFpQTBVTkFpQUZRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGSUFGQmZuRTJBZ1FnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUF3REMwRUFJUUVMSUFaRkRRQUNRQ0FGS0FJY0lnTkJBblJCdUNGcUlnUW9BZ0FnQlVZRVFDQUVJQUUyQWdBZ0FRMEJRWXdmUVl3ZktBSUFRWDRnQTNkeE5nSUFEQUlMSUFaQkVFRVVJQVlvQWhBZ0JVWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0JqWUNHQ0FGS0FJUUlnTUVRQ0FCSUFNMkFoQWdBeUFCTmdJWUN5QUZLQUlVSWdORkRRQWdBU0FETmdJVUlBTWdBVFlDR0FzZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FDQUNRWndmS0FJQVJ3MEFRWkFmSUFBMkFnQVBDeUFBUWY4QlRRUkFJQUJCZUhGQnNCOXFJUUVDZjBHSUh5Z0NBQ0lEUVFFZ0FFRURkblFpQUhGRkJFQkJpQjhnQUNBRGNqWUNBQ0FCREFFTElBRW9BZ2dMSVFBZ0FTQUNOZ0lJSUFBZ0FqWUNEQ0FDSUFFMkFnd2dBaUFBTmdJSUR3dEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBSWdBellDSENBQ1FnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQUNRRUdNSHlnQ0FDSUVRUUVnQTNRaUIzRkZCRUJCakI4Z0JDQUhjallDQUNBQklBSTJBZ0FnQWlBQk5nSVlEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQVFOQUlBRWlCQ2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBU0FEUVFGMElRTWdCQ0FCUVFSeGFpSUhRUkJxS0FJQUlnRU5BQXNnQnlBQ05nSVFJQUlnQkRZQ0dBc2dBaUFDTmdJTUlBSWdBallDQ0F3QkN5QUVLQUlJSWdBZ0FqWUNEQ0FFSUFJMkFnZ2dBa0VBTmdJWUlBSWdCRFlDRENBQ0lBQTJBZ2dMUWFnZlFhZ2ZLQUlBUVFGcklnQkJmeUFBR3pZQ0FBc0xCQUFqQUFzR0FDQUFKQUFMRUFBakFDQUFhMEZ3Y1NJQUpBQWdBQXRLQVFGL0lBQWdBVWtFUUNBQUlBRWdBaEFDRHdzZ0FnUkFJQUFnQW1vaEF5QUJJQUpxSVFFRFFDQURRUUZySWdNZ0FVRUJheUlCTFFBQU9nQUFJQUpCQVdzaUFnMEFDd3NnQUF2OURnSVJmd0YrSXdCQk1Hc2lCeVFBUWJoL0lRZ0NRQ0FGUlEwQUlBUXNBQUFpQ1VIL0FYRWhDd0pBSUFsQkFFZ0VRQ0FMUWY0QWEwRUJkaUlHSUFWUERRSkJiQ0VJSUF0Qi93QnJJZ3RCL3dGTERRSWdCRUVCYWlFSVFRQWhCUU5BSUFVZ0MwOEVRQ0FMSVFnZ0JpRUxEQU1GSUFBZ0JXb2dDQ0FGUVFGMmFpSUVMUUFBUVFSMk9nQUFJQUFnQlVFQmNtb2dCQzBBQUVFUGNUb0FBQ0FGUVFKcUlRVU1BUXNBQ3dBTElBVWdDMDBOQVNBSFFmOEJOZ0lFSUFZZ0IwRUVhaUFIUVFocUlBUkJBV29pRGlBTEVBd2lCRUdJZjBzRVFDQUVJUWdNQWd0QlZDRUlJQWNvQWdnaUVFRUdTdzBCSUFjb0FnUWlFVUVCZENJSlFRSnFyVUlCSUJDdGhpSVlRUUVnRUhRaURVRUJhaUlGclVJQ2hueDhRZ3Q4UXZ6Ly8vLy8vLy8vL3dDRFF1UUNWZzBCUVZJaENDQVJRZjhCU3cwQklBMUJmM05CQW5SQjVBSnFyU0FSUVFGcUloVkJBWFN0SUJoOFFnaDhWQTBCSUFzZ0JHc2hGaUFFSUE1cUlSY2dCa0dBQkdvaUVpQUZRUUowYWlJUklBbHFRUUpxSVE0Z0JrR0VCR29oRTBHQWdBSWdFSFJCRUhZaENVRUFJUVZCQVNFUElBMUJBV3NpRkNFS0EwQWdCU0FWUmtVRVFBSkFJQVlnQlVFQmRDSUlhaThCQUNJRVFmLy9BMFlFUUNBVElBcEJBblJxSUFVNkFBSWdDa0VCYXlFS1FRRWhCQXdCQ3lBUFFRQWdDU0FFd1VvYklROExJQWdnRVdvZ0JEc0JBQ0FGUVFGcUlRVU1BUXNMSUFZZ0R6c0JnZ1FnQmlBUU93R0FCQUpBSUFvZ0ZFWUVRQ0FOUVFOMklRaENBQ0VZUVFBaER3TkFJQXdnRlVZRVFDQUlJQTFCQVhacVFRTnFJZ2xCQVhRaENFRUFJUVJCQUNFS0EwQkJBQ0VGSUFvZ0RVOE5CQU5BSUFWQkFrWkZCRUFnRXlBRklBbHNJQVJxSUJSeFFRSjBhaUFPSUFVZ0NtcHFMUUFBT2dBQ0lBVkJBV29oQlF3QkN3c2dDa0VDYWlFS0lBUWdDR29nRkhFaEJBd0FDd0FGSUFZZ0RFRUJkR291QVFBaENTQU9JQTlxSWdRZ0dEY0FBRUVJSVFVRFFDQUZJQWxPUlFSQUlBUWdCV29nR0RjQUFDQUZRUWhxSVFVTUFRc0xJQmhDZ1lLRWlKQ2d3SUFCZkNFWUlBeEJBV29oRENBSklBOXFJUThNQVFzQUN3QUxJQTFCQTNZZ0RVRUJkbXBCQTJvaENFRUFJUVVEUUNBTUlCVkdSUVJBUVFBaENTQUdJQXhCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQUpSa1VFUUNBVElBVkJBblJxSUF3NkFBSURRQ0FGSUFocUlCUnhJZ1VnQ2tzTkFBc2dDVUVCYWlFSkRBRUxDeUFNUVFGcUlRd01BUXNMUVg4aENDQUZEUUlMSUJCQkFXb2hDRUVBSVFVRFFDQUZJQTFHUlFSQUlCRWdFeUFGUVFKMGFpSU9MUUFDUVFGMGFpSUVJQVF2QVFBaUNVRUJhanNCQUNBT0lBZ2dDV2RCWUhOcUlnUTZBQU1nRGlBSklBUjBJQTFyT3dFQUlBVkJBV29oQlF3QkN3c0NRQUpBSUFZdkFZSUVCRUFnQjBFY2FpSUVJQmNnRmhBTklnaEJpSDlMRFFJZ0IwRVVhaUFFSUJJUURpQUhRUXhxSUFRZ0VoQU9RUUFoQlFOQUlBZEJIR29pQkJBUElBVkIrd0ZMY2cwQ0lBQWdCV29pQmlBSFFSUnFJQVFRRURvQUFDQUdJQWRCREdvZ0JCQVFPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVTUF3VWdBQ0FFYWlBSFFSUnFJQWRCSEdvaUJCQVFPZ0FBSUFZZ0IwRU1haUFFRUJBNkFBTWdCVUVFYWlFRkRBRUxBQXNBQ3lBSFFSeHFJZ1FnRnlBV0VBMGlDRUdJZjBzTkFTQUhRUlJxSUFRZ0VoQU9JQWRCREdvZ0JDQVNFQTVCQUNFRkEwQWdCMEVjYWlJRUVBOGdCVUg3QVV0eVJRUkFJQUFnQldvaUJpQUhRUlJxSUFRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVUZJQUFnQkdvZ0IwRVVhaUFIUVJ4cUlnUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQURJQVZCQkdvaEJRd0NDd3NMQW44RFFFRzZmeUVJSUFWQi9RRkxEUU1nQUNBRmFpSUdJQWRCRkdvZ0IwRWNhaUlKRUJFNkFBQWdCa0VCYWlFRUlBa1FEMEVEUmdSQUlBZEJER29oQ0VFQ0RBSUxJQVZCL0FGTERRTWdCaUFIUVF4cUlBZEJIR29pQkJBUk9nQUJJQVZCQW1vaEJTQUVFQTlCQTBjTkFBc2dBQ0FGYWlFRUlBZEJGR29oQ0VFREN5QUVJQWdnQjBFY2FoQVJPZ0FBSUFacUlBQnJJUWdNQVFzQ2Z3TkFRYnAvSVFnZ0JVSDlBVXNOQWlBQUlBVnFJZ1lnQjBFVWFpQUhRUnhxSWdrUUVEb0FBQ0FHUVFGcUlRUWdDUkFQUVFOR0JFQWdCMEVNYWlFSVFRSU1BZ3NnQlVIOEFVc05BaUFHSUFkQkRHb2dCMEVjYWlJRUVCQTZBQUVnQlVFQ2FpRUZJQVFRRDBFRFJ3MEFDeUFBSUFWcUlRUWdCMEVVYWlFSVFRTUxJQVFnQ0NBSFFSeHFFQkE2QUFBZ0Jtb2dBR3NoQ0FzZ0NFR0lmMHNOQVFzZ0NDRUVRUUFoQlNBQlFRQkJOQkFESVFsQkFDRUtBMEFnQkNBRlJ3UkFJQUFnQldvaUJpMEFBQ0lCUVF0TEJFQkJiQ0VJREFNRklBa2dBVUVDZEdvaUFTQUJLQUlBUVFGcU5nSUFJQVZCQVdvaEJVRUJJQVl0QUFCMFFRRjFJQXBxSVFvTUFnc0FDd3RCYkNFSUlBcEZEUUFnQ21jaUJVRWZjeUlCUVF0TERRQWdBMEVnSUFWck5nSUFRUUZCQWlBQmRDQUtheUlEWjBFZmN5SUJkQ0FEUncwQUlBQWdCR29nQVVFQmFpSUFPZ0FBSUFrZ0FFRUNkR29pQUNBQUtBSUFRUUZxTmdJQUlBa29BZ1FpQUVFQ1NTQUFRUUZ4Y2cwQUlBSWdCRUVCYWpZQ0FDQUxRUUZxSVFnTElBZEJNR29rQUNBSUM2QUZBUXgvSXdCQkVHc2lEQ1FBQW44Z0JFRUhUUVJBSUF4Q0FEY0RDQ0FNUVFocUlnVWdBeUFFRUFJYVFXd2dBQ0FCSUFJZ0JVRUlFQXdpQUNBQUlBUkxHeUFBSUFCQmlYOUpHd3dCQ3lBQVFRQWdBU2dDQUVFQmFpSU5RUUYwRUFNaEQwRlVJQU1vQUFBaUJrRVBjU0lBUVFwTERRQWFJQUlnQUVFRmFqWUNBQ0FESUFScUlnSkJCR3NoQnlBQ1FRZHJJUXNnQUVFR2FpRU9RUVFoQWlBR1FRUjJJUVZCSUNBQWRDSUlRUUZ5SVFsQkFDRUFRUUVoQmlBRElRUURRQUpBSUFaQkFYRkZCRUFEUUNBRlFYOXpRWUNBZ0lCNGNtZ2lCa0VZU1VVRVFDQUFRU1JxSVFBZ0JDQUxUUVIvSUFSQkEyb0ZJQVFnQzJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTElBSWdCa0VlY1NJS2FrRUNhaUVDSUFaQkFYWkJBMndnQUdvZ0JTQUtka0VEY1dvaUFDQU5UdzBCQW44Z0JDQUxTeUFDUVFOMklBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFRZ0IydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTElBVWdDRUVCYTNFaUJpQUlRUUYwUVFGcklnb2dDV3NpRUVrRWZ5QU9RUUZyQlNBRklBcHhJZ1VnRUVFQUlBVWdDRTRiYXlFR0lBNExJUVVnRHlBQVFRRjBhaUFHUVFGcklnbzdBUUFnQUVFQmFpRUFJQUlnQldvaEFpQUlRUUVnQm1zZ0NpQUdRUUJLR3lBSmFpSUpTZ1JBSUFsQkFrZ05BVUVnSUFsbklnVnJJUTVCQVNBRlFSOXpkQ0VJQ3lBQUlBMVBEUUFnQ2tFQVJ5RUdBbjhnQkNBTFN5QUNRUU4xSUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQUlnQkNBSGEwRURkR3BCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTFFXd2dDVUVCUncwQUdrRlFJQUFnRFVzTkFCcEJiQ0FDUVNCS0RRQWFJQUVnQUVFQmF6WUNBQ0FFSUFKQkIycEJBM1ZxSUFOckN5QU1RUkJxSkFBTDhnRUJBWDhnQWtVRVFDQUFRZ0EzQWdBZ0FFRUFOZ0lRSUFCQ0FEY0NDRUc0Znc4TElBQWdBVFlDRENBQUlBRkJCR28yQWhBZ0FrRUVUd1JBSUFBZ0FTQUNhaUlCUVFScklnTTJBZ2dnQUNBREtBQUFOZ0lBSUFGQkFXc3RBQUFpQVFSQUlBQWdBV2RCRjJzMkFnUWdBZzhMSUFCQkFEWUNCRUYvRHdzZ0FDQUJOZ0lJSUFBZ0FTMEFBQ0lETmdJQUFrQUNRQUpBSUFKQkFtc09BZ0VBQWdzZ0FDQUJMUUFDUVJCMElBTnlJZ00yQWdBTElBQWdBUzBBQVVFSWRDQURhallDQUFzZ0FTQUNha0VCYXkwQUFDSUJSUVJBSUFCQkFEWUNCRUZzRHdzZ0FDQUJaeUFDUVFOMGEwRUphallDQkNBQ0MwUUJBbjhnQVNBQ0x3RUFJZ01nQVNnQ0JHb2lCRFlDQkNBQUlBTkJBblJCb0IxcUtBSUFJQUVvQWdCQkFDQUVhM1p4TmdJQUlBRVFEeG9nQUNBQ1FRUnFOZ0lFQzU4QkFRUi9RUU1oQVNBQUtBSUVJZ0pCSUUwRVFDQUFLQUlJSWdFZ0FDZ0NFRThFUUNBQUlBSkJCM0UyQWdRZ0FDQUJJQUpCQTNacklnSTJBZ2dnQUNBQ0tBQUFOZ0lBUVFBUEN5QUFLQUlNSWdNZ0FVWUVRRUVCUVFJZ0FrRWdTUnNQQ3lBQUlBRWdBU0FEYXlBQ1FRTjJJZ1FnQVNBRWF5QURTU0lCR3lJRGF5SUVOZ0lJSUFBZ0FpQURRUU4wYXpZQ0JDQUFJQVFvQUFBMkFnQUxJQUVMU0FFRWZ5QUFLQUlFSUFBb0FnQkJBblJxSWdJdEFBSWdBaThCQUNFRUlBRWdBU2dDQkNJRklBSXRBQU1pQW1vMkFnUWdBQ0FFSUFFb0FnQWdCWFJCQUNBQ2EzWnFOZ0lBQzFJQkJIOGdBQ2dDQkNBQUtBSUFRUUowYWlJQ0xRQUNJQUl2QVFBaEJDQUJJQUl0QUFNaUFpQUJLQUlFYWlJRk5nSUVJQUFnQkNBQ1FRSjBRYUFkYWlnQ0FDQUJLQUlBUVFBZ0JXdDJjV28yQWdBTENBQWdBRUdJZjBzTEdnQWdBQVJBSUFFRVFDQUNJQUFnQVJFQ0FBOExJQUFRQmdzTHBnZ0NEWDhCZmlNQVFSQnJJZ2trQUNBSlFRQTJBZ3dnQ1VFQU5nSUlBbjhDUUNBRFFlZ0phaUFESUFsQkNHb2dDVUVNYWlBQklBSWdBMEdBQVdvUUN5SVBRWWgvU3cwQVFWUWdDU2dDRENJRUlBQW9BZ0FpQVVIL0FYRkJBV3BMRFFFYUlBQkJCR29oQ3lBQUlBRkIvNEdBZUhFZ0JFRVFkRUdBZ1B3SGNYSTJBZ0JCZnlBRUlBUkJBRWdiUVFGcUlRQkJBQ0VCSUFrb0FnZ2hCVUVBSVFJRFFDQUFJQUpHQkVBZ0JVRURheUVCUVFBaEFBTkFBa0JCQUNFQ0lBQWdBVTRFUUFOQUlBQWdCVTROQWlBRElBQWdBMnBCNkFscUxRQUFRUUowYWtGQWF5SUJJQUVvQWdBaUFVRUJhallDQUNBQklBTnFJQUE2QU9nSElBQkJBV29oQUF3QUN3QUZBMEFnQWtFRVJrVUVRQ0FESUFNZ0FDQUNhaUlIYWtIb0NXb3RBQUJCQW5ScVFVQnJJZ2dnQ0NnQ0FDSUlRUUZxTmdJQUlBTWdDR29nQnpvQTZBY2dBa0VCYWlFQ0RBRUxDeUFBUVFScUlRQU1BZ3NBQ3dzZ0JFRUJhaUVPSUFNb0FnQWhCMEVBSVFCQkFTRUlBMEFnQ0NBT1JnMERJQTRnQ0dzaEJDQURJQWhCQW5ScUtBSUFJUVVDUUFKQUFrQUNRQUpBQWtCQkFTQUlkRUVCZFNJTlFRRnJEZ2dBQVFRQ0JBUUVBd1FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFBSVFFRFFDQUNJQVpHRFFVZ0F5QUNJQWRxYWkwQTZBY2hDaUFMSUFGQkFYUnFJZ3dnQkRvQUFTQU1JQW82QUFBZ0FrRUJhaUVDSUFGQkFXb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQ2lBQUlRRURRQ0FDSUFwR0RRUWdDeUFCUVFGMGFpSUdJQU1nQWlBSGFtb3RBT2dISWd3NkFBSWdCaUFFT2dBQklBWWdERG9BQUNBR0lBUTZBQU1nQWtFQmFpRUNJQUZCQW1vaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFFUVFoMFFZRCtBM0VoQkNBQUlRRURRQ0FDSUFaR0RRTWdDeUFCUVFGMGFpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK053QUFJQUpCQVdvaEFpQUJRUVJxSVFFTUFBc0FDMEVBSVFJZ0JVRUFJQVZCQUVvYklRWWdCRUVJZEVHQS9nTnhJUVFnQUNFQkEwQWdBaUFHUmcwQ0lBc2dBVUVCZEdvaUNpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0loRTNBQWdnQ2lBUk53QUFJQUpCQVdvaEFpQUJRUWhxSVFFTUFBc0FDMEVBSVFFZ0JVRUFJQVZCQUVvYklRb2dCRUVJZEVHQS9nTnhJUXdnQUNFRUEwQWdBU0FLUmcwQklBc2dCRUVCZEdvaEVDQU1JQU1nQVNBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0lSRkJBQ0VDQTBBZ0FpQU5Ua1VFUUNBUUlBSkJBWFJxSWdZZ0VUY0FHQ0FHSUJFM0FCQWdCaUFSTndBSUlBWWdFVGNBQUNBQ1FSQnFJUUlNQVFzTElBRkJBV29oQVNBRUlBMXFJUVFNQUFzQUN5QUlRUUZxSVFnZ0JTQUhhaUVISUFVZ0RXd2dBR29oQUF3QUN3QUZJQU1nQWtFQ2RHb2lCMEZBYXlBQk5nSUFJQUpCQVdvaEFpQUhLQUlBSUFGcUlRRU1BUXNBQ3dBTElBOExJQWxCRUdva0FBdnlBZ0VHZnlNQVFTQnJJZ1VrQUNBRUtBSUFJUVlnQlVFTWFpQUNJQU1RRFNJRFFZaC9UUVJBSUFSQkJHb2hBaUFBSUFGcUlnbEJBMnNoQkVFQUlBWkJFSFpyUVI5eElRTURRQ0FGUVF4cUVBOGdBQ0FFVDNKRkJFQWdBaUFGS0FJTUlnWWdCU2dDRUNJSGRDQURka0VCZEdvaUNDMEFBU0VLSUFBZ0NDMEFBRG9BQUNBQ0lBWWdCeUFLYWlJR2RDQURka0VCZEdvaUJ5MEFBQ0VJSUFVZ0JpQUhMUUFCYWpZQ0VDQUFJQWc2QUFFZ0FFRUNhaUVBREFFTEN3TkFJQVZCREdvUUR5RUhJQVVvQWd3aEJpQUZLQUlRSVFRZ0FDQUpUeUFIY2tVRVFDQUNJQVlnQkhRZ0EzWkJBWFJxSWdZdEFBQWhCeUFGSUFRZ0JpMEFBV28yQWhBZ0FDQUhPZ0FBSUFCQkFXb2hBQXdCQ3dzRFFDQUFJQWxQUlFSQUlBSWdCaUFFZENBRGRrRUJkR29pQnkwQUFTRUlJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdCQ0FJYWlFRURBRUxDMEZzUVd3Z0FTQUZLQUlVSUFVb0FoaEhHeUFFUVNCSEd5RURDeUFGUVNCcUpBQWdBd3ZQRkFFamZ5TUFRZEFBYXlJRkpBQkJiQ0VKQWtBZ0EwRUtTUTBBQWtBZ0F5QUNMd0FFSWdjZ0FpOEFBQ0lJSUFJdkFBSWlEV3BxUVFacUlneEpEUUFnQkM4QkFpRUdJQVZCUEdvZ0FrRUdhaUlDSUFnUURTSUpRWWgvU3cwQklBVkJLR29nQWlBSWFpSUNJQTBRRFNJSlFZaC9TdzBCSUFWQkZHb2dBaUFOYWlJQ0lBY1FEU0lKUVloL1N3MEJJQVVnQWlBSGFpQURJQXhyRUEwaUNVR0lmMHNOQVNBRVFRUnFJUW9nQUNBQmFpSWZRUU5ySVNCQkFDQUdhMEVmY1NFTElBVW9BZ2doRVNBRktBSWNJUklnQlNnQ01DRVRJQVVvQWtRaEZDQUZLQUlFSVFrZ0JTZ0NHQ0VOSUFVb0Fpd2hEQ0FGS0FKQUlRWWdCU2dDRUNFaElBVW9BaVFoSWlBRktBSTRJU01nQlNnQ1RDRWtJQVVvQWdBaEZTQUZLQUlVSVJZZ0JTZ0NLQ0VYSUFVb0Fqd2hHRUVCSVE4Z0FDQUJRUU5xUVFKMklnUnFJZ01nQkdvaUFpQUVhaUlaSVFRZ0FpRUlJQU1oQndOQUlBOUJBWEZGSUFRZ0lFOXlSUVJBSUFBZ0NpQVlJQVowSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEdpQU9MUUFESVJBZ0J5QUtJQmNnREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnRGkwQUFpRWJJQTR0QUFNaER5QUlJQW9nRmlBTmRDQUxka0VDZEdvaURpOEJBRHNBQUNBT0xRQUNJUndnRGkwQUF5RWRJQVFnQ2lBVklBbDBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloSGlBT0xRQURJUTRnQUNBUWFpSWxJQW9nR0NBR0lCcHFJZ1owSUF0MlFRSjBhaUlRTHdFQU93QUFJQkF0QUFJZ0VDMEFBeUVtSUFjZ0Qyb2lKeUFLSUJjZ0RDQWJhaUlhZENBTGRrRUNkR29pQnk4QkFEc0FBQ0FITFFBQ0lRd2dCeTBBQXlFUUlBZ2dIV29pR3lBS0lCWWdEU0FjYWlJUGRDQUxka0VDZEdvaUNDOEJBRHNBQUNBSUxRQUNJUTBnQ0MwQUF5RWNJQVFnRG1vaUhTQUtJQlVnQ1NBZWFpSU9kQ0FMZGtFQ2RHb2lDUzhCQURzQUFDQUdhaUVBUVFNaEJ3Si9JQlFnSkVrRVFDQUFJUVpCQXd3QkN5QUFRUWR4SVFZZ0ZDQUFRUU4yYXlJVUtBQUFJUmhCQUFzZ0NTMEFBeUVlSUFrdEFBSWhDQ0FNSUJwcUlRQWdFeUFqU1FSL0lBQUZJQk1nQUVFRGRtc2lFeWdBQUNFWFFRQWhCeUFBUVFkeEN5RU1JQTBnRDJvaEFDQUhjaUVKUVFNaER3Si9JQklnSWtrRVFDQUFJUTFCQXd3QkN5QUFRUWR4SVEwZ0VpQUFRUU4yYXlJU0tBQUFJUlpCQUFzZ0NDQU9haUVBSUFseUlCRWdJVWtFZnlBQUJTQVJJQUJCQTNackloRW9BQUFoRlVFQUlROGdBRUVIY1FzaENTQWxJQ1pxSVFBZ0VDQW5haUVISUJzZ0hHb2hDQ0FkSUI1cUlRUWdEM0pGSVE4TUFRc0xJQVVnRERZQ0xDQUZJQVkyQWtBZ0JTQU5OZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFJZ0Iwa2dBQ0FEUzNJTkFFRnNJUWtnQ0NBWlN3MEJJQU5CQTJzaENRTkFJQVZCUEdvUUQwVWdBQ0FKU1hFRVFDQUFJQW9nQlNnQ1BDSU5JQVVvQWtBaURIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0FDQU9MUUFEYWlJR0lBb2dEU0FNSUE0dEFBSnFJZ0IwSUF0MlFRSjBhaUlNTHdFQU93QUFJQVVnQUNBTUxRQUNhallDUUNBR0lBd3RBQU5xSVFBTUFRVWdBMEVDYXlFTUEwQWdCVUU4YWhBUElRWWdCU2dDUENFTklBVW9Ba0FoQ1NBQUlBeExJQVp5UlFSQUlBQWdDaUFOSUFsMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0NTQUdMUUFDYWpZQ1FDQUFJQVl0QUFOcUlRQU1BUXNMQTBBZ0FDQU1TMFVFUUNBQUlBb2dEU0FKZENBTGRrRUNkR29pQmk4QkFEc0FBQ0FBSUFZdEFBTnFJUUFnQ1NBR0xRQUNhaUVKREFFTEN3SkFJQUFnQTA4TkFDQUFJQW9nRFNBSmRDQUxkaUlBUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUpJQU10QUFKcUlRa01BUXNnQ1VFZlN3MEFRU0FnQ1NBS0lBQkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRa0xJQUpCQTJzaERBTkFJQVZCS0dvUUQwVWdCeUFNU1hFRVFDQUhJQW9nQlNnQ0tDSUdJQVVvQWl3aUFIUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0J5QU5MUUFEYWlJRElBb2dCaUFBSUEwdEFBSnFJZ0IwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQUNBR0xRQUNhallDTENBRElBWXRBQU5xSVFjTUFRVWdBa0VDYXlFR0EwQWdCVUVvYWhBUElRTWdCU2dDS0NFTUlBVW9BaXdoQUNBR0lBZEpJQU55UlFSQUlBY2dDaUFNSUFCMElBdDJRUUowYWlJREx3RUFPd0FBSUFVZ0FDQURMUUFDYWpZQ0xDQUhJQU10QUFOcUlRY01BUXNMQTBBZ0JpQUhTVVVFUUNBSElBb2dEQ0FBZENBTGRrRUNkR29pQXk4QkFEc0FBQ0FISUFNdEFBTnFJUWNnQUNBRExRQUNhaUVBREFFTEN3SkFJQUlnQjAwTkFDQUhJQW9nRENBQWRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUFJQU10QUFKcUlRQU1BUXNnQUVFZlN3MEFRU0FnQUNBS0lBSkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRQUxJQmxCQTJzaERBTkFJQVZCRkdvUUQwVWdDQ0FNU1hFRVFDQUlJQW9nQlNnQ0ZDSUdJQVVvQWhnaUFuUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0NDQU5MUUFEYWlJRElBb2dCaUFDSUEwdEFBSnFJZ0owSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQWlBR0xRQUNhallDR0NBRElBWXRBQU5xSVFnTUFRVWdHVUVDYXlFREEwQWdCVUVVYWhBUElRSWdCU2dDRkNFR0lBVW9BaGdoQnlBRElBaEpJQUp5UlFSQUlBZ2dDaUFHSUFkMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFVZ0J5QUNMUUFDYWpZQ0dDQUlJQUl0QUFOcUlRZ01BUXNMQTBBZ0F5QUlTVVVFUUNBSUlBb2dCaUFIZENBTGRrRUNkR29pQWk4QkFEc0FBQ0FJSUFJdEFBTnFJUWdnQnlBQ0xRQUNhaUVIREFFTEN3SkFJQWdnR1U4TkFDQUlJQW9nQmlBSGRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUhJQU10QUFKcUlRY01BUXNnQjBFZlN3MEFRU0FnQnlBS0lBSkJBblJxTFFBQ2FpSUNJQUpCSUU4YklRY0xBMEFnQlJBUFJTQUVJQ0JKY1FSQUlBUWdDaUFGS0FJQUlnWWdCU2dDQkNJQ2RDQUxka0VDZEdvaURDOEJBRHNBQUNBRUlBd3RBQU5xSWdNZ0NpQUdJQUlnREMwQUFtb2lBblFnQzNaQkFuUnFJZ1F2QVFBN0FBQWdCU0FDSUFRdEFBSnFOZ0lFSUFNZ0JDMEFBMm9oQkF3QkJTQWZRUUpySVFNRFFDQUZFQThoQWlBRktBSUFJUVlnQlNnQ0JDRUlJQU1nQkVrZ0FuSkZCRUFnQkNBS0lBWWdDSFFnQzNaQkFuUnFJZ0l2QVFBN0FBQWdCU0FJSUFJdEFBSnFOZ0lFSUFRZ0FpMEFBMm9oQkF3QkN3c0RRQ0FESUFSSlJRUkFJQVFnQ2lBR0lBaDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBUWdBaTBBQTJvaEJDQUlJQUl0QUFKcUlRZ01BUXNMQWtBZ0JDQWZUdzBBSUFRZ0NpQUdJQWgwSUF0MklnSkJBblJxSWdNdEFBQTZBQUFnQXkwQUEwRUJSZ1JBSUFnZ0F5MEFBbW9oQ0F3QkN5QUlRUjlMRFFCQklDQUlJQW9nQWtFQ2RHb3RBQUpxSWdJZ0FrRWdUeHNoQ0F0QmJFRnNRV3hCYkVGc1FXeEJiRUZzSUFFZ0NFRWdSeHNnQlNnQ0NDQUZLQUlNUnhzZ0IwRWdSeHNnQlNnQ0hDQUZLQUlnUnhzZ0FFRWdSeHNnQlNnQ01DQUZLQUkwUnhzZ0NVRWdSeHNnQlNnQ1JDQUZLQUpJUnhzaENRd0pDd0FMQUFzQUN3QUxBQXNBQ3dBTEFBdEJiQ0VKQ3lBRlFkQUFhaVFBSUFrTDdCQUJIbjhqQUVIUUFHc2lCU1FBUVd3aENRSkFJQU5CQ2trTkFBSkFJQU1nQWk4QUJDSUdJQUl2QUFBaUJ5QUNMd0FDSWdocWFrRUdhaUlPU1EwQUlBUXZBUUloRHlBRlFUeHFJQUpCQm1vaUFpQUhFQTBpQ1VHSWYwc05BU0FGUVNocUlBSWdCMm9pQWlBSUVBMGlDVUdJZjBzTkFTQUZRUlJxSUFJZ0NHb2lBaUFHRUEwaUNVR0lmMHNOQVNBRklBSWdCbW9nQXlBT2F4QU5JZ2xCaUg5TERRRWdCRUVFYWlFS0lBQWdBV29pSEVFRGF5RWRRUUFnRDJ0QkgzRWhDeUFGS0FJSUlSRWdCU2dDSENFU0lBVW9BakFoRXlBRktBSkVJUlFnQlNnQ0JDRUpJQVVvQWhnaEJpQUZLQUlzSVFjZ0JTZ0NRQ0VJSUFVb0FoQWhIaUFGS0FJa0lSOGdCU2dDT0NFZ0lBVW9Ba3doSVNBRktBSUFJUlVnQlNnQ0ZDRVdJQVVvQWlnaEZ5QUZLQUk4SVJoQkFTRU5JQUFnQVVFRGFrRUNkaUlDYWlJT0lBSnFJZzhnQW1vaUdTRUVJQThoQWlBT0lRTURRQ0FOUlNBRUlCMVBja1VFUUNBS0lCZ2dDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBQWdDaUFYSUFkMElBdDJRUUYwYWlJTUxRQUJJUkFnQXlBTUxRQUFPZ0FBSUFvZ0ZpQUdkQ0FMZGtFQmRHb2lEQzBBQVNFYUlBSWdEQzBBQURvQUFDQUtJQlVnQ1hRZ0MzWkJBWFJxSWd3dEFBRWhHeUFFSUF3dEFBQTZBQUFnQ2lBWUlBZ2dEV29pQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUVnQ2lBWElBY2dFR29pQjNRZ0MzWkJBWFJxSWd3dEFBRWhFQ0FESUF3dEFBQTZBQUVnQ2lBV0lBWWdHbW9pREhRZ0MzWkJBWFJxSWdZdEFBRWhHaUFDSUFZdEFBQTZBQUVnQ2lBVklBa2dHMm9pRzNRZ0MzWkJBWFJxSWdrdEFBRWhJaUFFSUFrdEFBQTZBQUVnQ0NBTmFpRUdRUU1oQ1FKL0lCUWdJVWtFUUVFRElRMGdCZ3dCQ3lBVUlBWkJBM1pySWhRb0FBQWhHRUVBSVEwZ0JrRUhjUXNoQ0NBSElCQnFJUVlnRXlBZ1NRUi9JQVlGSUJNZ0JrRURkbXNpRXlnQUFDRVhRUUFoQ1NBR1FRZHhDeUVISUF3Z0dtb2hEQ0FKSUExeUlSQkJBeUVOQW44Z0VpQWZTUVJBSUF3aEJrRUREQUVMSUF4QkIzRWhCaUFTSUF4QkEzWnJJaElvQUFBaEZrRUFDeUFiSUNKcUlRd2dFSEloRUNBUklCNUpCSDhnREFVZ0VTQU1RUU4yYXlJUktBQUFJUlZCQUNFTklBeEJCM0VMSVFrZ0JFRUNhaUVFSUFKQkFtb2hBaUFEUVFKcUlRTWdBRUVDYWlFQUlBMGdFSEpGSVEwTUFRc0xJQVVnQnpZQ0xDQUZJQWcyQWtBZ0JTQUdOZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFBZ0Rrc2dBeUFQUzNJTkFFRnNJUWtnQWlBWlN3MEJJQTVCQTJzaENRTkFJQVZCUEdvUUR5QUFJQWxQY2tVRVFDQUtJQVVvQWp3aUJpQUZLQUpBSWdkMElBdDJRUUYwYWlJSUxRQUJJUXdnQUNBSUxRQUFPZ0FBSUFvZ0JpQUhJQXhxSWdaMElBdDJRUUYwYWlJSExRQUFJUWdnQlNBR0lBY3RBQUZxTmdKQUlBQWdDRG9BQVNBQVFRSnFJUUFNQVFzTEEwQWdCVUU4YWhBUElRY2dCU2dDUENFR0lBVW9Ba0FoQ1NBQUlBNVBJQWR5UlFSQUlBb2dCaUFKZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQ1NBR0xRQUJhallDUUNBQUlBYzZBQUFnQUVFQmFpRUFEQUVMQ3dOQUlBQWdEazlGQkVBZ0NpQUdJQWwwSUF0MlFRRjBhaUlITFFBQklBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0NXb2hDUXdCQ3dzZ0QwRURheUVBQTBBZ0JVRW9haEFQSUFBZ0EwMXlSUVJBSUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQURJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaXdnQXlBSU9nQUJJQU5CQW1vaEF3d0JDd3NEUUNBRlFTaHFFQThoQnlBRktBSW9JUVlnQlNnQ0xDRUFJQU1nRDA4Z0IzSkZCRUFnQ2lBR0lBQjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQUFJQVl0QUFGcU5nSXNJQU1nQnpvQUFDQURRUUZxSVFNTUFRc0xBMEFnQXlBUFQwVUVRQ0FLSUFZZ0FIUWdDM1pCQVhScUlnY3RBQUVoQ0NBRElBY3RBQUE2QUFBZ0EwRUJhaUVESUFBZ0NHb2hBQXdCQ3dzZ0dVRURheUVEQTBBZ0JVRVVhaEFQSUFJZ0EwOXlSUVJBSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQUNJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaGdnQWlBSU9nQUJJQUpCQW1vaEFnd0JDd3NEUUNBRlFSUnFFQThoQnlBRktBSVVJUVlnQlNnQ0dDRURJQUlnR1U4Z0IzSkZCRUFnQ2lBR0lBTjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQURJQVl0QUFGcU5nSVlJQUlnQnpvQUFDQUNRUUZxSVFJTUFRc0xBMEFnQWlBWlQwVUVRQ0FLSUFZZ0EzUWdDM1pCQVhScUlnY3RBQUVoQ0NBQ0lBY3RBQUE2QUFBZ0FrRUJhaUVDSUFNZ0NHb2hBd3dCQ3dzRFFDQUZFQThnQkNBZFQzSkZCRUFnQ2lBRktBSUFJZ0lnQlNnQ0JDSUdkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUtJQUlnQmlBSWFpSUNkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdBaUFHTFFBQmFqWUNCQ0FFSUFjNkFBRWdCRUVDYWlFRURBRUxDd05BSUFVUUR5RUhJQVVvQWdBaEJpQUZLQUlFSVFJZ0JDQWNUeUFIY2tVRVFDQUtJQVlnQW5RZ0MzWkJBWFJxSWdZdEFBQWhCeUFGSUFJZ0JpMEFBV28yQWdRZ0JDQUhPZ0FBSUFSQkFXb2hCQXdCQ3dzRFFDQUVJQnhQUlFSQUlBb2dCaUFDZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FFUVFGcUlRUWdBaUFJYWlFQ0RBRUxDMEZzUVd4QmJFRnNRV3hCYkVGc1FXd2dBU0FDUVNCSEd5QUZLQUlJSUFVb0FneEhHeUFEUVNCSEd5QUZLQUljSUFVb0FpQkhHeUFBUVNCSEd5QUZLQUl3SUFVb0FqUkhHeUFKUVNCSEd5QUZLQUpFSUFVb0FraEhHeUVKREFFTFFXd2hDUXNnQlVIUUFHb2tBQ0FKQzFnQkEzOENRQ0FBS0FLUTZ3RWlBVVVOQUNBQktBSUFJQUZCdE5VQmFpZ0NBQ0lDSUFGQnVOVUJhaWdDQUNJREVCTWdBZ1JBSUFNZ0FTQUNFUUlBREFFTElBRVFCZ3NnQUVFQU5nS2c2d0VnQUVJQU53T1E2d0VMNlFNQ0JIOENmaUFBUVFCQktCQURJUVFnQWtFQlFRVWdBeHNpQUVrRVFDQUFEd3NnQVVVRVFFRi9Ed3RCQVNFR0FrQUNRQ0FEUVFGR0RRQWdBeUVHSUFFb0FBQWlCVUdvNnI1cFJnMEFRWFloQXlBRlFYQnhRZERVdE1JQlJ3MEJRUWdoQXlBQ1FRaEpEUUVnQVRVQUJDRUlJQVJCQVRZQ0ZDQUVJQWczQXdCQkFBOExJQUVnQWlBR0VCb2lBeUFDU3cwQUlBUWdBellDR0VGeUlRTWdBQ0FCYWlJRlFRRnJMUUFBSWdKQkNIRU5BQ0FDUVNCeElnWkZCRUJCY0NFRElBVXRBQUFpQlVHbkFVc05BU0FGUVFkeHJVSUJJQVZCQTNaQkNtcXRoaUlJUWdPSWZpQUlmQ0VKSUFCQkFXb2hBQXNnQWtFR2RpRUZJQUpCQW5aQkFDRURBa0FDUUFKQUFrQWdBa0VEY1VFQmF3NERBQUVDQXdzZ0FDQUJhaTBBQUNFRElBQkJBV29oQUF3Q0N5QUFJQUZxTHdBQUlRTWdBRUVDYWlFQURBRUxJQUFnQVdvb0FBQWhBeUFBUVFScUlRQUxRUUZ4SVFJQ2ZnSkFBa0FDUUFKQUlBVkJBV3NPQXdFQ0F3QUxRbjhnQmtVTkF4b2dBQ0FCYWpFQUFBd0RDeUFBSUFGcU13QUFRb0FDZkF3Q0N5QUFJQUZxTlFBQURBRUxJQUFnQVdvcEFBQUxJUWdnQkNBQ05nSWdJQVFnQXpZQ0hDQUVJQWczQXdCQkFDRURJQVJCQURZQ0ZDQUVJQWdnQ1NBR0d5SUlOd01JSUFSQ2dJQUlJQWdnQ0VLQWdBaGFHejRDRUFzZ0F3dGZBUUYvUWJoL0lRTWdBVUVCUVFVZ0Foc2lBazhFZnlBQUlBSnFRUUZyTFFBQUlnQkJBM0ZCQW5SQm9CNXFLQUlBSUFKcUlBQkJCSFpCREhGQnNCNXFLQUlBYWlBQVFTQnhJZ0ZGYWlBQlFRVjJJQUJCd0FCSmNXb0ZRYmgvQ3dzTUFDQUFJQUVnQWtFQUVCa0xsd01DQlg4Q2ZpTUFRVUJxSWdRa0FBSkFBMEFnQVVFRlR3UkFBa0FnQUNnQUFFRndjVUhRMUxUQ0FVWUVRRUorSVFjZ0FVRUlTUTBFSUFBb0FBUWlBa0YzU3cwRUlBSkJDR29pQXlBQlN3MEVJQUpCZ1g5SkRRRU1CQXNnQkVFWWFpQUFJQUVRR3lFQ1FuNGdCQ2tER0VJQUlBUW9BaXhCQVVjYklBSWJJZ2RDZlZZTkF5QUhJQWg4SWdnZ0IxUkNmaUVIRFFNQ1FBSkFJQUZCQ0VrTkFDQUFLQUFBUVhCeFFkRFV0TUlCUncwQUlBQW9BQVFpQWtGM1N3MEZRYmgvSUFKQkNHb2lBaUFCSUFKSkd5RUREQUVMSUFSQkdHb2dBQ0FCRUJzaUFrR0lmMHNFUUNBQ0lRTU1BUXRCdUg4aEF5QUNEUUFnQVNBRUtBSXdJZ0pySVFVZ0FDQUNhaUVHQTBBZ0JpQUZJQVJCREdvUUhTSURRWWgvU3cwQklBTkJBMm9pQWlBRlN3UkFRYmgvSVFNTUFnc2dCU0FDYXlFRklBSWdCbW9oQmlBRUtBSVFSUTBBQ3lBRUtBSTRCSDlCdUg4aEF5QUZRUVJKRFFFZ0JrRUVhZ1VnQmdzZ0FHc2hBd3NnQTBHSWYwc05Bd3NnQVNBRGF5RUJJQUFnQTJvaEFBd0JDd3RDZmlBSUlBRWJJUWNMSUFSQlFHc2tBQ0FIQzJRQkFYOUJ1SDhoQXdKQUlBRkJBMGtOQUNBQUxRQUNJUUVnQWlBQUx3QUFJZ0JCQVhFMkFnUWdBaUFBUVFGMlFRTnhJZ00yQWdBZ0FpQUFJQUZCRUhSeVFRTjJJZ0EyQWdnQ1FBSkFJQU5CQVdzT0F3SUJBQUVMUVd3UEN5QUFJUU1MSUFNTFJBRUNmeUFCSUFJb0FnUWlBeUFCS0FJRWFpSUVOZ0lFSUFBZ0EwRUNkRUdnSFdvb0FnQWdBU2dDQUVFQUlBUnJkbkUyQWdBZ0FSQVBHaUFBSUFKQkNHbzJBZ1FMemdFQkJuOUJ1bjhoQ2dKQUlBSW9BZ1FpQ0NBQ0tBSUFJZ2xxSWcwZ0FTQUFhMHNOQUVGc0lRb2dDU0FFSUFNb0FnQWlDMnRMRFFBZ0FDQUphaUlFSUFJb0FnZ2lER3NoQWlBQUlBRkJJR3NpQUNBTElBbEJBQkFnSUFNZ0NTQUxhallDQUFKQUFrQWdCQ0FGYXlBTVR3UkFJQUloQlF3QkN5QU1JQVFnQm10TERRSWdCeUFISUFJZ0JXc2lBbW9pQVNBSWFrOEVRQ0FFSUFFZ0NCQUtHZ3dDQ3lBQ0lBaHFJUWdnQkNBQlFRQWdBbXNRQ2lBQ2F5RUVDeUFFSUFBZ0JTQUlRUUVRSUFzZ0RTRUtDeUFLQzhjRUFRSi9JQUFnQTJvaEJnSkFJQU5CQjB3RVFBTkFJQUFnQms4TkFpQUFJQUl0QUFBNkFBQWdBRUVCYWlFQUlBSkJBV29oQWd3QUN3QUxJQVJCQVVZRVFBSkFJQUFnQW1zaUJVRUhUUVJBSUFBZ0FpMEFBRG9BQUNBQUlBSXRBQUU2QUFFZ0FDQUNMUUFDT2dBQ0lBQWdBaTBBQXpvQUF5QUFJQUlnQlVFQ2RDSUZRY0FlYWlnQ0FHb2lBaWdBQURZQUJDQUNJQVZCNEI1cUtBSUFheUVDREFFTElBQWdBaWtBQURjQUFBc2dBa0VJYWlFQ0lBQkJDR29oQUFzZ0FTQUdUd1JBSUFBZ0Eyb2hBU0FFUVFGSElBQWdBbXRCRDBweVJRUkFBMEFnQUNBQ0tRQUFOd0FBSUFKQkNHb2hBaUFBUVFocUlnQWdBVWtOQUF3REN3QUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQTBFUlNRMEJJQUJCRUdvaEFBTkFJQUFnQWlrQUVEY0FBQ0FBSUFJcEFCZzNBQWdnQUNBQ0tRQWdOd0FRSUFBZ0Fpa0FLRGNBR0NBQ1FTQnFJUUlnQUVFZ2FpSUFJQUZKRFFBTERBRUxBa0FnQUNBQlN3UkFJQUFoQVF3QkN5QUJJQUJySVFVQ1FDQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUlBSWhBd05BSUFBZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQUVFSWFpSUFJQUZKRFFBTERBRUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQlVFUlNBMEFJQUJCRUdvaEFDQUNJUU1EUUNBQUlBTXBBQkEzQUFBZ0FDQURLUUFZTndBSUlBQWdBeWtBSURjQUVDQUFJQU1wQUNnM0FCZ2dBMEVnYWlFRElBQkJJR29pQUNBQlNRMEFDd3NnQWlBRmFpRUNDd05BSUFFZ0JrOE5BU0FCSUFJdEFBQTZBQUFnQVVFQmFpRUJJQUpCQVdvaEFnd0FDd0FMQzY0SEFnVi9BWDRqQUVHQUFXc2lFU1FBSUJFZ0F6WUNmRUYvSVE4Q1FBSkFBa0FDUUFKQUlBSU9CQUVBQXdJRUN5QUdSUVJBUWJoL0lROE1CQXRCYkNFUElBVXRBQUFpQWlBRFN3MERJQWdnQWtFQ2RDSUNhaWdDQUNFRElBSWdCMm9vQWdBaEFpQUFRUUE2QUFzZ0FFSUFOd0lBSUFBZ0FqWUNEQ0FBSUFNNkFBb2dBRUVBT3dFSUlBRWdBRFlDQUVFQklROE1Bd3NnQVNBSk5nSUFRUUFoRHd3Q0N5QUtSUVJBUVd3aER3d0NDMEVBSVE4Z0MwVWdERUVaU0hJTkFVRUlJQVIwUVFocUlRQkJBQ0VEQTBBZ0FDQURUUTBDSUFOQlFHc2hBd3dBQ3dBTFFXd2hEeUFSSUJGQi9BQnFJQkZCK0FCcUlBVWdCaEFNSWdOQmlIOUxEUUFnRVNnQ2VDSUNJQVJMRFFBZ0VTZ0NmRUVCYWlFSklBQkJDR29oQzBHQWdBSWdBblJCRUhVaEJVRUJJUkJCQVNBQ2RDSVBRUUZySWdvaEVnTkFJQWtnRGtjRVFBSkFJQkVnRGtFQmRDSUVhaThCQUNJTVFmLy9BMFlFUUNBTElCSkJBM1JxSUE0MkFnUWdFa0VCYXlFU1FRRWhEQXdCQ3lBUVFRQWdCU0FNd1VvYklSQUxJQVFnRFdvZ0REc0JBQ0FPUVFGcUlRNE1BUXNMSUFBZ0FqWUNCQ0FBSUJBMkFnQUNRQ0FLSUJKR0JFQWdEVUhxQUdvaEJrRUFJUkJCQUNFTUEwQWdDU0FRUmdSQUlBOUJBM1lnRDBFQmRtcEJBMm9pQlVFQmRDRUVRUUFoREVFQUlSSURRRUVBSVE0Z0R5QVNUUTBFQTBBZ0RrRUNSd1JBSUFzZ0JTQU9iQ0FNYWlBS2NVRURkR29nQmlBT0lCSnFhaTBBQURZQ0JDQU9RUUZxSVE0TUFRc0xJQkpCQW1vaEVpQUVJQXhxSUFweElRd01BQXNBQlNBUklCQkJBWFJxTGdFQUlRVWdCaUFNYWlJRUlCTTNBQUJCQ0NFT0EwQWdCU0FPU2dSQUlBUWdEbW9nRXpjQUFDQU9RUWhxSVE0TUFRc0xJQk5DZ1lLRWlKQ2d3SUFCZkNFVElCQkJBV29oRUNBRklBeHFJUXdNQVFzQUN3QUxJQTlCQTNZZ0QwRUJkbXBCQTJvaEJVRUFJUkJCQUNFT0EwQWdDU0FRUmcwQlFRQWhEQ0FSSUJCQkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FNUndSQUlBc2dEa0VEZEdvZ0VEWUNCQU5BSUFVZ0Rtb2dDbkVpRGlBU1N3MEFDeUFNUVFGcUlRd01BUXNMSUJCQkFXb2hFQXdBQ3dBTElBSkJBV29oQlVFQUlRd0RRQ0FNSUE5SEJFQWdEU0FMSUF4QkEzUnFJZ2tvQWdRaUJFRUJkR29pQWlBQ0x3RUFJZ1pCQVdvN0FRQWdDU0FGSUFablFXQnphaUlDT2dBRElBa2dCaUFDZENBUGF6c0JBQ0FKSUFnZ0JFRUNkQ0lDYWlnQ0FEb0FBaUFKSUFJZ0Iyb29BZ0EyQWdRZ0RFRUJhaUVNREFFTEN5QUJJQUEyQWdBZ0F5RVBDeUFSUVlBQmFpUUFJQThMN1ZvQ08zOEdmaU1BUWVBQmF5SUVKQUFDUUVHdzdBa1FCU0lGUlFSQVFVQWhCd3dCQ3lBRlFnQTNBdlRxQVNBRlFRQTJBc1RyQVNBRlFRQTJBclRyQVNBRlFnQTNBcHpyQVNBRlFRQTJBcmpwQVNBRlFRQTJBcXpzQ1NBRlFnQTNBdFRyQVNBRlFnQTNBcXpyQVNBRlFnQTNBNGpyQVNBRlFnQTNBdVRxQVNBRlFnQTNBdVRyQVNBRlFZR0FnTUFBTmdLODZ3RWdCVUlBTndLazZ3RWdCVUg4NmdGcVFRQTJBZ0FnQlVHUTZ3RnFRZ0EzQXdBZ0JSQVlJQVZCck5VQmFpRVVJQVZCK09zQmFpRWNJQVZCc09vQmFpRWlJQVZCb0RCcUlTb2dCVUdZSUdvaEt5QUZRYWpRQUdvaEhpQUZRUkJxSVN3Z0JVRUlhaUVvSUFWQkJHb2hMU0FGUWNEcEFXb2hLU0FGUVlqckFXb2dCRUdVQVdvaEx5QUVRWXdCYWlFd0lBUkJoQUZxSVRFZ0JFSGNBR29oTWlBRVFkUUFhaUV6SUFSQnpBQnFJVFFnQUNFZEFrQUNRQUpBQWtBQ1FBTkFRUUZCQlNBRktBTGs2Z0ViSVFZQ1FBTkFJQU1nQmtrTkFTQUNLQUFBUVhCeFFkRFV0TUlCUmdSQVFiaC9JUWNnQTBFSVNRMElJQUlvQUFRaURrRjNTd1JBUVhJaEJ3d0pDeUFESUE1QkNHb2lDVWtOQ0NBT1FZQi9Td1JBSUFraEJ3d0pDeUFESUFscklRTWdBaUFKYWlFQ0RBRUxDeUFGUWdBM0FxenBBU0FGUWdBM0EranBBU0FGUVFBMkFwanJBU0FGUWdBM0E0RHFBU0FGUWdNM0EvanBBU0FGUWJUcEFXcENBRGNDQUNBRlFmRHBBV3BDQURjREFDQUZRYWpRQUdvaUNVR01nSURnQURZQ0FDQUZRYXpRQVdwQjRCSXBBZ0EzQWdBZ0JVRzAwQUZxUWVnU0tBSUFOZ0lBSUFVZ0JVRVFhallDQUNBRklBVkJvREJxTmdJRUlBVWdCVUdZSUdvMkFnZ2dCU0FKTmdJTUlBVkJBVUVGSUFVb0F1VHFBUnMyQXJ6cEFRSkFJQUZGRFFBZ0JTZ0NyT2tCSWdrZ0hVWU5BQ0FGSUFrMkFyanBBU0FGSUIwMkFxenBBU0FGS0FLdzZRRWhEaUFGSUIwMkFyRHBBU0FGSUIwZ0RpQUphMm8yQXJUcEFRdEJ1SDhoQ1NBRFFRVkJDU0FGS0FMazZnRWlCaHRKRFFVZ0FrRUJRUVVnQmhzZ0JoQWFJZzVCaUg5TEJFQWdEaUVKREFVTElBTWdEa0VEYWtrTkJTQXBJQUlnRGlBR0VCa2lCa0dJZjBzRVFDQUdJUWtNQlFzZ0JnMEZBa0FDUUNBRktBS282d0ZCQVVjTkFDQUZLQUtrNndFaUNVVU5BQ0FGS0FLVTZ3RkZEUUFnQ1NnQ0JFRUJheUlISUFVb0F0enBBU0lLclVLSGxhK3ZtTGJlbTU1L2ZrTEp6OW15OGVXNjZpZUZRaGVKUXMvVzA3N1N4NnZaUW41QytmUGQ4Wm4ybWFzV2ZDSS9RaUdJSUQrRlFzL1cwNzdTeDZ2WlFuNGlQMElkaUNBL2hVTDU4OTN4bWZhWnF4WitJajlDSUlnZ1A0V25jU0VHSUFrb0FnQWhGUU5BUVFBaENBSkFJQlVnQmtFQ2RHb29BZ0FpQ1VVTkFDQUpLQUlJUVFoSkRRQWdDU2dDQkNJU0tBQUFRYmZJd3VGK1J3MEFJQklvQUFRaENBc2dDQ0FLUndSQUlBWWdCM0ZCQVdvaEJpQUlEUUVMQ3lBSlJRMEFJQVVRR0NBRlFYODJBcURyQVNBRklBazJBcFRyQVNBRklBVW9BdHpwQVNJSU5nS1k2d0VNQVFzZ0JTZ0MzT2tCSVFnTEFrQWdDRVVOQUNBRktBS1k2d0VnQ0VZTkFFRmdJUWtNQmdzQ1FDQUZLQUxnNlFFRVFDQUZJQVVvQXVqcUFTSUpSVFlDN09vQklBa05BU0FGUXZucTBORG55YUhrNFFBM0E2anFBU0FGUWdBM0E2RHFBU0FGUXMvVzA3N1N4NnZaUWpjRG1Pb0JJQVZDMXV1Qzd1cjlpZlhnQURjRGtPb0JJQVZDQURjRGlPb0JJQ0pCQUVFb0VBTWFEQUVMSUFWQkFEWUM3T29CQ3lBQklCMXFJU1VnQlNBRktRUG82UUVnRHExOE53UG82UUVnQXlBT2F5RURJQUlnRG1vaEFpQWRJUTREUUNBQ0lBTWdCRUVzYWhBZEloVkJpSDlMQkVBZ0ZTRUpEQVlMSUFOQkEyc2lOU0FWU1EwRUlBSkJBMm9oRzBGc0lRa0NRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBRUtBSXNEZ01DQVFBVkN5QVZRZi8vQjBzTkV5QVZRUU5KRFJJZ0JTa0R5T2tCSVQ4Q1FBSkFJQnN0QUFBaUNVRURjU0lhUVFGckRnTUdBUUFIQ3lBRktBS0E2Z0VOQUVGaUlRa01GUXNnRlVFRlNRMFNJQnNvQUFBaEF3Si9Ba0FDUUFKQUlBbEJBblpCQTNFaUNVRUNhdzRDQVFJQUN5QUpRUUJISVFjZ0EwRUVka0gvQjNFaEMwRURJUVlnQTBFT2RrSC9CM0VNQWd0QkJDRUdJQU5CQkhaQi8vOEFjU0VMUVFFaEJ5QURRUkoyREFFTElBTkJCSFpCLy84UGNTSUxRWUNBQ0VzTkUwRUJJUWRCQlNFR0lBSXRBQWRCQ25RZ0EwRVdkbklMSWdnZ0Jtb2lDU0FWU3cwU0FrQWdDMEdCQmtrTkFDQUZLQUtjNndGRkRRQkJBQ0VEQTBBZ0EwR0RnQUZMRFFFZ0EwRkFheUVEREFBTEFBc2dCaUFiYWlFUElCcEJBMGNOQmlBRktBSU1JZ0l0QUFGQkNIUWhBeUFIRFFjZ0EwVU5DQ0FFUWZBQWFpQVBJQWdRRFNJRFFZaC9TdzBKSUFKQkJHb2hCaUFMSUJ4cUloSkJBMnNoQ2tFQUlBSXZBUUpyUVI5eElRY2dIQ0VEQTBBZ0JFSHdBR29RRDBVZ0F5QUtTWEVFUUNBRElBWWdCQ2dDY0NJSUlBUW9BblFpRDNRZ0IzWkJBblJxSWdJdkFRQTdBQUFnQXlBQ0xRQURhaUlESUFZZ0NDQVBJQUl0QUFKcUlnaDBJQWQyUVFKMGFpSUNMd0VBT3dBQUlBUWdDQ0FDTFFBQ2FqWUNkQ0FESUFJdEFBTnFJUU1NQVFVZ0VrRUNheUVJQTBBZ0JFSHdBR29RRHlFUElBUW9BbkFoQ2lBRUtBSjBJUUlnQXlBSVN5QVBja1VFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pQ2k4QkFEc0FBQ0FFSUFJZ0NpMEFBbW8yQW5RZ0F5QUtMUUFEYWlFRERBRUxDd05BSUFNZ0NFMEVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lEeThCQURzQUFDQURJQTh0QUFOcUlRTWdBaUFQTFFBQ2FpRUNEQUVMQ3dKQUlBTWdFazhOQUNBRElBWWdDaUFDZENBSGRrRUNkR29pQXkwQUFEb0FBQ0FETFFBRFFRRkdCRUFnQWlBRExRQUNhaUVDREFFTElBSkJIMHNOQUVFZ0lBSWdBeTBBQW1vaUFpQUNRU0JQR3lFQ0MwRnNRV3dnQ3lBRUtBSjRJQVFvQW54SEd5QUNRU0JIR3lFRERBc0xBQXNBQ3lBRUtBSTBJZ0lnSlNBT2Ewc05DaUFPUlFSQVFRQWhDU0FDRFFJTURnc2dEaUFiTFFBQUlBSVFBeG9nQWlFSkRBd0xJQlVnSlNBT2Ewc05DU0FPRFFGQkFDRUpJQlZGRFF3TFFiWi9JUWtNRVFzZ0RpQWJJQlVRQWhvZ0ZTRUpEQW9MSUJ3Z0d3Si9Ba0FDUUFKQUlBbEJBblpCQTNGQkFXc09Bd0VBQWdBTElBbEJBM1loQTBFQkRBSUxJQnN2QUFCQkJIWWhBMEVDREFFTElCVkJCRWtORGlBQ0x3QURJQUl0QUFWQkVIUnlJZ0pCajRDQUFVc05EaUFDUVFSMklRTkJBd3NpQW1vdEFBQWdBMEVnYWhBRElRa2dCU0FETmdLQTZ3RWdCU0FKTmdMdzZnRWdBa0VCYWlFSkRBVUxJQlVDZndKQUFrQUNRQ0FKUVFKMlFRTnhRUUZyRGdNQkFBSUFDeUFKUVFOMklRTkJBUXdDQ3lBYkx3QUFRUVIySVFOQkFnd0JDeUFDTHdBRElBSXRBQVZCRUhSeVFRUjJJUU5CQXdzaUFpQURhaUlKUVNCcVNRUkFJQWtnRlVzTkRTQWNJQUlnRzJvZ0F4QUNJUUlnQlNBRE5nS0E2d0VnQlNBQ05nTHc2Z0VnQWlBRGFpSUNRZ0EzQUJnZ0FrSUFOd0FRSUFKQ0FEY0FDQ0FDUWdBM0FBQU1CUXNnQlNBRE5nS0E2d0VnQlNBQ0lCdHFOZ0x3NmdFTUJBc2dCMFVFUUNBZUlBOGdDQ0FVRUJRaUFrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGU0VEREFNTElBdEZJQWhGY2cwTElBdEJDSFlpQXlBSUlBdEpCSDhnQ0VFRWRDQUxiZ1ZCRHd0QkdHd2lBa0dNQ0dvb0FnQnNJQUpCaUFocUtBSUFhaUlHUVFOMklBWnFJQUpCZ0FocUtBSUFJQUpCaEFocUtBSUFJQU5zYWtrRVFDTUFRUkJySWhBa0FDQWVLQUlBSVFNZ0ZFSHdCR3BCQUVIc0FCQURJUVpCVkNFQ0FrQWdBMEgvQVhFaURFRU1TdzBBQWtBZ0ZFSGNDV29nQmlBUVFRaHFJQkJCREdvZ0R5QUlJQlJCM0F0cUloY1FDeUlTUVloL1N3MEFJQkFvQWd3aUJpQU1TdzBCSUJSQnFBVnFJUTBnRkVHa0JXb2hOaUFlUVFScUlSRWdBMEdBZ0lCNGNTRTNJQVpCQVdvaUV5RUNJQVloQXdOQUlBSWlCMEVCYXlFQ0lBTWlDa0VCYXlFRElCUWdDa0VDZEdvb0F2QUVSUTBBQzBFQklBY2dCMEVCVFJzaEZrRUFJUWRCQVNFQ0EwQWdBaUFXUndSQUlCUWdBa0VDZENJRGFpZ0M4QVFoR0NBRElBMXFJQWMyQWdBZ0FrRUJhaUVDSUFjZ0dHb2hCd3dCQ3dzZ0RTQUhOZ0lBUVFBaEFpQVFLQUlJSVFNRFFDQUNJQU5IQkVBZ0RTQUNJQlJxUWR3SmFpMEFBQ0lZUVFKMGFpSVpJQmtvQWdBaUdVRUJhallDQUNBVUlCbEJBWFJxSWhrZ0dEb0EzUVVnR1NBQ09nRGNCU0FDUVFGcUlRSU1BUXNMUVFBaEF5QU5RUUEyQWdBZ0RDQUdRWDl6YWlFR1FRRWhBZ05BSUFJZ0ZrY0VRQ0FVSUFKQkFuUnFJZzBnQXpZQ0FDQU5LQUx3QkNBQ0lBWnFkQ0FEYWlFRElBSkJBV29oQWd3QkN3c2dEQ0FUSUFwcklnWnJRUUZxSVFvZ0JpRURBMEFnQXlBS1NRUkFJQlFnQTBFMGJHb2hEVUVCSVFJRFFDQUNJQlpIQkVBZ0RTQUNRUUowSWhocUlCUWdHR29vQWdBZ0EzWTJBZ0FnQWtFQmFpRUNEQUVMQ3lBRFFRRnFJUU1NQVFzTElCY2dGRUUwRUFJaE9DQVVRWkFNYWlFNUlCTWdER3NoT2lBVVFkd0ZhaUVYUVFBaENnTkFBa0FDUUNBSElBcEhCRUJCQVNBTUlCTWdGeUFLUVFGMGFpSUNMUUFCSWcxcklnTnJJaGgwSVJrZ0FpMEFBQ0VXSURnZ0RVRUNkR29pSHlnQ0FDRUNJQVlnR0UwRVFDQTJRUUVnQXlBNmFpSU5JQTFCQVV3YklpQkJBblFpSkdvb0FnQWhEU0E1SUJRZ0EwRTBiR3BCTkJBQ0lTRWdEVUVCZENFbUlCRWdBa0VDZEdvaEl5QWdRUUZORFFJZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRWdJQ0VnSkdvb0FnQWhKRUVBSVFJRFFDQUNJQ1JHRFFNZ0l5QUNRUUowYWlBZ05nRUFJQUpCQVdvaEFnd0FDd0FMSUFJZ0FpQVphaUlOSUFJZ0RVc2JJUTBnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFREEwQWdBaUFOUmcwRElCRWdBa0VDZEdvZ0F6WUJBQ0FDUVFGcUlRSU1BQXNBQ3lBZUlBeEJFSFFnTjNJZ0RISkJnQUp5TmdJQURBTUxJQWNnRFdzaEpDQVhJQ1pxSVNaQkFDRU5BMEFnRFNBa1JnMEJRUUVnR0NBVElDWWdEVUVCZEdvaUp5MEFBU0lDYXlJN2EzUWlQQ0FoSUFKQkFuUnFJaUFvQWdBaUFtb2hQU0FESUR0cVFSQjBRWUNBL0FkeElDY3RBQUJCQ0hSeUlCWnlRWUNBZ0JCeUlTY0RRQ0FqSUFKQkFuUnFJQ2MyQVFBZ0FrRUJhaUlDSUQxSkRRQUxJQ0FnSUNnQ0FDQThhallDQUNBTlFRRnFJUTBNQUFzQUN5QWZJQjhvQWdBZ0dXbzJBZ0FnQ2tFQmFpRUtEQUFMQUFzZ0VpRUNDeUFRUVJCcUpBQWdBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRmlFRERBTUxJQjRnRHlBSUlCUVFGQ0lDUVloL1N5QUNJQWhQY2cwTElCd2dDeUFDSUE5cUlBZ2dBbXNnSGhBWElRTU1BZ3NnQXdSQUlCd2dDeUFQSUFnZ0FoQVdJUU1NQWdzZ0hDQUxJQThnQ0NBQ0VCY2hBd3dCQ3lBY0lBc2dEeUFJSUFJUUZTRURDeUFEUVloL1N3MElJQVVnQ3pZQ2dPc0JJQVVnSERZQzhPb0JJQVZCQVRZQ2dPb0JJQnBCQWtZRVFDQUZJQjQyQWd3TElBc2dIR29pQWtJQU53QUFJQUpDQURjQUdDQUNRZ0EzQUJBZ0FrSUFOd0FJSUFsQmlIOUxEUW9MSUFrZ0ZVWU5DQ0FWSUFscklRWWdCU2dDbk9zQklRb0NRQ0FKSUJ0cUlnTXRBQUFpRDBVRVFFRUJJUUpCQUNFUFFiaC9JUWtnQmtFQlJnMEJEQXNMQW44Z0EwRUJhaUFQd0NJQ1FRQk9EUUFhSUFKQmYwWUVRQ0FHUVFOSURRc2dBeThBQVVHQS9nRnFJUThnQTBFRGFnd0JDeUFHUVFKSURRb2dBeTBBQVNBUFFRaDBja0dBZ0FKcklROGdBMEVDYWdzaEVrRzRmeUVKSUJKQkFXb2lBaUFWSUJ0cUlnZExEUW9nTENBRklCSXRBQUFpRWtFR2RrRWpRUWtnQWlBSElBSnJRY0FRUWRBUlFmQVNJQVVvQW9UcUFTQUtJQThnRkJBaElnbEJpSDlMRFFnZ0t5QW9JQkpCQkhaQkEzRkJIMEVJSUFJZ0NXb2lBaUFISUFKclFZQUxRWUFNUVlBWElBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlDRUdJZjBzTkNFRnNJUWtnS2lBdElCSkJBblpCQTNGQk5FRUpJQUlnQ0dvaUFpQUhJQUpyUVlBTlFlQU9RWkFaSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUIwR0lmMHNOQ2lBQ0lBZHFJQU5ySWdJaENTQUNRWWgvU3cwS0N5QU9JQTlCQUV4eURRRUxRYnAvSVFrTUNBc2dKU0FPYXlFSklBWWdBbXNoQmlBQ0lBTnFJUWNDUUFKQUFrQWdDa1VFUUNBUFFRbElJQVVwQThqcEFVS0JnSUFJVkhJTkFpQW9LQUlBSWdKQkNHb2hFaUFDS0FJRUlRcEJBQ0VEUVFBaEFnTkFJQU1nQ25aRkJFQWdBaUFTSUFOQkEzUnFMUUFDUVJaTGFpRUNJQU5CQVdvaEF3d0JDd3NnQlVFQU5nS2M2d0VnQWtFSUlBcHJkRUVVVHcwQkRBTUxJQVZCQURZQ25Pc0JDeUFFSUFVb0F2RHFBU0lETmdMY0FTQUpJQTVxSVJZZ0F5QUZLQUtBNndGcUlSY0NRQ0FQUlFSQUlBNGhCd3dCQ3lBRktBSzQ2UUVoR2lBRktBSzA2UUVoR0NBRktBS3c2UUVoRWlBRlFRRTJBb1RxQVVFQUlRTURRQ0FEUVFOSEJFQWdCQ0FEUVFKMElnSnFJQUlnQldwQnJOQUJhaWdDQURZQ1pDQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFUaHFJZ0lnQnlBR0VBMUJpSDlMRFFOQkNDQVBJQTlCQ0U0YklSOGdOQ0FDSUFVb0FnQVFIaUF6SUFJZ0JTZ0NDQkFlSURJZ0FpQUZLQUlFRUI0Z0RpQVNheUVaUVFBaENBTkFJQVJCT0dvUUQwRURSaUFJSUI5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdkQkVIWWlFVUgvQVhFaEN5QUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZ3hCRUhZaUlVSC9BWEVoRUNBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUVlnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNrSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lLYXlJTklBSWdBaUFOU3hzaUV5QUthallDUENBR0lBUW9BamdnQ25SQkFDQVRhM1lnQWlBVGF5SVRkR29oQ2lBRVFUaHFFQThhSUFJZ0RVME5BU0FFSUFRb0Fqd2lBaUFUYWpZQ1BDQUVLQUk0SUFKMFFRQWdFMnQySUFwcUlRb01BUXNnQkNBQ0lBUW9BandpRFdvMkFqd2dCQ2dDT0NBTmRFRUFJQXByZGlBR2FpRUtJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQW8yQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBREJFQWdCQ2dDWkNFS0RBTUxJQVFvQW1naENnd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQVlnQTBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdaRklBWnFJUW9nQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlBbzJBbVFMcHlFQ0lFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQkJxTmdJOElBUW9BamdnQm5SQkFDQWhhM1lnQW1vaEFnc2dDeUFRYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUF0cU5nSThJQVFvQWpnZ0JuUkJBQ0FSYTNZZ0Eyb2hBd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lCa0VBSUFkQkdIWWlDeUFFS0FJOGFpSVFhM1lnQzBFQ2RFR2dIV29vQWdCeElBZEIvLzhEY1dvMkFrd2dCQ0FRSUF4QkdIWWlCMm9pQ3pZQ1BDQUVJQWRCQW5SQm9CMXFLQUlBSUFaQkFDQUxhM1p4SUF4Qi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ1pCR0hZaUJ5QUVLQUk4YWlJTE5nSThJQVFnQjBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUF0cmRuRWdCa0gvL3dOeGFqWUNWQ0FFUWZBQWFpQUlRUXhzYWlJR0lBbzJBZ2dnQmlBQ05nSUVJQVlnQXpZQ0FDQUlRUUZxSVFnZ0F5QVphaUFDYWlFWkRBRUxDeUFJSUI5SURRTWdGa0VnYXlFaElBNGhCd05BSUFSQk9Hb1FEMEVEUmlBSUlBOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnWkJFSFlpSTBIL0FYRWhDaUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWcxQkVIWWlJRUgvQVhFaEV5QUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFNZ1FVSWdpQ0JBUWlDSXB5RUxBa0FnUWtJUWlLY2lERUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJTWF5SVJJQUlnQWlBUlN4c2lFQ0FNYWpZQ1BDQURJQVFvQWpnZ0RIUkJBQ0FRYTNZZ0FpQVFheUlNZEdvaEVDQUVRVGhxRUE4YUlBSWdFVTBOQVNBRUlBUW9BandpQWlBTWFqWUNQQ0FFS0FJNElBSjBRUUFnREd0MklCQnFJUkFNQVFzZ0JDQUNJQVFvQWp3aUVHbzJBandnQkNnQ09DQVFkRUVBSUF4cmRpQURhaUVRSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUJBMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQUxCRUFnQkNnQ1pDRVFEQU1MSUFRb0FtZ2hFQXdCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFNZ0MwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnTkZJQU5xSVJBZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQkEyQW1RTHB5RU1JRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUJOcU5nSThJQVFvQWpnZ0FuUkJBQ0FnYTNZZ0RHb2hEQXNnQ2lBVGFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lBcHFOZ0k4SUFRb0FqZ2dBblJCQUNBamEzWWdDMm9oQ3dzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQWtFQUlBWkJHSFlpQXlBRUtBSThhaUlLYTNZZ0EwRUNkRUdnSFdvb0FnQnhJQVpCLy84RGNXbzJBa3dnQkNBS0lBMUJHSFlpQTJvaUJqWUNQQ0FFSUFOQkFuUkJvQjFxS0FJQUlBSkJBQ0FHYTNaeElBMUIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdKQkdIWWlBeUFFS0FJOGFpSUdOZ0k4SUFRZ0EwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBWnJkbkVnQWtILy93TnhhallDVkFKQUFrQUNRQ0FFS0FMY0FTSURJQVJCOEFCcUlBaEJCM0ZCREd4cUloTW9BZ0FpRVdvaUl5QVhTdzBBSUFjZ0V5Z0NCQ0lOSUJGcUlncHFJQ0ZMRFFBZ0NrRWdhaUFXSUFkclRRMEJDeUFFSUJNb0FnZzJBaGdnQkNBVEtRSUFOd01RSUFjZ0ZpQUVRUkJxSUFSQjNBRnFJQmNnRWlBWUlCb1FIeUVLREFFTElBY2dFV29oQWlBVEtBSUlJUVlnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0FKQUlCRkJFVWtOQUNBSElBTXBBQkEzQUJBZ0J5QURLUUFZTndBWUlCRkJFR3RCRVVnTkFDQURRUkJxSVFNZ0IwRWdhaUVSQTBBZ0VTQURLUUFRTndBQUlCRWdBeWtBR0RjQUNDQVJJQU1wQUNBM0FCQWdFU0FES1FBb053QVlJQU5CSUdvaEF5QVJRU0JxSWhFZ0Fra05BQXNMSUFJZ0Jtc2hBeUFFSUNNMkF0d0JJQUlnRW1zZ0Jra0VRQ0FHSUFJZ0dHdExEUWNnR2lBYUlBTWdFbXNpQTJvaUVTQU5hazhFUUNBQ0lCRWdEUkFLR2d3Q0N5QURJQTFxSVEwZ0FpQVJRUUFnQTJzUUNpQURheUVDSUJJaEF3c2dCa0VRVHdSQUlBSWdBeWtBQURjQUFDQUNJQU1wQUFnM0FBZ2dEVUVSU0EwQklBSWdEV29oQmlBQ1FSQnFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBR1NRMEFDd3dCQ3dKQUlBWkJCMDBFUUNBQ0lBTXRBQUE2QUFBZ0FpQURMUUFCT2dBQklBSWdBeTBBQWpvQUFpQUNJQU10QUFNNkFBTWdBaUFESUFaQkFuUWlCa0hBSG1vb0FnQnFJZ01vQUFBMkFBUWdBeUFHUWVBZWFpZ0NBR3NoQXd3QkN5QUNJQU1wQUFBM0FBQUxJQTFCQ1VrTkFDQUNJQTFxSVJFZ0FrRUlhaUlHSUFOQkNHb2lBMnRCRDB3RVFBTkFJQVlnQXlrQUFEY0FBQ0FEUVFocUlRTWdCa0VJYWlJR0lCRkpEUUFNQWdzQUN5QUdJQU1wQUFBM0FBQWdCaUFES1FBSU53QUlJQTFCR1VnTkFDQUNRUmhxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQVJTUTBBQ3dzZ0NrR0lmMHNFUUNBS0lRa01CZ1VnRXlBUU5nSUlJQk1nRERZQ0JDQVRJQXMyQWdBZ0NFRUJhaUVJSUFjZ0Ntb2hCeUFMSUJscUlBeHFJUmtNQWdzQUN3c2dDQ0FQU0EwRElBZ2dIMnNoQmdOQUFrQWdCaUFQVGdSQVFRQWhBd05BSUFOQkEwWU5BaUFGSUFOQkFuUWlBbXBCck5BQmFpQUNJQVJxS0FKa05nSUFJQU5CQVdvaEF3d0FDd0FMQWtBQ1FBSkFJQVFvQXR3QklnTWdCRUh3QUdvZ0JrRUhjVUVNYkdvaUNDZ0NBQ0lNYWlJUUlCZExEUUFnQnlBSUtBSUVJZ3NnREdvaUNtb2dJVXNOQUNBS1FTQnFJQllnQjJ0TkRRRUxJQVFnQ0NnQ0NEWUNLQ0FFSUFncEFnQTNBeUFnQnlBV0lBUkJJR29nQkVIY0FXb2dGeUFTSUJnZ0doQWZJUW9NQVFzZ0J5QU1haUVDSUFnb0FnZ2hDQ0FISUFNcEFBQTNBQUFnQnlBREtRQUlOd0FJQWtBZ0RFRVJTUTBBSUFjZ0F5a0FFRGNBRUNBSElBTXBBQmczQUJnZ0RFRVFhMEVSU0EwQUlBTkJFR29oQXlBSFFTQnFJUXdEUUNBTUlBTXBBQkEzQUFBZ0RDQURLUUFZTndBSUlBd2dBeWtBSURjQUVDQU1JQU1wQUNnM0FCZ2dBMEVnYWlFRElBeEJJR29pRENBQ1NRMEFDd3NnQWlBSWF5RURJQVFnRURZQzNBRWdBaUFTYXlBSVNRUkFJQWdnQWlBWWEwc05CeUFhSUJvZ0F5QVNheUlEYWlJTUlBdHFUd1JBSUFJZ0RDQUxFQW9hREFJTElBTWdDMm9oQ3lBQ0lBeEJBQ0FEYXhBS0lBTnJJUUlnRWlFREN5QUlRUkJQQkVBZ0FpQURLUUFBTndBQUlBSWdBeWtBQ0RjQUNDQUxRUkZJRFFFZ0FpQUxhaUVJSUFKQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFJZ0F5MEFBRG9BQUNBQ0lBTXRBQUU2QUFFZ0FpQURMUUFDT2dBQ0lBSWdBeTBBQXpvQUF5QUNJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBSWdBeWtBQURjQUFBc2dDMEVKU1EwQUlBSWdDMm9oRENBQ1FRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0RFa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dDMEVaU0EwQUlBSkJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBeEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0dCU0FHUVFGcUlRWWdCeUFLYWlFSERBSUxBQXNMSUFRb0F0d0JJUU1MUWJwL0lRa2dGeUFEYXlJQ0lCWWdCMnRMRFFJZ0J3Ui9JQWNnQXlBQ0VBSWdBbW9GUVFBTElBNXJJUWtNQWdzZ0JVRUFOZ0tjNndFTElBUWdCU2dDOE9vQklnTTJBdHdCSUFrZ0Rtb2hEQ0FESUFVb0FvRHJBV29oRUFKQUlBOUZCRUFnRGlFR0RBRUxJQVVvQXJqcEFTRU5JQVVvQXJUcEFTRVRJQVVvQXJEcEFTRVNJQVZCQVRZQ2hPb0JRUUFoQXdOQUlBTkJBMGNFUUNBRUlBTkJBblFpQW1vZ0FpQUZha0dzMEFGcUtBSUFOZ0tjQVNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUWZBQWFpSUNJQWNnQmhBTlFZaC9TdzBCSURFZ0FpQUZLQUlBRUI0Z01DQUNJQVVvQWdnUUhpQXZJQUlnQlNnQ0JCQWVJQXhCSUdzaEdDQU9JUVlEUUNBRUtBS0lBU0FFS0FLRUFVRURkR29wQWdBaVFLY2lDa0VRZGlJWlFmOEJjU0VMSUFRb0FwZ0JJQVFvQXBRQlFRTjBhaWtDQUNKQnB5SVdRUkIySWg5Qi93RnhJUm9nQkNnQ2tBRWdCQ2dDakFGQkEzUnFLUUlBSWtKQ0lJaW5JUWNnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NkQ0lJYXlJUklBSWdBaUFSU3hzaUZ5QUlhallDZENBSElBUW9BbkFnQ0hSQkFDQVhhM1lnQWlBWGF5SVhkR29oQ0NBRVFmQUFhaEFQR2lBQ0lCRk5EUUVnQkNBRUtBSjBJZ0lnRjJvMkFuUWdCQ2dDY0NBQ2RFRUFJQmRyZGlBSWFpRUlEQUVMSUFRZ0FpQUVLQUowSWhGcU5nSjBJQVFvQW5BZ0VYUkJBQ0FJYTNZZ0Iyb2hDQ0FFUWZBQWFoQVBHZ3NnQkNrQ25BRWhSQ0FFSUFnMkFwd0JJQVFnUkRjQ29BRU1BUXNDUUNBQ1JRUkFJQU1FUUNBRUtBS2NBU0VJREFNTElBUW9BcUFCSVFnTUFRc2dCQ0FFS0FKMElnSkJBV28yQW5RQ2Z5QUhJQU5GYWlBRUtBSndJQUowUVI5MmFpSUNRUU5HQkVBZ0JDZ0NuQUZCQVdzTUFRc2dBa0VDZENBRWFpZ0NuQUVMSWdkRklBZHFJUWdnQWtFQlJ3UkFJQVFnQkNnQ29BRTJBcVFCQ3dzZ0JDQUVLQUtjQVRZQ29BRWdCQ0FJTmdLY0FRdW5JUUlnUVVLQWdQd0hnMUJGQkVBZ0JDQUVLQUowSWdjZ0dtbzJBblFnQkNnQ2NDQUhkRUVBSUI5cmRpQUNhaUVDQ3lBTElCcHFRUlJQQkVBZ0JFSHdBR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ2RDSUhJQXRxTmdKMElBUW9BbkFnQjNSQkFDQVphM1lnQTJvaEF3c2dCRUh3QUdvUUR4b2dCQ0FFS0FKd0lnZEJBQ0FLUVJoMklnc2dCQ2dDZEdvaUdtdDJJQXRCQW5SQm9CMXFLQUlBY1NBS1FmLy9BM0ZxTmdLRUFTQUVJQm9nRmtFWWRpSUthaUlMTmdKMElBUWdDa0VDZEVHZ0hXb29BZ0FnQjBFQUlBdHJkbkVnRmtILy93TnhhallDbEFFZ0JFSHdBR29RRHhvZ0JDQkNweUlIUVJoMklnb2dCQ2dDZEdvaUN6WUNkQ0FFSUFwQkFuUkJvQjFxS0FJQUlBUW9BbkJCQUNBTGEzWnhJQWRCLy84RGNXbzJBb3dCSUFRZ0F6WUNPQ0FFSUFJMkFqd2dCQ0FJTmdKQUFrQUNRQUpBSUFRb0F0d0JJZ3NnQTJvaUZpQVFTdzBBSUFZZ0FpQURhaUlLYWlBWVN3MEFJQXBCSUdvZ0RDQUdhMDBOQVFzZ0JDQUVRVUJyS0FJQU5nSUlJQVFnQkNrRE9EY0RBQ0FHSUF3Z0JDQUVRZHdCYWlBUUlCSWdFeUFORUI4aENnd0JDeUFESUFacUlRY2dCaUFMS1FBQU53QUFJQVlnQ3lrQUNEY0FDQUpBSUFOQkVVa05BQ0FHSUFzcEFCQTNBQkFnQmlBTEtRQVlOd0FZSUFOQkVHdEJFVWdOQUNBTFFSQnFJUU1nQmtFZ2FpRUxBMEFnQ3lBREtRQVFOd0FBSUFzZ0F5a0FHRGNBQ0NBTElBTXBBQ0EzQUJBZ0N5QURLUUFvTndBWUlBTkJJR29oQXlBTFFTQnFJZ3NnQjBrTkFBc0xJQWNnQ0dzaEF5QUVJQlkyQXR3QklBY2dFbXNnQ0VrRVFDQUlJQWNnRTJ0TERRUWdEU0FOSUFNZ0Vtc2lBMm9pQ3lBQ2FrOEVRQ0FISUFzZ0FoQUtHZ3dDQ3lBSElBdEJBQ0FEYXhBS0lBUWdBaUFEYWlJQ05nSThJQU5ySVFjZ0VpRURDeUFJUVJCUEJFQWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQ0FDUVJGSURRRWdBaUFIYWlFSUlBZEJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBY2dBeTBBQURvQUFDQUhJQU10QUFFNkFBRWdCeUFETFFBQ09nQUNJQWNnQXkwQUF6b0FBeUFISUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQWNnQXlrQUFEY0FBQXNnQWtFSlNRMEFJQUlnQjJvaEN5QUhRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dDMGtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQWtFWlNBMEFJQWRCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXRKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdEQ3lBR0lBcHFJUVlnQkVId0FHb1FEeUVESUE5QkFXc2lEdzBBQzBFQUlRSWdBMEVDU1EwQkEwQWdBa0VEUndSQUlBVWdBa0VDZENJRGFrR3MwQUZxSUFNZ0JHb29BcHdCTmdJQUlBSkJBV29oQWd3QkN3c2dCQ2dDM0FFaEF3dEJ1bjhoQ1NBUUlBTnJJZ0lnRENBR2Ewc05BQ0FHQkg4Z0JpQURJQUlRQWlBQ2FnVkJBQXNnRG1zaENRc2dDVUdJZjBzTkJnc0NRQ0FGS0FMczZnRkZEUUFnQlNBRktRT0k2Z0VnQ2ExOE53T0k2Z0VDUUNBRktBTFE2Z0VpQWlBSmFpSUlRUjlOQkVBZ0RrVU5BU0FDSUNKcUlBNGdDUkFDR2lBRktBTFE2Z0VnQ1dvaENBd0JDeUFPSVFNZ0FnUkFJQUlnSW1vZ0EwRWdJQUpyRUFJYUlBVW9BdERxQVNFQ0lBVkJBRFlDME9vQklBVWdCU2tEa09vQklBVXBBTERxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRGtPb0JJQVVnQlNrRG1Pb0JJQVVwQUxqcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RtT29CSUFVZ0JTa0RvT29CSUFVcEFNRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEb09vQklBVWdCU2tEcU9vQklBVXBBTWpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRHFPb0JJQU1nQW10QklHb2hBd3NnQ1NBT2FpSUNJQU5CSUdwUEJFQWdBa0VnYXlFR0lBVXBBNmpxQVNFL0lBVXBBNkRxQVNGQUlBVXBBNWpxQVNGQklBVXBBNURxQVNGQ0EwQWdBeWtBR0VMUDF0Tyswc2VyMlVKK0lEOThRaCtKUW9lVnI2K1l0dDZibm45K0lUOGdBeWtBRUVMUDF0Tyswc2VyMlVKK0lFQjhRaCtKUW9lVnI2K1l0dDZibm45K0lVQWdBeWtBQ0VMUDF0Tyswc2VyMlVKK0lFRjhRaCtKUW9lVnI2K1l0dDZibm45K0lVRWdBeWtBQUVMUDF0Tyswc2VyMlVKK0lFSjhRaCtKUW9lVnI2K1l0dDZibm45K0lVSWdBMEVnYWlJRElBWk5EUUFMSUFVZ1B6Y0RxT29CSUFVZ1FEY0RvT29CSUFVZ1FUY0RtT29CSUFVZ1FqY0RrT29CQ3lBQ0lBTk5EUUVnSWlBRElBSWdBMnNpQ0JBQ0dnc2dCU0FJTmdMUTZnRUxJRFVnRldzaEF5QVZJQnRxSVFJZ0NTQU9haUVPSUFRb0FqQkZEUUFMSUNrcEF3QWlQMEovVVNBL0lBNGdIV3VzVVhKRkJFQkJiQ0VKREFZTElBVW9BdURwQVFSQVFXb2hDU0FEUVFSSkRRWWdCU2dDNk9vQlJRUkFJQ0lnQlNnQzBPb0JhaUVLQW40Z0JTa0RpT29CSWo5Q0lGb0VRQ0FGS1FPWTZnRWlRRUlIaVNBRktRT1E2Z0VpUVVJQmlYd2dCU2tEb09vQklrSkNESWw4SUFVcEE2anFBU0pEUWhLSmZDQkJRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOUlFQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZvVkNoNVd2cjVpMjNwdWVmMzVDbmFPMTZvT3hqWXI2QUgwZ1FrTFAxdE8rMHNlcjJVSitRaCtKUW9lVnI2K1l0dDZibm45K2hVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNCRFFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5REFFTElBVXBBNkRxQVVMRno5bXk4ZVc2NmlkOEN5QS9mQ0UvSUNJaEJnTkFJQW9nQmtFSWFpSUhUd1JBSUFZcEFBQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUliaVVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0UvSUFjaEJnd0JDd3NDUUNBS0lBWkJCR29pQ0VrRVFDQUdJUWdNQVFzZ0JqVUFBRUtIbGErdm1MYmVtNTUvZmlBL2hVSVhpVUxQMXRPKzBzZXIyVUorUXZuejNmR1o5cG1yRm53aFB3c0RRQ0FJSUFwSkJFQWdDREVBQUVMRno5bXk4ZVc2NmlkK0lEK0ZRZ3VKUW9lVnI2K1l0dDZibm45K0lUOGdDRUVCYWlFSURBRUxDeUFDS0FBQUlEOUNJWWdnUDRWQ3o5YlR2dExIcTlsQ2ZpSS9RaDJJSUQrRlF2bnozZkdaOXBtckZuNGlQMElnaUNBL2hhZEhEUWNMSUFOQkJHc2hBeUFDUVFScUlRSUxJQTRnSFdzaUNVR0pmMDhOQkNBQklBbHJJUUVnQ1NBZGFpRWRRUUVoUGd3QkN3dEJ1SDhoQnlBRERRUWdIU0FBYXlFSERBUUxRV3doQ1F3QkMwRzRmeUVKQzBHNGZ5RUhJQWxCZGtZZ1BuRU5BUXNnQ1NFSEN5Z0NBQTBBSUFWQi9Pb0JhaWdDQUNFQklBVkIrT29CYWlnQ0FDRUFJQVVRR0NBRktBS3c2d0VnQUNBQkVCTWdCVUVBTmdLdzZ3RWdCU2dDcE9zQklnSUVRQUpBQWtBQ1FBSkFJQUlvQWdBaUF3UkFJQUJGRFFJZ0FTQURJQUFSQWdBTUFRc2dBRVVOQWdzZ0FTQUNJQUFSQWdBTUFnc2dBeEFHQ3lBQ0VBWUxJQVZCQURZQ3BPc0JDeUFBQkVBZ0FTQUZJQUFSQWdBTUFRc2dCUkFHQ3lBRVFlQUJhaVFBSUFjTEM2Z1ZDUUJCaUFnTERRRUFBQUFCQUFBQUFnQUFBQUlBUWFBSUM3TUdBUUFBQUFFQUFBQUNBQUFBQWdBQUFDWUFBQUNDQUFBQUlRVUFBRW9BQUFCbkNBQUFKZ0FBQU1BQkFBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUtRQUFBQ3dDQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBTHdBQUFNb0NBQUNBQUFBQWlnVUFBRW9BQUFDRUNRQUFOUUFBQUhNREFBQ0FBQUFBblFVQUFFb0FBQUNnQ1FBQVBRQUFBSUVEQUFDQUFBQUE2d1VBQUVzQUFBQStDZ0FBUkFBQUFKNERBQUNBQUFBQVRRWUFBRXNBQUFDcUNnQUFTd0FBQUxNREFBQ0FBQUFBd1FZQUFFMEFBQUFmRFFBQVRRQUFBRk1FQUFDQUFBQUFJd2dBQUZFQUFBQ21Ed0FBVkFBQUFKa0VBQUNBQUFBQVN3a0FBRmNBQUFDeEVnQUFXQUFBQU5vRUFBQ0FBQUFBYndrQUFGMEFBQUFqRkFBQVZBQUFBRVVGQUFDQUFBQUFWQW9BQUdvQUFBQ01GQUFBYWdBQUFLOEZBQUNBQUFBQWRna0FBSHdBQUFCT0VBQUFmQUFBQU5JQ0FBQ0FBQUFBWXdjQUFKRUFBQUNRQndBQWtnQUFBQUFBQUFBQkFBQUFBUUFBQUFVQUFBQU5BQUFBSFFBQUFEMEFBQUI5QUFBQS9RQUFBUDBCQUFEOUF3QUEvUWNBQVAwUEFBRDlId0FBL1Q4QUFQMS9BQUQ5L3dBQS9mOEJBUDMvQXdEOS93Y0EvZjhQQVAzL0h3RDkvejhBL2Y5L0FQMy8vd0Q5Ly84Qi9mLy9BLzMvL3dmOS8vOFAvZi8vSC8zLy96LzkvLzkvQUFBQUFBRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBREFBQUFCQUFBQUFVQUFBQUdBQUFBQndBQUFBZ0FBQUFKQUFBQUNnQUFBQXNBQUFBTUFBQUFEUUFBQUE0QUFBQVBBQUFBRUFBQUFCRUFBQUFTQUFBQUV3QUFBQlFBQUFBVkFBQUFGZ0FBQUJjQUFBQVlBQUFBR1FBQUFCb0FBQUFiQUFBQUhBQUFBQjBBQUFBZUFBQUFId0FBQUNBQUFBQWhBQUFBSWdBQUFDTUFBQUFsQUFBQUp3QUFBQ2tBQUFBckFBQUFMd0FBQURNQUFBQTdBQUFBUXdBQUFGTUFBQUJqQUFBQWd3QUFBQU1CQUFBREFnQUFBd1FBQUFNSUFBQURFQUFBQXlBQUFBTkFBQUFEZ0FBQUF3QUJBRUhnRHd0UkFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJBQUFBQVVBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFFSEVFQXVMQVFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBU0FBQUFGQUFBQUJZQUFBQVlBQUFBSEFBQUFDQUFBQUFvQUFBQU1BQUFBRUFBQUFDQUFBQUFBQUVBQUFBQ0FBQUFCQUFBQUFnQUFBQVFBQUFBSUFBQUFFQUFBQUNBQUFBQUFBRUFRWkFTQytZRUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBQkFBQUFCQUFBQUFnQUFBQUFBQUFBQVFBQkFRWUFBQUFBQUFBRUFBQUFBQkFBQUFRQUFBQUFJQUFBQlFFQUFBQUFBQUFGQXdBQUFBQUFBQVVFQUFBQUFBQUFCUVlBQUFBQUFBQUZCd0FBQUFBQUFBVUpBQUFBQUFBQUJRb0FBQUFBQUFBRkRBQUFBQUFBQUFZT0FBQUFBQUFCQlJBQUFBQUFBQUVGRkFBQUFBQUFBUVVXQUFBQUFBQUNCUndBQUFBQUFBTUZJQUFBQUFBQUJBVXdBQUFBSUFBR0JVQUFBQUFBQUFjRmdBQUFBQUFBQ0FZQUFRQUFBQUFLQmdBRUFBQUFBQXdHQUJBQUFDQUFBQVFBQUFBQUFBQUFCQUVBQUFBQUFBQUZBZ0FBQUNBQUFBVUVBQUFBQUFBQUJRVUFBQUFnQUFBRkJ3QUFBQUFBQUFVSUFBQUFJQUFBQlFvQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUlBQUJCUkFBQUFBQUFBRUZFZ0FBQUNBQUFRVVdBQUFBQUFBQ0JSZ0FBQUFnQUFNRklBQUFBQUFBQXdVb0FBQUFBQUFHQkVBQUFBQVFBQVlFUUFBQUFDQUFCd1dBQUFBQUFBQUpCZ0FDQUFBQUFBc0dBQWdBQURBQUFBUUFBQUFBRUFBQUJBRUFBQUFnQUFBRkFnQUFBQ0FBQUFVREFBQUFJQUFBQlFVQUFBQWdBQUFGQmdBQUFDQUFBQVVJQUFBQUlBQUFCUWtBQUFBZ0FBQUZDd0FBQUNBQUFBVU1BQUFBQUFBQUJnOEFBQUFnQUFFRkVnQUFBQ0FBQVFVVUFBQUFJQUFDQlJnQUFBQWdBQUlGSEFBQUFDQUFBd1VvQUFBQUlBQUVCVEFBQUFBQUFCQUdBQUFCQUFBQUR3WUFnQUFBQUFBT0JnQkFBQUFBQUEwR0FDQUFRWUFYQzRjQ0FRQUJBUVVBQUFBQUFBQUZBQUFBQUFBQUJnUTlBQUFBQUFBSkJmMEJBQUFBQUE4Ri9YOEFBQUFBRlFYOS94OEFBQUFEQlFVQUFBQUFBQWNFZlFBQUFBQUFEQVg5RHdBQUFBQVNCZjMvQXdBQUFCY0YvZjkvQUFBQUJRVWRBQUFBQUFBSUJQMEFBQUFBQUE0Ri9UOEFBQUFBRkFYOS93OEFBQUFDQlFFQUFBQVFBQWNFZlFBQUFBQUFDd1g5QndBQUFBQVJCZjMvQVFBQUFCWUYvZjgvQUFBQUJBVU5BQUFBRUFBSUJQMEFBQUFBQUEwRi9SOEFBQUFBRXdYOS93Y0FBQUFCQlFFQUFBQVFBQVlFUFFBQUFBQUFDZ1g5QXdBQUFBQVFCZjMvQUFBQUFCd0YvZi8vRHdBQUd3WDkvLzhIQUFBYUJmMy8vd01BQUJrRi9mLy9BUUFBR0FYOS8vOEFRWkFaQzRZRUFRQUJBUVlBQUFBQUFBQUdBd0FBQUFBQUFBUUVBQUFBSUFBQUJRVUFBQUFBQUFBRkJnQUFBQUFBQUFVSUFBQUFBQUFBQlFrQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUFBQUFCaEFBQUFBQUFBQUdFd0FBQUFBQUFBWVdBQUFBQUFBQUJoa0FBQUFBQUFBR0hBQUFBQUFBQUFZZkFBQUFBQUFBQmlJQUFBQUFBQUVHSlFBQUFBQUFBUVlwQUFBQUFBQUNCaThBQUFBQUFBTUdPd0FBQUFBQUJBWlRBQUFBQUFBSEJvTUFBQUFBQUFrR0F3SUFBQkFBQUFRRUFBQUFBQUFBQkFVQUFBQWdBQUFGQmdBQUFBQUFBQVVIQUFBQUlBQUFCUWtBQUFBQUFBQUZDZ0FBQUFBQUFBWU1BQUFBQUFBQUJnOEFBQUFBQUFBR0VnQUFBQUFBQUFZVkFBQUFBQUFBQmhnQUFBQUFBQUFHR3dBQUFBQUFBQVllQUFBQUFBQUFCaUVBQUFBQUFBRUdJd0FBQUFBQUFRWW5BQUFBQUFBQ0Jpc0FBQUFBQUFNR013QUFBQUFBQkFaREFBQUFBQUFGQm1NQUFBQUFBQWdHQXdFQUFDQUFBQVFFQUFBQU1BQUFCQVFBQUFBUUFBQUVCUUFBQUNBQUFBVUhBQUFBSUFBQUJRZ0FBQUFnQUFBRkNnQUFBQ0FBQUFVTEFBQUFBQUFBQmc0QUFBQUFBQUFHRVFBQUFBQUFBQVlVQUFBQUFBQUFCaGNBQUFBQUFBQUdHZ0FBQUFBQUFBWWRBQUFBQUFBQUJpQUFBQUFBQUJBR0F3QUJBQUFBRHdZRGdBQUFBQUFPQmdOQUFBQUFBQTBHQXlBQUFBQUFEQVlERUFBQUFBQUxCZ01JQUFBQUFBb0dBd1FBUWFRZEM5a0JBUUFBQUFNQUFBQUhBQUFBRHdBQUFCOEFBQUEvQUFBQWZ3QUFBUDhBQUFEL0FRQUEvd01BQVA4SEFBRC9Ed0FBL3g4QUFQOC9BQUQvZndBQS8vOEFBUC8vQVFELy93TUEvLzhIQVAvL0R3RC8veDhBLy84L0FQLy9md0QvLy84QS8vLy9BZi8vL3dQLy8vOEgvLy8vRC8vLy94Ly8vLzgvLy8vL2Z3QUFBQUFCQUFBQUFnQUFBQVFBQUFBQUFBQUFBZ0FBQUFRQUFBQUlBQUFBQUFBQUFBRUFBQUFDQUFBQUFRQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBZ0FBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0JCZ0I4TEE0QVJBUT09Ijt2YXIgeWU9bmV3IFBBLG1lPSExO2FzeW5jIGZ1bmN0aW9uIENyKEEsdCxlKXtsZXQgST1udWxsO3R5cGVvZiBBIT0ic3RyaW5nIj9JPUEuaHJlZjpBLnN0YXJ0c1dpdGgoImh0dHAiKT9JPUE6ST1gJHt0fS8ke0F9YCxJLmVuZHNXaXRoKCIuanMiKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC0zKSksSS5lbmRzV2l0aCgiLndhc20iKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC01KSksSS5lbmRzV2l0aCgiLndhc20uenN0IikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtOSkpO2xldCByPWAke0l9Lndhc21gLGc9YXdhaXQgeEEuZ2V0KGAke3J9LnpzdGAse3Jlc3BvbnNlVHlwZToiYXJyYXlidWZmZXIiLHBhcmFtczplfSk7bWV8fChhd2FpdCB5ZS5pbml0KCksbWU9ITApO2xldCBuPXllLmRlY29kZShuZXcgVWludDhBcnJheShnLmRhdGEpKS5idWZmZXI7cmV0dXJuKGF3YWl0IGltcG9ydChgJHtJfS5qc2ApKS5kZWZhdWx0KHt3YXNtQmluYXJ5Om59KX12YXIgd2U9Q3I7dmFyIGpBPW5ldyBNYXA7YXN5bmMgZnVuY3Rpb24gQnIoQSx0LGUpe2xldCBJPUEscj1BLGc9bnVsbDtyZXR1cm4gdHlwZW9mIEEhPSJzdHJpbmciJiYoST1uZXcgVVJMKEEuaHJlZikscj1JLmhyZWYpLGpBLmhhcyhyKT9nPWF3YWl0IGpBLmdldChyKTooakEuc2V0KHIsd2UoSSx0LGUpKSxnPWF3YWl0IGpBLmdldChyKSksZ312YXIgcGU9QnI7dmFyIGFyPXtUZXh0RmlsZToiVGV4dEZpbGUiLEJpbmFyeUZpbGU6IkJpbmFyeUZpbGUiLFRleHRTdHJlYW06IlRleHRTdHJlYW0iLEJpbmFyeVN0cmVhbToiQmluYXJ5U3RyZWFtIixJbWFnZToiSW1hZ2UiLFBvaW50U2V0OiJQb2ludFNldCIsTWVzaDoiTWVzaCIsUG9seURhdGE6IlBvbHlEYXRhIixUcmFuc2Zvcm1MaXN0OiJUcmFuc2Zvcm1MaXN0IixKc29uQ29tcGF0aWJsZToiSnNvbkNvbXBhdGlibGUifSxkPWFyO3ZhciBRcj17SW50ODoiaW50OCIsVUludDg6InVpbnQ4IixJbnQxNjoiaW50MTYiLFVJbnQxNjoidWludDE2IixJbnQzMjoiaW50MzIiLFVJbnQzMjoidWludDMyIixJbnQ2NDoiaW50NjQiLFVJbnQ2NDoidWludDY0IixTaXplVmFsdWVUeXBlOiJ1aW50NjQiLElkZW50aWZpZXJUeXBlOiJ1aW50NjQiLEluZGV4VmFsdWVUeXBlOiJpbnQ2NCIsT2Zmc2V0VmFsdWVUeXBlOiJpbnQ2NCJ9LFU9UXI7dmFyIEVyPXtGbG9hdDMyOiJmbG9hdDMyIixGbG9hdDY0OiJmbG9hdDY0IixTcGFjZVByZWNpc2lvblR5cGU6ImZsb2F0NjQifSxWPUVyO2Z1bmN0aW9uIGNyKEEsdCl7bGV0IGU9bnVsbDtzd2l0Y2goQSl7Y2FzZSBVLlVJbnQ4OntlPW5ldyBVaW50OEFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQ4OntlPW5ldyBJbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBVLlVJbnQxNjp7ZT1uZXcgVWludDE2QXJyYXkodCk7YnJlYWt9Y2FzZSBVLkludDE2OntlPW5ldyBJbnQxNkFycmF5KHQpO2JyZWFrfWNhc2UgVS5VSW50MzI6e2U9bmV3IFVpbnQzMkFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQzMjp7ZT1uZXcgSW50MzJBcnJheSh0KTticmVha31jYXNlIFUuVUludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdVaW50NjRBcnJheT09ImZ1bmN0aW9uIj9lPW5ldyBCaWdVaW50NjRBcnJheSh0KTplPW5ldyBVaW50OEFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnSW50NjRBcnJheT09ImZ1bmN0aW9uIj9lPW5ldyBCaWdJbnQ2NEFycmF5KHQpOmU9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBWLkZsb2F0MzI6e2U9bmV3IEZsb2F0MzJBcnJheSh0KTticmVha31jYXNlIFYuRmxvYXQ2NDp7ZT1uZXcgRmxvYXQ2NEFycmF5KHQpO2JyZWFrfWNhc2UibnVsbCI6e2U9bnVsbDticmVha31jYXNlIG51bGw6e2U9bnVsbDticmVha31kZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVHlwZSBpcyBub3Qgc3VwcG9ydGVkIGFzIGEgVHlwZWRBcnJheSIpfXJldHVybiBlfXZhciBxPWNyO3ZhciBSZT10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcj09ImZ1bmN0aW9uIixTZT1uZXcgVGV4dEVuY29kZXIsRmU9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpO2Z1bmN0aW9uIGZyKEEsdCl7bGV0IGU9e2ZsYWdzOiJyIixlbmNvZGluZzoiYmluYXJ5In0sST1BLmZzX29wZW4odCxlLmZsYWdzKSxnPUEuZnNfc3RhdCh0KS5zaXplLG89bnVsbDtSZT9vPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihnKTpvPW5ldyBBcnJheUJ1ZmZlcihnKTtsZXQgbj1uZXcgVWludDhBcnJheShvKTtyZXR1cm4gQS5mc19yZWFkKEksbiwwLGcsMCksQS5mc19jbG9zZShJKSxufWZ1bmN0aW9uIE5lKEEsdCxlKXtsZXQgST1udWxsO1JlP0k9bmV3IFNoYXJlZEFycmF5QnVmZmVyKGUpOkk9bmV3IEFycmF5QnVmZmVyKGUpO2xldCByPW5ldyBVaW50OEFycmF5KEkpLGc9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLHQsZSk7cmV0dXJuIHIuc2V0KGcpLHJ9ZnVuY3Rpb24gdyhBLHQsZSxJKXtsZXQgcj0wO3JldHVybiB0IT09bnVsbCYmKHI9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfYXJyYXlfYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSxJLHQuYnVmZmVyLmJ5dGVMZW5ndGhdKSxBLkhFQVBVOC5zZXQobmV3IFVpbnQ4QXJyYXkodC5idWZmZXIpLHIpKSxyfWZ1bmN0aW9uIHgoQSx0LGUpe2xldCBJPUpTT04uc3RyaW5naWZ5KHQpLHI9QS5sZW5ndGhCeXRlc1VURjgoSSkrMSxnPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2pzb25fYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSxyXSk7QS5zdHJpbmdUb1VURjgoSSxnLHIpfWZ1bmN0aW9uIFMoQSx0LGUsSSl7bGV0IHI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxlXSksZz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LGVdKSxvPU5lKEEscixnKTtyZXR1cm4gcShJLG8uYnVmZmVyKX1mdW5jdGlvbiB1QShBLHQpe2xldCBlPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9qc29uX2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIl0sWzAsdF0pLEk9QS5VVEY4VG9TdHJpbmcoZSk7cmV0dXJuIEpTT04ucGFyc2UoSSl9ZnVuY3Rpb24gbHIoQSx0LGUsSSl7SSE9bnVsbCYmSS5sZW5ndGg+MCYmSS5mb3JFYWNoKGZ1bmN0aW9uKEIscyl7c3dpdGNoKEIudHlwZSl7Y2FzZSBkLlRleHRTdHJlYW06e2xldCBDPVNlLmVuY29kZShCLmRhdGEuZGF0YSksbD13KEEsQyxzLDApLGE9e3NpemU6Qy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTt4KEEsYSxzKTticmVha31jYXNlIGQuSnNvbkNvbXBhdGlibGU6e2xldCBDPVNlLmVuY29kZShKU09OLnN0cmluZ2lmeShCLmRhdGEpKSxsPXcoQSxDLHMsMCksYT17c2l6ZTpDLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O3goQSxhLHMpO2JyZWFrfWNhc2UgZC5CaW5hcnlTdHJlYW06e2xldCBDPUIuZGF0YS5kYXRhLGw9dyhBLEMscywwKSxhPXtzaXplOkMuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07eChBLGEscyk7YnJlYWt9Y2FzZSBkLlRleHRGaWxlOntBLmZzX3dyaXRlRmlsZShCLmRhdGEucGF0aCxCLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBkLkJpbmFyeUZpbGU6e0EuZnNfd3JpdGVGaWxlKEIuZGF0YS5wYXRoLEIuZGF0YS5kYXRhKTticmVha31jYXNlIGQuSW1hZ2U6e2xldCBDPUIuZGF0YSxsPXcoQSxDLmRhdGEscywwKSxhPXcoQSxDLmRpcmVjdGlvbixzLDEpLFE9dHlwZW9mIEMubWV0YWRhdGE/LmVudHJpZXM8InUiP0FycmF5LmZyb20oQy5tZXRhZGF0YS5lbnRyaWVzKCkpOltdLGY9e2ltYWdlVHlwZTpDLmltYWdlVHlwZSxuYW1lOkMubmFtZSxvcmlnaW46Qy5vcmlnaW4sc3BhY2luZzpDLnNwYWNpbmcsZGlyZWN0aW9uOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7YX1gLHNpemU6Qy5zaXplLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbWV0YWRhdGE6UX07eChBLGYscyk7YnJlYWt9Y2FzZSBkLk1lc2g6e2xldCBDPUIuZGF0YSxsPXcoQSxDLnBvaW50cyxzLDApLGE9dyhBLEMuY2VsbHMscywxKSxRPXcoQSxDLnBvaW50RGF0YSxzLDIpLGY9dyhBLEMuY2VsbERhdGEscywzKSxjPXttZXNoVHlwZTpDLm1lc2hUeXBlLG5hbWU6Qy5uYW1lLG51bWJlck9mUG9pbnRzOkMubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG51bWJlck9mQ2VsbHM6Qy5udW1iZXJPZkNlbGxzLGNlbGxzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7YX1gLGNlbGxCdWZmZXJTaXplOkMuY2VsbEJ1ZmZlclNpemUsbnVtYmVyT2ZQb2ludFBpeGVsczpDLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLG51bWJlck9mQ2VsbFBpeGVsczpDLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YH07eChBLGMscyk7YnJlYWt9Y2FzZSBkLlBvaW50U2V0OntsZXQgQz1CLmRhdGEsbD13KEEsQy5wb2ludHMscywwKSxhPXcoQSxDLnBvaW50RGF0YSxzLDEpLFE9e3BvaW50U2V0VHlwZTpDLnBvaW50U2V0VHlwZSxuYW1lOkMubmFtZSxudW1iZXJPZlBvaW50czpDLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxudW1iZXJPZlBvaW50UGl4ZWxzOkMubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHthfWB9O3goQSxRLHMpO2JyZWFrfWNhc2UgZC5UcmFuc2Zvcm1MaXN0OntsZXQgQz1CLmRhdGEsbD1bXSxhPTA7Qy5mb3JFYWNoKFE9PntsZXQgZj0iIixjPSIiO1EudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihmPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dyhBLFEuZml4ZWRQYXJhbWV0ZXJzLHMsYSl9YCxhKz0xLGM9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt3KEEsUS5wYXJhbWV0ZXJzLHMsYSl9YCxhKz0xKTtsZXQgRD17dHJhbnNmb3JtVHlwZTpRLnRyYW5zZm9ybVR5cGUsbnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM6US5udW1iZXJPZkZpeGVkUGFyYW1ldGVycyxudW1iZXJPZlBhcmFtZXRlcnM6US5udW1iZXJPZlBhcmFtZXRlcnMsbmFtZTpRLm5hbWUsaW5wdXRTcGFjZU5hbWU6US5pbnB1dFNwYWNlTmFtZSxvdXRwdXRTcGFjZU5hbWU6US5vdXRwdXRTcGFjZU5hbWUscGFyYW1ldGVyczpjLGZpeGVkUGFyYW1ldGVyczpmfTtsLnB1c2goRCl9KSx4KEEsbCxzKTticmVha31jYXNlIGQuUG9seURhdGE6e2xldCBDPUIuZGF0YSxsPXcoQSxDLnBvaW50cyxzLDApLGE9dyhBLEMudmVydGljZXMscywxKSxRPXcoQSxDLmxpbmVzLHMsMiksZj13KEEsQy5wb2x5Z29ucyxzLDMpLGM9dyhBLEMudHJpYW5nbGVTdHJpcHMscyw0KSxEPXcoQSxDLnBvaW50RGF0YSxzLDUpLEY9dyhBLEMucG9pbnREYXRhLHMsNikseT17cG9seURhdGFUeXBlOkMucG9seURhdGFUeXBlLG5hbWU6Qy5uYW1lLG51bWJlck9mUG9pbnRzOkMubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLHZlcnRpY2VzQnVmZmVyU2l6ZTpDLnZlcnRpY2VzQnVmZmVyU2l6ZSx2ZXJ0aWNlczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2F9YCxsaW5lc0J1ZmZlclNpemU6Qy5saW5lc0J1ZmZlclNpemUsbGluZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAscG9seWdvbnNCdWZmZXJTaXplOkMucG9seWdvbnNCdWZmZXJTaXplLHBvbHlnb25zOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gLHRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZTpDLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZSx0cmlhbmdsZVN0cmlwczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YCxudW1iZXJPZlBvaW50UGl4ZWxzOkMubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtEfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOkMubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Rn1gfTt4KEEseSxzKTticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBpbnB1dCBJbnRlcmZhY2VUeXBlIil9fSksQS5yZXNldE1vZHVsZVN0ZG91dCgpLEEucmVzZXRNb2R1bGVTdGRlcnIoKTtsZXQgcj1BLnN0YWNrU2F2ZSgpLGc9MDt0cnl7Zz1BLmNhbGxNYWluKHQuc2xpY2UoKSl9Y2F0Y2goQil7dGhyb3cgdHlwZW9mIEI9PSJudW1iZXIiJiYoY29uc29sZS5sb2coIkV4Y2VwdGlvbiB3aGlsZSBydW5uaW5nIHBpcGVsaW5lOiIpLGNvbnNvbGUubG9nKCJzdGRvdXQ6IixBLmdldE1vZHVsZVN0ZG91dCgpKSxjb25zb2xlLmVycm9yKCJzdGRlcnI6IixBLmdldE1vZHVsZVN0ZGVycigpKSx0eXBlb2YgQS5nZXRFeGNlcHRpb25NZXNzYWdlPCJ1Ij9jb25zb2xlLmVycm9yKCJleGNlcHRpb246IixBLmdldEV4Y2VwdGlvbk1lc3NhZ2UoQikpOmNvbnNvbGUuZXJyb3IoIkJ1aWxkIG1vZHVsZSBpbiBEZWJ1ZyBtb2RlIGZvciBleGNlcHRpb24gbWVzc2FnZSBpbmZvcm1hdGlvbi4iKSksQn1maW5hbGx5e0Euc3RhY2tSZXN0b3JlKHIpfWxldCBvPUEuZ2V0TW9kdWxlU3Rkb3V0KCksbj1BLmdldE1vZHVsZVN0ZGVycigpLEU9W107cmV0dXJuIGUhPW51bGwmJmUubGVuZ3RoPjAmJmc9PT0wJiZlLmZvckVhY2goZnVuY3Rpb24oQixzKXtsZXQgQz1udWxsO3N3aXRjaChCLnR5cGUpe2Nhc2UgZC5UZXh0U3RyZWFtOntsZXQgYT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLGY9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLGEsUSk7Qz17ZGF0YTpGZS5kZWNvZGUoZil9O2JyZWFrfWNhc2UgZC5Kc29uQ29tcGF0aWJsZTp7bGV0IGE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxmPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixhLFEpO0M9SlNPTi5wYXJzZShGZS5kZWNvZGUoZikpO2JyZWFrfWNhc2UgZC5CaW5hcnlTdHJlYW06e2xldCBhPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSk7Qz17ZGF0YTpOZShBLGEsUSl9O2JyZWFrfWNhc2UgZC5UZXh0RmlsZTp7Qz17cGF0aDpCLmRhdGEucGF0aCxkYXRhOkEuZnNfcmVhZEZpbGUoQi5kYXRhLnBhdGgse2VuY29kaW5nOiJ1dGY4In0pfTticmVha31jYXNlIGQuQmluYXJ5RmlsZTp7Qz17cGF0aDpCLmRhdGEucGF0aCxkYXRhOmZyKEEsQi5kYXRhLnBhdGgpfTticmVha31jYXNlIGQuSW1hZ2U6e2xldCBhPXVBKEEscyk7YS5kYXRhPVMoQSxzLDAsYS5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSksYS5kaXJlY3Rpb249UyhBLHMsMSxWLkZsb2F0NjQpLGEubWV0YWRhdGE9bmV3IE1hcChhLm1ldGFkYXRhKSxDPWE7YnJlYWt9Y2FzZSBkLk1lc2g6e2xldCBhPXVBKEEscyk7YS5udW1iZXJPZlBvaW50cz4wP2EucG9pbnRzPVMoQSxzLDAsYS5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUpOmEucG9pbnRzPXEoYS5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mQ2VsbHM+MD9hLmNlbGxzPVMoQSxzLDEsYS5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSk6YS5jZWxscz1xKGEubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mUG9pbnRQaXhlbHM+MD9hLnBvaW50RGF0YT1TKEEscywyLGEubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOmEucG9pbnREYXRhPXEoYS5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/YS5jZWxsRGF0YT1TKEEscywzLGEubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6YS5jZWxsRGF0YT1xKGEubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEM9YTticmVha31jYXNlIGQuUG9pbnRTZXQ6e2xldCBhPXVBKEEscyk7YS5udW1iZXJPZlBvaW50cz4wP2EucG9pbnRzPVMoQSxzLDAsYS5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTphLnBvaW50cz1xKGEucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZQb2ludFBpeGVscz4wP2EucG9pbnREYXRhPVMoQSxzLDEsYS5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOmEucG9pbnREYXRhPXEoYS5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDPWE7YnJlYWt9Y2FzZSBkLlRyYW5zZm9ybUxpc3Q6e2xldCBhPXVBKEEscyksUT0wO2EuZm9yRWFjaCgoZixjKT0+e2YudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihmLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzPjAmJihhW2NdLmZpeGVkUGFyYW1ldGVycz1TKEEscyxRLFYuRmxvYXQ2NCkpLFErPTEsZi5udW1iZXJPZlBhcmFtZXRlcnM+MCYmKGFbY10ucGFyYW1ldGVycz1TKEEscyxRLGYudHJhbnNmb3JtVHlwZS5wYXJhbWV0ZXJzVmFsdWVUeXBlKSksUSs9MSl9KSxDPWE7YnJlYWt9Y2FzZSBkLlBvbHlEYXRhOntsZXQgYT11QShBLHMpO2EubnVtYmVyT2ZQb2ludHM+MD9hLnBvaW50cz1TKEEscywwLFYuRmxvYXQzMik6YS5wb2ludHM9bmV3IEZsb2F0MzJBcnJheSxhLnZlcnRpY2VzQnVmZmVyU2l6ZT4wP2EudmVydGljZXM9UyhBLHMsMSxVLlVJbnQzMik6YS52ZXJ0aWNlcz1uZXcgVWludDMyQXJyYXksYS5saW5lc0J1ZmZlclNpemU+MD9hLmxpbmVzPVMoQSxzLDIsVS5VSW50MzIpOmEubGluZXM9bmV3IFVpbnQzMkFycmF5LGEucG9seWdvbnNCdWZmZXJTaXplPjA/YS5wb2x5Z29ucz1TKEEscywzLFUuVUludDMyKTphLnBvbHlnb25zPW5ldyBVaW50MzJBcnJheSxhLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZT4wP2EudHJpYW5nbGVTdHJpcHM9UyhBLHMsNCxVLlVJbnQzMik6YS50cmlhbmdsZVN0cmlwcz1uZXcgVWludDMyQXJyYXksYS5udW1iZXJPZlBvaW50UGl4ZWxzPjA/YS5wb2ludERhdGE9UyhBLHMsNSxhLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6YS5wb2ludERhdGE9cShhLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/YS5jZWxsRGF0YT1TKEEscyw2LGEucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOmEuY2VsbERhdGE9cShhLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQz1hO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIG91dHB1dCBJbnRlcmZhY2VUeXBlIil9bGV0IGw9e3R5cGU6Qi50eXBlLGRhdGE6Q307RS5wdXNoKGwpfSkse3JldHVyblZhbHVlOmcsc3Rkb3V0Om8sc3RkZXJyOm4sb3V0cHV0czpFfX12YXIgVWU9bHI7dmFyIHVyPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPCJ1IjtmdW5jdGlvbiBkcihBLHQpe2lmKEE9PW51bGwpcmV0dXJuW107bGV0IGU9W107Zm9yKGxldCBJPTA7STxBLmxlbmd0aDtJKyspe2xldCByPURyKEFbSV0sdCk7ciE9PW51bGwmJmUucHVzaChyKX1yZXR1cm4gZX1mdW5jdGlvbiBEcihBLHQpe2lmKEE9PW51bGwpcmV0dXJuIG51bGw7bGV0IGU9bnVsbDtyZXR1cm4gQS5idWZmZXIhPT12b2lkIDA/ZT1BLmJ1ZmZlcjpBLmJ5dGVMZW5ndGghPT12b2lkIDAmJihlPUEpLHVyJiZlIGluc3RhbmNlb2YgU2hhcmVkQXJyYXlCdWZmZXI/bnVsbDp0P2U6ZS5zbGljZSgwKX12YXIgR2U9ZHI7ZnVuY3Rpb24gaHIoQSl7cmV0dXJuW0EuZGF0YSxBLmRpcmVjdGlvbl19dmFyIGtlPWhyO2Z1bmN0aW9uIHlyKEEpe3JldHVybltBLnBvaW50cyxBLnBvaW50RGF0YSxBLmNlbGxzLEEuY2VsbERhdGFdfXZhciBMZT15cjtmdW5jdGlvbiBtcihBKXtyZXR1cm5bQS5wb2ludHMsQS52ZXJ0aWNlcyxBLmxpbmVzLEEucG9seWdvbnMsQS50cmlhbmdsZVN0cmlwcyxBLnBvaW50RGF0YSxBLmNlbGxEYXRhXX12YXIgYmU9bXI7YXN5bmMgZnVuY3Rpb24gd3IoQSx0LGUsSSl7bGV0IHI9VWUoQSx0LGUsSSksZz1bXTtyZXR1cm4gci5vdXRwdXRzLmZvckVhY2goZnVuY3Rpb24obyl7aWYoby50eXBlPT09ZC5CaW5hcnlTdHJlYW18fG8udHlwZT09PWQuQmluYXJ5RmlsZSl7bGV0IG49by5kYXRhO2cucHVzaChuKX1lbHNlIGlmKG8udHlwZT09PWQuSW1hZ2Upe2xldCBuPW8uZGF0YTtnLnB1c2goLi4ua2UobikpfWVsc2UgaWYoby50eXBlPT09ZC5NZXNoKXtsZXQgbj1vLmRhdGE7Zy5wdXNoKC4uLkxlKG4pKX1lbHNlIGlmKG8udHlwZT09PWQuUG9seURhdGEpe2xldCBuPW8uZGF0YTtnLnB1c2goLi4uYmUobikpfX0pLF9BKHIsR2UoZywhMCkpfXZhciBKZT13cjt2YXIgcHI9e3J1blBpcGVsaW5lOmFzeW5jIGZ1bmN0aW9uKEEsdCxlLEkscixnKXtsZXQgbz1hd2FpdCBwZShBLHQsZyk7cmV0dXJuIGF3YWl0IEplKG8sZSxJLHIpfX07RkEocHIpOyUwQS8qISBCdW5kbGVkIGxpY2Vuc2UgaW5mb3JtYXRpb246JTBBJTBBY29tbGluay9kaXN0L2VzbS9jb21saW5rLm1qczolMEEgICgqKiUwQSAgICogQGxpY2Vuc2UlMEEgICAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMlMEEgICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wJTBBICAgKiklMEEqLyUwQSc7WXIoVHIpO2V4cG9ydHtpdCBhcyBieXVSZWFkTWVzaCxvdCBhcyBieXVXcml0ZU1lc2gsWCBhcyBleHRlbnNpb25Ub01lc2hJbyxfIGFzIGV4dGVuc2lvblRvUG9pbnRTZXRJbyxudCBhcyBmcmVlU3VyZmVyQXNjaWlSZWFkTWVzaCxhdCBhcyBmcmVlU3VyZmVyQXNjaWlXcml0ZU1lc2gsc3QgYXMgZnJlZVN1cmZlckJpbmFyeVJlYWRNZXNoLEl0IGFzIGZyZWVTdXJmZXJCaW5hcnlXcml0ZU1lc2gseSBhcyBnZXREZWZhdWx0V2ViV29ya2VyLGMgYXMgZ2V0UGlwZWxpbmVXb3JrZXJVcmwsZCBhcyBnZXRQaXBlbGluZXNCYXNlVXJsLHplIGFzIG16M1JlYWRNZXNoLEN0IGFzIG16M1JlYWRQb2ludFNldCxYZSBhcyBtejNXcml0ZU1lc2gsUXQgYXMgbXozV3JpdGVQb2ludFNldCxxZSBhcyBvYmpSZWFkTWVzaCxFdCBhcyBvYmpSZWFkUG9pbnRTZXQsS2UgYXMgb2JqV3JpdGVNZXNoLGx0IGFzIG9ialdyaXRlUG9pbnRTZXQsWmUgYXMgb2ZmUmVhZE1lc2gscHQgYXMgb2ZmUmVhZFBvaW50U2V0LFZlIGFzIG9mZldyaXRlTWVzaCx1dCBhcyBvZmZXcml0ZVBvaW50U2V0LHVuIGFzIHJlYWRNZXNoLFduIGFzIHJlYWRQb2ludFNldCxkQiBhcyBzZXREZWZhdWx0V2ViV29ya2VyLFlyIGFzIHNldFBpcGVsaW5lV29ya2VyVXJsLEVCIGFzIHNldFBpcGVsaW5lc0Jhc2VVcmwsamUgYXMgc3RsUmVhZE1lc2gsdmUgYXMgc3RsV3JpdGVNZXNoLHR0IGFzIHN3Y1JlYWRNZXNoLHJ0IGFzIHN3Y1dyaXRlTWVzaCxIZSBhcyB2dGtQb2x5RGF0YVJlYWRNZXNoLGd0IGFzIHZ0a1BvbHlEYXRhUmVhZFBvaW50U2V0LFRlIGFzIHZ0a1BvbHlEYXRhV3JpdGVNZXNoLEJ0IGFzIHZ0a1BvbHlEYXRhV3JpdGVQb2ludFNldCxfZSBhcyB3YXNtUmVhZE1lc2gsZnQgYXMgd2FzbVJlYWRQb2ludFNldCwkZSBhcyB3YXNtV3JpdGVNZXNoLGN0IGFzIHdhc21Xcml0ZVBvaW50U2V0LEF0IGFzIHdhc21ac3RkUmVhZE1lc2gsbXQgYXMgd2FzbVpzdGRSZWFkUG9pbnRTZXQsZXQgYXMgd2FzbVpzdGRXcml0ZU1lc2gsZHQgYXMgd2FzbVpzdGRXcml0ZVBvaW50U2V0LGNuIGFzIHdyaXRlTWVzaCxPbiBhcyB3cml0ZVBvaW50U2V0fTsKLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjoKCmNvbWxpbmsvZGlzdC9lc20vY29tbGluay5tanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKICAgKikKKi8K""" default_config = JsPackageConfig(default_js_module) js_package = JsPackage(default_config) diff --git a/packages/mesh-io/python/itkwasm-mesh-io-wasi/itkwasm_mesh_io_wasi/_version.py b/packages/mesh-io/python/itkwasm-mesh-io-wasi/itkwasm_mesh_io_wasi/_version.py index 14d9d2f58..3c1e9cbd3 100644 --- a/packages/mesh-io/python/itkwasm-mesh-io-wasi/itkwasm_mesh_io_wasi/_version.py +++ b/packages/mesh-io/python/itkwasm-mesh-io-wasi/itkwasm_mesh_io_wasi/_version.py @@ -1 +1 @@ -__version__ = "1.7.0" +__version__ = "1.7.1" diff --git a/packages/mesh-io/python/itkwasm-mesh-io/itkwasm_mesh_io/_version.py b/packages/mesh-io/python/itkwasm-mesh-io/itkwasm_mesh_io/_version.py index 14d9d2f58..3c1e9cbd3 100644 --- a/packages/mesh-io/python/itkwasm-mesh-io/itkwasm_mesh_io/_version.py +++ b/packages/mesh-io/python/itkwasm-mesh-io/itkwasm_mesh_io/_version.py @@ -1 +1 @@ -__version__ = "1.7.0" +__version__ = "1.7.1" diff --git a/packages/mesh-io/typescript/package.json b/packages/mesh-io/typescript/package.json index 075e9d0a7..1a7ff2f79 100644 --- a/packages/mesh-io/typescript/package.json +++ b/packages/mesh-io/typescript/package.json @@ -1,6 +1,6 @@ { "name": "@itk-wasm/mesh-io", - "version": "1.7.0", + "version": "1.7.1", "description": "Input and output for scientific and medical image file formats.", "type": "module", "module": "./dist/index.js", diff --git a/packages/mesh-io/typescript/src/wasm-ztd-read-mesh-node.ts b/packages/mesh-io/typescript/src/wasm-ztd-read-mesh-node.ts index 3384a07b5..27937ac38 100644 --- a/packages/mesh-io/typescript/src/wasm-ztd-read-mesh-node.ts +++ b/packages/mesh-io/typescript/src/wasm-ztd-read-mesh-node.ts @@ -6,13 +6,14 @@ import { InterfaceTypes, PipelineOutput, PipelineInput, - runPipelineNode -} from 'itk-wasm' + runPipelineNode, +} from "itk-wasm"; -import WasmZtdReadMeshOptions from './wasm-ztd-read-mesh-options.js' -import WasmZtdReadMeshNodeResult from './wasm-ztd-read-mesh-node-result.js' +import WasmZtdReadMeshOptions from "./wasm-ztd-read-mesh-options.js"; +import WasmZtdReadMeshNodeResult from "./wasm-ztd-read-mesh-node-result.js"; -import path from 'path' +import path from "path"; +import { fileURLToPath } from "url"; /** * Read a mesh file format and convert it to the itk-wasm file format @@ -25,54 +26,58 @@ import path from 'path' async function wasmZtdReadMeshNode( serializedMesh: string, options: WasmZtdReadMeshOptions = {} -) : Promise { - - const mountDirs: Set = new Set() +): Promise { + const mountDirs: Set = new Set(); const desiredOutputs: Array = [ { type: InterfaceTypes.JsonCompatible }, { type: InterfaceTypes.Mesh }, - ] + ]; - mountDirs.add(path.dirname(serializedMesh as string)) - const inputs: Array = [ - ] + mountDirs.add(path.dirname(serializedMesh as string)); + const inputs: Array = []; - const args = [] + const args = []; // Inputs - const serializedMeshName = serializedMesh - args.push(serializedMeshName) - mountDirs.add(path.dirname(serializedMeshName)) + const serializedMeshName = serializedMesh; + args.push(serializedMeshName); + mountDirs.add(path.dirname(serializedMeshName)); // Outputs - const couldReadName = '0' - args.push(couldReadName) + const couldReadName = "0"; + args.push(couldReadName); - const meshName = '1' - args.push(meshName) + const meshName = "1"; + args.push(meshName); // Options - args.push('--memory-io') + args.push("--memory-io"); if (typeof options.informationOnly !== "undefined") { - options.informationOnly && args.push('--information-only') + options.informationOnly && args.push("--information-only"); } - const pipelinePath = path.join(path.dirname(import.meta.url.substring(7)), 'pipelines', 'wasm-ztd-read-mesh') + const pipelinePath = path.join( + fileURLToPath(import.meta.url), + "pipelines", + "wasm-ztd-read-mesh" + ); - const { - returnValue, - stderr, - outputs - } = await runPipelineNode(pipelinePath, args, desiredOutputs, inputs, mountDirs) + const { returnValue, stderr, outputs } = await runPipelineNode( + pipelinePath, + args, + desiredOutputs, + inputs, + mountDirs + ); if (returnValue !== 0 && stderr !== "") { - throw new Error(stderr) + throw new Error(stderr); } const result = { couldRead: outputs[0]?.data as JsonCompatible, mesh: outputs[1]?.data as Mesh, - } - return result + }; + return result; } -export default wasmZtdReadMeshNode +export default wasmZtdReadMeshNode; diff --git a/packages/mesh-io/typescript/src/wasm-ztd-write-mesh-node.ts b/packages/mesh-io/typescript/src/wasm-ztd-write-mesh-node.ts index 374c4c88f..dfae474eb 100644 --- a/packages/mesh-io/typescript/src/wasm-ztd-write-mesh-node.ts +++ b/packages/mesh-io/typescript/src/wasm-ztd-write-mesh-node.ts @@ -6,13 +6,14 @@ import { InterfaceTypes, PipelineOutput, PipelineInput, - runPipelineNode -} from 'itk-wasm' + runPipelineNode, +} from "itk-wasm"; -import WasmZtdWriteMeshOptions from './wasm-ztd-write-mesh-options.js' -import WasmZtdWriteMeshNodeResult from './wasm-ztd-write-mesh-node-result.js' +import WasmZtdWriteMeshOptions from "./wasm-ztd-write-mesh-options.js"; +import WasmZtdWriteMeshNodeResult from "./wasm-ztd-write-mesh-node-result.js"; -import path from 'path' +import path from "path"; +import { fileURLToPath } from "url"; /** * Write an itk-wasm file format converted to an mesh file format @@ -27,58 +28,63 @@ async function wasmZtdWriteMeshNode( mesh: Mesh, serializedMesh: string, options: WasmZtdWriteMeshOptions = {} -) : Promise { - - const mountDirs: Set = new Set() +): Promise { + const mountDirs: Set = new Set(); const desiredOutputs: Array = [ { type: InterfaceTypes.JsonCompatible }, - ] + ]; const inputs: Array = [ { type: InterfaceTypes.Mesh, data: mesh }, - ] + ]; - const args = [] + const args = []; // Inputs - const meshName = '0' - args.push(meshName) + const meshName = "0"; + args.push(meshName); // Outputs - const couldWriteName = '0' - args.push(couldWriteName) + const couldWriteName = "0"; + args.push(couldWriteName); - const serializedMeshName = serializedMesh - args.push(serializedMeshName) - mountDirs.add(path.dirname(serializedMeshName)) + const serializedMeshName = serializedMesh; + args.push(serializedMeshName); + mountDirs.add(path.dirname(serializedMeshName)); // Options - args.push('--memory-io') + args.push("--memory-io"); if (typeof options.informationOnly !== "undefined") { - options.informationOnly && args.push('--information-only') + options.informationOnly && args.push("--information-only"); } if (typeof options.useCompression !== "undefined") { - options.useCompression && args.push('--use-compression') + options.useCompression && args.push("--use-compression"); } if (typeof options.binaryFileType !== "undefined") { - options.binaryFileType && args.push('--binary-file-type') + options.binaryFileType && args.push("--binary-file-type"); } - const pipelinePath = path.join(path.dirname(import.meta.url.substring(7)), 'pipelines', 'wasm-ztd-write-mesh') + const pipelinePath = path.join( + fileURLToPath(import.meta.url), + "pipelines", + "wasm-ztd-write-mesh" + ); - const { - returnValue, - stderr, - outputs - } = await runPipelineNode(pipelinePath, args, desiredOutputs, inputs, mountDirs) + const { returnValue, stderr, outputs } = await runPipelineNode( + pipelinePath, + args, + desiredOutputs, + inputs, + mountDirs + ); if (returnValue !== 0 && stderr !== "") { - throw new Error(stderr) + throw new Error(stderr); } const result = { couldWrite: outputs[0]?.data as JsonCompatible, - } - return result + }; + return result; } -export default wasmZtdWriteMeshNode +export default wasmZtdWriteMeshNode;